1.中断的基本概念
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
非屏蔽中断:关中断时也会被响应(如:掉电)
可屏蔽中断:关中断时不会被响应
2.中断请求标记(如何判断是哪个设备发来的中断信号?)
每个中断源向CPU发出中断请求的时间是随机的。
为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR,当其状态为“1"时,表示中断源有请求。
这些触发器可组成中断请求标记寄存器,该寄存器可集中在cPU中,也可分散在各个中断源中。
对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/o的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。
CPU响应中断必须满足以下3个条件:
①中断源有中断请求。
②CPU允许中断即开中断。
③一条指令执行完毕,且没有更紧迫的任务。
3.中断判优
优先级设置
1硬件故障中断属于最高级,其次是软件中断;
2.非屏蔽中断优于可屏蔽中断;
3.DMA请求优于I/o设备传送的中断请求
4.高速设备优于低速设备;
5.输入设备优于输出设备;
6.实时设备优于普通设备。
4.中断处理过程
4.1中断隐指令
中断隐指令:保存原程序的PC值,并让PC指向中断服务程序的第一条指令
4.1.1硬件向量法
4.1.2软件查询法
4.2中断服务程序
5.多重中断
单重中断:执行中断服务程序时不响应新的中断请求。
多重中断:又称中断嵌套,执行中断服务程序时可响应新的中断请求。