SEU的抑制
引言
本文引用地址:http://www.ex-cimer.com/article/81621.htm隨著工藝技術(shù)的迅速發(fā)展,創(chuàng)新進一步提高了器件在速率、容量和功耗等方面的性能,使得FPGA比ASIC更具優(yōu)勢。然而,技術(shù)的發(fā)展也突出了以前可以忽略的某些效應(yīng),例如,單事件干擾(SEU)導(dǎo)致的軟誤碼影響越來越大。通過仔細的IC設(shè)計,65nm節(jié)點單位比特的軟誤碼率有所下降,但是每一工藝節(jié)點的邏輯容量在不斷翻倍,配置RAM(CRAM)比特數(shù)量也隨之增長。
現(xiàn)在的FPGA容量越來越大,功能越來越強,逐漸擔(dān)負起系統(tǒng)的核心功能,例如數(shù)據(jù)通路等;因此,設(shè)計人員能夠?qū)⑾到y(tǒng)集成在一片可編程芯片中。這些發(fā)展趨勢促使FPGA成為許多系統(tǒng)的主要芯片選擇方案,包括電信、存儲和數(shù)據(jù)處理系統(tǒng)中利用率非常高的芯片。這些應(yīng)用領(lǐng)域?qū)煽啃缘囊蠓浅8?,所采用的現(xiàn)代高端FPGA必須具有強大的SEU抑制能力,特別是在中子流密度較高的工作環(huán)境中,例如航空電子系統(tǒng)等。
SEU背景介紹
SEU是一種非破壞性事件,離子輻射穿過CMOS器件晶體管結(jié)時會出現(xiàn)這種效應(yīng)。在地面應(yīng)用中,比較重要的兩種離子輻射源是封裝材料釋放的alpha粒子,以及地球大氣和宇宙射線相互作用產(chǎn)生的高能量中子。數(shù)字CMOS器件中最常見的效應(yīng)是軟誤碼,SEU產(chǎn)生的電荷積累到一定程度,對SRAM單元存儲節(jié)點發(fā)生作用,導(dǎo)致比特狀態(tài)翻轉(zhuǎn)。軟誤碼的發(fā)生和其原因(離子輻射)一樣都具有隨機性,和能級、通量以及單元敏感程度有一定的概率關(guān)系。軟誤碼很重要的特點是向單元重新寫入正確值便能恢復(fù)正常狀態(tài)。由于芯片沒有閉鎖,因此不需要重新上電啟動。
Altera對這些現(xiàn)象的研究十分透徹,非常重視怎樣降低FPGA中SRAM單元的軟誤碼率,在出現(xiàn)軟誤碼時,提供解決方案以減小其影響,幫助設(shè)計人員實現(xiàn)系統(tǒng)可靠性目標。
降低干擾率
SRAM單元的靈敏度可以用每Mbit的失效時間(FIT)或者中子截面積表示。業(yè)界常用的標準是大于10MeV中子截面積,需要在Los Alamos武器中子研究室(WNR)進行測量。這一標準對工藝技術(shù)逐一對比,不會受到某些定標因子的影響而提供結(jié)果看起來更好的FIT數(shù)值。通過仔細地選擇工藝技術(shù)以及SRAM單元物理設(shè)計和電路設(shè)計方法,Altera在小工藝節(jié)點上降低了單位比特的干擾率。而且,在65nm等工藝技術(shù)上,避免了閉鎖等有害效應(yīng)的影響,剩下的唯一問題就是如何消除軟誤碼。
為了便于理解軟誤碼的影響,首先要清楚FPGA中的模塊構(gòu)成。以下按照對誤碼影響從大到小的順序列出了這些模塊。邏輯、走線和硬核IP CRAM單元:在容量最大的Stratix III器件中,CRAM單元高達120Mbits,占據(jù)了片內(nèi)大部分SRAM單元。由于這些SRAM單元直接控制FPGA的功能,其完整性非常重要。而實際上,由于整個設(shè)計的走線效率較低,這些比特一般只有10%會對設(shè)計有影響。片內(nèi)存儲器RAM單元:Stratix III FPGA的用戶存儲器超過17Mbits,因此,大量的用戶存儲器會對FPGA軟誤碼發(fā)生率有較大貢獻。器件內(nèi)核寄存器和觸發(fā)器:這些單元出現(xiàn)在Stratix III自適應(yīng)邏輯模塊(ALM)、數(shù)字信號處理(DSP)模塊、流水線以及存儲器端口中。由于這些單元的中子截面積要比一般的SRAM單元小,數(shù)量相對較少(即使在容量最大的Stratix III器件中,也少于1Mbits),對FIT的貢獻非常小,從統(tǒng)計角度看,在基于SRAM的FPGA中可以忽略它們。I/O寄存器:這些寄存器位于芯片外圍,工作電壓較高。由于I/O寄存器的數(shù)量非常少(在容量最大的Stratix III中,少于10,000),因此,對FIT基本沒有貢獻。Altera在測試過程中,沒有發(fā)現(xiàn)這些寄存器出現(xiàn)過干擾事件。
因此,Altera重點關(guān)注怎樣降低CRAM單元和用戶RAM單元的SEU。
減小Stratix III配置RAM軟誤碼
從130nm工藝開始,Altera利用循環(huán)冗余校驗(CRC)引擎,在所有FPGA中建立了背景誤碼探測電路,在器件工作期間,不斷驗證CRAM的內(nèi)容。CRC最多能夠探測到三個比特的誤碼。在片內(nèi)硬件邏輯門中集成這一電路的好處在于這種電路非??煽?,不會受到軟誤碼的影響。而且,CRC引擎是一種自主式模塊,在Quartus II編譯選項中選中復(fù)選框就可以激活該功能。Stratix III FPGA提高了CRC的性能,和以前產(chǎn)品相比,進一步擴展了功能,如圖1所示。
以前的產(chǎn)品在整個器件中采用32位CRC值,而Stratix III FPGA每一幀采用了16位CRC值,這樣有多種好處。首先,誤碼探測電路不需要等待整個器件CRC計算完畢,才去探測誤碼,從而縮短了軟誤碼的探測時間。其次,片內(nèi)更多的CRC比特表明有足夠的信息來定位軟誤碼,不論它是單比特軟誤碼還是鄰近比特的雙比特軟誤碼。還有一個好處是可以同時探測并定位不同幀的軟誤碼,這是由于每一幀及其相應(yīng)的CRC寄存器彼此相互隔離。
Stratix III FPGA具備軟誤碼定位功能后,可以確定誤碼的靈敏度。由于通常只有10%的配置誤碼影響FPGA的功能,因此,可以忽略“無關(guān)緊要”的配置軟誤碼,F(xiàn)PGA功能不會中斷,繼續(xù)工作,降低了實際的FIT。
關(guān)鍵誤碼探測功能利用參考設(shè)計在軟核邏輯中實現(xiàn),由即將推出的Quartus II軟件7.2提供支持。圖2顯示了這一關(guān)鍵比特探測系統(tǒng)是怎樣工作的。關(guān)鍵誤碼探測方案的工作原理如下:
1. 通過內(nèi)置軟誤碼探測電路探測并定位配置軟誤碼。這將置位CRC_ERROR引腳。
2. 軟核邏輯獲得誤碼信息,計算映射文件中的地址,確定哪些配置比特“緊要”或者“無關(guān)緊要”。
3. 軟核邏輯使用用戶專用存儲器接口,例如主動串行配置端口,訪問靈敏度映射文件中的對應(yīng)比特,確定某一配置軟誤碼對FPGA當(dāng)前配置設(shè)計的影響是否重要。
4. 如果配置軟誤碼“無關(guān)緊要”,F(xiàn)PGA繼續(xù)工作,不出現(xiàn)功能錯誤。如果配置軟誤碼非常“緊要”,會影響功能,則置位CRITICAL_ERROR引腳,系統(tǒng)將采取相應(yīng)的措施,例如重新配置FPGA等。
Quartus II設(shè)計軟件針對某一設(shè)計,根據(jù)資源占用和使用的布線情況自動生成含有“緊要/無關(guān)緊要”比特映射文件。這表明在部分設(shè)計上會進一步降低FIT,原因在于沒有使用的資源中出現(xiàn)配置軟誤碼后,不會產(chǎn)生關(guān)鍵誤碼。由于確定“緊要”或者“無關(guān)緊要”引腳的靈敏度處理器參考設(shè)計采用了軟核邏輯,因此,接口信號和控制邏輯同時采用了三模冗余技術(shù),在配置軟誤碼影響FPGA中的某些部分時,能夠繼續(xù)可靠地工作。
可靠性高的系統(tǒng)需要采用這種降低誤碼的高級方法,但更重要的是能夠在插入配置軟誤碼時對系統(tǒng)進行測試。這樣,不需要采用適當(dāng)?shù)碾x子輻射源來測試系統(tǒng)對軟誤碼的反應(yīng)。Stratix III FPGA增強了Stratix II FPGA的誤碼插入功能,用戶可以插入多個單比特誤碼以及多個鄰近兩比特誤碼。硬件已經(jīng)實現(xiàn)后,這一功能特別有用。因此,Stratix III FPGA通過JTAG端口提供這一功能,很容易對運行中的系統(tǒng)進行測試,降低錯誤的發(fā)生。
減小Stratix III用戶RAM軟誤碼
除了配置存儲器校驗之外,Stratix III器件還能夠檢查片內(nèi)存儲器的完整性。Stratix III FPGA提供三種容量的用戶存儲器,在每一字節(jié)中都含有第9存儲位。利用這一額外的存儲位,以及自動產(chǎn)生的誤碼糾正(ECC)電路,640位MLAB和9-Kb M9K模塊都能夠減小SEU。144-Kb M144K模塊也具有這一功能,只是其ECC電路采用了存儲器模塊的硬件邏輯門實現(xiàn)(參見圖3)。
利用ECC,每種片內(nèi)存儲器模塊都可以探測到兩個誤碼,實時自動糾正一個誤碼。MegaWizard插件管理器簡化了對ECC的配置,不需要額外的設(shè)計工作便可以實現(xiàn)這一功能。
ECC的局限在于一個字中出現(xiàn)兩個誤碼的情況,它只能探測到誤碼,但不能糾正。雖然這要比不能發(fā)現(xiàn)誤碼好一些,但是需要系統(tǒng)高層使用其他但是需要系統(tǒng)高層使用其他方法來處理誤碼,例如請求重新發(fā)送受影響的數(shù)據(jù)等。為減輕這種影響,Stratix III FPGA大容量存儲器字中的邏輯比特在物理上分開,減小了字內(nèi)部邏輯多比特誤碼發(fā)生的概率,在多個比特干擾(MBU)出現(xiàn)時,ECC也能夠工作??梢岳肧ignalTap邏輯分析器的系統(tǒng)存儲器內(nèi)容編輯器來測試Altera FPGA用戶存儲器的軟誤碼,通過JTAG連接,由Quartus II軟件修改存儲器內(nèi)容。
當(dāng)Stratix III FPGA采用了外部存儲器時,Altera的存儲器接口IP也為ECC提供支持。控制器的誤碼記錄和中斷管理功能使系統(tǒng)能夠監(jiān)控外部存儲器的軟誤碼。
措施討論
在利用率高、可靠性高、安全性高的系統(tǒng)中,高端FPGA設(shè)計應(yīng)具有很低的軟誤碼率,以及強大的誤碼抑制能力。對可靠性要求高的工程師而言,降低誤碼才能滿足系統(tǒng)的可靠性目標。根據(jù)系統(tǒng)工作環(huán)境和需求,可以采取多種措施來降低誤碼。一般而言,第一步是建立目標,例如MTBF、停機時間或者必須的失效模式等。在很多情況下,比較容易達到可靠性目標。例如,集成了CRC引擎的中等容量Altera FPGA,采用“誤碼重新配置”措施,比較容易達到10-11停機時間,比電信基礎(chǔ)設(shè)施要求的99.999%高6個數(shù)量級。然而,應(yīng)對系統(tǒng)進行全面考慮,特別是材料較多,或者FPGA含有大量復(fù)雜IP的情況。處理器、操作系統(tǒng)以及軟件編程都會對實際系統(tǒng)的可靠性指標有影響,大部分系統(tǒng)設(shè)計人員已經(jīng)意識到這一問題。數(shù)字IC中出現(xiàn)軟誤碼時,也應(yīng)該分析含有易失存儲器的元件。例如,如果有容量較大的DDR SDRAM,它對系統(tǒng)軟誤碼率的影響最大,此時應(yīng)考慮存儲控制內(nèi)部ECC等方法。怎樣劃分系統(tǒng)對可靠性的影響也較大,例如系統(tǒng)大小對內(nèi)核工作的影響非常關(guān)鍵,或者在系統(tǒng)冗余情況下,所采用的冗余粒度(通常粒度越大越好)等。
有多種方法可以處理軟誤碼,包括確保軟誤碼停機時間小于關(guān)鍵參數(shù)等,例如控制系統(tǒng)的閉環(huán)時間常數(shù)。降低系統(tǒng)軟誤碼的其他措施還包括系統(tǒng)運行情況保存、復(fù)位和恢復(fù),在日志中標記軟誤碼,及早復(fù)位系統(tǒng)等。有些方法有一定的危險性,例如配置數(shù)據(jù)的連續(xù)背景刷新(也被稱為清洗)等。關(guān)鍵配置SRAM比特出現(xiàn)軟誤碼后,在以開環(huán)方式進行糾正之前,系統(tǒng)功能在一段時間內(nèi)會不正常。這種情況的危險性在于,F(xiàn)PGA已經(jīng)處理了不正確的數(shù)據(jù),結(jié)果會在系統(tǒng)其他部分擴散。盡管任何FPGA誤碼探測方法中都存在類似的問題,但最好能夠在系統(tǒng)級確認出現(xiàn)軟誤碼,從而標記出不正確的數(shù)據(jù)。設(shè)計FPGA時,Altera重點關(guān)注降低CRAM單元的單位比特軟誤碼率以及降低誤碼的措施,例如關(guān)鍵誤碼探測等,以最小的成本大幅度提高可靠性。Stratix III FPGA的很多特性都有助于達到這些目標。表1對此進行了總結(jié)。在降低片內(nèi)RAM軟誤碼的措施中,原理最清楚、應(yīng)用情況最好的是ECC,它不但保護效果好,而且在芯片面積和性能上的成本最低。對于字寬較寬的情況,存儲器總寬度(數(shù)據(jù)比特和校驗比特)效率更高,帶有8個校驗位的64位數(shù)據(jù)(總共72個比特)是比較容易接受的方案。服務(wù)器和緩存應(yīng)用中都采用了這一比例,Stratix III FPGA中的M144K存儲器模塊也支持這種配置。使用ECC意味著對存儲器進行校驗,并且以系統(tǒng)速率自動糾正錯誤。
對于需要徹底解決軟誤碼的設(shè)計人員而言,ASIC當(dāng)然是最佳方案。Altera的HardCopy結(jié)構(gòu)化ASIC系列實現(xiàn)了從原型FPGA到引腳兼容結(jié)構(gòu)化ASIC的無縫移植,不需要在設(shè)計工具、芯片設(shè)計以及電路板重新設(shè)計上進行大量投入。在FPGA原型對系統(tǒng)(包括PCB)進行全面驗證之前,其他的結(jié)構(gòu)化ASIC不能下單。作為一種結(jié)構(gòu)化ASIC,HardCopy器件沒有SRAM配置單元。硬件設(shè)置對SEU不敏感,因此,器件邏輯功能不受軟誤碼的影響。芯片中唯一容易受影響的部分是用戶存儲器和內(nèi)核寄存器,可以使用ECC糾正用戶存儲器的誤碼。
內(nèi)核寄存器的干擾率非常低。例如,在HardCopy II結(jié)構(gòu)化ASIC中,邏輯寄存器由Hcell構(gòu)成。在Los Alamos WNR的測試中,發(fā)現(xiàn)根本不可能干擾寄存器。其原因在于采用了大量的創(chuàng)新技術(shù),例如提高反饋環(huán)邏輯門的強度,主從級隔離,通過設(shè)置提高節(jié)點電容等。65nm HardCopy III結(jié)構(gòu)化ASIC以Stratix III FPGA為原型,將使用相同的方法,在所有結(jié)構(gòu)化ASIC中,抑制軟誤碼的能力最強。
結(jié)語
Stratix III FPGA在降低SEU上有多種措施,例如從簡單配置軟誤碼探測,到確定關(guān)鍵和“無關(guān)緊要”配置軟誤碼之間的不同等。結(jié)合片內(nèi)和外部存儲器軟誤碼自動糾正功能,采用Stratix III FPGA設(shè)計的系統(tǒng)大大提高了可靠性,使FPGA能夠用于利用率高、可靠性高、安全性高的系統(tǒng)中。
參考文獻
1. Stratix III器件手冊第四章:設(shè)計安全性以及降低單事件干擾(SEU)www.altera.com/literature/hb/stx3/stx3_siii5v1_04.pdf
2.AN 357:利用 Altera FPGA的CRC實現(xiàn)誤碼探測和糾正www.altera.com/literature/an/an357.pdf
評論