1、4.5 中断系统中断系统一、概述一、概述1. 引起中断的各种因素(1) 人为设置的中断(2) 程序性事故如 转管指令溢出、操作码不能识别、除法非法(5) 外部事件(4) I/O 设备(3) 硬件故障用 键盘中断 现行程序转管指令 管理程序2. 中断系统需解决的问题(1) 各中断源 如何 向 CPU 提出请求 ?(2) 各中断源 同时 提出 请求 怎么办 ?(5) 如何 寻找入口地址 ?(4) 如何 保护现场 ?(3) CPU 什么 条件 、什么 时间 、 以什么 方式响应中断 ?(6) 如何 恢复现场 ,如何 返回 ?(7) 处理中断的过程中又 出现新的中断 怎么办 ?硬件 软件二、中断请求标
2、记和中断判优逻辑二、中断请求标记和中断判优逻辑1. 中断请求标记 INTR一个请求源 一个 INTR 中断请求标记触发器多个 INTR 组成 中断请求标记寄存器INTR 分散 在各个中断源的 接口电路中INTR 集中 在 CPU 的中断系统 内1 2 3 4 5 n掉电 过热 阶上溢主存读写校验错 非法除法 键盘输入 打印机输出2. 中断判优逻辑 分散 在各个中断源的 接口电路中 链式排队器 集中 在 CPU 内(1) 硬件实现(排队器)111&1&1&INTR1 INTR2 INTR3 INTR4INTR1 、 INTR2 、 INTR3 、 INTR4 优先级 按 降序 排列INTP1 I
3、NTP2 INTP3 INTP4A、 B、 C 优先级按 降序 排列(2) 软件实现(程序查询)否是否 A 请求?是否 B 请求?是否 C 请求?转 A 的服务程序入口地址转 B 的服务程序入口地址转 C 的服务程序入口地址是是是否否三、中断服务程序入口地址的寻找三、中断服务程序入口地址的寻找1. 硬件向量法入口地址 200入口地址 300入口地址 40012 H13 H14 H主存12 H13 H14 HJMP 200JMP 300JMP 400主存向量地址形成部件中断向量排队器输出向量地址 12H、 13H、 14H入口地址 200、 300、 4002. 软件查询法四、中断响应四、中断响
4、应1. 响应中断的 条件允许中断触发器 EINT = 12. 响应中断的 时间指令执行周期结束时刻由 CPU 发查询信号CPU中断查询INTR1DQINTR2DQINTRnDQ中断源 1 中断源 2 中断源 n至排队器3. 中断隐指令(1) 保护程序断点(2) 寻找服务程序入口地址(3) 硬件 关中断向量地址形成部件INTSQREINTSQRPC1 &1排队器断点存于 特定地址 ( 0 号地址) 内 断点 进栈INT 中断标记EINT 允许中断R S 触发器向量地址 PC (硬件向量法)中断识别程序 入口地址 M PC (软件查询法)五、保护现场和恢复现场五、保护现场和恢复现场1. 保护现场2. 恢复现场寄存器 内容断点保护现场其它服务程序恢复现场中断返回PUSH视不同请求源而定POP中断服务程序 完成中断服务程序中断隐指令 完成中断服务程序 完成IRET1. 多重中断的概念k l mk +1 l +1 m +1第一次中断第二次中断第三次中断程序断点 k+1 , l+1 , m+1六、中断屏蔽技术六、中断屏蔽技术