孙欣欣,李 娟,田粉仙,杨 军
(云南大学 信息学院,云南 昆明650500)
随着现场信号采集速率、链路速度和处理器性能的不断提升,高速数据采集系统需要越来越高的数据传输速率将现场数据传输到计算机[1],因此设计高总线传输速率的数据采集系统至关重要.高速串行计算机扩展总线标准(Peripheral Component Interconnect Express,PCIE)作为目前使用最频繁的高速总线,优胜于以太网、USB、PCI,具有传输速率快、兼容性和扩展性好的特点,广泛用于PC端和外部设备之间的通信,如何利用PCIE总线对大规模数据进行高效传输已成为研究热点[2].
目前商业上直接存储器访问(Direct Memory Access,DMA)解 决 方 案 如Hitechglobal,PLDA,CAST和Northwest Logic等均使用分散聚集式DMA引擎的设计方法[3],DMA引擎可通过多个DMA进程并行运行,且每个进程通过PCIE接口进行连接.DMA引擎是实现DMA工作方式的功能部件,它负责在主机与网卡之间交互数据,并产生数据接收和发送中断,分散聚集DMA则从分布在内存非连续部分的缓冲区链表中收集数据.因现有DMA只能从连续物理内存的单个缓冲区中收集数据,所以本文以分散聚集DMA方式进行传输以取得更大的缓冲区,减少DMA数据传输的次数、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)逻辑资源的使用,提高数据传输系统的整体性能.
本文对于高速网卡的通信需求,设计了基于描述符机制的DMA引擎,为提高数据吞吐量,采用DMA引擎控制操作系统CPU调度带来的限制.商业上可用的高性能DMA组件没有提供完全可配置的硬件控制传输数据流,并且通常仅限于单一的FPGA设备,文……