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