?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的值,以實現正確的中斷處理。
-
cpu
+關注
關注
68文章
10854瀏覽量
211587 -
中斷
+關注
關注
5文章
898瀏覽量
41471 -
程序
+關注
關注
117文章
3785瀏覽量
81004 -
觸發器
+關注
關注
14文章
2000瀏覽量
61132
發布評論請先 登錄
相關推薦
評論