微机原理与接口技术课件 7.中断向量表(已看)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
33
最多1主8从
级连电路连接方法 系统总线 AB、DB、CB
64个中断源
INTA A0 CS D0-D7 RD WR INT
INTA A0 CS D0-D7 RD WR INT
INTA A0 CS D0-D7 RD WR INT CAS0 CAS1 CAS2
8259A (从片1)
CAS0 CAS1 CAS2
默认优先级 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
7
6
5
4
3
2
1
0
3
2
1
0
7
6
5
4
26
最低级
最高级
最高级
最低级
中断优先方式与中断嵌套(续)
循环优先级方式
中断源轮流处于最高优先级,即自动中断优先级 循环 初始优先级顺序可用编程改变 某中断请求IRi被处理后,其优先级别自动降为 最低,原来比它低一级的中断上升为最高级
29
自动EOI方式:在第2个INTA结束时,由8259A使 ISRi自动复位;
因不保留当前正在服务的中断的状态,故AEOI不能用于 中断嵌套方式
特殊EOI方式:由CPU发出一条SEOI命令,该EOI 命令中指出了所要复位的ISR的位号。
用于特殊屏蔽方式
正常EOI方式:由CPU发出正常EOI命令,该EOI命 令使ISRi=1的位中优先级最高的那一位复位。
8086/8088 CPU的中断响应过 程
内部中断响应过程 :
无INTA周期 中断类型码固定(0、1、3、4)或由指令给出(n) 响应过程主要步骤:
① PUSH FLAGS ② IF=TF=0(关可屏蔽中断和单步中断) ③ PUSH CS ④ PUSH IP ⑤ 取中断向量送入IP’和CS’
中断优先级控制方式 :固定优先级和循环优 先级 固定优先级方式
所有中断请求IRi的中断优先级固定不变 优先级排列顺序可编程改变 加电后8259A的默认方式,默认优先级顺序从 高到低为IR0~IR7
优先级可编程改变 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 优先级
31
中断触发方式
边沿触发 IRi出现上升沿表示有中断请求 电平触发 IRi出现高电平表示有中断请求 应注意及时撤除高电平,否则可能引起重复 响应 在第1个INTA结束前,IRi必须保持高电平
32
级联工作方式
单片8259A可支持8个中断源; 采用多片8259A级连,可最多支持64个中断源。n 片8259A可支持7n+1个中断源; 级连时只能有一片8259A为主片,其余的均为从属 片;(一主多从) 涉及到的8259A引脚包括: CAS0-CAS2 SP/EN IRi INT
ISR 内容
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 0 2 1 1 0 0 0 7 0 6 0 5 0 4 0 3
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 ISRi 0 7 1 6 0 5 1 4 0 3 0 2 0 1 0 0
最低级
IR4的服务结束以前
Controller
8259A
20
8259A内部结构
21
8259A逻辑结构及连接
22
8259A的内部结构
8259A的内部结构 中断请求寄存器IRR 保存从IR0~IR7来的中断请求信号,某位=1表示对应的 IRi有中断请求 中断服务寄存器ISR 保存所有正在服务的中断源,某位=1表示对应的IRi中断 正在被服务 中断屏蔽寄存器IMR 存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽 中断优先权判别电路 确定是否向CPU发出中断请求,中断响应时确定ISR的哪 23 位应置位及把相应中断的类型码放到数据总线上
15
CPU响应中断的条件
内部中断请求:直接转入中断周期, 由内部硬件自动执行预定的操作。 外部中断请求:中断屏蔽触发器开放; CPU内部是中断开放的;没有更高级 的中断请求正在被响应或正在发出; CPU现行指令结束;
16
中断处理过程
在满足中断响应条件以后,CPU就响应中断请求, 并自动关中断,然后进入中断服务程序,在中断服务程 序中要完成以下工作: 保护现场 开中断 完成输入输出或异常处理的服务程序 关中断 恢复现场 开中断 中断返回 17
7
外部中断的种类
非屏蔽中断:类型号2,不可用软件屏蔽,CPU
必须响应它。 可屏蔽中断:类型号n由PIC(8259)提供,IF=1 时CPU才能响应。
8
与(外部)中断有关的引脚
与中断有关的控制线为:NMI和INTR、INTA NMI:上升沿出发。 INTR:高电平出发。 INTA:可屏蔽中断的响应信号。
9
中断过程
主程序 中断服务程序
响应 服务/ 处理 排队 硬/ 软 INT n 返回 IRET
五个步骤:
中断请求 中断判优/排队 (有时还要进行中断源 识别) 请求 中断响应 中断服务/处理 中断返回
以下以外部中断为主介绍这五个步骤。
10
Hale Waihona Puke Baidu
8086/8088中断源类型
内部/软件中断请求
软件中断指令 n 溢出中断 断点中断 除法错 4
8259A (从片2)
CAS0 CAS1 CAS2
8259A (主片)
SP/EN IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
SP/EN IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
SP/EN IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
VCC
主片:SP/EN接+5V;从片:SP/EN接地。
用于普通全嵌套方式
30
屏蔽中断源的方式
普通屏蔽方式:IMR屏蔽字决定了允许或禁止某 位IRi所对应的中断:IMi=1 禁止, IMi=0 允许。 特殊屏蔽方式: 提供了允许较低优先级的中断能够得到响应的 特殊手段。 原理:假定当前正在处理IR6,先进入特殊屏 蔽方式,然后设置IM6=1。这时,除IR6外的 所有中断请求均能得到响应。 特殊屏蔽方式中只能用SEOI命令结束中断。
一中断正被处理时,允许同级或更高优先级的事件可以 打断当前的中断处理过程而被服务。 注: 特殊全嵌套仅用于多个8259A级连时的主8259A, 而不能用于从属8259A或单8259A系统。
28
中断结束处理方式
当某一IRi中断被服务时,ISR中的相应位 ISRi=1。当服务结束后,则必须清零该ISRi位。 使ISRi=0是通过向8259A发出中断结束命令 (EOI命令)实现的。 三种EOI命令 自动EOI(AEOI) ——(自动EOI方式) 非指定EOI(NSEOI)——(正常EOI方式) 指定EOI(SEOI) ——(特殊EOI方式)
12
中断优先级
背景:系统有多个终端,而CPU同一个时
刻只能响应一个中断,为了解决这个矛 盾应按中断的轻重缓急来确定中断的优 先级别.
13
8088/8086系统中各中断的优先级
优先级从高到低顺序如下:
软件中断、内部中断 (除单步中断外) NMI INTR 单步中断
高
低
14
中断判优
最高级
最高级
最低级
27
IR4的服务结束以后
中断优先方式与中断嵌套(续)
中断嵌套方式 在中断处理过程中允许被更高优先级的事件所中断称 为中断嵌套。8259A有两种中断嵌套方式: 普通全嵌套方式(默认方式)
一中断正被处理时,只有更高优先级的事件可以打断当 前的中断处理过程而被服务。
特殊全嵌套方式
溢出中断:类型号4,这是一个软件中断,即INTO指令。
若算术指令的执行结果发生举出(OF=1),则执行指 令后立即产生一个中断类型码为4的中断。
用于程序调试,在断点中断服务程序中,可显示有关寄存器、存储 单元等内容,以便程序员分析到断点为止程序是否正确。
软件中断:即INT n指令,类型号n(0-255)。
中断指令 INT n
(n=0~255)
软件 硬件
外部/硬件中断请求
2
NMI
非屏蔽中断请求
可 屏 蔽
中 断 请 求
11
DB
3 中断逻辑
n 中断控 制器 8259A PIC
0
1
单步中断
内部排队 中断开关
INTR
INTA
8086/8088 CPU内部逻辑
中断请求\排队\屏蔽
中断源的识别
8088/8086系统采用中断类型码n来识别不同的中断 源。每个中断源都有一个与它相对应的中断类型码n 。 溢出、断点、除法溢出、单步、非屏蔽中断的类型 码为固定值(4、3、0、1、2) 软件中断的类型码由指令INT n 给出(n) 可屏蔽中断的类型码由PIC(8259)给出(n) CPU响应INTR中断时,会产生两个中断响应总线周 期INTA,要求PIC在第2个中断响应总线周期把中断 类型码 n 放到数据总线上,供CPU读入。
5
初始化——将中断服务 程序的入口地址放入向 量表 例:中断类型码n为48H 的中断处理子程序的名 字为int48h.
高 8位
低 8位
6
内部中断的种类
目的操作数所能表达的范围时产生。
除法溢出:类型号0,执行除法指令时,若发现除数为0或商大于
单步中断:类型号1,TF=1时产生(当前指令需执行完)。 断点中断:类型号3,这是一个软件中断,即INT 3指令。一般
PUSH CS/IP/FLAGS
JMP CS’:IP’
18
中断响应过程(续)
外部中断响应过程
非屏蔽中断NMI,中断类型码为固定(2) 与内部中断响应过程类似 可屏蔽中断INTR
① INTA(1)PIC进行优先级排队判优处理 ② INTA(2)PIC把中断类型码n放到DB上,CPU读入 ③ PUSH FLAG ④ IF=TF=0(关可屏蔽中断和单步中断) 与内部中断一样 ⑤ PUSH CS ⑥ PUSH IP ⑦ 取中断向量送入IP’和CS’
19
可编程中断控制器8259A
PIC,Programmable Interrupt
可对8个中断源实现优先级控制 (单个管8个) 可扩展至对64个中断源实现优 先级控制(9个管64个) 可编程设置不同工作方式(多套 管理方案) 根据中断源向x86提供不同中断 类型码n(来访者1人1号) 引脚分配及功能见右图
8259A的工作过程
8259A对中断请求的处理过程如下:
当某IRi有效时,IRR相应位置1 若有效的IRi未被屏蔽,则向CPU发出中断请求INT 检测到第1个INTA信号后,置ISRi=1,IRRi=0 检测到第2个INTA信号后,把ISRi=1中最高优先级 的中断类型码 n 放到DB上
中断优先级控制要处理两种情况: 对同时产生的中断:应首先处理优先级别较高的中断; 若优先级别相同,则按先来先服务的原则FIFO处理; 对非同时产生的中断:低优先级别的中断处理程序允 许被高优先级别的中断源所中断——即允许中断嵌套。 通常将中断判优与中断源识别合并在一起进行处理。 x86系统中,这项任务由PIC(8259)和 CPU(8086/8088)共同完成。
若工作在AEOI方式,在第2个INTA结束时,使ISRi 复位;否则由CPU发出EOI命令使ISRi复位 24
8259A的工作方式
8259A的工作方式有如下几类: 中断优先方式与中断嵌套 中断结束处理方式 屏蔽中断源的方式 中断触发方式 级联工作方式
25
中断优先方式与中断嵌套
的中断;
内部中断:由处理器电路或中断指令产生的中断,
如除0中断,int指令等。
4
8086的中断向量表
存放各类中断的中断服务程序的入口地址CS:IP(段 CS和偏移IP)——中断向量 表的地址位于内存的00000H~003FFH,大小为 1KB,共256个中断向量(中断向量表) 每个中断向量占用4 Bytes,低字为段内偏移IP,高 字为段基址CS 根据中断类型号n获得中断服务程序入口的方法: 中 断向量在IVT中的存放地址=4×n (中断向量地址)
第七讲 中断技术
1
中断之概念
“中断”意思为打断操作的顺序。CPU正在执行程
序,有个“中断”打断了指令的正常执行顺序,使得
CPU中止正在执行的程序转而去执行被称为中断服务程 序(ISR)的其它程序。
2
中断之目的
计算机系统中引入中断的目的主要有两个:
数据的传送;
异常的处理;
3
中断之种类
外部中断:来自处理器外部的中断,如键盘引起