精华内容
下载资源
问答
  • DMA技术

    千次阅读 2016-04-14 22:37:33
    DMA技术的出现,使得外围设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续执行程序.那么DMA控制器与CPU怎样分时使用内存呢?通常采用以下三种方法:(1)停止CPU访内存;(2)周期挪用;(3)DMA与CPU交替访问...

       DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。

    DMA技术的出现,使得外围设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续执行程序.那么DMA控制器与CPU怎样分时使用内存呢?通常采用以下三种方法:(1)停止CPU访内存;(2)周期挪用;(3)DMA与CPU交替访问内存.

      要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大大提高CPU的利用率

        但是采用中断传送有它的缺点,对于一个高速I/O设备,以及批量交换数据的情况,只能采用DMA方式,才能解决效率和速度问题。DMA在外设与内存间直接进行数据交换,而不通过CPU,这样数据传送的速度就取决于存储器和外设的工作速度。

      通常系统的总线是由CPU管理的。在DMA方式时,就希望CPU把这些总线让出来,即CPU连到这些总线上的线处于第三态--高阻状态,而由DMA控制器接管,控制传送的字节数,判断DMA是否结束,以及发出DMA结束信号。DMA控制器必须有以下功能:

      1. 能向CPU发出系统保持(HOLD)信号,提出总线接管请求;

      2. 当CPU发出允许接管信号后,负责对总线的控制,进入DMA方式;

      3. 能对存储器寻址及能修改地址指针,实现对内存的读写操作;

      4. 能决定本次DMA传送的字节数,判断DMA传送是否结束

      5. 发出DMA结束信号,使CPU恢复正常工作状态。

    随着大规模集成电路技术的发展,DMA传送已不局限于存储器与外设间的信息交换,而可以扩展为在存储器的两个区域之间,或两种高速的外设之间进行DMA传送,如所示。

      DMAC是控制存储器和外部设备之间直接高速地传送数据的硬件电路,它应能取代CPU,用硬件完成数据传送的各项功能。

      各种DMAC一般都有两种基本的DMA传送方式:

    1. 单字节方式:每次DMA请求只传送一个字节数据,每传送完一个字节,都撤除DMA请求信号,释放总线。

    2. 多字节方式:每次DMA请求连续传送一个数据块,待规定长度的数据块传送完以后,才撤除DMA请求,释放总线。

      在DMA传送中,为了使源和目的间的数据传送取得同步,不同的DMAC在操作时都受到外设的请求信号或准备就绪信号--Ready信号的限制。



    展开全文
  • dma技术文档

    2011-11-24 18:23:35
    dma技术文档
  • DMA技术是Direct Memory Access的缩写。其意思是“存储器直接访问”。它是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。 DMA是指外部设备不通过CPU而直接与...
  • 一种基于DMA技术的高效串口数据处理方法
  • Xilinx官方AXI DMA技术文档,从事ZYNQ的DMA开发必备。
  • DMA技术和及其SG模式

    千次阅读 2020-03-02 10:47:35
    DMA技术 AXI直接数值存取(Drect Memory Access,DMA)IP核在AXI4内存映射和AXI4流IP接口之间提供高带宽的直接内存访问。DMA可以选择分散收集(Scatter Gather,SG)功能还可以将数据移动任务从位于于处理器系统中...

    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]。

    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所示。

    图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向目标设备插入一个标志来指示数据类型。

    图4. 10描述符与MM2S流和控制流的关系

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

    图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

    展开全文
  • DMA技术详解PDF文件

    2011-04-19 19:40:10
    详细讲述了DMA技术,如其原理及其传送过程!!
  • DMA技术介绍

    千次阅读 2020-06-02 16:15:42
    DMA方式是一种完全由硬件进行成组信息传送的控制方式。具有程序中断方式的优点,即在数据准备阶段,CPU与外设并行工作。DMA方式在外设与内存之间开辟一条“直接数据通路”,信息传送不再经过CPU,也就不需要保护、...

    DMA方式是一种完全由硬件进行成组信息传送的控制方式。具有程序中断方式的优点,即在数据准备阶段,CPU与外设并行工作。DMA方式在外设与内存之间开辟一条“直接数据通路”,信息传送不再经过CPU,也就不需要保护、恢复CPU现场等繁琐操作。

    这种方式适用于磁盘机、磁带机等高速设备大批量数据的传送,它的硬件开销比较大。在DMA方式中,中断的作用仅限于故障和正常传送结束时的处理。

    一、DMA方式的特点

    主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。

    DMA方式具有下列特点:

    1. 它使主存与CPU的固定联系脱钩,主存即可被CPU访问,又可被外设访问。
    2. 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
    3. 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
    4. DMA传送速度快,CPU和外设并行工作,提高了系统效率。
    5. DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。

    二、DMA控制器的组成

    在DMA方式中,对数据传送过程进行控制的硬件称为DMA控制器(DMA接口)。当I/O设备需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。其主要功能有:

    1. 接受外设发生的DMA请求,并向CPU发出总线请求。
    2. CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
    3. 确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
    4. 规定数据在主存和外设间的传送方向,发生读写等控制信号,执行数据传送操作。
    5. 向CPU报告DMA操作的结束。

    下图为一个简单的DMA控制器。

    在这里插入图片描述

    1. 主存地址计数器:存放要交换数据的主存地址
    2. 传送长度计数器:用来记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号。
    3. 数据缓冲寄存器:用于暂存每次传送的数据。
    4. DMA请求触发器:每当I/O设备准备好数据后给出一个控制信号,使DMA请求触发器置位。
    5. “控制/状态”逻辑:由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数,并对DMA请求信号和CPU响应信号进行协调和同步。
    6. 中断机构:当一个数据块传送完成后触发中断机构,向CPU提出中断请求。

    在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作。由此可见,DMA控制器必须具有控制系统总线的能力。

    三、DMA的传送方式

    主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时,不通过CPU。但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。

    1、停止CPU访问主存

    这种方式是当外设需要传送成组数据时,由DMA接口向CPU接口发送一个信号,要求CPU放弃地址线、数据线和有关控制线的使用权,DMA接口获得总线控制权后,开始进行数据传送。在数据传送结束后,DMA接收通知CPU可以使用主存,并把总线控制权交还给CPU。在这种传送过程中,CPU基本处于不工作状态或保持原始状态。

    2、DMA与CPU交替访存

    这种方式适用于CPU的工作周期比主存存取周期长的情况。例如,CPU的工作周期是1.2us,主存的存取周期小于0.6us,那么可将一个CPU周期分为C1和C2两个周期,其中C1专供DMA访存,C2专供CPU访存。这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时控制的。

    3、周期挪用

    这种方式是前两种方式的折中,当I/O设备没有DMA请求时,CPU按程序的要求访问主存,一旦I/O设备有的DMA请求,会遇到3种情况。第1种是此时CPU不在访存(如CPU正在执行乘法指令),故I/O的访存请求与CPU未发生冲突;第2种是CPU正在访存,则必须待存取周期结束后,CPU再将总线占有权让出;第3种是I/O和CPU同时请求内存,出现了访存冲突,此刻CPU要暂时放弃总线占有权,由I/O设备挪用一个或几个存取周期。

    四、DMA的传送过程

    DMA的数据处理过程分为预处理、数据传送和后处理3个阶段。

    1、预处理

    由CPU完成一些必要的准备工作。首先,CPU执行几条I/O指令,用以测试I/O设备状态,向DMA控制器的有关寄存器置初值、设置传送方向、启动该设备等。然后,CPU继续执行原来的程序,直到I/O设备准备好发送的数据(输入情况)或接收的数据(输出情况)时,I/O设备向DMA控制器发送DMA请求,再由DMA控制器向CPU发送总线请求(有时将这两个过程统称为DMA请求),用以传输数据。

    2、数据传送

    DMA的数据传送可以以单字节(或字)为基本单位,也可以以数据块为基本单位。对于以数据块为单位的传送(如硬盘),DMA占用总线后的数据输入和输出操作都是通过循环来实现的。需要指出的是,这一循环也是由DMA控制器(而不是通过CPU执行程序)实现的,也就是说,数据传送阶段是完全由DMA(硬件)来控制的。

    3、后处理

    DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理,包括校验送入主存的数据是否正确、测试传送过程中是否出错(错误则转入诊断程序)和决定是否继续使用DMA传送其他数据块等。DMA的传送流程如图:
    在这里插入图片描述

    五、DMA方式和中断方式的区别

    DMA方式和中断方式的重要区别如下:

    1. 中断方式是程序的切换,需要保护和恢复现场;而DMA方式除了预处理和后处理,其他时候不占用CPU的任何资源。
    2. 对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期之后);而对DMA请求的响应可以发生在每个机器周期结束时(在取指周期、间址周期、执行周期之后均可),只要CPU不占用总线就可以被响应。
    3. 中断传送过程需要CPU的干预;而DMA传送过程中不需要CPU的干预,故数据传输速率非常高,适合于高速外设的成组数据传送。
    4. DMA请求的优先级高于中断请求。
    5. 中断方式具有对异常事件的处理能力,而DMA方式仅限于传送数据块的I/O操作。
    6. 从数据传送来看,中断方式靠程序传送,DMA方式靠硬件传送。
    展开全文
  • ISA总线的DMA技术

    2020-10-22 05:59:48
    DMA概述DMA是外设与主存之间的一种数据传输机制。一般来说,外设与主存之间存在两种数据传输方法:(1)PragrammedI/O(PIO)方法,也即由CPU通过内存读写指令或I/O指令来持续地读写外设的内存单元(8位、16位或32
  • DMA技术与DMA控制器

    2011-11-25 22:35:04
    DMA方式不用处理器干预完成M与I/O间数据传送。 DMA期间系统总线由其它主模块控制(驱动) 控制总线的主模块要提供系统的地址及控制信号。 DMA控制器与处理器配合可实现系统的DMA功能
  • DMA技术总结

    2020-12-29 11:16:41
    CPU:一个故事看懂DMA:https://zhuanlan.zhihu.com/p/272200286 太慢不能忍!CPU又拿硬盘和网卡开刀了!:https://mp.weixin.qq.com/s?__biz=MzIyNjMxOTY0NA==&mid=2247485292&idx=1&sn=528260520a264...
    展开全文
  • DMA技术

    2018-02-23 21:10:35
    DMA传送方式是让存储器与外设、或外设与外设之间直接交换数据,不需经过CPU的累加器中转,减少了这个中间环节,并且内存地址的修改、传送完毕的结束报告都是由硬件电路实现的,因此大大地提高了数据的传输速度。...
  • 了解DMA技术

    2015-12-29 11:06:30
    DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。 要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大大提高CPU的...
  • 直接内存存取(DMA)是数字信号处理器(DSP)中用于快速数据交换的重要技术,它具有独立于CPU的后台批量数据传输能力,能够满足实时图像处理中高速数据传输要求。以TI公司的TMS320C6201 DSP芯片为例,介绍了DMA控制...
  • 提出采用MCU自带的DMA功能来实现煤矿井下高速数据采集系统的缓存与传输,数据通过DMA快速地移动,节约了MCU资源,使得MCU能够进行其他操作,从而实现了煤矿井下数据的高速采集。
  • TMS320C6000的DMA技术

    2009-12-20 19:57:45
    采用直接存储器访问(DMA)技术进行数据传输, 将数字信号处理器(DSP)从大量的数据传输任务中 解放出来,专门从事信号处理任务,将会大大提高系统性能。本文介绍了TMS320C6000系列DMA控 制器特点和工程实现,并给出了...
  • 摘要:介绍了Blackfin533中DMA的类型及特点,描述了DMA在实时图像处理领域数据传输中的重要应用,给出了两个具体的应用实例,最后指出了使用Blackfin533的DMA时应注意的事项。  关键词:Blackfin533;DMA;实时...
  • DMA读的操作相对复杂,需要FPGA向主机发出读请求,主机再返回数据。FPGA控制逻辑必须计算发起了多少个读TLP请求,再计算收到的数据是否足够。 一般来说FPGA可以一次发送所有的读请求,然后按照顺序接收数据即可。...
  • 如果想理解Kafaka为什么这么快,得先看DMA是什么. DMA: 无论 I/O 速度如何提升,比起 CPU,总还是太慢。SSD 硬盘的 IOPS 可以到 2 万、4 万,但是我们 CPU 的主频有 2GHz 以上,也就意味着每秒会有 20 亿次的操作....
  • 缓冲、中断和DMA技术

    2014-11-10 13:12:45
    http://www.360doc.com/content/10/0730/11/1871462_42465665.shtml
  • DMA

    2012-12-03 12:40:00
     但是有些数据并不需要运算处理这一类型的操作,只是单纯的移动数据,而把数据读进寄存器,然后再把数据从寄存器写进内存会消耗cpu资源,当需要读写大量数据的时候更是如此,DMA技术就很好地解决了这一问题。...
  • DMA

    2009-03-15 00:02:00
    当我们向计算机中加入了一块新的声卡或其它适配卡时,安装程序可能会提醒我们应该选择一个DMA...DMA技术的重要 性在于,利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,210
精华内容 484
关键字:

dma技术