片上系統(tǒng)中斷機制的可靠性設計_第1頁
片上系統(tǒng)中斷機制的可靠性設計_第2頁
片上系統(tǒng)中斷機制的可靠性設計_第3頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、    片上系統(tǒng)中斷機制的可靠性設計1引言在嵌入式系統(tǒng)應用中,異步實時交互系統(tǒng)占了很大部分,這就要求系統(tǒng)對數(shù)據(jù)或者控制信號的輸入具有較高的響應速度。相對查詢方式而言,中斷方式具有響應速度快、效率高等特點,因而在嵌入式系統(tǒng)中廣泛采用。隨著VLSI進入深亞微米時代,嵌入式系統(tǒng)趨向于片上系統(tǒng)(SoC),中斷控制部分不再由獨立的通用中斷控制芯片構成,而是由系統(tǒng)開發(fā)者根據(jù)特定的中斷類型設計專用的中斷控制邏輯。目前,對于中斷控制器的設計方法以及中斷的快速1 引言在嵌入式系統(tǒng)應用中,異步實時交互系統(tǒng)占了很大部分,這就要求系統(tǒng)對數(shù)據(jù)或者控制信號的輸入具有較高的響應速度。

2、相對查詢方式而言,中斷方式具有響應速度快、效率高等特點,因而在嵌入式系統(tǒng)中廣泛采用。隨著VLSI進入深亞微米時代,嵌入式系統(tǒng)趨向于片上系統(tǒng)(SoC),中斷控制部分不再由獨立的通用中斷控制芯片構成,而是由系統(tǒng)開發(fā)者根據(jù)特定的中斷類型設計專用的中斷控制邏輯。目前,對于中斷控制器的設計方法以及中斷的快速轉移等已經(jīng)有大量的研究,但是對于中斷機制的可靠性問題研究較少。事實上,中斷機制的可靠性問題是不可忽視的,因為Windows、Unix和Linux等操作系統(tǒng)中,中斷的發(fā)生可以導致系統(tǒng)由用戶態(tài)進入核心態(tài),如果中斷機制存在問題,在嚴重情況下可能導致安全漏洞和系統(tǒng)隱患。因而中斷機制的可靠性問題對于高可靠性系統(tǒng)

3、來說是一個重要問題。本文嘗試對中斷機制的可靠性問題進行了一些探討,從中斷檢測、中斷轉移和中斷處理三個角度提出了安全性原則和相關的解決方法,并針對這些問題提出了一種安全的中斷機制的實現(xiàn)。2 中斷機制可靠性的探討2.1 概述中斷是一種控制轉移機制,它引起處理器暫停當前程序的執(zhí)行,并將控制轉移給中斷處理程序(Interrupt Service Routine),當中斷處理完成之后恢復原來程序的執(zhí)行。中斷的處理通常是對當前正在執(zhí)行的程序透明的,并且保留處理器發(fā)生中斷時的狀態(tài)。按照中斷的起源,可以分為以下三種情況:第一種情況,一個中斷可能是源于外部事件,一般稱之為外部中斷。大多數(shù)處理器(如x86微處理器

4、和Alpha微處理器)都采用如下類似的方式實現(xiàn):處理器的一些物理引腳被設計成可以改變電壓(如從+5V變成-5V),從而引起CPU停止當前工作并開始執(zhí)行處理中斷的特殊代碼中斷處理程序。依據(jù)它們如何發(fā)送給處理器的方法而進一步分為可屏蔽中斷(INTR)和不可屏蔽中斷(NMI)。第二種情況,一個中斷可能是源于處理器內部,一般稱之為異常。這種中斷一般對應于一條指令執(zhí)行過程中檢測到的某種狀態(tài)。第三種情況,一個中斷可能是源于處理器指令的,一般稱之為軟件中斷,如x86微處理器中的INT指令。軟件中斷是一個指令執(zhí)行的直接結果。在本文中,將以上三種中斷統(tǒng)稱為中斷。一般來說,一次中斷從發(fā)生到處理結束可以分為中斷檢測

5、、中斷轉移和中斷處理三個階段,以下依次討論其中的可靠性問題。2.2 中斷檢測中的可靠性問題對于中斷檢測的基本要求是準確及時檢測所發(fā)生的中斷,并將檢測到的中斷遞交中斷轉移單元。這里所涉及的安全問題主要是不會遺漏發(fā)生的中斷,不因干擾而誤報錯誤的中斷。對于前者,要求中斷檢測單元具有一定的檢測速度,并且在遞交中斷時如果中斷轉移單元處于忙碌狀態(tài),需要中斷檢測單元具有保存所發(fā)生的中斷并可延遲提交的能力。對于后者,一般外部中斷管腳在噪音干擾下可能有短時間的跳變,如果采用簡單的電平檢測或者邊沿檢測就會產(chǎn)生誤報中斷的情況。一種解決的方法是采用邊沿檢測,但是要求邊沿兩側的低電平和高電平持續(xù)若干周期。另一種解決的方

6、法是采用電平檢測,如低電平有效,但是要求該電平必須持續(xù)若干周期。這樣,通過加寬檢測范圍的方法,就可以濾除部分噪聲干擾的影響,減少誤報中斷的幾率,維持系統(tǒng)正常的運行。2.3 中斷轉移中的可靠性問題中斷發(fā)生之后,中斷檢測單元會觸發(fā)中斷轉移單元,中斷轉移單元應該中斷當前任務的運行,轉向中斷處理程序。對于簡單的中斷機制而言,中斷轉移過程可能只有一個周期或者幾個周期;但是,對于復雜的中斷機制而言,中斷轉移過程可能需要上百個周期,如x86微處理器中的某些中斷轉移即是如此。所以,中斷轉移中的安全問題主要是必須保證中斷轉移的完整性,或者中斷轉移的不可中斷性,否則,系統(tǒng)狀態(tài)將進入一種未知的狀態(tài)。一種解決方法是在

7、中斷轉移的過程中將中斷轉移單元置于忙碌狀態(tài),中斷檢測單元應停止中斷的提交。2.4 中斷處理中的可靠性問題中斷處理中面臨的安全問題主要是正確的維護系統(tǒng)狀態(tài),包括處理器狀態(tài)(如寄存器等)和系統(tǒng)表狀態(tài)等。中斷處理可以使用兩種方式,一種是發(fā)生中斷的任務中的某段程序來進行處理,另一種是采用另外一個獨立的任務來進行處理。前者只需要在同一任務內進行控制轉移,只需保存中斷處理程序使用的部分寄存器,比較簡單,轉移過程也比較好;后者需要發(fā)生任務切換,可以保存處理器的全部寄存器狀態(tài),對中斷具有較好的隔離性,但是需要花費的時鐘周期數(shù)目較多。為了兼顧轉移的效率和處理的安全程度,有必要對全部中斷進行合理的分類,對于非嚴重

8、的中斷采用當前任務處理,對于嚴重的中斷必須采用獨立的任務進行處理。如果對于系統(tǒng)的性能要求較高,可以為中斷處理程序專門保留一些寄存器使用,這些保留的寄存器在非中斷處理程序中是不可見的。中斷處理時另外一個安全問題和中斷轉移類似,即正在執(zhí)行中斷處理程序又發(fā)生了另外的中斷,中斷處理程序應該繼續(xù)執(zhí)行還是響應新的中斷。如果肓目的忽略中斷繼續(xù)執(zhí)行,可能錯過對某些中斷的處理時機;如果及時響應新發(fā)生的中斷,多次中斷嵌套可能導致堆棧溢出等問題。一種解決方法是對中斷分級,高優(yōu)先級中斷可以中斷低優(yōu)先級的中斷處理程序,但是低優(yōu)先級中斷不可中斷高優(yōu)先級的中斷處理程序;同時,對中斷分類,限制某些嚴重中斷嵌套的層數(shù),而不限制非嚴重中斷的嵌套層數(shù)。3 “龍騰S1”片上系統(tǒng)中的中斷機制可靠性設計在西北工業(yè)大學最近實現(xiàn)的一種面向工業(yè)控制的SoC芯片“龍騰S1”中,所實現(xiàn)的中斷機制嚴格的考慮了安全性問題。“龍騰Sl”片卜系統(tǒng)應用于工業(yè)控制的嵌入式應用中,內含32位嵌入式微處理器、PC104總線控制器、SDRAM控制、電子盤控制器和串并口控制器等,是PC104系統(tǒng)的高度集成。“龍騰S1”支持256個硬件中斷和軟件中斷,中斷的整體分布和主要屬性如表1所示。由表1可以看到,除NMI之外,中斷分為三種類型:故障、陷阱和中止。

溫馨提示

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

評論

0/150

提交評論