一种基于Torus网络的双接入结构及其工作方式的制作方法_3

文档序号:9767775阅读:来源:国知局
负方向 为西向,以Y轴的正方向为北向,以Y轴的负方向为南向;则在坐标系0ΧΥ中的各个路由节点 的位置坐标即为相应路由节点地址;任意一个路由节点具有两个位置坐标;包括一级坐标 和二级坐标;图3所示为本实施例中的一个4X4的双接入Torus网络,其中方块代表路由节 点,圆圈代表资源节点;同时根据所建立的坐标系为每个路由节点和资源节点设置相应坐 标。
[0089] 如图4所示,路由节点的组成包括:输入状态机模块、优先级编码器模块、译码器模 块、仲裁器模块、交叉开关模块和输出状态机模块;
[0090] 输入状态机模块用于控制数据有序输入,并由四个方向上的输入状态机和两个对 角线方向上的输入状态机组成,包括:东向输入状态机、西向输入状态机、北向输入状态机、 南向输入状态机、本地〇方向输入状态机和本地1方向输入状态机;路由节点的6个方向的分 布图如图5所示,本地0方向输入状态机和本地1方向输入状态机分别连接两个不同的资源 节点,用于实现路由节点与资源节点的通信,其余四个方向的输入状态分别与相邻的节点 通信;
[0091] 任意一个输入状态机的工作状态包括:空闲状态F_IDLE、请求状态?_1^〇、预锁定 状态F_PREL0CK、锁定状态?_030(和失败状态F_FAIL
[0092] 任意一个输入状态机的初始状态为空闲状态?_101^;
[0093] 输出状态机模块用于控制数据有序输出,并由四个方向上的输出状态机和两个对 角线方向上的输出状态机组成,包括:东向输出状态机、西向输出状态机、北向输出状态机、 南向输出状态机、本地〇方向输出状态机和本地1方向输出状态机;
[0094]任意一个输出状态机的工作状态包括:空闲状态F_IDLE和锁定状态F_L0CK;
[0095] 任意一个输出状态机的初始状态为空闲状态?_101^;
[0096] 优先级编码器模块用于根据所设定的优先级顺序控制路由请求的处理顺序;本实 施例中的优先级顺序为本地〇方向〉本地1方向〉东向〉南向〉西向〉北向,只有当优先级高的 路由请求处理完成后,才处理低优先级的请求。
[0097] 译码器模块用于根据输入的路由请求产生数据传输的路由方向;
[0098] 仲裁器模块用于判断所产生的路由方向在相应的输出状态机上是否被占据;若被 占据,则向输入状态机模块返回"拒绝分配"信号,若不被占据,则向输入状态机模块返回 "允许分配"信号,并向交叉开关模块发送connection互连信号;connection互连信号用三 十六位二进制表示,connect ion互连信号每六位分成一组,每组表示本地0方向、本地1方 向、东向、南向、西向、北向六个输出状态机与六个输入状态机的连接关系。例如connection 互连信号为000001 000010 000100 001000 010000 100000时表示,本地〇输出状态机与北 向输入状态机相连,本地1输出状态机与西向输入状态机相连,东向输出状态机与南向输入 状态机相连,南向输出状态机与东向输入状态机相连,西向输出状态机与本地1输入状态机 相连,北向输出状态机与本地0输入状态机相连。
[0099] 交叉开关模块根据connection互连信号实现相应输入状态机与相应输出状态机 的互联。
[0100] -种基于Torus网络的双接入结构的工作方式,是应用于任意两个资源节点之间 数据进行传输的过程中;所传输的数据包括:路由包、数据包和结束包;路由包包含目的节 点地址;定义发送路由包的资源节点为请求方源节点,接收路由包的资源节点为目的节点; 根据所传输的数据沿着所经过路由节点的顺序,定义数据当前所经过的路由节点为当前节 点,则数据所经过的上一个路由节点为上游节点,数据将要经过的下一个路由节点为下游 节点;
[0101] 数据传输的过程是按如下步骤进行:
[0102] 步骤1、请求方源节点向与其相连的路由节点的输入状态机模块发送路由请求和 路由包,则接收到路由请求和路由包的路由节点变为当前节点;
[0103]步骤2、当前节点的输入状态机模块接收到路由包和路由请求;则当前节点在所接 收方向上的输入状态机的工作状态由空闲状态F_IDLE跳转到请求状态?_1^〇;接收方向上 的输入状态机将路由请求以及路由包中的目的节点地址发送到优先级编码器模块;
[0104] 步骤3、当前节点的优先级编码器模块接收到路由请求,并根据所设定的优先级顺 序处理来自不同方向上的路由请求;从而选出最高优先级的路由请求,并用select信号表 示;select以六位二进制表示,从低位到高位分别表示本地0方向、本地1方向、东向、南向、 西向、北向,根据所选出的最高优先级的方向,将相应为置为1;再将select信号及其所对应 的路由包中的目的节点地址发送到译码器模块;
[0105] 步骤4、当前节点的译码器模块根据所接收的select信号,根据目的节点切换方法 将select信号所对应方向的路由包中的目的节点地址与当前节点地址进行比较,从而产生 可能的路由方向,并用dest信号表示;dest以六位二进制表示,从低位到高位分别表示本地 〇方向、本地1方向、东向、南向、西向、北向;当其中一个方向被占用时,可以选择其他的方向 继续路由到达目的节点,提高数据传输通道建立的成功率。具体的说,目的节点切换方法 为:
[0106] 在坐标系0ΧΥ中,假设当前路由节点的一级坐标为(Xl,yl)、二级坐标为(X2,y2); 则与当前路由节点在本地〇方向上相连接的资源节点的位置坐标为(xl,yl);与当前路由节 点在本地1方向上相连接的资源节点的位置坐标为(x2,y2);假设目的节点的位置坐标为 (x,y);则按如下方式产生可能的路由方向:
[0107] 若当前节点不是与目的节点所相邻的4个路由节点,则不需要考虑路由请求的方 向,按如下方式进行:
[0108] 当x>xl时,则路由请求可能的路由方向为东向;
[0109] 当x〈xl-l时,则路由请求可能的路由方向为西向;
[0110] 当y>yl时,则当前请求可能的路由方向为南向;
[0111] 当y〈yl_l时,贝lj当前路由请求可能的方向为北向;
[0112]若当前节点为目的节点相邻的4个路由节点中的其中一个,则需要选择与目的节 点相连的两个路由节点,同时考虑路由请求的方向,可分为三种方式:
[0113] 方式一:当 χ = χ1 且 y = yl 时,
[0114] 若路由请求来自东向,则可能的路由方向为本地0方向和南向;
[0115] 若路由请求来自南向,则可能的路由方向为本地0方向和东向;
[0116] 若路由请求来自西向,则可能的路由方向为本地0方向、东向和南向;
[0117] 若路由请求来自北向,则可能的路由方向为本地0方向、东向和南向;
[0118] 当 X = X2 且 y = y2 时,
[0119] 若路由请求来自东向,则可能的路由方向为本地1方向、北向和西向;
[0120] 若路由请求来自南向,则可能的路由方向为本地1方向、北向和西向;
[0121] 若路由请求来自西向,则可能的路由方向为本地1方向和北向;
[0122] 若路由请求来自北向,则可能的路由方向为本地1方向和西向。
[0123] 若x = xl且y = yl时;除了选择本地0方向外,还会根据请求是否来自西向和北向而 选择东向和南向作为可能的路由方向;若路由请求来自东向则只能选择南向,路由请求来 自南向则只能东向;这样可以避免请求方向与路由方向相同而造成重复路由;若当前节点 的本地方向被占用,则可以与资源节点相连的另外一个路由节点到达目的节点;若x = x2且 y = y2时的情况与其相同;例如在图6中当前节点为22,若22的本地0方向被占用,则同通过 东向的23节点路由到33节点从而到达目的节点,或者通过32节点路由到33节点二进入目的 节点,为了避免重复路由而出现"活锁",要避免请求方向与路由方向相同。
[0124] 方式二:当 x = xl 且 y = yl_l 时,
[0125] 若路由请求来自南向,则可能的路由方向为东向和北向;
[0126] 若路由请求来自西向,则可能的路由方向为东向和北向;
[0127] 若路由请求来自东向,则可能的路由方向为北向;
[0128] 若路由请求来自北向,则可能的路由方向为东向;
[0129] 若x = xl且y = yl_l时,可以同时选择东向和北向作为可能的路由方向,但若路由 请求来自东向和北向,为避免重复路由,东向的路由请求只能选择北向;北向的路由请求只 能选择东向;如图7所示,当前节点
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1