高可靠性微控制器設(shè)計研究
2.2 糾錯檢錯(EDAC)
2.2.1 EDAC概述
EDAC可以用來檢測電子設(shè)備中由SEU引起的存儲為翻轉(zhuǎn)錯誤。EDAC的基本結(jié)構(gòu)包括3個部分:編碼模塊,解碼模塊,存儲模塊。其中EDAC 編碼模塊將需要處理的數(shù)據(jù)進(jìn)行相關(guān)算法的編碼,產(chǎn)生校驗碼,與待處理數(shù)據(jù)一同存入存儲模塊。數(shù)據(jù)需要讀出的時候,EDAC解碼模塊將數(shù)據(jù)與相應(yīng)校驗碼進(jìn)行解碼處理,得出正確結(jié)構(gòu)。編碼與解碼所采用的編碼方式可以根據(jù)需要選擇,如漢明碼,最佳奇權(quán)碼,藤原英二碼等等。
2.2.2 漢明碼介紹
下面以擴(kuò)展?jié)h明碼為例說明編碼糾錯檢錯的原理。 擴(kuò)展?jié)h明碼(Extended Hamming Code)在存儲系統(tǒng)的糾錯檢錯中得到了廣泛應(yīng)用。他的最小碼距是4,對于數(shù)據(jù)位數(shù) k,校驗位數(shù) r,他們之間的關(guān)系需滿足 2r-1 ≥ k+r。如果數(shù)據(jù)位 k增加一倍,校驗位 r也只需要增加1位,所以它具有相當(dāng)高的編碼效率。 8位數(shù)據(jù)經(jīng)過4位編碼后的數(shù)據(jù)結(jié)構(gòu)如下:
C= [D7D6D5D4D3D2D1D0C3C2C1C0]其中 D7~D0是數(shù)據(jù)位,C3~C0是校驗位:
C3= D7 D6 D5 D4 ; C2= D7 D3 D2 D1; C1= D6 D5 D3 D2 D0 ; C0= D6 D4 D3 D1 D0
解碼時需計算存儲數(shù)據(jù)的伴隨向量 S: S3= C3 CB3;S2= C2 CB2 ;S1= C1CB1;S0= C0 CB0 其中 CB0,CB1,CB2,CB3為 8位數(shù)據(jù)在解碼時刻的校驗位。根據(jù)算得的伴隨向量 S我們就可以判斷數(shù)據(jù)位是否發(fā)生錯誤及錯誤發(fā)生的位置。
2.3 兩種糾錯方法的比較
TMR與 EDAC都屬于硬件冗余,對于不同字長的存儲器,他們所占用的面積開銷和時間開銷是不同的。TMR所占用的面積開銷包括冗余的2個目標(biāo)器件以及判決器及附屬電路邏輯,EDAC所增加的面積開銷則包括了增加的校驗位,編碼器,解碼器及附屬邏輯 1。根據(jù)以上分析我們可以得出結(jié)論,對于保護(hù)寄存器,寄存器組等容量較小的存儲器件,TMR有實現(xiàn)簡單,增加面積較少的有點。而對于大容量的存儲器,則應(yīng)當(dāng)采用 EDAC來進(jìn)行糾錯檢錯。
3高可靠性 8051具體方案設(shè)計及實現(xiàn)通過對 SEU的機(jī)理分析及 mc8051結(jié)構(gòu)分析可以得出,容易受到粒子輻射的關(guān)鍵部位有
3:特殊寄存器(Special Function Register ,SFR),內(nèi)部 ram,外部 ram。本論文就上述三個模塊對 mc8051IP核進(jìn)行了該進(jìn)。
3.1特殊寄存器(SFR)
mc8051IP核的特殊寄存器(SFR)均在 control_mem文件中實現(xiàn)。該模塊實現(xiàn) 8051譯碼功能。SFR字節(jié)地址范圍是80H-FFH,他們在 RAM中并不是完全連續(xù)的,21個 SFR離散的分布在上述字節(jié)區(qū)域的128個字節(jié)單元中。在mc8051IP核中并沒用將這些SFR設(shè)計在內(nèi)部 ram中,而是對應(yīng)地址分別實現(xiàn)的。對 SFR的加固處理是采用了 TMR技術(shù)。具體實現(xiàn)步驟如下:
綜合后結(jié)果截取如下圖:
評論