宋凝芳 秦姣梅 潘 雄 江云天
(北京航空航天大學儀器科學與光電工程學院,北京100191)(第二炮兵裝備研究院,北京100085)
SRAM(Static Random Access Memory)型FPGA(Field Programmable Gate Array)具有信息密度大、性能高、可重復編程的特性,在空間領域得到了廣泛應用[1].然而SRAM型FPGA對空間中的單粒子十分敏感,易發(fā)生單粒子翻轉.單粒子翻轉會導致FPGA中存儲單元的內容改變,導致計算結構錯誤、程序執(zhí)行序列錯誤等,甚至導致系統(tǒng)的崩潰[2].因此,在應用于空間環(huán)境中之前,必須對FPGA進行容錯設計,并對設計的可靠性進行有效測試和評估.
目前,在地面上模擬空間中的單粒子翻轉主要采用輻射模擬和故障注入的方法.輻射模擬即采用重離子或高能質子等模擬源來輻照器件,測試其輻射敏感參數(shù),為器件選型和預估實際輻射環(huán)境中的單粒子翻轉率提供依據(jù).然而,此方法成本很高,注入位置難以控制,而且危險性高.
與此相比,模擬單粒子翻轉的第2種方式,即故障注入方法則彌補了上述缺點,成為地面模擬單粒子翻轉的重要手段.尤其是利用SRAM型FPGA重配置特性進行的故障注入方法得到了極大的關注.文獻[3]提出采用部分動態(tài)重配置,隨機注入的方法對FPGA進行故障注入.文獻[4-5]中提到開發(fā)了故障注入平臺SLAAC1,對Virtex系列芯片采用TMR(Triple Modular Redundancy)技術后的單粒子翻轉可靠性進行評測.此平臺只適用于Virtex系列芯片,對VⅡ及以上系列不支持.國內方面,文獻[2]實現(xiàn)了基于重配置技術的故障注入,但試驗時需由用戶提供翻轉位的地址.而實際上用戶無法知道設計中對應電路資源的配置位位置,在測試時很難決定需要翻轉的配置位,從而為電路的可靠性評測造成了很大的困難.
本文提出的逐位翻轉故障注入方法,無需用戶了解數(shù)字電路設計的實現(xiàn)細節(jié)及提供故障注入位置,就可得到設計的可靠性參數(shù),為設計的可靠性評估和改進提供依據(jù).適用的故障類型包括單粒子翻轉及單粒子瞬態(tài)脈沖引起的所有單位配置位故障.
故障注入方法是一種評測容錯機制是否有效的試驗方法,通過有意識地向系統(tǒng)中引入故障來加速容錯機制的評測.FPGA發(fā)生單粒子翻轉后,其故障表現(xiàn)為其中存儲單元的內容改變,而這些存儲單元的內容是由比特文件中的配置位決定的.SRAM型FPGA動態(tài)重配置的特性使得可在程序運行中人為翻轉配置位,從而引入與單粒子翻轉同等效力的故障,模擬FPGA空間應用發(fā)生單粒子翻轉時的狀況.通過分析故障注入后電路的輸出功能,評測邏輯設計的抗單粒子翻轉能力.
為了能對任何一個用FPGA實現(xiàn)的電路在其設計完成后評測它的抗單粒子翻轉可靠度,并主動找出其配置存儲單元中的敏感位,提出了一種逐位翻轉的故障注入方法.
逐位翻轉,顧名思義,即在程序運行過程中對配置位進行逐位翻轉,然后逐次動態(tài)重配置到FPGA中,檢測翻轉位對設計輸出的影響.翻轉后引起輸出結果錯誤的配置位即為敏感位.此方法可以檢測出配置存儲單元中的所有敏感位,并通過生成一個msk.dat掩碼文件,定位出敏感位在配置文件中的具體地址.
得到敏感位個數(shù)后,可計算得到電路設計配置存儲單元的動態(tài)翻轉截面[5]為
式中,σs為器件配置存儲單元的靜態(tài)翻轉截面;σd為電路設計配置存儲單元的動態(tài)翻轉截面,σd的單位與σs相同,為 cm2/器件;Nsb為敏感位位數(shù);Ntb為配置位總位數(shù).與靜態(tài)翻轉截面反映器件的抗單粒子翻轉能力不同,動態(tài)翻轉截面反映的是FPGA實現(xiàn)的用戶設計的抗單粒子翻轉能力,與使用的器件和用戶設計均有關系.
將敏感位位數(shù)乘以每位的翻轉率μ,就可得系統(tǒng)的失效率λ,表達式為
得到λ后,由于系統(tǒng)可靠度服從泊松分布,其可靠度表達式為
式中,t為系統(tǒng)運行時間;R為系統(tǒng)可靠度.根據(jù)式(3)可繪出系統(tǒng)的可靠度變化曲線.
根據(jù)上述逐位翻轉方法,故障注入系統(tǒng)的實現(xiàn)需有一個控制芯片來控制配置位的翻轉和被測芯片的重配置,并將檢測到的敏感位及敏感位位置(由msk.dat體現(xiàn))上傳到上位機.
設計的故障注入系統(tǒng)結構框圖如圖1所示.包含測試電路板、數(shù)據(jù)采集系統(tǒng)和上位機3部分.
測試電路板包含控制器FPGA、被測FPGA(DUT,Device Under Test)及各自的 PROM(Programmable Read-Only Memory).控制器負責的主要功能為:①DUT的初始配置;②DUT配置數(shù)據(jù)的翻轉和動態(tài)重配置;③DUT輸出結果和預知正確結果的比較,及比較結果的上傳.
數(shù)據(jù)采集系統(tǒng)起到協(xié)議轉換和平衡數(shù)據(jù)傳輸速率的作用,負責上位機命令的下達和測試電路板數(shù)據(jù)的上傳.
整個試驗的流程如圖2所示.分為以下幾步:
1)上位機上電,控制器將DUT PROM中的配置數(shù)據(jù)發(fā)送給DUT,完成DUT的初始配置;
2)上位機發(fā)送逐位翻轉命令,控制器對DUT配置數(shù)據(jù)進行逐位翻轉;
3)控制器將翻轉位所在數(shù)據(jù)幀動態(tài)重配置到DUT中;
圖1 故障注入系統(tǒng)結構框圖
圖2 試驗流程圖
4)比較重配置后DUT輸出結果和預知的正確結果.引起輸出結果錯誤的位為敏感位,錯誤數(shù)加1,并將相應位的msk掩碼值記為1;
5)將msk值和錯誤總數(shù)上傳.上傳的數(shù)據(jù)在上位機中生成一個msk.dat掩碼文件.根據(jù)此文件可知敏感位的總位數(shù)及具體位置.
考慮到控制器的資源使用以及敏感位位置分析的方便,將FPGA的配置位按欄類型做了如表1劃分,分別進行逐位翻轉.通過這種方式可直觀看出每類配置位的敏感位個數(shù).
另外,方法在設計時利用SRAM型FPGA可以局部動態(tài)重配置的優(yōu)點,每次只重配置翻轉位所在的1幀數(shù)據(jù),節(jié)約了大量的時間.試驗所用XC2V1000系列芯片除BRAM(Block Random Access Memory)外共有配置位2 876 416位.即一次試驗共需重配置2 876 416次.在配置時鐘選擇2 MHz時,如果重配置全部采用全局重配置,試驗共需187 h,是不現(xiàn)實的.而本方法只需30 min左右即可將所有配置位遍歷一遍,節(jié)約了大量的時間,也為重復試驗實現(xiàn)了可能.試驗花費時間如表1所示.
表1 逐位翻轉試驗時間花費
對經過TMR設計的乘法器和不經過TMR設計的乘法器分別進行逐位翻轉試驗,比較測試結果.
TMR采用輸入和乘法模塊均三模冗余,單表決器輸出的設計方法(如圖3所示).同時,為了避免TMR單點失效問題,各模塊進行了布局操作.將M1模塊放置于CLB(Control Logic Block)1~7欄,M2放置于CLB8~14欄,M3放置于CLB21~26欄,V0放置于CLB15~20欄.將所有的輸入輸出放置在芯片左側和右側的管腳.未經過TMR設計的乘法器其乘法器模塊放置于CLB8~14欄.乘法器輸入為4位×4位,輸出為8位.兩種設計的資源使用情況如表2所示.
圖3 TMR乘法器設計結構圖
表2 兩種設計資源使用情況
3.2.1 測試結果
對上述設計進行試驗,結果如表3所示.
TMR乘法器CLB15~20欄逐位翻轉試驗生成的msk.dat文件截取部分如圖4所示.文件中為1的位即表示配置數(shù)據(jù)中相應位為敏感位,最后3個字節(jié)代表敏感位的總位數(shù).對msk文件進行簡單分析即可得敏感位的具體位置,見表4.
根據(jù)實驗結果,由式(1)、式(2)可得兩種電路設計的可靠性參數(shù)如表5所示.這里的σs采用粒子能量為63.3 MeV時XC2V1000的靜態(tài)翻轉截面7.86 ×10-8cm2/器件[6].翻轉率采用 Xilinx公司發(fā)布的 VirtexⅡ系列芯片配置位翻轉率4.4 ×10-7/(bit·d)[7].由式(3),得到兩種設計的可靠度變化曲線如圖5所示.
表3 逐位翻轉試驗結果bit
圖4 TMR乘法器CLB15~20欄msk.dat文件
表4 TMR乘法器CLB15~20欄敏感位位置
表5 設計的可靠性參數(shù)
3.2.2 試驗結果驗證
為了驗證所得敏感位位置的正確性,對TMR乘法器試驗得到的敏感位進行逐位測試.對應查找到的敏感位,在配置文件中翻轉相應位,然后逐次用JTAG下載器下載到程序中運行,結果均造成程序的輸出結果錯誤.從而表明試驗得到的敏感位位置是正確的.
圖5 兩種設計的可靠度變化曲線
3.2.3 試驗討論
根據(jù)試驗結果可以得到如下分析:
1)本試驗電路設計為組合邏輯電路,沒有用到時鐘和BRAM,因此,敏感位完全位于CLB欄和IOI/IOB欄.
2)TMR設計的CLB欄敏感位只存在于表決器模塊中,因此,要想進一步提高設計的可靠度,應該提高表決器模塊的可靠度或采用多表決器的方法.這與理論分析是相符合的.
3)此方法在對時序電路進行故障注入試驗時,需提前判斷好故障傳輸至輸出端可能所需的最長周期,以在故障判斷時做相應周期延時.
4)翻轉的配置存儲位中包含一部分的用戶存儲單元,即決定觸發(fā)器功能的比特位.但觸發(fā)器占資源很少,只有0.42%左右[5],可以忽略.
5)此方法只能進行單位翻轉,要想遍歷所有的兩位翻轉或多位翻轉是不現(xiàn)實的.但實際中,單粒子效應引起的95%以上是單位翻轉[8],且采用刷新功能可以有效防止翻轉積累,因此并不影響本試驗對可靠度的評測.
提出的逐位翻轉故障注入方法可以檢測出用戶電路設計配置存儲資源的敏感位,得到其動態(tài)翻轉截面和失效率,繪出可靠度變化曲線,從而對電路設計在空間應用中的可靠度進行評測.試驗花費時間較少,一次完整的試驗只需33 min.試驗不僅可以得到敏感位的位數(shù),還可以對敏感位的位置進行定位,對設計改進有很好的參考意義.但方法主要針對單位配置位翻轉故障,對多位翻轉、累加翻轉故障及單粒子功能中斷故障的故障注入方法還有待進一步研究.
References)
[1]費爾南達·利馬·卡斯騰斯密得,路易吉·卡羅,里卡多·賴斯.基于SRAM的FPGA容錯技術[M].楊孟飛,龔健,文亮,等譯.北京:中國宇航出版社,2009:1-8 Fernanda L K,Luigi C,Ricardo R.Fault-tolerance techniques for SRAM-based FPGAs[M].Translated by Yang Mengfei,Gong Jian,Wen Liang,et al.Beijing:China Astronautic Publishing House,2009:1 -8(in Chinese)
[2]齊鑫,馮文全.基于動態(tài)重配置的SEU故障檢測與修復系統(tǒng)的設計[C]//方濱興.中國通信學會第六屆學術年會論文集.廣州:中國通信學會,2009:82-87 Qi Xin,F(xiàn)eng Wenquan.The design of a SEU fault detection and recovery system based on dynamic reconfiguration[C]//Fang Binxing.The Sixth Conference Proceedings of China Communications Association.Guangzhou:China Institute of Communications,2009:82 - 87(in Chinese)
[3]Leveugle R,Antoni L,F(xiàn)eher B.Dependability analysis:a new application for run-time reconfiguration[C]//Amaral J N.Proceedings of the International Parallel and Distributed Processing Symposium(IPDPS).Los Alamitos:IEEE Computer Society Press,2003:345-351
[4]Johnson E,Caffrey M P,Graham P S,et al.Accelerator validation of an FPGA SEU simulator[J].IEEE Transactions on Nuclear Science,2003,50(6):2147 -2157
[5]Morgan K S,McMurtrey D L,Pratt B H,et al.A comparison of TMR with alternative fault-tolerant design techniques for FPGAs[J].IEEE Transactions on Nuclear Science,2007,54(6):2065-2072
[6]Quinn H M,Graham P S,Morgan K S,et al.An introduction to radiation-induced failure modes and related mitigation methods for Xilinx SRAM FPGAs[C]//Plaks T P.Proceedings of the International Conference on Engeering of Reconfigurable Systems Algorithms(ERSA).Las Vegas:CSREA Press,2008:139 -145
[7]Yui C,Swift C,Carmichael C.Singel event upset susceptibility testing of the Xilinx VirtexⅡ FPGA[C]//Katz R B.Military and Aerospace Applications of Programmable Devices and Technologies Conference(MAPLD).Washington D C:Kossiakoff Conference Center,2002:212 -217
[8]Quinn H M,Graham P S,Wirthlin M J,et al.A test methodology for determining space readiness of Xilinx SRAM-Based FPGA devices and designs[J].IEEE Transactions on Instrumentation and Measurement,2009,58(10):3380 -3395