1、第 3 章 总线、中断与输入输出系统,3.1 输入输出系统概述 3.2 总线设计 3.3 中断系统 3.4 通道处理机 3.5 外围处理机,3.1 输入输出系统概述,输入输出系统包括输入输出设备、 设备控制器及与输入输出操作有关的软硬件。输入输出系统的主要功能是对指定的外设进行输入、 输出操作, 同时也完成许多其他的管理和控制。它包括:给指定外设的信息编址,连接好主存与指定外设之间的信息通路,完成在指定外设编址区和由操作系统指定的主存空间之间进行所要求的信息传送(输入时是将外设编址区域的信息送入主存,输出时是将主存的信息送往外设编址区)。有的输入输出系统还能对要传送的信息进行格式变换,形成和产
2、生有关输入输出操作是否完成或在执行过程中是否有错的状态控制信息,经中断系统传送给操作系统去分析和处理。 ,输入输出系统的发展经历了 3 个阶段, 对应于 3 种方式, 即程序控制输入输出(包括全软的、程序查询状态驱动的、 中断驱动的几种)、 直接存贮器访问(DMA)和I/O处理机方式。 这 3 种方式可以分别用在不同的计算机系统上, 也可以用在同一个计算机系统上作为相互补充。,3.2 总 线 设 计,就允许信息传送的方向来说,总线可以有单向传输和双向传输两种。 双向传输又有半双向和全双向的不同。 前者虽可以沿相反的方向传送,但同一时刻只能向其中的一个方向传送。 后者允许同时在两个方向传送。 全
3、双向的速度快, 但造价高, 结构复杂。总线按其用法可以分成专用的和非专用的。,图 3.1 所有部件之间用专用总线互连,3.2.2 总线的控制方式,当采用非专用总线时,由于可能发生多个设备或部件同时申请使用总线,就得有总线控制机构来按照某种优先次序裁决,保证在同一时间内只能有一个高优先级的申请者取得对总线的使用权。如果总线控制逻辑基本上集中放在一起,不论是放在连接到总线的一个部件中,还是放在单独的硬件中,都称为集中式控制。 而当总线控制逻辑分散于连到总线的各个部件中时,就称为分布式总线控制。 这里只讲集中式总线控制。,图 3.2 集中式串行链接,图 3.3 集中式定时查询,图 3.4 集中式独立
4、请求,3.2.3 总线的通信技术,1. 同步通信同步通信时,两个部件之间的信息传送是通过定宽、定距的系统时标进行同步的。这种方式的信息传送速率高,受总线的长度影响小,但会因时钟在总线上的时滞而造成同步误差, 且时钟线上的干扰信号易引起误同步。,为了提高可靠性,要求目的部件对数据是否已被接收以及是否正确均能给以回答。如果同步时间片的宽度宽到能为每个字的传送作出回答,则它必须按接到总线上的最低速的部件来考虑,这就会使同步通信的数据传送速率低于后面讲的异步通信。 一种解决办法是在正常时,目的部件不作回答,源部件也不等待回答信号, 但如果发生错误, 则目的部件将在同步时间片过去之后,发回源部件一个出错
5、信号,这样,就不会降低正常时总线的传送速率。但是这种办法中,源部件必须设置较大容量的缓冲器来保留已传送, 但未经证实和回答过的所有数据,以备重发之用。,2. 异步通信由于I/O总线一般是为具有不同速度的许多I/O设备所共享,因此宜于采用异步通信。异步通信又可分为单向控制和双向(请求/回答)控制两种。单向控制指的是通信过程只由目的或源部件中的一个控制。而双向控制是由源和目的双方共同控制。单向控制又有源控制和目的控制两种。,图 3.5 异步单向控制通信,图 3.6 源控式异步双向控制通信,3.2.4 数据宽度与总线线数,1. 数据宽度我们这里所讲的“数据宽度”指的是I/O设备取得I/O总线使用权后
6、所传送数据的总量。传送完后就释放总线,重新开始分配总线。所以,它不同于前面讲过的数据通路宽度。数据通路宽度指的是数据传送的物理宽度,即一个时钟周期所传送的信息量, 它直接取决于数据总线的线数。二次分配总线之间所传送的数据宽度可能要经许多个时钟周期的分次传送来完成。采用何种数据宽度与总线上各设备的工作特点、所采用的总线控制方式和通信技术有关。数据宽度的种类有单字(或单字节)、定长块、 可变长块、单字加定长块和单字加可变长块等。,2. 总线的线数总线需要有发送电路、接收电路、传输导线或电缆、转接插头和电源等,这部分比起逻辑线路的成本高得多,而且转接器往往占系统物理空间的相当部分,是降低系统可靠性的
7、主要部分。总线的线数越多,成本越高、干扰越大、可靠性越低、占用的空间也越大,当然传送速度和流量也越高。 此外,总线的长度越长,成本越高,干扰越大,波形畸变越严重,可靠性越低。为此,越是长的总线,其线数就应尽可能减少。数据总线的宽度有一位、一个字节或一个全字等等。,在满足性能要求以及所用通信类型和速率适配的情况下, 应尽量减少总线的线数。通过采用线的组合、并/串串/并转换和编码可以减少总线的线数, 但这通常会降低总线的流量。采用线的组合能减少只按功能和传送方向所需的线数。例如,性质相似、方向相反且不同时传送的两根单向线可用一根半双向线代替。又例如,可通过对少数几根多功能线进行编码来代替每种功能都
8、单独用一根线完成的很多根单功能线等等。并/串串/并转换是在总线两端经并/串、串/并转换器转换,以便使用较少的线数,经多次传送后再在端点转换成完整的字。串/并的程度根据系统成本和性能的折衷权衡选取。一位串行传送的总线只用于远距离通信。,3.3 中 断 系 统,3.3.1 中断的分类和分级引起中断的各种事件称为中断源。中断源向中断系统发出请求中断的申请,称为中断请求。同时可能有多个中断请求,这时中断系统需要按事先确定的中断响应优先次序对优先级高的中断请求予以响应。所谓中断响应就是允许其中断CPU现行程序的运行,转去对该请求进行预处理,包括保存好断点现场,调出有关处理该中断的中断处理程序,准备运行。
9、 这部分工作在大多数机器上都是采用交换新旧程序状态字PSW的办法实现的。 当然为了某种需要,中断系统也可以对中断请求进行屏蔽,使之暂时得不到响应。,为处理一个中断请求,必须调出相应的中断处理程序。 如果中断源比较少时, 通过中断系统硬件就可以比较方便地对每个中断源直接形成相应的中断处理程序入口,进入相应的中断处理程序。但对中、 大型多用途机器, 中断源一般可多达数十至数百个。 如果为每个中断源单独形成入口,不仅硬件难以实现, 代价也很大,就是在中断处理上也没有这种必要。因为不少中断源的性质比较接近,可以将它们分别归成几类,对每一类给定一个中断处理程序入口,再由软件转入对相应的中断源进行处理,
10、这样可以大大简化中断处理程序入口形成硬件。,以IBM 370为例,它把中断分成机器校验、 管理程序调用、 程序性、 外部、 输入/输出和重新启动 6 类。 前 5 类中断只发生在CPU处于运行状态时,而重新启动不论CPU是处于停止状态还是处于运行状态都可以发生。这 6 类中断,它们的旧PSW和新PSW所在的存贮单元位置都是各不相同的。每类的具体中断原因可由旧PSW中的中断码进一步指明,或是由中断期间放在指定存贮单元中的附加信息指明。,机器校验中断告诉程序发生了设备故障。可用 64 位机器校验中断码以指明故障原因和严重性,更为详细的中断原因和故障位置可由机器校验保存区的内容提供。这里包含有电源故
11、障、运算电路的误动作、主存出错、 通道动作故障、 处理器的各种硬件故障等等。访管中断是在用户程序需要操作系统介入时,通过执行“访管”指令时发生的,访管原因由“访管指令”中的 8 位码指明。,程序性中断是包括指令和数据的格式错、程序执行中出现异常(非法指令、 目态下使用管态指令、主存访问方式保护、寻址超过主存容量、 各种溢出、 除数为“0”、 有效位为 0 等)以及程序的事件记录、 监督程序对事件的检测引起的中断等。外中断来自机器外部,它包括各种定时器中断、外部信号中断及中断键中断。各种定时器中断用以计时、计费、控制等。 外部信号中断主要用于与其他机器和系统的联系。中断键则用于操作员对机器的干预
12、。这些外中断又可再分成两类:一类是若未被响应继续保留, 另一类如不响应则不再保留。,输入/输出中断是CPU与I/O设备及通道联系的工具,在输入输出操作完成、 I/O通道或设备产生故障时发出。 程序性、 外部、 I/O这 3 类中断的中断码均为 16 位。重新启动中断是为操作员或另一台CPU要启动一个程序所用。 CPU不能禁止这种中断。,表 3.1 中断级屏蔽位举例 1,图 3.7 中断处理次序为 1234 的例子,表 3.2 中断级屏蔽位举例 2,图 3.8 中断处理次序为 1432 的例子,3.3.2 中断系统的软硬件功能分配,中断系统的功能包括中断请求的保存和清除、 优先级的确定、 中断断
13、点及现场的保存、对中断请求的分析和处理以及中断返回等,这些全是由中断响应硬件和中断处理程序共同完成的。因此,中断系统的软、硬件功能分配实质上就是中断处理程序软件和中断响应硬件的功能分配。,中断现场包括软件状态(如作业名称和级别,上、下界值, 各种软件状态和标志等)和硬件状态(如现行指令地址,条件码等状态信息, 各种控制寄存器及通用寄存器内容)。通常采取把分散于CPU各部分的硬件状态集合成程序状态字,然后由中断响应硬件通过将程序状态字(处理器状态字、换道区)存到主存指定单元或区域的方式来完成保存。接着,再把新的程序或进程的程序状态字(处理器状态字、换道区)从主存另一指定单元或区域把内容传送到有关
14、寄存器和计数器中,建立起运行新的程序或进程的环境。 硬件状态是全经中断响应硬件保存,还是部分经它,部分经中断处理程序保存, 要视具体机器的规模和使用场合而作不同的选择。,从发出中断请求到进入中断处理程序的中断响应时间是中断系统的一个重要性能指标,它主要取决于交换程序状态字的时间。以IBM 370 为例,程序状态字为 64 位,等于它的长字, 因此交换程序状态字只需经写长字和读长字二次访存即可。 然而,要经中断响应硬件保存的硬件状态愈多,程序状态字就愈长,所需的访存次数和时间就愈长,响应速度就会愈低,尤其是不断增大通用寄存器个数是当前计算机发展的趋势,像CRAY-1,需保存的向量、标量、地址寄存
15、器的总位数可达 3 900 位。,另一方面, 中断系统还应具有较大的灵活性。实际上并不是所有的中断处理都需要把通用寄存器的内容或是全部通用寄存器的内容都保存起来, 这是因为经中断进行的任务切换可以有两种: 一种是整个任务的切换(如某道程序切换到另一道), 这当然需要把整个通用寄存器的内容都保存起来;另一种是某道程序调用某个管理程序的切换, 这往往不需要保存或只需部分保存。 因此, 目前对于大多数一般的机器,各种通用寄存器的内容是由中断处理程序按切换需要来保存的。这既提高了中断响应的速度,又具有较大的灵活性。当然, 如果主存宽度很宽, 一个主存周期又能访问很多字,也有全部由中断响应硬件来保存的。
16、,3.4 通 道 处 理 机,3.4.1 工作原理,图 3.9 通道处理机输入输出的主要过程,图 3.10 通道处理机输入输出主要过程的时间关系示意图,图 3.11 “启动I/O”指令流程(注: 这里的结束, 表示释放通道),图 3.12 IBM 370 的I/O结构,3.4.2 通道流量的分析通道流量是指通道在数据传送期内,单位时间内传送的字节数。它能达到的最大流量称通道极限流量。一个通道能达到的极限流量与其工作方式、数据传送期内选择一次设备的时间TS和传送一个字节的时间TD的长短有关。由于字节多路通道每选择一台设备只传送一个字节,故其通道极限流量fmaxbyte=1/(TS+TD)。 数组
17、多路通道每选择一台设备只传送K个字节,如果要传送N个字节,就得经N/K次传送才行,每次都要花去一个选择设备的时间TS,所以,其通道极限流量fmaxblock=K/(TS+KTD)=1/(S/K+TD)。选择通道每选择一台设备就把N个字节全部传送完,其通道极限流量fmaxselect=N/(TS+NTD)=1/(TS/N+TD)。显然,若通道的TS、TD一定, 且NK时,字节多路方式工作时所能达到的极限流量最小,数组多路方式工作的居中, 选择方式工作的最大。,由通道工作原理可知,当挂上设备后,设备要求通道的实际最大流量, 对于采用字节交叉方式工作的字节多路通道应为该通道所接各设备的字节传送速率之
18、和, 即,而对于其他两种类型的通道应为所接各设备的字节传送速率中之最大的那个, 即,式中,j为通道的编号,fij为第j通道上所挂的第i台设备的字节传送速率,pj为第j号通道中所接设备的台数。为了保证第j号通道上所挂的设备在满负荷的最坏情况下都不丢失信息,必须满足设备要求通道的实际最大流量不超过通道所能达到的极限流量这一流量设计的最基本原则,因此,对上述 3 种类型的通道应分别满足关系式:,如果I/O系统有m个通道,其中1至m1为字节多路通道,m1+1至m2为数组多路通道,m2+1至m为选择通道,则该I/O系统工作时的极限流量将为,必然会满足,设有一字节多路通道,它有 3 个子通道:“0”号、“
19、1”号高速印字机各占一个子通道;“0”号打印机、 “1”号打印机和“0”号光电输入机合用一个子通道。假定数据传送期内高速印字机每隔 25 s发一个字节请求,低速打印机每隔 150 s发一个字节请求,光电输入机每隔 800 s发一个字节请求,则这 5 台设备要求通道的流量为,图 3.13 字节多路通道响应和处理各设备请求的时间示意图,3.5 外 围 处 理 机,图 3.14 CYBER 170 的结构,外围处理机子系统包括分时使用主存的 10 台PPU, 通过输入输出交叉开关网络(I/O Crossbar Switching)共享 12 个输入输出通道, 每个PPU有一个容量为 4 K13 位(
20、其中一位为奇偶位)的局部存贮器。系统监督程序常驻在PPU0的局存中,操作台显示程序常驻在PPU1的局存中, 其余均装有各自的常驻程序。 每台PPU都能独立执行有关PPU的程序,都有相同的指令系统,完成算术/逻辑运算、 读/写主存、 与外设交换信息等功能。 用这些指令编制的PPU程序存放于系统主存的程序库中,可以为管理外部设备随时调用。,中央处理机不能直接与外部设备交往。当用户程序需要输入输出时, 中央处理机只需发调用PPU的请求,即可继续执行它的用户程序,像通道处理机方式中那种前处理工作就不用做了。其后,外围处理机就自己来与外部设备通信。所有 10 台PPU分时循环使用同一个算术/逻辑部件,
21、每台PPU一次占用一个时间片,隔 10 个时间片之后又可再次占用一个时间片。因此,一条PPU指令可能要经过多个大循环周期才能完成。 由于主存字长 60 位, PPU局存字长 12 位, 它们之间交换信息时,需要采用桶形移位器的方法进行拆卸和装配,这种拆卸和装配所用的部件也是由 10 个PPU分时共享的。,CYBER 170 的通道比较简单,和通道处理机中的通道概念完全不同,它只起通路连接作用,使外围处理机可以与 12 个通道中的任何一个相接。 每个通道最多可接 8 台外部设备,用设备号来选择。 在每个通道中有一个双向 13 位(1 位奇偶位)的通道寄存器及“忙/闲”、“满/空”两个状态标志触发器。利用这两个状态标志触发器以及PPU执行相关的I/O指令来控制PPU、通道与外设的通信。,