,
(北京空間技術研究院總體設計部,北京 100094)
單粒子翻轉是針對邏輯器件和邏輯電路產生的帶電粒子輻射效應[1]。單個空間高能帶電粒子轟擊到大規(guī)模集成電路中的微電子的芯片時,會引起邏輯器件或電路的瞬時邏輯錯誤或永久性錯誤,例如由于存儲單元發(fā)生翻轉而造成的數(shù)據錯誤,或運算單元翻轉造成的邏輯混亂等[2]。隨著星載任務復雜度的增加,越來越多的星載設備采用數(shù)字信號處理器(DSP)作為控制計算機,如北斗導航衛(wèi)星中的天線控制器采用的國產6701 DSP和PoSat-I中采用的TMS320C30/25等。但這些DSP芯片自身均不具備EDAC模塊,一旦其內部SRAM發(fā)生單粒子翻轉,就可能造成軟件功能失效。
目前,針對自身不具備EDAC功能的星載計算機SRAM的抗輻射加固方法多采用關鍵數(shù)據三模冗余[1]、定時刷新等策略[3]進行防護。對于需要依靠大量初始化參數(shù)開展計算任務的星載計算機而言,如果采用三模冗余策略防護單粒子翻轉,不但效率極低,而且增加了星載計算機對存儲區(qū)容量的要求。一方面增加了星載設備的制作成本,另一方面也對其體積、重量、功耗等帶來負面影響,大大降低了設備的綜合品質。另外,對于需要通過快速、實時讀取初始化參數(shù)進行任務計算的星載設備(例如機械臂的控制計算機等),若采用定時刷新的防護策略,其頻繁的讀寫操作必將影響設備職能任務的執(zhí)行效率。
本文提出的基于活動對象的星載SRAM抗輻射加固策略是一種軟、硬件結合的,具備二級防護能力的單粒子翻轉防護策略。與之相匹配的應用軟件采用分層狀態(tài)機和事件驅動框架實現(xiàn),每一個活動對象均通過事件驅動的方式異步參與,影響其他對象的狀態(tài)機遷移,最終共同實現(xiàn)防護加固的所有功能。與傳統(tǒng)的嵌入式實時操作系統(tǒng)相比,基于活動對象模型的軟件架構不但能夠提升代碼重用度,而且簡化了軟件應用層的開發(fā),提高了軟件研制效率[5]。
星載軟件的平均失效時間(MTTF)由軟錯誤失效率和器件翻轉率決定。鑒于器件翻轉率由硬件器件自身屬性確定,且不可改變,因此一般應用層的防護加固設計是針對前者開展的,即通過降低軟件錯誤失效率的方法提升星載計算機SRAM的抗輻射能力。本文提出通過一套軟、硬結合的防護、維護策略實現(xiàn)降低軟錯誤的目的?!坝病敝竿ㄟ^硬件電路實現(xiàn)對固定長度SRAM區(qū)數(shù)據的校驗和計算,并通過比較當前計算結果與預期結果是否一致,判斷是否有單粒子翻轉事件發(fā)生。如果有,則立即產生高優(yōu)先級中斷,并調用中斷處理函數(shù)對當前SRAM區(qū)域進行刷新操作,此模式稱為“應急維護模式”?!败洝敝感禽d計算機應用軟件根據預先定義的防護算法,自主根據其當前任務忙、閑狀態(tài),通過查表的方法計算SRAM的刷新步長,從而在不影響正常職能任務的前提下,盡可能高效地實現(xiàn)SRAM刷新策略,此模式稱為“常規(guī)空閑維護模式”。
應急維護模式實現(xiàn)方法如下:星載計算機首次向SRAM寫入數(shù)據時,針對預先定義好的固定長度內存地址計算該段地址空間內所存儲數(shù)據的奇校驗,并將校驗結果一并保存。設備運行時,一方面,一旦某個全局變量或靜態(tài)變量的值被修改,將重新計算相應內存空間段的校驗和并替換原來存儲的校驗和。另一方面,定期觸發(fā)設備內部奇校驗電路,依次對SRAM各地址段內的數(shù)據進行奇校驗,并將計算結果與預存的校驗和做一致性判決。如果出現(xiàn)不一致,則立即產生高優(yōu)先級中斷,通知CPU進入中斷函數(shù)。中斷函數(shù)將根據錯誤發(fā)生的地址段定義及錯誤數(shù)據的屬性采取適當?shù)木S護措施。如果確認該地址段在可維護地址空間范圍內,則對該段數(shù)據進行刷新操作,否則通過復位操作重啟星載計算機。上述一切動作均由硬件設計自動完成,具有實時性高的特點。
此模式在工程實踐中的設計重點是根據星載計算機應用軟件的大小以及其任務特性選擇自檢電路每次計算校驗和內存段的長度。如果軟件體量很大,為了及時遍歷所有數(shù)據,實現(xiàn)有效控制軟失效的目的,則需要適量增大單次檢測的數(shù)據段長度。但單次檢測長度必將導致單次刷新時間增加。如果星載軟件常規(guī)任務的實時性要求極高,那么單粒子翻轉維護時間的增加將影響常規(guī)任務的執(zhí)行效率。因此工程實踐中必須權衡自檢遍歷周期與單次刷新速度兩個互斥因素,選擇適合本星載應用軟件的自檢數(shù)據段長度。星載計算機SRAM內部奇校驗電路示意圖如圖1所示。
圖1 星載計算機SRAM內部奇校驗電路示意圖
常規(guī)空閑維護模式實現(xiàn)方法如下:在星載計算機應用軟件中設計、實現(xiàn)系統(tǒng)資源調度查表算法和SRAM自主維護模塊。星載計算機應用軟件根據其當前工作模式確定空閑周期T1與星載計算機SRAM可維護地址范圍數(shù)據維護所需時間T0之間的關系,并根據上述情況自主計算SRAM本次應該實施的數(shù)據維護地址范圍。例如,當T0>T1時,根據資源調度算法查表獲得本次數(shù)據維護內存長度步進K和上次數(shù)據維護結束內存地址標記N,然后SRAM自主維護模塊將刷新內存地址N~(N+K-1)之間的數(shù)據,刷新完成后,星載計算機應用軟件返回職能任務模式繼續(xù)執(zhí)行日常平臺或載荷任務。當T0 表1 SRAM維護資源調度表 以某星載計算機軟件實現(xiàn)為例,說明本抗輻射加固策略的實現(xiàn)途徑,并針對該軟件通過仿真實驗說明防護策略的可行性及防護效果。軟件基于國產DSP6701芯片開發(fā)實現(xiàn),DSP芯片與外部電路之間通過FPGA實現(xiàn)通信接口。DSP芯片主頻為80 MHz,SRAM存儲空間為512 KB,芯片本身不具備EDAC功能。運行在芯片上的應用軟件大小為413 KB,存儲在外部PROM中,設備加電后,通過加載程序搬移到DSP內部SRAM中運行。 圖2 抗輻射加固設計方案事件交互序列圖 軟件基于活動對象模型實現(xiàn),選擇目前市面上最輕量級、應用最廣泛的QP(Qualification Programmer)事件驅動軟件架構,即層狀架構。最底層為板級支持包,是框架與底層硬件的中間件,提供任務調度、上下文切換、任務間通信等多種任務。其上層是事件驅動框架(QF),提供事件驅動機制,確保各活動對象間通信安全。QF再上一層為事件處理器(QEP),用于提供基于UML狀態(tài)圖的層次狀態(tài)機的語義。采用QP框架的優(yōu)勢在于開發(fā)人員無需了解復雜的底層硬件接口及事件存儲、分發(fā)和回收邏輯,只需要明確并創(chuàng)建各活動對象的狀態(tài)機,設計各狀態(tài)與事件之間的交互關系,便可通過QP平臺提供的一套建模方法和接口實例化各活動對象、狀態(tài)機和事件,從而實現(xiàn)應用程序功能。此軟件架構能夠有效減少軟件設計和維護工作量,提高軟件開發(fā)效率。 圖3 AO_應用軟件系統(tǒng)狀態(tài)機圖 通過分解活動對象并分析各對象之間的事件交互關系實現(xiàn)從軟件需求分析到基于活動對象模型的軟件設計。 第一步分解活動對象的依據是實現(xiàn)松耦合的活動對象組件。在理想情況下,各對象間不產生任何資源競爭,同時盡可能減少事件通信的頻率和數(shù)據量。根據此規(guī)則,結合星載應用軟件特點,將活動主體定義為星載計算機應用軟件、星載計算機SRAM自檢模塊和星載計算機SRAM本人。 第二步是為已識別的活動對象分配任務和資源。為了避免資源共享,一般方法是將大部分資源封裝在一個特定的活動對象中,在整個應用程序運行期間,由該對象負責此部分資源的使用和調度,其他活動對象僅通過事件機制分享資源。本抗輻射加固策略所涉及的系統(tǒng)資源主要是系統(tǒng)運行時間和SRAM的存取帶寬。在軟件實現(xiàn)中,將該資源分配給應用程序調度,SRAM和SRAM自檢模塊只能通過事件交互的方式請求應用系統(tǒng)為其調配上述資源。 各活動對象的事件交互關系如圖2所示。應用軟件、SRAM自檢模塊和SRAM內部運行情況、狀態(tài)遷移邏輯及事件觸發(fā)條件分別如圖3~圖5所示。各活動對象及其狀態(tài)機的QP對象實例化方法可以套用成熟代碼實現(xiàn),此處不再贅述。 采用故障注入的測試方法模擬太空輻射效應造成的單粒子翻轉錯誤,并使用量化的防護強度評價指標評價本抗輻射加固策略的防護效能。由參考文獻[6]可知,要計算抗輻射加固設計的防護強度指標必須獲取處理器每一個寄存器、內存空間發(fā)生軟錯誤后引發(fā)系統(tǒng)失效的概率。因此設計測試用例時,需要根據星載計算機應用軟件周期性任務和由于接收外部指令執(zhí)行突發(fā)任務的頻率,分別對每個DSP寄存器以及SRAM區(qū)注入故障數(shù)據。故障注入測試方法流程如圖6所示。 圖4 AO_SRAM狀態(tài)機圖 圖5 AO_SRAM自檢模塊狀態(tài)機圖 圖6 故障注入系統(tǒng)工作示意圖 故障注入程序采用的集成開發(fā)環(huán)境為CCS5.0,同時通過SEED-XDS510PLUS仿真器加載故障注入程序,由其向目標機SRAM區(qū)隨機地址寫入故障數(shù)據。目標機嵌入式應用軟件按照正常邏輯運行,由上位機軟件向其注入遙控指令,控制完成預定任務。同時,上位機軟件實時監(jiān)視目標機任務執(zhí)行狀態(tài)和運行狀態(tài),一旦發(fā)現(xiàn)星載應用軟件出現(xiàn)軟件失效錯誤,立刻記錄此刻已注入的故障總量。綜合考慮被測目標機所使用的國產DSP6701芯片的在軌翻轉率參數(shù)和被測目標機應用軟件的在軌執(zhí)行任務忙、閑周期,SRAM自檢模塊的自檢周期等因素,選取故障注入速率為1/s,同時設置星載設備運行狀態(tài)和任務執(zhí)行狀態(tài)遙測的回讀周期為10 s,得到測試結果如表2和表3所列。 表2 實施抗輻射加固策略前MTTF測試結果 表3 實施抗輻射加固策略后MTTF測試結果 分析表3的測試數(shù)據發(fā)現(xiàn),由于故障數(shù)據是在特定時刻注入到特定敏感部位的,且故障注入的位置是隨機的,因此觸發(fā)軟件失效的概率也是不確定和離散的,但無論如何,對比表2 和表3的測試結果可以確認,通過實施本文提出的抗輻射加固策略,可將軟件失效發(fā)生的概率降低100倍量級,由此說明本文提出的防護方案是切實可行且效果明顯的。2 星載計算機SRAM抗輻射加固方案實現(xiàn)
2.1 軟件架構
2.2 活動對象及其狀態(tài)機創(chuàng)建
3 仿真驗證
結 語