1 / 28

第 7 章 中断技术

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

quinto
Télécharger la présentation

第 7 章 中断技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第7章 中断技术 7.1 中断技术概述 中断:是指CPU在正常执行程序时,由于内部/外部事件或程序的预先安排引起CPU暂时终止执行现行程序,转而去执行请求CPU为其服务的服务程序,待该服务程序执行完毕,又能自动返回到被中断的程序继续执行 。 中断是现代微型计算机系统中广泛采用的一种资源共享技术,具有随机性。

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

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

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

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

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

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

  8. 2. 中断优先权的确定 (1)用软件查询方法确定中断优先权 采用软件查询中断方式时,中断优先权由查 询顺序决定,先查询的中断源具有最高的优先权。 图7-2 软件查询方法的接口电路

  9. 是A设备? 是C设备? 是B设备? 中断入口 保护现场,读中断位状态 Y 设备A的中断服务程序 N Y 设备B的中断服务程序 N Y 设备C的中断服务程序 N 错误出口 恢复现场、中断返回 图7-3 查询程序流程图

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

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

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

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

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

  15. 当前指令执行完毕 无 取下一条指令 有中断请求否? 有 关中断 保护现场和断点 开中断 中断服务 关中断 恢复现场 开中断 返回 图7-6 微机系统的中断处理过程

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

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

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

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

  20. 7.4.1 8259A的内部结构及引脚

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

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

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

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

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

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

More Related