基于動(dòng)態(tài)可重構FPGA的容錯技術(shù)研究
基于STARs的方法主要是針對永久性錯誤,包括配置存儲器中的錯誤。STARs提供了一個(gè)相對于持續運行的工作區的離線(xiàn)區域。通過(guò)FPGA的邊界檢測接口可以使STAR中測試文件的配置動(dòng)態(tài)進(jìn)行而不影響系統工作。由于STARs的存在,工作區或者是連續的,或者是被STARs分割成不相連的區域,系統可以分別使用水平布線(xiàn)和垂直布線(xiàn)穿過(guò)V-STAR和H-STAR以實(shí)現通信。
這種方法采用了可編程邏輯塊(PLB)重用技術(shù)。PLB重用是指以一種沒(méi)有出錯的模式來(lái)使用出錯的PLB,即對在出故障的PLB中實(shí)現的功能來(lái)說(shuō)這個(gè)PLB是沒(méi)有出故障的。這有兩種情況,一是故障PLB中的損壞部分并沒(méi)有參與實(shí)現這個(gè)PLB內的功能單元,此時(shí)無(wú)需進(jìn)行重新配置。第二種情況的一個(gè)簡(jiǎn)單例子是,當一個(gè)LUT的某個(gè)存儲單元由于出錯而固定置為0,且這個(gè)LUT用來(lái)實(shí)現一個(gè)組合邏輯,而此組合邏輯的這個(gè)存儲單元恰要求被設置為0,那么這個(gè)錯誤就不需要進(jìn)行冗余。由于PLBs的重用,冗余資源的利用率得到提高,容錯量增大,系統壽命得到延長(cháng)。另外這還使得損壞的PLB利用較遠距離的冗余資源來(lái)重構而避開(kāi)故障區的情況減少,所以,隨著(zhù)故障區增多,系統的時(shí)鐘頻率不會(huì )明顯降低。
當STAR位置改變時(shí),系統時(shí)鐘必須停止以使STAR完成移動(dòng)。系統時(shí)鐘停止時(shí),系統的工作狀態(tài)必須被存儲,并在系統時(shí)鐘重新啟動(dòng)前被復制到新的工作區域。從STAR離開(kāi)當前這個(gè)區域到下一次再檢測這個(gè)區域的時(shí)間內,工作區電路可能出錯,這個(gè)時(shí)間稱(chēng)為最壞的錯誤駐留時(shí)間。雖然基于STARs的方法,檢測、診斷以及重構過(guò)程在理論上可以不影響系統工作,然而這也是它的缺點(diǎn),不能對隨時(shí)出現的錯誤進(jìn)行容錯。因此,必須考慮最壞的錯誤駐留時(shí)間,應該提高檢測速度,而檢測速度的提高會(huì )使STARs的移動(dòng)速度提高。這導致檢測區和工作區的交換頻率增加,進(jìn)而影響系統工作的連續性。
1.3 基于遺傳算法及設計空間搜索的容錯方法與分析
在重構容錯的過(guò)程中,由于技術(shù)的多樣性,同時(shí)會(huì )有多種可行的方案,而這很難通過(guò)人工來(lái)分析比較得到最優(yōu)的解決方法。同時(shí)設計好的系統中必須有足夠的存儲量來(lái)存儲針對不同故障的重構文件。因此文獻提出了基于遺傳算法的空間搜索技術(shù)。
首先用硬件設計語(yǔ)言描述系統功能,當設計完成后,對其實(shí)現功能進(jìn)行分析并產(chǎn)生一個(gè)向量圖,節點(diǎn)表示功能單元,有向線(xiàn)段代表他們之間的鏈接。同時(shí),對源文件進(jìn)行綜合來(lái)識別其資源使用量(包括Slice數量,塊RAN數量等)和各個(gè)功能單元的特征,最終形成一個(gè)功能單元庫。這個(gè)庫里面也包含一些標準器件和一些基本單元。另外在設計過(guò)程中還需要生成以下3個(gè)庫:
器件特征庫:存儲對FPGA特征的描述,包括可用資源容量,基本重構單元大小,重構區域形狀約束。
技術(shù)庫:包含了部分重構技術(shù)的模型。
參數庫:包含一些指導重構過(guò)程并衡量重構效果的參數。
系統工作時(shí),先將原功能模塊分成不同的組。然后根據參數要求在每一組內使用在技術(shù)庫里選擇的方法。遺傳算法用來(lái)產(chǎn)生不同的可行的染色體,而染色體代表不同的處理方法。這種算法與TMR結合的例子如圖4所示。本文引用地址:http://dyxdggzs.com/article/191243.htm
基于遺傳算法的設計空間搜索方法需要設計者在前期作出大量工作,例如,遺傳算法的設計,約束條件以及各庫的形成。其中遺傳算法的設計和參數設定是關(guān)鍵,同時(shí)系統需要較強的計算能力,系統開(kāi)銷(xiāo)較大。不過(guò)其所需配置文件存儲量較小,解決方法多樣,能產(chǎn)生出最優(yōu)的解決方案。而且基于硬件遺傳算法具有廣闊的應用前景。
2 基于算法和資源多級分塊的容錯結構
2.1 方法的提出
動(dòng)態(tài)容錯粒度的選取是一個(gè)關(guān)鍵問(wèn)題,如果粒度過(guò)小,則對錯誤的檢測定位能力要求較高,而且配置文件復雜,如果在線(xiàn)生成配置文件,則需要較強的系統計算能力,這顯然會(huì )增大系統的開(kāi)銷(xiāo),破壞系統的連續性,而且布線(xiàn)復雜。如果粒度過(guò)大,那么冗余資源的利用率降低,配置文件增大,這削弱了系統的容錯能力,且需要較大的存儲資源。另外,對冗余資源比例的選擇必須要考慮到系統布線(xiàn)難度,而布線(xiàn)所造成的延遲是不可預知的,所以系統工作頻率也難以保證。上面這幾種方法粒度水平不易改變,布線(xiàn)難度大,系統時(shí)鐘性能不高,而且后兩種實(shí)現難度較大。
現在采取算法和資源多級分塊的方法進(jìn)行系統的容錯??梢栽诓桓姆椒ǖ那闆r下,通過(guò)對算法和資源不同次數、不同大小的劃分達到不同的粒度水平,進(jìn)而滿(mǎn)足容錯需要。因為以算法模塊為單位進(jìn)行重構,且保證重構前后模塊之間接口不變,那么模塊外部無(wú)需重新布線(xiàn),這樣就削減了容錯時(shí)系統開(kāi)銷(xiāo),不會(huì )降低時(shí)鐘頻率。
評論