CN110048947A - 二维Mesh网络中数据包的自适应路由方法与电子设备 - Google Patents
二维Mesh网络中数据包的自适应路由方法与电子设备 Download PDFInfo
- Publication number
- CN110048947A CN110048947A CN201910166798.XA CN201910166798A CN110048947A CN 110048947 A CN110048947 A CN 110048947A CN 201910166798 A CN201910166798 A CN 201910166798A CN 110048947 A CN110048947 A CN 110048947A
- Authority
- CN
- China
- Prior art keywords
- offset
- channel
- routing
- target packet
- virtual
- 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.)
- Granted
Links
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/12—Shortest path evaluation
-
- 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/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种二维Mesh网络中数据包的自适应路由方法与电子设备,其中该方法包括:若目标数据包的源节点至目的节点在x维和y维方向的距离之和非零,则设置虚拟维e,并利用所述虚拟维e、所述x维和y维,对所述二维Mesh网络进行虚拟子网络划分;对应划分出的各所述虚拟子网络,分别设置对应的数据包分类,并基于所述虚拟维e,合并所述虚拟子网络;基于所述目标数据包的源节点和目的节点,确定所述目标数据包所属的数据包分类,并基于所述目标数据包所属的数据包分类,使所述目标数据包进入对应的合并后的虚拟子网络中路由。本发明实施例能有效提高二维Mesh网络的通道利用率,降低通道使用量,从而有效提高数据传输效率。
Description
技术领域
本发明实施例涉及片上网络(network-on-chip,NoC)技术领域,更具体地,涉及一种二维Mesh网络中数据包的自适应路由方法与电子设备。
背景技术
直连网络作为一种常见的网络拓扑形式,已广泛应用于多处理器系统及多计算机系统中。在大规模多核片上网络中,每个节点都有自己的处理器和局部存储器,系统通过直连网络实现相邻节点间的连接。常见的片上网络拓扑结构有二维mesh和torus等。
二维torus网络和mesh网络在片上网络中已经取得了广泛应用。但是,在虚拟通道数有限的条件下,如何在torus网络和mesh网络中控制无死锁自适应路由,仍是高性能NoC面临的一个挑战性问题,因为这与路由器的缓存量和面积开销密切相关。
目前,Duato协议(Duato’s Protocol,DP)通过增加一些额外的自适应通道,将无死锁基本路由算法扩展到完全自适应无死锁路由算法,实现了mesh和torus的完全自适应的无死锁路由。另外,Linder和Harden将虚拟通道的概念扩展到虚拟网络中,每个虚拟网络使用不同的虚拟通道,从而实现系统的自适应性、无死锁性和容错性。
但是,现有的完全自适应路由算法普遍存在通道利用率低和使用的通道数量较多等问题,不利于数据传输效率的提高。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种二维Mesh网络中数据包的自适应路由方法与电子设备,用以有效提高二维Mesh网络的通道利用率,降低通道使用量,从而有效提高数据传输效率。
第一方面,本发明实施例提供一种二维Mesh网络中数据包的自适应路由方法,包括:
若目标数据包的源节点至目的节点在x维和y维两个方向的距离之和不为零,则设置虚拟维e,并利用所述虚拟维e、所述x维和所述y维,对所述二维Mesh网络进行虚拟子网络划分;
对应划分出的各所述虚拟子网络,分别设置对应的数据包分类,并基于所述虚拟维e,合并所述虚拟子网络;
基于所述目标数据包的源节点和目的节点,确定所述目标数据包所属的数据包分类,并基于所述目标数据包所属的数据包分类,使所述目标数据包进入对应的合并后的虚拟子网络中路由。
第二方面,本发明实施例提供一种二维Mesh网络中数据包的自适应路由装置,包括:
子网络划分模块,用于若目标数据包的源节点至目的节点在x维和y维两个方向的距离之和不为零,则设置虚拟维e,并利用所述虚拟维e、所述x维和所述y维,对所述二维Mesh网络进行虚拟子网络划分;
分类设置与子网络合并模块,用于对应划分出的各所述虚拟子网络,分别设置对应的数据包分类,并基于所述虚拟维e,合并所述虚拟子网络;
路由控制模块,用于基于所述目标数据包的源节点和目的节点,确定所述目标数据包所属的数据包分类,并基于所述目标数据包所属的数据包分类,使所述目标数据包进入对应的合并后的虚拟子网络中路由。
第三方面,本发明实施例提供一种电子设备,包括:至少一个存储器、至少一个处理器、通信接口和总线;所述存储器、所述处理器和所述通信接口通过所述总线完成相互间的通信,所述通信接口用于所述电子设备与二维Mesh网络设备之间的信息传输;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上第一方面所述的二维Mesh网络中数据包的自适应路由方法。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上第一方面所述的二维Mesh网络中数据包的自适应路由方法。
本发明实施例提供的二维Mesh网络中数据包的自适应路由方法与电子设备,通过在二维Mesh网络中设置虚拟维e,对二维Mesh网络进行子区域划分,可以使对二维Mesh网络的划分更细致,从而可以更充分地利用空闲的虚拟通道,提高二维Mesh网络的通道利用率,进而能够使数据传输效率相对现有算法实现较大的提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的二维Mesh网络中数据包的自适应路由方法的流程示意图;
图2为本发明实施例提供的二维Mesh网络中数据包的自适应路由方法与现有Duato’s Protocol和EbDa算法的通道利用率对比示意图;
图3为根据本发明实施例提供的二维Mesh网络中数据包的自适应路由方法绘制的通道依赖图;
图4为本发明实施例提供的二维Mesh网络中数据包的自适应路由方法与现有算法在benchmark下的效果提升比对示意图;
图5为本发明实施例提供的二维Mesh网络中数据包的自适应路由方法与现有Immunet算法在故障情况下的性能对比示意图;
图6为根据本发明实施例提供的二维Mesh网络中数据包的自适应路由方法构成的虚拟网络算法示意图;
图7为本发明实施例提供的二维Mesh网络中数据包的自适应路由装置的结构示意图;
图8为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明实施例的一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
本发明实施例针对现有技术普遍存在通道利用率低和使用的通道数量较多导致不利于数据传输效率的提高的问题,通过在二维Mesh网络中设置虚拟维e,对二维Mesh网络进行子区域划分,可以使对二维Mesh网络的划分更细致,从而可以更充分地利用空闲的虚拟通道,提高二维Mesh网络的通道利用率,进而能够使数据传输效率相对现有算法实现较大的提升。以下将具体通过多个实施例对本发明实施例进行展开说明和介绍。
可以理解,为更清楚的说明本发明实施例的技术方案,首先对几个概念进行定义如下。
Mesh网络即无线网格网络,是一种多跳(multi-hop)网络,基于呈网状分布的众多无线接入点,实现各接入点间的相互合作和协同,是解决“最后一公里”问题的关键技术之一。二维Mesh网络可以类比二维空间(Second Dimension)来描述,是指仅由宽度(水平线,几何学中表示为x轴)和高度(垂直线,几何学中表示为y轴)两个要素所组成的平面空间无线网格网络,宽度和高度分别对应x维和y维两个维度,该网络只在平面方向延伸扩展。
路由(routing)是指数据包从源节点s到目的节点d的过程中,决定端到端路径的网络范围的进程。路由工作在网络层的数据包转发设备,路由器通过转发数据包来实现网络互连。
在二维Mesh网络中,若路由路径的长度等于源节点s至目的节点d间在几何上的长度,且路径中的所有节点都是无故障的,则称该路径为源节点s到目的节点d的最小可行路径。则,从任一当前节点c到最小可行路径中该节点所对应节点的所有相邻节点,都是最小下一跳。
选择所有最小下一跳作为候选中间节点,以在所有中间节点中传送数据包。如果路由算法允许数据包偏移至已被消除的一个或多个维度传送,这个过程称为绕道路由。
图1为本发明实施例提供的二维Mesh网络中数据包的自适应路由方法的流程示意图,该方法可应用于虚拟直通交换方式。如图1所示,该方法包括:
S101,若目标数据包的源节点至目的节点在x维和y维两个方向的距离之和不为零,则设置虚拟维e,并利用虚拟维e、x维和y维,对二维Mesh网络进行虚拟子网络划分。
具体而言,本发明实施例事先可以在x维和y维两个方向上分别对目标数据包的源节点s至目的节点d的距离进行计算,并对这两个方向上的距离之和进行判断。若该加和不为零,则在原二维Mesh网络中x维和y维的基础上,增设第三个维度,即虚拟维e。该虚拟维e是一个虚拟的辅助的维度,而不是一个真实存在的物理维度。其可以是垂直于x维和y维的一个维度,也可以是与x维、y维构成的平面存在任意夹角的倾斜维度,也可以是其它能够将原本划分出的四个子区域分别一分为二的维度,其主要用途在于辅助划分数据包类型。即,通过将利用x维和y维划分出的四个子区域分别再次进行子区域划分,每个子区域会被进一步划分为两个虚拟子区域,从而得到八个虚拟子区域。对应每一个虚拟子区域,划分一种数据包类型,则不同的数据包将被对应划分到不同的数据包类型。
之后,利用原本的x维和y维,以及新增设的虚拟维e,重新对二维Mesh网络进行虚拟子网络划分,得到多个虚拟子网络。具体而言,首先利用原本的x维和y维,可将原始二维Mesh网络划分为四个不同的子网络。之后将四个子网络沿着e维方向在xoy平面之外进行延伸,并通过定义虚拟维e的正、负方向,将延伸的四个子网络进一步分别一分为二,得到八个对应的虚拟子网络。加入虚拟维e后的二维Mesh网络成为虚拟网络。
可以理解,利用原本的x维和y维,可以将二维Mesh网络最多划分为四个子区域,即构成四个子网络。增加虚拟维e,可利用e对原本划分出的子网络进行进一步划分,从而得到更多的子区域。由于采用了虚拟维e,可称这些新的子区域为虚拟子网络。
另外可选的,如果根据上述计算的x维和y维两个方向上的距离之和为零,则路由完成。
S102,对应划分出的各虚拟子网络,分别设置对应的数据包分类,并基于虚拟维e,合并虚拟子网络。
可以理解为,为更充分的利用虚拟网络中的各个通道,分别针对划分出的各个虚拟子网络,设置该虚拟子网络适合传输的数据包所属的类型,及数据包分类。这些分类与数据包的源节点和目的节点相关。例如,若进行虚拟子网络划分得到八个虚拟子网络,则分别对应这八个虚拟子网络,设置与之一一对应的八个数据包分类。
并且,由于引入了虚拟维e,该虚拟维e并不能在物理上实现真正的网络划分,且为了降低所需虚拟通道数目,提高虚拟通道利用率,根据各个虚拟子网络中的虚拟维e,将对应的虚拟子网络分别进行分组合并,合并结果得到多个合并后的虚拟子网络。根据上述说明可知,加入虚拟维e后,Mesh网络可以被划分为八个不同的虚拟子网络,则分别在e+和e-两个方向上,考虑x维、y维及e维的正交性,对八个虚拟子网络进行两两分组,并在各自分组内进行虚拟子网络合并,最终得到四个合并后的虚拟子网络。
如,首先可以将Mesh网络划分为八个虚拟子网络为:x+y+e+(1)、x+y+e-(2)、x+y-e+(3)、x+y-e-(4)、x-y+e+(5)、x-y+e-(6)、x-y-e+(7)和x-y-e-(8),其中包括e+方向的四个虚拟子网络x+y+e+(1)、x+y-e+(3)、x-y+e+(5)、x-y-e+(7)和e-方向的四个虚拟子网络x+y+e-(2)、x+y-e-(4)、x-y+e-(6)、x-y-e-(8)。在e+方向上,考虑y维和e维的正交性,分别将x+y+e+(1)、x+y-e+(3)和x-y+e+(5)、x-y-e+(7)分组合并,得到x+y*e+(1,3)和x-y*e+(5,7)两个合并的虚拟子网络。在e-方向上,考虑x维和y维的正交性,分别将x+y+e-(2)、x-y+e-(6)和x+y-e-(4)、x-y-e-(8)分组合并,得到x*y-e-(4,8)、x*y+e-(2,6)两个合并的虚拟子网络
S103,基于目标数据包的源节点和目的节点,确定目标数据包所属的数据包分类,并基于目标数据包所属的数据包分类,使目标数据包进入对应的合并后的虚拟子网络中路由。
最后,本发明实施例在上述步骤处理的基础上,控制目标数据包在虚拟网络中的路由。具体而言,首先通过目标数据包携带的信息,读取目标数据包的源节点和目的节点,并据此确定目标数据包所对应的数据包分类。之后,在确定目标数据包对应的数据包分类的基础上,可以根据该数据包分类,建立目标数据包与对应虚拟子网络的对应关系,并进一步建立目标数据包与合并后的虚拟子网络的对应关系。在据此确定了目标数据包对应的合并后的虚拟子网络的基础上,可控制目标数据包进入该合并后的虚拟子网络中路由。
本发明实施例提供的二维Mesh网络中数据包的自适应路由方法,通过在二维Mesh网络中设置虚拟维e,对二维Mesh网络进行子区域划分,可以使对二维Mesh网络的划分更细致,从而可以更充分地利用空闲的虚拟通道,提高二维Mesh网络的通道利用率,进而能够使数据传输效率相对现有算法实现较大的提升。
图2为本发明实施例提供的二维Mesh网络中数据包的自适应路由方法与现有Duato’s Protocol和EbDa算法的通道利用率对比示意图,图中示出在Uniform、Transpose和Hotspot三种数据包模式下根据本发明实施例的方法与现有算法的通道利用率对比情况。从图中可以看出,在三种模式下本发明实施例的算法均具有较为均衡的通道利用率,而DP的通道利用率极不均衡,EbDa的通道利用率也不均衡。由于数据包注入子网络中比较均衡,在通道利用上,相较现有的Duato’s Protocol和EbDa等算法本发明实施例有更均衡的通道利用率。
其中,根据上述各实施例可选的,对二维Mesh网络进行虚拟子网络划分的步骤具体包括:将二维Mesh网络划分为八个虚拟子网络如下:x+y+e+(1)、x+y+e-(2)、x+y-e+(3)、x+y-e-(4)、x-y+e+(5)、x-y+e-(6)、x-y-e+(7)和x-y-e-(8)。相应的,合并虚拟子网络的步骤具体包括:将上述八个虚拟子网络合并为四个合并后的虚拟子网络x*y-e-(4,8)、x*y+e-(2,6)、x-y*e+(5,7)和x+y*e+(1,3)。
上述合并后的虚拟子网络中e为虚拟维,则忽略虚拟维e,四个合并后的虚拟子网络可对应等效为:x*y-、x*y+、x-y*和x+y*。相应的,使目标数据包进入对应合并后的虚拟子网络中路由的步骤具体包括:
计算目标数据包的目的节点相对源节点在x维上的第一偏移和在y维上的第二偏移;
根据第一偏移和第二偏移,使目标数据包按如下规则,进入对应的合并后的虚拟子网络中路由:
若第一偏移和第二偏移均大于零,则使目标数据包进入合并后的虚拟子网络x*y+或者x+y*中路由;
若第一偏移大于零且第二偏移小于零,则使目标数据包进入合并后的虚拟子网络x*y-或者x+y*中路由;
若第一偏移小于零且第二偏移大于零,则使目标数据包进入合并后的虚拟子网络x*y+或者x-y*中路由;
若第一偏移和第二偏移均小于零,则使目标数据包进入合并后的虚拟子网络x*y-或者x-y*中路由。
可以理解,本发明实施例在控制数据包在各合并后的虚拟子网络中的路由时,首先分别计算数据包的目的节点d和源节点s在x维和y维上的偏移。即,需要计算目标数据包的目的节点相对源节点在x维上的偏移,称为第一偏移,以及目标数据包的目的节点相对源节点在y维上的偏移,称为第二偏移。
之后,根据第一偏移和第二偏移的取值正负,将目标数据包落入对应的合并后的虚拟子网络中路由,具体如下:
xoffset>0且yoffset>0的数据包可落入x*y+或者x+y*中路由;
xoffset>0且yoffset<0的数据包可落入x*y-或者x+y*中路由;
xoffset<0且yoffset>0的数据包可落入x*y+或者x-y*中路由;
xoffset<0且yoffset<0的数据包可落入x*y-或者x-y*中路由。
本发明实施例引入虚拟维e,将物理网络划分为8个虚拟子网络,合并为4个合并后的虚拟子网络x*y-e-、x*y+e-、x-y*e+和x+y*e+。通过选择适当的虚拟网络,为所有数据包提供完全的自适应性。与现有路由算法相比,可实现公共虚拟通道由单独的虚拟网络共享,从而可减少所需的虚拟通道数。因此数据包可以从另一个虚拟网络中借用虚拟通道,并最终返回原始虚拟网络,以使得能够在不引入任何路由死锁的情况下实现更多的路由适应性从而公平地使用虚拟通道缓冲器。
在上述各实施例的基础上,在合并虚拟子网络的步骤之后,本发明实施例的方法还可以包括:x维上的每条物理通道被划分为两条虚拟通道cx,1和cx,2,y维上的每条物理通道被划分为两条虚拟通道cy,1和cy,2,对于四个合并后的虚拟子网络,分配以下虚拟通道:x*y-(cx,1,cy,1-)、x*y+(cx,1,cy,1+)、x-y*(cx,2-,cy,2)和x+y*(cx,2+,cy,2),前两个虚拟子网络沿着维度x被分配相同的虚拟通道cx,1,后两个虚拟子网络沿着维度y被分配相同的虚拟通道cy,2。
可以理解,根据上述各实施例,把二维Mesh网络划分为八个虚拟子网络,合并后成为四个合并后的虚拟子网络x*y-e-(4,8)、x*y+e-(2,6)、x-y*e+(5,7)和x+y*e+(1,3),其中e为虚拟维,因此可以省略,则合并后的四个虚拟子网络对应为x*y-(4,8)、x*y+(2,6)、x-y*(5,7)和x+y*(1,3),简化为x*y+、x*y-、x+y*和x-y*。
则在此基础上,x维上的两条物理通道每条被划分为两条虚拟通道cx,1和cx,2,y维上的两条物理通道每条也被划分为两条虚拟通道cy,1和cy,2。对于上述四个合并的虚拟子网络中的x通道和y通道,有以下虚拟通道分配:x*y-(cx,1,cy,1-),x*y+(cx,1,cy,1+),x-y*(cx,2-,cy,2)和x+y*(cx,2+,cy,2)。其中前两个合并后的虚拟子网络x*y+、x*y-沿着维度x被分配相同的虚拟通道cx,1,后两个合并后的虚拟子网络x+y*和x-y*沿着维度y被分配相同的虚拟通道cy,2。
在上述各实施例的基础上,在使目标数据包进入对应的合并后的虚拟子网络中路由的步骤之前,本发明实施例的方法还可以包括:设置数据包在合并后的虚拟子网络中路由的无死锁路由算法规则。相应的,基于目标数据包所属的数据包分类和无死锁路由算法规则,使目标数据包进入对应的合并后的虚拟子网络中,进行无死锁完全自适应路由。
具体而言,为避免数据包在二维Mesh网络中路由过程中产生死锁、活锁及饿死现象,本发明实施例事先根据实际二维Mesh网络路由中易出现死锁情形,设置对应的无死锁路由算法规则。该无死锁路由算法规则可对数据包在各合并后的虚拟子网络中的路由进行限制,如限制相应数据包在相应转弯处的路由等。则相应的,在进行路由选择时,会综合考虑目标数据包的数据包分类情况和无死锁路由算法规则,使目标数据包进入到对应的合并后的虚拟子网络中路由,实现路由算法的无死锁和安全自适应性。
本发明实施例提供的二维Mesh网络中数据包的自适应路由方法,通过事先设置无死锁路由算法规则,对数据包在二维Mesh网络中的路由进行相关限制,可在避免网络产生死锁、活锁及饿死现象的同时,充分利用空闲的虚拟通道,数据传输效率相对现有算法有较大提升。
其中,根据上述各实施例可选的,对应八个虚拟子网络x+y+e+(1)、x+y+e-(2)、x+y-e+(3)、x+y-e-(4)、x-y+e+(5)、x-y+e-(6)、x-y-e+(7)和x-y-e-(8),分别设置对应的数据包分类为第1、2...、8类。相应的,对无死锁路由算法规则作如下设置:
1)第一组合并后的虚拟子网络(x*y+与x*y-)中的第2类数据包禁止右向上转弯;
2)第二组合并后的虚拟子网络(x+y*与x-y*)中的第5类数据包禁止左向上转弯;
3)第二组合并后的虚拟子网络(x+y*与x-y*)中的第3类数据包在进行下向右转弯时,先变换通道转入第一组合并后的虚拟子网络,并在随后返回y方向路由时,再次变换通道返回第二组合并后的虚拟子网络;
4)第一组合并后的虚拟子网络(x*y+与x*y-)中的第8类数据包在进行下向左转弯时,先变换通道转入第二组合并后的虚拟子网络,并在随后返回y方向路由时,再次变换通道返回第一组合并后的虚拟子网络。
可以理解,根据上述各实施例,为简化流程,本发明实施例将合并虚拟子网络后得到的四个合并后的虚拟子网络分为了两组,第一组包含合并后的虚拟子网络x*y+与x*y-,第二组包含合并后的虚拟子网络x+y*与x-y*。也即根据虚拟维e,将这四个合并后的虚拟子网络分为e+和e-两个子集,即两个组,不同子集所使用的通道不同。
并且,根据上述各实施例,可对划分出的八个虚拟子网络x+y+e+(1)、x+y+e-(2)、x+y-e+(3)、x+y-e-(4)、x-y+e+(5)、x-y+e-(6)、x-y-e+(7)和x-y-e-(8)分别设置对应的数据包分类,并将这些数据包分类依次命名为第1类、第2类、...、第7类和第8类。该数据包分类代表一种数据包类型。
于是,本发明实施例可对目标数据包在各合并后的虚拟子网络中路由的转弯进行限制,即通过设置对应的无死锁路由算法规则,来限制相应类型的数据包在对应转弯处的路由许可。具体可包括上述的1)至4)四种情形。另外,对于其余的数据包类型在其余转弯情形下的路由,无需作特殊处理,可完全自适应路由。
本发明实施例将二维Mesh网络划分为四个虚拟子网络,它们可分成两个子集,所有数据包都可以在二维Mesh网络的每个子集中传递。虚拟子网络内部均采用最短路径的完全自适应路由算法和新的虚拟网络路由规则,通过为小部分数据包设置一些禁止的转弯以及特殊转弯,打破潜在的循环通道依赖从而避免死锁。
本发明实施例提供的二维Mesh网络中数据包的自适应路由算法是无死锁的,这一功能可以通过绘制通道依赖图检查是否存在环依赖的方式来证明。如图3所示,为根据本发明实施例提供的二维Mesh网络中数据包的自适应路由方法绘制的通道依赖图,图3(a)和图3(b)分别为本发明实施例虚拟网络划分针对顺时针通道和逆时针通道的禁止转弯及限制转弯设置示意图。图3(c)为顺时针方向通道依赖图,由于特殊转弯的存在致使该图是连通的,由于禁止转弯的存在致使不存在c->d的通道依赖,因此顺时针方向通道依赖图不存在环。图3(d)为逆时针方向通道依赖图,由于特殊转弯的存在致使图是连通的,由于禁止转弯的存在,致使不存在g’->f’的通道依赖,因此逆时针方向通道依赖图也不存在环,因此算法是无死锁的。
在上述各实施例的基础上,在使目标数据包进入对应的合并后的虚拟子网络中路由的步骤之前,本发明实施例的方法还可以包括:根据二维Mesh网络中的故障点状态,设置每个合并后的虚拟子网络的安全区域。相应的,基于目标数据包的数据包分类和安全区域,使目标数据包进入对应的合并后的虚拟子网络中,进行容错完全自适应路由。
可以理解,本发明实施例还对每个合并后的虚拟子网络的安全状态进行监测,区分出安全区域和非安全区域。具体在进行安全区域和非安全区域的划分时,通过识别二维Mesh网络中各节点的故障状态来实现。即,首先检测各节点的故障状态,判断其属于故障节点或者为非故障节点,并根据检测的结果,设置对应区域为安全区域或者非安全区域。则相应的,在进行路由选择时,会综合考虑目标数据包的数据包分类情况和设置的安全区域,使目标数据包进入到对应的合并后的虚拟子网络中路由,实现路由算法的容错性和安全自适应性。
本发明实施例提供的二维Mesh网络中数据包的自适应路由方法,根据二维Mesh网络中各节点的故障情况,在各虚拟子网络中独立设置安全区域,可在安全区域内按照非容错算法完全自适应路由,在非安全区域无安全路径可走的情况下,根据当前路由情况绕道并转换到对应的虚拟子网络中继续路由,能够更好的避免路由错误甚至系统崩溃。
其中,根据上述各实施例可选的,设置每个合并后的虚拟子网络的安全区域的步骤具体包括:针对每个合并后的虚拟子网络,若任一无故障节点在该合并后的虚拟子网络中沿着x维和y维方向存在最多一个相邻的故障节点,则将该无故障节点标记为安全节点;基于标记出的所有安全节点,设置安全区域。
具体而言,本发明实施例在进行二维Mesh网络中安全区域的设置时,分别针对每个合并后的虚拟子网络独立进行。即,针对每个合并后的虚拟子网络,分别独立检测其中所有节点的安全状态。具体对于一个无故障节点,在当前合并后的虚拟子网络中检测其沿着x维和y维方向上存在的相邻的故障节点或称为不安全节点,若这两个方向上存在的相邻故障节点数之和最多不超过一个,则标记该节点为安全节点。否则可标记该节点为不安全节点。则可进一步设置所有安全节点所在的区域为安全区域。
本发明实施例通过分别检测各合并后的虚拟子网络中所有节点的故障状态,能够准确且完整的获取二维Mesh网络中的安全区域,实现更好的容错,从而更有效的避免路由中断。
其中,在根据上述各实施例的无容错完全自适应路由处理中,在目标数据包根据上述各实施例的规则进入对应的合并后的虚拟子网络x*y-、x*y+、x-y*或x+y*中路由时,根据目标数据包所进入的合并后的虚拟子网络的不同,本发明实施例会分别对应进行不同的无死锁完全自适应路由处理。
具体而言,本发明实施例事先会对目标数据包的目的节点d相对源节点s在x维上的第一偏移xoffset和在y维上的第二偏移yoffset进行计算,计算公式如下:xoffset=xd-xs,yoffset=yd-ys。其中xd和xs分别表示目标数据包的目的节点和源节点在x维上的坐标,yd和ys分别表示目标数据包的目的节点和源节点在y维上的坐标。则按目标数据包分别进入合并后的虚拟子网络x*y-、x*y+、x-y*或x+y*中的四种情况,分别对目标数据包在二维Mesh网络中的无死锁无容错路由流程说明如下。
其一,在目标数据包进入x*y-中路由时,根据上述各实施例的目标数据包在二维Mesh网络中进行无死锁完全自适应路由的步骤具体如下:
在目标数据包到达x*y-中任一节点时,根据目标数据包的目的节点d相对源节点s在x维上的第一偏移xoffset和在y维上的第二偏移yoffset的取值,结合如下规则和无死锁路由算法规则,控制目标数据包在二维Mesh网络中路由:
如果xoffset<0并且yoffset<0,当数据包已经占用通道cy,1-时,可以使用cx,2-和cy,1-其中一条通道;
如果xoffset<0并且yoffset<0,当数据包已经占用通道cx,1-时,可以使用cx,1-和cy,1-其中一条通道;
如果xoffset<0并且yoffset<0,当数据包已经占用通道cx,2-时,可以使用cx,2-和cy,1-其中一条通道;
如果xoffset>0并且yoffset<0,可以使用cx,1+和cy,1-其中一条通道;
如果xoffset=0并且yoffset<0,使用cy,1-通道;
如果xoffset>0并且yoffset=0,使用cx,1+通道;
如果xoffset<0并且yoffset=0,若数据包为第8类数据包且占用cy,1-或者cx,2-时,可以使用cx,2-通道,否则使用cx,1-通道。
其二,在目标数据包进入x*y+中路由时,根据上述各实施例的目标数据包在二维Mesh网络中进行无死锁完全自适应路由的步骤具体如下:
在目标数据包到达x*y+中任一节点时,根据上述第一偏移xoffset与第二偏移yoffset的取值,结合如下规则和无死锁路由算法规则,控制目标数据包在二维Mesh网络中路由:
如果xoffset>0并且yoffset>0,当数据包已经占用通道cx,1+时,仅可以使用cx,1+通道,否则若占用cy,1+时,可使用cx,1+和cy,1+中任一条通道;
如果xoffset<0并且yoffset>0,可以使用cx,1-和cy,1+其中一条通道路由;
如果xoffset=0并且yoffset>0,使用cy,1+通道路由;
如果xoffset<0并且yoffset=0,使用cx,1-通道路由;
如果xoffset>0并且yoffset=0,使用cx,1+通道路由。
其三,在目标数据包进入x-y*中路由时,根据上述各实施例的目标数据包在二维Mesh网络中进行无死锁完全自适应路由的步骤具体包括:
在目标数据包到达x-y*中任一节点时,根据上述第一偏移xoffset与第二偏移yoffset的取值,结合如下规则和无死锁路由算法规则,控制目标数据包在二维Mesh网络中路由:
如果xoffset<0并且yoffset>0,当数据包已经占用通道cx,2-时,仅可以使用cx,2-通道,否则若占用cy,2+时,可以使用cx,2-和cy,2+其中一条通道;
如果xoffset<0并且yoffset<0,可以使用cx,2-和cy,2-其中一条通道;
如果xoffset=0并且yoffset>0,使用cy,2+通道;
如果xoffset=0并且yoffset<0,使用cy,2-通道;
如果xoffset<0并且yoffset=0,使用cx,2-通道路由。
其四,在目标数据包进入x+y*中路由时,根据上述各实施例的目标数据包在二维Mesh网络中进行无死锁完全自适应路由的步骤具体包括:
在目标数据包到达x+y*中任一节点时,根据上述第一偏移xoffset与第二偏移yoffset的取值,结合如下规则和无死锁路由算法规则,控制目标数据包在二维Mesh网络中路由:
如果xoffset>0并且yoffset<0,当数据包已经占用通道cy,2-时,可以使用cx,1+和cy,2-其中一条通道;
如果xoffset>0并且yoffset<0,当数据包类型为第3类并且已经占用通道cx,2+时,可以使用cx,2+和cy,2-其中一条通道;
如果xoffset>0并且yoffset<0,当数据包已经占用通道cx,1+时,可以使用cx,1+和cy,2-其中一条通道;
如果xoffset>0并且yoffset>0,可以使用cx,2+和cy,2+其中一条通道;
如果xoffset=0并且yoffset<0,使用cy,2-通道;
如果xoffset>0且yoffset=0,当数据包占用cy,2-或cx,1+,使用cx,1+通道,否则若未占用,则使用cx,2+通道。
为说明本发明实施例算法的有效性,本发明实施例通过仿真试验,将本发明实施例的算法与现有算法的性能进行比较验证。发明实施例的算法基于2维8x8的Mesh网络,采用虚拟直通交换方式进行模拟仿真。现有Duato’s Protocol则采用维序路由作为基线路由算法。仿真结果表明,本发明实施例的算法在时效性能上优于现有的Duato’s Protocol和Footprint算法,在吞吐量性能上优于现有Duato’s Protocol和EbDa算法。
如图4所示,为本发明实施例提供的二维Mesh网络中数据包的自适应路由方法与现有算法在benchmark下的效果提升比对示意图。图中由左至右三部分分别表示本发明实施例的算法与现有Duato’s Protocol算法在使用2条虚拟通道情况下、与现有EbDa算法在使用2条虚拟通道情况下以及与现有FootPrint算法在使用4条虚拟通道情况下的Netracesbenchmark效果提升比对示意图,Overlap代表本发明实施例的算法。由图可见,在这三种情况下,本发明实施例的算法比现有算法在网络平均时延上均有较大提升。
综上的仿真结果和Parsec基准测试结果表明,本发明实施例的路由算法比现有的几种路由算法具有更好的性能。
与无容错算法类似的,本发明实施例在根据上述各实施例的容错完全自适应路由处理中,在目标数据包根据上述各实施例的规则进入对应的合并后的虚拟子网络x*y-、x*y+、x-y*或x+y*中路由时,根据目标数据包所进入的合并后的虚拟子网络的不同,本发明实施例会分别对应进行不同的容错完全自适应路由处理。
同样的,本发明实施例事先也会对目标数据包的目的节点相对源节点在x维上的第一偏移xoffset和在y维上的第二偏移yoffset进行计算,计算公式分别如下:xoffset=xd-xs,yoffset=yd-ys。其中,xd和xs分别表示目标数据包的目的节点和源节点在x维上的坐标,yd和ys分别表示目标数据包的目的节点和源节点在y维上的坐标。则按照目标数据包分别进入合并后的虚拟子网络x*y-、x*y+、x-y*或x+y*中路由的四种情况,分别对目标数据包在二维Mesh网络中的容错路由流程说明如下。
其一,在目标数据包进入x*y-路由时,根据上述各实施例的目标数据包在二维Mesh网络中进行容错完全自适应路由的步骤具体如下:
在目标数据包到达x*y-中任一节点时,根据目标数据包的目的节点相对源节点在x维上的第一偏移xoffset和在y维上的第二偏移yoffset的取值,结合如下规则和安全区域,控制目标数据包在二维Mesh网络中路由:
如果xoffset<0并且yoffset<0,当数据包已经占用通道cy,1-时,当前节点沿着x-和y-两个方向的两条最短路径都是安全时可以使用cx,2-和cy,1-其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset<0并且yoffset<0,当数据包已经占用通道cx,1-时,当前节点沿着x-和y-两个方向的两条最短路径都是安全时可以使用cx,1-和cy,1-其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset<0并且yoffset<0,当数据包已经占用通道cx,2-时,当前节点沿着x-和y-两个方向的两条最短路径都是安全时可以使用cx,2-和cy,1-其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset>0并且yoffset<0,当前节点沿着x-和y-两个方向的两条最短路径都是安全时可以使用cx,1+和cy,1-其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset=0并且yoffset<0,仅当当前节点沿着y-方向的最短路径安全时可以使用cy,1-通道;
如果xoffset>0并且yoffset=0,仅当当前节点沿着x+方向的最短路径安全时可以使用cx,1+通道;
如果xoffset<0并且yoffset=0,当数据包为第8类数据包且占用cy,1-或者cx,2-时,仅当当前节点沿着x-方向的最短路径安全时可以使用cx,2-通道,否则当路径安全时可以使用cx,1-通道。
如果可用的最短路径都是不安全的,当数据包占用x通道则转到虚拟子网络x*y+中路由,如果数据包占用y通道,则沿着x方向绕道转发直到y-通道可用为止,沿着y-方向最短路径路由。
可以理解的是,本发明实施例中描述的最短路径是不安全的,即是指该最短路径中包含的所有节点不都是在上述设置的安全区域的。对应的,最短路径是安全的即是指该最短路径中包含的所有节点均是属于安全区域的节点。
其二,在目标数据包进入x*y+路由时,根据上述各实施例的目标数据包在二维Mesh网络中进行容错完全自适应路由的步骤具体包括:
在目标数据包到达x*y+中任一节点时,根据上述第一偏移xoffset与第二偏移yoffset的取值,结合如下规则和安全区域,控制目标数据包在二维Mesh网络中路由:
如果xoffset>0并且yoffset>0,当数据包已经占用通道cx,1+时,仅当当前节点沿着x-和y+两个方向的两条最短路径均安全时可以使用cx,1+通道,否则两条最短路径都是安全时可以使用cx,1+和cy,1+其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset<0并且yoffset>0,当前节点沿着x-和y+两个方向的两条最短路径都是安全时可以使用cx,1-和cy,1+其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset=0并且yoffset>0,仅当当前节点沿着y+方向的最短路径安全时可以使用cy,1+通道;
如果xoffset<0并且yoffset=0,仅当当前节点沿着x-方向的最短路径安全时可以使用cx,1-通道;
如果xoffset>0并且yoffset=0,仅当当前节点沿着x+方向的最短路径安全时可以使用cx,1+通道。
如果可用的最短路径都是不安全的,当数据包占用x通道则转到虚拟子网络x*y-中路由,如果数据包占用y通道则沿着x方向绕道转发直到y+通道可用为止,沿着y+方向最短路径路由。
其三,在目标数据包进入x-y*路由时,根据上述各实施例的目标数据包在二维Mesh网络中进行容错完全自适应路由的步骤具体包括:
在目标数据包到达x-y*中任一节点时,根据上述第一偏移xoffset与第二偏移yoffset的取值,结合如下规则和安全区域,控制目标数据包在二维Mesh网络中路由:
如果xoffset<0且yoffset>0,当数据包已经占用通道cx,2-时,仅当路径安全时可以使用cx,2-通道,否则当前节点沿着x-和y+两个方向的两条最短路径都是安全时可以使用cx,2-和cy,2+其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset<0且yoffset<0,当前节点沿着x-和y-两个方向的两条最短路径都是安全时可以使用cx,2-和cy,2-其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset=0且yoffset>0,如果当前节点沿着y+方向的最短路径是安全的,则使用cy,2+通道;
如果xoffset=0且yoffset<0,如果当前节点沿着y-方向的最短路径是安全的,则使用cy,2-通道;
如果xoffset<0且yoffset=0,如果当前节点沿着x-方向的最短路径是安全的,则使用cx,2-通道。
如果可用的最短路径都是不安全的,当数据包占用y通道则转到虚拟子网络x+y*中路由,如果数据包占用x通道则沿着y方向绕道转发直到x-通道可用为止,沿着x-方向最短路径路由。
其四,在目标数据包进入x+y*路由时,根据上述各实施例的目标数据包在二维Mesh网络中进行容错完全自适应路由的步骤具体包括:
在目标数据包到达x+y*中任一节点时,根据上述第一偏移xoffset与第二偏移yoffset的取值,结合如下规则和安全区域,控制目标数据包在二维Mesh网络中路由:
如果xoffset>0且yoffset<0,当数据包已经占用通道cy,2-,当前节点沿着x+和y-两个方向的两条最短路径都是安全时,可以使用cx,1+和cy,2-其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset>0且yoffset<0,当数据包类型为第3类并且已经占用通道cx,2+,当前节点沿着x+和y-两个方向的两条最短路径都是安全时,可以使用cx,2+和cy,2-其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset>0且yoffset<0,当数据包已经占用通道cx,1+时,可以使用cx,1+和cy,2-其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset>0且yoffset>0,可以使用cx,2+和cy,2+其中一条通道,如果有一条最短路径是不安全的,则使用另一条路径;
如果xoffset=0且yoffset<0,如果当前节点沿着y-方向的最短路径是安全的,则使用cy,2-通道;
如果xoffset>0且yoffset=0,当数据包占用cy,2-或cx,1+,当前节点沿着x+方向的最短路径安全时使用cx,1+通道,否则若未占用且路径安全时使用cx,2+通道。
如果可用的最短路径都是不安全的,当数据包占用y通道则转到虚拟子网络x-y*中路由,如果数据包占用x通道则沿着y方向绕道转发直到x+通道可用为止,沿着x+方向最短路径路由。
为说明本发明实施例算法的有效性,本发明实施例通过仿真试验,将本发明实施例的算法与现有算法的性能进行比较验证。如图5所示,为本发明实施例提供的二维Mesh网络中数据包的自适应路由方法与现有Immunet算法在故障情况下的性能对比示意图,其中,图5(a)为本发明实施例的容错算法与现有的Immunet算法在故障情况下的Netracesbenchmark效果提升对比示意图,图5(b)为本发明实施例的容错算法在网络故障率上升情况下的数据包传输时延和吞吐量示意图。
图5(a)中Overlap_FT代表本发明实施例的容错算法,从图中可以看出,故障情况下,本发明实施例的算法针对PARSEC标准比Immunet算法在网络平均时延上有较大提升。图5(b)中故障率从1%的故障点和1%故障链路递增到5%的故障点和5%故障链路。从图中可以看出,随着故障率上升,数据包平均时延先是缓慢增长最终加速,网络吞吐量基本稳定,在最后才有所下降。
上述仿真结果和Parsec基准测试结果表明,本发明实施例提供的容错路由算法在数据传输效率上优于现有的Immunet算法,比现有的路由算法具有更好的性能。
另外可以理解的是,本发明实施例的上述无死锁路由算法可以与容错路由算法进行结合,结果得到一种无死锁容错路由算法,具体需在进行路由规则的设置时,将上述无死锁路由算法与容错路由算法的路由规则进行结合。试验结果标明,本发明实施例结合得到的无死锁容错路由算法是无死锁,这一点也可用反证法来证明。
假设存在逆时针循环通道依赖,如图6所示,为根据本发明实施例提供的二维Mesh网络中数据包的自适应路由方法构成的虚拟网络算法示意图,对于如图6(a)所示的特殊转弯,第3类数据包请求一个cx,1+通道,该数据包已占用一个cy,2-通道。由于图6(a)禁止转弯的约束,cx,1-通道上的数据包只能请求cx,1+、cy,1-或cy,2-。假设任何故障块都不破坏二维Mesh网络的边界,可以建立沿y-方向的通道依赖链,直到到达底边界或最右边界。这与假设相冲突,因此不能建立逆时针循环通道依赖性。
假设存在顺时针循环通道依赖,占用cy,1-通道的第8类数据包由于图6(b)特殊转弯而请求cx,2-通道。由于图6(b)禁止转弯的约束,cx,2-通道上的数据包只能请求cx,2-、cy,1-或cy,2-。如上所述,任何故障块都不会破坏二维Mesh网络的边界。可以建立沿y-方向的通道依赖链,直到到达底边界或最左边界。这与假设相冲突,因此不能建立顺时针循环通道依赖性。
为了保证路由算法是完全适应性的,图6(a)中的第2类消息没有插入虚拟子网络x*y+及x*y-中,而是插入虚拟子网络x+y*及x-y*中;图6(b)中的第5类消息没有插入虚拟子网络x-y*及x+y*中,而是插进虚拟子网络x*y+及x*y-中。上述处理第2及第5类消息可实现完全适应性无死锁路由。
作为本发明实施例的另一个方面,本发明实施例根据上述各实施例提供一种二维Mesh网络中数据包的自适应路由装置,该装置用于在上述各实施例中实现二维Mesh网络中数据包的自适应路由。因此,在上述各实施例的二维Mesh网络中数据包的自适应路由方法中的描述和定义,可以用于本发明实施例中各个执行模块的理解,具体可参考上述实施例,此处不在赘述。
根据本发明实施例的一个实施例,二维Mesh网络中数据包的自适应路由装置的结构如图7所示,为本发明实施例提供的二维Mesh网络中数据包的自适应路由装置的结构示意图,该装置可以用于实现上述各方法实施例中二维Mesh网络中数据包的自适应路由,该装置包括:子网络划分模块701、分类设置与子网络合并模块702和路由控制模块703。其中:
子网络划分模块701用于若目标数据包的源节点至目的节点在x维和y维两个方向的距离之和不为零,则设置虚拟维e,并利用虚拟维e、x维和y维,对二维Mesh网络进行虚拟子网络划分;分类设置与子网络合并模块702用于对应划分出的各虚拟子网络,分别设置对应的数据包分类,并基于虚拟维e,合并虚拟子网络;路由控制模块703用于基于目标数据包的源节点和目的节点,确定目标数据包所属的数据包分类,并基于目标数据包所属的数据包分类,使目标数据包进入对应的合并后的虚拟子网络中路由。
具体而言,本发明实施例事先可以在x维和y维两个方向上分别对目标数据包的源节点s至目的节点d的距离进行计算,并对这两个方向上的距离之和进行判断。子网络划分模块701根据判断结果,进行虚拟子网络划分操作。即,若该加和不为零,则在原二维Mesh网络中x维和y维的基础上,增设第三个维度,即虚拟维e。之后,子网络划分模块701利用原本的x维和y维,以及新增设的虚拟维e,重新对二维Mesh网络进行虚拟子网络划分,得到多个虚拟子网络。加入虚拟维e后的二维Mesh网络成为虚拟网络。另外可选的,如果根据上述计算的x维和y维两个方向上的距离之和为零,则路由完成。
之后,为更充分的利用虚拟网络中的各个通道,分类设置与子网络合并模块702分别针对划分出的各个虚拟子网络,设置该虚拟子网络适合传输的数据包所属的类型,及数据包分类。这些分类与数据包的源节点和目的节点相关。例如,若进行虚拟子网络划分得到八个虚拟子网络,则分别对应这八个虚拟子网络,设置与之一一对应的八个数据包分类。
并且,根据各个虚拟子网络中的虚拟维e,分类设置与子网络合并模块702将对应的虚拟子网络分别进行分组合并,合并结果得到多个合并后的虚拟子网络。
最后,路由控制模块703在上述步骤处理的基础上,控制目标数据包在虚拟网络中的路由。具体而言,路由控制模块703首先通过目标数据包携带的信息,读取目标数据包的源节点和目的节点,并据此确定目标数据包所对应的数据包分类。之后,在确定目标数据包对应的数据包分类的基础上,路由控制模块703可以根据该数据包分类,建立目标数据包与对应虚拟子网络的对应关系,并进一步建立目标数据包与合并后的虚拟子网络的对应关系。在据此确定了目标数据包对应的合并后的虚拟子网络的基础上,路由控制模块703可控制目标数据包进入该合并后的虚拟子网络中路由。
本发明实施例提供的二维Mesh网络中数据包的自适应路由装置,通过设置相应的执行模块,在二维Mesh网络中设置虚拟维e,对二维Mesh网络进行子区域划分,可以使对二维Mesh网络的划分更细致,从而可以更充分地利用空闲的虚拟通道,提高二维Mesh网络的通道利用率,进而能够使数据传输效率相对现有算法实现较大的提升。
可以理解的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现上述各实施例的装置中的各相关程序模块。并且,本发明实施例的二维Mesh网络中数据包的自适应路由装置利用上述各程序模块,能够实现上述各方法实施例的二维Mesh网络中数据包的自适应路由流程,在用于实现上述各方法实施例中二维Mesh网络中数据包的自适应路由时,本发明实施例的装置产生的有益效果与对应的上述各方法实施例相同,可以参考上述各方法实施例,此处不再赘述。
作为本发明实施例的又一个方面,本实施例根据上述各实施例提供一种电子设备,参考图8,为本发明实施例提供的电子设备的实体结构示意图,包括:至少一个存储器801、至少一个处理器802、通信接口803和总线804。
其中,存储器801、处理器802和通信接口803通过总线804完成相互间的通信,通信接口803用于该电子设备与二维Mesh网络设备之间的信息传输;存储器801中存储有可在处理器802上运行的计算机程序,处理器802执行该计算机程序时,实现如上述各实施例所述的二维Mesh网络中数据包的自适应路由方法。
可以理解为,该电子设备中至少包含存储器801、处理器802、通信接口803和总线804,且存储器801、处理器802和通信接口803通过总线804形成相互间的通信连接,并可完成相互间的通信,如处理器802从存储器801中读取二维Mesh网络中数据包的自适应路由方法的程序指令等。另外,通信接口803还可以实现该电子设备与二维Mesh网络设备之间的通信连接,并可完成相互间信息传输,如通过通信接口803实现二维Mesh网络中数据包的自适应路由等。
电子设备运行时,处理器802调用存储器801中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:若目标数据包的源节点至目的节点在x维和y维两个方向的距离之和不为零,则设置虚拟维e,并利用虚拟维e、x维和y维,对二维Mesh网络进行虚拟子网络划分;对应划分出的各虚拟子网络,分别设置对应的数据包分类,并基于虚拟维e,合并虚拟子网络;基于目标数据包的源节点和目的节点,确定目标数据包所属的数据包分类,并基于目标数据包所属的数据包分类,使目标数据包进入对应的合并后的虚拟子网络中路由等。
上述的存储器801中的程序指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。或者,实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还根据上述各实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行如上述各实施例所述的二维Mesh网络中数据包的自适应路由方法,例如包括:若目标数据包的源节点至目的节点在x维和y维两个方向的距离之和不为零,则设置虚拟维e,并利用虚拟维e、x维和y维,对二维Mesh网络进行虚拟子网络划分;对应划分出的各虚拟子网络,分别设置对应的数据包分类,并基于虚拟维e,合并虚拟子网络;基于目标数据包的源节点和目的节点,确定目标数据包所属的数据包分类,并基于目标数据包所属的数据包分类,使目标数据包进入对应的合并后的虚拟子网络中路由等。
本发明实施例提供的电子设备和非暂态计算机可读存储介质,通过执行上述各实施例所述的二维Mesh网络中数据包的自适应路由方法,在二维Mesh网络中设置虚拟维e,对二维Mesh网络进行子区域划分,可以使对二维Mesh网络的划分更细致,从而可以更充分地利用空闲的虚拟通道,提高二维Mesh网络的通道利用率,进而能够使数据传输效率相对现有算法实现较大的提升。
可以理解的是,以上所描述的装置、电子设备及存储介质的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。
另外,本领域内的技术人员应当理解的是,在本发明实施例的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例的说明书中,说明了大量具体细节。然而应当理解的是,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明实施例公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。
最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。
Claims (10)
1.一种二维Mesh网络中数据包的自适应路由方法,其特征在于,包括:
若目标数据包的源节点至目的节点在x维和y维两个方向的距离之和不为零,则设置虚拟维e,并利用所述虚拟维e、所述x维和所述y维,对所述二维Mesh网络进行虚拟子网络划分;
对应划分出的各所述虚拟子网络,分别设置对应的数据包分类,并基于所述虚拟维e,合并所述虚拟子网络;
基于所述目标数据包的源节点和目的节点,确定所述目标数据包所属的数据包分类,并基于所述目标数据包所属的数据包分类,使所述目标数据包进入对应的合并后的虚拟子网络中路由。
2.根据权利要求1所述的方法,其特征在于,所述对所述二维Mesh网络进行虚拟子网络划分的步骤具体包括:将所述二维Mesh网络划分为八个所述虚拟子网络如下:x+y+e+(1)、x+y+e-(2)、x+y-e+(3)、x+y-e-(4)、x-y+e+(5)、x-y+e-(6)、x-y-e+(7)和x-y-e-(8);
相应的,所述合并所述虚拟子网络的步骤具体包括:将八个所述虚拟子网络合并为四个所述合并后的虚拟子网络如下:x*y-e-(4,8)、x*y+e-(2,6)、x-y*e+(5,7)和x+y*e+(1,3);忽略所述虚拟维e,四个所述合并后的虚拟子网络对应等效为:x*y-、x*y+、x-y*和x+y*;
则相应的,所述使所述目标数据包进入对应的合并后的虚拟子网络中路由的步骤具体包括:
计算所述目标数据包的目的节点相对源节点在所述x维上的第一偏移和在所述y维上的第二偏移;
根据所述第一偏移和所述第二偏移,使所述目标数据包按如下规则,进入对应的合并后的虚拟子网络中路由:
若所述第一偏移和所述第二偏移均大于零,则使所述目标数据包进入合并后的虚拟子网络x*y+或者x+y*中路由;
若所述第一偏移大于零且所述第二偏移小于零,则使所述目标数据包进入合并后的虚拟子网络x*y-或者x+y*中路由;
若所述第一偏移小于零且所述第二偏移大于零,则使所述目标数据包进入合并后的虚拟子网络x*y+或者x-y*中路由;
若所述第一偏移和所述第二偏移均小于零,则使所述目标数据包进入合并后的虚拟子网络x*y-或者x-y*中路由。
3.根据权利要求2所述的方法,其特征在于,在所述合并所述虚拟子网络的步骤之后,还包括:
将所述x维上的每条物理通道划分为两条虚拟通道cx,1和cx,2,将所述y维上的每条物理通道划分为两条虚拟通道cy,1和cy,2;
对于四个所述合并后的虚拟子网络x*y-、x*y+、x-y*和x+y*,分别对应分配以下虚拟通道:(cx,1,cy,1-)、(cx,1,cy,1+)、(cx,2-,cy,2)和(cx,2+,cy,2),其中,x*y-和x*y+沿着维度x被分配相同的虚拟通道cx,1,x-y*和x+y*沿着维度y被分配相同的虚拟通道cy,2。
4.根据权利要求3所述的方法,其特征在于,在所述使所述目标数据包进入对应的合并后的虚拟子网络中路由的步骤前,还包括:设置数据包在所述合并后的虚拟子网络中路由的无死锁路由算法规则;
相应的,基于所述目标数据包所属的数据包分类和所述无死锁路由算法规则,使所述目标数据包进入对应的合并后的虚拟子网络中,进行无死锁完全自适应路由。
5.根据权利要求3所述的方法,其特征在于,在所述使所述目标数据包进入对应的合并后的虚拟子网络中路由的步骤之前,还包括:根据所述二维Mesh网络中的故障点状态,设置每个所述合并后的虚拟子网络的安全区域;
相应的,基于所述目标数据包所属的数据包分类和所述安全区域,使所述目标数据包进入对应的合并后的虚拟子网络中,进行容错完全自适应路由。
6.根据权利要求4所述的方法,其特征在于,对应八个所述虚拟子网络x+y+e+(1)、x+y+e-(2)、x+y-e+(3)、x+y-e-(4)、x-y+e+(5)、x-y+e-(6)、x-y-e+(7)和x-y-e-(8),分别设置对应的数据包分类为第1、2...、8类;
相应的,对所述无死锁路由算法规则作如下设置:
1)第一组所述合并后的虚拟子网络(x*y+与x*y-)中的第2类数据包禁止右向上转弯;
2)第二组所述合并后的虚拟子网络(x+y*与x-y*)中的第5类数据包禁止左向上转弯;
3)第二组所述合并后的虚拟子网络(x+y*与x-y*)中的第3类数据包在进行下向右转弯时,先变换通道转入第一组所述合并后的虚拟子网络,并在随后返回y方向路由时,再次变换通道返回第二组所述合并后的虚拟子网络;
4)第一组所述合并后的虚拟子网络(x*y+与x*y-)中的第8类数据包在进行下向左转弯时,先变换通道转入第二组所述合并后的虚拟子网络,并在随后返回y方向路由时,再次变换通道返回第一组所述合并后的虚拟子网络。
7.根据权利要求5所述的方法,其特征在于,所述设置每个所述合并后的虚拟子网络的安全区域的步骤具体包括:针对每个所述合并后的虚拟子网络,若任一无故障节点在该合并后的虚拟子网络中沿着x维和y维方向存在最多一个相邻的故障节点,则将该无故障节点标记为安全节点;基于标记出的所有所述安全节点,设置所述安全区域。
8.根据权利要求6所述的方法,其特征在于,具体计算所述目标数据包的目的节点相对源节点在所述x维上的第一偏移为xoffset=xd-xs、在所述y维上的第二偏移为yoffset=yd-ys,其中xd和xs分别表示所述目标数据包的目的节点和源节点在x维上的坐标,yd和ys分别表示所述目标数据包的目的节点和源节点在y维上的坐标,则,
在所述目标数据包进入x*y-中路由时,所述进行无死锁完全自适应路由的步骤具体包括:
在所述目标数据包到达x*y-中任一节点时,按如下规则和所述无死锁路由算法规则,使所述目标数据包在所述二维Mesh网络中路由:
若xoffset<0且yoffset<0,则当所述目标数据包已占用通道cy,1-时,使用通道cx,2-或者cy,1-路由;
若xoffset<0且yoffset<0,则当所述目标数据包已占用通道cx,1-时,使用通道cx,1-或者cy,1-路由;
若xoffset<0且yoffset<0,则当所述目标数据包已占用通道cx,2-时,使用通道cx,2-或者cy,1-路由;
若xoffset>0且yoffset<0,则直接使用通道cx,1+或者cy,1-路由;
若xoffset=0且yoffset<0,则使用通道cy,1-路由;
若xoffset>0且yoffset=0,则直接使用通道cx,1+路由;
若xoffset<0且yoffset=0,则当所述目标数据包为第8类数据包且占用通道cy,1-或者cx,2-时,使用通道cx,2-路由,否则使用通道cx,1-;
在所述目标数据包进入x*y+中路由时,所述进行无死锁完全自适应路由的步骤具体包括:
在所述目标数据包到达x*y+中任一节点时,按如下规则和所述无死锁路由算法规则,使所述目标数据包在所述二维Mesh网络中路由:
若xoffset>0且yoffset>0,则当所述目标数据包已占用通道cx,1+时,使用通道cx,1+路由,否则若占用cy,1+时,使用通道cx,1+或者cy,1+路由;
若xoffset<0且yoffset>0,则使用通道cx,1-或者cy,1+路由;
若xoffset=0且yoffset>0,则使用通道cy,1+路由;
若xoffset<0且yoffset=0,则使用通道cx,1-路由;
若xoffset>0且yoffset=0,则使用通道cx,1+路由;
在所述目标数据包进入x-y*中路由时,所述进行无死锁完全自适应路由的步骤具体包括:
在所述目标数据包到达x-y*中任一节点时,按如下规则和所述无死锁路由算法规则,使所述目标数据包在所述二维Mesh网络中路由:
若xoffset<0且yoffset>0,则当所述目标数据包已占用通道cx,2-时,使用通道cx,2-路由,否则若占用cy,2+时,使用通道cx,2-或者cy,2+路由;
若xoffset<0且yoffset<0,则使用通道cx,2-或者cy,2-路由;
若xoffset=0且yoffset>0,则使用通道cy,2+路由;
若xoffset=0且yoffset<0,则使用通道cy,2-路由;
若xoffset<0且yoffset=0,则使用通道cx,2-路由;
在所述目标数据包进入x+y*中路由时,所述进行无死锁完全自适应路由的步骤具体包括:
在所述目标数据包到达x+y*中任一节点时,按如下规则和所述无死锁路由算法规则,使所述目标数据包在所述二维Mesh网络中路由:
若xoffset>0且yoffset<0,则当所述目标数据包已占用通道cy,2-时,使用通道cx,1+或者cy,2-路由;
若xoffset>0且yoffset<0,则当所述目标数据包的类型为第3类且已占用通道cx,2+时,使用通道cx,2+或者cy,2-路由;
若xoffset>0且yoffset<0,则当所述目标数据包已占用通道cx,1+时,使用通道cx,1+或者cy,2-路由;
若xoffset>0且yoffset>0,则使用通道cx,2+或者cy,2+路由;
若xoffset=0且yoffset<0,则使用通道cy,2-路由;
若xoffset>0且yoffset=0,则当所述目标数据包已占用cy,2-或者cx,1+时,使用通道cx,1+路由,否则若未占用,使用通道cx,2+路由。
9.根据权利要求7所述的方法,其特征在于,具体计算所述目标数据包的目的节点相对源节点在所述x维上的第一偏移为xoffset=xd-xs、在所述y维上的第二偏移为yoffset=yd-ys,其中xd和xs分别表示所述目标数据包的目的节点和源节点在x维上的坐标,yd和ys分别表示所述目标数据包的目的节点和源节点在y维上的坐标,则,
在所述目标数据包进入x*y-中路由时,所述进行容错完全自适应路由的步骤具体包括:
在所述目标数据包到达x*y-中任一节点时,结合如下规则和所述安全区域,控制所述目标数据包在所述二维Mesh网络中路由:
若xoffset<0且yoffset<0,则当所述目标数据包已占用通道cy,1-,且当前节点沿着x-和y-两个方向的两条最短路径均完全处于所述安全区域时,使用通道cx,2-或者cy,1-路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset<0且yoffset<0,则当所述目标数据包已占用通道cx,1-,且当前节点沿着x-和y-两个方向的两条最短路径均完全处于所述安全区域时,使用通道cx,1-或者cy,1-路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset<0且yoffset<0,则当所述目标数据包已占用通道cx,2-,且当前节点沿着x-和y-两个方向的两条最短路径均完全处于所述安全区域时,使用通道cx,2-或者cy,1-路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset>0且yoffset<0,且当前节点沿着x+和y-两个方向的两条最短路径均完全处于所述安全区域时,使用通道cx,1+或者cy,1-路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset=0且yoffset<0,则仅当当前节点沿着y-方向的最短路径完全处于所述安全区域时,使用通道cy,1-路由;
若xoffset>0且yoffset=0,则仅当当前节点沿着x+方向的最短路径完全处于所述安全区域时,使用通道cx,1+路由;
若xoffset<0且yoffset=0,则当所述目标数据包为第8类且占用cy,1-或者cx,2-,且当前节点沿着x-方向的最短路径完全处于所述安全区域时,使用cx,2-路由,否则若最短路径完全处于所述安全区域,使用cx,1-路由;
若可用的最短路径均非完全处于所述安全区域,则若所述目标数据包占用x通道,则转到x*y+中路由,若所述目标数据包占用y通道,则沿着x方向绕道转发直至y-通道可用,沿着y-方向最短路径路由;
在所述目标数据包进入x*y+中路由时,所述进行容错完全自适应路由的步骤具体包括:
在所述目标数据包到达x*y+中任一节点时,结合如下规则和所述安全区域,控制所述目标数据包在所述二维Mesh网络中路由:
若xoffset>0且yoffset>0,则当所述目标数据包已占用通道cx,1+时,且当前节点沿着x+和y+两个方向的最短路径完全处于所述安全区域时,使用通道cx,1+路由,否则若两条最短路径均完全处于所述安全区域,使用cx,1+或者cy,1+路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset<0且yoffset>0,则当当前节点沿着x-和y+两个方向的两条最短路径均完全处于所述安全区域时,使用cx,1-或者cy,1+路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset=0且yoffset>0,则仅当当前节点沿着y+方向的最短路径完全处于所述安全区域时,使用通道cy,1+路由;
若xoffset<0且yoffset=0,则仅当当前节点沿着x-方向的最短路径完全处于所述安全区域时,使用通道cx,1-路由;
若xoffset>0且yoffset=0,则仅当当前节点沿着x+方向的最短路径完全处于所述安全区域时,使用通道cx,1+路由;
若可用的最短路径均非完全处于所述安全区域,则若所述目标数据包占用x通道,则转到x*y-中路由,若所述目标数据包占用y通道,则沿着x方向绕道转发直至y+通道可用,沿着y+方向最短路径路由;
在所述目标数据包进入x-y*中路由时,所述进行容错完全自适应路由的步骤具体包括:
在所述目标数据包到达x-y*中任一节点时,结合如下规则和所述安全区域,控制所述目标数据包在所述二维Mesh网络中路由:
若xoffset<0且yoffset>0,则当所述目标数据包已占用通道cx,2-时,仅当当前节点沿着x-和y+两个方向的最短路径完全处于所述安全区域时,使用通道cx,2-路由,否则当两条最短路径均完全处于所述安全区域时,使用cx,2-或者cy,2+路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset<0且yoffset<0,则当当前节点沿着x-和y-两个方向的两条最短路径均完全处于所述安全区域时,使用cx,2-或者cy,2-路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset=0且yoffset>0,则若当前节点沿着y+方向的最短路径完全处于所述安全区域,则使用通道cy,2+路由;
若xoffset=0且yoffset<0,则若当前节点沿着y-方向的最短路径完全处于所述安全区域,则使用通道cy,2-路由;
若xoffset<0且yoffset=0,则若当前节点沿着x-方向的最短路径完全处于所述安全区域,则使用通道cx,2-路由;
若可用的最短路径均非完全处于所述安全区域,则若所述目标数据包占用y通道,则转到x+y*中路由,若所述目标数据包占用x通道,则沿着y方向绕道转发直至x-通道可用,沿着x-方向最短路径路由;
在所述目标数据包进入x+y*中路由时,所述进行容错完全自适应路由的步骤具体包括:
在所述目标数据包到达x+y*中任一节点时,结合如下规则和所述安全区域,控制所述目标数据包在所述二维Mesh网络中路由:
若xoffset>0且yoffset<0,则当所述目标数据包已占用通道cy,2-,且当前节点沿着x+和y-两个方向的两条最短路径均完全处于所述安全区域时,使用cx,1+或者cy,2-路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset>0且yoffset<0,则当所述目标数据包类型为第3类且已占用通道cx,2+,且当前节点沿着x+和y-两个方向的两条最短路径均完全处于所述安全区域时,使用cx,2+或者cy,2-路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset>0且yoffset<0,则当所述目标数据包已占用通道cx,1+时,使用cx,1+或者cy,2-路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset>0且yoffset>0,则使用cx,2+或者cy,2+路由,若有一条最短路径不完全处于所述安全区域,则使用另一条最短路径;
若xoffset=0且yoffset<0,则若当前节点沿着y-方向的最短路径完全处于所述安全区域,则使用通道cy,2-路由;
若xoffset>0且yoffset=0,则若所述目标数据包占用cy,2-或者cx,1+,且当前节点沿着x+方向的最短路径完全处于所述安全区域,则使用通道cx,1+路由,否则若未占用且当最短路径完全处于所述安全区域时,使用通道cx,2+路由;
若可用的最短路径均非完全处于所述安全区域,则若所述目标数据包占用y通道,则转到x-y*中路由,若所述目标数据包占用x通道,则沿着y方向绕道转发直至x+通道可用,沿着x+方向最短路径路由。
10.一种电子设备,其特征在于,包括:至少一个存储器、至少一个处理器、通信接口和总线;
所述存储器、所述处理器和所述通信接口通过所述总线完成相互间的通信,所述通信接口还用于所述电子设备与二维Mesh网络设备之间的信息传输;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910166798.XA CN110048947B (zh) | 2019-03-06 | 2019-03-06 | 二维Mesh网络中数据包的自适应路由方法与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910166798.XA CN110048947B (zh) | 2019-03-06 | 2019-03-06 | 二维Mesh网络中数据包的自适应路由方法与电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110048947A true CN110048947A (zh) | 2019-07-23 |
CN110048947B CN110048947B (zh) | 2020-06-16 |
Family
ID=67274337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910166798.XA Active CN110048947B (zh) | 2019-03-06 | 2019-03-06 | 二维Mesh网络中数据包的自适应路由方法与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110048947B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336744A (zh) * | 2019-08-09 | 2019-10-15 | 合肥工业大学 | 一种无线片上网络中区域故障感知的容错路由方法 |
CN111817952A (zh) * | 2019-10-11 | 2020-10-23 | 西安电子科技大学 | 基于mesh结构的高容错低时延路由算法 |
CN113709040A (zh) * | 2021-08-31 | 2021-11-26 | 中国电子科技集团公司第五十八研究所 | 一种基于可扩展互联裸芯的封装级网络路由算法 |
CN115277551A (zh) * | 2022-07-28 | 2022-11-01 | 上海交通大学 | 基于环形结构的模块化三维片上网络无死锁路由系统和方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598145B1 (en) * | 1999-02-12 | 2003-07-22 | Avici Systems | Irregular network |
CN101262444A (zh) * | 2008-03-10 | 2008-09-10 | 清华大学 | 基于通道交叠的容错mesh网避免死锁的路由方法 |
CN101335704A (zh) * | 2008-04-18 | 2008-12-31 | 清华大学 | 三维torus网中的无死锁自适应路由方法 |
CN101820645A (zh) * | 2010-04-14 | 2010-09-01 | 中国科学院计算技术研究所 | 无线mesh网络中支持服务质量的数据调度装置和方法 |
CN102170402A (zh) * | 2011-05-31 | 2011-08-31 | 清华大学 | Torus网络中的无死锁自适应路由算法 |
CN102437953A (zh) * | 2011-12-14 | 2012-05-02 | 清华大学 | 片上网络中的低功耗自适应路由方法 |
CN107181520A (zh) * | 2017-04-21 | 2017-09-19 | 中国科学院光电研究院 | 一种网络拓扑结构的组网方法及装置 |
CN109189720A (zh) * | 2018-08-22 | 2019-01-11 | 曙光信息产业(北京)有限公司 | 层次化片上网络拓扑结构及其路由方法 |
-
2019
- 2019-03-06 CN CN201910166798.XA patent/CN110048947B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598145B1 (en) * | 1999-02-12 | 2003-07-22 | Avici Systems | Irregular network |
CN101262444A (zh) * | 2008-03-10 | 2008-09-10 | 清华大学 | 基于通道交叠的容错mesh网避免死锁的路由方法 |
CN101335704A (zh) * | 2008-04-18 | 2008-12-31 | 清华大学 | 三维torus网中的无死锁自适应路由方法 |
CN101820645A (zh) * | 2010-04-14 | 2010-09-01 | 中国科学院计算技术研究所 | 无线mesh网络中支持服务质量的数据调度装置和方法 |
CN102170402A (zh) * | 2011-05-31 | 2011-08-31 | 清华大学 | Torus网络中的无死锁自适应路由算法 |
CN102437953A (zh) * | 2011-12-14 | 2012-05-02 | 清华大学 | 片上网络中的低功耗自适应路由方法 |
CN107181520A (zh) * | 2017-04-21 | 2017-09-19 | 中国科学院光电研究院 | 一种网络拓扑结构的组网方法及装置 |
CN109189720A (zh) * | 2018-08-22 | 2019-01-11 | 曙光信息产业(北京)有限公司 | 层次化片上网络拓扑结构及其路由方法 |
Non-Patent Citations (2)
Title |
---|
YUAN CAI ET AL.: "The Column-Partition and Row-Partition Turn Model", 《IEEE:ICCSA》 * |
向东: "Mesh网中高效无死锁自适应路由算法", 《计算机学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336744A (zh) * | 2019-08-09 | 2019-10-15 | 合肥工业大学 | 一种无线片上网络中区域故障感知的容错路由方法 |
CN111817952A (zh) * | 2019-10-11 | 2020-10-23 | 西安电子科技大学 | 基于mesh结构的高容错低时延路由算法 |
CN113709040A (zh) * | 2021-08-31 | 2021-11-26 | 中国电子科技集团公司第五十八研究所 | 一种基于可扩展互联裸芯的封装级网络路由算法 |
CN113709040B (zh) * | 2021-08-31 | 2023-04-07 | 中国电子科技集团公司第五十八研究所 | 一种基于可扩展互联裸芯的封装级网络路由算法 |
CN115277551A (zh) * | 2022-07-28 | 2022-11-01 | 上海交通大学 | 基于环形结构的模块化三维片上网络无死锁路由系统和方法 |
CN115277551B (zh) * | 2022-07-28 | 2024-01-12 | 上海交通大学 | 基于环形结构的模块化三维片上网络无死锁路由系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110048947B (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110048947A (zh) | 二维Mesh网络中数据包的自适应路由方法与电子设备 | |
Flocchini et al. | Computing without communicating: Ring exploration by asynchronous oblivious robots | |
US7853639B2 (en) | Performing process migration with allreduce operations | |
CN107637024B (zh) | 连接性感知的虚拟网络嵌入的相关方法和系统 | |
CN101925907B (zh) | 在多节点计算机系统上使用虚拟专用网保护数据空间 | |
Wang et al. | Reliability-oriented and resource-efficient service function chain construction and backup | |
Domke et al. | Routing on the dependency graph: A new approach to deadlock-free high-performance routing | |
Zhang et al. | An improved fault-tolerant routing algorithm for a network-on-chip derived with formal analysis | |
Verbeek et al. | A decision procedure for deadlock-free routing in wormhole networks | |
Akbar et al. | An efficient fault-tolerant routing algorithm in NoCs to tolerate permanent faults | |
Hollstein et al. | Mixed-criticality NoC partitioning based on the NoCDepend dependability technique | |
Pratomo et al. | Gradient—An adaptive fault-tolerant routing algorithm for 2D mesh network-on-chips | |
Charif et al. | A dynamic sufficient condition of deadlock-freedom for high-performance fault-tolerant routing in networks-on-chips | |
Shneidman et al. | Using redundancy to improve robustness of distributed mechanism implementations | |
Khodadadi et al. | FT-PDC: an enhanced hybrid congestion-aware fault-tolerant routing technique based on path diversity for 3D NoC | |
Zhou et al. | Adaptive fault-tolerant wormhole routing with two virtual channels in 2D meshes | |
US11303559B1 (en) | Method, apparatus and computer storage medium for deadlock-free adaptive routing in two-dimensional mesh network based on the overlapping virtual network partitioning scheme | |
Zhou et al. | Multi-phase minimal fault-tolerant wormhole routing in meshes | |
Das et al. | Gathering of robots in a grid with mobile faults | |
CN111953589B (zh) | 高维Torus网络的自适应容错路由方法及装置 | |
Puente et al. | A low cost fault tolerant packet routing for parallel computers | |
Das et al. | Compacting and grouping mobile agents on dynamic rings | |
Afsharpour et al. | Performance/energy aware task migration algorithm for many‐core chips | |
Zhou et al. | Tree-turn routing: an efficient deadlock-free routing algorithm for irregular networks | |
Cournier et al. | A snap-stabilizing point-to-point communication protocol in message-switched networks |
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 |