1 引言
在嵌入式系統(tǒng)應(yīng)用中,異步實時交互系統(tǒng)占了很大部分,這就要求系統(tǒng)對數(shù)據(jù)或者控制信號的輸入具有較高的響應(yīng)速度。相對查詢方式而言,中斷方式具有響應(yīng)速度快、效率高等特點,因而在嵌入式系統(tǒng)中廣泛采用。隨著VLSI進入深亞微米時代,嵌入式系統(tǒng)趨向于片上系統(tǒng)(SOC),中斷控制部分不再由獨立的通用中斷控制芯片構(gòu)成,而是由系統(tǒng)開發(fā)者根據(jù)特定的中斷類型設(shè)計專用的中斷控制邏輯。
目前,對于中斷控制器的設(shè)計方法以及中斷的快速轉(zhuǎn)移等已經(jīng)有大量的研究,但是對于中斷機制的可靠性問題研究較少。事實上,中斷機制的可靠性問題是不可忽視的,因為Windows、Unix和Linux等操作系統(tǒng)中,中斷的發(fā)生可以導(dǎo)致系統(tǒng)由用戶態(tài)進入核心態(tài),如果中斷機制存在問題,在嚴重情況下可能導(dǎo)致安全漏洞和系統(tǒng)隱患。因而中斷機制的可靠性問題對于高可靠性系統(tǒng)來說是一個重要問題。本文嘗試對中斷機制的可靠性問題進行了一些探 討,從中斷檢測、中斷轉(zhuǎn)移和中斷處理三個角度提出了安全性原則和相關(guān)的解決方法,并針對這些問題提出了一種安全的中斷機制的實現(xiàn)。
2 中斷機制可靠性的討論
2.1 概述
中斷是一種控制轉(zhuǎn)移機制,它引起處理器暫停當前程序的執(zhí)行,并將控制轉(zhuǎn)移給中斷處理程序(Interrupt Service Routine),當中斷處理完成之后恢復(fù)原來程序的執(zhí)行。中斷的處理通常是對當前正在執(zhí)行的程序透明的,并且保留處理器發(fā)生中斷時的狀態(tài)。
按照中斷的起源,可以分為以下三種情況:
第一種情況,一個中斷可能是源于外部事件,一般稱之為外部中斷。大多數(shù)處理器(如x86微處理器和Alpha微處理器)都采用如下類似的方式實現(xiàn):處理器的一些物理引腳被設(shè)計成可以改變電壓(如從+5V變成-5V),從而引起CPU停止當前工作并開始執(zhí)行處理中斷的特殊代碼——中斷處理程序。依據(jù)它們?nèi)绾伟l(fā)送給處理器的方法而進一步分為可屏蔽中斷(INTR)和不可屏蔽中斷(NMI)。 大功率電感廠家 |大電流電感工廠