ZYNQ中DMA与AXI4总线

网友投稿 316 2022-11-14

ZYNQ中DMA与AXI4总线

为什么在ZYNQ中DMA和AXI联系这么密切?通过上面的介绍我们知道ZYNQ中基本是以AXI总线完成相关功能的:

图4‑34连接 PS 和 PL 的 AXI 互联和接口的构架

在ZYNQ中,支持AXI-Lite,AXI4和AXI-Stream三种总线,但PS与PL之间的接口却只支持前两种,AXI-Stream只能在PL中实现,不能直接和PS相连,必须通过AXI-Lite或AXI4转接。PS与PL之间的物理接口有9个,包括4个AXI-GP接口和4个AXI-HP接口、1个AXI-ACP接口。

Xilinx提供的从AXI到AXI-Stream转换的IP核有:AXI-DMA,AXI-Datamover,AXI-FIFO-MM2S以及AXI-vDMA等

AXI-DMA:实现从PS内存到PL高速传输高速通道AXI-HP<---->AXI-Stream的转换

AXI-FIFO-MM2S:实现从PS内存到PL通用传输通道AXI-GP<----->AXI-Stream的转换

AXI-Datamover:实现从PS内存到PL高速传输高速通道AXI-HP<---->AXI-Stream的转换,只不过这次是完全由PL控制的,PS是完全被动的。

上面的IP是完成总线协议转换,如果需要做某些处理(如变换、迭代、训练……),则需要生成一个自定义Stream类型IP,与上面的Stream接口连接起来,实现数据输入输出。用户的功能在自定义Stream类型IP中实现。

综上,在ZYNQ中DMA和AXI是不可分割的两者,所以介绍DMA也是必须的。

1.1.1DMA简介

DMA是一种快速数据传送方式,通常用来传送数据量较多的数据块。使用DMA时,CPU向DMA控制器发送一个存储器传输请求,这样当DMA控制器在传输的时候,CPU执行其他的操作,传输完成时DMA以中断的方式通知CPU。

DMA传输过程的示意图为:

图4‑35DMA传输过程的示意图

DMA的传输过程为:

1、为了配置用DMA传输数据到存储器,处理器(Cortex-A9)发出一条指令。

2、DMA控制器把数据从外设传输到存储器或者从存储器传输到存储器,从而较少CPU处理的事务量。

3、输出传输完成后,向CPU发出一个中断通知DMA传输可以关闭。

为了发起传输事务,DMA控制器必须得到以下信息:

(1)、源地址——数据被读出的地址

(2)、目的地址——数据被写入的地址

(3)、传输长度——应传输的字节数

鉴于上面的优势,系统中使用DMA是必要的,能够提高数据吞吐量,减轻了CPU的负担,使得整个系统的性能得到提高。

说了这么多优点,那么DMA缺点是什么呢?DMA传送期间CPU被挂起,部分或完全失去对系统总线的控制,这可能会影响CPU对中断请求的及时响应与处理。因此,在一些小系统或速度要求不高、数据传输量不大的系统中,一般并不用DMA方式。因为DMA允许外设直接访问内存,从而形成对总线的独占。这在实时性强的硬实时系统嵌入式开发中将会造成中断延时过长。

DMAC为DMA控制器

图4‑36DMAC结构

DMA控制器是内存储器同外设之间进行高速数据传送时的硬件控制电路,是一种实现直接数据传送的专用处理器,它必须能取代在程序控制传送中由CPU和软件所完成的各项功能。它的主要功能是:

图4‑37DMAC在DMA中的作用示意图(一)

图4‑38DMAC在DMA中的作用示意图(二)

原文标题:ZYNQ中DMA与AXI4总线-DMA简介

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微软云计算介绍与实践(实践之十七)
下一篇:微软云计算介绍与实践(实践之十六)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~