當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]1 引言在嵌入式系統(tǒng)應(yīng)用中,異步實(shí)時(shí)交互系統(tǒng)占了很大部分,這就要求系統(tǒng)對(duì)數(shù)據(jù)或者控制信號(hào)的輸入具有較高的響應(yīng)速度。相對(duì)查詢(xún)方式而言,中斷方式具有響應(yīng)速度快、效率高等特點(diǎn),因而在嵌入式系統(tǒng)中廣泛采用。隨著

1 引言

在嵌入式系統(tǒng)應(yīng)用中,異步實(shí)時(shí)交互系統(tǒng)占了很大部分,這就要求系統(tǒng)對(duì)數(shù)據(jù)或者控制信號(hào)的輸入具有較高的響應(yīng)速度。相對(duì)查詢(xún)方式而言,中斷方式具有響應(yīng)速度快、效率高等特點(diǎn),因而在嵌入式系統(tǒng)中廣泛采用。隨著VLSI進(jìn)入深亞微米時(shí)代,嵌入式系統(tǒng)趨向于片上系統(tǒng)(SOC),中斷控制部分不再由獨(dú)立的通用中斷控制芯片構(gòu)成,而是由系統(tǒng)開(kāi)發(fā)者根據(jù)特定的中斷類(lèi)型設(shè)計(jì)專(zhuān)用的中斷控制邏輯。

目前,對(duì)于中斷控制器的設(shè)計(jì)方法以及中斷的快速轉(zhuǎn)移等已經(jīng)有大量的研究,但是對(duì)于中斷機(jī)制的可靠性問(wèn)題研究較少。事實(shí)上,中斷機(jī)制的可靠性問(wèn)題是不可忽視的,因?yàn)閃indows、Unix和Linux等操作系統(tǒng)中,中斷的發(fā)生可以導(dǎo)致系統(tǒng)由用戶(hù)態(tài)進(jìn)入核心態(tài),如果中斷機(jī)制存在問(wèn)題,在嚴(yán)重情況下可能導(dǎo)致安全漏洞和系統(tǒng)隱患。因而中斷機(jī)制的可靠性問(wèn)題對(duì)于高可靠性系統(tǒng)來(lái)說(shuō)是一個(gè)重要問(wèn)題。本文嘗試對(duì)中斷機(jī)制的可靠性問(wèn)題進(jìn)行了一些探討,從中斷檢測(cè)、中斷轉(zhuǎn)移和中斷處理三個(gè)角度提出了安全性原則和相關(guān)的解決方法,并針對(duì)這些問(wèn)題提出了一種安全的中斷機(jī)制的實(shí)現(xiàn)。

2 中斷機(jī)制可靠性的討論

2.1 概述

中斷是一種控制轉(zhuǎn)移機(jī)制,它引起處理器暫停當(dāng)前程序的執(zhí)行,并將控制轉(zhuǎn)移給中斷處理程序(Interrupt Service Routine),當(dāng)中斷處理完成之后恢復(fù)原來(lái)程序的執(zhí)行。中斷的處理通常是對(duì)當(dāng)前正在執(zhí)行的程序透明的,并且保留處理器發(fā)生中斷時(shí)的狀態(tài)。

按照中斷的起源,可以分為以下三種情況:

第一種情況,一個(gè)中斷可能是源于外部事件,一般稱(chēng)之為外部中斷。大多數(shù)處理器(如x86微處理器和Alpha微處理器)都采用如下類(lèi)似的方式實(shí)現(xiàn):處理器的一些物理引腳被設(shè)計(jì)成可以改變電壓(如從+5V變成-5V),從而引起CPU停止當(dāng)前工作并開(kāi)始執(zhí)行處理中斷的特殊代碼——中斷處理程序。依據(jù)它們?nèi)绾伟l(fā)送給處理器的方法而進(jìn)一步分為可屏蔽中斷(INTR)和不可屏蔽中斷(NMI)。

第二種情況,一個(gè)中斷可能是源于處理器內(nèi)部,一般稱(chēng)之為異常。這種中斷一般對(duì)應(yīng)于一條指令執(zhí)行過(guò)程中檢測(cè)到的某種狀態(tài)。

第三種情況,一個(gè)中斷可能是源于處理器指令的,一般稱(chēng)之為軟件中斷,如x86微處理器中的INT指令。軟件中斷是一個(gè)指令執(zhí)行的直接結(jié)果。

在本文中,將以上三種中斷統(tǒng)稱(chēng)為中斷。

一般來(lái)說(shuō),一次中斷從發(fā)生到處理結(jié)束可以分為中斷檢測(cè)、中斷轉(zhuǎn)移和中斷處理三個(gè)階段,以下依次討論其中的可靠性問(wèn)題。

2.2 中斷檢測(cè)中的可靠性問(wèn)題

對(duì)于中斷檢測(cè)的基本要求是準(zhǔn)確及時(shí)檢測(cè)所發(fā)生的中斷,并將檢測(cè)到的中斷遞交中斷轉(zhuǎn)移單元。這里所涉及的安全問(wèn)題主要是不會(huì)遺漏發(fā)生的中斷,不因干擾而誤報(bào)錯(cuò)誤的中斷。

對(duì)于前者,要求中斷檢測(cè)單元具有一定的檢測(cè)速度,并且在遞交中斷時(shí)如果中斷轉(zhuǎn)移單元處于忙碌狀態(tài),需要中斷檢測(cè)單元具有保存所發(fā)生的中斷并可延遲提交的能力。

對(duì)于后者,一般外部中斷管腳在噪音干擾下可能有短時(shí)間的跳變,如果采用簡(jiǎn)單的電平檢測(cè)或者邊沿檢測(cè)就會(huì)產(chǎn)生誤報(bào)中斷的情況。一種解決的方法是采用邊沿檢測(cè),但是要求邊沿兩側(cè)的低電平和高電平持續(xù)若干周期。另一種解決的方法是采用電平檢測(cè),如低電平有效,但是要求該電平必須持續(xù)若干周期。這樣,通過(guò)加寬檢測(cè)范圍的方法,就可以濾除部分噪聲干擾的影響,減少誤報(bào)中斷的幾率,維持系統(tǒng)正常的運(yùn)行。

2.3 中斷轉(zhuǎn)移中的可靠性問(wèn)題

中斷發(fā)生之后,中斷檢測(cè)單元會(huì)觸發(fā)中斷轉(zhuǎn)移單元,中斷轉(zhuǎn)移單元應(yīng)該中斷當(dāng)前任務(wù)的運(yùn)行,轉(zhuǎn)向中斷處理程序。對(duì)于簡(jiǎn)單的中斷機(jī)制而言,中斷轉(zhuǎn)移過(guò)程可能只有一個(gè)周期或者幾個(gè)周期;但是,對(duì)于復(fù)雜的中斷機(jī)制而言,中斷轉(zhuǎn)移過(guò)程可能需要上百個(gè)周期,如x86微處理器中的某些中斷轉(zhuǎn)移即是如此。所以,中斷轉(zhuǎn)移中的安全問(wèn)題主要是必須保證中斷轉(zhuǎn)移的完整性,或者中斷轉(zhuǎn)移的不可中斷性,否則,系統(tǒng)狀態(tài)將進(jìn)入一種未知的狀態(tài)。

一種解決方法是在中斷轉(zhuǎn)移的過(guò)程中將中斷轉(zhuǎn)移單元置于忙碌狀態(tài),中斷檢測(cè)單元應(yīng)停止中斷的提交。

2.4 中斷處理中的可靠性問(wèn)題

中斷處理中面臨的安全問(wèn)題主要是正確的維護(hù)系統(tǒng)狀態(tài),包括處理器狀態(tài)(如寄存器等)和系統(tǒng)表狀態(tài)等。中斷處理可以使用兩種方式,一種是發(fā)生中斷的任務(wù)中的某段程序來(lái)進(jìn)行處理,另一種是采用另外一個(gè)獨(dú)立的任務(wù)來(lái)進(jìn)行處理。前者只需要在同一任務(wù)內(nèi)進(jìn)行控制轉(zhuǎn)移,只需保存中斷處理程序使用的部分寄存器,比較簡(jiǎn)單,轉(zhuǎn)移過(guò)程也比較好;后者需要發(fā)生任務(wù)切換,可以保存處理器的全部寄存器狀態(tài),對(duì)中斷具有較好的隔離性,但是需要花費(fèi)的時(shí)鐘周期數(shù)目較多。為了兼顧轉(zhuǎn)移的效率和處理的安全程度,有必要對(duì)全部中斷進(jìn)行合理的分類(lèi),對(duì)于非嚴(yán)重的中斷采用當(dāng)前任務(wù)處理,對(duì)于嚴(yán)重的中斷必須采用獨(dú)立的任務(wù)進(jìn)行處理。如果對(duì)于系統(tǒng)的性能要求較高,可以為中斷處理程序?qū)iT(mén)保留一些寄存器使用,這些保留的寄存器在非中斷處理程序中是不可見(jiàn)的。

中斷處理時(shí)另外一個(gè)安全問(wèn)題和中斷轉(zhuǎn)移類(lèi)似,即正在執(zhí)行中斷處理程序又發(fā)生了另外的中斷,中斷處理程序應(yīng)該繼續(xù)執(zhí)行還是響應(yīng)新的中斷。如果肓目的忽略中斷繼續(xù)執(zhí)行,可能錯(cuò)過(guò)對(duì)某些中斷的處理時(shí)機(jī);如果及時(shí)響應(yīng)新發(fā)生的中斷,多次中斷嵌套可能導(dǎo)致堆棧溢出等問(wèn)題。一種解決方法是對(duì)中斷分級(jí),高優(yōu)先級(jí)中斷可以中斷低優(yōu)先級(jí)的中斷處理程序,但是低優(yōu)先級(jí)中斷不可中斷高優(yōu)先級(jí)的中斷處理程序;同時(shí),對(duì)中斷分類(lèi),限制某些嚴(yán)重中斷嵌套的層數(shù),而不限制非嚴(yán)重中斷的嵌套層數(shù)。

3 “龍騰S1”片上系統(tǒng)中的中斷機(jī)制可靠性設(shè)計(jì)

在西北工業(yè)大學(xué)最近實(shí)現(xiàn)的一種面向工業(yè)控制的SOC芯片“龍騰S1”中,所實(shí)現(xiàn)的中斷機(jī)制嚴(yán)格的考慮了安全性問(wèn)題。“龍騰Sl”片卜系統(tǒng)應(yīng)用于工業(yè)控制的嵌入式應(yīng)用中,內(nèi)含32位嵌入式微處理器、PC104總線(xiàn)控制器、SDRAM控制、電子盤(pán)控制器和串并口控制器等,是PC104系統(tǒng)的高度集成。“龍騰 S1”支持256個(gè)硬件中斷和軟件中斷,中斷的整體分布和主要屬性如表1所示。

由表1可以看到,除NMI之外,中斷分為三種類(lèi)型:故障、陷阱和中止。故障主要用于指令執(zhí)行之前的中斷檢測(cè),故障處理完畢之后,故障指令可以重新執(zhí)行;陷阱主要用于指令執(zhí)行結(jié)束之后的巾斷通知,陷阱處理完畢之后,系統(tǒng)將繼續(xù)執(zhí)行下一條應(yīng)該執(zhí)行的指令;中止用來(lái)匯報(bào)系統(tǒng)的嚴(yán)重錯(cuò)誤,系統(tǒng)接收到中止異常之后,處理程序需要重建各種系統(tǒng)表,并可能需要重新啟動(dòng)操作系統(tǒng)。

3.1 中斷檢測(cè)中的可靠性考慮

對(duì)于外部中斷的檢測(cè),采取了上升沿的檢測(cè)方法,要求低電平和高電平各持續(xù)8個(gè)周期以上。

對(duì)于中斷提交的時(shí)機(jī),指令內(nèi)部中斷可在中斷轉(zhuǎn)移單元空閑的任何時(shí)間提交,以便盡快的中斷轉(zhuǎn)移并進(jìn)人中斷處理程序;而對(duì)于外部中斷則需要在指令窗口之間提交(即上一條指令執(zhí)行結(jié)束和下一條指令即將開(kāi)始之時(shí)),以便保持指令執(zhí)行的完整性。

3.2 中斷轉(zhuǎn)移中的可靠性考慮

由于中斷轉(zhuǎn)移周期較長(zhǎng),所以中斷轉(zhuǎn)移是依靠處理器固化的微程序?qū)崿F(xiàn)的。為了防止中斷轉(zhuǎn)移被新的中斷所打斷,中斷轉(zhuǎn)移微程序首先設(shè)置中斷電路中的狀態(tài)標(biāo)志字為忙碌狀態(tài),這樣可以避免中斷檢測(cè)電路再次提交新的中斷,從而保證中斷轉(zhuǎn)移的完整性。在中斷轉(zhuǎn)移完畢后,中斷轉(zhuǎn)移微程序設(shè)置中斷電路的狀態(tài)標(biāo)志字為空閑狀態(tài)。

3.3 中斷處理中的可靠性考慮

“龍騰S1”為中斷的處理提供了兩種方式:中斷/陷阱門(mén)和任務(wù)門(mén)。前者無(wú)需任務(wù)切換,而后者實(shí)施任務(wù)切換。如前所述,對(duì)于嚴(yán)重錯(cuò)誤,如無(wú)效TSS(任務(wù)狀態(tài)段)、雙故障等,必須使用任務(wù)門(mén)進(jìn)行中斷處理,這樣可以保證處理程序在一個(gè)有效的任務(wù)環(huán)境之中。其他中斷通??稍诋?dāng)前任務(wù)環(huán)境中進(jìn)行處理。中斷門(mén)和陷阱門(mén)的唯一區(qū)別是中斷門(mén)屏蔽可屏蔽中斷,而陷阱門(mén)不屏蔽可屏蔽中斷,用戶(hù)可以根據(jù)需要進(jìn)行選擇。

“龍騰S1”為了保證中斷處理過(guò)程中的堆棧安全,為不同特權(quán)級(jí)設(shè)置了不同的堆棧。“龍騰 S1”支持四種特權(quán)級(jí),一般操作系統(tǒng)運(yùn)行在最高特權(quán)級(jí)0,用戶(hù)程序運(yùn)行在最低特權(quán)級(jí)3。當(dāng)用戶(hù)程序發(fā)生中斷時(shí),無(wú)論是通過(guò)中斷/陷阱門(mén)處理還是任務(wù)門(mén)處理,如果處理器由最低特權(quán)級(jí)轉(zhuǎn)換到最高特權(quán)級(jí),堆棧也會(huì)隨之改變。通過(guò)這種機(jī)制,可以保證中斷處理程序具有自己的堆棧,從而可以保證有足夠的空間來(lái)保存處理器狀態(tài)和任務(wù)上下文等。有關(guān)四種特權(quán)級(jí)下的堆棧指針信息全部保存在任務(wù)的任務(wù)狀態(tài)段(Task State Segment)中,堆棧切換時(shí)新的堆棧將從任務(wù)狀態(tài)段中讀取。

“龍騰S1”中為中斷定義的優(yōu)先級(jí)如上表所示,一般在處理低優(yōu)先級(jí)中斷時(shí)又發(fā)生高優(yōu)先級(jí)中斷可以串行處理。但是,發(fā)生某些嚴(yán)重問(wèn)題時(shí),系統(tǒng)將不再發(fā)生新產(chǎn)生的中斷,而是匯報(bào)雙故障中斷。按照各種中斷的嚴(yán)重程序,從輕到重將中斷分為良性、協(xié)作、頁(yè)故障和中止,如上表所示。至于哪些中斷的連續(xù)發(fā)生會(huì)導(dǎo)致雙故障,需要按照中斷性質(zhì)進(jìn)行考慮,如表2所示。

表2中第一行所列為正在處理的中斷性質(zhì),第一列為又發(fā)生的中斷性質(zhì),表格內(nèi)容中所采取的策略:串行處理,雙故障、頁(yè)故障和中止??煽吹竭B續(xù)發(fā)生良性異常,由于中斷嚴(yán)重程序較低,系統(tǒng)策略為串行處理;而對(duì)于最為嚴(yán)重的中止,發(fā)生任何中斷都會(huì)導(dǎo)致系統(tǒng)進(jìn)入停機(jī)狀態(tài),即只有通過(guò)NMI信號(hào)輸入或者系統(tǒng)復(fù)位才能使處理器重新啟動(dòng)。最后,我們給出“龍騰S1”中的中斷檢測(cè)電路(圖1)和中斷轉(zhuǎn)移流程(圖2)。

4 小結(jié)

中斷機(jī)制為處理外部請(qǐng)求(如外設(shè)請(qǐng)求)和指令執(zhí)行過(guò)程中的一些異常情況和事件提供了有力的支持。中斷的處理將會(huì)導(dǎo)致控制的轉(zhuǎn)移——從應(yīng)用程序轉(zhuǎn)移到系統(tǒng)的中斷處理程序。本文重點(diǎn)討論了這一過(guò)程中中斷檢測(cè)、中斷轉(zhuǎn)移和中斷處理三個(gè)階段中的可靠性問(wèn)題,分別給出了若干設(shè)計(jì)規(guī)則,最后給出了一種工業(yè)控制用片上系統(tǒng)“龍騰S1”中的安全考慮和實(shí)現(xiàn)方法。“龍騰S1”片上系統(tǒng)已經(jīng)使用 SMIC 0.18微米工藝流片,樣片測(cè)試中可以運(yùn)行未經(jīng)修改的DOS 6.22操作系統(tǒng),并能運(yùn)行大量應(yīng)用程序,從而證明本文針對(duì)中斷的可靠性設(shè)計(jì)是有效的。本文的研究結(jié)果對(duì)口益普遍的片上系統(tǒng)中的中斷控制單元設(shè)計(jì)有著重要的參考價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉