第五章中断技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/9/27
长江大学地物学院
9
四 中断优先级和中断嵌套
1.中断优先级(Priority)的解决方法
系统中多个中断请求可能同时出现,CPU只 能按一定的次序(优先级策略)予以响应和处 理,这个响应的次序称为中断优先级。一般 的方法有:
软件查询法(需要少量硬件) 菊花链(daisy chain)优先级排队电路 可编程中断控制器(如8259)
2020/9/27
长江大学地物学院
5
二 中断方式
中断定义:在程序运行中,出现了某种紧急事 件,CPU必须中止现行程序,转去处理此紧急 事件(执行中断服务程序),并在处理完毕后再 返回运行程序的过程。
中断的全过程及有关概念:
一个完整的中断过程包括:
中断请求; 中断判优; 中断响应; 中断处理; 中断返回.
则:中断服务程序的入口地址 为 CS=4030;IP=2010
入口地址为:43210
(0083H)=40H
2020/9/27
长江大学地物学院
21
中断向量和中断向量表
例3.中断类型号为23(17H),中断服务程序的 入口地址为:2340:7890H,由于中断类型号 17H对应的中断向量存放在0段的 0000:005CH(17H×4=5CH)处,所以有:
所有内部中断(除法错、INT n、 INT0、单步)以及NMI中断不需 要从数据总线上读取中断类型 码,而INTR中断需读取中断类 型码,中断类型码由发出INTR 信号的接口提供。
中断
优先 级
除法错,INTn,INT0 NMI INTR 单步中断
最高 最低
2020/9/27
长江大学地物学院
25
单步运行方式时发生中断的处理过程
执行IRET指令
长江大学地物学院 (弹出CS,IP,FR)
23
结束当前指令
除法错,INT n,INT0?
(1)
Y
读中断类型码
N
响应中断
Y NMI?
N INTR?
N
TF=1? N 执行下一条指令
IF=1? N
(1)
内部自动提供类型码
(2)
FR->栈
(3) TF->暂存器
(4) 0->TF和IF
(5) CS、IP->栈
256个中断向量要占256*4=1024个字节单元,地址编号从 00000H~003FFH
5个专用中断(类型0~类型4),它们有固定的定义和处理功能; 27个保留的中断(类型5~类型31)。占0000:0014H~
0000:007FH,共108个字节单元。这个区域供系统使用,不允许 用户自行定义。 224个用户可定义的中断(类型32~类型255)。占 0000:0080H~0000:03FFH单元;使用时,要由用户自行填写相 应的中断入口地址。(其中有些中断类型已经有了固定用途,例 如,类型21H的中断已用作MS-DOS的系统功能调用)。
第五章 中断系统
中断的基本概念 8086/8088的中断系统 可编程中断控制器8259A 8259A在微机系统中的应用
2020/9/27
退出 1
第一节 中断的基本概念
一 CPU与外设之间的数据传送控制方式(即
I/O控制方式),通常有以下三种:
程序控制方式 中断方式 DMA方式(Direct Memory Access)
2020/9/27
长江大学地物学院
10
(1)软件查询法
INT “或”
76
210
端口号= XXH
磁磁 盘带
CRT
键打
盘印
把各个外设的中断请求信号“相或”,产生一个总的INT信 号
当CPU响应中断后,进入中断处理程序,在中断处理程序的 开始部分安排一段带有优先级的查询程序。
优点:省硬件
缺点:中断响应慢
•INTR=INT1+INT2+INT3
中断请求
•当INTA信号沿菊花链行进时,最 靠近CPU并发出INT请求的接口将 首先拦截住INTA信号,并送出中 断类型码,进入相应的中断处理 程序;在服务完成后撤销其请求 (解除对下一级的阻塞和封锁)。
INTA INTR
(3)可编程中断控制器(如8259)
2020/9/27
2020/9/27
长江大学地物学院
16
二 中断向量和中断向量表
中断向量 即中断服务程序的入口地址。
中断向量表是存放中断向量(中断服务程序入 口地址)的一个特定的内存区域(最低地址区).
一个中断向量占4个字节单元,其中:
低地址的两个字节单元存放中断服务程序入口地址 的偏移量(IP)-低字节在前(低地址),高字节在后 (高地址);
2020/9/27
长江大学地物学院
6
二 中断方式
中断请求是指中断源(引起中断的事件或设备)向CPU发出的请求中断的 要求;
中断判优当有多个中断源发出中断请求时,需要通过适当的办法(软件的; 硬件的;软、硬件结合的)决定究竟先处理哪个中断请求,这就是“中断 判优”;
中断响应是指CPU中止现行程序转至中断服务程序的过程;
(4N,4N+1)->IP (4N+2,4N+3)->CS
Y 有NMI?
N Y
暂存器=1? N
执行中断服务程序
2020/9/27
执行IRET指令
(弹出CS,IP,FR)
长江大学地物学院
24
8086/8088中断处理流程图
*8086中断优先级(Priority)
说明:
(1)~(5)步是CPU的内部处理(由 硬件自动完成)
高地址的两个字节单元存放中断服务程序入口地址 的段地址(CS)-低字节在前(低地址),高字节在后 (高地址)。
2020/9/27
长江大学地物学院
17
中断向量和中断向量表
8086/8088的中断向量表如书P80图5.1所示。 解释:
8086/8088可以处理256种中断,对每种中断都指定一个中断 类型号(也称中断向量号),每个中断类型号与一个中断服务程 序的入口地址相对应。
1E00 0 H + 0A0 0 H
1EA00H (1E00:0A00H)
….... 中断服务程序
1EA0 0 H
2020/9/27
FFFFFH
高地址
长江大学地物学院
20
中断向量和中断向量表
例2.中断类型号为20H,中断服务程序的 入口地址存放在0000:0080H开始的4个 单元中。若:
(0080H)=10H (0081H)=20H (0082H)=30H
IF=1 TF=1
2020/9/27
长江大学地物学院
19
中断向量和中断向量表
例1:若中断类型号为3,则由中断类型号取 得中断服务入口地址的过程如下图所示:
中断类型号3×4 =000CH
00000H 00001H
内存
低地址
0000CH (0000:000CH)
…….
00(IPL) 0A(IPH)
00(CSL) 1E(CSH)
15
中断的分类
(注意,这里的IF是CPU内部的标志寄存器的IF位,IF =0,则对所有从INTR引脚进入的中断请求均不予 响应(“总开关”);另外,也可以在CPU外部的中断 控制器(8259)中以及各个I/O接口电路(如8255)中对 某一级中断或某个中断源单独进行屏蔽)。
第二类:软件中断:是由CPU内部的标志状态 (如TF、OF)或执行一条中断指令(INT n),以及 除数为0引起的中断,也称为内部中断。
2020/9/27
长江大学地物学院
7
三 中断响应和处理过程
对于不同的中断类型(如可屏蔽中断、不 可屏蔽中断;外部中断、内部中断…), 处理器(CPU)进行响应和处理的具体过程 并不完全相同;另外,就是对同一种中 断类型(如可屏蔽中断),不同的处理器 (如Z80,80X86)进行响应和处理的过程 也不尽相同。
程序控制方式:是在CPU的控制下,通过执行 程序指令进行的数据传送方式。又分为“无条 件传送”和“程序查询传送”两种方式。
2020/9/27
长江大学地物学院
2
程序控制方式
无条件传送方式:是在假定外围设备(Peripheral Device)已经准备好的情况下,直接利用输入/输出指令 (IN指令,OUT指令)与外围设备传送数据,而不去检测 外设的工作状态。
2020/9/27
长江大学地物学院
8
三 中断响应和处理过程
中断一般由硬件(处理器内部)和软件(由程序设 计者编写的中断服务程序)共同完成,即整个 中断响应和处理过程是由CPU内部的有关硬件 和中断处理软件密切配合完成的。
针对一个具体的系统(机型),中断服务程序设 计者应该清楚在中断响应时,“硬件”完成了 哪些操作(如FR是否已被压入堆栈),还需要 “软件”(中断服务程序)完成哪些操作。
2020/9/27
长江大学地物学院
18
中断向量和中断向量表
由于中断向量在中断向量表是按中断类型号顺序存放 的,所以每个中断向量的地址可由中断类型号×4计算 出来。CPU响应中断时,需把中断类型号N乘以4,得 到中断向量的对应地址4N(该中断向量所占4个字节单 元的第一个字节单元的地址),然后把由此地址开始的 两个低字节单元的内容装入IP寄存器:IP (4N,4N+1),再把两个高字节单元的内容装入CS寄存器: CS (4N+2,4N+3),这就是转入中断类型号为N的中 断服务程序的控制过程。[N的来源,对于不同的中断 类型(内部,外部:NMI、INTR)情况有所不同,详见后 述]
N
TF=1? N 执行下一条指令
(1)
读中断类型码 响应中断
IF=1? N
(1)
内部自动提供类型码
(2)
FR->栈
(3) TF->暂存器
(4) 0->TF和IF
(5) CS、IP->栈
(4N,4N+1)->IP (4N+2,4N+3)->CS
Y 有NMI?
N Y
暂存器=1? N
执行中断服务程序
2020/9/27
读取状态信息
读取状态信息
否 准备好?
是 忙?
是
否
输入数据
输出数据
2020/9/27
长江大学地物学院
4
程序控制方式
程序查询传送方式比无条件传送方式要 准确可靠,但在此种方式下,CPU要不断 查询外设的状态,占用了大量CPU时间, 而真正用于数据传送的时间却很少,即 CPU的工作效率很低;另外,采用这种方 式,也很难满足实时系统对I/O处理的要 求。因此,出现了中断控制方式。
将中断分为两大类(如表5.1表5.2所示):
第一类:硬件中断:是由外部的中断请求信 号启动的中断,也称为外部中断。又可分为:
非屏蔽中断NMI:整个系统只有一个,不受IF屏蔽 可屏蔽中断INTR:受IF屏蔽,在中断控制器8259
的统一管理下,可屏蔽中断有几个至几十个。
2020/9/27
长江大学地物学院
(005CH)= 90 (005DH)= 78 (005EH)= 40
左移2位:
0001 0111 B 0101 1100 B
5 CH
(005FH)= 23
2020/9/27
长江大学地物学院
22
三 8086/8088中断处理流程图
结束当前指令
除法错,INT
Y
n,INT0?
N Y
NMI?
N INTR?
Fra Baidu bibliotek长江大学地物学院
13
五 中断嵌套
通常,正在执行较低级的中断服务程序 时,可以响应较高级的中断请求,而将 正在处理的中断暂时挂起,称为中断嵌 套。
STI ……..
STI IRET
……. IRET
可实现 “多重嵌套”
2020/9/27
长江大学地物学院
14
第二节 8086/8088的中断系统
一.中断的分类:在8086/8088系统中,可
优点:控制程序简单 缺点:数据传送不可靠
程序查询方式(也称“条件传送”方式)
主要特点:CPU通过执行程序不断读取并检测外设的状态,只 有在外设确实已准备就绪的情况下,才进行数据传送;否则, 还要继续不断地查询外设的状态。
2020/9/27
长江大学地物学院
3
程序控制方式
查询式输入、输出程序流程图
2020/9/27
长江大学地物学院
11
(2)菊花链优先级排队电路 *
设备1
设备2
CPU INTA
INTR
接口
中断回答 中断请求 INT1 菊花链 逻辑电路
接口 INT2
+5V
INT1+INT2+INT3
集电极开路门(OC门)
设备3 接口
INT3
2020/9/27
长江大学地物学院
12
(2)菊花链优先级排队电路
中断处理就是指CPU执行中断服务程序;
执行完中断服务程序后,返回到原先被中断的程序称为“中断返回”。
为了能正确返回到原来程序被中断的地方(也称断点-即主程序中当前指 令下面一条指令的地址),在中断服务程序的最后应专门放置一条中断返 回指令。
另外,为了使主程序在返回后仍能从断点处继续执行,还需要在中断服 务程序的开头-保护现场(通过PUSH指令实现),在中断服务程序的末 尾-恢复现场(通过POP指令实现)。