?1)屏蔽觸發(fā)器和屏蔽字:程序中斷接口電路中,完成觸發(fā)器D,中斷請(qǐng)求觸發(fā)器INTR和屏蔽觸發(fā)器MASK。
在程序中斷接口電路中,有三個(gè)重要的組成部分:完成觸發(fā)器D,中斷請(qǐng)求觸發(fā)器INTR和屏蔽觸發(fā)器MASK。這些組件都扮演著各自的角色,以實(shí)現(xiàn)程序中斷處理的功能。
完成觸發(fā)器D:當(dāng)設(shè)備工作完成時(shí),會(huì)將D置為1,這表示中斷源已經(jīng)準(zhǔn)備好向CPU發(fā)送中斷請(qǐng)求。
中斷請(qǐng)求觸發(fā)器INTR:當(dāng)設(shè)備發(fā)出中斷請(qǐng)求時(shí),INTR會(huì)被置為1。這個(gè)觸發(fā)器是用來(lái)向CPU發(fā)送中斷請(qǐng)求的。
屏蔽觸發(fā)器MASK:每個(gè)中斷源都有一個(gè)與之對(duì)應(yīng)的屏蔽觸發(fā)器,如果該中斷源被屏蔽(即MASK=1),那么即使INTR被置為1,CPU也不會(huì)響應(yīng)這個(gè)中斷請(qǐng)求。換句話說(shuō),屏蔽觸發(fā)器可以阻止特定的中斷源向CPU發(fā)送中斷請(qǐng)求。
所有的屏蔽觸發(fā)器組合在一起,構(gòu)成了屏蔽寄存器。
?當(dāng)中斷源被屏蔽時(shí)(MASK=1),此時(shí)即使D=1,中斷查詢信號(hào)到來(lái)時(shí)刻只能將INTR置“0”,CPU接收不到該中斷源的中斷請(qǐng)求,即它被屏蔽。
?若該中斷源未被屏蔽(MASK=0),當(dāng)設(shè)備工作已完成時(shí)(D=1),中斷查詢信號(hào)則將INTR置“1”,表示該中斷源向CPU發(fā)出中斷請(qǐng)求,
?該信號(hào)送至排隊(duì)器進(jìn)行優(yōu)先級(jí)判斷。顯然,對(duì)于每個(gè)中斷請(qǐng)求觸發(fā)器就有一個(gè)屏蔽觸發(fā)器,將所有屏蔽觸發(fā)器組合在一起,便構(gòu)成了一個(gè)屏蔽寄存器。屏蔽寄存器的內(nèi)容稱為屏蔽字。屏蔽字與中斷源的優(yōu)先級(jí)是一一對(duì)應(yīng)的。
?2)屏蔽技術(shù)可改變優(yōu)先等級(jí):嚴(yán)格地說(shuō),優(yōu)先級(jí)包含響應(yīng)優(yōu)先級(jí)和處理優(yōu)先級(jí)。響應(yīng)優(yōu)先級(jí)是指CPU響應(yīng)各中斷源請(qǐng)求的優(yōu)先次序,這種次序往往是硬件線路已設(shè)置好的,不便于改動(dòng)。
處理優(yōu)先級(jí)是指CPU實(shí)際對(duì)各中斷源請(qǐng)求的處理優(yōu)先次序。如果不采用屏蔽技術(shù),響應(yīng)的優(yōu)先次序就是處理的優(yōu)先次序。采用了屏蔽技術(shù)后,可以改變CPU處理各中斷源的優(yōu)先等級(jí),從而改變CPU執(zhí)行程序的軌跡。
例如,A、B、C、D 這4個(gè)中斷源的優(yōu)先級(jí)別按A-》B-》C-》D降序排列,根據(jù)這一次序,CPU執(zhí)行程序的軌跡如下圖所示。當(dāng)4個(gè)中斷源同時(shí)提出
在不改變CPU響應(yīng)中斷的次序下,通過(guò)改變屏蔽字可以改變CPU處理中斷的次序。例如,更改上述4個(gè)中斷源的屏蔽字將其處理次序更改為:
CPU在運(yùn)行程序的過(guò)程中,若A、B、C、D4個(gè)中斷源同時(shí)提出請(qǐng)求,按照中斷級(jí)別的高低,CPU首先響應(yīng)并處理A中斷源的請(qǐng)求,由于A的屏蔽字是1111,屏蔽了所有的中斷源,故A程序可以全部執(zhí)行完,然后回到主程序。
由于B、C、D的中斷請(qǐng)求還未響應(yīng),而B的響應(yīng)優(yōu)先級(jí)高于其他,所以CPU響應(yīng)B的請(qǐng)求,進(jìn)入B的中斷服務(wù)程序。
在B的服務(wù)程序中,由于設(shè)置了新的屏蔽字0100,即A、C、D可打斷B,而A程序已執(zhí)行完,C的響應(yīng)優(yōu)先級(jí)高于D,于是CPU響應(yīng)C,進(jìn)入C的服務(wù)程序。
在C的服務(wù)程序中,由于設(shè)置了的屏蔽字0110,即A、D可打斷C,A已執(zhí)行于是CPU響應(yīng)D,執(zhí)行D的中斷服務(wù)程序。
D一直做完后回到C程序,C程序執(zhí)行完后,回到B程序。
B程序做完后,回到主程序。
在中斷處理過(guò)程中,CPU首先會(huì)檢查INTR,如果INTR為1,那么CPU會(huì)進(jìn)一步檢查對(duì)應(yīng)的屏蔽觸發(fā)器(MASK),如果MASK也為1,那么該中斷源的中斷請(qǐng)求會(huì)被屏蔽,CPU不會(huì)響應(yīng);如果MASK為0,那么CPU會(huì)響應(yīng)這個(gè)中斷請(qǐng)求,轉(zhuǎn)去執(zhí)行對(duì)應(yīng)的中斷服務(wù)程序。
這個(gè)過(guò)程是自動(dòng)進(jìn)行的,不需要程序員明確地編寫相關(guān)的指令。在硬件設(shè)計(jì)中,程序員需要根據(jù)實(shí)際需求來(lái)設(shè)置INTR、D和MASK的值,以實(shí)現(xiàn)正確的中斷處理。
-
cpu
+關(guān)注
關(guān)注
68文章
10698瀏覽量
209334 -
中斷
+關(guān)注
關(guān)注
5文章
889瀏覽量
41219 -
程序
+關(guān)注
關(guān)注
115文章
3719瀏覽量
80355 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
1990瀏覽量
60868
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論