摘 要: 針對機載雷達系統的高可靠性要求,提出了一種多層劃分的容錯體系結構。采用自底向上分層的方式構建容錯系統并試圖在每一層盡可能的處理相應級別的錯誤,避免由微小錯誤導致高代價故障處理方式的介入。在此基礎上設計分布式冗余管理協議實現節點的錯誤診斷、錯誤隔離以及重新配置,并采用一種基于悲觀消息日志的異步檢查點回卷恢復策略用于程序狀態的復位或恢復。最后通過系統仿真故障注入的方式驗證采用多層劃分容錯機制設計的系統具有更高的容錯效率。
關鍵詞: 機載雷達系統; 容錯體系; 多層劃分; 檢查點回卷恢復
中圖分類號: TN953?34 文獻標識碼: A 文章編號: 1004?373X(2013)17?0015?05
0 引 言
機載雷達作為航空電子設備的關鍵組成部分,需要滿足高可靠性的要求。將系統錯誤產生的影響降至最低、實現容錯的運行機制至關重要。構建容錯系統最基本的思想是設置冗余。目前諸多的容錯技術通過硬件冗余、軟件冗余、信息冗余中的一種或幾種來實現錯誤的檢測恢復[1?2]。其中一些容錯方法具有通用性。如檢查點回卷恢復容錯方法能夠處理絕大多數軟硬件暫時性失效導致的錯誤,硬件多機冗余方法能解決硬件永久失效的問題[3]。
機載雷達的用途和應用環境決定了其應滿足實時性高和體積小的要求,因此機載雷達系統多構建在分布嵌入式環境下。分布嵌入式環境復雜的軟硬件結構使得機載雷達產生的錯誤具有多樣性,各類錯誤出現的位置、對系統功能的影響以及影響的嚴重性各不相同。盡管一些容錯方法適用于較多類型的錯誤處理。然而對出現在不同位置、不同種類的錯誤采用同一種容錯方法是不適當的。因為通用的容錯方法的開銷相對較大,對于某些類型的錯誤不是最優的容錯選擇,會增加不必要的容錯開銷。本文針對機載雷達系統的特點提出一種多層劃分的容錯體系結構,致力于減小為原系統實現容錯機制所產生的開銷,對于提高雷達可靠性的同時保證雷達的工作性能具有重要意義。在多層劃分的容錯體系結構下,需要實現一種能夠準確診斷錯誤、隔離錯誤、進行重新配置并恢復系統預定狀態的方法。為此設計了一種分布式冗余管理協議來實現錯誤的診斷和隔離,在確定故障節點的情況下管理冗余接替并進行拓撲重構。考慮到硬件冗余的容錯方法具有較高的成本及機載空間占用,結合低卷回代價的檢查點回卷恢復軟件容錯手段能夠平衡系統容錯在時間與空間方面的開銷。
1 多層劃分容錯結構
機載雷達系統由天線、發射機、接收機、處理機及它們之間的接口、傳輸與控制總線構成。各分機功能正常運行以及分機之間協同有序的工作保證了雷達系統的正常運行。容錯系統的構建可視為在原系統的基礎上實現錯誤檢測機制和一系列錯誤處理機制的過程。雷達系統可能發生錯誤的類型、位置、粒度以及對系統功能影響的嚴重程度多種多樣,針對同一種錯誤通常有多種錯誤處理機制能夠實現針對該類型錯誤的容錯,然而采取不同錯誤處理機制的代價也是不同的。盡管一些容錯技術具有通用性,適用于較多類型的錯誤處理。然而通用的容錯方法的開銷相對較大,對于某些類型的錯誤不是最優的容錯選擇,會增加不必要的容錯開銷。本文根據容錯機制實現的位置將機載雷達容錯系統分為三個層次:芯片電路層、節點層和系統層。每個層次都會針對相應的軟硬件環境和粒度實現相應層次的故障診斷、故障隔離、重新配置以及狀態的復位或恢復。
多層劃分的容錯體系結構如圖1所示,其清晰而易維護,針對容錯需求設計的故障處理方式貫穿雷達系統的每一層次。且呈現了多層劃分容錯系統在每一層可能處理的部分錯誤類型以及錯誤處理的結果。低層上報的未解決故障將同相鄰高層檢測到的故障一同被本層的預定義故障處理流程處理。這種自底向上構建容錯系統的方式試圖在每一層盡可能的處理相應級別的錯誤,避免底層的微小錯誤導致高代價的故障處理方式的介入。同時這種方式能夠整合層級錯誤類型,實現層與層之間透明的錯誤傳輸和處理,降低了容錯處理的復雜度。
芯片電路層容錯機制提供貼近硬件底層的容錯措施。如緩存的奇偶校驗保護、內存錯誤檢查和糾正(Error Correcting Codes)以及晶體管的三重模件冗余(Triple Modular Redundant)技術等[4?5]。致力于保證構成獨立功能的軟件節點的容錯運行。芯片電路層容錯機制對于提高整個系統的可靠性非常重要,因為越接近底層的錯誤越難以在高層采取有效措施對錯誤進行糾正,高層針對底層錯誤的解決方式通常是復位或制定相應的冗余接替,這種方式的代價是很高的。以雷達處理機中實現脈沖壓縮功能的某一節點的某關鍵電子元件故障為例,通常的容錯方法是脈壓節點的硬件冗余,但是如果針對節點內的關鍵電子元件采用多個冗余元件實現低粒度容錯,即能以更小的空間代價替代節點冗余實現此類錯誤的容錯。如果同時使用這兩種方法,則大大提高了雷達處理機的可靠性。
節點層容錯機制實現在構成獨立功能的軟件節點上,致力于保證軟件相應功能單元的容錯運行。節點層的容錯機制能夠處理多數芯片電路層拋出的無法解決的錯誤情況,結合硬件冗余采用諸如看門狗定時器以及檢查點備份等軟件冗余方法能夠復位或恢復節點運行狀態,或提供允許程度內的降級服務。同樣以雷達處理機脈沖壓縮單元為例,脈壓單元使用[n]個節點并行工作實現原始數據的分段脈壓,并使用一個脈壓冗余節點。如果有兩個脈壓節點發生故障無法運行,則節點層容錯機制采取相應容錯措施保證脈壓單元的[n-1]個有效節點對外提供低速率的脈壓處理降級服務。
系統層以整個系統對外提供的功能或服務為對象,根據節點層的狀態選擇最優的容錯方法并對外反饋錯誤信息及處理方式。對于非復位類型的容錯方法,系統層容錯機制負責各節點間容錯運行的一致性狀態,保證整個系統故障與恢復前后的狀態一致。系統層容錯機制使用分布式冗余管理協議來實現節點的錯誤診斷和錯誤隔離,根據優化的容錯策略重新配置以實現系統狀態的復位或恢復。系統層負責冗余管理的協調和一致,使得故障節點本身以及其他相關節點能夠在故障處理后協調運行,對外提供正確的功能和服務。
各層次的容錯機制并非孤立的,而是相互協同實現整個雷達系統的容錯功能。低層次容錯機制盡可能的解決出現的錯誤,如果某些類型的錯誤無法完全解決,則將錯誤拋給高層進行解決。舉例來說,假設雷達系統實現目標檢測功能的某個芯片上出現了訪存越界錯誤,對于此類錯誤芯片電路層無法進行有效的恢復,只能將錯誤類型通知相應的節點層容錯機制,于是節點層的訪存異常處理流程將被執行,終止相應的進程并使用冗余接替,如果不存在冗余則試圖提供降級服務保證節點提供的目標檢測功能仍然有效,最后將節點狀態和錯誤處理方式通知系統層。系統層會根據出錯節點的狀態通知與之功能相關的節點如目標跟蹤節點,并控制目標跟蹤節點更改算法以適應目標檢測節點的變化情況。
2 分布式冗余管理協議
故障檢測是實現容錯系統非常重要的一環。在多層劃分容錯機制中,節點間接口故障是一類特殊的故障。因為這類故障的發生會導致層次之間故障類型及故障處理結果信息傳遞的失敗。接口的故障多與組件的電氣特性有關,往往導致大粒度的冗余接替。為此設計了分布式冗余管理協議,不僅可以用于節點的故障判定,并且能夠在確定故障節點的情況下管理冗余接替并進行拓撲重構。分布式冗余管理協議在故障檢測及隔離方面具有時間復雜度低、實現簡單的特點。
3 檢查點回卷恢復容錯方法
考慮到機載雷達系統的應用環境和自身特點,過多采用硬件冗余的容錯策略并不合適。因為較多的硬件冗余不僅會占用寶貴的機載空間,也會提高機載雷達的成本。另外,在機載雷達的某個子系統故障時采用硬件冗余的容錯方式只能恢復到初始狀態,這樣會丟失故障前的結果和狀態。而雷達系統常常需要跟蹤測量多個目標,從初始狀態重新建立目標軌跡跟蹤需要相當長的時間,因此需要尋找一種具有較小回卷代價的容錯方法。檢查點回卷恢復容錯方法為容錯系統提供了一種低卷回代價的軟件容錯手段。
檢查點回卷恢復容錯方法是一種通過軟件冗余實現的容錯方法。各節點在雷達運行過程中以同步或異步的方式實時保存單元檢查點。如果雷達運行時發生故障,可以通過各系統備份的滿足全局一致性狀態的一組檢查點將整個雷達軟件系統恢復到之前的狀態,并保證恢復前后狀態的一致性和數據的完整性。單元檢查點的保存在節點層實現,每個單元的檢查點是其所在節點的嵌入式芯片中的關鍵結構的數據映像文件,文件內容由各類寄存器、堆棧、只讀ROM中的數據按一定格式構成。單元檢查點的實現是與硬件體系結構緊密耦合的,可以通過函數庫的方式提供給高級程序調用。目前相關領域技術已比較成熟。
3.1 檢查點的一致性狀態
檢查點的一致性狀態是指:如果某一運行實體采取檢查點時的狀態反映接收到來自另一發送實體的消息,那么對應的發送實體在某一檢查點時的狀態也反映此消息已發出,那么兩個狀態處于一致性狀態,所屬不同實體的兩個檢查點叫做一致性檢查點[6]。如果全局檢查點中的任意兩個局部檢查點都符合一致性約束,那么全局檢查點也是一致的。然而在節點故障時有兩類消息會使系統處于不一致的狀態,它們分別是在途消息和孤兒消息。
3.2 基于悲觀消息日志的異步檢查點回卷恢復策略
通過異步方式實現全局檢查點備份的方法賦予系統內各節點很高的靈活性,這種方式允許各節點獨立的保存本地檢查點,能夠滿足機載雷達系統的實時性要求。然而在選擇滿足一致性狀態的全局檢查點的過程中容易產生多米諾效應[7]。多米諾效應是指在回卷的過程中為了避免出現孤兒消息或在途消息導致的檢查點不一致狀態而產生的過度回卷的現象,極端的情況可能使系統回卷到初始狀態,從而降低恢復的效率。
為了避免異步方式實現全局檢查點可能出現的多米諾效應,可以采取記錄消息日志的輔助手段,對于在程序運行中所遇到的任何一個不確定的消息發送動作,系統都假設在此動作發生后系統會出現故障。于是在每個不確定的消息發送動作產生結果之前,將能夠復現此消息傳輸過程的關鍵信息能夠保存到穩定的存儲介質中,然后繼續程序的運行。這種策略是工程領域常用的悲觀策略,可以稱之為悲觀消息日志方法。借助這種手段在系統出現故障,尋找可恢復的全局一致性狀態時能夠消除孤兒消息、在途消息以及多米諾效應帶來的不利影響。
采用悲觀消息日志方法具有以下優點:首先無需為異步實現的全局檢查點設計復雜的協議保證其一致性狀態,實現簡單;再者在回卷恢復時僅需從最近的全局檢查點開始,并且僅對出錯的進程執行回卷操作,恢復的代價小。
4 仿真實驗
實驗借助QuiKLab實時嵌入式系統測試工具進行系統的仿真、故障注入及結果分析。實驗通過主機開發測試模型對被測系統的交聯對象的內特性與外部環境進行仿真,構建測試環境模型與接口驅動模型。并借助FIU自動測試故障注入箱實現實時環境下的電氣故障模擬。表1描述了采用多層劃分容錯機制實現的系統與采用一般容錯方法實現的系統在典型故障輸入時的表現。
5 結 論
本文針對雷達系統的結構特點提出一種多層劃分的容錯體系結構,通過自底向上的方式構建容錯系統并試圖在每一層盡可能的處理相應級別的錯誤,避免底層的微小錯誤導致高代價的故障處理方式的介入,由此可以提高容錯處理的效率。為容錯系統設計的分布式冗余管理協議能夠實現節點的錯誤診斷和錯誤隔離,為容錯系統節點級的故障檢測和重新配置提供了簡單有效的方法。最后利用基于悲觀日志的異步檢查點回卷恢復策略實現程序狀態的回卷恢復,為機載雷達系統提供了一種低卷回代價的軟件容錯手段。算法具有良好的時間性能和擴展性,能夠滿足機載雷達系統應用環境的需求。
參考文獻
[1] AIDEMARK J. Node?level fault tolerance for embedded real?time systems [D]. Goteborg, Sweden: Department of Computer Engineering, Chalmers University of Technology, 2004.
[2] VIJAYKUMAR T N, POMERANZ I, CHENG K. Transient?fault recovery using simultaneous multithreading [C]// Proc. of the 29th International Symposium on Computer Architecture. Washington, DC, USA: IEEE Computer Society, 2002: 87?98.
[3] AFONSO F, SILVA C, TAVARES A, et al. Application?level fault tolerance in real?time embedded systems [C]// Proc. of International Symposium on Industrial Embedded Systems. [S. 1.]: IEEE Press, 2008: 126?133.
[4] AIDEMARK J, FOLKESSON P, KARLSSON J. A framework for node?level fault tolerance in distributed real?time systems [C]// Proceedings of the 2005 International Conference on Dependable Systems and Networks. Yokohama, Japan: IEEE Computer Society, 2005: 656?665.
[5] 劉耀,胡越明,金利峰.高可靠計算機系統的容錯技術[J].計算機工程,2004,30(z1): 590?592.
[6] GOIRI I, JULIA F, GUITART J, et al. Checkpoint?based fault?tolerant Infrastructure for virtualized service providers [C]// 2010 IEEE Network Operations and Management Symposium. Osaka: IEEE, 2010: 455?462.
[7] SARIDAKIS T. Design patterns for checkpoint?based rollback recovery [C]// Proceedings of the 10th Conference on Pattern Languages of Programs. IL, USA: Robert Allerton Park and Conference Center, 2003: 1?27.
[8] GAISLER J. A portable and fault?tolerant microprocessor based on the SPARC V8 architecture [C]// Proceedings of the 2002 International Conference on Dependable Systems and Networks. Bethesda, MD, USA: IEEE Computer Society, 2002: 409?415.
[9] 傅忠傳,陳紅松,崔剛.處理器容錯技術研究與展望[J].計算機研究與發展,2007,44(1):154?160.
[10] SAHA G K. Approaches to software based fault tolerance: a review [J]. Computer Science Journal of Moldova, 2005, 13 (39): 11?22.