第5章中断技术概要

上传人:今*** 文档编号:107468685 上传时间:2019-10-19 格式:PPT 页数:138 大小:3.88MB
返回 下载 相关 举报
第5章中断技术概要_第1页
第1页 / 共138页
第5章中断技术概要_第2页
第2页 / 共138页
第5章中断技术概要_第3页
第3页 / 共138页
第5章中断技术概要_第4页
第4页 / 共138页
第5章中断技术概要_第5页
第5页 / 共138页
点击查看更多>>
资源描述

《第5章中断技术概要》由会员分享,可在线阅读,更多相关《第5章中断技术概要(138页珍藏版)》请在金锄头文库上搜索。

1、浙江工业大学计算机学院,微机接口技术,1,内容回顾,DMA传输基本概念 DMA的传送过程、传送方式和操作类型。 DMA控制器8237A 8237A的内部结构和外部引脚。 8237A的内部寄存器(10种)及其地址分配。 8237A的编程步骤和工作时序。 PC中的DMA应用 DMA系统的组成。 单片DMA系统和双片DMA系统。 DMA系统的应用实例。,2,3,第五章 中断技术,中断方式下,CPU无需完全服务于某个外设,效率高。 当出现某些异常或某外设有请求时,CPU暂停正在执行的程序,转去执行某一特定的程序,执行完后再返回原来的程序处继续执行。,5.1 中断技术概述,4,中断 指CPU正在执行某程

2、序的过程中,由于出现了某些异常或外设提出了某种请求,CPU暂停当前程序,转去处理异常或外设请求的程序,执行完后再返回原来被终止的程序处继续执行。该过程称为中断。 主程序 未发生中断时,CPU正在执行的程序称为主程序。,5,(1) 中断的常用术语,中断服务程序 ISR 处理中断事件的程序,又称中断子程序。 不同的中断对应不同的ISR。 断点 中断时,主程序中被终止指令的下一条指令的地址。 CPU转去执行ISR时,断点被压入栈中进行保护;ISR执行完毕后,CPU通过出栈操作从栈顶获得中断断点,确保能返回到主程序处继续执行。,6,中断源 引起中断的事件或设备。 内部中断:在CPU的内部产生。例:CP

3、U执行程序时遇到的特殊情况,如:除法错。 外部中断:在CPU的外部产生。例:外设提出的中断,如电源故障。 中断类型号 微机系统中有多个中断源。为便于区分,为每个中断源分配一个编号,即中断类型号。,7,中断接口 当中断源向CPU发中断请求时,需由一个电路来进行管理,如:接收中断请求、屏蔽/打开中断请求、中断优先级排队、中断嵌套和中断结束等。实现中断管理的逻辑电路称为中断接口。 本章使用8259A可编程中断控制器对系统的中断进行管理。,8,中断识别 指CPU确定哪一个中断源发出中断请求的过程。 目的:最终形成该中断源所对应的中断服务程序的入口地址,实现程序的转移。 中断识别的2种方法: 查询法:采

4、用软件或硬件查询技术来确定发出中断请求的中断源。 硬件法:由可编程中断控制器来提供中断类型号。,9,中断向量和中断向量表 中断向量:指中断服务程序的入口地址。 每个ISR都有一个确定的入口地址。 入口地址 = 段基址CS : 偏移地址IP,共4个字节。 中断向量表:将系统中所有的中断向量集中起来,按中断类型号从小到大的顺序存放在内存某区域。该存储区域称为中断向量表。 PC机中共有256个中断(0255),每个中断向量占4个字节,共占1KB的存储区域。 用 000003FFH 的内存单元存储中断向量表。,10,11,从中断源请求中断到完成ISR后返回主程序的过程,称为中断过程。包含4个阶段。 中

5、断源请求中断 外设发出中断请求时,中断接口电路需设置中断请求触发器,保持外设的中断请求信号,直到CPU响应该中断后才清除它。 中断接口电路应设置中断屏蔽寄存器,CPU可通过对其进行设置,使得某些中断源的中断请求不能提交到CPU。,12,(2) 中断过程,中断判优 由于同一时刻可能会有多个中断源同时请求中断服务,因此接口电路需对这些中断源进行优先级判别和优先级排队。这个过程称为中断判优。 CPU按照优先级的高低顺序来响应中断。,13,中断响应 收到中断请求后,若CPU满足响应条件,则进入中断响应周期。 CPU响应中断的条件: CPU当前指令执行结束。 没有更高级的中断请求在执行。 CPU处于开中

6、断状态 (IF=1)。可用指令改变IF的状态:STI开中断;CLI关中断。,14,15,中断响应及处理过程示意图,中断响应周期需完成的操作(CPU硬件自动完成) 清IF和TF单步陷阱标志,以免在响应过程中被新的中断源中断,破坏了当前中断处理的现场。 将标志寄存器FLGAS和中断断点 (CS:IP) 压栈保存。 查找中断向量表,获得ISR的入口地址,转去执行ISR。,中断服务 CPU转入ISR后,需做以下几件事情: 保护现场:ISR将要用到的寄存器压栈,以免其数据破坏。 开中断:以便在执行ISR时,能响应更高级的中断请求。 中断处理:处理中断请求所要求的操作。 关中断:保证在恢复现场时不被新的中

7、断打断。 恢复现场:在ISR结束前,执行出栈操作,恢复各寄存器的内容,以便主程序正确执行。 开中断:保证返回主程序后仍能响应中断。 中断返回:ISR的最后一条指令为IRET,它将IP、CS和FLAGS的内容依次弹出,以便恢复到主程序的断点处。,16,中断管理包括中断源识别、优先级排队和中断嵌套。 中断源识别 PC机内有多个中断源,CPU收到中断请求后,需识别是哪一个中断源发出了中断请求信号,以便执行相应的中断服务程序。 中断源识别的两种方法: 软件查询:CPU逐个查询各中断源的状态,从而确定是哪个设备发出了中断请求。 硬件处理:中断接口电路将要响应的中断类型号送给CPU。,17,(3) 中断管

8、理,2. 中断的优先级排队 当有多个中断源同时请求中断时,由于CPU在同一时刻只能响应并处理一个中断请求,因此,需根据中断的性质及轻重缓急对中断源进行优先级排队。 CPU先响应优先级高的中断请求。高优先级的中断请求可中断低优先级的中断服务。 优先级排队的方法: 软件查询法 硬件菊花链排队法 可编程中断控制器排队法,18,软件查询法,19,软件查询法的实现: 屏蔽法,20,IN AL,20H ; 读取中断请求触发器的内容 TEST AL,80H JNE A_ISP ; 外设A有请求,则转入A的服务程序 TEST AL,40H JNE B_ISP ; 外设B有请求,则转入B的服务程序 TEST A

9、L,20H JNE C_ISP ; 外设C有请求,则转入C的服务程序 ,移位法,21,IN AL,20H SHL AL,1 JC A_ISP ; 外设A有请求,则转至A的服务程序 SHL AL,1 JC B_ISP ; 外设B有请求,则转至B的服务程序 SHL AL,1 JC C_ISP ; 外设C有请求,则转至C的服务程序 ,软件查询法的优缺点: 优点:实现简单,节省硬件。 缺点: 中断源较多时,查询程序较长,由查询转入相应的中断服务程序入口需要的时间较长。 查询的先后顺序决定了中断的优先级顺序:先被查询的中断,优先级最高。,22,硬件菊花链法 在每个外设的接口上接一个逻辑电路,这些电路构成

10、一个链来实现中断应答信号的控制,称为菊花链。,23,菊花链工作原理 中断请求:设备A、B、C通过接口发出中断请求:1有请求,0无请求。只要有一个设备发出请求,则 INTR = 1。 中断响应:若CPU允许中断,则发INTA中断响应信号。该信号先送给外设A的菊花链电路。 若A没有请求,则它输出的INTA仍为0,继续往下传。 若A有中断请求,则经过或门时,由于其中断请求为1,故输出的INTA为1,使得后继的中断得不到响应。,24,特点:越靠近CPU的外设,优先级越高。,可编程控制器排队法 早期的PC多采用软件查询或菊花链法。 目前的PC一般采用专用的可编程控制器芯片来完成中断优先级的排队管理,如8

11、259A。,25,3. 中断嵌套 CPU正在处理某个中断的过程中,若出现了更高级的中断请求,则CPU停止执行级别低的ISR,而转去处理级别更高的中断。等高级别的中断处理完后,再返回原来的低级中断继续执行,依次类推,直到返回主程序。这种方式称为多重中断或中断嵌套。,26,27,内容概要,中断的常用术语:9个基本概念 中断过程:申请、判优、响应、服务 中断管理:判优、优先级、嵌套,8086/8088用8位二进制数表示一个中断类型号,可区分256个中断源。 8086/8088中断系统的结构,28,(1) 中断的类型,外部中断 由CPU外的硬件产生,又称硬件中断。有以下2种: NMI(不可屏蔽中断)

12、触发,不受IF标志位控制 。只要有NMI ,CPU在当前指令结束后,立刻响应该中断。 中断类型号为2,CPU无需发中断应答即可立即执行2号中断的ISR。 外部中断中,NMI的优先级最高,用于电源掉电、时钟错误等紧急情况,一般用户不能使用。,29, INTR(可屏蔽中断) 高电平触发,必须保持到当前指令结束。 受IF标志位控制。STI:允许中断;CLI:禁止中断。 中断类型号为 080FH 和 070H077H。当中断允许时,CPU发出中断应答信号INTA,并从8259A获得中断源的中断类型码。 中断响应的条件: 有中断请求 系统处于开中断状态(IF=1),30,内部中断 由CPU执行指令产生的

13、中断,又称软件中断。 除法错 当除数为0,或对带符号数进行除法运算时所得结果超出规定的范围,则CPU自动产生该中断。 中断类型号为0。,31, 单步中断 调试程序时用。CPU每执行一条指令,就进入一次中断。功能:显示出CPU内部各寄存器的内容。 受TF标志位控制。TF=1时,CPU自动产生单步中断。 中断类型号为1。,32, 断点中断 INT 单字节中断指令,类型号为3。 调试时可在程序关键处设置断点。当程序执行到该指令处,转去执行一个断点中断。功能:显示CPU内部各寄存器的内容,并给出一些提示信息。,33, 溢出中断 INTO 单字节中断指令。类型号为4。 该指令常跟在带符号数加、减法运算指

14、令之后。若标志寄存器的OF=1,则执行溢出中断,其中断服务程序给出出错信息。 用户定义的软件中断 双字节中断指令INT n,由用户定义,类型号为n。 不可被屏蔽。CPU不发响应信号,中断控制器不提供中断类型号。,34,内、外中断的优先级次序 8086/8088系统中,除单步中断外,所有内部中断的优先级均高于外部中断。 除单步中断外,所有内部中断都不能被屏蔽。,35,8086/8088系统支持256个中断源,各个中断源用不同的中断类型号标识,即:0255。 每个中断源都有相应的ISR,每个ISR都有不同的入口地址(又称中断向量) 。 每个入口地址由4个字节标识: 低2个字节:存放中断入口的偏移地

15、址(IP)。 高2个字节:存放中断入口的段基址(CS)。 系统各个中断入口地址的集合形成中断向量表。共占1KB空间,地址范围 0000H03FFH(DS=0)。,36,(2) 中断向量表,37,由于0255号中断的入口地址依次连续排列,故:已知某中断的类型号为n,则其对应的 ISR入口地址在中断向量表中的存储位置为4n。 依次从4n处取出4个字节的内容,低2个字节送入偏移地址IP,高2个字节送入段地址CS,即: (IP) (4n+1, 4n)。 (CS) (4n+3, 4n+2) 。 获得了中断的入口地址,即可转入相应的 ISR 执行中断处理过程。,38,【例5-1】已知类型号为15H的中断,

16、其 ISR 存放在内存的5678H: 0100H 5678H: 0123H单元。画出该中断的中断向量在中断向量表中的位置和内容。 解: ISR 的入口地址为 5678H: 0100H,其中IP=0100H,CS=为5678H。 已知中断类型号n=15H, n4 =15H4 = 0054H,故 0054H 和 0055H单元存放偏移地址0100H。 0056H 和 0057H单元存放段地址 5678H。 由此可画出中断向量在中断向量表中的位置和内容。,39,40,中断向量表建立中断类型号与中断向量间的关系。 中断类型号固定不变,但其对应的中断向量(即存储的内容)可以修改和变化。(系统中的专用中断不允许修改) 设置或修改中断向量前,要关闭中断,避免在设置或修改过程中被中断。 设置中断向量的2种方法: 直接写入法 利用DOS功能调用,41,(3) 中断向量的设置与修改,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号