文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.174184
中文引用格式: 張小林,丁磊,顧黎明. 基于三層級低開銷的FPGA多比特翻轉緩解技術[J].電子技術應用,2018,44(4):61-64,68.
英文引用格式: Zhang Xiaolin,Ding Lei,Gu Liming. Three abstraction levels based low overhead scheme of multiple bit upsets mitigation for FPGA[J]. Application of Electronic Technique,2018,44(4):61-64,68.
商用芯片擁有比宇航級芯片更強的處理能力,但是容易受到單粒子效應的影響[1-2]。已經有不少學者開展了相關的研究工作,主要是通過持續(xù)的全局配置刷新來緩解配置存儲器中的錯誤數(shù)據(jù)位[3]。在此基礎上,文獻[4]提出基于動態(tài)部分重構(Dynamic Partial Reconfiguration,DPR)技術對特定區(qū)域電路進行重配置,既減少了配置時間,又提高了效率。
另一種可行的處理方式就是在配置存儲器內部進行錯誤檢測和編碼糾正,通??梢詸z測2位錯誤糾正1位錯誤(Single Error Correction and Double-Error Detection,SEC-DED),但是無法應對多比特翻轉(Multiple bit Upset,MBU)的情況[5]。對于用戶邏輯電路的容錯設計主要有兩種方式:一種是進行三模冗余(Triple Modular Redundancy,TMR)設計,主要缺點是代價大;另一種方法是在用戶邏輯電路中只進行錯誤檢測,采用復制比較(Duplication With Comparison,DWC)技術,對所有邏輯資源進行復制,增加比較器對結果進行比較。為了進一步減少資源利用,文獻[6]提出在用戶邏輯電路中進行錯誤檢測的同時,通過增加一個層級對電路狀態(tài)進行保存和恢復。
根據(jù)上面的分析,目前針對FPGA的軟錯誤技術主要涉及用戶邏輯層、配置存儲器層和控制層,不同的技術可針對不同的場景,在資源、功耗之間沒有針對特殊應用實現(xiàn)針對性的優(yōu)化。因此,本文在此基礎上提出了基于三層級低開銷的系統(tǒng)性的緩解FPGA中MBU問題的技術框架,并通過Xilinx ZYNQ平臺針對開源的LEON3處理器軟核進行了故障注入的仿真驗證。
1 三層級軟錯誤緩解技術框架
以最少的資源開銷、最低功耗和最短的處理延遲時間為優(yōu)化目標,通過在用戶邏輯層、配置存儲器層和控制層3個層級的有效協(xié)同,提出了系統(tǒng)性的緩解商用現(xiàn)貨型FPGA空間應用面臨的MBU能力問題的軟錯誤緩解技術框架,其基于Xilinx ZYNQ SoC(System-on-Chip)的容錯技術框架如圖1所示。
用戶邏輯層選擇的冗余策略直接影響上層的架構。例如,使用TMR技術進行軟錯誤緩解,需要200%以上的資源開銷,不太適用于對資源和功耗都嚴格受限的空間應用環(huán)境,需要以面積和功耗的降低為優(yōu)化目標,同時盡可能地減少延遲。
配置存儲器層選擇的策略的延遲和功耗主要依賴于重配置的粒度和檢糾錯能力,后者主要取決于是對整個配置數(shù)據(jù)還是只是對內置的糾錯編碼的冗余信息進行讀取和寫回。
在控制層,主要考慮的因素也是延遲和功耗,可采用檢查點(check pointing)和卷回(rollback)體制,主要的設計參數(shù)就是檢查點設置的周期。
2 用戶邏輯層
在用戶邏輯層,有兩種較為通用的錯誤檢測方法是:一種是DWC技術,這是一種全硬件備份策略;另一種就是時間冗余(Temporal Redundancy,TR)技術。圖2中的組合邏輯和時序邏輯都有兩個獨立的路徑,可以在每個觸發(fā)器的輸出進行比較,這樣檢測延遲時間最短。圖3中采用的是TR技術體制,只對時序邏輯進行冗余,通常是基本電路采用一個時鐘,一個延遲時間d的時鐘提供給冗余的觸發(fā)器,這樣整個電路的保持時間約束最壞情況是d,建立時間約束不變。該策略可用于在組合邏輯資源開銷很低的情況下同時檢測時序邏輯中的單粒子翻轉和組合邏輯中的單粒子瞬態(tài)現(xiàn)象(Single-Event Transients,SET)造成的錯誤。
延遲時間d首先要保證能夠檢測到組合邏輯中全部的SET,因此必須大于SET的最大持續(xù)時間。隨著工藝尺寸的減少,SET持續(xù)時間在增加,對于30 MeV·cm2/mg的LET和130 nm工藝,SET的持續(xù)時間為0.2~0.8 ns,Xilinx ZYNQ采用了28 nm工藝技術,延遲在2 ns左右。同時,隨著延遲d的增加,需要增加更多延遲布線資源,容易造成競爭冒險現(xiàn)象,極大地降低了最高時鐘工作頻率。因此,對于高達2 ns的延遲,TR策略的使用十分受限。
為了改進TR策略的適用范圍,提出了圖4所示的前向時間冗余(Forward Temporal Redundancy,F(xiàn)TR)策略,其與TR的主要區(qū)別是延遲是反向的,用于觸發(fā)器比較的時鐘相位提前,電路的保持時間沒有變化,但是建立時間約束更加嚴酷。因此,從clk到clk′時鐘域的最大傳播延遲減少了d。FTR是一種低功耗和低面積的解決方案,不存在冒險競爭條件。
3 配置存儲器層
對于配置存儲器的重構或者刷新主要有3種不同粒度的操作,如圖5所示,第一種就是完全重配置或者刷新,效率比較低;第二種是基于模塊的部分重構,適用電路局限在部分重構區(qū)域(Partially Reconfigurable Region,PRR);第三種是最好的操作粒度,即基于幀的部分重構,幀是基于地址表的最小單位,對于Xilinx ZYNQ平臺,包括101個32 bit字,每一個幀通過對應的幀地址(Frame Address Register,F(xiàn)AR)進行訪問,可提供最快的錯誤檢測能力。
為提高檢糾錯效率,提出了在配置存儲器層組合使用基于模塊和基于幀的DPR方法:首先,準確定位用戶邏輯電路的資源位置,同時提取相應部分的比特流信息,然后實現(xiàn)快速的檢錯?;趲幕刈x可以用于檢測PRR內部所有錯誤。比特流信號中不僅包括配置位,也包括用戶存儲器單元,這些都可能在電路運行過程中狀態(tài)進行改變。這些對應比特位必須在回讀時通過.mask文件進行屏蔽。
上述方法特別適用于用戶電路可以分成多個獨立的小PRR的情況,對區(qū)域位置定位越準確,PRR越小,延遲就越少,電路的性能也越穩(wěn)定。
同時,對于硬件錯誤的處理可以通過比特流的重定位技術,只需要小容量的外部存儲器對部分比特流進行存儲。
另一種通用的配置存儲器保護策略是Xilinx提供的IP核,對整個配置存儲器進行監(jiān)視和錯誤糾正,這個核在Xilinx ZYNQ中不進行容錯設計就需要900個查找表和 700個觸發(fā)器,資源開銷較大。
Xilinx的FPGA支持多種刷新和配置途徑,為了盡可能減少延遲,提高系統(tǒng)的可靠性,優(yōu)選ICAP接口。
4 控制層
控制層主要完成兩個任務:協(xié)調處理和狀態(tài)保存。協(xié)調處理功能主要分為兩部分,一部分與用戶邏輯層有關,用于處理用戶邏輯中檢測到的錯誤;另一部分與配置存儲層有關,用于配置存儲器中錯誤的糾正。狀態(tài)保存專門用于支持檢查點和回滾操作,圖6所示為基于Xilinx ZYNQ平臺的完整算法描述。
檢查點和回滾操作可以通過3種方式實現(xiàn)。第一種是利用FPGA的BRAM存儲狀態(tài)信息,為保證這些信息不會被更改,必須采用合適的保護機制,通常采用內建的SEC-DED-EDAC,不能針對MBU情況。第二種方法是在更高層級進行處理,使用回讀捕獲特性,通過處理器直接從配置邏輯單元中重新獲取狀態(tài)信息。但是這種方法需要進行專門的布局設計,否則可能造成大的延遲開銷。最后一種方法是通過內部數(shù)據(jù)總線進行傳輸,比如AXI,可以在多PRR的模塊設計中進行共享,與第二種方法類似,重新獲取的狀態(tài)數(shù)據(jù)可以使用具備更高糾錯能力的軟件編碼進行糾錯,或者存儲到對單粒子免疫的存儲器中來保證數(shù)據(jù)的正確性,這些數(shù)據(jù)也可以傳回來支持卷回操作。
根據(jù)延遲和功耗的折中,選擇一個優(yōu)化的檢查點的周期參數(shù),處理器按照時間周期執(zhí)行任務,這個參數(shù)需要根據(jù)應用需求進行調整。對于硬實時系統(tǒng),檢查點周期可以減少為0,最小的延遲邊界通過回讀的時間確定。使用硬核處理器進行控制的方法由于減少了對單粒子敏感的FPGA資源的使用,可提高系統(tǒng)整體的可靠性。
5 利用開源的LEON3處理器核的測試結果
本文采用開源LEON3處理器軟核作為基本程序進行測試,其狀態(tài)單元主要包括程序計數(shù)器、寄存器文件和數(shù)據(jù)存儲器,需要通過檢查點和回滾操作進行保護?;赬ilinx ZYNQ XC7Z010-1CLG400C平臺進行測試。
在用戶邏輯層對不同的冗余策略進行量化比較,表1所示為比較的結果。從表中可以看出,F(xiàn)TR策略的結果最好,功耗低,面積開銷低,適合空間應用,實現(xiàn)了性能和代價之間的最好平衡。由于更加嚴格地建立時間約束,與TR相比,F(xiàn)TR策略可以運行的最高工作頻率更大。
圖7所示為全部緩解技術實現(xiàn)需要的資源開銷比較,從圖中可以看出采用FTR策略,只增加了63%的組合邏輯和101%的時序邏輯資源。
在配置存儲器層,位置確定更準確,更能體現(xiàn)FTR的優(yōu)勢,只需要34 μs就可以糾正一個幀中的錯誤,LEON3處理器包括2 640幀,在90 ms內就可以實現(xiàn)整個PRR的回讀,通過優(yōu)化ICAP端口的速度可以進一步減少時間,最高可以運行到300 MHz。
在控制層,狀態(tài)信息保存在程序計數(shù)器中,寄存器文件和數(shù)據(jù)存儲器中,通過檢查點和卷回操作進行保護,并通過AXI總線與硬核處理器連接。這種策略對需要傳輸?shù)臄?shù)據(jù)量比較敏感,通常片上數(shù)據(jù)存儲器只有幾KB,更大的容量需求通過片外存儲器提供,片外存儲器可以采用復雜檢糾錯編碼。
圖8顯示22%的組合邏輯和24%的時序邏輯開銷用于檢查點和卷回處理程序。
通過故障注入對整個軟件緩解技術框架的有效性進行了驗證。首先讀取幀對應的地址信息,然后對其中的一個比特位進行翻轉,最后把幀數(shù)據(jù)寫回,從而產生一個錯誤。通過Xilinx產生的.ebd和.ll文件可以找出有效使用的比特信息,試驗結果表明99.997%注入的軟錯誤得到糾正。
6 結論
為了滿足低成本高性能空間應用處理平臺的面積和功耗要求,提出了基于三層級的以功耗、面積、可靠性和延遲特性為目標的優(yōu)化模型。以LEON3開源處理器軟核為基準程序,通過增加85%的組合邏輯和125%時序邏輯資源開銷,實現(xiàn)了冗余和狀態(tài)的保存,比單純的DWC體制更優(yōu)。通過故障注入的仿真實驗,驗證了該框架可有效糾正99.997%的軟錯誤,具備MBU的緩解能力。
參考文獻
[1] 馮興,王大鳴,張彥奎,等.基于SRAM型FPGA的SEU敏感性研究[J].電子技術應用,2016,42(5):53-56.
[2] QUINN H,GRAHAM P,KRONE J, et al.Radiation-induced multi-bit upsets in SRAM-based FPGAs[J].IEEE Transactions on Nuclear Science,2005,52(6):2455-2461.
[3] BERG M,POIVEY C,PETRICK D,et al.Effectiveness of internal vs. external SEU scrubbing mitigation strategies in a Xilinx FPGA: design, test, and analysis[C].Proceedings of Radiation and Its Effects on Components and Systems(RADECS),2007:1-8.
[4] STRAKA M,KASTIL J,KOTASEK Z.Fault tolerant structure for SRAM based FPGA via partial dynamic reconfiguration[C].Proceedings of IEEE Euromicro Conference on Digital System Design:Architectures,Methods and Tools(DSD),2010:365-372.
[5] PRADHAN D K,VAIDYA N H.Roll-forward and rollback recovery performance-reliability trade-off[J].IEEE Transactions on Computers,1997,46(3):372-378.
[6] XAPSOS M A,STAUFFER C,JORDAN T,et,al.Model for cumulative solar heavy ion energy and linear energy transfer spectra[C].IEEE Transactions on Nuclear Science,2007,54(6):1985-1989.
作者信息:
張小林,丁 磊,顧黎明
(中國電子科技集團公司第三十六研究所,浙江 嘉興314033)