资源描述
第11章 中断技术
本章学习目标:
1. 中断的基本原理及过程
2. 8086中断机制
3. 8259A
11.1. 中断的基本概念
1. 中断与中断源
l 什么是中断?什么是中断源?什么是中断系统?
l 中断的分类:硬件中断、软件中断、异常中断。
l 中断源:发出中断请求的来源(设备、请求者)。有外部事件(硬件中断)、内部软件。如:I/O设备、数据通道、实时时钟、硬件故障、软件故障等。
2. 中断的应用
(1) 实现主机与I/O设备并行工作
(2) 实时处理
(3) 人机对话
(4) 故障处理
(5) 多机系统中各处理机之间的协调工作
11.2. 中断接口电路
1. 最简单的中断接口电路
有三个输入设备A,B,C中断源,一个电源掉电中断源;
CPU有三个可屏蔽请求输入端INTR0、INTR1、INTR2和一个非屏蔽中断请求输入端NMI。
(1) 中断请求触发器(D触发器)
(2) 中断允许触发器(CPU内部)
(3) 可屏蔽中断INTR0、INTR1、INTR2
(4) 非屏蔽中断NMI
(5) 中断请求输入线
图中是以三个中断请求输入线来区分中哪个中断源产生的中断。而实际的CPU并没有这么多的中断请求输入线。如何处理?
3. 中断优先级
有多个中断请求时,先处理谁?
多个中断源同时有请求时,CPU要确定为个中断源服务。多个中断源有优先级。
确定优先级的方法:软件查询、硬件排队。
(1) 软件查询确定优先级
有中断时,在中断服务程序中读入状态,区分是哪个中断源,以确定为其服务。先判断的中断优先级最高。
(2) 硬件优先级排队电路确定优先级
(3) 具有中断屏蔽的接口电路
中断源的中断请求能送到CPU吗?
通过中断屏蔽R,可以在接口中屏蔽某个中断源。
有多个中断源时,对应每个中断源有一个中断屏蔽位,写入1时,该中断被屏蔽。
(4) CPU内部对可屏蔽中断的控制
CPU什么时候会响应中断?
CPU内部有一个中断允许触发器,可以由程序控制开中断(EI)或关中断(DI)。
11.3. 8086CPU响应中断及处理过程
1. 单重中断处理过程
2.多重中断处理过程
**中断服务程序入口地址是如何形成的?
11.4. 8086中断机制(实模式中的中断处理过程)
1.中断类型
最多可处理256个中断源。每个中断源有一个中断类型码n。
2.中断向量表(中断服务程序入口地址表)
l 表中保存着中断服务程序的入口地址。
l (n*4)(n*4+1)中保存着中断服务程序入口地址的偏移量IP;
l (n*4+2)(n*4+3) 中保存着中断服务程序入口地址的段地址CS;
2. 可屏蔽中断INTR
l INTR ----中断请求
l /INTA----中断应答
CPU开中断(STI)时,才会产生/INTA。
l 中断应答的时序:
第1个中断响应周期与第2个中断响应周期之间插入4个空闲周期TI。
l 图示可屏蔽中断过程
3. 非屏蔽中断NMI
有能用指令屏蔽,当NMI脚有请求时,总是会响应。中断类型码n=2。
4. 内部中断(软件中断)
(1) 除法中断(n=0)
(2) 溢出中断(n=4) INTO
(3) 单步中断(n=1)
(4) 断点中断(n=3)
(5) 用户定义软中断(n=)
实模式中断处理过程(包括NMI,INTR,内部中断),NMI只进入一次,单步中断可能进入两次。
11.5. 保护模式中的中断处理过程(略)
中断类型码à中断描述符表à全局/局部描述符表à中断服务程序
IDTR—〉IDT(中断门描述符)
11.6. 可编程中断控制器8259A
一个中断管理部件,中断控制器。
1. 引脚
l D7~0、 A0、/CS、/RD、/WR、INT、/INTA、IR7~0
l CAS2~0—级联缓冲/比较器,多片级联地址输出(主片)/输入(从片);
l SP/EN –-(1)缓冲方式时:用于数据输出缓冲控制端,输出;
(2)非缓冲方式时:用于标识主片/从片,输入。
l 与CPU的连接
D7~0, /RD, /WR,/CS, A0; INTR, /INTA
2. 多片级联
(1)与CPU的连接(一片8259最多可连接8片8259从片)
l D7~0, /RD, /WR,A0,/INTA连接到所有8259对应端;
l A15~A1与M/IO经地址译码后选择每个8259A,连接/CS;
l 主片8259A的INT连接到CPU的中断请求INTR端。
(2)多片8259的连接
l 从片的INT连接到主片对应的IR7~0端;
l 主片CAS2~0连接到所有从片的CAS2~0端;
l 外设的中断请求连接到从片(最多8片,64个中断请求输入端);
l 本图为非缓冲方式,主片SP=1,从片SP=0。
3. 8259A的内部结构
l 中断请求R(IRR):锁存外部来的中断请求。沿/电平触发方式;
l 中断服务R(ISR):保存正在处理中的中断,对应位为1;多重中断时, 有多位为1。
l 优先级比较器(PR): 比较IRR与ISR,最高级进入ISR,并发中断请求到CPU;
l 中断屏蔽R(IMR):用于屏蔽IRR中的中断请求;
l ICW1~4:初始化命令字;其中ICW2中保存着中断类型码n;
l OCW1~3:操作命令字。
4. 8259A的控制编程
初始化命令字ICW1~4/操作命令字OCW1~3。
初始化命令字:设置工作方式、缓冲方式、结束方式,级联,中断类型码,主片/从片的连接等。
初始化命令字的写入顺序:
(1) ICW1 A0=0
(2) ICW2 A0=1
中断类型码n=T7~0
(3) ICW3 A0=1
多片级联方式时用,ICW1 D1=0时用。用于指出主片与从片的连接关系。
主片:
相应中断请求输入端IRx连接有从片,则相应的Sx位为1 。
从片:
(4) ICW4 A0=1
工作方式,缓冲方式,结束方式。
l 缓冲方式时(BUF=1),由M/S位表示8259是主片还是从片。
l 中断结束方式
自动结束方式时,在/INTA2后沿,自动清ISRx;
非自动结束方式时,人工清ISRx, 用OCW2发EOI命令。一般结束,特殊结束。
l 全嵌套方式(优先级的方式)
固定优先级 IR0~IR7 , IR0优先级最高,IR7优先级最低。一个中断处理过程,只能响应更高级的中断(>)。
l 特殊全嵌套方式(优先级的方式)
也是固定优先级 IR0~IR7 , IR0优先级最高,IR7优先级最低。一个中断处理过程,只能响应同级或高级的中断(>=)。
多片级联时,主片设为特殊全嵌套方式,从片设为全嵌套方式。
l 其它优先级方式
循环优先级:自动循环,特殊循环。
5. 操作命令字OCW1~3
在工作过程中随时会写入或读出。
(1)中断屏蔽寄存器OCW1
可读写。
(2)OCW2 设置(1)优先级方式; (2)中断结束方式。
功能:
n 优先级:(1)固定(全嵌套,特殊全嵌套)、
(2)循环(自动循环(不用L2~0)、特殊循环(用L2~0))。
n 中断结束:(1)一般EOI(编程送OCW2)、
(2)自动结束(/INTA2, ICW4设置)、
(3)特殊EOI(用L2~0)
Note:特殊循环优先级和特殊EOI都用L2~0,而其它方式不用。
R
SL
EOI
优先级管理方式
中断结束方式
001
固定优先级(全嵌套,特殊全嵌套)
一般EOI
(中断结束时,编程送EOI)
011
固定优先级(用于特殊全嵌套)
特殊EOI (ISRL2~0清0)
000
进入全嵌套方式
x
100
设置自动循环方式
x
101
自动循环优先级
(刚结束的中断优先级置为最低,顺序不变)
一般EOI。
(中断结束时,编程送EOI)
110
特殊循环优先级(自动循环中使用L2~0)
(置IRL2~0优先级最低,顺序不变)
x
111
特殊循环优先级
(置IRL2~0优先级最低,顺序不变)
特殊EOI
(ISRL2~0清0)
010
x
x
(3)OCW3 多功能操作命令字
功能:
n 设置特殊屏蔽方式;
n 中断查询方式;
n 读IRR和ISR内容的操作命令字。
l 特殊屏蔽方式:不允许同级中断请求,高级和低级都可以。中断中允许低级的情况。复位特殊屏蔽时回到全嵌套方式。
l 中断查询方式P=1时,不用INTR引脚连接到CPU,下一次/RD时相当于CPU发了两个/INTA的过程:IRR相应位清0,ISR相应位置1,并把查询字送到数据总线。
查询字:
展开阅读全文