999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

FPGA三模冗余工具的關鍵技術與發展

2022-06-25 08:39:40張瑤偉田春生龐永江馬筱婧
電子與信息學報 2022年6期
關鍵詞:故障設計

陳 雷 張瑤偉* 王 碩 周 婧 田春生②龐永江 馬筱婧 周 沖 杜 忠

①(北京微電子技術研究所 北京 100076)

②(北京大學信息科學技術學院 北京 100871)

1 引言

SRAM型現場可編程門陣列(Field Programmable Gate Array, FPGA)由于其可重復編程、高靈活性等特點,在宇航用電子設備中的應用越來越廣泛。但是其在空間輻射環境中工作容易受到單粒子翻轉(Single Event Upset, SEU)的影響,即宇宙高能粒子射入SRAM單元的敏感區時,可能會導致FPGA中的存儲單元邏輯的翻轉,從而產生軟錯誤,嚴重時甚至會損壞硬件電路。特別是隨著FPGA晶體管尺寸的不斷縮小,輻射粒子對FPGA的SRAM存儲單元的影響越來越大。

此外,隨著集成電路工藝尺寸的不斷縮小,瞬態脈沖在傳輸過程中很難被衰減,而且由于電路的工作速度提高,時鐘頻率增加,單粒子瞬態(Single Event Transients, SET)傳播造成軟錯誤的概率隨著電路工作頻率的增加而上升,組合邏輯電路的SET越來越嚴重。

緩解SEU和SET的一種常見方法是三模冗余,它是目前使用最廣泛的FPGA抗輻射緩解技術。TMR采用3個相同模塊同時執行相同的操作,3路信號通過多數表決器進行表決,以少數服從多數的原則輸出結果,以確保一個模塊的輸出錯誤不會傳播至下一模塊的輸入,只要不出現兩個模塊同時發生故障,就可以屏蔽掉故障,保證最終輸出的正確性。這種方式能夠極大地增強單粒子效應影響下電路的可靠性。TMR作為可以同時有效緩解SEU和SET的方式,已經引起了許多研究機構的關注,并被應用于FPGA開發流程的抗輻射加固點工具中。

TMR的思路由Von Neumann首先提出[1],而后Lyons和Venderkulk提出了失效冗余電路的模型,并引入了TMR的概念[2]。之后又出現了很多基于TMR技術的變種。黃影等人[3]出了基于時間的TMR技術,通過在不同時間重復進行計算并比較結果以檢測是否有差錯;Pratt等人[4]提出了部分TMR技術,Samudrala等人[5]提出了選擇性TMR技術,均通過識別電路的S E U 敏感配置位,將TMR選擇性地應用于重要的電路結構;Gomes等人[6]提出了近似TMR技術,使用近似邏輯電路代替冗余模塊,從而降低TMR電路的面積開銷。這些改進技術的核心都是只針對部分關鍵邏輯或關鍵路徑進行TMR加固設計,減少TMR設計帶來的面積和功耗開銷。

另外,TMR技術往往會與刷新等技術配合使用,以達到更好的抗SEU能力,進一步增強FPGA的可靠性。Shashidhara等人[7]設計了一種包含處理器軟核、表決器機制、中斷模塊和存儲刷新模塊的容錯系統,涵蓋了故障容錯和故障恢復的兩種故障緩解技術。段小虎等人[8]設計了一種將三模冗余設計與局部重加載技術組合應用的故障管理與恢復控制器,可以對各冗余電路模塊的工作狀態進行監控,并對模塊的故障進行分類管理與自動恢復。徐偉杰等人[9]提出了一種將細粒度的故障檢測單元嵌入到各冗余模塊中對模塊進行故障檢測的方法,結合動態部分重構技術可在不影響系統正常工作的前提下實現故障模塊的在線修復。

本文全面總結了FPGA三模冗余技術的研究現狀,并從三模冗余工具的關鍵技術、現有的三模冗余工具等方面進行了詳細闡述,并對FPGA的三模冗余工具及其技術的未來發展趨勢進行了總結與展望。

2 TMR工具的關鍵技術

TMR是N模塊冗余的一種形式。其基本思想是,將模塊復制為3份,向所有的冗余模塊提供相同的輸入,然后使用多數表決器根據少數服從多數的原則來決定正確的輸出,TMR不僅能檢測錯誤的存在,而且能夠屏蔽錯誤、輸出期望的正確值,而且在N模塊冗余中面積開銷最小。錯誤檢測、錯誤屏蔽以及N模塊冗余中最小的面積開銷這些特點,使TMR成為最常用的緩解技術。

TMR的應用前提為在同一時刻只有一個模塊中出現錯誤,在大多數實際中在不同的模塊中同時出現錯誤的概率比較低,故TMR的應用前提與大多數實際情況相吻合,并且TMR的實現過程比較直接、簡單,因此,TMR成為當前比較有效且使用廣泛的緩解SEU的方法。

但是基本的TMR技術也存在著很多缺陷:(1)占用資源多,由于將設計復制了3份,資源占用比原電路至少增加200%;(2)表決器未進行三模冗余設計,可能受到SEU的影響而出錯;(3)僅容錯不修復,當某一模塊出錯后,電路僅通過表決器將錯誤屏蔽,但模塊中的錯誤仍然存在[10]。

多數在FPGA上實現TMR的討論通常集中在抽象的概念上,如將實現的電路復制3次,插入多數表決器等,這些概念只是描述了TMR的實現原理,但忽略了實際正確應用TMR的許多細節,比如三模冗余的程度、正確實現表決網絡、如何進行修復等。

接下來,將結合TMR的各種不足以及正確應用TMR的諸多細節,總結當前TMR工具廣泛使用、效果明顯的優化技術,主要包括:細粒度TMR技術、系統分級技術、配置刷新技術、狀態同步技術。細粒度TMR技術與系統分級技術注重對TMR容錯效果的提升;配置刷新技術與狀態同步技術注重對TMR修復能力的補足。

2.1 細粒度TMR技術

通常討論的TMR是指將整個系統冗余3份的粗粒度方法,這種方法在SEU, SET發生頻率較高的情況下,幾乎發揮不了作用,故出現了一種在設計中將TMR本地化的方案,通過將設計的每一部分在局部進行3倍化與表決,從而掩蔽局部錯誤,提高系統在多錯誤情況下的可靠性。

這種將設計以細粒度的方式應用TMR稱為細粒度TMR技術,根據三?;某潭炔煌瑢MR分為局部TMR(Local TMR, LTMR)、分布式TMR(Distributed TMR, DTMR)、全局TMR(Global TMR)和塊TMR(Block TMR, BTMR)[11,12]。

LTMR是為了糾正出現在觸發器中的SEU,將設計中的觸發器均冗余為3份,并在其輸出端添加表決器來進行表決,輸入數據、控制信號和時鐘均由冗余觸發器共享,如圖1(a)所示,由于沒有對組合邏輯單元、全局和復位進行冗余,這種方法不能為時鐘信號、復位信號以及數據路徑中的SET提供保護[13,14]。

圖1 細粒度的TMR技術分類

在LTMR中,最主要的影響因素是潛在的SET,這些SET可能會通過影響觸發器或通過觸發器傳播改變其狀態來導致SEU,由于3個冗余的觸發器共享1個數據路徑,故發生在數據路徑的任何一個SET都可以影響到3個冗余的觸發器,從而導致表決失敗。

DTMR是除全局時鐘和復位信號外,將設計中所有的組合邏輯單元、觸發器和表決器都冗余為3份,從而屏蔽了SET對數據路徑的影響,如圖1(b)所示,但是由于時鐘仍是單一的信號,故時鐘布線中的SEU仍會對設計產生影響[13,14]。

此外,當使用復雜的FPGA時,通常存在共享布線資源的組件,粒子對共享布線資源的干擾可能會導致兩個TMR域同時出錯,從而導致緩解策略的失敗。

GTMR是將設計中的所有組合邏輯單元、觸發器、表決器和全局信號都冗余3份,如圖1(c)所示。通過3個時鐘域與3個TMR域來保護電路不受SEU和SET的影響,但是GTMR的功耗和面積占用非常嚴重。而且,由于3個時鐘域的存在,域的布局位置和時鐘偏差都是需要解決的問題[11,15]。

BTMR是將包含組合邏輯單元和觸發器的復雜函數視為黑盒,將整個塊冗余為3份,多數表決器放置在3個冗余塊的輸出端[15,16],如圖1(d)所示,通常用來對從第3方購買且不能由用戶編輯的IP模塊添加三模冗余,但是其本質更接近于粗粒度TMR方法,無法為IP模塊提供細粒度TMR的優點。

不同粒度的TMR策略都有自身的優缺點與適用對象,LTMR占用資源較少,但是僅對觸發器進行TMR,容錯效果較差;DTMR資源占用與容錯效果相對比較平衡;而GTMR犧牲了巨額資源換取容錯效果;BTMR是一種對IP的妥協策略。此外,他們共同的缺點是缺乏對共享布線資源的容錯。在使用復雜的FPGA時,通常會存在共享布線資源的冗余模塊,而共享的布線資源遭受干擾時,常常會導致多個模塊故障,常用的方法是將冗余模塊布局在相距較遠的位置,但是這也需要權衡,因為過遠的距離意味著更多的線網資源以及潛在的關鍵路徑延長,所以仍需探索如何對共享資源的優化。

2.2 系統分級技術

系統分級技術是為了緩解TMR僅容錯不修復的缺陷,盡可能地擴展TMR系統的容錯能力的一種手段[17,18]。

在分級技術中,整個系統首先被分解從成多個子系統,每個子系統執行系統的一部分任務,這些子系統被鏈接在一起形成系統。將TMR應用于分解的系統時,每個子系統都由3個冗余模塊組成,每個子系統的輸出在傳播到下一個子系統之前都會進行表決,如圖2所示。

圖2 將TMR應用于分解的系統

通過使用分級,在大多數情況下,即使在多個子模塊出現故障的情況下,系統也可以保持正常運行。在普通的TMR中,一旦多個模塊出現故障,系統就會出現故障,而在使用分級的TMR中,只要故障不發生在同一分級,系統就不會出現故障。如圖3所示,在這個系統中有3個分級,假定系統發生了3個故障,每一級中只發生了一個故障,那么系統仍能保持正確運行,因為故障發生在不同的分級中,表決器會在本級中將故障屏蔽。但是,如果在同一分級中的多個子模塊中均發生故障,如圖3的橙色模塊所示,系統就會出現故障。

圖3 分級TMR系統中的容錯與故障

系統分級技術提升的容錯效果非常直接明顯,但是帶來的額外資源消耗也很嚴重,而且還增加了設計的關鍵路徑長度,帶來負面的時序影響。使用這種方法時,分級個數過少,可能會達不到理想的容錯效果,分級個數過多時,可能會導致性能下降、占用資源過大,所以需要探索最優的分級個數,來平衡電路的面積、性能與可靠性。

2.3 配置刷新技術

TMR由于其僅容錯不修復的缺陷,當某一模塊出錯后,電路僅通過表決器將錯誤屏蔽,但模塊中的錯誤仍然存在,故在電路中會產生錯誤積累。由于錯誤積累的存在,TMR雖然可以在一定時間內大幅提高電路的容錯能力,但是超過一定的錯誤積累之后,電路的容錯效果會下降,從而導致電路的平均無故障時間(Mean Time To Failure, MTTF)降低[18]。所以,為了更好地發揮TMR的優勢,提高TMR電路的MTTF,需要將TMR電路與配置刷新結合,以糾正設備配置存儲器中的錯誤。

配置刷新是一種用于糾正FPGA配置存儲器中錯誤的技術。刷新的目的是糾正電路中的靜態組件,通常是LUT的內容以及布線情況等。例如,當SEU將XOR門的LUT翻轉為OR門時,刷新就可以使其恢復為XOR門。

執行刷新任務的電路稱為刷新器,刷新器可以存在于FPGA內部或外部,這取決于刷新模塊訪問配置存儲器的方式,有些配置接口是獨占的內部接口,有些是獨占的外部接口,兩者均有優缺點,用戶可以根據是否提供額外的硬件來實現刷新模塊、刷新模塊與被刷新的配置存儲器是否需要分開、對刷新速度的需求等條件來選擇最合適的方式[19]。

內部刷新依賴存儲器保護機制來檢測是否發生翻轉,配置存儲器通常整體由循環冗余校驗(Cyclic Redundancy Check, CRC)保護,部分幀可由糾錯碼(Error Correction Code, ECC)保護。刷新模塊周期性的檢查這兩種機制的有效性,并通過內部配置訪問端口(Internal Configuration Access Port,ICAP)與硬件狀態機來采用特定的刷新策略。內部刷新的速度一般比較快,不需要另一個FPGA或微處理器來管理刷新程序,整個刷新架構都封裝在FPGA內部,但是內部刷新需為刷新硬件保留一部分FPGA邏輯,導致用戶設計的可用資源減少,而且內部刷新模塊也會受到SEU的影響[20]。

外部刷新依靠額外的硬件來檢查FPGA的狀態,刷新模塊自帶配置副本,與待刷新的FPGA進行比較,外部刷新通常使用JATG接口,而使用SelectMap接口的刷新模塊可以是內部的也可以是外部的。外部的實際刷新邏輯由單獨的FPGA或微處理器來實現。外部刷新由于放置在被刷新的FPGA的外部,其可靠性更高[20]。

兩種最常用的配置刷新策略是盲刷與回讀刷新[21]。

盲刷是在特定程序的控制下,不斷地向配置存儲器中寫入受保護的黃金副本的內容,以對FPGA的配置文件進行重加載操作,盲刷不涉及任何檢測方法,會自動識別和匹配目標FPGA 芯片,只需提供時鐘和刷新使能信號,即可自動實現對目標FPGA的刷新操作,大幅降低系統設計的難度和復雜度,縮短開發周期[22-25]。

回讀刷新的常用方式是,是通過JTAG或Select-MAP接口對SRAM型FPGA進行回讀操作,確定FPGA型號并校驗回讀數據,若發生錯誤則從正確的數據源讀取碼流,從碼流中截取有效部分,并通過JTAG或SelectMAP接口將有效碼流重新寫入FPGA的內部配置位,從而完成配置存儲器的刷新?;刈x刷新一般采用反熔絲FPGA作為控制器對刷新過程進行控制,其軟硬件設計較為復雜,但回讀刷新只在發現翻轉錯誤的時候進行刷新,故障恢復更加高效和有針對性。

配置刷新與TMR結合使用,可以大幅提高TMR電路的MTTF,提高FPGA設計的可靠性[26]。

2.4 狀態同步技術

伴隨著SEU的發生,電路的狀態也容易受到損壞。當配置刷新與含有帶反饋時序邏輯的TMR設計一起使用時,對于觸發器的狀態同步是必不可少的[27]。狀態同步的目的是在通過配置刷新修復了FPGA的邏輯錯誤后,恢復其寄存器至正確的狀態。

如圖4所示的TMR電路由3個獨立的累加電路組成,對3個電路輸出的多數值進行表決輸出,在這一過程中,其中1個累加電路出現了故障,在若干周期內無法累加,而其他兩個累加電路仍將正確的值傳遞到輸出端。當通過刷新等方式修復了電路的故障后,第3個電路的累加功能恢復,但是由于其狀態已經損壞,所以它將從上次出現故障的值開始累加,仍然無法與其他兩個累加電路保持同步,即電路的故障被消除了,但是電路仍沒有獲得恢復。

圖4 不帶狀態同步的TMR

要恢復此電路,需要額外的電路來同步3個冗余電路之間的狀態。同步冗余模塊的一種方法就是在檢測到錯誤之后進行復位操作。復位可以將所有的電路進入初始狀態,然后再從該狀態恢復各種操作。這種方法雖然效果明顯,但是缺陷也很多,它必須停止系統來實現復位操作,還會丟失所有未保存的計算數據,此外檢測錯誤還需要額外的計算成本。

同步電路的最常用方法是在電路的所有反饋環路上放置表決器,在反饋路徑中的表決器可以確保電路之間的狀態實時同步[28]。如圖5所示,在上文的累加電路中,當故障修復之后,累加電路會傳入表決得到的正確值,并將其傳遞回寄存器中,從而實現各電路之間的狀態同步。

圖5 帶狀態同步的TMR

這4項關鍵技術從不同的角度改進了TMR技術的可以搭配起來共同使用,如圖6所示,細粒度TMR技術與系統分級技術可以共同改進TMR的容錯效果;在基礎上,配置刷新技術可以糾正配置存儲器中的錯誤,提高電路的MTTF;狀態同步技術可以在配置刷新之后恢復寄存器的狀態,保證各冗余電路的狀態同步。這4項技術可以互相搭配,相輔相成,進一步提高TMR技術的容錯效果與穩定性。

圖6 關鍵技術的配合使用

3 現有的TMR工具

自三模冗余技術首次提出至今,其在FPGA領域已經有了長足的發展,進而在學術領域與商業領域都形成了許多自動化的TMR工具。使用自動化的TMR工具可以提供許多優勢,手動將表決器插入設計中的合適位置是一個繁瑣且容易出錯的過程,使用自動化的TMR工具可以快速地應用緩解技術。

在學術領域,楊百翰大學(Brigham Young University, BYU)、卡塞爾大學(University of Kassel)、歐洲核子研究中心(European Organization for Nuclear Research, CERN)均投入研究了學術使用的TMR工具;在商業領域,無論是FPGA廠商Xilinx還是綜合工具廠商Mentor, Synopsys均投入研發了商用TMR工具。

這些已有的TMR工具主要分為基于寄存器傳輸級(Register-Transfer Level, RTL)的實現、基于高層次綜合(High Level Synthesis, HLS)的實現和基于軟核的實現,現有的TMR工具類別及其主要特點如表1所示。

表1 現有的TMR工具

3.1 基于RTL的工具

基于RTL的TMR工具整體又可以分為兩類,第1類是基于RTL描述的TMR工具,即對Verilog語言進行TMR,主要有RASP-TMR和TMRG;第2類是基于RTL綜合的TMR工具,即在RTL綜合的過程中對網表文件進行TMR,主要有Xilinx TMRTool, BLTMR, Mentor Precision Hi-Rel和Synopsys Synplify Premier。

3.1.1 RASP-TMR

RASP-TMR工具是卡塞爾大學基于MATLAB開發的,具有簡單、快捷、界面友好的特點[29]。

該工具以Verilog設計文件為輸入,對其進行解析,獲得輸入輸出參數,然后將設計模塊3倍化,此外該工具還可以生成頂級模塊文件,并在其中實例化生成的3個冗余模塊,最后在實例化的冗余模塊后添加多數表決器電路,生成三模冗余設計,如圖7所示。此外,作者提出了一種新型、簡單的多數表決邏輯實現,由1個與門、1個或門和1個2選1多路復用器組成,具有實現簡單的優點[30]。

圖7 RASP-TMR生成的頂層文件結構

該工具僅由9個函數和254行MATLAB代碼組成,是一款體量較小的學術工具,功能比較簡陋,并且該作者已經轉向研發另一款稱為RASP-FIT的故障注入工具,該工具目前沒有后續的維護計劃。

3.1.2 CERN TMRG

TMRG(TMR Generator)是CERN用Python語言開發的,用來協助創建不受SEU干擾的數字設計[31],該工具以Verilog語言為輸入,輸出Verilog語言的TMR設計。

TMRG工具集的組件主要包括TMRG、布局生成工具(PLAcement Generator, PLAG)、單粒子效應生成工具(Single Event Effect Generator,SEEG)和測試生成工具(Test Bench Generator,TBG)[32]。TMRG相對于標準數字設計流程增加了一些新步驟,其主要思想是用戶輸入HDL語言,然后通過TMRG將其轉換為三模冗余化后的HDL文件,此外 TMRG還會生成約束文件來防止綜合工具刪除冗余邏輯,而PLAG工具會生成約束文件來控制冗余模塊分開布局,防止粒子影響多個存儲相同冗余信息的單元。

此外,TMRG工具集還可以在驗證過程中協助用戶,單粒子效應生成工具提供了一種統一的機制來隨機向門級瞬態模擬中引入SEU和SET,測試生成工具則可以通過將待測電路實例化為TMR版本和非TMR版本來進行測試[33]。

TMRG的功能相對比較完善,在提供了生成TMR設計的Verilog代碼基礎上,還針對TMR的冗余邏輯容易在綜合過程中被優化的問題提出了解決措施。此外,該項目仍在積極維護,是學術TMR工具中為數不多的尚在積極更新的平臺,非常適合學術研究與交流。

3.1.3 Xilinx TMRTool

Xilinx TMRTool,簡稱XTMR,是Xilinx與Sandia National Laboratories合作開發,專為滿足可重構FPGA的TMR設計的特殊需求而設計的,提供了許多有用的功能,例如從Virtex和Virtex-II FPGA電路中移除半鎖存器,以及同步表決器插入,可在任何Virtex至Virtex-5設計上提供全SEU和SET免疫[34]。XTMR以ISE生成的.ngo和.ngc文件為輸入,輸出.edif文件的TMR設計。

XTMR通過對輸入和組合邏輯、反饋邏輯、輸出邏輯3個基本設計模塊的3倍復制,來解決傳統TMR的諸多問題[35],如圖8所示。

圖8 TMRTool的實現

在輸入和組合邏輯部分,XTMR將輸入和組合邏輯都復制為3份,由于還未添加表決邏輯,每個冗余路徑都是獨立的,此外,XTMR設計是在印刷電路板(Printed Circuit Board, PCB)上,所以外部的輸入輸出不受輻射的影響,而在內部的輸入、輸出和表決器都是3份冗余,所以可以消除這些資源的單點故障,保證設計免受電路翻轉和單粒子瞬態的干擾。

在反饋邏輯部分,XTMR使用了前文所說的觸發器狀態同步技術,通過在反饋路徑上插入表決器來確保各冗余模塊之間的狀態同步。對于傳統的TMR,冗余狀態機要保持同步必須重置才能從SEU中完全恢復。Xilinx TMR通過在所有反饋路徑上插入表決器來解決此問題,從而使冗余狀態機之間可以持續同步,無需進行復位即可從SEU中恢復。

在輸出階段,輸出的選擇是整個XTMR的關鍵,TMR電路會有3個冗余邏輯路徑,那么必須有一種方式將3個邏輯路徑返回到單一路徑,這就需要輸出的選擇來完成。XTMR將3個冗余模塊的輸出通過三態緩沖器和少數表決器在3個引腳分別輸出,最后在PCB上“線或”為一個信號。如果某個冗余路徑上發生了翻轉,對應的少數表決器就會判定本冗余路徑的信號為少數值,并通過控制三態緩沖器使輸出端口變為高阻狀態,從而控制該輸出端口上無輸出信號,另外兩個冗余路徑的正確信號將繼續輸出。

由于TMRTool受到國際武器貿易條例(The International Traffic in Arms Regulations, ITAR)的控制,對外實行嚴格的封鎖和禁運,僅能通過其用戶手冊[36]來管中窺豹,很難獲取其軟件的實際使用信息以及相關效果評測研究。TMRTool僅支持與ISE搭配使用,而且FPGA器件也僅支持至Virtex-5,不支持Xilinx Virtex-6以后的新型FPGA器件。

3.1.4 BYU-LANL TMR

BYU-LANL TMR是由BYU在洛斯阿拉莫斯國家實驗室(Los Alamos National Laboratory,LANL)的支持下開發的,用于對EDIF格式的設計應用三模冗余[4]。

該工具首先將EDIF格式的文件解析成網表數據結構,通過搜索強連通圖來分析確定網表數據結構中的反饋結構,并分類出反饋結構的輸入輸出,BLTMR基于這些信息來選擇電路中需要三?;慕Y構,并根據用戶約束文件來選擇盡可能多的反饋、反饋輸入和反饋輸出邏輯,之后就可以根據需要三模化的電路組件來確定表決器的插入位置,完成TMR設計并以EDIF格式輸出[37,38]。

BLTMR的開源版本已經不再提供維護,僅支持Virtex和Virtex4的設備,主要與Xilinx ISE配合使用,而由美國國家科學基金會高性能可重構計算中心(NSF Center for High-Performance Reconfigurable Computing, CHREC)支持更新的版本支持Xilinx-7系列和Vivado,并加入了新的表決器放置算法和IP的集成[37]。

3.1.5 Mentor Precision Hi-Rel

Precision Hi-Rel是Mentor Graphics在NASA指導下開發的一種基于綜合的輻射效應緩解工具[39],該工具以Verilog為輸入,輸出.edif文件或.v網表文件的TMR設計。

Precision使用了前文所說的細粒度TMR技術,提供了3種不同程度的TMR:LMTR, DTMR,GTMR,還為有限狀態機(Finite State Machine,FSM)提供了基于漢明編碼的安全狀態機策略。

SEU的檢測與恢復FSM使用漢明距離2的編碼方式,如圖9所示,使用奇偶校驗的漢明編碼將初始狀態00, 01, 10編碼為由狀態位與校驗位組成的0001, 0110, 1010,當狀態位發生翻轉時,FSM就會進入恢復狀態,恢復到指定的初始狀態;而當校驗位發生翻轉時,能夠進行容錯,盡可能減少FSM的中斷。在FSM發生SEU的情況下,FSM操作中斷,進入恢復狀態,需要消耗若干個時鐘周期,對于一些時序敏感的應用場景不夠友好。

圖9 SEU的檢測與恢復狀態機

而容錯FSM使用漢明距離3的編碼方式,可以在不中斷電路正常功能的情況下吸收SEU。

設計人員可以依據使用的可編程結構、預期的單粒子效應類型以及應用程序的關鍵程度來決定使用不同類型的TMR防止軟錯誤[40]。同時,它支持器件類型非常多,如Microsemi的SmartFusion2,TRG4以及Xilinx的7系列和UltraScale系列。

3.1.6 Synopsys Synplify Premier

Synplify Premier為FPGA設計人員提供了多種方式來實現錯誤檢測和緩解的電路,包括TMR、雙備份比較檢錯、帶TMR的糾錯碼存儲器、安全狀態機、漢明-3編碼的容錯狀態機[41]。

Synplify提供了LTMR, DTMR與BTMR 3種類型,來保護和糾正SRAM邏輯、寄存器、IP、配置位、存儲器和I/O。此外,Synplify支持的器件也非常多,Altera, Microsemi和Xilinx的大部分器件均有支持??伤阉鞯降腟ynplify相關信息比較少,不過Synopsys與Mentor均是綜合工具廠商,其工具相似性比較高,無論是細粒度的TMR,還是基于漢明編碼的安全FSM,所以可以認為Synplify接近于Precision的實現細節。

得益于FPGA編程技術的發展現狀,當前的TMR工具主要集中在RTL級實現。無論是基于RTL描述的工具,還是基于RTL綜合的工具,在RTL級的實現擁有對TMR實現細節進行各種微調的優勢,對于Verilog語言進行直接TMR,整體的實現難度相對降低,但是會面臨綜合階段冗余被優化的問題,而在綜合階段插入TMR,可以避免冗余邏輯被綜合的問題,需要對綜合階段的各種中間網表文件以及FPGA的底層架構非常了解。

3.2 基于HLS的工具

基于HLS的TMR工具是相對新興的研究方向,隨著FPGA硬件設計的系統復雜性不斷增加,上市時間不斷縮短,FPGA的編程技術逐漸高層次化,通過HLS技術將C代碼轉化為Verilog代碼的趨勢也越來越明顯,在此過程中進行TMR的插入亦或是對C代碼直接進行TMR的思路也開始逐漸興起。

使用HLS進行FPGA開發,可以極大縮短開發周期,這對于設計周期冗長的TMR設計來說非常重要。Xilinx分析了使用CPU, GPU等標準專用處理器進行項目設計與使用FPGA平臺進行項目設計的時間與性能對比,如圖10所示,使用FPGA平臺開發與標準專用處理器相同的應用無論是初始版本還是優化版本都具有更高的性能,然而采用RTL設計實現FPGA開發需要較長的開發時間,甚至超出了典型軟件開發時間的允許范圍。在采用HLS技術之后,FPGA開發的時間大大降低,甚至低于DSP和GPU。

圖10 RTL設計與HLS設計的設計時間與應用性能

此外,HLS還可以降低設計的資源利用率。Xilinx高層次綜合工具 Vitis HLS的前身AutoPilot曾將Sphere解碼器的4000行C代碼算法成功綜合到Virtex5 FPGA上,取得了比Xilinx的Sphere解碼器IP更少的邏輯資源使用量。這個結果即便在現在看來也是非常出色的,它很好地證明了HLS有潛力取得比RTL 級IP更為出色的性能,基于HLS的TMR工具有潛力降低TMR設計帶來的巨額資源消耗。

HLS技術可以成為解決TMR技術在FPGA上的實現所面臨的效率及實用性挑戰的一種良好嘗試。

3.2.1 TLegUp

TLegUp是新南威爾士大學研究的一款在高層次綜合階段實現TMR的工具,該工具基于多倫多大學開發的開源高層次綜合工具LegUp[42],以C語言程序為輸入,輸出Verilog的TMR設計。

該工具使用了上述的系統分級技術以及觸發器狀態同步技術。首先,TLegUp將輸入的C程序通過LLVM(Low Level Virtual Machine)編譯器轉化為LLVM中間代碼(Intermediate Representation,IR);之后從LLVM IR中創建更適合進行系統分級和查找反饋周期的數據流圖(Data Flow Graph,DFG);然后使用最大流最小割算法將數據流圖劃分為大小基本相等的分級,并進行調度與綁定的操作;然后TLegUp會通過深度優先的策略來確定同步表決器的插入位置;在完成全部HLS操作和確定表決器的插入位置后,最后會將每個LLVM IR指令寫入RTL塊3次,并在先前被標記指令插入的表決器電路,生成TMR設計的Verilog[43]。

TLegUp中的關鍵技術在于表決器的插入[44],這里TLegUp使用上面所說的系統分級技術和狀態同步技術的思想。通過表決器的插入,不僅可以將設計進行多級的分區,增加設計的容錯性,同時還可以同步各個域之間的狀態,防止錯誤的擴散。

精簡表決器插入頂層模塊輸出端口,將電路的每個三模輸出信號轉換為單個輸出信號。TLegUp生成的分級電路中,每個分級對應一個TMR組件,該組件具有3個功能相同的模塊,分級表決器被插入到每個分級邊界的輸出信號之后,來防止錯誤的積累。此外,為了重新同步各域之間的狀態,防止錯誤擴散,同步表決器插入到每個數據路徑的循環部分;而由于電路必須在每個時鐘周期更新FSM寄存器,故FSM的下一個邏輯狀態中也需要插入同步表決器進行同步。

該工具由于LegUp后續的商業化,失去了最新開源版本的更新支持,目前已經發展停滯,但是作為在HLS階段插入TMR的“先鋒”,該工具開辟了FPGA的TMR工具研究的新領域,為該方向的研究搭建了整體的研究框架。

3.2.2 C-TMR

德克薩斯大學達拉斯分校提出了一種新型的容錯硬件加速器的設計方法[45],該方法為C程序實現TMR,以三?;蟮腃程序作為HLS工具的輸入,從而能夠為容錯硬件提供更豐富的搜索空間,來探索面積、性能、可靠性的最優平衡。

該方法分兩階段進行,如圖11所示,第1階段對HLS的C語言行為輸入描述Cin進行源到源的轉換,并自動將TMR加入新的行為描述CTMR。第2階段通過修改HLS工具的設計空間資源管理器,在成本函數中加入可靠性參數,對新生成的行為描述CTMR執行HLS空間探索,從而產生具有面積、性能、可靠性平衡的最優配置列表,最后生成可以容錯的硬件電路。

圖11 新型容錯硬件加速器設計

該方案目前還沒有形成完整的工具,但是其對于C行為描述的TMR直接插入與當前基于RTL描述的TMR工具的發展相呼應,是超前而又合理的研究思路。

在高層次綜合階段插入TMR,可以大幅縮短TMR電路復雜而冗長的設計周期,并且提供流水線設計的機會減輕TMR設計帶來的負面時序影響,還可以對設計進行HLS空間探索,從而產生面積、性能、可靠性最均衡的硬件電路,是探索快速便捷、適用廣泛的TMR工具的新方向。

3.3 基于軟核的工具

軟核是使用FPGA的邏輯和資源搭建的CPU系統,具有一定的靈活性,Xilinx的MicroBlaze就是常見的軟核,由于是使用FPGA的通用邏輯搭建的CPU,因此也會受到單粒子效應的干擾,并且由于其CPU的特殊地位,當受到干擾時,對系統造成的影響也更致命。

Xilinx在其推出的FPGA設計套件Vivado 中也加入了MicroBlaze TMR子系統的IP,旨在提高其軟核處理器MicroBlaze的可靠性[46]。MicroBlaze是一種經過優化專門實現在FPGA中的RISC軟核處理器,具有使用生成腳本的高度可定制的特性,MicroBlaze TMR子系統包含TMR Manager, TMR Voter, TMR Comparator, TMR Inject和TMR SEM 5個IP,如圖12所示,是Xilinx開發的一個IP集合,用來自動管理和屏蔽影響MicroBlaze軟核的故障。

圖12 MicroBlaze TMR子系統的部分結構圖

MicroBlaze子系統屬于容錯-故障安全類型,它會在第1次故障后繼續工作而不會停止,并將檢測到第2次故障[47]。TMR Manager是TMR子系統IP中的核心組件,它通過持續分析比較器狀態來監控故障的出現,如果其中一個出現不匹配,就會斷言一個特殊的Break中斷信號,并強制出現故障的MicroBlaze子模塊開始恢復過程,剩下的兩個正常軟核將以鎖步狀態運行,比較器將持續比較它們的輸出,如果發生不匹配,則進入崩潰狀態,停止MicroBlaze TMR子系統。

MicroBlaze TMR子系統為軟核提供了功能完備的TMR保護策略,但是它僅針對MicroBlaze提供TMR優化,使用范圍過于單一局限,是一種針對特殊重要資源的局部保護。

4 TMR工具的發展趨勢

當前FPGA的TMR工具的發展主要集中在RTL階段,無論是基于RTL描述還是基于RTL綜合,類型多樣,發展成熟。而新興的基于HLS的TMR工具伴隨著高層次綜合技術的發展也在逐漸浮現,初出茅廬,前景廣闊。這也是當前FPGA基于RTL的編程技術與基于HLS的編程技術的縮影,此外,針對特殊資源(如軟核)的局部TMR優化也是一些FPGA設計工具的附加點工具的研究方向。

FPGA三模冗余工具的發展依托FPGA的編程技術的發展。在RTL階段進行三模冗余的設計,符合當前的FPGA編程技術仍是以硬件工程師進行RTL開發為主的現狀,無論是基于RTL綜合的TMR工具,還是基于RTL描述的TMR工具,都結合了相應的FPGA編程軟件來進行實現,從而完成了對TMR電路的實現與各種性能微調,但是這種方法也將逐漸面臨設計周期過長、復雜度過高等許多問題。

集成電路隨著摩爾定律發展至今,其復雜性已經逐漸超過人類可以手工管理的范疇,完全使用RTL級的邏輯抽象設計當代芯片是不現實的。在這種情況下,以占用3倍資源為基本思想的三模冗余更會大幅增加設計規模與復雜度,現有的RTL級三模冗余工具將會面臨設計周期冗長、關鍵路徑過長、資源占用過大等設計問題。此外,GPU之所以在人工智能時代取得了非凡成功,很大程度上得益于對軟件和算法工程師友好的編程語言和環境。與之相比,FPGA雖然也在不斷擴展自己的應用范圍,并在性能和功耗上相比GPU有著明顯優勢,但其編程方法還是以硬件工程師進行RTL開發為主,這也是當前主流FPGA三模冗余工具仍集中在RTL級的主要原因,也是制約FPGA的大范圍推廣與使用的主要障礙。

高層次綜合技術在近十年來獲得了大量的關注和飛速的發展,尤其是在FPGA領域。Xilinx的Vitis HLS, Intel的HLS Compiler, Mentor的Catapult等商用的高層次綜合工具均已經開始推廣使用,學術界也出現了開源的LegUp高層次綜合工具,并已經出現了基于其進行三模冗余工具實現的研究。使用高層次綜合技術來生產TMR電路,可以大幅縮短設計周期,提高用戶的生產率,避免了需要熟練使用多個工具進行硬件設計的限制,具有更可靠、更快速的設計TMR電路的前景,通過將高層次綜合與加入TMR兩個過程結合,對表決器的插入可以更靈活、更透明,還提供了流水線設計的機會,可以實現更優化的操作調度,以適應表決器的插入,減輕三模冗余帶來的負面時序效應。

更前沿的方向已經開始了基于高級語言描述的TMR技術的研究,從而充分利用高層次綜合的空間探索優勢,產生面積、性能和可靠性平衡的TMR電路。

高層次綜合技術可以成為解決三模冗余技術在FPGA上的實現所面臨的效率及實用性的挑戰的一劑良藥。FPGA的高層次綜合是業界發展的必然趨勢,隨著高層次綜合領域的高級語言適用范圍局限、生成硬件效率不足以及如何有效利用存儲單元等難題不斷被攻破,使用高層次語言對FPGA進行高效編程也必然會實現,基于高層次綜合的FPGA的TMR工具的研究也會逐漸獲得越來越多的關注與投入,推動FPGA的TMR技術向更加多元化的方向發展。

5 結束語

SRAM型FPGA在宇航用電子設備中的應用越來越廣泛,也使其容易受到單粒子效應干擾的問題更加凸顯。TMR是當前比較有效且使用廣泛的緩解單粒子效應的方法,眾多學術機構與工業廠商均投入開發了為FPGA實現TMR設計的工具。本文總結了現有的FPGA的TMR工具及其關鍵技術,當前TMR工具主要集中在RTL級實現,主要分為基于RTL描述的工具與基于RTL綜合的工具兩大分支。隨著FPGA的編程技術逐漸向高層次語言發展,基于高層次綜合技術的TMR工具也開始嶄露頭角,并出現了類似RTL級TMR工具的兩個方向:基于高級語言描述的工具與基于高層次綜合過程的工具,最后本文對三模冗余工具的發展趨勢進行了展望。TMR工具由于其對FPGA編程技術的依賴性,勢必會隨著高層次綜合技術的發展而開啟嶄新的發展空間。

猜你喜歡
故障設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
故障一點通
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
奔馳R320車ABS、ESP故障燈異常點亮
故障一點通
故障一點通
故障一點通
主站蜘蛛池模板: 国产精品欧美日本韩免费一区二区三区不卡 | 国产麻豆精品手机在线观看| 国产区91| 欧美日本激情| 日本尹人综合香蕉在线观看| 97精品国产高清久久久久蜜芽| 国产后式a一视频| 亚洲一级毛片免费观看| 国模沟沟一区二区三区| 国产三级视频网站| 亚洲精品视频免费观看| 99热这里只有精品免费国产| 久久网欧美| 亚洲成人福利网站| 久久99热这里只有精品免费看| 日本www色视频| 中文字幕乱码二三区免费| 久久精品国产999大香线焦| 久久精品娱乐亚洲领先| 欧美伦理一区| 久久青草精品一区二区三区| av一区二区无码在线| 国语少妇高潮| 成人字幕网视频在线观看| 国产91视频观看| 国产H片无码不卡在线视频| 日韩av手机在线| 在线观看国产小视频| 欧美不卡视频一区发布| 国产噜噜噜| 99r在线精品视频在线播放| 人妻无码中文字幕第一区| a亚洲天堂| 婷婷综合在线观看丁香| 国产精品粉嫩| 成人免费午夜视频| 中文字幕 91| 四虎亚洲国产成人久久精品| 黄色网页在线观看| 久草视频一区| 久久精品国产亚洲AV忘忧草18| 免费一级毛片不卡在线播放| 日本免费a视频| 亚洲国产91人成在线| 国国产a国产片免费麻豆| 国产亚洲美日韩AV中文字幕无码成人 | 免费看a毛片| 欧美在线黄| 婷婷亚洲最大| 精品人妻无码中字系列| 免费三A级毛片视频| 综合五月天网| 在线日韩日本国产亚洲| 免费观看三级毛片| 久久黄色影院| 中文无码精品A∨在线观看不卡| 久久人人妻人人爽人人卡片av| 亚洲永久视频| 精品1区2区3区| 激情综合婷婷丁香五月尤物| 中文字幕资源站| 亚洲精品无码AⅤ片青青在线观看| 久久这里只有精品国产99| 毛片在线区| 亚洲手机在线| 久久国产精品夜色| 女高中生自慰污污网站| 麻豆AV网站免费进入| 成年午夜精品久久精品| 久久精品免费看一| 国产美女无遮挡免费视频| 日韩人妻精品一区| 露脸国产精品自产在线播| 国产在线91在线电影| 成色7777精品在线| 国产另类视频| 色综合网址| 亚洲床戏一区| 思思99思思久久最新精品| 亚洲欧美日韩中文字幕在线| 日韩 欧美 小说 综合网 另类| 综合色在线|