I/O裝置——程式中斷方式
程式中斷:在計算機執行現行程式的過程中,出現某些急需理的異常情況或特殊請求,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執行程式的軌跡。