程序查询方式
又称程序轮询方式。
缺点: CPU 的绝大部分时间都处于等待 I/O 设备状态的循环测试中,CPU 和 I/O 设备只能串行工作,CPU 利用率非常低
程序中断方式
从设备控制器的角度来看,设备控制器从 CPU 接受一个读命令,然后开始读数据。一旦数据读入设备控制器的数据寄存器,便通过控制线给 CPU 发出中断信号,然后等待 CPU 请求该数据。设备控制器收到 CPU 的取数据请求后,将数据放到数据总线上,传到 CPU 的寄存器中。
从 CPU 的角度看,进程发出读命令后将被阻塞,然后保存进程的上下文,转去执行其他程序。在每个指令周期的末尾,CPU 检查中断信号。当有来自设备控制器的中断时,CPU 保存当前运行进程的上下文,转去执行中断处理程序,也就是 CPU 从设备控制器读一个字的数据传送到寄存器,并存入主存。中断处理完毕后解除该进程的阻塞状态,然后恢复一个进程的上下文,继续运行。
DMA 方式
DMA 的特点:
- 基本传送单位是数据块,前两种方法的基本传送单位是字(字节)
- 传送的数据直接送入内存,不经过 CPU
- 仅在传送一个或多个数据块的开始和结束时,才需要 CPU 干预
- 数据传送结束时发出中断信号
Tip
CPU 在每个总线周期(存储周期)结束后检查是否有 DMA 请求
DMA 中的寄存器:
- 命令/状态寄存器(CR)。接收从 CPU 发来的 I/O 命令、有关控制信息或设备状态
- 内存地址寄存器(MAR)
- 数据寄存器(DR)
- 数据计数器(DC)。存放本次要传送的字(字节)数
DMA 的传输方式
- 停止 CPU 访存:CPU 和 DMA 同时只有一个在工作
- 周期挪用:DMA 挪用 CPU 的一个存取周期,它是一种单字传送方式。当 DMA 请求时,若
- CPU 不在访存,则 DMA 控制总线,传一个字
- CPU 正在访存,则等待该存取周期结束后,CPU 将总线控制权让出
- CPU 和 DMA 同时请求控制总线,则 DMA 优先级更高,先获得控制权
- DMA 与 CPU 交替访存:将 CPU 的工作周期分成两部分,一段时间给 CPU 访存,一段时间给 DMA 访存
通道控制方式
通道是一种硬件机制。通道本质上是一个简单的处理器,专门负责输入、输出控制,具有执行 I/O 指令的能力,并通过执行通道 I/O 程序来控制 I/O 操作。通道的指令系统比较简单,一般只有数据传送指令、设备控制指令等。
在通道控制方式中,CPU 只需发出启动指令,指出要求通道执行的操作和使用的 I/O 设备,该指令就可以启动通道并使该通道从内存中调出相应的通道程序执行。
通道控制方式与 DMA 控制方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。
与 DMA 控制方式相比,通道方式所需要的 CPU 干预更少,而且可以做到一个通道控制多台设备,从而进一步减轻了 CPU 负担。
优点:通道控制方式解决了 I/O 操作的独立性和各部件工作的并行性。把 CPU 从繁琐的输入/输出操作中解放出来。采用通道技术后,不仅能实现 CPU 和通道的并行操作,而且通道与通道之间也能实现并行操作,各通道上的外设也能实现并行操作,从而可提高整个系统的效率。
缺点:由于需要更多硬件(通道处理器),因此其成本较高。通道控制方式通常应用于大型数据交互的场合。