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