太空中存在大量的宇宙射線和高能帶電粒子,它們對星載電子系統的照射會導致系統出錯,甚至永久損壞。其所造成的輻射效應主要有位移損傷效應、電離輻射總劑量效應、瞬時電離輻射效應、單粒子效應等。而且由于器件集成度高,每個記憶單元的尺寸小,引起翻轉所需的臨界電荷也小,所以SEU的問題在空間器件上越來越嚴重。
現場可編程門陣列(FPGA,Field Programmable Gate Array)靈活、可重構的特性,對于克服器件設計錯誤和后天所導致的故障有效。基于可動態可重構FPGA,動態容錯技術在理論上已得到發展,并出現了多種方法,其基本原理都是將備用的配置文件重新裝載到FPGA上,以消除原有的暫態錯誤或者繞過故障區。
但在實際應用過程中涉及到許多問題。容錯粒度的大小選擇,是其中較突出的一個,這會影響到重構文件的大小、動態容錯時隙的長短、資源利用率、實現的復雜度等方面。另外模塊間通信方式、檢錯與定位的實現、冗余資源的比例與布局、暫態與永久錯誤的處理與分析都是有待深入研究的問題,很多方法過于復雜不容易實現或者過于簡單而容錯性能得不到保障,并且對以上這些問題分析不充分。
本文基于多種具體的實現方法,對這些問題進行了全面的分析與研究,并權衡各個方面,提出了基于算法和資源多級分塊的方法,對其性能進行了分析。
這種方法中粒度、冗余資源比例等多項參數可以選擇,重構時沒有模塊間布線的要求,能有效保障系統工作頻率。
1 基于動態可重構FPGA的幾種容錯技術
1.1 基于Retiming理論的方法及分析
重定時(Retimg)技術的應用是建立在容錯粒度較小的基礎上的一種容錯方法。它最初是針對靜態電路以優化系統時鐘為目的,且在整個電路設計過程中只使用一次?,F在通過在FPGA中多次使用,改變觸發器的位置以及增減觸發器的數量可以達到重構的目的,并保證整個系統的功能穩定以及工作時序的協調。使用這種方法時,先根據約束條件生成一個Retiming矩陣,這個矩陣決定了觸發器(FF)可能的各種布局。當電路出現故障時,通過調用矩陣的信息重新定位不同的FF以使電路恢復正常。
這種方法主要的特點就是不改變系統的功能而改變系統的結構特性,重構策略簡單。如果結合可進化算法,處理器可以實時地計算得到有效的FF的重新布局?;赗etiming的實時重構可以有效地降低暫態故障的影響,尤其是SEU。同時這種方法配置文件量比較小,粒度水平高,重構過程系統開銷小。
但是由于這種方法對電路的重構能力有限,所以容錯能力得到一定的限制,尤其對于永久故障則容錯率較低。其次,當完成FF的重新配置后,電路需要一個初始化時間,這個時間隨著電路規模的增大而增大,當電路的規模和復雜度增大時這種方式的重構將導致較大的系統開銷,這樣電路規模受到限制并且對接口布線要求較高。圖1所示給出了以相關器為例的兩種可能的重構結構,其中小方塊為FF。
1.2 基于STARs的方法及分析
基于移動自檢測區域(STARs)的動態容錯技術,是一種基于FPGA的具有多種容錯級別的在線容錯技術。它不僅可以進行邏輯工作區域的容錯,也可以進行布線區域的容錯。
基于STARs的方法,FPGA被劃分為系統工作區和檢測區,在檢測區中進行內建自測試。若當前的被檢測區完成被檢測后STAR和相鄰工作區的Slice交換位置,這樣依次進行,最終STAR可以覆蓋整個FPGA。其優勢是,檢測診斷總是在STAR中進行,不影響系統的工作,可以有充足的時間來進行精確的診斷和生成針對故障區的配置文件,并實現冗余。
這種方法采用了動態系統時鐘的概念。系統初始工作在最大時鐘頻率下,當部分重構使得某些部分的延時增加,那么根據布線的時序分析結果,通過周期可編程的時鐘產生器降低時鐘頻率,以滿足系統工作要求。這克服了一般容錯方法中系統在整個壽命期工作在較低時鐘頻率下的缺點。
基于STARs的方法主要是針對永久性錯誤,包括配置存儲器中的錯誤。STARs提供了一個相對于持續運行的工作區的離線區域。通過FPGA的邊界檢測接口可以使STAR中測試文件的配置動態進行而不影響系統工作。由于STARs的存在,工作區或者是連續的,或者是被STARs分割成不相連的區域,系統可以分別使用水平布線和垂直布線穿過V-STAR和H-STAR以實現通信。
這種方法采用了可編程邏輯塊(PLB)重用技術。PLB重用是指以一種沒有出錯的模式來使用出錯的PLB,即對在出故障的PLB中實現的功能來說這個PLB是沒有出故障的。這有兩種情況,一是故障PLB中的損壞部分并沒有參與實現這個PLB內的功能單元,此時無需進行重新配置。第二種情況的一個簡單例子是,當一個LUT的某個存儲單元由于出錯而固定置為0,且這個LUT用來實現一個組合邏輯,而此組合邏輯的這個存儲單元恰要求被設置為0,那么這個錯誤就不需要進行冗余。由于PLBs的重用,冗余資源的利用率得到提高,容錯量增大,系統壽命得到延長。另外這還使得損壞的PLB利用較遠距離的冗余資源來重構而避開故障區的情況減少,所以,隨著故障區增多,系統的時鐘頻率不會明顯降低。
當STAR位置改變時,系統時鐘必須停止以使STAR完成移動。系統時鐘停止時,系統的工作狀態必須被存儲,并在系統時鐘重新啟動前被復制到新的工作區域。從STAR離開當前這個區域到下一次再檢測這個區域的時間內,工作區電路可能出錯,這個時間稱為最壞的錯誤駐留時間。雖然基于STARs的方法,檢測、診斷以及重構過程在理論上可以不影響系統工作,然而這也是它的缺點,不能對隨時出現的錯誤進行容錯。因此,必須考慮最壞的錯誤駐留時間,應該提高檢測速度,而檢測速度的提高會使STARs的移動速度提高。這導致檢測區和工作區的交換頻率增加,進而影響系統工作的連續性。
1.3 基于遺傳算法及設計空間搜索的容錯方法與分析
在重構容錯的過程中,由于技術的多樣性,同時會有多種可行的方案,而這很難通過人工來分析比較得到最優的解決方法。同時設計好的系統中必須有足夠的存儲量來存儲針對不同故障的重構文件。因此文獻提出了基于遺傳算法的空間搜索技術。
首先用硬件設計語言描述系統功能,當設計完成后,對其實現功能進行分析并產生一個向量圖,節點表示功能單元,有向線段代表他們之間的鏈接。同時,對源文件進行綜合來識別其資源使用量(包括Slice數量,塊RAN數量等)和各個功能單元的特征,最終形成一個功能單元庫。這個庫里面也包含一些標準器件和一些基本單元。另外在設計過程中還需要生成以下3個庫:
器件特征庫:存儲對FPGA特征的描述,包括可用資源容量,基本重構單元大小,重構區域形狀約束。
技術庫:包含了部分重構技術的模型。
參數庫:包含一些指導重構過程并衡量重構效果的參數。
系統工作時,先將原功能模塊分成不同的組。然后根據參數要求在每一組內使用在技術庫里選擇的方法。遺傳算法用來產生不同的可行的染色體,而染色體代表不同的處理方法。這種算法與TMR結合的例子如圖4所示。
基于遺傳算法的設計空間搜索方法需要設計者在前期作出大量工作,例如,遺傳算法的設計,約束條件以及各庫的形成。其中遺傳算法的設計和參數設定是關鍵,同時系統需要較強的計算能力,系統開銷較大。不過其所需配置文件存儲量較小,解決方法多樣,能產生出最優的解決方案。而且基于硬件遺傳算法具有廣闊的應用前景。
2 基于算法和資源多級分塊的容錯結構
2.1 方法的提出
動態容錯粒度的選取是一個關鍵問題,如果粒度過小,則對錯誤的檢測定位能力要求較高,而且配置文件復雜,如果在線生成配置文件,則需要較強的系統計算能力,這顯然會增大系統的開銷,破壞系統的連續性,而且布線復雜。如果粒度過大,那么冗余資源的利用率降低,配置文件增大,這削弱了系統的容錯能力,且需要較大的存儲資源。另外,對冗余資源比例的選擇必須要考慮到系統布線難度,而布線所造成的延遲是不可預知的,所以系統工作頻率也難以保證。上面這幾種方法粒度水平不易改變,布線難度大,系統時鐘性能不高,而且后兩種實現難度較大。
現在采取算法和資源多級分塊的方法進行系統的容錯??梢栽诓桓姆椒ǖ那闆r下,通過對算法和資源不同次數、不同大小的劃分達到不同的粒度水平,進而滿足容錯需要。因為以算法模塊為單位進行重構,且保證重構前后模塊之間接口不變,那么模塊外部無需重新布線,這樣就削減了容錯時系統開銷,不會降低時鐘頻率。
先將整個系統在減少模塊間布線難度的情況下按照算法分塊。然后將每個模塊所使用的資源在有2/9以9等分為例,冗余資源的情況下進行9等分,這為第二級劃分。如圖5所示。現在需要解決的是配置文件的設計以及布局的問題。設計時,對實現相同功能的每—個算法模塊進行多種不同的布局,每—個布局都留出其中2/9的冗余資源。當然其算秸結構可以不同,而實現相同功能的不同算法也可能會達到容錯的效果,這將提高系統的容錯能力。相同功能算法的不同布局結構如圖6所示。
基于算法和資源兩級分塊的容錯結構,在系統出現異常的情況下,首先采用相同的配置文件對電路進行重構。重構后如果異常消除,那么容錯過程完成,而且出現的錯誤屬于暫態錯誤。在系統工作的過程中,需要周期性地記錄電路的狀態,當出現故障然并進行重構后應該將記錄的狀態進行裝載,以保持系統連續性及電路工作的正確性。如果這樣的重構仍然沒有解決問題,那么改變配置文件,利用布局不同的配置文件進行部分動態重構,用以解決永久性的故障。重構前后算法的功能應該保持不變,通過不同布局的重構使電路可以繞開硬件故障區,達到容錯的目的。
為解決重構前后的通信問題,采取類似總線宏(Bus Macro)的通信結構,保持模塊間重構前后通信布線不變。而且每一次重構,必須保證4個方向的通信端口和內部模塊連接也不變,重構后的電路都接在原有對外接口上。總線宏只能用于相鄰的兩個模塊間的通信,對于不相鄰的模塊間的通信,采用稱作可重構多路總線(Recongigurable Multiple Bus)的動態開關信號的通信結構。以一維結構為例,即現有模塊分布在一條線上。當一個模塊Mk需要和另一個不與自己相鄰的模塊通信時,它向與自己相鄰的且與要通信的模塊在相同方向上的模塊Mk+1發出請求,Mk+1再向Mk+2發出請求,如是依次下去直到需要通信的模塊Mk+i收到信號,接著它以相反的路徑返回一個應答信號,當Mk收到應答信號后,兩者開始通信。
2.2 方法分析
假設在第二級劃分時將每一個模塊所占用的資源分成N2等分,稱N為等分數,冗余資源為N-1,每一個資源單位出錯概率為P(N),則系統正常工作的概率為
由仿真結果可知,隨著每一個模塊所占資源等分數的增加,系統容錯能力提高,而同時冗余資源所占的比例卻下降。可以看到,基于算法和資源的兩級分塊容錯結構,相對于以往基于模塊的重構方法,進一步降低了系統的容錯粒度,提高了系統的容錯率和冗余資源的使用效率,而且在容錯的同時起到了檢錯和定位的作用。省去了實際用于檢錯和定位的硬件或軟件開銷,而且系統也不需要在線計算配置文件等,提高了系統的連續性和可靠性。
由于重構前后模塊對外功能接口都不變,相當于一個電路黑盒子,節省了外部布局布線的時間和計算時間,系統容錯時開銷降低。其他的一些冗余方法,例如以CLB為最小單元,每次利用冗余資源繞過故障區需要復雜的布局布線,而這樣的布局布線所造成的延遲是難以避免的,只有通過降低芯片工作頻率來保證系統時序的穩定。而現在所采取的結構雖然在布局上進行了兩次劃分,但是對于每一個模塊的外部仍然是基于功能模塊的容錯,每次都是以經過測試的成熟的功能算法為單元的,不存在算法內部重新布線后造成延遲的問題,保證了系統的高速運行,這也是本方法的主要特點。
采用逐級劃分的方法可以合理的選擇所需的容錯粒度,以及容錯能力??墒请S著級數和對每一個模塊等分數目的增加,預編譯的配置文件數量將增大,這樣系統需要較多的存儲資源來存儲這些文件。如果采用遺傳算法,根據硬件資源與工作模塊的分級分塊結構進行在線計算,那么這個問題將得到解決。
3 結束語
文章對基于FPGA的動態可重構技術在容錯領域的應用進行了研究。針對重構文件的大小,動態容錯時隙的長短、資源利用率、實現的復雜性、模塊間通信方式、冗余資源的比例與布局等方面的問題分析了一些方法的優缺點,針對突出的問題,提出了一種基于算法和資源多級分塊的容錯方法,可以在不影響系統工作的情況下完成基于動態重構的容錯。這種方法結構簡單,多項參數可以選擇,尤其是粒度的可變性。冗余資源比例較低,重構時沒有對模塊外進行布線的要求,不會因重構造成延遲而降低系統的工作頻率。
評論
查看更多