NoC(Network on Chip)基础 (3):网络拓扑结构 Butterfly、Torus、Mesh

上一篇:NoC (Network on chip) 基础知识 (2) :片上网络的拓扑结构(Topology) 介绍了网络拓扑中的常见概念。

本篇文章将重点介绍 Butterfly 和 Torus 网络架构。

Butterfly Network

优点:

  • 网络拓扑的直径小,对于一个 k-ary n-fly 的 butterfly 网络,只需通过n跳就可以实现任意节点间的传输。
  • 路由算法实现简单。

缺点:

  • 路径多样性差。(如果增加 stage 可以缓解这个问题)
  • 连接该结构需要较长的导线,这会降低传输速度。

目前Butterfly 结构以及它的众多变种在许多场景广泛应用。

经典的 Butterfly 结构

k-ary n-fly 的 butterfly 网络,有 k n k^n kn 个源terminal和 k n k^n kn 个目的terminal组成,中间经过了 k n − 1 k^{n-1} kn1 k ∗ k k*k kk 的 switch node。

下面的结构是一个 2-ary 4-fly 的经典butterfly拓扑。
在这里插入图片描述

额外添加Stage提高路径多样性

传统的butterfly结构点到点都只有一条路径。通过增加额外的 stage,能将路径多样性提高。

对于下面的2-ary 3-fly的拓扑结构,通过增加一个stage,使所有点到点的路径数从1变到了2。
在这里插入图片描述

Torus Network

优点:

  • 路径多样性大,能均衡负载。

缺点:

  • 需要较多的跳数才能达到目的节点。

Torus 的基本网络结构

与 Butterfly 结构不同,Torus 是 direct network。所有的节点同时是 input terminal、output terminal 和 switching node。

我们用 k-ary n-cube 来表示。k 是排列的边的长度,n 是排列的维度。( 如:3-ary 2-cube 是一个 2-D torus 在每个维度上有3个节点 )。
在这里插入图片描述

可以通过迭代增加维度的方式构建一个高维度的 Torus 网络。可以将k个 k-ary (n-1)-cube 的拓扑的各个channels连接成环,得到 k-ary n-cube 的拓扑。
在这里插入图片描述
Mesh结构与Torus类似,只是去掉了”环“。

对于相同节点个数和维度的 Mesh 和 Torus,Mesh 的 bisection channels 是 Torus 的二分之一。
然而 Mesh 缺少边对称性。这会导致负载不均衡。中心位置的channels会比靠边的channels承受更大的负载。

在这里插入图片描述
Torus 与 Mesh 均可以使用双向或单向的channels。虽然使用双向的channels会占用两倍数量的节点端口,但带来了一个更低的路由跳数,同时增加了路径多样性。一般在这里选择双向channels

各个维度的节点数量也可以不同。然而这样会更大的损失边对称性,带来负载的不均衡。下图中的 2,3,4-ary 3-mesh 的拓扑,即使对于uniform traffic(完全随机)而言,x方向的负载会是z方向负载的两倍。

Torus 与 Mesh 的搭建

在现实世界中搭建 Torus 与 Mesh 需要考虑更多的因素。

如果直接按照上面的拓扑图,会导致”回环的那一条channel“长度比其他的都要长,这会带来更大的延迟,甚至可能降低电路的整体频率。

通常采用**折叠(folding)**的方法解决此类问题。如下图:
在这里插入图片描述
在这里插入图片描述
如果逻辑上的维度,不满足物理条件的限制时,可以将额外的维度映射到低维上。(下图将 2维 Mesh 映射到了 1维物理空间上)
在这里插入图片描述

Express Cube

在 Torus 和 Mesh 中,占传输延迟大部分的是 routing latency。我们可以通过增加额外的 long(express) channel 来降低经过路由的数量,减少延迟。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值