當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]雙機(jī)容錯(cuò)實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)與分析

摘要:為滿足對(duì)安全關(guān)鍵領(lǐng)域日益增長(zhǎng)的可靠性需求,提出一種基于松耦合多處理器體系結(jié)構(gòu)的雙機(jī)容錯(cuò)實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)方案。該方案無(wú)縫整合了計(jì)算機(jī)硬件級(jí)、操作系統(tǒng)級(jí)、應(yīng)用級(jí)的容錯(cuò)技術(shù),以達(dá)到從整體上提高系統(tǒng)可靠性的目的。


關(guān)鍵詞:容錯(cuò) 雙機(jī)熱備份 可靠性 實(shí)時(shí)嵌入式系統(tǒng)

引 言

  實(shí)時(shí)系統(tǒng)的基本特性是任務(wù)響應(yīng)時(shí)間的確定和系統(tǒng)處理任務(wù)的高吞吐量。相對(duì)于其他計(jì)算機(jī)系統(tǒng)而言,實(shí)時(shí)系統(tǒng)對(duì)可靠性和防危要求十分嚴(yán)格。特別是所謂的安全關(guān)鍵系統(tǒng)SCS(Safety Critical Systems),這類系統(tǒng)失效,將帶來(lái)災(zāi)難性的后果。在實(shí)時(shí)嵌入式系統(tǒng)的運(yùn)行過(guò)程中,容錯(cuò)是最重要的可靠性保障手段。

  容錯(cuò)實(shí)時(shí)系統(tǒng)的研究主要集中在兩個(gè)方面[1]:① 改進(jìn)實(shí)時(shí)調(diào)度算法,使之確保實(shí)時(shí)任務(wù)在正常運(yùn)行和遇到錯(cuò)誤時(shí),均能在規(guī)定時(shí)限到來(lái)以前獲得正確的輸出。② 將過(guò)去應(yīng)用于普通計(jì)算機(jī)系統(tǒng)中的冗余容錯(cuò)策略移植到實(shí)時(shí)系統(tǒng)中。

  在具有硬件容錯(cuò)能力的計(jì)算機(jī)系統(tǒng)中,其失效65%來(lái)自軟件[2],僅有8%來(lái)自于硬件。因此,軟件容錯(cuò)能力成為決定計(jì)算機(jī)系統(tǒng)可靠性的關(guān)鍵。為了在出現(xiàn)硬件或軟件的暫時(shí)或永久故障的情況下,保證關(guān)鍵任務(wù)仍能在規(guī)定的時(shí)限范圍內(nèi)完成運(yùn)算,并輸出正確的結(jié)果,提出一種雙處理器實(shí)時(shí)嵌入式容錯(cuò)系統(tǒng)體系結(jié)構(gòu)。該系統(tǒng)結(jié)構(gòu)采用多處理器體系結(jié)構(gòu),實(shí)現(xiàn)計(jì)算機(jī)之間的通信,并無(wú)縫整合了計(jì)算機(jī)硬件、操作系統(tǒng)、應(yīng)用軟件級(jí)的軟件容錯(cuò)設(shè)計(jì),達(dá)到從整體上提高系統(tǒng)可靠性的目的。

1 雙機(jī)容錯(cuò)實(shí)時(shí)系統(tǒng)的體系結(jié)構(gòu)

  本系統(tǒng)采用圖1所示的雙機(jī)容錯(cuò)系統(tǒng)硬件結(jié)構(gòu)模型。該系統(tǒng)在雙機(jī)比較系統(tǒng)的基礎(chǔ)上,結(jié)合多處理機(jī)的松耦合與緊耦合系統(tǒng)結(jié)構(gòu),在不同的處理機(jī)間通過(guò)通道互連實(shí)現(xiàn)通信,為在硬件容錯(cuò)中結(jié)合軟件容錯(cuò)提供可能。

      
                圖1 雙機(jī)容錯(cuò)系統(tǒng)結(jié)構(gòu)模型

  A機(jī)和B機(jī)各有獨(dú)自的外圍控制邏輯和外設(shè),這樣不會(huì)引起系統(tǒng)資源的競(jìng)爭(zhēng),增加整體系統(tǒng)的穩(wěn)定性。當(dāng)然,這樣是以花費(fèi)更多的硬件設(shè)施為代價(jià)的。比較器及不一致檢測(cè)用專門設(shè)計(jì)的仲裁檢測(cè)電路來(lái)實(shí)現(xiàn),其根據(jù)A機(jī)與B機(jī)周期向其發(fā)送的自檢測(cè)信號(hào)來(lái)判斷A機(jī)系統(tǒng)和B機(jī)系統(tǒng)運(yùn)行的狀況。

  雙機(jī)系統(tǒng)的運(yùn)行狀態(tài)如下:
 ?、?如果A機(jī)與B機(jī)均正常運(yùn)行,則將計(jì)算機(jī)A作為主系統(tǒng),計(jì)算機(jī)B作為備份使用,A機(jī)的運(yùn)行結(jié)果作為系統(tǒng)輸出,A機(jī)運(yùn)行到檢測(cè)點(diǎn),向B機(jī)發(fā)送日志,B機(jī)更新日志列表。
  ② 如果A機(jī)正常而B機(jī)故障,亦將A機(jī)的運(yùn)行結(jié)果作為系統(tǒng)輸出,同時(shí)將B機(jī)的運(yùn)行故障狀態(tài)報(bào)告給A機(jī),并向B機(jī)進(jìn)行復(fù)位控制操作。
 ?、?如果A機(jī)故障,B機(jī)正常,則進(jìn)行開關(guān)切換操作,B機(jī)進(jìn)行系統(tǒng)備份任務(wù)重調(diào)度,B機(jī)運(yùn)行結(jié)果作為系統(tǒng)輸出,并向A機(jī)進(jìn)行復(fù)位控制操作,在檢測(cè)點(diǎn)更新A機(jī)日志,保持需要備份的任務(wù)狀態(tài)一致。

2 軟件設(shè)計(jì)與實(shí)現(xiàn)

  圖2所示模型結(jié)合嵌入式實(shí)時(shí)系統(tǒng)的體系結(jié)構(gòu),采用層次結(jié)構(gòu)和模塊結(jié)構(gòu)相結(jié)合,無(wú)縫整合了計(jì)算機(jī)硬件、操作系統(tǒng)、應(yīng)用軟件級(jí)的軟件容錯(cuò)設(shè)計(jì)。在整體上采用分層的結(jié)構(gòu)模型,克服了軟、硬件分離和脫節(jié)的問(wèn)題,提高系統(tǒng)的靈活性和可移植性。模型的每一層均可以看作是一個(gè)相對(duì)獨(dú)立的系統(tǒng)。在每一層中按照系統(tǒng)功能,劃分不同的功能模塊。

    
                圖2 雙機(jī)容錯(cuò)系統(tǒng)軟件體系結(jié)構(gòu)

  該系統(tǒng)采用對(duì)稱結(jié)構(gòu),為支持容錯(cuò)處理,每個(gè)節(jié)點(diǎn)從下到上分為3個(gè)主要部分,即MCFT(Multiprocessor Communication for Fault?Tolerance)、RTOS系統(tǒng)級(jí)容錯(cuò)組件、任務(wù)級(jí)動(dòng)態(tài)冗余組件。

  2.1 多機(jī)容錯(cuò)通信模塊MCFT

  在操作系統(tǒng)與硬件之間加入MCFT層,MCFT作為BSP(Board Support Package)的一部分,作為硬件平臺(tái)的抽象層,為操作系統(tǒng)提供統(tǒng)一的界面,提高系統(tǒng)的可移植性。有容錯(cuò)需求的任務(wù),通過(guò)MCFT所提供的功能傳遞日志,保持主系統(tǒng)和備份系統(tǒng)的關(guān)鍵任務(wù)的狀態(tài)和數(shù)據(jù)一致。MCFT屏蔽了底層通信的具體實(shí)現(xiàn)細(xì)節(jié),使系統(tǒng)的實(shí)現(xiàn)與連接介質(zhì)無(wú)關(guān)。

  MPFT管理著一些數(shù)據(jù)包,并且在各個(gè)節(jié)點(diǎn)之間發(fā)送和接收這些數(shù)據(jù)包,數(shù)據(jù)包的結(jié)構(gòu)如下:
  typedef struct{?
    MP_packet_Classes the_class;?
    Ob jects_Id id;?
    Ob jects_Id source_tid;?
    Priority_Control source_priority;?
    unsigned32 return_code;?
    unsigned32 length;?
    unsigned32 to_convert;?
    Watchdog_Interval timeout;?
    }MP_packet_Prefix;?

  2.2 RTOS系統(tǒng)級(jí)容錯(cuò)組件

  RTOS系統(tǒng)級(jí)容錯(cuò)組件,包括系統(tǒng)內(nèi)核級(jí)容錯(cuò)支持組件、系統(tǒng)自診斷組件和主/備用機(jī)切換支持組件。

  (1) 內(nèi)核級(jí)容錯(cuò)支持組件

  為支持操作系統(tǒng)級(jí)和應(yīng)用級(jí)通信,在該系統(tǒng)中,每個(gè)節(jié)點(diǎn)上保存兩個(gè)對(duì)象表,一個(gè)本地任務(wù)表,一個(gè)容錯(cuò)任務(wù)表。本地任務(wù)表在每個(gè)節(jié)點(diǎn)上都是不同的,它包含在此節(jié)點(diǎn)上創(chuàng)建的所有任務(wù)。容錯(cuò)對(duì)象表包含系統(tǒng)中所有的容錯(cuò)任務(wù),在所有節(jié)點(diǎn)上是一樣的。為保持在所有節(jié)點(diǎn)上容錯(cuò)任務(wù)表的一致性,每個(gè)節(jié)點(diǎn)對(duì)容錯(cuò)對(duì)象的創(chuàng)建、刪除等都必須通知給備份節(jié)點(diǎn)。利用檢查點(diǎn)技術(shù)和傳遞日志法,保持主系統(tǒng)和備份系統(tǒng)的備份任務(wù)的狀態(tài)和數(shù)據(jù)一致。一旦主機(jī)發(fā)生故障,系統(tǒng)程序自動(dòng)進(jìn)行主/備用機(jī)切換,備用機(jī)系統(tǒng)使備份任務(wù)就緒,利用實(shí)時(shí)任務(wù)的調(diào)度策略,使備份任務(wù)在備份機(jī)上發(fā)生重調(diào)度,成為主機(jī)。

  (2) 系統(tǒng)自診斷組件

  如圖3所示,系統(tǒng)中采用自診斷的方法來(lái)診斷系統(tǒng)級(jí)的故障,用任務(wù)級(jí)的檢測(cè)來(lái)診斷應(yīng)用級(jí)的故障。

  自診斷劃分為幾個(gè)不同的測(cè)試階段,系統(tǒng)啟動(dòng)自檢測(cè)階段和周期自檢測(cè)階段。自動(dòng)啟動(dòng)診斷的因素有:主/備用機(jī)定時(shí)切換和主機(jī)發(fā)生故障。周期自檢測(cè)階段根據(jù)系統(tǒng)需求,周期性檢測(cè)外設(shè)和通信口。每個(gè)階段對(duì)應(yīng)設(shè)備的幾種功能塊,包括CPU的自診斷、中斷響應(yīng)自診斷、串口自診斷、定時(shí)器自診斷、離散量自診斷、RAM自診斷等。

  由于結(jié)果比較是實(shí)時(shí)系統(tǒng)中任何事務(wù)處理都需要經(jīng)歷的步驟,因此把任務(wù)級(jí)的故障檢測(cè)放到結(jié)果判別部分進(jìn)行。

  (3) 主/備用機(jī)切換支持組件

  仲裁檢測(cè)電路中對(duì)主/備用機(jī)設(shè)置了“看門狗”監(jiān)視器。當(dāng)主/備用機(jī)處于正常工作狀態(tài)時(shí),運(yùn)行于CPU上的某一任務(wù)周期性地對(duì)“看門狗”施加復(fù)位信號(hào),這樣,“看門狗”計(jì)數(shù)器就不可能產(chǎn)生溢出觸發(fā)信號(hào);當(dāng)CPU出現(xiàn)故障時(shí),“看門狗”會(huì)輸出一個(gè)離散觸發(fā)信號(hào)并發(fā)出報(bào)警,此時(shí),系統(tǒng)進(jìn)行自動(dòng)切換,讓備用的系統(tǒng)機(jī)工作。


                      圖3 主控流程

  2.3 任務(wù)級(jí)動(dòng)態(tài)冗余

  在實(shí)時(shí)多任務(wù)系統(tǒng)中,采用另一種軟件冗余方法——任務(wù)級(jí)動(dòng)態(tài)冗余[3]。任務(wù)級(jí)動(dòng)態(tài)冗余方法是實(shí)時(shí)系統(tǒng)中瞬間故障的恢復(fù)方法之一。

  在實(shí)時(shí)多任務(wù)的環(huán)境下,充分利用操作系統(tǒng)提供的功能,對(duì)各個(gè)基本任務(wù)建立后備任務(wù)作為冗余,并對(duì)后備任務(wù)進(jìn)行容錯(cuò)調(diào)度,從而起到類似于重試或卷回恢復(fù)的作用。利用檢查點(diǎn)技術(shù)和傳遞日志法保持主系統(tǒng)和備份系統(tǒng)的狀態(tài)的一致性,實(shí)現(xiàn)錯(cuò)誤恢復(fù),有較高的性價(jià)比。
  
  根據(jù)應(yīng)用程序,結(jié)合實(shí)時(shí)性要求,采用以下的措施:

 ?、?把應(yīng)用程序分解成多個(gè)任務(wù),任務(wù)以過(guò)程的形式出現(xiàn),各個(gè)任務(wù)進(jìn)入運(yùn)行的順序是從1到?n,并在每個(gè)任務(wù)的最后設(shè)置檢查點(diǎn),傳遞日志。
 ?、?根據(jù)應(yīng)用程序的要求事先給各個(gè)任務(wù)安排優(yōu)先級(jí),使得任務(wù)可以根據(jù)要求及時(shí)占有處理器,實(shí)現(xiàn)實(shí)時(shí)處理。
 ?、?為各基本任務(wù)準(zhǔn)備一個(gè)后備任務(wù)存放在內(nèi)存中,平時(shí)后備任務(wù)不建立,不占有系統(tǒng)資源,僅在需要時(shí)才激活使用,后備任務(wù)的優(yōu)先級(jí)比相應(yīng)的優(yōu)先級(jí)要高。馬上建立就搶占執(zhí)行,是某種意義上的重試或程序卷回。
  ④ 為實(shí)現(xiàn)恢復(fù)功能的后備任務(wù),可以和原有任務(wù)完全一樣,也可以是替換算法。

  下面的算法能為各個(gè)任務(wù)產(chǎn)生容錯(cuò)調(diào)度,從而實(shí)現(xiàn)任務(wù)冗余:

  Step1: 建立任務(wù) T1,T2,…,Tn;??
  Step2: while N=1;N<=Nmax;?
?   N=N+1; ?
    運(yùn)行任務(wù)Ti; ?
    檢測(cè)Ti的結(jié)果; ?
    IF結(jié)果通過(guò)THEN輸出結(jié)果,刪除任務(wù)Ti; ?
    ELSE激活任務(wù)Ti
   ?。籦reak; ?
    END
  Step3:N>Nmax 系統(tǒng)報(bào)警

  當(dāng)后備任務(wù)執(zhí)行了Nmax次之后還通不過(guò)檢測(cè),就認(rèn)為系統(tǒng)出現(xiàn)永久故障,系統(tǒng)報(bào)警。Nmax是個(gè)閥門值,是由實(shí)時(shí)要求所決定的。

3 可靠性分析

  在考慮了雙機(jī)的切換問(wèn)題(包括切入成功率,與此相關(guān)的切入時(shí)間和再次切入的時(shí)間及其故障判別問(wèn)題)后,完整的雙機(jī)容錯(cuò)系統(tǒng)的穩(wěn)態(tài)可用度為[4]

        

  其中:λ為平均失效率,β為故障診斷率,是平均診斷時(shí)間的倒數(shù);μ為平均維修率,是平均維修時(shí)間的倒數(shù);α為加入失效率,是平均切入時(shí)間的倒數(shù);C為故障判別率;α′為再次切入失效率,是再次切入時(shí)間的倒數(shù)(重啟雙工時(shí)間的倒數(shù));D為切入成功率。

  采用對(duì)稱雙機(jī)系統(tǒng),在典型值的計(jì)算中可以獲得99.999 95%的可用度。

4 結(jié)論?

  隨著實(shí)時(shí)系統(tǒng)在安全領(lǐng)域內(nèi)越來(lái)越多的應(yīng)用,可靠性已經(jīng)成為衡量系統(tǒng)優(yōu)劣的重要因素之一。傳統(tǒng)的實(shí)時(shí)系統(tǒng)容錯(cuò)只滿足了系統(tǒng)某一方面的容錯(cuò)需求。為了在出現(xiàn)硬件或軟件的暫時(shí)或永久故障的情況下,系統(tǒng)仍能在規(guī)定的時(shí)限范圍內(nèi)完成運(yùn)算,并輸出正確的結(jié)果,本文提出一個(gè)軟、硬件結(jié)合的完整的解決方案,能滿足系統(tǒng)的強(qiáng)實(shí)時(shí)性、高可靠性、服務(wù)不斷流的要求。此方案應(yīng)用于RTEMS中,具有很高的可靠性。

                參考文獻(xiàn)

1 陳宇. 高可靠容錯(cuò)實(shí)時(shí)系統(tǒng)的支撐技術(shù)研究:[博士研究生論文]. 成都:電子科技大學(xué),2003-05
2 Kim K. The Distrubuted Recovery Block Scheme, in Software Fault Tolerance, M.R.Lyu, ed. Wiley,1995:189~2104?
3 KrishnaC, Shin K. On Scheduling Tasks with a Quick Recovery from Failure. IEEE Trans. Computer.May,1986, C-35:448~454?
4 金士堯,胡華平,李宏亮. 具有容錯(cuò)結(jié)構(gòu)的高可用計(jì)算機(jī)雙系統(tǒng)研究.中國(guó)工程科學(xué),1999,1 (3) : 46~50


陳筠:碩士研究生,主要研究方向?yàn)榍度胧蕉嗵幚砥鞑僮飨到y(tǒng)、嵌入式可靠性技術(shù)。桑楠:副教授,主要研究方向?yàn)榭尚判杂?jì)算理論與應(yīng)用。熊光澤:教授,博士生導(dǎo)師,主要研究方向?yàn)閷?shí)時(shí)計(jì)算系統(tǒng)與應(yīng)用。

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

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

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

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

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

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(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ì)開幕式在貴陽(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ā)表演講稱,數(shù)字世界的話語(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)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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