几种应用DMA的典型应用

作者:碎碎思,来源:OpenFPGA微信公众号

DMA内部寄存器的读写方式

基于AXI的DMA对内部寄存器的读写有着相同的方式。在普通传输模式下,DMA内部的寄存器都是由处理器通过AXI-Lite总线进行读写的;但基于AXI总线的三种DMA,都增加了S/G传输模式,它卸载了处理器对寄存器的读写,通过独立的S/G读写通道对存储着命令描述符的内存进行访问读取、处理描述符,然后更新描述符写入内存。

几种应用DMA的场合

几种应用DMA的典型应用

(1) AXI DMA

图4‑40 AXI DMA应用

在系统中,AXI DMA与处理器等其他设备通过AXI Interconnect互联。系统处理器通过AXI4-lite接口访问DMA内部寄存器,向其写入配置信息,然后根据配置信息,高效的进行数据传输;DMA也可以启动S/G传输模式,通过独立的AXI S/G通道从DDR中获取描述符信息,然后协调以太网和DDR间的数据传输;独立的控制和状态流通道,提供相关的包信息;DMA的中断与系统中断控制器相连。

(2) AXI Centralized DMA

图4‑41 AXI CDMA

在此系统中,AXI CDMA与处理器等设备通过AXI Interconmect互联。CDMA控制着一个内存映射空间到另一个内存映射空间的数据传输。

(3) AXI Video DMA

图4‑42 AXI VDMA

在此系统中,AXI VDMA与处理器等其他设备通过AXI Interconnect互联。系统处理器通过AXI4-lite接口访问VDMA内部寄存器,向其写入配置信息,然后根据配置信息,高效的进行数据传输;VDMA也可以启动S/G传输模式,通过独立的AXI S/G通道从DDR中获取描述符信息,然后调控Video IP和DDR间的数据传输;VDMA的双中断与系统中断控制器相连。

Scatter-gather DMA 与 block DMA

传统的block DMA 一次只能传输物理上连续的一个块的数据, 完成传输后发起中断。而scatter-gather DMA允许一次传输多个物理上不连续的块,完成传输后只发起一次中断。

传统的block DMA像这样:

先进的scatter-gather DMA像这样:

这样做的好处是直观的,大大减少了中断的次数,提高了数据传输的效率。

最新文章

最新文章