0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文详解AXI DMA技术

FPGA设计论坛 来源:FPGA设计论坛 2025-04-03 09:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

DMA技术

AXI直接数值存取(Drect Memory Access,DMA)IP核在AXI4内存映射和AXI4流IP接口之间提供高带宽的直接内存访问。DMA可以选择分散收集(Scatter Gather,SG)功能还可以将数据移动任务从位于于处理器系统中的中央处理器(CPU)中卸载出来。可以通过一个AXI4-Lite从接口访问初始化、状态和管理寄存器。如图4. 8展现了DMA IP的功能构成核心。

系统内存和传输的目标之间的主要通过高速DMA数据传输,数据之间的流向是AXI4读数据的主端口到AXI4内存映射流(Memory-Mapped To Stream,MM2S),和通过数据流到内存映射(Stream To Memory-Mapped,S2MM)从外设写入到内存中。AXI DMA还支持在分散/聚集模式下,MM2S和S2MM路径上最多16个多通道的数据传输[67]。

021d2d22-0f8b-11f0-9310-92fbcf53809c.png

Fig4. 8 Core functions of AXI DMA

图4.8 AXI DMA 核心功能

DMA传输数据是不需要CPU进行控制,而是有一个专门的DMA控制器来控制着存储器之间的数据传送或者外部设备与存储器之间的数据交换流程。DMA控制器使用64-bit的AXI主接口,操作以两倍的CPU的时钟速率执行系统内存和PL外围设备之间的DMA数据传输。软件通过控制器的32位APB从接口访问这些寄存器。DMA控制器的基本工作流程如图4. 9所示。

023ca0bc-0f8b-11f0-9310-92fbcf53809c.png

图4.9 DMAC基本工作流程

Fig4. 9 DMAC basic workflow

源存储设备向DMAC发送任务请求,DMAC在接收到请求后向CPU发出接管总线的权限,CPU把总线控制权释放给DMAC并且开始传输数据,使用FIFO作为一个中介,分别在源端口和目标端口进行读写操作。当数据传输完毕之后产生完成中断信号给CPU,把总线控制权限交还给CPU。

分散/收集(SG)模式下DMA传输

AXI DMA收集和发散模式下使用描述符进行控制数据传输,描述符由8个32-bit基本字和0或5个用户应用程序字组成。描述符将会支持64-bit地址和用户应用程序数据。每个数据帧的开头和结尾的标签都支持多个描述符。完成状态和完成时的中断状态也包括在内。

在开始DMA操作之前,软件应用程序必须设置一个描述符链表。AXI DMA通过获取、处理并更新处理描述符。通过分析描述符,软件应用程序可以读取相关DMA传输的状态,通过在接收(S2MM)通道上获取用户信息来确定传输完成。有了这些信息,软件应用程序可以管理描述符和数据缓冲区。

描述符SOF/EOF设置和AXI控制流之间的关系如图4. 10所示。SOF=1的描述符是数据包的开始,并为MM2S方向重置方向。图4. 11显示了描述符用户应用程序字段如何在AXI控制流上显示的示例。AXI DMA向目标设备插入一个标志来指示数据类型。

02513838-0f8b-11f0-9310-92fbcf53809c.png

图4.10描述符与MM2S流和控制流的关系

Fig4. 10 Detail of Descriptor Relationship to MM2S Stream and Control Stream

02670816-0f8b-11f0-9310-92fbcf53809c.png

图4.11 MM2S控制流的用户应用字段和时间

Fig4. 11 Example user application field / timing for MM2S control stream

表4.3 MM2S描述符表内容具体解释

Table 4.3 MM2S descriptor content specific explanation

地址空间偏移 名字 描述
00h
04h
08h
0Ch
10h
14h
18h
1Ch
20h
24h
28h
2Ch
MM2S下一个地址
(地址)保留
MM2S缓冲区地址
(数据地址)保留
保留
保留
控制
状态
MM2S应用0
MM2S应用1
MM2S应用2
MM2S应用3
MM2S指向下一描述符表的地址
前面32-bit作为描述符表的地址保留
MM2S中指向传输数据的地址
前32-bit保留指向传输数据的地址
保留
保留
控制
状态
MM2S应用程序0
MM2S应用程序1
MM2S应用程序2
MM2S应用程序3

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    9101

    浏览量

    154364
  • 内存
    +关注

    关注

    8

    文章

    3133

    浏览量

    75484
  • dma
    dma
    +关注

    关注

    3

    文章

    576

    浏览量

    103765
  • IP核
    +关注

    关注

    4

    文章

    338

    浏览量

    51072
  • AXI
    AXI
    +关注

    关注

    1

    文章

    136

    浏览量

    17404

原文标题:DMA技术和及其SG模式

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ZYNQ SOC案例开发:AXI DMA使用解析及环路测试

    AXI DMA介绍 本篇博讲述AXI DMA
    的头像 发表于 12-31 09:52 1w次阅读
    ZYNQ SOC案例开发:<b class='flag-5'>AXI</b> <b class='flag-5'>DMA</b>使用解析及环路测试

    AXI DMA详解与应用篇

    DMA种内存访问技术,允许某些计算机内部的硬件子系统可以独立的直接读写内存,而不需要CPU介入处理,从而不需要CPU的大量中断负载,否则,CPU需要从来源把每片段的数据复制到寄存
    的头像 发表于 08-10 12:50 1w次阅读
    <b class='flag-5'>AXI</b> <b class='flag-5'>DMA</b><b class='flag-5'>详解</b>与应用篇

    AMBA_AXI总线详解

    AMBA_AXI总线详解
    发表于 04-18 11:48

    详解MPSoC芯片

    产品设计的成败关键之。本节,我们就将主要介绍PS和PL的连接,让用户了解PS和PL之间连接的技术。  其实,在具体设计中我们往往不需要在连接这个地方做太多工作,我们加入IP核以后,系统会自动使用AXI接口
    发表于 01-07 17:11

    AXI接口协议详解

    1、AXI接口协议详解  AXI 总线  上面介绍了AMBA总线中的两种,下面看下我们的主角—AXI,在ZYNQ中有支持三种AXI总线,拥有
    发表于 10-14 15:31

    Adam Taylor玩转MicroZed系列68:AXI DMA Ⅲ,软件部分

    上周的博客中我们完成了硬件的搭建,并且把硬件部分导入到SDK,见Adam Taylor’s MicroZed Chronicles Part 67: AXI DMA II,下步通过写
    发表于 02-08 05:53 534次阅读
    Adam Taylor玩转MicroZed系列68:<b class='flag-5'>AXI</b> <b class='flag-5'>DMA</b> Ⅲ,软件部分

    Adam Taylor玩转MicroZed系列67:AXI DMA II

    上周的博客中我们学习了Zynq SoC的AXI DMA,我解释了怎样利用AXI DMA控制器将数据从PL搬运到PS。在本期博客中我们将学习怎样完成硬件的搭建。 首先我们要更深入的了解
    发表于 02-08 08:10 496次阅读

    zynq linux AXI DMA传输步骤教程详解

    本文主要介绍zynq linux AXI DMA传输步骤教程,具体的跟随小编起来了解下。
    的头像 发表于 07-08 05:46 3.1w次阅读
    zynq linux <b class='flag-5'>AXI</b> <b class='flag-5'>DMA</b>传输步骤教程<b class='flag-5'>详解</b>

    详解ZYNQ中的DMAAXI4总线

    在ZYNQ中,支持AXI-Lite,AXI4和AXI-Stream三种总线,但PS与PL之间的接口却只支持前两种,AXI-Stream只能在PL中实现,不能直接和PS相连,必须通过
    的头像 发表于 09-24 09:50 6349次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>详解</b>ZYNQ中的<b class='flag-5'>DMA</b>与<b class='flag-5'>AXI</b>4总线

    你必须了解的AXI总线详解

    不同类型的DMA GPIO PL general purpose AXI GP AXI utlilizing PS DMAC High performance w/DMA ACP w/
    的头像 发表于 10-09 18:05 8270次阅读
    你必须了解的<b class='flag-5'>AXI</b>总线<b class='flag-5'>详解</b>

    ZYNQ中DMAAXI4总线

    ZYNQ中DMAAXI4总线 为什么在ZYNQ中DMAAXI联系这么密切?通过上面的介绍我们知道ZYNQ中基本是以AXI总线完成相关功能
    的头像 发表于 11-02 11:27 4781次阅读
    ZYNQ中<b class='flag-5'>DMA</b>与<b class='flag-5'>AXI</b>4总线

    Petalinux加速axi-dma内核驱动缓冲区读过程

    Petalinux 加速axi-dma内核驱动缓冲区读过程
    的头像 发表于 02-16 16:21 4432次阅读
    Petalinux加速<b class='flag-5'>axi-dma</b>内核驱动缓冲区读过程

    详解DMA

    DMA传输将数据从个地址空间复制到另个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
    的头像 发表于 10-12 09:45 1.5w次阅读

    详解精密封装技术

    详解精密封装技术
    的头像 发表于 12-30 15:41 2027次阅读

    ZYNQ基础---AXI DMA使用

    Xilinx官方也提供有DMA的IP,通过调用API函数能够更加灵活地使用DMA。 1. AXI DMA的基本接口
    的头像 发表于 01-06 11:13 2698次阅读
    ZYNQ基础---<b class='flag-5'>AXI</b> <b class='flag-5'>DMA</b>使用