《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 利用FPGA實現(xiàn)模式可變的衛(wèi)星數(shù)據(jù)存儲器糾錯系統(tǒng)

利用FPGA實現(xiàn)模式可變的衛(wèi)星數(shù)據(jù)存儲器糾錯系統(tǒng)

2008-12-24
作者:蔣 洵 熊劍平 尤 政

??? 摘? 要: 比較討論了航天器數(shù)據(jù)存儲器" title="數(shù)據(jù)存儲器">數(shù)據(jù)存儲器中漢明碼" title="漢明碼">漢明碼和TMR兩種典型糾錯系統(tǒng)的原理、實現(xiàn)以及數(shù)據(jù)可靠性的估計,在此基礎上提出了一種集成這兩種系統(tǒng)模式并可在實際應用中根據(jù)需要切換模式的糾錯系統(tǒng)設計方案,探討了該系統(tǒng)的特點和優(yōu)勢,介紹了利用FPGA實現(xiàn)該系統(tǒng)的過程和經(jīng)驗。?

??? 關鍵詞: 單粒子翻轉? 漢明碼? 數(shù)據(jù)存儲器? 糾錯編碼? 微小衛(wèi)星

?

??? 空間飛行器在太空環(huán)境中面臨的主要問題之一就是輻射。太空中的各種高能粒子(包括高能質子、中子、α粒子、重離子等)具有很高的動能,通過時可能會影響半導體電路的邏輯狀態(tài),甚至對半導體材料造成永久損害。單個高能粒子對電子器件功能產(chǎn)生的影響稱之為單粒子效應。其中,導致存儲內(nèi)容在‘0’、‘1’之間發(fā)生變化的單粒子翻轉(SEU)問題特別受到關注。?

??? 微小衛(wèi)星" title="微小衛(wèi)星">微小衛(wèi)星的研發(fā)思路是周期短、成本低、技術新,因此大量采用市場上容易取得的商業(yè)級電子器件。這些器件具有高密度、低功耗、低成本、擴展性強等特點,但通常沒有經(jīng)過嚴格的抗輻射測試,也沒有采用完善的抗輻射工藝。解決微小衛(wèi)星的抗輻射問題需要采取綜合措施,包括整體防護、設計冗余等,而對具體數(shù)據(jù)存儲器則通常采用編碼、備份等方法利用信息冗余來應對SEU現(xiàn)象。與物理存儲器件相配合,實現(xiàn)上述檢錯/糾錯功能的電路就是微小衛(wèi)星星載計算機系統(tǒng)的數(shù)據(jù)差錯檢測和糾正模塊(Error Detection And Correction, EDAC)。?

1 漢明碼與TMR方案比較?

??? 在微小衛(wèi)星的EDAC模塊設計中,經(jīng)常采用編碼(主要是漢明碼)或三倍冗余判決(Triple Modular Redundancy, TMR) 的方案。下面分別說明這兩種方案并加以比較。?

1.1 線性分組碼?

??? 編碼是在數(shù)據(jù)通信和數(shù)據(jù)存儲領域廣泛使用的檢錯/糾錯方法。?

??? 線性分組碼是使用很廣泛的差錯控制編碼[1],其信息位和監(jiān)督位的關聯(lián)由一組線性代數(shù)方程組表示。(n,k)線性分組碼的編碼就是建立由m(m=n-k)個生成冗余位的方程式構成的方程組,并由此線性方程組轉化為k×n的生成矩陣G。編碼時將信息位向量(k維)乘以生成矩陣G,即得到碼字向量[Cn-1…C0],見式(1)。?

???

??? 將式(1)表示的方程組作移位變換,可以得到由式(2)表示的形式,H稱為監(jiān)督矩陣。解碼時通過監(jiān)督矩陣H與讀出的碼字向量C的乘積結果—校驗子S來判斷是否出錯。當讀出的碼字向量C乘上H后得到一個零向量,表示沒有出錯;否則表示碼字在存儲之后發(fā)生了變化,即有錯誤發(fā)生。?

?????

??? 當碼字中某位(單一位)發(fā)生錯誤時,會得到唯一的非零校驗子S向量,該向量只與碼字出錯位置的圖樣有關,而與碼字C無關。?

??? 漢明碼是能糾正單個錯誤的線性分組碼。其對應的G矩陣即為漢明碼生成矩陣。這種編碼下,分組編碼總長是2m-1位,信息位長度是2m-m-1位,即(2m-1,2m-m-1)漢明碼。(2m-1,2m-m-1)漢明碼是編碼效率最高的糾單錯線性分組碼。但考慮到一般計算機存儲系統(tǒng)以字節(jié)為單位,而2m-m-1通常不是8的倍數(shù),所以對漢明碼加以擴展后,可以得到(12,8)、(22,16)等分組編碼方案。這些方案具有一些新的特點,例如一種(22,16)方案可以做到糾單錯、檢雙錯,稱作漢明SEC-DED碼[2]。還可以通過優(yōu)選,得到最佳監(jiān)督矩陣H,使得運算電路最為簡單、快速。?

1.2 TMR?

??? TMR的原理是將同一份信息保存在三份物理存儲空間中。讀取的時候比較三份內(nèi)容,如果不完全相同,就取兩個一致的值為真值。在CPU通過總線向內(nèi)存寫入數(shù)據(jù) (WR有效) 時,每一比特數(shù)據(jù)通過三態(tài)門同時寫到三個對應的比特存儲單元中。當總線向內(nèi)存請求數(shù)據(jù) (RD有效) 時,三份同時存儲的內(nèi)容到達比較器,比較器邏輯按照前述規(guī)則輸出數(shù)據(jù)內(nèi)容及是否發(fā)生2/3判決的標記。根據(jù)總線要求,多路開關可以將數(shù)據(jù)內(nèi)容或者每3比特比較器的2/3判決標記輸出到總線上,后者可供分析研究可靠性時使用。?

1.3 兩種方案的比較?

??? 從存儲空間的絕對大小角度考慮,編碼方案比冗余判決方案要節(jié)省大量的存儲空間。如果采用(22,16)漢明碼,每1MB有效內(nèi)存需要實際物理內(nèi)存1.375MB。而采用TMR方案則需要3MB實際物理內(nèi)存。?

??? 從系統(tǒng)的糾錯可靠性角度考慮,首先假定內(nèi)存的單粒子翻轉事件(SEU)所發(fā)生的物理地址[3]和時間都是均勻分布的。設每一比特內(nèi)存單元在單位時間內(nèi)發(fā)生單粒子翻轉的概率為σ。則每m比特內(nèi)存結構中v比特發(fā)生SEU的概率為:?

?????

??? 采用(22,16)漢明碼方案后,可以糾正每22比特內(nèi)存行單元中的單比特錯誤。對于一行22比特編碼記錄,不發(fā)生SEU以及只有一比特發(fā)生SEU的概率和,即為該行內(nèi)存單元的可靠性。因此,每22比特的行漢明碼內(nèi)存單元可靠性為:?

?????

??? 每22比特行單元的有效容量是16位,即2個字節(jié)。故對于有效大小為N字節(jié)的漢明碼內(nèi)存系統(tǒng),由N/2個行單元構成。其可靠性為:?

?????

??? 而對于采用TMR的一行3比特的內(nèi)存結構,可靠性為:?

?????

??? 對于一個有效大小為N字節(jié)的TMR內(nèi)存系統(tǒng),由8N個3比特結構組成,可靠性為:?

???????????????????????

??? 在實際航天應用中[3],通常10-9>σ>1010bit-1·s-1。取N=4×106(即4兆字節(jié)),表1給出了σ取不同值時差錯率(1-ρ)的近似計算結果。

?

?

??? 計算結果表明,在前述參數(shù)范圍內(nèi),漢明碼糾錯的差錯率約是TMR的5倍。而且,兩種系統(tǒng)的差錯率都與σ的平方近似成正比。可見即使采取內(nèi)存糾錯,設法降低σ仍是提高系統(tǒng)可靠性的主要措施。?

??? 系統(tǒng)的時序性能是考慮的另一個關鍵因素。尤其是在高達幾十兆赫的內(nèi)存總線上,編解碼運算較為繁瑣的漢明碼方案有著相當?shù)木窒扌?。而TMR方案只需進行簡單的2/3判決,通常更能勝任苛刻的內(nèi)存訪問時間要求[4]。?

2 可變方案配置?

??? 從上述比較可以看出,兩種方案各有優(yōu)勢,適合在不同的環(huán)境條件和數(shù)據(jù)安全需求下應用。而星載計算機的通用性也要求數(shù)據(jù)存儲器具有一定程度的靈活性。在綜合上述兩種方案的基礎上,結合目前飛速發(fā)展的現(xiàn)場可編程邏輯門陣列(FPGA)技術,提出了一種可以根據(jù)需要在線改變配置,分別實現(xiàn)上述兩種EDAC方法的數(shù)據(jù)存儲器方案。?

2.1 可變內(nèi)存配置?

??? 前述兩種EDAC方法對于內(nèi)存的配置是不同的。(22,16)漢明碼一般采用16bit" title="16bit">16bit+8bit的內(nèi)存芯片器件實現(xiàn)。而TMR則采用3×16bit的芯片實現(xiàn)。若要支持兩種方法,必須為存儲器設計一種特別的內(nèi)存配置方式。這是模式可變的基礎和關鍵。圖1為可變內(nèi)存配置方案。?

?

?

??? 這個數(shù)據(jù)存儲系統(tǒng)是由3個位于同一條地址總線上的16 bit內(nèi)存模塊" title="內(nèi)存模塊">內(nèi)存模塊組成。每個內(nèi)存模塊還可以單獨片選其高字節(jié)或低字節(jié)。這樣通過片選信號ah、al、bh、bl、ch、cl的控制,實際上有6個寬度為8bit的內(nèi)存模塊可以單獨訪問。48bit(3×16bit)的數(shù)據(jù)線全部接入EDAC控制模塊。當系統(tǒng)工作在TMR模式時,ah、al、bh、bl、ch、cl被相同的片選信號驅動。這樣就構成了TMR需要的一個3×16bit冗余內(nèi)存空間。當系統(tǒng)工作在漢明碼模式時,ah,al、bh一組,bl、ch、cl一組,分別被相同的片選信號驅動,構成了兩個獨立的16+8bit存儲空間。對于(22,16)漢明碼,每一個空間實際使用16+6bit。在這種配置下,地址空間比TMR模式下增加一倍。另外,系統(tǒng)還可以工作在無差錯控制模式下。這時,ah、al一組,bh、bl一組,ch、cl一組,分別被相同的片選信號驅動,構成了三個獨立的16bit 存儲空間。這種配置下的內(nèi)存地址空間比TMR模式下增加兩倍。在這些配置模式中,片選的地址譯碼都在EDAC控制模塊中完成。?

2.2 可變糾錯方案的系統(tǒng)結構?

??? 一個基于上述內(nèi)存配置方案的模式可變數(shù)據(jù)存儲系統(tǒng)以一個RAM芯片組作為內(nèi)存載體。可變糾錯方案的系統(tǒng)結構見圖2。除了內(nèi)存模塊外,還應該包含以下功能模塊:?

?

?

??? (1)TMR讀寫取判決模塊。TMR工作模式下,完成讀取和寫入操作中的冗余判決和數(shù)據(jù)分配邏輯。這個模塊的具體設計已經(jīng)在1.2節(jié)中詳細介紹了。?

??? (2)漢明碼編碼模塊。漢明碼工作模式下,在向內(nèi)存寫入數(shù)據(jù)時完成編碼運算。?

??? (3)漢明碼糾錯模塊。漢明碼工作模式下,在從內(nèi)存讀出數(shù)據(jù)時完成檢錯和糾錯運算。(2)、(3)這兩個模塊的算法原理采用了1.1節(jié)中介紹的方案。?

??? (4)地址邏輯模塊和模式控制模塊。配合各種工作模式,控制相應的模塊工作信號和相應的內(nèi)存片選信號,完成附加地址譯碼,正確訪問RAM內(nèi)容,實現(xiàn)對物理內(nèi)存的分配管理。?

??? 為此,采用FPGA設計了EDAC專用芯片,實現(xiàn)了這些模塊,并與內(nèi)存模塊相連接,組成了完整的糾錯模式可變的數(shù)據(jù)存儲系統(tǒng)。在這個系統(tǒng)中,完成寫入操作時,總線數(shù)據(jù)通過EDAC-FPGA以合適的形式存入RAM芯片組;完成讀出操作時,EDAC-FPGA將RAM芯片組的內(nèi)容讀出并處理(解碼或判決)后放在系統(tǒng)總線上。?

2.3 可變方案配置的特點?

??? 根據(jù)不同任務的具體特點,衛(wèi)星數(shù)據(jù)處理系統(tǒng)對于內(nèi)存的數(shù)量和質量的要求也有所不同。例如在處理上傳指令和下載星上儀器狀態(tài)時,要求數(shù)據(jù)有很高的可靠性,而對于內(nèi)存容量則沒有特別的要求;而在處理某些用途的遙測圖像數(shù)據(jù)時,需要較大的內(nèi)存容量,而對可靠性的要求則相應較低。傳統(tǒng)的內(nèi)存配置在硬件完成后很難更改。如果完全基于軟件糾錯也能實現(xiàn)相當程度的靈活性,但軟件糾錯帶給CPU的大量運算負荷使得這種靈活性有些得不償失。?

??? 可變糾錯方案與無糾錯機制的內(nèi)存系統(tǒng)相比,僅僅在硬件上增加了一塊FPGA,對于軟件則是完全透明的。而且,在星載數(shù)據(jù)處理系統(tǒng)中往往還有其他需要使用FPGA的場合,這塊FPGA的內(nèi)容完全可以通過綜合設計,整合到其他諸如總線邏輯之類的FPGA之中。?

??? 此外,由于在多種配置模式下一部分物理內(nèi)存的內(nèi)容意義是一致的,因此如果輔之以軟件的配合,將關鍵代碼、數(shù)據(jù)段置于該段內(nèi)存之中,就可以實現(xiàn)在不重新啟動計算機系統(tǒng)的前提下更改內(nèi)存糾錯方案配置,完成模式切換,保證某些關鍵任務不中斷。?

??? 總之,基于FPGA實現(xiàn)的硬件可變配置方案以最小的硬件、軟件代價,提供了最大的內(nèi)存配置靈活性,充分滿足了各種需求,而且節(jié)約了RAM的硬件資源和功耗。?

3 硬件實現(xiàn)?

3.1 FPGA的編程與實現(xiàn)?

??? 通過對目前廣泛使用的FPGA器件的分析和比較,選擇使用了具有較高性價比的Xilinx Spartan系列FPGA進行原型試驗。該系列產(chǎn)品還具有3.3V電源供應兼容5V I/O、休眠狀態(tài)、更快的邏輯速度等特點。為避免FPGA本身受單粒子翻轉效應影響,在實際的航天任務中,將采用基于熔絲技術的Actel公司的FPGA產(chǎn)品。?

??? 本應用具有很強的模塊性,筆者采用了標準VHDL語言描述,結構清晰,同時為將來的移植提供了方便。模塊的劃分基于圖2的思想,又同時考慮到VHDL模塊的習慣要求以及實踐中的可綜合性和方便性。在具體的VHDL實現(xiàn)過程中,該系統(tǒng)由五種VHDL實體(entity)模塊組成:?

??? (1)3bitcomp:TMR的比特邏輯單元,實現(xiàn)比特級的信息備份和糾錯判決;?

??? (2)tmr:TMR功能模塊,包括16個3bitcomp實體(對應16位總線);?

??? (3)hamming:漢明碼編碼/糾錯功能模塊;?

??? (4)hammeminf:hamming實體的22位內(nèi)存接口與48位內(nèi)存數(shù)據(jù)線之間的轉換接口;?

??? (5)eadc:最高層實體,包括以上4種實體和必需的邏輯控制、數(shù)據(jù)接口等。?

??? 它們的關系如圖3所示。?

?

?

??? 系統(tǒng)使用了Active-HDL軟件進行功能仿真,綜合與實現(xiàn)都使用了Xilinx提供的Foundation系列軟件。在RTL綜合過程中生成的電路圖上注意到,使用VHDL描述雙向三態(tài)門時必須保證所有條件下都指出明確的狀態(tài),否則在RTL綜合后的邏輯電路不能實現(xiàn)雙向三態(tài)的功能。?

3.2 時序特性?

??? 時序特性是內(nèi)存系統(tǒng)的關鍵指標,直接決定著內(nèi)存系統(tǒng)的工作頻率和整個OBC系統(tǒng)的運行速度。由于采用了FPGA器件,對該內(nèi)存系統(tǒng)的時序特性分析必須通過FPGA實現(xiàn)后的時序仿真來加以研究。在FPGA實現(xiàn)過程中,通過約束條件來優(yōu)化工具軟件的自動設計生成過程。經(jīng)過反復優(yōu)化,在Xilinx XCS30XL上實現(xiàn)后的仿真結果如圖4所示。可以看出,TMR模式確實擁有較好的時序特性,延時較短。而功能邏輯最為簡單的無糾錯模式由于在實現(xiàn)過程中為了優(yōu)化其他模塊做出了延時上的犧牲。?

?

?

??? 通過上述理論分析、系統(tǒng)設計和硬件實驗,可以看到:通過FPGA實現(xiàn)的可變模式衛(wèi)星數(shù)據(jù)存儲器糾錯系統(tǒng)具有功能完善、適應性強、使用靈活方便、硬件電路簡單等特點。隨著FPGA技術的廣泛使用,可以設計出功能更強大、使用更方便的專用系統(tǒng),以充分滿足空間飛行器的特殊要求。?

參考文獻?

1 熊劍平,賈惠波,尤政.微小衛(wèi)星數(shù)據(jù)存儲器單粒子作用的檢測及糾錯.中國空間科學技術,2000;6?

2 歸紹生.糾錯編碼技術和應用.上海:上海交通大學出版社,1988?

3 隋厚堂.幾種256KbitSRAM芯片的單粒子翻轉規(guī)律.中國空間科學技術,1999;1?

4 Chuck Green, Peter Gülzow, Lyle Johnson, Karl Meinzer, James Miller. The Experimental IHU-2 Aboard P3D. Proc. 16th AMSAT Space Symposium, 1998.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。