中断屏蔽技术

解读:
- 假设有四个设别 1234,若中断请求触发器 MASK 的值为 1111,那么当 1 号设备进行工作的时候,就不允许被任何设备(234)中断,包括它自己;
- 对于 2 号设备,若 MASK 值为 0110,那么对于 2 号设备,就可以被 1 和 4 号设备打断;

例子
例如,A、B、C、D 这4个中断源的优先级别按A->B->C->D降序排列,根据这一次序,CPU执行程序的轨迹如下图所示。当4个中断源同时提出
请求时,处理次序与响应次序一致。
-- 在不改变CPU响应中断的次序下,通过改变屏蔽字可以改变CPU处理中断的次序。例如,更改上述4个中断源的屏蔽字将其处理次序更改为:
A->D->C->B。如下表,表中原屏蔽字对应A->B->C->D的响应顺序,新屏蔽字对应A->D->C->B的处理顺序。
在同样中断请求的情况下,CPU执行程序的轨迹发生了变化,如下图:
-- CPU在运行程序的过程中,若A、B、C、D 4个中断源同时提出请求,按照中断级别的高低,CPU首先响应并处理A中断源的请求,由于A的
屏蔽字是1111,屏蔽了所有的中断源,故A程序可以全部执行完,然后回到主程序。由于B、C、D的中断请求还未响应,而B的响应优先级高于
其他,所以CPU响应B的请求,进入B的中断服务程序。在B的服务程序中,由于设置了新的屏蔽字0100,即A、C、D可打断B,而A程序已执行
完,C的响应优先级高于D,于是CPU响应C,进入C的服务程序。在C的服务程序中,由于设置了的屏蔽字0110,即A、D可打断C,A已执行
于是CPU响应D,执行D的中断服务程序。D一直做完后回到C程序,C程序执行完后,回到B程序。B程序做完后,回到主程序。