通道的功能
1. 通道的功能
通道的出现进一步提高了CPU的效率。因为通道是一个特殊功能的处理器,它有自己的指令和程序专门负责数据输入输出的传输控制
,而CPU将“传输控制”的功能下放给通道后只负责“数据处理”功能。这样,通道与CPU分时使用内存,实现了CPU内部运算与I/O设
备的平行工作。
典型的具有通道的计算机系统结构图请见CAI演示。
它具有两种类型的总线,
一种是存储总线,承担通道与内存、CPU与内存之间的数据传输任务。
另一种是通道总线,即I/O总线,承担外围设备与通道之间的数 据传送任务。这两类总线可以分别按照各自的时序同时进行工作。
由CAI演示看出,通道总线可以接若干个设备控制器,一个设备控制器可以接一个或多个设备。因此,从逻辑结构上讲,
I/O系统一般具有四级连接:CPU与内存<-->通道<-->设备控制器<-->外围设备。为了便于通道对各设备的统一管理,对同一系列的机器,
通道与设备控制器 之间都有统一的标准接口,设备控制器与设备之间则根据设备要求不同而采用专用接口。
另一方面,具有通道的机器一般是大、中型计算机,数据流通量很大。如果所有的I/O设备都接在一个通道上,那么通道将
成为限制系统效能的细脖子。因此大、中型计算机的I/O系统一般接有多个通道。当然,设立多个通道的另一好处是,对不同类型
的I/O设备可以进行分类管理。
存储管理部件是内存的控制部件,它的主要任务是根据事先确定的优先次序,决定下一周期由哪个部件使用存储总线访问内存
。由于大多数I/O设备是旋转性的设备,读写信号具有实时性,不及时处理会丢失数据,所以通道与CPU同时要求访内时,通道优先
权高于CPU。在多个通道有访内请求时,选择通道和数组多路通道的优先权高于字节多路通道,因为前者一般连接高速设备。
通道的基本功能 是执行通道指令,组织外围设备和内存进行数据传输,按I/O指令要求启动外围设备,向CPU报告中断等,具体有
以下五项任务:
(1)接受CPU的I/O指令,按指令要求与指定的外围设备进行通信。
(2)从内存选取属于该通道程序的通道指令,经译码后向设备控制器和设备发送各种命令。
(3)组织外围设备和内存之间进行数据传送,并根据需要提供数据缓存的空间,以及提供数据存入内存的地址和传送的数据量。
(4)从外围设备得到设备的状态信息,形成并保存通道本身的状态信息,根据要求将这些状态信息送到内存的指定单元,供CPU使用。
(5)将外围设备的中断请求和通道本身的中断请求,按次序及时报告CPU。
2.CPU对通道的管理
CPU是通过执行I/O指令以及处理来自通道的中断,实现对通道的管理。来自通道的中断有两种,一种是数据传送结束中断,另
一种是故障中断。
管态 CPU运行操作系统的管理程序的状态。
目态 CPU执行目的程序时的状态。
大中型计算机的I/O指令都是管态指令,只有当CPU处于管态时,才能运行I/O指令,目态时不能运行I/O指令。这是因为大中型
计算机的软、硬件资源为多个用户所共享,而不是分给某个用户专用。
3.通道对设备控制器的管理
通道通过使用通道指令控制设备控制器进行数据传送操作,并以通道状态字接收设备控制器反映的外围设备的状态。因此,设
备控制器是通道对I/O设备实现传输控制的执行机构。
设备控制器的具体任务如下:
(1)从通道接受通道指令,控制外围设备完成所要求的操作;
(2)向通道反映外围设备的状态;
(3)将各种外围设备的不同信号转换成通道能够识别的标准信号。
通道的类型
1. 选择通道
选择通道又称高速通道,在物理上它可以连接多个设备,但是这些设备不能同时工作,在某一段时间内通道只能选择一个设备进行工作。
选择通道很像一个单道程序的处理器,在一段时间内只允许执行一个设备的通道程序,只有当这个设备的通道程序全部执行完毕后,
才能执行其他设备的通道程序。
选择通道主要用于连接高速外围设备,如磁盘、磁带等,信息以成组方式高速传输。由于数据传输率很高,可以达到15MB/s,
即0.67μs传送一个字节,通道在传送两个字节之间已很少空闲,所以在数据传送期间只为一台设备服务是合理的。
但是这类设备的辅助操作时间很长,在样长的时间里通道处于等待状态,因此整个通道的利用率不是很高。
2.数组多路通道
基本思想:当某设备进行数据传送时,通道只为该设备服务;当设备在执行寻址等控制性动作时,通道暂时断开与这个设备的连接,
挂起该设备的通道程序,去为其他设备服务,即执行其他设备的通道程序。所以数组多路通道很像一个多道程序的处理器。
在IBM系统中常常用到子通道的概念。子通道是指实现每个通道程序所对应的硬设备。选择通道在物理上可以连接多个设备,
但在一段时间内只能执行一个设备的通道程序,也就是说在逻辑上只能连接一个设备,所以它只包含一个子通道。数组多路通道和
字节多路通道不仅在物理上可以连接多个设备,而且在一段时间内能交替执行多个设备的通道程序,换句话说在逻辑上可以连接多
个设备,所以它们包含有若干个子通道。文字教材的表8.1示出IBM4300系统可以连接的通道数目和类型,每个通道可以连接多个设备,
每个子通道可以连接的设备数和设备号。
注意,一个子通道可以连接多个设备,但子通道数并不等于物理上可连接的设备数,而是该通道中能同时工作的设备数。
由于数组多路通道既保留了选择通道高速传送数据的优点,又充分利用了控制性操作的时间间隔为其他设备服务,使通道效率充
分得到发挥,因此数组多路通道在实际系统中得到较多应用。
3.字节多路通道
字节多路通道主要用于连接大量的低速设备,如键盘、打印机等等。例如数据传输率是1000B/s,即传送1个字节的间隔是1ms,
而通道从设备接收或发送一个字节只需要几百纳秒,因此通道在传送两个字节之间有很多空闲时间,字节多路通道正是利用这个空
闲时间为其他设备服务。
字节多路通道和数组多路通道的共同之处:
都是多路通道,在一段时间内能交替执行多个设备的通道程序,使这些设备同时工作。
字节多路通道和数组多路通道的不同之处:
(1)数组多路通道允许多个设备同时工作,但只允许一个设备进行传输型操作,其他设备进行控制型操作。而字节多路通道不仅允许多
个设备同时操作,而且也允许它们同时进行传输型操作。
(2)数组多路通道与设备之间数据传送的基本单位是数据块,通道必须为一个设备传送完一个数据块以后,才能为别的设备传送数据块
。而字节多路通道与设备之间数据传送的基本单位是字节,通道为一个设备传送一个字节后,又可以为另一个设备传送一个字节,因此
各设备与通道之间的数据传送是以字节为单位交替进行。
通道结构的进一步发展,出现了两种计算机I/O系统结构:
1.输入输出处理器(IOP) 是通道结构的I/O处理器。IOP可以和CPU并行工作,提供高速的DMA处理能力,实现数据的高速传送。但是它不是
独立于CPU工作的,而是主机的一个部件。有些IOP例如Intel 8089 IOP,还提供数据的变换、搜索以及字装配/拆卸能力。这类IOP广泛应
用于中小型及微型计算机中。
2.外围处理机(PPU) PPU基本上是独立于主机工作的,它有自己的指令系统,完成算术/逻辑运算,读/写主存储器,与外设交换信息等。
有的外围处理机干脆就选用已有的通用机。外围处理机I/O方式一般应用于大型高效率的计算机系统中