一種確定片上網(wǎng)絡(luò)路由路徑的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及芯片體系結(jié)構(gòu)領(lǐng)域,特別涉及一種確定片上網(wǎng)絡(luò)路由路徑的方法及系統(tǒng)。
【背景技術(shù)】
[0002]三維片上網(wǎng)絡(luò)是在三維集成電路工藝和二維片上網(wǎng)絡(luò)的基礎(chǔ)上發(fā)展起來(lái)的,主要用于解決高集成度芯片通信瓶頸等問(wèn)題。三維片上網(wǎng)絡(luò)(network on a chip,noc)垂直連線與水平連線上存在結(jié)構(gòu)差異,水平層內(nèi)部連線需要橫跨資源節(jié)點(diǎn)與其它路由單元相連,連線長(zhǎng)度為資源節(jié)點(diǎn)寬度,其典型值為數(shù)千微米,而三維集成電路工藝允許水平層直接相互疊加,使得在垂直方向上的距離僅為幾十微米。V-Spidergon三維拓?fù)浣Y(jié)構(gòu)是一種混合型三維拓?fù)洌摻Y(jié)構(gòu)的垂直總線深刻影響拓?fù)涞男阅?。由于三維集成電路生產(chǎn)工藝的限制,只能在垂直方向上連接水平子層,水平子層間的資源節(jié)點(diǎn)無(wú)法斜向連接。因此,如何使得片上網(wǎng)絡(luò)路由路徑最優(yōu),是本領(lǐng)域技術(shù)人員需要解決的技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種確定片上網(wǎng)絡(luò)路由路徑的方法,該方法能夠根據(jù)網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)調(diào)整路由路徑,實(shí)際效果表明該方法可以提高吞吐量和降低網(wǎng)路延時(shí),平衡網(wǎng)絡(luò)中的流量分布;此外本發(fā)明的另一目的是提供一種確定片上網(wǎng)絡(luò)路由路徑的系統(tǒng)。
[0004]為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種確定片上網(wǎng)絡(luò)路由路徑的方法,包括:
[0005]從源節(jié)點(diǎn)所在的垂直總線上移動(dòng)到目的節(jié)點(diǎn)所在的垂直總線上,到達(dá)目的水平層的第一位置;
[0006]根據(jù)所述第一位置的水平位置值與所述目的節(jié)點(diǎn)的水平位置值,計(jì)算得到所述第一位置到所述目的節(jié)點(diǎn)的水平跳數(shù);
[0007]根據(jù)所述水平跳數(shù)與所述水平層的節(jié)點(diǎn)總數(shù),按照預(yù)定水平層路由算法,得到從所述第一位置到達(dá)所述目的節(jié)點(diǎn)的水平路徑。
[0008]優(yōu)選的,所述預(yù)定水平層路由算法包括:第一預(yù)定算法,其中,所述第一預(yù)定算法包括:
[0009]將所述水平跳數(shù)與所述水平層的節(jié)點(diǎn)總數(shù)相除;
[0010]當(dāng)相除的結(jié)果不大于四分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),按照逆時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);
[0011]當(dāng)相除的結(jié)果不小于四分之三所述水平層的節(jié)點(diǎn)總數(shù)時(shí),按照順時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);
[0012]當(dāng)相除的結(jié)果大于四分之一且小于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置移動(dòng)到對(duì)面的第二位置,將所述第二位置按照順時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);其中,所述移動(dòng)到對(duì)面中間節(jié)點(diǎn)具體為:計(jì)算出所述第一位置到距所述目的節(jié)點(diǎn)具有二分之一所述水平層的節(jié)點(diǎn)總數(shù)的中間節(jié)點(diǎn)的跳數(shù),將所述第一位置移動(dòng)到按順時(shí)針距所述目的節(jié)點(diǎn)具有相同跳數(shù)的第二位置;
[0013]當(dāng)相除的結(jié)果小于四分之三且大于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置移動(dòng)到對(duì)面的第二位置,將所述第二位置按照逆時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);
[0014]當(dāng)相除的結(jié)果等于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置移動(dòng)到所述目的節(jié)點(diǎn)。
[0015]優(yōu)選的,所述預(yù)定水平層路由算法包括:第二預(yù)定算法,其中,所述第二預(yù)定算法包括:
[0016]將所述水平跳數(shù)與所述水平層的節(jié)點(diǎn)總數(shù)相除;
[0017]當(dāng)相除的結(jié)果不大于四分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),按照逆時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);
[0018]當(dāng)相除的結(jié)果不小于四分之三所述水平層的節(jié)點(diǎn)總數(shù)時(shí),按照順時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);
[0019]當(dāng)相除的結(jié)果大于四分之一且小于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置按照順時(shí)針移動(dòng)到距所述目的節(jié)點(diǎn)具有二分之一所述水平層的節(jié)點(diǎn)總數(shù)的中間節(jié)點(diǎn),從所述中間節(jié)點(diǎn)移動(dòng)到所述目的節(jié)點(diǎn);
[0020]當(dāng)相除的結(jié)果小于四分之三且大于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置按照逆時(shí)針移動(dòng)到距所述目的節(jié)點(diǎn)具有二分之一所述水平層的節(jié)點(diǎn)總數(shù)的中間節(jié)點(diǎn),從所述中間節(jié)點(diǎn)移動(dòng)到所述目的節(jié)點(diǎn);
[0021]當(dāng)相除的結(jié)果等于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置移動(dòng)到所述目的節(jié)點(diǎn)。
[0022]優(yōu)選的,所述預(yù)定水平層路由算法包括第一預(yù)定算法和第二預(yù)定算法,還包括:
[0023]當(dāng)存在所述第一位置到所述目的節(jié)點(diǎn)的路徑跳數(shù)相同時(shí),比較兩條路徑的輸出端口的緩存使用量,并使用緩存使用量小的輸出端口所在路徑,將所述第一位置移動(dòng)到所述目的節(jié)點(diǎn)。
[0024]優(yōu)選的,還包括:
[0025]在垂直方向建立兩路虛通道;
[0026]當(dāng)所述源節(jié)點(diǎn)的垂直位置值大于所述目的節(jié)點(diǎn)的垂直位置值,則使用第一虛通道;
[0027]當(dāng)所述源節(jié)點(diǎn)的垂直位置值小于所述目的節(jié)點(diǎn)的垂直位置值,則使用第二虛通道;
[0028]和/或,在水平方向建立兩路虛通道;
[0029]當(dāng)所述第一位置的水平位置值大于所述目的節(jié)點(diǎn)的水平位置值,則使用第一虛通道;
[0030]當(dāng)所述第一位置的水平位置值小于所述目的節(jié)點(diǎn)的水平位置值,則使用第二虛通道。
[0031]優(yōu)選的,還包括:
[0032]當(dāng)垂直總線負(fù)載大于閾值時(shí),通過(guò)水平子層確定空閑總線。
[0033]本發(fā)明提供一種確定片上網(wǎng)絡(luò)路由路徑的系統(tǒng),包括:
[0034]垂直移動(dòng)模塊,用于從源節(jié)點(diǎn)所在的垂直總線上移動(dòng)到目的節(jié)點(diǎn)所在的垂直總線上,到達(dá)目的水平層的第一位置;
[0035]計(jì)算模塊,用于根據(jù)所述第一位置的水平位置值與所述目的節(jié)點(diǎn)的水平位置值,計(jì)算得到所述第一位置到所述目的節(jié)點(diǎn)的水平跳數(shù);
[0036]水平移動(dòng)模塊,用于根據(jù)所述水平跳數(shù)與所述水平層的節(jié)點(diǎn)總數(shù),按照預(yù)定水平層路由算法,得到從所述第一位置到達(dá)所述目的節(jié)點(diǎn)的水平路徑。
[0037]優(yōu)選的,所述水平移動(dòng)模塊包括:第一預(yù)定算法單元,其中,所述第一預(yù)定算法單元包括:
[0038]第一計(jì)算單元,用于將所述水平跳數(shù)與所述水平層的節(jié)點(diǎn)總數(shù)相除;
[0039]第一移動(dòng)單元,用于當(dāng)相除的結(jié)果不大于四分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),按照逆時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);當(dāng)相除的結(jié)果不小于四分之三所述水平層的節(jié)點(diǎn)總數(shù)時(shí),按照順時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);當(dāng)相除的結(jié)果大于四分之一且小于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置移動(dòng)到對(duì)面的第二位置,將所述第二位置按照順時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);其中,所述移動(dòng)到對(duì)面中間節(jié)點(diǎn)具體為:計(jì)算出所述第一位置到距所述目的節(jié)點(diǎn)具有二分之一所述水平層的節(jié)點(diǎn)總數(shù)的中間節(jié)點(diǎn)的跳數(shù),將所述第一位置移動(dòng)到按順時(shí)針距所述目的節(jié)點(diǎn)具有相同跳數(shù)的第二位置;當(dāng)相除的結(jié)果小于四分之三且大于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置移動(dòng)到對(duì)面的第二位置,將所述第二位置按照逆時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);當(dāng)相除的結(jié)果等于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置移動(dòng)到所述目的節(jié)點(diǎn)。
[0040]優(yōu)選的,所述水平移動(dòng)模塊包括:第二預(yù)定算法單元,其中,所述第一預(yù)定算法單元包括:
[0041]第二計(jì)算單元,用于將所述水平跳數(shù)與所述水平層的節(jié)點(diǎn)總數(shù)相除;
[0042]第二移動(dòng)單元,用于當(dāng)相除的結(jié)果不大于四分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),按照逆時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);當(dāng)相除的結(jié)果不小于四分之三所述水平層的節(jié)點(diǎn)總數(shù)時(shí),按照順時(shí)針移動(dòng)到所述目的節(jié)點(diǎn);當(dāng)相除的結(jié)果大于四分之一且小于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置按照順時(shí)針移動(dòng)到距所述目的節(jié)點(diǎn)具有二分之一所述水平層的節(jié)點(diǎn)總數(shù)的中間節(jié)點(diǎn),從所述中間節(jié)點(diǎn)移動(dòng)到所述目的節(jié)點(diǎn);當(dāng)相除的結(jié)果小于四分之三且大于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置按照逆時(shí)針移動(dòng)到距所述目的節(jié)點(diǎn)具有二分之一所述水平層的節(jié)點(diǎn)總數(shù)的中間節(jié)點(diǎn),從所述中間節(jié)點(diǎn)移動(dòng)到所述目的節(jié)點(diǎn);當(dāng)相除的結(jié)果等于二分之一所述水平層的節(jié)點(diǎn)總數(shù)時(shí),將所述第一位置移動(dòng)到所述目的節(jié)點(diǎn)。
[0043]優(yōu)選的,同時(shí)具有所述第一預(yù)定算法單元和所述第二預(yù)定算法單元,還包括:
[0044]選擇模塊,用于當(dāng)存在所述第一位置到所述目的節(jié)點(diǎn)的路徑跳數(shù)相同時(shí),比較兩條路徑的輸出端口的緩存使用量,并使用緩存使用量小的輸出端口所在路徑,將所述第一位置移動(dòng)到所述目的節(jié)點(diǎn)。
[0045]本發(fā)明所提供的確定片上網(wǎng)絡(luò)路由路徑的方法及系統(tǒng),包括:從源節(jié)點(diǎn)所在的垂直總線上移動(dòng)到目的節(jié)點(diǎn)所在的垂直總線上,到達(dá)目的水平層的第一位置;根據(jù)所述第一位置的水平位置值與所述目的節(jié)點(diǎn)的水平位置值,計(jì)算得到所述第一位置到所述目的節(jié)點(diǎn)的水平跳數(shù);根據(jù)所述水平跳數(shù)與所述水平層的節(jié)點(diǎn)總數(shù),按照預(yù)定水平層路由算法,得到從所述第一位置到達(dá)所述目的節(jié)點(diǎn)的水平路徑;
[0046]該方法及系統(tǒng)能夠?qū)?shù)據(jù)包首先在垂直方向進(jìn)行確定性路由,到達(dá)目的層之后再根據(jù)鏈路利用率自適應(yīng)選擇二維路由算法路由到目的節(jié)點(diǎn),可以平衡網(wǎng)絡(luò)中的流量分布。根據(jù)網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)調(diào)整路由路徑,實(shí)際效果表明該方法可以提高吞吐量和降