I/O控制方式

时间:2024-03-16 07:19:33

I/O控制方式发展目标:

尽量减少主机对I/O控制的干预,把主机从繁忙的I/O控制事务中解脱出来,进行更多的数据处理,提高计算机效率和资源的利用率

选择和衡量I/O控制方式有如下3条原则:

(1)数据传输速度足够高,能满足用户的需要但又不丢失数据;
(2)系统开销小,所需的处理控制程序少;
(3)能充分发挥硬件资源的能力,使I/O设备尽可能忙,而CPU等待时间尽可能少。

控制方式(CPU与外围设备并行工作的方式和程度不同)

直接程序控制方式
直接程序控制方式由用户进程直接控制主存或CPU和外围设备之间的信息传送,通过输入/输出指令或询问指令测试I/O设备的忙/闲标志位,决定主存储器与外围设备之间是否交换一个字符或一个字

流程:
I/O控制方式
(1)当用户进程需要输入数据时,通过CPU向控制器发出一条I/O指令,启动设备输入数据,同时把状态寄存器中的忙/闲状态busy置为“1”
(2)用户进程进入测试等待状态,在等待过程中,CPU不断地用一条测试指令检查外围设备状态寄存器中的busy位
(3)而外围设备只有在数据送入控制器的数据寄存器之后,才将该busy位置为“0”,于是处理器将数据寄存器中的数据取出,送入主存指定单元中,完成一个字符的输入/输出,接着进行下一个数据的输入/输出操作

缺点:由于高速的CPU和低速的I/O设备之间的速度不匹配,因此,CPU与外围设备只能串行工作,使CPU的绝大部分时间都处于等待是否完成输入/输出操作的循环测试中,造成CPU的极大浪费,外围设备也不能得到合理的使用,整个系统的效率很低

用途:直接程序控制方式只适合于CPU执行速度较慢,且外围设备较少的系统

中断驱动控制方式
目的:为了减少程序直接控制方式中CPU的等待时间以及提高系统的并行程度,系统引入了中断机制
中断机制引入后,外围设备仅当操作正常结束或异常结束时才向CPU发出中断请求
在I/O设备输入每个数据的过程中,由于无须CPU干预,一定程度上实现了CPU与I/O设备的并行工作
仅当输入/输出完一个数据时,才需CPU花费极短的时间做中断处理

I/O控制方式

优点:从终端输入一个字符的时间约为100 ms, 而将字符送入终端缓冲区的时间小于 0.1 ms
若采用程序I/O控制方式,CPU约有 99.9 ms的时间处于等待中。 采用中断驱动方式后,CPU可利用这 99.9 ms的时间去做其它事情,而仅用 0.1 ms的时间来处理由控制器发来的中断请求

缺点:每传送一个字符或字,都要发生一次中断,占用大量CPU处理时间,可以通过增加缓冲寄存器存放数据,减少中断次数

直接存储器访问(DMA)控制方式

目的:
为了进一步减少CPU对输入/输出的干预,防止并行操作设备过多CPU来不及处理或因速度不匹配而造成的数据丢失现象,而引入DMA控制方式

它不仅设有中断机构,而且增加了DMA控制机构。在DMA控制器的控制下,采用窃取或挪用总线控制权,占用CPU的一个工作周期把数据缓冲器中的数据直接送到主存地址寄存器所指向的主存区域中,在设备和主存之间开辟直接数据交换通道,成批地交换数据,而不必CPU的干预
I/O控制方式

特点:
①数据传输以数据块为基本单位
②所传送的数据从设备直接送入主存,或者从主存直接输出到设备上
③仅在传送一个或多个数据块的开始和结束时,才需CPU的干预,而整块数据的传送则是在控制器的控制下完成

优点
减少了CPU对输入/输出的干预,进一步提高了CPU与I/O设备并行操作程度

缺点
功能较差,不能满足复杂的输入/输出要求

实现前提——四类寄存器

(1) 命令/状态寄存器CR,用于接收从CPU发来的I/O命令或有关控制信息, 或设备的状态。
(2) 内存地址寄存器MAR,在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址
(3) 数据寄存器DR,用于暂存从设备到内存,或从内存到设备的数据
(4) 数据计数器DC,存放本次CPU要读或写的字(节)数

适用
适合高速设备与主存之间成批数据传输,适用于小型,微型机中的快速设备

通道控制方式
直接程序控制方式和中断控制方式适合于低速设备的数据传输而DMA方式适合于高速设备的数据传输,但是一个DMA控制器只能控制少量的同类设备,不能满足大型计算机系统的需要 ,通道控制方式可以满足这个要求

基本思想
1.通道控制方式将对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预,可以进一步减少CPU的干预程度

2.通道程序规定了通道进行一次输入输出操作应执行的操作及顺序

I/O控制方式
命令码:规定了指令所执行的操作,读、写、或为其他命令
标识码:相关控制信息,例如,该命令当前是否结束

3.工作过程
①从主存固定单元取出通道地址寄存器(CAW),根据该地址从主存中取出通道指令,通道执行通道控制字寄存器(CCW) 中的通道命令,将 I/O地址送入CCW,发出读、写或控制命令,并修改 CAW 使其指向下一条通道指令地址
②控制器接收通道发来的命令之后,检查设备状态,若设备不忙,则告知通道释放CPU,开始I/O操作。执行完毕后,如果还有下一条通道指令,则返回①,否则转③
③通道完成I/O操作后,向CPU发出中断请求,CPU根据通道状态字了解通道和设备的工作情况,处理来自通道的中断

优点
可实现CPU、通道和I/O设备三者的并行操作,有效地提高整个系统的资源利用率