引言
進(jìn)化硬件(Evolution Hardware,EHW)指的是仿照自然界中以碳為基的生物進(jìn)化過程,在現(xiàn)有的FPGA芯片基礎(chǔ)上實(shí)現(xiàn)可控的“硅基進(jìn)化”.進(jìn)化硬件實(shí)際上是一種特殊硬件,它可以像生物一樣具有自適應(yīng)、自組織、自修復(fù)特性,從而可以根據(jù)使用環(huán)境的變化而改變自身的結(jié)構(gòu)以適應(yīng)其生存環(huán)境。進(jìn)化硬件除了能夠生成具有新功能的電路以外,還可用于減少故障的發(fā)生,獲得容錯(cuò)的功能,從而提高電路可靠性。
1 內(nèi)進(jìn)化容錯(cuò)模型
通過在FPGA內(nèi)部構(gòu)建運(yùn)算進(jìn)化算法的MicroblazeCPU,把決定電路結(jié)構(gòu)和功能的二進(jìn)制配置位串作為染色體,通過對實(shí)際硬件的配置和測試來加速適應(yīng)度評估過程。將其進(jìn)化結(jié)果直接用于可重配置電路,以便獲得具備預(yù)期功能的實(shí)際硬件。內(nèi)進(jìn)化設(shè)計(jì)的方式更充分地利用了可編程器件的芯片資源和可重構(gòu)特性。由于將進(jìn)化硬件特有的快速進(jìn)化和硬件可重配置結(jié)構(gòu)與FPGA內(nèi)部算法運(yùn)行和下載的內(nèi)進(jìn)化模式相結(jié)合,即可獲得具有實(shí)時(shí)、自適應(yīng)、容錯(cuò)能力的理想硬件特性。如圖1所示。
從圖1可以發(fā)現(xiàn)在FPGA 內(nèi)部主要分為兩個(gè)區(qū)域:
Microblaze CPU和可重配置陣列。圖中的MicroblazeCPU 是基于XILINX 公司FPGA 的微處理器IP 核,和其他外設(shè)IP 核一起,可以完成可編程系統(tǒng)芯片(SoPC)的設(shè)計(jì)。Microblaze是一個(gè)高度靈活可以配置的軟核,可以根據(jù)設(shè)計(jì)的需要,對Microblaze 進(jìn)行裁減,用最少的資源完成設(shè)計(jì)的需要??芍嘏渲藐嚵杏煽删幊虇卧M成,其規(guī)模根據(jù)電路的復(fù)雜程度和功能需求設(shè)定。其中最基本單元是可編程單元(Programmable Element,PE),由配置寄存器、多路選擇器和基本邏輯運(yùn)算單元組成。
在系統(tǒng)工作時(shí),Microblaze CPU通過數(shù)據(jù)控制通道配置可重配置陣列,配置完成后可重配置陣列單獨(dú)工作。
如果嵌入該模型的FPGA 工作環(huán)境或功能要求發(fā)生了變化,只需重新啟動(dòng)上述進(jìn)化過程,針對新的設(shè)計(jì)目標(biāo)和內(nèi)、外部條件重新進(jìn)行搜索,便可獲得新的配置位串和預(yù)期電路功能,即實(shí)現(xiàn)硬件自適應(yīng)。同樣,如果硬件電路本身出現(xiàn)了局部故障但存在預(yù)留的資源冗余,重新執(zhí)行上述進(jìn)化過程后也有望避開故障區(qū)域,重新獲得預(yù)期的電路功能。
2 具體實(shí)現(xiàn)
2.1 算法流程
由于遺傳算法模擬了自然選擇和自然遺傳過程中發(fā)生的繁殖、雜交和突變現(xiàn)象。因此將遺傳算法作為演化算法。在求解問題時(shí),問題的每個(gè)可能的解都被編碼成一個(gè)“染色體”,即個(gè)體,若干個(gè)個(gè)體構(gòu)成了群體。在遺傳算法開始時(shí),隨機(jī)地產(chǎn)生初始個(gè)體群,根據(jù)預(yù)定的目標(biāo)函數(shù)對每個(gè)個(gè)體進(jìn)行評價(jià),給出了一個(gè)適應(yīng)度值。
基于此適應(yīng)度值,選擇個(gè)體用來復(fù)制下一代。選擇操作體現(xiàn)了“適者生存”原理,“好”的個(gè)體被選擇用來復(fù)制,而“壞”的個(gè)體則被淘汰。然后選擇出來的個(gè)體經(jīng)過交叉和變異算子進(jìn)行再組合生成新的一代。這一群新個(gè)體由于繼承了上一代的一些優(yōu)良性狀,因而在性能上要優(yōu)于上一代,這樣逐步朝著更優(yōu)解的方向進(jìn)化。演化算法的基本流程如圖2所示。
2.2 遺傳算子設(shè)計(jì)
(1)轉(zhuǎn)盤賭選擇,即個(gè)體的選擇概率pi 等于其適應(yīng)度值在所有個(gè)體的適應(yīng)度值之和中占的比例。首先先計(jì)算個(gè)體的相對適應(yīng)值記為pi,然后根據(jù)選擇概率{pi ,i=1,2,…,N}把一個(gè)圓盤分成N 份,其中第i 扇形的中心角為2πpi.在進(jìn)行選擇時(shí),先生成一個(gè)[0,1]內(nèi)的隨機(jī)數(shù)r,若p0+p1+…+pi-1
(2)交叉運(yùn)算,是指對兩個(gè)相互配對的染色體按某種方式相互交換其部分基因,從而形成兩個(gè)新的個(gè)體。
交叉運(yùn)算是遺傳算法區(qū)別于其他進(jìn)化算法的重要特征,它在遺傳算法中起著關(guān)鍵作用,是產(chǎn)生新個(gè)體的主要方法。本設(shè)計(jì)采取單點(diǎn)式交叉方法,即隨機(jī)的在兩個(gè)父串上選擇一個(gè)雜交點(diǎn),然后交換這兩個(gè)串的對應(yīng)的子串。
(3)變異運(yùn)算,是指將個(gè)體染色體編碼串中的某些基因座上的基因值用該基因座的其他等位基因來替換,從而形成一個(gè)新的個(gè)體。
2.3 適應(yīng)度評估
內(nèi)部演化將遺傳算法每一代產(chǎn)生的每一條染色體都實(shí)際下載到器件中,并對每一種電路結(jié)構(gòu)的輸出直接進(jìn)行評判。內(nèi)部演化評估速度快,并可利用器件的實(shí)際特性實(shí)現(xiàn)系統(tǒng)動(dòng)態(tài)重構(gòu)。適應(yīng)度的計(jì)算方式為給一個(gè)輸入矩陣,讀取輸出矩陣,如果和希望的標(biāo)準(zhǔn)矩陣一致則“適應(yīng)度”加1.其數(shù)學(xué)表達(dá)式為:
式中:X為該個(gè)體對應(yīng)的輸出矩陣;M為標(biāo)準(zhǔn)輸出矩陣。
3 故障容錯(cuò)實(shí)驗(yàn)與冗余可靠性分析
3.1 實(shí)驗(yàn)條件
采用Schwefel 的(1+λ)-ES 演化策略[7].程序參數(shù)為:最大適應(yīng)度值12,種群規(guī)模10,變異率0.02,交叉率0.3,最大演化代數(shù)100 000.根據(jù)第一列PE 單元的損傷數(shù)目設(shè)計(jì)7種不同的故障模式,每種故障采用100個(gè)不同的隨機(jī)數(shù)種子。應(yīng)用數(shù)理統(tǒng)計(jì)的方法,每種故障模式采用100個(gè)樣本。在規(guī)模為8×4個(gè)PE單元的可重配置陣列中,進(jìn)行了第一列PE單元邏輯門損壞和容錯(cuò)實(shí)驗(yàn)。模擬文獻(xiàn)[6]中提到數(shù)字電路中常見的SA故障,SA故障指的是無論對于何種輸入,節(jié)點(diǎn)的輸出固定為某一邏輯值。
3.2 實(shí)驗(yàn)結(jié)論
記PEi為第一列PE損傷數(shù)為i(i<7)的故障模式,試驗(yàn)結(jié)果如表1所示。
針對SA-0錯(cuò)誤,通過Microblaze CPU對可重配置陣列進(jìn)行演化在十萬代內(nèi)均能找到正確的解(PEi(i<6)),成功證明了該算法良好的容錯(cuò)特性,在電路設(shè)計(jì)方面有效改善了傳統(tǒng)電路設(shè)計(jì)中一次設(shè)計(jì)終身定型的弊端,使電路在遇到故障時(shí)可以避開故障單元,實(shí)現(xiàn)功能自修復(fù)。
3.3 冗余可靠性分析
圖3 所示為演化電機(jī)的3 輸入2 輸出換向電路,分別計(jì)算兩種不同電路的可靠性。
由于設(shè)計(jì)只使用了基本的邏輯單元如與門、或門、與非門和或非門,得到演化方法設(shè)計(jì)電路可靠性概率pe為:
pe 和pn 概率如圖4所示,虛線表示傳統(tǒng)電路設(shè)計(jì)方法生成的電路的故障率,實(shí)線表示冗余電路利用演化算法生成電路的故障率。可以看出,當(dāng)p∈(0,0.5)時(shí)pe>pn,即動(dòng)態(tài)可重構(gòu)冗余電路具有更高的可靠性。
4 結(jié)語
本文通過在FPGA內(nèi)部集成Microblaze CPU和可重配置陣列的方式,實(shí)現(xiàn)了基于內(nèi)進(jìn)化方式容錯(cuò)模型。針對SA 故障進(jìn)行了容錯(cuò)實(shí)驗(yàn),證明該模型具有良好的故障容錯(cuò)能力,為獲得具有實(shí)時(shí)、自適應(yīng)、容錯(cuò)能力的理想硬件特性提供了新的技術(shù)途徑。建立了電路可靠性的概率分析模型,并且針對本試驗(yàn)中的具體電路分析了冗余方法結(jié)合演化算法設(shè)計(jì)電路和傳統(tǒng)方法設(shè)計(jì)電路的出錯(cuò)概率,證明了前者具有更高的可靠性。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21748瀏覽量
603909 -
芯片
+關(guān)注
關(guān)注
456文章
50889瀏覽量
424235 -
cpu
+關(guān)注
關(guān)注
68文章
10873瀏覽量
212020 -
微處理器
+關(guān)注
關(guān)注
11文章
2264瀏覽量
82498
發(fā)布評論請先 登錄
相關(guān)推薦
評論