智能车制作

标题: DMA原理 [打印本页]

作者: ☆_。寒泉..+    时间: 2012-2-7 19:58
标题: DMA原理
DMA - Direct Memory Access 直接存储器访问
DMA原理
DMA 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从 来源 把每一片段
DFM
的资料复制到 暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。   DMA 传输重要地将一个内存区从一个装置复制到另外一个。当 CPU初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能 嵌入式系统 算法和网络是很重要的。  
  在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。 一个完整的DMA传输过程必须经过下面的4个步骤。
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的效率大为提高。


作者: gagoo    时间: 2012-2-7 20:02
嘻嘻 受教了 当复习一下计算机硬件技术基础了。
作者: xiatians1008    时间: 2012-3-13 13:13
受教了
作者: wangweinihao    时间: 2012-5-10 12:43
顶一个
作者: tujunjie    时间: 2012-5-11 08:13
理解了
作者: 狼牙0354    时间: 2012-5-13 23:08
顶一下!

作者: 姚一帆    时间: 2012-7-24 10:46
好东西····
作者: zzzmmmxxx    时间: 2012-7-29 20:14
学习了

作者: lianghuihao    时间: 2012-9-15 17:54
bucuo ha
作者: 王帅    时间: 2012-9-18 11:18
复习微机原理了
作者: zoehu    时间: 2013-11-3 13:37
受教了~





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2