中斷屏蔽技術(shù):主要用于多重中斷
多重中斷:(中斷嵌套)當(dāng)CPU正在執(zhí)行某個(gè)中斷服務(wù)程序時(shí),另一個(gè)中斷源又提出了新的中斷請(qǐng)求,而CPU又響應(yīng)了這個(gè)新的請(qǐng)求,暫時(shí)停止正在運(yùn)行的服務(wù)程序,轉(zhuǎn)去執(zhí)行新的中斷服務(wù)程序,這稱為多重中斷,又稱中斷嵌套。
如果CPU對(duì)新的請(qǐng)求不予響應(yīng),待執(zhí)行完當(dāng)前的服務(wù)程序后再響應(yīng),即為單重中斷。
中斷系統(tǒng)若要具有處理多重中斷的功能,必須具備各項(xiàng)條件。
?1)提前設(shè)置“開中斷”指令:一般情況下,CPU進(jìn)入中斷周期后,由中斷隱指令自動(dòng)將EINT置“0”,即關(guān)中斷。
中斷隱指令指CPU響應(yīng)中斷之后,經(jīng)過某些操作,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序的一種操作。
這就意味著CPU在執(zhí)行中斷服務(wù)程序中禁止響應(yīng)新的中斷請(qǐng)求。CPU若想再次響應(yīng)中斷請(qǐng)求,必須開中斷,
這一任務(wù)通常由中斷服務(wù)程序中的開中斷指令實(shí)現(xiàn)。
多重中斷示意圖如下:
?2)、優(yōu)先級(jí)別高的中斷源有權(quán)中斷優(yōu)先級(jí)別低的中斷源。
在滿足1的前提下,只有優(yōu)先級(jí)別更高的中斷源請(qǐng)求才可以中斷比其級(jí)別低的中斷服務(wù)程序,反之則不然。
為了保證級(jí)別低的中斷源不干擾比其級(jí)別高的中斷源的中斷處理過程,可采用屏蔽技術(shù)。
例如,有A、B、C、D4個(gè)中斷源,其優(yōu)先級(jí)按A-》B-》C-》D由高向低次序排列。在CPU執(zhí)行主程序期間,同時(shí)出現(xiàn)了B和C的中斷請(qǐng)求,由于B級(jí)別高于C,故首先執(zhí)行B的服務(wù)程序。
當(dāng)B的服務(wù)程序執(zhí)行完返回主程序后,由于C請(qǐng)求未撤銷,故CPU又再去執(zhí)行C的中斷服務(wù)程序。若此時(shí)又出現(xiàn)了D的請(qǐng)求,因?yàn)镈級(jí)別低于C,故CPU不響應(yīng)。當(dāng)C的服務(wù)程序執(zhí)行完返回主程序后再去執(zhí)行D的服務(wù)程序。
若此時(shí)又出現(xiàn)了A請(qǐng)求,因A級(jí)別高于D,故CPU暫停對(duì)D級(jí)中斷服務(wù)程序的執(zhí)行,轉(zhuǎn)去執(zhí)行A級(jí)中斷服務(wù)程序,等A級(jí)服務(wù)程序執(zhí)行完后,再去執(zhí)行D級(jí)中斷服務(wù)程序。上述中斷處理示意圖如下:
-
cpu
+關(guān)注
關(guān)注
68文章
10908瀏覽量
213110 -
中斷
+關(guān)注
關(guān)注
5文章
900瀏覽量
41786 -
程序
+關(guān)注
關(guān)注
117文章
3797瀏覽量
81450 -
中斷源
+關(guān)注
關(guān)注
0文章
16瀏覽量
8031
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論