一. IO控制方式
①. 程序直接控制方式(串行方式)
- 最关键的部分在于CPU读取IO状态,如果IO设备状态为未准备就绪,CPU就将反复读状态,直到IO准备就绪。
- 由于IO设备的速度远远低于CPU速度,采用这种方式会导致CPU效率很低。
②. 程序中断方式
-
为了减少程序直接控制方式下 CPU 的等待时间以及提高系统的并行程度,系统引入了中断机制。
-
因为IO设备速度很慢,CPU处理速度很快,因此在CPU发出读写命令后,可将等待IO的进程阻塞,先切换到别的进程执行。当IO完成后控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序。这样就使得CPU与IO设备能够并行工作。
③. DMA(直接存储方式)
- DMA(Direct Memory Access)方式,或者说直接存储器访问控制方式,该种方式下,在 DMA 控制器的控制下,采用窃取或挪用总线控制权,在设备和主存之间开辟直接数据交换通道,成批地交换数据,而不必让 CPU 干预
- DMA方式 直接依靠硬件在主存与 I/O 设备间进行直接的数据传递,在传递期不需 CPU 干预。但是注意,虽然好多 IO 操作由 DMA 控制器完成,但是由于 DMA 方式没有自己的指令集,IO 指令的编码译码工作仍然需要由 CPU 参与。
④. 通道控制方式
-
通道,独立于 CPU 的专门负责输入输出控制的处理机,它控制设备与内存直接进行数据交换。有自己的通道指令,这些指令由 CPU 启动,并在操作结束时向 CPU 发出中断信号。
-
通道控制方式,实现了 CPU、通道和 I/O 设备三者的并行操作,从而更加有效地提高整个系统的资源利用率。例如,当 CPU 要完成一组相关的读(或写)操作时,只需要向 I/O 通道发出一条 I/O 指令,指出其所要执行的通道程序的首址和要访问的 I/O 设备,通道接收到该指令后,通过执行通道程序便可完成 CPU 指定的 I/O 任务。可见,通道只是在 I/O 操作的起始和结束时向 CPU 发出 I/O 中断申请,相对于之前的控制方式进一步减少了 CPU 的干预程度。
-
但是通道方式也有自己的不足,它虽然有自己的指令系统,但是通道指令功能简单,使用面窄,与 CPU 共用一个主存,还不是独立的 I/O 处理机。
⑤. 外围处理机方式
- 用一个功能较弱的计算机管理 I/O,彻底解放 CPU,硬件结构最复杂。这个方式下,IO 操作几乎全部由外围处理机来完成,此时外围处理机类似一个小型 PC。