09:16:021一、中断的基本概念二、中断的基本类型三、中断请求和中断判优四、中断响应和中断处理五、多重中断与中断屏蔽六、中断过程6.8.3中断系统和程序中断方式09:16:022一、中断的基本概念中断──指CPU在执行现行程序的过程中,出现了某些突发事件急待处理,CPU必须暂停正在执行的程序,转去处理突发事件,处理结束后又返回到原程序被中断的位置继续执行。中断的特征(1)程序切换;(2)随机性中断方式的引入,不仅使CPU可与多台外设并行工作,而且使CPU具有了处理突发事件的能力。6.8.3中断系统和程序中断方式09:16:023一、中断的基本概念(续)启动工作工作完成完成响应响应中断请求中断请求中断返回中断返回外部设备中断服务程序现行程序CPU程序中断方式示意图中断系统是计算机实现中断功能的软、硬件总称。一般在CPU中配置中断机构,在外设接口中配置中断控制器,在软件上设计相应的中断服务程序。6.8.3中断系统和程序中断方式09:16:0241、程序中断与调用子程序的区别相同点:执行过程类似区别:•中断服务程序与中断时CPU正在运行的程序无逻辑关系,相互独立;子程序调用时转入的子程序与正在执行的程序段一般有逻辑联系。•中断一般由硬件的信号产生(软中断除外);子程序调用是由转移指令引起的。•子程序调用是主程序安排在特定位置上的;中断请求是随机发生的,需进行现场保护。•CPU获得中断服务程序起始地址的方法与子程序起始地址方式不同。6.8.3中断系统和程序中断方式09:16:0252、中断的基本类型⑴自愿中断和强迫中断•自愿中断:非随机产生的中断,而是在程序中安排的有关指令,这些指令可以使机器进入中断处理的过程。•强迫中断:随机产生的中断,由中断系统强迫计算机中止现行程序并转入中断服务程序。⑵程序中断和简单中断•程序中断:一般意义上的中断,主机响应中断请求后,通过执行中断服务程序来处理更紧迫的任务•简单中断:是早期对DMA方式的一种叫法,是外设与主存间直接进行信息交换的方法。6.8.3中断系统和程序中断方式09:16:026(3)内中断和外中断•内中断:指由于CPU内部硬件或软件原因引起的中断,如单步中断、溢出中断等。•外中断:指CPU以外的部件引起的中断。(4)非屏蔽中断和可屏蔽中断•非屏蔽中断:不受CPU中的中断允许标志(IF)控制。•可屏蔽中断:受IF控制的中断。6.8.3中断系统和程序中断方式09:16:027(5)向量中断和非向量中断•向量中断:发出中断请求的外设主动向CPU发出一个识别代码(中断向量),CPU通过中断向量识别各中断源,并产生中断服务程序入口地址。•非向量中断:中断事件不能直接提供中断服务程序的入口地址。(6)单重中断和多重中断•单重中断:CPU在执行中断服务程序的过程中不能再响应其他中断请求,但不可屏蔽中断除外。•多重中断:CPU在执行中断服务程序的过程中可以响应优先级更高的中断请求,又称为中断嵌套。6.8.3中断系统和程序中断方式09:16:028二、中断请求和中断判优1、中断源和中断请求信号中断源——指中断请求的来源,即引起计算机中断的事件为了记录中断事件并区分不同的中断源,可采用具有存储功能的中断请求触发器(INTR)来记录中断请求。2、中断请求信号的传送•独立请求线——每个中断源单独设置中断请求线•公共请求线——多个中断源共有一根公共请求线。•二维结构——将中断请求线连成二维结构,同一优先级别的中断源,采用一根公共的请求线;不同请求线上的中断源优先级别不同。6.8.3中断系统和程序中断方式09:16:0293、中断判优同时出现几个中断请求时,将按规定的原则排优,一般:•故障引起的中断优于I/O操作•非屏蔽优于可屏蔽•高速I/O的中断优于低速I/O•输入设备的中断优于输出设备的中断中断判优的方法可由硬件或软件实现•软件判优法——通过执行查询程序逐个检测中断请求寄存器的各位状态,检测顺序按优先级大小排列•硬件判优电路——根据中断请求信号传送方式不同,有不同的优先排队电路。如独立请求线、公共请求线的优先排队电路等。6.8.3中断系统和程序中断方式09:16:0210三、中断响应和中断处理1、CPU响应中断的条件•CPU接收到中断请求信号•CPU允许中断(即开中断)。•一条指令执行完毕,且没有DMA请求。2、中断隐指令CPU响应中断之后,经过某些操作转去执行中断服务程序。这些操作是由硬件直接实现的,称为中断隐指令。中断隐指令完成的主要操作:保存断点、关中断、引出中断服务程序注意:中断隐指令不是指令系统中真正的指令,它没有操作码,是不允许、也不可能为用户使用的特殊指令。6.8.3中断系统和程序中断方式09:16:02113、中断周期位于原程序与中断处理程序之间,是CPU响应中断后进入的一个过渡周期。中断周期里完成以下操作:•CPU发/INTA(中断应答信号),等待中断向量的输入。•保护断点,将PC和PSW的值压入堆栈•关中断4、进入中断服务程序(1)软件方法由中断隐指令控制进入一个中断总服务程序,在那里判优、寻找中断源并且转入相应的中断服务程序。6.8.3中断系统和程序中断方式09:16:0212(2)硬件向量中断法CPU响应某一中断请求时,需要中断源将中断向量传给CPU,引导CPU确定中断处理程序入口地址,即中断向量的呈送。工作完成允许中断发中断请求中断优先级判定选优中断响应识别中断源向量地址形成现场处理启动中断服务程序向量地址INTRINTA中断源CPU6.8.3中断系统和程序中断方式09:16:0213向量地址与中断处理程序之间的关系有以下两种:向量地址是中断处理程序的入口地址CPU不需要再经过处理就可以进入相应的中断服务程序。减少了访存次数,但缺乏灵活性,可能出现内存空间分配的冲突。向量地址是中断向量表的指针中断源给出的向量地址是中断服务程序入口地址的地址。中断向量连续编排为一个中断向量表;灵活,但需要两次访存才能取得中断处理程序的第一条指令。6.8.3中断系统和程序中断方式09:16:02145、中断现场的保护和恢复四、多重中断与中断屏蔽1、中断嵌套的概念当CPU正在执行一个优先级较低的中断处理程序时,优先级较高的事件可以中断其处理程序。处理完优先级较高的事件后,再返回到刚才被暂停的优先级较低的中断处理程序,继续执行。这种重叠处理中断的现象称为中断嵌套。•中断现场:指发生中断时CPU的主要状态,包括断点和一些通用寄存器的状态。•原因:为保证中断返回后原来的程序能正确地继续运行。一般采用软、硬件结合的方法来保护和恢复现场。6.8.3中断系统和程序中断方式09:16:0215要使计算机具有中断嵌套的能力,有两个关键点:•要能保护多个断点,依靠堆栈的“先进后出”特点保证中断的逐级返回。•在CPU进入中断处理程序后,系统必须处于开中断状态2、开中断和关中断开中断和关中断是由CPU中的中断允许触发器(EINT)控制的,当EINT=1,开中断;EINT=0,关中断。6.8.3中断系统和程序中断方式09:16:0216下列情况应开中断(即EINT=1)•在多重中断的情况下,保护中断现场之后•在中断服务程序执行完毕,并恢复完现场即将返回被中断的程序之前,为能再次响应中断请求做准备。下列情况应关中断(即EINT=0)•当响应某一级中断请求,不允许被其他中断请求打断。•在中断服务程序的保护现场和恢复现场之前。3、中断屏蔽用程序方式有选择地封锁部分中断源发出中断请求,使之不能真正送到CPU去,这就是中断屏蔽。6.8.3中断系统和程序中断方式09:16:02173、中断屏蔽(续)可对每个中断源设置一个中断屏蔽触发器(MASK),来有选择的封锁部分中断请求。编码器向量地址排队逻辑中断屏蔽寄存器中断请求寄存器0101010101010101INT由程序控制……&&&&≥16.8.3中断系统和程序中断方式09:16:0218【例】一个中断系统有16个中断源,每一个中断源按其优先级别赋予一个屏蔽字。屏蔽字与中断源的优先级别是一一对应的,“0”表示开放,“1”表示屏蔽。第1级中断源优先级最高,第16级中断源优先级最低,则各中断源的屏蔽字如下表所示:中断源的优先级屏蔽字(16位)123…1516111…111011…111001…111…000…011000…0016.8.3中断系统和程序中断方式09:16:0219开/关中断与中断屏蔽的区别•开/关中断是由CPU内部的中断允许触发器控制,当EINT=1时CPU才能响应中断;否则即使有中断请求信号,CPU也不响应。•中断屏蔽(寄存器)通常在CPU外部,每一位对应一个中断源,它决定某个中断源是否能真正发出中断请求。4、中断升级中断屏蔽字的另一个作用是改变中断优先级,将原级别较低的中断源变成较高的级别,称为中断升级。这是一种动态改变优先级的方法。6.8.3中断系统和程序中断方式09:16:0220中断响应次序与中断处理次序•中断处理次序可以不同于中断响应次序•中断响应次序是由硬件排优线路确定的固定次序。中断处理次序可通过修改屏蔽字来灵活调整,可把屏蔽字看作软排队器。•当同时出现几个中断请求时,由中断响应次序决定先响应哪个中断请求,一般按优先级高低来响应。但当执行到中断处理程序时,可以由屏蔽字来决定为哪个中断请求服务的次序,实际上就是中断嵌套的概念。6.8.3中断系统和程序中断方式09:16:0221【例】某计算机的中断系统有4个中断源,每个中断源对应一个屏蔽码,如下表所示。程序级别屏蔽码1级2级3级4级第1级1111第2级0111第3级0011第4级0001从表中可以看出,中断响应的优先次序为1→2→3→4,中断的处理次序和中断的响应次序是一致的。6.8.3中断系统和程序中断方式09:16:0222中断服务程序现行程序①②①③③②②④④①CPU的运动轨迹如下图所示思考:如果要使中断处理次序改为1→4→3→2,中断屏蔽码应如何设置?CPU的运动轨迹如何变化?6.8.3中断系统和程序中断方式09:16:0223五、中断全过程指从中断源发出中断请求开始,CPU响应这个请求,现行程序被中断,转至中断服务程序,直到中断服务程序执行完毕,CPU返回原来程序继续执行的整个过程。保护现场判断中断源开中断执行中断服务程序关中断恢复现场开中断准备部分处理部分结尾部分中断全过程分为5个阶段:①中断请求,②中断判优,③中断响应,④中断处理,⑤中断返回6.8.3中断系统和程序中断方式09:16:0224六、程序中断接口结构具有中断能力的外设接口是由程序查询式接口加上中断控制机构组成的,接口图见教材P308图8-18。向量中断接口比程序查询方式多了一个中断控制机构,包括以下几个部分:•中断请求电路:向CPU发出中断请求信号•中断优先电路:保证优先级高的中断源先获得服务•向量地址形成部件:产生向量中断时需要的向量地址,并转到该中断源对应的中断服务程序。6.8.3中断系统和程序中断方式09:16:0225本节课主要讲解了以下内容:一、中断的基本概念二、中断的基本类型三、中断请求和中断判优四、中断响应和中断处理五、多重中断与中断屏蔽六、中断过程重点掌握:中断请求和中断判优、中断响应和中断处理、多重中断与中断屏蔽、中断过程。小结: