第3章输入输出系统(P73)输入输出系统是计算机系统中实现各种输入输出任务的资源总称。它包括各种输入输出设备、相关的管理软件等等。由于输入输出设备的特殊工作性质使其数据吞吐率通常远低于主机,设计输入输出系统就是要建立数据交换的最佳方案,使双方都能高效率地工作。本章重点是中断优先级管理、通道流量设计(省略)。一、I/O设备与CPU和存储器的连接1.通过接口将许多子系统连接起来2.接口使用得最多的就是总线二、基本输入输出方式(P77)1程序控制I/O方式2中断I/O方式3DMA方式4通道方式5I/O处理机方式优点:低成本、多样性缺点:必须独占使用,造成了设备信息交换的瓶颈,从而限制了系统中总的I/O吞吐量。总线总线的设计选择高性能低价格总线宽度独立的地址和数据总线分时复用数据和地址总线数据总线宽度越宽越快(例如:64位)越窄越便宜(例如:8位)传输块大小块越大总线开销越小每次传送单字总线主设备多个(需要仲裁)单个(无需仲裁)分离事务采用不用定时方式同步异步(1)分离事务总线在有多个主设备时,总线通过数据打包来提高总线带宽,而不必在整个传输过程中都占有总线。地址地址1地址2地址3数据数据0数据1等待等待1完成1(2)同步总线同步总线上所有设备通过统一的总线系统时钟进行同步。优点:成本低,因为它不需要设备之间互相确定时序的逻辑。缺点:总线操作必须以相同的速度运行。(3)异步总线异步总线上的设备之间没有统一的系统时钟,设备自己内部定时。设备的连接1.典型的总线连接CPUCache主存I/O控制器图形显示I/O控制器I/O控制器总线适配器网络CPU-主存总线I/O总线2.CPU寻址I/O设备的方式◆存储器映射I/O或统一编址◆I/O设备单独编址无论选择哪一种编址方法,每个I/O设备都提供状态寄存器和控制寄存器。3.设备的连接和工作方式直接传送、程序查询、中断、DMA、I/O处理机4.程序控制、中断和DMA方式管理外围设备会引起两个问题:◆所有外围设备的I/O工作全部都要由CPU来承担,CPU的I/O负担很重,不能专心于用户程序的计算。◆大型计算机系统中的外围设备台数虽然很多,但是一般并不同时工作。解决上述问题的方法:采用通道处理机通道通道处理机能够负担外围设备的大部分I/O工作。通道处理机:能够执行有限I/O指令,并且能够被多台外围设备共享的小型DMA专用处理机。通道的功能(1)接受CPU发来的I/O指令,根据指令要求选择一台指定的外围设备与通道相连接。(2)执行CPU为通道组织的通道程序,从主存中取出通道指令,对通道指令进行译码,并根据需要向被选中的设备控制器发出各种操作命令。通道种类◆通道分为三种类型字节多路通道选择通道数组多路通道(1)字节多路通道◆为多台低速或中速的外围设备服务;◆采用分时方式工作,依靠它与CPU之间的高速数据通路分时为多台设备服务。(2)选择通道◆为多台高速外围设备服务;◆传送数据期间,通道只能为一台高速外围设备服务,在不同时间内可以选择不同设备。(3)数组多路通道◆数组多路通道适于为高速设备服务;◆每次选择一个高速设备后传送一个数据块,并轮流为多台外围设备服务;◆数组多路通道之所以能够并行地为多个高速外围设备服务,是因为这些高速外围设备并不能在整个数据输入输出时间内单独利用通道的全部传输能力。通道中的数据传送过程(1)字节多路通道的数据传送过程通道每连接一个外围设备,只传送一个字节,然后又与另一台设备连接,并传送一个字节。(2)数组多路通道的数据传送过程每连接一台高速设备,传送一个数据块,传送完成后,又与另一台高速设备连接,再传送一个数据块。(3)选择通道的工作过程每连接一个外围设备,就把这个设备的n个字节全部传送完成,然后再与另一台设备相连接。(3)给出外围设备的有关地址,即进行读/写操作的数据所在的位置。如磁盘存储器的柱面号、磁头号、扇区号等。(4)给出主存缓冲区的首地址,这个缓冲区用来暂时存放从外围设备上输入的数据,或者暂时存放将要输出到外围设备中去的数据。5)控制外围设备与主存缓冲区之间数据交换的个数,对交换的数据个数进行计数,并判断数据传送工作是否结束。(6)指定传送工作结束时要进行的操作。(7)检查外围设备的工作状态,是正常或故障。根据需要将设备的状态信息送往主存指定单元保存。(8)在数据传输过程中完成必要的格式变换。例如把字拆卸为字节,或者把字节装配成字三、中断系统(P77)•1、基本概念•中断是一种在发生了一个外部的事件时调用相应的处理程序(或称服务程序)的过程。•中断服务程序与中断时CPU正在运行的程序是相互独立的,相互不传递数据。–中断处理中的问题:•(1)设备识别方式•(2)中断处理程序入口地址的形成•(3)中断裁决•(4)中断屏蔽中断的基本过程主程序中断请求入口服务程序返回分为四个阶段中断请求→中断响应→中断服务→中断返回2、中断分类•见书P78-793、中断优先级管理(P80-82)(⒈)中断优先权排队及中断屏蔽与嵌套以IBM370为例,优先次序为:书P79:紧急的机器校验;管理程序调用与程序性;可抑制的机器校验;外部;输入/输出;重新启动。同一类中各中断(源)请求的响应和处理次序,不是由硬件而是由软件或通道来管理,分级只对不同类的中断源而言。(中断的响应次序与处理次序)(⒉)、中断响应次序系统设定——固定硬件连线;OS可改变——软件决定实际响应处理次序。-中断响应次序由排队器硬件实现(电路),已定死。-机器中设置中断屏蔽寄存器,其内容可变化。具体是由操作系统按所希望的中断顺序、通过将程序状态字中的中断级屏蔽位设置成不同状态(1/0),以决定某级中断请求能否进入中断响应排队器,只要能够进入,就按照硬件已经固定的优先级别予以响应.-同级或低一级的不能中断本级正在响应的中断采用中断屏蔽寄存器,用软件设置灵活的优先级。321IE0321y中断CPUIRx屏蔽寄存器中断寄存器优先编码器IR3IR2IR1IR00I0I1I2I3好处:用排队器硬件实现,可加快响应和断点现场保护中断实际处理次序,而中断实际处理顺序是采用软件技术实现,可提供很大的灵活性。响应过程:关中断保存现场识别中断形成服务程序入口地址开中断执行服务程序关中断恢复现场开中断(⒊)中断系统软、硬件功能分配(中断响应及中断处理程序执行次序确定的软、硬件界面)。①用户程序对所有中断请求不能屏蔽(即中断开放),所以用户程序(执行时)的PSW中各中断源对应的中断屏蔽位为“1”(开放),它们被存放于中断屏蔽R中。②在执行用户程序过程时,中断请求产生、OS通过将程序状态字中的中断级屏蔽位设置成不同状态,准予其进入中断响应排队器排队。③中断处理程序和用户程序通过交换PSW实现程序切换。。在实现程序切换时,除了保护现场、保留断点等操作外,被响应的中断处理程序的PSW(当前PSW)中的中断屏蔽位→中断屏蔽寄存器中。中断实际响应次序由OS设定,每个中断处理程序的PSW的中断屏蔽位各位为“1”/“0”是由OS来(按需要)设定。系统有几级(中断源分级),各PSW中的中断屏蔽位就有几位。如4级,就有4位。各位为“1”—该级中断开放,可响应;各位为“0”—该级中断被屏蔽,不响应。•见书P81表3-2所示①与本级同级或低于本级的中断请求不能中断本级的处理过程。②只要能进入排队器排队,在中断屏蔽位为“1”的各级中断源中,以硬件排队电路原已定好的优先次序予以响应(如果各级均被屏蔽,则最先响应最高级,响应某级请求时,该级屏蔽位为“0”理解为是对其同级中断请求屏蔽)。(⒋)中断响应及中断处理程序执行次序的设定及嵌套原则。(⒌)实例说明:见书P80-82图3-7、图3-8。P98习题3-6.⒉机器共有5级中断,硬件排队定死中断响应优先级为1-2-3-4-5。现由OS设置其中断处理次序为1-4-5-2-3①设计出各级中断处理程序的中断级屏蔽位(“1”—开中;“0”—屏蔽)②若在运行用户程序时,同时出现④、②中断请求,当②处理完时,又出现①、③、⑤级中断请求,试画出程序运行过程示意图。设计屏蔽位(置“1”:开中),置“0”:屏蔽)原则:软、硬件支持中断的响应与支持处理①中断响应次序是由排队电路固定了,不可变。中断请求一旦进入排队电路,就是优先级高的请求被响应和处理。②各级中断处理程序的现行PSW中的设置有中断级屏蔽位字段(位数依中断级的个数定,如4级就有4位)所有中断类被分成若干级,由各级对应的中断处理程序决定本级中哪一类中断请求可被响应。④各级中断处理程序中的现行PSW中设置有中断级屏蔽位字段。中断级屏蔽位可由OS依需要用软件的方法随时改变其状态,提供了相当大的灵活性。⑤用户程序不能屏蔽任何中断请求,所以执行用户程序时其现行PSW中的中断级屏蔽位是处于全开放状态(可为“0”或“1”)。③PSW中的中断级屏蔽位可由操作系统设置成不同的状态(“0”或“1”,分别表示对各级中断请求的开放和屏蔽),表示允许/不允许中断请求进入中断响应排队电路例假定硬件原来的响应顺序为0→1→2,试设置中断屏蔽字,将中断优先级改为1→2→0。解:•-•L0L1L2•L0•级中断•100•L1•级中断•111•L2•级中断•101用户程序•0级中断•11级中断2级中断•1-屏蔽0—开中用户程序•0级中断•11级中断2级中断•-•L0L1L2•L0•级中断•011•L1•级中断•000•L2•级中断•010