專利名稱:基于fpga最大空閑塊的任務(wù)布局方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于FPGA最大空閑塊的任務(wù)布局方法,更具體地說,當(dāng)新任務(wù)到達(dá)FPGA時,通過最大空閑矩陣塊MER的重疊度、共享度以及BFEF算法等方法,來選出新到 任務(wù)的最佳布局位置。
背景技術(shù):
FPGA由可重構(gòu)資源構(gòu)成,具有動態(tài)局部可重構(gòu)的特性。FPGA及在FPGA上執(zhí)行的任務(wù)可以被抽象成具有一定長度和寬度的矩陣,矩陣中的每個元素即代表一個可重構(gòu)單元。任務(wù)在FPGA內(nèi)執(zhí)行過程分為三步首先,任務(wù)到達(dá)FPGA,尋找一塊合適的空閑塊來存放任務(wù);其次,CPU調(diào)度該任務(wù),任務(wù)在FPGA上執(zhí)行;最后,任務(wù)執(zhí)行完成后退出FPGA,任務(wù)原所在區(qū)域變?yōu)榭臻e狀態(tài)。合適的任務(wù)放置方法能夠充分利用FPGA內(nèi)的空閑空間,使得多個任務(wù)能夠在FPGA內(nèi)并行執(zhí)行,從而有效地提高FPGA的利用率,減小FPGA碎片率,縮短任務(wù)隊(duì)列的完成時間。對于一塊MER,可能與許多MER處于同一空閑區(qū)中,與該MER有重疊區(qū)域的其它MER的塊數(shù),即為該MER的重疊度。一塊MER每個頂點(diǎn)有可能被其它MER共享,即頂點(diǎn)的位置處于其它MER塊中,一個頂點(diǎn)被共享的塊數(shù),即為該頂點(diǎn)的頂點(diǎn)共享度。Herbert Walder 等提出了 Best Fit with Exact Fit 算法(簡稱 BFEF 算法)。即先尋找與任務(wù)大小完全相同的空閑塊,其次尋找與任務(wù)具有相同高度或相同寬度的塊,如果都沒有那么就尋找一塊最小的且能滿足任務(wù)的塊。
發(fā)明內(nèi)容
本發(fā)明的目的在于,基于上述背景技術(shù)所提出的問題,提供一種基于FPGA最大空閑塊的任務(wù)布局方法,減小FPGA的碎片率,提高FPGA任務(wù)執(zhí)行的效率。為達(dá)到上述目的,本發(fā)明的構(gòu)思是(1) FPGA中碎片度越小,任務(wù)越緊湊,空間利用率就越高;(2)放置位置盡量在重疊度小的MER處,這樣產(chǎn)生的碎片率低;(3)放置位置盡量靠近共享率低的頂點(diǎn),這樣會使任務(wù)放置位置靠近空閑區(qū)邊緣,從而碎片率低。(4)放置時盡量選擇大小合適的MER,這樣便于維護(hù)。根據(jù)上述發(fā)明構(gòu)思,本發(fā)明采用下述技術(shù)方案
一種基于FPGA最大空閑塊的任務(wù)布局方法,其特征在于操作步驟如下(I)依次判斷MER隊(duì)列中的MER是否足夠大到能放置新到任務(wù),將滿足條件的MER放入待處理隊(duì)列;⑵計算待處理隊(duì)列中的MER的重疊度,選出重疊度最小的一塊或幾塊MER ; (3)對選出的MER,計算四個頂點(diǎn)的頂點(diǎn)共享度,選出頂點(diǎn)共享度最小的一塊或幾塊MER,此時若僅有一塊MER,則將其頂點(diǎn)共享度最小的頂點(diǎn)記為最佳布局位置,否則繼續(xù);(4)根據(jù)BFEF算法得到
3最佳布局位置。上述MER的重疊度的計算對于一塊MER,可能與許多MER處于同一空閑區(qū)中,與該MER有重疊區(qū)域的其它MER的塊數(shù),計為該MER的重疊度。上述MER的頂點(diǎn)共享度的計算一塊MER每個頂點(diǎn)有可能被其它MER共享,即頂點(diǎn)的位置處于其它MER塊中,一個頂點(diǎn)被共享的塊數(shù),計為該頂點(diǎn)的頂點(diǎn)共享度。上述BFEF算法先尋找與任務(wù)大小完全相同的空閑塊,其次尋找與任務(wù)具有相同高度或?qū)挾鹊膲K,如果都沒有,則尋找一塊最小的且能滿足任務(wù)的塊。上述MER的重疊度的特征一塊MER重疊度越低,那么與其相連接的MER也就越少,從而該MER也就越處于一個空閑區(qū)的邊緣。而一個任務(wù)如果放在空閑區(qū)域的邊界,則FPGA的碎片率是最低的,故重疊度越低也就越適合放置任務(wù)。上述MER的頂點(diǎn)共享度的特征一個頂點(diǎn)的共享度越低,則其越處于空閑區(qū)的邊緣,故共享度越低也就越適合放置任務(wù)。本發(fā)明與現(xiàn)有技術(shù)相比校,具有如下顯而易見的突出性特點(diǎn)和顯著進(jìn)步
本發(fā)明通過綜合考慮MER重疊度頂點(diǎn)共享度等方面,使新到任務(wù)的最佳放置位置盡量
在最合適的空閑區(qū)邊界處,從而大大減少了 FPGA的碎片空間,提高了 FPGA的空間利用率。
圖I是實(shí)施例三FPGA及新到任務(wù)的初始狀態(tài)2是實(shí)施例三任務(wù)尋找最佳布局過程流程圖。
具體實(shí)施例方式本發(fā)明的優(yōu)選實(shí)施例結(jié)合附圖詳述如下
實(shí)施例一
本基于FPGA最大空閑塊的任務(wù)布局方法,其操作步驟如下(I)依次判斷MER隊(duì)列中的MER是否足夠大到能放置新到任務(wù),將滿足條件的MER放入待處理隊(duì)列;(2)計算待處理隊(duì)列中的MER的重疊度,選出重疊度最小的一塊或幾塊MER ; (3)對選出的MER,計算四個頂點(diǎn)的頂點(diǎn)共享度,選出頂點(diǎn)共享度最小的一塊或幾塊MER,此時若僅有一塊MER,則將其頂點(diǎn)共享度最小的頂點(diǎn)記為最佳布局位置,否則繼續(xù);(4)根據(jù)BFEF算法得到最佳布局位置。實(shí)施例二
本實(shí)施例與實(shí)施例一基本相同,特別之處如下
所述MER的重疊度的計算對于一塊MER,可能與許多MER處于同一空閑區(qū)中,與該MER有重疊區(qū)域的其它MER的塊數(shù),計為該MER的重疊度。所述MER的頂點(diǎn)共享度的計算一塊MER每個頂點(diǎn)有可能被其它MER共享,即頂點(diǎn)的位置處于其它MER塊中,一個頂點(diǎn)被共享的塊數(shù),計為該頂點(diǎn)的頂點(diǎn)共享度。所述BFEF算法先尋找與任務(wù)大小完全相同的空閑塊,其次尋找與任務(wù)具有相同高度或?qū)挾鹊膲K,如果都沒有,則尋找一塊最小的且能滿足任務(wù)的塊。所述的選擇低重疊度的MER的原因是,MER重疊度越低,那么與其相連接的MER也就越少,從而該MER也就越處于一個空閑區(qū)的邊緣。而一個任務(wù)如果放在空閑區(qū)域的邊界,則FPGA的碎片率是相對最低的,即效率相對最高。所述的選擇低共享度的頂點(diǎn)的原因是,頂點(diǎn)共享度越低,則該頂點(diǎn)越靠近邊界,任務(wù)放在該頂點(diǎn)處,會使FPGA的碎片率相對最低,效率相對最高。實(shí)施例三
本實(shí)施例與實(shí)施例二基本相同,是一個實(shí)例
參見圖I、圖2,當(dāng)前FPGA中已有兩個任務(wù)taskl,task2。FPGA中存在三個空閑塊,MER1、MER2、MER3,新到了一個任務(wù)taks3,則尋找task3的最佳布局位置的過程如下
51.判斷MER1、MER2、MER3是否足夠大到能放置新到任務(wù),發(fā)現(xiàn)都足夠大,三塊均放入待處理隊(duì)列;
52.計算三塊MER的重疊度,依次為I、2、I,故取出重疊度最低的MERl和MER3;
53.繼續(xù)計算MERl和MER3的各頂點(diǎn)共享度,發(fā)現(xiàn)B、D兩個頂點(diǎn)的共享度最低,均為O;
54.按BFEF算法,選擇相對較小的MERl來放置任務(wù),任務(wù)最終放置在D點(diǎn)處。
權(quán)利要求
1.一種基于FPGA最大空閑塊的任務(wù)布局方法,其特征在于尋找最佳布局位置的操作步驟為(1)依次判斷最大空閑矩陣塊MER隊(duì)列中的MER是否足夠大到能放置新到任務(wù),將滿足條件的MER放入待處理隊(duì)列;(2)計算待處理隊(duì)列中的MER的重疊度,選出重疊度最小的一塊或幾塊MER ; (3)對選出的MER,計算四個頂點(diǎn)的頂點(diǎn)共享度,選出頂點(diǎn)共享度最小的一塊或幾塊MER,此時若僅有一塊MER,則將其頂點(diǎn)共享度最小的頂點(diǎn)記為最佳布局位置, 否則繼續(xù);(4)根據(jù)BFEF算法得到最佳布局位置。
2.根據(jù)權(quán)利要求I所述的基于FPGA最大空閑塊的任務(wù)布局方法,其特征在于所述MER 的重疊度的計算對于一塊MER,可能與許多MER處于同一空閑區(qū)中,與該MER有重疊區(qū)域的其它MER的塊數(shù),計為該MER的重疊度。
3.根據(jù)權(quán)利要求I所述的基于FPGA最大空閑塊的任務(wù)布局方法,其特征在于所述MER 的頂點(diǎn)共享度的計算一塊MER每個頂點(diǎn)有可能被其它MER共享,即頂點(diǎn)的位置處于其它 MER塊中,一個頂點(diǎn)被共享的塊數(shù),計為該頂點(diǎn)的頂點(diǎn)共享度。
4.根據(jù)權(quán)利要求I所述的基于FPGA最大空閑塊的任務(wù)布局方法,其特征在于所述 BFEF算法先尋找與任務(wù)大小完全相同的空閑塊,其次尋找與任務(wù)具有相同高度或?qū)挾鹊膲K,如果都沒有,則尋找一塊最小的且能滿足任務(wù)的塊。
5.根據(jù)權(quán)利要求I所述的基于FPGA最大空閑塊的任務(wù)布局方法,其特征在于所述MER 的重疊度的特征一塊MER重疊度越低,那么與其相連接的MER也就越少,從而該MER也就越處于一個空閑區(qū)的邊緣;而一個任務(wù)如果放在空閑區(qū)域的邊界,則FPGA的碎片率是最低的,故重疊度越低也就越適合放置任務(wù)。
6.根據(jù)權(quán)利要求I所述的基于FPGA最大空閑塊的任務(wù)布局方法,其特征在于所述MER 的頂點(diǎn)共享度的特征一個頂點(diǎn)的共享度越低,則其越處于空閑區(qū)的邊緣,故共享度越低也就越適合放置任務(wù)。
全文摘要
本發(fā)明涉及一種基于FPGA最大空閑塊的任務(wù)布局方法。由于任務(wù)和FPGA都被抽象成矩形,同時FPGA中的空閑塊又劃分成一系列重疊的最大空閑矩形塊MER。所以每個FPGA中的任務(wù)和MER在空間上都是一個有長和寬的矩形,當(dāng)新任務(wù)到達(dá)FPGA時,選擇任務(wù)布局位置的過程如下(1)依次判斷MER隊(duì)列中的MER是否足夠大到能放置新到任務(wù),將滿足條件的MER放入待處理隊(duì)列;(2)計算待處理隊(duì)列中的MER的重疊度,選出重疊度最小的一塊或幾塊MER;(3)對選出的MER,計算四個頂點(diǎn)的頂點(diǎn)共享度,選出頂點(diǎn)共享度最小的一塊或幾塊MER,此時若僅有一塊MER,則將其頂點(diǎn)共享度最小的頂點(diǎn)記為最佳布局位置,否則繼續(xù);(4)根據(jù)BFEF算法得到最佳布局位置。
文檔編號G06F9/30GK102929578SQ201210374900
公開日2013年2月13日 申請日期2012年10月8日 優(yōu)先權(quán)日2012年10月8日
發(fā)明者陳雪, 王平, 高英虎 申請人:上海大學(xué)