• 内容讲解

DMA方式是一种完全由硬件执行I/O交换的工作方式。在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在主存和I/O设备之间进行。DMA控制器向主存发出地址和控制信号,修改主存地址,对传送的字的个数进行计数,并且以中断方式向CPU报告传送操作的结束。DMA方式控制简单,适用于高数据传输率设备进行成组传送。

DMA方式的主要优点是速度快,由于CPU不参加传送操作,因此省去了CPU取指令、取数、送数等操作,也没有保存现场、恢复现场之类的工作。而且,主存地址的修改、传送字个数的计数等也不由软件实现,而是用硬件线路直接实现的。所以,DMA方式能够满足高速I/O设备的要求,也有利于CPU效率的发挥,一般用于高速传送成组数据。

DMA方式的工作过程如下:首先,当要求通过DMA方式传输数据时,DMA控制器向CPU发出请求,CPU释放总线控制权,交由DMA控制器管理;然后,DMA控制器向外设返回一个应答信号,外设与主存开始进行数据交换;最后,当数据传输完毕后,DMA控制器把总线控制权交还给CPU。在这种方式下,DMA控制器与CPU分时使用总线,其时间图如图7-7所示。

 715.gif

在DMA方式中,批量数据传送前的准备工作,以及传送结束后的处理工作,仍由CPU通过执行管理程序来承担,DMA控制器只负责具体的数据传送工作。