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