IO 系统的控制方式

本贴最后更新于 1430 天前,其中的信息可能已经水流花落

[TOC]

概述

输入输出(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 设备的控制方式分为五类:

  1. 程序控制
  2. 中断方式
  3. DMA 方式
  4. CH(通道)方式
  5. PPU 方式

下边我们分五个小专题来对这五种方式来进行讲解。

程序控制方式

首先,我们能想到的,当然也是最容易的控制方式毫无疑问肯定是程序控制方式。程序控制方式由用户进程直接控制主存或 CPU 和外围设备之间的信息传送。直接程序控制方式又称为询问方式,或忙/等待方式。通过 I/O 指令或询问指令测试 I/O 设备的忙/闲标志位,决定主存与外围设备之间是否交换一个字符或一个字。其整个过程的时序图如下所示:

image.png

程序在执行到 IO 操作时,会以一定周期查询 IO 设备的状态标志位,如果处于”忙状态“程序会等待一个周期后,再次进行查询,直到 IO 设备变为“闲状态”。整个过程的流程图如下所示:

image.png

直接程序控制方式虽然简单,不需要多少硬件的支持,但由于高速的 CPU 和低速的 I/O 设备之间的速度上不匹配,因此,CPU 与外围设备只能串行工作,使 CPU 的绝大部分时间都处于等待是否完成 I/O 操作的循环测试中,造成 CPU 的极大浪费,外围设备也不能得到合理的使用,整个系统的效率很低。因此,这种 I/O 控制方式只适合于 CPU 执行速度较慢,且外围设备较少的系统。

中断方式

为了减少程序直接控制方式下 CPU 的等待时间以及提高系统的并行程度,系统引入了中断机制。中断机制引入后,在需要 I/O 服务时才中断 CPU 的现行工作,转去执行 I/O 服务。在 I/O 设备输入每个数据的过程中,由于无需 CPU 的干预,一定程度上实现了 CPU 与 I/O 设备的并行工作。仅当输入或输出完一个数据时,才需 CPU 花费极短的时间做中断处理。

image.png

虽然说中断方式在一定程度上,提高了 CPU 的利用率,由于 I/O 操作直接由 CPU 控制,每传送一个字符或一个字,都要发生一次中断,仍然占用了大量的 CPU 处理时间。

我们可以看到,上边两种方式本质上还是以 CPU 为中心,所有数据的 IO 操作都需要 CPU 来控制,CPU 的利用率仍然不是很高,为了进一步提高 CPU 利用率,尽量多的让 CPU 专注于运算工作,减少 IO 任务对 CPU 的干扰,人们又提出了下边三种方式。

DMA 方式

DMA(Direct Memory Access)方式,或者说直接存储器访问控制方式,该种方式下,在 DMA 控制器的控制下,采用窃取或挪用总线控制权,在设备和主存之间开辟直接数据交换通道,成批地交换数据,而不必让 CPU 干预。

image.png

DMA方式 直接依靠硬件在主存与 I/O 设备间进行直接的数据传递,在传递期不需 CPU 干预。但是注意,虽然好多 IO 操作由 DMA 控制器完成,但是由于 DMA 方式没有自己的指令集,IO 指令的编码译码工作仍然需要由 CPU 参与。

它具有如下特点:

  1. 对于高速外设可在很大程度上解放了 CPU(数据传送时,无须 CPU 干预)
  2. 接口电路复杂
  3. 仅属于初步解放 CPU
  4. 交换数据时灵活性差。

通道(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,承担控制、通信、维护诊断等任务。
② 结构复杂成本高

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...