目录
[一、I/O 系统的发展](#一、I/O 系统的发展)
[1. 早期阶段](#1. 早期阶段)
[2. 接口模块和 DMA 阶段](#2. 接口模块和 DMA 阶段)
[3. 通道结构阶段](#3. 通道结构阶段)
[4. 处理机阶段](#4. 处理机阶段)
[二、I/O 系统的组成](#二、I/O 系统的组成)
[1. I/O 软件](#1. I/O 软件)
[2. I/O 硬件](#2. I/O 硬件)
[三、I/O 设备](#三、I/O 设备)
[1. I/O 设备分类](#1. I/O 设备分类)
[2. I/O 设备的组成](#2. I/O 设备的组成)
在计算机中,除 CPU 和主存两大模块之外,第三个重要部分就是 输入输出模块 ,也叫做 输入输出系统 ,简写为 I/O 系统。
I/O 系统的主要功能,就是对不同类型数据信息的输入输出,进行高效的控制管理。
一、I/O 系统的发展
I/O 系统的结构,从简单到复杂,发展主要经历了四个阶段。
1. 早期阶段
早期的输入输出设备比较少,计算机的结构是以 CPU 为中心的分散连接方式;所有 I/O 设备都直接连接到 CPU ,与主存交换数据必须通过 CPU。
这样,每个 I/O 设备都必须配备一套独立的逻辑电路与 CPU 连接,线路复杂、难以维护和扩展;而且输入输出数据会打断 CPU 运行,效率比较低。
2. 接口模块和 DMA 阶段
之后计算机的连接方式发展出了总线结构,I/O 设备通过接口模块与总线相连,通过总线进行数据传输。
通常,在接口模块中都会设有 数据通路 和 控制通路。数据可以通过接口起到缓冲作用,也可以完成串并转换;控制通路则可以传送 CPU 发来的控制命令,或者向 CPU 发送来自 I/O 设备的反馈信号。许多接口还可以满足中断请求处理的要求,使 I/O 设备和 CPU 可以并行工作。
为了进一步提高 CPU 的效率,又出现了 直接存储器存取 (Direct Memory Access,DMA)技术。在 I/O 设备和主存之间增加一条专门的数据通路,让它们可以直接交换信息,而无需经过 CPU。
在现代的小型或微型计算机中,一般都会采用接口模块和 DMA 的接口来实现 I/O 设备和主存的数据交换。
3. 通道结构阶段
对于大中型计算机,I/O 设备数量庞大、数据传输非常频繁,采用 DMA 方式需要为每个设备都配置专用的 DMA 接口,CPU 也需要对众多的 DMA 接口进行管理;控制非常复杂、工作效率也会受到很大影响。
因此在大中型计算机中,采用 I/O 通道 的方式来进行数据交换。
通道 可以看作一种从属于 CPU 的专用处理器,专门负责管理 I/O 设备,实现主存和 I/O 设备之间的数据交换。采用通道结构的计算机,I/O 设备的数据传输就全部交给通道来处理,提高了 CPU 的资源利用率。
4. 处理机阶段
I/O 系统进一步发展,出现了 I/O 处理机 。I/O 处理机基本独立于主机工作,又称为 外围处理机。 具有 I/O 处理机的 I/O 系统与 CPU 的并行性更高,进一步解放了 CPU ,提升了 CPU 的工作效率。
二、I/O 系统的组成
I/O 系统主要由两部分组成: I/O 软件 和 I/O 硬件。
1. I/O 软件
I/O 系统软件的主要功能包括:
-
将用户编写的程序输入主机;
-
将运算结果传送给用户;
-
协调 I/O 系统和主机的工作。
不同结构的 I/O 系统采用的软件技术不同。
生活中常见的计算机一般采用接口模块方式,指令系统中需要设置专门的 I/O 指令;调用 I/O 指令并配合系统软件中的管理程序,就可以实现 I/O 设备与主机的协调工作。
如果采用通道管理方式,除 I/O 指令外,还需要有 通道指令 和相应的操作系统。
(1)I/O 指令
I/O 指令也是一种机器指令,它的指令格式与普通的机器指令类似。
上面的 I/O 指令格式中,分为三个字段:
-
操作码:指明当前是一条 I/O 指令;
-
命令码:指明 I/O 设备的具体操作;
-
设备码:用来对多台 I/O 设备进行区分和选择,相当于设备地址。
其中,命令码一般会包括以下几种情况:
-
将数据从 I/O 设备输入主机;
-
将数据从主机输出至 I/O 设备;
-
状态测试。检测 I/O 设备的状态("忙" 还是 "准备就绪"),来确定接下来是否可以进行数据交换;
-
形成具体的操作命令。例如磁盘驱动器的磁头读扇区、写扇区、寻找磁道等等。
(2)通道指令
通道指令是具有通道的 I/O 系统专门设置的指令,又称为 通道控制字 (Channel Control Word,CCW),是通道用来执行 I/O 操作的指令。
这类指令位数一般会比较多,主要功能有:
-
指明要交换的一组数据在主存中的首地址;
-
指明要传送数据的字节数,或者在主存中的末地址;
-
指明所选设备的设备码,以及要完成的具体操作的命令码。
对于采用了通道结构的计算机,CPU 执行的 I/O 指令就只负责启、停 I/O 设备,查询通道和设备状态以及对通道进行操作控制;而具体的数据传输则交给通道来完成。
2. I/O 硬件
I/O 系统的硬件组成是多种多样的,不同结构的 I/O 系统硬件组成也会有所不同。
-
采用接口模块结构的 I/O 系统,硬件主要包括 接口模块 和 I/O 设备 两大部分。I/O 设备通过接口连接到主机;
-
采用通道或处理机结构的 I/O 系统,硬件主要包括 通道/处理机 、设备控制器 和 I/O 设备;一个通道/处理机可以和多个设备控制器相连,一个设备控制器又可以控制多台同类型的设备。
此外,连接各模块的数据通路(I/O 总线)也是 I/O 硬件的一部分。
三、I/O 设备
计算机硬件系统中,主要由三部分组成:CPU 、主存储器和输入输出设备。输入输出设备和它们对应的接口模块,就构成了输入输出系统。
CPU 与主存合称 主机 ,主机之外的大部分硬件设备都可以称为 I/O 设备 ,统称为 外部设备 ,简称 外设。
1. I/O 设备分类
从应用场景和功能上看,I/O 设备可以分为三大类:
(1)人机交互设备
实现用户(操作者)和计算机之间信息交流的设备,又可以分为两类:
-
输入设备:将人们熟悉的信息形式转换为机器能识别的信息形式,如键盘、鼠标、摄像头等。
-
输出设备:将机器运算结果转换为人们熟悉的信息形式,如打印机、显示器等。
(2)信息存储设备
系统软件和各种有用信息,都需要进行存储保留,这就需要能够持久化保存的外部存储设备。这类存储设备一般可以作为计算机的辅助存储器,比如磁盘、光盘、固态硬盘等。
(3)机-机通信设备
多台计算机之间、或者是计算机和其它系统之间如果需要进行通信,必须借助专门的通信设备。比如调制解调器(Modem),A/D、D/A 转换设备等。
2. I/O 设备的组成
I/O 设备的基本组成如下:
-
设备控制器用来控制 I/O 设备的具体动作,不同的 I/O 设备需要完成的控制功能也不同;
-
机、电、磁、光部件是 I/O 设备的工作部件,与具体功能有关;内部结构涉及到机、电、磁、光工作原理;
-
现代 I/O 设备一般还会通过 I/O 接口与主机相连。