书P357中断响应过程6点(1,2,3,4,5,6) 冷其中,前2项一般由硬件(处理器内部)完成;而后4 项一般是由软件(由程序设计者编写的中断服务程序) 来完成,即整个中断响应和处理过程是由CPU内部 的有关硬件和中断处理软件密切配合,共同完成的。 针对一个具体的系统(机型),中断服务程序设 计者应该清楚在中断响应时,“硬件”完成了 哪些操作(如FR是否已被压入堆栈),还需要 软件”(中断服务程序)完成哪些操作
11 ❖ 书P357中断响应过程6点(1,2,3,4,5,6) ❖其中,前2项一般由硬件(处理器内部)完成;而后4 项一般是由软件(由程序设计者编写的中断服务程序) 来完成,即整个中断响应和处理过程是由CPU内部 的有关硬件和中断处理软件密切配合,共同完成的。 ❖ 针对一个具体的系统(机型),中断服务程序设 计者应该清楚在中断响应时,“硬件”完成了 哪些操作(如FR是否已被压入堆栈),还需要 “软件”(中断服务程序)完成哪些操作
中断优先级和中断嵌套 冷中断优先级( Priority)的解决方法 系统中多个中断请求可能同时出现,CPU只能按 定的次序(优先级策略)予以响应和处理,这个 响应的次序称为中断优先级。 般的方法有 冷软件查询法——程序査询识别(需要少量硬件) 冷硬件查询法——菊花链( daisy chain)优先级排队电路 冷中断向量法识别采用可编程中断控制器(如8259)
12 中断优先级和中断嵌套 ❖ 中断优先级(Priority)的解决方法 ❖系统中多个中断请求可能同时出现,CPU只能按 一定的次序(优先级策略)予以响应和处理,这个 响应的次序称为中断优先级。 ❖一般的方法有: ❖软件查询法——程序查询识别(需要少量硬件) ❖硬件查询法——菊花链(daisy chain)优先级排队电路 ❖中断向量法识别——采用可编程中断控制器(如8259)
设中断 DO CPU INTRI D INTR2 标志 INTR INTR3 外设中断请求 D7 intr (a)单线中断 (b)多级中断 (c)矢量中断 微处理器的3种中断技术示意图 13
13 微处理器的3种中断技术示意图 外设中断请求 外设提供 1# 1# 设备 2# 2# 标志码 3# 3# 外设中断请求 外设中断请求 (a)单线中断 (b)多级中断 (c)矢量中断 CPU INTR INTR1 INTR2 INTR3 CPU D0 D1 . . CPU . D7 INTR
INT (1)软件查询法 →“需 端口号 XXH 磁磁 CRT 键打 盘带 盘印 把各个外设的中断请求信号“相或”,产生一个总的INT 信号 当CPU响应中断后,进入中断处理程序,在中断处理程序 的开始部分安排一段带有优先级的查询程序。 令优点:省硬件 ☆缺点:中断响应慢
14 (1) 软件查询法 ❖ 把各个外设的中断请求信号“相或”,产生一个总的INT 信号 ❖ 当CPU响应中断后,进入中断处理程序,在中断处理程序 的开始部分安排一段带有优先级的查询程序。 ❖ 优点:省硬件 ❖ 缺点:中断响应慢 2 1 0 7 6 INT 磁 盘 磁 带 CRT 键 盘 打 印 “或” 端口号= XXH
中断处理入口 保护现场 检查IRQ1的中断状态是否为“1” IRQ1的服务程序 N 检查IRQ2的中断状态是否为“1” IRQ2的服务程序 N 程序查询识别中断方法 检查IRQ3的中断状态是否为“1” IRQ3的服务程序 N 恢复现场 中断返回
15 程 序 查 询 识 别 中 断 方 法 Y Y Y N N N 保护现场 检查 IRQ1 的中断状态是否为“1” 检查 IRQ2 的中断状态是否为“1” 检查 IRQ3 的中断状态是否为“1” IRQ1 的服务程序 IRQ2 的服务程序 IRQ3 的服务程序 恢复现场 中断返回 中断处理入口