本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種片上網(wǎng)絡(luò)NoC及數(shù)據(jù)傳輸?shù)姆椒ā?/p>
背景技術(shù):
片上網(wǎng)絡(luò)(NoC,Network-on-Chip)是多核和眾核架構(gòu)中的主要組成部分,能夠?qū)⑻幚砥骱透鞣N不同功能的單元都集成到一塊芯片中。但是,隨著NoC的不斷發(fā)展,其集成規(guī)模越來越大,導(dǎo)致一系列性能下降的問題。比如說,由于NoC中傳輸?shù)臄?shù)據(jù)具有不確定性,在數(shù)據(jù)流量分布不均勻時(shí),部分鏈路不可避免會出現(xiàn)擁塞的問題,如突發(fā)的網(wǎng)絡(luò)會議、視頻電話等。
傳統(tǒng)解決NoC擁塞的方法主要是基于擁塞感知而設(shè)計(jì)的路由算法或路由規(guī)則,從而繞開數(shù)據(jù)流量較大的區(qū)域或子網(wǎng)絡(luò)。如圖1所示,數(shù)據(jù)傳輸從源節(jié)點(diǎn)S到目的節(jié)點(diǎn)D,需要基于全局鏈路狀態(tài)和擁塞信息,計(jì)算從源節(jié)點(diǎn)S到目的節(jié)點(diǎn)D各條傳輸路徑的精確擁塞值,同時(shí)需要考慮鏈路擁塞狀態(tài)并定義不同的擁塞權(quán)重,從而根據(jù)最短路徑算法進(jìn)行傳輸,緩解網(wǎng)絡(luò)擁塞情況。同時(shí),傳統(tǒng)解決NoC擁塞的方法存在以下缺陷:1、當(dāng)NoC的集成規(guī)模較大、源節(jié)點(diǎn)與目的節(jié)點(diǎn)距離較遠(yuǎn)時(shí),擁塞信息統(tǒng)計(jì)的計(jì)算量較大,并且在傳輸過程中局部的擁塞信息時(shí)刻都會發(fā)生改變;2、每個(gè)節(jié)點(diǎn)都需要統(tǒng)計(jì)各方向擁塞信息,并通過數(shù)據(jù)包發(fā)送給相鄰節(jié)點(diǎn),造成不必要的開銷,同時(shí)增大了功耗。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種片上網(wǎng)絡(luò)NoC及數(shù)據(jù)傳輸?shù)姆椒?,可以解決NoC擁塞的問題,提高數(shù)據(jù)傳輸效率,并且具有開銷小和功耗低的優(yōu)點(diǎn)。
本發(fā)明實(shí)施例第一方面提供了一種片上網(wǎng)絡(luò)NoC,所述NoC包括第一網(wǎng)絡(luò)層、第二網(wǎng)絡(luò)層和連接通道,所述第一網(wǎng)絡(luò)層被劃分為多個(gè)子網(wǎng)絡(luò),每個(gè)所述子網(wǎng)絡(luò)包括多個(gè)普通節(jié)點(diǎn)和一個(gè)公共節(jié)點(diǎn),所述第二網(wǎng)絡(luò)層包括多個(gè)通道節(jié)點(diǎn), 所述公共節(jié)點(diǎn)通過所述連接通道與所述通道節(jié)點(diǎn)連接,其中:
所述普通節(jié)點(diǎn),用于作為源節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,或作為目的節(jié)點(diǎn)接收數(shù)據(jù)包;
所述公共節(jié)點(diǎn),用于接收其所屬的子網(wǎng)絡(luò)中的所述源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至通道節(jié)點(diǎn),或接收通道節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至其所屬的子網(wǎng)絡(luò)中的所述目的節(jié)點(diǎn);
所述通道節(jié)點(diǎn),用于接收所述源節(jié)點(diǎn)所屬的子網(wǎng)絡(luò)中的公共節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包,并轉(zhuǎn)發(fā)至所述目的節(jié)點(diǎn)所屬的子網(wǎng)絡(luò)中的公共節(jié)點(diǎn)。
在第一方面的第一種可能實(shí)現(xiàn)方式中,所述公共節(jié)點(diǎn)和所述通道節(jié)點(diǎn)均包括路由器,所述路由器包括普通端口和通道端口,其中:
所述公共節(jié)點(diǎn)的路由器的普通端口與所述普通節(jié)點(diǎn)連接,所述公共節(jié)點(diǎn)的路由器的通道端口與所述連接通道連接;
所述通道節(jié)點(diǎn)的路由器的普通端口與其它的通道節(jié)點(diǎn)連接,所述通道節(jié)點(diǎn)的路由器的通道端口與所述連接通道連接。
結(jié)合第一種可能實(shí)現(xiàn)方式,在第一方面的第二種可能實(shí)現(xiàn)方式中,所述連接通道包括固定通道和可變通道,其中,所述固定通道的傳輸方向是不變的,所述可變通道的傳輸方向是可變的。
結(jié)合第二種可能實(shí)現(xiàn)方式,在第一方面的第三種可能實(shí)現(xiàn)方式中,所述NoC還包括方向控制器,所述方向控制器,用于根據(jù)預(yù)設(shè)的算法控制所述可變通道的傳輸方向。
結(jié)合第三種可能實(shí)現(xiàn)方式,在第一方面的第四種可能實(shí)現(xiàn)方式中,所述方向控制器,具體用于:
獲取在所述連接通道的第一方向上待傳輸?shù)臄?shù)據(jù)包的流量,以及獲取在所述連接通道的第一方向上待傳輸?shù)臄?shù)據(jù)包的流量,其中所述第一方向和所述第二方向互為逆方向;
比較所述第一方向上待傳輸?shù)臄?shù)據(jù)包的流量與所述第二方向上待傳輸?shù)臄?shù)據(jù)包的流量的大?。?/p>
在所述第一方向上待傳輸?shù)臄?shù)據(jù)包的流量大于所述第二方向上待傳輸?shù)臄?shù)據(jù)包的流量時(shí),控制所述可變通道的傳輸方向?yàn)樗龅谝环较颍?/p>
在所述第一方向上待傳輸?shù)臄?shù)據(jù)包的流量小于所述第二方向上待傳輸?shù)臄?shù)據(jù)包的流量時(shí),控制所述可變通道的傳輸方向?yàn)樗龅诙较颉?/p>
在第一方面的第五種可能實(shí)現(xiàn)方式中,所述數(shù)據(jù)包攜帶有所述源節(jié)點(diǎn)的地址、所述目標(biāo)節(jié)點(diǎn)的地址和該數(shù)據(jù)包的屬性。
結(jié)合第五種可能實(shí)現(xiàn)方式,在第一方面的第六種可能實(shí)現(xiàn)方式中,所述公共節(jié)點(diǎn),具體用于:
接收其所屬的子網(wǎng)絡(luò)中的所述源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包;
根據(jù)所述數(shù)據(jù)包攜帶的源節(jié)點(diǎn)的地址和目標(biāo)節(jié)點(diǎn)的地址,判斷所述源節(jié)點(diǎn)和所述目標(biāo)節(jié)點(diǎn)是否處于不同的子網(wǎng)絡(luò)且兩者之間的距離大于預(yù)設(shè)的距離值;
若是,則將該數(shù)據(jù)包轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)。
結(jié)合第六種可能實(shí)現(xiàn)方式,在第一方面的第七種可能實(shí)現(xiàn)方式中,所述子網(wǎng)絡(luò)中的各個(gè)普通節(jié)點(diǎn)與公共節(jié)點(diǎn)之間的平均距離為2Hop,其中,所述Hop表示兩個(gè)節(jié)點(diǎn)之間相隔的節(jié)點(diǎn)數(shù)。
結(jié)合第七種可能實(shí)現(xiàn)方式,在第一方面的第八種可能實(shí)現(xiàn)方式中,所述預(yù)設(shè)的距離值為4Hop。
結(jié)合第五種可能實(shí)現(xiàn)方式,在第一方面的第九種可能實(shí)現(xiàn)方式中,所述公共節(jié)點(diǎn),具體用于:
接收其所屬的子網(wǎng)絡(luò)中的所述源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包;
判斷所述數(shù)據(jù)包的屬性是否為重要數(shù)據(jù)、緊急數(shù)據(jù)或?qū)崟r(shí)數(shù)據(jù);
若是,則將該數(shù)據(jù)包轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)。
本發(fā)明實(shí)施例第二方面提供了一種數(shù)據(jù)傳輸?shù)姆椒ǎ龇椒☉?yīng)用于片上網(wǎng)絡(luò)NoC,所述NoC包括第一網(wǎng)絡(luò)層、第二網(wǎng)絡(luò)層和連接通道,所述第一網(wǎng)絡(luò)層被劃分為多個(gè)子網(wǎng)絡(luò),每個(gè)所述子網(wǎng)絡(luò)包括多個(gè)普通節(jié)點(diǎn)和一個(gè)公共節(jié)點(diǎn),所述第二網(wǎng)絡(luò)層包括多個(gè)通道節(jié)點(diǎn),所述公共節(jié)點(diǎn)通過所述連接通道與所述通道節(jié)點(diǎn)連接,所述方法包括:
第一普通節(jié)點(diǎn)向其所屬的子網(wǎng)絡(luò)中的第一公共節(jié)點(diǎn)發(fā)送數(shù)據(jù)包;
所述第一公共節(jié)點(diǎn)接收所述第一普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至通道節(jié)點(diǎn);
所述通道節(jié)點(diǎn)接收所述第一公共節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至第二普通節(jié)點(diǎn)所屬的子網(wǎng)絡(luò)中的第二公共節(jié)點(diǎn);
所述第二公共節(jié)點(diǎn)接收所述通道節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至所述第二普通 節(jié)點(diǎn)。
在第二方面的第一種可能實(shí)現(xiàn)方式中,所述數(shù)據(jù)包攜帶有所述第一普通節(jié)點(diǎn)的地址、所述第二普通節(jié)點(diǎn)的地址和該數(shù)據(jù)包的屬性。
結(jié)合第二方面的第一種可能實(shí)現(xiàn)方式,在第二方面的第二種可能實(shí)現(xiàn)方式中,所述第一公共節(jié)點(diǎn)接收所述第一普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至通道節(jié)點(diǎn),包括:
所述第一公共節(jié)點(diǎn)接收所述第一普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包;
所述第一公共節(jié)點(diǎn)根據(jù)所述數(shù)據(jù)包攜帶的第一普通節(jié)點(diǎn)的地址和第二普通節(jié)點(diǎn)的地址,判斷所述第一普通節(jié)點(diǎn)和所述第二普通節(jié)點(diǎn)是否處于不同的子網(wǎng)絡(luò)且兩者之間的距離大于預(yù)設(shè)的距離值;
所述第一公共節(jié)點(diǎn)在判定為是時(shí),將該數(shù)據(jù)包轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)。
結(jié)合第二方面的第二種可能實(shí)現(xiàn)方式,在第二方面的第三種可能實(shí)現(xiàn)方式中,所述子網(wǎng)絡(luò)中的各個(gè)普通節(jié)點(diǎn)與公共節(jié)點(diǎn)之間的平均距離為2Hop,其中,所述Hop表示兩個(gè)節(jié)點(diǎn)之間相隔的節(jié)點(diǎn)數(shù)。
結(jié)合第二方面的第三種可能實(shí)現(xiàn)方式,在第二方面的第四種可能實(shí)現(xiàn)方式中,所述預(yù)設(shè)的距離值為4Hop。
結(jié)合第二方面的第一種可能實(shí)現(xiàn)方式,在第二方面的第五種可能實(shí)現(xiàn)方式中,所述第一公共節(jié)點(diǎn)接收所述第一普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包;
所述第一公共節(jié)點(diǎn)判斷所述數(shù)據(jù)包的屬性是否為重要數(shù)據(jù)、緊急數(shù)據(jù)或?qū)崟r(shí)數(shù)據(jù);
所述第一公共節(jié)點(diǎn)在判定為是時(shí),將該數(shù)據(jù)包轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)。
由上可見,本發(fā)明實(shí)施例中的NoC,包括第一網(wǎng)絡(luò)層、第二網(wǎng)絡(luò)層和連接通道,第一網(wǎng)絡(luò)層被劃分為多個(gè)子網(wǎng)絡(luò),每個(gè)子網(wǎng)絡(luò)包括多個(gè)普通節(jié)點(diǎn)和一個(gè)公共節(jié)點(diǎn),第二網(wǎng)絡(luò)層包括多個(gè)通道節(jié)點(diǎn),公共節(jié)點(diǎn)通過連接通道與通道節(jié)點(diǎn)連接,普通節(jié)點(diǎn)可以通過所屬子網(wǎng)絡(luò)中的公共節(jié)點(diǎn)、連接通道、通道節(jié)點(diǎn)和其它子網(wǎng)絡(luò)中的公共節(jié)點(diǎn)與其它子網(wǎng)絡(luò)中的普通節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸,從而解決NoC擁塞的問題,提高數(shù)據(jù)傳輸效率,并且具有開銷小和功耗低的優(yōu)點(diǎn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種傳統(tǒng)NoC的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例提供的一種NoC的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實(shí)施例提供的一種路由器的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實(shí)施例提供的一種方向控制的示意圖;
圖5是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)包格式的示意圖;
圖6是本發(fā)明實(shí)施例提供的一種方向控制的方法的流程示意圖;
圖7是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒淌疽鈭D。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖2是本發(fā)明實(shí)施例中一種片上網(wǎng)絡(luò)NoC的結(jié)構(gòu)示意圖。如圖所示本發(fā)明實(shí)施例中的NoC至少可以包括第一網(wǎng)絡(luò)層100、第二網(wǎng)絡(luò)層200和連接通道300,第一網(wǎng)絡(luò)層100被劃分為多個(gè)子網(wǎng)絡(luò),每個(gè)子網(wǎng)絡(luò)包括多個(gè)普通節(jié)點(diǎn)110和一個(gè)公共節(jié)點(diǎn)120,第二網(wǎng)絡(luò)層200包括多個(gè)通道節(jié)點(diǎn)210,公共節(jié)點(diǎn)120通過連接通道300與通道節(jié)點(diǎn)210連接。需要指出的是,第一網(wǎng)絡(luò)層100的子網(wǎng)絡(luò)是根據(jù)功能特性進(jìn)行劃分的,可以是均勻劃分,也可以是非均勻劃分,這里不作限定,例如,如圖2所示,將第一網(wǎng)絡(luò)層100劃分為4個(gè)非均勻的子網(wǎng)絡(luò)。其中:
普通節(jié)點(diǎn)110,用于作為源節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,或作為目的節(jié)點(diǎn)接收數(shù)據(jù)包。
公共節(jié)點(diǎn)120,用于接收其所屬的子網(wǎng)絡(luò)中的源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)210,或接收通道節(jié)點(diǎn)210發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至其所屬的子網(wǎng)絡(luò)中的目的節(jié)點(diǎn)。例如,如圖2所示,編號為21的公共節(jié)點(diǎn)120,可以接收標(biāo)號為20 的普通節(jié)點(diǎn)110發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至編號為0的通道節(jié)點(diǎn)210,或接收編號為0的通道節(jié)點(diǎn)210發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至編號為12的普通節(jié)點(diǎn)110。
通道節(jié)點(diǎn)210,用于接收源節(jié)點(diǎn)所屬的子網(wǎng)絡(luò)中的公共節(jié)點(diǎn)120發(fā)送的數(shù)據(jù)包,并轉(zhuǎn)發(fā)至目的節(jié)點(diǎn)所屬的子網(wǎng)絡(luò)中的公共節(jié)點(diǎn)120。例如,如圖2所示,假設(shè)源節(jié)點(diǎn)為編號為15的普通節(jié)點(diǎn)110,目的節(jié)點(diǎn)為編號為60的普通節(jié)點(diǎn)110,那么編號為15的普通節(jié)點(diǎn)110發(fā)送數(shù)據(jù)包后,數(shù)據(jù)包經(jīng)由編號為24的公共節(jié)點(diǎn)120、編號為1的通道節(jié)點(diǎn)210、編號為2的通道節(jié)點(diǎn)210以及編號為51的公共節(jié)點(diǎn)120后傳輸至編號為60的普通節(jié)點(diǎn)110。
由上可見,源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間的數(shù)據(jù)傳輸避開了在同一網(wǎng)絡(luò)層上進(jìn)行,相當(dāng)于經(jīng)由一條由公共節(jié)點(diǎn)120和通道節(jié)點(diǎn)210構(gòu)成的“快速通道”,減少了轉(zhuǎn)發(fā)數(shù)據(jù)包的節(jié)點(diǎn)的個(gè)數(shù),從而解決了數(shù)據(jù)流量分布不均勻?qū)е碌腘oC擁塞的問題,并減小了整個(gè)網(wǎng)絡(luò)的開銷和功耗。
具體實(shí)現(xiàn)過程中,每個(gè)公共節(jié)點(diǎn)120和每個(gè)通道節(jié)點(diǎn)210均包括一個(gè)路由器,路由器包括普通端口和通道端口,其中,公共節(jié)點(diǎn)120的路由器的普通端口與普通節(jié)點(diǎn)110連接,公共節(jié)點(diǎn)120的路由器的通道端口與連接通道300連接,通道節(jié)點(diǎn)210的路由器的普通端口與其它的通道節(jié)點(diǎn)210連接,通道節(jié)點(diǎn)210的路由器的通道端口與連接通道300連接。
進(jìn)一步地,如圖3所示,路由器的普通端口可以包括N(北)、E(東)、S(南)和W(西)四個(gè)方向的端口,分別與四個(gè)同一網(wǎng)絡(luò)層的節(jié)點(diǎn)連接,例如,編號為21的公共節(jié)點(diǎn)120的路由器,N端與編號為31的普通節(jié)點(diǎn)110連接,E端與編號為22的普通節(jié)點(diǎn)110連接,S端與編號為11的普通節(jié)點(diǎn)110連接,W端與編號為20的普通節(jié)點(diǎn)110連接;路由器的通道端口為垂直于網(wǎng)絡(luò)層方向的端口,與連接通道300連接??蛇x地,如圖3所示,路由器的普通端口還可以包括L(本地)方向的端口,該端口用于連接本地元件,例如本地的處理器、處理單元或內(nèi)存等。
應(yīng)理解地,除公共節(jié)點(diǎn)120和通道節(jié)點(diǎn)210外,每個(gè)普通節(jié)點(diǎn)110也包括一個(gè)路由器,不同的是,普通節(jié)點(diǎn)110的路由器不需要設(shè)置通道端口。
具體實(shí)現(xiàn)過程中,連接通道包括固定通道和可變通道,其中,所述固定通道的傳輸方向是不變的,所述可變通道的傳輸方向是可變的,如圖4所示,圖中連接通道包括2條固定通道(實(shí)線)和2條可變通道(虛線),可變通道的傳 輸方向可以根據(jù)流量情況變更。相應(yīng)地,NoC還包括方向控制器,用于根據(jù)預(yù)設(shè)的算法控制可變通道的傳輸方向。如圖4所示,方向控制器分別與公共節(jié)點(diǎn)120的路由器和通道節(jié)點(diǎn)210的路由器連接,公共節(jié)點(diǎn)120的路由器和通道節(jié)點(diǎn)210的路由器分別將待發(fā)送給對方的數(shù)據(jù)包的流量緩存在方向控制器,方向控制器根據(jù)預(yù)設(shè)的算法控制可變通道的傳輸方向,進(jìn)而平衡數(shù)據(jù)傳輸?shù)膸挕?/p>
由上可見,方向控制器可以根據(jù)網(wǎng)絡(luò)流量情況動態(tài)調(diào)整可變通道的傳輸方向,從而提高了有效傳輸帶寬。
另外,本發(fā)明實(shí)施例中的數(shù)據(jù)包至少攜帶有源節(jié)點(diǎn)的地址、目標(biāo)節(jié)點(diǎn)的地址和該數(shù)據(jù)包的屬性等信息。如圖5所示,通過復(fù)用和定義數(shù)據(jù)包的格式,數(shù)據(jù)包可以攜帶以下信息:
1、包類型(Flit Type);
2、包屬性(Packet Type),如重要數(shù)據(jù)、緊急數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)或一般數(shù)據(jù)等,進(jìn)一步地,可以通過預(yù)設(shè)的數(shù)值表示各種屬性,例如:4’b0000表示一般數(shù)據(jù),4’b0001表示重要數(shù)據(jù),4’b0010表示緊急數(shù)據(jù),4’b0011表示實(shí)時(shí)數(shù)據(jù);
3、源節(jié)點(diǎn)的地址(Src_addr);
4、目的節(jié)點(diǎn)的地址(DST_addr);
5、子網(wǎng)絡(luò)號(Subnet_ID),包括源節(jié)點(diǎn)所屬子網(wǎng)絡(luò)好和目的節(jié)點(diǎn)所屬子網(wǎng)絡(luò)號;
6、包長度(Length)。
可選地,公共節(jié)點(diǎn)120在轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)的具體操作可以是:接收其所屬的子網(wǎng)絡(luò)中的源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包;根據(jù)數(shù)據(jù)包攜帶的源節(jié)點(diǎn)的地址和目標(biāo)節(jié)點(diǎn)的地址,判斷源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)是否處于不同的子網(wǎng)絡(luò)且兩者之間的距離大于預(yù)設(shè)的距離值;若是,則將該數(shù)據(jù)包轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)210。應(yīng)理解地,在源節(jié)點(diǎn)和目的節(jié)點(diǎn)在同一子網(wǎng)絡(luò)時(shí),或在源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間的距離非常短時(shí),可以直接傳輸數(shù)據(jù)包,無需通過“快速通道”來傳輸,從而減小公共節(jié)點(diǎn)的負(fù)荷,提升網(wǎng)絡(luò)路徑的利用率。其中,上述預(yù)設(shè)的距離值可以由設(shè)計(jì)人員設(shè)定,這里不作具體限定。作為一個(gè)可選的實(shí)施方式,若子網(wǎng)絡(luò)中的各個(gè)普通節(jié)點(diǎn)110與公共節(jié)點(diǎn)120之間的平均距離為2Hop,其中,Hop表示兩個(gè)節(jié)點(diǎn)之間相隔的節(jié)點(diǎn)數(shù),則可以將上述距離值設(shè)定為4Hop。
又可選地,公共節(jié)點(diǎn)120在轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)的具體操作還可以是:接收其所 屬的子網(wǎng)絡(luò)中的源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包;判斷數(shù)據(jù)包的屬性是否為重要數(shù)據(jù)、緊急數(shù)據(jù)或?qū)崟r(shí)數(shù)據(jù);若是,則將該數(shù)據(jù)包轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)210。原因在于,重要數(shù)據(jù)、緊急數(shù)據(jù)或?qū)崟r(shí)數(shù)據(jù)的優(yōu)先級較高,這類數(shù)據(jù)應(yīng)當(dāng)通過“快速通道”來傳輸,以提高傳輸速率。
由上可見,公共節(jié)點(diǎn)120可以通過數(shù)據(jù)包攜帶的信息決策傳輸方式,可以達(dá)到更好地處理突發(fā)性強(qiáng)、實(shí)時(shí)性強(qiáng)和重要數(shù)據(jù)傳輸?shù)哪康摹?/p>
圖6是本發(fā)明實(shí)施例中的一種方向控制的方法的流程示意圖,該方法具體描述了方向控制器根據(jù)預(yù)設(shè)的算法控制可變通道的傳輸方向的過程。如圖所示包括:
S101,初始化。
具體地,方向控制模塊先執(zhí)行初始化操作。例如,對緩存的數(shù)據(jù)進(jìn)行復(fù)位清空。
S102,獲取在所述連接通道的第一方向上待傳輸?shù)臄?shù)據(jù)包的流量,以及獲取在所述連接通道的第一方向上待傳輸?shù)臄?shù)據(jù)包的流量。
其中,第一方向和第二方向互為逆方向。如圖4所示,假設(shè)第一方向?yàn)樗较蛴业姆较?,則第二方向?yàn)樗较蜃蟮姆较颉?/p>
S103,比較所述第一方向上待傳輸?shù)臄?shù)據(jù)包的流量與所述第二方向上待傳輸?shù)臄?shù)據(jù)包的流量的大小。
具體地,方向控制器在確定第一方向上待傳輸?shù)臄?shù)據(jù)包的流量大于第二方向上待傳輸?shù)臄?shù)據(jù)包的流量時(shí),執(zhí)行步驟S104;在確定第一方向上待傳輸?shù)臄?shù)據(jù)包的流量等于第二方向上待傳輸?shù)臄?shù)據(jù)包的流量時(shí),執(zhí)行步驟S105;在確定第一方向上待傳輸?shù)臄?shù)據(jù)包的流量小于第二方向上待傳輸?shù)臄?shù)據(jù)包的流量時(shí),執(zhí)行步驟S106。
S104,控制所述可變通道的傳輸方向?yàn)樗龅谝环较颉?/p>
應(yīng)理解地,由于第一方向上待傳輸?shù)臄?shù)據(jù)包的流量大于第二方向上待傳輸?shù)臄?shù)據(jù)包的流量,為了提高傳輸速率,應(yīng)當(dāng)增多在第一方向上的傳輸通道以提高該方向的傳輸帶寬,因此方向控制器控制可變通道的傳輸方向?yàn)榈谝环较颉?/p>
S105,控制所述可變通道的傳輸方向不變。
S106,控制所述可變通道的傳輸方向?yàn)樗龅诙较颉?/p>
同理地,由于第二方向上待傳輸?shù)臄?shù)據(jù)包的流量大于第一方向上待傳輸?shù)臄?shù)據(jù)包的流量,為了提高傳輸速率,應(yīng)當(dāng)增多在第二方向上的傳輸通道以提高該方向的傳輸帶寬,因此方向控制器控制可變通道的傳輸方向?yàn)榈诙较颉?/p>
進(jìn)一步地,方向控制器在確定了可變通道的傳輸方向后,公共節(jié)點(diǎn)120和通道節(jié)點(diǎn)210相互傳輸數(shù)據(jù)包,在傳輸完畢后,方向控制器再次執(zhí)行步驟S102,以同樣的方式傳輸后面的數(shù)據(jù)包。
圖7是本發(fā)明實(shí)施例中的一種數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒淌疽鈭D,該方法方法應(yīng)用于片上網(wǎng)絡(luò)NoC,所述NoC包括第一網(wǎng)絡(luò)層、第二網(wǎng)絡(luò)層和連接通道,所述第一網(wǎng)絡(luò)層被劃分為多個(gè)子網(wǎng)絡(luò),每個(gè)所述子網(wǎng)絡(luò)包括多個(gè)普通節(jié)點(diǎn)和一個(gè)公共節(jié)點(diǎn),所述第二網(wǎng)絡(luò)層包括多個(gè)通道節(jié)點(diǎn),所述公共節(jié)點(diǎn)通過所述連接通道與所述通道節(jié)點(diǎn)連接。如圖所示包括:
S201,第一普通節(jié)點(diǎn)向其所屬的子網(wǎng)絡(luò)中的第一公共節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。
如圖2所示,假設(shè)第一普通節(jié)點(diǎn)的編號為15,則第一普通節(jié)點(diǎn)將數(shù)據(jù)包發(fā)送至編號為24的第一公共節(jié)點(diǎn)。
S202,第一公共節(jié)點(diǎn)接收第一普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)。
其中,本發(fā)明實(shí)施例中的數(shù)據(jù)包至少攜帶有第一普通節(jié)點(diǎn)的地址、第二普通節(jié)點(diǎn)的地址和該數(shù)據(jù)包的屬性等信息。如圖5所示,通過復(fù)用和定義數(shù)據(jù)包的格式,數(shù)據(jù)包可以攜帶以下信息:
1、包類型(Flit Type);
2、包屬性(Packet Type),如重要數(shù)據(jù)、緊急數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)或一般數(shù)據(jù)等,進(jìn)一步地,可以通過預(yù)設(shè)的數(shù)值表示各種屬性,例如:4’b0000表示一般數(shù)據(jù),4’b0001表示重要數(shù)據(jù),4’b0010表示緊急數(shù)據(jù),4’b0011表示實(shí)時(shí)數(shù)據(jù);
3、源節(jié)點(diǎn)的地址(Src_addr),即第一普通節(jié)點(diǎn)的地址;
4、目的節(jié)點(diǎn)的地址(DST_addr),即第二普通節(jié)點(diǎn)的地址;
5、子網(wǎng)絡(luò)號(Subnet_ID),包括源節(jié)點(diǎn)所屬子網(wǎng)絡(luò)好和目的節(jié)點(diǎn)所屬子網(wǎng)絡(luò)號;
6、包長度(Length)。
可選地,第一公共節(jié)點(diǎn)接收所述第一普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)的具體操作可以是:第一公共節(jié)點(diǎn)接收第一普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包;第一 公共節(jié)點(diǎn)根據(jù)數(shù)據(jù)包攜帶的第一普通節(jié)點(diǎn)的地址和第二普通節(jié)點(diǎn)的地址,判斷第一普通節(jié)點(diǎn)和第二普通節(jié)點(diǎn)是否處于不同的子網(wǎng)絡(luò)且兩者之間的距離大于預(yù)設(shè)的距離值;第一公共節(jié)點(diǎn)在判定為是時(shí),將該數(shù)據(jù)包轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)。應(yīng)理解地,在第一普通節(jié)點(diǎn)和第二普通節(jié)點(diǎn)在同一子網(wǎng)絡(luò)時(shí),或在第一普通節(jié)點(diǎn)和第二普通節(jié)點(diǎn)之間的距離非常短時(shí),可以直接傳輸數(shù)據(jù)包,無需通過“快速通道”來傳輸,從而減小公共節(jié)點(diǎn)的負(fù)荷,提升網(wǎng)絡(luò)路徑的利用率。其中,上述預(yù)設(shè)的距離值可以由設(shè)計(jì)人員設(shè)定,這里不作具體限定。作為一個(gè)可選的實(shí)施方式,若子網(wǎng)絡(luò)中的各個(gè)普通節(jié)點(diǎn)110與公共節(jié)點(diǎn)120之間的平均距離為2Hop,其中,Hop表示兩個(gè)節(jié)點(diǎn)之間相隔的節(jié)點(diǎn)數(shù),則可以將上述距離值設(shè)定為4Hop。
又可選地,第一公共節(jié)點(diǎn)接收所述第一普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)的具體操作還可以是:第一公共節(jié)點(diǎn)接收第一普通節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包;第一公共節(jié)點(diǎn)判斷數(shù)據(jù)包的屬性是否為重要數(shù)據(jù)、緊急數(shù)據(jù)或?qū)崟r(shí)數(shù)據(jù);第一公共節(jié)點(diǎn)在判定為是時(shí),將該數(shù)據(jù)包轉(zhuǎn)發(fā)至通道節(jié)點(diǎn)。
原因在于,重要數(shù)據(jù)、緊急數(shù)據(jù)或?qū)崟r(shí)數(shù)據(jù)的優(yōu)先級較高,這類數(shù)據(jù)應(yīng)當(dāng)通過“快速通道”來傳輸,以提高傳輸速率。
S203,通道節(jié)點(diǎn)接收第一公共節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至第二普通節(jié)點(diǎn)所屬的子網(wǎng)絡(luò)中的第二公共節(jié)點(diǎn)。
如圖2所示,假設(shè)第二普通節(jié)點(diǎn)的編號為60,則通道節(jié)點(diǎn)將數(shù)據(jù)包發(fā)送至編號為51的第二公共節(jié)點(diǎn)。
S204,第二公共節(jié)點(diǎn)接收通道節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包并轉(zhuǎn)發(fā)至第二普通節(jié)點(diǎn)。
如圖2所示,編號為51的第二公共節(jié)點(diǎn)最終將數(shù)據(jù)包發(fā)送至編號為60的第二普通節(jié)點(diǎn)。
本發(fā)明實(shí)施例中的NoC,包括第一網(wǎng)絡(luò)層、第二網(wǎng)絡(luò)層和連接通道,第一網(wǎng)絡(luò)層被劃分為多個(gè)子網(wǎng)絡(luò),每個(gè)子網(wǎng)絡(luò)包括多個(gè)普通節(jié)點(diǎn)和一個(gè)公共節(jié)點(diǎn),第二網(wǎng)絡(luò)層包括多個(gè)通道節(jié)點(diǎn),公共節(jié)點(diǎn)通過連接通道與通道節(jié)點(diǎn)連接,普通節(jié)點(diǎn)可以通過所屬子網(wǎng)絡(luò)中的公共節(jié)點(diǎn)、連接通道、通道節(jié)點(diǎn)和其它子網(wǎng)絡(luò)中的公共節(jié)點(diǎn)與其它子網(wǎng)絡(luò)中的普通節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸,從而解決NoC擁塞的問題,提高數(shù)據(jù)傳輸效率,并且具有開銷小和功耗低的優(yōu)點(diǎn)。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程, 是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機(jī)存儲記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。