•1)屏蔽触发器和屏蔽字:程序中断接口电路中,完成触发器D,中断请求触发器INTR和屏蔽触发器MASK。
在程序中断接口电路中,有三个重要的组成部分:完成触发器D,中断请求触发器INTR和屏蔽触发器MASK。这些组件都扮演着各自的角色,以实现程序中断处理的功能。
完成触发器D:当设备工作完成时,会将D置为1,这表示中断源已经准备好向CPU发送中断请求。
中断请求触发器INTR:当设备发出中断请求时,INTR会被置为1。这个触发器是用来向CPU发送中断请求的。
屏蔽触发器MASK:每个中断源都有一个与之对应的屏蔽触发器,如果该中断源被屏蔽(即MASK=1),那么即使INTR被置为1,CPU也不会响应这个中断请求。换句话说,屏蔽触发器可以阻止特定的中断源向CPU发送中断请求。
所有的屏蔽触发器组合在一起,构成了屏蔽寄存器。
•当中断源被屏蔽时(MASK=1),此时即使D=1,中断查询信号到来时刻只能将INTR置“0”,CPU接收不到该中断源的中断请求,即它被屏蔽。
•若该中断源未被屏蔽(MASK=0),当设备工作已完成时(D=1),中断查询信号则将INTR置“1”,表示该中断源向CPU发出中断请求,
•该信号送至排队器进行优先级判断。显然,对于每个中断请求触发器就有一个屏蔽触发器,将所有屏蔽触发器组合在一起,便构成了一个屏蔽寄存器。屏蔽寄存器的内容称为屏蔽字。屏蔽字与中断源的优先级是一一对应的。
•2)屏蔽技术可改变优先等级:严格地说,优先级包含响应优先级和处理优先级。响应优先级是指CPU响应各中断源请求的优先次序,这种次序往往是硬件线路已设置好的,不便于改动。
处理优先级是指CPU实际对各中断源请求的处理优先次序。如果不采用屏蔽技术,响应的优先次序就是处理的优先次序。采用了屏蔽技术后,可以改变CPU处理各中断源的优先等级,从而改变CPU执行程序的轨迹。
例如,A、B、C、D 这4个中断源的优先级别按A-》B-》C-》D降序排列,根据这一次序,CPU执行程序的轨迹如下图所示。当4个中断源同时提出
在不改变CPU响应中断的次序下,通过改变屏蔽字可以改变CPU处理中断的次序。例如,更改上述4个中断源的屏蔽字将其处理次序更改为:
CPU在运行程序的过程中,若A、B、C、D4个中断源同时提出请求,按照中断级别的高低,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程序做完后,回到主程序。
在中断处理过程中,CPU首先会检查INTR,如果INTR为1,那么CPU会进一步检查对应的屏蔽触发器(MASK),如果MASK也为1,那么该中断源的中断请求会被屏蔽,CPU不会响应;如果MASK为0,那么CPU会响应这个中断请求,转去执行对应的中断服务程序。
这个过程是自动进行的,不需要程序员明确地编写相关的指令。在硬件设计中,程序员需要根据实际需求来设置INTR、D和MASK的值,以实现正确的中断处理。
全部0条评论
快来发表一下你的评论吧 !