第 7 章 中断与异常

77
1 现现现现现现现现现现现 现现现现现现现现现现现 ( ( 2 2 ) ) http://www.njyangqs.co http://www.njyangqs.co 第7第 第第第第第

Upload: maris-bauer

Post on 30-Dec-2015

61 views

Category:

Documents


5 download

DESCRIPTION

第 7 章 中断与异常. 7.1 中断基本概念. 中断结束. 中断请求. 中断响应. 中断服务. 中断处理. 7.1.1 中断基本概念. 定义: CPU 暂停现行程序,转而处理随机到来的事件,待处理完后再回到被暂停的程序继续执行,这个过程就是中断。. 中断过程:. 中断处理的隐操作: 程序状态及程序断点地址的进栈及出栈。. 中断系统其他功能:. 支持多中断源和多种中断源。. 支持中断屏蔽处理。. 支持中断嵌套处理。. 支持中断优先级修改。. 支持中断结束方式选择。. 7.1.2 中断与异常类型. SIO LPC47B27X. SERIRQ. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 7 章  中断与异常

1

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

第 7 章 中断与异常

Page 2: 第 7 章  中断与异常

2

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

7.1.1 7.1.1 中断基本概念中断基本概念定义:定义: CPU 暂停现行程序,转而处理随机到来的事件,待处理完后再回到被暂停的程序继续执行,这个过程就是中断。中断过程:中断过程:

中断处理的隐操作:中断处理的隐操作:程序状态及程序断点地址的进栈及出栈。

中断请求 中断响应 中断服务 中断结束

中断处理

7.1 中断基本概念

Page 3: 第 7 章  中断与异常

3

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

中断系统其他功能:中断系统其他功能: 支持多中断源和多种中断源。 支持中断屏蔽处理。 支持中断嵌套处理。 支持中断优先级修改。

支持中断结束方式选择。

Page 4: 第 7 章  中断与异常

4

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

1.1. 外部硬件外部硬件 (( 如键盘、鼠标,串口,并口打印机等)中如键盘、鼠标,串口,并口打印机等)中断断

中断请求:中断请求:多个中断请求的排队和判优由中断控制器完成,产生的有无中断请求的信号送到 CPU 的 INTR 引脚。 中断类型号:中断类型号:通过数据总线送到 CPU 中。

EFLAGS 寄存器的 IF 位影响 CPU 对中断请求的响应。处理器在当前指令执行结束的时候当前指令执行结束的时候启动中断识别 INTA总线周期。

属性:属性:硬件、可屏蔽、向量。

SIO LPC47B27X

…IRQx 82801HBSERIRQ

82G965

Pentium 4/ConroeINTR

中断类型号

PIRQx

7.1.2 7.1.2 中断与异常类型中断与异常类型

Page 5: 第 7 章  中断与异常

5

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

2.2. 不可屏蔽中断不可屏蔽中断 (NMI)(NMI)

中断请求:中断请求:中断请求的信号送到 CPU 的 NMI 引脚。 中断类型号:中断类型号:固定为 2 。

CPU 不需要进行中断识别,直接处理中断。

属性:属性:硬件、不可屏蔽、向量。

NMI 由 0 跳变到 1 以后要维持至少 4 个连续的处理器时钟周期的高电平才被识别。

NMI 由 1 跳变到 0 以后要维持至少 4 个连续的处理器时钟周期的低电平,新的 NMI 中断才能被识别。

Page 6: 第 7 章  中断与异常

6

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

3.3. 软件中断软件中断 属性:属性:软件、不可屏蔽、向量。 中断请求:中断请求:指令执行中或程序调用产生。 中断类型号:中断类型号: CPU 规定或指令给出。 CPUCPU 专用中断:专用中断:除 0 错 (0) 、单步 (1) 、断点中断 (3)、溢出 (O(4)) 、边界越界中断 (5) 。 BIOSBIOS 中断:中断: I/O 设备控制、实用服务、特殊中断、专用参数中断。 DOSDOS 中断:中断:公开 / 未公开、可调用、系统功能。 自由中断:自由中断:未定义 (20H~3FH 中未使用的中断 ) 。 CPU 不需要进行中断识别,直接处理中断。

Page 7: 第 7 章  中断与异常

7

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

4.4. 内部中断和异常内部中断和异常 属性:属性:软件、不可屏蔽、向量。 中断请求:中断请求:指令执行中产生。 中断类型号:中断类型号: CPU 规定。

故障 (失效):故障 (失效):错误在指令完成前错误在指令完成前,错误指令的 CS: EIP 压栈。该指令会重做。 陷阱:陷阱:错误在指令完成后错误在指令完成后,错误指令下一指令的 CS: EIP 压栈。 异常中止:异常中止:不保存,重启机器。 CPU 不需要进行中断识别,直接处理中断。

Page 8: 第 7 章  中断与异常

8

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

7.2.1 8259A7.2.1 8259A 主要任务主要任务 接受外部的中断请求; 管理所有外部的中断请求 ( 排队、判优、屏蔽、嵌套 ); 向 CPU 产生中断请求 INTR 信号及中断类型号; 进行中断结束处理; 接受 CPU 命令及返回状态。

7.2 Intel 8259A

Page 9: 第 7 章  中断与异常

9

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

1.8259A1.8259A 引脚引脚

CPUCPU 侧:侧:

DB0~DB7 ;

外设侧:外设侧: IR0~IR7 ;级联:级联:

CS# ;

RD# 、 WR# 、 A0

SP#/EN# 、 CAS0~CAS2 。

INT 、 INTA# ;

7.2.2 8259A7.2.2 8259A 引脚及内部结构引脚及内部结构

Page 10: 第 7 章  中断与异常

10

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

2.8259A2.8259A 内部结构内部结构

Page 11: 第 7 章  中断与异常

11

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

内部逻辑:内部逻辑: IRR 、 IMR 、 PR 、 ISR 及控制电路。 中断请求过程:中断请求过程: IR->INT 。

&INT

ISR 编码

中断请求优先级编码器

中断请求寄存器IR

R

IR0

IR7

……

&

&

&

&

&

&

&

&

中断屏蔽寄存器 IMR

D0 D7…

≥1

比较器

B0

B1

B2

A>BA0

A1

A2

接口电路:接口电路: CPU 接口、 I/O 接口。

Page 12: 第 7 章  中断与异常

12

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

CPUCPU 响应可屏蔽中断条件:响应可屏蔽中断条件: 当前指令执行完毕; EFLAGS 中 IF=1 ; INTR 信号有效。

中断响应过程:中断响应过程: 8259 向 CPU 送中断类型号。 第一个 INTA# , CPU 封锁总线 (LOCK# 有效 ) ,8259A 最高优先级请求对应 ISR 位置位,对应 IRR 复位。 第二个 INTA# ,总线解锁, ALE 无效, 8259A 将当前中断服务程序对应中断类型号送到数据总线上。 ISR 的复位在自动结束 / 非自动结束时不一致。

回ICW3

Page 13: 第 7 章  中断与异常

13

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

级联方式结构:级联方式结构:

级联3

级联 1 级联2

Page 14: 第 7 章  中断与异常

14

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

3.8259A3.8259A 工作方式工作方式 中断请求方式:中断请求方式:边沿触发方式边沿触发方式:正跳变向 8259A 请求中断。电平触发方式电平触发方式:高电平向 8259A 请求中断,响

应中断后要及时清除高电平。查询中断方式查询中断方式:外设向 8259A 请求中断,但 82

59A 不向 CPU发中断请求信号INT 。而是将请求状态保存等待 CPU 来查询。

PCPC 机初始化为边沿触发机初始化为边沿触发

Page 15: 第 7 章  中断与异常

15

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

连接总线与级联方式:连接总线与级联方式: 非缓冲方式:非缓冲方式:小系统中, 8259A 数据线直接连系统数据总线,不需要总线缓冲器,此时 SP#/EN#表示级联时主 /从关系。 主片:主片: SP#/EN# 接高电平; 从片:从片: SP#/EN# 接低电平。 缓冲方式:缓冲方式:大系统中,数据总线都具有总线缓冲器,此时 SP#/EN#表示数据传送方向,级联时主 /从关系通过软件设定 ICW4 来决定。PCPC 机初始化为非缓冲方式机初始化为非缓冲方式

Page 16: 第 7 章  中断与异常

16

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

屏蔽方式:屏蔽方式: 缺省特性:自动屏蔽低于自己优先级的缺省特性:自动屏蔽低于自己优先级的 IRIR 。。 正常屏蔽:正常屏蔽: IMR 中相应位置位; 特定屏蔽:特定屏蔽:开放比自己优先级低的 IR 。 优先级管理方式:优先级管理方式: 缺省特性:缺省特性: IRIR00~IR~IR77 的优先级为一循环队列。的优先级为一循环队列。 固定优先权:固定优先权:从 IR0~IR7降序; 轮转优先权:轮转优先权: 自动轮转:自动轮转:刚被服务的 IR 的优先级降至最低; 指定轮转:指定轮转:指定的 IR 的优先级降至最低。PCPC 机初始化为缺省屏蔽特性,固定优先权机初始化为缺省屏蔽特性,固定优先权

Page 17: 第 7 章  中断与异常

17

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

嵌套方式:嵌套方式: 全嵌套:全嵌套:禁止同优先级和低优先级请求发生; 特殊全嵌套:特殊全嵌套:禁止低优先级请求发生。 应用:应用:级联时主片特殊全嵌套,从片全嵌套。结束方式(结束方式( ISRISR 复位方式):复位方式): 自动:自动:中断响应后 ISR 中最高优先级位自动复位; 非自动:非自动:中断服务程序返回前,需要处理程序发出对 ISR 中相应位复位的中断结束命令; 不指定方式:不指定方式: ISR 中最高优先级位复位; 指定方式:指定方式:命令中指定的 ISR 中相应位复位。

PCPC 机初始化为全嵌套,非自动结束方式机初始化为全嵌套,非自动结束方式

级联结构

Page 18: 第 7 章  中断与异常

18

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

4.8259A4.8259A 的操作功能及命令的操作功能及命令 I/OI/O 端口地址:端口地址:只提供二个端口 ( 使用 A0区别) ; 命令:命令:初始化 --ICW1~ICW4 , 操 作 --OCW1~OCW3 。 状态:状态: IRR 、 ISR 、 IMR 、查询字。 I/OI/O 端口操作冲突时解决方法:端口操作冲突时解决方法: 信息字节中有空闲位时:信息字节中有空闲位时:特征位方法; 信息字节中无空闲位时:信息字节中无空闲位时:时序方法、读 /写

区分法。

Page 19: 第 7 章  中断与异常

19

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

PIC1 PIC2 操作 内容 特征位 时序D4D3D2

20H 0A0H 写 ICW1 1×× 无OCW2 00×

OCW3 01×

21H 0A1H 写 ICW2~ICW4 无 在初始化期间,ICW1之后 ICW2→ICW4

OCW1 非初始化期间20H 0A0H 读 IRR , ISR

查询字无 OCW3决定

21H 0A1H 读 IMR 无 无

8259A8259A 命令关系表(地址以命令关系表(地址以 PCPC 机中为例):机中为例):

注:注: ICWx只有在初始化过程中才会出现。

Page 20: 第 7 章  中断与异常

20

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

(1)(1) 初始化命令初始化命令 ICW1ICW1

特征位:特征位: D4=1 ; 初始化命令 ICW4 主要设定嵌套、缓冲、结束方式,缺省值为全嵌套、非缓冲、非自动结束方式缺省值为全嵌套、非缓冲、非自动结束方式。。 当 SNGL=0 ,需要初始化命令 ICW3 来设置级联项。

Page 21: 第 7 章  中断与异常

21

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

(2)(2) 初始化命令初始化命令 ICW2ICW2

时序: 时序: ICW1→ ICW2→[ICW3]→[ICW4] 。IRIRii 的中断类型号 的中断类型号 = ICW2= ICW2 的高的高 55 位位 +i+i

例:例:如果 ICW2 为 08H ,则 IR3 的中断类型号(中断向量)为 08H+03H=0BH。思考题:如果一个中断的类型号是思考题:如果一个中断的类型号是 16H16H ,请问该中断,请问该中断接在接在 IRIR几?该几?该 82598259 初始化的初始化的 ICW2ICW2 是多少?是多少?

Page 22: 第 7 章  中断与异常

22

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

(3)(3) 初始化命令初始化命令 ICW3ICW3

级联方式结构设置:级联方式结构设置:

主片: S7~S0分别对应相应的 IR 号的引脚,为 1 的位对应的引脚接有从片; 从片: ID2~ID1 的编号是该从片接到主片的IR 引脚的 IR 号。

需要分别对主片和从片进行设置。

级联结构

Page 23: 第 7 章  中断与异常

23

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

主 片: MOV AL, 14H OUT 21H , AL从片 1 : MOV AL, 04H OUT 0A1H , AL从片 2 : MOV AL, 02H OUT 0C1H , AL

级联方式中断请求及响应过程:级联方式中断请求及响应过程: 主片请求:与非级联一致。

从片请求:与非级联一致,但其 INT 送到主片,服从主片的请求规则。 从片响应:通过 CAS 线译码,选中时在收到第二个 INTA# 后,返回中断类型号。

非级联响应

级联结构

主片响应:收到第一个 INTA# 后,对从片的 IR 请求,在第一个 INTA# 下降沿下降沿从 CAS 线送出该 IR 编码;否则,在第二个 INTA# 返回中断类型号。

Page 24: 第 7 章  中断与异常

24

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

(4)(4) 初始化命令初始化命令 ICW4ICW4

DD00 ::用于 8 位 (0)/16 位 (1)微机; DD11 ::非中断自动结束 (0)/ 自动结束 (1) 方式;

DD22 ::缓冲方式 (D3=1) 时的主从片级联位置设置, 从片 (0)/ 主片 (1) ; DD33 ::非缓冲 (0)/缓冲 (1) 方式; DD44 ::全嵌套 (0)/ 特殊全嵌套 (1) 方式。

从片非自动结束时,主、从片均需发从片非自动结束时,主、从片均需发 EOIEOI 命令。命令。

Page 25: 第 7 章  中断与异常

25

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

(5)(5) 操作命令操作命令 OCW1OCW1

特征位:特征位:无,时序:时序:无。功能:功能:写中断屏蔽寄存器 IMR实际上改变了中断优先级(屏蔽掉高优先级的中断请求)。对 IMR 的读取在 21H (主)、 0A1H (从)端口做读操作。

Page 26: 第 7 章  中断与异常

26

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

(6)(6) 操作命令操作命令 OCW2OCW2

特征位:特征位: D4D3=00 ; 功能:功能:结束方式和优先权轮转管理; 结束方式管理:结束方式管理: D6D5=×0 ,自动结束,硬件自动清除 ISR 的相应位; D6D5=01 ,非自动结束 [ 命令不指定清 ISR 的哪一位] ; D6D5=11 ,非自动结束 [ 命令指定清 ISR 的哪一位 ]。 优先权管理:优先权管理: D7=0 ,优先权固定; D7=1 ,优先权轮转。 D6 的含义仍然有效

Page 27: 第 7 章  中断与异常

27

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

R SL EOI 0 0 L2 L1 L0 功能 0 0 0 0 0 0 0 0 自动 EOI 、优先权固定命令 0 0 1 0 0 0 0 0 非自动 EOI[ 不指定 ] 、优先权

固定命令 0 1 1 0 0 L2 L1 L0 非自动 EOI[ 指定 ] 、优先权固

定命令 1 0 0 0 0 0 0 0 自动 EOI 、优先权自动轮转命

令 1 0 1 0 0 0 0 0 非自动 EOI[ 不指定 ] 、优先权

自动轮转命令 1 1 1 0 0 L2 L1 L0 非自动 EOI[ 指定 ] 、优先权指

定轮转命令 1 1 0 0 0 L2 L1 L0 自动 EOI 、优先权指定轮转命

令 例:例: MOV AL, 20H OUT 20H , AL 的含义?

Page 28: 第 7 章  中断与异常

28

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

(7)(7) 操作命令操作命令 OCW3OCW3

P RR RIS 功能 应用 0 1 0 读取 IRR 内容 MOV AL, 0AH

OUT 20H , ALIN AL , 20H

0 1 1 读取 ISR 内容 MOV AL, 0BHOUT 20H , ALIN AL , 20H

0 0 × 不读取任何寄存器内容

1 × × 读取查询字信息 MOV AL, 0CHOUT 20H, ALIN AL, 20H

特征位:特征位: D4D3=01 ;

Page 29: 第 7 章  中断与异常

29

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

查询字格式:

I=0 ,无中断请求;I=1 ,有中断请求。W2~W0 ,正在申请中断的若干中断源中优先级最高的中断源的编码。

Page 30: 第 7 章  中断与异常

30

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

特定屏蔽管理:特定屏蔽管理: ESMM SMM 功能 0 × 该操作对特殊屏蔽无效 1 0 取消特定屏蔽 1 1 设置特定屏蔽设置方法:设置方法:

用 OCW1 屏蔽部分 IR[含自己 ] , 用 OCW3 置 SMM即可。 取消方法:取消方法: 用 OCW3取消特定屏蔽, 用 OCW1取消被屏蔽的 IR 。

Page 31: 第 7 章  中断与异常

31

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

1.1. 初始化编程步骤初始化编程步骤

out 20h(a0h), al

out 21h(a1h), al

out 21h(a1h), al

out 21h(a1h), al

7.2.3 8259A7.2.3 8259A 初始化编程初始化编程

Page 32: 第 7 章  中断与异常

32

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

2.2. 初始化编程初始化编程

• 不同 8259A 的 I/O端口地址不同;• 8259A 级联时,每个 8259A均必须有完整

的初始化过程 [端口地址和部分参数不同而已] ;• 全嵌套方式时,初始 IR 优先级 IR0 最高。

注意点:注意点:

Page 33: 第 7 章  中断与异常

33

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

例:例:INTM00 EQU 020H ;8259A端口 0INTM01 EQU 021H ;8259A端口 1

……MOV AL, 00010011B ;ICW1 :边沿触发,要 ICW4 ;

; 单片方式,不要 ICW3 。OUT INTM00, ALJMP SHORT $+2 ;I/O端口延时MOV AL, 00001000B ;ICW2 :设置中断向量,起始的

; 中断向量为 08H 。OUT INTM01, ALJMP SHORT $+2MOV AL, 00000001B ;ICW4 :非缓冲,全嵌套,非自

; 动中断结束 (EOI) 。OUT INTM01, ALJMP SHORT $+2……

Page 34: 第 7 章  中断与异常

34

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

思考题:

MOV AL, 12HOUT 20H, ALMOV AL, 08HOUT 21H, ALMOV AL, 02HOUT 21H, AL

MOV AL, 13HOUT 20H, ALMOV AL, 08HOUT 21H, ALMOV AL, 02HOUT 21H, AL

问:以上左右两段对问:以上左右两段对 82598259 的访问程序中,的访问程序中,最后一句分别是发的什么命令?最后一句分别是发的什么命令?

Page 35: 第 7 章  中断与异常

35

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

5.2.4 5.2.4 微机中微机中 8259A8259A 应用应用 (D31:F0)(D31:F0)

Y0#

Y7#

A

BC

G2B#G2A#

G1

15

14

13121110

97

123

45

6

74LS138

A5

A6

A7

A8

A9

AEN#

中断控制器中断控制器 8259A8259A 的端口地址为的端口地址为 20H20H 、、 221H1H

1.PC1.PC 机系统板上机系统板上 8259A8259A 的连接的连接

8259A

CS#

DB[7..0]

IR[7..0]

INTA#

A0 A0

INT

INTA#

INTR

RD#

WR#

IOW#

IOR# 接接 82888288总线控总线控制器制器

接接 CPUCPU

接中断源接中断源

接数据线接数据线

接地址线接地址线

Page 36: 第 7 章  中断与异常

36

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

2.2. 现代微机中现代微机中 ICH8ICH8 中中 8259A8259A 级联级联

注意:注意: 主、从区分; IRQ 优先级; 请求与响应。

Page 37: 第 7 章  中断与异常

37

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

;; 对主片对主片 8259A8259A 的初始化的初始化INTM00 EQU 020H ; 主 8259A端口 0INTM01 EQU 021H ; 主 8259A端口 1

……MOVAL, 00010001B ;ICW1 :边沿触发,要 ICW4; 级联方式,要 ICW3 。OUT INTM00, ALJMP SHORT $+2 ;I/O端口延时MOVAL, 00001000B ;ICW2 :设置主片的中断向量,起始的中断向量为 08HOUT INTM01, ALJMP SHORT $+2MOVAL, 00000100B ;ICW3 :表示从 8259A 的 INT输出是连接到主片的 IR

2 。OUT INTM01, ALJMP SHORT $+2MOVAL, 00010001B ;ICW4 :非总线缓冲,特殊全嵌套,非自动 EOIOUT INTM01, ALJMP SHORT $+2……

Page 38: 第 7 章  中断与异常

38

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

;; 对从片对从片 8259A8259A 的初始化的初始化INTS00 EQU 0A0H ;从 8259A端口 0INTS01 EQU 0A1H ;从 8259A端口 1

……MOVAL, 00010001B ;ICW1 边沿触发,要 ICW4; 级联方式,要 ICW3 。OUT INTS00, ALJMP SHORT $+2MOVAL, 01110000B ;ICW2 :设置从片的中断向量,起始的中断向量为 70HOUT INTS01, ALJMP SHORT $+2MOVAL, 00000010B ;ICW3 :设置从片的识别标志,指定对应主片的 IR2 。OUT INTS01, ALJMP SHORT $+2MOVAL, 00000001B ;ICW4 :非总线缓冲,全嵌套,非自动中断结束。OUT INTS01, ALJMP SHORT $+2……

Page 39: 第 7 章  中断与异常

39

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

3.3.现代微机中断请求线连接现代微机中断请求线连接

8259 引脚 类型号 典型的中断源 被连接的引脚 / 功能 主片 0 8H 内部 内部时钟 /计数器 0 的输出

1 9H 键盘 通过 SERIRQ 来的 IRQ1

2 0AH 内部 从控制器的级联引脚3 0BH 串行端口 2 通过 SERIRQ 来的 IRQ3

4 0CH 串行端口 1 通过 SERIRQ 来的 IRQ4

5 0DH 并行端口 /普通

通过 SERIRQ 来的 IRQ5

6 0EH 软磁盘 通过 SERIRQ 来的 IRQ6

7 0FH 并行端口 /普通

通过 SERIRQ 来的 IRQ7

返回下页

Page 40: 第 7 章  中断与异常

40

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

8259 引脚 类型号 典型的中断源 被连接的引脚 / 功能 从片 0 70H 内部实时时钟 内部 RTC

1 71H 普通 通过 SERIRQ 来的 IRQ9

2 72H 普通 通过 SERIRQ 来的 IRQ10

3 73H 普通 通过 SERIRQ 来的 IRQ11

4 74H PS/2 鼠标 通过 SERIRQ 来的 IRQ12

5 75H 内部 基于处理器 FERR# 的状态机输出6 76H 基本 IDE 电缆 从输入信号来或通过 SERIRQ 来的

IRQ14

7 77H 第二 IDE 电缆 从输入信号来或通过 SERIRQ 来的IRQ15

SIO LPC47B27X

…IRQx 82801HBSERIRQ

CPUINTR

IRQ14,15返回第 65页转上页

Page 41: 第 7 章  中断与异常

41

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

在当前指令结束后,可屏蔽中断根据 EFLAGS 寄存器IF 位决定是否响应;其他中断给予响应。中断响应的步骤如下:1.1. 保护断点保护断点通过堆栈及相关硬件实现 EFLAGS 、 CS 、 EIP 的保护。并清除 IF 和 TF 。压栈的顺序是 EFLAGS 、 CS 、 EIP

2.2.取得中断类型号取得中断类型号对外部硬件中断通过中断响应周期取得中断类型号。非外部硬件中断直接取得入口地址,无须第非外部硬件中断直接取得入口地址,无须第 22 步步

7.3 现代微机中的中断处理7.3.1 7.3.1 中断响应过程中断响应过程

Page 42: 第 7 章  中断与异常

42

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

4.4. 转入中断处理程序转入中断处理程序

5.5. 返回断点返回断点恢复断点( EIP 、 CS 、 EFLAG顺序出栈)继续执行主程序。

3.3.取得中断服务程序入口地址取得中断服务程序入口地址对向量中断,通过中断类型号查中断向量表或中断描述符表取得中断服务程序的入口地址。

从中断处理程序入口地址转到中断处理程序。执行对中断的处理。

Page 43: 第 7 章  中断与异常

43

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

82801HB

82G965

酷睿 CPU

PCI INTA

INTA#

中断类型号

CP

U

线

INTR主 8259

A从 8259A

IRQ

内部逻辑

两个 INTA#

7.3.2 7.3.2 现代微机中断控制现代微机中断控制

Page 44: 第 7 章  中断与异常

44

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

在上面的过程中有几点注意:• 一个或多个 IRQ 到来的时候,置中断请求寄存器 IR

R 的相应位 。如果中断没有被屏蔽,才可以发 INTR。

• 82801HB 内部产生两个周期 INTA# 后,第一个第一个 INTINTA#A#脉冲脉冲,有最高优先级的 ISR 的相应位被置上,而IRR 的相应位被复位。第一个脉冲的下降沿第一个脉冲的下降沿,主中断控制器利用内部 3根专用线 CAS 向从中断控制器发送从片识别码。第二个第二个 INTA#INTA#脉冲后脉冲后,主或从识别码选中的从可编程中断控制器返回中断向量号。

• 结束中断响应周期时,如果在自动中断结束( AEOI)模式下,则中断服务寄存器( ISR )的相应位在第第二个二个 INTA#INTA#脉冲的末尾脉冲的末尾被复位,否则 ISR相应位保持置位直到中断处理程序末尾发出 EOI 命令。

Page 45: 第 7 章  中断与异常

45

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

1.1. 中断识别中断识别 只有外部硬件中断需要进行识别,其余不需要识别。 中断识别由中断控制器完成。2.2. 中断优先级中断优先级 原则:原则:按机器故障、 DMA 、外围硬件、软件递减。 结果:结果: CPU 专用 >DMA> 外围硬件 >BIOS>DOS> 自由。 即基本按中断向量表排序。 外围硬件一般可由用户修改其优先权。

7.3.3 7.3.3 中断识别及其优先级中断识别及其优先级

Page 46: 第 7 章  中断与异常

46

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

Page 47: 第 7 章  中断与异常

47

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

一、 一、 PCPC 机中断向量表机中断向量表 (IVT(IVT ,用于实地址模式,用于实地址模式 ))

2) 2) 中断向量表中断向量表

位于内存地址 0000 : 0000 开始的 1KB范围内。

按中断类型号顺序存放中断向量的存储区域。

3) 3) 中断向量指针中断向量指针指向存放中断向量地址第一字节的指针。中断向量指针中断向量指针 == 中断类型号中断类型号 ×4×4 。。软件中断中自由中断的中断向量需用户自己装入。

1) 1) 中断向量中断向量对应中断类型号的中断服务程序入口地址。每个中断向量占 4字节。

7.3.4 中断向量表和实地址模式下中断处理程序的编写

Page 48: 第 7 章  中断与异常

48

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

00000 类型 0 的 IP 类型 0 的 CS00004 类型 1 的 IP 类型 1 的 CS

4*N 类型 N 的 IP 类型 N 的 CS

IA-32IA-32 的中断向量表在存储区的最低的中断向量表在存储区的最低 1KB1KB字节中,字节中,对应对应 256256 种中断种中断 ,,每个中断向量占每个中断向量占 44 个字节个字节

类型 0 的中断向量

类型 1 的中断向量

类型 N 的中断向量

类型 0 的向量指针

类型 1 的向量指针

类型 N的向量指针

Page 49: 第 7 章  中断与异常

49

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

二、 实模式下中断程序编写二、 实模式下中断程序编写1. 1. 中断编程注意点中断编程注意点

11 )使用正确的中断类型号)使用正确的中断类型号 根据中断处理程序要完成的功能,选择好正确的中断类型号,如: COM1 串行通信用 0CH 号中断, Ctrl

+Break 键控制中断号是 1BH ,注意定时器中断一般不使用 08H 号,而使用更安全的 1CH 号中断。 如果是自己定义的软中断,注意不要和系统中断类型号相重合。

中断编程包括主程序部分和中断处理程序部分。

Page 50: 第 7 章  中断与异常

50

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

22 )中断服务程序入口地址的正确设置(主程序中完成)中断服务程序入口地址的正确设置(主程序中完成)) 有两种设置中断服务程序入口地址 ( 中断向量 ) 的方法:1 )直接写中断向量表 (假设中断向量是 0CH)CLI ; 关中断MOV AX, 0MOV ES, AX ; ES 指向 0000H段 ( 中断向量表的段 )MOV SI, 0CH*4 ; 一个中断向量 4 个字节MOV AX, OFFSET SERVICE ; 中断入口偏移地址MOV ES:[SI], AXMOV AX, SEG SERVICE ; 中断入口的段地址MOV ES:[SI+2], AXSTI ; 开中断……; 中断处理子程序SERVICE PROC FAR……

2 )使用 DOS 功能调用中断MOV AX, SEG SERVICEMOV DS , AXMOV DX , OFFSET SERVICEMOV AX , 250CHINTINT 21H21H

2 )使用 DOS 功能调用中断MOV AX, SEG SERVICEMOV DS , AXMOV DX , OFFSET SERVICEMOV AX , 250CHINTINT 21H21H

Page 51: 第 7 章  中断与异常

51

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

44 )避免)避免非软件中断非软件中断中断处理程序中中断处理程序中 DOSDOS 重入重入 DOS 的重入容易引起系统瘫痪,所以在中断处理程序中要避免调用 DOS 功能调用,如果是对外设或屏幕的操作,改用 BIOS 中断,如果是文件操作,要到中断处理程序外的主程序中完成。55 )中断程序执行时间的正确估计)中断程序执行时间的正确估计 中断处理程序执行时间要小于中断到来的周期或最短间隔时间,中断处理程序里不要出现死循环、需要人工干预的人机交互和时间很长的循环语句。

33 )适当地保护现场)适当地保护现场 由于中断随时到来,所以中断处理程序中一定要保护好需要使用的寄存器。如果使用的寄存器多,可以保护所有寄存器,如果寄存器用的不多,可只将要用的寄存器压栈。

Page 52: 第 7 章  中断与异常

52

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

66 )中断的打开与关闭)中断的打开与关闭 中断响应的时候系统会自动将 IF清 0 ,如果希望中断能有限嵌套(高级与本级中断能嵌套)则在现场保护后,用 STI 指令将中断屏蔽打开。77 )中断结束处理及返回)中断结束处理及返回 a) 如果现场保护后,执行过 STI ,这恢复现场前要

执行 CLI关闭中断。 b) 如果是外部硬件中断,非自动结束模式下,恢复

现场前应该发中断结束命令( EOI )。 MOV AL, 20HMOV AL, 20H OUT 20H, AL ; OUT 20H, AL ; 向主向主 82598259发发 EOIEOI OUT 0A0H, AL ; OUT 0A0H, AL ; 向从向从 82598259发发 EOIEOI c) 恢复现场,使用和保护现场压栈顺序的逆序将寄

存器的值弹出 d) 使用 IRET 中断返回指令返回

Page 53: 第 7 章  中断与异常

53

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

2. 2. 中断处理程序举例(假设中断类型号是中断处理程序举例(假设中断类型号是 0CH0CH )); 主程序的相关部分…… OLD0C DD ?……CODE SEGMENT …… MOV AX, 350CH ; 保存原来的 0CH 中断向量 INT 21H MOV WORD PTR OLD0C , BX MOV WORD PTR OLD0C+2 , ES MOV AX, SEG SERVICE ; 写入新的 0CH 中断向量 MOV DS , AX MOV DX , OFFSET SERVICE MOV AX , 250CH INT 21H …… ; 其它程序段

Page 54: 第 7 章  中断与异常

54

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

; 中断处理子程序SERVICE PROC FAR

PUSHA ; 保护现场PUSH DSSTI ; 打开中断……; 中断处理程序主体中断处理程序主体……CLI ; 关闭中断MOV AL, 20HOUT 20H, AL ; 发中断结束命令POP DS ; 恢复现场POPAIRET

SERVICE ENDP

Page 55: 第 7 章  中断与异常

55

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

1.1. 中断描述符表中断描述符表 (IDT(IDT )) 表项长度:表项长度: 8字节,每个表项对应一个中断类型号。 表项类型:表项类型:任务门、中断门、陷阱门。

通过特征位 (b40~b44)区分不同类型。

7.3.5 保护模式下中断与异常的处理

Page 56: 第 7 章  中断与异常

56

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

表的长度:表的长度: 8字节 ×256=2KB 。 表的位置:表的位置:由中断描述符表寄存器 (IDTR) 指向。

2.2. 中断描述符指针中断描述符指针 指向中断描述符表中的中断描述符的指针。 中断描述符指针中断描述符指针 =IDT=IDT 基地址基地址 ++ 中断类型号中断类型号 ×8×8 。。3.3. 中断门中断门 // 陷阱门陷阱门 内容:内容:段选择符、属性和偏移量。 中断门与陷阱门区别:中断门与陷阱门区别: 通过中断门处理时 EFLAG 的 IF 被清 0 ,通过陷进门处理 IF 不清 0 。 中断门的优先级比陷阱门高,是面向外部硬件中断的门,后者面向优先级低的中断。

Page 57: 第 7 章  中断与异常

57

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

中断服务子程序入口地址取得:中断服务子程序入口地址取得:

……

偏移属性

选择符

中断门 /陷阱门

IDTRIDT

中断类型号7 0

×8

边界属性

基地址

段描述符

CS

GDT/LDT

线性地址

中断服务子程序

代码段段基地址

偏移

EIP

CS段描述符缓冲器

中断描述符中断描述符

段描述符段描述符

……

Page 58: 第 7 章  中断与异常

58

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

TSS选择符

任务门

IDTRIDT

中断类型号7 0

×8

属性段限基址

TSS描述符

TR

GDT

线性地址

TSS

基址

TR描述符缓存器

4.4. 任务门任务门 内容:内容: TSS 选择符与属性。 TSSTSS取得:取得:

优点:优点:中断任务和被中断任务完全隔离。缺点:缺点:中断响应过程耗时长。

……

……

Page 59: 第 7 章  中断与异常

59

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

7.4.1 PCI7.4.1 PCI 中断请求中断请求 PCIPCI 中断线:中断线: INTA#INTA# 、 INTB# 、 INTC# 、 INTD#。 PCIPCI 中断源:中断源: PIRQA#~PIRQD# 。 PCIPCI 中断源连接:中断源连接:通过映射到 ISA ( 8259 )中断(3~7 , 9~12 , 14~15 )来实现。

转第 56页

特点:特点: 当 PCI 中断被映射到一个 ISA 的 IRQ 后,该 IRQ不可再被 ISA 设备 ( 通过 SERIRQ 的中断 ) 使用。 PCI 中断可与低电平有效的非 ISA 中断共享同一 IRQ。

7.4 PCI 中断

Page 60: 第 7 章  中断与异常

60

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

实现:实现: 设备 31 的 0 号功能的 60H~63H 、 68H~6BH 的 PIRQ 路由控制寄存器实现 PIRQA#~PIRQH# 与 IRQ 的映射关系。 PIRQ# 路由控制寄存器 [8bit] 存放的是 IRQ 编码。

PCIPCI 中断请求:中断请求: PCI 中断请求必须为低电平触发方式。

不同 PIRQ# 的优先级由 IRQ决定。 同一 PIRQ# 不同设备 INT# 的优先级由安装次序决定。

多个 PIRQ# 信号线能连在同一个 IRQ 上。

PIRQA#PIRQB#PIRQC#PIRQD#

3573

60H~63H60H~63H

8259A8259AIR0

IR3

IR5

IR7

Page 61: 第 7 章  中断与异常

61

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

• PCI 中断响应为单周期单周期响应。• HOST-PCI桥自动将双中断响应周期转换成单中断响

应周期。• 其他中断响应过程与 8259A同,中断类型号通过 H

OST-PCI桥再返回给处理器。• 中断响应周期中可插入等待周期。• 中断服务程序入口地址由中断描述符表或中断向量表

管理。

7.4.2 PCI7.4.2 PCI 中断响应周期中断响应周期

Page 62: 第 7 章  中断与异常

62

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

PCI 中断响应周期

CLK

FRAME#

1 2 3 4 5

AD

C/BE#

IRDY#

TRDY#

无效 向量

0000 BE#s ( 1110)

DEVSEL #

地址期没有地址,隐含的目标设备是系统中断控制器。一般它地址期没有地址,隐含的目标设备是系统中断控制器。一般它负责驱动负责驱动 DEVSEL#DEVSEL# ,也可由,也可由 PCI-ISAPCI-ISA桥进行负向译码。桥进行负向译码。

Page 63: 第 7 章  中断与异常

63

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

• PCI 中断请求信号为漏极开路的。

即:中断向量表中中断向量为同一 PIRQ# 中最后安装的设备的中断服务程序入口地址。

• 同一 PIRQ# 不同设备的优先级最后安装的最高。

• PCI 中断的状态位通过中断服务程序读取,并处理。 同一同一 PIRQ#PIRQ# 中断服务实现方法:中断服务实现方法: 采用链表式处理方法。

方法:方法: PNP配置时将同一 PIRQ# 的原中断向量存放到其设备驱动的特定寄存器后才替换为新的中断向量。

中断向量(描述符)

中断处理程序设备 2

中断处理程序设备 1

^

PIRQA#

7.4.3 PCI7.4.3 PCI 中断共享中断共享

Page 64: 第 7 章  中断与异常

64

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

7.5.1 7.5.1 串行中断结构串行中断结构SIO

LPC47B27X

…IRQx 82801BASERIRQ

CPUINTR

IRQ14,15PIRQx

PIRQx

82801BA

串行中断驱动部件

SERIRQ 串行中断分离部件

2 个 8259部件

INTR

IRQ14,15

7.5 串行中断(自学)

Page 65: 第 7 章  中断与异常

65

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

SERIRQ 线采用同步单线传输结构。遵循 PCI 信号使用的三态协议。• S-S-取样阶段 信号为低电平。取样阶段 信号为低电平。• R-R- 恢复阶段 信号为高电平。恢复阶段 信号为高电平。• T-T-翻转状态 信号被释放翻转状态 信号被释放

SERIRQ包含 IRQ0, 1, 3~15, PIRQA#~PIRQD#, SMI# 和 IOCHK# 。但实际上并不支持 IRQ0、 8 、 13 中断。实际的 IRQ14 、 IRQ15 实际上也不从 SERIRQ 中传到南桥。

SERIRQ 上信息分帧传输。

Page 66: 第 7 章  中断与异常

66

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

1.1. 开始帧开始帧操作模式:操作模式:• 连续的( 82801BA 单独产生开始帧)• 静态的(一个串行 IRQ 设备来启动开始帧)长度:长度: 4 、 6 或 8 个时钟宽度(设备 31 的 0 号功能配置空间的 64H 处串行 IRQ 控制寄存器位 1 和位 0决定 ).2.2. 停止帧停止帧 长度:长度: 2 或 3 个时钟宽度。 ( 由 SERIRQ配置寄存器决定 ) 含义:含义: 2—SERIRQ 设备触发下次开始帧; 3—82801BA 触发下次开始帧。

7.5.2 7.5.2 帧结构帧结构

Page 67: 第 7 章  中断与异常

67

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

3.3. 数据帧数据帧长度:长度: 21 个时钟宽度。驱动:驱动:需请求中断的设备在自己的数据帧中将 SERIRQ驱动:• IRQ0~15 在没有中断请求没有中断请求的时候将 SERIRQ 线驱

动为低电平• PCI INT[A:D]# , SMI#和 IOCHK# 在有中断请有中断请

求求的时候将 SERIRQ 线驱动为低电平• 否则都将 SERIRQ 线变为三态,由上拉电阻将他们驱动到高电平 。

所谓自己的数据帧是指在 21 个时钟中数据帧号和本设备的 IRQ 号码相等那一数据帧。外设要在 SERIRQ的上升沿开始计算帧。

Page 68: 第 7 章  中断与异常

68

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

7.6.1 APIC7.6.1 APIC 子系统组成子系统组成1.1.组成组成

处理器核心Local APIC模块

处理器核心Local APIC模块

I/O APIC 模块

INTIN 23 INTIN 0

系统中断请求

APIC时钟

PICD0PICD1

PICCLK

LINT0/ INTRLINT1/ NMI

处理器 0 处理器 1

LINT0/ INTRLINT1/ NMI

返回下页

Local APIC 、 I/O APIC 和 APIC 总线。

7.6 APIC (自学)

Page 69: 第 7 章  中断与异常

69

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

Local APICLocal APIC :: 包含了 8259A 和 8254 的功能。

转上页

响应的中断:响应的中断: I/O APIC 送来的系统中断请求系统中断请求; 经 APIC 总线送来的处理器间中断请求处理器间中断请求( IPI ); 本地的中断请求本地的中断请求 ( 定时、错误、计数、连线 ) 。 I/O APICI/O APIC :: 多达 24 个中断; 中断优先级与中断号独立; 不需要中断响应周期。 可选择某个或一组处理器中的一个为目标处理器目标处理器。

Page 70: 第 7 章  中断与异常

70

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

APICAPIC 总线:总线: 组成:组成: APICD0 、 APICD1 、 APICCLK 。 类型:类型:串行同步总线。 串行时序:串行时序:不同时钟先高位,后低位;同一时钟 D1高位, D0 低位。 内容:内容: EOI 命令和短消息。 应用:应用:连接的每个模块均有自己的 ID( 固定 ) ; 每个模块均有自己的仲裁仲裁 IDID( 可变,初值来自模块 ID) 。

Page 71: 第 7 章  中断与异常

71

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

2.APIC2.APIC 中断类型中断类型 系统中断:系统中断: 经 I/O APIC模块引脚送入的中断请求。 交中断请求指定的目标处理器处理。 本地中断:本地中断: 定时、计数、错误、 INTR 及 NMI 。 只能由本地处理器处理。 处理器间中断:处理器间中断: 电平撤消初始化、初始化、启动、远程读、 SMI 、NMI 等。 交目标处理器处理。

Page 72: 第 7 章  中断与异常

72

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

1.1. 直接访问寄存器直接访问寄存器 INDR : [R/W] 存放需访问的间接寄存器编号。 DATR : [R/W]间接访问寄存器访问结果。 IRQPAR : [W] 存放置位方式产生的中断向量号。 EOIR : [W] 存放正在服务 ( 将结束 ) 的中断向量号。2.2.间接访问寄存器间接访问寄存器 IDR : [R/W32B] 存放模块自己的固定的 ID 。 VERR : [R32B] 存放有无 IRQ声明和重定向寄存器数。 ARBIDR : [R32B] 存放模块的仲裁 ID 。 BOOT_CONFIGR : [R/W32B] 存放中断传递方式。

7.6.2 I/O APIC7.6.2 I/O APIC 的寄存器的寄存器

Page 73: 第 7 章  中断与异常

73

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

RDR : [R/W64B]索引编号 10H~3FH , 每个 RDR占两个号。

VectorDMDS DtMRIRRTMM目标 APICID L

中断向量传递模式 000— 固定式 001— 最低优先权式 100—NMI 111--ExtINT

目标模式 0—物理方式 1— 逻辑方式递交状态 0—空闲 1—正在递交

目标 APICID 逻辑模式 --8 位 物理模式 -- 低 4 位

屏蔽位 0—允许 1— 屏蔽

中断请求 0— 无 1— 中断未决引脚极性 0— 高电平激活 1— 低电平激活

触发模式 0— 边沿 1— 电平

Page 74: 第 7 章  中断与异常

74

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

1.1. 中断请求产生并递交中断请求产生并递交 收到引脚信号有效改变时,置位 RDR 的 RIRR 位,争取总线使用权争取总线使用权后,向 APIC 总线发送短消息短消息。 目标处理器 (目标模式及传递模式目标模式及传递模式 )已在 RDR 中设定。 边沿触发方式触发方式时,消息传送后将 RDR 的 RIRR 位复位。2.2. 处理器接受中断请求产生并服务处理器接受中断请求产生并服务 目标处理器 ( 可能多个 ) 的 Local APIC收到请求后,根据传递模式,确定本处理器是否命中确定本处理器是否命中。 命中的目标处理器做相应中断处理,当处理器核心执行的代码优先级低于中断请求优先级时处理中断。

7.6.3 APIC7.6.3 APIC 工作过程工作过程

Page 75: 第 7 章  中断与异常

75

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

3.3. 中断结束阶段中断结束阶段 中断为电平触发方式时,发布 EOI 命令通知 I/O APIC 做结束处理。 当前处理器的总线使用权降为最低。

Page 76: 第 7 章  中断与异常

76

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

结构:结构:分布式仲裁。 空闲状态:空闲状态: D1D0=11(某消息结束后 ) 。 仲裁周期:仲裁周期: 5 个时钟周期。

CLK D1 D0 解释1 EOI 0 D1=1: 常规, D1=0:EOI

2 NOT (ARBIDR[27]) 1 仲裁 ID ,如果 82801BA 检测到的值和自己发送的值不一样就失去仲裁资格。

3 NOT (ARBIDR[26]) 1

4 NOT (ARBIDR[25]) 1

5 NOT (ARBIDR[24]) 1

EOIEOI传输优先级高于正常传输。传输优先级高于正常传输。 仲裁算法:仲裁算法:轮转优先级算法。 仲裁得胜者置为 0 ,其余模块一律加 1 。

7.6.4 APIC7.6.4 APIC 总线仲裁总线仲裁

Page 77: 第 7 章  中断与异常

77

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 22版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/

课堂练习看下图完成以下题目:

Y0#

Y7#

A

BC

G2B#

G2A#

G1

1514

13121110

97

123

4

5

6

74LS138

A5

A6

A7

A8

A3

AEN#

8259A

CS#

DB[7..0]

IR5

INTA#

A0 A0

INT

INTA#

INTR

RD#

WR#

IOW#

IOR#

希望该 8259采用电平触发,起始中断类型号是 16 ,总线缓冲方式,全嵌套,非自动 EOI 。现在要求编程用查询中断方式,当 IR5 中断到来的时候,将变量 COME+1 ,当 COME=100 时,程序退出。要求编写与中断相关的程序和中断处理程序(非查询中断方式)

接信号源A9

A4A2

≥1

≥1