一种基于“包-电路”交换技术的动态转向路由算法转让专利
申请号 : CN201610645178.0
文献号 : CN106209518B
文献日 : 2019-01-11
发明人 : 宋宇鲲 , 钱庆松 , 张多利 , 姚永彤
申请人 : 合肥工业大学
摘要 :
权利要求 :
1.一种基于“包-电路”交换技术的动态转向路由算法,其特征是应用于包含若干个路由节点、若干个资源节点和若干条互连通道所组成的片上网络中;所述路由节点包括:输入控制器、地址译码器、仲裁器、交叉开关、输出控制器;
当前路由节点的输入控制器接收来自上游路由节点或资源节点的路由请求后,向所述上游路由节点或资源节点反馈链路建立情况,并根据所述链路建立情况控制自身输入控制器的工作状态,同时将接收到的路由请求发送到自身地址译码器;
所述当前路由节点的地址译码器接收来自不同的输入控制器的路由请求,并按照优先级顺序处理各个路由请求;所述地址译码器从所述路由请求提取路由的目的节点坐标,从而根据所述当前路由节点的坐标和所述目的节点的目标确定所述当前路由节点的可能路由方向;以可能路由方向作为所述当前路由节点的后继选择方向;从而确定在所述后继选择方向上的后继节点的可能路由方向;进而将所述后继选择方向、后继节点的可能路由方向以及路由请求发送到仲裁器;
所述当前路由节点的仲裁器接收所述后继选择方向、后继节点的可能路由方向以及路由请求后,根据所述当前路由节点和所述后继节点的输出端口占用情况,按照优先级顺序选择所述路由请求在所述当前路由节点上的可用输出端口;若存在可用输出端口,则产生一个互连信号给控制交叉开关,若不存在可用输出端口,则向所述当前路由节点的输入控制器反馈失败信号,用于重新确定当前路由节点的输入控制器的工作状态;
所述当前路由节点的交叉开关接收来自所述仲裁器的互连信号,从而控制当前路由节点相应的输入控制器和输出控制器相连;
所述当前路由节点的输出控制器接收来自所述输入控制器的路由请求,并将其传输到所述后继节点,同时将所述后继节点反馈的链路建立情况发送到所述当前路由节点的输入控制器,从而实现动态改变路由路径。
2.根据权利要求1所述的动态转向路由算法,其特征是,假设所述当前路由节点的坐标为(X,Y),所述目的节点的坐标为(DEST_X,DEST_Y);任意一个路由节点具有五个方向,包括:东向、南向、西向、北向和本地方向;则所述当前路由节点的可能路由方向是按如下原则确定:a.若DEST_X>X,则可能的路由方向为东向;
b.若DEST_X
c.若DEST_Y>Y,则可能的路由方向为南向;
d.若DEST_Y
e.若DEST_X=X且DEST_Y=Y,则可能的路由方向为本地方向。
3.根据权利要求2所述的动态转向路由算法,其特征是,所述后继选择方向上的后继节点的可能路由方向是按如下方式确定:a.若当前路由节点的可能路由方向为东向,则根据所述原则比较目的节点坐标(DEST_X,DEST_Y)和东向上的后继节点坐标(X+1,Y),从而确定后继节点的可能路由方向;
b.若当前路由节点的可能路由方向为南向,则根据所述原则比较目的节点坐标(DEST_X,DEST_Y)和南向上的后继节点坐标(X,Y+1),从而确定后继节点的可能路由方向;
c.若当前路由节点的可能路由方向为西向,则根据所述原则比较目的节点坐标(DEST_X,DEST_Y)和西向上的后继节点坐标(X-1,Y),从而确定后继节点的可能路由方向;
d.若当前路由节点的可能路由方向为北向,则根据所述原则比较目的节点坐标(DEST_X,DEST_Y)和北向上的后继节点坐标(X,Y-1),从而确定后继节点的可能路由方向;
e若当前路由节点可能的路由方向为本地方向,则不进行比较。
4.根据权利要求3所述的动态转向路由算法,其特征是,所述仲裁器是按如下方式选择在所述当前路由节点上的可用输出端口:a.若所述当前路由节点的可能路由方向为东向,则判断当前路由节点的东向输出端口是否可用,若不可用,则直接反馈失败信号;若可用,则继续按优先级顺序判断东向上的后继节点的可能路由方向上的输出端口是否可用;
若存在可用的输出端口,则选择东向的输出端口作为所述当前路由节点上的可用输出端口;若不存在可用的输出端口,则反馈失败信号;
b.若所述当前路由节点的可能路由方向为南向,则判断当前路由节点的南向输出端口是否可用,若不可用,则直接反馈失败信号;若可用,继续按优先级顺序判断南向的所述后继节点的可能路由方向上的输出端口是否可用;
若存在可用的输出端口,则选择南向的输出端口作为所述当前路由节点上的可用输出端口;若不存在可用输出端口,则反馈失败信号;
c.若所述当前路由节点的可能路由方向为西向,则判断当前路由节点的西向输出端口是否可用,若不可用,则直接反馈失败信号;若可用,继续按优先级顺序判断西向的所述后继节点的可能路由方向上的输出端口是否可用;
若存在可用的输出端口,则选择西向的输出端口作为所述当前路由节点上的可用输出端口;若不存在可用输出端口,则反馈失败信号;
d.若所述当前路由节点的可能路由方向为北向,则判断当前路由节点的北向输出端口是否可用,若不可用,则直接反馈失败信号;若可用,继续按优先级顺序判断北向的所述后继节点的可能路由方向上的输出端口是否可用;
若存在可用的输出端口,则选择北向的输出端口作为所述当前路由节点上的可用输出端口;若不存在可用输出端口,则反馈失败信号;
e.若所述当前路由节点的可能路由方向为本地方向,则直接判断所述当前路由节点的本地方向输出端口是否可用,若可用,则选择本地方向的输出端口作为所述当前路由节点上的可用输出端口;若不可用,则反馈失败信号。
说明书 :
一种基于“包-电路”交换技术的动态转向路由算法
技术领域
背景技术
发明内容
附图说明
具体实施方式
资源消耗 6412 10705