主权项 |
1、二维torus网中的无死锁自适应路由方法,其特征在于,所述方法是在每一维上有k个节点的二维torus网上依次按步骤实现的:步骤(1):初始化对于二维torus网络,连接两个边界之间的物理通道称为边界通道;把每条物理通道被划分为两条虚拟通道:c1和c2,这两条通道均为两向通道,c1通道分为c1+和c1-两个方向的通道,c2通道分为c2+和c2-两个方向的通道,“+”和“-”表示消息传输的正负方向;将二维torus网划分为划分为如下四个虚拟子网:x-y-、x-y+、x+y-、x+y+,x+、x-即表示在x轴上的正、负方向的路由,对于y轴同理;步骤(2):对于每个消息消息依次按以下步骤分配到所属虚拟子网:设当前节点为curr,目的节点为dest,当前节点和目的节点在两维上的偏移量为A=xd-xc,B=yd-yc,其中下标c、d分别代表当前节点和目的节点,dx表示所述维度上的虚拟子网分配,对于dy同理;当A≥0且B≥0时,如果A≥k/2,B≥k/2,dx=-,dy=-;如果A<k/2,B≥k/2,dx=+,dy=-;如果A≥k/2,B<k/2,dx=-,dy=+;如果A<k/2,B<k/2,dx=+,dy=+;当A≥0且B<0时,如果A≥k/2,B≥-k/2,dx=-,dy=-;如果A<k/2,B≥-k/2,dx=+,dy=-;如果A≥k/2,B<-k/2,dx=-,dy=+;如果A<k/2,B<-k/2,dx=+,dy=+;当A<0且B≥0时,如果A≤-k/2,B≥k/2,dx=+,dy=-;如果A≤-k/2,B<k/2,dx=+,dy=+;如果A>-k/2,B≥k/2,dx=-,dy=-;如果A>-k/2,B<k/2,dx=-,dy=+;当A<0且B<0时,如果A<-k/2,B<-k/2,dx=+,dy=+;如果A<-k/2,B>-k/2,dx=+,dy=-;如果A≥-k/2,B<-k/2,dx=-,dy=+;如果A≥-k/2,B≥-k/2,dx=-,dy=-;步骤(3):二维平面上的消息依次按以下步骤路由:步骤(3.1):如果消息在x-y-虚拟子网中:如果A≥0,B≥0,则选择通道x(c1-),y(c1-);如果A<0,B≥0,则选择通道x(c2-),y(c1-);如果A≥0,B<0,则选择通道x(c1-),y(c2-);如果A<0,B<0,则选择通道x(c2-),y(c2-);步骤(3.2):如果消息在x-y+虚拟子网中:如果A≥0,B≥0,则选择通道x(c1-),y(c1+);如果A<0,B≥0,则选择通道x(c2-),y(c1+);如果A≥0,B<0,则选择通道x(c1-),y(c2+);如果A<0,B<0,则选择通道x(c2-),y(c2+);步骤(3.3):如果消息在x+y-虚拟子网中:如果A≥0,B≥0,则选择通道x(c1+),y(c1-);如果A<0,B≥0,则选择通道x(c2+),y(c1-);如果A≥0,B<0,则选择通道x(c1+),y(c2-);如果A<0,B<0,则选择通道x(c2+),y(c2-);步骤(3.4):如果消息在x+y+虚拟子网中:如果A≥0,B≥0,则选择通道x(c1+),y(c1+);如果A<0,B≥0,则选择通道x(c2+),y(c1+);如果A≥0,B<0,则选择通道x(c1+),y(c2+);如果A<0,B<0,则选择通道x(c2+),y(c2+)。 |