计算机组成原理(4)——输入输出系统


除了 CPU 和存储器两大模块外, 计算机硬件系统的第三个关键部分是输入输出系统。随着计算机系统的不断发展,应用范围的不断扩大,I/O 设备的数量和种类也越来越多,它们与主机的联络方式及信息的交换方式也各不相同。因此, 输入输出系统涉及的内容及其繁杂,既包括具体的各类 I/O 设备,又包括各种不同的 I/O 设备如何与主机交换信息(这里主要介绍程序查询、中断和DMA这三种信息交换控制方式)。

概述

输入输出系统的发展概况

(1)早期阶段

早期的 I/O 设备种类较少,I/O 设备与主存交换信息都必须通过 CPU。这种方式延续了相当长的时间,具有以下特点:

  • 分散连接:每个 I/O 设备都必须配有一套独立的逻辑电路与 CPU 相连,因此线路十分散乱、庞杂。而且逻辑控制电路与 CPU 控制器紧密构成一个不可分割的整体,增减、更换 I/O 设备非常困难。
  • CPU 和 I/O 设备串行工作:输入输出过程是穿插在 CPU 执行程序过程之中进行的,当 I/O 设备与主机交换信息时,CPU 不得不停止各种运算,极浪费时间(采用程序查询方式)。

(2)接口模块和 DMA 阶段

接口模块这个阶段 I/O 设备通过 I/O 接口与计算机系统的总线连接

通常,在接口中都设有数据通路和控制通路,许多接口还能满足中断请求处理的要求,使I/O 设备与 CPU 可按并行方式工作(即程序中断方式,并行是指 I/O 自身准备时,CPU 可执行其他程序)。这个阶段实现了 CPU 和 I/O 设备并行工作,但是在主机与 I/O 设备交换信息时,CPU 还是要中断现行程序,即 CPU 和 I/O 设备还不能做到绝对的并行工作。

为了进一步提高 CPU 的工作效率,又出现了直接存储器读取(Direct Memory Access, DMA)技术,其特点是 I/O 设备与主存之间有一条直接数据通路,I/O 设备可以与主存直接交换信息,使 CPU 在 I/O 设备与主存交换信息时能继续完成自身的工作,故资源利用率得到了进一步提高(但 CPU 要向 I/O 设备发出各种控制命令)。

(3)具有通道结构的阶段

虽然使用 DMA 方式可实现高速 I/O 设备与主机的数据交换,但在大中型计算机中,I/O 设备配置繁多,数据传送频繁,如果仍使用 DMA 方式会出现一些问题:
每台 I/O 设备都配置 DMA 接口,硬件成本较高,而且为了解决众多 DMA 接口同时访问主存的冲突问题,会使得控制变得十分复杂。
CPU 需要对众多的 DMA 接口进行管理,同样占用 CPU 的工作时间,直接影响 CPU 的整体工作效率。

因此在大中型计算机系统中,采用 I/O 通道的方式来进行数据交换,通道是具有特殊功能的处理器,由通道对 I/O 设备统一管理。通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序。但它不是一个完全独立的处理器,是从属于 CPU 的一个专用处理器它依据 CPU 的 I/O 指令进行启动、停止或改变工作状态。依赖通道管理的 I/O 设备在于主机交换信息时,CPU 不直接参与管理,故提高了 CPU 的资源利用率(也不是绝对的并行工作)。

(4)具有 I/O 处理机的阶段

输入输出系统发展到第四阶段,出现了 I/O 处理机,它基本独立于主机工作,既可完成 I/O 通道要完成的 I/O 控制,又可完成码制变换、格式处理等操作。具有 IO 处理机的输入输出系统与 CPU 工作的并行性更高,这说明 I/O 系统对主机来说具有更高的独立性。

输入输出系统的组成

输入输出系统由 I/O 硬件和 I/O 软件两部分组成。

I/O 软件

输入输出系统软件的主要任务如下
将用户编制的程序(或数据)输入主机内。
将运算结果输送给用户。
实现输入输出系统与主机工作的协调等。

(1)I/O 指令

在这里插入图片描述

I/O 指令是机器指令的一类,其指令格式与其他指令相似但有所不同,其一般格式如上所示:

  • 操作码:作为 I/O 指令与其他机器指令(如访存指令、算逻指令、控制指令等)的判别代码。
  • 命令码:命令码体现 I/O 设备的具体操作。IO 指令的命令码一般可表述如下几种情况:
    ① 将数据从 IO 设备输入主机。例如,将某台设备接口电路的数据缓冲寄存器中的数据读入 CPU 的某个寄存器。
    ② 将数据从主机输出至 I/O 设备。例如,将 CPU 的某个寄存器中的数据写入某台设备接口电路的数据缓冲寄存器内。
    ③ 状态测试。检测各个 IO 设备所处的状态是“忙”还是“准备就绪”,以便决定下一步是否可进入主机与 I/O 设备交换信息的阶段。
    ④ 形成某些操作命令。不同 I/O 设备与主机交换信息时,需要完成不同的操作。如磁盘的正转、反转。
  • 设备码:多台 I/O 设备的选择码,相当于设备的地址,只有对繁多的 I/O 设备进行编号,才能准确选择某台设备与主机交换信息。

(2)通道指令

通道指令是对具有通道的 I/O 系统专门设计的指令,它是通道用于执行 I/O 操作的指令。通道程序即由通道指令组成,它完成某种外围设备与主存之间传送信息的操作。

I/O 指令是 CPU 指令系统的一部分,是 CPU 用来控制输出输出操作的指令,由 CPU 译码后执行。在具有通道结构的计算机中,I/O 指令不实现 I/O 数据传送,主要完成启、停 I/O 设备,查询通道和 I/O 设备的状态及控制通道所做的其他操作。具有通道指令的计算机,一旦 CPU 执行了启动 I/O 设备的指令,就由通道来代替 CPU 对 I/O 设备的管理。

这类指令一般用以指明参与传送的数据组在主存中的首地址,

I/O 硬件

输入输出系统的硬件组成是多种多样的,包括各种类型的 I/O 设备、I/O 接口、设备控制器及通道等。

I/O 设备与主机的联系方式

I/O 设备与主机交换信息和 CPU 与主存交换信息相比,有许多不同点。例如,CPU 如何对 I/O 设备编址;如何寻址 I/O 设备;信息传送是逐位串行还是多位并行;I/O 设备与主机以什么方式联络,使它们彼此都知道对方处于何种状态;I/O 设备与主机是怎么连接的,等等。

(1)I/O 设备编址方式

通常将 I/O 设备码看作地址码,对 I/O 地址码的编址可采用两种方式:统一编址或不统一编址:

  • 统一编址:将 I/O 地址码看做是存储器地址的一部分。如在 64K 地址的存储空间中,划分出 8K 地址作为 I/O 设备的地址,凡是在这 8K 地址范围内的访问,就是对 I/O 设备的访问。所用的指令与访存指令类似。
  • 不统一编址:I/O 地址和存储器地址是分开的,所用的指令为专门的 I/O 指令。

显然统一编址占用了存储空间,减少了主存容量,但无须专用的 I/O 命令;不统一编址不占用主存空间,故不影响主存容量,但需设 I/O 专用指令。因此,设计机器时,需根据实际情况权衡考虑选取何种编址方式。

(2)设备选址

通过接口电路中的设备选择电路,便可选中要交换信息的设备。

(3)传送方式

逐位串行传送,或并行传送。

(4)联络方式

不论是串行传送还是并行传送,I/O 设备与主机之间必须互相了解彼此当时所处的状态,如是否可以传送、传送是否结束等

  • 立即响应方式。对于一些工作速度缓慢的 I/O 设备,如指示灯的亮与灭、开关的通与断,当它们与 CPU 发生联系时,通常都已使其出于某种等待状态,因此只要 CPU 的 I/O 指令一到,它们便立即响应,故这种设备无需特殊联络信号,称为立即响应方式。

  • 异步工作采用应答信号联络。当 I/O 设备与主机工作速度不匹配时,通常采用该方式。在交换信息前,I/O 设备与 CPU 各自完成自身的任务,一旦出现联络信号,彼此才准备交换信息。需要特殊的联络信号

    下图给出了异步并行应答联络方式。当 CPU 将数据输出到 I/O 接口后,接口立即向 I/O 设备发出一个“Ready”信号,告诉 I/O 设备可以从接口内取数据。I/O 设备收到“Ready”信号后,通常便立即从接口中取出数据,接着便向接口回发一个“Strobe”信号,并让接口转告 CPU,接口中的数据已被取走,CPU 还可继续向此接口送数据。
    同理,当 I/O 设备需向 CPU 传送数据,则先由 I/O 设备向接口送数据,并向接口发“Strobe”信号,表明数据已送出。接口收到联络信号后便通知 CPU 可以取数,一旦数据被取走,接口便向 I/O 设备发“Ready”信号,通知 I/O 设备,数据已被取走,可继续发送数据。
    在这里插入图片描述

  • 同步工作采用同步时标联络。参考总线同步通信控制,同步工作要求 I/O 设备与 CPU 的工作速度完全同步。例如,在数据采集过程中,若外部数据以 2400 bps 的速率传送至接口,则 CPU 也必须以 1/2400 s的速率接收每一位数。

(5)I/O 设备与主机的连接方式

分散式(辐射式)和总线式。采用分散式连接方式,每台 I/O 设备都有一套控制线路和一组信号线,这种连接方式大多出现在计算机发展的初级阶段;总线连接方式通过一组总线(包括地址线、数据线、控制线等)将所有的 I/O 设备与主机连接,这种连接方式是现代大多数计算机系统所采用的方式。

IO 设备与主机信息传送的控制方式

I/O 设备与主机交换信息时,共有 5 中控制方式:程序查询方式、程序中断方式、直接存储器存取方式(DMA)、I/O 通道方式、I/O 处理机方式。

程序查询方式

程序查询方式是由 CPU 通过程序不断查询 I/O 设备是否已做好准备,从而控制 I/O 设备与主机交换信息。要求 I/O 接口内设置一个能反映 I/O 设备是否准备就绪的状态标记,CPU 通过对此标记的检测,可得知 I/O 设备的准备情况。

下图所示为 CPU 从某一 I/O 设备读取数据块至主存的查询方式流程,当现行程序需启动某 I/O 设备工作时,即将此程序流程插入到运行的程序中。由图可知,CPU 启动 I/O 设备后便开始对 I/O 设备的状态进行查询,直到查得 I/O 设备准备就绪,就将数据从 I/O 接口送至 CPU,再由CPU送至主存。这样一个字一个字地传送,直到这个数据块的全部数据传送结束,CPU 才能重新回到原现行程序。

在这里插入图片描述

CPU 和外设采用串行方式工作,即只要一启动 I/O 设备,CPU 便不断查询 I/O 设备的准备情况,从而终止了原程序的执行。CPU 在反复查询的过程中,犹如就地“踏步”,浪费了大量 CPU 的资源。另一方面,I/O 设备准备就绪后(从 I/O 设备读取数据),数据要先送至 CPU,然后再由 CPU 送至主存或其他 I/O 设备,即数据交换必须通过 CPU 来做,使得 CPU 的工作效率不高。

程序中断方式

CPU 在启动 I/O 设备后,不查询设备是否已准备就绪,继续执行自身程序,只是当 I/O 设备准备就绪并向 CPU 发送中断请求后才予以响应(中断现行程序,因为数据传输仍必须通过 CPU 来做),即没有踏步等待现象(I/O 设备准备时),这将大大提高 CPU 的工作效率。

下图示意了采用程序中断方式从 I/O 设备数据块到主存的程序流程。由图中可见,CPU 向 I/O 设备发读指令后,仍在处理其他任务,当 I/O 设备准备就绪并向 CPU 发出中断请求后,CPU 才从 I/O 接口读一个字经 CPU 送至主存或其他 I/O 设备(这是通过执行中断服务程序完成的)。如果 I/O 设备的一批数据尚未传送结束,CPU 再次启动 I/O 设备,命令 I/O 设备再做准备,即重复上面的过程。

在这里插入图片描述

可见程序中断方式实现了 CPU 和 I/O 设备的部分并行,在一定程度上将 CPU 从输入输出工作中解放出来,提高了 CPU 的工作效率。当然,CPU 和 IO 接口不仅在硬件方面需增加相应的电路,而且在软件方面还必须编制中断服务程序

DMA

虽然程序中断方式消除了程序查询方式的“踏步”现象,但是 CPU 在响应中断请求后,必须停止现行程序而转入中断服务程序,而且数据传输必须经过 CPU,这同样是对 CPU 资源的消耗。如果 I/O 设备能直接与主存交换信息而不占用 CPU,那么 CPU 的资源利用率显然又可进一步提高,这就是直接存储器存取DMA)方式。

在 DMA 方式中,主存与 IO 设备之间有一条数据通路,主存与 IO 设备交换信息时,CPU 无须调用中断服务程序,将 CPU 进一步从输入输出工作中解放出来,不需要中断现行程序的执行。若出现 DMA 和 CPU 同时访问主存,CPU 总是将总线占有权让给 DMA,通常把 DMA 方式的这种占有称为周期挪用(周期窃取),窃取的时间一般为一个存取周期。在 DMA 窃取周期时,CPU 没有总线的访问权,但仍能继续做内部操作(如乘法操作,或其他调入 Cache 中应执行的指令)。可见,与程序查询和程序中断方式相比,DMA 方式进一步提高了 CPU 的资源利用率。

在这里插入图片描述

外部设备

CPU 和主存构成了主机,除主机外的大部分硬件设备都可称为 I/O 设备或外部设备。随着计算机的发展,I/O 设备在计算机系统中的低位越来越重要,其成本在整个计算机系统中所占的比重也越来越大,现代计算机系统 IO 设备向多样化、智能化方向发展,品种繁多,性能良好,其价格往往已占到系统总价的 80% 左右。

I/O 设备的组成通常可用下图框中的结构来描述。I/O 设备通过 I/O 接口与主机进行数据交换,主机通过 I/O 接口向设备控制器传输控制命令,且通过 I/O 接口读取设备状态。设备控制器用来控制 I/O 设备的具体动作,不同的 I/O 设备完成的控制功能也不同。机、电、磁、光部件与具体的 I/O 设备有关,即 I/O 设备的具体结构大致与机、电、磁、光的工作原理有关
在这里插入图片描述

IO 设备大致可分为三类:

  • 人机交互设备:实现人体五官可识别的信息与机器可识别的信息之间的转换,如键盘、鼠标、摄像头、语音识别器、显示器、打印机等。
  • 计算机信息存储设备:存储设备多数可作为计算机系统的辅助存储器,如磁盘、光盘、磁带等。
  • 机 - 机通信设备:实现计算机与计算机或其它系统之间完成通信任务的设备,如调制解调器(Modem)。

I/O 接口

接口的功能

接口可看作两个系统或两个部件之间的交接部分,它既可以是两种硬件设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。I/O 接口通常是指主机与 I/O 设备之间设置的一个硬件电路及其相应的软件控制。主机与 I/O 设备之间设置接口的理由如下
每个 I/O 设备都有其设备地址,通过接口可实现 I/O 设备的选择,即接口电路中的设备选择电路。
I/O 设备种类繁多,速度不一,与 CPU 速度相差可能很大,通过接口可实现数据缓冲,达到速度匹配
有些 I/O 设备可能串行传输数据,而 CPU 一般为并行传输,通过接口可实现数据串 - 并格式的转换
I/O 设备的输入输出电平可能与 CPU 的输入输出电平不同,可通过接口实现电平转换
CPU 启动 I/O 设备工作,要向 I/O 设备发各种控制信号,通过接口可传送控制命令
IO 设备需将其工作状态(如“忙”、“就绪”、“错误”、“中断请求”等)及时向 CPU 报告,接口可反映设备的状态,供 CPU 查询

接口的组成

功能决定了硬件电路结构。根据上面接口的功能,可归纳出接口通常应具有以下几个功能以及相应地硬件配置(这里没考虑串-并转换,以及电平转换)。

功能组成
选址功能设备选择电路
传送命令的功能命令寄存器、命令译码器
传送数据的功能数据缓冲寄存器
反映设备状态的功能设备状态标记

在这里插入图片描述

接口的类型

① 按数据传送方式分类,有并行接口(同时传送多位)和串行接口(逐位传送)两类。
② 按功能选择的灵活性分类,有可编程接口(功能及操作方式可用程序来改变或选择)和不可编程接口(不能用程序,但可通过硬连线逻辑来实现不同的功能)两种。
③ 按通用性分类,有通用接口(可供多种 I/O 设备使用)和专用接口。
④ 按数据传送的控制方式分类,有中断接口DMA 型接口

本BLOG上所有的原创文章未经本人许可,不得用于商业用途及传统媒体。网络媒体转载请注明出处,否则属于侵权行为:
https://blog.csdn.net/qq_39583450/article/details/114383311

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值