嵌入式系統(tǒng)多級冗余機制設(shè)計研究
時間:2022-10-20 09:32:04
導(dǎo)語:嵌入式系統(tǒng)多級冗余機制設(shè)計研究一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:設(shè)備平臺采用NANDFlash作為系統(tǒng)存儲設(shè)備時,也意味著NAND本身所固有的位反轉(zhuǎn)缺陷會給系統(tǒng)穩(wěn)定性帶來不確定因素.為解決上述問題,本文提出了一種全新的系統(tǒng)軟件架構(gòu),通過對關(guān)鍵系統(tǒng)核心組成部分進行多級冗余備份,在不影響系統(tǒng)本身性能要求前提下,減輕甚至消除NAND帶來的位反轉(zhuǎn)效應(yīng)。最后,采用故障樹分析(FTA)方法對新架構(gòu)進行建模仿真,并與傳統(tǒng)架構(gòu)對比分析,實驗結(jié)果表明采用新的軟件系統(tǒng)架構(gòu)能有效地提高平臺的可靠性.
關(guān)鍵詞:NANDFlash;位反轉(zhuǎn);系統(tǒng)穩(wěn)定性;冗余備份;故障樹分析
在當(dāng)前海量存儲的大數(shù)據(jù)時代背景下,軌道交通行業(yè)主流設(shè)備需要提前布局平臺存儲性能用以支撐列車龐大的運行數(shù)據(jù)量,從而引入了高性價比的NANDFlash這種大容量、非易失性存儲半導(dǎo)體器件.FLASH為非易失性存儲半導(dǎo)體器件[1],根據(jù)單元存儲電路結(jié)構(gòu)的差異,包含NOR和NAND兩類.由于兩者特性的差異,一般地,NOR具有高可靠性、隨機存取速度快的特性,故NOR常用于進行程序代碼的存儲,但存儲容量小,性價比較低;而NAND具有順序讀取性能好、集成密度高的特性,故NAND常用于大數(shù)據(jù)量的存儲,性價比較高.基于上述考慮,平臺引入鎂光micro的一款NAND作為系統(tǒng)存儲器件,以應(yīng)對未來可能的平臺應(yīng)用擴展需求,滿足設(shè)備大數(shù)據(jù)布局的需求.于是NAND該類存儲器件的壽命、數(shù)據(jù)保持等成為設(shè)備系統(tǒng)可靠性的一個重要指標.通過研究NAND的存儲機理及其生產(chǎn)工藝,該類存儲器件本身存在一個固有缺陷[2-3],會引發(fā)設(shè)備系統(tǒng)不可恢復(fù)性的啟動失敗的故障.類似的設(shè)備故障對于軌道交通這種特殊應(yīng)用行業(yè)的管理機制(封閉、少人化甚至無人化)而言,風(fēng)險巨大且不可控,甚至是致命的.本文旨在滿足系統(tǒng)需求的前提下,研究整個平臺的引導(dǎo)運行機制,針對NAND的固有工藝缺陷提出一種新型的系統(tǒng)啟動設(shè)計方案,從數(shù)量級提高整個系統(tǒng)的可靠性和穩(wěn)定性,充分保證該類設(shè)備的特定需求.
1平臺架構(gòu)
硬件架構(gòu)上,目標設(shè)備作為某系列車型主流的牽引傳動平臺,基于德州儀器TI公司的OMAP(DSP+ARM雙核異構(gòu))處理器進行研發(fā),引入高性價比本地大容量存儲NANDFlash,可供系統(tǒng)后續(xù)功能的可擴展性,比如設(shè)備的故障診斷[4]、專家遠程診斷系統(tǒng)PHM(PrognosticandHealthMan-agement)等,如圖1所示軟件架構(gòu)上,為保證控制平臺的數(shù)據(jù)交互實時性,采用vxWorks這種硬實時的嵌入式操作系統(tǒng),借鑒以往應(yīng)用經(jīng)驗,平臺軟件架構(gòu)初步確定為:1級RBL(ROMBootLoader)+1級UBL(UserBoot-Loader)+1級UBOOT(theUniversalBootLoader)+1級vxWorks(Kernel).整個系統(tǒng)中的軟件正常啟動流程,如圖2所示,可概括為:(1)系統(tǒng)上電,OMAP加載RBL至片上RAM中并運行;(2)RBL將UBL從本地存儲器件NAND中,解析并加載到片上RAM中,然后跳轉(zhuǎn)PC,將CPU控制權(quán)移交給UBL;(3)UBL運行后,采用特定校驗算法將UBOOT從NAND中校驗解析后,搬移到片外DDR中,然后再一次將CPU處理器控制權(quán)移交給UBOOT;(4)UBOOT目標是構(gòu)建一個人機交互系統(tǒng),該系統(tǒng)在NAND的部分空間上搭建Yaffs文件系統(tǒng),采用硬件On-DieECC校驗算法將內(nèi)核以文件的形式存儲,UBOOT運行后,會自動運行預(yù)設(shè)的腳本,將vxWorks從文件系統(tǒng)中解析搬移到DDR中;(5)內(nèi)核啟動完成后,重新掛載Yaffs文件系統(tǒng),再將相應(yīng)的系統(tǒng)應(yīng)用程序加載運行.可靠性上,系統(tǒng)啟動所需核心系統(tǒng)程序都存儲于NAND中,意味著存儲在其內(nèi)的相應(yīng)二進制目標碼不能出錯,否則將引起系統(tǒng)啟動失敗.根據(jù)NAND數(shù)據(jù)存儲機制可知,在寫入數(shù)據(jù)之前必須先擦除成全F狀態(tài)(也就是對單元存儲cell電路進行充電).經(jīng)過長期應(yīng)用實踐并研究NAND現(xiàn)有制造工藝,發(fā)現(xiàn)NAND存在一個固有缺陷:單個存儲cell偶爾會發(fā)生1變成0,也就是cell電容會緩慢放電導(dǎo)致所謂的位反轉(zhuǎn)(bitflop)造成數(shù)據(jù)的錯誤和丟失.所以設(shè)備經(jīng)常會隨著時間的推移而出現(xiàn)故障:系統(tǒng)中的程序因位反轉(zhuǎn)被破壞,尤其是系統(tǒng)啟動程序的損壞,直接造成設(shè)備啟動失敗且無法維護,其影響無疑是災(zāi)難性的。
2需求研究與方案設(shè)計
平臺硬件架構(gòu)采用NAND作為系統(tǒng)存儲器件,存放于NAND中的系統(tǒng)程序就會有很大損壞風(fēng)險,所以必須解決NAND帶來的風(fēng)險,確保系統(tǒng)的完整性和可靠性.鑒于NAND的位反轉(zhuǎn),首先軟件上可以考慮對存儲數(shù)據(jù)增加ECC校驗機制[5-6],如采用軟件校驗、硬件校驗.兩者會在程序運行的時間度量上有所區(qū)別,共同點是對數(shù)據(jù)進行校驗,將校驗?zāi)芰Ψ秶鷥?nèi)的錯誤數(shù)據(jù)修復(fù),否則數(shù)據(jù)校驗失?。慌c此同時,大量工程實踐經(jīng)驗表明無論數(shù)據(jù)的ECC校驗算法功能如何強大,數(shù)據(jù)總在一定時間內(nèi)發(fā)生失效,而關(guān)鍵該時間長短通常無法滿足設(shè)備的設(shè)計需求.一般地,設(shè)備平臺系統(tǒng)由操作系統(tǒng)和應(yīng)用程序組成,若應(yīng)用程序被破壞,只需要簡單通過對應(yīng)以太網(wǎng)等類似的維護端口進行維護,操作簡單便捷;若操作系統(tǒng)一旦損壞,則只能通過特定仿真器去維護,而軌道交通行業(yè)設(shè)備運行現(xiàn)場環(huán)境特殊,類似應(yīng)用操作是不允許的.綜上所述,確保操作系統(tǒng)的完整性和可靠性就成為了最根本的需求.本文基于海量長期的設(shè)備現(xiàn)場運行數(shù)據(jù)以及NAND的位反轉(zhuǎn)特性研究基礎(chǔ)上,從軟件層次上提出一種全新的系統(tǒng)軟件架構(gòu),如圖3所示:(1)研究RBL(OMAP出廠固化程序,采用1bit校驗算法)程序運行機制,新增集成一個補丁至UBL,該補丁可將RBL最大冗余啟動UBL級數(shù)擴充到32級.主控處理器上電復(fù)位后,讀到有效的冗余補丁后,RBL啟動機制自動替換為32級冗余啟動UBL(讀取第1級UBL若失敗,RBL會讀取第二級UBL,直至第32級UBL);(2)UBL(采用OMAP芯片自帶硬件4bit校驗算法)在片上RAM中加載運行后,讀取有效UBOOT(參考RBL冗余機制,將UBL冗余啟動UBOOT的級數(shù)暫設(shè)定為32級),整個UBL運行過程,如圖4所示;(3)UBOOT加載至外接DDR運行后,掛載文件系統(tǒng)并讀取對應(yīng)文件夾下的內(nèi)核鏡像(UBOOT同樣設(shè)置為32級冗余啟動Kernel,UBOOT采用NAND自帶硬件on-dieecc校驗),并將Kernel加載到DDR中運行,最終加載運行App應(yīng)用程序.
3方案可靠性分析
在確定多級冗余備份系統(tǒng)架構(gòu)方案后,需要進一步定量分析冗余系統(tǒng)的備份“級數(shù)”,并與傳統(tǒng)系統(tǒng)架構(gòu)進行對比來評估對應(yīng)系統(tǒng)可靠性指標.針對設(shè)備采用新型軟件系統(tǒng)架構(gòu)后,本文通過引入表征特性的邏輯門類型,采用故障樹分析法FTA(FaultTreeAnalysis)[7-8]來模擬真實設(shè)備運行狀態(tài)的轉(zhuǎn)移,從軟件層次上進行系統(tǒng)可靠性分析預(yù)測.在新型系統(tǒng)架構(gòu)方案中,系統(tǒng)啟動失敗事件的主要相關(guān)因素有三個: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三者中只要有一個環(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è)各個模塊的失效事件是相互獨立事件,令NAND每個block中因位反轉(zhuǎn)導(dǎo)致數(shù)據(jù)出錯的概率為Pb(該概率會隨著時間發(fā)生改變),已知UBL只占1個block,而UBOOT占2個block,Kernel內(nèi)核占15個block,根據(jù)上述分析,首先將系統(tǒng)故障進行模塊化得到獨立的靜態(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進行仿真,通過對仿真結(jié)果研究分析可得出以下結(jié)論:(1)隨著時間的推移,當(dāng)block的失效概率在正常的范圍之內(nèi)(Pb不超過1%,實際應(yīng)用時對NAND相關(guān)項點會要求更嚴苛)慢慢增加時,新型軟件架構(gòu)在冗余級數(shù)m=n=s=32時,能夠確保系統(tǒng)可靠運行,如圖6所示.(2)實際工程應(yīng)用中從節(jié)約UBL所占存儲空間的角度出發(fā),基于(1)中的結(jié)論,在n=s=32時,將m作為單獨變量進行考慮,從仿真結(jié)果來看m=4時,系統(tǒng)的失效概率趨于穩(wěn)定,達到目標要求,如圖7所示.(3)從節(jié)約UBOOT所占存儲空間的角度出發(fā),基于(2)中的結(jié)論,在m=4,s=32時,將n作為單獨變量進行考慮,從仿真結(jié)果來看n=6時,系統(tǒng)的失效概率趨于穩(wěn)定,達到目標要求,如圖8所示.(4)基于上述結(jié)論,在m=4,n=6時,將Pb作為變量,從仿真結(jié)果可以看出Kernel冗余級數(shù)s在s=5時,系統(tǒng)的失效概率趨于穩(wěn)定,達到目標要求,如圖9所示.(5)綜合上述結(jié)論,m=4,n=6,s=5時(也就是冗余系統(tǒng)架構(gòu)可采用4級UBL+6級UBOOT+5級Kernel),在確保系統(tǒng)可靠性的前提下,能夠最大化系統(tǒng)存儲空間利用率.通過對比,當(dāng)block失效概率在正常范圍內(nèi)時(Pb不超過1%),傳統(tǒng)軟件架構(gòu)系統(tǒng)的系統(tǒng)失效率遠遠超過冗余軟件架構(gòu)系統(tǒng),如圖10所示.可見本文提出的冗余架構(gòu)系統(tǒng)是可靠的,對嵌入式設(shè)備的可靠性的提升是有效的.(6)從表1實驗仿真數(shù)據(jù)的統(tǒng)計結(jié)果來看,當(dāng)NAND的Pb越小時(處于正常位反轉(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)的正常時間范圍),系統(tǒng)的可靠性依舊無法滿足,可以初步得出存儲器件不合格的結(jié)論,可進行對應(yīng)的芯片失效分析.
4結(jié)束語
本文針對設(shè)備采用NAND存儲器件存在系統(tǒng)風(fēng)險的工程應(yīng)用現(xiàn)象,提出了一種全新的冗余軟件系統(tǒng)架構(gòu),并通過故障樹分析法FTA進行了系統(tǒng)可靠性分析及仿真驗證,用少量存儲空間換取系統(tǒng)可靠性大幅度提升.目前該方案已經(jīng)應(yīng)用于中車某科研院所旗下產(chǎn)品中,包括軌道交通行業(yè)以及光伏、風(fēng)力、空調(diào)等新能源領(lǐng)域行業(yè)的某型號的控制變流器平臺.據(jù)不完全統(tǒng)計,該技術(shù)方案每年約產(chǎn)生高達上百萬的經(jīng)濟效益,而且有望進一步在其他類似工程領(lǐng)域推廣應(yīng)用.
作者:宋凱林 龔定宇 單位:湖南工程學(xué)院 電氣與信息工程學(xué)院