第7章中断系统与中断控制器

Download Report

Transcript 第7章中断系统与中断控制器

第7章 中断系统与中断处理器
7.1 概述
7.2 中断处理程
7.3 多级中断管理
7.4 PC/XT的中断系统
7.5 可编程中断控制器8259A
教学重点
本章介绍中断的基本概念、8086/8088
的中断系统、中断控制器8259A的结构与使
用方法。
重点:中断的基本概念;
8086/8088的中断系统;
8259A的结构与编程。
难点: 8086/8088的中断系统;
8259A的结构与编程。
1.中断的概念
中断:CPU执行程序时,外设向CPU发中断请求,
CPU接收到中断请求并在一定条件下,暂时停止执行
原来的程序而转去处理中断,处理好中断服务再返回
继续执行原来的程序,这一过程称为中断。
中断是CPU被动地响应外设要求服务。
2 中断源
 引起CPU中断的事件——中断源。
 例如:


外设——请求输入输出数据,报告故障等
事件——掉电、硬件故障、软件错误、非法操作、定
时时间到等
中断源分为:外部中断、内部中断
内部中断:CPU内部执行程序时自身产生的中断
外部中断:CPU以外的设备、部件产生的中断
3 中断技术的优点
 a.并行操作与分时操作。中断可以解决快速的 CPU 与慢
速的外设之间的矛盾,使 CPU 和外设同时工作。
 b.实时处理。在实时控制中,可根据外界变量变化要求随
时向 CPU 发出中断申请,请求 CPU 及时处理中断请求。
c.故障处理。针对难以预料的情况或故障,如掉电、运算
溢出等,可通过中断系统由故障源向 CPU 发出中断请求,
再由 CPU 转到相应的进行处理。
d.功能调用。中断可实现DOS功能与BIOS调用。
7.2 中断处理过程
 表达请求:触发器
 被响应的条件



无总线请求
中断未被屏蔽
优先级最高
7.2.1 响应中断的条件
 响应中断的时间


IF=1
指令执行完毕
 中断操作




发响应信号
关中断
保护断点
转入中断服务程序
7.2.2 中断处理过程
 五个步骤:
 中断请求
 中断判优(有时还要进行中断源识别)
 中断响应
 中断服务
 中断返回

以下以外部中断为主介绍这五个步骤。
1.中断请求
外设请求服务时,经接口电路向CPU发请求信号。
2.中断判优
同时出现多个中断请求(>1),响应优先级最高的。
3.中断响应
分成以下两种情况:
(1)非屏蔽中断请求:检测到该请求,结束当前指令后就自动执行相应
的中断服务程序。
(2)可屏蔽中断请求:如IF=1,结束当前指令后响应该外设的中断请求。
自动完成下列操作:
① 发中断响应信号两个。
② 程序状态字、程序断点CS、IP内容入栈;清IF与TF;
③ 中断服务程序地址送入CS和IP。
4.中断处理和返回
 中断处理也叫中断服务。中断处理应由以下几部分按序组成:
(1)保护现场:把中断服务程序中要用到的寄存器内容入栈;
(2)开中断:中断服务时能响应更高级中断请求,实现中断嵌套。
(3)中断服务:执行中断服务处理程序;
(4)恢复现场:把保护现场时入栈寄存器内容恢复:按先进后出
原则,恢复寄存器的内容。
(5)中断返回: CPU必须根据中断结束方式,发中断结束指令。
最后用中断返回指令,将断点的内容重新送入CS和IP寄存器和
标志寄存器。
7.3 多级中断管理
系统有多个中断源,如同一时刻有多个设备(
中断源)向CPU提出中断请求,CPU该如何处理
,就是多级中断的管理问题。其关键是中断优先
级的控制问题。
中断优先级:中断系统中把多个中断源产生的中断
请求按轻重缓急程度、从高到低的顺序进行中断
源的排列,这种排列顺序称之为中断优先级。
1. 中断的优先级
 中断管理系统对多级中断处理的一般原则是:
(1)不同优先级中断同时发生时,按高低级别依次处理;
(2)处理低优先级时又发生高优先级中断,暂停低级别
的去优先处理高级别的;处理完高级别的,返回处理低
级别的未完的服务,这种方式称之为中断嵌套;
(3)执行中断服务程序时,如出现优先级低或者同等优
先级中断请求,则执行当前的中断服务程序结束后响应
新的中断请求;
(4)优先级相同的设备同时请求中断,则按事先规定的
次序处理。
2. 中断源的识别
 (1)软件识别法
方法是:当CPU响
应中断后,用软
件查询有哪些外
设申请中断,判
断哪个中断源的
级别更高,并首
先为它进行中断
服务。
INTR
≥1
0
1
设备0
设备1
2
3
设备2
设备3
4
5
设备4
设备5
6
7
设备6
设备7
①屏蔽法
IN
AL,20H
;读取中断请求触发器的状态字
TEST AL,80H
;检查“设备7”是否有请求
JNE
;有转至“设备7”处理程序PG7
PG7
TEST AL,40H
;检查“设备6”是否有请求
JNE
;有转至“设备6”处理程序PG6
PG6
TEST AL,20H
;检查“设备5”是否有请求
JNE
PG5
PROG5
; 有 转 至 “ 设 备 5” 处 理 程 序
……
即:屏蔽不检测的位,只开放要检测的位
②移位法
 XOR
 IN
 RCL
 JC
 RCL
 JC
 ……
AL,AL
AL,20H
AL,1
PG7
AL,1
PG6
;读取请求触发器状态字
;检查“设备7”是否有请求
;有,转至“设备7”处理程序PG7
;检查“设备6”是否有请求
;有,转至“设备6”处理程序PG6
查询方法优点:
1、查询次序即是优先权次序。
2、省硬件,不需要硬件排队电路。
缺点:
即:固定测试位,将待测的位移入
转至服务程序入口时间长。
(2)硬件识别法
 硬件识别法是通过硬件电路实现中断源的优先权排队,
在微机中通常采用的方法有3种
①中断优先权编码电路
中断优先权编码电路是用硬件编码器和比较器组成的
优先权排队电路识别中断源
①中断优先权编码电路

比较器
1
2
优先权
寄存器
…
INTR
A0
A<B A1
A2
B0
B1
B2
8:3
优先权
编码器
中断请求0
中断请求1
中断请求2
D0~D7
②链式优先权排队电路
链式优先权排队电路也称为菊花链式优先权电路,能处理多中断源同时
申请中断,也可实现中断嵌套。原理:每个中断设备的接口电路中有一
个称为菊花链的逻辑电路,控制中断响应信号传递,前面设备优先权最
高,其余依次降低。
vector address
priority in
priority out
五中断菊花链逻辑图
两中断菊花链逻辑图
中断响应
F/FA
IR0
F/FB
IR1
中断请求
中断请求
高电平
低电平
③可编程中断控制器
可编程中断控制器是微机中解决中断优
先权管理最常用的方法,采取优先权编
码器、寄存器和比较器解决中断优先权
和中断嵌套问题。
7.4 PC/XT(8088/8086CPU)的中断系统
 采用向量型中断结构,可以管理256个不同类型
的中断请求。
 中断源有两类:内部中断和外部中断。外部中
断又分为非屏蔽中断NMI和可屏蔽中断INTR。
1.内部中断
 内部中断是由CPU内部事件引起的中断。
非屏蔽中断
IR0
NMI
IR1
INTR
8086/8088中断管理逻辑
软中断
INT N
断点
INT 3
溢出
INTO
单步
中断
可屏蔽
中断
INTA
9259A
除法
错误
IR2
IR3
IR4
IR5
IR6
IR7
2.外部中断
 外部中断也叫硬件中断,由CPU外部中断请求信号
引脚上输入有效的中断请求信号引起。
(1)非屏蔽中断NMI
 非屏蔽中断NMI是由NMI引脚上输入有效的中断请
求信号引起的,其中断向量号为2。
 在IBM PC系列机中,NMI用于处理存储器奇偶校验
错、I/O通道奇偶校验错以及8087协处理器异常中
断等。
(2)可屏蔽中断INTR
 CPU的INTR引脚由8259A 的INT输出信号驱动,8259A
又与需要请求中断的外设相连。
 8259A根据优先权和屏蔽状态,决定是否发出INT信号
 CPU在每条指令最后一个时钟周期对INTR信号采样
 是否响应该中断请求,取决于中断允许标志位IF的状态
 8086的中断优先级由高到低依次为内部中断(单步中断
除外)、非屏蔽中断NMI、可屏蔽中断INTR、单步中断。
7.4.2 PC/XT机的中断向量表
 8086/8088有256个中断,编号为0~255,称为中断类
型号(向量号),是识别中断源的唯一标识。
 每个中断服务程序都有一个确定的入口地址(中断服务
程序的段基址和偏移量),该地址称为中断向量。
 所有中断向量集中起来,按中断类型号从小到大的顺序
存放到存储器的某一区域内,这个存放中断向量的存储
区叫做中断向量表,亦即中断入口地址表。
8086CPU中断向量表
存储器地址(中断向量地址)
00000H
00001H
00002H
00003H
00004H
00005H
00006H
00007H
.
存储器内容(中断向量)
对应中断类型号
中断服务程序入口偏移地址低8位
中断服务程序入口偏移地址高8位
0
中断服务程序入口段基址低8位
中断服务程序入口段基址高8位
中断服务程序入口偏移地址低8位
中断服务程序入口偏移地址高8位
1
中断服务程序入口段基址低8位
中断服务程序入口段基址高8位
.
.
.
.
.
.
003FCH
003FDH
003FEH
003FFH
.
中断服务程序入口偏移地址低8位
中断服务程序入口偏移地址高8位
中断服务程序入口段基址低8位
中断服务程序入口段基址高8位
.
255
中断向量在内存中的存储情况
执行21H号中断的情况
PC/XT机部分中断向量的布局
类型码
00H
01H
02H
03H
04H
05H
06H
07H
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
中断功能
除法错误
单步
非屏蔽
断点
溢出
屏幕打印
保留
保留
定时器
键盘
保留
通讯口2
通讯口1
硬盘
软盘
打印机
类型码
17H
18H
19H
1AH
1BH
1CH
1DH
1EH
1FH
20H
21H
22H
23H
24H
25H
26H
中断功能
打印机I/O调用
常驻BASIC入口
引导程序入口
时间调用
键盘CTRL-BREAK控制
定时器报时
显示器参数表
软盘参数表
字符点阵结构参数表
程序结束,返回DOS
系统功能调用
结束地址
CTRL-BREAK退出地址
标准错误出口地址
绝对磁盘读
绝对磁盘写
Windows XP中硬件中断的定义
2.中断优先级的划分及执行特点
结束当前指令
内部中断?
Y
标志寄存器入栈
N
Y
NMI?
N
获取向量号
Y
中断响应
Y
INTR?
IF=1?
清除IF和TF
N
N
单步?
令TEMP=TF
Y
CS和IP内容入栈
N
执行下一条指令
进入中断处理程序
Y
有NMI?
N
TEMP=1?
N
执行中断处理程序
弹出CS和IP内容
弹出标志寄存器内容
Y
7.5 8259A可编程中断控制器
本节 主讲内容
7.5.1 8259A的内部结构与引脚信号
7.5.2 8259A的工作方式
7.5.3 8259A编程

8259A可编程中断控制器(Programmable Interrupt
Controller)是用于系统中断管理的专用芯片。其中断
管理功能:
①
8级优先权控制,级联可扩展至64级;
②
每一级中断都可以屏蔽或允许;
③
在中断响应周期,提供相应的中断向量,从而能迅速
转入中断服务程序;
④
通过编程可以选择8259A的中断管理模式。
⑤
也能实现查询中断方式,优先权设置与向量中断方式
时一样 。
CerDIP - Side or Bottom Brazed
Plastic Dual Inline Package
7.5.1 8259A的内部结构与引脚信号
8259A的封装形式
Plastic Leaded Chip Carrier
带引线的塑料芯片载体
NEC公司出品的8259A-2
7.5.1 8259A的内部结构与引脚信号
 1.8259A的内部结构
由以下8个部分组成:
数据总线缓冲器
控制逻辑
中断请求寄存器
IRR(Interrupt Re
中断服务寄存器ISR
优先级比较器PR
quest Register)
(Interrupt Service
Register)
(priority
relatively)
读/写逻辑
中
断
屏
蔽
寄
存
器
IMR(Interrupt Mask Register)
级连缓冲/比较器
2. 8259A的引脚信号
中断响应信号输入线,
低 电 平 有 效 。 与 CPU 的
中断请求信号输出线,
中断应答线相连。
高 电 平 有 效 。 与 CPU 的
中断请求线相连。
D7-D0:双向三态。
用于读写数据。与
CPU 数 据 总 线 直 接
相连或与数据总线
缓冲器相连。
中断请求信号输出入线
读
、
写
命令
信
号
线
。
均
地址线。接CPU地址
片选线。通常接CPU
为
低 电0。
平与读写信号
有 效 , 与 CPU , 高 电 平 有 效 。 与 外 设
总线A
高位地址总线或地址
的中断请求信号相连,
的读、写信号相连。
配合,操作8259A内
译码器输出线
接收来自外设的中断请
部寄存器。
级
连信号线,高电平有 求。固定优先级方式下
主从/使能缓冲线。低电平有效
效。当8259A为主片,是 IR0优先权最高,IR7优先
。工作在缓冲方式,为输出,
输
出 线 ; 为 从 片 , 则 为 权最低。
控制总线缓冲器接收和发送。
输入线。
工作在非缓冲方式,为输入,
(=1)8259A是主片或(=0)
为从片。
去往
CPU
3. 8259A的工作过程
① 请求阶段
D4D0D0
D4 D2 D0
中断请求寄存器
D7 D6 D5 D4 D3 D2 D1 D0
1 0 0
1
0 0 0 0
1 0 0
中断屏蔽寄存器
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 1 0 0
8259A的工作过程
CPU取走
类型码
中断请求寄存器
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 1 0 1 0 10
② 响应阶段
中断类型码
中断服务寄存器
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 1
0
8259A的工作过程
 当CPU接到中断类型码n后:
地址 内容
如N=21H;
 Nx4得到中断服务例程中断向
量的入口地址;Nx4=84H;
 将FR、CS与IP依次入桟;
1FFF7
 从00084H处取4个字节改变IP 1FFF8
与CS的内容:CPU从新的CS:
IP指向处执行中断服务例程。 1FFF9 IPL
1FFFA IPH
地址 内容
0008B 0E
0008A B6
00089 03
00088 4F
1FFFB CSL
1FFFC CSH
00087 00
1FFFD FRL
1FFFE FRH
00085 10
…
…
00086 A7
00084 7C
…
…
地址
内容
地址 内容
1FFF7
0008B 0E
1FFF8
1FFF9
IPL
1FFFA
IPH
1FFFB
CSL
1FFFC
CSH
1FFFD
1FFFE
FRL
FRH
…
…
0008A B6
00089 03
00088 4F
00087 00
00086 A7
00085 10
00084 7C
…
…
8259A的工作过程
 注:ISR寄存器的内容的改变与中断结束方式有
③ 8259A工作
关。
 在自动结束(AEOI)方式时,当第一个中断响
结束阶段
应信号到达,ISR的相应位清0。
 其它方式时, ISR中的位保持到EOI(中断结束)
命令执行。
7.5.2 8259A编程

①
②
8259A中断的控制字包括:
初始化命令字 (Initialization Command Words)
操作命令字(Operation Command Words)
1.中断触发方式
8259A有两种触发方式:
边沿触发方式
8259A 将 中 断 请 求 输 入
端出现的上升沿作为中
断请求信号
电平触发方式
中断请求端出现高电平
是有效的中断请求信号
2.优先级管理方式
 8259A 的 优 先 级 管 理 方
式有4种:
① 固定优先级方式
② 自动循环方式
③ 指定优先级方式
① 固定优先级方式
 也 叫 普 通 完 全 嵌 套 方 式 , 是 8259A 最 常 用 的 方 式 。
8259A初始化后未设置其它优先级方式,就按该方式工
作,它是8259A的缺省工作方式。
最
低
最
高
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
② 优先级自动循环方式
 优先权自动循环方式:在给定初始优先顺序IR7~IR0由
低到高按序排列后,某一中断请求得到响应后,其优先
权降到最低,比它低一级的中断源优先级最高。
开始时:正在被
服 务 的 有 IR4
与IR6。
IR4服务p完成
后 : IR6 正
在被服务。
最低
最高
IS7
IS6
IS5
IS4
IS3
IS2
IS1
IS0
0
1
0
1
0
0
0
0
最高 最低
IS7
IS6
IS5
IS4
IS3
IS2
IS1
IS0
0
1
0
0
0
0
0
0
③ 指定优先级方式
 通过编程指定最低优先级中断源,使初始优先级顺序按循
环方式重新排列。如指定IR3优先级最低(见下图),则IR4
优先级最高,优先级顺序为IR3、IR2、IR1、IR0、IR7、IR6、IR5、
IR4由低到高排列。
 通过操作命令字OCW2将固定优先级设置为指定最低优先
级方式。
ICW2
D7
D6
D5
D4
D3
D2
D1
D0
1
1
1
0
0
0
1
1
3.中断屏蔽方式
 普通屏蔽方式:按IMR的内容屏蔽或开放该级中断,同
时允许高级的中断源中断低级的,不允许同级或低级的
中断源中断正在执行的中断服务程序。
 普通屏蔽方式通过写屏蔽字OCW1来设置。
 特殊屏蔽方式:系统在执行一个中断时,可以响应较高
级的中断请求,也可以响应较低级的中断请求的工作方
式。采用特殊屏蔽方式时,在用屏蔽字OCW1对IMR中
的某一位置1时,同时使ISR对应位清0。
4.中断结束处理方式
 中断服务结束时,给8259AISR相应位清0,表示该中断服
务结束,称之为中断结束处理。
 中断结束处理方式有两类:自动结束方式(AEOI)和非自
动结束方式(EOI),而非自动结束方式(EOI)又分为正
常中断结束方式和指定中断结束方式。
非自动中断结束方式
非指定中断结束方式(non-specific Interrupt Mode)
 通过在中断服务程序中设置EOI命令,使ISR中优先级最
高的那一位清0。用于固定优先级方式,该方式ISR中级
别最高的位就是当前正在处理中断源的对应位。
 该 方 式 通 过 初 始 化 命 令 字 ICW4 的 D1 位 清 0 , 同 时 将
OCW2的D7D6D5设置为001来实现。
①
中断结束处理方式
指定中断结束方式(Specific Interrupt)
 与非指定中断结束方式相比,其不同点在于发中断结束
命令的同时,还需要在命令中指出结束中断的中断源是
那一级,使ISR的相应位清0 。
②
自动结束方式(AEOI-Automatic End of Interrupt)

适应于无中断嵌套的系统。当某级中断被CPU响应后,
8259A在第二个中断响应周期信号结束后,自动将ISR
中的对应位清0。
5.系统连接方式
 8259A与系统有2种连接方式:缓冲方式和非缓冲方式。
① 缓冲方式
 每片8259A都通过总线驱动器与系统数据总线相连,适用
于多片8259A级连的大系统:主片SP/EN端输出低电平信
号,作总线驱动器的启动信号,接总线驱动器OE端。从
片接地。
② 非缓冲方式
 8259A直接与数据总线相连,适用于片数不多的系统。非
缓冲方式,单片或级连8259A的主片SP/EN端接高电平,
从片接低电平。
上述方式通过初始化命令字ICW4的D3位设置。
6.程序查询方式
 CPU查询8259A的状态,当查到有中断请求时,就根据
它提供的信息转入相应的中断服务程序。 8259A查询工
作方式不发INT信号,CPU也不开放中断,
 查询方法是:CPU关中断(IF=0),写入OCW3查询方
式字(OCW3的D2位为1),然后执行一条输入指令。
 如果OCW3的D2D1位=11时,表示既发查询命令,又发
读命令,执行输入指令时,先读出状态字,后读出ISR
(或IRR)。
 查询方式时,不需执行中断响应周期,不设置中断向量
表,响应速度快,占用空间少。