本发明涉及硬件,特别涉及一种路由方法、装置、设备、介质及计算机程序产品。
背景技术:
1、随着计算需求的激增,基于总线架构的片上系统(system-on-chip,soc)因其在高效数据处理方面的局限性,逐渐不能满足高性能应用的需求。在这种背景下,基于片上网络(network-on-chip,noc)的通信互连模式,尤其是拥有大规模处理核心的soc,正在成为未来数据处理系统的发展方向。
2、随着核心数量的增加,noc网络流量管理的复杂性也相应提升,对数据传输策略的设计和优化提出了更高的要求,这要求数据流在网络中的分布更加均匀,从而确保数据可以均匀地分配到所有可用路径和节点上,有效预防部分节点过载而引起的系统瓶颈和其他节点资源的闲置,从而提升网络的运行效率和响应速度。与此同时,芯片的小型化带来了更易出现的制造缺陷和系统生命周期中的故障,导致芯片可靠性降低,处理巨大的核间数据速率所需的更长、更大容量导线也显著增加了功耗,并加速了电路的老化过程。此外,系统级片上网络(soc)的数据通信受到温度变化、工艺差异、电压波动及日益严重的串扰和辐射等因素影响,也增加了故障的发生概率。
3、综上,如何实现片上网络中的负载均衡,并提高容错能力是目前有待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种路由方法、装置、设备、介质及计算机程序产品,能够实现片上网络中的负载均衡,并提高容错能力。其具体方案如下:
2、第一方面,本技术公开了一种路由方法,应用于片上网络,所述片上网络中包括多个路由节点,每一所述路由节点与相邻路由节点之间存在第一链路,与周围的非相邻节点之间存在第二链路,所述方法包括:
3、从源路由节点传输数据至目的路由节点时,确定当前路由节点所在的目标区域,以根据所述目标区域确定对应的目标路由算法;其中,所述目标路由算法为xy路由算法或yx路由算法中的任一种;
4、根据所述目标路由算法以及所述当前路由节点与所述目的路由节点之间的位置关系确定数据的目标传输方向;
5、若所述目标传输方向上的相邻路由节点不为故障节点,则根据所述第一链路和所述目标传输方向将数据从所述当前路由节点传输至对应的下一路由节点,否则根据所述第二链路和所述目标传输方向将数据从所述当前路由节点传输至对应的下一路由节点。
6、可选的,所述片上网络包括预先划分的第一区域和第二区域;
7、相应的,所述根据所述目标区域确定对应的目标路由算法,包括:
8、若所述目标区域为所述第一区域,则确定目标路由算法为yx路由算法;
9、若所述目标区域为所述第二区域,则确定目标路由算法为xy路由算法。
10、可选的,预先划分所述第一区域和所述第二区域的过程为:
11、按照从小到大的顺序依次为各所述路由节点分配标识号,并确定所述片上网络中路由节点的总行数和总列数;
12、根据所述标识号、所述总行数和所述总列数计算每一所述路由节点的横坐标和纵坐标,以基于所述横坐标和所述纵坐标确定每一所述路由节点的区域类别;其中,所述区域类别包括与第一区域对应的第一类别和与第二区域对应的第二类别;
13、根据所述区域类别将所述片上网络中的各所述路由节点划分为所述第一区域和所述第二区域。
14、可选的,所述根据所述标识号、所述总行数和所述总列数计算每一所述路由节点的横坐标和纵坐标,包括:
15、将每一所述路由节点的标识号与所述总列数进行取余运算,并将取余运算结果作为所述路由节点的横坐标;
16、将每一所述路由节点的标识号与所述总行数进行整除运算,并将整除运算结果作为所述路由节点的纵坐标。
17、可选的,所述基于所述横坐标和所述纵坐标确定每一所述路由节点的区域类别,包括:
18、确定所述总列数的中间值,并判断各所述路由节点的横坐标是否小于所述中间值;
19、若任一路由节点的横坐标小于所述中间值,则采取第一区域划分规则确定所述任一路由节点的区域类别;
20、若任一路由节点的横坐标不小于所述中间值,则采取第二区域划分规则确定所述任一路由节点的区域类别。
21、可选的,所述采取第一区域划分规则确定所述任一路由节点的区域类别,包括:
22、计算所述总行数减去预设数值并减去所述横坐标后得到的第一运算结果;
23、若所述任一路由节点的纵坐标大于所述横坐标,且所述纵坐标小于所述第一运算结果,则判定所述任一路由节点的区域类别为所述第一类别,否则为所述第二类别。
24、可选的,所述采取第二区域划分规则确定所述任一路由节点的区域类别,包括:
25、计算所述横坐标减去所述总列数再加上预设数值的绝对值,以及计算所述总行数减去所述预设数值并减去所述绝对值后得到的第二运算结果;
26、若所述任一路由节点的纵坐标大于所述绝对值,且所述纵坐标小于所述第二运算结果,则判定所述任一路由节点的区域类别为所述第一类别,否则为所述第二类别。
27、可选的,所述根据所述目标路由算法以及所述当前路由节点与所述目的路由节点之间的位置关系确定数据的目标传输方向,包括:
28、确定所述当前路由节点与所述目的路由节点之间的位置关系,并判断所述位置关系是否满足预设条件;
29、若所述位置关系满足所述预设条件,则根据最短路径算法确定所述当前路由节点与所述目的路由节点之间数据的目标传输方向;
30、若所述位置关系不满足所述预设条件,则将根据所述目标路由算法确定的方向作为数据的目标传输方向。
31、可选的,所述判断所述位置关系是否满足预设条件,包括:
32、若所述位置关系用于表征所述当前路由节点与所述目的路由节点处于同一行或同一列,则判定所述位置关系满足预设条件;
33、若所述位置关系用于表征所述当前路由节点与所述目的路由节点不处于同一行或同一列,则判定所述位置关系不满足预设条件。
34、可选的,所述若所述位置关系满足所述预设条件,则根据最短路径算法确定所述当前路由节点与所述目的路由节点之间数据的目标传输方向,包括:
35、若所述位置关系用于表征所述当前路由节点与所述目的路由节点处于同一行,则将所述当前路由节点沿所述目的路由节点的水平方向确定为数据的目标传输方向;
36、若所述位置关系用于表征所述当前路由节点与所述目的路由节点处于同一列,则将所述当前路由节点沿所述目的路由节点的垂直方向确定为数据的目标传输方向。
37、可选的,所述路由方法,还包括:
38、每一所述路由节点每隔预设时间周期向周围的路由节点发送用于表征自身是否处于正常运行的目标信号;
39、相应的,所述若所述目标传输方向上的相邻路由节点不为故障节点之前,还包括:
40、获取所述目标传输方向上相邻路由节点发送的目标信号,并根据所述目标信号确定所述相邻路由节点是否为故障节点。
41、可选的,所述第二链路的默认工作状态为关闭状态,所述方法还包括:
42、若所述目标传输方向上的相邻路由节点不为故障节点,则保持所述当前路由节点对应的第二链路的当前状态为所述默认工作状态;
43、若所述目标传输方向上的相邻路由节点为故障节点,则将所述当前路由节点对应的第二链路的当前工作状态设置为开启状态,以启动当前路由节点对应的第二链路。
44、可选的,每一所述路由节点包括接收端口和输出端口;其中,所述接收端口包括与中央处理器通信的本地接收端口、与所述第一链路对应的东接收端口、南接收端口、西接收端口和北接收端口,以及与所述第二链路对应的东北接收端口、东南接收端口、西北接收端口和西南接收端口;所述输出端口包括与中央处理器通信的本地输出端口、与所述第一链路对应的东输出端口、南输出端口、西输出端口和北输出端口,以及与所述第二链路对应的东北输出端口、东南输出端口、西北输出端口和西南输出端口;各接收端口和各输出端口的工作状态与对应链路的工作状态一致。
45、可选的,所述根据所述第二链路和所述目标传输方向将数据从所述当前路由节点传输至对应的下一路由节点,包括:
46、确定所述目的路由节点相对于所述当前路由节点的目标方向;其中,所述目标方向为东方向、西方向、南方向、北方向、东南方向、东北方向、西北方向和西南方向中的任意一种方向;
47、根据最短路径算法确定出与所述目标传输方向和所述目标方向相匹配的第二链路,以根据所述第二链路将数据从所述当前路由节点传输至对应的下一路由节点。
48、可选的,所述根据最短路径算法确定出与所述目标传输方向和所述目标方向相匹配的第二链路之后,还包括:
49、若与所述目标传输方向和所述目标方向相匹配的第二链路存在多条,则确定各所述第二链路对应的下一路由节点在所述片上网络中的位置信息;
50、根据所述位置信息从各所述第二链路中筛选出最终链路,以根据所述最终链路将数据从所述当前路由节点传输至对应的下一路由节点。
51、可选的,所述根据所述位置信息从各所述第二链路中筛选出最终链路,包括:
52、若各所述第二链路对应的下一路由节点中存在处于边缘位置的目标下一路由节点,且其余下一路由节点处于中心位置,则将所述目标下一路由节点对应的第二链路作为最终链路。
53、可选的,所述根据所述位置信息从各所述第二链路中筛选出最终链路,包括:
54、若各所述第二链路对应的下一路由节点均处于边缘位置,或若各所述第二链路对应的下一路由节点均处于中心位置,则从各所述第二链路中随机筛选出一条第二链路作为最终链路。
55、第二方面,本技术公开了一种路由装置,应用于片上网络,所述片上网络中包括多个路由节点,每一所述路由节点与相邻路由节点之间存在第一链路,与周围的非相邻节点之间存在第二链路,所述装置包括:
56、路由算法确定模块,用于从源路由节点传输数据至目的路由节点时,确定当前路由节点所在的目标区域,以根据所述目标区域确定对应的目标路由算法;其中,所述目标路由算法为xy路由算法或yx路由算法中的任一种;
57、传输方向确定模块,用于根据所述目标路由算法以及所述当前路由节点与所述目的路由节点之间的位置关系确定数据的目标传输方向;
58、数据传输模块,用于若所述目标传输方向上的相邻路由节点不为故障节点,则根据所述第一链路和所述目标传输方向将数据从所述当前路由节点传输至对应的下一路由节点,否则根据所述第二链路和所述目标传输方向将数据从所述当前路由节点传输至对应的下一路由节点。
59、第三方面,本技术公开了一种电子设备,包括:
60、存储器,用于保存计算机程序;
61、处理器,用于执行所述计算机程序,以实现前述公开的路由方法的步骤。
62、第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的路由方法的步骤。
63、第五方面,本技术公开了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现前述公开的路由方法的步骤。
64、可见,本技术公开了一种应用于片上网络的路由方法,所述片上网络中包括多个路由节点,每一所述路由节点与相邻路由节点之间存在第一链路,与周围的非相邻节点之间存在第二链路,所述方法包括:从源路由节点传输数据至目的路由节点时,确定当前路由节点所在的目标区域,以根据所述目标区域确定对应的目标路由算法;其中,所述目标路由算法为xy路由算法或yx路由算法中的任一种;根据所述目标路由算法以及所述当前路由节点与所述目的路由节点之间的位置关系确定数据的目标传输方向;若所述目标传输方向上的相邻路由节点不为故障节点,则根据所述第一链路和所述目标传输方向将数据从所述当前路由节点传输至对应的下一路由节点,否则根据所述第二链路和所述目标传输方向将数据从所述当前路由节点传输至对应的下一路由节点。
65、有益效果:本技术中的路由方法应用于片上网络,且片上网络中的多个路由节点中,每一路由节点与其相邻路由节点之间存在第一链路,而与周围的非相邻路由节点之间存在第二链路。当从源路由节点传输数据至目的路由节点时,首先需要确定当前路由节点所在的目标区域,以根据目标区域确定与当前路由节点对应的目标路由算法,也即本技术将片上网络划分为多个区域,且不同区域对应的路由算法也是不同的,路由算法具体可以为xy路由算法或yx路由算法。如此一来,通过对片上网络划分不同区域,以及在不同区域采取不同的路由算法,能够在一定程度上实现片上网络中数据传输的均匀分布,从而实现片上网络中的负载均衡。进一步的,再根据目标路由算法以及当前路由节点与目的路由节点之间的位置关系共同确定出数据的目标传输方向,也即,本技术并非是仅参考目标路由算法而确定出路由方向,而是还需要参考当前路由节点与目的路由节点之间的位置关系,从而能够更准确的确定出数据的传输方向,以提高片上网络中数据的传输效率。最后,在确定出目标传输方向后,需要判断目标传输方向上的相邻路由节点是否为故障节点,如果不为故障节点,则直接根据第一链路和目标传输方向将数据从当前路由节点传输至对应的下一路由节点,也即传输至该相邻路由节点,如果相邻路由节点为故障节点,则无法通过该相邻路由节点传输数据,因此,则根据第二链路和目标传输方向将数据从当前路由节点传输至对应的下一路由节点。本技术通过设置第一链路和第二链路,能够提高片上网络的容错能力,增强片上网络的可靠性。
1.一种路由方法,其特征在于,应用于片上网络,所述片上网络中包括多个路由节点,每一所述路由节点与相邻路由节点之间存在第一链路,与周围的非相邻节点之间存在第二链路,所述方法包括:
2.根据权利要求1所述的路由方法,其特征在于,所述片上网络包括预先划分的第一区域和第二区域;
3.根据权利要求2所述的路由方法,其特征在于,预先划分所述第一区域和所述第二区域的过程为:
4.根据权利要求3所述的路由方法,其特征在于,所述根据所述标识号、所述总行数和所述总列数计算每一所述路由节点的横坐标和纵坐标,包括:
5.根据权利要求3所述的路由方法,其特征在于,所述基于所述横坐标和所述纵坐标确定每一所述路由节点的区域类别,包括:
6.根据权利要求5所述的路由方法,其特征在于,所述采取第一区域划分规则确定所述任一路由节点的区域类别,包括:
7.根据权利要求5所述的路由方法,其特征在于,所述采取第二区域划分规则确定所述任一路由节点的区域类别,包括:
8.根据权利要求1所述的路由方法,其特征在于,所述根据所述目标路由算法以及所述当前路由节点与所述目的路由节点之间的位置关系确定数据的目标传输方向,包括:
9.根据权利要求8所述的路由方法,其特征在于,所述判断所述位置关系是否满足预设条件,包括:
10.根据权利要求9所述的路由方法,其特征在于,所述若所述位置关系满足所述预设条件,则根据最短路径算法确定所述当前路由节点与所述目的路由节点之间数据的目标传输方向,包括:
11.根据权利要求1所述的路由方法,其特征在于,还包括:
12.根据权利要求1所述的路由方法,其特征在于,所述第二链路的默认工作状态为关闭状态,所述方法还包括:
13.根据权利要求12所述的路由方法,其特征在于,每一所述路由节点包括接收端口和输出端口;其中,所述接收端口包括与中央处理器通信的本地接收端口、与所述第一链路对应的东接收端口、南接收端口、西接收端口和北接收端口,以及与所述第二链路对应的东北接收端口、东南接收端口、西北接收端口和西南接收端口;所述输出端口包括与中央处理器通信的本地输出端口、与所述第一链路对应的东输出端口、南输出端口、西输出端口和北输出端口,以及与所述第二链路对应的东北输出端口、东南输出端口、西北输出端口和西南输出端口;各接收端口和各输出端口的工作状态与对应链路的工作状态一致。
14.根据权利要求1所述的路由方法,其特征在于,所述根据所述第二链路和所述目标传输方向将数据从所述当前路由节点传输至对应的下一路由节点,包括:
15.根据权利要求14所述的路由方法,其特征在于,所述根据最短路径算法确定出与所述目标传输方向和所述目标方向相匹配的第二链路之后,还包括:
16.根据权利要求15所述的路由方法,其特征在于,所述根据所述位置信息从各所述第二链路中筛选出最终链路,包括:
17.根据权利要求15所述的路由方法,其特征在于,所述根据所述位置信息从各所述第二链路中筛选出最终链路,包括:
18.一种路由装置,其特征在于,应用于片上网络,所述片上网络中包括多个路由节点,每一所述路由节点与相邻路由节点之间存在第一链路,与周围的非相邻节点之间存在第二链路,所述装置包括:
19.一种电子设备,其特征在于,包括:
20.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的路由方法的步骤。
21.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至17任一项所述的路由方法的步骤。