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