《微機原理與接口技術(第2版)》第06章中斷技術_第1頁
《微機原理與接口技術(第2版)》第06章中斷技術_第2頁
《微機原理與接口技術(第2版)》第06章中斷技術_第3頁
《微機原理與接口技術(第2版)》第06章中斷技術_第4頁
《微機原理與接口技術(第2版)》第06章中斷技術_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

第6章中斷技術本章知識要點:

本章從計算機系統(tǒng)的角度說明了什么是中斷,為什么在計算機系統(tǒng)內(nèi)要使用中斷技術等概念,描述了在以Pentium為平臺的微機系統(tǒng)內(nèi)的中斷類型,以及允許中斷和禁止中斷的條件所在,敘述了Pentium在處理中斷時采用的中斷技術—中斷描述符表以及中斷描述符的作用。最后說明了Pentium處理中斷時的過程。使目前微機領域內(nèi)的先進技術與實際應用緊密聯(lián)系在一起。本章的重點是中斷的概念,在計算機系統(tǒng)內(nèi)為什么要使用中斷,和中斷處理過程。6.1中斷的概念

6.1.1概述

中斷是現(xiàn)代計算機技術領域里的一項非常重要的技術。中斷是為快速改變程序的運行環(huán)境而提供的一種機制。程序控制的轉(zhuǎn)換是由計算機內(nèi)部事件或者是外部硬件事件啟動的。所謂中斷,其實是CPU在執(zhí)行當前程序的過程中,由于某種隨機出現(xiàn)的外圍設備的請求,使得CPU暫時停止正在執(zhí)行的程序(即中斷),轉(zhuǎn)去執(zhí)行為外圍設備服務的程序。當為外圍設備服務的程序執(zhí)行完后,CPU再返回到暫時停止正在執(zhí)行的程序處(即斷點)繼續(xù)執(zhí)行其原來的程序。這種中斷就是通常所說的外部中斷。1.Pentium的中斷:

有2個硬件中斷INTR、NMI,和3個軟件中斷INT、INTO、INT3。外部中斷和內(nèi)部軟件中斷就構(gòu)成了一個完整的中斷系統(tǒng)。發(fā)出中斷請求的來源非常多,不管是由于外部事件而引起的外部中斷、還是由于軟件執(zhí)行過程而引發(fā)的內(nèi)部軟件中斷,凡是能夠提出中斷請求的設備或異常故障,均被稱其為中斷源。Pentium把中斷分成三種類型。

①中斷:

②異常:

③程序異常:(1)實模式下的中斷操作當微處理器執(zhí)行完當前指令之后,它就按給定的順序來檢查下面一些條件,以便確定一個中斷是否有效。①檢查指令的執(zhí)行;②檢查是否單步執(zhí)行的指令;③檢查是不是一條不可屏蔽中斷NMI;

④檢查浮點部件的段是否越界;⑤檢查是不是一條可屏蔽中斷INTR;

⑥檢查是不是一條調(diào)用中斷過程指令INT。如果在檢查的過程中發(fā)現(xiàn)一個或多個中斷條件與檢查的條件相符合,就按順序執(zhí)行下列操作步驟:

(1)將標志寄存器的內(nèi)容下壓入棧。(2)清除標志寄存器中的允許中斷標志IF位和自陷標志TF位。(3)將代碼段寄存器CS的內(nèi)容下壓入棧。(4)將指令指針寄存器IF的內(nèi)容下壓入棧。(5)將中斷向量的內(nèi)容取出,并將其送入指令指針寄存器IF和代碼段寄存器CS.(2)保護模式下的中斷操作

保護模式下的中斷操作與實模式下的中斷操作幾乎是一樣的,但二者的中斷向量表有所不同。

1.在實模式下,使用的是中斷向量。

2.而在保護模式下,使用的是保存在中斷描述符表IDT中的中斷描述符。6.1.2中斷系統(tǒng)中斷系統(tǒng)的作用

(1)實現(xiàn)分時操作:

(2)處理異常事故:

(3)實現(xiàn)實時操作:

2.中斷響應和中斷處理過程

不論是硬件中斷還是軟件中斷,都是通過調(diào)用中斷服務程序或中斷管理程序為中斷服務。系統(tǒng)內(nèi)存在著多個中斷源,必須為每個中斷源,預先編好中斷處理程序中斷進行處理。對于多個中斷請求,通常的做法是將中斷源按優(yōu)先級別的高低將其分成幾級,中斷系統(tǒng)則是根據(jù)中斷源級別的高低給以響應。當有多個“中斷請求”存在時,中斷系統(tǒng)是按中斷源優(yōu)先級別的高低響應中斷

6.2異常與中斷

中斷是在程序執(zhí)行期間隨著硬件信號一起而隨機出現(xiàn)。而異常則是在執(zhí)行引起異常的指令時產(chǎn)生。不論是中斷還是異常均有兩個中斷源:

6.2.1中斷源分類

1.中斷

(1)可屏蔽中斷INTR。可屏蔽中斷是硬件中斷,是從Pentium的管腳INTR輸入端上接收的中斷請求信號

(2)不可屏蔽中斷NMI

不可屏蔽中斷也是硬件中斷,是從Pentium的NMI管腳上接收到的輸入信號

2.異常異常是由微處理器檢測到的。根據(jù)報告異常的方式以及是否支持重新啟動引起異常的指令,可將異常分為故障、自陷和異常終止三種類型。

(1)故障(faults)是指在該指令中檢測到異常之前,在指令邊界處報告的異常。

(2)自陷(traps)是指在指令中檢測到異常之后馬上就在指令邊界處報告的異常。

(3)異常終止(aborts)是指不總是報告引起異常的指令的位置,且不允許重新啟動引起異常的程序。3.程序異常

Pentium系統(tǒng)內(nèi)的溢出中斷

INTO、

INT3(中斷類型3)、

INTn(中斷類型n),以及按界檢查數(shù)組下標BOUND指令等,均可觸發(fā)異常,雖然也把這些指令稱之為“軟中斷”,但是,Pentium是把它們當作異常來處理的。

6.2.2

異常和中斷向量

Pentium微處理器把每個不同類型的中斷或異常與識別號一一對應聯(lián)系起來,以便于識別,把這個識別號稱之為向量。為不可屏蔽中斷和異常分配的向量在0~31之間。向量號

明0除法錯1調(diào)試異常2不可屏蔽中斷3斷點4被檢測出的INTO上溢5超出了BOUND范圍6無效操作碼7協(xié)同處理器器不存在8雙故障9協(xié)同處理器越段運行(保留)10無效任務狀態(tài)段11段不存在12堆棧段超界限故障13一般保護故障14頁故障15保留,未使用16浮點錯17對準檢查18機器檢查,在Pentium~Pentium4中激活系統(tǒng)存儲器管理模式中斷19~31保留,未使用32~255可屏蔽中斷6.3允許及禁止中斷

Pentium在一定的條件和標志設置下將禁止某些類型的中斷和異常。6.3.1不可屏蔽中斷對未來的不可屏蔽中斷的屏蔽

當執(zhí)行一個不可屏蔽中斷的中斷服務程序時,在下一條中斷返回IRET指令執(zhí)行之前,Pentium將禁止對處理中斷的過程或任務進行另外的調(diào)用

6.3.2IF屏蔽INTR當標志寄存器上的允許中斷標志IF位被清成“0”時,可屏蔽中斷請求信號INTR上的中斷信號被忽略。當IF標志被置成“1”時,INTR中斷才可得到服務。6.3.3恢復標志位RF對調(diào)試故障的屏蔽

Pentium微處理器的標志寄存器EFLAGS中的恢復標志RF標志位,用來防止對一個指令斷點故障進行多次服務。

6.4中斷描述符表

6.4.1異常和中斷同時存在時的優(yōu)先級如果在一指令邊界處有一個以上的未決異?;蛑袛?,則微處理器將按預先定好的順序為它們提供服務。表中列出了各類異常和中斷源的優(yōu)先級。雖然這些優(yōu)先級在整個體系結(jié)構(gòu)之內(nèi)是一致的,但每一級別之內(nèi)的異常在實現(xiàn)時則是依微處理器而定,不同的微處理器其處理順序是不一樣的。

優(yōu)先級類說

明最高1類上一條指令的自陷

----斷點----調(diào)試異常(標志寄存器上的自陷標志位TF=1,任務狀態(tài)段TSS上的T位被置成1,或數(shù)據(jù)/輸入輸出的斷點)2類外部中斷------不可屏蔽中斷------可屏蔽中斷3類預取下一條指令時的故障-----代碼斷點故障-----代碼段越界-----預取時的頁故障4類下一條指令譯碼時故障----非法操作碼----指令長度大于15個字節(jié)----協(xié)處理器不能使用最低5類執(zhí)行指令時出現(xiàn)的故障

----一般檢測故障

----浮點錯(來自前一條浮點指令)

----上溢中斷

----BOUND----無效任務狀態(tài)段

----段不存在

----堆棧異常

----一般保護異常

-----數(shù)據(jù)頁故障

----對準檢查6.4.2中斷描述符表IDT

中斷描述符表IDT把每個異?;蛑袛嘞蛄俊⒓捌渑c其相對應的中斷服務程序、或任務的描述符聯(lián)系了起來。中斷描述符表也是一種由大小為8個字節(jié)的描述符組成的一個描述符陣列。由于僅有256個向量,所以在中斷描述符表中的描述符個數(shù)不會多于256個,但可以少于256個。中斷描述符表可駐留在物理存儲器的任何位置上,圖展示了微處理器利用中斷描述符表寄存器IDTR裝載中斷描述符表的情況。中斷描述符表寄存器IDTR為中斷描述符表保存著一個32位基地址和一個16位的段界限值。

中斷#N的中斷門

中斷#3的中斷門中斷#2的中斷門中斷#1的中斷門中斷描述符表寄存器0150160470中斷描述符表中斷描述符表界限中斷描述符表基地址中斷描述符表寄存器在存儲器中安置中斷描述符表

6.4.3中斷描述符表內(nèi)描述符在中斷描述符表內(nèi),配備有任務門描述符、中斷門描述符、自陷門描述符,這樣三種類型的描述符:圖中展示出了任務門描述符、中斷門描述符、自陷門描述符這三種類型描述符的格式。從圖中可以看出,中斷描述符表中的任務門描述符與全局描述符表和局部描述符表中的任務門描述符是一樣的00101保留DPL

P任務狀態(tài)段選擇符078121514133116任務門描述符保留保留011100

0

0

保留DPL

P偏移量31~16偏移量15~00段選擇符40781215141353116中斷門描述符011110

0

0

保留DPL

P偏移量31~16偏移量15~00段選擇符40781215141353116自陷門描述符

6.5中斷任務和中斷過程

正像調(diào)用過程指令CALL,既可以調(diào)用一個過程又可以調(diào)用一項任務一樣,一個異常中斷也可以把一個中斷服務程序,或當作過程或當作任務進行調(diào)用。

若Pentium找到的是一個中斷門描述符或自陷門描述符,則它將以一種與用CALL指令調(diào)用一個調(diào)用門相同的方式,調(diào)用與其對應的中斷處理程序。

6.5.1中斷過程

在運行的過程之中若出現(xiàn)了中斷,Pentium就利用本次中斷的中斷向量,在中斷描述符表中尋找這次中斷的描述符。通過中斷描述符表中的中斷門描述符或自陷門描述符,對中斷服務程序的訪問是間接訪問,如圖所示。

中斷門或自陷門段描述符目標代碼段中斷描述符表中斷服務程序中斷向量段選擇符基地址偏移量全局描述符表或局部描述符表6.5.2中斷任務正像圖中所示那樣,通過中斷描述符表中的任務門

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論