王冠雄 王佳 孫逸帆 滕樹鵬 鮑迪
(1上海航天電子技術研究所/八院智能計算技術重點實驗室,上海,201109;2上海航天技術研究院,上海,201109)
星載設備長時間工作在空間環境中,宇宙中的帶電粒子會造成器件功能異常,產生存儲器軟錯誤,嚴重時會損壞硬件電路。近年來SRAM(靜態隨機存取存儲器)型FPGA越來越多地應用到星載設備的研制中,SRAM FPGA擁有明顯的在軌可重構優勢,更適合星載設備的研發需求。但同時,SRAM FPGA固有的對空間輻射的敏感性造成其容易發生軟錯誤。 “神舟”四號飛船上安裝了單粒子事件監測器,就是用以監控在軌運行的設備上發生的單粒子事件,其在軌運行過程檢測到SRAM上發生了單粒子翻轉事件。
XILINX發布的SEM IP核能夠對抗空間輻射對配置存儲器造成的SEU(單粒子翻轉)效應的影響。傳統回讀刷新技術是在已知被加固FPGA位流數據結構的情況下,避開動態配置區對FPGA配置區進行刷新的技術。但是XILINX公司并未發布文檔公開7系列FPGA的位流結構,因此傳統回讀刷新技術難以用于7系列FPGA。
我們結合項目需求,利用構建的XILINX Kintex-7 FPGA驗證平臺,完成了SEM IP核的測試驗證。根據自動注錯方法的原理以及實現過程,經注錯軟件的運行,能夠達到幀地址的覆蓋率,提高測試效率。
為應對空間輻照環境,目前國際上SRAM型FPGA的抗SEU手段主要分為器件級加固和應用級加固。 “器件級加固”是指在制作FPGA芯片時采取抗輻照工藝及其它硬件加固手段增強芯片本身對空間輻照環境的耐受力; “應用級加固”是指在系統設計過程中,通過軟硬件冗余、糾錯等方式增加系統中SRAM型FPGA的容錯能力。結合國外元器件廠商的高等級器件對我國禁運、國產高性能抗輻照SRAM型FPGA仍處于研制階段的現狀,這里主要討論SRAM型FPGA的應用級抗SEU加固。目前國際上主流加固做法包括以下幾種。
a)周期性重構。周期性重構是指空間環境下的SRAM型FPGA定期進行重配置,以達到定期刷新配置區糾正單粒子翻轉錯誤的目的的加固方法。以XILINX公司SRAM型FPGA為例,所有的配置位中大約有1/8的配置位為路由資源配置,即使FPGA的資源全部被占用時,FPGA發生SEU事件,只要路由資源配置位沒有發生翻轉,FPGA亦有可能不會發生功能中斷,而且定期的重配置可以將翻轉的配置位糾正。因此,在低輻照的空間環境下可以考慮使用此方法。
b)回讀刷新。回讀刷新是指使用一個抗輻照器件定期的從被加固的SRAM型FPGA中回讀其位流。根據官方公布的器件位流的數據結構,開發者可以將位流中相應的配置位與預先存儲于存儲器內部的配置位相比較,若發現錯誤,則刷新FPGA內部配置區完成糾錯。或者定期的對FPGA的配置區進行刷新。該種回讀刷新方法是我國航天領域廣泛使用的抗SEU加固方法,但是必須需要元器件開發商公布FPGA回讀位流的數據結構,否則回讀刷新控制器無法進行位流比對和配置區刷新 (回讀位流的非配置位部分均隨時間變化,不具備比對價值,并且刷新可變位會造成FPGA功能異常),該類回讀刷新系統結構如圖1所示。

圖1 Virtex-4回讀刷新系統
c)三模冗余 (TMR)。三模冗余是指通過將FPGA代碼進行三模冗余處理 (使用TMR工具或在代碼中加入TMR邏輯),將每次FPGA處理的結果都進行三方表決,即使FPGA局部發生SEU事件,依舊可以通過表決排除錯誤結果,保證系統功能的正常。該方法的可靠性較高,但是FPGA內部的資源開銷和功耗開銷大約會增加三倍,在一些資源緊張的設計中,FPGA的可編程資源或系統功耗約束無法覆蓋TMR方法的開銷。
d)回讀刷新結合三模冗余。回讀刷新結合三模冗余方法是指將上述回讀刷新和三模冗余方法聯合使用,以增強SRAM型FPGA的抗SEU能力。該方法可靠度較高,同時也是國際上的一種主流做法。
e)硬件冗余。硬件冗余是指使用多個SRAM型FPGA同時運行同一程序,將輸出結果送入抗輻加固器件中進行表決,以達到糾錯目的,該方法可靠度較高,但是會帶來較大的功耗開銷和硬件開銷。
綜上所述,幾類常用的加固手段特性統計見表1。

表1 常用的加固手段特性表
元器件開發商公布FPGA回讀位流的數據結構是使用傳統回讀刷新技術的先決條件,由于XILINX公司目前仍未公布7系列FPGA的位流數據結構[1],因此傳統的回讀刷新方法在7系列FPGA上不再適用。這里研究一種基于SEM IP的回讀刷新技術。
XILINX發布的SEM IP具備糾正SEU軟錯誤的能力[2]。SEM IP有3種工作模式:①修復模式,以錯誤檢查和糾正 (error correcting code,ECC)算法為基礎,對抗所有部位的單比特軟錯誤,當配置存儲器出現多比特錯誤且分散到每幀單比特時也可以進行糾正;②增強修復模式,以ECC和循環冗余校驗 (CRC)算法為基礎,能對抗所有部位單比特錯誤和相鄰雙比特錯誤,能覆蓋任意幀地址的單比特錯誤和相鄰雙比特的SEU效應導致的軟錯誤,當配置存儲器出現多比特錯誤且分散到每幀單比特或每幀相鄰雙比特時,其也能進行糾正;③替換模式,基于數據重載的修復方式,支持任意多個比特錯誤,甚至當無法探測到錯誤的準確幀地址時,依然能夠糾正錯誤。
XILINX的官方SEM IP可以實現FPGA內部配置區文件與外部FLASH內存儲的EBC文件進行比對,并對配置區進行校正。
對于配置內存錯誤,由于修復模式及增強修復模式糾正能力較弱,故本文選用替換模式作為SEM IP的工作模式。
SEM IP可通過將錯誤插入配置內存的方式來執行SEU評估。錯誤插入特性可提供相應方法來評估和測試SEU緩解和SEM IP核的糾錯功能,而無需通過輻射效應機構進行昂貴的測試。
SEM IP具體性能見表2。

表2 全配置區掃描時間
XILINX 7系列FPGA回讀刷新電路如圖2所示,由7系列FPGA芯片、回讀刷新控制器、存儲模塊 (SPI FLASH)組成。

圖2 XILINX 7系列FPGA回讀刷新電路
其中7系列FPGA作為被加固對象,內部除運行功能性邏輯以外,還運行SEM IP核及相關控制邏輯用于對FPGA配置區進行比對和糾錯。
回讀刷新控制器實現FPGA加載 (SelectMap/SPI)接口的上電配置、程序重載、SPI FLASH讀寫、SEM狀態信號和串口信息監測、遙控遙測等功能。回讀刷新控制器所需邏輯資源較少,可使用小規模反熔絲FPGA(A54SX32A/A54SX72A)實現以確保控制邏輯的可靠性。存儲模塊由2塊SPI FLASH組成,分別存儲K7 FPGA的配置Bit文件和回讀刷新配置EBC文件。
軟件架構主要由XILINX 7系列FPGA軟件模塊和回讀刷新控制器軟件模塊兩部分組成,兩部分軟件分別運行于XILINX 7系列FPGA和回讀刷新控制器中。具體軟件架構如圖3所示。

圖3 系統軟件架構
回讀刷新控制器軟件工作流程如圖4所示。回讀刷新控制器先于XILINX 7系列FPGA上電,回讀刷新控制器上電后對目標FPGA進行配置。配置成功后,回讀刷新控制器進入配置數據錯誤檢測邏輯,檢測到一般錯誤時進行錯誤幀替換,若檢測到致命錯誤 (SEM IP自身異常)時,回讀刷新控制器對目標FPGA進行重配置。

圖4 XILINX 7系列FPGA回讀刷新軟件工作流程
使用一塊XILINX Artix-7 FPGA實現回讀刷新控制器,使用一塊STM32作為故障注入器。回讀刷新控制器支持選擇SelectMap、SPI、BPI接口作為FPGA的配置接口,通過IO管腳互聯直接監視SEM IP的狀態信號,STM32通過LocalBus和UART與K7 FPGA通信,通過SEM IP的注錯接口向FPGA配置區對應的配置幀內插入錯誤。
通過STM32完成SEM IP的糾錯功能測試,注錯—糾錯測試試驗結果見表3。

表3 注錯-糾錯測試試驗結果
2019年使用串列粒子加速器對襯底減薄后的XC7K410T芯片進行了單粒子試驗。試驗主要考核單機的單粒子功能中斷指標。其中XC7K410T芯片使用了上述基于SEM IP的抗SEU加固技術。
試驗過程中,分別記錄不同粒子下出現100次功能異常時的累積注量。在4種粒子的照射下,受照器件均觀察到了功能異常,但是所有功能異常均被單機自主恢復,未發生功能中斷,試驗結果見表4。按照試驗時觀察到的異常類型和恢復措施次數來分析試驗數據,可以得到表5。

表4 單粒子試驗結果

表5 單粒子試驗異常類型分析
從試驗數據結果可以發現,發生的異常類型主要是處理功能異常,其次是SEM功能異常,交互功能異常最少,而且4種粒子下的異常類型分布規律比較一致。
對所有異常次數進行統計,處理功能異常占到了總異常次數的78%,而SEM功能異常則為19.50%。分析受照器件內部的資源使用情況發現,處理功能占用的資源約為整個設計的85%左右,SEM核占用了14%左右,異常次數與資源占比基本保持一致,證明了試驗數據的有效性。另一方面,交互異常僅占總異常次數的2.50%,并不是主要的功能中斷來源。
SEM恢復措施恢復了除自身異常以外的所有異常,當SEM核自身發生異常后,則需要通過外部的回讀刷新芯片進行恢復。所有的功能異常均得到了恢復,證明了加固技術的有效性。并且由于SEM恢復效率是回讀刷新的1000倍以上,超過80%的異常通過SEM來恢復說明采用這項技術可以極大提升整體的異常恢復效率,提升加固技術的效費比。
這里所研究的一種面向XILINX 7系列FPGA的抗SEU加固技術,在技術驗證測試中,為模擬輻照環境對器件的影響,利用XILINX公司的軟錯誤緩解 (SEM)控制器IP核,搭建基于XILINX Kintex-7的驗證測試平臺,完成對SEM IP核的功能驗證。為提高測試效率,設計了基于上述平臺的自動注錯方法。經過驗證,該方法能夠達到預期的幀地址覆蓋率。實驗結果表明,上述的抗SEU加固方法可以增加XLINX 7系列各等級FPGA器件在宇航環境下的可靠性。