IO系统的控制方式
概述
输入输出(I/O
)系统作为计算机重要组成部分,其重要性也不言而喻。在面试中我们也常常遇到关于该部分的的面试题,下边让我一起从系统结构角度来学习一下 I/O系统
。
I/O 的组成与功能
要学习 I/O 系统,我们首先要知道什么是 I/O 系统,首先我们给出 I/O 系统的学术定义,
概念 I/O 系统,英文全称为“Input output system”,中文全称为“输入输出系统”,包括 I/O 设备,设备控制器及 I/O 有关软硬件,是计算机系统的重要组成部分。在计算机系统中,通常把处理器和主存储器之外的部分称为输入输出系统。
学术定义比较枯燥,我们举一个简单例子来帮助大家理解。以打印机为例,打印机设备、连接线、驱动程序等整体便可以算作一个 I/O系统
。
I/O系统
的主要功能是:对指定外设进行 I/O 操作,同时完成许多其他的控制。包括:外设编址,数据通路的建立,向主机提供外设的状态信息等。
I/O 系统的控制方式
为了有效地实现物理 I/O 操作,必须通过硬件和软件技术,对 CPU 和 I/O 设备的职能进行合理的分工,以调节系统性能和硬件成本之间的矛盾。按照 I/O 控制器功能的强弱以及和 CPU 之间联系方式的不同,可以把 I/O 设备的控制方式分为五类:
- 程序控制
- 中断方式
- DMA 方式
- CH(通道)方式
- PPU 方式
下边我们分五个小专题来对这五种方式来进行讲解。
程序控制方式
首先,我们能想到的,当然也是最容易的控制方式毫无疑问肯定是程序控制方式。程序控制方式由用户进程直接控制主存或 CPU 和外围设备之间的信息传送。直接程序控制方式又称为询问方式,或忙/等待方式。通过 I/O 指令或询问指令测试 I/O 设备的忙/闲标志位,决定主存与外围设备之间是否交换一个字符或一个字。其整个过程的时序图如下所示:
程序在执行到 IO 操作时,会以一定周期查询 IO 设备的状态标志位,如果处于”忙状态“程序会等待一个周期后,再次进行查询,直到 IO 设备变为“闲状态”。整个过程的流程图如下所示:
直接程序控制方式虽然简单,不需要多少硬件的支持,但由于高速的 CPU 和低速的 I/O 设备之间的速度上不匹配,因此,CPU 与外围设备只能串行工作,使 CPU 的绝大部分时间都处于等待是否完成 I/O 操作的循环测试中,造成 CPU 的极大浪费,外围设备也不能得到合理的使用,整个系统的效率很低。因此,这种 I/O 控制方式只适合于 CPU 执行速度较慢,且外围设备较少的系统。
中断方式
为了减少程序直接控制方式下 CPU 的等待时间以及提高系统的并行程度,系统引入了中断机制。中断机制引入后,在需要 I/O 服务时才中断 CPU 的现行工作,转去执行 I/O 服务。在 I/O 设备输入每个数据的过程中,由于无需 CPU 的干预,一定程度上实现了 CPU 与 I/O 设备的并行工作。仅当输入或输出完一个数据时,才需 CPU 花费极短的时间做中断处理。
虽然说中断方式在一定程度上,提高了 CPU 的利用率,由于 I/O 操作直接由 CPU 控制,每传送一个字符或一个字,都要发生一次中断,仍然占用了大量的 CPU 处理时间。
我们可以看到,上边两种方式本质上还是以 CPU 为中心,所有数据的 IO 操作都需要 CPU 来控制,CPU 的利用率仍然不是很高,为了进一步提高 CPU 利用率,尽量多的让 CPU 专注于运算工作,减少 IO 任务对 CPU 的干扰,人们又提出了下边三种方式。
DMA 方式
DMA(Direct Memory Access)方式
,或者说直接存储器访问控制方式,该种方式下,在 DMA 控制器的控制下,采用窃取或挪用总线控制权,在设备和主存之间开辟直接数据交换通道,成批地交换数据,而不必让 CPU 干预。
DMA方式
直接依靠硬件在主存与 I/O 设备间进行直接的数据传递,在传递期不需 CPU 干预。但是注意,虽然好多 IO 操作由 DMA 控制器完成,但是由于 DMA 方式没有自己的指令集,IO 指令的编码译码工作仍然需要由 CPU 参与。
它具有如下特点:
- 对于高速外设可在很大程度上解放了 CPU(数据传送时,无须 CPU 干预)
- 接口电路复杂
- 仅属于初步解放 CPU
- 交换数据时灵活性差。
通道(CH)方式
通道,独立于 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 处理机。
外围处理机方式(PPU)
用一个功能较弱的计算机管理 I/O,彻底解放 CPU,硬件结构最复杂。这个方式下,IO 操作几乎全部由外围处理机来完成,此时外围处理机类似一个小型 PC。
总结
最后我们用一个表格来总结一下这五种 IO 控制方式的特点:
控制方式 | 特点 |
---|---|
直接程序控制方式 | ①接口电路简单,控制方便 ②对 CPU 的利用率不充分 |
中断方式 | ①对于中低速外设,可极大地提高对CPU的利用率. ②接口电路较复杂 ③ 对高速外设有可能降低对 CPU 的利用率。 |
DMA 方式 | ①对于高速外设可在很大程度上解放了 CPU(数据传送时,无须 CPU 干预) ②接口电路复杂 ③仅属于初步解放 CPU ④交换数据时灵活性差。 |
通道方式 | ①有自己的指令系统(CH 指令)和程序(CH 程序)。 ②执行通道程序时可与 CPU 的运行同时进行——并行性。 ③通道指令功能简单,使用面窄,与 CPU 共用一个主存,还不是独立的 I/O 处理机。 |
外围处理机方式 | ①独立于主机工作,结构接近 CPU,承担控制、通信、维护诊断等任务。 ②结构复杂成本高 |