幾個中斷請求可能同時出現(xiàn),但中斷系統(tǒng)只能按一定的次序來響應和處理。可最先被響應的中斷具有最高優(yōu)先權,按優(yōu)先級別順序進行處理。優(yōu)先權高低是由中斷部件的中斷排隊線路確定的。
中斷級當機器設置很多中斷源時,為了簡化設計,對中斷源分組管理。具有相同中斷優(yōu)先權的中斷源構成一個中斷級。同一級中斷使用同一個中斷控制程序起點。
中斷屏蔽對應于各中斷級設置相應的屏蔽位。只有屏蔽位為1時,該中斷級才能參加中斷優(yōu)先權排隊。中斷屏蔽位可由專用指令建立,因而可以靈活地調整中斷優(yōu)先權。有些機器針對某些中斷源也設置屏蔽位,只有屏蔽位為1時,相應的中斷源才起作用。
大多數(shù)中斷系統(tǒng)都具有如下幾方面的操作,這些操作是按照中斷的執(zhí)行先后次序排列的。①接收中斷請求。②查看本級中斷屏蔽位,若該位為1則本級中斷源參加優(yōu)先權排隊。③中斷優(yōu)先權選擇。④處理機執(zhí)行完一條指令后或者這條指令已無法執(zhí)行完,則立即中止現(xiàn)行程序。接著,中斷部件根據(jù)中斷級去指定相應的主存單元,并把被中斷的指令地址和處理機當前的主要狀態(tài)信息存放在此單元中。⑤中斷部件根據(jù)中斷級又指定另外的主存單元,從這些單元中取出處理機新的狀態(tài)信息和該級中斷控制程序的起始地址。⑥執(zhí)行中斷控制程序和相應的中斷服務程序。⑦執(zhí)行完中斷服務程序后,利用專用指令使處理機返回被中斷的程序或轉向其他程序。
程序狀態(tài)字與向量中段這是兩個與中斷響應和處理有密切關系的概念。程序狀態(tài)字:每個程序均有自己的程序狀態(tài)字?,F(xiàn)行程序的程序狀態(tài)字放在處理機的程序狀態(tài)字寄存器中。程序狀態(tài)字中最主要的內容有指令地址、條件碼、地址保護鍵,中斷屏蔽和中斷響應時的中斷源記錄等。中斷響應和處理操作的第④步和第⑤步就是交換程序狀態(tài)字操作。
向量中斷:對應每一級中斷都有一個向量,這些向量順序存放在主存的指定單元中。向量的內容是:相應的中斷服務程序起始地址和處理機狀態(tài)字(主要是指令地址)。在中斷響應時,由中斷部件提供中斷向量的地址,就可取出該向量。中斷響應和處理操作的第⑤步就是取中斷向量操作。在采用向量中斷的機器中一般不再使用程序狀態(tài)字。
它經(jīng)常包含一個指向下一條需要被執(zhí)行指令的指針。程序狀態(tài)字還通常包含一個錯誤狀態(tài)區(qū)域和關于中斷允許或禁止,超級或普通用戶模式位的條件代碼。在計算機系統(tǒng)中,表明系統(tǒng)運行狀態(tài)的部件是程序狀態(tài)字程序狀態(tài)字PSW(Program Status Word)包括的狀態(tài)位有進位標志位(CF)、結果為零標志位(ZF)、符號標志位(SF)、溢出標志位(OF)、陷阱標志位(TF)、中斷使能(中斷屏蔽)標志位(IF)、虛擬中斷標志位(VIF)、虛擬中斷待決標志位(VIP)、I0特權級別(IOPL)。通常的狀態(tài)代碼:CPU的工作狀態(tài)碼——指明管態(tài)還是目態(tài),用來說明當前在CPU上執(zhí)行的是操作系統(tǒng)還是一般用戶,從而決定其是否可以使用特權指令或擁有其它的特殊權力。條件碼——反映指令執(zhí)行后的結果特征。中斷屏蔽碼——指出是否允許中斷。各個狀態(tài)之間的轉換:目態(tài)--管態(tài)其轉換的唯一途徑是通過中斷。管態(tài)--目態(tài)可用設置PSW(修改程序狀態(tài)字)可實現(xiàn)