中断的基本概念
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 常见的中断源
1).外部设备请求(输入/输出)中断:是 指系统中外设所发生的中断。
2). 数据通道中断:如DAM操作等(磁带、 磁盘);
3).实时请求中断:实时中断用于实时系 统中,在工业控制中经常使用。
4).故障请求中断:与机器硬件错误有关 的中断系统称谓硬件故障中断。
5).程序性中断:与用户程序错误有关的 中断,统称为程序性中断。
n号设备接口
I/O DATA BUS 图7.7 串行顺序链识别中断方法
7.1.4 中断嵌套
1.中断优先级:当CPU正在处理中断时, 能响应更高级别的中断请求,而屏蔽掉 同级或较低级别的中断请求。
2.单级中断处理:单级中断处理不允许其 他设备再中断CPU的程序。
3. 多级中断处理(中断嵌套):多级中断 处理允许优先级高的中断打断优先级低 的中断服务程序。
Y
IRQ3 的服务程序
恢复现场 中断返回
图7.5 程序查询识别中断方法
二、硬件查询确定优先级
中断请求信号
CPU 中断响应信号
外调 A
允许 中断 接收 请求
外设 B
外设 C
允许 中断 接收 请求
允许 中断 接收 请求
图7.6 排队链优先权的控制方法
中断请求 IRQ
POL1号设备接口 2号设备接口 CPU SYN
(3)中断类型号32~255(224个)为用户使 用的中断指针,占用0080H~03FFH的896 个字节,它可由用户指定。
表7-1 IBM PC/XT机的中断类型号的安排(一)
中断向量表的初始化
方法一:采用DOS系统功能调用。即INT 21H的25H号功能调用。
方法二:将中断服务程序的入口地址直接 装入中断向量表中。
• 当有多个中断源同时请求时,CPU就要识别出 是哪些中断源有中断请求,辨别和比较它们的 优先权(Priority),先响应优先权级别最高 的中断申请。另外,当CPU正在处理中断时, 也要能响应更高级的中断申请,而屏蔽掉同级 或较低级的中断请求。
• 要判别和确定各个中断源的中断优先权,可以 用软件和硬件两种方法。
7.2 8086/8088的中断系统 7.2.1 外部中断 7.2.2 内部中断 7.2.3 中断向量表 7.2.4 中断过程
7.2 8086/8088的中断系统
8086/8088CPU的中断结构体系
内部中断
8086/8088 CPU
单步 ( TF=1 )
中
除法出错
断
INT O 溢出
逻
辑 INT 3 断点
用户可用 中断向量 (224 个)
系统保留 中断向量 (27 个)
专用 中断向量 (5 个)
003 FFH 003 FCH
255 号向量 ∶
00080H 0007CH
32 号向量 31 号向量
∶
00014H 00012H
5 号向量 4 号向量 (溢出 )
0000CH
3 号向量
00008H
2 号向量(非屏蔽)
2)CPU不执行中断响应总线周期INTA。
3)除单步中断外,其他内部中断的优先级都比外 部中断的要高,都不能被屏蔽(禁止)。
4)单步中断的优先级是所有中断里最低的,它可 以用陷阱标志位TF置0来屏蔽。
8086/8088CPU中断优先级
中断
除法出错,INT n,INT 0 (指令)(溢出)
NMI(外部不可屏蔽) INTR(外部可屏蔽)
7.1.1 中断的基本概念
一、中断和中断源
1. 中断的概念 所谓“中断” 是指在CPU正常运行程序时, 由于内、外部事件引起CPU暂时中止正在执 行的程序,转而去执行请求CPU暂时中止的 内、外部事件的服务程序,待该服务程序处 理完毕后返回到被中止的程序。
2. 中断源 引起中断的原因,或能发出中断请求的来源, 称为中断源。
单步中断
优先级 最高
最低
中断类型号
• 中断类型号:对每种中断都指定一个中 断类型号代码(中断类型号)。
• 中断类型号从0~255,每一个中断类型 号都可以与一个中断服务程序相对应。 中断服务程序存放在存储区域内,而中 断服务程序的起始地址(入口地址)放 在内存的中断向量表内。
7.2.3 中断向量表
此过程由欲提出中断的外部设备或内部 系统提出。当外部设备需要完成某种特 定的操作或者处理器系统内部出错时, 需要CPU进行处理,外部设备可以向 CPU提出中断申请,请求CPU进行处理。
中断响应
CPU给设备发出一个中断应答信号;当 外设提出的中断申请被CPU接收并认可 后,首先解决的是必须关中断,其次是 微处理器在处理中断、实现控制权的转 移前必须把当前程序状态保存起来,最 后是查找中断源,即查找提出中断请求 的是外围设备还是内部系统。
第七章 中断
7.1 概述
7.1.1 中断的基本概念 7.1.2 中断的处理过程 7.1.3 中断优先级 7.1.4 中断看套嵌套
7.2 8086/8088的中断系统
7.2.1 外部中断 7.2.2 内部中断 7.2.3 中断向量表 7.2.4 中断过程
7.3 可编程中断控制器8259A
7.3.1 8259A的内部结构与功能 7.3.2 8259A的初始化命令字及其编程 7.3.3 8259A的操作命令字及其编程 7.3.4 8259A的应用举例
二、中断系统功能
中断系统应具有如下功能: (1)实现中断及返回的功能 (2)能实现优先权排队的功能 (3)高级中断源能中断(打断)低级的中断处理的
功能。 为满足上述中断要求,中断系统应具有的功 能可归结为中断处理和中断控制。 1. 中断处理 包括中断请求、响应中断请求、中断处理与 中断返回。 2. 中断控制 主要是实现中断优先级的排队和中断嵌套。
7.2.4 中断过程
• 8086/8088中断处理过程:
1)将中断类型码乘4,指向中断向量表中的中 断处理子程序的入口地址。
2)保存CPU的状态。 3)清除CPU内部标志寄存器中的IF(中断允许
标志位)和TF(陷阱标志位)的状态标志。 4)保存原来执行的主程序的中断点。 5)转中断处理子程序入口地址。 6)执行中断处理子程序。 7)返回到被中断了的主程序的断点继续执行。
现场保护
为了确保在中断完成之后,程序能正确 地返回到原来的断点处,继续执行原程 序的下一条指令,必须对断点处的各种 数据进行现场保护,主要是标志寄存器 和CS、IP的值,我们可以将其压入堆栈 中,利用堆栈来进行保护。同时还要清 除中断标志IF和TF,关闭中断。
执行中断服务程序
根据中断类型号N,可以在中断向量表中 查出要执行中断服务程序的入口地址, 从而执行相应的中断处理程序,该程序 可以是用户自己编写的程序,也可以是 系统提供的程序。
• 中断向量表(又称中断指针表):是存放中断 服务程序入口地址(即“中断向量”)的表格。 是中断类型号与它相应的中断服务程序入口地 址之间的转换表。
• 它存放在存储器的最低端,共1024个字节,每 4个字节存放一个中断服务程序入口地址(一 共可存放256个中断服务程序的入口地址)。
• 较高的两个字节存放中断服务程序入口的段地 址,较低的两个字节存放中断服务程序入口的 段内偏移量地址,这4个单元的最低地址称为 向量地址,其值对应中断类型码乘4。
(1).查询中断 主要采用软件查询,用程序查询在中断线上的每一个外设,依次读出每个 外设的中断状态来判断是哪个外设发出中断请求。如图7.4所示 (2).向量中断 又称矢量中断,在具有向量中断的微机系统中,每个外设都预先指定一个 中断向量,当CPU识别出某个外设请求中断并予以响应时,控制逻辑就依 次将外设的中断向量送入CPU,以自动地提供相应的中断服务程序的入 口地址,转入中断服务。用向量中断来确定中断源主要是用硬件实现的。
1 号向量(单步)
00004H
00000H
0 号向量(除法错)
CS IP
16 位
图7.12 中断向量表示意图
中断向量表由三部分组成,如图7.12所示。
(1)中断类型号0~4(5个)为专用中断指 针,占用0000H~0013H的20个字节,并且 用户不能对其修改。
(2)中断类型号5~13(27个)为保留中断 指针,占用0013H~007FH的108个字节, 这是Intel公司保留的中断指针,用户不应 使用。
中断响应:CPU给设备发出一个中断应答 信号;(INTA)
现场保护:保护执行中断服务程序前的各 种信息;
执行中断服务程序:完成特定的操作;
中断返回:退出中断服务程序,恢复现场。 微机中断过程如图7.1所示。
中断 请求
原 程 序
中断
中断处理程序 CPU 响应中断
中断返回
图7.1 中断过程示意图
中Hale Waihona Puke 请求恢复现场在中断处理程序完成后,应当对现场进 行恢复。此时可以将保存在堆栈中的内 容弹出,即按照“后进先出”的原则将 相应的值弹出到原来的寄存器中,从而 恢复中断前的状态。
中断返回
任何一个中断都必须在中断服务程序的 末尾并在中断服务程序指令返回之强前 才重新开放中断。
二、CPU对中断的响应
1.关中断 2.保护断点 3.识别中断源
4.保护现场 5.执行中断服务程序 6.恢复现场 7.开中断与返回
中断入口 保护现场,读中断位状态
Y 是 A 设备
N
是 B 设备
Y
N
是 C 设备
Y
N
出错出口
A 中断服务程序 B 中断服务程序 C 中断服务程序
恢复现场
图7.4 软件查询方法流程图
开中断,返回
7.1.3 中断优先级
1.优先权概念
根据中断源提出中断申请的轻重缓急为每个中 断源确定了CPU对它们响应的优先权。CPU在 分配优先权时,一般是按照提出中断的外设的 速度和它们在微机系统中所处的地位来进行分 配的。
INT n 指令
外部中断
NMI 非屏蔽中断请求
INTR
8259A
可屏蔽中断请求
图7.11 8086/8088的中断源
7.2.1 外部中断
可分为:可屏蔽中断INTR和非屏蔽中断NMI
(1)可屏蔽中断INTR:是否响应INTR的请求,取决于中断 允许标志位IF的状态。
可屏蔽中断请求线通常由Intel8259A提供,该Intel8259A又与需要中断 服务的设备相连,并能判断是某个提出的中断的设备的优先级高低。 CPU对INTR中断请求的响应过程是执行两个INTA(中断响应)周期。 INTR信号高电平有效,CPU将根据中断允许标志IF的状态而采取不同 的措施。注意:CPU并不锁存INTR信号,因此INTR信号必须具有保持 有效状态的功能。
CLK ALE LOCK INTA AD7-AD0
第一个中断应答周期
空闲状态 (8088无)
第二个中断应答周期 向量类型
7.2.2 内部中断
内部中断是通过软件调用的不可屏蔽中断,包括: 溢出中断、除法出错中断、单步中断、INT n指 令中断以及断点中断INT3。
内部中断的特点是:
1)是指令中指定的,或隐含的,或是预定的。
本章学习目标
• 掌握有关中断的基本概念、中断优先级、 中断嵌套、中断屏蔽、中断向量等基本 概念。
• 了解8086/8088中断系统中的中断源分类、 系统结构。
• 掌握可编程中断控制器8259A的功能、 内部结构、工作方式及初始化命令和操 作命令的定义、使用方法,服务程序的 基本编写方法。
7.1 概述 7.1.1 中断的基本概念 7.1.2 中断的处理过程 7.1.3 中断优先级 7.1.4 中断嵌套
• 不可屏蔽中断:凡是微处理器内部不能“屏蔽” 的中断,称为不可屏蔽中断。
• 屏蔽:所谓“屏蔽”是指微处理器拒绝响应中断 请求信号,不允许打断微处理器所执行的主程序。 这通常是由内部触发器(或中断允许触发器)来 控制的。
7.1.2 中断的处理过程
微型计算机系统的中断过程大致分为:
中断请求:由需要提供中断服务程序的设 备提出;(CPU引脚INTR上的请求)
三、中断的主要用途
计算机采用中断控制技术主要用在以下三 个方面:
(1)故障处理 (2)分时操作 (3)实时处理
四、可屏蔽中断和不可屏蔽中断
• 根据微处理器内部受理中断请求的情况,中断可 分为可屏蔽中断和不可屏蔽中断。
• 可屏蔽中断:凡是微处理器内部能够“屏蔽”的 中断,称为可屏蔽中断。(IF=0时屏蔽外部中断)
• 软件采用查询技术。当CPU响应中断后,就用 软件查询以确定是哪些外设申请中断,并判断 它们的优先权。
一、软件查询确定中断优先级
中断处理入口
保护现场
检查 IRQ1 的中断状态是否为“1”
N
检查 IRQ2 的中断状态是否为“1”
N
检查 IRQ3 的中断状态是否为“1”
N
Y
IRQ1 的服务程序
Y
IRQ2 的服务程序