呂 巖
一般而言,星載計算機系統(tǒng)主要由:處理器、程序存儲器、數(shù)據(jù)存儲器等部分組成.
傳統(tǒng)的星載計算機系統(tǒng)一般選用高等級器件,程序存儲器一般選用對單粒子免疫的反熔絲型器件,數(shù)據(jù)存儲器(static random-access memory,SRAM)一般選用抗單粒子閾值高的器件,或者通過錯誤檢測與糾正(error detection and correction,EDAC)等技術(shù)來對抗單粒子翻轉(zhuǎn)[1].通過提高單個元器件可靠性的方式來提高整個計算機系統(tǒng)的可靠性,這種方式的優(yōu)點是可靠性高,代價是成本高昂.
隨著航天技術(shù)的發(fā)展,商用現(xiàn)貨(commercial off-the-shelf,COTS)器件憑借著成本低,集成度高等優(yōu)點,應(yīng)用日益廣泛.目前商業(yè)衛(wèi)星公司通常采用降低器件質(zhì)量等級的方式來降低成本.由于COTS器件大多采用塑封形式,存在吸潮、爆米花效應(yīng)等問題,其可靠性相對較低,且由于未針對航天應(yīng)用環(huán)境進(jìn)行特殊設(shè)計,其抗空間環(huán)境能力也較弱,在軌易發(fā)生因單粒子、總劑量等問題導(dǎo)致的在軌異常[2-4].鑒于此,商業(yè)衛(wèi)星在設(shè)計時一般會對COTS存儲器件有容錯措施,但大部分容錯只限于存儲器單芯片內(nèi)的軟件多模技術(shù),比如在存儲器中存放多份程序代碼冗余,用來對抗單粒子翻轉(zhuǎn)導(dǎo)致的系統(tǒng)無法啟動[5],此方法只能在一定程度上對抗單粒子翻轉(zhuǎn),不能夠?qū)勾鎯ζ鲉涡酒В鎯ζ鲉涡酒б簿鸵馕吨麄€計算機系統(tǒng)的失效.因此,選用COTS器件雖然可以降低計算機成本,但也降低了系統(tǒng)的可靠性.
目前提高計算機系統(tǒng)可靠性的方法主要有三模等技術(shù),即對計算機系統(tǒng)進(jìn)行整機三模[6],該方法可大幅提高系統(tǒng)的可靠性,但付出的代價很大,需要同時配置三套計算機系統(tǒng),體積大,重量大,功耗高,帶來的附加成本較高,在商業(yè)衛(wèi)星領(lǐng)域不易推廣.
針對此問題,對于低軌應(yīng)用場景,提出了一種設(shè)計方法,利用COTS器件,通過程序存儲器和數(shù)據(jù)存儲器雙冗余的方式來提高計算機系統(tǒng)的可靠性.相比于計算機系統(tǒng)三模,本設(shè)計付出的代價較小,僅需要增加兩片存儲器即可對計算機系統(tǒng)的可靠性和抗空間環(huán)境能力有較大提升,且系統(tǒng)具有優(yōu)異的容錯能力,即便單個存儲器失效,系統(tǒng)也能夠正常運行.
在計算機系統(tǒng)中,受器件復(fù)雜度等因素影響,失效率高的器件主要為:程序存儲器、數(shù)據(jù)存儲器和處理器.其它器件諸如電阻、電容、電源、邏輯門電路等器件失效率相對較低[7].考慮到處理器的重要性,一般商業(yè)衛(wèi)星都會選用高等級器件作為處理器.因此,在提高可靠性方面我們主要對低等級的程序存儲器和數(shù)據(jù)存儲器進(jìn)行可靠性加固,代價小,收益高.
由于低等級的程序存儲器和數(shù)據(jù)存儲器多為塑封器件,存在吸潮、爆米花效應(yīng)等問題,長時間在軌應(yīng)用有失效的風(fēng)險[8].因此對其進(jìn)行了雙冗余.由于COTS器件自身抗空間環(huán)境能力相對較弱,在軌易發(fā)生單粒子翻轉(zhuǎn).因此,選用了芯片自身帶有錯誤檢查與糾正(error correcting code,ECC)功能的存儲器件.
綜合以上原則,本設(shè)計的計算機系統(tǒng)主要由以下幾部分組成:處理器(高等級器件)、雙冗余SRAM(COTS器件)、雙冗余NOR FLASH(COTS器件).其中SRAM選用兩片同樣規(guī)格的帶ECC糾檢錯功能的SRAM,F(xiàn)LASH選用兩片同樣規(guī)格的帶ECC糾檢錯功能的NOR FLASH,兩片SRAM和FLASH均同時工作.系統(tǒng)框圖如圖1所示.
圖1 計算機系統(tǒng)組成框圖Fig.1 Computer system function block diagram
處理器選用ACTEL的SmartFusion2系列片上系統(tǒng)FPGA,內(nèi)部集成了166MHz的Cortex-M3硬核處理器,資源豐富,體積小,功耗低[9],有過大量飛行驗證.本設(shè)計選用SmartFusion2系列的M2S050T-1FGG484M型處理器.
程序存儲器選用CYPRESS公司生產(chǎn)的NOR FLASH,可存儲Boot程序和應(yīng)用程序,芯片選型為S25FL512SAGBFI211,容量512 Mbit,芯片自帶ECC功能,每16bytes可以糾正1bit數(shù)據(jù)位翻轉(zhuǎn),ECC糾檢錯狀態(tài)可以通過訪問FLASH的ECC寄存器來查看.芯片采用串行外設(shè)接口(serial peripheral interface,SPI),Quad模式下讀取速率可以達(dá)到104 MHz.
數(shù)據(jù)存儲器選用ISSI公司生產(chǎn)的SRAM,可用于運行計算機程序,芯片選型為IS61WV102416EDBLL-10B2L,容量16Mbit,自帶ECC糾檢錯功能,每1byte可以糾正1bit數(shù)據(jù)位翻轉(zhuǎn),芯片輸出ECC糾檢錯狀態(tài)管腳ERR,用高低電平來表征當(dāng)前是否發(fā)生ECC糾檢錯.SRAM的訪問速度可達(dá)到100 MHz.
計算機系統(tǒng)搭建原理如圖2所示.
圖2 計算機系統(tǒng)原理圖Fig.2 Schematic diagram of computer system
NOR FLASH作為程序存儲器,將引導(dǎo)程序和應(yīng)用程序拷貝相同的兩份存放在兩片NOR FLASH中,F(xiàn)PGA主要實現(xiàn)CPU與FLASH之間的地址轉(zhuǎn)換以及2片F(xiàn)LASH數(shù)據(jù)的表決.處理器加電后,CPU通過FPGA映射地址從FLASH中加載,將FLASH中存放的應(yīng)用程序加載到SRAM中,完成程序加載后,CPU從SRAM中運行.
2.2.1 程序加載
M2S050T處理器CPU主頻設(shè)置為128MHz,處理器在啟動時對程序加載速度一般無特殊要求,設(shè)置訪問FLASH為64個等待周期,即CPU對FLASH的訪問周期為496ns.FLASH在Quad模式下單次訪問耗時21ns.讀取FLASH的ECC狀態(tài)寄存器需要采用FAST READ方式,單次訪問耗時421ns.
在CPU一個取指周期內(nèi),F(xiàn)PGA依次完成以下操作:
T1階段:FPGA將CPU的訪問地址映射給2片F(xiàn)LASH并判讀2片F(xiàn)LASH給出的數(shù)據(jù)是否一致;
T2階段:FPGA判讀兩數(shù)據(jù)一致則將FLASH1數(shù)據(jù)映射給CPU,如果不一致則訪問2片F(xiàn)LASH的ECC寄存器狀態(tài);
T3階段:FPGA將ECC寄存器狀態(tài)正確的FLASH數(shù)據(jù)映射給CPU.
一個取指周期內(nèi),各階段所耗費的時間如圖3所示.
圖3 CPU程序加載一個取指周期Fig.3 CPU program loads addressing cycle
程序加載流程如圖4所示.
2.2.2 程序運行
M2S050T處理器CPU主頻設(shè)置為128MHz,星上平臺應(yīng)用場景,一般設(shè)置SRAM為4個等待周期即可滿足大部分應(yīng)用需求,即CPU對SRAM的訪問周期為31ns.SRAM的單次讀寫耗時10ns.
圖4 CPU程序加載工作流程Fig.4 CPU program loading workflow
在CPU一個SRAM訪問周期內(nèi),F(xiàn)PGA依次完成以下操作:
T1階段:FPGA將CPU的訪問地址映射給2片SRAM并判讀2片SRAM給出的數(shù)據(jù)是否一致;
T2階段:如果數(shù)據(jù)一致則將SRAM1給出的數(shù)據(jù)映射給CPU,如果不一致則判讀2片SRAM的ERR管腳狀態(tài);
T3階段:FPGA將ERR狀態(tài)正確的SRAM數(shù)據(jù)映射給CPU,同時FPGA將錯誤的SRAM數(shù)據(jù)回寫并糾正.
一個訪問周期內(nèi),各階段所耗費的時間如圖5所示.
圖5 CPU程序運行一個取指周期Fig.5 CPU program runs addressing cycle
程序運行流程如圖6所示.
圖6 CPU程序運行工作流程Fig.6 CPU program operation workflow
針對COTS器件在軌易發(fā)生的故障進(jìn)行了分析和對比,見表1.
由表1可知,采用本設(shè)計的計算機系統(tǒng),基本可抵御在軌的常見異常,且對抗單粒子翻轉(zhuǎn)的魯棒性更強,能夠容忍單bit或多bit翻轉(zhuǎn),因此,在容錯方面,本設(shè)計要優(yōu)于傳統(tǒng)的計算機系統(tǒng).
根據(jù)GJB/Z 299C-2006電子設(shè)備可靠性預(yù)計手冊,在計算機系統(tǒng)中,受器件工藝復(fù)雜度等因素影響,計算機系統(tǒng)中失效率較高的器件主要為:程序存儲器、數(shù)據(jù)存儲器和處理器等大規(guī)模集成電路.其它器件諸如電阻、電容、電源、邏輯門電路等器件其失效率相對較低.因此我們將計算機核心部分簡化成以下模型,如圖7所示.
表1 計算機在軌易發(fā)生的故障分析對比Tab.1 Analysis and comparison of computer-prone faults
由上圖可知,傳統(tǒng)計算機或商業(yè)衛(wèi)星計算機系統(tǒng)可簡化為串聯(lián)模型,任何一部分失效,均會導(dǎo)致系統(tǒng)失效.
由上圖可知,本設(shè)計計算機系統(tǒng)可簡化為串并聯(lián)混合模型,只有兩片SRAM或FLASH同時失效,才會導(dǎo)致系統(tǒng)失效.
對比兩個模型可知,除SRAM和FLASH連接方式不同外,其余部分兩個模型均為串聯(lián)模式(兩個模型的Ra、Rb可靠性相同).因此,為了突出兩種模型的對比情況,下面僅針對兩種模型的SRAM和FLASH進(jìn)行局部可靠性預(yù)計.
圖7 傳統(tǒng)計算機或商業(yè)衛(wèi)星計算機可靠性簡化模型1Fig.7 Traditional computer or Commercial satellites computer reliability model 1
圖8 本設(shè)計計算機可靠性簡化模型2Fig.8 Computer reliability model 3 of the paper
根據(jù)GJB/Z 299C-2006電子設(shè)備可靠性預(yù)計手冊,進(jìn)口集成電路的失效率計算公式為[7]:
λp=(C1πT+C2πE)πQ
(1)
其中:λp表示模型中各器件的失效率;C1表示電路復(fù)雜度失效率,10-6/h;πT表示溫度應(yīng)力系數(shù);C2表示封裝復(fù)雜度失效率,10-6/h;πE表示環(huán)境系數(shù);πQ表示質(zhì)量系數(shù);
根據(jù)式(1)查表并計算等規(guī)模的宇航級和工業(yè)級芯片的失效率如表2所示.
根據(jù)可靠性預(yù)計公式[10]:
(2)
其中:RS(t)表示模型中存儲器部分總的可靠性;Ri表示模型中各部分的可靠性;λi表示模型中各器件的失效率;t表示模型中器件的工作時間;Rflash1表示FLASH的可靠性;Rsram1表示SRAM的可靠性。
表2 等規(guī)模的宇航級和工業(yè)級芯片的失效率計算Tab.2 Calculation of failure rates of aerospace-grade and industrial-grade chips of equal scale
模型1中存儲器由SRAM和FLASH兩部分組成,任意一片SRAM或FLASH失效均會導(dǎo)致系統(tǒng)失效,由式(2)可知,其失效率為SRAM和FLASH的總和,可靠性為兩部分可靠性的乘積,因此模型1存儲器部分總的可靠性為[10]:
RS(t)=e-(λsram+λflash)×t
(3)
其中:λsram表示SRAM的失效率;λflash表示FLASH的失效率;
模型2中存儲器由SRAM和FLASH兩部分組成,即:兩片SRAM并聯(lián),兩片F(xiàn)LASH并聯(lián),之后二者再串聯(lián).只有兩片SRAM或兩片F(xiàn)LASH均失效才會導(dǎo)致系統(tǒng)失效,模型2中并聯(lián)部分的可靠性為[10]:
(4)
其中:RS2(t)表示并聯(lián)部分的可靠性;因此,2片F(xiàn)LASH并聯(lián)后的可靠性為:
Rflash2(t)=1-(1-e-λflash×t)2
(5)
2片SRAM并聯(lián)后的可靠性為:
Rsram2(t)=1-(1-e-λsram×t)2
(6)
綜上,模型2存儲器部分總的可靠性為:
[1-(1-e-λflash×t)2]×[1-(1-e-λsram×t)2]
(7)
根據(jù)式(3)和(7)計算得到,2個模型的存儲器部分可靠性預(yù)計曲線如圖9所示.
圖9不同模型可靠性預(yù)計曲線Fig.9 Computer reliability model 3 designed in the paper
以衛(wèi)星在軌15年壽命為例,壽命末期各模型的存儲器部分可靠性和失效率計算見表3.
表3 不同模型的計算機系統(tǒng)可靠性預(yù)計(存儲器部分)Tab.3 Reliability predictions of computer systems with different models(memory section)
由上表可知,15年壽命末期,采用本設(shè)計的計算機系統(tǒng)存儲器部分的失效率為0.0184/10-6h,與傳統(tǒng)宇航級器件的失效率0.0126/10-6h相當(dāng),比商業(yè)衛(wèi)星計算機系統(tǒng)存儲器失效率0.5161/10-6h降低96.4%,失效率大大降低;
由上表可知,15年壽命末期,采用本設(shè)計的計算機系統(tǒng)存儲器部分的可靠性為0.9976,與傳統(tǒng)宇航級計算機系統(tǒng)可靠性0.9983相當(dāng),比一般商業(yè)衛(wèi)星計算機系統(tǒng)整體可靠性0.9344提高約6.7%.
針對星載計算機低成本和高可靠的矛盾問題,本文提出了一種解決方法,在低成本器件的基礎(chǔ)上,利用程序存儲器和數(shù)據(jù)存儲器雙冗余的方式來提高計算機系統(tǒng)的可靠性、容錯能力以及抗空間環(huán)境能力,采用本設(shè)計的計算機其存儲器部分的可靠性與傳統(tǒng)宇航計算機相當(dāng),成本與商業(yè)衛(wèi)星計算機相當(dāng),實現(xiàn)了低成本與高可靠兼顧,在低軌衛(wèi)星應(yīng)用領(lǐng)域具有良好的應(yīng)用前景.