来源:网络 | 2007-3-21 | (有4541人读过)
用中断方式控制I/O传送时,每交换一个字节或字要实施一次中断,在成批(或成组成块)传送时效率太低,因此在使用高速I/O设备(例,磁盘或光盘)传送成批数据时,最好采用直接存储器存取(Direct Memory Access)方式。这种方式完全由硬件(称为DMA控制器)来完成I/O传送。数据交换不必经CPU的寄存器为中介,可直接在外设和存储器之间进行。
在DMA控制方式下,当某一外设需要输入/输出一批数据时,可向接口板或主板上的DMA控制器发出请求。DMA控制器接收到这一请求后,向CPU发出总线请求。若CPU响应DMA的请求,就把总线使用权赋给DMA控制器,此后数据传送不再通过CPU,而是在DMA控制器操纵下直接在外设与存储器之间进行,当这批数据传送完毕后,DMA控制器再向CPU发出结束请求,若CPU响应这一中断请求,即可收回总线使用权。由此可见采用DMA控制方式时,CPU只需在数据传送开始前和结束时各响应一次中断,从而减轻了CPU的负担,但DMA控制器一般只能对一台或几台同类型的外设完成控制功能。建立一个DMA传送需要相应的硬件设备,故使用DMA传送少量的数据是不合算的。几乎所有的DMA传送都是用来移动大块的(至少几百个字节)数据。
|