1、第11章 中断技术 本章学习目标: 1. 中断的基本原理及过程 2. 8086中断机制 3. 8259A 11.1. 中断的基本概念 1. 中断与中断源 l 什么是中断?什么是中断源?什么是中断系统? l 中断的分类:硬件中断、软件中断、异常中断。 l 中断源:发出中断请求的来源(设备、请求者)。有外部事件(硬件中断)、内部软件。如:I/O设备、数据通道、实时时钟、硬件故障、软件故障等。 2. 中断的应用 (1) 实现主机与I/O设备并行工作 (2) 实时处理 (3) 人机对话 (4) 故障处理 (5) 多机系统中各处理机之间的协调工作
2、 11.2. 中断接口电路 1. 最简单的中断接口电路 有三个输入设备A,B,C中断源,一个电源掉电中断源; CPU有三个可屏蔽请求输入端INTR0、INTR1、INTR2和一个非屏蔽中断请求输入端NMI。 (1) 中断请求触发器(D触发器) (2) 中断允许触发器(CPU内部) (3) 可屏蔽中断INTR0、INTR1、INTR2 (4) 非屏蔽中断NMI (5) 中断请求输入线 图中是以三个中断请求输入线来区分中哪个中断源产生的中断。而实际的CPU并没有这么多的中断请求输入线。如何处理? 3. 中断优先级 有多个中断请求时,先处理谁? 多个中断源同
3、时有请求时,CPU要确定为个中断源服务。多个中断源有优先级。 确定优先级的方法:软件查询、硬件排队。 (1) 软件查询确定优先级 有中断时,在中断服务程序中读入状态,区分是哪个中断源,以确定为其服务。先判断的中断优先级最高。 (2) 硬件优先级排队电路确定优先级 (3) 具有中断屏蔽的接口电路 中断源的中断请求能送到CPU吗? 通过中断屏蔽R,可以在接口中屏蔽某个中断源。 有多个中断源时,对应每个中断源有一个中断屏蔽位,写入1时,该中断被屏蔽。 (4) CPU内部对可屏蔽中断的控制 CPU什么时候会响应中断?
4、CPU内部有一个中断允许触发器,可以由程序控制开中断(EI)或关中断(DI)。 11.3. 8086CPU响应中断及处理过程 1. 单重中断处理过程 2.多重中断处理过程 **中断服务程序入口地址是如何形成的? 11.4. 8086中断机制(实模式中的中断处理过程) 1.中断类型 最多可处理256个中断源。每个中断源有一个中断类型码n。 2.中断向量表(中断服务程序入口地址表) l 表中保存着中断服务程序的入口地址。 l (n*4)(n*4+1)中保存着中断服务程序入口地址的偏移量IP; l
5、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) 单步中
6、断(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—级联缓冲
7、/比较器,多片级联地址输出(主片)/输入(从片); 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端。
8、 (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):用于屏蔽IR
9、R中的中断请求; 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
10、连接有从片,则相应的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~IR
11、7 , IR0优先级最高,IR7优先级最低。一个中断处理过程,只能响应同级或高级的中断(>=)。 多片级联时,主片设为特殊全嵌套方式,从片设为全嵌套方式。 l 其它优先级方式 循环优先级:自动循环,特殊循环。 5. 操作命令字OCW1~3 在工作过程中随时会写入或读出。 (1)中断屏蔽寄存器OCW1 可读写。 (2)OCW2 设置(1)优先级方式; (2)中断结束方式。 功能: n 优先级:(1)固定(全嵌套,特殊全嵌套)、 (2)循环(自动循环(不用L2~0)、特殊循环(用L2~0))。 n 中断结束:(1)一般EOI(编
12、程送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)
13、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,并把查询字送到数据总线。 查询字:






