六章中断与中断控制培训资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/6/2
6.1.2 中断优先级与中断嵌套
中断嵌套示意图: (中断优先级:3#>2#>1#)
原主程序
1#中断服 务程序
响应
2#中断服 务程序
响应
3#中断服 务程序
响应
1#中断请求
2#中断请求
3#中断请求
返回
返回
返回
嵌套的级数原则上不限,只取决于堆栈深度, 实际上与要求的中断响应速度也有关。
2020/6/2
2020/6/2
6.1.2 中断优先级与中断嵌套
当多个中断源同时申请中断时,CPU同 一时刻只能响应一个中断源的申请,应按 各中断源的轻重缓急程度来确定它们的优 先级别。
中断嵌套是指在优先级已定的情况下, 低优先级的中断服务程序可以被高优先级 的中断源所中断,等高优先级的中断服务 程序结束后,再返回去执行被中断的低优 先级中断服务程序。
6.1.3 CPU响应中断的条件
对中断源发出的中断请求是否响应,视 CPU内中断和外中断有所不同:
对内中断请求,可在当前指令执行前或执行后直 接转入中断周期,由内部硬件自动执行预定的操作; 对外中断请求,通常必须满足以下条件才能响应:
①置位了中断请求触发器---每个中断源对应一 个,通过它来保持请求信号,直至中断响应。
2020/6/2
第六章 中断与中断控制
6.1 中断的基本概念 6.2 中断源的识别与判优 6.3 8259A可编程中断控制器 6.4 80486CPU的中断机理 6.5 80X86微机的硬件中断控制逻辑
2020/6/2
6.1.1 中断与中断类型
中断的最初定义:
作为计算机与外部设备交换信息的一 种同步控制方式,中断是指执行当前程 序的过程中,由于某种随机出现的外设 请求,使CPU暂停(即中断)正在执行的 程序而转去执行为外设服务的程序;当 服务完毕后,CPU再返回到暂停处(即 断点)继续执行原来的程序。
2020/6/2
6.2 中断源的识别与判优 多中断源的识别与判优,要解决两大问题:
1)判别哪个中断请求源的优先权最高; 2)将程序转移到相应的中断处理程序入口。 完成这一任务的方法通常有两种:
❖程序查询式识别与判优 ❖中断向量式识别与判优
2020/6/2
6.2 中断源的识别与判优
软件识别与判优方法。所需的硬件支持最少, 主要需要一个中断请求锁存器作为状态输入口, 以供MPU查询用。
⑤CPU正在执行的现行指令已经结束---因为 CPU
一定是在每条指令执行完后才采样INTR线而 响应可能提出的中断请求。
2020/6/2
6.1.4 中断处理过程
响应中断请求
保护断点和现场
关中断
开中断
恢复现场
中断服务
开中断
中断返回
2020/6/2
6.1.4 中断处理过程
保护断点和现场 为使中断处理程序不影响被中断程序运行,
2020/6/2
6.1.1 中断与中断类型
现在所谓的中断是一种广义的中断概 念,它实质上应包括两大类:
硬中断:由CPU外部事件引起的中断,
又
叫外中断。简称中断。
①非屏蔽中断(NMI):一种为外部紧急请求提供服 务的中断,不受CPU内部的中断允许标志IF的屏蔽;
②可屏蔽中断(INTR): CPU用来响应各种异步的外 部硬件中断的最常用方法,受CPU内部的IF的控制。
须首先将断点处的有关各寄存器内容和标志位 的状态压入堆栈保护起来,以便中断处理完毕 后能返回原程序,从断点开始正确执行。 要保护的断点现场内容通常包括:
❖CPU的标志寄存器(FR)内容
❖代表断点地址的程序计数器PC内容或代码 段寄存器CS和指令指针(E)IP内容
❖中断处理程序中将用到的各CPU内部寄存器 内容
开中断 以便执行中断服务程序时,能响应更高级别
的中断源请求。
2020/6/2
6.1.4 中断处理过程
中断服务 完成I/O操作或异常事件处理,是整个中断
处理程序的核心。 关中断 目的是保证在恢复现场时不被新的中断所打扰。 恢复现场
多数CPU是用POP指令把保存的断点信息 从堆栈中弹出,以达到恢复现场的目的 中断返回
如果CPU或CPU模块提供了多根中断请求线,且 多于外部中断源数目,则由于它们之间的识别和判 优已由芯片或模块内部逻辑按一定优先级算法(一般 为固定优先级算法)设计好了,用户只需按要求将不 同中断源接至不同中断请求输入线上即可。
如果系统只有一根中断请求线或者虽有多根中断 请求线但仍比中断源数目少时,就需要多中断源合 用一根中断请求线,这种情况下就需要用户自己来 设计中断源的识别与判优逻辑。
READY
CPU
QR D
中断
+5VQ中断D
屏蔽<
具有中断屏蔽 的中断接口
请求<
2020/6/2
6.1.3 CPU响应中断的条件
③CPU内部是中断开放的---CPU内部有中断允 许
触发器,只有当它为1时才能响应外部中断。 (STI指令就是起这种作用的,使IF标志位置1) ④没有更高优先级别的中断请求正在被响应或 正发出、正挂起。
程 序
INT ≥1
查
MPU D
询
中断处
7
式 识
理器
D:6
D0
别
INT0
中断 请求
INT1
0#=I/O 1#=I/O
锁存
器
INT7
7#=I/O
与 判
IACK
C
中断接口
S
优
中断响应时,MPU用软件程序读入中断请求锁存器状
态,按确定的次序逐位查询,以识别中断请求源,当查到
某位状态有效时,便转入相应I/O服务程序,为该外设服
使断点地址送回程序计数器或CS:(E)IP, 继续执行被中断的程序。
2020/6/2
中断处理过程
响应中断请求
保护断点和现场
关中断
开中断
恢复现场
中断服务
开中断
中断返回 上述一般中断处理流程中是否每步工作都要做, 取决于具体的CPU种类。
2020/6/2
6.2 中断源的识别与判优
凡有多中断源存在时,都存在一个中断 源的识别与判优问题。
2020/6/2
6.1.3 CPU响应中断的条件
②中断屏蔽触发器处于非屏蔽状态---在多中断
源系统中,为增加中断控制的灵活性,一般
为每个中断源都设置一个中断屏蔽触发器。
AB15~0
DB7~0
R DW INRTR
Βιβλιοθήκη Baidu
AB7~0
地址
译码
CS
数据总线
数据 端口
AB7~0 地址
译码
控制信号
&
1 端口
数据
外设 (中断源)
务。查询各位的次序就决定了各外设的中断优先级。
2020/6/2
6.2 中断源的识别与判优
程 序 查 询 式 识 别 与 判 优
6.1.2 中断优先级与中断嵌套
中断嵌套示意图: (中断优先级:3#>2#>1#)
原主程序
1#中断服 务程序
响应
2#中断服 务程序
响应
3#中断服 务程序
响应
1#中断请求
2#中断请求
3#中断请求
返回
返回
返回
嵌套的级数原则上不限,只取决于堆栈深度, 实际上与要求的中断响应速度也有关。
2020/6/2
2020/6/2
6.1.2 中断优先级与中断嵌套
当多个中断源同时申请中断时,CPU同 一时刻只能响应一个中断源的申请,应按 各中断源的轻重缓急程度来确定它们的优 先级别。
中断嵌套是指在优先级已定的情况下, 低优先级的中断服务程序可以被高优先级 的中断源所中断,等高优先级的中断服务 程序结束后,再返回去执行被中断的低优 先级中断服务程序。
6.1.3 CPU响应中断的条件
对中断源发出的中断请求是否响应,视 CPU内中断和外中断有所不同:
对内中断请求,可在当前指令执行前或执行后直 接转入中断周期,由内部硬件自动执行预定的操作; 对外中断请求,通常必须满足以下条件才能响应:
①置位了中断请求触发器---每个中断源对应一 个,通过它来保持请求信号,直至中断响应。
2020/6/2
第六章 中断与中断控制
6.1 中断的基本概念 6.2 中断源的识别与判优 6.3 8259A可编程中断控制器 6.4 80486CPU的中断机理 6.5 80X86微机的硬件中断控制逻辑
2020/6/2
6.1.1 中断与中断类型
中断的最初定义:
作为计算机与外部设备交换信息的一 种同步控制方式,中断是指执行当前程 序的过程中,由于某种随机出现的外设 请求,使CPU暂停(即中断)正在执行的 程序而转去执行为外设服务的程序;当 服务完毕后,CPU再返回到暂停处(即 断点)继续执行原来的程序。
2020/6/2
6.2 中断源的识别与判优 多中断源的识别与判优,要解决两大问题:
1)判别哪个中断请求源的优先权最高; 2)将程序转移到相应的中断处理程序入口。 完成这一任务的方法通常有两种:
❖程序查询式识别与判优 ❖中断向量式识别与判优
2020/6/2
6.2 中断源的识别与判优
软件识别与判优方法。所需的硬件支持最少, 主要需要一个中断请求锁存器作为状态输入口, 以供MPU查询用。
⑤CPU正在执行的现行指令已经结束---因为 CPU
一定是在每条指令执行完后才采样INTR线而 响应可能提出的中断请求。
2020/6/2
6.1.4 中断处理过程
响应中断请求
保护断点和现场
关中断
开中断
恢复现场
中断服务
开中断
中断返回
2020/6/2
6.1.4 中断处理过程
保护断点和现场 为使中断处理程序不影响被中断程序运行,
2020/6/2
6.1.1 中断与中断类型
现在所谓的中断是一种广义的中断概 念,它实质上应包括两大类:
硬中断:由CPU外部事件引起的中断,
又
叫外中断。简称中断。
①非屏蔽中断(NMI):一种为外部紧急请求提供服 务的中断,不受CPU内部的中断允许标志IF的屏蔽;
②可屏蔽中断(INTR): CPU用来响应各种异步的外 部硬件中断的最常用方法,受CPU内部的IF的控制。
须首先将断点处的有关各寄存器内容和标志位 的状态压入堆栈保护起来,以便中断处理完毕 后能返回原程序,从断点开始正确执行。 要保护的断点现场内容通常包括:
❖CPU的标志寄存器(FR)内容
❖代表断点地址的程序计数器PC内容或代码 段寄存器CS和指令指针(E)IP内容
❖中断处理程序中将用到的各CPU内部寄存器 内容
开中断 以便执行中断服务程序时,能响应更高级别
的中断源请求。
2020/6/2
6.1.4 中断处理过程
中断服务 完成I/O操作或异常事件处理,是整个中断
处理程序的核心。 关中断 目的是保证在恢复现场时不被新的中断所打扰。 恢复现场
多数CPU是用POP指令把保存的断点信息 从堆栈中弹出,以达到恢复现场的目的 中断返回
如果CPU或CPU模块提供了多根中断请求线,且 多于外部中断源数目,则由于它们之间的识别和判 优已由芯片或模块内部逻辑按一定优先级算法(一般 为固定优先级算法)设计好了,用户只需按要求将不 同中断源接至不同中断请求输入线上即可。
如果系统只有一根中断请求线或者虽有多根中断 请求线但仍比中断源数目少时,就需要多中断源合 用一根中断请求线,这种情况下就需要用户自己来 设计中断源的识别与判优逻辑。
READY
CPU
QR D
中断
+5VQ中断D
屏蔽<
具有中断屏蔽 的中断接口
请求<
2020/6/2
6.1.3 CPU响应中断的条件
③CPU内部是中断开放的---CPU内部有中断允 许
触发器,只有当它为1时才能响应外部中断。 (STI指令就是起这种作用的,使IF标志位置1) ④没有更高优先级别的中断请求正在被响应或 正发出、正挂起。
程 序
INT ≥1
查
MPU D
询
中断处
7
式 识
理器
D:6
D0
别
INT0
中断 请求
INT1
0#=I/O 1#=I/O
锁存
器
INT7
7#=I/O
与 判
IACK
C
中断接口
S
优
中断响应时,MPU用软件程序读入中断请求锁存器状
态,按确定的次序逐位查询,以识别中断请求源,当查到
某位状态有效时,便转入相应I/O服务程序,为该外设服
使断点地址送回程序计数器或CS:(E)IP, 继续执行被中断的程序。
2020/6/2
中断处理过程
响应中断请求
保护断点和现场
关中断
开中断
恢复现场
中断服务
开中断
中断返回 上述一般中断处理流程中是否每步工作都要做, 取决于具体的CPU种类。
2020/6/2
6.2 中断源的识别与判优
凡有多中断源存在时,都存在一个中断 源的识别与判优问题。
2020/6/2
6.1.3 CPU响应中断的条件
②中断屏蔽触发器处于非屏蔽状态---在多中断
源系统中,为增加中断控制的灵活性,一般
为每个中断源都设置一个中断屏蔽触发器。
AB15~0
DB7~0
R DW INRTR
Βιβλιοθήκη Baidu
AB7~0
地址
译码
CS
数据总线
数据 端口
AB7~0 地址
译码
控制信号
&
1 端口
数据
外设 (中断源)
务。查询各位的次序就决定了各外设的中断优先级。
2020/6/2
6.2 中断源的识别与判优
程 序 查 询 式 识 别 与 判 优