第3章输入输出系统 本章主要讨论输入输出系统的基本概念、磁盘阵列的分级、总线的定时控制和总线仲 裁以及I/O系统中的通道处理机的输入输出过程、通道类型和流量设计。 3.学习指南 0 1. 知识点和学习要求 ● 输入输出系统的基本概念 。 了解I/O系统的三种工作方式和I/O处理机的两种形式 。 ● 磁盘阵列 。 了解磁盘阵列的基本概念 。 领会磁盘阵列的分级以及各个级别的特点 。 ● 总线设计。 领会总线的特点。 领会数据宽度和数据通路宽度概念的区别,了解5种数据宽度的适用场合。 领会同步和异步通信方式的通信过程、优缺点以及适用场合。 了解总线的仲裁方式,领会三种集中总线控制方式的总线分配过程、优缺点以及辅助 控制总线线数。 ● 通道处理机。 了解通道方式的输入、输出全过程。 掌握通道的三种类型的特点、所采用的数据宽度以及适用场合。 掌握通道和I/O系统的流量设计与分析。 掌握字节多路通道流量的计算,掌握通道工作周期的设计,能画出通道响应和处理各 台外设请求时刻的时间关系图。 2. 重点与难点 本章的重点:磁盘阵列分级;总线的特点和数据宽度;通道方式工作过程及通道类 型;通道流量的分析和设计。 本章的难点:三种集中总线控制方式的特点;通道的流量设计;画字节多路通道响应 和处理各外设请求的时间关系图。 3.输入输出系统概述 1 在计算机系统中,通常把处理机与主存储器之外的部分统称为输入输出系统,它包括 输入输出设备、输入输出接口和输入输出软件等。 输入输出系统是计算机系统中最具多样性和复杂性的部分。它的多样性表现在广泛 涉及机、光、电、磁、声、自动控制等多种学科,仅从计算机学科来看,输入输出系统最典型 地反映着硬件与软件的结合。而输入输出系统的复杂性隐藏在操作系统之中,一般用户 只需通过简单的命令或程序调用就能使用各种输入输出设备,无须了解输入输出设备的 具体工作细节。 输入输出系统的特点集中反映在异步性、实时性和与设备无关性这三项基本要求上, 它们对输入输出系统的组织产生决定性的影响。 1)异步性 输入输出设备的工作在很大程度上独立于处理机之外,通常不使用统一的中央时钟, 各个设备按照自己的时钟工作,但又要在某些时刻接受处理机的控制。 2)实时性 对于一般外部设备,处理机必须按照不同设备所要求的传送方式和传输速率不失时 机地为设备提供服务,包括从设备接收数据、向设备发送数据及对设备的控制等。如果错 过了服务的时机,就可能丢失数据或造成外设工作的错误。 用于实时控制的计算机系统对时间性的要求更强,如果处理机提供的服务不及时,很 可能造成巨大的损失,甚至造成人身伤害。 对于计算机系统本身的硬件或软件错误,如电源故障、数据校验错、页面失效、非法指 令、地址越界等,CPU也必须及时处理。 3)与设备无关性 计算机系统为了能够适应各种外设的不同要求,规定了一些独立于具体设备的标准 接口。例如,串行接口、并行接口、SCSI接口、USB接口等。各种外设必须根据自己的特 点和要求,选择其中的一种标准接口与计算机连接。凡是连接到同一种标准接口上的不 同类型的设备,它们之间的差异必须由设备本身的控制器通过硬件和软件来进行填补。 这样,处理机本身就无须了解各种外设特定的具体工作细节,可以采用统一的硬件和软件 对品种繁多的设备进行管理。 3.磁盘阵列 2 磁盘阵列(RAID)具有容量大、速度快、可靠性高、造价低廉的特点,它是目前解决计 算机I/O瓶颈的有效方法之一,有着广阔的发展前景。 3.1 RAID 简介 2. RAID是由美国加州大学伯克利分校的D.A.Paterson教授在1988年提出的。 RAID是RedundentArayofInexpensiveDisks的缩写,直译为“廉价冗余磁盘阵列”,简 称“磁盘阵列”。后来RAID中的字母I被改为Independent,RAID就成了“独立冗余磁盘 阵列”,但这只是名称的变化,实质性的内容并没有改变。可以把RAID理解成一种使用 磁盘驱动器的方法,它将一组磁盘驱动器用某种逻辑方式联系起来,作为逻辑上的一个磁 70 盘驱动器来使用。一般情况下,组成的逻辑磁盘驱动器的容量要小于各个磁盘驱动器容 量的总和。 RAID 的优点如下。 (1)成本低,功耗小,传输速率高。在RAID 中,可以让很多磁盘驱动器同时传输数 据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID 可以达到单个磁盘 驱动器几倍、几十倍甚至上百倍的速率。 (2)提供容错功能。这是使用RAID 的第二个原因,因为如果不考虑磁盘上的循环 冗余校验(CRC)码,普通磁盘驱动器就无法提供容错功能。RAID 的容错是建立在每个 磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。 (3)RAID 与传统的大直径磁盘驱动器相比,在同样的容量下,价格要低许多。 3.2 RAID 的分级 2. RAID 可以分为7个级别,即RAID0~RAID6,如表3-1所示。在RAID1~RAID6 的几种方案中,不论何时有磁盘损坏,都可以随时拔出损坏的磁盘,再插入好的磁盘(需要 在硬件上支持热插拔), 数据不会受损,失效磁盘的内容可以很快地重建,重建的工作 由RAID 硬件或RAID 软件来完成。但RAID0 不提供错误校验功能,所以有人说它不 能算作RAID,其实这也是RAID0 为什么被称为0级RAID 的原因———0本身就代表 “没有”。 表3- 1 RAID 的分级 RAID 级别名称 数据 磁盘数 可正常工作的 最多失效磁盘数 检测 磁盘数 RAID0 无冗余无校验的磁盘阵列8 0 0 RAID1 镜像磁盘阵列8 1 8 RAID2 纠错海明码磁盘阵列8 1 4 RAID3 位交叉奇偶校验的磁盘阵列8 1 1 RAID4 块交叉奇偶校验的磁盘阵列8 1 1 RAID5 无独立校验盘的奇偶校验磁盘阵列8 1 1 RAID6 双维无独立校验盘的奇偶校验磁盘阵列8 2 2 RAID0~RAID6 的组织方式,如图3-1所示。图中备份盘和校验盘用灰底色 表示。 RAID0 为无冗余、无检验的磁盘阵列,见图3-1(a), 数据以条带(strip)的形式存放在 磁盘表面上。当从磁盘阵列中按顺序读取这些数据时,所有的磁盘都可以并行工作,各自 读出相应的部分。由于RAID0 不提供数据冗余,只要有一个磁盘出现故障,整个系统将 无法正常工作。 71 图3-1 RAID0~RAID6 RAID1 称为镜像磁盘阵列,如图3-1(b)所示。RAID1 在每次写入数据时,都会将数 据复制到其镜像盘上;当从该磁盘阵列中读取数据时,数据盘和镜像盘可独立同时工作, 最后由最先读出数据的磁盘提供数据。如果某个磁盘出现故障,就由其镜像盘提供数据, 系统仍能继续工作,只是降低了规格而已。 RAID2 为纠错海明码磁盘阵列,见图3-1(c)。每个数据盘存放数据字的一位,还需 要三个磁盘来存放海明检验位,图3-1(c)中的每一行形成一个海明码。每当往数据盘写 入数据时,就随之在校验盘上形成海明校验位。而当从数据盘上读出数据时,海明校验位 72 也被读出来,用于判断数据是否出错,如果出现了1位错误,则可以立即加以纠正。 RAID3 是RAID2 的一个简化版本,称为位交叉奇偶检验磁盘阵列,如图3-1(d)所 示。图中的校验盘专门用于存放数据盘中相应数据的奇偶校验位。如果某个磁盘出故 障,可以根据错误盘以外的所有其他盘中的正确信息恢复故障盘中的数据。 RAID4 是块交叉奇偶检验磁盘阵列,如图3-1(e)所示。它采用比较大的条带,以块 为单位进行交叉存储和计算奇偶检验。RAID4 的缺点是:它们必须访问同一个检验盘 (只有一个), 检验盘称为瓶颈。 RAID5 是无独立校验盘的奇偶校验磁盘阵列,又称为块分布奇偶检验磁盘阵列,如 图3-f) 循环地存放到不同的盘中,以达 1(所示。这里每一行数据块的检验块被依次错开、 到均匀分布的目的。 RAID6 是在RAID5 的基础上为了进一步加强数据保护而设计的一种RAID 方式, 实际上是一种扩展RAID5 等级,如图3-1(g)所示。与RAID5 的不同之处在于,RAID6 增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可 靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但是,由于增加了一个校 验,RAID6 需要分配给奇偶校验信息更大的磁盘空间,所以写入的效率较RAID5 低,而 且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。 目前理论上性能最高的RAID 模式称为RAID7,它具有全新的RAID 架构,由于其 自身就带有实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,且不占用 主机CPU 资源,所以RAID7 可以视为一种小型存储计算机,与其他RAID 架构相比更为 先进,但价格昂贵。 许多大型计算机系统并不局限于只使用一种类型的RAID,可以使用多个RAID 方 案组合起来构建一种“新型”的RAID 。例如,可以将RAID0 与RAID1 组合起来,构成 RAID1+0 或者RAID0+1 。这两种RAID 的区别在于组合方式上,RAID1+0 是先组织 成镜像的RAID1,再将两个RAID1 组织成扩展容量的RAID0,RAID0+1 则反之。4个 磁盘的两种复合RAID 如图3-2所示,其中磁盘的并联表示数据镜像关系,磁盘的串联表 示容量扩展关系。RAID1+0 或RAID0+1 都至少使用4个硬盘。RAID0+1 比RAID1+0 有着更快的读写速度,但可靠性上RAID0+1 不及RAID1+0,这是因为当RAID1+0 有 一个硬盘受损,其余三个硬盘会继续运作,而RAID0+1 只要有一个硬盘受损,同组 RAID0 的另一个硬盘也会停止运作,只剩下两个硬盘运作。因此,RAID1+0 远比 RAID0+1 常用。 图3-2 两种复合RAID 的结构 73 3.总线设计 3 在大多数小型和微型计算机系统中,计算机的各子系统之间通过总线实现连接。 3.总线特点 3.1 总线(Bus)是一组能为多个部件分时共享的公共信息传送线路。共享是指总线上可 以挂接多个部件,各个部件之间相互交换的信息都可以通过这组公共线路传送;分时是指 同一时刻总线上只能传送一个部件发送的信息。总线的优点:成本低、简单。总线的缺 点:总线的带宽形成了信息交换的瓶颈,从而限制了系统中总的I/O吞吐率。 1. 总线事务 通常把在总线上一对设备之间的一次信息交换过程称为一个“总线事务”,把发出总 线事务请求的部件称为主设备,与主设备进行信息交换的对象称为从设备。例如,CPU 要求读取存储器中某单元的数据,则CPU 是主设备,而存储器是从设备。总线事务类 型通常根据它的操作性质来定义,典型的总线事务类型有“存储器读”“存储器写”“I/O 读”“I/O写”“中断响应”等,一次总线事务简单来说包括两个阶段:地址阶段和数据 阶段。 突发传送事务由一个地址阶段和多个数据阶段构成,用于传送多个连续单元的数据, 地址阶段送出的是连续区域的首地址。因此,一次突发传送事务可以传送多个数据。 2. 总线使用权 总线是由多个部件和设备所共享的,为了正确地实现它们之间的通信,必须有一个总 线控制机构,对总线的使用进行合理的分配和管理。 主设备发出总线请求并获得总线使用权后,就立即开始向从设备进行一次信息传送。 这种以主设备为参考点,向从设备发送信息或接收从设备送来的信息的工作关系,称为主 从关系。主设备负责控制和支配总线,向从设备发出命令来指定数据传送方式与数据传 送地址信息。各设备之间的主从关系不是固定不变的,只有获得总线使用权的设备才 是主设备,如CPU 等。但主存总是从设备,因为它不会主动提出要与谁交换信息的 要求。 在定义总线数据传送操作是“输入”或“输出”时,必须以主设备为参考点,即从设备将 数据送往主设备称为“输入”;反之称为“输出”。 通常,将完成一次总线操作的时间称为总线周期。总线使用权的转让发生在总线进 行一次数据传送的结束时刻。在一个总线周期开始时,对CPU 或I/O设备的请求进行 取样,并在这个总线周期进行数据传送的同时也进行判优,选择下一总线周期谁能获得总 线使用权,然后在本周期结束时实现总线使用权的转移,开始新的总线周期。 74 3.总线的数据宽度 3.2 数据宽度是I/O设备取得I/O总线后所传送数据的总量,它不同于前述的数据通路 宽度。数据通路宽度是数据总线的物理宽度,也就是数据总线的线数。而两次分配总线 期间所传送的数据宽度可能要经过多个时钟周期分次传送才能完成。数据宽度有单字 (单字节)、定长块、变长块、单字加定长块和单字加变长块等。 单字(单字节)宽度适合于低速设备。因为这些设备在每次传送一个字(字节)后的访 问等待时间很长,在这段时间里让总线释放出来为别的设备服务,可大大提高总线利用率 和系统效率。采用单字(单字节)宽度不用指明传送信息的长度,有利于减少辅助开销。 定长块宽度适合于高速设备,可以充分利用总线带宽。定长块也不用指明传送信息 的长度,简化了控制。但由于块的大小固定,当它要比实际传送的信息块小得多时,仍要 多次分配总线;而如果大于要传送的信息块,又会浪费总线带宽和缓冲器空间,也使得部 件不能及时转入别的操作。 变长块宽度适合于高优先级的中高速设备,灵活性好,可按设备的特点动态地改变传 送块的大小,使之与部件的物理或逻辑信息块的大小一致,以有效地利用总线的带宽,也 使通信的部件能全速工作。但为此要增大缓冲器空间和增加指明传送信息块大小的辅助 开销和控制。 单字加定长块宽度适合于速度较低而优先级较高的设备。这样,定长块的大小就不 必选择过大,信息块超过定长块的部分可用单字处理,从而减少总线带宽、部件的缓冲器 空间,减少部件可用能力的浪费。不过,若传送的信息块小于定长块的大小,但字数又不 少时,设备或总线的利用率会降低。 单字加变长块宽度是一种灵活有效但复杂、费用高的方法。当要求传送单字时比只 能成块传送的方法节省了不少起始辅助操作;而当成块传送时,块的大小又能调整到与部 件和应用的要求相适应,从而优化了总线的使用。 3.总线定时控制 3.3 主机与外设通过总线进行信息交换时,必然存在时间上的配合和动作的协调问题,否 则系统的工作将出现混乱。总线的定时控制方式一般分为同步定时方式和异步定时 方式。 1. 同步定时方式 所谓同步定时方式,是指系统采用一个统一的时钟信号来协调发送和接收双方的传 送定时关系。时钟产生相等的时间间隔,每个间隔构成一个总线周期。在一个总线周期 中,发送和接收双方可以进行一次数据传送。由于是在规定的时间段内进行I/O操作 的,所以发送者不必等待接收者有什么响应,当这个时间段结束后,就自动进行下一个 操作。 75 同步定时方式中的时钟频率必须能适应在总线上最长的延迟和最慢的接口的需要。 因此,同步定时方式的效率较低,时间利用也不够合理;同时,也没有办法知道被访问的外 设是否已经真正地响应,故可靠性比较低。 2. 异步定时方式 异步定时方式也称为应答方式。在这种方式下,没有公用的时钟,也没有固定的时间 间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。 通常,把交换信息的两个部件或设备分为主设备和从设备,主设备提出交换信息的 “请求”信号,经接口传送到从设备;从设备接到主设备的申请后,通过接口向主设备发出 “回答”信号,整个“握手”过程就是一问一答地进行的。必须指出,从“请求”到“回答”的时 间是由操作的实际时间决定的,而不是由CPU 的节拍硬性规定的,所以具有很强的灵活 性,而且对提高整个计算机系统的工作效率也是有好处的。 异步控制能保证两个工作速度相差很大的部件或设备间可靠地进行信息交换,自动 完成时间的配合。但是,控制较同步方式稍复杂一些,成本也会高一些。 根据“请求”和“回答”信号的撤销是否互锁,异步定时方式有以下三种情况。 1)不互锁 “请求”和“回答”信号都有一定的时间宽度,“请求”信号的结束和“回答”信号的结束 不互锁,如图3-3(a)所示。 2)半互锁 “请求”信号的撤销取决于接收到“回答” 而“回答” 信号, 的撤销由从设备自己决定,如 图3-3(b)所示。 3)全互锁 “请求”信号的撤销取决于“回答”信号的来到,而“请求”信号的撤销又导致“回答”信 号的撤销,如图3-3(c)所示。全互锁方式给出了最高的灵活性和可靠性,当然也付出了增 加接口电路复杂性的代价。 图3-3 “请求”与“回答”信号的互锁 3.4 总线的集中仲裁方式 3. 为了保证同一时刻只有一个申请者使用总线,总线控制机构中设置有总线判优和仲 裁控制逻辑,即按照一定的优先次序来决定哪个部件首先使用总线,只有获得总线使用权 的部件,才能开始数据传送。总线控制逻辑集中在一处(如在CPU 中)的,称为集中式控 制,就集中式控制而言,有三种常见的优先权仲裁方式:链式查询方式、计数器定时查询 76 方式和独立请求方式。 1. 链式查询方式 链式查询方式如图3-4所示,总线控制器使用三根控制线与所有部件和设备相连,而 AB 和DB 分别代表地址总线和数据总线。三个控制信号如下。 图3-4 链式查询方式 (1)总线请求(BR): 该线有效,表示至少有一个部件或设备要求使用总线。 (2)总线忙(BS): 该线有效,表示总线正在被某部件或设备使用。 (3)总线批准(BG):该线有效,表示总线控制器响应总线请求。 与总线相连的所有部件经公共的BR 线发出总线请求,只有在BS 信号未建立前,BR 才能被总线控制器响应,并送出BG 回答信号。BG 信号串行地通过每个部件,如果某个 部件本身没有总线请求,则将该信号传给下一个部件,如果这个部件有总线请求,就停止 传送BG 信号,获得总线使用权。这时该部件将建立BS 信号,表示它占用了总线,并撤销 BR 信号,进行数据的传送。BS 信号在数据传送完后撤销,BG 信号也随之撤销。 显然,链式查询方式的优先次序是由BG 线上串接部件的先后位置来确定的,在查询 链中离总线控制器最近的设备具有最高优先权。 链式查询的优点:只用很少几根线就能按一定的优先次序来实现总线控制,并很容 易扩充。链式查询的缺点:对查询链的故障很敏感,如果第 i 个部件中的查询链电路有 故障,那么第 i 个以后的部件都不能工作。另外,因为查询的优先级是固定的,所以若优 先级较高的部件出现频繁的总线请求时,优先级较低的部件就可能难以得到响应。 2. 计数器定时查询方式 计数器定时查询方式如图3-5所示。总线上的每个部件可以通过公共的BR 线发出 请求,总线控制器收到请求之后,在BS 为“0的(”) 情况下,让计数器开始计数,定时地查询 各个部件以确定是谁发出的请求。当查询线上的计数值与发出请求的部件号一致时,该 部件就使BS 线置“1”,获得了总线使用权,并中止计数查询,直至该部件完成数据传送之 后,撤销BS 信号。 这种计数可以从“0”开始,也可以从中止点开始。如果从“0”开始,各部件的优先次序 和链式查询方式相同,优先级的次序是固定的。如果从中止点开始,即为循环优先级,各 个部件使用总线的机会将相等。计数器的初始值还可以由程序来设置,这就可以方便地 改变优先次序,增加系统的灵活性。定时查询方式的控制线数较多,对于 n 个部件,共需 77 78 图3-5 计数器定时查询方式 2+élog2nù根控制线。 3.独立请求方式 图3-6表示独立请求方式。在这种方式中,每一个共享总线的部件均有一对控制线: 总线请求(BRi)和总线批准(BGi)。当某个部件请求使用总线时,便发出BRi,总线控制 器中有一排队电路,根据一定的优先次序决定首先响应哪个部件的请求BRi,然后给该部 件送回批准信号BGi。 图3-6 独立请求方式 独立请求方式的优点是响应时间快,然而这是以增加控制线数和硬件电路为代价的, 对于n 个部件,控制线的数目将达2n+1根。此方式对优先次序的控制也是相当灵活 的,它可以预先固定,也可以通过程序来改变优先次序。 3.3.5 总线的分布仲裁方式 分布仲裁方式不需要中央仲裁器,即总线控制逻辑分散在连接于总线上的各个部件 或设备中。连接到总线上的主方可以启动一个总线周期,而从方只能响应主方的请求。 每次总线操作,只能有一个主方占用总线使用权,但同一时间里可以有一个或多个从方。 常见的分布式仲裁方式有三种:自举分布式、冲突检测分布式和并行竞争分布式。 1. 自举分布式 每个设备的优先级固定,需要请求总线控制权的设备在各自对应的总线请求线上送 出请求信号。在总线仲裁期间,每个设备通过取回的信息能够检测出其他比自己优先级 高的设备是否发出了总线请求,如果没有,则立即使用总线,并通过总线忙信号阻止其他 设备使用总线;如果一个设备在发出总线请求的同时,检测到其他优先级更高的设备也请 求使用总线,则本设备不能马上使用总线。也就是说,只有在查看到所有优先级比自己高 的设备没有请求时,才能使用总线。 2. 冲突检测分布式 当某个设备要使用总线时,首先检查是否有其他设备正在使用总线,如果没有,则它 就置总线忙,并直接使用总线。若两个设备同时检测到总线空闲,那它们可能都会立即使 用总线,从而发生冲突。因此,每个设备在使用过程中,会侦听总线以检测是否发生冲突, 当发生冲突时,两个设备都会停止传输,延迟一个随机时间之后再重新使用总线,以避免 冲突。这种方案一般用在网络通信总线上,Ethernet就是使用该方案进行总线裁决的。 3. 并行竞争分布式 这是一种较复杂但有效的裁决方案。其基本思想是:总线上的每个设备都有一个唯 一的仲裁号,需要使用总线的主控设备把自己的仲裁号发送到仲裁线上,这个仲裁号将用 在并行竞争算法中。每个设备根据仲裁算法决定在一定时间段后占用总线还是撤销仲 裁号。 3.通道处理机 4 在大型计算机系统中,所连接的I/O设备数量多,输入输出频繁,要求整体的速度 快,单纯依靠主CPU 采取程序查询、程序中断和DMA 等控制方式已不能满足要求,于是 计算机系统引入了通道控制方式。 3.1 通道的作用和功能 4. 1. 通道的作用 在大型计算机系统中,如果仅采用程序查询、程序中断和DMA 三种基本的输入输出 方式来管理设备,将会带来以下两个问题。 1)CPU 负担重 对于程序查询方式,所有外设的输入输出工作均由CPU 承担,不能充分发挥CPU 的计算能力;对于程序中断方式,每传送一个字符都由CPU 执行一段程序来完成(适用 于低速外部设备); 对于DMA 方式,初始化、前处理和后处理等工作需要CPU 来完成(适 79 用于高速外围设备)。 2)接口数量多 大型机中的外围设备台数很多,其种类、工作方式和速度都有比较大的差别,但一般 并不同时工作。如果为每一台设备都配置一个接口,不仅接口的数量很多,而且接口的利 用率低。特别是DMA 控制器,其硬件成本很高。 为了把对外设的管理工作从CPU 中分离出来,使CPU 摆脱繁重的输入输出负担, 从IBM360 系列机开始,普遍采用了通道技术。 2. 通道的主要功能 一般来说,通道的功能包括: (1)接受CPU 发来的I/O指令,并根据指令要求选择一台指定的外围设备与通道 相连。 (2)执行通道程序,即从主存中逐条取出通道指令,对通道指令进行译码,并根据需 要向被选中的设备控制器发出各种操作命令。 (3)给出外部设备的有关地址。例如,给出磁盘存储器的柱面号、磁头号、扇区号等。 (4)给出主存缓冲区的首地址。这个缓冲区用来暂时存放从外设输入的数据或将要 输出到外设的数据。 (5)控制外设与主存缓冲区之间的数据交换的个数。 (6)指定传送工作结束时要进行的操作。例如,将外设的中断请求和通道的中断请 求送往CPU 等。 (7)检查外设的工作状态是否正常,并将该状态信息送往主存指定单元保存。 (8)在数据传输过程中完成必要的格式变换。 3. 通道的硬件组成 通道的硬件包括相关的寄存器和控制逻辑。主要的寄存器有数据缓冲寄存器、主存 地址计数器、传输字节数计数器、通道命令字寄存器、通道状态字寄存器、通道地址字寄存 器等,其中通道命令字寄存器(CCWR)用来存放通道命令字(CCW )。CCW 是控制 I/O操作的关键参数,一条条的通道命令字(通道指令)构成通道程序放在主存中。通道 地址字寄存器(CAWR)指出了通道程序在主存中的起始地址,工作时通道就依照这个地 址到主存中取出CCW 并加以执行。通道状态字寄存器(CSWR)记录了通道程序执行后 本通道和相应设备的各种状态信息,这些信息称为通道状态字(CSW )。CSW 通常放在 主存的固定单元中,此专用单元的内容在执行下一个I/O指令或中断之前是有效的,可 供CPU 了解通道、设备状态和操作结束的原因。 通道对外设的控制通过输入输出接口和设备控制器进行。通道与设备控制器之间一 般采用标准的输入输出接口来连接。通道通过标准接口把操作命令送到设备控制器,设 备控制器解释执行这些通道指令,完成命令指定的操作。设备控制器能够记录外设的状 态,并把状态信息送往通道和CPU 。 80 3.2 通道工作过程 4. 用户通过调用通道完成一次数据传输的过程如图3-7所示,CPU 执行用户程序和管 理程序,通道执行通道程序的时间关系如图3-8所示。 图3-7 通道完成一次数据传输的过程 图3-8 通道程序、管理程序和用户程序的执行时间关系 主要过程分为以下三步。 (1)在用户程序中使用访管指令进入管理程序,由CPU 通过管理程序组织一个通道 程序,并启动通道。 (2)通道执行CPU 为它组织的通道程序,完成指定的数据输入输出工作。 (3)通道程序结束后向CPU 发中断请求。CPU 响应这个中断请求后,第二次调用 管理程序对中断请求进行处理。 81 需要指出的是,CPU 进行输入输出操作时,在用户程序中使用访管指令(地址为 K ) 迫使CPU 由用户程序(目态)进入管理程序(管态), 访管指令是一条广义指令,它除去给 出访管子程序的入口地址外,还给出如设备号、交换长度、主存起始地址等参数,以便管理 程序编制通道程序。管理程序根据访管指令给定的参数编写通道程序,写入主存的一片 区域中,并将其首地址置入通道地址字(CAW)中,然后便可启动该通道开始工作,CPU 返回用户程序的断点 K + n 继续工作。从此时开始,CPU 与通道处于并行工作状态。通 道从CAW 中获得通道程序的入口地址,逐条取出通道指令并执行它,待通道程序执行完 毕后可向CPU 发出中断请求,CPU 响应该中断请求,再次进入管理程序进行结束处理, 本次输入输出操作完成。从图3-8中可以看出,整个输入输出操作的过程是在通道控制 下完成的,而通道的控制是通过执行通道程序实现的。 这样,每完成一次输入输出工作,CPU 只需要两次调用管理程序,大大减少了对用户 程序的打扰。 4.通道的类型 3.3 按照输入输出信息的传送方式,通道可分为三种类型,即字节多路通道、选择通道和 数组多路通道。 1. 字节多路通道 字节多路通道是一种简单的共享通道,用于连接与管理多台低速设备,以字节交叉方 式传送信息,其传送方式如图3-9所示。字节多路通道先选择设备A,为其传送一个字节 A1;然后选择设备B,传送字节B1;再选择设备C,传送字节C1。后续通道再交叉地传送 A2,B2,C2,…所以字节多路通道的功能好比一个多路开关,交叉(轮流)地接通各台设备。 图3-9 字节多路通道传送方式示意图 一个字节多路通道,包括多个按字节方式传送信息的子通道。每个子通道服务于一 个设备控制器,每个子通道都可以独立地执行通道程序。各个子通道可以并行工作,但 是,所有子通道的控制部分是公共的,各个子通道可以分时地使用。 通道不间断地、轮流地启动每个设备控制器,当通道为一个设备传送完一个字节后, 就转去为另一个设备服务。当通道为某一设备传送时,其他设备可以并行地工作,准备需 要传送的数据字节或处理收到的数据字节。这种轮流服务是建立在主机的速度比外设的 速度高得多的基础之上的,它可以提高系统的工作效率。 82 2. 选择通道 对于高速设备,字节多路通道显然是不合适的。选择通道又称高速通道,在物理上它 也可以连接多个设备,但这些设备不能同时工作,在一段时间内通道只能选择一台设备进 行数据传送,此时该设备可以独占整个通道。因此,选择通道一次只能执行一个通道程序, 只有当它与主存交换完信息后,才能再选择另一台外部设备并执行该设备的通道程序。如 图3-10 所示,选择通道先选择设备A,成组连续地传送A1A2…… 当设备A传送完毕后,选 择通道又选择通道B,成组连续地传送B1B2…… 再选择设备C,成组连续地传送C1C2……。 图3-10 选择通道传送方式示意图 每个选择通道只有一个以成组方式工作的子通道,逐个为多台高速外围设备服务。 选择通道主要用于连接高速外设,如磁盘、磁带等,信息以成组方式高速传送。但是,在数 据传送过程中还有一些辅助操作(如磁盘机的寻道等), 此时会使通道处于等待状态,所以 虽然选择通道具有很高的数据传输速率,但整个通道的利用率并不高。 3. 数组多路通道 数组多路通道是把字节多路通道和选择通道的特点结合起来的一种通道结构。它的 基本思想是:当某设备进行数据传送时,通道只为该设备服务;当设备在执行辅助操作 时,通道暂时断开与这个设备的连接,挂起该设备的通道程序,去为其他设备服务。 数组多路通道有多个子通道,既可以执行多路通道程序,即像字节多路通道那样,所 有子通道分时共享总通道,又可以用选择通道那样的方式成组地传送数据;既具有多路并 行操作的能力,又具有很高的数据传输速率,使通道的效率充分得到发挥。 选择通道和数组多路通道都适用于连接高速外设,但前者的数据宽度是不定长的数 据块,后者的数据宽度是定长的数据块。三种类型通道的比较见表3-2。 表3- 2 三种类型通道的比较 性能字节多路通道选择通道数组多路通道 数据宽度单字节不定长块定长块 适用范围大量低速设备优先级高的高速设备大量高速设备 工作方式字节交叉独占通道成组交叉 共享性分时共享独占分时共享 选择设备次数多次一次多次 83 三种类型的通道组织在一起,可配置若干台不同种类、不同速度的I/O设备,使计算 机的I/O组织更合理、功能更完善、管理更方便。 通道在单位时间内传送的位数或字节数,称为通道的数据传输率或流量,它标志着计 算机系统中的系统吞吐率,也表明了通道对外设的控制能力和效率。在单位时间内允许 传送的最大字节数或位数,称为通道的最大数据传输率或通道极限流量,它是设计通道的 最大依据。 字节多路通道的实际流量是该通道上所有设备的数据传输率之和。而选择通道和数 组多路通道由于在一段时间内只能为一台设备传送数据,此时的通道流量就等于这台设 备的数据传输率,因此,这两种通道的实际流量等于连接在这个通道上的所有设备中流量 最大的那一个。 3.4 通道中的数据传送过程 4. 一个字节多路通路是分时为多台低速和中速外设服务的,在有 P 台设备同时连接到 一个字节多路通道上时,它们的数据传送过程如图3-11(a)所示。 图3-11 通道的数据传送过程 在图3-11(a)中每一个参数的含义如下。 TS:设备选择时间。从通道需要设备发出数据传送请求开始,到通道实际为这台设 备传送数据所需要的时间。 TD:传送一字节数据所用的时间,实际上就是通道执行一条通道指令,即数据传送 指令所用的时间。 P:在一个通道上连接的设备台数,且这些设备同时都在工作。 n:每一个设备传送的字节数。这里,假设每一台设备传送的字节数都相同,都是 n 字节。 84 85 Dij:连接在通道上的第i 台设备传送的第j 个数据,其中i=1,2,…,p;j=1, 2,…,n。 T :通道完成全部数据传送工作所需要的时间。 在字节多路通道中,通道每连接一台外设,只传送一字节,然后又与另一台设备相连, 因此,TS和TD是间隔进行的。 当一字节多路通道上连接有P 台设备,每台设备都传送n 字节时,所需要的时 间为 TByte =(TS +TD)×P ×n 选择通道在一段时间内只能单独为一台高速外设服务,当这台设备的数据传送工作 全部完成后,通道才能为另一台设备服务。选择通道的数据传送过程如图3-11(b)所示, 图中除去与字节多路通路相同的参数以外,还有以下参数。 TDi:通道传送第i 个数据所用的时间,其中i=1,2,…,n。 Di:通道正在为第i 台设备服务,其中i=1,2,…,p。 在选择通道中,通道每连接一台外设,就把这个设备的n 字节全部传送完成,然后再 与另一台设备相连接,因此,在一个TS之后,有连续n 个数据传送时间TD。 当一个选择通道连接P 台设备,每台设备都传送n 字节时,所需要的时间为 Tselect= TS n +TD . è . . . ÷ ×P ×n 数组多路通道在一段时间内只能为一台高速设备传送数据,但同时可以有多台高速 设备在寻址,包括定位和找扇区。数组多路通道的数据传送过程如图3-11(c)所示,图中 所用参数与前两种类型相同,另外还有以下参数。 k:一个数据块中的字节数。在一般情况下,k