基于混沌粒子群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方法
【專利摘要】本發(fā)明公開了一種基于混沌粒子群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方法,所述方法基于DFG圖的軟硬件任務(wù)劃分的多目標(biāo)優(yōu)化方法,綜合考慮系統(tǒng)各模塊的操作執(zhí)行時間、模塊間數(shù)據(jù)通信引起的延時、資源消耗等因素,設(shè)計一個多目標(biāo)優(yōu)化目標(biāo)函數(shù)Ffitness,在滿足給定的約束條件下,應(yīng)用混沌粒子群優(yōu)化方法搜尋該目標(biāo)函數(shù)的最大值,找到最優(yōu)解。
【專利說明】基于混沌粒子群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及可重構(gòu)計算領(lǐng)域,具體是一種動態(tài)可重構(gòu)任務(wù)調(diào)度方法。
【背景技術(shù)】
[0002] 對于可重構(gòu)系統(tǒng)而言,實(shí)現(xiàn)一個復(fù)雜的應(yīng)用,由于受到可重構(gòu)資源規(guī)模的限制,往 往要將其分解為占用資源較少的多個子任務(wù),經(jīng)過一個合適的軟硬件劃分方案,劃分為一 系列的軟件任務(wù)和硬件任務(wù),分別將它們映射到通用處理器和可重構(gòu)邏輯器件上執(zhí)行,最 優(yōu)化地分配任務(wù)。在通用處理器上執(zhí)行變長循環(huán)和分支等控制密集型的操作;而在可重構(gòu) 硬件上則實(shí)現(xiàn)計算密集型的操作。通過對不同的任務(wù)實(shí)施不同的分配,最優(yōu)化各個任務(wù)配 置,實(shí)現(xiàn)對任務(wù)的計算加速。
[0003] 經(jīng)過軟硬件劃分后的一系列相關(guān)聯(lián)任務(wù),需要調(diào)度算法將任務(wù)按照一定的順序調(diào) 度執(zhí)行。調(diào)度任務(wù)的目標(biāo)就是如何有效的將劃分后的任務(wù)在滿足系統(tǒng)需求和應(yīng)用約束限制 的情況下,充分挖掘任務(wù)間運(yùn)行時潛在的并行性,規(guī)劃出最短調(diào)度時間開銷的任務(wù)調(diào)度順 序,提聞應(yīng)用的整體執(zhí)行性能。
[0004] 可重構(gòu)系統(tǒng)上的軟硬件劃分必須要考慮可重構(gòu)硬件的動態(tài)重構(gòu)及其重構(gòu)延時等 特征?,F(xiàn)有的軟硬件任務(wù)劃分方法主要有以下三種:(1)由編程者依據(jù)經(jīng)驗指定采用可重 構(gòu)邏輯實(shí)現(xiàn)的代碼;(2)通過軟件剖析找出程序中耗時最多的一段或幾段代碼,將其采用 可重構(gòu)邏輯實(shí)現(xiàn),以求得更大的加速比;(3)對每一段可以采用可重構(gòu)邏輯實(shí)現(xiàn)的程序代 碼,計算其在可重構(gòu)硬件上的總的運(yùn)行時間,并與之在通用處理器上的執(zhí)行時間進(jìn)行比較, 如果前者小于后者,則采用可重構(gòu)邏輯實(shí)現(xiàn)該段程序代碼,否則在通用處理器上執(zhí)行。
[0005] 當(dāng)前的很多可重構(gòu)計算系統(tǒng)采用的都是軟/硬件任務(wù)非并行執(zhí)行的方式。當(dāng)軟件 任務(wù)執(zhí)行到某個點(diǎn)的時候,會將應(yīng)用執(zhí)行的控制權(quán)交給可重構(gòu)邏輯器件,然后軟件任務(wù)會 一直等待可重構(gòu)邏輯器件將計算結(jié)果和控制權(quán)返回給通用處理器再繼續(xù)執(zhí)行。這無疑降低 了系統(tǒng)的性能。更先進(jìn)的做法是軟件任務(wù)可以和硬件任務(wù)并行執(zhí)行,兩者間以中斷或者其 他方式互相通告狀態(tài)和傳遞數(shù)據(jù)。但是這么做會引入數(shù)據(jù)一致性、任務(wù)間同步等問題,加大 了系統(tǒng)管理的難度。軟/硬件任務(wù)的劃分一直以來都是嵌入式系統(tǒng)研究中的難點(diǎn),它直接 影響到了應(yīng)用的執(zhí)行性能,但至今缺乏成熟的方法支持。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)存在的缺陷提供一種基于混沌粒子 群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方法。
[0007] 本發(fā)明基于混沌粒子群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方法,包括如下步 驟:
[0008] stepl :初始化η個節(jié)點(diǎn)的位置,隨機(jī)生成各個粒子的速度和位置,并計算各個粒 子對應(yīng)于初始節(jié)點(diǎn)隨機(jī)分布的目標(biāo)函數(shù)值,其中η為大于1的自然數(shù);
[0009] step2 :初始化每個粒子的個體最優(yōu)pbest和群體最優(yōu)位置gbest ;
[0010] St印3 :對各個粒子更新速度和位置,重新計算每個粒子更新位置后的目標(biāo)函數(shù) 值;
[0011] St印4 :計算每個粒子更新位置后的目標(biāo)函數(shù)值,并與個體最優(yōu)pbest對應(yīng)的目標(biāo) 函數(shù)值比較,當(dāng)前者較大,則更新個體最優(yōu)pbest ;
[0012] St印5:將群體中的每個粒子的個體最優(yōu)pbest對應(yīng)的目標(biāo)函數(shù)值與群體最優(yōu)位 置gbest對應(yīng)的目標(biāo)函數(shù)值比較,當(dāng)前者較大,則更新群體最優(yōu)位置gbest ;
[0013] St印6 :根據(jù)
【權(quán)利要求】
1. 一種基于混沌粒子群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方法,其特征在于所述方 法如下: Stepl :初始化η個節(jié)點(diǎn)的位置,隨機(jī)生成各個粒子的速度和位置,并計算各個粒子對 應(yīng)于初始節(jié)點(diǎn)隨機(jī)分布的目標(biāo)函數(shù)值,其中η為大于1的自然數(shù); Step2 :初始化每個粒子的個體最優(yōu)pbest和群體最優(yōu)位置gbest ; Step3 :對各個粒子更新速度和位置,重新計算每個粒子更新位置后的目標(biāo)函數(shù)值; Step4 :計算每個粒子更新位置后的目標(biāo)函數(shù)值,并與個體最優(yōu)pbest對應(yīng)的目標(biāo)函數(shù) 值比較,當(dāng)前者較大,則更新個體最優(yōu)pbest ; Step5 :將群體中的每個粒子的個體最優(yōu)pbest對應(yīng)的目標(biāo)函數(shù)值與群體最優(yōu)位置 gbest對應(yīng)的目標(biāo)函數(shù)值比較,當(dāng)前者較大,則更新群體最優(yōu)位置gbest ; Step6 :根據(jù)
計算得到當(dāng)前對群體最優(yōu)位置gbest進(jìn)行混沌優(yōu)化的概率 pk,同時生成一個隨機(jī)數(shù)0?1內(nèi)的隨機(jī)數(shù)r,當(dāng)r < pk,執(zhí)行步驟St印7,否則跳到步驟 St印10,其中k表示第k次迭代; St印7 :將gbest中各節(jié)點(diǎn)坐標(biāo)映射到定義域(0, 1)內(nèi),SP
,其中[a,b]為 節(jié)點(diǎn)坐標(biāo)范圍; St印8 :由Y°根據(jù)式
進(jìn)行迭代生成一組混沌序列Ym(m = 1,2,…),將產(chǎn)生的混沛變量序列Ym通過逆映射gbestm = a+(b_a)Ym(m = 1,2,…)返回到 原解空間,得到m個解組合,即一個劃分; St印9 :計算對應(yīng)各個組合的劃分,找出目標(biāo)函數(shù)FfitMSS的值最大的一組,同未進(jìn)行混沌 優(yōu)化時的最優(yōu)位置的目標(biāo)函數(shù)值比較,當(dāng)前者數(shù)值大,則更新gbest ; SteplO :當(dāng)達(dá)到預(yù)設(shè)最大迭代數(shù),則結(jié)束,并返回群體最優(yōu)分布,否則返回Step2。
2. 根據(jù)權(quán)利要求1所述的基于混沌粒子群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方法, 其特征在于步驟Step3所述速度和位置更新方法如下:
其中,q為微粒自身加速度權(quán)重系數(shù),c2為全局加速度權(quán)重系數(shù),(:3為位置調(diào)節(jié)的加 速權(quán)重系數(shù),和為0?1內(nèi)的隨機(jī)數(shù),X;和%分別為粒子i在第k次迭代中第j維 的位置和速度,二者均被限制在一定范圍內(nèi);
是粒子i在第j維的個體極值的位置; 是群體在第j維的個體極值的位置;w為慣性權(quán)重系數(shù);Δ,A丨是粒子i中節(jié)點(diǎn)廠與 其最近節(jié)點(diǎn)的距離改變值。
3. 根據(jù)權(quán)利要求1所述的基于混沌粒子群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方法, 其特征在于所述可重構(gòu)計算采用可重構(gòu)系統(tǒng),所述可重構(gòu)系統(tǒng)由主CPU和可重構(gòu)器件組 成。
4. 根據(jù)權(quán)利要求3所述的基于混沌粒子群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方法, 其特征在于所述主CPU由調(diào)度器、放置器和加載器構(gòu)成,調(diào)度器用于可重構(gòu)任務(wù)的調(diào)度,放 置器用于可重構(gòu)任務(wù)的放置,加載器用于可重構(gòu)任務(wù)的配置加載。
5. 根據(jù)權(quán)利要求1所述的基于混沌粒子群算法的可重構(gòu)計算的軟硬件任務(wù)劃分方 法,其特征在于所述軟硬件任務(wù)用數(shù)據(jù)流圖表示,一個軟硬件任務(wù)表示為一個三元組D = < V,E, W >,其中頂點(diǎn)集V = {Vi | Vi是有序運(yùn)算符,1彡i彡η},每個頂點(diǎn)表示一個任務(wù),包 括硬件任務(wù)和軟件任務(wù);邊集E = {eg | eg = < Vi, V」>,1彡i, j彡n},eg表示從Vi到ν」 的有向邊,Vi是 '的直接前驅(qū)節(jié)點(diǎn),'是Vi的直接后繼節(jié)點(diǎn),表示了兩個運(yùn)算符的先后依 賴關(guān)系,的物理意義是表示第i個任務(wù)和第j個任務(wù)之間的通信開銷;權(quán)集W = {Wi |表 示Vi所占的硬件資源面積,1彡i彡η},其中η為大于1的自然數(shù)。
【文檔編號】G06F9/50GK104252383SQ201410473017
【公開日】2014年12月31日 申請日期:2014年9月16日 優(yōu)先權(quán)日:2014年9月16日
【發(fā)明者】朱志宇, 沈舒, 吳將, 王彪, 王遜, 陳迅, 李陽, 薛文濤, 黃巧亮 申請人:江蘇科技大學(xué)