输入输出系统概述

输入输出系统的发展概况

输入输出系统的发展大致可分为4个阶段。

1.早期阶段

早期的I/0设备种类较少,I/O设备与主存交换信息都必须通过CPU,如图5.1所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yeERwFAu-1588940769097)(https://lvxueyangboke.oss-cn-beijing.aliyuncs.com/images/20200508084723.png)]

这种交换方式延续了相当长的时间。当时的I/O设备具有以下几个特点。

每个I/O设备都必须配有一套独立的逻辑电路与CPU相连,用来实现I/O设备与主机之间的信息交换,因此线路十分散乱、庞杂。
输入输出过程是穿插在CPU执行程序过程之中进行的,当I/O设备与主机交换信息时,CPU不得不停止各种运算,因此,I/O设备与CPU是按串行方式工作的,极浪费时间。
每个I/O设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,它们彼此依赖,相互牵连,因此,欲增添、撤减或更换I/O设备是非常困难的。
在这个阶段中,计算机系统硬件价格十分昂贵,机器运行速度不高,配置的VO设备不多,主机与IV0设备之间交换的信息量也不大,计算机应用尚未普及。

2.接口模块和DMA阶段

这个阶段I/O设备通过接口模块与主机连接,计算机系统采用了总线结构,如图5.2所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YZykRucv-1588940769100)(https://lvxueyangboke.oss-cn-beijing.aliyuncs.com/images/20200508091756.png)]

通常,在接口中都设有数据通路和控制通路。数据经过接口既起到缓冲作用,又可完成串-并变换。控制通路用以传送CPU向I/O设备发出的各种控制命令,或使CPU接受来自I/O设备的反馈信号。许多接口还能满足中断请求处理的要求,使I/O设备与CPU可按并行方式工作,大大地提高了CPU的工作效率。采用接口技术还可以使多台I/O设备分时占用总线,使多台I/O设备互相之间也可实现并行工作方式,有利于整机工作效率的提高。

虽然这个阶段实现了CPU和I/O设备并行工作,但是在主机与I/O设备交换信息时,CPU要中断现行程序,即CPU与I/O设备还不能做到绝对的并行工作。
为了进一步提高CPU的工作效率,又出现了直接存储器存取(Direct Memory Access,DMA)技术,其特点是I/O设备与主存之间有一条直接数据通路,I/O设备可以与主存直接交换信息,使CPU在I/O设备与主存交换信息时能继续完成自身的工作,故资源利用率得到了进一步提高。

3.具有通道结构的阶段

在小型和微型计算机中,采用DMA方式可实现高速I/O设备与主机之间成组数据的交换,但在大中型计算机中,I/O设备配置繁多,数据传送频繁,若仍采用DMA方式会出现一系列问题。

①如果每台I/O设备都配置专用的DMA接口,不仅增加了硬件成本,而且为了解决众多DMA接口同时访问主存的冲突问题,会使控制变得十分复杂。

②CPU需要对众多的DMA接口进行管理,同样会占用CPU的工作时间,而且因频繁地进入周期挪用阶段,也会直接影响CPU的整体工作效率(详见5.6节)。

因此在大中型计算机系统中,采用I/O通道的方式来进行数据交换。图5.3所示为具有通道结构的计算机系统。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BbyigiUX-1588940769102)(https://lvxueyangboke.oss-cn-beijing.aliyuncs.com/images/20200508093721.png)]

通道是用来负责管理I/0设备以及实现主存与I/0设备之间交换信息的部件,可以视为一种具有特殊功能的处理器。通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序,但不是一个完全独立的处理器。它依据CPU的I/O指令进行启动、停止或改变工作状态,是从属于CPU的一个专用处理器。依赖通道管理的I/O设备在与主机交换信息时,GPU不直接参与管理,故提高了CPU的资源利用率。

4.具有I/O处理机的阶段输入输出系统发展到第四阶段,出现了I/O处理机。

4.具有I/O处理机的阶段输入输出系统发展到第四阶段,出现了I/O处理机。**

I/O处理机又称为外围处理机(Per-ipheral Processor),它基本独立于主机工作,既可完成I/0通道要完成的I/O控制,又可完成码制变换、格式处理、数据块检错、纠错等操作。具有I/O处理机的输入输出系统与CPU工作的并行性更高,这说明I/O系统对主机来说具有更大的独立性。

别废话,拿你代码给我看。
原文地址:https://www.cnblogs.com/lvxueyang/p/13707384.html