PCI Express高性能参考设计

ID 683541
日期 10/13/2015
Public

1.3. 参考设计的功能介绍

参考设计包含下列组件:
  • 应用层包含由IP内核生成的chaining DMA实例
  • IP内核variation
  • 针对本参考设计
    图 5. Reference Design Components
    所配置的应用软件和Windows驱动器

Chaining DMA实例包含2个DMA模块在应用逻辑和内部端点存储器中。此设计支持仿真的DMA读和DMA写处理。DMA写模块把数据从端点存储器传输到PCIe链路中的根复合系统存储器。DMA读模块实现读传输来自PCIe链路中根复合系统存储器的数据到端点存储器。

本参考设计包含FPGA且不依赖除PCIe链路以外的其他硬件接口。Chaining DMA性能高于用作系统和端点存储器间非连续存储器传输的普通DMA。关于普通DMA,应用软件因每次传输而编程DMA寄存器。Chaining DMA使用每存储器页的描述符列表。这些描述符列表包含下列信息:

  • 传输长度
  • 用于传输的源和目的地址
  • 控制信息设置应用软件和DMA模块间的握手(handshaking )行为

每个描述符包含4个dword。描述符储存于连续的存储器页中。

基于参数编辑器中的属性设置,应用软件创建系统存储器中的必要描述符。应用软件也创建描述符头(header)列表。该列表指定描述符总数及首个描述符列表地址。传输开始阶段,应用软件根据描述符头列表编程DMA寄存器。DMA模块连续收集这些描述符以用于每DMA读并执行指定的传输。

DMA模块还包括一个运行计数器。当软件写描述符头列表到DMA寄存器时,计数器启动。计数器持续计数直到DMA模块已传输最后数据。传输完成后,应用软件使用计数器的值计算传输吞吐量并报告结果。计数器的值包含初始描述符读延迟。因此,应用软件所报告的吞吐量小于实际吞吐量。