嵌入式系統(tǒng)多級冗余機(jī)制設(shè)計(jì)研究

時(shí)間:2022-10-20 09:32:04

導(dǎo)語:嵌入式系統(tǒng)多級冗余機(jī)制設(shè)計(jì)研究一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

嵌入式系統(tǒng)多級冗余機(jī)制設(shè)計(jì)研究

摘要:設(shè)備平臺采用NANDFlash作為系統(tǒng)存儲設(shè)備時(shí),也意味著NAND本身所固有的位反轉(zhuǎn)缺陷會給系統(tǒng)穩(wěn)定性帶來不確定因素.為解決上述問題,本文提出了一種全新的系統(tǒng)軟件架構(gòu),通過對關(guān)鍵系統(tǒng)核心組成部分進(jìn)行多級冗余備份,在不影響系統(tǒng)本身性能要求前提下,減輕甚至消除NAND帶來的位反轉(zhuǎn)效應(yīng)。最后,采用故障樹分析(FTA)方法對新架構(gòu)進(jìn)行建模仿真,并與傳統(tǒng)架構(gòu)對比分析,實(shí)驗(yàn)結(jié)果表明采用新的軟件系統(tǒng)架構(gòu)能有效地提高平臺的可靠性.

關(guān)鍵詞:NANDFlash;位反轉(zhuǎn);系統(tǒng)穩(wěn)定性;冗余備份;故障樹分析

在當(dāng)前海量存儲的大數(shù)據(jù)時(shí)代背景下,軌道交通行業(yè)主流設(shè)備需要提前布局平臺存儲性能用以支撐列車龐大的運(yùn)行數(shù)據(jù)量,從而引入了高性價(jià)比的NANDFlash這種大容量、非易失性存儲半導(dǎo)體器件.FLASH為非易失性存儲半導(dǎo)體器件[1],根據(jù)單元存儲電路結(jié)構(gòu)的差異,包含NOR和NAND兩類.由于兩者特性的差異,一般地,NOR具有高可靠性、隨機(jī)存取速度快的特性,故NOR常用于進(jìn)行程序代碼的存儲,但存儲容量小,性價(jià)比較低;而NAND具有順序讀取性能好、集成密度高的特性,故NAND常用于大數(shù)據(jù)量的存儲,性價(jià)比較高.基于上述考慮,平臺引入鎂光micro的一款NAND作為系統(tǒng)存儲器件,以應(yīng)對未來可能的平臺應(yīng)用擴(kuò)展需求,滿足設(shè)備大數(shù)據(jù)布局的需求.于是NAND該類存儲器件的壽命、數(shù)據(jù)保持等成為設(shè)備系統(tǒng)可靠性的一個(gè)重要指標(biāo).通過研究NAND的存儲機(jī)理及其生產(chǎn)工藝,該類存儲器件本身存在一個(gè)固有缺陷[2-3],會引發(fā)設(shè)備系統(tǒng)不可恢復(fù)性的啟動失敗的故障.類似的設(shè)備故障對于軌道交通這種特殊應(yīng)用行業(yè)的管理機(jī)制(封閉、少人化甚至無人化)而言,風(fēng)險(xiǎn)巨大且不可控,甚至是致命的.本文旨在滿足系統(tǒng)需求的前提下,研究整個(gè)平臺的引導(dǎo)運(yùn)行機(jī)制,針對NAND的固有工藝缺陷提出一種新型的系統(tǒng)啟動設(shè)計(jì)方案,從數(shù)量級提高整個(gè)系統(tǒng)的可靠性和穩(wěn)定性,充分保證該類設(shè)備的特定需求.

1平臺架構(gòu)

硬件架構(gòu)上,目標(biāo)設(shè)備作為某系列車型主流的牽引傳動平臺,基于德州儀器TI公司的OMAP(DSP+ARM雙核異構(gòu))處理器進(jìn)行研發(fā),引入高性價(jià)比本地大容量存儲NANDFlash,可供系統(tǒng)后續(xù)功能的可擴(kuò)展性,比如設(shè)備的故障診斷[4]、專家遠(yuǎn)程診斷系統(tǒng)PHM(PrognosticandHealthMan-agement)等,如圖1所示軟件架構(gòu)上,為保證控制平臺的數(shù)據(jù)交互實(shí)時(shí)性,采用vxWorks這種硬實(shí)時(shí)的嵌入式操作系統(tǒng),借鑒以往應(yīng)用經(jīng)驗(yàn),平臺軟件架構(gòu)初步確定為:1級RBL(ROMBootLoader)+1級UBL(UserBoot-Loader)+1級UBOOT(theUniversalBootLoader)+1級vxWorks(Kernel).整個(gè)系統(tǒng)中的軟件正常啟動流程,如圖2所示,可概括為:(1)系統(tǒng)上電,OMAP加載RBL至片上RAM中并運(yùn)行;(2)RBL將UBL從本地存儲器件NAND中,解析并加載到片上RAM中,然后跳轉(zhuǎn)PC,將CPU控制權(quán)移交給UBL;(3)UBL運(yùn)行后,采用特定校驗(yàn)算法將UBOOT從NAND中校驗(yàn)解析后,搬移到片外DDR中,然后再一次將CPU處理器控制權(quán)移交給UBOOT;(4)UBOOT目標(biāo)是構(gòu)建一個(gè)人機(jī)交互系統(tǒng),該系統(tǒng)在NAND的部分空間上搭建Yaffs文件系統(tǒng),采用硬件On-DieECC校驗(yàn)算法將內(nèi)核以文件的形式存儲,UBOOT運(yùn)行后,會自動運(yùn)行預(yù)設(shè)的腳本,將vxWorks從文件系統(tǒng)中解析搬移到DDR中;(5)內(nèi)核啟動完成后,重新掛載Yaffs文件系統(tǒng),再將相應(yīng)的系統(tǒng)應(yīng)用程序加載運(yùn)行.可靠性上,系統(tǒng)啟動所需核心系統(tǒng)程序都存儲于NAND中,意味著存儲在其內(nèi)的相應(yīng)二進(jìn)制目標(biāo)碼不能出錯,否則將引起系統(tǒng)啟動失敗.根據(jù)NAND數(shù)據(jù)存儲機(jī)制可知,在寫入數(shù)據(jù)之前必須先擦除成全F狀態(tài)(也就是對單元存儲cell電路進(jìn)行充電).經(jīng)過長期應(yīng)用實(shí)踐并研究NAND現(xiàn)有制造工藝,發(fā)現(xiàn)NAND存在一個(gè)固有缺陷:單個(gè)存儲cell偶爾會發(fā)生1變成0,也就是cell電容會緩慢放電導(dǎo)致所謂的位反轉(zhuǎn)(bitflop)造成數(shù)據(jù)的錯誤和丟失.所以設(shè)備經(jīng)常會隨著時(shí)間的推移而出現(xiàn)故障:系統(tǒng)中的程序因位反轉(zhuǎn)被破壞,尤其是系統(tǒng)啟動程序的損壞,直接造成設(shè)備啟動失敗且無法維護(hù),其影響無疑是災(zāi)難性的。

2需求研究與方案設(shè)計(jì)

平臺硬件架構(gòu)采用NAND作為系統(tǒng)存儲器件,存放于NAND中的系統(tǒng)程序就會有很大損壞風(fēng)險(xiǎn),所以必須解決NAND帶來的風(fēng)險(xiǎn),確保系統(tǒng)的完整性和可靠性.鑒于NAND的位反轉(zhuǎn),首先軟件上可以考慮對存儲數(shù)據(jù)增加ECC校驗(yàn)機(jī)制[5-6],如采用軟件校驗(yàn)、硬件校驗(yàn).兩者會在程序運(yùn)行的時(shí)間度量上有所區(qū)別,共同點(diǎn)是對數(shù)據(jù)進(jìn)行校驗(yàn),將校驗(yàn)?zāi)芰Ψ秶鷥?nèi)的錯誤數(shù)據(jù)修復(fù),否則數(shù)據(jù)校驗(yàn)失??;與此同時(shí),大量工程實(shí)踐經(jīng)驗(yàn)表明無論數(shù)據(jù)的ECC校驗(yàn)算法功能如何強(qiáng)大,數(shù)據(jù)總在一定時(shí)間內(nèi)發(fā)生失效,而關(guān)鍵該時(shí)間長短通常無法滿足設(shè)備的設(shè)計(jì)需求.一般地,設(shè)備平臺系統(tǒng)由操作系統(tǒng)和應(yīng)用程序組成,若應(yīng)用程序被破壞,只需要簡單通過對應(yīng)以太網(wǎng)等類似的維護(hù)端口進(jìn)行維護(hù),操作簡單便捷;若操作系統(tǒng)一旦損壞,則只能通過特定仿真器去維護(hù),而軌道交通行業(yè)設(shè)備運(yùn)行現(xiàn)場環(huán)境特殊,類似應(yīng)用操作是不允許的.綜上所述,確保操作系統(tǒng)的完整性和可靠性就成為了最根本的需求.本文基于海量長期的設(shè)備現(xiàn)場運(yùn)行數(shù)據(jù)以及NAND的位反轉(zhuǎn)特性研究基礎(chǔ)上,從軟件層次上提出一種全新的系統(tǒng)軟件架構(gòu),如圖3所示:(1)研究RBL(OMAP出廠固化程序,采用1bit校驗(yàn)算法)程序運(yùn)行機(jī)制,新增集成一個(gè)補(bǔ)丁至UBL,該補(bǔ)丁可將RBL最大冗余啟動UBL級數(shù)擴(kuò)充到32級.主控處理器上電復(fù)位后,讀到有效的冗余補(bǔ)丁后,RBL啟動機(jī)制自動替換為32級冗余啟動UBL(讀取第1級UBL若失敗,RBL會讀取第二級UBL,直至第32級UBL);(2)UBL(采用OMAP芯片自帶硬件4bit校驗(yàn)算法)在片上RAM中加載運(yùn)行后,讀取有效UBOOT(參考RBL冗余機(jī)制,將UBL冗余啟動UBOOT的級數(shù)暫設(shè)定為32級),整個(gè)UBL運(yùn)行過程,如圖4所示;(3)UBOOT加載至外接DDR運(yùn)行后,掛載文件系統(tǒng)并讀取對應(yīng)文件夾下的內(nèi)核鏡像(UBOOT同樣設(shè)置為32級冗余啟動Kernel,UBOOT采用NAND自帶硬件on-dieecc校驗(yàn)),并將Kernel加載到DDR中運(yùn)行,最終加載運(yùn)行App應(yīng)用程序.

3方案可靠性分析

在確定多級冗余備份系統(tǒng)架構(gòu)方案后,需要進(jìn)一步定量分析冗余系統(tǒng)的備份“級數(shù)”,并與傳統(tǒng)系統(tǒng)架構(gòu)進(jìn)行對比來評估對應(yīng)系統(tǒng)可靠性指標(biāo).針對設(shè)備采用新型軟件系統(tǒng)架構(gòu)后,本文通過引入表征特性的邏輯門類型,采用故障樹分析法FTA(FaultTreeAnalysis)[7-8]來模擬真實(shí)設(shè)備運(yùn)行狀態(tài)的轉(zhuǎn)移,從軟件層次上進(jìn)行系統(tǒng)可靠性分析預(yù)測.在新型系統(tǒng)架構(gòu)方案中,系統(tǒng)啟動失敗事件的主要相關(guān)因素有三個(gè):A表示UBL啟動失敗,B表示UBOOT啟動失敗,C表示內(nèi)核啟動失敗.現(xiàn)假定三者冗余級數(shù)分別為m,n和s,通過研究分析可知能夠?qū)е孪到y(tǒng)啟動失敗的有以下幾種情況:(1)UBL、UBOOT以及VxWorks內(nèi)核之間為“或門”關(guān)系,即只要A、B、C三者中只要有一個(gè)環(huán)節(jié)失敗,系統(tǒng)就會發(fā)生故障;(2)A表示的UBL啟動環(huán)節(jié)中,只要在m級UBL中有1級是完整正常的情況下,A環(huán)節(jié)就能正常,只有m級全部損壞,才會引發(fā)系統(tǒng)故障;(3)B表示的UBOOT啟動環(huán)節(jié)中,只要在n級UBOOT中有1級是完整正常的情況下,B環(huán)節(jié)就能正常,只有n級全部損壞,才會發(fā)生系統(tǒng)故障;(4)C表示的Kernel內(nèi)核啟動環(huán)節(jié)中,s份鏡像內(nèi)核文件只要有一份是正常,系統(tǒng)能夠正常啟動.假設(shè)各個(gè)模塊的失效事件是相互獨(dú)立事件,令NAND每個(gè)block中因位反轉(zhuǎn)導(dǎo)致數(shù)據(jù)出錯的概率為Pb(該概率會隨著時(shí)間發(fā)生改變),已知UBL只占1個(gè)block,而UBOOT占2個(gè)block,Kernel內(nèi)核占15個(gè)block,根據(jù)上述分析,首先將系統(tǒng)故障進(jìn)行模塊化得到獨(dú)立的靜態(tài)子樹,建立該系統(tǒng)的FTA模型[9-10],如圖5所示:(1)1級UBL出錯的概率為:Pb,則UBL啟動失敗的概率為:PA=(Pb)m(1)(2)1級UBOOT出錯的概率為:1-(1-Pb)2,則UBOOT啟動失敗的概率為:PB=(1-(1-Pb)2)n(2)(3)1級Kernel內(nèi)核出錯的概率為:1-(1-Pb)15,則內(nèi)核啟動失敗的概率為:PC=(1-(1-Pb)15)s(3)綜上分析,新老系統(tǒng)架構(gòu)啟動失敗的概率為:Pold=1-(1-Pb)*(1-Pb)2*(1-Pb)15=1-(1-Pb)18(4)Pnew=1-(1-PA)*(1-PB)*(1-PC)(5)圖5多級冗余架構(gòu)FTA分析圖針對上文中故障樹分析法FTA提出的系統(tǒng)可靠性數(shù)學(xué)模型,本文采用2016版MATLAB進(jìn)行仿真,通過對仿真結(jié)果研究分析可得出以下結(jié)論:(1)隨著時(shí)間的推移,當(dāng)block的失效概率在正常的范圍之內(nèi)(Pb不超過1%,實(shí)際應(yīng)用時(shí)對NAND相關(guān)項(xiàng)點(diǎn)會要求更嚴(yán)苛)慢慢增加時(shí),新型軟件架構(gòu)在冗余級數(shù)m=n=s=32時(shí),能夠確保系統(tǒng)可靠運(yùn)行,如圖6所示.(2)實(shí)際工程應(yīng)用中從節(jié)約UBL所占存儲空間的角度出發(fā),基于(1)中的結(jié)論,在n=s=32時(shí),將m作為單獨(dú)變量進(jìn)行考慮,從仿真結(jié)果來看m=4時(shí),系統(tǒng)的失效概率趨于穩(wěn)定,達(dá)到目標(biāo)要求,如圖7所示.(3)從節(jié)約UBOOT所占存儲空間的角度出發(fā),基于(2)中的結(jié)論,在m=4,s=32時(shí),將n作為單獨(dú)變量進(jìn)行考慮,從仿真結(jié)果來看n=6時(shí),系統(tǒng)的失效概率趨于穩(wěn)定,達(dá)到目標(biāo)要求,如圖8所示.(4)基于上述結(jié)論,在m=4,n=6時(shí),將Pb作為變量,從仿真結(jié)果可以看出Kernel冗余級數(shù)s在s=5時(shí),系統(tǒng)的失效概率趨于穩(wěn)定,達(dá)到目標(biāo)要求,如圖9所示.(5)綜合上述結(jié)論,m=4,n=6,s=5時(shí)(也就是冗余系統(tǒng)架構(gòu)可采用4級UBL+6級UBOOT+5級Kernel),在確保系統(tǒng)可靠性的前提下,能夠最大化系統(tǒng)存儲空間利用率.通過對比,當(dāng)block失效概率在正常范圍內(nèi)時(shí)(Pb不超過1%),傳統(tǒng)軟件架構(gòu)系統(tǒng)的系統(tǒng)失效率遠(yuǎn)遠(yuǎn)超過冗余軟件架構(gòu)系統(tǒng),如圖10所示.可見本文提出的冗余架構(gòu)系統(tǒng)是可靠的,對嵌入式設(shè)備的可靠性的提升是有效的.(6)從表1實(shí)驗(yàn)仿真數(shù)據(jù)的統(tǒng)計(jì)結(jié)果來看,當(dāng)NAND的Pb越小時(shí)(處于正常位反轉(zhuǎn)失效范圍內(nèi)),采用新型的冗余軟件架構(gòu)的嵌入式設(shè)備穩(wěn)定性越高,相較于傳統(tǒng)軟件框架優(yōu)越性也越明顯.(7)從反向結(jié)論出發(fā),若該類設(shè)備使用NAND作為系統(tǒng)存儲器件,并采用本文提出的多級冗余系統(tǒng)架構(gòu)后,在正常的設(shè)備周期內(nèi)(也就是正常的位反轉(zhuǎn)概率Pb所對應(yīng)的正常時(shí)間范圍),系統(tǒng)的可靠性依舊無法滿足,可以初步得出存儲器件不合格的結(jié)論,可進(jìn)行對應(yīng)的芯片失效分析.

4結(jié)束語

本文針對設(shè)備采用NAND存儲器件存在系統(tǒng)風(fēng)險(xiǎn)的工程應(yīng)用現(xiàn)象,提出了一種全新的冗余軟件系統(tǒng)架構(gòu),并通過故障樹分析法FTA進(jìn)行了系統(tǒng)可靠性分析及仿真驗(yàn)證,用少量存儲空間換取系統(tǒng)可靠性大幅度提升.目前該方案已經(jīng)應(yīng)用于中車某科研院所旗下產(chǎn)品中,包括軌道交通行業(yè)以及光伏、風(fēng)力、空調(diào)等新能源領(lǐng)域行業(yè)的某型號的控制變流器平臺.據(jù)不完全統(tǒng)計(jì),該技術(shù)方案每年約產(chǎn)生高達(dá)上百萬的經(jīng)濟(jì)效益,而且有望進(jìn)一步在其他類似工程領(lǐng)域推廣應(yīng)用.

作者:宋凱林 龔定宇 單位:湖南工程學(xué)院 電氣與信息工程學(xué)院