抗SEU存儲(chǔ)器的設(shè)計(jì)的FPGA實(shí)現(xiàn)
O 引言
本文引用地址:http://m.butianyuan.cn/article/151322.htm隨著我國(guó)航空航天事業(yè)的迅猛發(fā)展,衛(wèi)星的應(yīng)用越來(lái)越廣泛。然而,太空環(huán)境復(fù)雜多變,其中存在著各種宇宙射線與高能帶電粒子,它們對(duì)運(yùn)行于其中的電子器件會(huì)產(chǎn)生各種輻射效應(yīng)。輻射效應(yīng)對(duì)電子器件的影響不可忽視,因?yàn)檩椛鋾?huì)使器件的性能參數(shù)發(fā)生退化,以至失效,從而影響衛(wèi)星的可靠運(yùn)行,縮短衛(wèi)星的使用壽命。輻射效應(yīng)對(duì)電子器件的影響很多,其中最主要的有總劑量效應(yīng)(TID)和單粒子效應(yīng)(S-EE)。SEE按產(chǎn)生的影響主要包括單粒子翻轉(zhuǎn)(SEU)、單粒子閂鎖(SEL)和單粒子燒毀(SEB)等三種類型,其中以SEU最為常見。在各種輻射效應(yīng)當(dāng)中,存儲(chǔ)器對(duì)SEU最為敏感,所以,對(duì)存儲(chǔ)器的抗輻射設(shè)計(jì)首先要考慮的就是抗SEU設(shè)計(jì)。
事實(shí)上,不同的空間環(huán)境和應(yīng)用需求,對(duì)存儲(chǔ)器的數(shù)量與質(zhì)量也有不同的要求。例如:在上傳指令與下載星載儀器儀表的狀態(tài)時(shí),要求數(shù)據(jù)有很高的可靠性,此時(shí)對(duì)內(nèi)存容量則沒(méi)有特別的要求;而在處理某些用途的圖像數(shù)據(jù)時(shí),對(duì)數(shù)據(jù)可靠性的要求則相應(yīng)較低,此時(shí)則需要較大的內(nèi)存容量。所以在采用具體的抗SEU方法時(shí),也要因其不同情況而做出適合的選擇。
本文將采用擴(kuò)展?jié)h明碼編碼(Extended Hamming Code)與三模冗余(Triple Modular Redundancy,TMR)相結(jié)合的方法,并利用二者檢錯(cuò)糾錯(cuò)的不同特點(diǎn),來(lái)對(duì)SRAM進(jìn)行檢錯(cuò)糾錯(cuò)模式可調(diào)的抗SEU設(shè)計(jì)。這樣既可實(shí)現(xiàn)存儲(chǔ)器的抗SEU設(shè)計(jì)。又可滿足對(duì)存儲(chǔ)器使用靈活性的要求。
1 擴(kuò)展?jié)h明碼與TMR檢錯(cuò)糾錯(cuò)原理
1.1 擴(kuò)展?jié)h明碼檢錯(cuò)糾錯(cuò)原理
擴(kuò)展?jié)h明碼是一種常用的能檢測(cè)兩位錯(cuò)同時(shí)能糾正一位錯(cuò)的編碼方法。它是在漢明碼的基礎(chǔ)上.在碼字上再加入一個(gè)對(duì)所有碼元都進(jìn)行校驗(yàn)的校驗(yàn)位而得到的,故稱為擴(kuò)展?jié)h明碼。
擴(kuò)展?jié)h明碼是線性分組碼的一種,其信息位和監(jiān)督位的關(guān)聯(lián)可由一組線性代數(shù)方程組表示。(n,k)線性分組碼的編碼就是去建立由r(其中r=n-k)個(gè)生成冗余位的方程式構(gòu)成的方程組,再由此方程組轉(zhuǎn)化為kxn的生成矩陣G。編碼時(shí),可將信息位向量(k維)乘以生成矩陣G,從而得到碼字向量(n維),如下式所示:
將式(1)表示的方程組作移位變換,可以得到式(2),通常稱H為監(jiān)督矩陣。
解碼時(shí),通過(guò)監(jiān)督矩陣H與讀出的碼字向量C的乘積結(jié)果可判斷該碼字是否出錯(cuò)。若讀出的碼字向量C乘上監(jiān)督矩陣H后得到一個(gè)零向量,則表示沒(méi)有出錯(cuò);否則表示碼字在存儲(chǔ)之后受到了單粒子效應(yīng)的影響,有錯(cuò)誤發(fā)生。通常將監(jiān)督矩陣與讀出的碼字向量C的乘積記作S,稱為校驗(yàn)子。當(dāng)碼字中某一位發(fā)生錯(cuò)誤時(shí),就會(huì)得到唯一的S向量,該向量只與碼字出錯(cuò)的位置有關(guān),而與碼字C無(wú)關(guān)。通過(guò)S向量可以定位出錯(cuò)的位置,并對(duì)出錯(cuò)數(shù)據(jù)進(jìn)行改正。
作為線性分組碼的一種,擴(kuò)展?jié)h明碼的分組編碼總長(zhǎng)為2r位,信息位長(zhǎng)度為2r-1-r位,即(2r,2r-l-r)擴(kuò)展?jié)h明碼。本設(shè)計(jì)采用了16位RAM存儲(chǔ)器,所以對(duì)應(yīng)使用(22,16)擴(kuò)展?jié)h明碼。
1.2 TMR檢錯(cuò)糾錯(cuò)原理
TMR是一種常見的硬件冗余技術(shù)。它的原理是在相同的一組硬件單元上同時(shí)發(fā)生錯(cuò)誤的概率要比在單一硬件單元上發(fā)生錯(cuò)誤的概率小。它的基本方法是將所需容錯(cuò)的硬件單元增加到三倍或更多,并將各個(gè)單元的輸出連接到一個(gè)表決器上,由表決器選擇所有硬件單元中的絕大多數(shù)輸出值作為整體的輸出值。圖1所示為三模冗余系統(tǒng)結(jié)構(gòu)圖。
圖1中,A1、A2、A3三個(gè)模塊同時(shí)執(zhí)行同樣的操作,并將其輸出送給表決器,然后由表決器對(duì)接收到的三路數(shù)據(jù)進(jìn)行比較。如果三個(gè)模塊同時(shí)給出三個(gè)相同的輸出,則表決器輸出任何一路作為正確輸出。如果其中任一模塊出錯(cuò),其輸出不同于其它兩個(gè)模塊,則表決器依然輸出正確結(jié)果。如果有兩個(gè)模塊同時(shí)出錯(cuò),且變成相同的狀態(tài),表決器則會(huì)誤認(rèn)為這是正確的結(jié)果并輸出,不過(guò)這種情況的出現(xiàn)雖然可能,但概率非常小。當(dāng)然,如果這兩個(gè)模塊同時(shí)出錯(cuò),但出錯(cuò)狀態(tài)不同,則表決器此時(shí)將無(wú)法做出選擇,但可以產(chǎn)生中斷。
2 內(nèi)存配置方案
通過(guò)上面對(duì)擴(kuò)展?jié)h明碼與TMR兩種檢錯(cuò)糾錯(cuò)方式的介紹,可以發(fā)現(xiàn)其二者各有優(yōu)勢(shì),分別適用于不同的環(huán)境條件和應(yīng)用需求。但是,這兩種方案對(duì)于內(nèi)存配置的要求是不同的,所以在對(duì)整個(gè)電路的設(shè)計(jì)之前,首先要對(duì)內(nèi)存作如下配置。
本設(shè)計(jì)中使用了3片16bit的SRAM。并分別采用(22,16)漢明碼和TMR兩種檢錯(cuò)糾錯(cuò)方法。對(duì)于(22,16),一般采用(16+8)位的存儲(chǔ)器來(lái)實(shí)現(xiàn),而TMR,則采用16位的存儲(chǔ)器來(lái)實(shí)現(xiàn)。若要支持這兩種方法,則必須首先為存儲(chǔ)器設(shè)計(jì)一種特別的內(nèi)存配置方式。本設(shè)計(jì)采用如圖2所示的內(nèi)存配置方案。
對(duì)于圖2所示的內(nèi)存配置方案,當(dāng)系統(tǒng)工作在TMR模式時(shí),所有的片選信號(hào)都被相同的信號(hào)驅(qū)動(dòng),這樣就構(gòu)成了TMR需要的3個(gè)16位內(nèi)存空間;而當(dāng)系統(tǒng)工作在漢明碼模式時(shí),它們則ah、al、bh為一組,bl、ch、cl為另一組,并分別被相同的片選信號(hào)驅(qū)動(dòng),從而構(gòu)成了兩個(gè)獨(dú)立的(16+8)位的內(nèi)存空間。本設(shè)計(jì)采用了3片128 K×16bit的SRAM,如果設(shè)置每片SRAM的低4K×16bit空間工作在TMR模式,則從圖中可以看出,該SRAM芯片組中還有兩個(gè)124 K×(16+8) bit的空間可以工作于擴(kuò)展?jié)h明碼模式。
3 電路設(shè)計(jì)
基于上述內(nèi)存配置方案,本文設(shè)計(jì)了如圖3所示的抗SEU存儲(chǔ)器電路。該電路包含了4個(gè)功能模塊。
評(píng)論