基于改進(jìn)的遺傳算法軟硬件劃分方法研究
SoC軟硬件劃分問(wèn)題實(shí)際上可以看作一個(gè)求解多個(gè)目標的優(yōu)化問(wèn)題。其目標是在滿(mǎn)足一定系統約束的前提下實(shí)現系統性能的最優(yōu)化?;诟倪M(jìn)的軟硬件劃分步驟如下:
步驟1:將待優(yōu)化的SoC系統轉化為數據流圖DFG
步驟2:從IP庫中調出數據流圖中可實(shí)現每個(gè)任務(wù)節點(diǎn)的候選IP
步驟3:對個(gè)體進(jìn)行整數編碼初始化,形成群體P0
步驟4:對Pi中的每個(gè)個(gè)體進(jìn)行性能評估,計算其執行時(shí)間、面積、功耗和成本
步驟5:適應度賦值
步驟6:合并Pi和P*i群體,對其進(jìn)行Pareto排序,構造非支配集(NDS)。復制Pareto最優(yōu)個(gè)體,即所得的非支配集,記做P*i+1
步驟7:判斷結束條件是否滿(mǎn)足,如果t>Gen,則進(jìn)化結束,P*i+1為最終輸出的非劣解,P*i+1中每個(gè)個(gè)體的實(shí)現方式即為候選的軟硬件劃分解。否則繼續,轉步驟8
步驟8:構造新群體。如果NDSpopsize,用分類(lèi)方法構造新群體;如果NDS>popsize,用聚類(lèi)方法構造新群體步驟9:對新群體執行遺傳操作,操作的結果設為pi+l,令T=Pi+l;轉步驟4
3.1 數據流圖描述
數據流圖DFG(Data Flow Graph)是一個(gè)包含頂點(diǎn)和邊的有向無(wú)環(huán)圖。DFG由節點(diǎn)和弧線(xiàn)構成,當一個(gè)DFG用來(lái)描述一個(gè)SoC系統時(shí),其頂點(diǎn)通常用來(lái)表示一些功能單元,對應構成系統的軟硬件部件;而弧則表示數據處理的順序,或者說(shuō)是頂點(diǎn)之間的數據依賴(lài)關(guān)系,如圖3所示。本文引用地址:http://dyxdggzs.com/article/188731.htm
3.2 個(gè)體編碼和遺傳操作
在基于遺傳算法的軟硬件劃分中,最常見(jiàn)的編碼方法是二進(jìn)制編碼。通過(guò)二進(jìn)制編碼將數據流圖的節點(diǎn)映射到位串空間0和1上,然后在位串空間進(jìn)行遺傳操作。一般用0表示該節點(diǎn)由軟件實(shí)現,用l表示該節點(diǎn)由硬件實(shí)現。設IP核數目為20,每個(gè)節點(diǎn)編碼長(cháng)度為5,二進(jìn)制編碼的交叉變異情況如圖3、圖4所示。
在圖3、圖4的遺傳操作過(guò)程中,有兩個(gè)節點(diǎn)的個(gè)體{Xl,X2}的二進(jìn)制編碼長(cháng)度為10,節點(diǎn)Xl、X2的編碼取值范圍均為[00000,l0011],經(jīng)過(guò)交叉和變異操作后,分別產(chǎn)生超出編碼取值范圍的無(wú)效個(gè)體{1011l,l0010}和{0llll,11010}。出于上述原因,本文采用整數向量編碼的個(gè)體編碼方案。該方法直接自然,避免了編碼、解碼的冗余,減輕了遺傳算法的計算負擔,提高了運算效率,能夠更好地保持群體的多樣性。
針對圖3所示為目標對象,在交叉概率PC=0.62,變異概率Pm=0.02,種群大小sizePop=80,演化代數numGen=l00的條件下,通過(guò)Matlab遺傳工具箱進(jìn)行模擬仿真,得出仿真結果如圖5所示。圖5中群體均值隨著(zhù)迭代次數的增加逐漸收斂,說(shuō)明基于小生境技術(shù)和精英保持策略的改進(jìn)算法可以得到該優(yōu)化問(wèn)題的最優(yōu)解。
4 結論
綜上所述,在小生境技術(shù)的基礎上引入精英保持策略和保持群體多樣性的方法,即經(jīng)過(guò)優(yōu)化策略之后的算法,能夠更好更快地搜索到最優(yōu)解集,從而達到了加速算法收斂速度、并避免陷入局部最優(yōu)的目的。
評論