孫逸帆,白 亮,雙小川,田文波,游紅俊,*
(1.上海航天電子技術(shù)研究所,上海 201109;2.上海航天智能計算技術(shù)重點實驗室,上海 201109)
隨著宇航系統(tǒng)的發(fā)展,高速數(shù)據(jù)處理和傳輸已成為必不可少的功能要求,由此催生了對高性能處理器件的巨大需求。近幾年,高性能SRAM型FPGA憑借其在靈活性和經(jīng)濟性上的明顯優(yōu)勢,在宇航高速數(shù)據(jù)處理載荷中得到了廣泛的應用,并且隨著載荷平臺一體化的發(fā)展趨勢,也開始逐步應用到平臺管理和控制等高可靠系統(tǒng)中。
然而,與傳統(tǒng)平臺計算機采用的反熔絲FPGA相比,SRAM型FPGA對空間單粒子效應,尤其是單粒子翻轉(zhuǎn)事件較為敏感,需要采取適當?shù)目箚瘟W蛹庸檀胧?。通常,SRAM型FPGA內(nèi)部對單粒子翻轉(zhuǎn)效應較為敏感的資源有配置RAM(CRAM)、塊RAM(BRAM)和寄存器這三大類[1-4],其中尤以配置RAM對器件功能影響最大,可以說配置RAM中發(fā)生的單粒子翻轉(zhuǎn)事件是這類FPGA發(fā)生單粒子功能中斷的主要原因,因而也是重點的加固研究對象。
近幾年,隨著FPGA片內(nèi)糾錯技術(shù)的發(fā)展,Xilinx公司在旗下的SRAM型FPGA上應用了一種名為軟錯誤修復(SEM)的加固技術(shù)[5],大幅提升了配置RAM的單粒子軟錯誤檢測和修復效率。但這種片內(nèi)加固技術(shù)本身需要使用一定的邏輯和存儲資源,同樣也有發(fā)生單粒子軟錯誤的風險。本文分析應用SEM加固技術(shù)的必要性和存在的問題,提出一套基于SEM的FPGA抗單粒子翻轉(zhuǎn)解決方案,并給出在XC7K410T型FPGA上的試驗驗證結(jié)果,驗證加固技術(shù)的有效性。
目前,對配置RAM的加固主要通過使用外部器件(通常為反熔絲FPGA)從配置RAM中回讀配置位流文件,通過與外部存儲中的原始位流文件進行比對,識別發(fā)生翻轉(zhuǎn)的配置幀,再將正確的配置幀寫回配置RAM中,實現(xiàn)單粒子翻轉(zhuǎn)軟錯誤的修復。這種加固方法被稱為外部刷新。近幾年來,針對SRAM型FPGA配置RAM的單粒子防護問題,Xilinx公司在旗下的高性能FPGA上設計了專用的片內(nèi)糾檢錯電路,從而使得內(nèi)部刷新加固技術(shù)變?yōu)榭赡躘6]。配置RAM刷新技術(shù)示意圖如圖1所示。
圖1 配置RAM刷新技術(shù)示意圖Fig.1 Configuration RAM scrubbing architecture
對單粒子翻轉(zhuǎn)軟錯誤的檢測和修復,這項被稱為SEM的加固技術(shù)主要基于在配置幀層面加入32 bit的糾錯碼(ECC)和在整個位流文件上增加32 bit的循環(huán)冗余碼(CRC)校驗來實現(xiàn)。在片內(nèi)專用電路的支持下,配置幀ECC可識別單幀內(nèi)任意2 bit的翻轉(zhuǎn)錯誤,并糾正任意1 bit的翻轉(zhuǎn)錯誤。僅使用ECC計算電路時,SEM工作在修復模式。位流文件CRC可進一步增強FPGA的糾檢錯能力,當CRC與配置幀ECC結(jié)合后,SEM工作在增強修復模式,可檢測絕大多數(shù)的翻轉(zhuǎn)錯誤,并糾正單幀內(nèi)任意1 bit或相鄰2 bit的翻轉(zhuǎn)錯誤。SEM同時支持通過外部存儲器中讀取原始位流文件進行比對的方法來識別和修復配置RAM翻轉(zhuǎn)軟錯誤,即使用替換模式,此時SEM可識別和修復任意的翻轉(zhuǎn)軟錯誤[5]。3種模式需要占用的資源略有不同,檢錯和糾錯所需的時間也有所不同,可根據(jù)具體的設計需求進行選擇。
與傳統(tǒng)的外部刷新技術(shù)相比,SEM最大的優(yōu)勢在于對軟錯誤的糾檢錯效率。其中檢錯占用的時間與FPGA配置RAM的大小呈正比,而糾錯占用的時間則主要受糾錯模式的影響。SEM檢錯延時列于表1[5]。
表1 SEM檢錯延時Table 1 SEM maximum device scan time
不同糾錯方式下,不同錯誤情況下的糾錯延時列于表2[5]。
表2 SEM糾錯延時Table 2 SEM maximum error correction latency
以XC7K410T為例,在修復模式下,識別和修復1 bit翻轉(zhuǎn)錯誤的平均故障修復延時約為15.2+0.610=15.810 ms。與之相對應,外部刷新通常采用32 bit的SelectMap接口,受限于印制板走線和反熔絲FPGA時序性能,接口速率通常為10 MHz左右。當采用回讀刷新時,回讀全配置區(qū)需要用時303 ms,平均故障檢測時間為152 ms,刷新一幀錯誤的時間約為10 μs,平均故障修復延時為152+0.01=152.01 ms。當采用盲刷新時,雖然沒有了故障識別時間,但故障修復時間等同于刷新整個配置區(qū)的時間,此時平均故障修復延時為152 ms,且刷新期間FPGA本身處于功能中斷,所以刷新的頻率不能太高,平均故障延時還會由于刷新頻率下降而進一步增大。
平均故障修復延時直接決定了FPGA的軟錯誤故障修復率,在上述例子中,回讀刷新的故障修復率為1/152.01 ms≈6.58 s-1,而修復模式下的SEM故障修復率為1/15.810 ms≈63.25 s-1。對于1個基于三模冗余的FPGA設計,在軌的平均故障時間MTTF[6]為:
(1)
其中:μ為軟錯誤故障修復率;α為在軌單粒子翻轉(zhuǎn)率。
由式(1)可看到,在單粒子翻轉(zhuǎn)率保持不變的情況下,提升故障修復率可有效增大平均故障時間,從而降低FPGA的故障(功能中斷)率。在上述例子中,采用修復模式SEM加固的FPGA,其平均故障時間約為采用回讀刷新的10倍。由此可見,SEM技術(shù)在提升FPGA配置RAM的抗單粒子翻轉(zhuǎn)加固效能方面,相比傳統(tǒng)的外部刷新技術(shù)有著較大的優(yōu)勢。
SEM技術(shù)也存在不足之處。由于SEM IP核自身需要調(diào)用FPGA邏輯,包括配置RAM來實現(xiàn)其功能,這意味著其本身也存在發(fā)生單粒子翻轉(zhuǎn)軟錯誤的可能。盡管相比FPGA本身的設計,SEM核調(diào)用的資源占比非常少,所以其發(fā)生單粒子翻轉(zhuǎn)的概率也要低得多,但仍有必要在FPGA外部配備1套監(jiān)控電路,在SEM自身發(fā)生單粒子功能中斷時進行故障恢復,這點在可靠性要求較高的系統(tǒng)中尤為重要。SEM核資源占用情況列于表3[5]。
表3 SEM核資源占用情況Table 3 SEM resource utilization condition
針對SEM加固技術(shù)的特點和問題,本文提出了一套基于SEM的FPGA抗單粒子翻轉(zhuǎn)解決方案,既能夠享受SEM在加固效率和平均故障時間上的優(yōu)勢,又能解決SEM核可能發(fā)生單粒子軟錯誤的問題。
系統(tǒng)硬件設計如圖2所示,主要由Kintex-7 XC7K410T FPGA[7]、外部監(jiān)控芯片和SPI FLASH組成。XC7K410T FPGA作為系統(tǒng)功能的主要載體,內(nèi)部除運行功能邏輯外,還配備了SEM IP核及相關(guān)控制邏輯用于對FPGA配置區(qū)進行比對和糾錯。相關(guān)功能和SEM的工作狀態(tài)通過通用IO輸出給監(jiān)控芯片,由后者進行監(jiān)控,當發(fā)現(xiàn)FPGA發(fā)生功能中斷,且SEM偵測到無法修正的錯誤或SEM核本身出現(xiàn)關(guān)鍵故障,監(jiān)控芯片會對FPGA進行重載恢復。由于SEM核發(fā)生故障的概率相對較低,監(jiān)控芯片并不需要頻繁進行重載,F(xiàn)PGA發(fā)生的大部分故障可由SEM進行恢復,保證了系統(tǒng)的加固效率。兩片SPI FLASH的接口設計確保了系統(tǒng)支持包括替換模式在內(nèi)的所有SEM模式,可根據(jù)系統(tǒng)加固和成本控制要求進行靈活的選擇。
圖2 系統(tǒng)硬件示意圖Fig.2 System block diagram
XC7K410T FPGA的片內(nèi)邏輯設計如圖3所示。FPGA的片內(nèi)功能按照典型的星上數(shù)據(jù)處理和控制要求進行設計,主體為采用三模冗余設計的Microblaze處理核[8],搭配使用ECC加固的BRAM,實現(xiàn)系統(tǒng)數(shù)據(jù)管理和運算的需求。數(shù)據(jù)接口采用了4×的Serial RapidIO(SRIO)高速接口[9],線速率為5 Gbps,可實現(xiàn)20 Gbps的高速數(shù)據(jù)傳輸。Microblaze處理核通過AXI片內(nèi)總線與各接口模塊進行數(shù)據(jù)交互。作為系統(tǒng)加固的重點,片內(nèi)配備了SEM IP核用于對配置RAM的防護,SEM配置為增強修復模式。處理核、SRIO和SEM的工作狀態(tài)通過通用IO輸出至外部監(jiān)控芯片。
圖3 XC7K410T片內(nèi)邏輯設計Fig.3 Logic design of XC7K410T
片外監(jiān)控設計如圖4所示。監(jiān)控芯片實現(xiàn)XC7K410T的上電配置、工作過程中的重配置、FLASH的寫入和讀出、SEM狀態(tài)信號和串口信息監(jiān)測、遙測數(shù)據(jù)解析及狀態(tài)回傳等功能。監(jiān)控芯片盡量采用資源優(yōu)化設計,可以在A54SX72A等常用的星上反熔絲FPGA上運行。2塊FLASH分別存儲XC7K410T的配置bit文件和SEM配置EBC文件。片外監(jiān)控芯片工作流程如圖5所示。
圖4 外部監(jiān)控芯片邏輯設計Fig.4 Logic design of external monitor chip
圖5 監(jiān)控芯片工作流程Fig.5 Monitor chip workflow
為驗證基于SEM的FPGA抗單粒子翻轉(zhuǎn)解決方案,在地面重離子加速器上進行了驗證試驗,用于評估加固后系統(tǒng)在軌的單粒子功能中斷率,從而驗證加固技術(shù)的有效性。
地面驗證選擇在北京HI-13串列加速器和蘭州重離子加速器(HIRFL)上進行試驗。試驗選用的離子參數(shù)列于表4。
表4 驗證試驗離子參數(shù)Table 4 Ion parameter of validation test
試驗前,對XC7K410T進行了襯底減薄處理,剩余襯底厚度約為40 μm。減薄后的芯片通過專用壓接工裝裝配至PCB上,避免了高溫焊接對襯底減薄器件的損傷。
試驗中分別記錄不同粒子下出現(xiàn)300次功能異常時的累積注量。在4種粒子的照射下,受照器件均觀察到了功能異常,但所有功能異常均被系統(tǒng)加固措施自主恢復,未發(fā)生功能中斷。試驗結(jié)果列于表5。
表5 驗證試驗結(jié)果Table 5 Result of validation test
利用4種粒子下的試驗結(jié)果對系統(tǒng)功能中斷截面進行處理,Weibull擬合后得到擬合曲線如圖6所示,Weibull擬合參數(shù)列于表6。
表6 Weibull擬合參數(shù)Table 6 Weibull fit parameter
結(jié)合GEO軌道銀河宇宙線模型,考慮地磁屏蔽、地球陰影、地磁活動寧靜,等效3 mm厚鋁屏蔽,利用OMERE軟件分別計算得到幾種狀態(tài)下的在軌功能中斷率,結(jié)果列于表7。
由表7可見,通過應用SEM加固技術(shù),功能中斷率下降了94.33%,為2.30×10-4d-1。在應用了SEM加固和監(jiān)控芯片的完整加固措施后,功能中斷率相對加固前下降了99.95%,僅為2.23×10-6d-1,加速器試驗的結(jié)果驗證了加固的有效性。
表7 在軌功能中斷評估Table 7 SEFI rate estimation in GEO
故障類型分布如圖7所示。從軟錯誤故障的分布來看,SEM自身故障占異??倲?shù)的18.25%,這個比例與SEM核使用的資源占比較為接近。這項結(jié)果證明絕大多數(shù)故障可由SEM核進行恢復,從而確保系統(tǒng)加固仍能享有SEM技術(shù)在加固效能上的優(yōu)勢。同時,外部監(jiān)控芯片負責解決剩余18.25%的故障,保證了修復故障的覆蓋性,進一步提升了加固效果。
a——加固前;b——SEM加固后;c——完整加固后圖6 功能中斷擬合曲線Fig.6 Weibull curve for SEFI
圖7 故障類型分布Fig.7 Proportion of different error types
本文分析了SEM技術(shù)在加固效能上的有效性和存在的問題,提出了一套基于SEM的FPGA抗單粒子翻轉(zhuǎn)解決方案,既能夠享受SEM在加固效率和平均故障時間上的優(yōu)勢,又能解決SEM核可能發(fā)生單粒子軟錯誤的問題。該加固技術(shù)在XC7K410T型FPGA上進行了驗證,并通過地面加速器試驗驗證了加固技術(shù)的有效性。