王冠雄 王佳 孫逸帆 滕樹鵬 鮑迪
(1上海航天電子技術(shù)研究所/八院智能計算技術(shù)重點(diǎn)實(shí)驗(yàn)室,上海,201109;2上海航天技術(shù)研究院,上海,201109)
星載設(shè)備長時間工作在空間環(huán)境中,宇宙中的帶電粒子會造成器件功能異常,產(chǎn)生存儲器軟錯誤,嚴(yán)重時會損壞硬件電路。近年來SRAM(靜態(tài)隨機(jī)存取存儲器)型FPGA越來越多地應(yīng)用到星載設(shè)備的研制中,SRAM FPGA擁有明顯的在軌可重構(gòu)優(yōu)勢,更適合星載設(shè)備的研發(fā)需求。但同時,SRAM FPGA固有的對空間輻射的敏感性造成其容易發(fā)生軟錯誤。 “神舟”四號飛船上安裝了單粒子事件監(jiān)測器,就是用以監(jiān)控在軌運(yùn)行的設(shè)備上發(fā)生的單粒子事件,其在軌運(yùn)行過程檢測到SRAM上發(fā)生了單粒子翻轉(zhuǎn)事件。
XILINX發(fā)布的SEM IP核能夠?qū)箍臻g輻射對配置存儲器造成的SEU(單粒子翻轉(zhuǎn))效應(yīng)的影響。傳統(tǒng)回讀刷新技術(shù)是在已知被加固FPGA位流數(shù)據(jù)結(jié)構(gòu)的情況下,避開動態(tài)配置區(qū)對FPGA配置區(qū)進(jìn)行刷新的技術(shù)。但是XILINX公司并未發(fā)布文檔公開7系列FPGA的位流結(jié)構(gòu),因此傳統(tǒng)回讀刷新技術(shù)難以用于7系列FPGA。
我們結(jié)合項(xiàng)目需求,利用構(gòu)建的XILINX Kintex-7 FPGA驗(yàn)證平臺,完成了SEM IP核的測試驗(yàn)證。根據(jù)自動注錯方法的原理以及實(shí)現(xiàn)過程,經(jīng)注錯軟件的運(yùn)行,能夠達(dá)到幀地址的覆蓋率,提高測試效率。
為應(yīng)對空間輻照環(huán)境,目前國際上SRAM型FPGA的抗SEU手段主要分為器件級加固和應(yīng)用級加固。 “器件級加固”是指在制作FPGA芯片時采取抗輻照工藝及其它硬件加固手段增強(qiáng)芯片本身對空間輻照環(huán)境的耐受力; “應(yīng)用級加固”是指在系統(tǒng)設(shè)計過程中,通過軟硬件冗余、糾錯等方式增加系統(tǒng)中SRAM型FPGA的容錯能力。結(jié)合國外元器件廠商的高等級器件對我國禁運(yùn)、國產(chǎn)高性能抗輻照SRAM型FPGA仍處于研制階段的現(xiàn)狀,這里主要討論SRAM型FPGA的應(yīng)用級抗SEU加固。目前國際上主流加固做法包括以下幾種。
a)周期性重構(gòu)。周期性重構(gòu)是指空間環(huán)境下的SRAM型FPGA定期進(jìn)行重配置,以達(dá)到定期刷新配置區(qū)糾正單粒子翻轉(zhuǎn)錯誤的目的的加固方法。以XILINX公司SRAM型FPGA為例,所有的配置位中大約有1/8的配置位為路由資源配置,即使FPGA的資源全部被占用時,F(xiàn)PGA發(fā)生SEU事件,只要路由資源配置位沒有發(fā)生翻轉(zhuǎn),F(xiàn)PGA亦有可能不會發(fā)生功能中斷,而且定期的重配置可以將翻轉(zhuǎn)的配置位糾正。因此,在低輻照的空間環(huán)境下可以考慮使用此方法。
b)回讀刷新。回讀刷新是指使用一個抗輻照器件定期的從被加固的SRAM型FPGA中回讀其位流。根據(jù)官方公布的器件位流的數(shù)據(jù)結(jié)構(gòu),開發(fā)者可以將位流中相應(yīng)的配置位與預(yù)先存儲于存儲器內(nèi)部的配置位相比較,若發(fā)現(xiàn)錯誤,則刷新FPGA內(nèi)部配置區(qū)完成糾錯?;蛘叨ㄆ诘膶PGA的配置區(qū)進(jìn)行刷新。該種回讀刷新方法是我國航天領(lǐng)域廣泛使用的抗SEU加固方法,但是必須需要元器件開發(fā)商公布FPGA回讀位流的數(shù)據(jù)結(jié)構(gòu),否則回讀刷新控制器無法進(jìn)行位流比對和配置區(qū)刷新 (回讀位流的非配置位部分均隨時間變化,不具備比對價值,并且刷新可變位會造成FPGA功能異常),該類回讀刷新系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 Virtex-4回讀刷新系統(tǒng)
c)三模冗余 (TMR)。三模冗余是指通過將FPGA代碼進(jìn)行三模冗余處理 (使用TMR工具或在代碼中加入TMR邏輯),將每次FPGA處理的結(jié)果都進(jìn)行三方表決,即使FPGA局部發(fā)生SEU事件,依舊可以通過表決排除錯誤結(jié)果,保證系統(tǒng)功能的正常。該方法的可靠性較高,但是FPGA內(nèi)部的資源開銷和功耗開銷大約會增加三倍,在一些資源緊張的設(shè)計中,F(xiàn)PGA的可編程資源或系統(tǒng)功耗約束無法覆蓋TMR方法的開銷。
d)回讀刷新結(jié)合三模冗余?;刈x刷新結(jié)合三模冗余方法是指將上述回讀刷新和三模冗余方法聯(lián)合使用,以增強(qiáng)SRAM型FPGA的抗SEU能力。該方法可靠度較高,同時也是國際上的一種主流做法。
e)硬件冗余。硬件冗余是指使用多個SRAM型FPGA同時運(yùn)行同一程序,將輸出結(jié)果送入抗輻加固器件中進(jìn)行表決,以達(dá)到糾錯目的,該方法可靠度較高,但是會帶來較大的功耗開銷和硬件開銷。
綜上所述,幾類常用的加固手段特性統(tǒng)計見表1。
表1 常用的加固手段特性表
元器件開發(fā)商公布FPGA回讀位流的數(shù)據(jù)結(jié)構(gòu)是使用傳統(tǒng)回讀刷新技術(shù)的先決條件,由于XILINX公司目前仍未公布7系列FPGA的位流數(shù)據(jù)結(jié)構(gòu)[1],因此傳統(tǒng)的回讀刷新方法在7系列FPGA上不再適用。這里研究一種基于SEM IP的回讀刷新技術(shù)。
XILINX發(fā)布的SEM IP具備糾正SEU軟錯誤的能力[2]。SEM IP有3種工作模式:①修復(fù)模式,以錯誤檢查和糾正 (error correcting code,ECC)算法為基礎(chǔ),對抗所有部位的單比特軟錯誤,當(dāng)配置存儲器出現(xiàn)多比特錯誤且分散到每幀單比特時也可以進(jìn)行糾正;②增強(qiáng)修復(fù)模式,以ECC和循環(huán)冗余校驗(yàn) (CRC)算法為基礎(chǔ),能對抗所有部位單比特錯誤和相鄰雙比特錯誤,能覆蓋任意幀地址的單比特錯誤和相鄰雙比特的SEU效應(yīng)導(dǎo)致的軟錯誤,當(dāng)配置存儲器出現(xiàn)多比特錯誤且分散到每幀單比特或每幀相鄰雙比特時,其也能進(jìn)行糾正;③替換模式,基于數(shù)據(jù)重載的修復(fù)方式,支持任意多個比特錯誤,甚至當(dāng)無法探測到錯誤的準(zhǔn)確幀地址時,依然能夠糾正錯誤。
XILINX的官方SEM IP可以實(shí)現(xiàn)FPGA內(nèi)部配置區(qū)文件與外部FLASH內(nèi)存儲的EBC文件進(jìn)行比對,并對配置區(qū)進(jìn)行校正。
對于配置內(nèi)存錯誤,由于修復(fù)模式及增強(qiáng)修復(fù)模式糾正能力較弱,故本文選用替換模式作為SEM IP的工作模式。
SEM IP可通過將錯誤插入配置內(nèi)存的方式來執(zhí)行SEU評估。錯誤插入特性可提供相應(yīng)方法來評估和測試SEU緩解和SEM IP核的糾錯功能,而無需通過輻射效應(yīng)機(jī)構(gòu)進(jìn)行昂貴的測試。
SEM IP具體性能見表2。
表2 全配置區(qū)掃描時間
XILINX 7系列FPGA回讀刷新電路如圖2所示,由7系列FPGA芯片、回讀刷新控制器、存儲模塊 (SPI FLASH)組成。
圖2 XILINX 7系列FPGA回讀刷新電路
其中7系列FPGA作為被加固對象,內(nèi)部除運(yùn)行功能性邏輯以外,還運(yùn)行SEM IP核及相關(guān)控制邏輯用于對FPGA配置區(qū)進(jìn)行比對和糾錯。
回讀刷新控制器實(shí)現(xiàn)FPGA加載 (SelectMap/SPI)接口的上電配置、程序重載、SPI FLASH讀寫、SEM狀態(tài)信號和串口信息監(jiān)測、遙控遙測等功能。回讀刷新控制器所需邏輯資源較少,可使用小規(guī)模反熔絲FPGA(A54SX32A/A54SX72A)實(shí)現(xiàn)以確保控制邏輯的可靠性。存儲模塊由2塊SPI FLASH組成,分別存儲K7 FPGA的配置Bit文件和回讀刷新配置EBC文件。
軟件架構(gòu)主要由XILINX 7系列FPGA軟件模塊和回讀刷新控制器軟件模塊兩部分組成,兩部分軟件分別運(yùn)行于XILINX 7系列FPGA和回讀刷新控制器中。具體軟件架構(gòu)如圖3所示。
圖3 系統(tǒng)軟件架構(gòu)
回讀刷新控制器軟件工作流程如圖4所示。回讀刷新控制器先于XILINX 7系列FPGA上電,回讀刷新控制器上電后對目標(biāo)FPGA進(jìn)行配置。配置成功后,回讀刷新控制器進(jìn)入配置數(shù)據(jù)錯誤檢測邏輯,檢測到一般錯誤時進(jìn)行錯誤幀替換,若檢測到致命錯誤 (SEM IP自身異常)時,回讀刷新控制器對目標(biāo)FPGA進(jìn)行重配置。
圖4 XILINX 7系列FPGA回讀刷新軟件工作流程
使用一塊XILINX Artix-7 FPGA實(shí)現(xiàn)回讀刷新控制器,使用一塊STM32作為故障注入器?;刈x刷新控制器支持選擇SelectMap、SPI、BPI接口作為FPGA的配置接口,通過IO管腳互聯(lián)直接監(jiān)視SEM IP的狀態(tài)信號,STM32通過LocalBus和UART與K7 FPGA通信,通過SEM IP的注錯接口向FPGA配置區(qū)對應(yīng)的配置幀內(nèi)插入錯誤。
通過STM32完成SEM IP的糾錯功能測試,注錯—糾錯測試試驗(yàn)結(jié)果見表3。
表3 注錯-糾錯測試試驗(yàn)結(jié)果
2019年使用串列粒子加速器對襯底減薄后的XC7K410T芯片進(jìn)行了單粒子試驗(yàn)。試驗(yàn)主要考核單機(jī)的單粒子功能中斷指標(biāo)。其中XC7K410T芯片使用了上述基于SEM IP的抗SEU加固技術(shù)。
試驗(yàn)過程中,分別記錄不同粒子下出現(xiàn)100次功能異常時的累積注量。在4種粒子的照射下,受照器件均觀察到了功能異常,但是所有功能異常均被單機(jī)自主恢復(fù),未發(fā)生功能中斷,試驗(yàn)結(jié)果見表4。按照試驗(yàn)時觀察到的異常類型和恢復(fù)措施次數(shù)來分析試驗(yàn)數(shù)據(jù),可以得到表5。
表4 單粒子試驗(yàn)結(jié)果
表5 單粒子試驗(yàn)異常類型分析
從試驗(yàn)數(shù)據(jù)結(jié)果可以發(fā)現(xiàn),發(fā)生的異常類型主要是處理功能異常,其次是SEM功能異常,交互功能異常最少,而且4種粒子下的異常類型分布規(guī)律比較一致。
對所有異常次數(shù)進(jìn)行統(tǒng)計,處理功能異常占到了總異常次數(shù)的78%,而SEM功能異常則為19.50%。分析受照器件內(nèi)部的資源使用情況發(fā)現(xiàn),處理功能占用的資源約為整個設(shè)計的85%左右,SEM核占用了14%左右,異常次數(shù)與資源占比基本保持一致,證明了試驗(yàn)數(shù)據(jù)的有效性。另一方面,交互異常僅占總異常次數(shù)的2.50%,并不是主要的功能中斷來源。
SEM恢復(fù)措施恢復(fù)了除自身異常以外的所有異常,當(dāng)SEM核自身發(fā)生異常后,則需要通過外部的回讀刷新芯片進(jìn)行恢復(fù)。所有的功能異常均得到了恢復(fù),證明了加固技術(shù)的有效性。并且由于SEM恢復(fù)效率是回讀刷新的1000倍以上,超過80%的異常通過SEM來恢復(fù)說明采用這項(xiàng)技術(shù)可以極大提升整體的異?;謴?fù)效率,提升加固技術(shù)的效費(fèi)比。
這里所研究的一種面向XILINX 7系列FPGA的抗SEU加固技術(shù),在技術(shù)驗(yàn)證測試中,為模擬輻照環(huán)境對器件的影響,利用XILINX公司的軟錯誤緩解 (SEM)控制器IP核,搭建基于XILINX Kintex-7的驗(yàn)證測試平臺,完成對SEM IP核的功能驗(yàn)證。為提高測試效率,設(shè)計了基于上述平臺的自動注錯方法。經(jīng)過驗(yàn)證,該方法能夠達(dá)到預(yù)期的幀地址覆蓋率。實(shí)驗(yàn)結(jié)果表明,上述的抗SEU加固方法可以增加XLINX 7系列各等級FPGA器件在宇航環(huán)境下的可靠性。