什么是DMA方式?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 17:13:25

什么是DMA方式?
什么是DMA方式?

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