一、输入输出系统的发展阶段
1. 早期阶段:分散连接;CPU和I/O设备串行工作,I/O设备与主机的信息交换必须通过CPU,具有以下特点
(1)每个I/O设备都必须配有一套独立的逻辑电路与CPU相连,用以实现I/O设备与主机的信息交换。
(2)输入输出过程是穿插在CPU执行程序过程之中进行的(程序查询方式),极其浪费时间。
(3)每个I/O设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,不便于设备的删减。
2. 接口模块和DMA阶段:总线连接;CPU与I/O设备并行工作
(1)接口模块:I/O设备通过接口模块与主机连接;在接口中都设有数据通路和控制通路。数据经过接口既起到缓冲作用,又可完成串-并变换。采用程序中断方式使I/O设备与CPU以并行的方式进行工作。虽然这个阶段实现了CPU与I/O设备并行工作,但是在主机与I/O设备交换信息时,CPU要中断现行程序(关于为何要中断先行程序,请看下面程序中断方式的介绍),即CPU与I/O设备还不能做到绝对的并行工作。
(2)程序中断方式:I/O设备进行自身准备时,CPU不查询;I/O与主机交换信息时,CPU暂停现行程序,去处理中断服务程序,中断服务程序处理完成之后,继续执行程序。
(3) DMA(Direct Memory Access)技术:I/O设备与主存直接交换信息,特点如下:
1)主存和I/O之间有一条直接数据通道
2)不中断现行程序
3)周期挪用:在I/O准备完成之后,DMA请求一个总线周期,完成信息交换
3. 通道结构
在小型和微型计算机中,采用DMA方式可实现高速I/O设备与主机之间成组数据的交换。但在大中型计算机中,I/O设备配置繁多,数据传送频繁,若仍采用DMA方式会出现一系列问题:
(1) 如果每台I/O设备都配置专用的DMA接口,不仅增加了硬件成本,而且为了解决众多DMA接口同时访问主存的冲突问题,会使控制变得十分复杂。
(2)CPU需要对众多的DMA接口进行管理,同样会占用CPU的工作时间,而且因频繁地进入周期挪用阶段,也会直接影响CPU的整体工作效率。
因此在大中型计算机系统中,采用I/O通道的方式来进行数据交换。
通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,可以视为一种具有特殊功能的处理器。通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序,但不是一个完全独立的处理器。它依据CPU的I/O指令进行启动、停止或改变工作状态,是从属于CPU的一个专用处理器。依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故提高了CPU的资源利用率。
4. I/O处理机
输入输出系统发展到第四阶段,出现了I/O处理机。I/O处理机又称为外围处理机(Peripheral Processor),它基本独立于主机工作,既可完成I/O通道要完成的I/O控制,又可完成码制变换、格式处理、数据块检错、纠错等操作。具有I/O处理机的输入输出系统与CPU工作的并行性更高,I/O系统对主机来说具有更大的独立性。
二、输入输出系统的组成
1. I/O软件
(1)主要任务:
1)将用户编制的程序(或数据)输入主机内。
2)将运算结果输送给用户。
3)实现输入输出系统与主机工作的协调等。
(2)I/O指令:机器指令的一类;操作码字段可作为I/O指令与其他指令(如访存指令、算逻指令、控制指令等)的判别代码,命令码体现I/O设备的具体操作,设备码是多台I/O设备的选择码。
(3)通道指令:通道指令是对具有通道的I/O系统专门设置的指令;这类指令一般用以指明参与传送(写入或读取)的数据组在主存中的首地址;指明需要传送的字节数或所传送数据组的末地址;指明所选设备的设备码及完成某种操作的命令码。这类指令的位数一般较长。
2. I/O硬件
输入输出系统的硬件组成是多种多样的,在带有接口的I/O系统中,一般包括接口模块及I/O设备两大部分。具有通道的I/O系统,一个通道可以和一个以上的设备控制器相连,一个设备控制器又可以控制若干台同一类型的设备。例如,IBM360系统的一个通道可以连接8个设备控制器,一个设备控制器又与8台设备相连,因此,一个通道可以管理64台设备。
参考文档:1. https://blog.csdn.net/dongyanxia1000/article/details/53785266