搜索
写经验 领红包
 > 设计

什么是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解放出来。

本文内容由小萱整理编辑!