[发明专利]三维torus网中的无死锁自适应路由方法无效
申请号: | 200810104405.4 | 申请日: | 2008-04-18 |
公开(公告)号: | CN101335704A | 公开(公告)日: | 2008-12-31 |
发明(设计)人: | 向东;陈振;王琦 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06 |
代理公司: | 北京众合诚成知识产权代理有限公司 | 代理人: | 朱琨 |
地址: | 100084北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 三维 torus 中的 死锁 自适应 路由 方法 | ||
1.三维torus网中的无死锁自适应路由方法,其特征在于,所述方法是在每一维上有k个节点的三维torus网上依次按步骤实现的:
步骤(1):初始化
对于三维torus网络,连接每一维两个边界之间的物理通道称为边界通道;把每条物理通道被划分为两条虚拟通道:c1和c2,这两条通道均为两向通道,c1通道分为c1+和c1-两个方向的通道,c2通道分为c2+和c2-两个方向的通道,“+”和“-”表示消息传输的正负方向;将x轴正方向的虚拟通道c1+表示为x(c1+),将x轴负方向的虚拟通道c1表示为x(c1-),y轴和z轴上的虚拟通道的表示方式与x轴上的虚拟通道的表示方式相同;
将三维torus网划分为划分为如下八个虚拟子网:x+y+z+、x+y+z-、x+y-z+、x+y-z-、x-y+z+、x-y+z-、x-y-z+、x-y-z-,x+、x-即表示在x轴上的正、负方向的路由,对于y轴、z轴同理;
把上述八个虚拟子网两两合并,从而得到以下四个虚拟子网:x+y+z*(x(c1+),y(c1+),z(c1)),x+y-z*(x(c2+),y(c1-),z(c1)),x-y*z+(x(c1-),y(c2),z(c2+)),x-y*z-(x(c2-),y(c2),z(c2-)),括号中的标号表示分配到每个虚拟子网中的虚拟通道,“+”和“-”表示消息传输的正负方向,“*”表示正负任意方向,x+y+z*和x+y-z*在z方向上共享c1通道,x-y*z+和x-y*z-在y方向上共享c2通道,从而在x,y,z三个方向上,每条物理通道都只用到了两条虚拟通道,当消息在y方向和z方向之间转弯时,消息跳转到不同于原分配通道的另外一条虚拟通道,以避免死锁;
步骤(2):对于每个消息依次按以下步骤分配到所属虚拟子网:
设当前节点为curr,目的节点为dest,当前节点和目的节点在两维上的偏移量为A=xd-xc,B=yd-yc,C=zd-zc,其中下标c、d分别代表当前节点和目的节点,VN表示消息所属的虚拟子网分配;
当A≥0且B≥0时,
如果A<k/2,B≥k/2,VN=x+y-z*;
如果A<k/2,B<k/2,VN=x+y+z*;
当A≥0且B<0时,
如果A<k/2,B≥-k/2,VN=x+y-z*;
如果A<k/2,B<-k/2,VN=x+y+z*;
当A<0且B≥0时,
如果A≤-k/2,B≥k/2,VN=x+y-z*;
如果A≤-k/2,B<k/2,VN=x+y+z*;
当A<0且B<0时,
如果A<-k/2,B<-k/2,VN=x+y+z*;
如果A<-k/2,B>-k/2,VN=x+y-z*;
当A≥0且C≥0时,
如果A>k/2,C≥k/2,VN=x-y*z-;
如果A>k/2,C<k/2,VN=x-y*z+;
当A≥0且C<0时,
如果A>k/2,C≥-k/2,VN=x-y*z+;
如果A>k/2,C<-k/2,VN=x-y*z-;
当A<0且C≥0时,
如果A>-k/2,C≥k/2,VN=x-y*z-;
如果A>-k/2,C<k/2,VN=x-y*z+;
当A<0且C<0时,
如果A>-k/2,C<-k/2,VN=x-y*z+;
如果A>-k/2,C>-k/2,VN=x-y*z-;
步骤(3):消息在三维平面上消息依次按以下步骤路由:
步骤(3.1):如果消息在x+y+z*虚拟子网中:
如果A≥0,B≥0,则选择通道x(c1+),y(c1+),z(c1);
如果A<0,B≥0,则选择通道x(c2+),y(c1+),z(c1);
如果A≥0,B<0,则选择通道x(c1+),y(c2+),z(c1);
如果A<0,B<0,则选择通道x(c2+),y(c2+),z(c1);
步骤(3.2):如果消息在x+y-z*虚拟子网中:
如果A≥0,B≥0,则选择通道x(c2+),y(c2-),z(c1);
如果A<0,B≥0,则选择通道x(c1+),y(c2-),z(c1);
如果A≥0,B<0,则选择通道x(c2+),y(c1-),z(c1);
如果A<0,B<0,则选择通道x(c1+),y(c1-),z(c1);
步骤(3.3):如果消息在x-y*z+虚拟子网中:
如果A≥0,C≥0,则选择通道x(c2-),y(c2),z(c2+);
如果A<0,C≥0,则选择通道x(c1-),y(c2),z(c2+);
如果A≥0,C<0,则选择通道x(c2-),y(c2),z(c1+);
如果A<0,C<0,则选择通道x(c1-),y(c2),z(c1+);
步骤(3.4):如果消息在x-y*z-虚拟子网中:
如果A≥0,C≥0,则选择通道x(c1-),y(c2),z(c1-);
如果A<0,C≥0,则选择通道x(c2-),y(c2),z(c1-);
如果A≥0,C<0,则选择通道x(c1-),y(c2),z(c2-);
如果A<0,C<0,则选择通道x(c2-),y(c2),z(c2-)。
2.根据权利要求1所述的在三维torus网中无死锁的自适应路由方法,其特征在于,在进行所述消息自适应路由时,按以下步骤避免死锁:
对于从z+方向上转弯到y-方向的消息,使用不同于原分配虚拟通道c1或c2的另外一条虚拟通道c2或c1;
对于从z-方向上转弯到y-方向的消息,使用不同于原分配虚拟通道c1或c2的另外一条虚拟通道c2或c1;
对于从y-+方向上转弯到z-方向的消息,使用不同于原分配虚拟通道c1或c2的另外一条虚拟通道c2或c1;
对于从y+方向上转弯到z-方向的消息,使用不同于原分配虚拟通道c1或c2的另外一条虚拟通道c2或c1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810104405.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:真空过滤机橡胶带
- 下一篇:一种镗孔不停车自动让刀的装置