李 欣,禹霽陽,郝維寧,張 溢,汪路元
(北京空間飛行器總體設(shè)計部, 北京 100094)
目前,SRAM型FPGA憑借其靈活的可重復(fù)編程特性、豐富的邏輯資源以及高效的時序優(yōu)勢等促使航天數(shù)據(jù)管理系統(tǒng)中普遍采用“CPU+FPGA”的架構(gòu)來進行數(shù)據(jù)處理[1]。星載SRAM型FPGA的邏輯功能通過在軌重構(gòu)加載配置數(shù)據(jù)來確定。其在軌重構(gòu)可靠性研究主要分為兩部分:(1)針對SRAM型FPGA器件的重構(gòu)設(shè)計,其主要通過重配置、定時刷新等方式實現(xiàn)[4]。(2)配置數(shù)據(jù)的存儲操作,其主要通過選取不同的非易失存儲芯片來實現(xiàn)。兩部分設(shè)計均需要對抗單粒子效應(yīng),當(dāng)前主流研究主要針對第一部分。本文則主要研究討論第二部分的可靠性提升技術(shù),最大限度地降低空間輻射對星上存儲的配置數(shù)據(jù)的影響。
區(qū)別于PROM的不可更改和MRAM的容量有限,當(dāng)前主流的NOR型FLASH存儲器[5-6]容量可以支持多片F(xiàn)PGA配置數(shù)據(jù)的存放需求,且具有讀取速率高,可以反復(fù)擦寫等優(yōu)勢。NOR型FLASH存儲器被廣泛應(yīng)用于運行系統(tǒng)程序以及FPGA配置數(shù)據(jù)的存儲,因此如何有效的實現(xiàn)對NOR型FLASH存儲器的抗輻照加固,保證其在空間環(huán)境中的功能穩(wěn)定和數(shù)據(jù)安全性變得尤為重要。
當(dāng)前研究趨勢主要集中于兩個方向:(1)通過增加糾錯編碼來糾正配置數(shù)據(jù)中發(fā)生的單粒子錯誤。例如Changpei Han使用EDAC檢查的方式對存儲于EEPROM中的配置數(shù)據(jù)進行錯誤檢驗和校正[2],該設(shè)計采用擴展的漢明校驗碼實現(xiàn)屏蔽配置數(shù)據(jù)中SEU的產(chǎn)生,擴展校驗碼數(shù)量少,操作簡單。但糾錯能力有限,發(fā)現(xiàn)兩位以上的錯誤就需要地面輔助進行糾正,每次檢驗時間伴隨配置數(shù)據(jù)的增加而逐漸增加,只適合存儲資源量較小FPGA的配置數(shù)據(jù)。(2)通過三模冗余存儲配置數(shù)據(jù),因為三模數(shù)據(jù)中的兩模數(shù)據(jù)同一比特發(fā)生反轉(zhuǎn)的可能性很低,故在讀取時進行三取二表決即可實現(xiàn)顯著降低單粒子翻轉(zhuǎn)的效果。袁素春等[3]將配置數(shù)據(jù)通過三模冗余的方是存儲于Nor Flash中,控制器讀出配置數(shù)據(jù)時進行三取二表決,將表決后的數(shù)據(jù)配置到FPGA中。三模冗余可以將大幅度降低單粒子反轉(zhuǎn)的影響,但不能改善星上長時間工作的環(huán)境會造成Nor Flash芯片產(chǎn)生總劑量輻射效應(yīng)(Total Dose Effect,TID)的影響,存在數(shù)據(jù)正確性隱患。故該方式適用于短期使用的星上設(shè)備。伴隨著星載設(shè)備向智能化集成化發(fā)展,星上使用的SRAM型FPGA的器件資源和使用時間逐漸延長,因此三模冗余和糾錯碼的方式都不能滿足當(dāng)前星載FPGA的配置數(shù)據(jù)存儲的可靠性需求。
針對這一問題,本文中提出“三模+巡檢”的復(fù)合式存儲設(shè)計方法,通過三模冗余存儲與定期巡檢操作相配合,打破EDAC糾錯能力有限和三模冗余不能避免TID效應(yīng)的困局,實現(xiàn)星載FPGA配置數(shù)據(jù)的高可靠存儲。
本文結(jié)構(gòu)如下,第一節(jié)主要闡述“三模+巡檢”的復(fù)合式存儲系統(tǒng)結(jié)構(gòu);第二節(jié)介紹復(fù)合式存儲系統(tǒng)的具體工作流程;第三節(jié)結(jié)合Markov模型,對“三模+巡檢”的復(fù)合式存儲系統(tǒng)進行可靠性建模。第四節(jié)依據(jù)可靠性模型,對“三模+巡檢”的復(fù)合式存儲系統(tǒng)在空間應(yīng)用方面的可靠性進行仿真,通過實驗結(jié)果分析參數(shù)影響并和以往設(shè)計進行了比較,表明了本設(shè)計的有效性;第五節(jié)對全文進行了總結(jié)和展望。
在衛(wèi)星應(yīng)用中,SRAM型FPGA通過其配套的在軌重構(gòu)電路來進行上電配置以及在軌重配置等操作。在軌重構(gòu)系統(tǒng)的穩(wěn)定性會直接影響配置成功與否,并關(guān)系到目標SRAM型FPGA功能的實現(xiàn)[1]。 “三模+巡檢”的復(fù)合式存儲系統(tǒng)結(jié)構(gòu)以傳統(tǒng)的星載重構(gòu)控制電路為基礎(chǔ),可以實現(xiàn)對多個SRAM型FPGA的并行配置和刷新等功能,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 復(fù)合式存儲系統(tǒng)結(jié)構(gòu)框圖
考慮到星上高能粒子密集,低溫等特殊環(huán)境,系統(tǒng)選取ACTEL公司生產(chǎn)的反熔絲FPGA作為控制芯片,憑借其良好的抗輻射性能,負責(zé)配置數(shù)據(jù)遙控幀處理、SRAM型FPGA的在軌配置和刷新操作以及配置數(shù)據(jù)在Nor Flash中的“三模+巡檢”的復(fù)合式存儲管理操作等。
選用Nor Flash來存儲FPGA的配置數(shù)據(jù)。在其內(nèi)部設(shè)置3個獨立的配置數(shù)據(jù)存儲區(qū),每個存儲區(qū)內(nèi)部都對配置數(shù)據(jù)進行三模冗余存儲。每個SRAM型FPGA的配置數(shù)據(jù)獨立存儲的模式即支持對多個SRAM型FPGA的分別配置來實現(xiàn)不同功能,也支持對3個SRAM型FPGA并行配置同一個配置數(shù)據(jù),從而實現(xiàn)硬件FPGA的三模冗余,有效提高航天系統(tǒng)的可靠性。
由于Nor Flash本身不支持直接覆蓋數(shù)據(jù),需要擦除后才能寫入新的數(shù)據(jù),為了支持巡檢操作,在Nor Flash中設(shè)置一個獨立的校正數(shù)據(jù)存儲區(qū),其大小與單模配置數(shù)據(jù)大小一致,用于存儲三取二判決獲得的正確數(shù)據(jù)。
“三模+巡檢”的復(fù)合式存儲系統(tǒng)工作分為三模冗余存儲與定期數(shù)據(jù)巡檢兩部分。
三模冗余操作的基本原理在于三取二判決。如圖2所示。
圖2 三取二判決門電路圖
其具體方法為三取二比對按位進行,即將取得的三份數(shù)據(jù)的每一位先兩兩相或,得到3個數(shù)值,然后將以上3個值相與,即為三取二判決后的數(shù)據(jù),從而保證數(shù)據(jù)的正確性。
三模冗余存儲操作在通過遙控上注SRAM型FPGA配置數(shù)據(jù)時進行。地面測控系統(tǒng)將配置數(shù)據(jù)通過星地鏈路上傳至衛(wèi)星,衛(wèi)星數(shù)管系統(tǒng)將配置數(shù)據(jù)傳遞到Actel FPGA中,Actel FPGA將配置數(shù)據(jù)存儲于Nor Flash中3個不同的偏移地址中。三模數(shù)據(jù)的存儲地址均可以通過外部指令進行設(shè)置。
與三模冗余相對應(yīng),Actel FPGA在讀取配置數(shù)據(jù)時,應(yīng)進行三取二判決,如果3個數(shù)據(jù)均一致,則任意選擇一個數(shù)據(jù)輸出;如果3個數(shù)據(jù)不一致,則進行三取二判決,經(jīng)過判決后的數(shù)據(jù)作為配置數(shù)據(jù)輸出到SRAM型FPGA中。
定期數(shù)據(jù)巡檢工作在衛(wèi)星不需要存儲或者讀取配置數(shù)據(jù)的空閑時間進行,周期時長由指令控制。Actel FPGA對巡檢操作進行控制,針對Nor Flash中配置數(shù)據(jù)三模后的存儲區(qū)域,以扇區(qū)為單位進行遍歷讀取校驗。如果發(fā)現(xiàn)三次讀取的數(shù)據(jù)不相同,則證明所在扇區(qū)發(fā)生SEU錯誤,首先記錄發(fā)生錯誤的配置數(shù)據(jù)區(qū),然后在整個錯誤扇區(qū)的數(shù)據(jù)讀取遍歷結(jié)束后,進行錯誤校正。接著,開啟下一個扇區(qū)的巡檢操作,直到巡檢偏移地址遞增到SRAM型FPGA配置數(shù)據(jù)區(qū)的最大偏移地址后,巡檢操作完畢。錯誤校正操作步驟如圖3所示。
圖3 配置數(shù)據(jù)巡檢修復(fù)流程
(1)根據(jù)發(fā)生錯誤的扇區(qū)對應(yīng)偏移地址,擦除校正數(shù)據(jù)區(qū)中的對應(yīng)地址的扇區(qū)中的數(shù)據(jù)。(2)通過讀取三模數(shù)據(jù)來獲得正確的配置數(shù)據(jù),該讀取操作涉及整個扇區(qū)。從發(fā)生錯誤的扇區(qū)的首地址開始,依次讀取三模冗余數(shù)據(jù),每次讀取的3個數(shù)據(jù)通過三取二表決來獲得正確的配置數(shù)據(jù)并將正確數(shù)據(jù)存儲校正數(shù)據(jù)區(qū)對應(yīng)偏移地址中。(3)對發(fā)生錯誤扇區(qū)進行擦除數(shù)據(jù)操作。(4)讀取校正數(shù)據(jù)區(qū)中步驟2獲得的正確數(shù)據(jù)后寫入到發(fā)生錯誤扇區(qū),從而實現(xiàn)針對錯誤數(shù)據(jù)的修復(fù)工作。
系統(tǒng)可靠性是指系統(tǒng)在規(guī)定條件下和規(guī)定時間完成規(guī)定功能的能力[7]。準確建模存儲系統(tǒng)可靠性、分析其相關(guān)參數(shù)對可靠性的影響,并預(yù)估其可能的增長趨勢,對于確定整個存儲系統(tǒng)設(shè)計的可靠性至關(guān)重要。
在“三模+巡檢”的復(fù)合式存儲設(shè)計中,配置數(shù)據(jù)在軌存儲的可靠性可以通過基于Markov模型進行過程分析和可靠度描述。
空間單粒子效應(yīng)類型多樣,航天器在軌工作工程中伴隨著SRAM型FPGA規(guī)模增大,其配制數(shù)據(jù)文件隨之變得更大, 其在Nor Flash中存儲的過程中發(fā)生單粒子錯誤的概率也越來越嚴重。適用于配置數(shù)據(jù)存儲管理系統(tǒng)的單粒子效應(yīng)在表1中展示。
表1 單粒子效應(yīng)類型[11]
表1中的單粒子效應(yīng)中,單粒子燒毀屬于永久損傷,不可恢復(fù),稱為硬錯誤。其他單粒子效應(yīng)都屬于非永久損傷,可以通過巡檢操作恢復(fù)正常狀態(tài),稱為軟錯誤。
在“三模+巡檢”的復(fù)合式存儲系統(tǒng)中,配置數(shù)據(jù)的狀態(tài)即表示系統(tǒng)的可靠性。航天器在軌工作過程中,伴隨著單粒子效應(yīng)造成的數(shù)據(jù)錯誤以及巡檢操作帶來的數(shù)據(jù)修復(fù),配置數(shù)據(jù)在系統(tǒng)中冗余存儲的三模數(shù)據(jù)會出現(xiàn)各類狀態(tài)轉(zhuǎn)移。從而構(gòu)成該系統(tǒng)可靠性的Markov狀態(tài)轉(zhuǎn)移模型。如圖4所示。
圖4 “三模+巡檢”的復(fù)合式存儲Markov狀態(tài)轉(zhuǎn)移模型
圖4中S0~S9等10個狀態(tài)描述了“三模+巡檢”的復(fù)合式存儲系統(tǒng)中的配置數(shù)據(jù)在在軌運行中所有可能出現(xiàn)的狀態(tài),可以描述為:
1)狀態(tài)S0:三模數(shù)據(jù)均未發(fā)生錯誤。
2)狀態(tài)S1:一模數(shù)據(jù)發(fā)生軟錯誤。
3)狀態(tài)S2: 一模數(shù)據(jù)發(fā)生硬錯誤。
4)狀態(tài)S3:一模數(shù)據(jù)發(fā)生軟錯誤,一模數(shù)據(jù)硬錯誤。
5)狀態(tài)S4:兩模數(shù)據(jù)發(fā)生軟錯誤。
6)狀態(tài)S5: 兩模數(shù)據(jù)發(fā)生硬錯誤。
7)狀態(tài)S6:兩模數(shù)據(jù)發(fā)生軟錯誤,一模數(shù)據(jù)硬錯誤。
8)狀態(tài)S7:兩模數(shù)據(jù)發(fā)生硬錯誤,一模數(shù)據(jù)軟錯誤。
9)狀態(tài)S8:三模數(shù)據(jù)發(fā)生軟錯誤。
10)狀態(tài)S9: 三模數(shù)據(jù)發(fā)生硬錯誤。
根據(jù)狀態(tài)轉(zhuǎn)移模型,設(shè)置在t時刻狀態(tài)概率矩陣P為:
P(t)=[P0(t),P1(t),...,P9(t)]
(1)
在實際工程中,需要使用可靠度來定量的表示可靠性的高低。由圖4可知,處于S0,S1和S2狀態(tài)下才能通過三取二判決后數(shù)據(jù)正確,從而保證SRAM型FPGA的配置操作正常,故“三模+巡檢”的復(fù)合式存儲系統(tǒng)設(shè)計的可靠度R即為在某一時刻處在S0,S1和S2狀態(tài)下的概率。可以表示為:
R(t)=P0(t)+P1(t)+P2(t)
(2)
設(shè)置每個配置數(shù)據(jù)存儲單元的發(fā)生軟錯誤的概率為λ,發(fā)生硬錯誤的概率為η,“三模+巡檢”的復(fù)合式存儲中定時巡檢的修復(fù)率為μ。根據(jù)可靠性分析理論[7],某模塊在時刻t正常工作,則在t+Δt時刻發(fā)生軟錯誤的概率為:
P(t+Δt)=1-e-λΔt
(3)
經(jīng)過泰勒級數(shù)展開,當(dāng)Δt趨近于0的時候,發(fā)生軟錯誤的概率簡化為:
P(t+Δ)=λΔt
(4)
同理,得到軟錯誤通過巡檢操作修復(fù)成功的概率為:
P(t+Δ)=1-e-μΔt
(5)
當(dāng)Δt趨近于0的時候可以簡化為:
P(t+Δ)=μΔt
(6)
同理,得到在t+Δt時刻發(fā)生硬錯誤的概率為:
P(t+Δ)=1-e-ηΔt
(7)
當(dāng)Δt趨近于0的時候可以簡化為:
P(t+Δ)=ηΔt
(8)
通過圖4,公式(4), 公式 (6)和 公式 (8),獲得狀態(tài)轉(zhuǎn)移密度矩陣A。
A=
(9)
“三模+巡檢”的復(fù)合式存儲系統(tǒng)在不同狀態(tài)時的概率矩陣可由下列方程獲得:
P′(t)=AP(t)
(10)
將A和P(t)代入公式(10),當(dāng)Δt趨近于0的時候,可以得到“三模+巡檢”的復(fù)合式存儲系統(tǒng)Markov模型的連續(xù)微分方程組:
(11)
首先根據(jù)航天器在軌工作情況設(shè)置相關(guān)參數(shù)。設(shè)置可靠性觀測時間裕度最大到15年.參考Nor Flash輻射測試數(shù)據(jù)[9],設(shè)置軟錯誤概率為λ= 10-5,硬錯誤概率為η= 10-7。已知單粒子效應(yīng)風(fēng)險與配置數(shù)據(jù)在Nor Flash中的存儲空間大小直接相關(guān)。Xilinx公司生產(chǎn)的SRAM型FPGA具有豐富的邏輯資源和I/O管腳,因此常被用于星上復(fù)雜的數(shù)據(jù)處理和算法實現(xiàn)。故選擇該公司Virtex2系列XQR2V3000型FPGA作為分析的SRAM型FPGA,根據(jù)用戶手冊其配置數(shù)據(jù)大小約為10 Mbits[8],通過三模冗余方式存儲于Nor Flash中的配置數(shù)據(jù)占用存儲空間大小約為30 Mbits。
對于“三模+巡檢”的復(fù)合式存儲系統(tǒng)Markov模型的連續(xù)微分方程組,即公式(11),其初始條件,即t= 0時,三模數(shù)據(jù)均正確,其處于S0的狀態(tài)。故設(shè)置概率矩陣P的初始狀態(tài)為:
(12)
結(jié)合已設(shè)置的參數(shù),求解公式(11),即可得到目標時刻的概率矩陣,由于求取微分方程組的解析算法相當(dāng)復(fù)雜,計算工作量龐大,所以采用Matlab中的的解算指令來求解公式(11),進行復(fù)合式存儲系統(tǒng)的可靠度仿真,從而目標時刻的概率矩陣中處在S0,S1和S2狀態(tài)下的概率。將3個狀態(tài)下的概率代入公式(2),即可獲得目標時刻的復(fù)合式存儲系統(tǒng)的可靠度R。
通過不同時刻系統(tǒng)可靠度比較就可以實現(xiàn)對在航天器在軌工作過程中對復(fù)合式存儲系統(tǒng)的可靠性變化以及相關(guān)參數(shù)影響的仿真和評估。
復(fù)合式存儲系統(tǒng)的一大創(chuàng)新在于引入定期巡檢機制來提高配置數(shù)據(jù)存儲的修復(fù)率μ。修復(fù)率μ與巡檢周期成反比,因此分別設(shè)置巡檢周期為5 s, 30 s, 1 min, 5 min, 30 min,來實現(xiàn)修復(fù)率的變化。從而通過對配置數(shù)據(jù)在不同程度的修復(fù)率下的可靠度進行仿真,可以得到修復(fù)率μ對可靠性的影響。其數(shù)值如表2所示。
表2 修復(fù)率μ對系統(tǒng)可靠性影響
獲得曲線變化如圖5所示。
圖5 不同巡檢周期對可靠度R的影響
由圖5可知,初始時刻系統(tǒng)的可靠度最佳為1。 伴隨衛(wèi)星在軌時間增長,不同巡檢周期的可靠度均有所下降。隨著巡檢周期變長,可靠度R下降的速度逐漸增加。根據(jù)表2中數(shù)值可以得到:在整個衛(wèi)星在軌生命周期中修復(fù)率μ≥ 3.6e-4的可靠度R可以滿足大于0.99的可靠性要求。因此,“三模+巡檢”的復(fù)合式存儲系統(tǒng)推薦巡檢周期小于等于5 s。
結(jié)合4.1節(jié),選取巡檢周期為5 s的“三模+巡檢”的復(fù)合式存儲系統(tǒng),選取不同的空間硬錯誤出現(xiàn)概率,依次設(shè)定在軌工作中,永久性損傷的概率比暫時性損傷的概率小1個、小2個和小3個數(shù)量級,“三模+巡檢”的復(fù)合式存儲系統(tǒng)可靠度變化如圖6所示。
圖6 硬錯誤概率η對可靠度R的影響
當(dāng)永久性損傷的概率比暫時性損傷的概率小1個數(shù)量級時,復(fù)合式存儲系統(tǒng)的可靠度相比兩個數(shù)量級而大幅度下降,不能滿足配置數(shù)據(jù)存儲可靠性大于0.99的要求。當(dāng)前空間環(huán)境中,系統(tǒng)發(fā)生永久性損傷的概率比發(fā)生暫時性損傷的概率要小2個數(shù)量級[10],故在衛(wèi)星在軌全部生命周期內(nèi),“三模+巡檢”的復(fù)合式存儲系統(tǒng)為星載FPGA配置數(shù)據(jù)的存儲提供極高的可靠性。
針對在軌實際應(yīng)用,選取巡檢周期為5 s的“三模+巡檢”的復(fù)合式存儲系統(tǒng)與普通三模冗余存儲系統(tǒng)的可靠性進行對比,獲得可靠度變化如圖7所示。
隨著時間增加,“三模+巡檢”的復(fù)合式存儲系統(tǒng)的可靠度明顯優(yōu)于普通三模冗余存儲系統(tǒng)。
圖7 與普通三模冗余存儲系統(tǒng)的可靠性對比
為了提高星載SRAM型FPGA在軌重構(gòu)系統(tǒng)中FPGA配置數(shù)據(jù)的存儲數(shù)據(jù)正確性,本文提出了一種“三模+巡檢”的復(fù)合式存儲設(shè)計方法。在傳統(tǒng)配置數(shù)據(jù)存儲系統(tǒng)的基礎(chǔ)上實施優(yōu)化設(shè)計方案,并模擬星上設(shè)備在軌運行環(huán)境影響來建立“三模+巡檢”的復(fù)合式存儲Markov狀態(tài)轉(zhuǎn)移模型,提煉系統(tǒng)可靠度微分方程組對復(fù)合式存儲設(shè)計方法進行可靠性分析。通過Matlab仿真分析了暫時性錯誤率、永久性錯誤率以及修復(fù)率等因素對可靠度的影響,證明了復(fù)合式存儲設(shè)計在軌可靠度大于0.99,其可靠性明顯優(yōu)于傳統(tǒng)三模冗余的存儲方式。
該存儲設(shè)計目前已經(jīng)應(yīng)用于航天器工程設(shè)計中,期望通過本文的相關(guān)可靠性研究以及工程實踐工作,能對隨后的面向航天應(yīng)用的SRAM型FPGA配置數(shù)據(jù)存儲設(shè)計提供有益的借鑒參考。