- 常用数据传送控制方式有4种,即:
(1) 程序直接控制方式;
(2) 中断控制方式;
(3) DMA方式;
(4) 通道方式。 - 直接控制方式:由用户进程来直接控制内存或CPU和外围设备之间的信息传送。
CPU和外围设备只能串行工作,依靠标志触发器来控制数据传送。优点:控制简单,需要较少的硬件支持。 中断方式可以减少程序直接控制方式中CPU等待时间以及提高系统的并行工作程度。
CPU与设备(或控制器)之间有相应的中断请求线,而且在设备控制器的控制状态寄存器有相应的中断允许位。
优点:CPU的利用率大大提高,支持多道程序和设备的并行操作。
缺点:数据寄存器较小,中断次数多,CPU处理时间会增加;外围设备多时,中断次数增加出现数据丢失现象;外围设备速度快时,CPU来不及取走而丢失数据。直接存取方式(Direct memory Access):在外围设备和内存之间开辟直接的数据交换通路。该方法只需要在数据块开始和结束需要CPU干涉。故DMA控制器可以代替CPU控制内存和设备之间进行成批的数据交换。
拥有的寄存器:控制状态寄存器、数据缓冲寄存器、传送字节计数器、内存地址寄存器- DMA方式与中断方式的区别:
中断方式:数据缓冲寄存器满之后中断
DMA方式:所要求传送的数据块全部传送结束时中断。这就大大减少了CPU进行中断处理的次数。
中断方式:数据传送是在中断处理时由CPU控制完成的。
DMA方式:在DMA控制器的控制下不经过CPU控制完成的。这就排除了因并行操作设备过多时CPU来不及处理或因速度不匹配而造成数据丢失等现象。
局限性:对外围设备的管理和某些操作仍由CPU控制,设备增多时,多个DMA控制器的同时使用显然会引起内存地址的冲突并使得控制过程进一步复杂化。 - 通道控制方式(Channel control):一个独立于CPU专管输入输出控制的处理机,有自己的通道指令,在CPU启动时开始。
- 通道和DMA的差别:
DMA方式每台设备有一个DMA控制器,通道控制方式则一个通道控制多台设备;数据的传输方向,内存开始地址以及传送的数据块长度等不是由CPU而是由通道来进行控制。
I/O控制器中没有传送字节计数器和内存地址寄存器,多了通道设备控制器和指令执行机构。 - 通道控制方式的数据输入处理过程可描述如下:
(1) 进程要求设备输入数据,CPU发Start指令指明I/O操作、设备号和对应通道。
(2) 通道接收到Start之后,把存放在内存中的通道指令程序读出,设置对应设备的I/O控制器中的控制状态寄存器。
(3) 设备根据通道指令的要求,把数据送往内存中指定区域。
(4) 若数据传送结束,I/O控制器(设备上)通过中断请求线发中断信号请求CPU做中断处理。
(5) 中断处理结束后CPU返回被中断进程处继续执行。