一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种反压信息传递、请求发送方法、装置及网络芯片与流程

2022-06-11 11:43:31 来源:中国专利 TAG:


1.本发明涉及网络芯片技术领域,特别是涉及一种反压信息传递、请求发送方法、装置及网络芯片。


背景技术:

2.基于noc(net on chip,片上互联网络)技术,可以在np(networking processor,网络芯片)上可以设置多个路由节点并在各个路由节点之间建立总线连接形成网络,以使得不同的路由节点之间可以互相传递请求,从而增加np芯片的带宽。路由节点接收到其他路由节点发送的请求之后会将请求缓存于自身对应的缓冲区中,但当路由节点对应的缓冲区中存储的请求的数据量达到缓冲区能够存储数据的最大数据量时,该路由节点处于反压状态,此时若其他路由节点继续向该路由节点发送请求,则会造成网络拥塞。
3.为此每一路由节点可以向其他路由节点传递表示自身是否处于反压状态的反压信息,以使得其他路由节点确定能否继续向该路由节点发送请求。并且,随着noc技术的不断发展,np芯片上的路由节点之间可以基于三维noc技术形成三维noc,为此需要提供一种适应于三维noc的反压信息传递方法。


技术实现要素:

4.本发明实施例的目的在于提供一种反压信息传递、请求发送方法、装置及网络芯片,以实现np芯片上三维noc中路由节点之间反压信息的传递。
5.具体技术方案如下:
6.第一方面,本发明实施例提供了一种反压信息传递方法,应用于本地路由节点,所述本地路由节点为网络芯片np上的三维片上互联网络noc中的每一路由节点,所述三维noc中的各个路由节点分别组成不同的路由节点子系统,不同的路由节点子系统所包括的路由节点不同,且每一路由节点子系统中包含多个互不相连的路由节点,所述方法包括:
7.接收第一路由节点发送的第一反压信息,并向第二路由节点发送所述第一反压信息与所述本地路由节点自身的本地反压信息,其中,所述第一路由节点与第二路由节点分别在第一方向、第二方向上与所述本地路由节点直接相连,所述第一方向与第二方向相对,所述第一反压信息包括:所述第一路由节点自身的反压信息以及接收到的反压信息;
8.接收所述第二路由节点发送的第二反压信息,并向所述第一路由节点发送所述第二反压信息与所述本地反压信息,其中,所述第二反压信息包括:所述第二路由节点自身的反压信息以及接收到的反压信息;
9.接收第三路由节点发送的第三反压信息,并向第四路由节点发送所述第三反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第三路由节点与第四路由节点分别在第三方向、第四方向上与所述本地路由节点直接相连,所述第三方向与第四方向相对,所述第三反压信息包括:所述第三路由节点自身的反压信息以及接收到的反压信息;
10.接收所述第四路由节点发送的第四反压信息,并向所述第三路由节点发送所述第
四反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第四反压信息包括:所述第四路由节点自身的反压信息以及接收到的反压信息;
11.将所述本地反压信息、所获取的第一反压信息、第二反压信息、第三反压信息与第四反压信息写入所述本地路由节点所在的路由节点子系统对应的缓存中。
12.第二方面,本发明实施例提供了一种请求发送方法,应用于np上的任一npc,其中,每一npc用于:控制三维片上互联网络noc中的一个路由节点子系统内、互不相连的各个路由节点,不同的路由节点子系统所包括的路由节点不同,所述方法包括:
13.在向目标路由节点子系统发送目标请求之前,确定目标路由节点子系统中用于接收目标请求的目标路由节点,并且确定用于向所述目标路由节点发送所述目标请求的传输路径;
14.从三维反压信息表中读取所述目标路由节点的反压信息,其中,所述三维反压信息表存储于:所述npc控制的路由节点子系统对应的缓存中,所述三维反压信息表中的每一元素记录有所述三维noc中一个路由节点的反压信息,所述三维反压信息表内记录的反压信息为:通过第一方面任一所述的方法获得的;
15.基于所读取的反压信息确定所述目标路由节点是否处于反压状态;
16.若否,则通过所述传输路径向所述目标路由节点发送所述目标请求;
17.若是,则暂停向所述目标路由节点发送所述目标请求。
18.第三方面,本发明实施例提供了一种反压信息传递装置,应用于本地路由节点,所述本地路由节点为网络芯片np上的三维片上互联网络noc中的每一路由节点,所述三维noc中的各个路由节点分别组成不同的路由节点子系统,不同的路由节点子系统所包括的路由节点不同,且每一路由节点子系统中包含多个互不相连的路由节点,所述装置包括:
19.第一信息发送模块,用于接收第一路由节点发送的第一反压信息,并向第二路由节点发送所述第一反压信息与所述本地路由节点自身的本地反压信息,其中,所述第一路由节点与第二路由节点分别在第一方向、第二方向上与所述本地路由节点直接相连,所述第一方向与第二方向相对,所述第一反压信息包括:所述第一路由节点自身的反压信息以及接收到的反压信息;
20.第二信息发送模块,用于接收所述第二路由节点发送的第二反压信息,并向所述第一路由节点发送所述第二反压信息与所述本地反压信息,其中,所述第二反压信息包括:所述第二路由节点自身的反压信息以及接收到的反压信息;
21.第三信息发送模块,用于接收第三路由节点发送的第三反压信息,并向第四路由节点发送所述第三反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第三路由节点与第四路由节点分别在第三方向、第四方向上与所述本地路由节点直接相连,所述第三方向与第四方向相对,所述第三反压信息包括:所述第三路由节点自身的反压信息以及接收到的反压信息;
22.第四信息发送模块,用于接收所述第四路由节点发送的第四反压信息,并向所述第三路由节点发送所述第四反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第四反压信息包括:所述第四路由节点自身的反压信息以及接收到的反压信息;
23.信息写入模块,用于将所述本地反压信息、所获取的第一反压信息、第二反压信息、第三反压信息与第四反压信息写入所述本地路由节点所在的路由节点子系统对应的缓
存中。
24.第四方面,本发明实施例提供了一种请求发送装置,应用于网络芯片np上的任一网络处理器集群npc,其中,每一npc用于:控制三维片上互联网络noc中的一个路由节点子系统内、互不相连的各个路由节点,不同的路由节点子系统所包括的路由节点不同,所述装置包括:
25.路径确定模块,用于在向目标路由节点子系统发送目标请求之前,确定目标路由节点子系统中用于接收目标请求的目标路由节点,并且确定用于向所述目标路由节点发送所述目标请求的传输路径;
26.反压信息读取模块,用于从三维反压信息表中读取所述目标路由节点的反压信息,其中,所述三维反压信息表存储于:所述npc控制的路由节点子系统对应的缓存中,所述三维反压信息表中的每一元素记录有所述三维noc中一个路由节点的反压信息,所述三维反压信息表内记录的反压信息为:通过第一方面任一所述的方法获得的;
27.状态确定模块,用于基于所读取的反压信息确定所述目标路由节点是否处于反压状态;
28.请求发送模块,用于若所述状态确定模块的确定结果为否,则通过所述传输路径向所述目标路由节点发送所述目标请求,若所述状态确定模块的确定结果为是,则暂停向所述目标路由节点发送所述目标请求。
29.第五方面,本发明实施例提供了一种网络芯片,所述网络芯片np上包含三维片上互联网络noc,所述三维noc中的各个路由节点分别组成不同的路由节点子系统,不同的路由节点子系统所包括的路由节点不同,且每一路由节点子系统中包含多个互不相连的路由节点,所述三维noc中的每一路由节点为本地路由节点,所述本地路由节点用于:
30.接收第一路由节点发送的第一反压信息,并向第二路由节点发送所述第一反压信息与所述本地路由节点自身的本地反压信息,其中,所述第一路由节点与第二路由节点分别在第一方向、第二方向上与所述本地路由节点直接相连,所述第一方向与第二方向相对,所述第一反压信息包括:所述第一路由节点自身的反压信息以及接收到的反压信息;
31.接收所述第二路由节点发送的第二反压信息,并向所述第一路由节点发送所述第二反压信息与所述本地反压信息,其中,所述第二反压信息包括:所述第二路由节点自身的反压信息以及接收到的反压信息;
32.接收第三路由节点发送的第三反压信息,并向第四路由节点发送所述第三反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第三路由节点与第四路由节点分别在第三方向、第四方向上与所述本地路由节点直接相连,所述第三方向与第四方向相对,所述第三反压信息包括:所述第三路由节点自身的反压信息以及接收到的反压信息;
33.接收所述第四路由节点发送的第四反压信息,并向所述第三路由节点发送所述第四反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第四反压信息包括:所述第四路由节点自身的反压信息以及接收到的反压信息;
34.将所述本地反压信息、所获取的第一反压信息、第二反压信息、第三反压信息与第四反压信息写入所述本地路由节点所在的路由节点子系统对应的缓存中。
35.本发明实施例有益效果:
36.本发明实施例提供了一种反压信息传递方法,应用于np上的三维noc中的任一路
由节点,每一路由节点均被称为本地路由节点,三维noc中的各个路由节点分别组成不同的路由节点子系统,每一路由节点子系统中包含多个互不相连的路由节点,第一环节中,本地路由节点接收在第一方向上与本地路由节点相连的第一路由节点发送的第一反压信息,并向在相对的第二方向上与本地路由节点相连的第二路由节点发送第一反压信息与本地路由节点自身的本地反压信息。并且,接收第二路由节点发送的第二反压信息,并向第一路由节点发送第二反压信息和本地反压信息。从而实现在相对的第一方向与第二方向上双向的反压信息传递。
37.另外,第二环节中,本地路由节点接收在第三方向与本地路由节点相连的第三路由节点发送的第三反压信息,并向在相对的第四方向上与本地路由节点相连的第四路由节点发送第三反压信息、第一反压信息、第二反压信息与本地反压信息。并且,接收第四路由节点发送的第四反压信息,并向第三路由节点发送第四反压信息、第一反压信息、第二反压信息与本地反压信息。从而实现在相对的第三方向与第四方向上双向的反压信息传递。再将上述第一反压信息、第二反压信息、第三反压信息、第四反压信息与本地反压信息写入本地路由节点所在路由节点子系统对应的缓存中。
38.由以上可见,在第一环节,上述三维noc中的每一路由节点均作为本地路由节点,在第一方向与第二方向两个方向上互相传递反压信息,经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第一方向和第二方向上与自身直接或间接相连的各个路由节点对应的反压信息。
39.之后,在第二环节,各个路由节点继续作为本地路由节点,在第三方向与第四方向上互相传递反压信息。经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第三方向与第四方向上与自身直接或间接相连的各个路由节点的反压信息,结合第一环节,三维noc中的各个路由节点能够获得到在第一方向、第二方向、第三方向与第四方向上与自身直接或间接相连的路由节点,也就是三维noc中所有与自身相连的路由节点的反压信息。
40.再者,属于同一路由节点子系统内的各个路由节点分别与不同的路由节点相连,所连接的路由节点涵盖三维noc中的所有路由节点。同一路由节点子系统内的各个路由节点分别获取到与自身相连的路由节点的反压信息后均写入自身所在的路由节点子系统对应的缓存中,使得上述缓存中能够存储三维noc中包含的所有路由节点的反压信息,从而能够实现np芯片上三维noc中路由节点之间反压信息的传递,进而得到每个路由节点子系统中各个路由节点的反压信息。
附图说明
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
42.图1为本发明实施例提供的一种三维noc的结构示意图;
43.图2为本发明实施例提供的第一种反压信息传递方法的流程示意图;
44.图3为本发明实施例提供的一种反压信息传递过程示意图;
45.图4为本发明实施例提供的一种请求发送方法的流程示意图;
46.图5为本发明实施例提供的一种传输路径示意图;
47.图6为本发明实施例提供的一种反压信息传递装置的结构示意图;
48.图7为本发明实施例提供的一种请求发送装置的结构示意图。
具体实施方式
49.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本发明保护的范围。
50.为了解决在三维noc中传递反压信息的问题,本发明实施例提供了一种反压信息传递、请求发送方法、装置及网络芯片。
51.本发明实施例提供了一种反压信息传递方法,应用于本地路由节点,上述本地路由节点为np上的三维noc中的每一路由节点,上述三维noc中的各个路由节点分别组成不同的路由节点子系统,不同的路由节点子系统所包括的路由节点不同,且每一路由节点子系统中包含多个互不相连的路由节点,上述方法包括:
52.接收第一路由节点发送的第一反压信息,并向第二路由节点发送上述第一反压信息与上述本地路由节点自身的本地反压信息,其中,上述第一路由节点与第二路由节点分别在第一方向、第二方向上与上述本地路由节点直接相连,上述第一方向与第二方向相对,上述第一反压信息包括:上述第一路由节点自身的反压信息以及接收到的反压信息;
53.接收上述第二路由节点发送的第二反压信息,并向上述第一路由节点发送上述第二反压信息与上述本地反压信息,其中,上述第二反压信息包括:上述第二路由节点自身的反压信息以及接收到的反压信息;
54.接收第三路由节点发送的第三反压信息,并向第四路由节点发送上述第三反压信息、第一反压信息、第二反压信息与本地反压信息,其中,上述第三路由节点与第四路由节点分别在第三方向、第四方向上与上述本地路由节点直接相连,上述第三方向与第四方向相对,上述第三反压信息包括:上述第三路由节点自身的反压信息以及接收到的反压信息;
55.接收上述第四路由节点发送的第四反压信息,并向上述第三路由节点发送上述第四反压信息、第一反压信息、第二反压信息与本地反压信息,其中,上述第四反压信息包括:上述第四路由节点自身的反压信息以及接收到的反压信息;
56.将上述本地反压信息、所获取的第一反压信息、第二反压信息、第三反压信息与第四反压信息写入上述本地路由节点所在的路由节点子系统对应的缓存中。
57.由以上可见,在第一环节,上述三维noc中的每一路由节点均作为本地路由节点,在第一方向与第二方向两个方向上互相传递反压信息,经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第一方向和第二方向上与自身直接或间接相连的各个路由节点对应的反压信息。
58.之后,在第二环节,各个路由节点继续作为本地路由节点,在第三方向与第四方向上互相传递反压信息。经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第三方向与第四方向上与自身直接或间接相连的各个路由节点的反压信息,结合第一环节,三维noc中的各个路由节点能够获得到在第一方向、第二方向、第
三方向与第四方向上与自身直接或间接相连的路由节点,也就是三维noc中所有与自身相连的路由节点的反压信息。
59.再者,属于同一路由节点子系统内的各个路由节点分别与不同的路由节点相连,所连接的路由节点涵盖三维noc中的所有路由节点。同一路由节点子系统内的各个路由节点分别获取到与自身相连的路由节点的反压信息后均写入自身所在的路由节点子系统对应的缓存中,使得上述缓存中能够存储三维noc中包含的所有路由节点的反压信息,从而能够实现np芯片上三维noc中路由节点之间反压信息的传递,进而得到每个路由节点子系统中各个路由节点的反压信息。
60.首先,对本发明实施例中涉及的np上三维noc进行描述。参见图1,为本发明实施例提供的一种三维noc的结构示意图。
61.具体的,图1为三维noc的俯视图,图中的方块表示路由节点,各个方块之间的连线表示路由节点之间的总线,该路由节点网络为三维结构,图1仅为该三维noc的二维俯视图,各个连线之间相交并不代表该连线表示的总线之间相交。
62.该三维noc中包含64个路由节点,位于同一虚线框中的路由节点属于同一路由节点子系统,该三维noc中包含16个路由节点子系统,分别以a0-d4表示。每一路由节点子系统内包含4个路由节点,分别被标记为00、01、10、11。各个被标记为00的路由节点之间通过总线彼此相连,各个被标记为01的路由节点之间通过总线彼此相连,各个被标记为10的路由节点之间通过总线彼此相连,各个被标记为11的路由节点之间通过总线彼此相连。但属于同一路由节点子系统内的路由节点之间并不相连。
63.由图可见,每一路由节点子系统自身包含的不同路由节点分别与三维noc中的不同路由节点相连,每一路由节点子系统可以通过自身包含的路由节点向三维noc中的其他任一路由节点子系统内的路由节点发送请求。
64.另外,基于oob(out of band,不计入总线带宽内)技术,三维noc中路由节点之间除了设置有用于传递请求的总线之外,还可以设置用于传递反压信息的总线,使得路由节点之间彼此传递反压信息时不会占用用于传递请求的总线的带宽,不会对路由节点之间传递请求的效率造成影响。用于传递反压信息的总线的分布方式与用于传递请求的总线相同,图1所示的总线既可以表示用于传递反压信息的总线又可以表示用于传递请求的总线。
65.此外,上述图1仅为三维noc的示意图,本实施例中对三维noc内包含的路由节点的数量、每一路由节点子系统中包含的路由节点的数量、各个路由节点之间的连接关系均不进行限定。
66.参见图2,为本发明实施例提供的第一种反压信息传递方法的流程示意图,应用于本地路由节点,上述本地路由节点为np上的三维noc中的每一路由节点,上述三维noc中的各个路由节点分别组成不同的路由节点子系统,不同的路由节点子系统所包括的路由节点不同,且每一路由节点子系统中包含多个互不相连的路由节点,上述方法包括以下步骤s201-s205。
67.各个路由节点是否处于反压状态会随着时间发生变化,为了保证所获取到的反压信息的实时性,每经过预设时钟周期各个路由节点便可以执行一次以下步骤s201-s205。
68.s201:接收第一路由节点发送的第一反压信息,并向第二路由节点发送上述第一反压信息与上述本地路由节点自身的本地反压信息。
69.其中,上述第一路由节点与第二路由节点分别在第一方向、第二方向上与上述本地路由节点直接相连,上述第一方向与第二方向相对,上述第一反压信息包括:上述第一路由节点自身的反压信息以及接收到的反压信息。
70.上述反压信息表示所对应的路由节点是否处于反压状态,例如,若上述反压信息中记录的标识值为1,则表示所对应的路由节点处于反压状态,若上述反压信息中记录的标识值为0,则标识所对应的路由节点未处于反压状态。
71.另外,若路由节点对应的缓存中存储的请求的数据量达到上述缓存能够存储数据的最大数据量时,该路由节点可以确定自身处于反压状态,否则确定自身未处于反压状态。但由于反压信息的传递需要一定的延时,若路由节点对应的缓存中存储的请求的数据量达到上述缓存能够存储数据的最大数据量时,路由节点才确定自身处于反压状态,才向其他路由节点发送表示自身处于反压状态的反压信息,则在反压信息传递至其他路由节点之前,其他路由节点可能继续向该路由节点发送请求,该路由节点对应的缓存难以再存储新接收到的请求,便会造成网络拥塞。因此可以为路由节点预先设置反压阈值,在路由节点对应的缓存中存储的请求的数据量达到上述反压阈值时,路由节点便确定自身处于反压状态。
72.例如,上述反压阈值可以为路由节点对应的缓存能够存储数据的最大数据量的80%等。
73.此外,上述第一方向可以为横向上的东向或西向,也可以为纵向上的南向或北向。若上述第一路由节点位于本地路由节点西侧,则第二路由节点位于本地路由节点东侧;若上述第一路由节点位于本地路由节点东侧,则第二路由节点位于本地路由节点西侧。若上述第一路由节点位于本地路由节点北侧,则第二路由节点位于本地路由节点南侧;若上述第一路由节点位于本地路由节点南侧,则第二路由节点位于本地路由节点北侧。
74.例如,在图1中路由节点子系统b1内的路由节点00为本地路由节点的情况下,若上述第一方向为东向,第二方向为西向,则第一路由节点为路由节点子系统c1内的路由节点00,第二路由节点为路由节点子系统a1内的路由节点00。若上述第一方向为北向,第二方向为南向,则第一路由节点为路由节点子系统b2内的路由节点00,第二路由节点为路由节点子系统b0内的路由节点00。
75.本技术的一个实施例中,各个路由节点均可以作为本地路由节点,也就是第一路由节点同样会作为本地路由节点接收到位于自身第一方向的其他路由节点发送给第一路由节点的反压信息,则第一反压信息中包含的第一路由节点接收到的反压信息是位于第一路由节点第一方向的其他路由节点发送给第一路由节点的。依次类推,每一路由节点均接收到位于自身第一方向的其他路由节点发送的反压信息,相当于各个路由节点完成了从第一方向向第二方向的反压信息传递。
76.另外,若本地路由节点位于三维noc的边缘,则可能不存在在第二方向上与本地路由节点相连的第二路由节点,本地路由节点获取到第一路由节点发送的第一反压信息后,由于第二路由节点不存在,本地路由节点不再向第二路由节点发送反压信息。或者,可能不存在在第一方向上与本地路由节点相连的第一路由节点,则本地路由节点不会接收到第一路由节点发送的反压信息,本地路由节点可以直接向第二路由节点发送本地反压信息。
77.例如,图1中位于路由节点子系统a0中的01节点,此处称为节点m,在东西方向上仅
与一个路由节点相连,即路由节点子系统b0中的01节点,此处称为节点n。则节点m接收到节点n发送的反压信息后,不需要继续发送反压信息。并且,节点m在向节点n发送反压信息时,仅需要发送自身的本地反压信息。
78.s202:接收上述第二路由节点发送的第二反压信息,并向上述第一路由节点发送上述第二反压信息与上述本地反压信息。
79.其中,上述第二反压信息包括:上述第二路由节点自身的反压信息以及接收到的反压信息。
80.具体的,各个路由节点均可以作为本地路由节点,也就是第二路由节点同样会作为本地路由节点接收到位于自身第二方向的其他路由节点发送给第二路由节点的反压信息,第二反压信息中包含的第二路由节点接收到的反压信息是位于第二路由节点第二方向的其他路由节点发送给第二路由节点的。依次类推,每一路由节点均接收到位于自身第二方向的其他路由节点发送的反压信息,相当于各个路由节点完成了从第二方向向第一方向的反压信息传递。步骤s202与前述步骤s201所示的反压信息传递过程相似,区别仅为方向不同。
81.经过步骤s201与s202之后,各个路由节点可以在第一方向与第二方向两个相对的方向上完成了双向的反压信息的传递。
82.另外,若本地路由节点位于三维noc的边缘,则可能不存在在第一方向上与本地路由节点相连的第一路由节点,本地路由节点获取到第二路由节点发送的第二反压信息后,由于第一路由节点不存在,则本地路由节点不再向第一路由节点发送反压信息。或者,可能不存在在第二方向上与本地路由节点相连的第二路由节点,则本地路由节点不会接收到第二路由节点发送的反压信息,本地路由节点可以直接向第一路由节点发送本地反压信息。
83.s203:接收第三路由节点发送的第三反压信息,并向第四路由节点发送上述第三反压信息、第一反压信息、第二反压信息与本地反压信息。
84.其中,上述第三路由节点与第四路由节点分别在第三方向、第四方向上与上述本地路由节点直接相连,上述第三方向与第四方向相对。上述第三反压信息包括:上述第三路由节点自身的反压信息以及接收到的反压信息。
85.具体的,第一方向、第二方向、第三方向与第四方向各自指示的方向不同,若上述第三路由节点位于本地路由节点北侧,则第四路由节点位于本地路由节点南侧;若上述第三路由节点位于本地路由节点东侧,则第四路由节点位于本地路由节点西侧;若上述第三路由节点位于本地路由节点西侧,则第四路由节点位于本地路由节点东侧。
86.例如,在图1中路由节点子系统c2内的路由节点01为本地路由节点的情况下,若上述第三方向为北向,第四方向为南向,则第三路由节点为路由节点子系统c3内的路由节点01,第四路由节点为路由节点子系统c1内的路由节点01。若上述第三方向为西向,第四方向为东向,则第三路由节点为路由节点子系统b2内的路由节点01,第四路由节点为路由节点子系统d2内的路由节点01。
87.另外,与前述步骤s201相似,本技术的一个实施例中,三维noc中的各个路由节点均作为本地路由节点,也就是第三路由节点同样会作为本地路由节点接收到位于自身第三方向的其他路由节点发送给第三路由节点的反压信息,则第三反压信息中包含的第三路由节点接收到的反压信息是位于第三路由节点第三方向的其他路由节点发送给第三路由节
点的、包括其他路由节点在第一方向和第二方向上接收到的反压信息,以及在第三方向、第四方向上接收到的反压信息。依次类推,每一路由节点均接收到位于自身第三方向的其他路由节点发送的反压信息,相当于各个路由节点完成了从第三方向向第四方向的反压信息传递。
88.此外,若本地路由节点位于三维noc的边缘,则可能不存在在第四方向上与本地路由节点相连的第四路由节点,则在本地路由节点接收到第三路由节点发送的反压信息之后,由于第四路由节点不存在,本地路由节点不再向第四路由节点发送反压信息。或者,可能不存在在第三方向上与本地路由节点相连的第三路由节点,则本地路由节点不会接收到第三路由节点发送的反压信息,本地路由节点可以直接向第四路由节点发送本地反压信息。
89.例如,图1中位于路由节点子系统a0中的00节点,此处称为节点x,在南北方向上仅与一个路由节点相连,即路由节点子系统a1中的00节点,此处称为节点y。则节点x接收到节点y发送的反压信息后,不需要继续发送反压信息。并且,节点x在向节点y发送反压信息时,仅需要发送自身的本地反压信息。
90.s204:接收上述第四路由节点发送的第四反压信息,并向上述第三路由节点发送上述第四反压信息、第一反压信息、第二反压信息与本地反压信息。
91.其中,上述第四反压信息包括:上述第四路由节点自身的反压信息以及接收到的反压信息。
92.具体的,三维noc中的各个路由节点均作为本地路由节点,也就是第四路由节点同样会作为本地路由节点接收到位于自身第四方向的其他路由节点发送给第四路由节点的反压信息,第四反压信息中包含的第四路由节点接收到的反压信息是位于第四路由节点第四方向的其他路由节点发送给第四路由节点的、包括其他路由节点在第一方向和第二方向上接收到的反压信息,以及在第三方向、第四方向上接收到的反压信息。依次类推,每一路由节点均接收到位于自身第四方向的其他路由节点发送的反压信息,相当于各个路由节点完成了从第四方向向第三方向的反压信息传递。步骤s204与前述步骤s203所示的反压信息传递过程相似,区别仅为方向不同。
93.经过步骤s204与s203之后,各个路由节点可以在第三方向与第四方向两个相对的方向上完成了双向的反压信息的传递。
94.另外,若本地路由节点位于三维noc的边缘,则可能不存在在第三方向上与本地路由节点相连的第三路由节点,本地路由节点获取到第四路由节点发送的第四反压信息后,由于第三路由节点不存在,则本地路由节点不再向第三路由节点发送反压信息。或者,可能不存在在第四方向上与本地路由节点相连的第四路由节点,则本地路由节点不会接收到第四路由节点发送的反压信息,本地路由节点可以直接向第三路由节点发送本地反压信息。
95.s205:将上述本地反压信息、所获取的第一反压信息、第二反压信息、第三反压信息与第四反压信息写入上述本地路由节点所在的路由节点子系统对应的缓存中。
96.具体的,三维noc中的每一路由节点子系统被一个npc(network processor cluster,网络处理器集群)控制,且具有一个统一的缓存。
97.另外,经过前述步骤s201-s204,每一路由节点均可以获得三维noc中与自身直接或间接相连的其他路由节点的反压信息,但无法获得与自身不相连的路由节点的反压信
息。但属于同一路由节点子系统中的各个路由节点所连接的各个路由节点涵盖三维noc中的所有路由节点,因此属于同一路由节点子系统中的各个路由节点均将自身获取到的所有反压信息写入上述缓存中之后,上述缓存内存储有三维noc中的所有路由节点的反压信息。
98.本发明的一个实施例中,可以将上述本地反压信息写入上述本地路由节点所在的路由节点子系统对应的缓存中,并按照第一反压信息、第二反压信息、第三反压信息、第四反压信息的获取顺序,将所获取的第一反压信息、第二反压信息、第三反压信息与第四反压信息依次写入上述缓存中。
99.具体的,理论上与本地路由节点之间距离越远的路由节点向本地路由节点发送反压信息的时延越长,该路由节点发送的反压信息在本地路由节点接收到的反压信息的获取顺序中越靠后。
100.例如,参见图1,以路由节点子系统a0中的路由节点00为本地路由节点,路由节点子系统a1中的路由节点00与本地路由节点之间的距离近于路由节点子系统b2中的路由节点00与本地路由节点之间的距离,因此理论上路由节点子系统a1中的路由节点00发送的反压信息会较早到达本地路由节点,也会被较早写入上述缓存。
101.由以上可见,在第一环节,上述三维noc中的每一路由节点均作为本地路由节点,在第一方向与第二方向两个方向上互相传递反压信息,经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第一方向和第二方向上与自身直接或间接相连的各个路由节点对应的反压信息。
102.之后,在第二环节,各个路由节点继续作为本地路由节点,在第三方向与第四方向上互相传递反压信息。经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第三方向与第四方向上与自身直接或间接相连的各个路由节点的反压信息,结合第一环节,三维noc中的各个路由节点能够获得到在第一方向、第二方向、第三方向与第四方向上与自身直接或间接相连的路由节点,也就是三维noc中所有与自身相连的路由节点的反压信息。
103.再者,属于同一路由节点子系统内的各个路由节点分别与不同的路由节点相连,所连接的路由节点涵盖三维noc中的所有路由节点。同一路由节点子系统内的各个路由节点分别获取到与自身相连的路由节点的反压信息后均写入自身所在的路由节点子系统对应的缓存中,使得上述缓存中能够存储三维noc中包含的所有路由节点的反压信息,从而能够实现np芯片上三维noc中路由节点之间反压信息的传递,进而得到每个路由节点子系统中各个路由节点的反压信息。
104.本发明的一个实施例中,在各个路由节点均作为本地路由节点通过步骤s201-s202在第一方向和第二方向上完成对向的反压信息传递后,在第一方向和第二方向上彼此相连的各个路由节点便可以互相获取到对方的反压信息,即第一反压信息。本地路由节点可以将所获取到的各个路由节点的反压信息以及自身的本地反压信息记录于一个一维反压信息表中。
105.例如,以图1所示的三维noc为例,若第一方向是东向,第二方向是西向,在东西方向上每一行存在4个彼此相连的路由节点,该一维反压信息表为包含4个元素的反压信息表。
106.则在执行步骤s203-s204的过程中,各个路由节点之间可以互相发送自身生成的
一维反压信息表,对于每一本地路由节点,第三路由节点和第四路由节点可以向本地路由节点发送自身生成的一维反压信息表,以及自身获取到的一维反压信息表,从而将第三路由节点、第四路由节点自身的反压信息,以及第三路由节点、第四路由节点获取到的反压信息发送至本地路由节点,则步骤s203可以通过以下步骤a实现。
107.步骤a:接收第三路由节点发送的第一反压表,并向第四路由节点发送上述第一反压表以及上述本地路由节点生成的第二反压表。
108.其中,上述第一反压表中包含第三反压信息,上述第二反压表中包含上述第一反压信息、第二反压信息与本地反压信息。
109.具体的,上述第一反压表中包含第三路由节点自身生成的一维反压信息表,其中记录有第三路由节点自身的反压信息以及第三路由节点接收到的第一反压信息与第二反压信息,第一反压表中还包含第三路由节点自身获得的其他路由节点发送的一维反压信息表,其中记录有第三路由节点接收到的其他路由节点发送的第三反压信息和第四反压信息,上述第二反压表即为上述本地路由节点自身生成的一维反压信息表,其中记录有本地路由节点自身的反压信息以及本地路由节点接收到的第一反压信息与第二反压信息。
110.另外,步骤s204可以通过以下步骤b实现。
111.步骤b:接收上述第四路由节点发送的第三反压表,并向上述第三路由节点发送上述第三反压表以及上述第二反压表。
112.具体的,上述第三反压信息表中包含第四反压信息。上述第三反压表中包含第四路由节点自身生成的一维反压信息表,其中记录有第四路由节点自身的反压信息以及第四路由节点接收到的第一反压信息与第二反压信息,第一反压表中还包含第四路由节点自身获得的其他路由节点发送的一维反压信息表,其中记录有第四路由节点接收到的其他路由节点发送的第三反压信息和第四反压信息。
113.在经过步骤a-步骤b各个路由节点之间在第三方向和第四方向上互相发送一维反压信息表之后,在第三方向和第四方向上彼此相连的各个路由节点便可以互相获取到对方的一维反压信息表,这就是对于本地路由节点而言,本地路由节点获得到与自身在第三方向和第四方向上相连的各个路由节点的一维反压信息表,每一一维反压信息表中包含所对应的路由节点在第一方向和第二方向上所连接的各个路由节点的反压信息,这些路由节点即是与本地路由节点间接相连的路由节点,则相当于本地路由节点获得与自身直接或间接相连的所有路由节点的反压信息。
114.本地路由节点在获取到各一维反压信息表之后,可以将各一维反压信息表组合形成一个二维反压信息表,二维反压信息表中的每一行中的各个元素可以分别为东西方向上彼此相连的一行路由节点的反压信息,二维反压信息表中的每一列中的各个元素可以分别为南北方向上彼此相连的一列路由节点的反压信息。
115.以前述图1所示的三维noc为例,将路由节点子系统a0中的路由节点00作为本地路由节点,本地路由节点与各个路由节点子系统中的路由节点00直接或间接相连,经过步骤s201-s204之后,本地路由节点能够接收到各个路由节点子系统中路由节点00的反压信息,并形成一个4
×
4的二维反压信息表,其中包含的每一元素记录有一个路由节点00的反压信息。
116.本地路由节点通过步骤a-步骤b获得并传递反压信息,并生成一个二维反压信息
表之后,可以通过以下步骤c实现步骤s205。
117.步骤c:将上述第一反压表、第二反压表与第三反压表写入上述本地路由节点所在的路由节点子系统对应的缓存中,以基于上述第一反压表、第二反压表与第三反压表在上述缓存中形成包含np上各个路由节点的反压信息的反压信息表。
118.具体的,上述第一反压表、第二反压表与第三反压表共同组成前述二维反压信息表,对于每一路由节点子系统,其中包含的各个路由节点分别作为本地路由节点,均将自身接收到的第一反压表、第三反压表和自身生成的第二反压表写入上述缓存中,相当于每一路由节点将记录有与自身直接或间接相连的各个路由节点的二维反压信息表写入上述缓存,将多个路由节点对应的二维反压信息表结合,便可以生成一个包含三维noc中各个路由节点的反压信息的反压信息表,该反压信息表为三维反压信息表。
119.以前述图1所示的三维noc为例,同一路由节点子系统中包含的每一路由节点均可以生成一个4
×
4的二维反压信息表,将路由节点子系统中4个路由节点生成的二维反压信息表结合便可以生成一个4
×4×
4的三维反压信息表,作为上述反压信息表。
120.本发明的另一个实施例中,上述第一反压信息包括:上述第一路由节点自身的反压信息以及上述第一路由节点接收到的、在第一方向与上述第一路由节点相连的路由节点发送的反压信息。
121.例如,若第一方向为东向,第一路由节点位于本地路由节点东侧,则第一路由节点仅向本地路由节点发送自身接收到的、位于第一路由节点东侧的各个路由节点发送的反压信息,以及第一路由节点自身的反压信息。即本地路由节点仅从与自身东侧相连的第一路由节点处接收位于自身东侧的路由节点的反压信息。之后,本地路由节点将自身的反压信息和接收到的位于自身东侧的路由节点的反压信息发送给位于自身西侧的第二路由节点,对于第二路由节点而言,同样也是接收到了位于自身东侧的路由节点的反压信息,依此类推,同一行的每一路由节点均是接收到了位于自身东侧的路由节点发送的反压信息,并向西侧继续发送反压信息,完成了自东向西的单向反压信息传递。
122.在反压信息的单向传递的过程中不存在反向的重复传递过程,即反压信息在自第一方向向第二方向传递的过程中不会再被反向传递,从而可以防止反压信息非必要的重复传递占用总线的传递资源。
123.另外,若第一方向为其他方向,与前述第一方向为东向的情况相同,各个路由节点之间同样能够完成单向的反压信息传递,在此不再赘述。
124.本发明的又一个实施例中,上述第二反压信息包括:上述第二路由节点自身的反压信息以及上述第二路由节点接收到的、在第二方向与上述第二路由节点相连的路由节点发送的反压信息。
125.与前述第一反压信息的传递过程相似,若第二方向为西向,则与本地路由节点西侧相连的路由节点为第二路由节点时,则第二路由节点仅向本地路由节点发送自身接收到的、位于第二路由节点西侧的路由节点发送的反压信息,以及第二路由节点自身的反压信息。即本地路由节点仅从与自身西侧相连的第二路由节点处接收位于自身西侧的路由节点的反压信息。之后,本地路由节点将自身的反压信息和接收到的位于自身西侧的路由节点的反压信息发送给位于自身东侧的第一路由节点,对于第一路由节点而言,同样也是接收到了位于自身西侧的路由节点的反压信息,依此类推,同一行的每一路由节点均是接收到
了位于自身西侧的路由节点发送的反压信息,并向东侧继续发送反压信息,完成了自西向东的单向反压信息传递。
126.另外,若第二方向为其他方向,与前述第二方向为西向的情况相同,各个路由节点之间同样能够完成单向的反压信息传递,在此不再赘述。
127.在反压信息的单向传递的过程中不存在反向的重复传递过程,即反压信息在自第二方向向第一方向传递的过程中不会再被反向传递,从而可以防止反压信息非必要的重复传递占用总线的传递资源。
128.本发明的又一个实施例中,上述第三反压信息包括:上述第三路由节点自身的反压信息以及上述第三路由节点接收到的、在第三方向与第三路由节点相连的路由节点发送的反压信息。
129.例如,若第三方向为南向,第三路由节点位于本地路由节点南侧,第四路由节点位于本地路由节点北侧,也就是第三路由节点仅向本地路由节点发送第三路由节点接收到的、位于第三路由节点南侧的各个路由节点发送给第三路由节点的反压信息,以及第三路由节点自身的反压信息。即本地路由节点仅从与自身南侧相连的第三路由节点处接收位于自身南侧的路由节点的反压信息。之后,本地路由节点将自身的反压信息和接收到的位于自身南侧的路由节点的反压信息发送给位于自身北侧的第四路由节点,对于第四路由节点而言,同样也是接收到了位于自身南侧的路由节点的反压信息,依此类推,同一列的路由节点均是接收到了位于自身南侧的路由节点发送的反压信息,并向北侧继续发送反压信息,完成了自南向北的单向反压信息传递。
130.在反压信息的单向传递的过程中不存在反向的重复传递过程,即反压信息在自第三方向向第四方向传递的过程中不会再被反向传递,从而可以防止反压信息非必要的重复传递占用总线的传递资源。
131.另外,若第三方向为其他方向,与前述第三方向为南向的情况相同,各个路由节点之间同样能够完成单向的反压信息传递,在此不再赘述。
132.再者,上述第四反压信息包括:上述第四路由节点自身的反压信息以及上述第三路由节点接收到的、在第四方向与上述第四路由节点相连的路由节点发送的反压信息。
133.与前述第三反压信息的传递过程相似,若第四方向为北向,则与本地路由节点北侧相连的路由节点为第四路由节点时,则第四路由节点仅向本地路由节点发送自身接收到的、位于第四路由节点北侧的路由节点发送的反压信息,以及第四路由节点自身的反压信息。即本地路由节点仅从与自身北侧相连的第四路由节点处接收位于自身北侧的路由节点的反压信息。之后,本地路由节点将自身的反压信息和接收到的位于自身北侧的路由节点的反压信息发送给位于自身南侧的第三路由节点,对于第三路由节点而言,同样也是接收到了位于自身北侧的路由节点的反压信息,依此类推,同一列的每一路由节点均是接收到了位于自身北侧的路由节点发送的反压信息,并向南侧继续发送反压信息,完成了自北向南的单向反压信息传递。
134.在反压信息的单向传递的过程中不存在反向的重复传递过程,即反压信息在自第四方向向第三方向传递的过程中不会再被反向传递,从而可以防止反压信息非必要的重复传递占用总线的传递资源。
135.此外,若第四方向为其他方向,与前述第四方向为北向的情况相同,各个路由节点
之间同样能够完成单向的反压信息传递,在此不再赘述。
136.参见图3,为本发明实施例提供的一种反压信息传递过程示意图。
137.由图可见,本地路由节点接收西侧路由节点发送的反压信息之后,将自身的反压信息与接收到的反压信息发送给东侧路由节点;本地路由节点接收东侧路由节点发送的反压信息之后,将自身的反压信息与接收到的反压信息发送给西侧路由节点;本地路由节点接收北侧路由节点发送的反压信息之后,将自身的反压信息与接收到的反压信息发送给南侧路由节点;本地路由节点接收南侧路由节点发送的反压信息之后,将自身的反压信息与接收到的反压信息发送给北侧路由节点。
138.并且本地路由节点将接收到的各个反压信息以及自身的反压信息均写入本地路由节点的反压信息表中。
139.另外,西侧路由节点、东侧路由节点、北侧路由节点与南侧路由节点传递反压信息的过程与本地路由节点相同,在图中并未展开描述。
140.由以上可见,每一路由节点执行的反压信息传递过程是相同的,每一路由节点均作为本地路由节点,采用相同的方式进行反压信息传递,从而便可以完成整个三维noc中反压信息的传递。
141.本发明的另一个实施例中,参见图4,为本发明实施例提供的一种请求发送方法的流程示意图,应用于np上的任一npc,上述npc为多个cpu组成的集群,其中,每一npc用于:控制三维noc中的一个路由节点子系统内、互不相连的各个路由节点,不同的路由节点子系统所包括的路由节点不同。
142.上述方法包括以下步骤s401-s405。
143.s401:在向目标路由节点子系统发送目标请求之前,确定目标路由节点子系统中用于接收目标请求的目标路由节点,并且确定用于向上述目标路由节点发送上述目标请求的传输路径。
144.具体的,npc向目标路由节点子系统发送的任意数据均可以作为上述目标请求。例如,上述目标请求可以为np向目标路由节点子系统发送的数据获取请求,也可以为npc向目标路由节点子系统发送的指令,如中断指令。
145.另外,np所在的网络设备接收到其他设备发送的报文之后可以对报文进行分片,并将分片后得到的报文数据输入np中,npc获得到报文数据后可以向目标路由节点子系统发送报文数据,则在上述情况下上述报文数据即为目标请求。
146.在目标请求被发送之前,npc可以将待发送的目标请求存储于缓存中的队列中,目标路由节点子系统中包含多个路由节点,npc可以选择目标路由节点子系统中的任一路由节点作为目标路由节点,将请求发送至目标路由节点,便能够将请求发送至目标路由节点子系统。因此,若目标路由节点子系统中包含的部分路由节点发生故障或处于反压状态,npc可以选择其他路由节点作为目标路由节点,从而能够在大多数情况下保证请求能够顺利发送至目标路由节点子系统。
147.其中,选择从目标路由节点子系统中选择目标路由节点属于现有技术,本实施例对此不再赘述。
148.另外,目标路由节点选定之后npc便可以通过自身控制的、与目标路由节点直接或间接相连的路由节点向目标路由节点发送请求,并且可以基于预先设置的路由规则选择上
述传输路径。
149.例如,参见图5,为本发明实施例提供的一种传输路径示意图,该图示出的三维noc与前述图1示出的相同。
150.其中,目标路由节点为路由节点子系统c3中的路由节点01,上述npc控制路由节点子系统b1,则npc可以控制路由节点子系统b1中的路由节点01向目标路由节点发送请求,传输路径为图中粗线箭头示出的路径。
151.s402:从三维反压信息表中读取上述目标路由节点的反压信息。
152.其中,上述三维反压信息表存储于:上述npc控制的路由节点子系统对应的缓存中,上述三维反压信息表中的每一元素记录有上述三维noc中一个路由节点的反压信息,上述三维反压信息表内记录的反压信息为:通过前述反压信息传递方法任一所述的方法获得的,具体获得方式可以参见前文,在此不再赘述。
153.采用前文所示的反压信息传递方法实施例可以将np上的各个路由节点的反压信息写入上述缓存中,无论目标路由节点是哪一节点,npc从上述缓存中均可以读取目标路由节点的反压信息,另外,上述缓存中存储的反压信息可以是按周期更新的,从而可以认为npc读取的反压信息能够反映目标路由节点的反压状态。
154.s403:基于所读取的反压信息确定上述目标路由节点是否处于反压状态。
155.若为否,则执行步骤s404,若为是,则执行步骤s405。
156.s404:通过上述传输路径向上述目标路由节点发送上述目标请求。
157.若目标路由节点未处于反压状态,则目标路由节点可以继续接收其他路由节点发送的请求,因此npc可以从队列中读取目标请求,并继续向目标路由节点发送请求。
158.具体的,请求发送方式为现有技术,在此不再赘述。
159.s405:暂停向上述目标路由节点发送上述目标请求。
160.具体的,若目标路由节点处于反压状态,则目标路由节点对应的缓存中存储的请求较多,难以继续接收其他路由节点发送的请求,因此npc可以暂停向目标路由节点发送请求,目标请求依旧存储于上述队列中,直至目标路由节点解除反压状态。
161.本发明的一个实施例中,可以通过以下步骤c或步骤d实现上述步骤s405。
162.步骤c:停止向上述目标路由节点发送上述目标请求。
163.也就是,npc放弃发送上述请求,可以将上述请求写入缓存中以便后续重新发送,或直接丢弃上述请求。
164.步骤d:向上述目标路由节点发送所包含的内容为空的空请求。
165.其中,上述空请求的数据量远小于上述请求的数据量,即使向目标路由节点发送空请求也不会占用较大的总线带宽,并且目标路由节点可以不对空请求进行任何处理,也不会占用目标路由节点对应的缓存的存储资源。
166.由以上可见,在通过前文所示的反压信息传递方法实施例在各个路由节点子系统对应的缓存中写入了各个路由节点的反压信息之后,npc便可以基于上述反压信息确定目标路由节点处于反压状态,是否能够接受请求,从而决定是否向目标路由节点发送请求,防止在目标路由节点处于反压状态时向目标路由节点发送请求,造成网络拥塞。也就是npc可以控制请求的发送,也就可以控制总线中传递的请求的数据量,从而控制总线带宽的利用率。
167.另外,由于反压信息的传递需要时间,对于单一的目标路由节点距离较近的路由节点会较早的接收到目标路由节点的反压信息,也较早的将目标路由节点的反压信息写入自身所在的路由节点子系统对应的缓存中,使得控制该路由节点子系统的npc能够较早的响应于目标路由节点当前的反压状态,进行请求发送的调整。
168.但不同路由节点的位置不同,与其他路由节点之间的距离关系也不同,对于每一路由节点而言,该路由节点能够较早地接收到部分路由节点的反压信息,该路由节点对应的npc也就会较快的对该部分的路由节点的反压状态作出反应,进行请求发送的流量调整;同样的该路由节点也会较晚地接收到另一部分路由节点的反压信息,该路由节点对应的npc也就会较快的对该部分的路由节点的反压状态进行反应,进行请求发送的流量调整。从总体而言,各个npc向外发送请求的带宽是相同的。
169.与前述反压信息传递方法相对应,本发明实施例还提供了一种反压信息传递装置。
170.参见图6,为本发明实施例提供的一种反压信息传递装置的结构示意图,应用于本地路由节点,所述本地路由节点为网络芯片np上的三维片上互联网络noc中的每一路由节点,所述三维noc中的各个路由节点分别组成不同的路由节点子系统,不同的路由节点子系统所包括的路由节点不同,且每一路由节点子系统中包含多个互不相连的路由节点,所述装置包括:
171.第一信息发送模块601,用于接收第一路由节点发送的第一反压信息,并向第二路由节点发送所述第一反压信息与所述本地路由节点自身的本地反压信息,其中,所述第一路由节点与第二路由节点分别在第一方向、第二方向上与所述本地路由节点直接相连,所述第一方向与第二方向相对,所述第一反压信息包括:所述第一路由节点自身的反压信息以及接收到的反压信息;
172.第二信息发送模块602,用于接收所述第二路由节点发送的第二反压信息,并向所述第一路由节点发送所述第二反压信息与所述本地反压信息,其中,所述第二反压信息包括:所述第二路由节点自身的反压信息以及接收到的反压信息;
173.第三信息发送模块603,用于接收第三路由节点发送的第三反压信息,并向第四路由节点发送所述第三反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第三路由节点与第四路由节点分别在第三方向、第四方向上与所述本地路由节点直接相连,所述第三方向与第四方向相对,所述第三反压信息包括:所述第三路由节点自身的反压信息以及接收到的反压信息;
174.第四信息发送模块604,用于接收所述第四路由节点发送的第四反压信息,并向所述第三路由节点发送所述第四反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第四反压信息包括:所述第四路由节点自身的反压信息以及接收到的反压信息;
175.信息写入模块605,用于将所述本地反压信息、所获取的第一反压信息、第二反压信息、第三反压信息与第四反压信息写入所述本地路由节点所在的路由节点子系统对应的缓存中。
176.由以上可见,在第一环节,上述三维noc中的每一路由节点均作为本地路由节点,在第一方向与第二方向两个方向上互相传递反压信息,经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第一方向和第二方向上与自身直
接或间接相连的各个路由节点对应的反压信息。
177.之后,在第二环节,各个路由节点继续作为本地路由节点,在第三方向与第四方向上互相传递反压信息。经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第三方向与第四方向上与自身直接或间接相连的各个路由节点的反压信息,结合第一环节,三维noc中的各个路由节点能够获得到在第一方向、第二方向、第三方向与第四方向上与自身直接或间接相连的路由节点,也就是三维noc中所有与自身相连的路由节点的反压信息。
178.再者,属于同一路由节点子系统内的各个路由节点分别与不同的路由节点相连,所连接的路由节点涵盖三维noc中的所有路由节点。同一路由节点子系统内的各个路由节点分别获取到与自身相连的路由节点的反压信息后均写入自身所在的路由节点子系统对应的缓存中,使得上述缓存中能够存储三维noc中包含的所有路由节点的反压信息,从而能够实现np芯片上三维noc中路由节点之间反压信息的传递,进而得到每个路由节点子系统中各个路由节点的反压信息。
179.本发明的一个实施例中,所述第一反压信息包括:所述第一路由节点自身的反压信息以及所述第一路由节点接收到的、在第一方向与所述第一路由节点相连的路由节点发送的反压信息;
180.和/或,
181.所述第二反压信息包括:所述第二路由节点自身的反压信息以及所述第二路由节点接收到的、在第二方向与所述第二路由节点相连的路由节点发送的反压信息;
182.和/或,
183.所述第三反压信息包括:所述第三路由节点自身的反压信息以及所述第三路由节点接收到的、在第三方向与所述第三路由节点相连的路由节点发送的反压信息;
184.和/或,
185.所述第四反压信息包括:所述第四路由节点自身的反压信息以及所述第三路由节点接收到的、在第四方向与所述第四路由节点相连的路由节点发送的反压信息。
186.采用上述方式实现单向的反压信息传递可以防止反压信息非必要的重复传递占用总线的传递资源。
187.本发明的一个实施例中,所述第三信息发送模块603,具体用于接收第三路由节点发送的第一反压表,并向第四路由节点发送所述第一反压表以及所述本地路由节点生成的第二反压表,其中,所述第一反压表中包含第三反压信息,所述第二反压表中包含所述第一反压信息、第二反压信息与本地反压信息;
188.所述第四信息发送模块604,具体用于接收所述第四路由节点发送的第三反压表,并向所述第三路由节点发送所述第三反压表以及所述第二反压表;
189.所述信息写入模块605,具体用于将所述第一反压表、第二反压表与第三反压表写入所述本地路由节点所在的路由节点子系统对应的缓存中,以基于所述第一反压表、第二反压表与第三反压表在所述缓存中形成包含np上各个路由节点的反压信息的反压信息表。
190.与前述请求发送方法相对应,本发明实施例还提供了一种请求发送装置。
191.参见图7,为本发明实施例提供的一种请求发送装置的结构示意图,应用于np上的任一npc,其中,每一npc用于:控制三维noc中的一个路由节点子系统内、互不相连的各个路
由节点,不同的路由节点子系统所包括的路由节点不同,所述装置包括:
192.路径确定模块701,用于在向目标路由节点子系统发送目标请求之前,确定目标路由节点子系统中用于接收目标请求的目标路由节点,并且确定用于向所述目标路由节点发送所述目标请求的传输路径;
193.反压信息读取模块702,用于从三维反压信息表中读取所述目标路由节点的反压信息,其中,所述三维反压信息表存储于:所述npc控制的路由节点子系统对应的缓存中,所述三维反压信息表中的每一元素记录有所述三维noc中一个路由节点的反压信息,所述三维反压信息表内记录的反压信息为:通过前述反压信息传递方法获得的;
194.状态确定模块703,用于基于所读取的反压信息确定所述目标路由节点是否处于反压状态;
195.请求发送模块704,用于若所述状态确定模块的确定结果为否,则通过所述传输路径向所述目标路由节点发送所述目标请求,若所述状态确定模块的确定结果为是,则暂停向所述目标路由节点发送所述目标请求。
196.由以上可见,在通过前文所示的反压信息传递方法实施例在各个路由节点子系统对应的缓存中写入了各个路由节点的反压信息之后,npc便可以基于上述反压信息确定目标路由节点处于反压状态,是否能够接受请求,从而决定是否向目标路由节点发送请求,防止在目标路由节点处于反压状态时向目标路由节点发送请求,造成网络拥塞。也就是npc可以控制请求的发送,也就可以控制总线中传递的请求的数据量,从而控制总线带宽的利用率。
197.本发明的一个实施例中,所述请求发送模块704,具体用于:
198.若所述状态确定模块的确定结果为否,则通过所述传输路径向所述目标路由节点发送所述目标请求,若所述状态确定模块的确定结果为是,停止向所述目标路由节点发送所述目标请求;或者,若所述状态确定模块的确定结果为否,则通过所述传输路径向所述目标路由节点发送所述目标请求,若所述状态确定模块的确定结果为是,向所述目标路由节点发送所包含的内容为空的空请求。
199.与前述反压信息传递方法与请求发送方法相对应,本发明实施例还提供了一种网络芯片。
200.本发明实施例提供了一种网络芯片,所述网络芯片np上包含三维片上互联网络noc,所述三维noc中的各个路由节点分别组成不同的路由节点子系统,不同的路由节点子系统所包括的路由节点不同,且每一路由节点子系统中包含多个互不相连的路由节点。
201.具体的,上述np上的三维noc的结构可以参见前述图1所示的结构,在此不再赘述。
202.所述三维noc中的每一路由节点为本地路由节点,所述本地路由节点用于:
203.接收第一路由节点发送的第一反压信息,并向第二路由节点发送所述第一反压信息与所述本地路由节点自身的本地反压信息,其中,所述第一路由节点与第二路由节点分别在第一方向、第二方向上与所述本地路由节点直接相连,所述第一方向与第二方向相对,所述第一反压信息包括:所述第一路由节点自身的反压信息以及接收到的反压信息;
204.接收所述第二路由节点发送的第二反压信息,并向所述第一路由节点发送所述第二反压信息与所述本地反压信息,其中,所述第二反压信息包括:所述第二路由节点自身的反压信息以及接收到的反压信息;
205.接收第三路由节点发送的第三反压信息,并向第四路由节点发送所述第三反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第三路由节点与第四路由节点分别在第三方向、第四方向上与所述本地路由节点直接相连,所述第三方向与第四方向相对,所述第三反压信息包括:所述第三路由节点自身的反压信息以及接收到的反压信息;
206.接收所述第四路由节点发送的第四反压信息,并向所述第三路由节点发送所述第四反压信息、第一反压信息、第二反压信息与本地反压信息,其中,所述第四反压信息包括:所述第四路由节点自身的反压信息以及接收到的反压信息;
207.将所述本地反压信息、所获取的第一反压信息、第二反压信息、第三反压信息与第四反压信息写入所述本地路由节点所在的路由节点子系统对应的缓存中。
208.由以上可见,在第一环节,上述三维noc中的每一路由节点均作为本地路由节点,在第一方向与第二方向两个方向上互相传递反压信息,经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第一方向和第二方向上与自身直接或间接相连的各个路由节点对应的反压信息。
209.之后,在第二环节,各个路由节点继续作为本地路由节点,在第三方向与第四方向上互相传递反压信息。经过各个路由节点之间反压信息的传递之后,各个三维noc中的各个路由节点均可以获得在第三方向与第四方向上与自身直接或间接相连的各个路由节点的反压信息,结合第一环节,三维noc中的各个路由节点能够获得到在第一方向、第二方向、第三方向与第四方向上与自身直接或间接相连的路由节点,也就是三维noc中所有与自身相连的路由节点的反压信息。
210.再者,属于同一路由节点子系统内的各个路由节点分别与不同的路由节点相连,所连接的路由节点涵盖三维noc中的所有路由节点。同一路由节点子系统内的各个路由节点分别获取到与自身相连的路由节点的反压信息后均写入自身所在的路由节点子系统对应的缓存中,使得上述缓存中能够存储三维noc中包含的所有路由节点的反压信息,从而能够实现np芯片上三维noc中路由节点之间反压信息的传递,进而得到每个路由节点子系统中各个路由节点的反压信息。
211.本发明的一个实施例中,所述第一反压信息包括:所述第一路由节点自身的反压信息以及所述第一路由节点接收到的、在第一方向与所述第一路由节点相连的路由节点发送的反压信息;
212.和/或,
213.所述第二反压信息包括:所述第二路由节点自身的反压信息以及所述第二路由节点接收到的、在第二方向与所述第二路由节点相连的路由节点发送的反压信息;
214.和/或,
215.所述第三反压信息包括:所述第三路由节点自身的反压信息以及所述第三路由节点接收到的、在第三方向与所述第三路由节点相连的路由节点发送的反压信息;
216.和/或,
217.所述第四反压信息包括:所述第四路由节点自身的反压信息以及所述第三路由节点接收到的、在第四方向与所述第四路由节点相连的路由节点发送的反压信息。
218.在反压信息的单向传递的过程中不存在反向的重复传递过程,即反压信息在自第二方向向第一方向传递的过程中不会再被反向传递,从而可以防止反压信息非必要的重复
传递占用总线的传递资源。
219.本发明的一个实施例中,所述本地路由节点,具体用于接收第三路由节点发送的第一反压表,并向第四路由节点发送所述第一反压表以及所述本地路由节点生成的第二反压表,其中,所述第一反压表中包含第三反压信息,所述第二反压表中包含所述第一反压信息、第二反压信息与本地反压信息;
220.所述本地路由节点,还用于接收所述第四路由节点发送的第三反压表,并向所述第三路由节点发送所述第三反压表以及所述第二反压表,其中,所述第三反压信息表中包含第四反压信息;
221.所述本地路由节点,还用于将所述第一反压表、第二反压表与第三反压表写入所述本地路由节点所在的路由节点子系统对应的缓存中,以基于所述第一反压表、第二反压表与第三反压表在所述缓存中形成包含np上各个路由节点的反压信息的反压信息表。
222.本发明的一个实施例中,所述三维noc中还包括网络处理器集群npc,其中,每一npc与三维noc中的一个路由节点子系统内的各个路由节点相连,所述npc用于:
223.在向目标路由节点子系统发送目标请求之前,确定目标路由节点子系统中用于接收目标请求的目标路由节点,并且确定用于向所述目标路由节点发送所述目标请求的传输路径;
224.从三维反压信息表中读取所述目标路由节点的反压信息,其中,所述三维反压信息表存储于:所述npc控制的路由节点子系统对应的缓存中,所述三维反压信息表中的每一元素记录有所述三维noc中一个路由节点的反压信息;
225.基于所读取的反压信息确定所述目标路由节点是否处于反压状态;
226.若否,则通过所述传输路径向所述目标路由节点发送所述目标请求;
227.若是,则暂停向所述目标路由节点发送所述目标请求。
228.由以上可见,在通过前文所示的反压信息传递方法实施例在各个路由节点子系统对应的缓存中写入了各个路由节点的反压信息之后,npc便可以基于上述反压信息确定目标路由节点处于反压状态,是否能够接受请求,从而决定是否向目标路由节点发送请求,防止在目标路由节点处于反压状态时向目标路由节点发送请求,造成网络拥塞。也就是npc可以控制请求的发送,也就可以控制总线中传递的请求的数据量,从而控制总线带宽的利用率。
229.本发明的一个实施例中,所述暂停向所述目标路由节点发送所述目标请求,具体包括:
230.停止向所述目标路由节点发送所述目标请求;或者,向所述目标路由节点发送所包含的内容为空的空请求。
231.具体的,上述网络芯片上的本地路由节点执行的方案与前述应用于本地路由节点的反压信息传递方法相似,上述网络芯片上的npc执行的方案与前述应用于npc的请求发送方法相似,在此不再赘述。
232.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
233.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
234.以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献