> 旅游
dma数据的传送是以什么为单位(dma方式的数据传送处理过程)
导语:什么是DMA数据传送方式
先看正常的数据传送:
8086的串传送指令:
格式:movsb
功能:执行movsb指令相当于进行下面几步操作。
((es)16+(di)) = ((ds)16+(si))传送数据:源地址是DS:SI,目的地址是ES:DI修改地址:如果df=0 则 (si)=(si)+1 (di)=(di)+1,如果df=1则: (si)=(si)-1 (di)=(di)-1上面的指令就是把源地址SI的内存块内容传送到目标块DI。传送过程中用到了CPU内部寄存器:DS、ES、SI、DI等,也就是说,这样的数据传送是通过CPU才得以进行的。
这种数据传送方式当数据量很大的时候,CPU的资源将被大量消耗。为了将CPU从这种单一的数据传送工作中解放出来,由此产生了DMA的数据传送方式:
从上图可以看出,在CPU和外设之间,增加了一个DMA控制电路,这个芯片的结构如下图:
8237DMA芯片结构图
上图是一块实际的DMA芯片。目前DMA 芯片大部分已经集成到了南桥中。
下图是DMA简单的功能框图:
当DMA工作时,需要取得总线控制权。
对于串传送指令,可以简单认为,DMA芯片代替CPU完成了类似于 (si)=(si)+1 、(di)=(di)+1或者 (si)=(si)-1、 (di)=(di)-1的源数据块和目标数据块的地址加减工作,从而实现了数据块的传送,并将CPU解放出来。
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小思创作整理编辑!