28
第7第 第第第第 7.1 第第第第第第 第第是是 CPU 是是是是是是是是 是是是是 / 是是是是是 是是是是是是是是是 CPU 是是是是是是是是是是 是是是是是是是 C PU 是是是是是是是是是 是是是是是是是是是是是 是是是是是是是 ,, 是是是是是是是是是是 是是是是是是是是是是是是是是是是是是 是是是是是是是是 一, 是是是是是

第 7 章 中断技术

  • Upload
    quinto

  • View
    148

  • Download
    2

Embed Size (px)

DESCRIPTION

第 7 章 中断技术. 7.1 中断技术概述 中断: 是指 CPU 在正常执行程序时,由于内部 / 外部事件或程序的预先安排引起 CPU 暂时终止执行现行程序,转而去执行请求 CPU 为其服务的服务程序,待该服务程序执行完毕,又能自动返回到被中断的程序继续执行 。 中断是现代微型计算机系统中广泛采用的一种资源共享技术,具有随机性。. 7.1.1 中断源. 能引起中断的外部设备或内部原因称为中断源。 种类: ( 1 )一般的输入 / 输出设备; ( 2 )实时时钟; ( 3 )故障源; ( 4 )软件中断。. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 7 章  中断技术

第 7 章 中断技术 7.1 中断技术概述 中断:是指 CPU 在正常执行程序时,由于内部 / 外部事件或程序的预先安排引起 CPU暂时终止执行现行程序,转而去执行请求 C

PU 为其服务的服务程序,待该服务程序执行完毕,又能自动返回到被中断的程序继续执行 。 中断是现代微型计算机系统中广泛采用的一种资源共享技术,具有随机性。

Page 2: 第 7 章  中断技术

7.1.1 中断源 能引起中断的外部设备或内部原因称为中断源。 种类: ( 1 )一般的输入 / 输出设备; ( 2 )实时时钟; ( 3 )故障源; ( 4 )软件中断。

Page 3: 第 7 章  中断技术

7.1.2 中断技术的优点 ( 1 )同步操作 ;( 2 )实现实时处理 ;( 3 )故障处理 。7.1.3 中断系统的功能 ( 1 )能实现中断响应、中断服务和中断返回 ;( 2 )能实现中断优先权排队;( 3 )能实现中断嵌套

现行程序

断点

中断服务程序

图 7-1 中断响应、服务和返回

Page 4: 第 7 章  中断技术

7.2 8086 的中断结构 7.2.1 中断类型 8086 采用矢量型的中断结构,共有 256 个中断矢量号,又称中断类型号。中断源按与 CPU 的相对位置关系分为外部中断和内部中断。 1 、内部中断 也称软件中断,是由处理器检测到异常情况或执行软件中断指令所引起的一种中断。内部中断又可分为:( 1 )除法出错中断;( 2 ) INTO 溢出中断;( 3 ) INT n 中断;( 4 )断点中断;( 5 )单步中断。

Page 5: 第 7 章  中断技术

内部中断的特点:    中断矢量号是由 CPU 自动提供的,不需要执行中断响应总线周期去读取矢量号。    除单步中断外,所有内部中断都无法禁止,即都不能通过执行 CLI 指令使 IF 位清零来禁止对它们的响应。    除单步中断外,任何内部中断的优先权都比外部中断高。 8086CPU 的中断优先权顺序为:内部中断(除法出错中断、 INT n 指令中断、 INT

O 溢出中断、断点中断)、 NMI 中断、 INTR中断和单步中断。

Page 6: 第 7 章  中断技术

2 、外部中断 也称硬件中断,是由 CPU 的外部中断请求信号触发的一种中断,分为不可屏蔽中断 NMI 和可屏蔽中断 INTR 。( 1 )不可屏蔽中断 NMI 它不受中断允许标志位 IF 的影响,即使在关中断( IF=0 )的情况下, CPU 也能在当前指令执行完毕后就响应 NMI 上的中断请求。( 2 )可屏蔽中断 INTR CPU 将根据中断允许标志位 IF 的状态决定是否响应。如果 IF=0 , CPU 关中断,将拒绝响应;如果 IF=1 , CPU 开中断,允许响应。

Page 7: 第 7 章  中断技术

7.2.2 中断优先权 1. 识别中断源的方法( 1 )查询中断 查询中断就是用软件查询的方法确定中断源。( 2 )矢量中断 又称向量中断。当 CPU 响应某个中断源的中断请求时,控制逻辑就将该中断源的矢量标志送入 CPU , CPU 根据矢量标志自动指向相应的中断服务程序的入口地址,转入中断服务。 8086CPU 就是以矢量中断的方法实现中断源识别的。

Page 8: 第 7 章  中断技术

2. 中断优先权的确定 ( 1 )用软件查询方法确定中断优先权 采用软件查询中断方式时,中断优先权由查询顺序决定,先查询的中断源具有最高的优先权。 8086 CPU

I NTRM/ I O RD

输入端口

EN

1 A中断 (自 设备)2 B中断 (自 设备)3 C中断 (自 设备)4 D中断 (自 设备)

1≤

≥ 1Yi译码器输出

D7D6D5D4

图 7-2 软件查询方法的接口电路

Page 9: 第 7 章  中断技术

中断入口

保护现场,读中断位状态

是 A 设备? 设备 A 的中断服务程序

是 B 设备? 设备 B 的中断服务程序

是 C 设备? 设备 C 的中断服务程序

Y

Y

Y

N

N

错误出口N

恢复现场、中断返回图 7-3 查询程序流程图

Page 10: 第 7 章  中断技术

优点:电路简单。软件查询的顺序就是中断优先权的顺序,不需要专门的优先权排队电路,可以直接修改软件查询顺序来修改中断优先权,不必更改硬件。缺点:当中断源个数较多时,由逐位检测查询到转入相应的中断服务程序所耗费的时间较长,中断响应速度慢,服务效率低。( 2 )硬件优先权排队电路 又称菊花环式优先权排队电路。它是利用外设连接在排队电路的物理位置来决定其中断优先权的,排在最前面的优先权最高,排在最后面的优先权最低。

Page 11: 第 7 章  中断技术

三态缓冲器

&EN

三态缓冲器

&EN

三态缓冲器

&EN

三态缓冲器

&EN

数据总线

1I NTA( CPU)来自

& A2

& B2

& C2

&

A1

B1

C1

Q中断触发器

Q中断触发器 2

Q中断触发器 3

Q中断触发器 n

1≤I NTR

设备1

设备

设备

设备

图 7-4 链式优先权排队电路

Page 12: 第 7 章  中断技术

7.2.3 中断管理 8086CPU 可管理 256 种中断。每种中断都指定一个中断矢量号,每一种中断矢量号都与一个中断服务程序相对应。中断服务程序的入口地址存放在内存储器的中断矢量表内。 中断矢量表是中断矢量号与它相应的中断服务程序的转换表。 8086 以中断矢量为索引号,从中断矢量表中取得中断服务程序的入口地址。

Page 13: 第 7 章  中断技术

∶ ∶

∶ ∶

除法中断入口

单步中断入口

NMI中断入口

断点中断入口

溢出中断入口

类型 5中断入口

IP

CS

0000H

0004H

0008H

000CH

0010H

0014H

类型 31H中断入口

类型 32H中断入口

00C4H

00C8H

类型 0FFH中断入口 03FCH

图 7-5 8086中断矢量表示意图

专 用

中 断

用 中

用 户

中 断

Page 14: 第 7 章  中断技术

中断矢量表分为三部分:( 1 )专用中断:类型 0~类型 4 ,共有 5种类型。专用中断的中断服务程序的入口地址由系统负责装入,用户不能随意修改。( 2 )备用中断:类型 5 ~类型 3FH,这是 Intel 公司为软、硬件开发保留的中断类型,一般

不允许用户改作其他用途。 ( 3 )用户中断:类型 40H~类型 FFH,为用户可用中断,其中断服务程序的入口地址由用户程序负责装入。

Page 15: 第 7 章  中断技术

7.3 微机系统的中断处理过程 微机系统的中断处理过程如图 7-6 所示,大致可分为中断请求、中断响应、中断处理和中断返回四个过程,这些步骤有的是通过硬件电路完成的,有的是由程序员编写程序来实现的。7.3.1 中断请求 CPU 在每条指令执行结束后去查询有无中断请求信号。若查询到有中断请求,并且在允许响应中断的情况下,系统自动进入中断响应周期,由硬件完成关中断、保存断点、取中断服务程序的入口地址等一系列操作,而后转向中断服务程序执行中断处理。

Page 16: 第 7 章  中断技术

有无

当前指令执行完毕有中断请求否?

关中断保护现场和断点

开中断中断服务

关中断恢复现场开中断

取下一条指令

返回图 7-6 微机系统的中断处理过程

Page 17: 第 7 章  中断技术

7.3.2 中断响应 CPU 接收到外设的中断请求信号时 ,若为非屏蔽中断请求,则 CPU 执行完现行指令后,就立即响应中断。若为可屏蔽中断请求,能否响应中断,还取决于 CPU 的中断允许触发器的状态。只有当其为“ 1” (即允许中断时), CPU才能响应可屏蔽中断:若其为“ 0” (即禁止中断时),即使有可屏蔽中断请求, CPU 也不响应。 CPU 要响应可屏蔽中断请求,必须满足以下三个条件:① 无总线请求;② CPU 允许中断;

③ CPU 执行完现行指令。

Page 18: 第 7 章  中断技术

7.3.3 中断处理 中断处理就是执行中断服务程序中规定的操作,主要包括:( 1 )保护现场:为了不破坏主程序中使用的寄存器的内容,必须用入栈指令 PUSH将有关寄存器的内容入栈保护。 ( 2 )开中断:为了实现中断嵌套,需要安排一条开中断指令,使系统处于开中断状态。( 3 )中断服务: CPU 通过执行中断服务程序,完成对中断情况的处理。

Page 19: 第 7 章  中断技术

7.3.4 中断返回 中断返回是由中断服务程序中的中断返回指令 IRET 来完成的。 中断返回时,要进行以下操作:( 1 )关中断:使现场的恢复工作不被打扰。( 2 )恢复现场:在返回主程序之前要将用户保护的寄存器内容从堆栈中弹出,以便能正确执行主程序。恢复现场用 POP 指令,要注意弹出时的顺序与入栈的顺序正好相反。( 3 )开中断:使 CPU 能继续接收中断请求。

Page 20: 第 7 章  中断技术

7.4 可编程中断控制器 8259A 及其应用 8259A 可编程中断控制器的主要功能为: 具有 8级中断优先权控制,通过级联方式可扩展到 64级中断优先权控制;  每一级中断都可以屏蔽或允许; 在中断响应周期, 8259A 可提供相应的中断类型码; 8259A 有多种中断管理方式,可通过编程来进行选择。

Page 21: 第 7 章  中断技术

7.4.1 8259A 的内部结构及引脚 数据总线缓冲器

/读 写逻辑

级连缓/冲 比较器

中断服务寄存器

I SR)(

中断请求寄存器( I RR)

优先权电路

I R7

I R0I R1I R2I R3I R4I R5I R6

I MR中断屏蔽寄存器( )

D7-D0 控 制 逻 辑

CAS0CAS1CAS2

SP/ EN

RDWR

CS

A0

内部总线I NTA I NT

Page 22: 第 7 章  中断技术

7.4.2 8259A 的中断管理方式 1 、中断优先权管理 ( 1 )一般完全嵌套方式 ( 2 )自动循环方式 ( 3 )中断屏蔽方式    ◆ 普通屏蔽方式    ◆ 特殊屏蔽方式 ( 4 )特殊完全嵌套方式

Page 23: 第 7 章  中断技术

2 、中断结束的管理 ( 1 )一般完全嵌套情况 ◆ 一般 EOI 方式 ◆ 指定 EOI 方式 ◆ 自动 EOI 方式( 2 )自动循环方式 ◆ 不指定的 EOI 方式 ◆ 指定 EOI 方式 ◆ 自动 EOI 方式 ( 3 )特殊完全嵌套情况

Page 24: 第 7 章  中断技术

3 、连接系统总线的方式 ( 1 )缓冲方式 在多片 8259A级联的大系统中, 8259A通过总线驱动器与系统数据总线相连,这就是缓冲方式。 ( 2 )非缓冲方式 当系统中只有单片 8259A时,一般要将它直接与数据总线相连;在一些不太大的系统中,即使有几片 8259A工作在级联方式,只要片数不多,也可以将 8259A直接于数据总线相连。 4 、 8259A 的中断响应过程

Page 25: 第 7 章  中断技术

7.4.3 8259A 的编程 8259A 的编程包括两类:一类是初始化编程,由初始化命令字 ICW1~ICW4 对 8259A进行初始设置;另一类是操作方式编程,用来规定 8259A的工作方式,由操作命令字 OCW1~OCW3 设置。1 、初始化编程 在 8259A开始工作之前,必须用初始化命令字建立 8259A操作的初始状态,它们必须按照一定的顺序输入,如图 7-10 所示。

Page 26: 第 7 章  中断技术

Y

Y

N

ICW1(A0=0,D4=1)

ICW1(A0=0,D4=1)

ICW3(A0=1)

需要 ICW4吗?

单片 8259A?

ICW4(A0=1)

N

图 7-10 8259A初始化流程图

Page 27: 第 7 章  中断技术

( 1 ) ICWl— 芯片控制初始化命令字 ( 2 ) ICW2— 中断类型码初始化命令字 ( 3 ) ICW3— 主 / 从片初始化命令字 ( 4 ) ICW4— 方式控制初始化命令2 、操作控制字的编程 ( 1 ) OCW1— 中断屏蔽操作命令字 ( 2 ) OCW2— 控制中断结束和优先权循环的操作命令字 ( 3 ) OCW3— 中断屏蔽、查询和读寄存器状态操作命令字3 、 8259A 编程举例

Page 28: 第 7 章  中断技术

THANK YOU VERY MUCH本章到此结束,谢谢您的光临!