高 潔 李 強
1 (上海交通大學電子與通信工程學院 上海 200240)
2 (上海航天技術研究院第八○四研究所 上海 201109)
3 (上海航天技術研究院第五○九研究所 上海 200240)
微處理器是衛(wèi)星核心器件,應用于數(shù)管計算機、姿軌控計算機以及有效載荷數(shù)據(jù)處理設備等,對空間輻射環(huán)境中質子、重離子等引起的單粒子效應較為敏感,如單粒子翻轉引起數(shù)據(jù)丟失、指令出錯,單粒子閂鎖引起功耗電流陡增,甚至造成系統(tǒng)燒毀。國內外多顆衛(wèi)星在軌運行受到單粒子效應影響[1–3],1983年4月發(fā)射升空的美國TDRS-1衛(wèi)星進入地球同步軌道后,至1993年3月,共發(fā)生單粒子效應事件4468次,在1989年10月的太陽耀斑中,該衛(wèi)星上的單粒子事件探測儀共發(fā)生239次單粒子翻轉事件;1994年2月發(fā)射的我國實踐-4衛(wèi)星每天在軌也探測到3.4次單粒子翻轉,該衛(wèi)星上的單粒子閂鎖探測器半年內探測到6次單粒子閂鎖事件。
為保證微處理器的空間應用可靠性,國外對微處理器的單粒子效應模擬試驗方法及翻轉率預估進行了大量研究,應用較廣的預估軟件有 CRèME、Space Radiation 5.0等[4]。國外在單粒子效應的飛行試驗驗證方面也取得較大進展,一些空間飛行試驗數(shù)據(jù)已用于驗證地面模擬試驗結果。我國在單粒子翻轉率預估上主要還是跟蹤國外研究成果,如軟件編制和計算工作;在運用飛行試驗數(shù)據(jù)驗證地面模擬試驗結果方面,研究報道較少。
相關模擬試驗和在軌監(jiān)測結果表明,傳統(tǒng)的單粒子翻轉率預估結果一般是靜態(tài)單粒子翻轉率[5];而微處理器在軌工作時,運行軟件決定了內部資源的使用情況;完成的功能不同,得到的在軌單粒子翻轉率(動態(tài)單粒子翻轉率)也不盡相同。因此,須研究星用微處理器的在軌單粒子翻轉率與運行程序間的關系,為合理預估在軌單粒子翻轉率提供保證。本文運用程序占空比概念研究星用微處理器動態(tài)和靜態(tài)單粒子翻轉率間的關系,并結合國外在軌飛行監(jiān)測數(shù)據(jù)對典型87C51微處理器的在軌單粒子翻轉率預估結果進行分析。
衛(wèi)星在軌飛行監(jiān)測數(shù)據(jù)表明,星用微處理器的動態(tài)單粒子翻轉率低于 CRèME、Space Radiation 5.0等標準軟件計算得到的靜態(tài)單粒子翻轉率[5]。這主要是程序占空比的影響,即星用微處理器執(zhí)行工程應用程序時,其內部寄存器和存儲器占用數(shù)據(jù)總線的時間與執(zhí)行程序所需全部時間的比值[5]。
為預估抗單粒子翻轉能力,進行星用微處理器單粒子效應模擬試驗時,一般采用類似于SRAM存儲器的試驗方法,即對微處理器內部所有寄存器和存儲器的每個存儲字節(jié)均寫入“55H”或“AAH” 等測試數(shù)據(jù),提高資源使用率,保證程序占空比接近100%;標準檢測程序統(tǒng)計不同 LET值的重離子或質子輻照下寄存器和存儲器存儲數(shù)據(jù)邏輯狀態(tài)發(fā)生翻轉的位數(shù),獲得σ–LET曲線;根據(jù)空間軌道環(huán)境和σ–LET曲線計算空間單粒子翻轉率。由于程序占空比很高,得到的是靜態(tài)單粒子翻轉率。
雖然微處理器與 SRAM 存儲器均屬于存儲功能器件,但二者在工作方式上存在一定區(qū)別。微處理器內部包括CPU寄存器、數(shù)據(jù)存儲器、程序存儲器、計數(shù)器、串行通訊口等多個功能單元,不同的應用程序執(zhí)行過程中,這些功能單元的工作狀態(tài)均存在差異,一般僅使用部分寄存器和存儲器,資源使用率小于 100%,未使用到的寄存器和存儲器發(fā)生單粒子翻轉不會對微處理器的正常工作產(chǎn)生影響。因此,模擬試驗過程中微處理器執(zhí)行應用程序時,獲得的翻轉率即為動態(tài)單粒子翻轉率。
理論計算和計算機仿真得到星用微處理器動態(tài)與靜態(tài)單粒子翻轉率間的關系為
式中,Rε與R0分別為星用微處理器的動態(tài)與靜態(tài)單粒子翻轉率(次/器件·天),ε為星用微處理器寄存器和存儲器程序占空比的平均值,可由離子輻照試驗、理論模型計算或故障注入模擬等方法獲得。
UoSAT系列衛(wèi)星是英國 Surrey大學研制的小型試驗衛(wèi)星,第一顆(UoSAT-1)于1981年由NASA成功發(fā)射升空。1981–1998 年,Surrey大學共完成14 顆UoSAT系列衛(wèi)星研制,衛(wèi)星的指令遙控系統(tǒng)主要由美國Intel公司的87C51微處理器構成[6]。
圖1為UoSAT衛(wèi)星指令遙控系統(tǒng)的原理框圖,系統(tǒng)采用 4個 87C51微處理器作為指令譯碼器(Command Decoder),其中,0#為主機,1#–3#為備份冗余機。系統(tǒng)工作時,首先初始化主板A和主板B上的命令鎖存器(Command Latches);完成初始化后87C51執(zhí)行應用程序,通過串行通訊口接收地面發(fā)送的數(shù)據(jù),并驗證接收到的數(shù)據(jù)為有效指令幀;將有效指令寫入主板上的鎖存器,然后通過總線發(fā)送給星上其它系統(tǒng)。
圖1 采用87C51微處理器構建的UoSAT衛(wèi)星指令遙控系統(tǒng)原理框圖Fig.1 Block diagram of UoSAT satellite command remote control system by 87C51 microprocessor.
87C51微處理器共有54個寄存器,包括21個特殊功能寄存器(SFR)、1個程序計數(shù)器(PC)及4個通用寄存器組(BANK 0–BANK 3,每組含有8個通用寄存器)。指令遙控程序運行時,主要使用87C51微處理器內部的特殊功能寄存器、程序計數(shù)器及 1個通用寄存器組BANK 0。特殊功能寄存器包括累加器 ACC、B寄存器、程序狀態(tài)字 PSW、堆棧指針SP、數(shù)據(jù)指針DPTR、中斷優(yōu)先級控制IP、運行中斷控制IE、定時器方式控制寄存器TMOD、定時器控制寄存器TCON、串行控制寄存器SCON、串行數(shù)據(jù)緩沖寄存器SBUF、電源控制寄存器PCON等。利用軟件分別計算87C51微處理器運行遙控應用程序時其內部每個寄存器的程序占空比如表1,得到平均值為29%。
在地面實驗室條件下采用重離子加速器和質子加速器進行輻照試驗。輻照過程中87C51微處理器運行標準檢測程序,即統(tǒng)計器件內部所有寄存器中存儲數(shù)據(jù)邏輯狀態(tài)發(fā)生翻轉的位數(shù);根據(jù)翻轉位數(shù)、重離子或質子注量等計算單粒子翻轉閾值及翻轉飽和截面,結果如下:(1) 重離子單粒子翻轉閾值:LET=2.5 MeV·mg?1·cm?2,單粒子翻轉飽和截面:σsat=7.0×10?3cm2/器件;(2) 質子單粒子翻轉閾值:20 MeV,翻轉飽和截面:σsat=1.0×10?9cm2/器件。
空間環(huán)境中的重離子和質子均會引起單粒子翻轉。以國際空間站軌道(軌道高度386 km,傾角51.6°)為例,結合試驗數(shù)據(jù)采用Space Radiation 5.0軟件分別計算3.5 mm厚的等效鋁屏蔽下該軌道上重離子和質子引起的單粒子翻轉率,二者相加即為該軌道上87C51微處理器的靜態(tài)單粒子翻轉率,計算結果如下:(1) 重離子引起單粒子翻轉率:R1=6.0×10?4次/(器件·天);(2) 質子引起單粒子翻轉率:R2=7.1×10?4次/(器件·天);(3) 總的靜態(tài)單粒子翻轉率R=(6.0 +7.1)×10?4×365=0.48 次/(器件·年)。
87C51微處理器執(zhí)行應用程序時的程序占空比ε為29%,根據(jù)式(1),國際空間站軌道上87C51微處理器的動態(tài)單粒子翻轉率即為0.48×29%=0.14次/(器件·年)。
表1 87C51微處理器運行應用程序時內部所有寄存器的程序占空比Table 1 ε of all registers of 87C51 microprocessor when running application program.
1990–1995年英國 Surrey大學共發(fā)射六顆UoSAT衛(wèi)星,每顆衛(wèi)星指令遙控系統(tǒng)中均含有四個87C51微處理器。六顆衛(wèi)星的軌道高度700 km,傾角98.25°,屏蔽厚度為3 mm Al殼。該軌道的輻射環(huán)境與國際空間站軌道相比更易引起單粒子翻轉。
根據(jù)模擬試驗得到的靜態(tài)和動態(tài)單粒子翻轉率預估三年在軌運行時間內24個87C51微處理器的靜態(tài)單粒子翻轉率為0.48×24×3=34.6次;動態(tài)單粒子翻轉率為0.14×24×3=10.0次。
截至1998年12月底,在軌監(jiān)測數(shù)據(jù)尚未發(fā)現(xiàn)這六顆UoSAT衛(wèi)星上的24個87C51微處理器發(fā)生過單粒子翻轉。表明靜態(tài)單粒子翻轉率會過高估計星用微處理器的在軌單粒子翻轉率,而結合程序占空比得到的動態(tài)單粒子翻轉率可對星用微處理器的在軌單粒子翻轉率進行更合理的預估。
故障注入技術是通過人為手段將故障引入目標系統(tǒng)中,模擬目標系統(tǒng)實際運行時可能發(fā)生的各種故障;通過對目標系統(tǒng)運行情況的觀察,分析目標系統(tǒng)故障檢測、故障隔離、故障恢復等加固措施的有效性,為完善和改進系統(tǒng)加固設計提供反饋信息[6,7]。故障注入技術分為硬件故障注入和軟件故障注入。硬件故障注入是在器件的管腳上強行施加外部信號,使器件發(fā)生故障;軟件故障注入通過修改內存或寄存器內容來實現(xiàn),成本較低,無需更改硬件設計,實現(xiàn)方式較為靈活。目前,常見的軟件故障注入工具有 FIAT、Ferrari、SFI、FINE、Accelerated Injection 等[8]。
為驗證星用微處理器靜態(tài)和動態(tài)單粒子翻轉率間的關系,我們采用故障注入法計算星用微處理器的程序占空比,即在星用微處理器執(zhí)行應用程序時,利用軟件工具向其內部的寄存器隨機寫入一定數(shù)量的錯誤數(shù)據(jù),模擬單粒子翻轉效應的發(fā)生;統(tǒng)計觀測到的單粒子翻轉位數(shù),程序占空比為:
式中,E0為故障注入時星用微處理器中可觀測到的翻轉位數(shù),E為注入的故障總數(shù)。
87C51微處理器的單粒子效應故障注入系統(tǒng)包括:故障注入機(Fault Injection)、87C51微處理器、翻轉效應測試系統(tǒng)(SEU Monitor System)。系統(tǒng)運行時,87C51微處理器執(zhí)行UoSAT衛(wèi)星的指令遙控程序;程序運行過程中,故障注入機通過軟件算法更改87C51微處理器內部寄存器中的存儲數(shù)據(jù),所更改的寄存器物理地址、類型、數(shù)據(jù)等由故障注入機中的軟件算法隨機給出,模擬87C51微處理器中發(fā)生了單粒子翻轉效應;通過翻轉效應測試系統(tǒng)監(jiān)測87C51微處理器應用程序執(zhí)行的情況。
故障注入機共向87C51微處理器內部的寄存器隨機寫入120位錯誤數(shù)據(jù),測試結果如下:(1) 76%的注入故障未對應用程序的運行產(chǎn)生影響,表明由于注入故障而發(fā)生單粒子翻轉的寄存器在應用程序運行過程中沒有被使用;(2) 24%的注入故障對87C51微處理器應用程序的運行產(chǎn)生影響,其中:36%的單粒子翻轉引起微處理器出現(xiàn)死機現(xiàn)象,需通過重新上電復位才能恢復運行;64%的單粒子翻轉導致微處理器發(fā)送錯誤指令。
故障注入模擬試驗中,注入的故障總數(shù)可認為是87C51微處理器運行標準檢測程序時能統(tǒng)計到的所有翻轉位數(shù),即發(fā)生靜態(tài)單粒子翻轉;而對應用程序運行產(chǎn)生影響的故障數(shù)(觀測到的翻轉位數(shù))可認為是動態(tài)單粒子翻轉。因此,根據(jù)式(2),利用故障注入模擬試驗得到的程序占空比為24%,與通過專用軟件工具計算得到的29%較接近,表明通過故障注入模擬試驗可較好得到程序占空比,故障注入法是一種合理、靈活、操作方便的動態(tài)單粒子翻轉率預估方法。
為保證衛(wèi)星電子系統(tǒng)在軌可靠工作,需對星用微處理器進行抗單粒子翻轉加固設計,提高電子系統(tǒng)的抗單粒子翻轉性能?,F(xiàn)有方法主要是降低微處理器的程序占空比,或采用重載、刷新、EDAC校驗等糾錯方法。如我國FY-1氣象衛(wèi)星上所用80C86微處理器進行了軟件加固設計,并利用重離子加速器對加固后的微處理器進行輻照試驗,驗證加固效果。試驗結果表明,加固后的軟件對單粒子翻轉的糾錯率達到 85%以上。文獻[5]指出,軟件加固前BX1750A星用微處理器在軌不發(fā)生單粒子翻轉的概率僅為 62.3%,而采用定時重載和刷新等措施加固后該微處理器在軌不發(fā)生單粒子翻轉的概率可提高至 97.7%。表明軟件加固設計可有效提高星用微處理器的抗單粒子翻轉性能。
本文運用程序占空比概念研究了星用微處理器靜態(tài)和動態(tài)單粒子翻轉率間的關系,對典型87C51微處理器的單粒子翻轉率進行了預估,并與在軌飛行監(jiān)測數(shù)據(jù)進行了對比,結果表明,動態(tài)單粒子翻轉率可對星用微處理器的空間單粒子翻轉率進行更加合理的預估;最后采用故障注入技術驗證了采用程序占空比預估空間單粒子翻轉率的準確性。
隨著空間技術的發(fā)展,F(xiàn)PGA、DSP等新型處理器逐漸在衛(wèi)星電子系統(tǒng)上大量使用。這些器件均是單粒子效應敏感器件,后續(xù)工作中我們將以這些典型新型處理器為對象,開展單粒子翻轉率預估方法及加固技術研究,為衛(wèi)星電子系統(tǒng)抗輻射加固設計技術的逐步完善提供基礎數(shù)據(jù)支持。
1 薛玉雄, 曹 洲, 楊世宇, 等. IDT6116 單粒子敏感性評估試驗技術研究[J]. 原子能科學與技術, 2008, 42(1):22-27 XUE Yuxiong, CAO Zhou, YANG Shiyu,et al. Study on IDT6116 single event effect sensitivity evaluation testing technology[J]. At Energy Sci Technol, 2008, 42(1): 22-27
2 劉 剛, 趙發(fā)展, 韓鄭生. 宇航用電子元器件單粒子輻照技術[R]. 第十屆全國抗輻射電子學與電磁脈沖技術年會論文集, 2009: 214-216 LIU Gang, ZHAO Fazhan, HAN Zhengsheng. The Space with electronic components single particle irradiation technology[R]. Tenth national resist radiation electronics and electromagnetic pulse technology conference proceedings, 2009: 214-216
3 楊兆銘. 單粒子效應對航天器的威脅及空間飛行試驗研究[J]. 真空與低溫, 1995: 1(1): 46-58 YANG Zhaoming. A Survey of threats of SEEs to spacecrafts and their spaceflight results[J]. Vacuum Cryog,1995, 1(1): 46-58
4 賀朝會. 空間軌道單粒子翻轉率預估方法研究[J]. 空間科學學報, 2001, 21(3): 266-273 HE Chaohui. Study of methods for predicting SEU rate in space orbits[J]. Chinese J Space Sci, 2001, 21(3): 266-273
5 李 強, 高 潔, 劉偉鑫. 星用微處理器抗單粒子翻轉可靠性預示方法研究[J]. 核技術, 2010, 33(11): 832-835 LI Qiang, GAO Jie, LIU Weixin. An SEU reliability prediction method for microprocessors of space applications[J]. Nucl Tech, 2010, 33(11): 832-835
6 Underwood C I, Oldfield M K. Observed radiationinduced degradation of commercial-off-the-shelf (COTS)devices operating in low-earth orbit[J]. IEEE Trans Nucl Sci, 1998, 12(3), 2739-2740
7 Tang D. Dependability measurement and modeling of a multicomputer system[J]. IEEE Trans Comput, 1993,42(1): 62-74
8 Clark J A, Pradhan D K. Fault injection: a method for validating computer-system dependability[J]. IEEE Trans Comput, 1995, 28(6):47-56