Arria 10 Avalon-MM DMA接口PCIe解决方案用户指南

ID 683425
日期 10/31/2016
Public
文档目录

7.4.2. 了解外部DMA描述符控制器

使用外部DMA描述符控制器提供更多灵活性。可以修改或者将它替代以满足您系统的需要。或许您需要修改DMA描述符控制器的原因大致如下:
  • 实现多通道操作
  • 根据链接的列表实现描述符或者实现自定义DMA编程模型
  • 把描述符储存到本地存储器中,代替系统(主机方面)存储器。

要连接本variant中包含的DMA逻辑的接口,自定义DMA描述符控制器必须实现下列功能:

  • 必须与写Mover和读Mover通信以复制描述符列表到局部存储器。
  • 写Mover和读Mover必须执行储存在本地存储器中的描述符。
  • DMA Avalon-MM写(WrDCM_Master)和读(RdDCM_Master)master必须能够把状态更新到TX slave(TXS)。
图 40. 带有外部DMA描述符控制器的Avalon-MM DMA框图本Qsys实例设计,ep_g3x8_avmm256.qsys,位于 <install_dir>/ ip/altera/altera_pcie/altera_pcie_a10_ed/example_design/a10目录中。出于清晰度,此截屏筛选出了一些接口类型。
图 41. 带有外部DMA描述符控制器的Avalon-MM DMA框图本框图与之前图中的Qsys系统对应。当DMA描述符控制器被例化为外部组件时,就会在RdDmaRxData_i[159:0]WrDmaRxData_i[159:0]总线上驱动列表条目。

本框图中的DMA模块实现以下功能性:

  • 读DMA (Read Mover and dma_rd_master)–将数据从主机域转移到本地域。利用其高性能主端口发送存储器读TLP上游和写完成数据到外部Avalon-MM组件。它遵守PCI Express Base Specification规则中关于标签的考虑,流程控制信用,读完成边界,最大读取量,以及4 KB边界。
  • 写DMA(Write Mover and dma_wr_master)– 将数据从本地域转移到主机域。利用其高性能主端口从Avalon-MM从组件读取数据。它通过Memory Write TLP发送数据上游。它遵守PCI Express Base Specification规则中关于标签的考虑,流程控制信用,RX缓冲完成规则,最大负载量,以及各种4 KB边界。
  • DMA描述符控制器–管理读和写DMA操作。主机软件利用PCI Express系统存储器中描述符列表中的位置和大小来编程内部寄存器。描述符控制逻辑指示DMA读逻辑将整个列表复制到本地FIFO。然后每次从FIFO取回一个列表条目。它指示正确的DMA在本地和主机域之间转移数据有。它还通过TX从属单dword端口(TXS)发送DMA状态上游。更多关于DMA描述符控制器寄存器的信息,请参考DMA描述符控制器寄存器.
  • RX Master(PCIe BAR0-1)–允许主机编程DMA描述符控制器的内部寄存器。
  • TX Slave(TXS)–DMA描述符控制器向Avalon-MM从端口报告每个读和写描述符上的状态。它还使用此端口发送MSI请求。