AN 690:PCI Express Avalon-MM DMA参考设计

ID 683824
日期 5/28/2016
Public

1.5. DMA操作流程

主机上运行的软件通过完成下列步骤来初始化DMA并验证结果。
  1. 软件分配系统存储器中的可用存储空间以放置描述符列表。
  2. 软件分配系统存储器中的可用存储空间以便DMA将数据移入或移出系统存储器。
  3. 软件将所有描述符写入系统存储器的描述符空间。DMA支持多达128个描述符。每个描述符有都有一个从描述符ID 0到描述符ID 127的ID。每个描述符包含source addressdestination address,及要移动的数据大小。源地址指定要被DMA移出数据的位置。目的地址指定要被DMA移入的数据的位置。
  4. 关于读DMA操作,软件初始化系统存储空间中的随机数据。Read Data Mover将该数据从系统存储器移至片上存储器。对于写DMA操作,软件初始化片上存储器中的随机数据。Write Data Mover将此数据从片上存储器移至系统存储空间。
  5. 作为启动DMA的最后步骤,软件写最后一个描述符ID到描述符控制器的控制逻辑中,并触发描述符控制器以启动DMA。 随后DMA按描述符0到最后一个描述符的顺序开始获取描述符。
  6. 完成最后一个描述符后,描述符控制器通过Txs端口写“1”到PCIe域中最后一个描述符的Done位。
  7. 软件继续轮询最后描述符中的Done位。当Done位已设置且执行数被计算时,显示DMA操作已完成。一旦DMA完成,软件将对比系统存储器和片上存储器中的数据。若无失配数据就通过测试。
  8. 关于同步操作,软件开始读DMA操作接着写DMA。在读和写DMA操作流程都完成后,视为操作完成。