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-),男,碩士,工程師.研究領域:飛行控制軟件.

主站蜘蛛池模板: 国产凹凸一区在线观看视频| 99久久成人国产精品免费| 亚洲成人精品久久| 亚洲a免费| 亚洲一区二区日韩欧美gif| 中文字幕一区二区视频| 欧美日韩中文国产va另类| 午夜少妇精品视频小电影| 国产一区二区三区在线观看免费| 国产精品jizz在线观看软件| 欧美啪啪网| 免费国产小视频在线观看| 免费A级毛片无码无遮挡| 欧美日韩在线国产| h视频在线播放| 国产呦精品一区二区三区下载| 91久久偷偷做嫩草影院免费看| 欧美成人综合视频| 亚洲国产理论片在线播放| 日本高清免费不卡视频| 69av在线| 国产肉感大码AV无码| 久久无码av三级| 久草网视频在线| 日本草草视频在线观看| 中文字幕在线观看日本| 亚洲国产成人综合精品2020| 亚洲成a人片| 亚洲婷婷丁香| 成人午夜视频在线| 无码一区中文字幕| 在线国产91| 91麻豆精品国产高清在线| 国产白浆一区二区三区视频在线| 亚洲h视频在线| 无码国产偷倩在线播放老年人| 麻豆国产在线观看一区二区| 国产欧美视频在线| 美女潮喷出白浆在线观看视频| www.av男人.com| 国产91丝袜在线播放动漫| 亚洲男人天堂2018| 久久久噜噜噜| 国产成人一区免费观看| 日韩精品一区二区深田咏美 | 国产精品真实对白精彩久久| 欧美伦理一区| 国产自产视频一区二区三区| 亚洲经典在线中文字幕| 亚洲VA中文字幕| 亚洲成A人V欧美综合| 中文毛片无遮挡播放免费| 91视频首页| 亚洲开心婷婷中文字幕| 欧美中文字幕第一页线路一| 国产电话自拍伊人| 国产农村精品一级毛片视频| 国产成人亚洲欧美激情| 久久精品国产999大香线焦| 中文字幕资源站| 日韩在线2020专区| 免费观看男人免费桶女人视频| 亚洲欧美日韩中文字幕在线一区| 伊大人香蕉久久网欧美| 极品国产一区二区三区| 欧美精品在线看| 欧美一级在线看| 国产人人射| 久一在线视频| 国产成人精品日本亚洲77美色| 国产精品粉嫩| 亚洲三级a| 2021最新国产精品网站| 免费看a级毛片| 91精品国产丝袜| 国产自在线拍| 国产亚洲欧美日本一二三本道| 欧美三級片黃色三級片黃色1| 中文字幕66页| 黄色网址手机国内免费在线观看| 色135综合网| 99草精品视频|