第七章 中 断 系 统
DESCRIPTION
第七章 中 断 系 统. 课时数: 3 - 4. 第 七 章 主 要 内 容. 中断控制方式的特点 中断系统的功能及相关概念 中断处理过程 与子程序调用的区别 ( P309 ). 一、中断的基本概念 ( P307 ) 二、 8086CPU 的中断系统 ( P310 ) 三、 8086 系统中 INTR 中断的处理 ( P316 ) 四、 80X86 系列微机的硬中断控制逻辑 ( P326 ). 检测、响应、服务. 中断源及其优先级的定义 中断向量表的使用 中断全过程. 检测、排队、响应、处理、返回. - PowerPoint PPT PresentationTRANSCRIPT
微机原理及应用技术
第七章 中 断 系 统 课时数: 3 - 4
微机原理及应用技术第 七 章 主 要 内 容
一、中断的基本概念( P307 )
二、 8086CPU 的中断系统( P310 )
三、 8086 系统中 INTR 中断的处理( P316 )
四、 80X86 系列微机的硬中断控制逻辑( P326 )
中断控制方式的特点 中断系统的功能及相关概念 中断处理过程 与子程序调用的区别( P309 ) 中断源及其优先级的定义 中断向量表的使用 中断全过程 INTR 中断接口电路的结构 INTR 中断响应周期 INTR中断的优先级判决 用户中断服务子程序的装载
检测、响应、服务
检测、排队、响应、处理、返回
微机原理及应用技术
第 七 章 习 题 ( P329 )
22 、 、 44 ~~ 66思考: 思考: 11 、、 33
2005. 5. 23 2005. 5. 23 交作业交作业
微机原理及应用技术
第 七 章 结 束
微机原理及应用技术中断控制方式的特点中断控制方式的特点( P307 ) 可以实现实时故障处理 可以实现 CPU 与外设及外设与外设之间的并行工作
CPU 处理流程中断服务程序
非预料事件
中断请求 中断响应中断返回启动
启动外部设备
现行主程序
中断服务子程序CPU
中断请求启动中断响应
中断返回
微机原理及应用技术
中断系统的功能主要包括以下两个方面:能实现中断及中断返回;能进行优先级排队和嵌套处理。
中 断 系 统( P308 ) 中断系统:计算机中实现中断功能的软、硬件的总称。中断系统一般包括 CPU 内部配置的中断机构、外设接口中设计的中断控制器及各类中断服务子程序。 中断源,中断类型号,中断向量 中断优先级,中断嵌套,中断屏蔽 断点,现场
微机原理及应用技术
CPU 执行流程中断服务程序 1非预料事件 1
中断服务程序 2非预料事件 2
中 断 嵌 套中 断 嵌 套( P309 )
中断嵌套的条件:中断嵌套的条件:11 )中断服务子程序)中断服务子程序 11 执行过程中执行过程中允许中断允许中断;;22 )新到来的中断应比原中断的)新到来的中断应比原中断的优先级高;优先级高;注:为保护主程序及各级中断服务程序的数据不被破坏,所有中断注:为保护主程序及各级中断服务程序的数据不被破坏,所有中断服务程序均应进行服务程序均应进行保护及恢复保护及恢复操作;操作;
微机原理及应用技术
8086 系统中断源的定义( P310 )
8086 系统中断优先级的定义( P312 )
80868086 系统中中断源及其优先级的定义系统中中断源及其优先级的定义
其它可能自动产生的中断
执行中断指令 INT n 、 INTO 等除法错中断(被 0 除)单步中断断点中断溢出中断
可屏蔽中断 NMI
不可屏蔽中断 INTR
8086 系统中规定中断源的优先级顺序为(优先权依次降低):被 0 除中断、 INT n 指令、 INTO 指令、NMI 中断、 INTR 中断、单步中断。
外中断(硬件中断)内中断(软件中断)
中断
异常
微机原理及应用技术
CPU 内的中断控制逻辑NMI 中断接口
自动产生的软件中断用户调用的软件中断
CPU 内部
INTR中断接口
IRQ1 键盘IRQ2 彩色 / 图形接口IRQ3 保留 ( 串口 )IRQ4 串口IRQ5 保留 ( 并口 )
IRQ0 系统定时器
IRQ7 并口IRQ6 软盘 ……
RAM 校验错I/O 校验错
电源故障
INT n 除法错断点单步( TF )溢出( OF )
微机原理及应用技术
8086 系统采用向量式中断, 8086 系统中主存最低的 1KB 空间( 000H ~ 3FFH )被用来存放各中断向量,这就是中断向量表。 中断向量表中内容分为 256 项,分别对应 2
56 个中断类型号;表中每一项为一个中断向量,占用 4 个字节,其中高两个字节存放段基址、低两个字节存放偏移量。 中断类型号 n 与对应的中断向量存放地址
m 之间的关系,即 m = 4*n 。 中断索引过程:根据中断类型号找到中断向量的过程。
8086 系统的中断向量表( P313 )
微机原理及应用技术
0 ~ 4 号为8086CPU 专用中断
05H ~ 3FH 号包括DOS 及 BIOS 中断
40H ~ 0FFH 号为用户可用中断
地址 内存单元 说明00000H
003FFH
中断类型号n = 3FH
中断类型号n = 0中断类型号n = 1中断类型号n = 2
中断类型号n = 0FFH
000FCH ~ 000FFH
被 0 除中断单步中断NMI 中断
……
……
00004H ~ 00007H00008H ~ 0000BH
003FCH ~
~00003H
微机原理及应用技术
8086 系统的中断全过程 ( P313 ) 中断请求的检测 中断优先级的判决 中断响应 ( 索引 ) 过程
中断处理过程 中断返回过程
可用硬件或软件实现; 8086CPU 内部的中断优先级判断由硬件电路自动完成。 指 CPU 从确定响应目标到转到中断服务子程序入口的过程。这个过程是由 CPU 内部的硬件电路自动完成的,主要包括获取中断类型码,保护现场和断点,获取中断向量三个步骤。三个步骤。 中断服务子程序的执行过程 执行 IRET 指令的过程,包括断点恢复和现场恢复。该过程是由 CPU 自动完成的。
当前指令执行完毕中断响应的 3 个基本条件
微机原理及应用技术
80868086 中断响应的三个基本条件中断响应的三个基本条件 当前指令执行完毕:一般情况下, CPU 总是在当前指令执行完毕并且没有更紧迫的任务时才能响应中断请求。 接受到中断请求信号:其隐含的意义是,中断请求信号要能够送到 CPU ,并可能需要维持直到 CPU 检测或响应。 允许中断:对 INTR 中断来说有两方面的含义,一是中断允许位 IF 被置 1 ,二是没有更高级的中断正在被响应。
微机原理及应用技术
80808686中中断断全全过过程程
结束当前指令内部中断?
NY
TF=1 ? YN
执行下一条指令
从总线上取中断类型号
保护现场: FLAG 压栈TEMP= TF; IF=0, TF=0保护断点: CS、 IP 压栈
设置新 CS、 IP 值,进入中断处理过程恢复断点: CS、 IP出栈恢复现场: FLAG出栈
中断响应过程
中断返回过程
NMI中断? YN
中断优先级判决INTR中断?
NIF=1 ?Y
NY
根据中断类型号查向量表
指令中的 n
2
1
微机原理及应用技术
88008866中中断断处处理理过过程程
中断处 用户编写理过程 的服务程序
中断检测及优先级判断中断响应,获取中断向量
保存 CPU内部其它各寄存器,以便在中断服务子程序中使用这些寄存器而不致破坏原信息开总中断( IF =1),以便在该中断服务期间仍然能响应更高级的中断请求,即允许中断嵌套
用户中断服务的具体处理过程恢复 CPU内部各寄存器内容 执行 IRET 语句,中断返回
微机原理及应用技术
INTR 接口电路需要完成的功能:能产生中断请求,能进行中断 屏蔽,能进行优先级管理,能提供中断类型号 8086 响应某外设 INTR 中断的条件: P317 (与 P315 比较)
8086 系统中 INTR 中断接口电路的结构( P316 )
中断请求触发器Q R D
数据缓冲控制端口
中断屏蔽触发器Q D
+5V
端口译码
端口译码DB
READY
AB
DB
WR
INTR
INTA
C
P
U
外
设优先级排队
why?
微机原理及应用技术INTR 中断响应周期( P315 )
8086在第一个总线周期的 T2 时刻发出有效的中断响应信号( /INTA ),通知接口电路准备中断类型号;
8086在第二个总线周期的 T2 时刻再次发出有效的中断响应信号( /INTA ),并于 T4 时刻从 DB 获取中断类型号;
中断类型号 INTA
CLK
AD7~AD0
T1 T2 T3 T4第一个总线周期
T1 T2 T3 T4第二个总线周期
8086CPU通过两个总线周期从接口电路获取最高优先级的 INTR 中断类型号。
微机原理及应用技术80868086 系统中系统中 INTRINTR 中断的优先级判决中断的优先级判决( P31
7 )一个系统中可能有很多外设,而 CPU只有一个 IN
TR 引脚。在可能有多个外设同时发出中断请求信号的系统中,应该设置外设的优先级判断机制。 1.软件查询
2.硬件排队
3.可编程中断管理芯片
简单易修改,先查询的优先级别就高。但占用 CPU 时间,且中断源较多时响应慢。 中断响应速度快, CPU利用率高;但成本高,且硬件一旦确定后中断源的优先级别不可更改。
(如中断优先权编码电路和雏菊花链式排队电路)
结合了软件判优和硬件判优的特点。 (如 Intel8259 )
微机原理及应用技术
INTR 中断的软件判优法( P317 )
……
…
至 CPU 的 INTR 引脚
+
由外设设置的中断请求寄存器12345678
可由程序设置的中断允许寄存器12345678
设备优先级由软件查询流程确定。
流程及代码可见教材 P318考虑如何得到中断类型号?
微机原理及应用技术INTR 中断硬件判优法—中断优先权编码电路 (P31
9)
8-3编码器
A2A1A0
B2B1B0
比较器A>B
…
1
2
中断请求信号+
至 CPU 的 INTR 引脚
优先权失效信号
+ 优先权寄存器 CPU
1 2 3 4 5 6 7 8
可由程序设置的中断允许寄存器
由外设设置的中断请求寄存器
……
1 2 3 4 5 6 7 8
设备优先级由编码器连接方式确定。
微机原理及应用技术
设备优先级由链式电路连接顺序确定。
INTRINTR 中断硬件判优法—雏菊花链式排队电路中断硬件判优法—雏菊花链式排队电路 (P320)
B1
B2
…
H1
H2
G1
G2
…
CPU 的中断响应信号 INTA
到设备 1 的中断响应信号输出到设备 2 的中断响应信号输出到设备 7 的中断响应信号输出到设备 8 的中断响应信号输出
1 2 3 4 5 6 7 8
可由程序设置的中断允许寄存器
由外设设置的中断请求寄存器
…
…至 CPU 的 INTR 引脚 +
1 2 3 4 5 6 7 8
A1
A2
微机原理及应用技术
一片 8259管理 8 级中断,不增加其它任何电路时可用 9片8259 级联构成 64 级的主从式中断系统; 具中断判优逻辑,对任一级中断都可以单独屏蔽或允许; 中断响应后,能将用户预置的中断类型号自动提供给 CPU ; 可通过编程选择其工作方式(即可程控),包括设置优先级、中断触发方式、中断响应方式、中断嵌套方式、中断结束方式、总线连接方式等。
利用可编程中断控制器 8259A 完成 INTR 中断判优( P459 )
Intel 8259A 的基本功能
Intel8259A 的应用
判断中断请求信号是否有效; 进行优先级判别以确定是否将 INT信号送给 CPU ; 在中断请求被响应后负责将中断类型号送给 CPU ; 在 CPU 处理中断的过程中继续负责管理外部中断请求;
微机原理及应用技术80868086 系统中用户中断服务子程序的装载系统中用户中断服务子程序的装载( P321 )
8086 系统中,将用户中断服务子程序的入口地址放入中断向量表的相应位置的过程称为中断服务子程序的装载。通常在装载之前需先保存原中断向量 : MOV AL, N ;使用 DOS 中断取中断向量MOV AH, 35HINT 21HPUSH ES ; 保存中断向量PUSH BX 假设 N 为中断类型号, nseg 为中断向量的段基址部分, noffset 为中断向量的段内偏移量部分,则常用的装载方法有以下三种:
借助 DOS 功能调用 直接使用 MOV 指令 定义符合要求的数据段
微机原理及应用技术用户中断服务子程序的装载-用户中断服务子程序的装载- 11……PUSH AXPUSH BXPUSH DSPUSH DX
POP DXPOP DSPOP BXPOP AX……
;AL 中预置中断类型号;DS 中预置段基址;DX 中预置偏移量; 调用 25H 号 DOS 中断
MOV AH, 25HINT 21H
MOV AL, N
MOV DS, BXMOV DX, noffset
MOV BX, nseg
微机原理及应用技术
用户中断服务子程序的装载-用户中断服务子程序的装载- 22……PUSH AXPUSH ES
POP ESPOP AX……
MOV AX, 0MOV ES, AX
MOV ES:[N*4], noffsetMOV ES:[N*4+ 2], nseg
段基址为 0 ,令当前默认数据段与中断向量表重合将偏移量放入( n*
4 )和( n*4+ 1 )单元将段基址放入( n*4+2 )和( n*4+3 )单元
微机原理及应用技术
用户中断服务子程序的装载- 3
VECTORDATA SEGMENT AT 0
ORG N*4
DW noffset, nseg
……
VECTORDATA ENDS
根据中断类型号确定中断向量存放的起始地址
将中断向量放入表中(注意偏移量在低地址端)
微机原理及应用技术置中断向量例置中断向量例设某中断服务程序的类型号为 40H ,中断服务程序的入口地址为 3500H:4830H 。试用 INT 21H 功能置中断向量到中断向量表中 .
…… ;保存原中断向量…… ;寄存器压栈MOV AL, 40H ;设置新中断向量MOV BX, 3500HMOV DS, BXMOV DX, 4830HMOV AH, 25H INT 21H…… ;寄存器压栈
地址 内容00000
H……
……
……
01000H
01001H
01002H
01003H
30H48H00H35H
微机原理及应用技术微机系统中中断资源的分配情况微机系统中中断资源的分配情况
微机原理及应用技术X86X86系列系列微机微机的中的中断控断控制逻制逻辑辑(( P32P32
66 )) 其中可供用户开发使用的只有 INTR 中断,而其中大部分也已被系统使用(如键盘中断、串口中断等); INTR 中断由 8259A管理,用户扩展外设只能使用 IRQ9 、IRQ10 、 IRQ11 、 IRQ12 和 IRQ15 等几个引脚。 用户需从硬、软件两个方面设计开发 INTR 中断接口。
微机原理及应用技术PCPC 机中用户机中用户 INTRINTR 中断接口的设计中断接口的设计(( P329P329 ))
S
RCPD Q外设发出的中断请求信号
CPU 中断请求复位信号
+ 5V
送至 ISA总线的 IRQn 引脚
CPU 中断请求允许信号硬件需完成的功能:可产生稳定的中断请求信号 IRQn可屏蔽该中断请求信号可清除该中断请求信号
软件需完成的功能:产生中断请求允许信号产生中断请求复位信号装载中断服务子程序