8.6
程式中斷控制方式
8.6.1
中斷的概念
概念:CPU 暫時停下現行程式的執行,轉向為臨時發生的事件進行處理,處理完後,再返回執行原程式。中斷是一種在發生了一個外部的事件時調用相應的處理常式(或稱服務程式)的過程。中斷服務程式與中斷時CPU正在啟動並執行程式是相互獨立的,相互不傳遞資料。
一. 中斷的作用:
1.實現主機和外設並行工作
2.故障的處理
3.即時處理基本概念
二.中斷處理中的問題:
(1)裝置識別方式 (2)中斷處理常式入口地址的形成 (3)中斷裁決 (4)中斷屏蔽
三.中斷類型
內中斷:發生在主機內部的中斷稱為內中斷
外中斷由主機外來事件引起的中斷稱外中斷
中斷的例子:複位,時鐘中斷,鍵盤中斷,頁面失效中斷
內部中斷(異常處理):算術操作異常、非法指令、越權指令、頁面失效
外部中斷(可屏蔽,不可屏蔽):鍵盤、滑鼠、電源
軟體中斷 :自陷(系統調用)
8.6.2
插斷要求的發送與屏蔽
電腦中的中斷處理是由插斷要求引起的。
一. 外設發插斷要求如下:
(1)資訊傳送:裝置完成了一個資料的傳送,下一個資料的傳送工作已準備好。
(2)裝置或介面發生故障:此時需 CPU 檢查狀態並進行相應處理
(3)DMA方式或通道方式:完成指定量資料的傳送,要求CPU進行結束處理工作。
二. 中斷(可屏蔽)申請的方法
1.插斷要求訊號IRQ還要受到中斷屏蔽觸發器 INM 的控制(INM在各裝置中)。CPU通過程式可以有選擇地使一些介面的INM 為“1”另一些為“0”。如:Z80系統中IFF1、IFF0受EI、DI指令的控制
2.多重中斷:中斷服務程式也可以被中斷—中斷嵌套。
實現方法一:給CPU及插斷要求都設定優先權。
實現方法二:採用中斷屏蔽寄存器,用軟體佈建靈活的優先順序。
8.6.3
中斷優先順序
優先順序:CPU 響應並處理插斷要求的先後次序,它根據中斷事件的重要性和迫切性而定。
8.6.4 單級處理和多級處理中斷(中斷嵌套)單級處理:不同優先等級的裝置同時請求中斷時,按照優先順序一個一個處理。
多重處理(中斷嵌套):允許優先順序高的中斷打斷優先順序底的中斷服務程式。
8.6.5 屏蔽碼改變優先等級
屏蔽技術:CPU送往各裝置介面的屏蔽觸發器狀態的資訊集合稱為屏蔽碼。
CPU通過控制各裝置介面的屏蔽觸發器狀態達到改變處理次序的目的。
8.6.6 中斷的處理過程
中斷響應:為公操作,將指令計數器和程式狀態字寄存器的內容儲存到儲存空間中。
中斷識別:確定中斷源,並轉向相應的中斷服務程式。
儲存現場:在中斷服務中實現對有關寄存器內容的保護。
中斷服務:
恢複現場:
返回原程式:
8.6.7
中斷響應
1.執行完當前指令,若能響應,則進入中斷。
2.保護斷點:(返回地址)指令計數器、和程式狀態字寄存器進棧(不執行指令)稱中斷隱指令。
3.自動關中斷
8.6.8
中斷識別
(裝置的識別)(問題1)
一.程式識別 P198 圖 8.17(軟體查詢)
先查詢的層級高
二.單線查詢法
硬體排隊
三.中斷向量法
中斷向量:中斷服務程式入口地址 稱為中斷向量。中斷向量在主存中的第一個單元地址稱為向量地址。每個中斷源都有一個中斷向量和向量地址。
中斷向量法:CPU響應中斷後,中斷硬體機構自動將向量地址送入CPU,CPU實現程式切換,這種方法稱為中斷向量法。
向量中斷: 採用中斷向量法的中斷叫向量中斷。
中斷優先權編碼電路(VIPE):其功能是--按照優先順序次序選擇提出插斷要求的最優裝置。而且將該裝置向量地址送入CPU