基于FPGA的三模冗余容錯技術(shù)研究
摘要:基于SRAM的FPGA對于空間粒子輻射非常敏感,很容易產(chǎn)生軟故障,所以對基于FPGA的電子系統(tǒng)采取容錯措施以防止此類故障的出現(xiàn)是非常重要的。三模冗余(TMR)方法以其實現(xiàn)的簡單性和效果的可靠性而被廣泛用于對單粒子翻轉(zhuǎn)(SEL7)進(jìn)行容錯處理。但傳統(tǒng)TMR方法存在系統(tǒng)硬件資源消耗較多且功耗較大等問題。總結(jié)了傳統(tǒng)TMR方法存在的問題,分析了一些近年來出現(xiàn)的改進(jìn)的TMR方法的優(yōu)劣,針對其存在問題指出了改進(jìn)策略,并展望了TMR技術(shù)的發(fā)展趨勢。
關(guān)鍵詞:TMR;容錯;FPGA;SEU;重構(gòu)
0 引言
基于SRAM的現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)對于帶電粒子的輻射特別敏感,尤其是近年來高密度集成芯片的出現(xiàn),電路容量增大、操作電壓降低使得它們在輻射環(huán)境下的可靠性降低。其中軟故障是主要的故障,它是由粒子和PN結(jié)相互作用引起的一種暫態(tài)故障,軟故障對在基于SRAM的FPGA上實現(xiàn)的電路具有特別嚴(yán)重的影響。由于三模冗余(Triple Modular Redundancy,TMR)技術(shù)簡單性以及高可靠性,它是一個被廣泛使用的針對于FPGA上的單粒子翻轉(zhuǎn)(Single-Event Upset,SEU)的容錯技術(shù)。文獻(xiàn)中表明TMR大幅度提高了FP-GA在SEU影響下的可靠性。盡管TMR能有效提高設(shè)計的可靠性,但是由于要實現(xiàn)額外的模塊與布線,它對硬件資源以及功耗消耗較大,而且工作速度也受到影響。這都限制了傳統(tǒng)TMR的使用。隨著電子技術(shù)特別是部分可重構(gòu)技術(shù)發(fā)展,出現(xiàn)了多種改進(jìn)的TMR技術(shù),它們都針對性地解決了傳統(tǒng)TMR方法所存在的問題,使得TMR技術(shù)得到發(fā)展。本文首先介紹了傳統(tǒng)TMR的原理,接著總結(jié)了其所存在的問題,然后對改進(jìn)的TMR技術(shù)的優(yōu)劣進(jìn)行了全面的分析,最后對TMR技術(shù)發(fā)展趨勢進(jìn)行了展望。
1 常規(guī)TMR方法及存在的問題
TMR的基本概念是用三個相同的模塊分別實現(xiàn)相同的功能,最后在輸出口通過一個多數(shù)表決器對數(shù)據(jù)進(jìn)行選擇以實現(xiàn)容錯的目的。TMR的使用是建立在某一個時刻錯誤只出現(xiàn)在一個模塊里的基礎(chǔ)上,而實際上,因為在不同的模塊里同時出錯的概率是比較低的,而且實現(xiàn)過程直接、簡單,所以TMR是現(xiàn)在比較有效且被大量使用的一種容錯的方法。TMR主要被廣泛用于防止由輻射引起的SEU對系統(tǒng)的影響,由于它的使用使FPGA在SEU影響下的可靠性得到很大提高。常規(guī)TMR方法的基本結(jié)構(gòu)如圖1所示。
盡管TMR可以有效提高設(shè)計的可靠性,但是它也存在很多不足之處。主要有以下幾點:
(1)它不能對出錯的模塊進(jìn)行修復(fù)。當(dāng)一個模塊出錯后,我們只是將錯誤通過多數(shù)表決器屏蔽,但是錯誤模塊仍然存在。而且一般的TMR也不能對錯誤進(jìn)行檢測和定位,以便系統(tǒng)進(jìn)行修復(fù)。如果出現(xiàn)的錯誤得不到及時修復(fù),那么當(dāng)再次出現(xiàn)錯誤時TMR將失效。
(2)很多研究只是考慮到單個錯誤的影響,而忽略了多個SEU同時出現(xiàn)的可能,盡管出現(xiàn)這種情況的概率較低,但卻是存在的。實驗也表明TMR對減弱單個SEU產(chǎn)生的影響是非常有效的,但SEU在配置存儲器中積累會使效果降低。
(3)普通TMR資源開銷大,資源利用率低。普通TMR是對整個設(shè)計或者較大的模塊進(jìn)行三模冗余,粒度比較大,它的資源開銷相比原始電路增大200%。如果受到FPGA硬件資源和功耗等設(shè)計約束的限制不能對整個電路或者模塊實現(xiàn)TMR,那么會造成資源浪費。
(4)由于電路的倍增使得功耗增大,而且由于表決器的存在以及其他一些額外的布線使得速度降低。
(5)表決器本身也可能出錯,而一般的TMR的表決器沒有自檢錯能力,也不具備抗輻射能力。
(6)當(dāng)采用三模冗余的電路驅(qū)動沒有采用冗余的電路時,需要一個表決器將三個信號合為一個信號。當(dāng)沒有采用冗余的電路驅(qū)動采用三模冗余的電路時需要通過額外的布線將一路信號擴(kuò)展稱為三路信號。因為邏輯電路和布線資源都對SEU敏感,所以這樣的結(jié)果會降低系統(tǒng)可靠性。
評論