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