一条大型机通道(channel)某种程度上类似于PCI 总线(bus),它能将一个或多个控制器连接起来,而这些控制器又控制着一个或更多的设备(磁盘驱动器、终端、LAN端口,等等。)大型机通道和PCI总线之间的一个主要区别是大型机通道通过几对大的bus and tag 电缆(并行通道方式),或者通过常使用ESCON(Enterprise System Connection)光导纤维电缆(串行通道方式)以及光纤通道来连接控制器。这些通道在早期是一些外置的盒子(每个约6'X30''X5'H大小),都已经整合到了系统框架内。
这些通道的超强I/O处理能力是大型机系统功能如此强大的原因之一。
2. CPU寻址I/O设备的方式
◆ 存储器映射I/O或统一编址
◆ I/O设备单独编址
无论选择哪一种编址方法,每个I/O设备都提供状态寄存器和控制寄存器。
3. 设备的连接和工作方式
直接传送、程序查询、中断、DMA、I/O处理机
4. 程序控制、中断和DMA方式管理外围设备会引起两个问题:
◆ 所有外围设备的I/O工作全部都要由CPU来承担,CPU的I/O负担很重,不能专心于用户程序的计算。
◆ 大型计算机系统中的外围设备台数虽然很多,但是一般并不同时工作。
解决上述问题的方法:采用通道处理机
6.5.3 通道
通道处理机能够负担外围设备的大部分I/O工作。
通道处理机:能够执行有限I/O指令,并且能够被多台外围设备共享的小型DMA专用处理机。
1. 通道的功能
(1) 接受CPU发来的I/O指令,根据指令要求选择一台指定的外围设备与通道相连接。
(2) 执行CPU为通道组织的通道程序,从主存中取出通道指令,对通道指令进行译码,并根据需要向被选中的设备控制器发出各种操作命令。
(3) 给出外围设备的有关地址,即进行读/写操作的数据所在的位置。
如 磁盘存储器的柱面号、磁头号、扇区号等。
(4) 给出主存缓冲区的首地址,这个缓冲区用来暂时存放从外围设备上输入的数据,或者暂时存放将要输出到外围设备中去的数据。
(5) 控制外围设备与主存缓冲区之间数据交换的个数,对交换的数据个数进行计数,并判断数据传送工作是否结束。
(6) 指定传送工作结束时要进行的操作。
(7) 检查外围设备的工作状态,是正常或故障。根据需要将设备的状态信息送往主存指定单元保存。
(8) 在数据传输过程中完成必要的格式变换。
例如 把字拆卸为字节,或者把字节装配成字
2. 通道的主要硬件
(1) 寄存器部分
数据缓冲寄存器
主存地址计数器
传输字节数计数器
通道命令字寄存器
通道状态字寄存器
(2) 控制部分
分时控制
地址分配
数据传送
数据装配
拆卸
3. 通道对外围设备的控制通过I/O接口和设备控制器进行通道与设备控制器之间一般采用标准的I/O接口来连接。
通道的类型按通道的工作方式,通道分为选择通道、字节多路通道和数组多路通道三种类型。
(1)选择通道:这种通道可以连接多台快速I/O设备,但每次只能从中选择一台设备执行通道程序,进行主存与该设备之间的数据传送。当数据传送完后,才能选择另一台设备。在这种工作方式中,数据传送以成组方式进行,传送速率很高,多用于连接快速I/O设备。但因连接在选择通道上的多台设备,只能依次使用通道与主存传送数据,故设备之间不能并行工作,且整个通道的利用率不高。
(2)字节多路通道:这种通道可以连接多台慢速I/O设备,以交叉方式传送数据,即各设备轮流使用通道与主存进行数据传送,且每次只传送一个字节。因为每次数据传送仅占用了不同的设备各自分得的很短的时间片,所以大大提高了通道的利用率。
(3)数组多路通道:数组多路通道综合了选择通道和字节多路通道的优点,它有多个子通道。即可以像字节多路通道那样,执行多路通道程序,使所有子通道分时共享总通道;又可以像选择通道那样进行成组数据的传送。
子通道是指实现每个通道程序所对应的硬设备。选择通道在物理上可以连接多台设备,但在一段时间内只能执行一台设备的通道程序,即在逻辑上只能连接一台设备,所以它只包含一个子通道。字节多路通道和数组多路通道在物理上可以连接多台设备,而且在一段时间内可轮流执行多台设备的通道程序,即在逻辑上也可以连接多台设备,所以它们包含若干子通道。需要注意的是,一个子通道可以连接多台设备,但子通道数并不等于物理上可连接的设备数,而是该通道中能够同时工作的设备数。
通道指令(1)I/O指令:I/O指令是计算机系统的一部分,由CPU执行。在采用通道的计算机系统中,I/O指令不直接控制I/O数据的传送,它只负责启动、停止I/O的过程、查询通道和I/O设备的状态、控制通道进行某些操作。
(2)通道指令及其格式:通道指令也称通道控制字CCW,它是通道用于执行I/O操作的指令,由通道从主存中取出并执行之。
命令:命令用于说明通道和设备执行什么操作。命令一般又分为基本操作位和补充位两部分。通道运行时只识别基本操作位,而不识别补充位。
数据地址:它给出本次I/O操作时的主存缓冲区首地址,在数据传送过程中,每传送一个字或一个字节,它就加1或减1。
传送字节数:它表示数据传送字节数,每传送一个字节就修改其值,当为0时,表明传送结束。
特征位:
数据链特征位(SD) 若SD=1,表示下一条通道指令也是数据传送指令。
命令链特征位(CD) 若CD=1,表示该通道指令执行完毕,下一条要执行的通道指令与该通道指令的操作不同。
封锁错误长度特征(SLL) 错误长度是指通道指令中所给定的传送字节数与I/O设备请求传送的字节数不相等,则该通道指令执行完毕产生错误长度标志,并向CPU发出中断请求。若SLL=1,即使产生长度错标志,出不向CPU发出中断请求,继续向下执行通道指令。
封锁写入主存特征位(SKIP) SKIP=1时,禁止将I/O设备读出的数据写入主存。
程序控制中断特征位(PCI) PCI=1时,表示执行本通道指令时,允许产生一个中断条件。
说明:SD=0,CD=0本通道指令是通道程序的最后一条指令,可向CPU发出中断请求。
SD=1,CD=0下一条通道指令和本条通道的操作命令相同。
SD=0,CD=1下一条通道指令和本条通道的操作命令不同。
(3)通道程序:通道程序是由一条或若干条通道指令组成,存放在主存中,它是通过命令链和数据链等特征来实现的。