專利名稱::一種二維網(wǎng)格片上網(wǎng)絡(luò)的任務(wù)映射方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種多核處理器的使用方法,是一種二維網(wǎng)格(2-DMesh)結(jié)構(gòu)片上網(wǎng)絡(luò)(Network-on-Chip,NoC)的任務(wù)映射方法。
背景技術(shù):
:隨著半導(dǎo)體與集成電路技術(shù)的發(fā)展,片上系統(tǒng)(System-on-Chip,SoC)的集成度越來越高,單個芯片上可以集成數(shù)百個諸如微處理器、存儲器、1/0接口的IP核。另一方面,嵌入式電子產(chǎn)品的功能越來越復(fù)雜,單處理器片上系統(tǒng)已無法滿足嵌入式系統(tǒng)日益增長的功能和性能需求,多核片上系統(tǒng)(Multi-ProcessorSoC,MPSoC)的出現(xiàn)成為必然。而多核片上系統(tǒng)對片上通信提出了更高的要求,片上網(wǎng)絡(luò)就是為解決納米時(shí)代多核片上系統(tǒng)的全局通信而提出的。片上網(wǎng)絡(luò)借鑒并行計(jì)算和計(jì)算機(jī)網(wǎng)絡(luò)的設(shè)計(jì)思想,在單個硅片上構(gòu)建一個采用分組交換的微網(wǎng)絡(luò),IP核之間通過交換機(jī)互連,并使用全局異步局部同步(GlobalAsynchronousLocalSynchronous,GALS)機(jī)制,實(shí)現(xiàn)多核片上系統(tǒng)中大量處理單元、存儲單元等計(jì)算模塊間的高效通信。片上網(wǎng)絡(luò)的拓樸結(jié)構(gòu)多種多樣,其中二維網(wǎng)格具有結(jié)構(gòu)簡單、可擴(kuò)展性好、便于實(shí)現(xiàn)和分析等優(yōu)點(diǎn),因而在片上網(wǎng)絡(luò)領(lǐng)域得到了廣泛的應(yīng)用。隨著芯片上晶體管數(shù)量發(fā)展到10億數(shù)量級,功耗逐漸成為芯片設(shè)計(jì)的首要制約因素,基于功耗的線程與片上網(wǎng)絡(luò)多個處理單元之間的映射方法很多,其中JingcaoHu和Marculescu,R在Computer-AidedDesignofIntegratedCircuitsandSystems,IEEETransactionsonVolume24,Issue4,April2005Pages:551-562發(fā)表的文獻(xiàn)Energy-andperformance-awaremappingforregularNoCarchitectures中,以下簡稱文獻(xiàn)1,闡述了采用分支限界思想的方法,即在獲取下一個可行解的過程中,利用上界函數(shù)UBC(上界代價(jià))和下界函數(shù)LBC(下界代價(jià))提前終止那些不可能獲得最優(yōu)解的過程,從而引導(dǎo)該方法朝著最優(yōu)解的"分支"前進(jìn)。但是在該方法執(zhí)行過程中,每一步都需要計(jì)算UBC和LBC,這必然會增加時(shí)間復(fù)雜度。同時(shí)該方法有可能出現(xiàn)多個"最優(yōu)解",導(dǎo)致最終解的優(yōu)化程度不高。
發(fā)明內(nèi)容本發(fā)明目的克服現(xiàn)有技術(shù)中的映射方法執(zhí)行時(shí)間長,最終解的優(yōu)化程度不能保證的問題,從而提供一種二維網(wǎng)格片上網(wǎng)絡(luò)的任務(wù)映射方法。根據(jù)本發(fā)明的一個方面,提供了一種二維網(wǎng)格片上網(wǎng)絡(luò)的任務(wù)映射方法,包括下列步驟1)預(yù)分配所有線程至二維網(wǎng)格上的預(yù)期位置,所述線程包括可以映射至任何位置的普通線程;2)計(jì)算每個普通線程與該普通線程的預(yù)期位置附近的普通線程或空閑位置交換后的總通信功耗系數(shù)的變化量Com_diff,將所述普通線程與使Com—diff取最小的普通線程或空閑位置執(zhí)行交換,直至所述所有普通線程與其預(yù)期位置附近的普通線程或空閑位置交換均使Com_diff大于或等于0;3)根據(jù)所述所有線程的位置輸出映射文件。其中,所述步驟1)包括11)按照每個普通線程的通信量的大小順序?qū)⑺銎胀ň€程列入一個隊(duì)列;12)將所述隊(duì)列中的第一個普通線程分配至所述二維網(wǎng)格的中心位置;13)根據(jù)已經(jīng)分配的線程的預(yù)期位置計(jì)算待分配的普通線程預(yù)期位置。其中,所述所有線程還包括需要映射至特定位置的特殊線程。其中,所述步驟1)包括11,)將所述特殊線程列入一個隊(duì)列;12,)按照每個普通線程的通信量的大小順序?qū)⑺銎胀ň€程加入所述隊(duì)列;13)根據(jù)已經(jīng)分配的線程預(yù)期位置計(jì)算待分配的普通線程預(yù)期位置。其中,所述步驟13)依據(jù)如下公式根據(jù)已經(jīng)分配的線程預(yù)期位置計(jì)算待分配的普通線程預(yù)期位置<formula>formulaseeoriginaldocumentpage5</formula><formula>formulaseeoriginaldocumentpage6</formula>其中Com"表示線程i、k之間的數(shù)據(jù)通信總量,X,和力分別表示線程k的x軸和y軸坐標(biāo),x,和x分別表示線程i的x軸和y軸坐標(biāo)。其中,所述步驟2)包括21)將所述隊(duì)列中的所有普通線程構(gòu)成循環(huán)隊(duì)列,任取其中一個普通線程;22)假設(shè)所述普通線程屬于未映射線程,計(jì)算所述普通線程與其預(yù)期位置附近的普通線程或空閑位置交換后的總通信功耗系數(shù)的變化量Com—diff,將所述普通線程與使Com一diff取最小的普通線程或空閑位置執(zhí)行交換;23)重復(fù)步驟22)直至所述所有普通線程與其預(yù)期位置附近的普通線程或空閑位置交換均^使Com—diff大于或等于0。其中,所述預(yù)期位置附近的普通線程或空閑位置是與預(yù)期位置的距離小于預(yù)定閾值的普通線程或空閑位置。其中,所述與預(yù)期位置的距離是曼哈頓距離。本發(fā)明提供一種功耗優(yōu)先的片上網(wǎng)絡(luò)映射方法,其不斷調(diào)整每個線程的最優(yōu)位置,使得最終解的優(yōu)化程度達(dá)到最高。同時(shí)在本發(fā)明中,用戶可以自行設(shè)定一個閾值,以便在方法執(zhí)行時(shí)間和最終解的優(yōu)化程度上作權(quán)衡,當(dāng)選取較小閾值時(shí),該方法每次循環(huán)時(shí)僅需比較幾個關(guān)鍵點(diǎn)的數(shù)值,從而大幅降低了時(shí)間復(fù)雜度。并且本發(fā)明考慮并解決了部分映射的情形,即在一個NoC系統(tǒng)中某些線程是必須映射至特定PU上的特殊情形。圖1是一個2-DMesh結(jié)構(gòu)的NoC示意圖2是本發(fā)明二維網(wǎng)格片上網(wǎng)絡(luò)的任務(wù)映射方法實(shí)施例的流程圖;圖3是H.264Decoder表中數(shù)據(jù)在S=0,d=1時(shí)利用本發(fā)明任務(wù)映射方法生成的一映射結(jié)果;圖4是H.264Decoder表中數(shù)據(jù)在S=1,d=2時(shí)利用本發(fā)明任務(wù)映射方法生成的另一映射結(jié)果。具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)的說明。圖1示出了一個4x3的2-DMesh結(jié)構(gòu)的NoC的具體實(shí)施例,其中S表示交換單元,LR表示本地資源,Adapt表示適配器,PU表示處理單元,(0,0)、(0,1)、(0,2).....(3,2)表示線程映射的位置坐標(biāo)(jc,少)。假設(shè)在2-DMesh中i號線程的映射位置為(x,.,x),j號線程的映射位置為(~,力)。本實(shí)施例中采用曼哈頓距離/^=^-、|+|^-力l表示線程i與線程j通信時(shí)數(shù)據(jù)的跳躍距離;本領(lǐng)域人員可以理解,不脫離本發(fā)明思想,也可以采用其它距離。則從線程i到線程j傳輸1比特?cái)?shù)據(jù)的通信功耗為其中,五^,表示每個交換單元接收和轉(zhuǎn)發(fā)1比特?cái)?shù)據(jù)的功耗,五^表示相鄰兩個處理單元間傳輸1比特?cái)?shù)據(jù)的線路功耗,令£^/五^=6,則有+(2)則整個系統(tǒng)總的通信功耗是r-i7MI=SS(c"+c"鵬+D""+,""(3)其中,T表示線程的總個數(shù),C".表示線程i到線程j的數(shù)據(jù)流量。記Com,》.-C^.+C^表示線程i、j之間的數(shù)據(jù)通信總量,則有r-ir-i'=0/='+1(4)本發(fā)明出發(fā)點(diǎn)在于優(yōu)化系統(tǒng)的通信功耗系數(shù),從而確定使系統(tǒng)功耗最小的線程與片上網(wǎng)絡(luò)多個處理單元之間的映射關(guān)系。由公式(4)可知,系統(tǒng)的通信功耗系數(shù)為所有線程分為兩類,包括可以映射至任何位置的普通線程,和需要映射至特定位置的特殊線程。在系統(tǒng)中,特殊線程可能存在也可能不存在,在映射過程中只要將其映射到其特定位置即可。對于任一普通線程i,希望其映射到使上述的系統(tǒng)的通信功耗系數(shù)最小的位置,通過下述方式實(shí)現(xiàn)計(jì)算普通線程i與其預(yù)期位置附近線程(特殊線程除外)或空閑位置交換后的總通信功耗系數(shù)的變化量,將普通線程i與使得變化量最小且小于0的線程或空閑位置執(zhí)行交換。線程i與其它線程和空閑位置交換后的總通信功耗系數(shù)的變化量計(jì)算如下線程i與其他所有線程的通信功耗之和的系數(shù)是"o(6)線程j與其他所有線程的通信功耗之和的系數(shù)是<formula>formulaseeoriginaldocumentpage8</formula>"(7)線程i、j交換映射位置后,線程i及線程j與其他所有線程的通信功耗之和的系數(shù)分別是<formula>formulaseeoriginaldocumentpage8</formula>,(9)因此,線程i、j交換位置后,系統(tǒng)總通信功耗系數(shù)的變化量為<formula>formulaseeoriginaldocumentpage8</formula>(10)若線程i與某一空閑位置(s,t)交換,即,線程i映射到空閑位置(s,t),而線程i原來所在位置變?yōu)榭臻e位置,則交換后線程i與其他所有線程的通信功耗之和的系數(shù)為<formula>formulaseeoriginaldocumentpage8</formula>(11)因此,線程i與空閑位置(S,t)交換后,系統(tǒng)總通信功耗系數(shù)的變化量為-.<formula>formulaseeoriginaldocumentpage8</formula>(12)設(shè)集合Q包含所有已映射的線程,那么待映射線程i的預(yù)期位置()在本實(shí)施例中以公式(13)計(jì)算得出,其中公式(13)中符號L」表示對符號內(nèi)函數(shù)四舍五入取整,本領(lǐng)域內(nèi)4支術(shù)人員可以理解,還可以通過其它方式計(jì)算。<formula>formulaseeoriginaldocumentpage9</formula>(13)根據(jù)上述理論計(jì)算,本發(fā)明的具體實(shí)施方式如下假設(shè)某一任務(wù)中,特殊線程數(shù)目為S,普通線程數(shù)目為T-S。將所有特殊線程列入一個排序隊(duì)列,將所有普通線程也加入-該隊(duì)列中,優(yōu)選地普通線程可以根據(jù)該線程與隊(duì)列中其它線程的通信量的大小順序加入該隊(duì)列。取一對通信量最大的線程,其中至少包含一個尚未加入隊(duì)列的普通線程。若兩個線程均未在隊(duì)列中,則將這兩個線程均附到隊(duì)列末尾,他們的先后順序取決于這兩個線程與隊(duì)列中其他線程的最大通信量,值大者在前;若其中一個已在隊(duì)列中,則將另一個線程加在排序隊(duì)列末尾。然后取下一對通信量最大的線程繼續(xù)執(zhí)行本操作直至所有線程都在隊(duì)列中。最后將這T個線程按其在隊(duì)列中的順序編號為0~T-1。如果任務(wù)中特殊線程數(shù)目為0,則第一對線程在隊(duì)列中的順序是任意的。以H.264解碼器為例,其涉及12個模塊(任務(wù)),要求映射到4x4的一個2DMesh的處理器陣列中,這些模塊之間的通信流量如表1所示。表1H.264解碼器中模塊間通信流量表<table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table>假設(shè)S-l,IP5為特殊線程,那么最初排序隊(duì)列為{0>5}。取一對通信量最大的線程IP2和IP11,它們均不在隊(duì)列中,由于IP2與隊(duì)列中線程IP5之間的通信量大于IP11與IP5之間的通信量,故IP2優(yōu)先加入隊(duì)尾。因此新的排序隊(duì)列為{IP5,IP2,IP11}。下一對通信量最大的線程是IP1和IP11,由于IP11已在隊(duì)列中,故把IP1加入隊(duì)尾即可。因此新的排序隊(duì)列為{IP5,IP2,IP11,IP1},同理把IPO也加入隊(duì)尾,則隊(duì)列變?yōu)?IP5,IP2,IP11,IP1,IP0}。下一對信量最大的線程是IP3和IP4,它們均不在隊(duì)列中,由于IP3與隊(duì)列中線程通信量的最大值(與IP1的通信量)大于IP4與隊(duì)列中各線程的通信量,故IP3優(yōu)先加入隊(duì)尾。因此新的排序隊(duì)列為{IP5,IP2,IPll,IP1,IPO,IP3,IP4}。依此類推,所有線程均加入隊(duì)列后,隊(duì)列為{IP5,IP2,IPll,IP1,IPO,IP3,IP4,IP6,IP8,IP7,IP4,IP10}。最后按此隊(duì)列順序給這12個線程編號為0~11。根據(jù)上述公式計(jì)算使得系統(tǒng)的通信功耗系數(shù)最小的映射,具體步驟如下Step1:初始化二維數(shù)組A[M][N],令所有元素置為-1,表示該位置'一閑,其中M是片上網(wǎng)絡(luò)二維網(wǎng)格的行數(shù),N是二維網(wǎng)格的列數(shù)。若S二O,工則分配0號線程至中心位置M—12iV—1否則分配所有特殊線程到特定處理單元的對應(yīng)位置,利用公式(13)計(jì)算下一線程的預(yù)期位置,取與該預(yù)期位置曼哈頓距離最短的未分配位置分配該線程,然后分配下一個線程,直至所有線程分配完畢。對于i號線程分配至(a,b)位置,令A(yù)[a][b]M,x[i]=a,y[i]=b。Step2:令unextimes=0,將排序隊(duì)列中的所有T-S個普通線程構(gòu)成循環(huán)隊(duì)列,取此循環(huán)隊(duì)列中的第一個線程。在本實(shí)施例中,以鏈表作為隊(duì)列的具體實(shí)現(xiàn)。Step3:假設(shè)該線程不屬于Q,利用公式(13)計(jì)算該線程的預(yù)期位置,利用公式(10)和公式(12)計(jì)算A中以該位置為中心曼哈頓距離小于等于閾值d的各個位置(特定位置及不可行位置除外)與該線程原來位置互換后的Comdiff;其中的閾值d可由用戶自行設(shè)定,決定"比較位置"的菱形區(qū)域范圍,d值越大菱形區(qū)域范圍越大,但不得大于max(M,N),優(yōu)選取值為l或2,該閾值影響整個方法的復(fù)雜度和最終解的優(yōu)化程度。比較各個Com—diff,取值最小的Com_diff并記錄其所對應(yīng)的位置(x,y)。若Com—dif^-0,轉(zhuǎn)Step4,否則轉(zhuǎn)Step6。Step4:unextimes++,若unextimes=T—S,專爭Step7,否則轉(zhuǎn)Step5。Step5:取下一個線程,轉(zhuǎn)Step3。Step6:令unextimes=0,若A[x,y^-1,將該線程分配至[x,y]位置,并將原來位置置為-l;否則將該線程與[x,y]上的線程交換位置。轉(zhuǎn)Step5。Step7:根據(jù)每個線程的位置輸出映射文件,結(jié)束。仍以上述H.264解碼器為例,假設(shè)沒有特定線程需要固定到某個特定處理單元上,設(shè)定d-l,本方法執(zhí)行的結(jié)果為IPIO映射至(O,0),IP9映射至(0,2),IP7映射至(0,3),IP2映射至(1,0),IP11映射至(1,1),IPl映射至(l,2),IP3映射至(1,3),IP5映射至(2,0),IPO映射至(2,1),IP6映射至(2,2),IP4映射至(2,3),IP8映射至(3,2)。假設(shè)線程IP5必須預(yù)先映射至(3,1),設(shè)定d-2,此時(shí)本方法執(zhí)行的結(jié)果為IP10映射至(3,3),IP9映射至(1,3),IP7映射至(0,3),IP2映射至(3,2),IP11映射至(2,2),IP1映射至(1,2),IP3映射至(0,2),IP5映射至(3,1),IP0映射至(2,1),IP6映射至(1,1),IP4映射至(0,1),IP8映射至(1,0)。以兩段僅含有盒子和手的影片片斷進(jìn)行編解碼操作為具體實(shí)例,其將20個線程映射至5x5的NoC中,文獻(xiàn)1所述方法與本發(fā)明方法功耗和時(shí)間比較分別見表2和表3:表2文獻(xiàn)1所述方法與本發(fā)明方法功耗比較表<table>tableseeoriginaldocumentpage11</column></row><table>表2和表3內(nèi)數(shù)據(jù)表明,本發(fā)明的方法計(jì)算的最優(yōu)解比文獻(xiàn)1所述的最優(yōu)解功耗更小;且當(dāng)d-l時(shí),求解時(shí)間更短。應(yīng)該注意到并理解,在不脫離后附的權(quán)利要求所要求的本發(fā)明的精神和范圍的情況下,能夠?qū)ι鲜鲈敿?xì)描述的本發(fā)明做出各種修改和改進(jìn)。因此,要求保護(hù)的技術(shù)方案的范圍不受所給出的任何特定示范教導(dǎo)的限制。權(quán)利要求1.一種二維網(wǎng)格片上網(wǎng)絡(luò)的任務(wù)映射方法,包括下列步驟1)預(yù)分配所有線程至二維網(wǎng)格上的預(yù)期位置,所述線程包括可以映射至任何位置的普通線程;2)計(jì)算每個普通線程與該普通線程的預(yù)期位置附近的普通線程或空閑位置交換后的總通信功耗系數(shù)的變化量Com_diff,將所述普通線程與使Com_diff取最小的普通線程或空閑位置執(zhí)行交換,直至所述所有普通線程與其預(yù)期位置附近的普通線程或空閑位置交換均使Com_diff大于或等于0;3)根據(jù)所述所有線程的位置輸出映射文件。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟l)包括11)按照每個普通線程的通信量的大小順序?qū)⑺銎胀ň€程列入一個隊(duì)列;12)將所述隊(duì)列中的第一個普通線程分配至所述二維網(wǎng)格的中心位置;13)根據(jù)已經(jīng)分配的線程的預(yù)期位置計(jì)算待分配的普通線程預(yù)期位置。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述所有線程還包括需要映射至特定位置的特殊線程。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟l)包括11,)將所述特殊線程列入一個隊(duì)列;12,)按照每個普通線程的通信量的大小順序?qū)⑺銎胀ň€程加入所述隊(duì)列;13)根據(jù)已經(jīng)分配的線程預(yù)期位置計(jì)算待分配的普通線程預(yù)期位置。5.根據(jù)權(quán)利要求2或4所述的方法,其特征在于,所述步驟13)依據(jù)如下公式根據(jù)已經(jīng)分配的線程預(yù)期位置計(jì)算待分配的普通線程預(yù)期位置:<formula>formulaseeoriginaldocumentpage2</formula>,其中Cow^表示線程i、k之間的數(shù)據(jù)通信總量,^和^分別表示線程k的x軸和y軸坐標(biāo),x,和乂分別表示線程i的x軸和y軸坐標(biāo)。6.根據(jù)權(quán)利要求2或4所述的方法,其特征在于,所述步驟2)包括21)將所述隊(duì)列中的所有普通線程構(gòu)成循環(huán)隊(duì)列,任取其中一個普通線程;22)假設(shè)所述普通線程屬于未映射線程,計(jì)算所述普通線程與其預(yù)期位置附近的普通線程或空閑位置交換后的總通信功耗系數(shù)的變化量Com一diff,將所述普通線程與使Com一diff取最小的普通線程或空閑位置執(zhí)行交換;23)重復(fù)步驟22)直至所述所有普通線程與其預(yù)期位置附近的普通線程或空閑位置交換均使Com—diff大于或等于0。7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)期位置附近的普通線程或空閑位置與預(yù)期位置的距離小于預(yù)定閾值。8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述與預(yù)期位置的距離根據(jù)曼哈頓距離計(jì)算。全文摘要本發(fā)明公開了一種二維網(wǎng)格片上網(wǎng)絡(luò)的任務(wù)映射方法,包括下列步驟1)預(yù)分配所有線程至二維網(wǎng)格上的預(yù)期位置,所述線程包括可以映射至任何位置的普通線程;2)計(jì)算每個普通線程與該普通線程的預(yù)期位置附近的普通線程或空閑位置交換后的總通信功耗系數(shù)的變化量Com_diff,將所述普通線程與使Com_diff取最小的普通線程或空閑位置執(zhí)行交換,直至所述所有普通線程與其預(yù)期位置附近的普通線程或空閑位置交換均使Com_diff大于或等于0;3)根據(jù)所述所有線程的位置輸出映射文件。本發(fā)明優(yōu)化程度高;用戶可自行調(diào)整參數(shù)來控制時(shí)間復(fù)雜度,且解決了部分映射問題。文檔編號G06F15/177GK101625673SQ20081011624公開日2010年1月13日申請日期2008年7月7日優(yōu)先權(quán)日2008年7月7日發(fā)明者菲任,祥劉,張金龍,曦陳,毅黃申請人:中國科學(xué)院計(jì)算技術(shù)研究所