新方案 | 基于安路PCIe SGDMA 高速数据传输方案
发布时间2023-05-06
PCIe SGDMA演示方案
安路科技提供基于PCIe 硬核控制器开发的SGDMA IP。SGDMA可作为一个PCIe2AXI4系列接口的桥或者一个高性能DMA使用。
SGDMA支持属性:
64bit和128bit(PH1A90、PH1A180)数据位宽
32bit或64bit源地址、目的地址和描述符地址
目前支持单通道C2H以及单通道H2C
后续版本将支持N通道C2H以及N通道H2C
可选的单通道AXI4-Stream接口或AXI4-MM(memory mapped)接口
支持AXI4-Lite Master读写用户和DMA寄存器
支持AXI4-Lite Slave读DMA状态寄存器
支持Scatter Gather描述符列表和环形描述符列表,列表大小无限制
MSI-X中断 (后续支持)
Bypass descriptor 通道 (后续支持)
图1:DMA框图
SGDMA工作流程:
SGDMA工作分为两个流程,H2C(Host to Card)和C2H(Card to Host)。
DMA C2H 方向传输摘要:
图2:C2H传输框图
首先,应用程序启动C2H传输,并设置传输长度和用于存储数据的缓冲器位置。然后,驱动程序会基于传输长度创建描述符,并将信息写入寄存器控制传输启动。DMA开始启动描述符提取请求,之后DMA接收到描述符,判断是否为最后一个描述符,如果是则停止,否则继续发送描述符提取请求。DMA会根据接收的描述符向(板卡)源地址发送读请求,读请求会持续到没有剩余描述符,并从板卡的AXI4(MM或者Stream)接口上接收数据,向主机发送数据,数据发送完毕以后向主机发送中断。
驱动程序将执行中断流程,并读取完成描述符计数寄存器,与生成的描述符数量对比。随后将控制权随传输大小一起返还给应用程序。应用程序从分配的缓冲器读取传输数据,并将其写入文件。文件写入完成后,退出应用程序。
H2C的流程与C2H的类似,主要的不同点为C2H将板卡的数据发送给主机,H2C接收主机的数据。
图3:H2C传输框图
上海安路科技于2020年12月底正式成为PCI-SIG协会新会员。加入PCI-SIG协会后,安路科技将获得更为广泛的服务、了解最新的PCI技术动态,同时能参与PCI技术法规研讨会、参与规范修订和补充建议、PCI技术支持、获得Vendor ID分配等系列服务与支持,这些都将助力公司研发技术和技术创新的稳步提升与发展。
更多产品资料,可通过邮箱联系我们
mkt@anlogic.com