输入输出系统
输入输出系统的发展概况
1:早期阶段
早期的I/O设备种类较少,I/O设备与主存交换信息都必须通过CPU.
2:接口模块和DMA阶段
这个阶段I/O设备通过接口模块与主机连接,计算机系统采用了总线结构。
通常,在接口中都设有数据通路和控制通路。数据经过接口既起到缓冲作用,又可完成串-并变换。控制通路用以传送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方式会出现一系列问题。
(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处理机又称为外围处理机,它基本独立于主机工作,既可完成I/O通道要完成的I/O控制,又可完成码制变换、格式处理、数据块检错、纠错等操作。具有I/O处理机的输入输出系统与CPu工作的并行性更高,这说明I/O系统对主机来说具有更大的独立性。
输入输出系统的组成
输入输出系统由I/O软件和I/O硬件两部分组成。
1.I/O软件
输入输出系统软件的主要任务如下:
1.将用编制的程序(或数据)输入主机内。
2.将运算结果输送给用户。
3.实现输入输出系统与主机工作的协调等。
不同结构的输入输出系统所采用的软件技术差异很大。一般而言,当采用接口模块方式时,应用机器指令系统中的I/O指令及系统软件中的管理程序便可使I/O设备与主机协调工作。当采用通道管理方式时,除I/O指令外,还必须有通道指令及相应的操作系统。即使都采用操作系统,不同的机器其操作系统的复杂程序差异也是很大的。
(1)I/O指令
I/O指令是机器指令的一类,其指令格式与其他指令既有相似之处,又有所不同。I/O指令可以和其他机器指令的字长相等,但它还应该能反映CPU与I/O设备交换信息的各种特点,如它必须反映出对多台I/O设备的选择,以及在完成信息交换过程中,对不同设备应做哪些具体操作等。
(2)通道指令
通道指令是对具有通道的I/O系统专门设置的指令, 它是通道用于执行I/O操作的指令,可以由管理程序存放在主存的任何地方,由通道从主存中取出并执行。通道程序即由通道指令组成,它完成某种外围设备与主存之间传送信息的操作。通道指令是通道自身的指令,用来执行I/O操作。而I/O指令是CPU指令系统的一部分,是CPU用来控制输入输出操作的指令,由CPU译码后执行。在具有通道结构的计算机中,I/O指令不实现I/O数据传送,主要完成启、停I/O设备,查询通道和I/O设备的状态及控制通道所做的其他操作。具有通道指令的计算机,一旦CPU执行了启动I/O设备的指令,就由通道来代替CPU对I/O设备的管理。
2.I/O硬件
输入输出系统的硬件组成是多种多样的,在带有接口的I/O系统中,一般包括接口模块及I/O设备两大部分。
I/O设备与主机的联系方式
I/O设备与主机交换信息和CPU与主存交换信息相比,有许多不同点。例如,CPU如何对I/O设备编址;如何寻找I/O设备号;信息传送是逐位串行还是多位并行;I/O设备与主机以什么方式进行联络,使它们彼此都知道对方处于何种状态;I/O设备与主机是怎样连接的,等等。
1.I/O设备编址方式
2.通常将I/O设备码看做地址码,对I/O地址码的编址可采用两种方式:统一编址或不统一编址。统一编址就是将I/O地址看做是存储器地址的一部分。
2.设备寻址
由于每台设备都赋予一个设备号,因此,当要启动某一设备时,可由I/O指令的设备码字段直接指出该设备的设备号。通过接口电路中的设备选择电路,便可选中要交换信息的设备。
3.传送方式
在同一瞬间,n位信息同时从CPU输出至I/O设备,或由I/O设备输入到CPU,这种传送方式称为并行传送。其特点是传送速度较快,但要求数据线多。例如,16位信息并行传送需要16根数据线。
4.联络方式
不论是串行传送还是并行传送,I/O设备与主机这间必须互相了解彼此当时所处的状态,如是否可以传送、传送是否已结束等。这就是I/O设备与主机之间的联络问题。按I/O设备工作速度的不同,可分为三种联络方式。
(1)立即响应方式
对于一些工作速度十分缓慢的I/O设备,如指示灯的亮与灭、开关的通与断、A/D转换器缓变信号的输入等,当它们与CPu发生联系时,通常都已使其处于某种等待状态,因此,只要CPU的I/O指令一到,它们便立即响应,故这种设备无须特殊联络信号,称为立即响应方式。
(2)异步工作采用应答信号联络
当I/O设备与主机工作速度不匹配时,通常采用异步工作方式。这种方式在交换信息前,I/O设备与CPU各自完成自身的任务,一旦出现联络信号,彼此才准备交换信息。
(3)同步工作采用同步时标联络
同步工作要求I/O设备与CPU的工作速度完全同步。例如,在数据采集过程中,若外部数据以2400bps的速率传送至接口,则CPU也必须以1/2400的速率接收每一位数。这种联络互相之间还得配有专用电路,用以产生同步时标来控制同步工作。
I/O设备与主机信息传送的控制方式
I/O设备与主机交换信息时,共有5种控制方式:程序查询方式、程序中断方式、直接存储器存取方式(DMA)、I/O通道方式、I/O处理机方式。
1.程序查询方式
程序查询方式是由CPU通过程序不断查询I/O设备是否做好准备,从而控制I/O设备与主机交换信息。采用这种方式实现主机和I/O设备交换信息,要求I/O接口内设备一个能反映I/O设备是否准备就绪的状态标记,CPU通过对此标记的检测,可得知I/O设备的准备情况。可见这种方式使CPU和I/O设备处于串行工作状态,CPU的工作效率不高。
2.程序中断方式
倘若CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后予以响应,这将大大提高CPU的工作效率。当然,采用程序中断方式,CPU和I/O接口不仅在硬件方面需增加相应的电路,而且在软件方面还必须编制中断服务程序。
3.DMA方式
虽然程序中断方式消除了程序查询方式的“踏步”现象,提高了CPU资源的利用率,但是CPU在响应中断请求后,必须停止现行程序而转入中断服务程序,并且为了完成I/O设备与主存交换信息,还不得不占用CPU内部的一些寄存器,这同样是对CPU资源的消耗。如果I/O设备能直接与主存交换信息而不占用CPU,那么,CPU的资源利用率显然又可进一步提高 ,这就出现了直接存储器存取(DMA)的方式。
在DMA方式中,主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时,无须调用中断服务程序。若出现DMA和CPU同时访问主存,CPU总是将总线占有权让给DMA,通常把DMA的这种占有称为窃取或挪用。窃取的时间一般为一个存取周期,故又把DMA占用的存取周期叫窃取周期。而且,在DMA窃取存取周期时,CPU没能继续作内部操作(如乘法运算)。可见,与程序查询和程序中断方式相比,DMA方式进一步提高了CPU的资源利用率。