输入输出系统
输入输出系统的发展概况
1. 早期阶段
I/O设备种类少,I/O设备与主存交换信息都必须经过CPU。
- 连接方式:
- 分散连接,即每一个I/O设备都有一套独立的逻辑电路与CPU相连,线路十分散乱、庞杂。
- I/O设备与CPU的工作关系
- CPU 和 I/O设备串行工作,即输入输出过程是穿插在CPU执行程序过程当中的,当I/O设备与主存交换信息时,CPU不得不停止各种运算,因此极浪费时间。
- CPU 和 I/O设备串行工作,即输入输出过程是穿插在CPU执行程序过程当中的,当I/O设备与主存交换信息时,CPU不得不停止各种运算,因此极浪费时间。
- 每个I/O设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,彼此相互依赖,欲增减更换I/O设备极其困难。
2. 接口模块 和 DMA 阶段
接口模块阶段
- 连接方式:
- 总线连接。I/O设备与主机通过接口模块连接,采用了总线结构。
- I/O设备与CPU的工作关系
- CPU 和 I/O 设备并行工作。
- 在IO接口中设置有数据通路和控制通路。
- 数据通路:用于传输数据信息。
- 控制通路:用于传输CPU向I/O设备发来的控制信号,或使CPU接收来自I/O设备的反馈信号。
- CPU 和 I/O 设备并行工作。
- 优点:使CPU与I/O设备实现了并行工作,可以使多台I/O设备分时占用总线,多台I/O也可并行工作,有利于整机工作效率的提高。
DMA阶段
为了进一步提高CPU的工作效率出现了直接存储器存取(Direct Memory Access)技术。
- 特征:高速I/O设备与主存之间有一条直接数据通路,I/O设备可以直接与主存交换信息。
- 优点:使CPU在高速I/O设备与主存交换信息时,能继续完成自身的工作。资源利用率得到进一步提升。
3. 具有通道结构的阶段(在《计算机体系结构》课程中讲解)
在小型机和微型机中采用DMA方式可实现高速I/O设备与主机之间成组数据的交换。
但在大中型计算机中采用DMA方式,因为I/O设备配置繁多,数据传输频繁。会出现一系列问题。
-
- 问题一:如果每台I/O设备都配置专用的DMA接口,不仅增加了硬件成本,而且为了解决众多MDA接口同时访问主存的冲突问题,会使控制变得异常复杂。
- 问题二:CPU需要对众多的MDA接口进行管理,同样会影响CPU的工作。
因此在中大型机中,采用I/O通道的方式进行I/O设备与主机的信息交换。
通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件。
通道可以视为一种具有特殊功能的处理器。有专用的通道指令,能独立的执行用通道命令编写的输入输出程序,但不是一个完全独立的处理器。
通道依据CPU的I/O指令启动、停止和改变工作状态,是从属于CPU的一个专用处理器。
- 优点:依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故提高了CPU的资源利用率。
4. 具有 I/O 处理机的阶段(在《计算机体系结构》课程中讲解)
I/O处理机又称为外围处理机(Peripheral Processor),它基本独立于主机工作,既可完成I/O通道完成的IO控制,又可完成码制变换、格式处理、数据块检错、纠错等操作。
- 优点:具有I/O处理机的输入输出系统与CPU工作的并行性更高,I/O系统对于主机的独立性更高。
输入输出系统的组成
输入输出系统由I/O软件和I/O硬件两部分构成。
I/O软件
IO软件的主要任务
- 将用户编制的程序(或数据)输入主机内。
- 将运算结果输出给用户。
- 实现输入输出系统与主机工作的协调。
I/O指令
I/O指令是机器指令的一类,其指令格式与其他指令既有相似之处,又有不同之处。
-
-
- I/O指令的一般格式
-
操作码 | 命令码 | 设备码 |
- 操作码:用于区分I/O指令与其他指令(如访存指令、算逻指令、控制指令等)。
-
命令码:体现I/O设备的具体操作。
-
设备码:多台I/O设备的选择码。
-
I/O指令的命令码的内容
- 将数据从I/O设备输入主机。
- 将数据从主机输出到I/O设备。
- 状态测试。利用命令码检测各个I/O设备的状态是“忙”(Busy),还是“准备就绪”,以便决定下一步是否可进入主机与I/O设备减交换信息的阶段。
- 形成某些操作指令。
-
通道指令
-
- 通道指令是对具有通道的I/O系统专门设置的指令,这类指令一般用于指明参与传送(写入或读取)的数据组在主存中的首地址;
- 指明需要传送的字节数或所传送的数据组的末地址。
- 指明所选设备的设备码及完成某种操作的命令码。
- 通道指令又称为通道控制字(Channel Control Word,CCW),它是通道用于执行I/O操作的指令,可以由管理程序存放在主存的任何地方,由通道从主存中取出并执行。
I/O指令与通道指令的区别
-
-
- 通道指令是通道自身的指令,用来执行I/O操作,如读、写、磁带走带、磁盘找道等。
- 而I/O指令是CPU指令的一部分,是CPU用来控制输入输出操作的指令,由CPU译码后执行。
-
I/O硬件
包括I/O设备、I/O接口、设备控制器、通道等。