12-中断系统
一、概述
-
引起中断的各种因素
1) 人为设置的中断
如 转管指令
2) 程序性事故
溢出、操作码不能识别、除法非法操作
3) 硬件故障
4) I/O设备
5) 外部事件 用键盘中断 现行程序 -
中断系统需解决的问题
1)各中断源如何向CPU提出请求?
2)各中断源同时提出请求怎么办?
3)CPU什么条件、什么时间、以什么方式响应中断?
4)如何保护现场?
5)如何寻找入口地址?
6)如何恢复现场,如何返回?
7)处理中断的过程中又出现新的中断怎么办?
硬件+软件
二、中断请求标记和中断判优逻辑
- 中断请求标记 INTR
一个请求源 有一个INTR中断请求标记触发器
多个INTR 组成中断请求标记寄存器
INTR 分散在各个中断源的接口电路中 - 中断判优逻辑
1)硬件实现(排队器)- 分散在各个中断源的接口电路中 链式排队器
- 集中在cpu内
2)软件实现(程序查询)
三、中断服务程序入口地址的寻找
如何找到中断服务程序的入口地址?知道了要响应的中断源,才能确定要执行哪个中断服务程序
- 硬件向量法
向量形成部件,输入是排队器的输出,输出是中断向量的地址,地址中存放的是中断程序的入口地址 - 软件查询法
如果是0跳转,如果是1转下一个优先级的中断信号
四、中断响应
- 响应中断的条件
允许中断触发器 EINT=1 - 响应中断的时间
指令执行周期结束时刻由CPU发查询信号 - 中断隐指令:操作由计算机完成,并不是由某一条指令驱动,而是在执行程序过程中隐含的完成的一些操作
1)保护程序的断点 断点保存于特定地址(0号地址)内,断点进栈
2)寻找服务程序入口地址
向量地址->PC(硬件向量法)
中断识别程序 入口地址 M->PC(软件查询法)
3)硬件关中断
INT 中断标记
EINT 允许中断
R-S 触发器
五、保存现场和恢复现场
- 保护现场
- 断点 中断隐指令完成
- 寄存器内容 中断服务程序完成
- 恢复现场 中断服务程序完成
中断服务程序
保护现场 PUSH
其他服务程序 视不同请求源而定
恢复现场 POP
中断返回 IRET
六、多重中断
-
多重中断的概念
-
实现多重中断的条件
1)提前设置开中断指令
2)优先级别高的中断源有权中断优先级别低的中断源 -
屏蔽技术
1)屏蔽触发器的作用
2)屏蔽字
3)屏蔽技术可以改变处理优先等级
响应优先级 不可改变
处理优先级 可改变(通过重新设置屏蔽字)
4)屏蔽技术的其他作用
可以人为地屏蔽某个中断源的请求
5)新屏蔽字的设置
保护现场->置屏蔽字->开中断->中断服务->关中断->恢复现场->恢复屏蔽字->开中断->中断返回 -
多重断点的断点保护
1)断点进栈 中断隐指令完成
2)断点存入“0”地址 中断隐指令完成
3)程序断电存入“0”地址的断点保护