中断屏蔽技术

image.png

解读:

例子

例如,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程序做完后,回到主程序。