- 相關(guān)推薦
利用FPGA實(shí)現(xiàn)模式可變的衛(wèi)星數(shù)據(jù)存儲(chǔ)器糾錯(cuò)系統(tǒng)
摘要:比較討論了航天器數(shù)據(jù)存儲(chǔ)器中漢明碼和TMR兩種典型糾錯(cuò)系統(tǒng)的原理、實(shí)現(xiàn)以及數(shù)據(jù)可靠性的估計(jì),在此基礎(chǔ)上提出了一種集成這兩種系統(tǒng)模式并可在實(shí)際應(yīng)用中根據(jù)需要切換模式的糾錯(cuò)系統(tǒng)設(shè)計(jì)方案,探討了該系統(tǒng)的特點(diǎn)和優(yōu)勢(shì),介紹了利用FPGA實(shí)現(xiàn)該系統(tǒng)的過程和經(jīng)驗(yàn)。關(guān)鍵詞:單粒子翻轉(zhuǎn) 漢明碼 數(shù)據(jù)存儲(chǔ)器 糾錯(cuò)編碼 微小衛(wèi)星
空間飛器在太空環(huán)境中面臨的主要問題之一就是輻射。太空中的各種高能粒子(包括高能質(zhì)子、中子、α粒子、得離子等)具有很高的動(dòng)能,通過時(shí)可能會(huì)影響半導(dǎo)體電路的邏輯狀態(tài),甚至對(duì)半導(dǎo)體材料造成永久損害。單個(gè)高能粒子對(duì)電子器件功能產(chǎn)生的影響稱之為單粒子效應(yīng)。其中,導(dǎo)致存儲(chǔ)內(nèi)容在'0'、'1'之間發(fā)生變化的單粒子翻轉(zhuǎn)(SEU)問題特別受以關(guān)注。
微小衛(wèi)星的研發(fā)思路是周期短、成本低、技術(shù)新,因此大量采用市場(chǎng)上容易取得的商業(yè)級(jí)電子器件。這些器件具有高密度、低功耗、低成本、擴(kuò)展性強(qiáng)等特點(diǎn),但通常沒有經(jīng)過嚴(yán)格的抗輻射測(cè)試,也沒有采用完善的抗輻射工藝。解決微小衛(wèi)星的抗輻射問題需要采取綜合措施,包括整體防護(hù)、設(shè)計(jì)冗余等,而對(duì)具體數(shù)據(jù)存儲(chǔ)器則通常采用編碼、備份等方法利用信息冗余應(yīng)對(duì)SEU現(xiàn)象。與物理存儲(chǔ)器件相配合,實(shí)現(xiàn)上述檢錯(cuò)/糾錯(cuò)功能的電路就是微小衛(wèi)星星載計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)差錯(cuò)檢測(cè)和糾正模塊(Error Detection And Correction,EDAC)。
(范文先生網(wǎng)adivasplayground.com收集整理)
1 漢明碼與TMR方案比較
在微小衛(wèi)星的EDAC模塊設(shè)計(jì)中,經(jīng)常采用編碼(主要是漢明碼)或三倍冗余判決(Triple Modular Redundancy,TMR)的方案。下面分別說明這兩種方案并加以比較。
1.1 線性分組碼
編碼是在數(shù)據(jù)通信和數(shù)據(jù)存儲(chǔ)領(lǐng)域廣泛使用的檢錯(cuò)/糾錯(cuò)方法。
線性分組碼是使用很廣泛的差錯(cuò)控制編碼[1],其信息位和監(jiān)督位的關(guān)聯(lián)由一組線性代數(shù)方程組表示。(n,k)線性分組碼的編碼就是建立由m(m=n-k)個(gè)生成冗余位的方程構(gòu)成的方程組,并由此線性方程組轉(zhuǎn)化為k×n的生成矩陣G。編碼時(shí)將信息位向量(k維)乘以生成矩陣G,即得到碼字向量[Cn-1…C0],見式(1)。
[Cn-1,Cn-2,∧,Cn-k,Cm-1,∧,C0]=[Cn-1,Cn-2,∧,Cn-k] ×Gk×n (1)
將式(1)表示的方程組作移位變換,可以得到由式(2)表示的形式,H稱為監(jiān)督矩陣。解碼時(shí)通過監(jiān)督矩陣H與讀出的碼字向量C的乘積結(jié)果一校驗(yàn)子S來判斷是否出錯(cuò)。當(dāng)讀出的碼字微量C乘上H后得到一個(gè)零向量,表示沒有出錯(cuò);否則表示碼字在存儲(chǔ)之后發(fā)生了變化,即有錯(cuò)誤發(fā)生。
S=Hm×n×[Cn-1, ∧,C0]T (2)
當(dāng)碼字中某位(單一位)發(fā)生錯(cuò)誤時(shí),會(huì)得到唯一的非零校驗(yàn)子S向量,該向量只與碼字出錯(cuò)位置的圖樣有關(guān),而與碼字C無關(guān)。
漢明碼是能糾正單個(gè)錯(cuò)誤的線性分級(jí)。其對(duì)應(yīng)的G矩陣即為漢明碼生成矩陣。這種編碼下,分組編碼總長是2m-1位,信息位長度是2m-m-1位,即(2m-1,2m-m-1)漢明碼。(2m-1,2m-m-1)漢明碼是編碼效率最高的糾單錯(cuò)線性分組碼。但考慮到一般計(jì)算機(jī)存儲(chǔ)系統(tǒng)以字節(jié)為單位,而2m-m-1通常不是8的倍數(shù),所以對(duì)漢明碼加以擴(kuò)展后,可以得到(12,8)、(22,16)等分組編碼方案。這些方案具有一些新的特點(diǎn),例如一種(22,16)方案可以做到糾單錯(cuò)、檢雙錯(cuò),稱作漢明SEC-DED碼[2]。還可以通過優(yōu)選,得到最佳監(jiān)督矩陣H,使得運(yùn)算電路最為簡(jiǎn)單、快速。
1.2 TMR
TMR的原理是將同一份信息保存在三份物理存儲(chǔ)空間中。讀取的時(shí)候比較三份內(nèi)容,如果不完全相同,就取兩個(gè)一致的值為直值。在CPU通過總線向內(nèi)存寫入數(shù)據(jù)(WR有效)時(shí),每一比特?cái)?shù)據(jù)通過三態(tài)門同時(shí)寫到三個(gè)對(duì)應(yīng)的比特存儲(chǔ)單元中。當(dāng)總線向內(nèi)存請(qǐng)求數(shù)據(jù)(RD有效)時(shí),三份同時(shí)存儲(chǔ)的內(nèi)容到達(dá)比較器,比較器邏輯按照前述規(guī)則輸出數(shù)據(jù)內(nèi)容及是否發(fā)生2/3判決的標(biāo)記。根據(jù)總線要求,多路開關(guān)可以將數(shù)據(jù)內(nèi)容或者每3比特比較器的2/3判決標(biāo)記輸出到總線上,后者可供分析研究可靠性時(shí)使用。
1.3 兩種方案的比較
從存儲(chǔ)空間的絕對(duì)大小角度考慮,編碼方案比冗余判決方案要節(jié)省大量的存儲(chǔ)空間。如果采用(22,16)漢明碼,每1MB有效內(nèi)存需要實(shí)際物理內(nèi)存1.375MB。而采用TMR方案則需要3MB實(shí)現(xiàn)物理內(nèi)容。
從系統(tǒng)的糾錯(cuò)可靠性角度考慮,首先假定內(nèi)存的單粒子翻轉(zhuǎn)事件(SEU)所發(fā)生的物理地址[3]和時(shí)間都是均勻分布的。設(shè)每一比特內(nèi)存單元在單位時(shí)間內(nèi)發(fā)生單粒子翻轉(zhuǎn)的概率為σ。則每m比特內(nèi)存結(jié)構(gòu)中v比特發(fā)生SEU的概率為:
采用(22,16)漢明碼方案后,可以糾正每22比特內(nèi)存行單元中的單比特錯(cuò)誤。對(duì)于一行22比特編碼記錄,不發(fā)生SEU以及只有一比特發(fā)生SEU的概率和,即為該行內(nèi)存單元的可靠性。因此,每22比特的行漢明碼內(nèi)存單元可靠性為:
每22比特行單元的有效容量是16位,即2個(gè)字節(jié)。故對(duì)于有效大小為N字節(jié)的漢明碼內(nèi)存系統(tǒng),由N/2個(gè)行單元構(gòu)成。其可靠性為:
而對(duì)于采用TMR的一行3比特的內(nèi)存結(jié)構(gòu),可靠性為:
對(duì)于一個(gè)有效大小為N字節(jié)的TMR內(nèi)存系統(tǒng),由8N個(gè)3比特結(jié)構(gòu)組成,可靠性為:
在實(shí)際航天應(yīng)用中[3],通常10 -9>σ10 10bit-1·s -1。取N=4×10 6(即4兆字節(jié)),表1給出了σ取不同值時(shí)差錯(cuò)率(1-σ)的近似計(jì)算結(jié)果。其中差錯(cuò)率之經(jīng)τ=(1-ρham)/(1-ρTMR)。
表1 實(shí)用參數(shù)下漢明碼與TMR差率的近似比較
計(jì)算結(jié)果表明,在前述參數(shù)范圍內(nèi),漢明碼糾錯(cuò)的差錯(cuò)率約是TMR的5倍。而且,兩種系統(tǒng)的差錯(cuò)率都與σ的平方近似成正比?梢娂词共扇(nèi)存糾錯(cuò),設(shè)法降低σ仍是根據(jù)提高系統(tǒng)可靠性的主要措施。
系統(tǒng)的時(shí)序性能是考慮的另一個(gè)關(guān)鍵因素。尤其是在高達(dá)幾十兆赫的內(nèi)存總線上,編解碼運(yùn)算較為繁瑣的漢明碼方案有著相當(dāng)?shù)木窒扌。而TMR方案只需進(jìn)行簡(jiǎn)單的2/3判決,通常更能勝任苛刻的內(nèi)存訪問時(shí)間要求[4]。
2 可變方案配置
從上述比較可以看出,兩種方案各有優(yōu)勢(shì),適合在不同的環(huán)境條件和數(shù)據(jù)安全需求下應(yīng)用。而星載計(jì)算機(jī)的通用性也要求數(shù)據(jù)存儲(chǔ)器具有一定程度的靈活性。在綜合上述兩種方案的基礎(chǔ),結(jié)合目前飛速發(fā)展的現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA)技術(shù),提供了一種可以根據(jù)需要在線改變配置,分別實(shí)現(xiàn)上述兩種EDAC方法的數(shù)據(jù)存儲(chǔ)器方案。
2.1 可變內(nèi)存配置
前述兩種EDAC方法對(duì)于內(nèi)存的配置是不同的。(22,16)漢明碼一般采用16bit+8bit的內(nèi)存芯片器件實(shí)現(xiàn)。而TMR則采用3×16bit的芯片實(shí)現(xiàn)。若要支持兩種方法,必須為存儲(chǔ)器設(shè)計(jì)一種特別的內(nèi)存配置方式。這是模式可變的基礎(chǔ)和關(guān)鍵。圖1為可變內(nèi)存配置方案。
這個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)是由3個(gè)位于同一條地址總線上的16bit內(nèi)存模塊組成。每個(gè)內(nèi)存模塊還可以單獨(dú)片選其高字節(jié)或低字節(jié)。這樣通過片選信號(hào)ah、al、bh、bl、ch、cl的控制,實(shí)際上有6個(gè)寬度為8bit的內(nèi)存模塊可以單獨(dú)訪問。48bit(3×16bit)的數(shù)據(jù)線全部接入EDAC控制模塊。當(dāng)系統(tǒng)工作在TMR模式時(shí),ah、al、bh、bl、ch、cl被相同的片選信號(hào)驅(qū)動(dòng)。這樣就構(gòu)成了TMR需要的一個(gè)3×16bit冗余內(nèi)存空間。當(dāng)系統(tǒng)工作在漢明碼模式時(shí),ah,al、bh一組,bl、ch、cl一組,分別被相同的片選信號(hào)驅(qū)動(dòng),構(gòu)成了兩個(gè)獨(dú)立的16+8bit存儲(chǔ)空間。對(duì)于(22,16)漢明碼,每一個(gè)空間實(shí)際使用增加一倍。另外,系統(tǒng)還可以工作在無差錯(cuò)控制模式下。這時(shí),ah、al一組,bh、bl一組,ch、cl一組,分別被相同的片選信號(hào)驅(qū)動(dòng),構(gòu)成了三個(gè)獨(dú)立的16bit存儲(chǔ)空間。這種配置下的內(nèi)存地址空間比TMR模式下增加兩倍。在這些配置模式中,片選的地址譯碼都在EDAC控制模式中完成。
2.2 可變糾錯(cuò)方案的系統(tǒng)結(jié)構(gòu)
一個(gè)基于上述內(nèi)存配置方案的模式可變數(shù)據(jù)存儲(chǔ)系統(tǒng)以一個(gè)RAM芯片組作為內(nèi)存載體?勺兗m錯(cuò)方案的系統(tǒng)結(jié)構(gòu)見圖2。除了內(nèi)存模塊外,還應(yīng)該包含以下功能模塊:
(1)TMR讀寫取判決模塊。TMR工作模式下,完成讀取和寫入操作中的冗余判決和數(shù)據(jù)分配邏輯。這個(gè)模塊的具體設(shè)計(jì)已經(jīng)在1.2節(jié)中詳細(xì)介紹了。
(2)漢明碼編碼模塊。漢明碼工作模式下,在向內(nèi)存寫入數(shù)據(jù)時(shí)完成編碼運(yùn)算。
(3)漢明碼糾錯(cuò)模塊。漢明碼工作模式下,在從內(nèi)存讀出數(shù)據(jù)時(shí)完成檢錯(cuò)和糾錯(cuò)運(yùn)算。(2)、(3)這兩個(gè)模塊的算法原理采用了1.1節(jié)中介紹的方案。
(4)地址邏輯模塊和模式控制模塊。配合各種工作模式,控制相應(yīng)的模塊工作信號(hào)和相應(yīng)的內(nèi)存片選信號(hào),完成附加地址譯碼,正確訪問RAM崆,實(shí)現(xiàn)對(duì)物理內(nèi)存的分配管理。
為此,采用FPGA設(shè)計(jì)了EDAC專用芯片,實(shí)現(xiàn)了這些模塊,并與內(nèi)存模塊相連接,組成了完整的糾錯(cuò)模式可變的數(shù)據(jù)存儲(chǔ)系統(tǒng)。在這個(gè)系統(tǒng)中,完成寫入操作時(shí),總線數(shù)據(jù)通過EDAC-FPGA以合適的形式存入RAM芯片組;完成讀出操作時(shí),EDAC-FPGA將RAM芯片組的內(nèi)容讀出并處理(解碼或判決)后放在系統(tǒng)總線上。
2.3 可變方案配置的特點(diǎn)
根據(jù)不同任務(wù)的具體特點(diǎn),衛(wèi)星數(shù)據(jù)處理系統(tǒng)對(duì)于內(nèi)存的數(shù)量和質(zhì)量的要求也有所不同。例如在處理上傳指令和下載星上儀器狀態(tài)時(shí),要求數(shù)據(jù)有很高的可靠性,而對(duì)于內(nèi)存容量則沒有特點(diǎn)的要求;而在處理某些用途的遙測(cè)圖像數(shù)據(jù)時(shí),需要較大的內(nèi)存容量,而對(duì)可靠性的要求則相應(yīng)較低。傳統(tǒng)的內(nèi)存配置在硬件完成后很難更改。如果完全基于軟件糾錯(cuò)也能實(shí)現(xiàn)相當(dāng)程度的靈活性,但軟件糾錯(cuò)帶給CPU的大量運(yùn)算負(fù)荷使得這種靈活性有些得不償失。
可變糾錯(cuò)方案與無糾錯(cuò)機(jī)制的內(nèi)存系統(tǒng)相比,僅僅在硬件上增加了一塊FPGA,對(duì)于軟件則是完全透明的。而且,在星載數(shù)據(jù)處理系統(tǒng)中往往還有其他需要使用FPGA的場(chǎng)合,這塊FPGA的內(nèi)容完全可以通過綜合設(shè)計(jì),整合到其他諸如總線邏輯之類的FPGA之中。
此外,由于在多種配置模式下一部分物理內(nèi)存的內(nèi)容意義是一致的,因此如果輔之以軟件的配合,將關(guān)鍵代碼、數(shù)據(jù)段置于該段內(nèi)存之中,就可以實(shí)現(xiàn)在不重新啟動(dòng)計(jì)算機(jī)系統(tǒng)的前提下更改內(nèi)存糾錯(cuò)方案配置,完成模式切換,保證某些關(guān)鍵任務(wù)不中斷。
總之,基于FPGA實(shí)現(xiàn)的硬件可變配置方案以最小的硬件、軟件代介,提供了最大的內(nèi)存配置靈活性,充分滿足了各種需求,而且節(jié)約了RAM的硬件資源和功耗。
3 硬件實(shí)現(xiàn)
3.1 FPGA的編程與實(shí)現(xiàn)
通過對(duì)目前廣泛使用的FPGA器件的分析和比較,選擇使用了具有較高性價(jià)比的Xilinx Spartan系列FPGA進(jìn)行原型試驗(yàn)。該系列產(chǎn)品還具有3.3V電源供應(yīng)兼容5V I/O、休眠狀態(tài)、更快的邏輯速度等特點(diǎn)。為避免FPGA本身受單粒子翻轉(zhuǎn)效應(yīng)影響,在實(shí)際的航天任務(wù)中,將采用基于熔絲技術(shù)的Actel公司的FPGA產(chǎn)品。
本應(yīng)用具有很強(qiáng)的模塊性,筆者采用了標(biāo)準(zhǔn)VHDL語言描述,結(jié)構(gòu)清晰,同時(shí)為將來的移植提供了方便。模塊的劃分基于圖2的思想,又同時(shí)考慮到VHDL模塊的習(xí)慣要求以及實(shí)踐中可綜合性和方便性。在具體的VHDL實(shí)現(xiàn)過程中,該系統(tǒng)由五種VHDL實(shí)體(entity)模塊組成:
(1)3bitcomp:TMR的比特邏輯單元,實(shí)際比特級(jí)的信息備份和糾錯(cuò)判決;
(2)tmr:TMR功能模塊,包括16個(gè)3bitcomp實(shí)體(對(duì)應(yīng)16位總線);
(3)hamming:漢明碼編碼/糾錯(cuò)功能模塊;
(4)hammeminf:hamming實(shí)體的22位內(nèi)存接口與48位內(nèi)存數(shù)據(jù)線之間的轉(zhuǎn)換接口;
(5)eadc:最高層實(shí)體,包括以上4種實(shí)體和必需的邏輯控制、數(shù)據(jù)接口等。
它們的關(guān)系如圖3所示。
系統(tǒng)使用了Active-HDL軟件進(jìn)行功能仿真,綜合與實(shí)現(xiàn)都使用了Xilinx提供的Foundation系列軟件。在RTL綜合過程中生成的電路圖上注意到,使用VHDL描述雙向三態(tài)門的必須保證所有條件下都指出明確的狀態(tài),否則在RTL綜合后的邏輯電路不能實(shí)現(xiàn)雙向三態(tài)的功能。
3.2 時(shí)序特性
時(shí)序特性是內(nèi)存系統(tǒng)的關(guān)鍵指標(biāo),直接決定著內(nèi)存系統(tǒng)的工作頻率和整個(gè)OBC系統(tǒng)的運(yùn)行速度。由于采用了FPGA器件,對(duì)該內(nèi)存系統(tǒng)的時(shí)序特性分析必須通過FPGA實(shí)現(xiàn)后的時(shí)序仿真來加以研究。在FPGA實(shí)現(xiàn)過程中,通過約束條件來優(yōu)化工具軟件自動(dòng)設(shè)計(jì)生成過程。經(jīng)過反復(fù)優(yōu)化,在Xilinx XCS30XL上實(shí)現(xiàn)后的仿真結(jié)果如圖4所示。可以看出,TMR模式確實(shí)擁有較好的時(shí)序特性,延時(shí)較短。而功能邏輯最為簡(jiǎn)單的無糾錯(cuò)模式由于在實(shí)際中為了優(yōu)化其他模塊做出了延時(shí)上的特殊。
通過上述理論分析、系統(tǒng)設(shè)計(jì)和硬件實(shí)驗(yàn),可以看到:通過FPGA實(shí)現(xiàn)的可變模式衛(wèi)星數(shù)據(jù)存儲(chǔ)器糾錯(cuò)系統(tǒng)具有功能完善、適應(yīng)性強(qiáng)、使用靈活方便、硬件電路簡(jiǎn)單等特點(diǎn)。隨著FPGA技術(shù)的廣泛使用,可以設(shè)計(jì)出功能更強(qiáng)大、使用更方便的專用系統(tǒng),以充分滿足空間飛行器的特殊要求。
【利用FPGA實(shí)現(xiàn)模式可變的衛(wèi)星數(shù)據(jù)存儲(chǔ)器糾錯(cuò)系統(tǒng)】相關(guān)文章:
利用FPGA實(shí)現(xiàn)MMC2107與SDRAM接口設(shè)計(jì)08-06
用FPGA實(shí)現(xiàn)數(shù)據(jù)遠(yuǎn)距離的高精度傳輸08-06
利用ColdFire uClinux實(shí)現(xiàn)數(shù)據(jù)采集和傳輸08-06
利用ASP實(shí)現(xiàn)網(wǎng)上數(shù)據(jù)庫檢索08-06
自適應(yīng)算術(shù)編碼的FPGA實(shí)現(xiàn)08-06
基于數(shù)字移相的高精度脈寬測(cè)量系統(tǒng)及其FPGA實(shí)現(xiàn)08-06
短波擴(kuò)頻通信系統(tǒng)中數(shù)字相關(guān)器的FPGA設(shè)計(jì)與實(shí)現(xiàn)08-06