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