您现在的位置是:首页 > 消费电子 > 技术解析

dma技术的工作原理分析

时间:2018-02-13 来源:

DMA技术是Direct Memory Access的缩写。其意思是“存储器直接访问”。它是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。

本文引用地址: http://power.21ic.com//ce/technical/201802/59876.html

DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大大提高CPU的利用率。 但是采用中断传送有它的缺点,对于一个高速I/O设备,以及批量交换数据的情况,只能采用DMA方式,才能解决效率和速度问题。DMA在外设与内存间直接进行数据交换,而不通过CPU,这样数据传送的速度就取决于存储器和外设的工作速度。

整个数据传输操作在一个称为“DMA控制器”的控制下进行的。CPU除了在数据传输开始和结束时作一点处理外,在传输过程中CPU可以进行其它的工作。这样,在大部分时间里,CPU和输入输出都处在并行操作。因此,使整个计算机系统的效率大大提高。

DMA原理

DMA原理:DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从 来源 把每一片段的资料复制到 暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。 DMA 传输将数据从一个地址空间复制到另外一个地址空间。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能 嵌入式系统 算法和网络是很重要的。

在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。 一个完整的DMA传输过程必须经过下面的4个步骤。

 

dma技术的工作原理分析

 

一、DMA传输过程

1.DMA请求

CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。

2.DMA响应

DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。

3.DMA传输

DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。 在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。

4.DMA结束

当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停 止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。

由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。

二、DMA传送方式 DMA技术的出现,

使得外围设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续执行程序.那么DMA控制器与CPU怎样分时使用内存呢?通常采用以下三种方法:

(1)停止CPU访内;

(2)周期挪用;

(3)DMA与CPU交替访内存.

1.停止CPU访问内存

当外围设备要求传送一批数据时,由DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线、数据总线和有关控制总线的使用权.DMA控制器获得总线控制权以后,开始进行数据传送.在一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU.图8.16(a)是这种传送方式的时间图.很显然,在这种DMA传送过程中,CPU基本处于不工作状态或者说保持状态。

 

dma技术的工作原理分析

 

优点: 控制简单,它适用于数据传输率很高的设备进行成组传送。

缺点: 在DMA控制器访内阶段,内存的效能没有充分发挥,相当一部分内存工作周期是空闲的。这是因为,外围设备传送两个数据之间的间隔一般总是大于内存存储周期,即使高速I/O设备也是如此。例如,软盘读出一个8位二进制数大约需要32us,而半导体内存的存储周期小于0.5us,因此许多空闲的存储周期不能被CPU利用.

2.周期挪用: 当I/O设备没有DMA请求时,CPU按程序要求访问内存;一旦I/O设备有DMA请求,则由I/O设备挪用一个或几个内存周期。

这种传送方式的时间图如下:

 

dma技术的工作原理分析

 

I/O设备要求DMA传送时可能遇到两种情况:

(1) 此时CPU不需要访内,如CPU正在执行乘法指令。由于乘法指令执行时间较长,此时I/O访内与CPU访内没有冲突,即I/O设备挪用一二个内存周期对CPU执行程序没有任何影响。

(2) I/O设备要求访内时CPU也要求访内,这就产生了访内冲突,在这种情况下I/O设备访内优先,因为I/O访内有时间要求,前一个I/O数据必须在下一个访内请求到来之前存取完毕。显然,在这种情况下I/O 设备挪用一二个内存周期,意味着CPU延缓了对指令的执行,或者更明确地说,在CPU执行访内指令的过程中插入DMA请求,挪用了一二个内存周期。 与停止CPU访内的DMA方法比较,周期挪用的方法既实现了I/O传送,又较好地发挥了内存和CPU的效率,是一种广泛采用的方法。但是I/O设备每一次周期挪用都有申请总线控制权、建立线控制权和归还总线控制权的过程,所以传送一个字对内存来说要占用一个周期,但对DMA控制器来说一般要2—5个内存周期(视逻辑线路的延迟而定)。因此,周期挪用的方法适用于I/O设备读写周期大于内存存储周期的情况。

3.DMA与CPU交替访内 如果CPU的工作周期比内存存取周期长很多,此时采用交替访内的方法可以使DMA传送和CPU同时发挥最高的效率。假设CPU工作周期为 1.2μs,内存存取周期小于0.6μs,那么一个CPU周期可分为C1和C2两个分周期,其中C1供DMA控制器访内,C2专供CPU访内。

这种传送方式的时间图如下:

 

dma技术的工作原理分析

 

下页图是DMA与CPU交替访内的详细时间图.假设CPU工作周期为1.2us,内存存取周期小于0.6us,那么一个CPU周期可分为C1和C2两个分周期,其中C1专供DMA控制器访内,C2专供CPU访内.

这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时制的。CPU和DMA控制器各自有自己的访内地址寄存器、数据寄存器和读/写信号等控制寄存器。在C1周期中,如果DMA控制器有访内请求,可将地址、数据等信号送到总线上。在C2周期中,如CPU有访内请求,同样传送地址、数据等信号。事实上,对于总线,这是用C1,C2控制的一个多路转换器,这种总线控制权的转移几乎不需要什么时间,所以对DMA传送来讲效率是很高的。

这种传送方式又称为“透明的DMA”方式,其来由是这种DMA传送对CPU来说,如同透明的玻璃一般,没有任何感觉或影响。在透明的DMA方式下工作,CPU既不停止主程序的运行,也不进入等待状态,是一种高效率的工作方式。当然,相应的硬件逻辑也就更加复杂。

 

dma技术的工作原理分析
换一批

延伸阅读

[趣科技] 活甲虫背上这个“背包”,人类就能控制它了

活甲虫背上这个“背包”,人类就能控制它了

如果你时长担心机器人未来某天将推翻人类的统治,那机械昆虫的存在可能会让你在晚上更加难以安睡。......

关键字:科技 趣闻 控制器

[趣科技] 像癌症一样传播:世界首个PLC病毒问世

像癌症一样传播:世界首个PLC病毒问世

这是第一个无需借助PC或其他系统,即可实现在PLC之间进行传播的蠕虫病毒。......

关键字:科技 PLC 可编程控制器 蠕虫病毒

[趣科技] 一款借助传感技术的智能洒水器

一款借助传感技术的智能洒水器

一款名为Mist的智能浇灌系统控制器。它由美国加州的初创公司Mist Labs开发,湖能够利用用户安放在花园内的湿度传感器,以及本地的天气预报信息,为用户花园中的植物提供合适的水分供给......

关键字:智能 浇灌系统 控制器 传感器 水分供给

[图酷] Gest体感“手套”控制器使用上更加简单实用

Gest体感“手套”控制器使用上更加简单实用

我们可能还记得任天堂在上世纪八十年代推出的体感控制器任天堂Power Glove ,由于当时技术支持不足,因此它的功能也就没有发挥出来。现在又有很多公司正尝试开发智能手套,比如Manus。这款设备配置......

关键字:

[趣科技] Wii U 控制器将加入 NFC ,为游戏增加更多可能玩法

Wii U 控制器将加入 NFC ,为游戏增加更多可能玩法

Wii U 从发布到现在也已经有段时间了,很多人都想知道关于这个控制器的更多消息,想买的人更是心痒。还好任天堂的高管 Satoru Iwata 出来给大伙挠挠痒了,除了财报不够好看(任天堂第三财季利润 5.28 亿美元 同比下降......

关键字:Wii NFC 控制器

[趣科技] 设计有点不同的 Wii U 控制器短暂地出现过,然后又消失了~

设计有点不同的 Wii U 控制器短暂地出现过,然后又消失了~

话说 Wii U 的主机跟它的控制器在上年的 E3 2011 上跟大家见过面,直到约一年之后的今天,一个设计跟之前有点不同的控制器在一位名为 MATTY B00SH 的朋友之 Twitter 上出现了一阵子,之后很快地消失了。将两个设计比......

关键字:Wii 控制器

[新鲜事] 100块就拿走!Intel推迄今最便宜电脑

100块就拿走!Intel推迄今最便宜电脑

售价15美元的Quark微控制器开发工具包D2000,可能是英特尔推出的有史以来最便宜的一款计算机。 ......

关键字:Intel 计算机 微控制器

[趣科技] 新旧 MagSafe 比一比,幸好 Apple 会卖转换器呢

新旧 MagSafe 比一比,幸好 Apple 会卖转换器呢

新一代的 MacBook Pro 15 寸薄了,而用作充电的 MagSafe(MagSafe 2)亦因此而变小了,那么旧的就不能用?不用担心,Apple 早就准备了一个价值大约 60 人民币的转换器来容下旧的一代的 MagSafe 1。不......

关键字:MagSafe Apple 转换器

[新鲜事] 美国WiFi也不怎么样嘛,Google推Chromecast转换器

美国WiFi也不怎么样嘛,Google推Chromecast转换器

两年前,Google推出Chromecast电视棒,由于可以插入电视机的HDMI接口让用户在电视上播放网络传输的视频内容,这款售价低廉(35美元)的产品迅速在亚马逊上卖到脱销。但在一片叫好声中,也有人称Chromecast存在一些问题,比如......

关键字:亚马逊 解决方案 Google 网络连接 转换器
发表评论 共有条评论
用户名: 验证码:

精确稳定 让平均电流法帮你实现模块电源并联

精确稳定 让平均电流法帮你实现模块电源并联

今天要为大家介绍的是平均电流法,这种方法能够精确稳定的帮助工程师实现电源模块的并……

九款最简单的电子镇流器电路图原理图分析

九款最简单的电子镇流器电路图原理图分析

从工作原理而言,电子镇流器是一个电源变换电路,它将交流输入市电电源的波形、频率和……

干货|交流接触器常用接线电路图和实物图

干货|交流接触器常用接线电路图和实物图

今天分享一些电气知识中的交流接触器常用接线电路图和实物图,从简单到复杂。

……

项目外包