《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于SRAM型FPGA的實(shí)時容錯自修復(fù)系統(tǒng)設(shè)計方法
基于SRAM型FPGA的實(shí)時容錯自修復(fù)系統(tǒng)設(shè)計方法
2019年電子技術(shù)應(yīng)用第7期
徐偉杰1,謝永樂2,彭禮彪2,沈北辰3
1.長安大學(xué) 信息工程學(xué)院,陜西 西安710064; 2.電子科技大學(xué) 自動化工程學(xué)院,四川 成都611731;3.四川大學(xué) 軟件學(xué)院,四川 成都610207
摘要: 為提高輻射環(huán)境中電子系統(tǒng)的可靠性,提出了一種基于SRAM型FPGA的實(shí)時容錯自修復(fù)系統(tǒng)結(jié)構(gòu)和設(shè)計方法。該設(shè)計方法采用粗粒度三模冗余結(jié)構(gòu)和細(xì)粒度三模冗余結(jié)構(gòu)對系統(tǒng)功能模塊進(jìn)行容錯設(shè)計;將一種細(xì)粒度的故障檢測單元嵌入到各冗余模塊中對各冗余模塊進(jìn)行故障檢測;結(jié)合動態(tài)部分重構(gòu)技術(shù)可在不影響系統(tǒng)正常工作的前提下實(shí)現(xiàn)故障模塊的在線修復(fù)。該設(shè)計結(jié)構(gòu)于Xilinx Virtex-6 FPGA中進(jìn)行了設(shè)計實(shí)現(xiàn),實(shí)驗(yàn)結(jié)果表明系統(tǒng)故障修復(fù)時間和可靠性得到顯著提高。
中圖分類號: TN710
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190480
中文引用格式: 徐偉杰,謝永樂,彭禮彪,等. 基于SRAM型FPGA的實(shí)時容錯自修復(fù)系統(tǒng)設(shè)計方法[J].電子技術(shù)應(yīng)用,2019,45(7):50-55.
英文引用格式: Xu Weijie,Xie Yongle,Peng Libiao,et al. SRAM based FPGA system capable of runtime fault tolerance and recovery[J]. Application of Electronic Technique,2019,45(7):50-55.
SRAM based FPGA system capable of runtime fault tolerance and recovery
Xu Weijie1,Xie Yongle2,Peng Libiao2,Shen Beichen3
1.School of Information Engineering,Chang′an University,Xi′an 710064,China; 2.School of Automation Engineering,University of Electronic Science and Technology of China,Chengdu 611731,China; 3.College of Software Engineering,Sichuan University,Chengdu 610207,China
Abstract: In order to enhance the reliability of electronic system working in radiation environment, a reliability enhanced SRAM based FPGA system with runtime fault recovery is presented in this work. Coarse-grained TMR architecture and fine-grained TMR architecture are proposed to achieve the ability of fault tolerance. Fine-grained fault detection units are inserted in each redundancy module to mask the faulty module. The technique of partial dynamic reconfiguration is used to repair the faulty module without interrupting other parts of the system。The scheme is implemented in Xilinx Virtex-6 FPGA, and the results show that the improvements in recovery time and reliability are achieved by the proposed technique.
Key words : reliability;fault tolerance;fault recovery;TMR;dynamic reconfiguration

0 引言

    隨著航天技術(shù)的發(fā)展,空間任務(wù)日益復(fù)雜化、多樣化,未來航天系統(tǒng)對處理器的性能要求越來越高。在一些航天設(shè)備如星載ATP等系統(tǒng)的電子模塊設(shè)計中,基于SRAM的現(xiàn)場可編程門陣列(FPGA)得到了日益廣泛的應(yīng)用。空間環(huán)境中的電子系統(tǒng)設(shè)計,不僅要滿足高性能,而且其數(shù)據(jù)處理、傳輸和控制的準(zhǔn)確性和可靠性也必須得到保證。對于機(jī)載、星載、空間武器和其他空間應(yīng)用電子系統(tǒng),往往暴露在形形色色的電磁輻射環(huán)境中,如α粒子、宇宙射線、外太空強(qiáng)輻射等等惡劣環(huán)境,加之一些電子系統(tǒng)工作在地面的高電磁輻射環(huán)境中,這些輻射環(huán)境中充滿了各種高能粒子,高能粒子撞擊工作中的電子器件會引發(fā)輻射效應(yīng),如單粒子翻轉(zhuǎn)(SEU)等,并導(dǎo)致器件發(fā)生故障,由輻射效應(yīng)引起的軟錯誤是導(dǎo)致空間環(huán)境中電子系統(tǒng)失效的重要原因之一[1]。

    在提高系統(tǒng)可靠性與安全性方面,避錯與容錯技術(shù)是常用的兩種關(guān)鍵技術(shù)。微電子抗輻射加固技術(shù)[2],通過對材料選取、工藝結(jié)構(gòu)設(shè)計等方面進(jìn)行加固設(shè)計,在物理層消除導(dǎo)致?lián)p傷的各類寄生參數(shù), 能有效提高電子器件的抗輻射能力。但是僅在物理層上對系統(tǒng)進(jìn)行故障防護(hù)不能滿足惡劣環(huán)境中的系統(tǒng)可靠性要求,還需要從電路設(shè)計方面對系統(tǒng)功能進(jìn)行保護(hù)。運(yùn)用錯誤校正碼(ECC)技術(shù)[3],在數(shù)據(jù)包的后端添加額外的校驗(yàn)數(shù)據(jù)位,來實(shí)現(xiàn)讀取/寫入數(shù)據(jù)的準(zhǔn)確性,能在一定程度上對存儲器進(jìn)行檢錯和糾錯。容錯設(shè)計技術(shù),如采用冗余設(shè)計來“屏蔽”或“隔離”故障,如信息冗余[4]、硬件冗余[5]等,進(jìn)而在一定時期內(nèi)將故障的影響掩蓋起來,使發(fā)生故障的電子系統(tǒng)在一定時期內(nèi)仍能正常工作,但這種方式并未排除故障,隨著故障的累積和疊加,系統(tǒng)仍然可能失效,所以賦予系統(tǒng)故障自修復(fù)能力能有效減少故障累積,提高系統(tǒng)的可靠性。

    本文從故障容錯和故障自修復(fù)角度對系統(tǒng)進(jìn)行芯片級的可靠性設(shè)計,提出了一種基于SRAM型FPGA的實(shí)時容錯自修復(fù)系統(tǒng)結(jié)構(gòu),并將該設(shè)計結(jié)構(gòu)在Xilinx Virtex-6 FPGA上進(jìn)行了設(shè)計驗(yàn)證。

1 基于動態(tài)部分重構(gòu)的模塊修復(fù)

    FPGA的配置可分為靜態(tài)配置和動態(tài)配置,靜態(tài)配置通常對整個FPGA模塊進(jìn)行重新配置,系統(tǒng)功能在配置過程時中斷,并在配置結(jié)束后改變系統(tǒng)功能。動態(tài)配置,又稱為動態(tài)部分重構(gòu),能夠在不干擾FPGA內(nèi)部其他模塊工作的同時動態(tài)地對部分區(qū)域的邏輯功能進(jìn)行修改。其核心思想是將FPGA內(nèi)部的邏輯資源從物理布局上劃分為靜態(tài)區(qū)域和若干個動態(tài)區(qū)域。每個動態(tài)區(qū)域可以對應(yīng)有多個配置文件,以實(shí)現(xiàn)不同的功能,將這些配置文件事先存放在片外存儲器中。在系統(tǒng)運(yùn)行的不同時刻,根據(jù)系統(tǒng)的實(shí)際需求加載不同的配置文件到同一個動態(tài)區(qū)域來實(shí)現(xiàn)相應(yīng)的邏輯功能。在某一動態(tài)區(qū)域進(jìn)行功能切換時,不影響靜態(tài)區(qū)域和其他動態(tài)區(qū)域的邏輯功能,系統(tǒng)依然處于連續(xù)運(yùn)行狀態(tài)。

    動態(tài)部分重構(gòu)技術(shù)能對FPGA的部分資源實(shí)現(xiàn)分時復(fù)用,使芯片能夠在不同時刻實(shí)現(xiàn)不同的功能,提高了芯片資源的利用率,已廣泛應(yīng)用于工業(yè)系統(tǒng)設(shè)計中,如文獻(xiàn)[6]中結(jié)合動態(tài)部分重構(gòu)技術(shù)對工業(yè)傳感器數(shù)據(jù)采集系統(tǒng)進(jìn)行設(shè)計,針對不同的傳感器切換不同的功能。該技術(shù)還可應(yīng)用于可重構(gòu)計算[7]、可進(jìn)化硬件[8-9]、容錯設(shè)計[10-14]等方面。將動態(tài)部分重構(gòu)技術(shù)和冗余技術(shù)結(jié)合,即將冗余設(shè)計中各冗余模塊分別置于一動態(tài)區(qū)域中,在故障發(fā)生時通過動態(tài)重構(gòu)對故障模塊進(jìn)行修復(fù),可以避免故障的累積和疊加,在容錯的同時賦予系統(tǒng)故障自修復(fù)能力。

2 粗粒度和細(xì)粒度的三模冗余自修復(fù)結(jié)構(gòu)

2.1 粗粒度的三模冗余設(shè)計結(jié)構(gòu)

    典型的模塊冗余技術(shù)——N模冗余設(shè)計:將功能模塊復(fù)制為N份,N個模塊具有相同的輸入,N個模塊的輸出經(jīng)過多數(shù)表決器表決輸出。N模冗余系統(tǒng)在工作過程中能同時容忍不超過半數(shù)的冗余模塊發(fā)生故障而不影響最終的系統(tǒng)輸出。隨著冗余模塊的數(shù)量增加,系統(tǒng)的容錯能力提高,但同時系統(tǒng)的硬件資源開銷和功耗增大,綜合考慮容錯能力和資源開銷,三模冗余(TMR)技術(shù)具有最高的性能表現(xiàn)。

    FPGA的系統(tǒng)通常可以分為多個功能模塊,粗粒度的三模冗余設(shè)計結(jié)構(gòu)以整個功能模塊為單位進(jìn)行冗余設(shè)計,如圖1所示,即將整個功能模塊作為一個冗余單位,將整個功能模塊復(fù)制三份,將每個功能單元模塊FU1~FU3配置到單獨(dú)的部分重構(gòu)模塊(PRM)中,使得每個冗余模塊都可以獨(dú)立被修復(fù)。表決器選擇多數(shù)的輸入結(jié)果進(jìn)行輸出。在粗粒度的三模冗余設(shè)計結(jié)構(gòu)中,只要兩個冗余模塊的輸出結(jié)果正確,就能保證整個模塊輸出正常,當(dāng)其中任意模塊發(fā)生故障時,通過系統(tǒng)的故障檢測機(jī)制可進(jìn)行故障定位,隔離故障區(qū)域并進(jìn)行自修復(fù)操作。

wdz4-t1.gif

2.2 細(xì)粒度的三模冗余設(shè)計結(jié)構(gòu)

    采用粗粒度設(shè)計結(jié)構(gòu)能有效提高系統(tǒng)的可靠度,但其仍然存在一些不足,一是當(dāng)多數(shù)表決器出現(xiàn)故障時整個自修復(fù)結(jié)構(gòu)本身不可靠;二是由于模塊粒度較大,一些不能導(dǎo)致模塊功能失效的隱性故障持續(xù)累積,容易導(dǎo)致多個模塊同時故障,使得防護(hù)結(jié)構(gòu)失效。本文中細(xì)粒度的三模冗余設(shè)計結(jié)構(gòu)能有效減少故障累積,該設(shè)計結(jié)構(gòu)將一功能模塊拆分為若干個獨(dú)立的時序元件和組合邏輯部分,本文將該設(shè)計結(jié)構(gòu)利用圖形化表示來說明,將功能單元模塊中的組合邏輯表示為CG,時序元件表示為SE,則利用有向圖表示方法可以將圖2(a)電路表示為圖2(b)。

    細(xì)粒度的三模冗余容錯自修復(fù)結(jié)構(gòu)建立在有向圖表示方法基礎(chǔ)之上,其核心思想是,將電路分割為邏輯電路和時序電路,在時序電路輸出插入多數(shù)表決器,然后再對原始電路進(jìn)行三模冗余設(shè)計,使得此自修復(fù)結(jié)構(gòu)具有三個表決器,因此加強(qiáng)了此結(jié)構(gòu)的故障容錯能力,同時減輕了時序電路引起的錯誤累積,可以成功避免域交叉錯誤的出現(xiàn)。圖2(a)表示的原始電路,利用有向圖表示方法將原始電路分割開來如圖2(b)所示,利用TMR三模冗余技術(shù)將其容錯化如圖2(c)所示。MV表示多數(shù)表決器(Multiple Voter)在電路時序元件輸出之后插入,利用其三模冗余結(jié)構(gòu),增強(qiáng)了電路容錯能力。當(dāng)D1模塊的組合、時序電路以及表決器出現(xiàn)故障時,D2模塊和D3模塊通過多數(shù)表決器可以檢測到此類故障,并經(jīng)中斷喚醒處理器進(jìn)行部分動態(tài)重構(gòu)處理,使得D1部分重構(gòu)區(qū)域得以自修復(fù)。

wdz4-t2.gif

    細(xì)粒度的三模冗余容錯自修復(fù)結(jié)構(gòu)同時降低了時序電路引起的錯誤累積的概率,可以成功避免域交叉錯誤的產(chǎn)生。當(dāng)D1模塊的SE2電路和D3模塊的CG4電路同時出現(xiàn)故障的時候,由于在時序電路的輸出端用表決器成功地將SE2故障進(jìn)行檢測和隔離,不會傳遞積累影響下一級的CG4錯誤,因此可以成功避免域交叉錯誤的產(chǎn)生。

2.3 可靠度對比

    功能模塊在FPGA內(nèi)部的實(shí)現(xiàn)可以用邏輯資源來表示,如查找表(LUTs)、觸發(fā)器(Flip-Flops)、塊存儲器(BRAM)等。而各邏輯資源的連接和使用通過比特流文件配置來實(shí)現(xiàn)。比特流文件由若干個配置幀(frame)組成,配置幀又包含若干個表示配置信息的比特位。在輻射環(huán)境中,當(dāng)FPGA中的電路模塊發(fā)生單粒子翻轉(zhuǎn)效應(yīng)時,并不是模塊任意比特位發(fā)生翻轉(zhuǎn)就會導(dǎo)致模塊功能失效,該模塊功能往往由一些關(guān)鍵比特位所決定。考慮該粗粒度的三模冗余設(shè)計結(jié)構(gòu)的容錯能力,討論馬爾科夫模型下的三模冗余結(jié)構(gòu)[15],假設(shè)功能模塊在時間t內(nèi)功能正常的可靠度隨著時間的推移呈指數(shù)遞減,其可靠度可以表示為:

    wdz4-gs1.gif

其中λm表示功能模塊m的故障率,其由比特位在單位時間內(nèi)的翻轉(zhuǎn)速率和模塊對應(yīng)的關(guān)鍵比特位數(shù)量所決定。對于一個三模冗余系統(tǒng)來說只有當(dāng)兩個或者兩個以上的模塊發(fā)生錯誤時系統(tǒng)防護(hù)功能才會失效,假設(shè)三模冗余系統(tǒng)表決邏輯功能正常,那么對于該粗粒度的三模冗余設(shè)計結(jié)構(gòu)其可靠度可以表示為:

wdz4-gs2-3.gif

    將提出的細(xì)粒度的三模冗余結(jié)構(gòu)和粗粒度的三模冗余結(jié)構(gòu)的可靠度進(jìn)行比較,其可靠度示意圖如圖3所示。細(xì)粒度的三模冗余結(jié)構(gòu)容錯可靠度相對于粗粒度的可靠度有顯著的提高,但同時細(xì)粒度的三模冗余結(jié)構(gòu)會引入額外表決器和故障檢測邏輯,導(dǎo)致額外資源開銷的增加。細(xì)粒度的三模冗余結(jié)構(gòu)更適用于對故障率高的電路模塊進(jìn)行防護(hù)。

wdz4-t3.gif

3 實(shí)時故障自修復(fù)系統(tǒng)設(shè)計

3.1 實(shí)時故障自修復(fù)系統(tǒng)整體設(shè)計結(jié)構(gòu)

    圖4給出了一種基于Xilinx FPGA實(shí)現(xiàn)的故障自修復(fù)系統(tǒng)整體結(jié)構(gòu)設(shè)計方案。整個系統(tǒng)實(shí)現(xiàn)基于MicroBlaze軟核的片上微處理器系統(tǒng),主要劃分為兩個部分:靜態(tài)區(qū)域和動態(tài)部分重構(gòu)區(qū)域。靜態(tài)區(qū)域主要包括:軟核MicroBlaze、串口控制器、Flash控制器等,這部分區(qū)域包括了整個關(guān)鍵處理模塊不適于動態(tài)重構(gòu)的模塊,主要負(fù)責(zé)運(yùn)行低優(yōu)先級程序和檢測動態(tài)重構(gòu)區(qū)域的正常運(yùn)行。動態(tài)部分重構(gòu)區(qū)域是整個電子系統(tǒng)自修復(fù)的基礎(chǔ),所有的自修復(fù)操作都在其他模塊監(jiān)測、控制下有序地進(jìn)行,保證整個電子系統(tǒng)不間斷正常的工作,其中各個冗余模塊的標(biāo)準(zhǔn)配置文件存放于片外Flash中。當(dāng)系統(tǒng)收到重構(gòu)請求時,由Flash控制器讀取片外存儲器中對應(yīng)模塊的比特流文件并通過內(nèi)部配置訪問端口(ICAP)寫入重構(gòu)區(qū)域。動態(tài)部分重構(gòu)區(qū)域結(jié)合上文提出的容錯方案進(jìn)行容錯設(shè)計,同時MicroBlaze負(fù)責(zé)控制和監(jiān)測每個動態(tài)重構(gòu)單元的工作情況:比如當(dāng)設(shè)計動態(tài)重構(gòu)單元為三模冗余故障容錯模塊時,當(dāng)此模塊內(nèi)部故障檢測單元檢測到發(fā)生故障時,通過中斷的形式將信息發(fā)送到MicroBlaze中,MicroBlaze讀取此模塊的狀態(tài)寄存器以判明故障類型和區(qū)域,根據(jù)應(yīng)用場合不同選擇不同的故障自修復(fù)策略將此模塊進(jìn)行有序的自重構(gòu),實(shí)現(xiàn)故障自修復(fù)的同時并不影響系統(tǒng)正常運(yùn)行。

wdz4-t4.gif

3.2 內(nèi)嵌式故障檢測結(jié)構(gòu)

    采用一內(nèi)嵌式故障檢測結(jié)構(gòu)對冗余模塊進(jìn)行故障檢測,該方案將故障檢測單元嵌入到冗余模塊中。圖5(a)所示為三模冗余容錯自修復(fù)結(jié)構(gòu)中以邏輯門描述的故障檢測單元示意圖,該故障檢測單元由多數(shù)表決器和異或非門構(gòu)成,將多數(shù)表決器的輸出和檢測的冗余模塊的輸出接到異或非門的輸入端,多數(shù)表決器的輸出作為錯誤標(biāo)志信號FLAG。當(dāng)檢測的冗余模塊的輸出和表決器的輸出相同,則異或門輸出為邏輯1,表示該檢測的冗余模塊無故障發(fā)生,若異或門輸出邏輯為0,則表明檢測的冗余模塊發(fā)生故障或故障檢測單元自身發(fā)生故障。具有該故障檢測單元的三模冗余結(jié)構(gòu)如圖5(b)所示。

wdz4-t5.gif

    功能模塊在FPGA內(nèi)部的實(shí)現(xiàn)可以用邏輯資源來表示,如查找表(LUTs)、觸發(fā)器(Flip-Flops)、塊存儲器(BRAM)等。而各邏輯資源的連接和使用通過比特流文件(Bitstream)配置來實(shí)現(xiàn)。比特流文件由若干個配置幀(frame)組成,功能模塊大小也可通過配置幀的數(shù)量來表示。

    該檢測單元從細(xì)粒度的角度對電路輸出的每一位進(jìn)行比較,也就是說對于一個輸出信號為N位的功能模塊來說,采用該故障檢測單元會對每一個冗余模塊會產(chǎn)生N個故障標(biāo)志信號。然而對于一個冗余模塊來說只需要一個標(biāo)志信號來表明該模塊是否發(fā)生故障。對此提出了一種將標(biāo)志信號進(jìn)行融合的邏輯結(jié)構(gòu),該融合邏輯結(jié)構(gòu)采用FPGA片內(nèi)進(jìn)位鏈邏輯來實(shí)現(xiàn)。如圖6所示,以4位的輸出信號為例,故障檢測單元對TR1模塊的輸出位進(jìn)行檢測,將故障標(biāo)志信號分別接入進(jìn)位鏈的C0~C3端口。進(jìn)位鏈CIN端口輸入邏輯1,當(dāng)無故障發(fā)生時進(jìn)位鏈輸出邏輯1,當(dāng)其中一位或者多位錯誤發(fā)生時,進(jìn)位鏈中的二選一選擇器選擇故障標(biāo)志信號進(jìn)行傳遞,進(jìn)位鏈輸出邏輯0,表示TR1模塊發(fā)生故障。對于模塊輸出信號位數(shù)少于4位的情況,可以將進(jìn)位鏈空閑的輸入端輸入邏輯1即可。對于模塊輸出信號位數(shù)大于4位的情況,可以將前一進(jìn)位鏈的標(biāo)志輸出FLAG接入后一進(jìn)位鏈的CIN輸入端,將進(jìn)位鏈串行連接。

wdz4-t6.gif

4 實(shí)驗(yàn)設(shè)計與分析

    本節(jié)中將上文提出的故障自修系統(tǒng)在Xilinx  XC6VLX240T-1FF1156 FPGA上進(jìn)行設(shè)計實(shí)現(xiàn),實(shí)驗(yàn)中靜態(tài)區(qū)域包含了一基于MicroBlaze核的片上微處理器系統(tǒng),該微處理器系統(tǒng)主要負(fù)責(zé)與上位機(jī)進(jìn)行交互、響應(yīng)重構(gòu)請求、控制片外存儲器讀取比特文件數(shù)據(jù)和控制內(nèi)部配置訪問端口(ICAP)對重構(gòu)區(qū)域進(jìn)行重配置等任務(wù)。動態(tài)區(qū)域中將ITC99 benchmark電路中8個不同粒度的標(biāo)準(zhǔn)電路進(jìn)行冗余設(shè)計,以分析不同粒度模塊的故障自修復(fù)時間。

4.1 FPGA系統(tǒng)設(shè)計流程

    實(shí)驗(yàn)中對系統(tǒng)進(jìn)行設(shè)計實(shí)現(xiàn)采用的是基于Xilinx ISE開發(fā)工具的設(shè)計流程,設(shè)計流程如圖7所示。在ISE頂層設(shè)計規(guī)劃中對系統(tǒng)各模塊進(jìn)行劃分,定義系統(tǒng)中的各靜態(tài)模塊和動態(tài)模塊,并對動態(tài)模塊進(jìn)行冗余保護(hù)設(shè)計。片上微處理器系統(tǒng)在Xilinx的XPS設(shè)計工具中進(jìn)行設(shè)計搭建,并在SDK設(shè)計工具中對微處理器系統(tǒng)進(jìn)行軟件功能編譯,PlanAhead設(shè)計工具可通過圖形界面(GUI)對FPGA進(jìn)行早期分析和布局規(guī)劃功能,施加物理約束,分析布線和時序的結(jié)果。實(shí)驗(yàn)中各動態(tài)模塊的區(qū)域劃分在PlanAhead中進(jìn)行設(shè)計。PlanAhead中比特流文件生成完成后,需要進(jìn)行軟硬件協(xié)同處理,即將XPS生成的塊存儲器映射文件(*.bmm)、SDK生成的可執(zhí)行文件(*.elf)和PlanAhead生成的全局比特流文件合為一個新的比特流文件,借助Xilinx命令行工具ISE Design Suite Command Prompt,通過命令指令合成最終的比特流文件。

wdz4-t7.gif

4.2 實(shí)驗(yàn)結(jié)果分析

    實(shí)驗(yàn)中各動態(tài)模塊的區(qū)域劃分如圖8所示,動態(tài)區(qū)域內(nèi)的邏輯資源能夠滿足各模塊功能實(shí)現(xiàn)。各動態(tài)模塊的資源開銷如表1所示,由實(shí)驗(yàn)結(jié)果可知,模塊粒度越小其冗余設(shè)計中表決器和故障檢測結(jié)構(gòu)所占的資源比例則越大,即系統(tǒng)模塊粒度劃分越小、重構(gòu)區(qū)域劃分越多,則容錯自修復(fù)設(shè)計所帶來的額外資源開銷越大。

wdz4-t8.gif

wdz4-b1.gif

    各動態(tài)模塊重構(gòu)時間花費(fèi)表2所示。實(shí)驗(yàn)中所采取的故障注入方式同樣采取動態(tài)重構(gòu)方式,即通過FPGA的內(nèi)部配置訪問通道(ICAP)動態(tài)地對各模塊進(jìn)行錯誤配置來實(shí)現(xiàn)。實(shí)驗(yàn)中故障檢測方案采用上文所提出的內(nèi)嵌式故障檢測結(jié)構(gòu),其故障檢測延遲與信號在進(jìn)位鏈中的傳播延遲相關(guān),即和進(jìn)位鏈的串聯(lián)個數(shù)相關(guān),而進(jìn)位鏈中信號傳播延遲為納秒級,遠(yuǎn)小于模塊重構(gòu)時間,可認(rèn)為模塊的自修復(fù)時間近似于模塊的重構(gòu)時間。由實(shí)驗(yàn)結(jié)果可看出模塊重構(gòu)時間與模塊占用資源數(shù)和模塊重構(gòu)區(qū)域大小成正比,即模塊占用資源數(shù)越多,其劃分的最小重構(gòu)區(qū)域則越大,模塊重構(gòu)時間花費(fèi)越大。而同時,功能模塊劃分越小,其進(jìn)行冗余設(shè)計時所帶來的額外資源開銷比例則越大。故在系統(tǒng)設(shè)計時,需要綜合考慮資源分配情況和故障修復(fù)時間要求,合理地進(jìn)行模塊粒度劃分,實(shí)現(xiàn)粗粒度和細(xì)粒度的靈活組合。

wdz4-b2.gif

5 結(jié)論

    本文提出了一種基于SRAM型FPGA的實(shí)時容錯自修復(fù)系統(tǒng)結(jié)構(gòu)和設(shè)計方法。該設(shè)計方法將系統(tǒng)分為若干功能模塊,采用粗粒度三模冗余結(jié)構(gòu)和細(xì)粒度三模冗余結(jié)構(gòu)并結(jié)合動態(tài)重構(gòu)對系統(tǒng)進(jìn)行容錯自修復(fù)設(shè)計,實(shí)驗(yàn)結(jié)果表明該設(shè)計結(jié)構(gòu)下故障修復(fù)時間短,系統(tǒng)的可靠性得到有效提高。在系統(tǒng)設(shè)計時,可以綜合考慮資源分配情況和故障修復(fù)時間要求,合理進(jìn)行模塊粒度劃分,實(shí)現(xiàn)粗粒度和細(xì)粒度的靈活組合。 

參考文獻(xiàn)

[1] 潘雄,鄧威,苑政國,等.SRAM型FPGA單粒子隨機(jī)故障注入模擬與評估[J].微電子學(xué)與計算機(jī),2018,35(7):29-33.

[2] 馮彥君,華更新,劉淑芬.航天電子抗輻射研究綜述[J].宇航學(xué)報,2007,28(5):1071-1080.

[3] DEMIRCI M,REVIRIEGO P,MAESTRO J A.Implementing double error correction orthogonal latin squares codes in SRAM-based FPGAs[J].Microelectronics Reliability,2016,56:221-227.

[4] KOESTER M,LUK W,HAGEMEYER J,et al.Design optimizations for tiled partially reconfigurable systems[J].IEEE Transactions on Very Large Scale Integration Systems,2011,19(6):1048-1061.

[5] KOREN I,KRISHNA C M.Fault-tolerant systems[M].Morgan Kaufmann Publishers Inc.,2007.

[6] BAO S,YAN H,CHI Q,et al.A FPGA-Based reconfigurable data acquisition system for industrial sensors[J].IEEE Transactions on Industrial Informatics,2017,13(4):1503-1512.

[7] 鄔貴明.FPGA矩陣計算并行算法與結(jié)構(gòu)[D].長沙:國防科學(xué)技術(shù)大學(xué),2011.

[8] 姚睿,王友仁,于盛林,等.具有在線修復(fù)能力的強(qiáng)容錯三模冗余系統(tǒng)設(shè)計及實(shí)驗(yàn)研究[J].電子學(xué)報,2010,38(1):177-183.

[9] 王宏宇.基于FPGA的片上電路進(jìn)化設(shè)計研究[D].石家莊:河北師范大學(xué),2017.

[10] KONDELOVA A,CUNTALA J.Time models of dynamic and static reconfiguration in FPGAs[C].Proceedings of ELEKTRO,2014:451-454.

[11] RODRIGUES T,VESTIAS M.Using dynamic reconfiguration to reduce the area of a JPEG decoder on FPGA[C].Proceedings of 2015 Euromicro Conference on Digital System Design,2015:65-71.

[12] 張小林,丁磊,顧黎明.基于三層級低開銷的FPGA多比特翻轉(zhuǎn)緩解技術(shù)[J].電子技術(shù)應(yīng)用,2018,44(4):61-64.

[13] 佟昕,于勇,趙寶珍,等.基于DMR-CED容錯方法的多相結(jié)構(gòu)數(shù)字下變頻SEU防護(hù)設(shè)計[J].遙測遙控,2018,39(4):56-61.

[14] 王銳,段小虎.一種具備故障自恢復(fù)能力的容錯計算機(jī)架構(gòu)設(shè)計[J].信息通信,2017(4):72-73.

[15] RUPE J W.Reliability of computer systems and networks fault tolerance,analysis,and design[M].John Wiley & Sons,Inc.,2003:586-587.



作者信息:

徐偉杰1,謝永樂2,彭禮彪2,沈北辰3

(1.長安大學(xué) 信息工程學(xué)院,陜西 西安710064;

2.電子科技大學(xué) 自動化工程學(xué)院,四川 成都611731;3.四川大學(xué) 軟件學(xué)院,四川 成都610207)

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