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