ibm公司的機器,通常把中斷源分為6類:
1.重新啟動中斷
這是為操作人員重新啟動乙個重新用的,在一般情況下,處理機不能禁止這類中斷。
2.機器檢驗錯中斷
當發生硬體或軟體故障時發生機器校驗錯中斷。用乙個64位的機器檢驗中斷碼儲存中斷的原因及其嚴重程度。在機器的檢驗儲存區中還儲存有更加詳細的中斷原因和故障位置的說明。機器檢驗出錯中斷主要包括有電源故障、運算器誤動作、主儲存器校驗錯、輸入輸出通道硬體故障及處理機的其它各種故障等。
3.程式性錯誤引起的中斷
主要包括指令或資料格式錯誤,在程式執行過程**現非法操作碼、主存保護錯誤、位址越界錯誤、各種運算溢位錯誤、除數為零錯誤、有效位為零錯誤、使用者態下使用管態指令錯誤等。另外,還有程式的事件記錄、監督程式對事件的檢測引起的中斷等。
4.訪問管理程式中斷
當使用者程式要呼叫管理程式時,執行訪管指令引起的中斷。處理機一般不能禁止這類中斷。
5.外部事件中斷
事件可以來自機器外部,也可能來自機器內部。包括各種用於記時、記費、控制的定時器中斷,各種用於與其它機器和系統聯絡的外來訊號中斷,用於操作員對機器進行干預的中斷鍵的中斷。
外部事件中斷又分為兩類,一類中斷在沒有得到處理機響應時能繼續保留,而另一類中斷如果處理機不響應則不再保留。
6.輸入輸出中斷
用於處理機管理各種外圍裝置,管理通道處理機等。
對於後四類中斷源,它們各有乙個16位的中斷碼,這個中斷碼用來區分各個具體的中斷源。當處理機響應中斷,從硬體入口進入各類中斷源之後,可以通過這個中斷碼來找到是哪個中斷源發出的中斷請求。
有許多機器把中斷源分為可遮蔽中斷和不可遮蔽中斷兩大類,或稱為一般中斷和異常中斷(exeception interrupt)。對於不可遮蔽中斷,不能通過軟體遮蔽它,它一旦申請中斷服務,處理機必定會響應。對於可遮蔽中斷,可以通過軟體把它遮蔽掉。例如,如果不希望某一台印表機工作,可以通過一條指令向這台印表機發乙個中斷遮蔽碼。在這以後,即使這台印表機申請中斷服務,這個中斷申請訊號也不能送往處理機。
有的機器按照中斷事件的緊迫程度來劃分可遮蔽中斷和不可遮蔽中斷,例如,把電源掉電、機器硬故障誤等劃分為不可遮蔽中斷。
在ibm 370系列機中,把執行現行指令引起的中斷劃分為不可遮蔽中斷。例如,運算結果溢位、主存頁面失效等。這類中斷一般不能被遮蔽,一旦出現,處理機必須立即響應並給予處理,否則這些異常的中斷請求將會因為被遮蔽而被丟失,造成程式無法繼續執行下去或者程式執行錯誤。
可遮蔽中斷是指那些與當前程序無關的中斷事件,如機器硬體故障引起的中斷請求、外圍裝置的中斷請求、定時器的中斷請求等。這些中斷可以被遮蔽,沒有得到處理機響應的中斷請求被儲存在中斷暫存器中不會被丟失,當遮蔽被解除之後,仍然能夠繼續得到響應和處理。
在異常中斷中,有一類稱為自陷(trap)中斷,它的中斷請求發生在一些特殊指令的末尾,經中斷服務程式處理後返回到正常執行程式的下一條指令繼續執行。另一類稱為故障(fault)中斷,它的中斷請求可能發生在任何一條指令的執行過程中,經中斷服務程式處理後,要返回到原先發生故障的那條指令處重新執行引起故障的那條指令。還有一類稱為失效(abort)中斷,它的中斷請求也可能發生在一條指令的執行過程中,但是,除非強制干預或系統重新復位,否則機器無法繼續正常工作下去。
優先順序:
訪管》程式性》重新啟動
硬體故障優先順序最高
訪管》外部中斷
中斷型別標誌
在呼叫request irq函式申請乙個irq 時,會傳入相應的中斷型別標誌。對於這些標誌新舊版本的核心實現是不完全相同的。irqf disabled 3.16.7 ct7版本核心中此標誌是沒有地方用到的。此標誌表示中斷在處理的時候是關中斷的,不能被另外的中斷所打斷。這篇文章裡有講到此標誌在新核心中...
ARM Linux 中斷分析
在具體的 arm 晶元中會有很多的中斷型別,每一種型別的中斷用以上結構來表示 struct irqdesc irq desc nr irqs nr irqs 根據不同的 mcu 會有所區別 在通過request irq 函式註冊中斷服務程式的時候,將會把中斷向量和中斷服務程式對應起來。我們來看一下 ...
中斷分析(五)
中斷分析 五 初始化中斷描述符表的具體實現 一 中斷描述符表的預初始化 用256個指向ignore int中斷門的入口位址填充中斷描述符表。它不是真正的初始化idt,等到分頁和核心跳轉到page offset處時才真正的進行初始化。確定所有相關的準備都已就緒之後,中斷可以在任何地方發生。setup ...