T23 外部中断流程与保存内容
- 中断请求产生:设备或 CPU 内部事件发出中断信号。
- CPU 响应中断:
- 当前指令执行完毕后,CPU 检测并接受中断(如果优先级允许)。
- 硬件自动处理(中断隐指令):
- 将当前 PC和PSW自动保存到栈中。
- 根据中断类型,从中断向量表获取并设置PC 指向中断服务程序(ISR)入口。
- 将特权级自动切换到内核态。
- (可能)自动屏蔽同一或更低优先级中断。
- 中断服务程序(ISR)执行:
- 软件保存剩余上下文:ISR 负责将所有通用寄存器等保存到栈中。
- 清除中断源:向中断设备发送确认信号,清除设备中断标志。
- 执行中断处理逻辑:处理导致中断的事件(如 I/O 数据传输、计时器更新等)。
- (可能)唤醒等待该事件的进程。
- 中断返回:
- 软件恢复上下文:ISR 从栈中恢复之前保存的所有通用寄存器。
- 执行中断返回指令(如
IRET)。 - 硬件恢复关键上下文:
IRET指令自动从栈中恢复之前保存的PC 和 PSW。 - 恢复特权级和中断状态:根据恢复的 PSW,CPU 恢复到中断前的特权级和中断使能状态。
- 程序恢复执行:被中断的程序从中断点处继续执行。