• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    FPGA三模冗余工具的關(guān)鍵技術(shù)與發(fā)展

    2022-06-25 08:39:40張瑤偉田春生龐永江馬筱婧
    電子與信息學(xué)報(bào) 2022年6期
    關(guān)鍵詞:邏輯分級(jí)工具

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

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

    ②(北京大學(xué)信息科學(xué)技術(shù)學(xué)院 北京 100871)

    1 引言

    SRAM型現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array, FPGA)由于其可重復(fù)編程、高靈活性等特點(diǎn),在宇航用電子設(shè)備中的應(yīng)用越來越廣泛。但是其在空間輻射環(huán)境中工作容易受到單粒子翻轉(zhuǎn)(Single Event Upset, SEU)的影響,即宇宙高能粒子射入SRAM單元的敏感區(qū)時(shí),可能會(huì)導(dǎo)致FPGA中的存儲(chǔ)單元邏輯的翻轉(zhuǎn),從而產(chǎn)生軟錯(cuò)誤,嚴(yán)重時(shí)甚至?xí)p壞硬件電路。特別是隨著FPGA晶體管尺寸的不斷縮小,輻射粒子對(duì)FPGA的SRAM存儲(chǔ)單元的影響越來越大。

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

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

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

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

    本文全面總結(jié)了FPGA三模冗余技術(shù)的研究現(xiàn)狀,并從三模冗余工具的關(guān)鍵技術(shù)、現(xiàn)有的三模冗余工具等方面進(jìn)行了詳細(xì)闡述,并對(duì)FPGA的三模冗余工具及其技術(shù)的未來發(fā)展趨勢(shì)進(jìn)行了總結(jié)與展望。

    2 TMR工具的關(guān)鍵技術(shù)

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

    TMR的應(yīng)用前提為在同一時(shí)刻只有一個(gè)模塊中出現(xiàn)錯(cuò)誤,在大多數(shù)實(shí)際中在不同的模塊中同時(shí)出現(xiàn)錯(cuò)誤的概率比較低,故TMR的應(yīng)用前提與大多數(shù)實(shí)際情況相吻合,并且TMR的實(shí)現(xiàn)過程比較直接、簡(jiǎn)單,因此,TMR成為當(dāng)前比較有效且使用廣泛的緩解SEU的方法。

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

    多數(shù)在FPGA上實(shí)現(xiàn)TMR的討論通常集中在抽象的概念上,如將實(shí)現(xiàn)的電路復(fù)制3次,插入多數(shù)表決器等,這些概念只是描述了TMR的實(shí)現(xiàn)原理,但忽略了實(shí)際正確應(yīng)用TMR的許多細(xì)節(jié),比如三模冗余的程度、正確實(shí)現(xiàn)表決網(wǎng)絡(luò)、如何進(jìn)行修復(fù)等。

    接下來,將結(jié)合TMR的各種不足以及正確應(yīng)用TMR的諸多細(xì)節(jié),總結(jié)當(dāng)前TMR工具廣泛使用、效果明顯的優(yōu)化技術(shù),主要包括:細(xì)粒度TMR技術(shù)、系統(tǒng)分級(jí)技術(shù)、配置刷新技術(shù)、狀態(tài)同步技術(shù)。細(xì)粒度TMR技術(shù)與系統(tǒng)分級(jí)技術(shù)注重對(duì)TMR容錯(cuò)效果的提升;配置刷新技術(shù)與狀態(tài)同步技術(shù)注重對(duì)TMR修復(fù)能力的補(bǔ)足。

    2.1 細(xì)粒度TMR技術(shù)

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

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

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

    圖1 細(xì)粒度的TMR技術(shù)分類

    在LTMR中,最主要的影響因素是潛在的SET,這些SET可能會(huì)通過影響觸發(fā)器或通過觸發(fā)器傳播改變其狀態(tài)來導(dǎo)致SEU,由于3個(gè)冗余的觸發(fā)器共享1個(gè)數(shù)據(jù)路徑,故發(fā)生在數(shù)據(jù)路徑的任何一個(gè)SET都可以影響到3個(gè)冗余的觸發(fā)器,從而導(dǎo)致表決失敗。

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

    此外,當(dāng)使用復(fù)雜的FPGA時(shí),通常存在共享布線資源的組件,粒子對(duì)共享布線資源的干擾可能會(huì)導(dǎo)致兩個(gè)TMR域同時(shí)出錯(cuò),從而導(dǎo)致緩解策略的失敗。

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

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

    不同粒度的TMR策略都有自身的優(yōu)缺點(diǎn)與適用對(duì)象,LTMR占用資源較少,但是僅對(duì)觸發(fā)器進(jìn)行TMR,容錯(cuò)效果較差;DTMR資源占用與容錯(cuò)效果相對(duì)比較平衡;而GTMR犧牲了巨額資源換取容錯(cuò)效果;BTMR是一種對(duì)IP的妥協(xié)策略。此外,他們共同的缺點(diǎn)是缺乏對(duì)共享布線資源的容錯(cuò)。在使用復(fù)雜的FPGA時(shí),通常會(huì)存在共享布線資源的冗余模塊,而共享的布線資源遭受干擾時(shí),常常會(huì)導(dǎo)致多個(gè)模塊故障,常用的方法是將冗余模塊布局在相距較遠(yuǎn)的位置,但是這也需要權(quán)衡,因?yàn)檫^遠(yuǎn)的距離意味著更多的線網(wǎng)資源以及潛在的關(guān)鍵路徑延長(zhǎng),所以仍需探索如何對(duì)共享資源的優(yōu)化。

    2.2 系統(tǒng)分級(jí)技術(shù)

    系統(tǒng)分級(jí)技術(shù)是為了緩解TMR僅容錯(cuò)不修復(fù)的缺陷,盡可能地?cái)U(kuò)展TMR系統(tǒng)的容錯(cuò)能力的一種手段[17,18]。

    在分級(jí)技術(shù)中,整個(gè)系統(tǒng)首先被分解從成多個(gè)子系統(tǒng),每個(gè)子系統(tǒng)執(zhí)行系統(tǒng)的一部分任務(wù),這些子系統(tǒng)被鏈接在一起形成系統(tǒng)。將TMR應(yīng)用于分解的系統(tǒng)時(shí),每個(gè)子系統(tǒng)都由3個(gè)冗余模塊組成,每個(gè)子系統(tǒng)的輸出在傳播到下一個(gè)子系統(tǒng)之前都會(huì)進(jìn)行表決,如圖2所示。

    圖2 將TMR應(yīng)用于分解的系統(tǒng)

    通過使用分級(jí),在大多數(shù)情況下,即使在多個(gè)子模塊出現(xiàn)故障的情況下,系統(tǒng)也可以保持正常運(yùn)行。在普通的TMR中,一旦多個(gè)模塊出現(xiàn)故障,系統(tǒng)就會(huì)出現(xiàn)故障,而在使用分級(jí)的TMR中,只要故障不發(fā)生在同一分級(jí),系統(tǒng)就不會(huì)出現(xiàn)故障。如圖3所示,在這個(gè)系統(tǒng)中有3個(gè)分級(jí),假定系統(tǒng)發(fā)生了3個(gè)故障,每一級(jí)中只發(fā)生了一個(gè)故障,那么系統(tǒng)仍能保持正確運(yùn)行,因?yàn)楣收习l(fā)生在不同的分級(jí)中,表決器會(huì)在本級(jí)中將故障屏蔽。但是,如果在同一分級(jí)中的多個(gè)子模塊中均發(fā)生故障,如圖3的橙色模塊所示,系統(tǒng)就會(huì)出現(xiàn)故障。

    圖3 分級(jí)TMR系統(tǒng)中的容錯(cuò)與故障

    系統(tǒng)分級(jí)技術(shù)提升的容錯(cuò)效果非常直接明顯,但是帶來的額外資源消耗也很嚴(yán)重,而且還增加了設(shè)計(jì)的關(guān)鍵路徑長(zhǎng)度,帶來負(fù)面的時(shí)序影響。使用這種方法時(shí),分級(jí)個(gè)數(shù)過少,可能會(huì)達(dá)不到理想的容錯(cuò)效果,分級(jí)個(gè)數(shù)過多時(shí),可能會(huì)導(dǎo)致性能下降、占用資源過大,所以需要探索最優(yōu)的分級(jí)個(gè)數(shù),來平衡電路的面積、性能與可靠性。

    2.3 配置刷新技術(shù)

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

    配置刷新是一種用于糾正FPGA配置存儲(chǔ)器中錯(cuò)誤的技術(shù)。刷新的目的是糾正電路中的靜態(tài)組件,通常是LUT的內(nèi)容以及布線情況等。例如,當(dāng)SEU將XOR門的LUT翻轉(zhuǎn)為OR門時(shí),刷新就可以使其恢復(fù)為XOR門。

    執(zhí)行刷新任務(wù)的電路稱為刷新器,刷新器可以存在于FPGA內(nèi)部或外部,這取決于刷新模塊訪問配置存儲(chǔ)器的方式,有些配置接口是獨(dú)占的內(nèi)部接口,有些是獨(dú)占的外部接口,兩者均有優(yōu)缺點(diǎn),用戶可以根據(jù)是否提供額外的硬件來實(shí)現(xiàn)刷新模塊、刷新模塊與被刷新的配置存儲(chǔ)器是否需要分開、對(duì)刷新速度的需求等條件來選擇最合適的方式[19]。

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

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

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

    盲刷是在特定程序的控制下,不斷地向配置存儲(chǔ)器中寫入受保護(hù)的黃金副本的內(nèi)容,以對(duì)FPGA的配置文件進(jìn)行重加載操作,盲刷不涉及任何檢測(cè)方法,會(huì)自動(dòng)識(shí)別和匹配目標(biāo)FPGA 芯片,只需提供時(shí)鐘和刷新使能信號(hào),即可自動(dòng)實(shí)現(xiàn)對(duì)目標(biāo)FPGA的刷新操作,大幅降低系統(tǒng)設(shè)計(jì)的難度和復(fù)雜度,縮短開發(fā)周期[22-25]。

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

    配置刷新與TMR結(jié)合使用,可以大幅提高TMR電路的MTTF,提高FPGA設(shè)計(jì)的可靠性[26]。

    2.4 狀態(tài)同步技術(shù)

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

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

    圖4 不帶狀態(tài)同步的TMR

    要恢復(fù)此電路,需要額外的電路來同步3個(gè)冗余電路之間的狀態(tài)。同步冗余模塊的一種方法就是在檢測(cè)到錯(cuò)誤之后進(jìn)行復(fù)位操作。復(fù)位可以將所有的電路進(jìn)入初始狀態(tài),然后再?gòu)脑摖顟B(tài)恢復(fù)各種操作。這種方法雖然效果明顯,但是缺陷也很多,它必須停止系統(tǒng)來實(shí)現(xiàn)復(fù)位操作,還會(huì)丟失所有未保存的計(jì)算數(shù)據(jù),此外檢測(cè)錯(cuò)誤還需要額外的計(jì)算成本。

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

    圖5 帶狀態(tài)同步的TMR

    這4項(xiàng)關(guān)鍵技術(shù)從不同的角度改進(jìn)了TMR技術(shù)的可以搭配起來共同使用,如圖6所示,細(xì)粒度TMR技術(shù)與系統(tǒng)分級(jí)技術(shù)可以共同改進(jìn)TMR的容錯(cuò)效果;在基礎(chǔ)上,配置刷新技術(shù)可以糾正配置存儲(chǔ)器中的錯(cuò)誤,提高電路的MTTF;狀態(tài)同步技術(shù)可以在配置刷新之后恢復(fù)寄存器的狀態(tài),保證各冗余電路的狀態(tài)同步。這4項(xiàng)技術(shù)可以互相搭配,相輔相成,進(jìn)一步提高TMR技術(shù)的容錯(cuò)效果與穩(wěn)定性。

    圖6 關(guān)鍵技術(shù)的配合使用

    3 現(xiàn)有的TMR工具

    自三模冗余技術(shù)首次提出至今,其在FPGA領(lǐng)域已經(jīng)有了長(zhǎng)足的發(fā)展,進(jìn)而在學(xué)術(shù)領(lǐng)域與商業(yè)領(lǐng)域都形成了許多自動(dòng)化的TMR工具。使用自動(dòng)化的TMR工具可以提供許多優(yōu)勢(shì),手動(dòng)將表決器插入設(shè)計(jì)中的合適位置是一個(gè)繁瑣且容易出錯(cuò)的過程,使用自動(dòng)化的TMR工具可以快速地應(yīng)用緩解技術(shù)。

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

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

    表1 現(xiàn)有的TMR工具

    3.1 基于RTL的工具

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

    3.1.1 RASP-TMR

    RASP-TMR工具是卡塞爾大學(xué)基于MATLAB開發(fā)的,具有簡(jiǎn)單、快捷、界面友好的特點(diǎn)[29]。

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

    圖7 RASP-TMR生成的頂層文件結(jié)構(gòu)

    該工具僅由9個(gè)函數(shù)和254行MATLAB代碼組成,是一款體量較小的學(xué)術(shù)工具,功能比較簡(jiǎn)陋,并且該作者已經(jīng)轉(zhuǎn)向研發(fā)另一款稱為RASP-FIT的故障注入工具,該工具目前沒有后續(xù)的維護(hù)計(jì)劃。

    3.1.2 CERN TMRG

    TMRG(TMR Generator)是CERN用Python語言開發(fā)的,用來協(xié)助創(chuàng)建不受SEU干擾的數(shù)字設(shè)計(jì)[31],該工具以Verilog語言為輸入,輸出Verilog語言的TMR設(shè)計(jì)。

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

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

    TMRG的功能相對(duì)比較完善,在提供了生成TMR設(shè)計(jì)的Verilog代碼基礎(chǔ)上,還針對(duì)TMR的冗余邏輯容易在綜合過程中被優(yōu)化的問題提出了解決措施。此外,該項(xiàng)目仍在積極維護(hù),是學(xué)術(shù)TMR工具中為數(shù)不多的尚在積極更新的平臺(tái),非常適合學(xué)術(shù)研究與交流。

    3.1.3 Xilinx TMRTool

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

    XTMR通過對(duì)輸入和組合邏輯、反饋邏輯、輸出邏輯3個(gè)基本設(shè)計(jì)模塊的3倍復(fù)制,來解決傳統(tǒng)TMR的諸多問題[35],如圖8所示。

    圖8 TMRTool的實(shí)現(xiàn)

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

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

    在輸出階段,輸出的選擇是整個(gè)XTMR的關(guān)鍵,TMR電路會(huì)有3個(gè)冗余邏輯路徑,那么必須有一種方式將3個(gè)邏輯路徑返回到單一路徑,這就需要輸出的選擇來完成。XTMR將3個(gè)冗余模塊的輸出通過三態(tài)緩沖器和少數(shù)表決器在3個(gè)引腳分別輸出,最后在PCB上“線或”為一個(gè)信號(hào)。如果某個(gè)冗余路徑上發(fā)生了翻轉(zhuǎn),對(duì)應(yīng)的少數(shù)表決器就會(huì)判定本冗余路徑的信號(hào)為少數(shù)值,并通過控制三態(tài)緩沖器使輸出端口變?yōu)楦咦锠顟B(tài),從而控制該輸出端口上無輸出信號(hào),另外兩個(gè)冗余路徑的正確信號(hào)將繼續(xù)輸出。

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

    3.1.4 BYU-LANL TMR

    BYU-LANL TMR是由BYU在洛斯阿拉莫斯國(guó)家實(shí)驗(yàn)室(Los Alamos National Laboratory,LANL)的支持下開發(fā)的,用于對(duì)EDIF格式的設(shè)計(jì)應(yīng)用三模冗余[4]。

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

    BLTMR的開源版本已經(jīng)不再提供維護(hù),僅支持Virtex和Virtex4的設(shè)備,主要與Xilinx ISE配合使用,而由美國(guó)國(guó)家科學(xué)基金會(huì)高性能可重構(gòu)計(jì)算中心(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指導(dǎo)下開發(fā)的一種基于綜合的輻射效應(yīng)緩解工具[39],該工具以Verilog為輸入,輸出.edif文件或.v網(wǎng)表文件的TMR設(shè)計(jì)。

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

    SEU的檢測(cè)與恢復(fù)FSM使用漢明距離2的編碼方式,如圖9所示,使用奇偶校驗(yàn)的漢明編碼將初始狀態(tài)00, 01, 10編碼為由狀態(tài)位與校驗(yàn)位組成的0001, 0110, 1010,當(dāng)狀態(tài)位發(fā)生翻轉(zhuǎn)時(shí),F(xiàn)SM就會(huì)進(jìn)入恢復(fù)狀態(tài),恢復(fù)到指定的初始狀態(tài);而當(dāng)校驗(yàn)位發(fā)生翻轉(zhuǎn)時(shí),能夠進(jìn)行容錯(cuò),盡可能減少FSM的中斷。在FSM發(fā)生SEU的情況下,F(xiàn)SM操作中斷,進(jìn)入恢復(fù)狀態(tài),需要消耗若干個(gè)時(shí)鐘周期,對(duì)于一些時(shí)序敏感的應(yīng)用場(chǎng)景不夠友好。

    圖9 SEU的檢測(cè)與恢復(fù)狀態(tài)機(jī)

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

    設(shè)計(jì)人員可以依據(jù)使用的可編程結(jié)構(gòu)、預(yù)期的單粒子效應(yīng)類型以及應(yīng)用程序的關(guān)鍵程度來決定使用不同類型的TMR防止軟錯(cuò)誤[40]。同時(shí),它支持器件類型非常多,如Microsemi的SmartFusion2,TRG4以及Xilinx的7系列和UltraScale系列。

    3.1.6 Synopsys Synplify Premier

    Synplify Premier為FPGA設(shè)計(jì)人員提供了多種方式來實(shí)現(xiàn)錯(cuò)誤檢測(cè)和緩解的電路,包括TMR、雙備份比較檢錯(cuò)、帶TMR的糾錯(cuò)碼存儲(chǔ)器、安全狀態(tài)機(jī)、漢明-3編碼的容錯(cuò)狀態(tài)機(jī)[41]。

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

    得益于FPGA編程技術(shù)的發(fā)展現(xiàn)狀,當(dāng)前的TMR工具主要集中在RTL級(jí)實(shí)現(xiàn)。無論是基于RTL描述的工具,還是基于RTL綜合的工具,在RTL級(jí)的實(shí)現(xiàn)擁有對(duì)TMR實(shí)現(xiàn)細(xì)節(jié)進(jìn)行各種微調(diào)的優(yōu)勢(shì),對(duì)于Verilog語言進(jìn)行直接TMR,整體的實(shí)現(xiàn)難度相對(duì)降低,但是會(huì)面臨綜合階段冗余被優(yōu)化的問題,而在綜合階段插入TMR,可以避免冗余邏輯被綜合的問題,需要對(duì)綜合階段的各種中間網(wǎng)表文件以及FPGA的底層架構(gòu)非常了解。

    3.2 基于HLS的工具

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

    使用HLS進(jìn)行FPGA開發(fā),可以極大縮短開發(fā)周期,這對(duì)于設(shè)計(jì)周期冗長(zhǎng)的TMR設(shè)計(jì)來說非常重要。Xilinx分析了使用CPU, GPU等標(biāo)準(zhǔn)專用處理器進(jìn)行項(xiàng)目設(shè)計(jì)與使用FPGA平臺(tái)進(jìn)行項(xiàng)目設(shè)計(jì)的時(shí)間與性能對(duì)比,如圖10所示,使用FPGA平臺(tái)開發(fā)與標(biāo)準(zhǔn)專用處理器相同的應(yīng)用無論是初始版本還是優(yōu)化版本都具有更高的性能,然而采用RTL設(shè)計(jì)實(shí)現(xiàn)FPGA開發(fā)需要較長(zhǎng)的開發(fā)時(shí)間,甚至超出了典型軟件開發(fā)時(shí)間的允許范圍。在采用HLS技術(shù)之后,F(xiàn)PGA開發(fā)的時(shí)間大大降低,甚至低于DSP和GPU。

    圖10 RTL設(shè)計(jì)與HLS設(shè)計(jì)的設(shè)計(jì)時(shí)間與應(yīng)用性能

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

    HLS技術(shù)可以成為解決TMR技術(shù)在FPGA上的實(shí)現(xiàn)所面臨的效率及實(shí)用性挑戰(zhàn)的一種良好嘗試。

    3.2.1 TLegUp

    TLegUp是新南威爾士大學(xué)研究的一款在高層次綜合階段實(shí)現(xiàn)TMR的工具,該工具基于多倫多大學(xué)開發(fā)的開源高層次綜合工具LegUp[42],以C語言程序?yàn)檩斎?,輸出Verilog的TMR設(shè)計(jì)。

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

    TLegUp中的關(guān)鍵技術(shù)在于表決器的插入[44],這里TLegUp使用上面所說的系統(tǒng)分級(jí)技術(shù)和狀態(tài)同步技術(shù)的思想。通過表決器的插入,不僅可以將設(shè)計(jì)進(jìn)行多級(jí)的分區(qū),增加設(shè)計(jì)的容錯(cuò)性,同時(shí)還可以同步各個(gè)域之間的狀態(tài),防止錯(cuò)誤的擴(kuò)散。

    精簡(jiǎn)表決器插入頂層模塊輸出端口,將電路的每個(gè)三模輸出信號(hào)轉(zhuǎn)換為單個(gè)輸出信號(hào)。TLegUp生成的分級(jí)電路中,每個(gè)分級(jí)對(duì)應(yīng)一個(gè)TMR組件,該組件具有3個(gè)功能相同的模塊,分級(jí)表決器被插入到每個(gè)分級(jí)邊界的輸出信號(hào)之后,來防止錯(cuò)誤的積累。此外,為了重新同步各域之間的狀態(tài),防止錯(cuò)誤擴(kuò)散,同步表決器插入到每個(gè)數(shù)據(jù)路徑的循環(huán)部分;而由于電路必須在每個(gè)時(shí)鐘周期更新FSM寄存器,故FSM的下一個(gè)邏輯狀態(tài)中也需要插入同步表決器進(jìn)行同步。

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

    3.2.2 C-TMR

    德克薩斯大學(xué)達(dá)拉斯分校提出了一種新型的容錯(cuò)硬件加速器的設(shè)計(jì)方法[45],該方法為C程序?qū)崿F(xiàn)TMR,以三?;蟮腃程序作為HLS工具的輸入,從而能夠?yàn)槿蒎e(cuò)硬件提供更豐富的搜索空間,來探索面積、性能、可靠性的最優(yōu)平衡。

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

    圖11 新型容錯(cuò)硬件加速器設(shè)計(jì)

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

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

    3.3 基于軟核的工具

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

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

    圖12 MicroBlaze TMR子系統(tǒng)的部分結(jié)構(gòu)圖

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

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

    4 TMR工具的發(fā)展趨勢(shì)

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

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

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

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

    更前沿的方向已經(jīng)開始了基于高級(jí)語言描述的TMR技術(shù)的研究,從而充分利用高層次綜合的空間探索優(yōu)勢(shì),產(chǎn)生面積、性能和可靠性平衡的TMR電路。

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

    5 結(jié)束語

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

    猜你喜歡
    邏輯分級(jí)工具
    刑事印證證明準(zhǔn)確達(dá)成的邏輯反思
    法律方法(2022年2期)2022-10-20 06:44:24
    邏輯
    創(chuàng)新的邏輯
    波比的工具
    波比的工具
    女人買買買的神邏輯
    37°女人(2017年11期)2017-11-14 20:27:40
    “巧用”工具
    讀者(2017年18期)2017-08-29 21:22:03
    分級(jí)診療路難行?
    分級(jí)診療的“分”與“整”
    分級(jí)診療的強(qiáng)、引、合
    孝昌县| 马公市| 周至县| 汤阴县| 固安县| 孙吴县| 昆山市| 安远县| 邹平县| 衡山县| 临颍县| 丽水市| 连城县| 封开县| 蓬安县| 潍坊市| 张掖市| 安远县| 定兴县| 和平县| 沈丘县| 广水市| 武功县| 兰州市| 资阳市| 凤台县| 将乐县| 昔阳县| 广宗县| 常德市| 岑巩县| 吴桥县| 会东县| 通城县| 大新县| 孝义市| 连江县| 时尚| 依兰县| 青海省| 太原市|