利用WinDriver实现链式DMA
2013-07-13黄世中金志刚
黄世中 , 金志刚
(1.天津大学 天津 300072;2.河北省科学院 应用数学研究所,河北 石家庄 050081;3.河北省信息安全认证工程技术研究中心 河北 石家庄 050081)
利用WinDriver实现链式DMA
黄世中1,2,3, 金志刚1
(1.天津大学 天津 300072;2.河北省科学院 应用数学研究所,河北 石家庄 050081;3.河北省信息安全认证工程技术研究中心 河北 石家庄 050081)
PCI Express协议由于其高速串行、系统拓扑简单等特点被广泛用于各种领域。Altera公司的Arria II GX FPGA内集成了支持链式DMA传输功能的PCI Express硬核,适应了PCI Express总线高速度的要求。文中利用Jungo公司的WinDriver软件实现了链式DMA的上层应用设计。首先给出了链式DMA实现的基本过程,接着分析了链式DMA数据传输需要处理的几个问题,给出了相应的解决办法和策略。采用这些方法,保证了DAM数据传输的正确性,简化了底层FPGA应用逻辑的设计。
链式DMA;WinDriver;PCI Express;端点存储器
在计算机与外设的通讯过程中,DMA方式,即Direct Memory access(直接内存访问),由于无需计算机CPU的干预就可以在内存和外设之间传输数据,是一种高效的数据交换方式。因为对于高速的设备,如PCI Express接口的板卡设备,如果采用普通方式在存储器和外设之间传输大量的数据将占用太多的CPU时间,严重影响系统的性能。而使用DMA方式则使传输数据的操作中CPU的涉及减小到最少。
要实现DMA的传输功能,在底层需要硬件本身具有这样的功能模块,即外设硬件可以主动发起数据传输。在上层则需要驱动与应用接口的配合。
文中给出如下的一种DMA传输方式的实现。硬件外设是基于Altera公司PCI Express硬核的FPGA加密卡,其与主机的接口采用是PCI Express接口。……
