简介
通道选择器即选择哪一个设备和哪一个通道进行I/O操作的设备控制器。由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这造成了I/O 的瓶颈。解决“瓶颈”问题的最有效的方法,便是增加设备到主机间的通路而不增加通道,换言之,就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。通道选择器主要作用如下:1、提高系统吞吐量;提高了系统的可靠性,因为个别通道或控制器的故障不会使设备和存储器之间没有通路。
设备控制器概述设备控制器是计算机中的一个实体, 其主要职责是控制一个或多个 I/O 设备, 以实现 I/O设备和计算机之间的数据交换。它是 CPU 与 I/O 设备之间的接口,它接收从 CPU 发来的命令,并去控制 I/O 设备工作,以使处理机从繁杂的设备控制事务中解脱出来。
设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制器可连接多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备。
设备控制器的复杂性因不同设备而异,相差甚大,于是可把设备控制器分成两类: 一类是用于控制字符设备的控制器,另一类是用于控制块设备的控制器。在微型机和小型机中的控制器,常做成印刷电路卡形式,因而也常称为接口卡,可将它插入计算机。有些控制器还可以处理两个、四个或八个同类设备。1
组成现有的大多数控制器都是由以下三部分组成的。
1) 设备控制器与处理机的接口
该接口用于实现 CPU 与设备控制器之间的通信。共有三类信号线: 数据线、地址线和控制线。数据线通常与两类寄存器相连接,第一类是数据寄存器(在控制器中可以有一个或多个数据寄存器,用于存放从设备送来的数据(输入)或从 CPU 送来的数据(输出));第二类是控制/状态寄存器(在控制器中可以有一个或多个这类寄存器,用于存放从 CPU 送来的控制信息或设备的状态信息)。
2) 设备控制器与设备的接口
在一个设备控制器上,可以连接一个或多个设备。相应地,在控制器中便有一个或多个设备接口,一个接口连接一台设备。在每个接口中都存在数据、控制和状态三种类型的信号。控制器中的 I/O 逻辑根据处理机发来的地址信号去选择一个设备接口。
3) I/O 逻辑
在设备控制器中的 I/O 逻辑用于实现对设备的控制。它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送 I/O 命令; I/O 逻辑对收到的命令进行译码。 每当 CPU 要启动一个设备时,一方面将启动命令发送给控制器;另一方面又同时通过地址线把地址发送给控制器, 由控制器的 I/O 逻辑对收到的地址进行译码, 再根据所译出的命令对所选设备进行控制。设备控制器的组成示于图中
通道类型通道是用于控制外围设备(包括字符设备和块设备)的。由于外围设备的类型较多,且其传输速率相差甚大,因而使通道具有多种类型。这里,根据信息交换方式的不同,可把通道分成以下三种类型:
字节多路通道(Byte Multiplexor Channel)这是一种按字节交叉方式工作的通道。它通常都含有许多非分配型子通道,其数量可从几十到数百个,每一个子通道连接一台 I/O 设备,并控制该设备的 I/O 操作。这些子通道按时间片轮转方式共享主通道。 当第一个子通道控制其 I/O 设备完成一个字节的交换后, 便立即腾出主通道,让给第二个子通道使用;当第二个子通道也完成一个字节的交换后,同样也把主通道让给第三个子通道;依此类推。当所有子通道轮转一周后,重又返回来由第一个子通道去使用字节多路主通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。
数组选择通道(Block Selector Channel)字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的形成。这种通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道。可见,这种通道的利用率很低。
数组多路通道(Block Multiplexor Channel)数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。