Zynq PS/PL详解之DMA(part8)

本文介绍了Zynq SoC中的DMA控制器,强调其在处理器不介入的情况下提高系统性能的能力。DMA工作在突发、周期挪用和透明模式,支持scatter/gather操作。Zynq DMA拥有8个通道,可在系统存储器与PL间进行双向64位AXI总线传输,但不支持PS内外设间的直接传输。文章列举了支持DMA的外设如以太网、SDIO、USB等,并提及赛灵思提供的xdmaps.h驱动文件,为后续的DMA配置和初始化提供便利。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我上一篇博客里,我们达成一个观点,就是使用DMA(直接内存访问)的好处很明显,我之前在“Adam Taylor MicroZed系列之21”也提到使用AXI接口的DMA的好处。

虽然达成这样一个观点,但我们还有一个值得思考的问题,DMA到底是什么?

最基本的,一旦处理器配置好传输方式之后,DMA可以自己完成内存数据的搬进或者搬出,而不需要处理器的介入。如果使用方法得当,DMA可以显著地提高系统性能。

在讨论Zynq DMA的设计细节之前,让我们先要解释几个DMA控制器的原则:

典型的DMA控制器可以工作在以下三种模式:

1、 突发模式-以一个连续的操作方式来传输一个完整的数据包,在许多应用中,DMA的突发模式传输会拒绝处理器的总线访问,对于不同的系统而言,这有利有弊(可以是件好事,也可能是一件非常糟糕的事情。)

2、 周期挪用模式-跟处理器一起交替完成单独的DMA字节或者字传输的总线访问,这种模式可以防止处理器无法访问总线。

3、 透明模式-效率最高的传输模式,只有在处理器在执行任务而不需要访问外部系统总线的时候,DMA才能传输数据。

DMA控制器支持scatter/gather操作,这是一个非常有用的特性,这个特性允许多个数据源的数据传输到同一个目的地址,或者同一个源地址的数据传输到不同的目的地址(也可以称为“buffers”)

Zyng SoC是基于ARM内核的处理系统,它有一个DMA控制器,该DMA控制器连接在Zynq的AXI4中央互连架构上,通过AXI总线来传输数据,它在系统 存储器和Zynq的可编程逻辑单元(PL)之间完成64位的AXI总线传输。如下图所示,Zynq DMA有8个通道,可以同时执行8个DMA传输操作。
</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值