999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向空空導彈飛控軟件的軟件容錯技術研究

2020-03-23 05:56:32李偉
軟件工程 2020年2期

李偉

摘 ?要:隨著臨近空間飛行器的發展,空空導彈作戰空域也向超高空域拓展,因此在空空導彈設計時需要考慮高能粒子引起的計算機系統瞬時故障。本文從軟件防護的角度出發,針對該故障提出了一種基于冗余備份及校驗和的軟件數據流加固方法。試驗表明,該算法對單粒子翻轉引起的瞬態故障具有良好的防護性,具有通用性好、易移植等優點。

關鍵詞:飛控軟件;軟故障;單粒子翻轉;軟件容錯;數據流錯誤恢復

中圖分類號:TP302.8 ? ? 文獻標識碼:A

1 ? 引言(Introduction)

近年來臨近空間飛行器的發展大大加快,空空導彈的作戰空域也需要從傳統的低空域向臨近空間超高空域拓展[1]。而臨近空間超高空域的空間輻射環境遠比空空導彈傳統低空域作戰環境復雜,在臨近空間中電子、光子、中子及質子等高能粒子的輻射強度大大增加,這些高能粒子輻射強度的增加會對電子設備的正常運轉造成嚴重影響。這種現象稱之為高能粒子輻照的單粒子效應(Single Event Effects,SEE),具體又可分為單粒子翻轉(Single Event Upset,SEU)、單粒子閂鎖(Single Event Latchup,SEL)和單粒子燒毀(Single Event Burnout,SEB)。如果空空導彈在該空域作戰,需要考慮這些影響。而空空導彈工作周期較短,一般不會發生單粒子閂鎖或單粒子燒毀,因此需要重點考慮的是單粒子翻轉造成電子器件內部的邏輯狀態改變,即器件內部的數據狀態在0和1之間的轉變。這種轉變會形成瞬態故障,影響系統的正常運行。

目前,在單粒子效應防護方面可分為硬件防護和軟件防護,硬件防護[2]方面有器件屏蔽設計、電路加固設計及硬件冗余等技術,軟件防護方面有指令冗余[3]、多線程[4]、進程冗余[5]等技術。因此,需要在該領域作戰的空空導彈可靠性設計時除了在硬件方面進行必要的屏蔽防護外,在軟件方面也需要考慮采用必要的防護措施。

本文從軟件的角度對單粒子效應引起的瞬態故障的防護機制進行研究,提出了一種基于冗余備份及校驗和的軟件數據流加固方法(Backups-Check Software Error Detection and Recovery,BSEDR),可對空空導彈嵌入式飛控軟件中的部分核心代碼進行加固實現,該方法相對于硬件防護具有靈活性高、通用性好、易于移植及成本低等優點。

2 ? 系統設計(System design)

軟件的數據流錯誤是指單粒子翻轉引起的瞬態故障發生在系統的數據存儲或傳輸單元,在數據的存儲或者傳輸過程中發生了數值跳變,導致程序流程雖然正常運行但運算結果出現錯誤,這將給系統帶來嚴重后果,特別是某些重要數據如發生錯誤甚至會造成災難性后果。這對于空空導彈這樣一種對可靠性要求極高的系統來說是不可接受的,因此有必要采取有效地容錯機制來檢測和糾正這種數據流錯誤。

一個完整的軟件數據流錯誤容錯處理機制如圖1所示。

軟件數據流錯誤容錯處理機制一般包括故障檢測算法,以及必要的數據恢復算法,在正常的程序運行流程中加入故障檢測算法,如果檢測到程序數據流發生故障,則執行數據恢復流程,如未檢測到故障則繼續執行正常的程序流程。

常見的軟件數據流容錯處理機制一般有三變量冗余投票算法,該算法的基本原理為對每個需要加固的數據變量均形成兩個冗余變量,并將變量數值賦予另外兩個冗余變量,涉及該變量的運算賦值語句均執行三遍冗余,在該數據變量需要進行運算或重新賦值前,將該數據變量與該變量的兩個冗余變量進行對比,如數值一致則表明未發生故障,如數值不一致則表明故障已發生,這時采用投票原則將數值一致占多數的作為真值將三個變量重新賦值后進行后續程序流程。三變量冗余投票算法的實質是利用一種軟件冗余的方法實現了三硬件冗余的效果,該算法偽代碼示例見圖2。

該算法雖然原理簡單,執行效果也較好,但是算法實現會產生大量的冗余變量,同時占用大量的寄存器資源并造成較大的性能開銷,對資源約束較為嚴格的空空導彈飛控軟件來說并不適用。

本文所采用的基于冗余備份及校驗和的軟件數據流加固方法是基于冗余復算[6]思想,利用變量的冗余備份及檢驗和對程序數據流故障進行檢驗及恢復。該方法主要分為故障檢測及數據恢復兩部分機制,算法具體步驟如下:

(1)首先對某一程序功能模塊中所有需要加固的程序變量v1、v2…vn初次賦值時進行備份,生成變量副本v1_backup、v2_backup…vn_backup。

(2)對該模塊中所有需要加固的程序變量v1、v2…vn及進行累加,形成變量累加值sum,對所有變量副本v1_backup、v2_backup…vn_backup進行累加,形成變量副本累加值sum_backup。

(3)在變量v1、v2…vn再次引用或賦值前,對變量進行故障檢測,即與其副本變量v1_backup、v2_backup…vn_backup進行對比。

(4)以變量v1進行舉例,如果檢測到變量v1與其副本變量v1_backup數值不一致,則判斷該變量發生故障,執行下列數據恢復步驟。

(a)對比變量累加值sum及變量副本累加值sum_backup,如數值一致則表明sum變量數值未發生變化,表明該數值可信,則在此時將所有加固的程序變量v1、v2…vn累加后與原累加值sum進行對比,如相等則表明變量v1未發生改變,v1的數值正確,將該數值重新賦予v1_backup,如程序變量v1、v2…vn累加后的值與原累加值sum不一致,則表明變量v1已發生改變,v1的數值錯誤,此時認為變量副本v1_backup中的數值正確,將變量副本v1_backup中的正確數值重新賦予變量v1,同時對變量sum及sum_backup的數值用變量v1的正確數值進行更新。

(b)如果變量累加值sum及變量副本累加值sum_backup經對比不一致,則表明sum或sum_backup發生了變化,則將所有程序變量v1、v2…vn累加后與原累加值sum,將變量副本v1_backup、v2_backup…vn_backup累加后與副本變量原累加值sum_backup均進行對比,取相等的作為sum的真值,重復進行步驟(a)的對比。

(5)如檢測到變量與其變量副本數值一致,則判斷該變量無故障發生,繼續執行后續程序步驟。

(6)程序變量v1、v2…vn重新賦值后,將對應的副本變量v1_backup、v2_backup…vn_backup值進行更新,同時更新累加變量sum及其副本累加變量sum_backup的數值。

算法原理框圖如圖3所示。

該算法與常規的三變量冗余投票算法相比,僅需要對變量進行雙冗余,而數據錯誤判斷及恢復的算法復雜度并沒有增加,因此節省了大量的計算機資源。而且如果三變量冗余投票算法中三變量有兩個變量同時發生數值跳變,則該算法會將故障值作為真值進行后續程序運行,不能正確進行故障檢測與數值恢復,算法將會失效。而本文所采用的基于冗余備份及校驗和的軟件數據流加固方法則通過加入副本累加值sum_backup變量,在程序變量v和累加變量sum同時發生數值跳變的時候仍然可以進行正確的故障檢測與數值恢復,因此該算法具有較強的魯棒性。

從空空導彈飛控軟件實際運行情況看,不同數據變量對于程序運行的可靠性影響并不相同,只有小部分重要的數據變量對于系統運行的可靠性有重大影響。因此,并不需要對程序中所有的數據變量均進行加固,可綜合考慮空空導彈飛控軟件的實際特點與計算資源的合理運用,重點識別出對導彈安全性、飛行任務達成影響較大的數據變量,如導彈的位置、速度、姿態、目標信息、傳感器信息、過載指令、舵控指令、引信起爆指令等變量,利用本文所述的基于冗余備份及校驗和的軟件數據流加固算法進行數據加固。

3 ? 試驗研究(Research and experiment)

算法的有效性需要試驗來進行證明,為了驗證本文所提出的基于冗余備份及校驗和的軟件數據流加固算法的有效性,設計如下試驗:利用某型空空導彈數字仿真環境[7],對飛控軟件中識別出的較為重要的數據變量:穩定控制模塊中滾轉、俯仰和偏航三通道過載指令,利用基于冗余備份及校驗和的軟件數據流加固算法進行加固。同時在程序中模仿單粒子反轉引起的瞬態故障模式,利用軟件插裝技術在程序不同運行周期對三通道過載指令依次進行故障注入,改變三通道過載指令變量的數值。加固算法和模擬故障代碼實現后,運行該數字仿真平臺進行試驗。本次試驗中加固算法及故障注入部分的偽代碼示例如圖4所示。

數字仿真平臺運行后結果如圖5所示。從圖中可看出,在程序三個不同運行周期故障注入時,三通道過載指令的故障均被成功識別,算法正確進行了故障檢測和數值恢復。

4 ? 結論(Conclusion)

從試驗結果看,本文采用的基于冗余備份和校驗和的軟件數據流加固方法對單粒子翻轉引起的數據流軟瞬態故障防護效果良好。采用軟件防護的方法不依賴于硬件環境,不需要增添或改造硬件,通用性好、成本低且容易實現,應用前景廣闊。

本文所采用的試驗是在數字仿真環境下進行的,只是初步驗證了算法的有效性,而如果要將算法真正應用于空空導彈飛控軟件,則需要在實際的導彈硬件平臺上進行進一步試驗。因此,下一步的計劃是在某型空空導彈硬件平臺上進行試驗,綜合考慮導彈硬件平臺的計算資源及需要加固的程序變量數量,在保證硬件平臺機時冗余度的約束條件下,篩選出需要加固的重要數據變量,利用本文采用的基于冗余備份和校驗和的軟件數據流加固方法進行加固后開展試驗,進一步驗證算法的有效性,為將算法真正應用于空空導彈中做好準備。

參考文獻(References)

[1] 樊會濤,張鵬鵬.空空導彈面臨的挑戰[J].航空兵器,2017(2):3-7.

[2] 傅忠傳,陳紅松,崔剛,等.處理器容錯技術研究與展望[J].計算機研究與發展,2007,44(1):154-160.

[3] Oh N,Shirvani P P,McCluskey E J.Error Detection by Duplicated Instructions in Super-Scalar Processors[J].IEEE Trans on Reliability,2002,51(1):63-75.

[4] Wang C,Kim H,Wu Y,et al.Compiler-Managed Software-Based Redundant Multi-Threading for Transient Fault Detection[C].Proc of the Int'l Symp Code Generation and Optimization,2007:244-258.

[5] Shye A,Blomstedt J,Moseley T,et al.PLR:A Software Approach to Transient Fault Tolerance for Multi-core Architectures[J].IEEE Trans on Dependable and Secure Computing,2009,6(2):135-148.

[6] S.K.Reinhardt,S.S.Mukherjee.Transient Fault Detection via Simultaneous Multithreading[C].Proc.of the 27th International Symposium on Computer Architecture,2000:25-36.

[7] 王明惠,朱光宇,王慧敏.基于PowerPC的飛控軟件設計實現及驗證[J].航空兵器,2013(4):54-57.

作者簡介:

李 ?偉(1983-),男,碩士,工程師.研究領域:飛行控制軟件.

主站蜘蛛池模板: 黄色网页在线观看| 91在线免费公开视频| 色亚洲成人| 欧美在线精品怡红院| 亚洲欧美日韩精品专区| 国产91在线免费视频| 国产流白浆视频| 国产极品美女在线播放| 免费三A级毛片视频| 国产精品成人观看视频国产 | 国产精品美女自慰喷水| 亚洲第一成年网| 真人高潮娇喘嗯啊在线观看 | 欧美午夜在线播放| 毛片最新网址| 欧美在线导航| 久草国产在线观看| 波多野结衣一区二区三区四区| 精品福利视频导航| 亚洲成人动漫在线观看| 日韩国产亚洲一区二区在线观看| 亚洲精品午夜天堂网页| 91亚洲免费视频| 亚洲毛片在线看| 99er这里只有精品| 亚洲日本韩在线观看| 无码中文字幕乱码免费2| 2021国产精品自产拍在线| 国产偷国产偷在线高清| 亚洲欧美激情另类| 99这里只有精品免费视频| 亚洲第一精品福利| 天天综合网亚洲网站| 久久狠狠色噜噜狠狠狠狠97视色| 五月丁香伊人啪啪手机免费观看| 国产人在线成免费视频| 久久国产精品娇妻素人| 国产在线视频欧美亚综合| 亚洲区视频在线观看| 亚洲欧美一级一级a| 夜夜高潮夜夜爽国产伦精品| 自偷自拍三级全三级视频| 亚洲国产中文欧美在线人成大黄瓜| 色噜噜久久| 狠狠色综合网| 又黄又湿又爽的视频| 女人18毛片一级毛片在线| 免费观看国产小粉嫩喷水| 午夜国产小视频| 亚洲色图综合在线| 香蕉视频在线观看www| 2021国产精品自产拍在线观看| 亚洲国模精品一区| 国产高清毛片| 国产成人高清在线精品| 91久草视频| 九九热视频在线免费观看| 国产精品一区二区不卡的视频| 99久久精品免费观看国产| 国产精品成| 亚洲Av激情网五月天| 丁香六月综合网| 欧美精品在线看| 亚洲福利一区二区三区| 一本大道无码日韩精品影视| 中文字幕 91| 久久99国产综合精品1| 日韩免费毛片| 免费av一区二区三区在线| 欧美色图第一页| 在线色国产| 欧美综合成人| 2020极品精品国产 | 99热6这里只有精品| 亚洲无码一区在线观看| 午夜久久影院| 成人欧美在线观看| 欧美中文字幕一区| 国产欧美日韩18| 波多野结衣一区二区三视频| 国产高清色视频免费看的网址| 欧美第九页|