中央中斷系統

中央中斷系統

中斷是指計算機暫時停止正在處理的程式而去執行外界或內部發生的緊急事件,並在處理完成後自動返回原程式繼續運行原程式的過程。我們知道,CPU(中央處理器)運行速度非常快,相對於外設一般要快幾個數量級。為了解決這個速度匹配問題,發展了中斷的概念。良好的中斷系統能提高計算機實時處理的能力,實現CPU與外設分時操作和自動處理故障,從而擴大了計算機的套用範圍。

基本介紹

  • 中文名:中央中斷系統
  • 外文名:Central interrupt system 
  • 分類:計算機 
  • 又名:cpu中斷系統
  • 優勢:提高效率
  • 關鍵:中斷源
簡介,功能,進行中斷優先權排隊,實現中斷嵌套,自動回響中斷,中斷源,外部設備中斷源,故障中斷源,定時器中斷源,中斷嵌套,處理流程,中斷源管理,中斷異常服務,IDT表,優勢,提高CPU的工作效率,提高處理的時效性.,

簡介

中斷是指計算機暫時停止正在處理的程式而去執行外界或內部發生的緊急事件,並在處理完成後自動返回原程式繼續運行原程式的過程。我們知道,CPU(中央處理器)運行速度非常快,相對於外設一般要快幾個數量級。為了解決這個速度匹配問題,發展了中斷的概念。良好的中斷系統能提高計算機實時處理的能力,實現CPU與外設分時操作和自動處理故障,從而擴大了計算機的套用範圍。
中央中斷系統即為CPU中斷系統,中斷由外部或內部中斷源產生。中斷源可以在需要時向CPU提出中斷請求,中斷請求一般是一個邊沿跳變的信號,CPU在運行過程中會不斷進行檢測,一旦檢測到跳變便自動進入相應的中斷向量入口執行中斷服務程式,並在執行完成後自動返回到原程式處繼續執行,中斷服務程式是由用戶完成的。

功能

進行中斷優先權排隊

一個CPU通常有多箇中斷源,所以總有可能發生在同一個瞬間有多箇中斷源同時向CPU申請中斷的情況,這就要求程式設計者按輕重緩急給每箇中斷源的中斷請求一個中斷優先權。當多箇中斷源同時向CPU請求中斷時,CPU就可以通過中斷優先權排隊率先回響中斷優先權高的中斷請求而把中斷優先權低的中斷請求暫時放下,並記錄低中斷的信息,等到處理完優先權高的中斷請求後再來回響優先低的中斷。

實現中斷嵌套

CPU實現中斷嵌套的先決條件是要有可以禁止的中斷,其次要有能對中斷進行控制的指令。中斷嵌套功能可以使CPU在回響某一中斷請求的同時再去回響更高中斷優先權的中斷請求,而把原中斷服務程式掛起,等處理完這個更高中斷優先權的中斷請求後再來回響原中斷,最後退出所有中斷程式。

自動回響中斷

中斷源產生中斷是隨機發生,無法事先預料的。因此,CPU必須時刻不斷地檢測中斷輸入線的電平變化,並且相鄰兩次檢測的時間不宜相隔太長,否則就會影響中斷回響的時效性。通常,CPU總是在每條指令的最後階段對中斷請求進行一次檢測,因此中斷源產生中斷請求到被CPU檢測到,這個時間不會超過一個指令的時間。CPU在回響中斷時通常要自動做三件事:一是自動關閉中斷(有的CPU是關閉比當前的中斷優先權低的中斷,從而防止其它中斷源來干擾本次中斷)和把當前執行程式的斷點地址(即程式計數器PC中的值)壓入堆疊,以便中斷服務程式最後的中斷返回指令RETI將堆疊中的值彈入程式計數器PC中,返回中斷前的原程式執行,如果此時有中斷的嵌套,則會進入原來被掛起的中斷程式中繼續執行。

中斷源

中斷源是指引起中斷的事件或發出中斷請示的來源。

外部設備中斷源

在微型計算機中,外部設備主要用來輸入和輸出數據,所以它是最原始和最廣泛的中斷源。在用做中斷源時,通過要求它在輸入或輸出一組數據時能夠自動產生一個“中斷請求”信號(一般是一個高到低或低到高的電平跳變),以供CPU檢測和回響。例如:我們經常用的鍵盤滑鼠,當你敲下一個鍵時,實際上,就是向CPU發出一個中斷信號,CPU就會回響中斷執行相應的命令。
在嵌入式實時控制系統中,外部設備(被控對象)常常作為中斷源,用於產生中斷請求信號,要求CPU及時採集系統的各種控制參數以及要求傳送或接收數據,等等。例如:電壓、電流、溫度、濕度、加速度都可以作為產生中斷的源。

故障中斷源

故障源是產生故障的源泉,CPU可以通過中斷方式快速的對已發生故障進行及時的分析處理,從而保證系統正常的運行。計算機故障源有內部和外部之分:CPU內部故障源引起內部中斷;CPU外部故障引起外部中斷,如突然掉電等。在掉電時,掉電檢測電路通過檢測就會自動產生一個掉電中斷請求,CPU檢測到後便在大濾波電容維持正常供電的幾秒內通過執行掉電中斷服務程式來保護現場和啟用備用電池,以便在市電恢復正常後繼續執行掉電前的用戶程式。 在嵌入式系統中,被控對象的故障也可用作故障中斷源,以便對被控對象進行應急處理,從而可以減少系統在發生故障時的損失。

定時器中斷源

定時器中斷有內部和外部之分。內部定時器中斷由CPU內部的定時器∕計數器溢出時自動產生,故又稱為內部定時器溢出中斷;外部定時器中斷通常由外部定時電路(或外部的一個脈衝信號比如光電門)發出的脈衝通過CPU的中斷請求輸入線引起。不論是內部還是外部定時器的中斷都可以使CPU進行計時處理,以便達到時間控制的目的。

中斷嵌套

和c語言中的子程式類似,中斷也是允許嵌套的。中斷嵌套是指在同一個瞬間,CPU因回響某一中斷源的中斷請求而正在執行相應的服務程式時,且此時CPU的中斷是開放的,那它必然可以把正在執行的中斷服務程式暫停下來轉而回響和處理中斷優先權更高的中斷源的中斷請求,待處理完成後再回來繼續執行原來的中斷服務程式。因此,實現中斷嵌套的前提是,在中斷服務程式中CPU的中斷是開放的(有些處理器需要在中斷服務程式開始處設定一條開中斷的指令比如Atmel公司的AVR單片機,它的中斷優先權是固定的,且進入中斷後自動禁止CPU的中斷)。其次是要存在優先權更高的中斷請求。二者缺一不可,都是實現中斷嵌套的必要條件。

處理流程

中斷系統的目標就是實現中斷異常的處理對用戶透明.從而降低一般計算機用戶對計算機硬體知識的要求,使軟體編程更容易實現、更容易理解,如弱化中斷異常為“訊息”。中斷與異常處理必須考慮以下幾個方面的問題:確定中斷源,優先權管理,禁止管理,中斷嵌套(僅支持高級打斷低級),獲取中斷向量。中斷處理的一般流程如下:中斷請求、中斷回響、中斷服務、中斷返回。

中斷源管理

中斷源的管理包含硬體和軟體兩個方面。首先,整體設計需要規劃內部事件的數量、系統支持的軟中斷數量、向用戶開放的外部服務數量以及它們的優先權和類型編碼。其次,選擇合理的硬體實現模式。最後,作業系統的相關部分代碼的編寫是建立在前面兩者之上的。

中斷異常服務

中斷異常服務通常分為系統的服務和一般用戶的服務。對於像溢出、除出錯、未定義指令等等這些異常.其處理帶有普遍性,由系統代碼實現。對於外部中斷.則其服務系統是無法預先知道的,所以這些服務代碼需要用戶編寫並向系統註冊。下圖為一個中斷異常整體安排實例。
中央中斷系統

IDT表

對於嵌入式系統.通常中斷表約定從記憶體0地址開始。若希望強化管理,使得中斷表可以隨意定位,則在CPU內就需要設計一個IDTR暫存器來“記住”IDT表的地址。

優勢

提高CPU的工作效率

CPU有了中斷功能可以通過分時操作啟動多個外設同時工作並能對它們進行統一管理。CPU執行主程式中有關指令(一般是設備驅動程式)令各外設同時工作,而且在任何一個外設的工作完成後(比如:A/D轉換器完成了數據的轉換)都可以通過中斷得到滿意的服務(如CPU接收A/D的數據,再一次啟動A/D工作)。CPU完成A/D轉換器的啟動後,就去處理別的事件,直到A/D再一次的完成轉換並向CPU提出中斷請求,CPU才轉而對A/D轉換的數據做相應的處理。因此,CPU在和外設交換信息時通過中斷就可以避免不必要的長時間的等待和查詢,從而大大提高了CPU的工作效率和系統的吞吐能力。

提高處理的時效性.

我們知道在實時控制系統中,被控系統的實時參量、越權數據和故障信息都必須被計算機及時的採集、處理和分析判斷,以便對系統實施正確調節和控制。比如,在一架飛機上的實時控制系統,如果實時性不好,那么一旦發生緊急事件,就會發生不可挽回的重大事故。因此,可以毫不誇張的說,計算機對實時數據的處理時效常常是被控系統的生命,是影響產品質量和系統安全的關鍵所在。系統的失常和故障都可以通過中斷立刻通知CPU,使它可以迅速獲取實時數據和故障信息,並對系統作出應急處理。

相關詞條

熱門詞條

聯絡我們