定義
不同的計算機其硬體結構和軟體指令是不完全相同的,因此,中斷系統也是不相同的。計算機的中斷系統能夠加強CPU對多任務事件的處理能力。中斷機制是現代計算機系統中的基礎設施之一,它在系統中起著通信網路作用,以協調系統對各種外部事件的回響和處理。中斷是實現多道程式設計的必要條件。 中斷是CPU對系統發生的某個事件作出的一種反應。 引起中斷的事件稱為中斷源。中斷源向CPU提出處理的請求稱為中斷請求。發生中斷時被打斷程式的暫停點稱為斷點。CPU暫停現行程式而轉為回響中斷請求的過程稱為中斷回響。處理中斷源的程式稱為中斷處理程式。CPU執行有關的中斷處理程式稱為中斷處理。而返回斷點的過程稱為中斷返回。中斷的實現實行軟體和硬體綜合完成,硬體部分叫做硬體裝置,軟體部分稱為軟體處理程式。
回響處理
大多數中斷系統都具有如下幾方面的操作,這些操作是按照中斷的執行先後次序排列的。①接收中斷請求。②查看本級中斷禁止位,若該位為1則本級中斷源參加優先權排隊。③中斷優先權選擇。④處理機執行完一條指令後或者這條指令已無法執行完,則立即中止現行程式。接著,中斷部件根據中斷級去指定相應的主存單元,並把被中斷的指令地址和處理機當前的主要狀態信息存放在此單元中。⑤中斷部件根據中斷級又指定另外的主存單元,從這些單元中取出處理機新的狀態信息和該級中斷控制程式的起始地址。⑥執行中斷控制程式和相應的中斷服務程式。⑦執行完中斷服務程式後,利用專用指令使處理機返回被中斷的程式或轉向其他程式。
相關概念
程式狀態字和向量中斷
這是兩個與中斷回響和處理有密切關係的概念。
① 程式狀態字:每個程式均有自己的程式狀態字。現行程式的程式狀態字放在處理機的程式狀態字暫存器中。程式狀態字中最主要的內容有指令地址、條件碼、地址保護鍵,中斷禁止和中斷回響時的中斷源記錄等。中斷回響和處理操作的第④步和第⑤步就是交換程式狀態字操作。
② 向量中斷:對應每一級中斷都有一個向量,這些向量順序存放在主存的指定單元中。向量的內容是:相應的中斷服務程式起始地址和處理機狀態字(主要是指令地址)。在中斷回響時,由中斷部件提供中斷向量的地址,就可取出該向量。中斷回響和處理操作的第⑤步就是取中斷向量操作。在採用向量中斷的機器中一般不再使用程式狀態字。
系統功能
1)實現中斷回響和中斷返回
當CPU收到中斷請求後,能根據具體情況決定是否回響中斷,如果CPU沒有更急、更重要的工作,則在執行完當前指令後回響這一中斷請求。CPU中斷回響過程如下:首先,將斷點處的PC值(即下一條應執行指令的地址)推入堆疊保留下來,這稱為保護斷點,由硬體自動執行。然後,將有關的暫存器內容和標誌位狀態推入堆疊保留下來,這稱為保護現場,由用戶自己編程完成。保護斷點和現場後即可執行中斷服務程式,執行完畢,CPU由中斷服務程式返回主程式,中斷返回過程如下:首先恢復原保留暫存器的內容和標誌位的狀態,這稱為恢復現場,由用戶編程完成。然後,再加返回指令RETI,RETI指令的功能是恢復PC值,使CPU返回斷點,這稱為恢復斷點。恢復現場和斷點後,CPU將繼續執行原主程式,中斷回響過程到此為止。
2)實現優先權排隊
通常,系統中有多箇中斷源,當有多箇中斷源同時發出中斷請求時,要求計算機能確定哪箇中斷更緊迫,以便首先回響。為此,計算機給每箇中斷源規定了優先權別,稱為優先權。這樣,當多箇中斷源同時發出中斷請求時,優先權高的中斷能先被回響,只有優先權高的中斷處理結束後才能回響優先權低的中斷。計算機按中斷源優先權高低逐次回響的過程稱優先權排隊,這個過程可通過硬體電路來實現,亦可通過軟體查詢來實現。
3)實現中斷嵌套
當CPU回響某一中斷時,若有優先權高的中斷源發出中斷請求,則CPU能中斷正在進行的中斷服務程式,並保留這個程式的斷點(類似於子程式嵌套),回響高級中斷,高級中斷處理結束以後,再繼續進行被中斷的中斷服務程式,這個過程稱為中斷嵌套。如果發出新的中斷請求的中斷源的優先權級別與正在處理的中斷源同級或更低時,CPU不會回響這箇中斷請求,直至正在處理的中斷服務程式執行完以後才能去處理新的中斷請求。
源分類
中斷源是指能夠引起中斷的原因。
一台處理機可能有很多中斷源,但按其性質和處理方法,大致可分為如下五類。
① 機器故障中斷。
② 程式性中斷。現行程式本身的異常事件引起的,可分為以下三種:一是程式性錯誤,例如指令或運算元的地址邊界錯,非法操作碼和除數為零等;二是產生特殊的運算結果,例如定點溢出;三是程式出現某些預先確定要跟蹤的事件,跟蹤操作主要用於程式調試。有些機器把程式性中斷稱為“異常”,不稱為中斷。
③ 輸入-輸出設備中斷。
④ 外中斷。來自控制台中斷開關、計時器、時鐘或其他設備,這類中斷的處理較簡單,實時性強。
⑤ 調用管理程式。用戶程式利用專用指令“調用管理程式”發中斷請求,是用戶程式和作業系統之間的聯繫橋樑。
在51單片機中有5箇中斷源
中斷號 優先權 中斷源 中斷入口地址
0 1(最高) 外部中斷0 0003H
1 2 定時器0 000BH
2 3 外部中斷1 0013H
3 4 定時器1 001BH
4 5 串口中斷 0023H
優先權
幾個中斷請求可能同時出現,但中斷系統只能按一定的次序來回響和處理。可最先被回響的中斷具有最高優先權,按優先權別順序進行處理。優先權高低是由中斷部件的中斷排隊線路確定的。
中斷級
當機器設定很多中斷源時,為了簡化設計,對中斷源分組管理。具有相同中斷優先權的中斷源構成一個中斷級。同一級中斷使用同一個中斷控制程式起點。
中斷禁止
對應於各中斷級設定相應的禁止位。只有禁止位為1時,該中斷級才能參加中斷優先權排隊。中斷禁止位可由專用指令建立,因而可以靈活地調整中斷優先權。有些機器針對某些中斷源也設定禁止位,只有禁止位為1時,相應的中斷源才起作用。