一种片上网络拓扑结构及其自适应路由方法

文档序号:9435942阅读:624来源:国知局
一种片上网络拓扑结构及其自适应路由方法
【技术领域】
[0001] 本发明属于片上网络领域,具体涉及一种片上网络拓扑结构及其自适应路由方 法。
【背景技术】
[0002] 随着集成电路技术的飞速发展,系统规模越来越大,时钟频率越来越高,传统总线 时钟和功耗方面的问题越来越难以解决;片上网络(NetworkonChip,NoC)可以很好的解 决这些问题,已逐渐成为片上多核的标准通信架构;
[0003] 目前,大多数片上网络采用最典型的2D-Mesh(二维网格)结构或者2D-Torus(二 维环状)结构;2D-Mesh拓扑结构,其节点之间的连线方式比较简单,路由方法和物理实现 难度相对较低,占用的片上资源比较少;但是随着网络直径的增加,节点间的距离会增大, 导致路由延迟大大增加,数据传输效率大大降低;2D-T〇rUS拓扑结构的每一个路由节点都 与四个方向的路由节点相连接,每个节点的结构相同,使得其具有很好的可扩展性,且其路 由路径的多样性有效降低了阻塞的发生,提高了网络的传输效率;但是,基于2D-T〇rUS拓 扑结构的片上网络,由于增加了首尾节点的长连线,会增加传输延迟,带来路由死锁的问 题;若采用虚拟通道的方法来解决这个问题,会占据大量的片上资源,并不利于硬件实现, 从而无法体现出片上网络的优越性;
[0004] 此外,片上网络路由方法的设计对于片上网络的性能也是至关重要的;路由方法 的设计目标在于是否能够有效地避免阻塞的发生,充分利用片上网络的空闲资源,以此来 改善片上网络的延迟和吞吐率;同时路由方法的设计还要尽可能少的占用片上资源,减小 片上网络的功耗;现在,大多数片上网络采用确定性路由方法,当源节点和目的节点确定 后,其传输的路径也就确定了,当该路径上某一节点发生阻塞时,数据包会停止路由进行等 待;因此,这种路由方法增加了网络传输的延迟,导致整个网络负载的不平衡。

【发明内容】

[0005] 针对现有技术的不足,本发明提出一种片上网络拓扑结构及其自适应路由方法, 以达到减小路由平均跳数和网络直径,实现根据阻塞情况自主调整,减小路由延迟,提高数 据的传输效率的目的。
[0006] -种片上网络拓扑结构,该片上网络拓扑结构为一个NXN的H-annularMesh(半 环形网格)片上网络拓扑结构。
[0007] 所述的N为偶数时,将片上网络中每一行中间的两个节点与该行的首尾节点相连 接,将片上网络中每一列中间的两个节点与该列的首尾节点相连接。
[0008] 所述的N为奇数时,将每一行中间节点左右两侧的节点与首尾节点相连接,将每 一列中间节点上下两侧的节点与首尾节点相连接。
[0009] 该片上网络拓扑结构x方向上新增连接线的方向为Tx方向,y方向上新增连接线 的方向为Ty方向。
[0010] 所述的节点即为路由器,其中,既有Tx方向连线又有Ty方向连线的路由器有7个 端口,包括:本地端口、东向端口、西向端口、南向端口、北向端口、Tx端口和Ty端口;只有 Tx方向或Ty方向连线的路由器有6个端口,包括:本地端口、东向端口、西向端口、南向端 口、北向端口、Tx端口或Ty端口;其余的路由器有5个端口,包括:本地端口、东向端口、西 向端口、南向端口和北向端口。
[0011] 采用所述的片上网络拓扑结构进行的自适应路由方法,包括以下步骤:
[0012] 步骤1、在片上网络拓扑结构中,根据用户发送请求信息确定源节点和目的节点;
[0013] 步骤2、判断当前节点本身是否为目的节点,若是,则将要求发送的数据发送至当 前节点的本地端口,否则,执行步骤3 ;
[0014] 步骤3、判断当前节点与目的节点之间的方向为东西方向之一、或南北方向之一、 或东南方向、或西南方向、或东北方向、或西北方向,若为东西方向之一,则执行步骤4 ;若 为南北方向之一,则执行步骤6 ;若为东南方向,则执行步骤8 ;若为西南方向,则执行步骤 10 ;若为东北方向,则执行步骤12 ;若为西北方向,则执行步骤14 ;
[0015] 步骤4、判断当前节点是否有Tx端口,若有,则执行步骤5;否则,将要求发送的数 据发送至东向端口或西向端口;
[0016] 步骤5、判断当前节点与目的节点之间的路径上是否有Tx方向连线且该连线属于 当前节点的Tx端口,若有,则将要求发送的数据发送至Tx端口,否则,将要求发送的数据发 送至东向端口或西向端口;
[0017] 步骤6、判断当前节点是否有Ty端口,若有,则执行步骤7;否则,将要求发送的数 据发送至南向端口或北向端口;
[0018] 步骤7、判断当前节点与目的节点之间的路径上是否有Ty方向连线且该连线属于 当前节点的Ty端口,若有,则将要求发送的数据发送至Ty端口,否则,将要求发送的数据发 送至南向端口或北向端口;
[0019] 步骤8、判断当前节点与目的节点之间的路径上是否有Tx方向连线且该连线属于 当前节点的Tx端口,或当前节点与目的节点之间的路径上是否有Ty方向连线且该连线属 于当前节点的Ty端口,若有,则将要求发送的数据发送至Tx端口或Ty端口,否则,执行步 骤9 ;
[0020] 步骤9、判断当前节点的东向端口和南向端口是否有阻塞情况,若上述两个端口均 阻塞,则等待阻塞情况消失后将要求发送的数据发送至东向端口或南向端口,若上述两个 端口其中之一阻塞,则将要求发送的数据发送至未阻塞的端口,若上述两个端口均未阻塞, 则通过轮转的方式将要求发送的数据发送至东向端口或南向端口;
[0021] 步骤10、判断当前节点与目的节点之间的路径上是否有Tx方向连线且该连线属 于当前节点的Tx端口,或当前节点与目的节点之间的路径上是否有Ty方向连线且该连线 属于当前节点的Ty端口,若有,则将要求发送的数据发送至Tx端口或Ty端口,否则,执行 步骤11 ;
[0022] 步骤11、判断当前节点的西向端口和南向端口是否有阻塞情况,若上述两个端口 均阻塞,则等待阻塞情况消失后将要求发送的数据发送至西向端口或南向端口,若上述两 个端口其中之一阻塞,则将要求发送的数据发送至未阻塞的端口,若上述两个端口均未阻 塞,则通过轮转的方式将要求发送的数据发送至西向端口或南向端口;
[0023] 步骤12、判断当前节点与目的节点之间的路径上是否有Tx方向连线且该连线属 于当前节点的Tx端口,或当前节点与目的节点之间的路径上是否有Ty方向连线且该连线 属于当前节点的Ty端口,若有,则将要求发送的数据发送至Tx端口或Ty端口,否则,执行 步骤13 ;
[0024] 步骤13、判断当前节点的东向端口和北向端口是否有阻塞情况,若上述两个端口 均阻塞,则等待阻塞情况消失后将要求发送的数据发送至东向端口或北向端口,若上述两 个端口其中之一阻塞,则将要求发送的数据发送至未阻塞的端口,若上述两个端口均未阻 塞,则通过轮转的方式将要求发送的数据发送至东向端口或北向端口;
[0025] 步骤14、判断当前节点与目的节点之间的路径上是否有Tx方向连线且该连线属 于当前节点的Tx端口,或当前节点与目的节点之间的路径上是否有Ty方向连线且该连线 属于当前节点的Ty端口,若有,则将要求发送的数据发送至Tx端口或Ty端口,否则,执行 步骤15 ;
[0026] 步骤15、判断当前节点的西向端口和北向端口是否有阻塞情况,若上述两个端口 均阻塞,则等待阻塞情况消失后将要求发送的数据发送至西向端口或北向端口,若上述两 个端口其中之一阻塞,则将要求发送的数据发送至未阻塞的端口,若上述两个端口均未阻 塞,则通过轮转的方式将要求发送的数据发送至西向端口或北向端口;
[0027] 步骤16、返回执行步骤2,直至当前节点为目的节点。
[0028] 步骤2所述的当前节点,初始时为源节点。
[0029] 步骤8所述的将要求发送的数据发送至Tx端口或Ty端口,需要判断对应的Tx端 口或Ty端口是否有阻塞情况,若是,则执行步骤9,若否,则将要发送的数据发送至相应的 Tx端口或Ty端口;
[0030] 步骤10所述的将要求发送的数据发送至Tx端口或Ty端口,需要首先判断对应的 Tx端口或Ty端口是否有阻塞情况,若是,则执行步骤11,若否,则将要发送的数据发送至相 应的Tx端口或Ty端口;
[0031] 步骤12所述的将要求发送的数据发送至Tx端口或Ty端口,需要判断对应的Tx 端口或Ty端口是否有阻塞情况,若是,则执行步骤13,若否,则将要发送的数据发送至相应 的Tx端口或Ty端口;
[0032] 步骤14所述的将要求发送的数据发送至Tx端口或Ty端口,需要判断对应的Tx 端口或Ty端口是否有阻塞情况,若是,则执行
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1