第七章+中断与中断控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IR2 • •
(IRR)
•
IR7
中断屏蔽P寄R用存于器确(IM定R) 中断 OCW1请求操寄作存命器令IRR中 OCW2各位寄的存优器先组等级
OCW3
7-25
7.3.3 内部端口寻址与读/写控制
A0、RD、WR、CS对8259A读写操作的控制作用
A0 CS RD WR D4 D3
读写操作
00
1
0
0
②可屏蔽中断(INTR):
CPU用来响应各种异步的外部硬件中断的 最常用方法,受CPU内部的IF的控制。
7.1.1 中断与中断类型
7-6
硬中断 软中断
指由CPU内部原因(指令或异常)引起的中断,也 叫内中断,统称为异常。又分为:
①失效(Fault)--在引起失效的指令启动之后,执行 之前被检测到,且在处理异常的程序执行完后退回 该条指令重新启动并执行完毕。
总线输送一个8位的中断类型号(也叫指针或向量号);
CPU读取此类型号后将它乘以4(左移2位),即可从中断 服务程序向量表(即入口地址表)中取出中断服务程序 的入口地址,包括段地址和段内偏移地址,据此CPU便 可转入中断服务程序。
⑥ 如8259A工作在AEOI模式,则在第二个INTA脉冲 信号结束时,将使被响应的中断源在ISR中的对应位清 “0”,否则,直至中断服务程序结束,发出EOI命令 才使ISR中的对应位清"0"。
③ CPU内部是中断开放的。CPU内部有中断允 许触发器(IF),只有当它为“1”(即中断开 放)时,才能响应外部中断。
④ 没有更高优先级别的中断请求正在被响应 或正发出、正挂起。
⑤ CPU正在执行的现行指令已经结束。CPU一 定是在每条指令执行完后才采样INTR 线而响应 可能提出的中断请求。
7-12
上述一完是般成整中个I断/代段中O处操表寄断理作断存处流或点器理程异地C程S中址常和序是的指事的程否令件中核序每指处断心计针步理返。数(工,E回器)作IPP都C内内要容容做或,代码 取决于具体的CPU种中断类处。理程序中将用到的各CPU内部寄存器
7-13
7.2 多中断请求的服务判决
在有多中断源的微机系统中,凡存在多个中 断源合用一根中断请求线的情况,都存在一个多 中断请求的服务判决问题。主要包括两方面:
i8259A--可编程(PC系列微机中广泛采用)
7-22
7.3 8259A可编程中断控制器
7.3.1 功能概述 7.3.2 内部结构与外部引脚 7.3.3 内部端口寻址与读/写控制 7.3.4 8259A的中断工作过程 7.3.5 命令字格式与应用编程
7-23
7.3.1 功能概述
8259A是Intel公司专为控制优先级中断而设计的 NMOS芯片。内部集成了与中断控制有关的几乎所有基 本功能,包括:
②自陷(Trap)--在产生自陷的指令执行完后才被报 告,且其中断服务程序结束后是返回到主程序中该 条指令的下一条指令。
③终止(Abort)-- 对引起异常的指令的确切位置无 法确定的异常。这类异常用于报告严重错误,一般 无法继续运行,只能终止,而由中断服务程序重新 启动OS并重建系统表格。
7-7
中断请求锁存 中断源优先级排队 中断源识别 中断源屏蔽 中断向量提供
……
而且各种功能都可通过编程设定或变更。
7-24
7.3.2 内部结构与外部引脚
ISR用于寄存所
IRR用于寄存所
D7~D0
有正在被服务的 数据中总线断级
缓冲器
有要求服务的中
INTA
IN断T 请求
控制逻辑
RD
WR A0
7-10
② 中断屏蔽触发器处于非屏蔽状态。
DB7~0
AB15~0 RD WR
INTR
CPU
数据总线
AB7~0 地址 译码
&
数据 RD 端口
CS
数据
CS 控制 1 WR端口
外设 (中断源)
READY
QD
Q中断R D
+5V
中断 屏蔽<
请求<
具有中断屏蔽的中断接口
7.1.3 CPU响应中断的条件
7-11
缺点:中断源较多时,中断响应速度慢,CPU 使用效率降低。
7.2 多中断请求的服务判决
7-18
◆ 中断向量式判决
程序查询 式判决
中断向量 式判决
这是一种硬件为主的判决方法。主 要用硬件电路对中断源进行优先级排队, 并将程序引导到有关I/O 的中断服务程 序入口。具体实现方案有:
●菊花链优先级判决
7-3
7.1.1 中断与中断类型
中断是为解决CPU与外设之间的信息交换问题而 引入的。但现代意义上的中断已不仅仅应用于I/O控 制,也应用到CPU内部的指令中断和内部异常处理。
1.中断的定义
中断是指CPU在执行当前程序的过程中,由于某 种随机出现的外设请求或CPU内部的异常事件,使CPU 暂停正在执行的程序而转去执行相应的服务处理程 序;当服务处理程序运行完毕后,CPU再返回到暂停 处继续执行原来的程序。
中断向量 式判决
MPU INT
中断处 理器
D7 D6
D0 IACK
≥1
三
中断
态
请求
缓 冲 器
锁存 器
EN 中断接口
INT0 INT1
INT7
0#=I/O 1#=I/O
7#=I/O
7.2 多中断请求的服务判决
7-16
程序查询 式判决
2. 查询式中断流程图
中断处理程序
保护现场
中断向量 式判决
●并行优先级判决
7.2 多中断请求的服务判决
7-19
1. 菊花链优先级判决
程序查询 式判决
中断向量 式判决
数据总线(DB)
MPU
( 中
中断向量 中断向量 中断向量
断
发生器1
发生器2
发生器n
处
理
器
IACK
1#I/O
OUT1
2#I/O
OUT2
n#I/O
) IN1
IR1 IN2
IR2 IN3 INn
7-26
7.3.4 8259A的中断工作过程
8259A在8086模式下,对外部中断请求的响应和 处理过程如下:
① 当中断请求输入线IR0~IR7中有一条或多条变 高时,则中断请求寄存器IRR的相应位置"1"。
② 若中断请求线中至少有一条是中断允许的,则 8259A由INT引脚向CPU发出中断请求信号。
7.1.2 中断优先级与中断嵌套
当多个中断源同时申请中断时,CPU同一时 刻只能响应一个中断源的申请,应按各中断源
的轻重缓急程度来确定它们的优先级别。优先
级高的中断先响应。
中断嵌套是指在优先级已定的情况下,低 优先级的中断服务程序可以被高优先级的中断 源所中断,等高优先级的中断服务程序结束后, 再返回去执行被中断的低优先级中断服务程序。
7.1.2 中断优先级与中断嵌套
7-8
中断嵌套示意图:(中断优先级:3#>2#>1#)
主程序
1#中断服 务程序
2#中断服 务程序
3#中断服 务程序
响应
响应
响应
1#中断请求
2#中断请求 3#中断请求
返回
返回
返回
嵌套的级数原则上不限,只取决于堆栈深度, 实际上与要求的中断响应速度也有关。
7-9
7.1.3 CPU响应中断的条件
读中断请求状态
7#I/O请求? N
6#I/O请求? N
Y 7#I/O服务程序
Y 6#I/O服务程序
0#I/O请求? N 恢复现场
Y 0#I/O服务程序
7.2 多中断请求的服务判决
7-17
程序查询 式判决
中断向量 式判决
3. 查询式判决的优缺点
优点:硬件简单,程序层次分明,只要改变 程序中查询的顺序而不必改变硬件连 接,即可方便地改变外设的中断优先 级。
7.1.1 中断与中断类型
7-4
2. 中断分类
微机系统的中断可分为两大类:
硬中断 软中断
7.1.1 中断与中断类型
7-5
硬中断 软中断
指由CPU外部事件引起的中断,又叫外中 断,简称中断。又分为:
①非屏蔽中断(NMI):
一种为外部紧急请求提供服务的中断, 不受CPU内部的中断允许标志IF的屏蔽;
CS CAS0 CAS1 CAS2
读/写电路
级联缓冲器 /比较器
SP/EN
用于控I制CW多1 片
8实2现59将A的优级I先C联W中2,断以初命始令化寄 内
等级最多I扩CW展3 到存器组 64级。 ICW4
部源自文库总 线
中断 服务 寄存 器
(ISR)
优先 级分 析器
(PR)
中断 IR0
请求 IR1
寄存 器
对中断源发出的中断请求是否响应,视CPU 内中断和外中断有所不同:
对内中断请求,可在当前指令执行前或执行后
直接转入中断周期,由内部硬件自动执行预定的操作;
对外中断请求,通常要满足以下条件才能响应:
①置位了中断请求触发器。每个中断源对应一个, 通过它来保持请求信号,直至中断响应。
7.1.3 CPU响应中断的条件
7.1.4 中断处理过程
响应中断请求
保保护护现现场场
关关中中断断
中开开断中中服序断务,目 要断从的保以其断是护以序别便他点保的便时的恢中开证现执,中复断始中场行能断现打正断内中响源恢场断确处容开断应请复时。执理通中服更求现不行完常断务高。场被。毕 包程级后括能:返回原程
CPU的标志寄存器(FR)内容
7-1
第七章 中断与中断控制
7.1 有关中断的基本概念 7.2 多中断请求的服务判决 7.3 8259A可编程中断控制器 7.4 Pentium处理器的中断机理 7.5 微机系统开发中利用8259A扩展中
断源的方法
7-2
7.1 有关中断的基本概念
7.1.1 中断与中断类型 7.1.2 中断优先级与中断嵌套 7.1.3 CPU响应中断的条件 7.1.4 中断处理过程
IRn
INT
中断请求线
每个I/O设备除有中断请求逻辑外,还 必须包含一个中断向量发生器;当IACK有效 并到达某个提出了中断请求的I/O设备的输 入端时,该设备将其识别码(也叫中断向量
7.2 多中断请求的服务判决
7-20
2. 并行优先级判决
程序查询 式判决
中断向量 式判决
MPU
( 中 断 处 理 器 )
③ 如CPU是处于开中断状态,则在当前指令执行 完后,用INTA信号作为响应。
④ 8259A在接收到CPU的INTA信号后,使最高优先 级的ISR位置“1”,而相应的IRR位清“0”,但在该中 断响应周期中,8259A并不向系统总线送任何内容。
7.3.4 8259A的中断工作过程
7-27
⑤ CPU(8086/8088和80X86)输出第二个INTA信号, 启动第二个中断响应周期。在此周期中,8259A向数据
0
数据总线→OCW2
00
1
0
0
1
数据总线→OCW3
0 0 1 0 1 × 数据总线→ICW1
10
1
0 ××
数据总线→ ICW2、ICW3、
ICW4、OCW1 ①
00 0 1
IRR、ISR、中断级BCD码 →数据总线 ②
10 0 1
IMR→数据总线
××
1
1 ××
禁止
× 1××××
禁止
① 这些命令的输入顺序由8259A内部的时序逻辑通过适当的时 序控制加以保证。 ② 对IRR、ISR或中断级BCD码的选择,决定于在读出操作之前,
中断向量 式判决
无论菊花链还是并行结构,当MPU在中断响 应周期中收到中断向量号后,便通过计算或查 表得到中断向量(即中断服务程序入口地址), 并自动进入和执行相应的中断服务程序。
与查询式相比,向量式中断结构的最大优 点是中断响应速度快,CPU使用效率高。
实际中应用最多的典型中断控制器芯片有:
i8214--不可编程(8080等8位机中采用)
数据总线(DB)
IACK INT
中断向量发生器 n
优先级编码器
IR0 IR1
IR2n-1
其核心部件是一个优先级编码器和各中 断源公用的中断向量发生器。当IACK有效时, 中断向量发生器将把与最高优先级中断请求 源对应的中断向量号送上数据总线DB。
7.2 多中断请求的服务判决
7-21
程序查询 式判决
• 判别哪个中断请求源的优先权最高,确定为 谁服务;
• 将程序转移到相应的中断处理程序入口。
7.2 多中断请求的服务判决
7-14
解决这一问题的方法通常有两种:
程序查询式判决 中断向量式判决
7.2 多中断请求的服务判决
7-15
1. 查询式判决原理
程序查询 式判决
这是一种软件为主的判决方法。所需的硬件 支持最少,主要需要一个带三态缓冲的中断请求 锁存器作为状态输入口,以供MPU查询用。
7-29
1.初始化命令字与初始化编程
初始化编程是通过写初始
写ICW1
化命令字ICW1~ICW4来实现的, 写入流程如图所示。
7-28
7.3.5 命令字格式与应用编程
8259A的编程是指用户通过写操作送一些命 令字(也叫控制字)到8259A内部的控制寄存器 (命令字寄存器),用于设定或动态改变它的工作 方式和控制模式。
初始化命令字与初始化编程 操作命令字与操作方式编程 可编程设置的工作方式
7.3.5 命令字格式与应用编程