李 欣,禹霽陽,郝維寧,張 溢,汪路元
(北京空間飛行器總體設計部, 北京 100094)
目前,SRAM型FPGA憑借其靈活的可重復編程特性、豐富的邏輯資源以及高效的時序優勢等促使航天數據管理系統中普遍采用“CPU+FPGA”的架構來進行數據處理[1]。星載SRAM型FPGA的邏輯功能通過在軌重構加載配置數據來確定。其在軌重構可靠性研究主要分為兩部分:(1)針對SRAM型FPGA器件的重構設計,其主要通過重配置、定時刷新等方式實現[4]。(2)配置數據的存儲操作,其主要通過選取不同的非易失存儲芯片來實現。兩部分設計均需要對抗單粒子效應,當前主流研究主要針對第一部分。本文則主要研究討論第二部分的可靠性提升技術,最大限度地降低空間輻射對星上存儲的配置數據的影響。
區別于PROM的不可更改和MRAM的容量有限,當前主流的NOR型FLASH存儲器[5-6]容量可以支持多片FPGA配置數據的存放需求,且具有讀取速率高,可以反復擦寫等優勢。NOR型FLASH存儲器被廣泛應用于運行系統程序以及FPGA配置數據的存儲,因此如何有效的實現對NOR型FLASH存儲器的抗輻照加固,保證其在空間環境中的功能穩定和數據安全性變得尤為重要。
當前研究趨勢主要集中于兩個方向:(1)通過增加糾錯編碼來糾正配置數據中發生的單粒子錯誤。例如Changpei Han使用EDAC檢查的方式對存儲于EEPROM中的配置數據進行錯誤檢驗和校正[2],該設計采用擴展的漢明校驗碼實現屏蔽配置數據中SEU的產生,擴展校驗碼數量少,操作簡單。但糾錯能力有限,發現兩位以上的錯誤就需要地面輔助進行糾正,每次檢驗時間伴隨配置數據的增加而逐漸增加,只適合存儲資源量較小FPGA的配置數據。(2)通過三模冗余存儲配置數據,因為三模數據中的兩模數據同一比特發生反轉的可能性很低,故在讀取時進行三取二表決即可實現顯著降低單粒子翻轉的效果。袁素春等[3]將配置數據通過三模冗余的方是存儲于Nor Flash中,控制器讀出配置數據時進行三取二表決,將表決后的數據配置到FPGA中。三模冗余可以將大幅度降低單粒子反轉的影響,但不能改善星上長時間工作的環境會造成Nor Flash芯片產生總劑量輻射效應(Total Dose Effect,TID)的影響,存在數據正確性隱患。故該方式適用于短期使用的星上設備。伴隨著星載設備向智能化集成化發展,星上使用的SRAM型FPGA的器件資源和使用時間逐漸延長,因此三模冗余和糾錯碼的方式都不能滿足當前星載FPGA的配置數據存儲的可靠性需求。
針對這一問題,本文中提出“三模+巡檢”的復合式存儲設計方法,通過三模冗余存儲與定期巡檢操作相配合,打破EDAC糾錯能力有限和三模冗余不能避免TID效應的困局,實現星載FPGA配置數據的高可靠存儲。
本文結構如下,第一節主要闡述“三模+巡檢”的復合式存儲系統結構;第二節介紹復合式存儲系統的具體工作流程;第三節結合Markov模型,對“三模+巡檢”的復合式存儲系統進行可靠性建模。第四節依據可靠性模型,對“三模+巡檢”的復合式存儲系統在空間應用方面的可靠性進行仿真,通過實驗結果分析參數影響并和以往設計進行了比較,表明了本設計的有效性;第五節對全文進行了總結和展望。
在衛星應用中,SRAM型FPGA通過其配套的在軌重構電路來進行上電配置以及在軌重配置等操作。在軌重構系統的穩定性會直接影響配置成功與否,并關系到目標SRAM型FPGA功能的實現[1]。 “三模+巡檢”的復合式存儲系統結構以傳統的星載重構控制電路為基礎,可以實現對多個SRAM型FPGA的并行配置和刷新等功能,系統結構如圖1所示。

圖1 復合式存儲系統結構框圖
考慮到星上高能粒子密集,低溫等特殊環境,系統選取ACTEL公司生產的反熔絲FPGA作為控制芯片,憑借其良好的抗輻射性能,負責配置數據遙控幀處理、SRAM型FPGA的在軌配置和刷新操作以及配置數據在Nor Flash中的“三模+巡檢”的復合式存儲管理操作等。
選用Nor Flash來存儲FPGA的配置數據。在其內部設置3個獨立的配置數據存儲區,每個存儲區內部都對配置數據進行三模冗余存儲。每個SRAM型FPGA的配置數據獨立存儲的模式即支持對多個SRAM型FPGA的分別配置來實現不同功能,也支持對3個SRAM型FPGA并行配置同一個配置數據,從而實現硬件FPGA的三模冗余,有效提高航天系統的可靠性。
由于Nor Flash本身不支持直接覆蓋數據,需要擦除后才能寫入新的數據,為了支持巡檢操作,在Nor Flash中設置一個獨立的校正數據存儲區,其大小與單模配置數據大小一致,用于存儲三取二判決獲得的正確數據。
“三模+巡檢”的復合式存儲系統工作分為三模冗余存儲與定期數據巡檢兩部分。
三模冗余操作的基本原理在于三取二判決。如圖2所示。

圖2 三取二判決門電路圖
其具體方法為三取二比對按位進行,即將取得的三份數據的每一位先兩兩相或,得到3個數值,然后將以上3個值相與,即為三取二判決后的數據,從而保證數據的正確性。
三模冗余存儲操作在通過遙控上注SRAM型FPGA配置數據時進行。地面測控系統將配置數據通過星地鏈路上傳至衛星,衛星數管系統將配置數據傳遞到Actel FPGA中,Actel FPGA將配置數據存儲于Nor Flash中3個不同的偏移地址中。三模數據的存儲地址均可以通過外部指令進行設置。
與三模冗余相對應,Actel FPGA在讀取配置數據時,應進行三取二判決,如果3個數據均一致,則任意選擇一個數據輸出;如果3個數據不一致,則進行三取二判決,經過判決后的數據作為配置數據輸出到SRAM型FPGA中。
定期數據巡檢工作在衛星不需要存儲或者讀取配置數據的空閑時間進行,周期時長由指令控制。Actel FPGA對巡檢操作進行控制,針對Nor Flash中配置數據三模后的存儲區域,以扇區為單位進行遍歷讀取校驗。如果發現三次讀取的數據不相同,則證明所在扇區發生SEU錯誤,首先記錄發生錯誤的配置數據區,然后在整個錯誤扇區的數據讀取遍歷結束后,進行錯誤校正。接著,開啟下一個扇區的巡檢操作,直到巡檢偏移地址遞增到SRAM型FPGA配置數據區的最大偏移地址后,巡檢操作完畢。錯誤校正操作步驟如圖3所示。

圖3 配置數據巡檢修復流程
(1)根據發生錯誤的扇區對應偏移地址,擦除校正數據區中的對應地址的扇區中的數據。(2)通過讀取三模數據來獲得正確的配置數據,該讀取操作涉及整個扇區。從發生錯誤的扇區的首地址開始,依次讀取三模冗余數據,每次讀取的3個數據通過三取二表決來獲得正確的配置數據并將正確數據存儲校正數據區對應偏移地址中。(3)對發生錯誤扇區進行擦除數據操作。(4)讀取校正數據區中步驟2獲得的正確數據后寫入到發生錯誤扇區,從而實現針對錯誤數據的修復工作。
系統可靠性是指系統在規定條件下和規定時間完成規定功能的能力[7]。準確建模存儲系統可靠性、分析其相關參數對可靠性的影響,并預估其可能的增長趨勢,對于確定整個存儲系統設計的可靠性至關重要。
在“三模+巡檢”的復合式存儲設計中,配置數據在軌存儲的可靠性可以通過基于Markov模型進行過程分析和可靠度描述。
空間單粒子效應類型多樣,航天器在軌工作工程中伴隨著SRAM型FPGA規模增大,其配制數據文件隨之變得更大, 其在Nor Flash中存儲的過程中發生單粒子錯誤的概率也越來越嚴重。適用于配置數據存儲管理系統的單粒子效應在表1中展示。

表1 單粒子效應類型[11]
表1中的單粒子效應中,單粒子燒毀屬于永久損傷,不可恢復,稱為硬錯誤。其他單粒子效應都屬于非永久損傷,可以通過巡檢操作恢復正常狀態,稱為軟錯誤。
在“三模+巡檢”的復合式存儲系統中,配置數據的狀態即表示系統的可靠性。航天器在軌工作過程中,伴隨著單粒子效應造成的數據錯誤以及巡檢操作帶來的數據修復,配置數據在系統中冗余存儲的三模數據會出現各類狀態轉移。從而構成該系統可靠性的Markov狀態轉移模型。如圖4所示。

圖4 “三模+巡檢”的復合式存儲Markov狀態轉移模型
圖4中S0~S9等10個狀態描述了“三模+巡檢”的復合式存儲系統中的配置數據在在軌運行中所有可能出現的狀態,可以描述為:
1)狀態S0:三模數據均未發生錯誤。
2)狀態S1:一模數據發生軟錯誤。
3)狀態S2: 一模數據發生硬錯誤。
4)狀態S3:一模數據發生軟錯誤,一模數據硬錯誤。
5)狀態S4:兩模數據發生軟錯誤。
6)狀態S5: 兩模數據發生硬錯誤。
7)狀態S6:兩模數據發生軟錯誤,一模數據硬錯誤。
8)狀態S7:兩模數據發生硬錯誤,一模數據軟錯誤。
9)狀態S8:三模數據發生軟錯誤。
10)狀態S9: 三模數據發生硬錯誤。
根據狀態轉移模型,設置在t時刻狀態概率矩陣P為:
P(t)=[P0(t),P1(t),...,P9(t)]
(1)
在實際工程中,需要使用可靠度來定量的表示可靠性的高低。由圖4可知,處于S0,S1和S2狀態下才能通過三取二判決后數據正確,從而保證SRAM型FPGA的配置操作正常,故“三模+巡檢”的復合式存儲系統設計的可靠度R即為在某一時刻處在S0,S1和S2狀態下的概率。可以表示為:
R(t)=P0(t)+P1(t)+P2(t)
(2)
設置每個配置數據存儲單元的發生軟錯誤的概率為λ,發生硬錯誤的概率為η,“三模+巡檢”的復合式存儲中定時巡檢的修復率為μ。根據可靠性分析理論[7],某模塊在時刻t正常工作,則在t+Δt時刻發生軟錯誤的概率為:
P(t+Δt)=1-e-λΔt
(3)
經過泰勒級數展開,當Δt趨近于0的時候,發生軟錯誤的概率簡化為:
P(t+Δ)=λΔt
(4)
同理,得到軟錯誤通過巡檢操作修復成功的概率為:
P(t+Δ)=1-e-μΔt
(5)
當Δt趨近于0的時候可以簡化為:
P(t+Δ)=μΔt
(6)
同理,得到在t+Δt時刻發生硬錯誤的概率為:
P(t+Δ)=1-e-ηΔt
(7)
當Δt趨近于0的時候可以簡化為:
P(t+Δ)=ηΔt
(8)
通過圖4,公式(4), 公式 (6)和 公式 (8),獲得狀態轉移密度矩陣A。
A=

(9)
“三模+巡檢”的復合式存儲系統在不同狀態時的概率矩陣可由下列方程獲得:
P′(t)=AP(t)
(10)
將A和P(t)代入公式(10),當Δt趨近于0的時候,可以得到“三模+巡檢”的復合式存儲系統Markov模型的連續微分方程組:
(11)
首先根據航天器在軌工作情況設置相關參數。設置可靠性觀測時間裕度最大到15年.參考Nor Flash輻射測試數據[9],設置軟錯誤概率為λ= 10-5,硬錯誤概率為η= 10-7。已知單粒子效應風險與配置數據在Nor Flash中的存儲空間大小直接相關。Xilinx公司生產的SRAM型FPGA具有豐富的邏輯資源和I/O管腳,因此常被用于星上復雜的數據處理和算法實現。故選擇該公司Virtex2系列XQR2V3000型FPGA作為分析的SRAM型FPGA,根據用戶手冊其配置數據大小約為10 Mbits[8],通過三模冗余方式存儲于Nor Flash中的配置數據占用存儲空間大小約為30 Mbits。
對于“三模+巡檢”的復合式存儲系統Markov模型的連續微分方程組,即公式(11),其初始條件,即t= 0時,三模數據均正確,其處于S0的狀態。故設置概率矩陣P的初始狀態為:

(12)
結合已設置的參數,求解公式(11),即可得到目標時刻的概率矩陣,由于求取微分方程組的解析算法相當復雜,計算工作量龐大,所以采用Matlab中的的解算指令來求解公式(11),進行復合式存儲系統的可靠度仿真,從而目標時刻的概率矩陣中處在S0,S1和S2狀態下的概率。將3個狀態下的概率代入公式(2),即可獲得目標時刻的復合式存儲系統的可靠度R。
通過不同時刻系統可靠度比較就可以實現對在航天器在軌工作過程中對復合式存儲系統的可靠性變化以及相關參數影響的仿真和評估。
復合式存儲系統的一大創新在于引入定期巡檢機制來提高配置數據存儲的修復率μ。修復率μ與巡檢周期成反比,因此分別設置巡檢周期為5 s, 30 s, 1 min, 5 min, 30 min,來實現修復率的變化。從而通過對配置數據在不同程度的修復率下的可靠度進行仿真,可以得到修復率μ對可靠性的影響。其數值如表2所示。

表2 修復率μ對系統可靠性影響
獲得曲線變化如圖5所示。

圖5 不同巡檢周期對可靠度R的影響
由圖5可知,初始時刻系統的可靠度最佳為1。 伴隨衛星在軌時間增長,不同巡檢周期的可靠度均有所下降。隨著巡檢周期變長,可靠度R下降的速度逐漸增加。根據表2中數值可以得到:在整個衛星在軌生命周期中修復率μ≥ 3.6e-4的可靠度R可以滿足大于0.99的可靠性要求。因此,“三模+巡檢”的復合式存儲系統推薦巡檢周期小于等于5 s。
結合4.1節,選取巡檢周期為5 s的“三模+巡檢”的復合式存儲系統,選取不同的空間硬錯誤出現概率,依次設定在軌工作中,永久性損傷的概率比暫時性損傷的概率小1個、小2個和小3個數量級,“三模+巡檢”的復合式存儲系統可靠度變化如圖6所示。

圖6 硬錯誤概率η對可靠度R的影響
當永久性損傷的概率比暫時性損傷的概率小1個數量級時,復合式存儲系統的可靠度相比兩個數量級而大幅度下降,不能滿足配置數據存儲可靠性大于0.99的要求。當前空間環境中,系統發生永久性損傷的概率比發生暫時性損傷的概率要小2個數量級[10],故在衛星在軌全部生命周期內,“三模+巡檢”的復合式存儲系統為星載FPGA配置數據的存儲提供極高的可靠性。
針對在軌實際應用,選取巡檢周期為5 s的“三模+巡檢”的復合式存儲系統與普通三模冗余存儲系統的可靠性進行對比,獲得可靠度變化如圖7所示。
隨著時間增加,“三模+巡檢”的復合式存儲系統的可靠度明顯優于普通三模冗余存儲系統。

圖7 與普通三模冗余存儲系統的可靠性對比
為了提高星載SRAM型FPGA在軌重構系統中FPGA配置數據的存儲數據正確性,本文提出了一種“三模+巡檢”的復合式存儲設計方法。在傳統配置數據存儲系統的基礎上實施優化設計方案,并模擬星上設備在軌運行環境影響來建立“三模+巡檢”的復合式存儲Markov狀態轉移模型,提煉系統可靠度微分方程組對復合式存儲設計方法進行可靠性分析。通過Matlab仿真分析了暫時性錯誤率、永久性錯誤率以及修復率等因素對可靠度的影響,證明了復合式存儲設計在軌可靠度大于0.99,其可靠性明顯優于傳統三模冗余的存儲方式。
該存儲設計目前已經應用于航天器工程設計中,期望通過本文的相關可靠性研究以及工程實踐工作,能對隨后的面向航天應用的SRAM型FPGA配置數據存儲設計提供有益的借鑒參考。