7.4.1 DMA的概念

7.4.1 DMA的概念

所谓DMA 传送方式,即I/O 设备在专用的接口电路DMA 控制器的控制下直接和存储器进行高速数据传输。采用DMA 传送方式时,如I/O 设备需要进行数据传输,首先要向DMA 控制器发出请求,DMA 控制器再向CPU 发出总线请求,要求使用系统总线。接下来,CPU 响应DMA 控制器的总线请求并把总线控制权交给DMA 控制器,然后在DMA 控制器的控制下开始利用系统总线进行数据传输。当数据传输结束后,DMA 控制器向CPU自动交出总线控制权。DMA 控制器传送数据的速度基本上取决于I/O 设备和存储器的速度。值得注意的是,在DMA 的传送过程中,CPU 不参与控制。但若在DMA 传送的过程中,CPU 需要收回系统总线,可通过发送信号来收回总线控制权。

DMA 传送主要用于需要大批量、高速进行数据传送的系统中,如磁盘存取、图形图像处理等。DMA 传送所达到的高速度是以增加系统硬件的复杂度和成本为代价的,因此DMA 传送方式和传统传送方式相比,用硬件控制代替了软件控制。另外,由于在DMA 传送过程中,CPU 失去了对总线的控制权,这样外部中断申请可能不会被及时响应,因此DMA 方式不适合一些实时的数据处理过程。DMA 传送方式通常采用DMA 控制器来取代CPU,来负责以DMA 方式传送数据的全过程。

虽然DMA 方式数据传送主要是依靠硬件来实现的,但为了实现有关控制,CPU 需要事先向DMA 控制器发出有关的控制信息。一般来说,DMA 方式的数据传送过程可以分为三个阶段:传送前预处理、正式数据传送、传送后处理。