程序中斷:在計算機執行現行程序的過程中,出現某些急需理的異常情況或特殊請求,CPU暫時中止現行程序,而轉去對這些異常情況或特殊請求進行處理,在處理完畢后CPU又自動返回到現行程序的斷點處,繼續執行原程序。
工作流程:
1.中斷請求:中斷源向CPU發送中斷請求信號
2.中斷響應:響應中斷的條件;中斷判優:多個中斷源同時提出請求時通過中斷判優邏輯響應一個中斷源。
3.中斷處理:中斷隱指令。中斷服務程序。
陷阱:有意而為之的異常,如系統調用
故障:由錯誤條件引起的,可能被故障處理程序修復,如缺頁
終止:不可恢復的致命錯誤造成的結果,終止處理程序不再將控制返回給引發終止的應用程序,如整數除0
非屏蔽中斷:關中斷(中斷標志位IF=0)時也會被響應
可屏蔽中斷:關中斷時不會被響應
中斷請求標記:每個中斷源向CPU發出中斷請求的時間是隨機的。為了記錄中斷事件並區分不同的中斷源,中斷系統需對每個中斷源設置中斷請求標記觸發器INTR。當其狀態為“1”時,表示中斷源有請求。這些觸發器可組成中斷請求標記寄存器,該寄存器可集中在CPU中,也可分散在各個中斷源中。對於外中斷,CPU是在統一的時刻即每條指令執行階段結束前向接口發出中斷查詢信號(對於執行時間很長的指令,可在執行過程中設置若干個“查詢斷點”),以獲取的中斷請求,也就是說,CPU響應中斷的時間是在每條指令執行階段的結束時刻。
CPU響應中斷必須滿足以下3個條件:
1.中斷源有中斷請求。2.CPU允許中斷即開中斷。3.一條指令執行完畢,且沒有更緊迫的任務。
中斷判優:既可以用硬件實現,也可用軟件實現(硬件實現是通過硬件排隊器實現的,它既可以設置在CPU中,也可以分散在各個中斷源中;軟件實現是通過查詢程序實現的)
優先級:1.硬件故障中斷屬於最高級,其次是軟件中斷;2.非屏蔽中斷優於可屏蔽中斷;3.DMA請求優於設備傳送的中斷請求;4.高速設備優於低速設備;5.輸入設備優於輸出設備;6.實時設備優於普通設備。
中斷處理過程:
1.當前指令執行結束后,pc內容為K+1
2.進入中斷服務程序的方法是把該程序第一條指令的地址放入pc
3.回到主程序的方法是把K+1放入pc
4.軟件無法完成保存pc的任務,應由硬件實現:中斷隱指令
中斷隱指令的主要任務:
1.關中斷。在中斷服務程序中,為了保護中斷現場(即CPU主要寄存器中的內容)期間不被新的中斷所打斷,必須關中斷,從而保證被中斷的程序在中斷服務程序執行完畢之后能接着正確地執行下去。
2.保存斷點。為了保證在中斷服務程序執行完畢后能正確地返回到原來的程序,必須將原來程序的斷點(即程序計數器(pc)的內容)保存起來。可以存入堆棧,也可以存入指定單元。
3.引出中斷服務程序。實質就是取出中斷服務程序的入口地址並傳送給程序計數器(pc)。軟件查詢法;硬件向量法(由硬件產生向量地址再由向量地址找到入口地址)
中斷服務程序的主要任務:
1.保護現場:一是保存程序斷點(PC),己由中斷隱指令完成;二是保存通用寄存器和狀態寄存器的內容,由中
斷服務程序完成。可以使用堆,也可以使用特定存儲單元。
2.中斷服務(設備服務):主體部分,如通過程序控制需打印的字符代碼送入打印機的緩沖存儲器中。
3.恢復現場:通過出棧指令或取數指令把之前保存的信息送回寄存器中。
4.中斷返回:通過中斷返回指令回到原程序斷點處。
單重中斷:執行中斷服務程序時不響應新的中斷請求。
多重中斷:又稱中斷嵌套,執行中斷服務程序時可響應新的中斷請求。
中斷屏蔽技術:主要用於多重中斷,CPU要具備多重中斷的功能,須滿足下列條件。
1.在中斷服務程序中提前設置開中斷指令。
2.優先級別高的中斷源有權中斷優先級別低的中斷源。
每個中斷源都有一個屏蔽觸發器,1表示屏蔽該中斷源的請求,0表示可以正常申請,所有屏蔽觸發器組合構成一個屏蔽字寄存器,屏蔽字寄存器的內容稱為屏蔽字。
屏蔽觸發器與屏蔽字
對應每個中斷請求觸發器就有一個屏蔽觸發器,將所有屏蔽觸發器組合構成一個屏蔽寄存器,屏蔽寄存器的內容稱為屏蔽字。屏蔽字與中斷源的優先級別是一一對應的,在中斷服務程序中設置適當的屏蔽字,能對優先級別不同的中斷源的進行屏蔽例如:1級中斷源的請求已被CPU響應,若在其中斷服務程序中(通常在開中斷指令前)設置一個全“I"的屏蔽字,便可保證在執行1級中斷服務程序過程中,CPU不再響應任何一個中斷源(包括本級在內)的中斷請求,即此刻不能實現多重中斷。如果在4級中斷源的服務程序中設置一個屏蔽字0001111111,由於第1-3位為0,意味着第1-3級的中斷源未被屏蔽,因此在開中斷指令后,比第4級中斷源級別更高的1、2、3級中斷源可以中斷4級中斷源的中斷服務程序,實現多重中斷。采用了屏蔽技術后,可以改變CPU處理各中斷源的優先等級,從而改變CPU執行程序的軌跡。