專(zhuān)利名稱(chēng):用于片上網(wǎng)絡(luò)的一種不規(guī)則拓?fù)浣Y(jié)構(gòu)生成方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集成電路設(shè)計(jì)、尤其涉及片上互連網(wǎng)絡(luò)設(shè)計(jì)領(lǐng)域。
背景技術(shù):
集成電路一直按照摩爾定律推進(jìn),單芯片所集成的IP (Intellectual Property)核數(shù) 目越來(lái)越多,傳統(tǒng)的基于總線的片上互連結(jié)構(gòu)已經(jīng)在帶寬、功耗、可靠性、擴(kuò)展性等方面表 現(xiàn)出越來(lái)越多的局限性,片上通信己經(jīng)取代計(jì)算成為集成電路設(shè)計(jì)的瓶頸。片上網(wǎng)絡(luò) (Network-on-Chip, NoC)作為集成電路設(shè)計(jì)領(lǐng)域的一項(xiàng)關(guān)鍵技術(shù),用于解決芯片規(guī)模增大 所帶來(lái)的片上互連問(wèn)題。片上網(wǎng)絡(luò)主要由路由器、網(wǎng)絡(luò)接口和物理鏈路構(gòu)成。拓?fù)浣Y(jié)構(gòu)是片上網(wǎng)絡(luò)研究的一個(gè)熱點(diǎn)問(wèn)題,該方面的研究可以分成規(guī)則拓?fù)浣Y(jié)構(gòu)的研究 和非規(guī)則拓?fù)浣Y(jié)構(gòu)的研究。規(guī)則型結(jié)構(gòu)具有重用性;不規(guī)則型結(jié)構(gòu)是針對(duì)具體的應(yīng)用設(shè)計(jì)的結(jié)構(gòu),雖然能夠提供更好的通信性能,但是不具有可重用性。在拓?fù)浣Y(jié)構(gòu)研究中,具體應(yīng)用 被抽象為一個(gè)有向通信圖,TP核被抽象為有向通信圖的節(jié)點(diǎn),而IP核之間的業(yè)務(wù)量被抽象 為帶權(quán)重的有向通信圖的邊。目前,在不規(guī)則拓?fù)浣Y(jié)構(gòu)的研究中仍沒(méi)有很好解決的一個(gè)問(wèn)題 就是設(shè)計(jì)自動(dòng)化問(wèn)題,即如何根據(jù)具體的有向通信圖生成最優(yōu)或較優(yōu)的非規(guī)則拓?fù)?。發(fā)明內(nèi)容本發(fā)明的目的是為片上網(wǎng)絡(luò)提供一種不規(guī)則拓?fù)浣Y(jié)構(gòu)生成方法,該方法能根據(jù)具體的應(yīng) 用生成較優(yōu)的不規(guī)則拓?fù)浣Y(jié)構(gòu)。該方法的基本思想是將描述具體應(yīng)用的有向通信圖的節(jié)點(diǎn)分成很多小集合。所謂集合, 就是滿足以下條件的有向通信圖的節(jié)點(diǎn)的組合1)集合內(nèi)部各個(gè)節(jié)點(diǎn)向集合外其他各個(gè)節(jié)點(diǎn) 傳輸?shù)臉I(yè)務(wù)量的總和不會(huì)超過(guò)一個(gè)路由器端口所能承受的最大業(yè)務(wù)量,該集合外部各個(gè)節(jié)點(diǎn) 向集合內(nèi)部每個(gè)節(jié)點(diǎn)傳輸?shù)臉I(yè)務(wù)量的總和不會(huì)超過(guò)一個(gè)路由器端口所能承受的最大業(yè)務(wù)量, 由于一個(gè)節(jié)點(diǎn)最多連接到一個(gè)路由器端口,因此路由器端口所能承受的最大業(yè)務(wù)量至少應(yīng)大 于任意一個(gè)節(jié)點(diǎn)的向其他所有節(jié)點(diǎn)傳輸?shù)臉I(yè)務(wù)量的總和,也至少應(yīng)該大于所有其它節(jié)點(diǎn)向某 節(jié)點(diǎn)傳輸?shù)臉I(yè)務(wù)量的總和;2)考慮到路由器設(shè)計(jì)的復(fù)雜度,各路由器的端口數(shù)不能超過(guò)5, 因此一個(gè)集合里的節(jié)點(diǎn)數(shù)目不能超過(guò)4。屬于同一個(gè)集合的所有節(jié)點(diǎn)被連接到同一個(gè)邊緣路 由器上。該方法可以分為三個(gè)步驟1)把描述片上網(wǎng)絡(luò)應(yīng)用的通信圖中的節(jié)點(diǎn)分成很多小集 合,每個(gè)集合中的所有節(jié)點(diǎn)用一個(gè)邊緣路由器連接后形成新的節(jié)點(diǎn),從而形成新的有向通信 圖;對(duì)新的有向通信圖繼續(xù)進(jìn)行集合劃分,直到不能形成一個(gè)新的集合,或者節(jié)點(diǎn)數(shù)目小于 或等于5為止。2)根據(jù)最終形成的通信圖的節(jié)點(diǎn)數(shù)目確定核心網(wǎng)絡(luò)路由器數(shù)目并生成核心網(wǎng) 絡(luò)。3)縮減冗余的邊緣路由器簡(jiǎn)化網(wǎng)絡(luò)。在描述本發(fā)明的具體步驟前,我們先定義五個(gè)概念1)構(gòu)成集合^的所有節(jié)點(diǎn)都稱(chēng)為集 合^的元素。2)如果兩個(gè)集合存在共同的元素,則稱(chēng)兩個(gè)集合存在交集。3)如果集合S中 的所有元素屬于集合^且^中存在元素不屬于S,則稱(chēng)集合^包含集合S,表示為Bc^否 則稱(chēng)集合J不包含集合S,表示為BC^。 4) 一個(gè)集合中的各個(gè)節(jié)點(diǎn)與集合外的每個(gè)節(jié)點(diǎn)之 間的通信量的總和稱(chēng)為該集合的外界通信量。5)對(duì)于邊緣路由器,連接有向通信圖節(jié)點(diǎn)的端 口稱(chēng)為本地端口,其它端口稱(chēng)為網(wǎng)絡(luò)端口, 一個(gè)邊緣路由器可以有多個(gè)本地端口但只有一個(gè)網(wǎng)絡(luò)端口。假定某有向通信圖的節(jié)點(diǎn)數(shù)目為",則所有可能構(gòu)成集合的節(jié)點(diǎn)組合的數(shù)目為本發(fā)明的特征在于所述方法是在計(jì)算機(jī)上先后按以下步驟依次實(shí)現(xiàn)的步驟(1).將描述應(yīng)用的通信圖輸入計(jì)算機(jī)(包括通信圖的節(jié)點(diǎn)數(shù)和任意節(jié)點(diǎn)到任意其 它節(jié)點(diǎn)的業(yè)務(wù)量),設(shè)置路由器端口所能承受的最大業(yè)務(wù)量,清空集合緩存庫(kù),初始化W并令 ''=1;步驟(2).判斷第Z個(gè)口j能構(gòu)成集合的節(jié)點(diǎn)組合《是否滿足成為一個(gè)集合的條件;如果滿 足成為一個(gè)集合的條件,則轉(zhuǎn)到步驟(3);如果不滿足成為一個(gè)集合的條件,則轉(zhuǎn)到步驟(5); 歩驟(3).判斷集合緩存庫(kù)里是否存在一個(gè)或多個(gè)集合D,使得/^cD或flcz^如果不存在,則轉(zhuǎn)到步驟(4);如果存在某些集合D使得Z)ce,則刪除這些集合D后轉(zhuǎn)到步驟(4);如果存在某些集合D使得《cZ),則轉(zhuǎn)到歩驟(5);步驟(4).判斷f是否與集合緩存庫(kù)中的某些集合存在交集;如果不存在交集,則轉(zhuǎn)到步驟(5);如果存在交集,則對(duì)存在交集的集合的交集部分進(jìn)行重新分配,使得這些集合仍 然是集合且它們的外界通信量的總和最小;如果多種分配方式均能使這些集合的外界通信量 的總和達(dá)到最小,則選擇能使這些集合的外界通信量大小最接近的分配方式;最后將分配后 得到的新集合存入集合緩存庫(kù)中替換分配前的集合并轉(zhuǎn)到步驟(5);步驟(5).,自加l,然后判斷/是否等于W + l;如果f不等于7V + l,則跳轉(zhuǎn)到步驟(2); 如果Z等于W + 1,則轉(zhuǎn)到步驟(6);步驟(6).判斷集合緩存庫(kù)中是否有集合以及集合數(shù)目是否大于5;如果有集合且集合 數(shù)目大于5,則把集合緩存庫(kù)中的每個(gè)集合中的所有節(jié)點(diǎn)用一個(gè)邊緣路由器連接成一個(gè)新的 大節(jié)點(diǎn),形成新的通信圖,清空集合緩存庫(kù),根據(jù)新的通信圖更新W,令 1并跳轉(zhuǎn)到步驟 (2);如果有集合但集合數(shù)目不大于5,則集合劃分結(jié)束,把集合緩存庫(kù)中的每個(gè)集合中的所有節(jié)點(diǎn)用一個(gè)邊緣路由器連接成一個(gè)新的大節(jié)點(diǎn),形成新的通信圖并跳轉(zhuǎn)到步驟(7):如果沒(méi)有集合,則集合劃分結(jié)束并轉(zhuǎn)到步驟(7);步驟(7).根據(jù)最終通信圖的節(jié)點(diǎn)數(shù)2,確定核心網(wǎng)絡(luò)路由器數(shù)目,生成核心網(wǎng)絡(luò)若e",則核心網(wǎng)絡(luò)路由器數(shù)目為1,然后把2個(gè)節(jié)點(diǎn)直接連接到一個(gè)核心網(wǎng)絡(luò)路由器上,由 上面的定義可知,每個(gè)節(jié)點(diǎn)輸入和輸出的總業(yè)務(wù)量都小于一個(gè)路由器端口所能承受的業(yè)務(wù)量, 因此所生成的核心網(wǎng)絡(luò)滿足通信要求,T是結(jié)束該步驟;若2>5,則核心網(wǎng)絡(luò)路由器數(shù)目等于e,然后把e個(gè)核心網(wǎng)絡(luò)路由器連成一個(gè)環(huán),再把2個(gè)節(jié)點(diǎn)分別連到e個(gè)核心網(wǎng)絡(luò)路由器上,接著分配路由路徑,并在保證每個(gè)核心網(wǎng)絡(luò)路由器的端口數(shù)不超過(guò)5的條件下通過(guò)添 加核心網(wǎng)絡(luò)路由器端口和鏈路來(lái)滿足通信要求。步驟(8).刪除冗余的邊緣路由器,簡(jiǎn)化網(wǎng)絡(luò);假定p為刪除之前某邊緣路由器S的本地端口數(shù),;fc為刪除之前邊緣路由器五的網(wǎng)絡(luò)接口所連接的路由器F的端口數(shù),如果"^6,則刪除邊緣路由器£,并把與邊緣路由器£本地端口相連的節(jié)點(diǎn)直接連接到路由器^上,使其端口數(shù)為/t + p-l,剛好滿足不超過(guò)5的條件。由上述方法簡(jiǎn)化后的網(wǎng)絡(luò),仍然滿足通信要求,解釋如下在路由器F中,對(duì)于與被刪除的邊緣路由器£本地端口相連的節(jié)點(diǎn)相連的端 口,由節(jié)點(diǎn)的定義可知經(jīng)過(guò)這些路由器端口的業(yè)務(wù)量不會(huì)超過(guò)一個(gè)路由器端口所能承受的業(yè) 務(wù)量;對(duì)于其它端口,由于在刪除邊緣路由器£前后,經(jīng)過(guò)這些端口的業(yè)務(wù)量不變,因此這 些端口的業(yè)務(wù)量仍然不會(huì)超過(guò)一個(gè)路由器端口所能承受的業(yè)務(wù)量。該方法有如下優(yōu)點(diǎn)1)滿足應(yīng)用的通信性能要求;2)多個(gè)IP核接在同一個(gè)路由器,能 很好節(jié)省路由器的數(shù)目,從而減小了實(shí)現(xiàn)面積;3)多個(gè)IP核接在同一個(gè)路由器,有效縮短 了通信路徑長(zhǎng)度,從而減小通信功耗。例如,對(duì)于MPEG4解碼器,該方法生成的片上網(wǎng)絡(luò)拓 撲結(jié)構(gòu)只需要4個(gè)路由器,路由器的總端口數(shù)目為18,很好節(jié)省了片上網(wǎng)絡(luò)的實(shí)現(xiàn)面積。
圖1.該不規(guī)則拓?fù)浣Y(jié)構(gòu)生成方法的軟件流程框2. MPEG 4解碼器通信圖。圖3.集合劃分后形成的新的通信圖。圖4.生成的初步拓?fù)浣Y(jié)構(gòu)。圖5.生成的最終拓?fù)浣Y(jié)構(gòu)。
具體實(shí)施方式
在描述具體實(shí)施方式
以前,我們先定義五個(gè)概念1)構(gòu)成集合乂的所有節(jié)點(diǎn)都稱(chēng)為集合^的元素。2)如果兩個(gè)集合存在共同的元素,則稱(chēng)兩個(gè)集合存在交集。3)如果集合5中的 所有元素屬于集合力且^中存在元素不屬于S,則稱(chēng)集合X包含集合S,表示為Bcz八否則 稱(chēng)集合^不包含集合6,表示為ScZ^。 4) 一個(gè)集合中的各個(gè)節(jié)點(diǎn)與集合外的每個(gè)節(jié)點(diǎn)之間 的通信量的總和稱(chēng)為該集合的外界通信量。5)對(duì)于邊緣路由器,連接有向通信圖節(jié)點(diǎn)的端口 稱(chēng)為本地端口,其它端口稱(chēng)為網(wǎng)絡(luò)端口, 一個(gè)邊緣路由器可以有多個(gè)本地端口但只有一個(gè)網(wǎng) 絡(luò)端口。假定某有向通信圖的節(jié)點(diǎn)數(shù)目為",則所有可能構(gòu)成集合的節(jié)點(diǎn)組合的數(shù)目為jV = C 2+C 3+C 4 0該方法在計(jì)算機(jī)上運(yùn)行,實(shí)現(xiàn)該方法的軟件流程框圖如圖l所示。描述如下步驟(1).將描述應(yīng)用的通信圖輸入計(jì)算機(jī)(包括通信圖的節(jié)點(diǎn)數(shù)和任意節(jié)點(diǎn)到任意其 它節(jié)點(diǎn)的業(yè)務(wù)量),設(shè)置路由器端口所能承受的最大業(yè)務(wù)量,清空集合緩存庫(kù),初始化W并令步驟(2).判斷第Z個(gè)可能構(gòu)成集合的節(jié)點(diǎn)組合f是否滿足成為一個(gè)集合的條件;如果滿 足成為一個(gè)集合的條件,則轉(zhuǎn)到步驟(3);如果不滿足成為一個(gè)集合的條件,則轉(zhuǎn)到步驟(5); 步驟(3).判斷集合緩存庫(kù)里是否存在一個(gè)或多個(gè)集合Z ,使得《cD或Dc^如果不存在,則轉(zhuǎn)到步驟(4);如果存在某些集合D使得Dc/;,則刪除這些集合Z)后轉(zhuǎn)到步驟(4);如果存在某些集合D使得^c5,則轉(zhuǎn)到步驟(5);步驟(4).判斷S是否與集合緩存庫(kù)中的某些集合存在交集;如果不存在交集,則轉(zhuǎn)到步驟(5);如果存在交集,則對(duì)存在交集的集合的交集部分進(jìn)行重新分配,使得這些集合仍 然是集合且它們的外界通信量的總和最小;如果多種分配方式均能使這些集合的外界通信量 的總和達(dá)到最小,則選擇能使這些集合的外界通信量大小最接近的分配方式;最后將分配后 得到的新集合存入集合緩存庫(kù)中替換分配前的集合并轉(zhuǎn)到步驟(5);步驟(5).,自加l,然后判斷/是否等于W + l;如果,'不等于7V + 1,則跳轉(zhuǎn)到步驟(2); 如果,等于7V + 1,則轉(zhuǎn)到步驟(6);步驟(6).判斷集合緩存庫(kù)中是否有集合以及集合數(shù)目是否大于5;如果有集合且集合 數(shù)目大于5,則把集合緩存庫(kù)中的每個(gè)集合中的所有節(jié)點(diǎn)用一個(gè)邊緣路由器連接成一個(gè)新的 大節(jié)點(diǎn),形成新的通信圖,清空集合緩存庫(kù),根據(jù)新的通信圖更新W,令/ = 1并跳轉(zhuǎn)到步驟 (2);如果有集合但集合數(shù)目不大于5,則集合劃分結(jié)束,把集合緩存庫(kù)中的每個(gè)集合中的 所有節(jié)點(diǎn)用一個(gè)邊緣路由器連接成一個(gè)新的大節(jié)點(diǎn),形成新的通信閣并跳轉(zhuǎn)到步驟(7);如 果沒(méi)有集合,則集合劃分結(jié)束并轉(zhuǎn)到步驟(7);步驟(7).根據(jù)最終通信圖的節(jié)點(diǎn)數(shù)e,確定核心網(wǎng)絡(luò)路由器數(shù)目,生成核心網(wǎng)絡(luò)若2",則核心網(wǎng)絡(luò)路由器數(shù)目為1,然后把2個(gè)節(jié)點(diǎn)直接連接到一個(gè)核心網(wǎng)絡(luò)路由器上,由 上面的定義可知,每個(gè)節(jié)點(diǎn)輸入和輸出的總業(yè)務(wù)量都小于一個(gè)路由器端口所能承受的業(yè)務(wù)量, 因此所生成的核心網(wǎng)絡(luò)滿足通信要求,于是結(jié)束該步驟若e>5,則核心網(wǎng)絡(luò)路由器數(shù)目等于e,然后把e個(gè)核心網(wǎng)絡(luò)路由器連成一個(gè)環(huán),再把e個(gè)節(jié)點(diǎn)分別連到e個(gè)核心網(wǎng)絡(luò)路由器上,接著分配路由路徑,并在保證每個(gè)核心網(wǎng)絡(luò)路由器的端口數(shù)不超過(guò)5的條件下通過(guò)添加核心網(wǎng)絡(luò)路由器端口和鏈路來(lái)滿足通信要求。步驟(8).刪除冗余的邊緣路由器,簡(jiǎn)化網(wǎng)絡(luò);假定p為刪除之前某邊緣路由器fi的本地端口數(shù),t為刪除之前邊緣路由器E的網(wǎng)絡(luò)接口所連接的路由器F的端口數(shù),如果yt + ;^6,則刪除邊緣路由器£,并把與邊緣路由器£本地端口相連的節(jié)點(diǎn)直接連接到路由器^上,使其端口數(shù)為A + p-l,剛好滿足不超過(guò)5的條件。由上述方法簡(jiǎn)化后的網(wǎng)絡(luò),仍然滿足通信要求,解釋如下在路由器F中,對(duì)于與被刪除的邊緣路由器£本地端口相連的節(jié)點(diǎn)相連的端 口,由節(jié)點(diǎn)的定義可知經(jīng)過(guò)這些路由器端口的業(yè)務(wù)量不會(huì)超過(guò)一個(gè)路由器端口所能承受的業(yè) 務(wù)量;對(duì)于其它端口,由于在刪除邊緣路由器£前后,經(jīng)過(guò)這些端口的業(yè)務(wù)量不變,因此這 些端口的業(yè)務(wù)量仍然不會(huì)超過(guò)一個(gè)路由器端口所能承受的業(yè)務(wù)量。下面給出一個(gè)MPEG 4解碼器的片上網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成例子。MPEG 4解碼器的通信圖如 圖2所示,假定路由器所有端口的最大允許通信量為1793 (剛好等于"meml"節(jié)點(diǎn)的向其他 所有節(jié)點(diǎn)傳輸?shù)臉I(yè)務(wù)量的總和)。其拓?fù)浣Y(jié)構(gòu)生成過(guò)程描述如下首先將MPEG 4解碼器的通 信圖輸入計(jì)算機(jī),然后根據(jù)上述步驟(1)到步驟(5)進(jìn)行集合劃分后得到四個(gè)集合,分別 是{"meml,,、"叩sp,,} , { "cpu,, 、 "mem2"、 "rast"}, { "vu". 、 "dsp"、 "au,,)禾口( "bab,,、"mem3"、 "risc"、 "idct" };由于集合數(shù)目小于5,則集合劃分結(jié)束,把四個(gè)集合分布用四 個(gè)邊緣路由器連接成四個(gè)新的大節(jié)點(diǎn),形成的最終通信圖如圖3所示。由于最終通信圖的頂點(diǎn)數(shù)目e為4,則核心網(wǎng)絡(luò)路由器數(shù)目為1,將最終通信圖的四個(gè)節(jié)點(diǎn)用一個(gè)核心網(wǎng)絡(luò)路由器進(jìn)行連接,得到初步拓?fù)浣Y(jié)構(gòu)(如圖4所示);接著,刪除冗余的邊緣路由器,得到最終拓?fù)?結(jié)構(gòu)(如圖5所示)。對(duì)于MPEG 4解碼器,該方法生成的片上網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)只需要4個(gè)路由 器,路由器的總端口數(shù)目為18,很好節(jié)省了片上網(wǎng)絡(luò)的實(shí)現(xiàn)面積。
權(quán)利要求
1.用于片上網(wǎng)絡(luò)的一種不規(guī)則拓?fù)浣Y(jié)構(gòu)生成方法,其特征在于,所述方法是在計(jì)算機(jī)上先后按以下步驟生成的步驟(1).把描述具體應(yīng)用的有向通信圖輸入計(jì)算機(jī),其中節(jié)點(diǎn)表示單芯片中所集成的各個(gè)IP核,帶權(quán)重的邊表示各IP核之間的業(yè)務(wù)量,同時(shí)設(shè)置一個(gè)路由器端口所能承受的最大業(yè)務(wù)量并清空集合緩存庫(kù),所述集合是指滿足以下條件的有向通信圖的節(jié)點(diǎn)組合該集合內(nèi)部各個(gè)節(jié)點(diǎn)向集合外其他各個(gè)節(jié)點(diǎn)傳輸?shù)臉I(yè)務(wù)量的總和不會(huì)超過(guò)一個(gè)路由器端口所能承受的最大業(yè)務(wù)量,該集合外部各個(gè)節(jié)點(diǎn)向集合內(nèi)部每個(gè)節(jié)點(diǎn)傳輸?shù)臉I(yè)務(wù)量的總和不會(huì)超過(guò)一個(gè)路由器端口所能承受的最大業(yè)務(wù)量,每個(gè)集合里的節(jié)點(diǎn)數(shù)目至多不超過(guò)4個(gè);各個(gè)路由器,包括核心網(wǎng)絡(luò)路由器和邊緣路由器,的端口至多為5個(gè),每個(gè)節(jié)點(diǎn)最多連接到一個(gè)路由器的端口,并且初始化可能構(gòu)成集合的節(jié)點(diǎn)組合數(shù)目N,<math-cwu><![CDATA[<math> <mrow><mi>N</mi><mo>=</mo><msubsup> <mi>C</mi> <mi>n</mi> <mn>2</mn></msubsup><mo>+</mo><msubsup> <mi>C</mi> <mi>n</mi> <mn>3</mn></msubsup><mo>+</mo><msubsup> <mi>C</mi> <mi>n</mi> <mn>4</mn></msubsup><mo>,</mo> </mrow></math>]]></math-cwu><!--img id="icf0001" file="S2008101044035C00011.gif" wi="27" he="4" top= "95" left = "122" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/-->其中n為所輸入的有向通信圖的節(jié)點(diǎn)數(shù)目,且令i=1;步驟(2).判斷第i個(gè)可能構(gòu)成集合的節(jié)點(diǎn)組合Pi是否滿足成為一個(gè)集合的條件若滿足成為一個(gè)集合的條件,則轉(zhuǎn)步驟(3),若未滿足成為一個(gè)集合的條件,則轉(zhuǎn)步驟(5);步驟(3).判斷集合緩存庫(kù)里是否存在一個(gè)或多個(gè)集合D,使得<math-cwu><![CDATA[<math> <mrow><msub> <mi>P</mi> <mi>i</mi></msub><mo>⋐</mo><mi>D</mi> </mrow></math>]]></math-cwu><!--img id="icf0002" file="S2008101044035C00012.gif" wi="9" he="3" top= "138" left = "147" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/-->或<math-cwu><![CDATA[<math> <mrow><mi>D</mi><mo>⋐</mo><msub> <mi>P</mi> <mi>i</mi></msub><mo>:</mo> </mrow></math>]]></math-cwu><!--img id="icf0003" file="S2008101044035C00013.gif" wi="11" he="3" top= "138" left = "162" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/-->若不存在,則轉(zhuǎn)到步驟(4),若存在某些集合D,使得<math-cwu><![CDATA[<math> <mrow><mi>D</mi><mo>⋐</mo><msub> <mi>P</mi> <mi>i</mi></msub><mo>,</mo> </mrow></math>]]></math-cwu><!--img id="icf0004" file="S2008101044035C00014.gif" wi="11" he="3" top= "157" left = "79" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/-->則刪除這些集合D后轉(zhuǎn)步驟(4),若存在某些集合D,使得<math-cwu><![CDATA[<math> <mrow><msub> <mi>P</mi> <mi>i</mi></msub><mo>⋐</mo><mi>D</mi><mo>,</mo> </mrow></math>]]></math-cwu><!--img id="icf0005" file="S2008101044035C00015.gif" wi="11" he="3" top= "169" left = "79" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/-->則轉(zhuǎn)到步驟(5);步驟(4).判斷Pi是否與集合緩存庫(kù)中的某些集合D存在交集若不存在交集,則轉(zhuǎn)到步驟(5),若存在交集,則對(duì)交集部分進(jìn)行重新分配,使得這些重新分配后的集合仍然滿足集合的條件且它們的外界通信量總和最小,然后把重新分配后得到的新集合存入集合緩存庫(kù)中去替換重新分配前的集合,轉(zhuǎn)步驟(5);步驟(5).使i+1,判斷是否等于N+1;若不等于N+1,則返回步驟(2),若等于N+1,則轉(zhuǎn)步驟(6);步驟(6).判斷集合緩存庫(kù)中的集合數(shù)目是否大于5若集合數(shù)目大于5,則把集合緩存庫(kù)中的每個(gè)集合中的所有節(jié)點(diǎn)用一個(gè)邊緣路由器連接成一個(gè)新的大節(jié)點(diǎn),形成新的有向通信圖,清空集合緩存庫(kù),再根據(jù)新的有向通信圖的節(jié)點(diǎn)數(shù)目更新N值,令i=1,返回步驟(2),若集合數(shù)目不大于5,則集合劃分結(jié)束,把集合緩存庫(kù)中的每個(gè)集合的所有節(jié)點(diǎn)用一個(gè)邊緣路由器連接成一個(gè)新的大節(jié)點(diǎn),形成最終的有向通信圖,轉(zhuǎn)步驟(7),若沒(méi)有集合,則集合劃分結(jié)算并轉(zhuǎn)步驟(7);步驟(7).根據(jù)最終通信圖的節(jié)點(diǎn)數(shù)Q,確定核心網(wǎng)絡(luò)路由器數(shù)目,生成核心網(wǎng)絡(luò)若Q≤5,則核心網(wǎng)絡(luò)路由器數(shù)目為1,然后把Q個(gè)節(jié)點(diǎn)直接連接到一個(gè)核心網(wǎng)絡(luò)路由器上,并結(jié)束該步驟,若Q>5,則核心網(wǎng)絡(luò)路由器數(shù)目等于Q,然后把Q個(gè)核心網(wǎng)絡(luò)路由器連成一個(gè)環(huán),再把Q個(gè)節(jié)點(diǎn)分別連到Q個(gè)核心網(wǎng)絡(luò)路由器上,接著分配路由路徑,并在保證每個(gè)核心網(wǎng)絡(luò)路由器的端口數(shù)不超過(guò)5的條件下通過(guò)添加核心網(wǎng)絡(luò)路由器端口和鏈路來(lái)滿足通信要求。
2. 根據(jù)權(quán)利要求l所述的用于片上網(wǎng)絡(luò)的一種不規(guī)則拓?fù)浣Y(jié)構(gòu)生成方法,其特征在于,在所 述步驟(7)之后,增加一個(gè)步驟(8):步驟(8).刪除冗余的邊緣路由器,簡(jiǎn)化網(wǎng)絡(luò) 若A: + p ",其中,p為刪除之前某邊緣路由器的本地端口數(shù),/t為刪除之前某邊緣路由器的網(wǎng)絡(luò)接口所連接的路由器F的端口數(shù),貝ij,刪除該邊緣路由器,并把與該邊緣路由器本地端口相連的節(jié)點(diǎn)直接連接到路由器F上,使其端口數(shù)為"p-i。
3. 根據(jù)權(quán)利要求1所述的用于片上網(wǎng)絡(luò)的一種不規(guī)則拓?fù)浣Y(jié)構(gòu)生成方法,其特征在于,在步 驟(4)中,若多種分配方式均能使這些集合的外界通信量的總和達(dá)到最小,則選擇能使這些 集合的外界通信量大小最接近的分配方式。
全文摘要
用于片上網(wǎng)絡(luò)的一種不規(guī)則拓?fù)浣Y(jié)構(gòu)生成方法屬于片上互連網(wǎng)絡(luò)設(shè)計(jì)領(lǐng)域,其特征在于,含有以下步驟把描述片上網(wǎng)絡(luò)應(yīng)用的通信圖中的節(jié)點(diǎn)分成很多小集合,每個(gè)集合中的所有節(jié)點(diǎn)用一個(gè)邊緣路由器連接后形成新的節(jié)點(diǎn),從而形成新的有向通信圖;對(duì)新的有向通信圖繼續(xù)進(jìn)行集合劃分,直到不能形成一個(gè)新的集合,或者節(jié)點(diǎn)數(shù)目小于或等于5為止;再根據(jù)最終形成的通信圖的節(jié)點(diǎn)數(shù)目確定核心網(wǎng)絡(luò)路由器數(shù)目并生成核心網(wǎng)絡(luò);縮減冗余的邊緣路由器簡(jiǎn)化網(wǎng)絡(luò)。本發(fā)明具有再滿足具體應(yīng)用的通信要求下,面積小、通信功耗低的優(yōu)點(diǎn)。
文檔編號(hào)H04L12/02GK101267315SQ20081010440
公開(kāi)日2008年9月17日 申請(qǐng)日期2008年4月18日 優(yōu)先權(quán)日2008年4月18日
發(fā)明者曾烈光, 林世俊, 厲 蘇, 蘇海波, 金德鵬, 雪 陳 申請(qǐng)人:清華大學(xué)