1 / 106

补充:中断技术概述

补充:中断技术概述. 中断定义: 所谓中断,是指 CPU 在运行程序时,由于 内部/外部事件或由程序事先 安排引起 CPU 中断当前正在运行的程序,而 转到 预先安排的事件处理程序中去。 服务完毕,再返回继续执行 被暂时中止的程序。. 中断返回. 中断请求. 中断响应. 中断服务. 中断处理. 中断过程:. 中断处理的隐操作: 程序状态及断点地址的进栈及出栈。. 中断技术的优点 :. 提高 CPU 效率 提高微机系统 实时处理与控制 能力 提高系统可靠性. 中断源: 能引起中断的外部事件或内部原因 的部件

earl
Download Presentation

补充:中断技术概述

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. 补充:中断技术概述 中断定义: 所谓中断,是指CPU在运行程序时,由于内部/外部事件或由程序事先安排引起CPU中断当前正在运行的程序,而转到预先安排的事件处理程序中去。服务完毕,再返回继续执行被暂时中止的程序。

  2. 中断返回 中断请求 中断响应 中断服务 中断处理 中断过程: 中断处理的隐操作:程序状态及断点地址的进栈及出栈。

  3. 中断技术的优点: • 提高CPU效率 • 提高微机系统实时处理与控制能力 • 提高系统可靠性

  4. 中断源:能引起中断的外部事件或内部原因 的部件 如键盘、时钟、故障源和运算异常等等 • 中断系统:为实现中断而设置的软硬件系统。 • 中断系统的功能:能完成中断过程、实现优先权排队、实现中断嵌套

  5. 4.4.3中断操作(P99) • 8086的中断系统采用向量中断机制 • 能够处理256个中断 • 用中断类型号0~255区别 1 8086/8088的中断分类 硬件中断 (非屏蔽中断和可屏蔽中断) 软件中断(中断指令和内部中断)

  6. 非屏蔽中断 • 通过非屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应,这个中断被称为非屏蔽中断 • 8088的非屏蔽中断的类型号为2,非屏蔽中断请求信号为NMI • 非屏蔽中断主要用于处理系统的意外或故障。例如: • 电源调电时的数据保护 • 存储器读写错误的处理

  7. 可屏蔽中断 • 外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断 • 8086的可屏蔽中断请求和响应信号分别是INTR和INTA#;由IF标志控制可屏蔽中断是否允许响应;类型号来自外部中断控制器8259A • 8086通常需要配合中断控制器8259A共同处理可屏蔽中断 • 可屏蔽中断主要用于主机与外设交换数据 IF控制可屏蔽中断的响应

  8. 指令中断 • 在执行中断调用指令INT n时产生的一个类型号为n(0 ~ 255)的内部中断,称为指令中断

  9. 除法错中断 • 在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生一个类型号为0的内部中断,称为除法错中断 例如: mov bl,0 idiv bl ;除数BL=0,产生除法错中断 mov ax,200h mov bl,1 div bl ;商=200H,不能用AL表达 ;产生除法错中断

  10. 单步中断 • 若单步中断标志TF为1,则在每条指令执行结束后产生一个类型号为1的内部中断,称为单步中断 例如:DEBUG.EXE调试程序的单步命令T就利用单步中断实现对程序的单步调试 -T=200 6

  11. 断点中断(INT 3) • 其中类型号为3的内部中断比较特别(生成一个字节的指令代码:11001100),常用于程序调试,被称为断点中断 例如:DEBUG.EXE调试程序的运行命令G设置的断点,就是利用INT 3指令实现的 -G=100 120

  12. 溢出中断(有符号数加减运算) • 在执行溢出中断指令INTO时,若溢出标志OF为1,则产生一个类型号为4的内部中断,被称为溢出中断 例如: mov ax,2000h add ax, 7000h ;2000H+7000H=9000H,溢出:OF=1 into ;因为OF=1,所以产生溢出中断

  13. 8086/8088的中断分类 :

  14. 2 中断向量和中断向量表 • 中断向量:中断服务程序的入口地址(首地址) • 逻辑地址含有段地址CS和偏移地址IP(32位) • 每个中断向量的低字是偏移地址IP、高字是段地址CS,需占用4个字节 • 8086微处理器从物理地址00000H开始,依次安排各个中断向量,类型号也从0开始 • 256个中断占用1KB区域,就形成中断向量表 类型号为N的中断向量的 物理地址=N×4

  15. 例:中断类型号为10的中断处理子程序存放在1234H:5678H开始的内存区域中,求中断向量地址及其每个单元中所存放的数值。例:中断类型号为10的中断处理子程序存放在1234H:5678H开始的内存区域中,求中断向量地址及其每个单元中所存放的数值。 • 10×4=40=28H • 求得中断向量物理地址是00028H~0002BH • 按8086存储原则,从00028H~0002BH的每个单元中分别存放78H、56H、34H、12H

  16. 4 硬件中断的响应和时序 可屏蔽中断的响应过程 : ①读取中断类型码 ②将标志寄存器FR的值推入堆栈(IF=?) ③把标志寄存器的IF和TF清零 ④将断点保护到堆栈中。(CS:IP) ⑤寻找中断向量,转入中断处理程序

  17. 中断响应流程图

  18. 说明: • 在执行中断服务程序时出现NMI信号,仍然能响应 • 中断响应延迟一指令周期再响应的情况:出现LOCK前缀封锁总线或正执行往段地址寄存器送值的指令,如:MOV SS,AX • 在遇到等待指令WAIT或串操作指令(MOVSB/STOSB/LODSB等)时,可以响应,但要等一个操作完成且必须注意保护现场,以免返回后无法正确执行

  19. 8086的中断响应总线周期 :

  20. 中断响应用2个总线周期 第1个总线周期,通知外设,CPU准备响应中断; 第2个总线周期,外设发送中断类型码

  21. 可屏蔽中断实际总线时序 ①读取中断类型码( 2 ) ②将标志寄存器FR的值推入堆栈( 1 ) ③把标志寄存器的IF和TF清零( 0 ) ④将断点保护到堆栈中( 2 ) ⑤寻找中断向量,转入中断处理程序( 2 )

  22. 5 中断处理子程序 ① 进一步保护中断现场 ② 开放中断(原因) ③ 中断处理的具体内容 ④ 弹出堆栈指令 ⑤中断返回指令(? ) IRET

  23. 6 软件中断 特点: ① 用一条指令进入中断处理子程序,并且,中断类型码由指令提供。(INT n) ② 不执行中断响应总线周期,也不从数据总线读取中断类型码。 ③ 不受中断允许标志IF的影响 ④ 执行过程中可响应外部硬件中断 ⑤软件中断没有随机性,主、服程序之间存在参数传递

  24. 9.1 中断控制器8259A • 9.1.0 8259A的功能和特点 • 9.1.1 8259A的内部结构 • 9.1.2 8259A的工作方式 • 9.1.3 8259A的初始化命令字和操作命令字 • 9.1.4 8259A使用举例 • 9.1.5 8259A芯片的级联使用

  25. 1.功能: (1)对中断请求接收、优先级排队、最高级中断送CPU; (2)中断得到响应后,负责判断是否进行中断嵌套。 2.特点: (1)能管理8级中断,或1主8从的64级中断; (2)可编程;

  26. INTA 控制部件 INT D7~D0 数据 总线 缓冲器 RD 中断服务寄存器 优先权判别器 中断请求寄存器 IR0 WR 读/写 控制 逻辑 A0 CS IR7 CAS0 级联 缓冲器 比较器 CSA1 CAS2 中断屏蔽寄存器 SP/EN 9.1.1 8259A的内部结构

  27. 1.数据总线缓冲器 • D0~D7接数据总线低8位(AD0~AD7) • 接收命令字(8位) • 输出中断类型码(8位)、查询字(8位)和相关寄存器的状态(8位)

  28. 2. 读/写控制电路 • A0指出8259内部的端口地址,分2个,且奇地址>偶地址;(A0接8086地址总线哪根?接8088哪根?)

  29. 3. 级联缓冲/比较器 • CAS2~CAS0用于指出8个从片的地址; • SP#/EN#可用于输入/输出,输入(SP#)决定主(1)/从片(0),输出(EN#)启动总线驱动器8286(缓冲器)工作(见P89图4-12)。

  30. 4. 中断请求寄存器IRR • 8位寄存器,可锁存由外部输入的中断请求信号IR7~IR0 5. 中断服务寄存器ISR • 8位寄存器,用来记录正在处理中的中断请求

  31. 6. 中断屏蔽寄存器IMR 8位寄存器,用来存放对各级中断请求的屏蔽信息。 7. 优先权判别器PR 多个中断同时产生,判断优先响应哪个 出现多重中断,判断是否打断当前中断操作

  32. 8. 控制部件 • 输出中断请求信号INT至CPU • INTA#接收来自CPU的中断应答信号,应为2个负脉冲才有效;

  33. 控制部件组成 控制部件

  34. 控制部件(7个寄存器) • ICW1~ICW4(用于初始化,一般工作过程中不再改变) • OCW1~OCW3(用于中断处理的动态控制,可多次修改)

  35. CPU中断响应之后8259的动作: • 1)第一个负脉冲:IRR锁存失效,ISR相应位置1,IRR相应位清0; • 2)第二个负脉冲:送出中断类型码;若是中断自动结束方式,则ISR相应位清0。

  36. 9.1.2 8259A的工作方式 1. 设置优先级的方式(4) 2 . 屏蔽中断源的方式(2) 3. 结束中断处理的方式(3) 4 . 连接系统总线的方式(2) 5 . 引入中断请求的方式(3)

  37. 1. 设置优先级的方式 • (1)全嵌套方式:(默认方式) • 0级最高,只进行高级中断嵌套。PR比较ISR与IRR中优先级高低决定是否中断嵌套。

  38. 8级中断嵌套过程

  39. (2)特殊全嵌套方式:(级联系统) • 0级最高,但同级中断也会响应、嵌套。级联系统中的主片必须使用该方式,保证来自同一从片但不同优先级的中断请求能被响应;但该方式又不适合在中断请求频繁的场合下使用。

  40. (3)普通循环方式:(优先级相同的系统) • 设备中断请求被响应并执行中断服务程序后,其优先级自动降为最低,原先低一级中断成为最高优先级。但该方式开始总是IR0优先级最高。

  41. 普通循环方式举例

  42. (4)特殊循环方式:(优先级相同的系统) • 与普通循环方式唯一不同是一开始的最低、最高优先级由程序确定,而非IR0。

  43. 特殊循环方式举例

  44. 2 . 屏蔽中断源的方式 • (1)普通屏蔽方式:(不能改变ISR相应位的值) • 通过OCW1即IMR设置,使相应的标志位为1即屏蔽。但注意屏蔽一般只能是暂时的,例如,计算机网络通信时,接收中断优先级较高,发送时先屏蔽,发送完要解除,以免接收无法进行。

  45. (2)特殊屏蔽方式:(能改变ISR相应位的值)(2)特殊屏蔽方式:(能改变ISR相应位的值) • 通过OCW3设置,用于中断服务程序中仅对本级中断进行屏蔽。对IMR置1的同时使ISR的相应位清0,使得低和高级中断都能被响应。

  46. 屏蔽中断源方式举例

  47. 3. 结束中断处理的方式 • 必要性:中断服务程序结束后,要使相应ISn清0,否则,低级或同级的中断再就不可能被响应,导致中断系统功能异常。 • 区别:就是使ISn清零的方法不同。

  48. (1)中断自动结束(AEOI)方式:(适用于只有1片8259且中断不嵌套)(1)中断自动结束(AEOI)方式:(适用于只有1片8259且中断不嵌套) • ICW4中的AEOI位设置,CPU响应中断即自动清0相应的ISn,在INTA#的第二个负脉冲时完成。

  49. (2)一般中断结束(EOI)方式:(适用于全嵌套方式,即知道优先级的情况下)(2)一般中断结束(EOI)方式:(适用于全嵌套方式,即知道优先级的情况下) • CPU发一般中断结束命令(OCW2中EOI为1,SL为0),使8259当前ISR中最高的非零IS位复位

More Related