第8章 微型计算机中断系统
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 如允许中断嵌套需打开中断
CPU在响应中断时已自动关闭中断,不允许其他 的中断来打断它。如果允许比它优先权更高的中 断来打断,则需要用STI指令打开中断。若没有更 高级别的中断,则无此必要。
3. 中断服务
执行中断服务程序。若在中断处理过程中曾开中 断,则此时要关中断。关中断的目的是让恢复现 场的工作顺利进行而不被中断。
SP
进入中断服 务程序时
IPL IPH CSL CSH FLAGL FLAGH
中断返回后
IPL IPH CSL CSH FLAGL FLAGH
IP
CS FLAG
返回 目录
SP
8.3 中断优先级和中断嵌套
一、 中断优先级概述
多个中断源产生中断,CPU首先为谁服务? ——中断优先级排队问题。 中断优先级控制要处理两种情况:
CPU在响应中断后,在进入中断处理之前还要 自动完成3项工作。 ①将CS、IP以及标志寄存器的内容压入堆栈; ② 关闭中断; ③ 转入中断服务程序进行中断处理。这就是 将中断服务程序的段地址送CS,偏移地址送 IP。
三、中断处理
源自文库
1. 保护现场
CPU响应中断时自动保护了CS、IP和F1ag寄存 器。在中断服务程序中会用到另一些寄存器,为 了保证中断返回后主程序能继续正确执行,必须 把这些寄存器内容压入堆栈保护起来,称为保护 现场。
00000H
假设cpu从外设读得的中断类型码 N=40H,CPU将N×4=100H. 100H就是中断矢量表的首地址。
中 断 矢 量 表 区
(=1K)
┇
40H×4= 100H
空单元
0
1
0
5
0 2
0 0
假定在100H 为首地址的4个单 元中,低地址的2个字节中已 放入1500H,高地址的2个字节 中已放入2000H. 这就是说中断 服务程序入口地址,它的代码 段段地址= 2000H,它的偏移 地址= 1500H。 CPU把低地址一个字取出送入指 令指针IP,把高地址一个字取出送 入代码段寄存器CS,程序就转入逻 辑地址为2000:1500H的入口去执 行中断服务程序。
4. 恢复现场
在中断返回前要把保护现场时压入堆栈的寄存器 内容恢复。恢复现场用POP指令。需要注意的是, 弹出的顺序应与压入的顺序相反。
5. 中断返回
执行中断返回指令IRET IRET指令将使CPU把堆栈内保存的断点信息弹 出到IP、CS和FLAG中,保证被中断的程序从断 点处能够继续往下执行。
INTR M/IO RD
中断1(自A设备) 中断2(自B设备) 中断3(自C设备) 中断4(自D设备)
≥1 译码器输出Yi 1≤
中断入口
保护现场,读中断位状态 Y
是A设备?
N 是B设备? N 是C设备? Y Y
设备A的中断服务程序
设备B的中断服务程序
设备C的中断服务程序
N
错误出口 恢复现场、中断返回
8086/8088系统的中断源 除法错中断--类型号0
内部中断
256 个中 断源
单步中断-----类型号1 断点中断-----类型号3 溢出中断-------类型号4 软件中断-----类型号n(0-255)
外部中断
非屏蔽中断--类型号2 可屏蔽中断--类型号由PIC提供
▼内部中断
★ 除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。 ★ 单步中断:类型号1,TF=1时产生(当前指令需执行完) ★ 断点中断:类型号3,这是一个软件中断,即INT 3指令。 ★ 溢出中断:类型号4,这是一个软件中断,即INTO指令。 ★ 软件中断:即INT n指令,类型号n(0-255)
&
=1 ≥1
INTAin
INTR
INTAout
四、中断嵌套 优先权高的中断首先得到响应,并且可以中断 正在被响应处理的优先权低的中断,这种一个 中断服务程序在执行过程中又被另一个中断服 务程序中断的现象称为中断嵌套
中断服务 程序 1 中断服务 程序 2 中断服务 程序 3
五、中断响应时序
CPU对可屏蔽中断请求的响应过程要执行两个 连续的中断响应 总线周期,每个周期包括4个 时钟周期T1~T4。第一个周期通知外设CPU 接收到中断请求信号,准备响应中断,外设要 把对应的中断类型号准备好;第二个周期CPU 接受外设的中断类型号。
菊花链逻辑电路
外设接口
三态门 中 断 向 量 码
DB
⑶此级的外设接口 收到INTA后,向 总线发出中断类型 号,撤销中断请 IREQ,从而CPU 转入相应中断服务 程序 。
E
中断确认 菊花链 逻辑电路
IREQ ⑵当前一组外设没有 发出中断申请时,INTA会 沿着菊花链往后传。当某一 级外设发出了中断申请时, 此级的逻辑电路就阻塞了 INTA的通路。
链式判优电路原理图--菊花链法
外设1 外设2 菊花链逻辑电路原理 说明: CPU ⑴ 当任一外设申请 中断后,中断请求 外设接口1 外设接口2 外设接口3 IREQ送到CPU的 IREQ IREQ IREQ INTR端,CPU发出 INTA中断响应。 中断确认 中断确认 中断确认
INTAin
菊花链 逻辑电路
专用中断 备用中断
用
∶
00C4H 00C8H
∶
类型 31H 类型 32H
∶
中断入口 中断入口
户中断
03FCH 类型 0FFH
∶
中断入口
中断矢量表分为三部分: (1)专用中断:类型0~类型4,共有5种类型。 专用中断的中断服务程序的入口地址由系统负责 装入,用户不能随意修改。 (2)备用中断:类型5~类型3FH,这是Intel公 司为软、硬件开发保留的中断类型,一般不允许 用户改作其他用途,是为系统预留的中断。 (3)用户中断:类型40H~类型FFH,为用户可 用中断,其中断服务程序的入口地址由用户程序 负责装入。
2、中断子程序 CPU响应中断源的申请后执行的一 段程序通常称为中断子程序,这个过程可 以理解称为CPU暂停正在执行的程序转向 中断源为其服务的过程,该过程如同各个 政府用提前做预案来应付突发事件一样。
3、中断类型号
为了区别不同的中断服务子程序,在微 型计算机中给每个中断服务子程序都编有一个 唯一编号,即中断类型号。用户自己编写的中 断服务子程序也需要一个唯一的中断类型号。 有了中断类型号,当用户要调用某个中断服务 子程序时,只需给出相应的中断类型号即可。 例如Int 10H,调用10H号中断服务程序。
第八章 微型计算机中断系统
本章内容
★ ★ ★ ★ ★ 8.1 8.2 8.3 8.4 8.5 中断概述 8086的中断处理过程 中断优先级和中断嵌套 可编程中断控制器8259A PC机中断程序设计
8.1 中断概述
一、 中断的引入 中断与生活场景的比较
实际场景 正在看书 电话铃响
计算机 执行程序 事件发生 事件处理 继续执行程序 中断请求及响应 中断处理 中断返回
对同时产生的中断:应首先处理优先级别较高的中断;若优
先级别相同,则按先来先服务的原则处理; 对非同时产生的中断:低优先级别的中断处理程序允许被高 优先级别的中断源所中断——即允许中断嵌套。
中断优先级的控制方法
硬件判优——链式判优、并行判优(中断向量法) 软件判优——顺序查询中断请求,先查询的先服务(即先查
4、中断向量及中断向量表
每一个中断都对应了一个中断服务子程序, CPU要执行中断服务子程序就必须知道该子程 序的地址,即该子程序第一条指令的地址,这 个地址也就是中断服务子程序的入口地址,称 为该中断服务程序的中断向量或中断矢量。
0000H 除法中断入口 0004H 单步中断入口 0008H NMI 000CH 断点中断入口 0010H 溢出中断入口 0014H 类型 5 中断入口 中断入口 IP CS
8086CPU可管理256种中断。每种中断都指定一个 中断矢量号(类型号),每一种中断矢量号都与一个 中断源相对应。中断服务程序的入口地址存放在内存 储器的中断矢量表内。 8086以中断矢量号为索引号, 从中断矢量表中取得中断服务程序的入口地址。 每个中断矢量(入口地址)占4个字节,高2字节放 段地址,低2字节放偏移地址。 存放中断矢量的地址=类型号n x 4, [4n+1,4n] IP [4n+3,4n+2] CS 即可转入中断服务程序。
003FFH
2000: 1500 (CS : IP)
Ω
Ω
┇
返回 目录
8.2 8086的中断处理过程
一、中断请求 外设接口(中断源)发出中断请求信号,送到 CPU的 INTR或NMI引脚;
中断请求信号:边沿请求,电平请求
例如,NMI为边沿请求,INTR为电平请求
中断请求信号应保持到中断被处理为止; CPU响应中断后,中断请求信号应及时撤销。 在8086/8088系统中,外设的中断要经过8259A可编程 中断控制器(PIC)的排队判优后向CPU发出: (I/O接口) → PIC → CPU
接电话
继续看书
中断的定义 CPU执行程序时,由于发生了某种随机的事件(外部或 内部),引起CPU暂时中断正在运行的程序,转去执行 一段特殊的服务程序(称为中断服务程序或中断处理程 序),以处理该事件,该事件处理完后又返回被中断的 程序继续执行,这一过程称为中断。 为何计算机中要引入中断?
# 避免了CPU不断检测外设状态的过程,提高了CPU的利率。 # 实现对特殊事件的实时响应。如多任务操作系统中: 缺页中断 设备中断 各类异常 实时钟,。。。等
二、
中断的基本概念
1、中断源 引起CPU中断的事件。例如: ▼ 外设——请求输入输出数据,报告故障等 ▼ 事件——掉电、硬件故障、软件错误、非法操作、 定时时间到等 中断源分为:外部中断、内部中断 ▼ 内部中断:由程序预先安排的中断指令(INT n) 引起,或由运算出错(如:除法出错,溢出)引 起。 ▼ 外部中断:CPU以外的设备或协处理器向CPU发 出的中断。
询的优先级别高)
通常将中断判优与中断源识别合并在一起进行处理。
80x86系统中,这项任务由PIC和CPU共同完成。
二、用软件查询方法确定中断优先权 采用软件查询中断方式时,中断优先权由查 询顺序决定,先查询的中断源具有最高的优先权。
8086 CPU
INTR
D7 D6 D5 D4 输入 端口 EN
二、中断响应 对非屏蔽中断(即从NMI脚来的申请),CPU执行 完当前指令后若无总线请求即予以响应; 对可屏蔽中断(从INTR脚来的申请),CPU必须 在以下四个条件同时被满足时才能响应: ① 无总线请求。系统中若有其他总线设备,例如 别的微处理器或DMA控制器,它们必须没有发出总 线请求信号; ② 无非屏蔽中断请求; ③ CPU允许中断。即CPU内部的中断允许寄存器 置1。对8086/8088来说,IF=1; ④ CPU执行完现行指令。
▼外部中断
★ 非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。 ★ 可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。
★ 8086/8088的外部中断信号:INTR、NMI
INTR——可屏蔽中断请求,高电平有效,受
IF标志的控制。IF=1时,执行完当前指令后 CPU对它作出响应。 NMI——非屏蔽中断请求,上升沿有效,任 何时候CPU都要响应此中断请求信号。
INTAin
INTA
菊花链 逻辑电路
INTAin
菊花链 逻辑电路
INTR
≥1
┇
⑵当前一组外设没有 发出中断申请时,INTA 会沿着菊花链往后传。当 某一级外设发出了中断申 请时,此级的逻辑电路就 阻塞了INTA的通路。
⑶此级的外设接口收到 INTA后,向总线发出 中断类型号,撤销 中断请求IREQ,从而 CPU转入相应中断服务 程序 。
优点:电路简单。软件查询的顺序就是中断优先
权的顺序,不需要专门的优先权排队电路,可 以直接修改软件查询顺序来修改中断优先权, 不必更改硬件。 缺点:当中断源个数较多时,由逐位检测查询到 转入相应的中断服务程序所耗费的时间较长, 中断响应速度慢,服务效率低。
三、硬件优先权排队电路
硬件优先权排队电路又称菊花环式优先权排队电 路。它是利用外设连接在排队电路的物理位置来 决定其中断优先权的,排在最前面的优先权最高, 排在最后面的优先权最低。