计算机组成原理武汉科技大学计算机科学与技术学院第八章输入输出系统本章内容8.1外围设备的速度分级与信息交换方式8.2程序查询方式8.3程序中断方式8.4DMA方式8.5通道方式8.6通用I/O标准接口8.1外围设备的速度分级与信息交换方式8.1.1外围设备的速度分级1.将高速工作的处理机同不同速度工作的外围设备相连接需解决的问题——处理机与外围设备在时间上的同步(定时问题)2.输入/输出设备同CPU交换数据的过程输入过程:(1)CPU把一个地址值放在地址总线上,选择某一输入设备(2)CPU等候输入设备的数据成为有效(3)CPU从数据总线读入数据,并存入一个相应的寄存器输出过程:(1)CPU把一个地址值放在地址总线上,选择一个输出设备(2)CPU把数据放到数据总线上(3)输出设备认为数据有效,从而把数据取走数据何时有效是关键数据何时有效是关键目录3.CPU与外围设备之间的定时方式(1)速度极慢或简单的外围设备——无条件输入输出(2)慢速或中速的外围设备——异步定时、查询输入输出、中断CPU接收一批数据字的流程图在CPU和外设间用问答信号进行定时,故称为应答式数据交换(3)高速的外围设备——同步定时、DMA输入输出外设以相等的时间间隔进行操作,CPU也以等间隔的速率执行输入/输出指令,故称为同步定时方式;一旦CPU和外设发生同步,它们之间的数据交换便靠时钟脉冲来控制直接内存访问(DMA)方式是更快的同步传送4.I/O对系统性能的影响【例1】假设有一个运行时间为100秒的基准程序,其中90秒是CPU时间,剩下的是I/O占用的时间。如果在以后的5年里,CPU的速度每年提高50%但I/O时间保持不变,那么5年后运行程序要耗费多少时间?I/O时间所占的比例是多少?解:耗费的时间=CPU时间+I/O时间目前,I/O时间=100-90=10秒今后五年内CPU时间、I/O时间及其所占比例如下表:第n年后CPU时间I/O时间耗费总时间I/O时间所占比例09010秒100秒10%190/1.5=60秒10秒70秒14%260/1.5=40秒10秒50秒20%340/1.5=27秒10秒37秒27%427/1.5=18秒10秒28秒36%518/1.5=12秒10秒22秒45%[例子]假设幼儿园一个阿姨带10个孩子,要给每个孩子分2块水果糖。假设孩子们把2块糖都吃完,那么她采用什么方法呢?方法1:她先给孩子甲一块糖,盯着甲吃完,然后再给第二块;然后给孩子乙,其过程与孩子甲完全一样。依次类推,直至到第10个孩子发完2块糖方法2:每人发一块糖各自去吃,并约定谁吃完后就向她举手报告,再发第二块方法3:进行批处理:每人拿2块糖各自去吃,吃完2块糖后再向她报告方法4:权力下放,把发糖的事交给另一个人分管,只是必要时她才过问一下8.1.2信息交换方式类似地,CPU管理外围设备的方式分为4种1.程序查询方式优点:CPU和外围设备的操作能够同步,且硬件结构简单缺点:CPU效率低,即使是轮询2.程序中断方式优点:节省了CPU的时间,适用于随机出现的、实时性的服务缺点:硬件结构比程序查询方式复杂一些,服务开销时间较大3.直接内存访问(DMA)方式——DMA控制器接管对总线的控制,数据交换不经过CPU,直接在内存和外围设备之间,以高速进行数据传送优点:数据传送速度很高,仅受到内存访问时间的限制缺点:与中断方式相比,需要更多的硬件适用于内存和高速外围设备之间大批数据交换的场合4.通道方式通道——一个具有特殊功能的处理器,也称输入输出处理器(IOP),可以实现对外围设备的统一管理和外围设备与内存之间的数据传送大大提高了CPU的工作效率,但以花费更多硬件为代价输入/输出控制方式主要由程序实现程序查询方式程序中断方式DMA方式通道方式外围设备的输入/输出控制方式主要由硬件实现8.2程序查询方式(程序控制I/O方式)(2)从I/O接口读入状态字(3)检查状态字中的标志,判断可否进行数据交换(4)若该设备没有准备就绪,重复(2)、(3),直至其准备好(5)从接口的数据缓冲器读取输入的数据或将数据输出至接口的数据缓冲器;并将状态标志复位目录(1)CPU向I/O设备发出命令字,请求进行数据传送1、设备编址统一编址独立编址2、输入输出指令——具有的3个基本功能3、程序查询方式的接口设备选择电路数据缓冲寄存器设备状态标志4、程序查询输入/输出方式程序执行的动作程序查询流程图用查询方式传送一批数据的程序流程图设置计数值设置内存缓冲区首址启动外设传送一个数据修改内存地址结束I/O传送修改计数器准备好?传送完?否是是否8.3程序中断方式8.3.1中断的基本概念1.中断的概念特点:CPU和外围设备的一些操作并行地进行,效率高2.中断处理过程流程图目录主程序A请求中断B请求中断C请求中断主程序A中断服务子程序B中断服务子程序C中断服务子程序中断处理示意图控制8.3.2程序中断方式的基本I/O接口IMIR公用寄存器01BSEI数据缓冲寄存器中断向量逻辑设备选择PCIR动作开始动作结束传送数据动作开始数据缓冲寄存器传送数据12345动作结束67PCIR8公用寄存器109接口设备CPU01RD输入数据的控制过程程序中断方式基本接口示意图准备就绪的标志(RD)——中断触发器允许中断触发器(EI)中断请求触发器(IR)中断屏蔽触发器(IM)控制1.单级中断的概念——所有中断源都属同一级,通过一条线发中断申请,离CPU近的优先权高;不允许嵌套;以链式查询方式识别中断源8.3.3单级中断2.单级中断源的识别——采用串行排队链法INTO001010001011001000数据总线编码器INTAINTIIR1IS1IR2IS2IR3IS3123456IR1IR2IR3中断优先级排队链中断向量产生逻辑3.中断向量的产生向量地址——由一串布尔量序列表示的存储器的地址码向量中断:CPU识别出某中断源时,由硬件直接产生一个与该中断源对应的向量地址,指出中断源设备的中断服务程序入口有些计算机中的向量地址不是直接地址,而是个“位移量”还有些采用向量地址转移的方法1.多级中断的概念——根据各中断事件的轻重缓急程度不同将中断源分为若干级别,每一中断级分配一个优先权;优先权高的中断级可打断优先权低的中断服务程序,以程序嵌套方式工作8.3.4多级中断主程序一级中断服务程序二级中断服务程序三级中断服务程序多级中断示意图根据系统的配置不同分类:一维多级中断、二维多级中断(1)中断请求寄存器、中断屏蔽寄存器在多级中断中的作用(2)不同级的中断源间可实现嵌套,但同一级内一般不允许嵌套(3)多级中断系统由硬件逻辑识别中断源;在二维中断结构中,先用中断优先级排队电路确定优先响应的中断级,再通过链式查询的硬件逻辑确定具体的中断源——采用了独立请求方式与链式查询方式相结合的方法决定首先响应哪个中断源(4)和单级中断类似,多级中断中也使用堆栈保存现场信息使用堆栈保存现场的好处——控制逻辑简单,先进后出原则;不需单独设置现场保护区关于多级中断的说明2.多级中断源的识别中断请求——采用独立请求方式的逻辑结构中断源识别的过程在二维多级中断中,还要进一步用串行链式方式查询——采用二维方式设计中断排队逻辑【例2】二维中断系统如图,请问:(1)在中断情况下,CPU和设备的优先级如何考虑?请按降序排列各设备的中断优先级(2)若CPU现执行设备B的中断服务程序,IM2,IM1,IM0的状态是什么?如果CPU执行设备D的中断服务程序,IM2,IM1,IM0的状态又是什么?(3)每一级的IM能否对某个优先级的个别设备单独进行屏蔽?如果不能,采取什么办法可达到目的?(4)假如设备C一提出中断请求,CPU立即进行响应,如何调整才能满足此要求?【解】(1)在中断情况下,CPU的优先级最低;各设备的优先次序是:A→B→C→D→E→F→G→H→I→CPU(2)执行设备B的中断服务程序时IM2IM1IM0=111执行设备D的中断服务程序时,IM2IM1IM0=011(3)每一级的IM标志不能对某个优先级的个别设备进行单独屏蔽。可将接口中的EI(中断允许)标志清“0”,禁止设备发出中断请求(4)要使设备C的中断请求及时得到响应,可将设备C从第2级取出来,单独放在第3级上,使第3级的优先级最高,即令IM3=0即可?仍然采用3级中断,只是把C提到A的前面(最靠近CPU),是否满足要求【例3】参见例2所示的系统,只考虑A,B,C三个设备组成的单级中断结构,要求CPU在执行完当前指令时对中断请求进行服务。设:(1)CPU“中断批准”机构在响应一个新的中断之前,先要让被中断程序的一条指令一定要执行完毕;(2)TDC为查询链中每个设备的延迟时间;(3)TA,TB,TC分别为设备A,B,C的服务程序所需的执行时间;(4)TS,TR为保存现场和恢复现场所需的时间;(5)主存工作周期为TM。试问:就这个中断请求环境来说,系统在什么情况下达到中断饱和?【解】参阅中断处理流程8.5,并假设执行一条指令的时间也为TM。如果三个设备同时发出中断请求,那么依次分别处理设备A、设备B、设备C的时间如下:tA=2TM+TDC+TS+TA+TRtB=2TM+2TDC+TS+TB+TRtC=2TM+3TDC+TS+TC+TR处理三个设备所需的总时间为:T=tA+tB+tCT是达到中断饱和的最小时间,即中断极限频率为:f=1/T其中2TM是取出指令并执行指令的时间将中断接口与优先级判断等功能集于一身8.3.5中断控制器(8259)8259的中断优先级的选择方式(1)完全嵌套方式——固定优先级方式,IR0的优先级最高,IR7的最低(2)轮换优先级方式A:优先级自动轮换(3)轮换优先级方式B:指定轮换方式(4)查询方式:由CPU查询8259的中断状态寄存器8259提供的屏蔽方式(1)简单屏蔽方式:提供8位屏蔽字(2)特殊屏蔽方式——允许来自低优先级的外设中断请求去中断高优先级的服务程序1.中断类型中断通常称为外部中断,由CPU的外部硬件信号引发;分为:(1)可屏蔽中断:INTR引脚、IF标志(2)非屏蔽中断:NMI引脚;不能被禁止异常通常称为异常中断,由指令执行引发的;分为:(1)执行异常:CPU执行一条指令过程中出现错误、故障等引发(2)执行软件中断指令:执行INTn指令Pentium共有256种中断和异常;中断向量号(0-255)异常中断的优先级高于外部中断8.3.6Pentium中断机制2.中断服务子程序进入过程中断向量号检索表——实模式为中断向量表IVT;保护模式为中断描述符表IDTCPU识别中断类型取得中断向量号的途径:(1)指令给出,如软件中断指令INTn(2)外部提供:INTR和NMI的中断向量号的获取方法(3)CPU识别错误、故障现象,自动指定向量号CPU由中断类型号获取中断服务子程序入口地址的方法(1)实模式下使用中断向量表(2)保护模式下使用中断描述符表3.中断处理过程(1)当中断处理的CPU控制权转移涉及到特权级改变时,必须把当前的SS和ESP的内容压入系统堆栈予以保存(2)标志寄存器EFLAGS的内容也压入堆栈(3)清除标志触发器TF和IF(4)当前的代码段寄存器CS和指令指针EIP也压入此堆栈(5)如果中断发生伴随有错误码,则错误码也压入此堆栈(6)完成上述中断现场保护后,获取的中断服务子程序入口地址(段,偏移)分别装入CS和EIP,开始执行中断服务子程序(7)中断服务子程序最后的IRET指令使中断返回;保存在堆栈中的中断现场信息被恢复,并由中断点继续执行原程序8.4DMA(DirectMemoryAccess)方式8.4.1DMA的基本概念1.特点:完全由硬件执行的I/O交换;DMA控制器从CPU完全接管对总线的控制;数据交换不经过CPU;DMA方式一般用于高速传送成组数据2.主要优点:速度快且有利于CPU效率的发挥3.DMA的基本操作(1)外围设备发出DMA请求(2)CPU响应请求,改成DMA操作方式,DMA控制器接管总线(3)由DMA控制器对内存寻址、数据传送个数的