《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于三層級(jí)低開銷的FPGA多比特翻轉(zhuǎn)緩解技術(shù)
基于三層級(jí)低開銷的FPGA多比特翻轉(zhuǎn)緩解技術(shù)
2018年電子技術(shù)應(yīng)用第4期
張小林,丁 磊,顧黎明
中國電子科技集團(tuán)公司第三十六研究所,浙江 嘉興314033
摘要: 商用現(xiàn)貨型FPGA被認(rèn)為是解決目前空間應(yīng)用對(duì)處理能力需求不斷增加的唯一途徑,由于其對(duì)多比特翻轉(zhuǎn)的敏感性,需要針對(duì)空間應(yīng)用的單粒子效應(yīng)采取專門的設(shè)計(jì)加固技術(shù)。提出了基于用戶邏輯層、配置存儲(chǔ)器層和控制層3個(gè)層級(jí)的容錯(cuò)技術(shù)框架。在用戶邏輯層,提出了一種新型的低開銷的FTR策略用于用戶邏輯的錯(cuò)誤檢測(cè);在配置存儲(chǔ)器級(jí),提出了基于模塊和幀的動(dòng)態(tài)部分可重構(gòu)策略用于處理配置存儲(chǔ)器的錯(cuò)誤;在控制級(jí),以Xilinx ZYNQ片上系統(tǒng)型FPGA為目標(biāo),利用其嵌入的硬核處理器進(jìn)行基于檢查點(diǎn)和卷回體制的電路狀態(tài)保存和恢復(fù)。整個(gè)容錯(cuò)技術(shù)框架在7級(jí)流水的LEON3開源器處理器中進(jìn)行了故障注入的試驗(yàn)驗(yàn)證,試驗(yàn)結(jié)果顯示在增加85%的LUT資源和125%的觸發(fā)器資源使用條件下,99.997%注入的故障得到了及時(shí)糾正。
中圖分類號(hào): TN47
文獻(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.
Three abstraction levels based low overhead scheme of multiple bit upsets mitigation for FPGA
Zhang Xiaolin,Ding Lei,Gu Liming
No.36 Research Institute of CETC,Jiaxing 314033,China
Abstract: Commercial-off-the-shelf(COTS) FPGAs are often advocated as the only solution to the increasing performance requirements in space applications. It also increases the circuit sensitivity to multiple bit upsets(MBU), thus specific design techniques must be applied to compensate this effect. This work tackles fault tolerance along three abstraction levels: user logic, configuration memory and control. At the user logic level, a new ultra-low overhead forward temporal redundancy(FTR) scheme is proposed for error detection in user logic. At the configuration memory level in the FPGA, this work leverages the opportunities brought by frame- and module-based dynamic partial reconfiguration(DPR) to handle configuration memory errors. At the control level, this work fully exploits the modern Xilinx ZYNQ system-on-chip FPGA which embeds a hard processor used for circuit state preservation with checkpointing and rollback. The overall topology is successfully validated with 99.997% reliability through fault-injection for a seven pipelined LEON3 processor at a global resource overhead only 85% in LUTs and 125% in flip-flops.
Key words : fault tolerance;multiple bit upsets(MBU);dynamic partial reconfiguration(DPR);temporal redundancy
0 引言

    商用芯片擁有比宇航級(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所示。

qrs4-t1.gif

    用戶邏輯層選擇的冗余策略直接影響上層的架構(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ò)誤。

qrs4-t2.gif

qrs4-t3.gif

    延遲時(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)爭條件。

qrs4-t4.gif

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è)能力。

qrs4-t5.gif

    為提高檢糾錯(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)的完整算法描述。

qrs4-t6.gif

    檢查點(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)行的最高工作頻率更大。

qrs4-b1.gif

    圖7所示為全部緩解技術(shù)實(shí)現(xiàn)需要的資源開銷比較,從圖中可以看出采用FTR策略,只增加了63%的組合邏輯和101%的時(shí)序邏輯資源。

qrs4-t7.gif

    在配置存儲(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)和卷回處理程序。

qrs4-t8.gif

    通過故障注入對(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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。