当前位置: 首页 > 专利查询>浙江大学专利>正文

确定RDT片上网络最短路由的方法技术

技术编号:3860190 阅读:356 留言:0更新日期:2012-04-11 18:40
确定RDT片上网络最短路由的方法,其特征在于: 本方法针对的容错模型定义如下: ①RDT片上网络中的任何节点或链路发生错误时,数据无法在错误链路上传输也无法通过一个错误节点进行转发; ②错误模型为静态,就是当前节点对数据包转发的过程中与该节点相连的链路不会出现新错误; ③产生通信的源节点和目标节点均正常工作; ④错误的发生是相互独立的; ⑤如果一个节点发生错误,则认为所有与该节点直接相连的链路均产生错误,即如果节点发生错误则该节点与整个网络隔绝,将节点错误归并到链路错误; ⑥同一层Torus网络内的链路错误信息对网络中的所有正常节点均是可知的; 基于以上容错模型的最短路由方法的具体步骤是: 步骤(1)为RDT rank-0网络建立坐标系,确定节点编号以及通信节点的位置: 首先确定目标RDT(n,1)网络的规模:N×N;以网络左上角节点为原点,水平向右为x轴正方向,竖直向下为y轴正方向,为RDT的rank-0网络建立X0-Y0直角坐标系,其中相邻两节点间的长度定为X0-Y0坐标系的单位长度; 然后按照自上而下的顺序对每行的N个节点自左到右依次编号:*节点K∈目标N×N RDT(n,1),其坐标为(x↓[k],y↓[k]),且满足x↓[k]∈[0,N-1],y↓[k]∈[0,N-1],K的编号Num(k)=N·y↓[k]+x↓[k]; 按上述编号原则确定需要进行通信的两个节点S和D在坐标系X0-Y0内的位置:S(S↓[x],S↓[y]),D(D↓[x],D↓[y]),其中S为通信源节点,D为通信目标节点; 步骤(2)确定目标节点D的镜像超集M’(D) M’(D)为D与其在X0-Y0坐标系内四个镜像点D’↓[north],D’↓[cast],D’↓[south],D’↓[west]的集合,即M’(D)={D,D’↓[north],D’↓[east],D’↓[south],D’↓[west]};D’↓[north],D’↓[east],D’↓[south],D’↓[west]分别位于点D的竖直上方、水平右方、竖直下方和水平左方;这四个镜像点的坐标分别为:D’↓[north](D↓[x],D↓[y]-N),D’↓[east](D↓[x]+N,D↓[y]),D’↓[south](D↓[x],D↓[y]+N),D’↓[west](D↓[x]-N,D↓[y]),镜像超集中的每一个元素为超镜像点; 步骤(3)确定最佳超镜像点 计算M’(D)中各超镜像点与源节点S之间的曼哈顿距离(Manhattandistance),选择与S的曼哈顿距离最短的超镜像点作为最佳超镜像点,并记为M,具体步骤是: a.确定源节点S指向目的节点D的相对矢量V=(V↓[Δx],V↓[Δy]),其中V↓[Δx]=D↓[x]-S↓[x],表示V在X0-Y0坐标系中水平方向的分量;V↓[Δy]=D↓[y]-S↓[y],表示V在X0-Y0坐标系中竖直方向的分量; b.初始化最佳超镜像点M:M(M↓[x],M↓[y])=D(D↓[x],D↓[y]); c.如果|V↓[Δx]|与|V↓[Δy]|中大者大于RDT维度的一半,则转入步骤d;如果小于等于RDT维度的一半,则转入步骤e; d.如果|V↓[Δx]|与|V↓[Δy]|中大者是|V↓[Δx]|,则V↓[Δx]大于0时,将M更新为D’↓[west],V↓[Δx]小于等于0时,将M更新为D’↓[east];如果|V↓[Δx]|与|V↓[Δy]|中大者是|V↓[Δy]|,则V↓[Δy]大于0时,将M更新为D’↓[north],V↓[Δy]小于等于0时,将M更新为D’↓[south]; e.返回最佳超镜像点M; 步骤(4)为RDT rank-1网络建立坐标系 以S为原点,右下方为x轴正方向、左下方为y轴正方向,建立X1-Y1坐标系,其单位长度为RDT rank-1网络中的链路长度;任给X0-Y0坐标系中的一点T(T↓[x],T↓[y]),其在以S为原点建立起来的X1-Y1坐标系中的坐标为: T’(((T↓[y]-S↓[y])+(T↓[x]-S↓[x]))/2n,((T↓[y]-S↓[y])-(T↓[x]-S↓[x]))/2n) (1) 步骤(5)使用VR(Vector Routing)方法确定S和M之间的矢量分解结果 首先确定S指向M的相对矢量:A=a0·x0+b0·y0,其中x0、y0分别表示X0-Y0坐标系内的x方向和y方向的单位矢量,a0、b0分别表示相对矢量A在X0方向和Y0方向的分量,a0=M↓[x]-S↓[x],b0=M↓[y]-S↓[y];然后使用VR方法将相对矢量A分解为X0-Y0单位矢量与X1-Y1单位矢量之和的形式,表示为:A=vecx1·x1+vecy1·y1+vecx0·x0+vecy0·y0;分解方法如下所示: 

【技术实现步骤摘要】

本专利技术属于计算机
,涉及基于RDT的片上网络 (Network-on-Chip, NoC),具体是一种面向RDT(n, R, l)片上网络的最短路 由寻找方法以及应对网络链路(Link)、节点(Tile)错误的容错机制的实现方 法。
技术介绍
RDT的全称是Recursive Diagonal Torus,是面向大规模并行处理器的 一类片上互连网络拓扑结构的总称。该拓扑结构的目的在于减小基于二维网 格(2D-Mesh)的大规模并行处理器的网络半径,以便减小不同处理器之间的 通信延迟,目前己经应用在大规模并行机JUMP-1中。RDT的思想是在二维网 格的基础上构建不同层次(rank)、不同大小的Torus网络。Torus网络的层次越高,链路跨度也就越大,因此可以减小整个片上网络的半径。目前针对RDT网络的路由方法主要有以下两种矢量路由(VR, Vector Routing)方法和环路编码矢量路由(CCVR, Circular Coded Vector Routing) 方法。VR和CCVR的基本思想都是寻找一种合适的矢量分解方法,将RDT 网络中通信发起节点(源节点)和通信接收节点(目的节点)之间的相对矢 量分解为不同层次的Torus网络路由,以便减少这两个通信节点之间的路由 长度。VR的分解方法是根据经验推导确定矢量分解等式中系数间的关系以及 最终路由结果。该方法较为简单,只需要一次运算即可得到最终结果。但是 由于没有考虑通信节点在网络中的绝对位置,所以往往无法利用Torus环路 找到最短路由。CCVR的方法是首先对网络中每个节点进行格雷编码(Gray Code),然后把源节点作为当前考虑节点,根据当前考虑节点和目的节点之 间的码值关系确定路由第一条链路的走向,然后将当前考虑节点更新为刚刚 确定的链路终端节点。依次类推,不断更新当前考虑节点及对应的路由信息,直到当前考虑节点与目的节点重合为止。这种方法可以得到最短路由,但是 需要经过多次循环计算,时间开销较大。此外在实际的片上网络中,链路和节点在通信过程中出错的情况是有可 能出现的。这会极大影响通信的成功率和效率。因此需要在基本路由方法的 基础上添加容错机制以避开出错的链路或者节点,尝试寻找其它路由以顺利 到达目的地。目前的容错机制主要包括提供备用链路和使用容错路由两种方 法。前者的缺陷在于备用链路的存在导致硬件成本较高。后者则是目前面向RDT网络容错机制所使用的方法,主要有FVRSF (Floating Vector Routing under Single Failure)禾口 FVRMF (Floating Vector Routing under Multiple Failure)两种。FVRSF只考虑一条链路或者一个节点出错,忽略了实际传输 过程中多链路、多节点同时出错的情况。FVRMF可以处理多条链路或多个节 点出错的情况,但备选路由与错误链路必须处于同一To:rus网络层,这往往 导致总的路由长度的增加。此外它只考虑当前节点在当前Torus网络层内连 接的四条链路,并没有考虑到全局链路的出错状况。而局部决策往往无法产 生全局最优结果。有关RDT网络的基本定义以及VR方法的实现细节相关介绍请参考文献 Yulu Yang,Akira Funahashi,Recursive Diagonal Torus: An Interconnection Network for Massively Parallel Computers, IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2001)。有关CCVR, FVRSF以及FVRMF的实现细节请参考文献Shankar Narayanan Neelakrishnan, 〃DESIGN AND IMPLEMENTATION OF N0C ROUTERS AND THEIR APPLICATION TO PRDT-BASED N0C' S, Thesis for Master of Science Degree in Electrical Engineering Department of Electrical and Computer Engineering Howard R. Hughes College of Engineering, University of Nevada, Las Vegas, 2007。
技术实现思路
本专利技术的目的是针对上述VR和CCVR路由确定方法的缺陷,提出一种高性能、低复杂度的面向RDT(n, R, l)片上网络的最短路由确定方法。该方法 既可以解决VR无法确保总能找到最短路由的问题,而且时间复杂度与CCVR 相比降低很多。此外,本方法可以解决FVRSF和FVRMF容错路由方法无法产 生全局优化结果的低性能问题,可以根据整个RDT网络内链路的出错状况, 在尽可能减少路由长度的条件下综合考虑网络中不同层次的链路,并最终找 出 一条避开所有出错链路的可用路由。 本专利技术针对的容错模型定义如下① RDT片上网络中的任何节点和链路发生错误时,数据无法在一条错误 链路上传输也无法通过一个错误节点进行转发;② 错误模型为静态,就是当前节点对数据包进行转发的过程中与该节点 相连的链路不会出现新错误;③ 产生通信的源节点和目标节点均是正常工作;④ 错误的发生是相互独立的;⑤ 如果一个节点发生错误,则认为所有与该节点直接相连的链路均产生 错误,即如果节点发生错误则该节点与整个网络隔绝,将节点错误归并到链 路错误;(D同一层Torus网络内的链路错误信息对网络中的所有正常节点均是可 知的。基于以上容错模型的最短路由方法的具体歩骤是步骤(l)为RDT网络建立坐标系,并确定节点编号以及通信节点的位置首先确定目标RDT(n, l)网络的规模,表示为NXN;以网络中的左上角 节点为原点,以水平向右为x轴正方向,竖直向下为y轴正方向,建立X0-Y0 直角坐标系,其中相邻两个节点之间的长度定为X0-Y0坐标系的单位长度;然后按照自上而下的顺序对每行的N个节点自左到右依次编号,RDT中 每个节点的编号与其在X0-Y0坐标系中的坐标满足下面的关系V节点Ke目标NXN RDT(n, 1),其坐标为(Xk, yk),且满足xke , yw[O, N - l], K的编号Nimi(k) = N'yk + xk,该网络中节点编号的取9值范围是[O, N2 - l];确定需要进行通信的两个节点S和D在坐标系XO-Y0内的位置S(Sx, Sy), D(DX, Dy),其中S为通信源节点,D为通信目标节点;RDT(n, l)的完整表述形式为RDT(n, R, 1),其中1表示该RDT网络中 只包含两层Torus: rank-0和rank-l; R表示该RDT网络形成的Torus层数 从0开始的最大值;设定RDT网络为两层Torus网络,那么R》l,将RDT(n, R, 1)简写为RDT(n, 1); n禾尔为基数(cardinal number), 表示rank-1 Torus 内部相邻两节点在rank-O内的跨度,n》本文档来自技高网
...

【技术保护点】
确定RDT片上网络最短路由的方法,其特征在于: 本方法针对的容错模型定义如下: ①RDT片上网络中的任何节点或链路发生错误时,数据无法在错误链路上传输也无法通过一个错误节点进行转发; ②错误模型为静态,就是当前节点对数据包转发的过程中与该节点相连的链路不会出现新错误; ③产生通信的源节点和目标节点均正常工作; ④错误的发生是相互独立的; ⑤如果一个节点发生错误,则认为所有与该节点直接相连的链路均产生错误,即如果节点发生错误则该节点与整个网络隔绝,将节点错误归并到链路错误; ⑥同一层Torus网络内的链路错误信息对网络中的所有正常节点均是可知的; 基于以上容错模型的最短路由方法的具体步骤是: 步骤(1)为RDT rank-0网络建立坐标系,确定节点编号以及通信节点的位置: 首先确定目标RDT(n,1)网络的规模:N×N;以网络左上角节点为原点,水平向右为x轴正方向,竖直向下为y轴正方向,为RDT的rank-0网络建立X0-Y0直角坐标系,其中相邻两节点间的长度定为X0-Y0坐标系的单位长度; 然后按照自上而下的顺序对每行的N个节点自左到右依次编号:*节点K∈目标N×N RDT(n,1),其坐标为(x↓[k],y↓[k]),且满足x↓[k]∈[0,N-1],y↓[k]∈[0,N-1],K的编号Num(k)=N·y↓[k]+x↓[k]; 按上述编号原则确定需要进行通信的两个节点S和D在坐标系X0-Y0内的位置:S(S↓[x],S↓[y]),D(D↓[x],D↓[y]),其中S为通信源节点,D为通信目标节点; 步骤(2)确定目标节点D的镜像超集M’(D) M’(D)为D与其在X0-Y0坐标系内四个镜像点D’↓[north],D’↓[cast],D’↓[south],D’↓[west]的集合,即M’(D)={D,D’↓[north],D’↓[east],D’↓[south],D’↓[west]};D’↓[north],D’↓[east],D’↓[south],D’↓[west]分别位于点D的竖直上方、水平右方、竖直下方和水平左方;这四个镜像点的坐标分别为:D’↓[north](D↓[x],D↓[y]-N),D’↓[east](D↓[x]+N,D↓[y]),D’↓[south](D↓[x],D↓[y]+N),D’↓[west](D↓[x]-N,D↓[y]),镜像超集中的每一个元素为超镜像点; 步骤(3)确定最佳超镜像点 计算M’(D)中各超镜像点与源节点S之间的曼哈顿距离(Manhattandistance),选择与S的曼哈顿距离最短的超镜像点作为最佳超镜像点,并记为M,具体步骤是: a.确定源节点S指向目的节点D的相对矢量V=(V↓[Δx],V↓[Δy]),其中V↓[Δx]=D↓[x]-S↓[x],表示V在X0-Y0坐标系中水平方向的分量;V↓[Δy]=D↓[y]-S↓[y],表示V在X0-Y0坐标系中竖直方向的分量; b.初始化最佳超镜像点M:M(M↓[x],M↓[y])=D(D↓[x],D↓[y]); c.如果|V↓[Δx]|与|V↓[Δy]|中大者大于RDT维度的一半,则转入步骤d;如果小于等于RDT维度的一半,则转入步骤e; d.如果|V↓[Δx]|与|V↓[Δy]|中大者是|V↓[Δx]|,则V↓[Δx]大于0时,将M更新为D’↓[west],V↓[Δx]小于等于0时,将M更新为D’↓[east];如果|V↓[Δx]|与|V↓[Δy]|中大者是|V↓[Δy]|,则V↓[Δy]大于0时,将M更新为D’↓[north],V↓[Δy]小于等于0时,将M更新为D’↓[south]; e.返回最佳超镜像点M; 步骤(4)为RDT rank-1网络建立坐标系 以S为原点,右下方为x轴正方向、左下方为y轴正方向,建立X1-Y1坐标系,其单位长度为RDT rank-1网络中的链路长度;任给X0-Y0坐标系中的一点T(T↓[x],T↓[y]),其在以S为原点建立起来的X1-Y1坐标系中的坐标为: T’(((T↓[y]-S↓[y])+(T↓[x]-S↓[x]))/2n,((T↓[y]-S↓[y])-(T↓[x]-S↓[x]))/2n) (1) 步骤(5)使用VR(Vector Routing)方法确定S和M之间的矢量分解结果 首先确定S指向M的相对矢量:A=a0·x0+b0·y0,其中x0、y0分别表示X0-Y0坐标系内的x方向和y方向的单位矢量,a0、b0分别表示相对矢量A在X0方向和Y0方向的分量,a0=M↓[x]-S↓[x],b0=M↓[y]-S↓[y];然后使用VR方法将相对矢量A分解为X0-Y0单位矢量与X1-Y1单位矢量之和的形式,表示为:A=vecx1·x1+vecy1·y1+vecx0·x0+vecy0·y0;分解方法如下所示: ...

【技术特征摘要】
1、确定RDT片上网络最短路由的方法,其特征在于本方法针对的容错模型定义如下①RDT片上网络中的任何节点或链路发生错误时,数据无法在错误链路上传输也无法通过一个错误节点进行转发;②错误模型为静态,就是当前节点对数据包转发的过程中与该节点相连的链路不会出现新错误;③产生通信的源节点和目标节点均正常工作;④错误的发生是相互独立的;⑤如果一个节点发生错误,则认为所有与该节点直接相连的链路均产生错误,即如果节点发生错误则该节点与整个网络隔绝,将节点错误归并到链路错误;⑥同一层Torus网络内的链路错误信息对网络中的所有正常节点均是可知的;基于以上容错模型的最短路由方法的具体步骤是步骤(1)为RDT rank-0网络建立坐标系,确定节点编号以及通信节点的位置首先确定目标RDT(n,1)网络的规模N×N;以网络左上角节点为原点,水平向右为x轴正方向,竖直向下为y轴正方向,为RDT的rank-0网络建立X0-Y0直角坐标系,其中相邻两节点间的长度定为X0-Y0坐标系的单位长度;然后按照自上而下的顺序对每行的N个节点自左到右依次编号 id=icf0001 file=A2009100969820002C1.tif wi=3 he=3 top= 185 left = 175 img-content=drawing img-format=tif orientation=portrait inline=yes/>节点K∈目标N×N RDT(n,1),其坐标为(xk,yk),且满足xk∈,yk∈,K的编号Num(k)=N·yk+xk;按上述编号原则确定需要进行通信的两个节点S和D在坐标系X0-Y0内的位置S(Sx,Sy),D(Dx,Dy),其中S为通信源节点,D为通信目标节点;步骤(2)确定目标节点D的镜像超集M’(D)M’(D)为D与其在X0-Y0坐标系内四个镜像点D’north,D’cast,D’south,D’west的集合,即M’(D)={D,D’north,D’east,D’south,D’west};D’north,D’east,D’south,D’west分别位于点D的竖直上方、水平右方、竖直下方和水平左方;这四个镜像点的坐标分别为D’north(Dx,Dy-N),D’east(Dx+N,Dy),D’south(Dx,Dy+N),D’west(Dx-N,Dy),镜像超集中的每一个元素为超镜像点;步骤(3)确定最佳超镜像点计算M’(D)中各超镜像点与源节点S之间的曼哈顿距离(Manhattandistance),选择与S的曼哈顿距离最短的超镜像点作为最佳超镜像点,并记为M,具体步骤是a.确定源节点S指向目的节点D的相对矢量V=(VΔx,VΔy),其中VΔx=Dx-Sx,表示V在X0-Y0坐标系中水平方向的分量;VΔy=Dy-Sy,表示V在X0-Y0坐标系中竖直方向的分量;b.初始化最佳超镜像点MM(Mx,My)=D(Dx,Dy);c.如果|VΔx|与|VΔy|中大者大于RDT维度的一半,则转入步骤d;如果小于等于RDT维度的一半,则转入步骤e;d.如果|VΔx|与|VΔy|中大者是|VΔx|,则VΔx大于0时,将M更新为D’west,VΔx小于等于0时,将M更新为D’east;如果|VΔx|与|VΔy|中大者是|VΔy|,则VΔy大于0时,将M更新为D’north,VΔy小于等于0时,将M更新为D’south;e.返回最佳超镜像点M;步骤(4)为RDT rank-1网络建立坐标系以S为原点,右下方为x轴正方向、左下方为y轴正方向,建立X1-Y1坐标系,其单位长度为RDT rank-1网络中的链路长度;任给X0-Y0坐标系中的一点T(Tx,Ty),其在以S为原点建立起来的X1-Y1坐标系中的坐标为T’(((Ty-Sy)+(Tx-Sx))/2n,((Ty-Sy)-(Tx-Sx))/2n)(1)步骤(5)使用VR(Vector Routing)方法确定S和M之间的矢量分解结果首先确定S指向M的相对矢量A=a0·x0+b0·y0,其中x0、y0分别表示X0-Y0坐标系内的x方向和y方向的单位矢量,a0、b0分别表示相对矢量A在X0方向和Y0方向的分量,a0=Mx-Sx,b0=My-Sy;然后使用VR方法将相对矢量A分解为X0-Y0单位矢量与X1-Y1单位矢量之和的形式,表示为A=vecx1·x1+vecy1·y1+vecx0·x0+vecy0·y0;分解方法如下所示vecx1=(a0+b0)/(2×n) (除法按照五舍六入取整)vecy1=-(a0-b0)/(2×n)(除法按照五舍六入取整)vecx0=a0-(vecx1-vecy1)×n (2)vecy0=b0-(vecx1+vecy1)×n其中x1、y1分别表示X1-Y1坐标系内的x方向、y方向的单位矢量;|vecx1|和|vecy1|分别表示X1和Y1方向内rank-1链路的个数,若vecx1、vecy1为正数则表示链路方向为X1和Y1的正方向,为负数则为负方向;|vecx0|和|vecy0|分别表示X0和Y0方向内rank-0链路的个数,若vecx0、vecy0为正数则表示链路方向为X0、Y0的正方向,为负数则为负方向;vecx0、vecy0、vecx1和vecy1统称为矢量系数;步骤(6)确定S和D之间的初始路由方案根据步骤(5)的分解结果对S到M的矢量系数进行处理,确定S到D的路由方案,基本方法是S到M的矢量系数向0逼近,把逼近过程中对应的数据包转发方向应用在对应的RDT网络即可得到S到D的最短路由;具体而言,rank-1内X1方向的链路个数为|vecx1|,若vecx1>0,则数据包传递方向为X1的正方向,传递完成后vecx1自减1;若vecx1≤0,则为X1的负方向,传递完成后vecx1自加1;vecy1和vecx0、vecy0在数据包完成所在链路层对应方向转发之后,在正负号不变的情况下绝对值自减1;rank层次、转发方向选择顺序的不同会导致不同的路由方案,本步骤使用路由消息队列RI记录一种...

【专利技术属性】
技术研发人员:史册陶文质刘鹏
申请(专利权)人:浙江大学
类型:发明
国别省市:86

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1