【IP核】DMA简介

13 篇文章 0 订阅
12 篇文章 3 订阅

DMA的有与无

使用DMA时,CPU向DMA控制器发送一个存储器传输请求,这样当DMA控制器在传输的时候,CPU执行其他的操作,传输完成时DMA以中断的方式通知CPU。
有DMA时:DMA可以直接完成设备与内存直接的数据搬运,不需要cpu介入。
因此DMA的引入,数据搬运不需要抢占CPU,因此极大降低了CPU的负荷,但是也引入了新的问题,也就是cpu读取到的数据不一定是最新的,主要由于中间cache的存在,当DMA修改了memory中的内存时,由于cpu读取内存数据会先访问对应内存是否被cache命中,如果命中将直接读取cache中的数据内容,而此时cache中的数据不是最新的,已经被dma修改了。

- ZYNQ中的DMA

ZYNQ提供了两种DMA,一种是集成在PS中的硬核DMA,另一种是PL中使用的软核AXI DMA IP。

在ARM APU(Application Processor Unit,应用处理单元)设计过程中,已经考虑到大量数据搬移的情况,因此在APU中自带了一个DMA控制器DAMC,这个DMAC驻留在PS内,而且必须通过驻留在内存中的DMA指令编程,这些程序往往需要CPU准备,因此需要部分的CPU参与。DMAC支持多达8个通道,所以多个DMA结构的核可以挂载在单个DMAC上。

DMAC与PL的连接是通过AXI-GP接口,这个接口最高支持到32位宽,这也限制了这种模式下的传输速率,理论上最大为600MB/s,这种模式不占用PL资源,但需要对DMA指令编程,会增加软件的复杂性。

为了获取更高的速率,可以空间换时间,在PL中添加AXI DMA IP core,并利用AXI_HP接口完成高速的数据传输。
HP

DMA的数据传输经过S_AXI_HP接口,每一个HP接口都含有控制和数据fifo,这些fifo为大数据量突发传输提供缓冲,使得HP成为理想的高速数据接口。
通过PL的DMA和AXI_HP接口传输方式的拓扑图
对DMA的控制或配置通过M_AXI_GP接口(M代表master为PS),传输状态通过中断传达到PS的中断控制器。

使用DMA的优势

使用DMA进行数据传输有几个好处:

  1. 高效数据处理:DMA可以在不占用CPU的情况下,直接在系统内存和Aurora IP之间传输数据,这可以显著提高数据处理效率。

  2. 降低CPU负载:通过减少CPU参与的数据搬运操作,可以释放CPU资源处理其他任务。
    DMA作为内存访问技术,允许某些计算机内部的硬件子系统可以独立的直接读写内存,而不需要CPU介入处理,从而不需要CPU的大量中断负载,否则,CPU需要从来源吧每一片段的数据复制到寄存器,然后在把他们再次写回到新的地方,在这个期间,CPU无法执行其他指令。而使用DMA时,CPU向DMA发送一个存储传输请求,这样当DMA控制器在传输的时候,CPU可以执行其他指令操作,完成传输后DMA以中断的方式通知CPU。
    DMA传输过程的示意图

  3. 提高吞吐量:DMA能够支持高数据率传输,满足高速数据流的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的信号里没有噪声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值