唐志帥, 王延剛, 劉興華
(上海飛機(jī)設(shè)計(jì)研究院,上?!?01210)
單粒子翻轉(zhuǎn)(Single Event Upset,SEU)是由于空間粒子輻射而導(dǎo)致存儲單元發(fā)生位翻轉(zhuǎn)(即內(nèi)容由0變?yōu)?,或由1變?yōu)?)。SEU效應(yīng)是瞬態(tài)的、非破壞性的,但是它可能會改變微電子電路的RAM (Random Access Memory, 隨機(jī)訪問存儲器)構(gòu)型、對可編程電子硬件所執(zhí)行的功能產(chǎn)生不利影響[1]。
現(xiàn)代民機(jī)飛控、航電等系統(tǒng)高度復(fù)雜,其大量采用了基于RAM的復(fù)雜電子硬件,例如微處理器,存儲器,F(xiàn)PGA (Field Programmable Gate Array, 現(xiàn)場可編程門陣列)等。這些設(shè)備中包含SEU敏感部件,一旦受到SEU效應(yīng)影響,則可能導(dǎo)致計(jì)算結(jié)果錯誤、程序執(zhí)行序列錯誤,工作異常,甚至是系統(tǒng)的崩潰。因此為保證他們所執(zhí)行功能的可用性和完整性,應(yīng)考慮引入特殊設(shè)計(jì)特征或執(zhí)行額外的檢查,并對SEU效應(yīng)的安全性影響進(jìn)行分析。
目前在民機(jī)機(jī)載設(shè)備的研制過程中,得到了廣泛應(yīng)用的芯片主要包括專用集成電路器件(Application Specific Integrated Circuit,ASIC)和FPGA。
ASIC芯片能夠?qū)崿F(xiàn)高密度、小體積和低功耗,但ASIC制片成本和風(fēng)險(xiǎn)較高,欠缺靈活性。ASIC一旦制造完成,如果需求發(fā)生更改則需要較長更改周期和巨額重制費(fèi)用,因此ASIC適用于不需要過多特殊定制、能夠大規(guī)模量產(chǎn)應(yīng)用的場合,且要求設(shè)計(jì)需求“一次正確”。ASIC雖然對SEU敏感,但相對來說具有較好的抗SEU性能。
隨著電子工業(yè)的飛速發(fā)展,F(xiàn)PGA由于兼顧高性能及靈活性在數(shù)字系統(tǒng)設(shè)計(jì)及ASIC原型前端設(shè)計(jì)中得到廣泛的應(yīng)用。FPGA的主流技術(shù)有基于反熔絲、基于SRAM (Static Random Access Memory,靜態(tài)隨機(jī)訪問存儲器)和基于Flash三種。
(1)基于反熔絲的FPGA在編程后即使掉電也不丟失數(shù)據(jù),使用較方便,穩(wěn)定可靠,有比較好的抗SEU性能。但傳統(tǒng)的反熔絲FPGA由于不可重復(fù)編程以及成本高昂等原因逐漸被Flash型和SRAM型FPGA所代替。
(2)基于SRAM的FPGA,可大大減少采購成本,提高設(shè)備性能,縮短開發(fā)周期,也可反復(fù)編程使用,因此SRAM型FPGA在機(jī)載復(fù)雜電子設(shè)備中得到了越來越多地關(guān)注和應(yīng)用。SRAM型FPGA能夠應(yīng)用于輻射環(huán)境中,主要?dú)w功于其相對于ASIC低廉的價(jià)格,以及其他類型FPGA沒有的可重復(fù)編程能力。但是SRAM型FPGA相比于其他結(jié)構(gòu)的器件,更易受到輻射效應(yīng)中的單粒子翻轉(zhuǎn)效應(yīng)的影響。一方面,近年來FPGA芯片工藝不斷發(fā)展,從150 nm到今天的14 nm,特征尺寸的減小加劇了基于SRAM的FPGA的SEU發(fā)生;另一方面,芯片的工作頻率不斷提升,使得基于SRAM的FPGA對SEU更加敏感,這些都對基于SRAM的FPGA在民機(jī)上的應(yīng)用造成了限制。因此在使用SRAM型FPGA時,必須考慮對器件進(jìn)行SEU方面的有效加固,以減緩SEU效應(yīng)帶來的影響[2]。
(3)基于Flash的FPGA與SRAM型FPGA相比,在抗SEU影響方面具有較大優(yōu)勢,可靠性高。一般來說,F(xiàn)lash型FPGA是一種單芯片解決方案,不需要外部配置器件,上電即可運(yùn)行且斷電之后能夠保存配置代碼,具有低功耗、高性能的布線結(jié)構(gòu)。但其寫入用戶電路的速度稍慢于SRAM型FPGA,而且相關(guān)設(shè)計(jì)和制造工藝沒有SRAM型FPGA成熟,市場上可選的產(chǎn)品相對有限。
表1給出了這四種芯片的綜合比較信息。
表1 ASIC、反熔絲FPGA、SRAM型FPGA、 Flash型FPGA綜合比較
目前在民機(jī)機(jī)載設(shè)備上應(yīng)用較多的是ASIC、SRAM型FPGA、Flash型FPGA(根據(jù)使用場合不同各有側(cè)重)。由于這些器件對SEU效應(yīng)的敏感,因此在民機(jī)應(yīng)用中需要針對SEU效應(yīng)進(jìn)行加固和減緩。
本節(jié)總結(jié)了幾種常見的SEU減緩措施,力求通過這些設(shè)計(jì)方法將SEU帶來的影響減緩到最小。
復(fù)雜電子硬件內(nèi)部通過設(shè)置具有三模冗余的同步動態(tài)存儲器,防止隨機(jī)故障的發(fā)生。例如某型飛機(jī)的飛控計(jì)算機(jī)采用了三余度的雙倍速率同步動態(tài)存儲器,各自具有獨(dú)立控制器,能夠?qū)崿F(xiàn)位對位表決和修復(fù)位故障的連續(xù)軟件自監(jiān)控功能,可以有效預(yù)防單粒子翻轉(zhuǎn)帶來的影響[3]。
圖1為典型的基于硬件的三模冗余邏輯原理示意圖。三個相同的模塊M1、M2、M3分別接收三個相同的輸入,產(chǎn)生的三個結(jié)果送至投票表決模塊。表決模塊的輸出取決于三個輸入的多數(shù)。若有一個模塊發(fā)生SEU故障,則另兩個正常模塊的輸出可將故障模塊的輸出投出去,不會在表決模塊輸出產(chǎn)生差錯[4]。
圖1 三模冗余TMR表決機(jī)制
TMR技術(shù)的優(yōu)點(diǎn)在于速度快,缺點(diǎn)是所需附加硬件資源多,從而造成功耗、質(zhì)量及體積增大。
糾錯碼是一種針對SEU常見的減緩方法,可使用特定的編碼和解碼規(guī)則檢測和糾正存儲器中的故障。糾錯碼的基本原理是在信息編碼序列上附加冗余編碼,然后進(jìn)行存儲和傳輸,這些冗余編碼與信息編碼之間存在某種確定的相互關(guān)聯(lián)。接收方可以通過校驗(yàn)冗余編碼與信息編碼之間的關(guān)聯(lián),發(fā)現(xiàn)是否受到SEU影響,繼而實(shí)現(xiàn)故障隔離或者利用編碼算法將其糾正。
FPGA的ECC編碼目的就是為了在讀取存儲單元的內(nèi)容時,能夠發(fā)現(xiàn)差錯并將其糾正,一般采用既能檢錯又能糾錯的編碼方法,如CRC (Cyclic Redundancy Check,循環(huán)冗余校驗(yàn))、海明碼(Hamming Code)等。根據(jù)航空工業(yè)應(yīng)用情況,采用這兩種編碼方案在確定碼長的情況下一般至少能夠糾正一位錯誤,如圖2所示。
圖2 典型的糾錯碼技術(shù)功能框圖
機(jī)載電子設(shè)備上電時,通過配置電路將配置存儲單元的內(nèi)容寫進(jìn)FPGA中。當(dāng)FPGA受到SEU效應(yīng)影響時,相應(yīng)存儲單元將出現(xiàn)“位翻轉(zhuǎn)”現(xiàn)象。通過周期性的擦洗,即刷新存儲單元中的內(nèi)容,可以縮小存儲單元受到SEU影響而發(fā)生位翻轉(zhuǎn)的暴露時間[5]。
經(jīng)驗(yàn)表明頻繁地擦洗可以直接地提高存儲器的抗SEU能力,且擦洗時間間隔減小,安全性水平有顯著提高。擦洗無須冗余的附加硬件邏輯資源,僅需適當(dāng)增加自適應(yīng)的周期性刷新操作,增加了系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的復(fù)雜度。
擦洗技術(shù)僅適合片外FPGA配置存儲單元的抗SEU設(shè)計(jì),該方法本身并不能對存儲內(nèi)容是否受到SEU影響進(jìn)行判斷,因此數(shù)據(jù)并不一定可靠。擦洗本質(zhì)上不能解決由SEU效應(yīng)帶來的問題,僅提供了一定程度上的減緩。
系統(tǒng)可以設(shè)置不同層級的監(jiān)控器,對SEU影響進(jìn)行監(jiān)控,并及時對故障進(jìn)行隔離。系統(tǒng)監(jiān)控是一種被動的SEU減緩技術(shù),其目的是隔離故障和重構(gòu)系統(tǒng),最小化故障帶來的影響。系統(tǒng)監(jiān)控不僅僅只針對SEU影響,其作為提高飛機(jī)安全性的必要措施和實(shí)現(xiàn)故障檢測的有效途徑,在民機(jī)各系統(tǒng)設(shè)計(jì)中得到了廣泛應(yīng)用。
在設(shè)備層級,可以通過命令-監(jiān)控架構(gòu)對指令和數(shù)據(jù)進(jìn)行位對位比較,一旦發(fā)現(xiàn)不匹配,啟動相應(yīng)的故障響應(yīng)措施,并給飛機(jī)中央維護(hù)系統(tǒng)報(bào)故障信息,著陸后進(jìn)行維護(hù)操作。在系統(tǒng)層級,機(jī)載系統(tǒng)核心計(jì)算機(jī)通過采集傳感器和其他設(shè)備工作數(shù)據(jù),進(jìn)行回繞監(jiān)控、總線數(shù)據(jù)健康監(jiān)控等,發(fā)現(xiàn)故障后切換至冗余通道,對系統(tǒng)進(jìn)行重構(gòu)。
本文針對SEU效應(yīng),分析了機(jī)載系統(tǒng)經(jīng)常使用到的芯片類型及優(yōu)缺點(diǎn),并總結(jié)了適用的SEU減緩技術(shù),可指導(dǎo)民機(jī)機(jī)載復(fù)雜電子硬件的總體設(shè)計(jì)與架構(gòu)權(quán)衡。
參考文獻(xiàn):
[1] 鄧先坤. SRAM型FPGA SEU故障注入系統(tǒng)設(shè)計(jì)[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[2] 鄭曉云, 陶淑蘋, 馮汝鵬, 等. SRAM型FPGA抗單粒子翻轉(zhuǎn)技術(shù)研究[J]. 電子測量技術(shù), 2015,39(38): 59-63.
[3] 黃影, 張春元, 劉東. SRAM型FPGA的抗SEU方法研究 [J]. 中國空間科學(xué)技術(shù), 2007,27(4): 57-64.
[4] 陳江渝. 基于三模冗余綜合電子系統(tǒng)的研究[D]. 浙江:浙江大學(xué),2013.
[5] 黃錦杰. 抗單粒子翻轉(zhuǎn)SRAM_based FPGA測試系統(tǒng)的研究與設(shè)計(jì)[D].上海:復(fù)旦大學(xué),2011.