CN117135103B - 片上网络的路由方法、装置、计算机设备及存储介质 - Google Patents
片上网络的路由方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117135103B CN117135103B CN202311388270.XA CN202311388270A CN117135103B CN 117135103 B CN117135103 B CN 117135103B CN 202311388270 A CN202311388270 A CN 202311388270A CN 117135103 B CN117135103 B CN 117135103B
- Authority
- CN
- China
- Prior art keywords
- routing
- node
- path
- nodes
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000015654 memory Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/14—Routing performance; Theoretical aspects
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及片上网络技术领域,公开了一种片上网络的路由方法、装置、计算机设备及存储介质,该方法包括:在源终端节点向目的终端节点发送数据包时,根据源终端节点的标识和目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识,源终端节点和目的终端节点为多个第一路由节点对应的终端节点中的任意两个,或者源终端节点和目的终端节点为多个第二路由节点对应的终端节点中的任意两个,第三路由节点为与源终端节点连接的路由节点;根据第三路由节点的标识和第四路由节点的标识,确定数据包的路由路径;根据路由路径将数据包从源终端节点发送至目的终端节点。本发明能够避免双主机所控制的两个子网相互干扰。
Description
技术领域
本发明涉及片上网络技术领域,具体涉及一种片上网络的路由方法、装置、计算机设备及存储介质。
背景技术
片上网络是片上系统的一种新的通信方法。它是多核技术的主要组成部分。基于片上网络的系统能更好地适应在未来复杂多核片上系统设计中使用的全局异步局部同步的时钟机制,是新一代复杂计算体系结构的一种较优的选择。
片上网络的拓扑结构可以为拍平的蝶形(butterfly)拓扑结构。蝶形(butterfly)拓扑结构支持双主机功能。即一个网络拓扑上可以连接两个主机,每个主机控制部分路由节点以及与路由节点连接的终端节点(例如中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)或者存储器等),即将网络分为两个子网。在传统的路由算法下,两个子网的终端节点可能通过对方的路由节点互传数据包,导致两个子网互相干扰,从而影响单个子网的各个终端节点之间的数据传输。
发明内容
有鉴于此,本发明提供了一种片上网络的路由方法、装置、计算机设备及存储介质,以解决两个子网互相干扰,影响单个子网的各个终端节点之间的数据传输的问题。
第一方面,本发明提供了一种片上网络的路由方法,片上网络包括多个第一路由节点和多个第二路由节点,所述第一路由节点为多个路由节点中由第一主机控制的路由节点,所述第二路由节点为所述多个路由节点中由第二主机控制的路由节点,所述多个路由节点中每个路由节点与至少一个终端节点连接,所述多个路由节点和对应的终端节点均配置有标识,所述第一路由节点的标识小于所述第二路由节点的标识,所述第一路由节点对应的终端节点的标识小于所述第二路由节点对应的终端节点的标识,所述方法包括:在源终端节点向目的终端节点发送数据包时,根据所述源终端节点的标识和所述目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识,其中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,或者所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述第三路由节点为与所述源终端节点连接的路由节点,所述第四路由节点为与所述目的终端节点连接的路由节点;根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径;根据所述路由路径,将所述数据包从所述源终端节点发送至目的终端节点。
本实施例提供的片上网络的路由方法,在第一主机控制的路由节点的标识小于第二主机控制的路由节点的标识,以及第一主机控制的终端节点的标识小于第二主机控制的终端
节点的标识的情况下,在源终端节点向目的终端节点发送数据包时,根据第三路由节点的标识和第四路由节点的标识确定的路由路径对应的路由节点,可以保证为同一主机控制的路由节点,使双主机所控制的两个子网可以独立传输数据包,避免两个子网之间相互干扰。而且,本发明提供的路由方法仅从算法层面就可以实现两个子网络的相互独立,不需要硬件对路由端口和路径进行额外的操作(如选择性的阻断某些端口等),易于硬件实现。
在一种可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径,包括:根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第一负路由路径,其中,所述第一负路由路径为第五路由节点路由到第六路由节点的路径,所述第五路由节点和所述第六路由节点为所述多个第一路由节点中相连的两个第一路由节点,且所述第五路由节点的标识大于所述第六路由节点的标识;根据所述第一负路由路径,确定所述数据包的第一正路由路径,其中,所述第一正路由路径为所述第六路由节点路由到所述第五路由节点的路径;根据所述第一负路由路径和所述第一正路由路径确定所述路由路径。
在一种可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径,包括:根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第二正路由路径,其中,所述第二正路由路径为第七路由节点路由到第八路由节点的路径,所述第七路由节点和所述第八路由节点为所述多个第二路由节点中相连的两个第二路由节点,且所述第七路由节点的标识小于所述第八路由节点的标识;根据所述第二正路由路径,确定所述数据包的第二负路由路径,其中,所述第二负路由路径为所述第八路由节点路由到所述第七路由节点的路径;根据所述第二负路由路径和所述第二正路由路径确定所述路由路径。
在一种可选的实施方式中,在确定所述数据包的路由路径之前,所述方法还包括:确定所述第三路由节点和所述第四路由节点是否为同一路由节点;所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径,包括:在所述第三路由节点和所述第四路由节点为不同路由节点的情况下,根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径。
在一种可选的实施方式中,所述方法还包括:在所述第三路由节点和所述第四路由节点为同一路由节点的情况下,将所述第三路由节点确定为所述路由路径上的节点。
在一种可选的实施方式中,所述多个路由节点中每个路由节点与两个终端节点连接,标识为以二进制表示的数值,所述源终端节点的标识的前N个比特位对应所述第三路由节点的标识,所述目的终端节点的标识的前N个比特位对应所述第四路由节点的标识,N为正整数;所述确定所述第三路由节点和所述第四路由节点是否为同一路由节点,包括:将所述源终端节点的标识和所述目的终端节点的标识按比特位进行异或运算,得到第一运算结果;在所述第一运算结果的前N个比特位均为0的情况下,所述第三路由节点和所述第四路由节点为同一路由节点。
在一种可选的实施方式中,所述方法还包括:在所述第一运算结果的前N个比特位不均为0的情况下,所述第三路由节点和所述第四路由节点为不同路由节点。
在一种可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第一负路由路径,包括:将所述源终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第二运算结果;根据所述第二运算结果,确定所述第一负路由路径。
在一种可选的实施方式中,所述根据所述第二运算结果,确定所述第一负路由路径,包括:在所述第二运算结果对应的N个比特位均为0的情况下,将所述第三路由节点确定为所述第一负路由路径上的节点;在所述第二运算结果对应的N个比特位不均为0的情况下,按照所述第二运算结果中比特位为1的位置,以预设规则依次将所述源终端节点的标识的前N个比特位中对应位置的1变为0,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第一负路由路径上的节点。
在一种可选的实施方式中,所述根据所述第一负路由路径,确定所述数据包的第一正路由路径,包括:将所述目的终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第三运算结果;根据所述第三运算结果和所述第一负路由路径,确定所述第一正路由路径。
在一种可选的实施方式中,根据所述第三运算结果和所述第一负路由路径,确定所述第一正路由路径,包括:在所述第三运算结果对应的N个比特位均为0时,将所述第四路由节点确定为所述第一正路由路径上的节点;在所述第三运算结果对应的N个比特位不均为0时,按照所述第三运算结果中比特位为1的位置,以预设规则依次将第九路由节点的标识的N个比特位中对应位置的0变为1,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第一正路由路径上的节点,所述第九路由节点为所述第一负路由路径中的最后一个路由节点。
在一种可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第二正路由路径,包括:将所述目的终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第四运算结果;根据所述第四运算结果,确定所述第二正路由路径。
在一种可选的实施方式中,所述根据所述第四运算结果,确定所述第二正路由路径,包括:在所述第四运算结果对应的N个比特位均为0的情况下,将所述第三路由节点确定为所述第二正路由路径上的节点;在所述第四运算结果对应的N个比特位不均为0的情况下,按照所述第四运算结果中比特位为1的位置,以预设规则依次将源终端节点的标识的前N个比特位中对应位置的0变为1,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第二正路由路径上的节点。
在一种可选的实施方式中,所述根据所述第二正路由路径,确定所述数据包的第二负路由路径,包括:将所述源终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第五运算结果;根据所述第五运算结果和所述第二正路由路径,确定所述第二负路由路径。
在一种可选的实施方式中,所述根据所述第五运算结果和所述第二正路由路径,确定所述第二负路由路径,包括:在所述第五运算结果的N个比特位均为0的情况下,将所述第四路由节点确定为所述第二负路由路径上的节点;在所述第五运算结果的N个比特位不均为0的情况下,按照所述第五运算结果中比特位为1的位置,以预设规则依次将第十路由节点的标识的N个比特位中对应位置的1变为0,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第二负路由路径上的节点,所述第十路由节点为所述第二负路由路径中的最后一个路由节点。
在一种可选的实施方式中,所述根据所述路由路径,将所述数据包从所述源终端节点发送至目的终端节点,包括:根据所述路由路径,将所述数据包从所述第三路由节点发送至所述第四路由节点;根据所述目的终端节点的标识,将所述数据包发送从所述第四路由节点发送至所述目的终端节点。
在一种可选的实施方式中,在确定所述数据包的路由路径之前,所述方法还包括:确定所述路由路径中路由节点的数量,所述路由路径中路由节点的数量为P+1,P为所述第一运算结果的前N个比特位中1的数量,P大于或者等于0。
第二方面,本发明提供了一种片上网络的路由装置,片上网络包括多个第一路由节点和多个第二路由节点,所述第一路由节点为多个路由节点中由第一主机控制的路由节点,所述第二路由节点为所述多个路由节点中由第二主机控制的路由节点,所述多个路由节点中每个路由节点与至少一个终端节点连接,所述多个路由节点和对应的终端节点均配置标识,所述第一路由节点的标识小于所述第二路由节点的标识,所述第一路由节点对应的终端节点的标识小于所述第二路由节点对应的终端节点的标识,所述装置包括:第一确定模块,用于在源终端节点向目的终端节点发送数据包时,根据所述源终端节点的标识和所述目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识,其中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,或者所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述第三路由节点为与所述源终端节点连接的路由节点,所述第四路由节点为与所述目的终端节点连接的路由节点;第二确定模块,用于根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径;发送模块,用于根据所述路由路径,将所述数据包从所述源终端节点发送至目的终端节点。
在一种可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,所述第二确定模块,包括:第一确定单元,用于根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第一负路由路径,其中,所述第一负路由路径为第五路由节点路由到第六路由节点的路径,所述第五路由节点和所述第六路由节点为所述多个第一路由节点中相连的两个第一路由节点,且所述第五路由节点的标识大于所述第六路由节点的标识;第二确定单元,用于根据所述第一负路由路径,确定所述数据包的第一正路由路径,其中,所述第一正路由路径为所述第六路由节点路由到所述第五路由节点的路径;第三确定单元,用于根据所述第一负路由路径和所述第一正路由路径确定所述路由路径。
在一种可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述第二确定模块,包括:第四确定单元,用于根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第二正路由路径,其中,所述第二正路由路径为第七路由节点路由到第八路由节点的路径,所述第七路由节点和所述第八路由节点为所述多个第二路由节点中相连的两个第二路由节点,且所述第七路由节点的标识小于所述第八路由节点的标识;第五确定单元,用于根据所述第二正路由路径,确定所述数据包的第二负路由路径,其中,所述第二负路由路径为所述第八路由节点路由到所述第七路由节点的路径;第六确定单元,用于根据所述第二负路由路径和所述第二正路由路径确定所述路由路径。
在一种可选的实施方式中,所述装置还包括:第三确定模块,用于确定所述第三路由节点和所述第四路由节点是否为同一路由节点;所述第二确定模块,包括:第七确定单元,用于在所述第三路由节点和所述第四路由节点为不同路由节点的情况下,根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径。
在一种可选的实施方式中,所述装置还包括:第四确定模块,用于在所述第三路由节点和所述第四路由节点为同一路由节点的情况下,将所述第三路由节点确定为所述路由路径上的节点。
在一种可选的实施方式中,所述多个路由节点中每个路由节点与两个终端节点连接,标识为以二进制表示的数值,所述源终端节点的标识的前N个比特位对应所述第三路由节点的标识,所述目的终端节点的标识的前N个比特位对应所述第四路由节点的标识,N为正整数;所述第三确定模块,包括:第一处理单元,用于将所述源终端节点的标识和所述目的终端节点的标识按比特位进行异或运算,得到第一运算结果;第二处理单元,用于在所述第一运算结果的前N个比特位均为0的情况下,所述第三路由节点和所述第四路由节点为同一路由节点。
在一种可选的实施方式中,所述第三确定模块,还包括:第三处理单元,用于在所述第一运算结果的前N个比特位不均为0的情况下,所述第三路由节点和所述第四路由节点为不同路由节点。
在一种可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,所述第一确定单元,包括:第一子确定单元,用于将所述源终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第二运算结果;第二子确定单元,用于根据所述第二运算结果,确定所述第一负路由路径。
在一种可选的实施方式中,所述第二子确定单元,包括:第一子处理单元,用于在所述第二运算结果对应的N个比特位均为0的情况下,将所述第三路由节点确定为所述第一负路由路径上的节点;第二子处理单元,用于在所述第二运算结果对应的N个比特位不均为0的情况下,按照所述第二运算结果中比特位为1的位置,以预设规则依次将所述源终端节点的标识的前N个比特位中对应位置的1变为0,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第一负路由路径上的节点。
在一种可选的实施方式中,所述第二确定单元,包括:第三子确定单元,用于将所述目的终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第三运算结果;第四子确定单元,用于根据所述第三运算结果和所述第一负路由路径,确定所述第一正路由路径。
在一种可选的实施方式中,所述第四子确定单元,包括:第三子处理单元,用于在所述第三运算结果对应的N个比特位均为0时,将所述第四路由节点确定为所述第一正路由路径上的节点;第四子处理单元,用于在所述第三运算结果对应的N个比特位不均为0时,按照所述第三运算结果中比特位为1的位置,以预设规则依次将第九路由节点的标识的N个比特位中对应位置的0变为1,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第一正路由路径上的节点,所述第九路由节点为所述第一负路由路径中的最后一个路由节点。
在一种可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述第四确定单元,包括:第五子确定单元,用于将所述目的终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第四运算结果;第六子确定单元,用于根据所述第四运算结果,确定所述第二正路由路径。
在一种可选的实施方式中,所述第六子确定单元,包括:第五子处理单元,用于在所述第四运算结果对应的N个比特位均为0的情况下,将所述第三路由节点确定为所述第二正路由路径上的节点;第六子处理单元,用于在所述第四运算结果对应的N个比特位不均为0的情况下,按照所述第四运算结果中比特位为1的位置,以预设规则依次将源终端节点的标识的前N个比特位中对应位置的0变为1,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第二正路由路径上的节点。
在一种可选的实施方式中,所述第五确定单元,包括:第七子确定单元,用于将所述源终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第五运算结果;第八子确定单元,用于根据所述第五运算结果和所述第二正路由路径,确定所述第二负路由路径。
在一种可选的实施方式中,所述第八子确定单元,包括:第七子处理单元,用于在所述第五运算结果的N个比特位均为0的情况下,将所述第四路由节点确定为所述第二负路由路径上的节点;第八子处理单元,用于在所述第五运算结果的N个比特位不均为0的情况下,按照所述第五运算结果中比特位为1的位置,以预设规则依次将第十路由节点的标识的N个比特位中对应位置的1变为0,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第二负路由路径上的节点,所述第十路由节点为所述第二负路由路径中的最后一个路由节点。
在一种可选的实施方式中,所述发送模块,包括:第一发送单元,用于根据所述路由路径,将所述数据包从所述第三路由节点发送至所述第四路由节点;第二发送单元,用于根据所述目的终端节点的标识,将所述数据包发送从所述第四路由节点发送至所述目的终端节点。
在一种可选的实施方式中,所述装置还包括:第五确定模块,用于确定所述路由路径中路由节点的数量,所述路由路径中路由节点的数量为P+1,P为所述第一运算结果的前N个比特位中1的数量,P大于或者等于0。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种片上网络的网络拓扑结构的示意图;
图2是根据本发明实施例的一种适用于双主机的片上网络的网络拓扑结构的示意图;
图3是根据本发明实施例的一种片上网络的路由方法的流程示意图;
图4是根据本发明实施例的另一种片上网络的路由方法的流程示意图;
图5是根据本发明实施例的又一种片上网络的路由方法的流程示意图;
图6是根据本发明实施例的再一种片上网络的路由方法的流程示意图;
图7是根据本发明实施例的一种片上网络的路由装置的结构框图;
图8是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的片上网络的路由方法,可以应用于片上网络(Network on Chip,NOC)或者包含片上网络的电子设备。
针对片上系统在时延、时针同步、可扩展性、能耗和可重用性等方面的缺陷,目前提供了一种新的片上系统(System on Chip,SoC)结构—片上网络。片上网络借鉴了计算机网络中的相关网络技术,能够克服总线结构带来的局限,具有较好的发展前景。与传统的片上系统相比,片上网络具有如下优势:
(1)片上网络借鉴使用了计算机网络中的网络结构,整个网络由多条点到点的线路连接起来,相互之间不会产生干扰,可以满足多个用户通信的要求。
(2)与片上系统不同,片上网络采用全局异步或者局部同步的方式来解决时钟同步问题。局部的网络工作在自身的时针频率下,能够避免时针的全局同步问题,解决时针偏移问题,从而大大降低了网络的功耗。
(3)片上网络对带宽的利用率比较高。由于片上网络支持多点并行传输,同一时刻可以完成多种线路的数据传输,通信效率比较高。并且,片上网络的寻址是在局部网络内完成的,网络规模的扩展对寻址的影响比较小,这样带宽中寻址所占用的位数便不会增多,带宽不会成为网络规模扩展的瓶颈。
(4)由于总线结构使用中央判决单元对线路的使用权进行统一管理,而片上网络使用随机仲裁机制,所以片上网络的时延较低。
(5)片上网络采用局部判决策略,分布式地完成线路中一个独立的功能单元,具有很好的可重用性。同时,网络中路由设备也可以在多种环境中使用,可重用度很高。由于网络部件良好的可重用性,使得片上网络具有了高内聚,低祸合的特点,可扩展性和可移植性很高,大大缩短了系统开发的时间,提高了开发的效率。
对于支持双主机的片上网络的拓扑结构,采用传统的路由算法在源终端节点和目的终端节点之间传输数据,存在两个主机所控制的两个子网互相干扰的问题,从而影响单个子网的各个终端节点之间的数据传输。
具体地,图1示出了一种片上网络的拓扑结构。在图1中,方框代表终端节点,终端节点用于负责数据包的发送和收集。圆圈代表路由节点,路由节点用于负责数据包的转发。图1中以32个终端节点和16个路由节点为例。每个路由节点处挂载两个终端节点。为方便展示,图中只画出了部分终端节点。终端节点与路由节点之间的每条线是双向的,路由节点和路由节点之间的每条线也是双向的。也就是说,每条链路都可以双向传输数据(全双工)。
对于图1中的32个终端节点,可以用5个比特位(bit)来表示每个终端节点。例如,00000表示终端节点0,00001表示终端节点1,……,11110表示终端节点30,11111表示终端节点31。对于图1中的16个路由节点,可以用5个比特位的前4个bit标识路由节点。例如,0000表示路由节点0,0001表示路由节点1,……,1110表示路由节点14,1111表示路由节点15。
下面结合附图1对传统的路由算法进行说明。
示例性的,假设源终端节点S需要向目的终端节点D发送数据包。那么传统的路由算法首先会将源终端节点S和目标终端节点D按比特位进行异或运算,并将运算结果记为I。例如,若源终端节点S为00110(6),目的终端节点D为00111(7),则I为00001。若源终端节点S为00010(2)、目标终端节点D为11111(31),则I为11101。
其次,查看I的前4个bit,如果前4个bit都是0,则证明源终端节点S和目标终端节点D在同一个路由节点,直接在路由节点内部进行路由即可。如果I的前4个bit不都是0,则根据源终端节点S所在的路由节点和目的终端节点D所在的路由节点和I,确定路由路径。示例性的,源终端节点S为00010(2)在路由节点0001(1),目标终端节点D为11111(31)在路由节点1111(15)。I为11101,I中前3个bit均为1,此时,按照随机的方式,依次改变路由节点0001前3个bit的信息(前3个bit本来是0则变为1,本来是1则变为0),路由节点每个bit信息的改变,I中对应bit中的1也变为0,直到I中前4个bit都是0的时候路由节点之间的路由结束,可以得到源终端节点S到目的终端节点D的路由路径。按照随机的方式,路由路径可能有如下结果:
0001(I:11101)->0011(I:11001)->0111(I:10001)->1111(I:00001)
0001(I:11101)->0011(I:11001)->1011(I:01001)->1111(I:00001)
0001(I:11101)->0101(I:10101)->0111(I:11101)->1111(I:00001)
0001(I:11101)->0101(I:10101)->1101(I:11101)->1111(I:00001)
0001(I:11101)->1001(I:01101)->1011(I:01001)->1111(I:00001)
0001(I:11101)->1001(I:01101)->1101(I:00101)->1111(I:00001)
即,从路由节点1到路由节点15的路由路径可以为路由节点1->路由节点3->路由节点7->路由节点15,路由节点1->路由节点3->路由节点11->路由节点15,路由节点1->路由节点5->路由节点7->路由节点15,路由节点1->路由节点5->路由节点13->路由节点15,路由节点1->路由节点9->路由节点11->路由节点15或者路由节点1->路由节点9->路由节点13->路由节点15中的其中一条。
对于支持双主机的片上网络的拓扑结构,采用上述路由算法两个子网存在互相干扰的问题。
例如,如图2所示,路由节点0至路由节点6及其所连接的终端节点0至终端节点13由第一个主机控制,属于第一个子网络;路由节点7至路由节点15及其所连接的终端节点14至终端节点31由第二个主机控制,属于第二个子网络。当第二个子网路中的路由节点12向路由节点7传输数据包时,如果采用上述传统的路由算法,其可能存在的一条路由路径是:路由节点12->路由节点4->路由节点5->路由节点7。路由节点12和路由节点7属于第二个子网路,但是路由节点4和路由节点5及其之间的路径都属于第一个子网路。也就是说第二个子网络内部传输数据时用到了第一个子网路的路由节点了及路径,占用了第一个子网路的路由资源。
有鉴于此,本发明提供了一种片上网络的路由方法,使双主机所控制的两个子网可以独立传输数据包,避免两个子网之间相互干扰。
根据本发明实施例,提供了一种片上网络的路由方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种片上网络的路由方法,可用于片上网络,或者包含片上网络的电子设备。
具体地,本方法适用的片上网络包括多个第一路由节点和多个第二路由节点。其中,第一路由节点为多个路由节点中第一路由节点为多个路由节点中由第一主机控制的路由节点,第二路由节点为多个路由节点中由第二主机控制的路由节点。多个路由节点中每个路由节点与至少一个终端节点连接,多个路由节点和对应的终端节点均配置有标识,第一路由节点的标识小于第二路由节点的标识,第一路由节点对应的终端节点的标识小于第二路由节点对应的终端节点的标识。其中,标识可以为数值或者坐标等。示例性的,如图2所示,第一主机(即第一个主机)控制的路由节点0至路由节点6为第一路由节点,第二主机(即第二个主机)路由节点7至路由节点15为第二路由节点。
也就是说,在本实施例中,在对片上网络的多个路由节点和多个终端节点配置标识之后,第一主机控制的路由节点的标识需小于第二主机控制的路由节点的标识,以及第一主机控制的终端节点的标识需小于第二主机控制的终端节点的标识。本申请对片上网络中路由节点和终端节点的数量不做限定,只要数量为2的倍数即可。
图3是根据本发明实施例的片上网络的路由方法的流程示意图,如图3所示,该方法包括如下步骤:
步骤S301,在源终端节点向目的终端节点发送数据包时,根据源终端节点的标识和目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识。
其中,源终端节点和目的终端节点为多个第一路由节点对应的终端节点中的任意两个。或者,源终端节点和目的终端节点为多个第二路由节点对应的终端节点中的任意两个。也就是说,源终端节点和目的终端节点为同一主机控制的终端节点。
示例性的,如图2所示,源终端节点和目的终端节点可以为第一主机控制的终端节点中的任意两个。例如,源终端节点为终端节点1,目的终端节点为终端节点8。源终端节点和目的终端节点也可以为第二主机控制的终端节点中的任意两个。例如,源终端节点为终端节点15,目的终端节点为终端节点27。
应理解,源终端节点为发送数据包的终端节点,目的终端节点为接收数据包的终端节点。
第三路由节点为与源终端节点连接的路由节点,第四路由节点为与目的终端节点连接的路由节点。示例性的,如图2所示,若源终端节点为终端节点1,则第三路由节点为路由节点0,若目的终端节点为终端节点8,则第四路由节点为路由节点4。
示例性的,可以根据预配置的对应关系确定第三路由节点的标识和第四路由节点的标识。预配置的对应关系可以为多个路由节点的标识和多个终端节点的标识之间的对应关系。
例如,该对应关系可以如表1所示。
表1
例如,在源终端节点为终端节点2时,根据表1可以确定第三路由节点的标识为1(0001),即第三路由节点为路由节点1。
步骤S302,根据第三路由节点的标识和第四路由节点的标识,确定数据包的路由路径。
具体地,路由路径为数据包从源终端节点发出至到达目的终端节点所经过的路由节点。确定数据包的路由路径的过程在下述实施例进行详细介绍。
步骤S303,根据路由路径,将数据包从源终端节点发送至目的终端节点。
示例性的,如图2所示,在第三路由节点为路由节点1,第四路由节点为路由节点4的情况下,一条可能的路由路径为路由节点1->路由节点5->路由节点4。此时,源终端节点的数据包先路由到路由节点1,然后从路由节点1路由到路由节点5,再从路由节点5路由到路由节点4,最后从路由节点4路由到目的终端节点。
本实施例提供的片上网络的路由方法,在第一主机控制的路由节点的标识小于第二主机控制的路由节点的标识,以及第一主机控制的终端节点的标识小于第二主机控制的终端节点的标识的情况下,在源终端节点向目的终端节点发送数据包时,根据第三路由节点的标识和第四路由节点的标识确定的路由路径对应的路由节点,可以保证为同一主机控制的路由节点,使双主机所控制的两个子网可以独立传输数据包,避免两个子网之间相互干扰。而且,本发明提供的路由方法仅从算法层面就可以实现两个子网络的相互独立,不需要硬件对路由端口和路径进行额外的操作(如选择性的阻断某些端口等),易于硬件实现。
下面在源终端节点和目的终端节点为多个第一路由节点对应的终端节点中的任意两个的情况下,结合附图对本发明中确定路由路径的过程进行详细说明。
在本实施例中提供了一种片上网络的路由方法,可用于片上网络。图4是根据本发明实施例的另一种片上网络的路由方法的流程示意图,如图4所示,该方法包括如下步骤:
步骤S401,在源终端节点向目的终端节点发送数据包时,根据源终端节点的标识和目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识。
详细请参见图3所示实施例的步骤S301,在此不再赘述。
步骤S402,根据第三路由节点的标识和第四路由节点的标识,确定数据包的路由路径。
具体地,上述步骤S402包括:
步骤S4021,根据第三路由节点的标识和第四路由节点的标识,确定数据包的第一负路由路径。
其中,第一负路由路径为第五路由节点路由到第六路由节点的路径。第五路由节点和第六路由节点为多个第一路由节点中相连的两个第一路由节点,且第五路由节点的标识大于第六路由节点的标识。也就是说,第一负路由路径为标识大的第一路由节点向相连的标识小的第一路由节点路由的路径。
示例性的,如图2所示,第五路由节点可以为路由节点3,第六路由节点可以为路由节点1,此时,路由节点3向路由节点1路由的路径为第一负路由路径。再例如,第五路由节点可以为路由节点6,第六路由节点可以为路由节点4,此时,路由节点6向路由节点4路由的路径也为第一负路由路径。
在一些可选的实施方式中,如图2所示,多个路由节点中每个路由节点与两个终端节点连接,标识为以二进制表示的数值,源终端节点的标识的前N个比特位对应第三路由节点的标识,目的终端节点的标识的前N个比特位对应第四路由节点的标识,N为正整数。例如,源终端节点的标识为00010,则第三路由的标识为0001。上述步骤S4021包括步骤a1和步骤a2。
步骤a1,将源终端节点的标识的前N个比特位中所有为1的比特位,与第一运算结果的对应比特位进行同或运算,得到第二运算结果。
其中,第一运算结果I1为将源终端节点的标识和目的终端节点的标识按比特位进行异或运算得到的结果。第一运算结果I1的前N个比特位是第三路由节点的标识和第四路由节点的标识按比特位进行异或运算得到的结果。
示例性的,源终端节点的标识为00001(1),目的终端节点的标识为01100(12),第三路由节点的标识为0000(0),第四路由节点的标识为0110(6),即N为4。此时,第一运算结果I1为0110,第二运算结果I2为0000。
步骤a2,根据第二运算结果,确定第一负路由路径。
示例性的,上述步骤a2包括步骤a21和步骤a22。
步骤a21,在第二运算结果对应的N个比特位均为0的情况下,将第三路由节点确定为第一负路由路径上的节点。
示例性的,在第二运算结果I2为0000的情况下,直接将第三路由节点确定为第一负路由路径上的节点。
步骤a22,在第二运算结果对应的N个比特位不均为0的情况下,按照第二运算结果中比特位为1的位置,以预设规则依次将源终端节点的标识的前N个比特位中对应位置的1变为0,得到至少一个标识,将至少一个标识对应的路由节点确定为第一负路由路径上的节点。
示例性的,预设规则可以为从左到右依次变换,也可以为从右到左依次变换,还可以为随机变换。在以预设规则依次将源终端节点的标识的前N个比特位中对应位置的1变为0的情况下,路由节点每个bit信息的改变,第二运算结果对应bit中的1也变为0,直到第二运算结果中所有bit都是0的时候第一负路由结束。
示例性的,源终端节点的标识为01100(12),目的终端节点的标识为00001(1),第三路由节点的标识为0110(6),第四路由节点的标识为0000(0),第一运算结果I1为01101,第二运算结果I2为0110。在此情况下,按照随机的方式,第一负路由路径可能有如下结果:
0110(I2:0110)->0100(I2:0100)->0000(I2:0000)
0110(I2:0110)->0010(I2:0010)->0000(I2:0000)
也就是说,第一负路由路径可能为路由节点6->路由节点4->路由节点0,或者第一负路由路径可能为路由节点6->路由节点2->路由节点0。
步骤S4022,根据第一负路由路径,确定数据包的第一正路由路径。
其中,第一正路由路径为第六路由节点路由到第五路由节点的路径。也就是说,第一正路由路径为标识小的第一路由节点向相连的标识大的第一路由节点路由的路径。示例性的,如图2所示,路由节点1向路由节点3路由的路径为第一正路由路径。再例如,路由节点4向路由节点6路由的路径也为第一正路由路径。
在一些可选的实施方式中,多个路由节点中每个路由节点与两个终端节点连接,标识为以二进制表示的数值,上述步骤S4022包括步骤b1和步骤b2。
步骤b1,将目的终端节点的标识的前N个比特位中所有为1的比特位,与第一运算结果的对应比特位进行同或运算,得到第三运算结果。
示例性的,源终端节点的标识为01100,目的终端节点的标识为00001,第三路由节点的标识为0110,第四路由节点的标识为0000,此时,第一运算结果I1为01101,第三运算结果I3为0000。
步骤b2,根据第三运算结果和第一负路由路径,确定第一正路由路径。
示例性的,上述步骤b2包括步骤b21和步骤b22。
步骤b21,在第三运算结果对应的N个比特位均为0时,将第四路由节点确定为第一正路由路径上的节点。
示例性的,若第三运算结果I3为0000,则将第四路由节点确定为第一正路由路径上的节点。
步骤b22,在第三运算结果对应的N个比特位不均为0时,按照第三运算结果中比特位为1的位置,以预设规则依次将第九路由节点的标识的N个比特位中对应位置的0变为1,得到至少一个标识,将至少一个标识对应的路由节点确定为第一正路由路径上的节点。
具体地,在以预设规则依次将第九路由节点的标识的N个比特位中对应位置的0变为1时,路由节点每个bit信息的改变,第三运算结果I3中对应bit中的1也变为0,直到第三运算结果I3中所有bit都是0的时候第一正路由结束。
其中,第九路由节点为第一负路由路径中的最后一个路由节点。示例性的,以上述步骤a22的示例下,第九路由节点为路由节点0。在此情况下,第一正路由路径为路由节点0。
步骤S4023,根据第一负路由路径和第一正路由路径确定路由路径。
示例性的,若第一负路由路径为路由节点6->路由节点4->路由节点0,第一正路由路径为路由节点0,则路由路径为路由节点6->路由节点4->路由节点0。
步骤S403,根据路由路径,将数据包从源终端节点发送至目的终端节点。
详细请参见图3所示实施例的步骤S303,在此不再赘述。
本实施例提供的片上网络的路由方法,以二进制表示的数值作为标识,能够基于第三路由节点的标识和第四路由节点的标识更准确地确定数据包的路由路径,避免路由路径中包含其他主机控制的路由节点。
下面在源终端节点和目的终端节点为多个第二路由节点对应的终端节点中的任意两个的情况下,结合附图对本发明中确定路由路径的过程进行详细说明。
在本实施例中提供了一种片上网络的路由方法,可用于片上网络。图5是根据本发明实施例的又一种片上网络的路由方法的流程示意图,如图5所示,该方法包括如下步骤:
步骤S501,在源终端节点向目的终端节点发送数据包时,根据源终端节点的标识和目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识。
详细请参见图3所示实施例的步骤S301,在此不再赘述。
步骤S502,根据第三路由节点的标识和第四路由节点的标识,确定数据包的路由路径。
具体地,上述步骤S502包括:
步骤S5021,根据第三路由节点的标识和第四路由节点的标识,确定数据包的第二正路由路径。
其中,第二正路由路径为第七路由节点路由到第八路由节点的路径,第七路由节点和第八路由节点为多个第二路由节点中相连的两个第二路由节点,且第七路由节点的标识小于第八路由节点的标识。也就是说,第二正路由路径为标识小的第二路由节点向相连的标识大的第二路由节点路由的路径。
示例性的,如图2所示,第七路由节点可以为路由节点9,第八路由节点可以为路由节点11,此时,路由节点9向路由节点11路由的路径为第二正路由路径。再例如,第七路由节点可以为路由节点8,第八路由节点可以为路由节点12,此时,路由节点8向路由节点12路由的路径也为第二正路由路径。
在一些可选的实施方式中,如图2所示,多个路由节点中每个路由节点与两个终端节点连接,标识为以二进制表示的数值,源终端节点的标识的前N个比特位对应第三路由节点的标识,目的终端节点的标识的前N个比特位对应第四路由节点的标识,N为正整数。例如,源终端节点的标识为11001,则第三路由的标识为1100。上述步骤S5021包括步骤c1和步骤c2。
步骤c1,将目的终端节点的标识的前N个比特位中所有为1的比特位,与第一运算结果的对应比特位进行同或运算,得到第四运算结果。
其中,第一运算结果I1为将源终端节点的标识和目的终端节点的标识按比特位进行异或运算得到的结果。第一运算结果I1的前N个比特位是第三路由节点的标识和第四路由节点的标识按比特位进行异或运算得到的结果。
示例性的,源终端节点的标识为11001,目的终端节点的标识为01111,第三路由节点的标识为1100,第四路由节点的标识为0111,即N为4。此时,第一运算结果I1为10110,第四运算结果I4为0011。
步骤c2,根据第四运算结果,确定第二正路由路径。
示例性的,上述步骤c2包括步骤c21和步骤c22。
步骤c21,在第四运算结果对应的N个比特位均为0的情况下,将第三路由节点确定为第二正路由路径上的节点。
示例性的,在第四运算结果I4为0000的情况下,直接将第三路由节点确定为第二正路由路径上的节点。
步骤c22,在第四运算结果对应的N个比特位不均为0的情况下,按照第四运算结果中比特位为1的位置,以预设规则依次将源终端节点的标识的前N个比特位中对应位置的0变为1,得到至少一个标识,将至少一个标识对应的路由节点确定为第二正路由路径上的节点。
示例性的,预设规则可以为从左到右依次变换,也可以为从右到左依次变换,还可以为随机变换。具体地,在以预设规则依次将源终端节点的标识的前N个比特位中对应位置的0变为1的情况下,路由节点每个bit信息的改变,第四运算结果对应bit中的1也变为0,直到第四运算结果中所有bit都是0的时候第二正路由结束。
示例性的,源终端节点的标识为11001,目的终端节点的标识为01111,第三路由节点的标识为1100,第四路由节点的标识为0111,第一运算结果I1为10110,第四运算结果I4为0011。在此情况下,按照随机的方式,第二正路由路径可能有如下结果:
1100(I4:0011)->1101(I4:0010)->1111(I4:0000)
1100(I4:0011)->1110(I4:0001)->1111(I4:0000)
也就是说,第二正路由路径可能为路由节点12->路由节点13->路由节点15,或者第二正路由路径可能为路由节点12->路由节点14->路由节点15。
步骤S5022,根据第二正路由路径,确定数据包的第二负路由路径。
其中,第二负路由路径为第八路由节点路由到第七路由节点的路径。也就是说,第二负路由路径为标识大的第二路由节点向相连的标识小的第二路由节点路由的路径。
示例性的,如图2所示,第七路由节点可以为路由节点9,第八路由节点可以为路由节点11,此时,路由节点11向路由节点9路由的路径为第二负路由路径。
在一些可选的实施方式中,多个路由节点中每个路由节点与两个终端节点连接,标识为以二进制表示的数值,上述步骤S5022包括步骤d1和步骤d2。
步骤d1,将源终端节点的标识的前N个比特位中所有为1的比特位,与第一运算结果的对应比特位进行同或运算,得到第五运算结果。
示例性的,源终端节点的标识为11001,目的终端节点的标识为01111,第三路由节点的标识为1100,第四路由节点的标识为0111,此时,第一运算结果I1为10110,第五运算结果I5为1000。
步骤d2,根据第五运算结果和第二正路由路径,确定第二负路由路径。
示例性的,上述步骤d2包括步骤d21和步骤d22。
步骤d21,在第五运算结果的N个比特位均为0的情况下,将第四路由节点确定为第二负路由路径上的节点。
示例性的,若第五运算结果I5为0000,则将第四路由节点确定为第二负路由路径上的节点。
步骤d22,在第五运算结果的N个比特位不均为0的情况下,按照第五运算结果中比特位为1的位置,以预设规则依次将第十路由节点的标识的N个比特位中对应位置的1变为0,得到至少一个标识,将至少一个标识对应的路由节点确定为第二负路由路径上的节点。
具体地,在以预设规则依次将第十路由节点的标识的N个比特位中对应位置的1变为0时,路由节点每个bit信息的改变,第五运算结果I5中对应bit中的1也变为0,直到第五运算结果I5中所有bit都是0的时候第二负路由结束。
其中,第十路由节点为第一负路由路径中的最后一个路由节点。示例性的,以上述步骤c22的示例下,第十路由节点为路由节点15。在此情况下,按照随机的方式,第二负路由路径可能有如下结果:
1111 (I5:1000)->0111 (I5:0000)
也就是说,第二负路由路径可能为路由节点15->路由节点7。
步骤S5023,根据第二负路由路径和第二正路由路径确定路由路径。
示例性的,若第二正路由路径为路由节点12->路由节点13->路由节点15,第二负路由路径为路由节点15->路由节点7,则路由路径为路由节点12->路由节点13->路由节点15->路由节点7。若第二正路由路径为路由节点12->路由节点14->路由节点15,第二负路由路径为路由节点15->路由节点7,则路由路径为路由节点12->路由节点14->路由节点15->路由节点7。
通过上述方式,可以保证确定的路由路径中的节点均为第二主机控制的路由节点。
步骤S503,根据路由路径,将数据包从源终端节点发送至目的终端节点。
详细请参见图3所示实施例的步骤S303,在此不再赘述。
本实施例提供的片上网络的路由方法,以二进制表示的数值作为标识,能够基于第三路由节点的标识和第四路由节点的标识更准确地确定数据包的路由路径,避免路由路径中包含其他主机控制的路由节点。
在本实施例中提供了一种片上网络的路由方法,可用于片上网络。图6是根据本发明实施例的再一种片上网络的路由方法的流程示意图,如图6所示,该方法包括如下步骤:
步骤S601,在源终端节点向目的终端节点发送数据包时,根据源终端节点的标识和目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识。
详细请参见图3所示实施例的步骤S301,在此不再赘述。
步骤S602,确定第三路由节点和第四路由节点是否为同一路由节点。
具体地,上述步骤S602包括:
步骤S6021,将源终端节点的标识和目的终端节点的标识按比特位进行异或运算,得到第一运算结果。
步骤S6022,在第一运算结果的前N个比特位均为0的情况下,第三路由节点和第四路由节点为同一路由节点。
步骤S6023,在第一运算结果的前N个比特位不均为0的情况下,第三路由节点和第四路由节点为不同路由节点。
示例性的,若源终端节点的标识为00010,目的终端节点的标识为00011,则第一运算结果为00001,第一运算结果的前4个比特位均为0,表明第三路由节点和第四路由节点相同。若源终端节点的标识为11001,目的终端节点的标识为01111,则第一运算结果为10110,第一运算结果的前4个比特位不均为0,表明第三路由节点和第四路由节点为不同的路由节点。
步骤S603,确定路由路径中路由节点的数量。
其中,路由路径中路由节点的数量为P+1,P为第一运算结果的前N个比特位中1的数量,P大于或者等于0。
示例性的,若源终端节点的标识为11001,目的终端节点的标识为01111,N为4,则第一运算结果为10110,第一运算结果的前4个比特位中1的数量为3,即P=3,路由路径中路由节点的数量为4。
步骤S604,在第三路由节点和第四路由节点为同一路由节点的情况下,将第三路由节点确定为路由路径上的节点。
步骤S605,在第三路由节点和第四路由节点为不同路由节点的情况下,根据第三路由节点的标识和第四路由节点的标识,确定数据包的路由路径。
具体地,根据第三路由节点的标识和第四路由节点的标识确定数据包的路由路径的方式,详见图4或者图5所示实施例,在此不再赘述。
步骤S606,根据路由路径,将数据包从源终端节点发送至目的终端节点。
具体地,上述步骤S606包括:
步骤S6061,根据路由路径,将数据包从第三路由节点发送至第四路由节点。
步骤S6062,根据目的终端节点的标识,将数据包发送从第四路由节点发送至目的终端节点。
示例性的,源终端节点的标识为11001,第三路由节点的标识为1100,目的终端节点的标识为01111,第四路由节点的标识为0111,若确定的路由路径为路由节点12->路由节点14->路由节点15->路由节点7,则数据包依次经过路由节点12、路由节点14、路由节点15和路由节点7。在数据包到达路由节点7(第四路由节点)之后,由于路由节点7连接两个终端节点,此时可以根据目的终端节点的标识中的最后一个bit,将数据包发送至目的终端节点。例如,路由节点7连接终端节点14和终端节点15,若目的终端节点的标识中的最后一个bit为0,则将数据包发送至终端节点14,若目的终端节点的标识中的最后一个bit为1,则将数据包发送至终端节点15。
本实施例提供的片上网络的路由方法,确定第三路由节点和第四路由节点是否为同一路由节点,在第三路由节点和第四路由节点为同一路由的情况下,直接将第三路由节点作为路由路径上的节点,能够提升确定路由路径的效率。确定路由路径中路由节点的数量,确定数量之后再确定路由路径,能够进一步提升确定路由路径的效率。
下面以源终端节点S的标识为11001(25),目的终端节点D的标识为01111(15)为例,对发明提供的路由方法进行说明。
首先,源终端节点S的标识为11001(25),目的终端节点D的标识为01111(15)的情况下,根据标识信息可以确定第三路由节点的标识为1100(12),第四路由节点的标识为0111(7)。即,第三路由节点为路由节点12,第四路由节点为路由节点7。
其次,将源终端节点S的标识和目标终端节点D的标识的前四个bit按位进行异或运算,得到第一运算结果I1(1011)。然后,查看I1的前4个bit中1的数量P,在P=0时,表明第三路由节点和第四路由节点为同一个路由节点,直接将第三路由节点确定为路由路径上的节点,在P≥1时,表明第三路由节点和第四路由节点为不同的路由节点,此时可以确定路由路径上的节点数量为P+1,然后确定路由路径中包含的路由节点。
在上述示例中,P为3,即路由路径上的节点数量为4。然后按照约定,先确定第二正路由路径,再确定第二负路由路径,进而确定路由路径。
具体地,目的终端节点D的前4个bit(0111)与I1的前4个bit(1011)按位进行同或运算,得到第四运算结果I4(0011)。I4中含有1,则按照I4中1的位置以随机的方式,将S前四个bit对应的位置的0变为1,得到第二正路由路径:
1100(I4:0011)->1101(I4:0001)->1111(I4:0000)
1100(I4:0011)->1110(I4:0010)->1111(I4:0000)
可见,第二正路由阶段有两条路由路径,将第二正路由路径中的最后一个路由节点1111记为M。然后确定第二负路由路径。
具体地,将源终端节点S的前4个bit(1100),与I1的前4个bit(1011),按位进行同或操作,得到第五运算结果I5(1000)。I5(1000)中含有1,则按照I5中1的位置以随机的方式,将M前四个bit对应的位置的1变为0,得到第二负路由路径:
1111(I5:1000)->0111(I5:0000)
此时,根据第二正路由路径和第二负路由路径可以得到路由路径。示例性的,路由路径可以为1100->1101->1111->0111,或者路由路径可以为1100->1110->1111->0111。
之后,根据路由路径将数据包路由到路由路径中的最后一个路由节点,然后,根据目的终端节点D的最后一个bit将数据包路由到目的终端节点。
在本实施例中还提供了一种片上网络的路由装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种片上网络的路由装置,如图7所示,包括:
第一确定模块701,用于在源终端节点向目的终端节点发送数据包时,根据所述源终端节点的标识和所述目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识,其中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,或者所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述第三路由节点为与所述源终端节点连接的路由节点,所述第四路由节点为与所述目的终端节点连接的路由节点。
第二确定模块702,用于根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径。
发送模块703,用于根据所述路由路径,将所述数据包从所述源终端节点发送至目的终端节点。
在一些可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,所述第二确定模块702,包括:
第一确定单元,用于根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第一负路由路径,其中,所述第一负路由路径为第五路由节点路由到第六路由节点的路径,所述第五路由节点和所述第六路由节点为所述多个第一路由节点中相连的两个第一路由节点,且所述第五路由节点的标识大于所述第六路由节点的标识;
第二确定单元,用于根据所述第一负路由路径,确定所述数据包的第一正路由路径,其中,所述第一正路由路径为所述第六路由节点路由到所述第五路由节点的路径;
第三确定单元,用于根据所述第一负路由路径和所述第一正路由路径确定所述路由路径。
在一些可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述第二确定模块702,包括:
第四确定单元,用于根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第二正路由路径,其中,所述第二正路由路径为第七路由节点路由到第八路由节点的路径,所述第七路由节点和所述第八路由节点为所述多个第二路由节点中相连的两个第二路由节点,且所述第七路由节点的标识小于所述第八路由节点的标识;
第五确定单元,用于根据所述第二正路由路径,确定所述数据包的第二负路由路径,其中,所述第二负路由路径为所述第八路由节点路由到所述第七路由节点的路径;
第六确定单元,用于根据所述第二负路由路径和所述第二正路由路径确定所述路由路径。
在一些可选的实施方式中,所述装置还包括:
第三确定模块,用于确定所述第三路由节点和所述第四路由节点是否为同一路由节点;
所述第二确定模块702,包括:
第七确定单元,用于在所述第三路由节点和所述第四路由节点为不同路由节点的情况下,根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径。
在一些可选的实施方式中,所述装置还包括:
第四确定模块,用于在所述第三路由节点和所述第四路由节点为同一路由节点的情况下,将所述第三路由节点确定为所述路由路径上的节点。
在一些可选的实施方式中,所述多个路由节点中每个路由节点与两个终端节点连接,标识为以二进制表示的数值,所述源终端节点的标识的前N个比特位对应所述第三路由节点的标识,所述目的终端节点的标识的前N个比特位对应所述第四路由节点的标识,N为正整数;所述第三确定模块,包括:
第一处理单元,用于将所述源终端节点的标识和所述目的终端节点的标识按比特位进行异或运算,得到第一运算结果;
第二处理单元,用于在所述第一运算结果的前N个比特位均为0的情况下,所述第三路由节点和所述第四路由节点为同一路由节点。
在一些可选的实施方式中,所述第三确定模块,还包括:
第三处理单元,用于在所述第一运算结果的前N个比特位不均为0的情况下,所述第三路由节点和所述第四路由节点为不同路由节点。
在一些可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,所述第一确定单元,包括:
第一子确定单元,用于将所述源终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第二运算结果;
第二子确定单元,用于根据所述第二运算结果,确定所述第一负路由路径。
在一些可选的实施方式中,所述第二子确定单元,包括:
第一子处理单元,用于在所述第二运算结果对应的N个比特位均为0的情况下,将所述第三路由节点确定为所述第一负路由路径上的节点;
第二子处理单元,用于在所述第二运算结果对应的N个比特位不均为0的情况下,按照所述第二运算结果中比特位为1的位置,以预设规则依次将所述源终端节点的标识的前N个比特位中对应位置的1变为0,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第一负路由路径上的节点。
在一些可选的实施方式中,所述第二确定单元,包括:
第三子确定单元,用于将所述目的终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第三运算结果;
第四子确定单元,用于根据所述第三运算结果和所述第一负路由路径,确定所述第一正路由路径。
在一些可选的实施方式中,所述第四子确定单元,包括:
第三子处理单元,用于在所述第三运算结果对应的N个比特位均为0时,将所述第四路由节点确定为所述第一正路由路径上的节点;
第四子处理单元,用于在所述第三运算结果对应的N个比特位不均为0时,按照所述第三运算结果中比特位为1的位置,以预设规则依次将第九路由节点的标识的N个比特位中对应位置的0变为1,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第一正路由路径上的节点,所述第九路由节点为所述第一负路由路径中的最后一个路由节点。
在一些可选的实施方式中,所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述第四确定单元,包括:
第五子确定单元,用于将所述目的终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第四运算结果;
第六子确定单元,用于根据所述第四运算结果,确定所述第二正路由路径。
在一些可选的实施方式中,所述第六子确定单元,包括:
第五子处理单元,用于在所述第四运算结果对应的N个比特位均为0的情况下,将所述第三路由节点确定为所述第二正路由路径上的节点;
第六子处理单元,用于在所述第四运算结果对应的N个比特位不均为0的情况下,按照所述第四运算结果中比特位为1的位置,以预设规则依次将源终端节点的标识的前N个比特位中对应位置的0变为1,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第二正路由路径上的节点。
在一些可选的实施方式中,所述第五确定单元,包括:
第七子确定单元,用于将所述源终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第五运算结果;
第八子确定单元,用于根据所述第五运算结果和所述第二正路由路径,确定所述第二负路由路径。
在一些可选的实施方式中,所述第八子确定单元,包括:
第七子处理单元,用于在所述第五运算结果的N个比特位均为0的情况下,将所述第四路由节点确定为所述第二负路由路径上的节点;
第八子处理单元,用于在所述第五运算结果的N个比特位不均为0的情况下,按照所述第五运算结果中比特位为1的位置,以预设规则依次将第十路由节点的标识的N个比特位中对应位置的1变为0,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第二负路由路径上的节点,所述第十路由节点为所述第二负路由路径中的最后一个路由节点。
在一些可选的实施方式中,所述发送模块703,包括:
第一发送单元,用于根据所述路由路径,将所述数据包从所述第三路由节点发送至所述第四路由节点;
第二发送单元,用于根据所述目的终端节点的标识,将所述数据包发送从所述第四路由节点发送至所述目的终端节点。
在一些可选的实施方式中,所述装置还包括:
第五确定模块,用于确定所述路由路径中路由节点的数量,所述路由路径中路由节点的数量为P+1,P为所述第一运算结果的前N个比特位中1的数量,P大于或者等于0。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的片上网络的路由装置是以功能单元的形式来呈现,这里的单元是指专用集成电路(Application Specific Integrated Circuit,ASIC),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图7所示的片上网络的路由装置。
请参阅图8,图8是本发明可选实施例提供的一种计算机设备的结构示意图,如图8所示,该计算机设备包括:一个或多个处理器810、存储器820,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器810为例。
处理器810可以是中央处理器,网络处理器或其组合。其中,处理器810还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器820存储有可由至少一个处理器810执行的指令,以使所述至少一个处理器810执行实现上述实施例示出的方法。
存储器820可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器820可选包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器820可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器820还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口830,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (19)
1.一种片上网络的路由方法,其特征在于,片上网络包括多个第一路由节点和多个第二路由节点,所述第一路由节点为多个路由节点中由第一主机控制的路由节点,所述第二路由节点为所述多个路由节点中由第二主机控制的路由节点,所述多个路由节点中每个路由节点与至少一个终端节点连接,所述多个路由节点和对应的终端节点均配置有标识,所述第一路由节点的标识小于所述第二路由节点的标识,所述第一路由节点对应的终端节点的标识小于所述第二路由节点对应的终端节点的标识,所述方法包括:
在源终端节点向目的终端节点发送数据包时,根据所述源终端节点的标识和所述目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识,其中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,或者所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述第三路由节点为与所述源终端节点连接的路由节点,所述第四路由节点为与所述目的终端节点连接的路由节点;
根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径,其中,在所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个的情况下,所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径,包括:根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第一负路由路径,所述第一负路由路径为第五路由节点路由到第六路由节点的路径,所述第五路由节点和所述第六路由节点为所述多个第一路由节点中相连的两个第一路由节点,且所述第五路由节点的标识大于所述第六路由节点的标识;根据所述第一负路由路径,确定所述数据包的第一正路由路径,所述第一正路由路径为所述第六路由节点路由到所述第五路由节点的路径;根据所述第一负路由路径和所述第一正路由路径确定所述路由路径;
根据所述路由路径,将所述数据包从所述源终端节点发送至目的终端节点。
2.根据权利要求1所述的方法,其特征在于,在所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个的情况下,所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径,包括:
根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第二正路由路径,其中,所述第二正路由路径为第七路由节点路由到第八路由节点的路径,所述第七路由节点和所述第八路由节点为所述多个第二路由节点中相连的两个第二路由节点,且所述第七路由节点的标识小于所述第八路由节点的标识;
根据所述第二正路由路径,确定所述数据包的第二负路由路径,其中,所述第二负路由路径为所述第八路由节点路由到所述第七路由节点的路径;
根据所述第二负路由路径和所述第二正路由路径确定所述路由路径。
3.根据权利要求1或2所述的方法,其特征在于,在确定所述数据包的路由路径之前,所述方法还包括:
确定所述第三路由节点和所述第四路由节点是否为同一路由节点;
所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径,包括:
在所述第三路由节点和所述第四路由节点为不同路由节点的情况下,根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述第三路由节点和所述第四路由节点为同一路由节点的情况下,将所述第三路由节点确定为所述路由路径上的节点。
5.根据权利要求3所述的方法,其特征在于,所述多个路由节点中每个路由节点与两个终端节点连接,标识为以二进制表示的数值,所述源终端节点的标识的前N个比特位对应所述第三路由节点的标识,所述目的终端节点的标识的前N个比特位对应所述第四路由节点的标识,N为正整数;所述确定所述第三路由节点和所述第四路由节点是否为同一路由节点,包括:
将所述源终端节点的标识和所述目的终端节点的标识按比特位进行异或运算,得到第一运算结果;
在所述第一运算结果的前N个比特位均为0的情况下,所述第三路由节点和所述第四路由节点为同一路由节点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述第一运算结果的前N个比特位不均为0的情况下,所述第三路由节点和所述第四路由节点为不同路由节点。
7.根据权利要求5所述的方法,其特征在于,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第一负路由路径,包括:
将所述源终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第二运算结果;
根据所述第二运算结果,确定所述第一负路由路径。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第二运算结果,确定所述第一负路由路径,包括:
在所述第二运算结果对应的N个比特位均为0的情况下,将所述第三路由节点确定为所述第一负路由路径上的节点;
在所述第二运算结果对应的N个比特位不均为0的情况下,按照所述第二运算结果中比特位为1的位置,以预设规则依次将所述源终端节点的标识的前N个比特位中对应位置的1变为0,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第一负路由路径上的节点。
9.根据权利要求7所述的方法,其特征在于,所述根据所述第一负路由路径,确定所述数据包的第一正路由路径,包括:
将所述目的终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第三运算结果;
根据所述第三运算结果和所述第一负路由路径,确定所述第一正路由路径。
10.根据权利要求9所述的方法,其特征在于,根据所述第三运算结果和所述第一负路由路径,确定所述第一正路由路径,包括:
在所述第三运算结果对应的N个比特位均为0时,将所述第四路由节点确定为所述第一正路由路径上的节点;
在所述第三运算结果对应的N个比特位不均为0时,按照所述第三运算结果中比特位为1的位置,以预设规则依次将第九路由节点的标识的N个比特位中对应位置的0变为1,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第一正路由路径上的节点,所述第九路由节点为所述第一负路由路径中的最后一个路由节点。
11.根据权利要求5所述的方法,其特征在于,所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第二正路由路径,包括:
将所述目的终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第四运算结果;
根据所述第四运算结果,确定所述第二正路由路径。
12.根据权利要求11所述的方法,其特征在于,所述根据所述第四运算结果,确定所述第二正路由路径,包括:
在所述第四运算结果对应的N个比特位均为0的情况下,将所述第三路由节点确定为所述第二正路由路径上的节点;
在所述第四运算结果对应的N个比特位不均为0的情况下,按照所述第四运算结果中比特位为1的位置,以预设规则依次将源终端节点的标识的前N个比特位中对应位置的0变为1,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第二正路由路径上的节点。
13.根据权利要求11所述的方法,其特征在于,所述根据所述第二正路由路径,确定所述数据包的第二负路由路径,包括:
将所述源终端节点的标识的前N个比特位中所有为1的比特位,与所述第一运算结果的对应比特位进行同或运算,得到第五运算结果;
根据所述第五运算结果和所述第二正路由路径,确定所述第二负路由路径。
14.根据权利要求13所述的方法,其特征在于,所述根据所述第五运算结果和所述第二正路由路径,确定所述第二负路由路径,包括:
在所述第五运算结果的N个比特位均为0的情况下,将所述第四路由节点确定为所述第二负路由路径上的节点;
在所述第五运算结果的N个比特位不均为0的情况下,按照所述第五运算结果中比特位为1的位置,以预设规则依次将第十路由节点的标识的N个比特位中对应位置的1变为0,得到至少一个标识,将所述至少一个标识对应的路由节点确定为所述第二负路由路径上的节点,所述第十路由节点为所述第二负路由路径中的最后一个路由节点。
15.根据权利要求13所述的方法,其特征在于,所述根据所述路由路径,将所述数据包从所述源终端节点发送至目的终端节点,包括:
根据所述路由路径,将所述数据包从所述第三路由节点发送至所述第四路由节点;
根据所述目的终端节点的标识,将所述数据包发送从所述第四路由节点发送至所述目的终端节点。
16.根据权利要求5所述的方法,其特征在于,在确定所述数据包的路由路径之前,所述方法还包括:
确定所述路由路径中路由节点的数量,所述路由路径中路由节点的数量为P+1,P为所述第一运算结果的前N个比特位中1的数量,P大于或者等于0。
17.一种片上网络的路由装置,其特征在于,片上网络包括多个第一路由节点和多个第二路由节点,所述第一路由节点为多个路由节点中由第一主机控制的路由节点,所述第二路由节点为所述多个路由节点中由第二主机控制的路由节点,所述多个路由节点中每个路由节点与至少一个终端节点连接,所述多个路由节点和对应的终端节点均配置标识,所述第一路由节点的标识小于所述第二路由节点的标识,所述第一路由节点对应的终端节点的标识小于所述第二路由节点对应的终端节点的标识,所述装置包括:
第一确定模块,用于在源终端节点向目的终端节点发送数据包时,根据所述源终端节点的标识和所述目的终端节点的标识,确定第三路由节点的标识和第四路由节点的标识,其中,所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个,或者所述源终端节点和所述目的终端节点为所述多个第二路由节点对应的终端节点中的任意两个,所述第三路由节点为与所述源终端节点连接的路由节点,所述第四路由节点为与所述目的终端节点连接的路由节点;
第二确定模块,用于根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的路由路径,其中,在所述源终端节点和所述目的终端节点为所述多个第一路由节点对应的终端节点中的任意两个的情况下,所述第二确定模块具体用于:根据所述第三路由节点的标识和所述第四路由节点的标识,确定所述数据包的第一负路由路径,所述第一负路由路径为第五路由节点路由到第六路由节点的路径,所述第五路由节点和所述第六路由节点为所述多个第一路由节点中相连的两个第一路由节点,且所述第五路由节点的标识大于所述第六路由节点的标识;根据所述第一负路由路径,确定所述数据包的第一正路由路径,所述第一正路由路径为所述第六路由节点路由到所述第五路由节点的路径;根据所述第一负路由路径和所述第一正路由路径确定所述路由路径;
发送模块,用于根据所述路由路径,将所述数据包从所述源终端节点发送至目的终端节点。
18.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至16中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至16中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311388270.XA CN117135103B (zh) | 2023-10-25 | 2023-10-25 | 片上网络的路由方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311388270.XA CN117135103B (zh) | 2023-10-25 | 2023-10-25 | 片上网络的路由方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117135103A CN117135103A (zh) | 2023-11-28 |
CN117135103B true CN117135103B (zh) | 2024-02-23 |
Family
ID=88861323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311388270.XA Active CN117135103B (zh) | 2023-10-25 | 2023-10-25 | 片上网络的路由方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117135103B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382115A (zh) * | 2018-12-28 | 2020-07-07 | 北京灵汐科技有限公司 | 一种用于片上网络的路径创建方法、装置及电子设备 |
CN111382114A (zh) * | 2018-12-28 | 2020-07-07 | 北京灵汐科技有限公司 | 一种用于片上网络的数据传输方法、装置及电子设备 |
CN112613266A (zh) * | 2020-12-02 | 2021-04-06 | 海光信息技术股份有限公司 | 一种片上网络拓扑结构、路由路径确定方法、装置及电子设备 |
CN114500355A (zh) * | 2022-02-16 | 2022-05-13 | 上海壁仞智能科技有限公司 | 路由方法、片上网络、路由节点和路由装置 |
CN117061423A (zh) * | 2023-10-09 | 2023-11-14 | 苏州元脑智能科技有限公司 | 一种胖树网络的多机路由方法、装置、系统及存储介质 |
-
2023
- 2023-10-25 CN CN202311388270.XA patent/CN117135103B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382115A (zh) * | 2018-12-28 | 2020-07-07 | 北京灵汐科技有限公司 | 一种用于片上网络的路径创建方法、装置及电子设备 |
CN111382114A (zh) * | 2018-12-28 | 2020-07-07 | 北京灵汐科技有限公司 | 一种用于片上网络的数据传输方法、装置及电子设备 |
CN112613266A (zh) * | 2020-12-02 | 2021-04-06 | 海光信息技术股份有限公司 | 一种片上网络拓扑结构、路由路径确定方法、装置及电子设备 |
CN114500355A (zh) * | 2022-02-16 | 2022-05-13 | 上海壁仞智能科技有限公司 | 路由方法、片上网络、路由节点和路由装置 |
CN117061423A (zh) * | 2023-10-09 | 2023-11-14 | 苏州元脑智能科技有限公司 | 一种胖树网络的多机路由方法、装置、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117135103A (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6581277B2 (ja) | データパケット転送 | |
US8989193B2 (en) | Facilitating insertion of device MAC addresses into a forwarding database | |
CN109728962B (zh) | 一种发送报文的方法和设备 | |
US9479434B2 (en) | Virtual destination identification for rapidio network elements | |
EP3787232A1 (en) | Network configuration method, device, and system | |
JP2009512260A (ja) | 加入者装置、通信システムの通信コントローラ、および通信システムの加入者装置内でゲートウェイ機能を実現する方法 | |
JP5612468B2 (ja) | リアルタイム通信ネットワークにおける診断データの通信のための方法と装置 | |
US11979283B2 (en) | Stacking-port configuration using zero-touch provisioning | |
US20160205048A1 (en) | Supporting multiple vswitches on a single host | |
Shu et al. | Direct Universal Access: Making Data Center Resources Available to {FPGA} | |
US7716409B2 (en) | Globally unique transaction identifiers | |
CN107852344B (zh) | 存储网元发现方法及装置 | |
JP2010531602A5 (zh) | ||
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
CN117061423B (zh) | 一种胖树网络的多机路由方法、装置、系统及存储介质 | |
US8885673B2 (en) | Interleaving data packets in a packet-based communication system | |
Walraed-Sullivan et al. | Alias: Scalable, decentralized label assignment for data centers | |
CN109818869B (zh) | 组播流量转发端口的生成方法及相关设备 | |
US10033591B2 (en) | Using timestamps to analyze network topologies | |
US8929251B2 (en) | Selecting a master processor from an ambiguous peer group | |
US20150036691A1 (en) | Efficiency of data payloads to data arrays accessed through registers in a distributed virtual bridge | |
CN117135103B (zh) | 片上网络的路由方法、装置、计算机设备及存储介质 | |
CN110830598B (zh) | Bgp会话建立、发送接口地址和别名的方法及网络设备 | |
CN116566933A (zh) | 报文处理方法、网关设备及存储系统 | |
CN113346983A (zh) | 具有镜像冗余的epa设备和epa系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |