1第六章中断技术有关中断的基本概念8086中断系统中断控制器8259A第七章中断§7.1概述2§6.1中断概述第六章中断§6.1概述中断的基本概念中断过程中断源的识别与判优3一、中断的基本概念CPU暂时中止正在执行的程序,转而去处理某一随机出现的紧急事件,处理完后继续执行原来的程序。中断1.中断第六章中断§6.1概述4指令指令现行程序中断服务程序IRET指令指令×中断请求一、中断的基本概念第六章中断§6.1概述5一、中断的基本概念1.中断为实现中断功能而设置的各种硬件和软件中断系统能发出中断的事件中断源断点、中断入口地址概念第六章中断§6.1概述6中断源包括:1.来自处理器外部的中断。如I/O设备请求、实时时钟等。2.故障源。如电源掉电,校验出错等。3.软件中断。如在调试程序时设置的断点等。一、中断的基本概念第六章中断§6.1概述7一、中断的基本概念2.中断的作用提高计算机工作效率•实现I/O操作,主机与外设并行工作;•实现实时处理;•异常报警及故障处理;•实现多处理机系统中各处理机之间的协调和联系;第六章中断§6.1概述8一、中断的基本概念3.中断优先级与中断嵌套中断优先级:CPU响应并处理中断请求的先后次序。中断嵌套:CPU在执行某个中断服务程序过程中对更高级别的中断请求的响应。同时有多个中断请求时优先级高的先得到响应。第六章中断§6.1概述9微处理器内部能够屏蔽的中断一、中断的基本概念4.中断的分类中断内部中断外部中断可屏蔽中断不可屏蔽中断(软件中断)(硬件中断)说明:高性能微机中软中断称为异常。第六章中断§6.1概述10可屏蔽中断和不可屏蔽中断可由用户指令来确定是否允许CPU响应的中断为可屏蔽中断。不能由用户用软件屏蔽的中断为非屏蔽中断。CPU必须响应非屏蔽中断请求。非屏蔽中断可由CPU外部产生,也可由CPU内部产生。外部产生的非屏蔽中断请求一般由NMI线引入。第六章中断§6.1概述111CPU何时可以处理可屏蔽中断请求?2CPU如何寻找中断源?3怎样恢复被中断的程序?二、中断过程第六章中断§6.1概述12二、中断过程中断请求响应确认中断处理1.中断请求中断返回中断系统需要解决的问题:•将随机出现的中断请求信号保持到被CPU发现。(锁存)•CPU响应中断请求后及时清除该请求信号。设置中断请求触发器措施:•对于多个中断源增加控制的灵活性。设置中断屏蔽触发器措施:中断请求•多个中断源的识别与判优第六章中断§6.1概述13二、中断过程2.响应确认中断请求响应确认中断处理中断返回(1)CPU在每条指令执行的最后一个总线周期(机器周期)的最后一个T状态检测中断请求输入端有无有效请求信号。响应确认第六章中断§6.1概述14二、中断过程2.响应确认中断请求响应确认中断处理中断返回•中断请求触发器置1。响应确认其它响应条件:•中断屏蔽触发器置0。•CPU内部开中断。•没有更高优先级别的中断请求正在被响应或正在发出。第六章中断§6.1概述15说明:①CPU内部中断允许触发器的状态可由指令来设定。2.响应确认•CPU复位时,CPU自动关中断;•中断请求被相应后,CPU自动关中断;•CPU执行关中断指令。②有三种情况可使CPU关中断:③中断关闭后要通过开中断指令才能开放中断。第六章中断§6.1概述16二、中断过程2.响应确认中断请求响应确认中断处理中断返回(2)CPU响应中断则自动完成:•关闭中断;响应确认•寻找中断源,确定入口,转向中断服务程序。•保护断点;CS、IP及FR内容入栈第六章中断§6.1概述17二、中断过程中断请求响应确认中断处理中断返回3.中断处理及返回中断处理CPU执行中断服务程序•保护现场中断服务程序主要包括的内容:•开中断•恢复现场•开中断•中断服务•关中断•中断返回中断返回核心(中心任务)第六章中断§6.1概述18内容回顾中断的基本概念中断的处理过程中断优先级中断的嵌套中断请求响应确认中断处理中断返回19三、中断源的识别与判优1.中断源的识别(1)查询中断•查询式中断接口示意软件查询•查询中断特点硬件开销小适用于中断源不多,实时性不高的场合中断源较多时查询需要花费较长的时间第六章中断§6.1概述20三、中断源的识别与判优1.中断源的识别(1)查询中断软件查询•查询中断与查询传送方式本质不同由中断启动而不是由微处理器启动的“查询”,命中率百分百•说明:第六章中断§6.1概述查询中断常用于简单的小系统中。211.中断源的识别(2)向量中断采用硬件来识别中断源第六章中断§6.1概述三、中断源的识别与判优中断向量外设中断请求FFQEN三态缓冲器DBINTRA1INTA右为CPU响应中断的过程。•特点:以硬件开销换取快的中断响应速度。221两个以上中断源同时请求时,如何处理?2处理某一中断时又有更紧迫中断请求,如何处理?第六章中断§6.1概述三、中断源的识别与判优23把全部中断源按轻重缓急排队,给出优先权(优先级)。中断优先权是指有多个中断同时发生时,CPU对中断源响应的次序。解决中断优先权的方法:⒈软件查询优先方式⒉硬件查询优先方式第六章中断§6.1概述三、中断源的识别与判优242.中断源的判优•查询顺序根据中断源的中断优先级来安排。先被查询的中断源具有较高优先级。(1)软件查询优先方式第六章中断§6.1概述三、中断源的识别与判优252.中断源判优(1)软件查询优先方式第六章中断§6.1概述三、中断源的识别与判优76543210中断请求寄存器INTR软件查询方式的接口电路26最简单的中断优先处理方式.硬件简单,不需要硬件排队电路.中断源多时查询时间增长,实时性差。程序查询流程图读中断请求寄存器0中断服务0请求?1请求?6请求?1中断服务6中断服务7中断服务YNYNYN272.中断源的判优(2)硬件查询优先方式•优先级中断链•矢量优先权排队由优先级中断控制器(PIC)构成优先编码器+比较器典型芯片:8259A第六章中断§6.1概述三、中断源的识别与判优28§6.28086中断系统8086的中断分类8086的中断管理第六章中断§6.28086中断系统29一、8086的中断分类•外部中断•内部中断第六章中断§6.28086中断系统30一、8086的中断分类外部中断(硬件中断)内部中断(软件中断)不可屏蔽中断请求8259AIRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7INTn指令溢出中断除法出错单步中断中断逻辑NMIINTRCPU断点中断教材P.20531一、8086的中断分类1.外部中断(1)外部中断的引入•NMI----不可屏蔽中断请求:可屏蔽中断与不可屏蔽中断•边沿触发方式,上升沿有效;•CPU执行完当前指令后立即响应;•系统只允许一个不可屏蔽中断源。•中断类型码定义为232一、8086的中断分类1.外部中断(1)外部中断的引入可屏蔽中断与不可屏蔽中断•INTR----可屏蔽中断请求:•电平触发方式,高电平有效;•CPU执行完当前指令后,根据IF标志决定是否响应其请求•CPU只有一个INTR引脚,但系统允许多个可屏蔽中断源,由中断控制器管理。33一、8086的中断分类1.外部中断(2)CPU对可屏蔽中断的响应过程①两个中断响应周期②一个写总线周期:FLAGS内容入栈③清IF和TF位④两个写总线周期:关中断及禁止单步中断保护断点⑤两个读总线周期:中断服务入口地址送IP、CS⑥中断处理及返回说明不可屏蔽中断在响应过程中不执行中断响应周期,其它同可屏蔽中断。教材P.253图7-9中断应答时序(P.253)T1T2T3T4AD7~0INTAALE第一个中断应答周期CLK类型码T1T2T3T4第二个中断应答周期34一、8086的中断分类2.内部中断(软件中断)用户定义的软件中断n:中断类型号(中断矢量)INTn指令溢出中断除法出错单步中断断点中断教材P.206352.内部中断(软件中断)INTn指令溢出中断除法出错单步中断断点中断CPU执行一条INT3指令,则产生一个断点中断:停止正常执行过程,以使CPU执行某种特殊处理。一、8086的中断分类362.内部中断(软件中断)INTn指令溢出中断除法出错单步中断断点中断如果上一条指令的执行结果使溢出标志位(OF)置1,则当CPU执行一条INTO指令,则产生一个溢出中断。一、8086的中断分类372.内部中断(软件中断)INTn指令溢出中断除法出错单步中断断点中断执行除法指令时,若除数为0或商数超过了范围,则CPU转入处理除法出错的中断服务程序。一、8086的中断分类382.内部中断(软件中断)INTn指令溢出中断除法出错单步中断断点中断当标志寄存器(FLAGS)中TF位为1时,系统处于单步工作方式。一、8086的中断分类392.内部中断(软件中断)INTn指令溢出中断除法出错单步中断断点中断①在执行单步中断服务程序时CPU自动将FLAGS寄存器内容入栈,并清IF和TF,因此中断服务程序期间非单步。中断子程序结束时,自动恢复FLAGS,又转入单步。•两点说明:②如何对TF标志置位或复位?一、8086的中断分类40一、8086的中断分类2.内部中断(软件中断)(5)单步中断INTn指令溢出中断除法出错单步中断断点中断②如何对TF标志置位或复位?PUSHFPOPAXORAX,0100HPUSHAXPOPF;FLAGS入栈;FLAGS→AX;置TF=1;新标志值入栈;新标志值→FLAGSANDAX,0FEFFH041一、8086的中断分类2.内部中断(软件中断)INTn指令溢出中断除法出错单步中断断点中断对内部中断(软件中断)的说明:•内部中断(软件中断)通过执行指令产生或由指令执行结果产生。•中断类型号由内部中断的具体类型定。INTn指令溢出中断除法出错单步中断断点中断类型号:n340142CPU对可屏蔽中断的响应过程一、8086的中断分类2.内部中断(软件中断)•中断响应过程中不执行中断响应总线周期。其余同可屏蔽中断。43中断类型码包含在指令中或已预先确定进入中断时不执行中断响应总线周期除单步中断外,任何内部中断都无法禁止没有随机性内部中断的特点:一、8086的中断分类44回顾:第六章中断2.8086中断系统(1)软件查询优先方式1.中断源的识别与判优(2)硬件查询优先方式•优先级中断链•矢量优先权排队•8086的中断分类45§7.28086中断系统第七章中断内部中断(单步除外)NMI引入的中断INTR引入的中断单步中断高低一、8086的中断分类3.8086系统中断源的中断优先级468086系统对中断服务程序的管理方式二、8086的中断管理1.中断向量表及其存放位置•中断向量表:存放中断服务程序入口地址的表格。•8086中断系统最多可定义256个不同的中断。中断类型号:0~255(中断向量号)每4个字节存放一个中断服务程序的入口地址。共1K字节478086系统对中断服务程序的管理方式二、8086的中断管理1.中断向量表及其存放位置•存放位置:内存最低端。•8086中断系统最多可定义256个不同的中断。00000H~003FFH•中断服务程序入口地址在表中存放:段基址较高字节,偏移地址较低字节48二、8086的中断管理§7.28086中断系统第七章中断2.中断向量表结构•入口地址在表中的存放位置与中断类型号的关系该中断的入口地址在表中的存放位置•表结构中断类型号n×449二、8086的中断管理§7.28086中断系统第七章中断2.中断向量表结构例0000:0084H~0000:0087H中断类型号为21H,该中断服务程序入口地址在中断向量表中的存放位置?21H×484H∴入口地址存放于内存的四个字节单元的位置:问题:如何将中断服务程序入口地址装入中断矢量表?50二、8086的中断管理§7.28086中断系统第七章中断3.中断服务程序入口地址的装入•直接装入例中断类型号为6BH,该中断服务程序在内存中的位置为1000H:2000H。6B4H=1ACH…XORAX,AXMOVDS,AXMOVDI,01ACHMOVAX,2