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

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

目录

  • Butterfly Network
    • 经典的 Butterfly 结构
    • 额外添加Stage提高路径多样性
  • Torus Network
    • Torus 的基本网络结构
    • Torus 与 Mesh 的搭建
    • Express Cube

Butterfly Network

优点:

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

缺点:

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

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

经典的 Butterfly 结构

k-ary n-fly 的 butterfly 网络,有 knk^nkn 个源terminal和 knk^nkn 个目的terminal组成,中间经过了 kn−1k^{n-1}kn−1 个 k∗kk*kk∗k 的 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 来降低经过路由的数量,减少延迟。

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

  1. NoC (Network on chip) 基础 (1) : 片上网络的简介

    本系列的文章是我在学习NoC经典书籍:Principles and Practices of Interconnection Networks 以及相关的论文过程中所作的总结和归纳.在敦促自己建立更全 ...

  2. NoC(Network on Chip)基础 (6):Oblivious Routing 和 Adaptive Routing

    上一篇:NoC(Network on Chip)基础知识 (5):网络路由(Routing)介绍了 NoC 中路由的基础概念并列举了确定性路由的例子. 本篇文章将介绍 Oblivious Routin ...

  3. 计算机网络中网络拓扑,计算机网络基础知识:不同的网络拓扑结构对网络的影响...

    导语:中公小编今天带大家了解计算机网络拓扑结构的相关知识,并认识不同的网络拓扑结构对网络影响有哪些.通过思考题与解答的形式,希望考生可以开拓思维,一起思考.加强对计算机网络基础知识的认识与记忆. 思考 ...

  4. 计算机网络基础:网络分类和拓扑结构知识笔记

    1.计算机网络分类 城域网.广域网.局域网网对比 网络分类 缩写 分布距离 计算机分布范围 传输速率范围 局域网 LAN 10.100.1000m左右 房间.楼寓.校园 4Mb/s- 1Gb/s 城域 ...

  5. 笔记-计算机网络基础-计算机网络分类-总线型-星型-环状-树形-网状-网络拓扑结构...

    网络拓扑结构,包括总线型(bus).星型(star).环型(ring).树型(tree)网络结构. 总线形网络拓扑结构 总线拓扑结构所有设备连接到一条连接介质上.总线结构所需要的电缆数量少,线缆长度短 ...

  6. 再谈P2P技术:网络拓扑结构、核心技术分析

    随着P2P应用的蓬勃发展,作为P2P应用中核心问题的发现技术除了遵循技术本身的逻辑以外,也受到某些技术的发展趋势.需求趋势的深刻影响. P2P协议概述 P2P打破了传统的Client/Server ( ...

  7. 1.网络基础-走进网络世界

    1.1.企业网络环境介绍 计算机网络的类型 LAN ------本地局域网 Local Area Network:•通常指几千米以内的(如家庭网络)路由器内网的接口 WAN ------ 广 域 网 ...

  8. 使用MNIST数据集,在TensorFlow上实现基础LSTM网络

    使用MNIST数据集,在TensorFlow上实现基础LSTM网络 By 路雪2017年9月29日 13:39 本文介绍了如何在 TensorFlow 上实现基础 LSTM 网络的详细过程.作者选用了 ...

  9. dct变换的主要优点有哪些_网络拓扑结构有哪些类型 不同类型网络拓扑结构优缺点介绍【图文】...

    拓扑结构,计算机网络的拓扑结构有哪些类型? 计算机网络的拓扑结构 是指网络中各个站点相互连接的形式,在局域网中明确一点讲就是文件服务器.工作站(连接在网络上的计算机.大容量的外存.高速打印机等设备均可 ...

最新文章

  1. 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇
  2. export 和 export default 的区别
  3. 福州大学计算机专业录取位次,盘点福州大学历年最低录取分数线以及最低位次!给考生做参考...
  4. DCMTK:OFOptional的单元测试
  5. NSArray打印汉字的方法
  6. 小议 static 关键字
  7. FCN论文-语义分割
  8. jsf标签_JSF Facelet标签示例教程
  9. leetcode[232]用栈实现队列/Implement Queue using Stacks
  10. MSA移动安全联盟 获取OAID 异常问题
  11. scikit-learn的高级介绍
  12. Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO
  13. cesium获取当前屏幕中心点坐标
  14. 计算机打印后台处理程序在哪里,Win7系统连接打印机出现本地打印后台处理程序服务没有运行怎么办...
  15. 【记忆化搜索/数位DP】zznu2175(长度为n的含有ACM的字符串)
  16. C语言编程b a化简,C语言编程,已知三角形的三边长a,b,c,计算求三角... 如果三角形三边长 a,b,c,满足( )那么这个三角形......
  17. 怎样查看自己的电脑是多少位的?
  18. 用python进行进制转换(二十六进制)
  19. 我的世界服务器卡屏无响应,我的世界卡屏死机不流畅解决方法_蚕豆网攻略
  20. docker容器使用

热门文章

  1. 启动gazebo失败报错[gazebo-1] process has died [pid 10999, exit code 255
  2. [软考]挣值管理EVM详细解释及应用,实例讲解收集(信息系统项目管理师-成本管理)...
  3. 去除桌面快捷方式上的小箭头
  4. C++ primer(第五版)简单读书笔记
  5. 鸿蒙子系统解读-分布式任务调度篇
  6. Mysql子查询优化技术
  7. 呼吸系统疾病病人的护理题库【1】
  8. 系统分析实验 Python
  9. Python那些让我疑惑许久的代码--2
  10. 红黑树 -- 增删查改