計算機組成原理——程序中斷方式

中斷的基本概念:

程序中斷是指在計算機執行實現程序的過程當中,出現某些急需處理的異常狀況或特殊請求,CPU暫時停止現行程序,而轉去這些異常狀況或特殊請求進行處理,在處理完畢後CPU又自動返回到現行程序的斷點處,繼續執行原程序。測試

中斷系統是計算機實現中斷功能的軟、硬件總稱。在CPU一側配置了中斷機構,在設備一側配置了中斷控制接口,在軟件上設計了相應的中斷服務程序。操作系統

 

一個完整的中斷過程包括:

中斷請求:是指中斷源(引發中斷的事件或設備)向CPU
 發出的請求中斷的要求。
中斷判優:當有多箇中斷源發出請求時,須要經過適當的辦法決定先處理哪一個中斷請求;
中斷響應:指CPU停止現行程序轉至中斷服務程序的過程;
中斷處理:就是指CPU執行中斷服務程序;
中斷返回:   執行完中斷服務程序後,返回到被中斷的程序設計

 

中斷的做用:

(1)CPU與I/O設備並行工做
(2)硬件故障處理
(3)實現人機聯繫:在計算機工做過程當中,若是用戶要干預機器,如查看計算的中間結果,瞭解機器的工做狀態,給機器下達臨時性的命令等。在沒有中斷系統的計算機裏這些功能幾乎是沒法實現的。
(4)實現多道程序和分時操做
(5)實現實時處理
(6)實現應用程序和操做系統的聯繫
(7)多處理機系統各處理機間的聯繫

3d

中斷的產生和相應的概念

(1)中斷源:

引發中斷的事件,即發出中斷請求的來源。
  ■外中斷:I/O設備等來自主機外部設備的中斷。(一般所說的中斷就是外中斷)
  ■內中斷:處理器硬件故障或程序出錯引發的中斷。
  ■軟中斷:由「Trap」指令產生的軟中斷,這是在程序中預先安排好的     
中斷觸發器:每一箇中斷源的接口電路中都有一個「中斷觸發器」,用於保存中斷源向CPU的中斷請求信號。多箇中斷觸發器構成中斷寄存器。blog

 主要上圖所示的中斷分類將CPU內部的異常、例外、陷入都有歸爲了內中斷的行列中,不去區分是硬件引發仍是軟件引發的了。接口

 

(2)中斷的分級與中斷優先權 

在設計中斷系統時,要把所有中斷源按中斷性質和處理的輕重緩急進行排隊並給予優先權。事件

(3)禁止中斷和中斷屏蔽

a、禁止中斷:
產生中斷源後,因爲某種條件的存在,CPU不能停止現行程序的執行,稱爲禁止中斷
通常在CPU的內部設置一個「中斷容許」觸發器,只有該觸發器爲「1」時,才容許處理機響應中斷,反之,則不響應全部中斷源的中斷請求。
「中斷容許」觸發器能夠經過「開中斷」和「關中斷」指令來置位和復位。
b、中斷屏蔽
當產生中斷請求時,用程序方式有選擇地封鎖部分中斷,而容許其他部分的中斷仍能獲得響應。
實現的方法是爲每一箇中斷源設置一箇中斷屏蔽觸發器來屏蔽該設備的中斷請求。各個設備的中斷屏蔽觸發器構成中斷屏蔽寄存器。
固然有些中斷源的中斷請求是不可屏蔽的。因此中斷又分爲可屏蔽中斷和非屏蔽中斷。軟件

中斷處理

 

中斷處理過程:

 

(1)關中斷
 進入不可再次響應中斷的狀態,由硬件自動實現。在保存現場過程當中,即便有更高級的中斷源申請中斷,CPU也不該該響應。不然,若是現場保存不完整,在中斷服務程序結束以後,也就不能正確地恢復現場並繼續執行現行程序。
(2)保存斷點和現場
  現場信息通常指的是程序狀態字,中斷屏蔽寄存器和CPU中某些寄存器的內容。
(3)判別中斷源,轉向中斷服務程序。
 在多箇中斷源同時請求中斷的狀況下。本次實際響應的只能是優先權最高的那個中斷源、因此,需進一步判別中斷源,並轉入相應的中斷服務程序入口。
(4)開中斷。接下去就要執行中斷服務程序,開中斷將容許更高級中斷請求獲得響應。實現中斷嵌套。
(5)執行中斷服務程序。
(6)退出中斷。在退出時,又應進入不可中斷狀態,即關中斷,恢復現場、恢復斷點,而後開中斷,返回原程序執行
   進入中斷時執行的關中斷、保存斷點等操做通常是由硬件實現的,它相似於一條指令,但它與通常的指令不一樣,不能被編寫在程序中。所以,經常稱爲‘中斷隱指令’。配置

判別中斷源

判別中斷源能夠用軟件和硬件兩種方法來判優。
 (1)查詢法(軟件法)
由測試程序按必定優先排隊次序檢查各個設備的「中斷觸發器」。當遇到第一個‘1’標誌時,即找到了優先進行處理的中斷源,一般取出其設備碼,根據設備碼轉入相應的中斷服務程序。
(2)串行排隊鏈法(硬件判優)
由硬件肯定中斷源。硬件

問題:找到優先級最高的中斷請求後,如何轉入其中斷服務程序?


通常採用中斷向量法:
向量中斷方式是爲每個中斷源設置一個中斷向量(就是中斷服務程序的入口地址),全部的中斷向量存放在主存的某個固定位置(中斷向量表)。CPU響應某個中斷源的中斷請求時,根據設備提供的中斷類型碼,訪問中斷向量表,就能夠找到該中斷源的中斷服務程序的入口地址。

中斷向量表,也稱中斷入口地址表(或異常表),位於0000H~03FFH。共256組,每組佔四個字節 CS:IP  。向量地址=中斷類型號x4

8086/8088的中斷向量表

中斷向量表(異常表)中每一項是對應異常處理程序的入口地址,被稱爲中斷向量(Interrupt Vector)
有了中斷類型號,就可獲得中斷向量,從而轉到中斷服務程序執行。
可是,中斷類型號怎麼獲得呢?

經過中斷類型號造成電路。

 

 

多重中斷處理——中斷嵌套

在處理某一箇中斷的過程當中又發生了新的更高級中斷源的中斷申請,且CUP又處於開中斷狀態下,CPU就要中斷該服務程序的執行,轉去進行新的中斷處理服務程序。通常狀況下與它同級的或比它低級的新中斷請求,CPU不能響應其請求。
中斷優先級的響應次序由硬件排隊線路決定。一旦設計完成,系統的優先級別就決定了,缺少改變優先權級別的靈活性。
在有優先級中斷屏蔽碼控制的條件下,能夠不改變系統排隊線路,使其中斷響應次序不一樣。

中斷屏蔽技術

例題:

相關文章
相關標籤/搜索