基于FPGA的三模冗余容錯(cuò)技術(shù)研究
2 改進(jìn)的TMR方法
2.1 TMR與Scrubbing結(jié)合
由于TMR本身不具備錯(cuò)誤模塊修復(fù)能力,若僅一個(gè)模塊出現(xiàn)錯(cuò)誤時(shí),系統(tǒng)功能不受影響,但如果在另一個(gè)模塊出現(xiàn)錯(cuò)誤前不能對(duì)已出現(xiàn)的錯(cuò)誤模塊進(jìn)行修復(fù),那么冗余方法會(huì)失效。所以當(dāng)出現(xiàn)一個(gè)錯(cuò)誤的時(shí)候,必須及時(shí)地對(duì)出錯(cuò)的模塊進(jìn)行修復(fù)。
隨著動(dòng)態(tài)可重構(gòu)技術(shù)的發(fā)展,出現(xiàn)了Scrubbing這種對(duì)FPGA進(jìn)行配置的方法。由于對(duì)于空間電子系統(tǒng)來(lái)說(shuō)影響最嚴(yán)重的是SEU等軟故障,而軟故障可以通過(guò)重構(gòu)來(lái)解決,所以周期性地對(duì)配置存儲(chǔ)器進(jìn)行刷新可以實(shí)現(xiàn)對(duì)這類錯(cuò)誤的修復(fù)。
Scrubbing和TMR配合使用對(duì)防止SEU的產(chǎn)生可以起到很好的效果。但很多研究同樣只考慮到單個(gè)錯(cuò)誤的影響,而忽略了多個(gè)SEU同時(shí)出現(xiàn)的可能性。理論上一個(gè)快速的刷新率可以保證某一時(shí)間內(nèi)只有一個(gè)錯(cuò)誤的存在。然而實(shí)際中錯(cuò)誤的出現(xiàn)是隨機(jī)的,這意味著任何刷新率都不能保證在一個(gè)刷新周期內(nèi)最多只出現(xiàn)一個(gè)錯(cuò)誤。在實(shí)際中使用這種方法時(shí),必須通過(guò)復(fù)雜的實(shí)驗(yàn)過(guò)程對(duì)SEU出現(xiàn)的概率進(jìn)行估計(jì)。選取Scru-bbing的刷新率的經(jīng)驗(yàn)原則是使刷新率比估算的出錯(cuò)率高一個(gè)數(shù)量級(jí)。而現(xiàn)在隨著FPGA的規(guī)模越來(lái)越大,用來(lái)裝載整個(gè)配置位流的時(shí)間會(huì)達(dá)到幾百毫秒,刷新率更得不到保障,且系統(tǒng)功耗增大。
隨著部分TMR的實(shí)現(xiàn),可以設(shè)計(jì)出具有檢錯(cuò)和定位功能的表決器,當(dāng)某個(gè)模塊出錯(cuò)時(shí),表決器的信號(hào)直接觸發(fā)重構(gòu)功能,動(dòng)態(tài)地只對(duì)出錯(cuò)部分的電路進(jìn)行重構(gòu)。這樣可以解決Scrubbing時(shí)間和功耗的問(wèn)題,并為防止錯(cuò)誤積累提供了解決途徑。
為了防止表決器出錯(cuò),表決器可以采用對(duì)輻射不敏感的器件來(lái)實(shí)現(xiàn)而替代基于SRAM的材料,這樣提高了表決器的穩(wěn)健性。文獻(xiàn)也提出了一種改進(jìn)的表決器。它不再使用多數(shù)表決器對(duì)三個(gè)冗余模塊的輸出進(jìn)行表決,而是將三個(gè)冗余模塊相應(yīng)的輸出通過(guò)三態(tài)緩沖器和少數(shù)表決器后分別由FPGA的三個(gè)輸出管腳輸出,最后在印刷電路板(PCB)上“線或”為一個(gè)信號(hào)。少數(shù)表決器電路負(fù)責(zé)判斷本冗余模塊的信號(hào)是否是少數(shù)
值,如果是少數(shù)值,則相對(duì)應(yīng)的緩沖器輸出高阻,如果不是,則使相應(yīng)的信號(hào)正常輸出。
Readback是在Scrubbing的基礎(chǔ)上發(fā)展起來(lái)的。它是指將配置數(shù)據(jù)回讀與最初的配置數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)錯(cuò)誤后進(jìn)行重構(gòu)。文獻(xiàn)中使用了這樣的方法,另外它還采用了糾錯(cuò)碼來(lái)保護(hù)配置數(shù)據(jù)。每一個(gè)配置幀的數(shù)據(jù)被12位的see-dec漢明碼保護(hù),而且FPGA中每個(gè)基本單元的識(shí)別碼都不一樣,通過(guò)ICAP(InternalConfiguration Access Port)回讀配置文件后,糾錯(cuò)碼可以給出錯(cuò)位的位置。
Scrubbing可以在不中斷電路工作的情況下修復(fù)SEU在LUT、布線矩陣和CLB中所造成的功能錯(cuò)誤。但是它不能改變LUT中觸發(fā)器中的內(nèi)容,所以它也就不能重置寄存器的狀態(tài)。當(dāng)存儲(chǔ)單元的值發(fā)生了翻轉(zhuǎn),此時(shí)只能通過(guò)系統(tǒng)復(fù)位來(lái)得到修復(fù)。然而系統(tǒng)復(fù)位將使系統(tǒng)功能中斷,嚴(yán)重影響系統(tǒng)的性能。
2.2 小粒度TMR技術(shù)
隨著部分動(dòng)態(tài)重構(gòu)技術(shù)的出現(xiàn),產(chǎn)生了小粒度的TMR方法??梢砸暂^小的粒度為步長(zhǎng),采用合理的布局與布線實(shí)現(xiàn)TMR以達(dá)到要求的資源開(kāi)銷并得到最大的可靠性。文獻(xiàn)中對(duì)在出現(xiàn)多個(gè)錯(cuò)誤的情況下不同粒度TMR的容錯(cuò)性能進(jìn)行了實(shí)驗(yàn)分析,結(jié)果表明小粒度TMR比以整個(gè)系統(tǒng)為粒度進(jìn)行TMR的效果好。
在全局TMR不可行的情況下(例如資源有限),小粒度TMR是一個(gè)較好的選擇,可以在使用較少資源的情況下提高系統(tǒng)的可靠性。由于不是對(duì)所有的模塊都采用冗余措施,所以在實(shí)現(xiàn)的時(shí)候必須著重于對(duì)那些可以相對(duì)更高地提高系統(tǒng)可靠性的模塊應(yīng)用TMR技術(shù)。此時(shí)表決器的數(shù)量和位置也是一個(gè)需要考慮的問(wèn)題。由于采用三模冗余的模塊前后需要額外的布線,而邏輯電路和布線資源都對(duì)SEU敏感,所以這樣的結(jié)果會(huì)降低系統(tǒng)可靠性。如圖2所示,圖中陰影部分是對(duì)SEU敏感的,由圖可以看出(c)中敏感的部分比(b)中多,這是由于表決器和額外的布線造成的。所以需要限制三模冗余電路和未采用三模冗余的電路的轉(zhuǎn)變,這樣可以通過(guò)集中使用三模冗余技術(shù)而提高系統(tǒng)可靠性。
評(píng)論