李仲秋
(長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院,湖南 長(zhǎng)沙 410124)
在數(shù)字邏輯中,不方便采用如同存儲(chǔ)器中使用的編解碼技術(shù)。原因之一是數(shù)據(jù)的位置分散,不方便統(tǒng)一的編碼,如最常用的線性分組碼,被編碼的位數(shù)越多,編碼的效率越高,但如果數(shù)據(jù)分散,不容易進(jìn)行高效率統(tǒng)一編碼,而且使面積和功耗變得難以接受。如果強(qiáng)行提高被編碼的數(shù)據(jù)位數(shù),可能涉及到對(duì)原邏輯電路的改變,至少是對(duì)其布局布線的改變,這就影響原設(shè)計(jì)性能。另一原因是數(shù)據(jù)使用不同步,不方便解碼(和檢錯(cuò)),很可能在某一周期,只需要對(duì)一組寄存器中的某一個(gè)數(shù)據(jù)進(jìn)行使用,(比如,[k+r, k]分組碼,這組k個(gè)寄存器一組被編碼,產(chǎn)生r個(gè)監(jiān)督位),k位中其他的k-1位在這個(gè)周期并無(wú)使用價(jià)值,那么為了使用這一位數(shù)據(jù),需要在這周期中對(duì)全部的k+r位進(jìn)行校驗(yàn)計(jì)算,這樣帶來的硬件性能降低就會(huì)到不可容忍的程度。
1)輸入和輸出的映射關(guān)系不明確
在復(fù)雜的時(shí)序數(shù)字邏輯中,在某一時(shí)刻來看,總輸入和總輸出的映射關(guān)系不明確。數(shù)據(jù)在關(guān)鍵路徑上的傳播所經(jīng)歷的空間跨度和時(shí)間跨度都可能很大,有可能當(dāng)前的輸出,是由之前多個(gè)周期的輸入所決定的。這種不明確,使得檢錯(cuò)需要的信息必須從中間的寄存器節(jié)點(diǎn)中去得到,加大了檢錯(cuò)的成本。
2)邏輯關(guān)系交織
數(shù)據(jù)受到的干擾源不確定,錯(cuò)誤產(chǎn)生后,往下傳播對(duì)后一級(jí)(結(jié)構(gòu)上,邏輯上)電路造成的影響也難以確定。一般需要對(duì)于關(guān)鍵數(shù)據(jù)進(jìn)行保護(hù)(比如狀態(tài)機(jī)的狀態(tài)標(biāo)志,處理器中的指令單元和運(yùn)算單元),但是這樣的保護(hù),顯然是不夠的。例如,有限狀態(tài)機(jī)中的狀態(tài)跳轉(zhuǎn)是由現(xiàn)有的狀態(tài)和輸入信號(hào)共同決定的,如果周圍電路的輸入中有錯(cuò)誤,僅僅保護(hù)了狀態(tài)機(jī)的標(biāo)志位,狀態(tài)機(jī)的跳轉(zhuǎn)還是會(huì)發(fā)生錯(cuò)誤。值得指出的是,有的電路有反饋邏輯,錯(cuò)誤的影響更難以捉摸。
數(shù)字邏輯設(shè)計(jì)可靠性的提高就是電路系統(tǒng)容錯(cuò)能力的提高,各種類型的容錯(cuò)設(shè)計(jì)方法都涉及到一定的冗余,根據(jù)冗余的類型可分為空間冗余、時(shí)間冗余、信息冗余等。
空間冗余(Space Redundancy),主要是硬件多模冗余。 三模冗余(TMR)、二模冗余(DMR),以及它們的改進(jìn)版本,都屬于這個(gè)范疇。
TMR通過對(duì)多路冗余結(jié)果進(jìn)行表決,實(shí)現(xiàn)檢糾錯(cuò)。TMR的改進(jìn)版本幾乎都是各種“局部三模冗余”(partial TMR),這些方法對(duì)電路中的某一部分進(jìn)行TMR,在可接受的容錯(cuò)能力范圍內(nèi)盡量減少面積占用和電路功耗。局部三模冗余的關(guān)鍵,在于如何選取需要冗余涉及的子電路部分,有各種確定子電路是否進(jìn)行冗余的優(yōu)先級(jí)的方法,比如有的以信號(hào)的使用頻率作為選擇的準(zhǔn)繩,使用頻率高的單元優(yōu)先進(jìn)行冗余;有的以電路的邏輯結(jié)構(gòu)特點(diǎn)作為準(zhǔn)繩,將存在反饋的子電路優(yōu)先進(jìn)行冗余(考慮到反饋電路可能造成錯(cuò)誤的累積)。
DMR能夠偵錯(cuò),但不能糾錯(cuò),這是DMR的特點(diǎn),但有些改進(jìn)的DMR,局部融入TMR,能夠一定程度上實(shí)現(xiàn)糾錯(cuò)時(shí)間冗余(Time Redundancy),這種方法的硬件占用相比于空間冗余較小,涉及到對(duì)于相關(guān)信號(hào)在多個(gè)時(shí)間點(diǎn)的采樣[1]。時(shí)間冗余因?yàn)樾枰碌牟蓸訒r(shí)鐘,甚至需要利用傳輸線的延時(shí)特性,所以實(shí)施起來難度較大,一般會(huì)對(duì)性能有負(fù)面影響[2]。
信息冗余(information redundancy)的范疇較為廣泛,凡是涉及到編碼技術(shù)的檢糾錯(cuò)EDC( error detection and correction)技術(shù),都屬于信息冗余[3]。
如果將一個(gè)可靠性設(shè)計(jì)劃分為兩部分,可分為功能部分和檢糾錯(cuò)部分。
“功能部分”是指實(shí)現(xiàn)一個(gè)應(yīng)用本身需要的電路,在沒有SEU/SET情況下,功能部分能正常的完成所需的功能。
“檢糾錯(cuò)部分”是指為了消除異常的翻轉(zhuǎn),而進(jìn)行的容錯(cuò)設(shè)計(jì)部分??梢钥隙ǖ卣f,檢糾錯(cuò)電路的輸入信號(hào)都來自功能部分。
根據(jù)功能部分和檢糾錯(cuò)部分兩者的邏輯關(guān)系(結(jié)構(gòu)關(guān)系),分為侵入方法和非侵入方法[4]。
“非侵入”的加固方法一般是僅對(duì)功能部分的輸入和輸出進(jìn)行并行的數(shù)據(jù)分析,實(shí)現(xiàn)檢糾錯(cuò)的目的。檢錯(cuò)電路不干參與功能部分的關(guān)鍵路徑,因此原有的功能在性能上沒有負(fù)面影響。
“侵入”的方法將檢糾錯(cuò)電路和原電路融合到一起,被加固的電路有時(shí)為了方便加入檢錯(cuò)結(jié)構(gòu),甚至需要重新綜合(re-synthesizing),對(duì)于性能要求高的電路的加固,侵入的方法不適用(如cores, macrocells,handcrafted designs ,legacy designs)。
一般的應(yīng)用場(chǎng)合都要求“在線檢糾錯(cuò)/ 實(shí)時(shí)檢糾錯(cuò)”,所以功能部分的信號(hào)必須實(shí)時(shí)的作為檢糾錯(cuò)部分的輸入,檢糾錯(cuò)電路需要不時(shí)的對(duì)關(guān)心的一些信號(hào)做檢查來確定是否有異常的情況。如此一來,檢錯(cuò)帶來的額外的功耗就不可避免,檢錯(cuò)電路本身成為硬件上的冗余,也不可避免。甚至可以說,沒有硬件和功耗上的冗余,就無(wú)法檢錯(cuò)和糾錯(cuò)。
從總體上看,可靠性的設(shè)計(jì)有兩個(gè)努力的方向,一個(gè)方向是努力減少翻轉(zhuǎn)的產(chǎn)生,另一個(gè)是在翻轉(zhuǎn)發(fā)生后控制它向下一級(jí)電路的傳播,使其不影響最終的功能實(shí)現(xiàn)。
如果將工藝改進(jìn)和電磁兼容設(shè)計(jì)歸為一條路(防錯(cuò)),容錯(cuò)設(shè)計(jì)歸為另一條路(糾錯(cuò)),那么還有一些在獨(dú)立的功能單元內(nèi)部實(shí)施加固,實(shí)現(xiàn)抗干擾的單元,可以稱之為中間路線。
單元可以是指鎖存器、寄存器,也可以是復(fù)雜的加法單元、乘法單元,有的還是PLA邏輯陣列單元。這類容錯(cuò)的方法是介于前面提到的兩個(gè)方向之間,但更接近前者的思路,將已發(fā)生的錯(cuò)誤翻轉(zhuǎn)限制在單元的內(nèi)部,相鄰的單元感覺不到異常的存在。
普通的觸發(fā)器結(jié)構(gòu)如圖1所示,該結(jié)構(gòu)未加固,容易受到外來粒子的干擾產(chǎn)生翻轉(zhuǎn)。改進(jìn)的單元加固型觸發(fā)器結(jié)構(gòu)如圖2所示。
圖2中提出的對(duì)普通的觸發(fā)器單元改進(jìn)的設(shè)計(jì),是一種抗干擾的觸發(fā)器設(shè)計(jì)[5]。這種觸發(fā)器在干擾下會(huì)發(fā)生翻轉(zhuǎn),但這種錯(cuò)誤在觸發(fā)器內(nèi)部通過某些方法被屏蔽掉,其輸出是對(duì)的(至少在下一級(jí)電路的采樣時(shí)刻是對(duì)的)。
時(shí)鐘沿處發(fā)生的翻轉(zhuǎn),默認(rèn)為正常的翻轉(zhuǎn),其他時(shí)刻的翻轉(zhuǎn),被認(rèn)為是異常的翻轉(zhuǎn)。在模擬設(shè)計(jì)中,這種檢測(cè)可以通過電壓,電流的檢測(cè)電路來實(shí)現(xiàn)。
不過這種思路也存在上面提到的問題,如果時(shí)鐘沿處有擾動(dòng),那么將被誤認(rèn)為是一次正常翻轉(zhuǎn)。
圖1 普通的觸發(fā)器結(jié)構(gòu)
圖2 改進(jìn)的單元加固型觸發(fā)器結(jié)構(gòu)
改進(jìn)后的觸發(fā)器,在輸出端(B)加入M4、M5、 M6、M7,檢糾錯(cuò)電路受到粒子撞擊,發(fā)生異常的翻轉(zhuǎn)的時(shí)候,產(chǎn)生M4、M5、 M6、M7的柵極電壓E0、E1。雖然A、B處的邏輯電平發(fā)生了錯(cuò)誤,但是由于M4-M7四個(gè)管子的作用,能使得輸出端維持正確的輸出值。
[1] Michael Nicolaidis.“Time Redundancy Based Soft-Error Tolerance to Rescue Nanometer Technologies”[A]. 17th Proceedings. VLSI Test Symposium[C]. 1999 IEEE. 86-94.
[2] V. Prasanth, Virendra Singh, Rubin A. Parekhji:“Robust detection of soft errors using delayed capture methodology”[A]. 16th International On-Line Testing Symposium[C]. 2010 IEEE. 277-282.
[3] K.Nepal.“Using implications for online error detection”[A]. International test conference[C]. 2008 IEEE.
[4] Avijit.“Combinational logic circuit protection using customized error detecting and correcting codes”[A]. 9th international symposium on quality electronic design[C]. 2008 IEEE.
[5] Xiaoxuan She.“SEU tolerant latch based on error detection”[A]. IEEE transactions on nuclear science[C]. 2012.
長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院學(xué)報(bào)2013年3期