嵌入式系統多級冗余機制設計研究

時間:2022-10-20 09:32:04

導語:嵌入式系統多級冗余機制設計研究一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

嵌入式系統多級冗余機制設計研究

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

關鍵詞:NANDFlash;位反轉;系統穩定性;冗余備份;故障樹分析

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

1平臺架構

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

2需求研究與方案設計

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

3方案可靠性分析

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

4結束語

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

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