?

三模冗余MPSOC容錯設計與驗證

2012-04-17 07:29楊孟飛劉鴻瑾
空間控制技術與應用 2012年4期
關鍵詞:看門狗班機時鐘

陳 陳,楊孟飛,劉鴻瑾

(1.北京控制工程研究所,北京 100090;2.中國空間技術研究院,北京 100194)

航天技術的發展對以星載計算機為代表的空間電子系統的性能、體積、功耗、重量、可靠性及空間環境適用性的要求越來越高.片上系統(SOC,systemon-chip)技術不僅可以提高星載計算機的內部功能集成度、減小體積重量、提高功能密度,而且可以提高性能,提高系統的總體可靠度.多處理器片上系統(MPSOC,multiprocessor system-on-chip)[1]具有多處理器系統和單處理器SOC的共同優點,代表著嵌入式多核設計的發展方向.MPSOC具有良好的擴展性、可定制化設計等特點,尤其在提高系統并行性方面顯示出巨大優勢.

研究表明,計算機系統中70~80%的失效都是由于瞬態故障引起[2],這表明瞬態故障是引起計算機系統失效的主要原因.在航天等特殊應用場合,瞬態故障也將是引起處理器以及計算機系統失效的主要原因,并且隨著特征尺寸的減少,這一趨勢將會越來越明顯[3].因此,為了提高航天等特殊應用場合下處理器的可靠性,消除瞬態故障所引起的軟錯誤(soft error)[4]的有害影響是一個重要的任務.在多核體系結構中,存在多個內核,可以設計為冗余運行的處理結構,因此除了并行性之外,還具有容錯潛力.只要合理有效地利用這些冗余硬件資源,就可以在減少額外開銷的基礎上,提供更強的容錯能力.

本文提出了一種能夠檢測并屏蔽瞬時故障的三模冗余(TMR,triple modular redundancy)MPSOC處理器設計方案.該系統由3個基于SPARC V8規范的LEON3處理器[5]、容錯管理模塊和選通電路等組成,采用軟件表決和硬件仲裁相結合的方法完成三模冗余的容錯功能.

1 三模冗余MPSOC處理器的容錯設計

1.1 容錯方案設計

本文提出的三模冗余MPSOC容錯處理器結構如圖1所示.三模冗余MPSOC容錯處理器基于FPGA設計實現,設計中采用了3個原理設計完全相同的LEON3處理器.3個處理器獨立運行,每個處理器有獨立的靜態隨機存儲器(SRAM,static random access memory)和可編程序只讀存儲器(PROM,programmable read-only memory).3個處理器中其中一個為當班機,其他兩個則為非當班機.當班機由容錯電路仲裁產生,任意時刻只有當班機的數據輸出.

圖1 系統內部結構框圖Fig.1 Architecture diagram of TMR system

三模冗余MPSOC處理器具體的容錯策略是采用TMR數據表決輸出的容錯結構,在3個完全相同的處理器上運行相同的程序;3個處理器以串口通信的方式實現數據交換,軟件進行三模冗余數據比對(部分浮點數據帶容差比較),由軟件進行3取2表決,最終向容錯管理單元輸出本機狀態信息(健康信號、清看門狗信號等),由容錯管理單元仲裁后輸出當班信號,確定一個當班機,并選通當班處理的數據輸出,當班機的輸出數據作為系統輸出的最終結果(如圖1所示).

三模冗余MPSOC處理器容錯設計的關鍵在于容錯管理單元的邏輯設計、軟件表決算法的設計及處理器之間的同步機制的設計,下面將詳細描述.

1.2 容錯管理模塊設計

容錯管理模塊功能框圖如圖2所示,主要由時鐘產生電路、看門狗電路、復位電路和當班仲裁電路組成,為了提高容錯管理模塊的可靠性,容錯管理模塊功能均采用雙熱備份的方式實現.容錯電路的主要功能有:

1)為3個處理器提供時鐘及控制周期信號;

2)通過看門狗電路監視當班機工作狀態;

3)提供復位信號,同時送往3個處理器;

4)根據三機健康狀態由硬件仲裁決定哪一機為當班機.

時鐘產生邏輯用來產生時鐘及控制周期信號.為了提高電路的可靠性,設計兩套獨立的時鐘產生電路,主備份時鐘信號可以實現自主切換.產生的時鐘信號同時送往3個處理器作為控制周期信號,保證3個處理器采用同一時鐘源.

看門狗電路用于監測當班機的工作狀態.該電路設計的主要作用是當3個處理器均不能正常清看門狗時可產生自主復位,修復瞬時故障.當班機在每個控制周期內進行清看門狗操作,如果當班機不能正常清看門狗,則看門狗電路通過狗咬信號使處理器復位.看門狗復位由看門狗的狗咬信號產生,最終生成3個復位信號,分別送往3個處理器,保證所有處理器同時復位.采用兩套獨立的看門狗電路可以在單個看門狗電路失效的情況下,由另一路看門狗電路監視當班機的工作狀態,在3個處理器都發生故障的情況下,通過狗咬復位使系統恢復正常.兩路看門狗電路的清看門狗信號均由LEON3處理器的通用輸入/輸出端口(GPIO,general purpose I/O port)口產生.

仲裁電路根據各處理器的工作情況控制三機中的其中一機輸出.三機輸出的數據經軟件3取2表決后,發出本機的健康狀態信號,仲裁電路根據三機的健康狀態信號決定哪一機輸出,其他兩機的輸出均被封鎖.三機健康狀態信號SA、SB、SC為低電平有效.三機的當班信號CSA、CSB、CSC是高電平有效.

圖2 容錯管理模塊功能框圖Fig.2 Block diagram of the fault-tolerant management module

仲裁邏輯根據3取2的原則,即根據三機健康狀態來決定輸出哪一機的數據.同時,在仲裁邏輯的設計上保證了只能輸出一機的數據.為防止仲裁邏輯電路單點故障,采用兩套相同的電路,并聯輸出.三機的優先級是A>B>C,例如:如果SA,SB為低電平,SC為高電平,則仲裁模塊輸出CPU_A的數據;如果SA為高電平,SB、SC為低電平,則仲裁模塊輸出CPU_B的數據.

當班信號CSA、CSB、CSC的產生方式如圖3所示.為防止三機都不輸出的情況,即三機的狀態SA、SB、SC都為“1”時,仲裁電路自主選擇 CPU_C當班,由于CPU_C不健康,不清看門狗,則引起狗咬復位.為了防止仲裁電路短時間內的循環切換當班機,造成任務無法完成,設計中采用單向切換的方案.

圖3 當班信號產生方式Fig.3 Generation of the on duty signal

最后輸出選通模塊使用容錯管理模塊產生的當班信號(CSA、CSB、CSC)來控制各處理器對外輸出接口的使能端,保證只有當班機能夠對外發送控制指令和信號,而其他兩機的輸出被禁止.

三模冗余MPSOC處理器對外輸出的接口只有3種:串口、1553B總線和GPIO口.對于輸入信號采集和接收電路的使能端則常有效,3個處理器都能夠接收其他外部設備的輸入數據和狀態信號.

1.3 軟件的3取2表決算法設計

三模冗余MPSOC處理器的3取2表決通過軟件實現,由表決生成每一機的健康狀態信號供容錯管理單元的仲裁邏輯使用.

如圖4所示,當每個控制周期某一機工作正常并且與其他任意一機的數據比對一致時,該機發送健康信號,該控制周期當班機正常清看門狗,下一個控制周期的數據計算使用該控制周期經過三機數據比對軟件表決后的數據.

當某一機在一個控制周期與其他兩機的數據比對都不一致時,該機首先判斷其他兩機數據比對是否一致,如果其他兩機數據比對一致,則該機置自己不健康.

如果某一處理器判斷三機數據比對都不一致,則該機查詢自己的系統自檢狀態信息,如果系統狀態信息正常,則該機置自己健康,如果系統狀態信息不正常,則該機置自己不健康.

在出現三機數據比對均不一致時,如果三機的系統自檢狀態信息都不正常,則三機都置自己不健康,仲裁電路的硬件會自主選擇CPU_C為當班機,由于CPU_C不健康,不清看門狗,則引起狗咬復位.三機同時復位后,嘗試恢復重要數據,并重新進入TMR工作模式.

圖4 軟件表決算法原理框圖Fig.4 Block diagram of software voting algorithm

1.4 處理器之間的同步設計

同步技術是三模冗余容錯處理器的核心基礎技術之一,它用來消除系統中3個處理器模塊之間因時鐘、輸入延遲等因素造成的不同步,使得系統中3個處理器模塊在程序執行狀態、周期定時及時間基準上達到相對一致的狀態,在計算后同時將輸出送給仲裁電路進行表決輸出,真正完成三模冗余功能.常用的同步技術包括任務同步、中斷同步[6]、公共時鐘、鎖相同步[7]等.

本系統在三模冗余工作模式時實現3個處理器任務級同步[8]功能.系統通過容錯電路產生3個處理器共用的控制周期信號和復位信號來實現任務級同步.三模冗余工作模式下,完成上電后3個處理器同時復位,這種情況下3個處理器控制周期信號同源可保證同時產生控制周期中斷,通過控制周期中斷進行任務調度,即可完成處理器間任務級同步.

2 實現與驗證

2.1 TMR處理器正常運行時的仿真結果

為了驗證上述處理器系統的正確性,使用EDA仿真工具ModelSim對該系統進行仿真驗證.圖5所示為處理器正常運行時的仿真波形,其中vdata(0)、vdata(1)、vdata(2)分別為 CPU_A、CPU_B、CPU_C 3個處理器的運算結果,data為TMR處理器最后輸出的結果.從仿真波形可以看出,3個處理器同時運行相同的程序,經過數據交換和比較后,向容錯電路發送正常信號,SA、SB、SC均為低電平時表示相應的處理器處于正常工作狀態.容錯電路經過仲裁控制輸出選通.當3個處理器都正常運行時,默認CPU_A為當班機.系統最后輸出的數據data為CPU_A的輸出數據vdata(0).圖6所示為EDA環境下TMR容錯處理器的仿真結果.

圖5 3個處理器正常運行時的仿真結果Fig.5 Result of simulation when 3 processors run normally

2.2 TMR處理器故障注入時的仿真結果

為了驗證處理器系統對錯誤的診斷和屏蔽能力,試驗中模擬了處理器系統因存儲區域被單粒子擊中造成的翻轉而發生的程序計算結果錯誤,并驗證了在這種故障模式下處理器和容錯電路的功能.

如圖7所示,對CPU_A進行故障注入,假定其運算結果在某一時刻出現錯誤.由仿真波形可以看出,通過數據交換和比較,檢測到處理器CPU_A中的錯誤,CPU_A的正常信號為“1”(該信號低有效),容錯電路經過仲裁,將當班機切換至CPU_B,輸出數據為vdata(1),同時清看門狗.系統最后輸出數據data為CPU_B的輸出數據vdata(1).

同樣,繼續對CPU_B進行故障注入,從仿真波形可以看出當CPU_B出錯時,CPU_B的正常信號為“1”(該信號低有效).根據單向切換的原則,盡管CPU_A在當前時刻的輸出正確,其正常信號仍為“1”(該信號低有效),仲裁電路將當班機切換至CPU_C,輸出數據為 vdata(2),清看門狗(如圖8所示).

當3個處理器都不正常時,系統強制CPU_C當班,輸出數據為vdata(2).如果當班機CPU_C不清看門狗,最后,狗咬復位信號lreset被觸發,3個處理器同時復位,重新運行初始化程序(如圖9、圖10所示).

2.3 TMR處理器演示驗證系統

TMR處理器原型基于Virtex IV 2000萬門FPGA實現,最終完成綜合、調試后的TMR容錯處理器演示驗證系統如圖11所示.系統的核心功能(包括3個處理器和容錯電路等)都集中在FPGA中實現.FPGA通過JTAG線纜與PC機連接.本設計的對外接口與單處理器系統相同,因此可通過Gaisler公司的調試工具GRMON在PC機上實現軟件的加載、調試.以矩陣乘法運算程序作為測試用例,如圖12所示,測試程序可以正常運行.該試驗驗證了本設計可以完成預定的處理功能.

本系統采用50MHz的晶振,通過數字時鐘管理模塊(DCM)處理后,系統實際時鐘仍為50MHz.在該時鐘頻率下,系統的最大工作頻率為70.4MHz,與單處理器系統相比性能下降了9%左右.根據布局布線后的結果,本設計占用的FPGA資源約為單處理器系統的302%.

3 結論

本文提出了一種用FPGA實現的基于軟件表決和硬件仲裁相結合的容錯處理器的軟硬件設計方案,然后對這種容錯設計方案進行了原型實現和驗證.試驗結果表明,該設計可以屏蔽瞬時故障,任意一個處理器故障或兩個處理器故障時不影響正常當班機的輸出,系統具備自主切換當班機的能力.

[1] Wayne W,Ahmed A J,Grant M.Multiprocessor system-on-chip(MPSOC)technology[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2008,27(10):1701-1713

[2] Karlsson J,Liden P,Dahlgren P,et al.Using heavyion radiation to validate fault-handling mechanisms[J].IEEE Micro,1994,14(1):8-23

[3] Mukherjee S.Architecture design for soft errors[M].San Francisco,CA,USA:Morgan Kaufmann Publishers Inc.,2008

[4] Mukherjee S S,Emer J,Reinhardt S K.The soft error problem:an architectural perspective[C].The 11thInternational Symposium on High-Performance Computer Architecture,San Francisco,CA,USA,Feb 2005

[5] Jiri G,Sandi H.GRLIB IP library user’s manual[M].Sweden:Gaisler Research,2010

[6] Xin M,Qiu Q.Research on precise synchronization for TMR fault-tolerant embedded computer[C].The 1stInternational Conference on Multimedia Information Networking and Security,Wuhan,China,Nov 2009

[7] Tomohiro Y,Takashi S,Yoshihiro T.Interrupt handling in the loosely synchronized TMR system[C].The 44thAsilomar Conference on Signals,Systems and Computers,Pacific Grove,USA,Nov 2007

[8] Mahyar R,Malekpour.A byzantine-fault tolerant selfstabilizing protocol for distributed clock synchronization systems[R].Dallas,TX,United States,NASA Report NASA TM-2006-214322,Nov 2006

猜你喜歡
看門狗班機時鐘
別樣的“時鐘”
一種嵌入式計算機系統的看門狗設計
古代的時鐘
把他叫醒
有趣的時鐘
時鐘會開“花”
把它叫醒
把它叫醒
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合