本技術(shù)實施例涉及數(shù)據(jù)處理的,具體而言,涉及一種雙路徑torus網(wǎng)絡(luò)的路由方法、裝置、芯片、設(shè)備和存儲介質(zhì)。
背景技術(shù):
1、片上網(wǎng)絡(luò)(network-on-chip,noc)是片上系統(tǒng)(system-on-chip,soc)的一種新的通信方法,torus網(wǎng)絡(luò)是基于mesh網(wǎng)絡(luò)改進得到的一種片上網(wǎng)絡(luò)。
2、在torus網(wǎng)絡(luò)中,分別在水平和垂直方向上,將網(wǎng)絡(luò)方形拓?fù)浣Y(jié)構(gòu)兩邊的路由節(jié)點使用鏈路連接起來,縮短了網(wǎng)絡(luò)的直徑,降低了網(wǎng)絡(luò)傳輸?shù)臅r延和功耗。
3、但是torus網(wǎng)絡(luò)結(jié)構(gòu)要比mesh網(wǎng)絡(luò)存在更多的“閉環(huán)”現(xiàn)象,進而更容易死鎖,死鎖是指兩個或兩個以上的進程在執(zhí)行過程中,由于競爭資源或者由于彼此通信而造成的一種阻塞的現(xiàn)象。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供一種雙路徑torus網(wǎng)絡(luò)的路由方法、裝置、芯片、設(shè)備和存儲介質(zhì),旨在提供在torus網(wǎng)絡(luò)中避免死鎖的路由方法。
2、第一方面本技術(shù)實施例提供一種雙路徑torus網(wǎng)絡(luò)的路由方法,應(yīng)用于雙路徑torus網(wǎng)絡(luò),所述雙路徑torus網(wǎng)絡(luò)中路由節(jié)點之間具有雙路徑鏈路,所述方法包括:
3、響應(yīng)于當(dāng)前路由請求,確定目標(biāo)數(shù)據(jù)包所在的源路由節(jié)點的坐標(biāo)和目標(biāo)路由節(jié)點的坐標(biāo);
4、根據(jù)所述源路由節(jié)點的坐標(biāo)和所述目標(biāo)路由節(jié)點的坐標(biāo),確定坐標(biāo)差值和路由指示坐標(biāo);
5、根據(jù)所述坐標(biāo)差值和所述路由指示坐標(biāo),按照預(yù)設(shè)的路由規(guī)則,確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑;
6、其中,所述預(yù)設(shè)的路由規(guī)則用于根據(jù)路由指示坐標(biāo)確定所述目標(biāo)數(shù)據(jù)包的路由方向,以及根據(jù)所述坐標(biāo)差值確定所述目標(biāo)數(shù)據(jù)包在雙路徑鏈路中的傳輸通道,以確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的從所述源路由節(jié)點到所述目標(biāo)路由節(jié)點的最短的非閉環(huán)路由路徑。
7、可選地,根據(jù)所述坐標(biāo)差值和所述路由指示坐標(biāo),按照預(yù)設(shè)的路由規(guī)則,確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑,包括:
8、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)的絕對值為1且縱坐標(biāo)為0,或當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)為0且縱坐標(biāo)的絕對值為1時,執(zhí)行第一路由規(guī)則,確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑,所述第一路由規(guī)則用于使得所述目標(biāo)路由路徑最短;
9、其中,所述第一路由規(guī)則包括:
10、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)大于0時,選擇沿x軸正方向的第一西東傳輸通道或第二西東傳輸通道作為目標(biāo)路由路徑的傳輸通道;
11、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)小于0時,選擇沿x軸負(fù)方向的第一東西傳輸通道或第二東西傳輸通道作為目標(biāo)路由路徑的傳輸通道;
12、當(dāng)所述路由指示坐標(biāo)的縱坐標(biāo)大于0時,選擇沿y軸正方向的第一南北傳輸通道或第二南北傳輸通道作為目標(biāo)路由路徑的傳輸通道;
13、當(dāng)所述路由指示坐標(biāo)的縱坐標(biāo)小于0時,選擇沿y軸負(fù)方向的第一北南傳輸通道或第二北南傳輸通道作為目標(biāo)路由路徑的傳輸通道。
14、可選地,根據(jù)所述坐標(biāo)差值和所述路由指示坐標(biāo),按照預(yù)設(shè)的路由規(guī)則,確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑,包括:
15、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)和縱坐標(biāo)均不為0時,執(zhí)行以下任一者:
16、優(yōu)先選擇x軸的方向路由,并執(zhí)行第二路由規(guī)則;
17、優(yōu)先選擇y軸的方向路由,并執(zhí)行第三路由規(guī)則;
18、選擇轉(zhuǎn)向路由,并執(zhí)行第四路由規(guī)則。
19、可選地,根據(jù)所述坐標(biāo)差值和所述路由指示坐標(biāo),按照預(yù)設(shè)的路由規(guī)則,確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑,包括:
20、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)不等于0且縱坐標(biāo)等于0時,執(zhí)行第二路由規(guī)則。
21、可選地,根據(jù)所述坐標(biāo)差值和所述路由指示坐標(biāo),按照預(yù)設(shè)的路由規(guī)則,確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑,包括:
22、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)等于0且縱坐標(biāo)不等于0時,執(zhí)行第三路由規(guī)則。
23、可選地,執(zhí)行第二路由規(guī)則,包括:
24、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)大于0且所述坐標(biāo)差值的橫坐標(biāo)差值大于0時,選擇從所述源路由節(jié)點沿x軸正方向的第一西東傳輸通道發(fā)送所述目標(biāo)數(shù)據(jù)包;
25、在沿著x軸方向路由時,若未跨越所述雙路徑torus網(wǎng)絡(luò)的邊緣路由節(jié)點時,不改變所述目標(biāo)數(shù)據(jù)包發(fā)送的第一西東傳輸通道;
26、在沿著x軸方向路由時,若跨越所述雙路徑torus網(wǎng)絡(luò)的邊緣路由節(jié)點時,將所述目標(biāo)數(shù)據(jù)包發(fā)送的第一西東傳輸通道更改為第二西東傳輸通道。
27、可選地,執(zhí)行第二路由規(guī)則,包括:
28、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)大于0且所述坐標(biāo)差值的橫坐標(biāo)差值小于0時,選擇從所述源路由節(jié)點沿x軸正方向的第二西東傳輸通道發(fā)送所述目標(biāo)數(shù)據(jù)包。
29、可選地,執(zhí)行第二路由規(guī)則,包括:
30、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)小于0且所述坐標(biāo)差值的橫坐標(biāo)差值小于0時,選擇從所述源路由節(jié)點沿x軸負(fù)方向的第一東西傳輸通道發(fā)送所述目標(biāo)數(shù)據(jù)包;
31、在沿著x軸方向路由時,若未跨越所述雙路徑torus網(wǎng)絡(luò)的邊緣路由節(jié)點時,不改變所述目標(biāo)數(shù)據(jù)包發(fā)送的第一東西傳輸通道;
32、在沿著x軸方向路由時,若跨越所述雙路徑torus網(wǎng)絡(luò)的邊緣路由節(jié)點時,將所述目標(biāo)數(shù)據(jù)包發(fā)送的第一東西傳輸通道更改為第二東西傳輸通道。
33、可選地,執(zhí)行第二路由規(guī)則,包括:
34、當(dāng)所述路由指示坐標(biāo)的橫坐標(biāo)小于0且所述坐標(biāo)差值的橫坐標(biāo)差值大于0時,選擇從所述源路由節(jié)點沿x軸負(fù)方向的第二東西傳輸通道發(fā)送所述目標(biāo)數(shù)據(jù)包。
35、可選地,執(zhí)行第三路由規(guī)則,包括:
36、當(dāng)所述路由指示坐標(biāo)的縱坐標(biāo)大于0且所述坐標(biāo)差值的縱坐標(biāo)差值大于0時,選擇從所述源路由節(jié)點沿y軸正方向的第一南北傳輸通道發(fā)送所述目標(biāo)數(shù)據(jù)包;
37、在沿著y軸方向路由時,若未跨越所述雙路徑torus網(wǎng)絡(luò)的邊緣路由節(jié)點時,不改變所述目標(biāo)數(shù)據(jù)包發(fā)送的第一南北傳輸通道;
38、在沿著y軸方向路由時,若跨越所述雙路徑torus網(wǎng)絡(luò)的邊緣路由節(jié)點時,將所述目標(biāo)數(shù)據(jù)包發(fā)送的第一南北傳輸通道更改為第二南北傳輸通道。
39、可選地,執(zhí)行第三路由規(guī)則,包括:
40、當(dāng)所述路由指示坐標(biāo)的縱坐標(biāo)大于0且所述坐標(biāo)差值的縱坐標(biāo)差值小于0時,選擇從所述源路由節(jié)點沿y軸正方向的第二南北傳輸通道發(fā)送所述目標(biāo)數(shù)據(jù)包。
41、可選地,執(zhí)行第三路由規(guī)則,包括:
42、當(dāng)所述路由指示坐標(biāo)的縱坐標(biāo)小于0且所述坐標(biāo)差值的縱坐標(biāo)差值小于0時,選擇從所述源路由節(jié)點沿y軸負(fù)方向的第一北南傳輸通道發(fā)送所述目標(biāo)數(shù)據(jù)包;
43、在沿著y軸方向路由時,若未跨越所述雙路徑torus網(wǎng)絡(luò)的邊緣路由節(jié)點時,不改變所述目標(biāo)數(shù)據(jù)包發(fā)送的第一北南傳輸通道;
44、在沿著y軸方向路由時,若跨越所述雙路徑torus網(wǎng)絡(luò)的邊緣路由節(jié)點時,將所述目標(biāo)數(shù)據(jù)包發(fā)送的第一北南傳輸通道更改為第二北南傳輸通道。
45、可選地,執(zhí)行第三路由規(guī)則,包括:
46、當(dāng)所述路由指示坐標(biāo)的縱坐標(biāo)小于0且所述坐標(biāo)差值的縱坐標(biāo)差值大于0時,選擇從所述源路由節(jié)點沿y軸負(fù)方向的第二北南傳輸通道發(fā)送所述目標(biāo)數(shù)據(jù)包。
47、可選地,對于所述目標(biāo)路由路徑中的任一路由節(jié)點,選擇轉(zhuǎn)向路由,并執(zhí)行第四路由規(guī)則,包括:
48、若在該路由節(jié)點,所述目標(biāo)數(shù)據(jù)包的傳輸方向從沿著x軸正方向轉(zhuǎn)為沿y軸正方向時,基于第一西東傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第一南北傳輸通道進行傳輸,基于第二西東傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第二南北傳輸通道進行傳輸;
49、若在該路由節(jié)點,所述目標(biāo)數(shù)據(jù)包的傳輸方向從沿著x軸負(fù)方向轉(zhuǎn)為沿y軸負(fù)方向時,基于第一東西傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第一北南傳輸通道進行傳輸,基于第二東西傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第二北南傳輸通道進行傳輸;
50、若在該路由節(jié)點,所述目標(biāo)數(shù)據(jù)包的傳輸方向從沿y軸正方向轉(zhuǎn)為沿x軸正方向時,基于第一南北傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第一西東傳輸通道進行傳輸,基于第二南北傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第二西東傳輸通道進行傳輸;
51、若在該路由節(jié)點,所述目標(biāo)數(shù)據(jù)包的傳輸方向從沿y軸負(fù)方向轉(zhuǎn)為沿x軸負(fù)方向時,基于第一北南傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第一東西傳輸通道進行傳輸,基于第二北南傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第二東西傳輸通道進行傳輸;
52、若在該路由節(jié)點,所述目標(biāo)數(shù)據(jù)包的傳輸方向從沿x軸正方向轉(zhuǎn)為沿y軸負(fù)方向時,基于第一西東傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第二北南傳輸通道進行傳輸,基于第二西東傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第一北南傳輸通道進行傳輸;
53、若在該路由節(jié)點,所述目標(biāo)數(shù)據(jù)包的傳輸方向從沿x軸負(fù)方向轉(zhuǎn)為沿y軸正方向時,基于第一東西傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第一南北傳輸通道進行傳輸,基于第二東西傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第二南北傳輸通道進行傳輸;
54、若在該路由節(jié)點,所述目標(biāo)數(shù)據(jù)包的傳輸方向從沿y軸正方向轉(zhuǎn)為沿x軸負(fù)方向時,基于第一南北傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第二東西傳輸通道進行傳輸,基于第二南北傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第一東西傳輸通道進行傳輸;
55、若在該路由節(jié)點,所述目標(biāo)數(shù)據(jù)包的傳輸方向從沿y軸負(fù)方向轉(zhuǎn)為沿x軸正方向時,基于第一北南傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第一西東傳輸通道進行傳輸,基于第二北南傳輸通道傳輸?shù)乃瞿繕?biāo)數(shù)據(jù)包選擇第二西東傳輸通道進行傳輸。
56、可選地,根據(jù)所述坐標(biāo)差值和所述路由指示坐標(biāo),按照預(yù)設(shè)的路由規(guī)則,確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑之后,所述方法還包括:
57、當(dāng)確定多條目標(biāo)路由路徑時,選擇路由節(jié)點的當(dāng)前占用情況最小的目標(biāo)路由路徑作為所述目標(biāo)數(shù)據(jù)包對應(yīng)的最終的路由路徑;
58、沿著所述最終的路由路徑發(fā)送所述目標(biāo)數(shù)據(jù)包。
59、可選地,根據(jù)所述坐標(biāo)差值和所述路由指示坐標(biāo),按照預(yù)設(shè)的路由規(guī)則,確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑之后,所述方法還包括:
60、按照所述目標(biāo)路由路徑將所述目標(biāo)數(shù)據(jù)包從所述源路由節(jié)點發(fā)送至下一個路由節(jié)點,其中,當(dāng)所述下一個路由節(jié)點有多個時,當(dāng)前占用情況最小的路由節(jié)點作為發(fā)送目標(biāo)數(shù)據(jù)包的所述下一個路由節(jié)點;
61、將所述下一個路由節(jié)點作為更新后的源路由節(jié)點;
62、根據(jù)所述更新后的源路由節(jié)點的坐標(biāo)和所述目標(biāo)路由節(jié)點的坐標(biāo),實時確定所述目標(biāo)數(shù)據(jù)包的路由路徑。
63、可選地,在響應(yīng)于當(dāng)前路由請求,確定目標(biāo)數(shù)據(jù)包所在的源路由節(jié)點的坐標(biāo)和目標(biāo)路由節(jié)點的坐標(biāo)之前,所述方法還包括:
64、為所述雙路徑torus網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)構(gòu)建坐標(biāo)系,確定所述雙路徑torus網(wǎng)絡(luò)中任一個路由節(jié)點各自對應(yīng)的坐標(biāo),所述任一個路由節(jié)點對應(yīng)的橫坐標(biāo)和縱坐標(biāo)均大于或等于0;
65、對于任一路由節(jié)點,將沿x軸正方向傳輸?shù)膬蓷l通道記為第一西東傳輸通道和第二西東傳輸通道,將沿x軸負(fù)方向傳輸?shù)膬蓷l通道記為第一東西傳輸通道和第二東西傳輸通道,將沿y軸正方向傳輸?shù)膬蓷l通道記為第一南北傳輸通道和第二南北傳輸通道,將沿y軸負(fù)方向傳輸?shù)膬蓷l通道記為第一北南傳輸通道和第二北南傳輸通道。
66、可選地,根據(jù)所述源路由節(jié)點的坐標(biāo)和所述目標(biāo)路由節(jié)點的坐標(biāo),確定坐標(biāo)差值,包括:
67、將所述目標(biāo)路由節(jié)點的橫坐標(biāo)與所述源路由節(jié)點的橫坐標(biāo)的差值作為橫坐標(biāo)差值;
68、將所述目標(biāo)路由節(jié)點的縱坐標(biāo)與所述源路由節(jié)點的縱坐標(biāo)的差值作為縱坐標(biāo)差值;
69、其中,所述坐標(biāo)差值的計算公式為:
70、(δx,δy)=(xd,yd)-(xs,ys)
71、=(xd-xs,yd-ys)
72、其中,δx為所述橫坐標(biāo)差值,δy為所述縱坐標(biāo)差值,(δx,δy)為所述坐標(biāo)差值,(xd,yd)為所述目標(biāo)路由節(jié)點的坐標(biāo);(xs,ss)為所述源路由節(jié)點的坐標(biāo)。
73、可選地,根據(jù)所述源路由節(jié)點的坐標(biāo)和所述目標(biāo)路由節(jié)點的坐標(biāo),確定路由指示坐標(biāo),包括:
74、當(dāng)所述坐標(biāo)差值的橫坐標(biāo)差值小于n/2時,所述路由指示坐標(biāo)的橫坐標(biāo)為所述橫坐標(biāo)差值;
75、當(dāng)所述坐標(biāo)差值的橫坐標(biāo)差值大于等于n/2時,根據(jù)n與所述橫坐標(biāo)差值得到所述路由指示坐標(biāo)的橫坐標(biāo);
76、當(dāng)所述坐標(biāo)差值的縱坐標(biāo)差值小于n/2時,所述路由指示坐標(biāo)的縱坐標(biāo)為所述縱坐標(biāo)差值;
77、當(dāng)所述坐標(biāo)差值的縱坐標(biāo)差值大于等于n/2時,根據(jù)n與所述縱坐標(biāo)差值得到所述路由指示坐標(biāo)的縱坐標(biāo);
78、其中,所述路由指示坐標(biāo)的計算公式為:
79、
80、其中,δx為所述橫坐標(biāo)差值,δy為所述縱坐標(biāo)差值,n為所述雙路徑torus網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)中在水平方向或垂直方向上的路由節(jié)點的個數(shù)。
81、第二方面,本技術(shù)實施例提供一種雙路徑torus網(wǎng)絡(luò)的路由裝置,應(yīng)用于雙路徑torus網(wǎng)絡(luò),所述雙路徑torus網(wǎng)絡(luò)中路由節(jié)點之間具有雙路徑鏈路,所述裝置包括:
82、坐標(biāo)確定模塊,用于響應(yīng)于當(dāng)前路由請求,確定目標(biāo)數(shù)據(jù)包所在的源路由節(jié)點的坐標(biāo)和目標(biāo)路由節(jié)點的坐標(biāo);
83、計算模塊,用于根據(jù)所述源路由節(jié)點的坐標(biāo)和所述目標(biāo)路由節(jié)點的坐標(biāo),確定坐標(biāo)差值和路由指示坐標(biāo);
84、目標(biāo)路由路徑確定模塊,用于根據(jù)所述坐標(biāo)差值和所述路由指示坐標(biāo),按照預(yù)設(shè)的路由規(guī)則,確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑;
85、其中,所述預(yù)設(shè)的路由規(guī)則用于根據(jù)路由指示坐標(biāo)確定所述目標(biāo)數(shù)據(jù)包的路由方向,以及根據(jù)所述坐標(biāo)差值確定所述目標(biāo)數(shù)據(jù)包在雙路徑鏈路中的傳輸通道,以確定所述目標(biāo)數(shù)據(jù)包對應(yīng)的從所述源路由節(jié)點到所述目標(biāo)路由節(jié)點的最短的非閉環(huán)路由路徑。
86、第三方面,本技術(shù)實施例提供一種服務(wù)器交換芯片,所述芯片上設(shè)置有雙路徑torus網(wǎng)絡(luò),所述芯片用于執(zhí)行實施例第一方面所述的雙路徑torus網(wǎng)絡(luò)的路由方法。
87、第四方面,本技術(shù)實施例提供一種計算處理設(shè)備,包括:
88、存儲器,其中存儲有計算機可讀代碼;一個或多個處理器,當(dāng)所述計算機可讀代碼被所述一個或多個處理器執(zhí)行時,所述計算處理設(shè)備執(zhí)行實施例第一方面所述的雙路徑torus網(wǎng)絡(luò)的路由方法。
89、第五方面,本技術(shù)實施例提供一種非易失性可讀存儲介質(zhì),所述非易失性可讀存儲介質(zhì)存儲有計算機程序,其中,所述計算機程序被處理器執(zhí)行時執(zhí)行實施例第一方面所述的雙路徑torus網(wǎng)絡(luò)的路由方法。
90、有益效果:
91、在雙路徑torus網(wǎng)絡(luò)中發(fā)送目標(biāo)數(shù)據(jù)包時,響應(yīng)于當(dāng)前路由請求,確定目標(biāo)數(shù)據(jù)包所在的源路由節(jié)點的坐標(biāo)和目標(biāo)路由節(jié)點的坐標(biāo),然后根據(jù)源路由節(jié)點的坐標(biāo)和目標(biāo)路由節(jié)點的坐標(biāo),確定坐標(biāo)差值和路由指示坐標(biāo),根據(jù)坐標(biāo)差值和路由指示坐標(biāo),按照預(yù)設(shè)的路由規(guī)則,確定目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑。
92、本方法通過計算坐標(biāo)差值和路由指示坐標(biāo),然后根據(jù)路由指示坐標(biāo)確定目標(biāo)數(shù)據(jù)包的路由方向,根據(jù)坐標(biāo)差值確定目標(biāo)數(shù)據(jù)包在雙路徑鏈路中的傳輸通道,根據(jù)預(yù)設(shè)的路由規(guī)則確定目標(biāo)數(shù)據(jù)包的目標(biāo)路由路徑,可以使目標(biāo)數(shù)據(jù)包對應(yīng)的目標(biāo)路由路徑為免死鎖的最短路由路徑,從而解決在torus網(wǎng)絡(luò)中存在死鎖的問題。