上一篇: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. 京东618:智能机器人JIMI的进击之路
  2. Ubuntu16.04安装Pycharm2017.2
  3. QT5 QT4--LNK2019 无法解析的外部符号
  4. 在linux系统中 用于配置和显示,在Linux系统中使用sway设置多个显示器/监视器
  5. Linux Shell脚本实现根据进程名杀死进程
  6. vb 如何给静态变量赋初值
  7. comment desc显示表结构_营销模块数据库表解析(二)
  8. io流技术java_技术文章-java中的IO流
  9. 在惨遭勒索病毒攻击之后,微软呼吁重新制定“数字日内瓦公约”
  10. php curl跨域cookie_PHP curl模拟文件上传(接口请求实现跨域文件中转)
  11. 基于JAVA+SpringBoot+Mybatis+MYSQL的新闻发布系统
  12. 1002 输出第二个整数
  13. Intel服务器芯片组区别,不同芯片组的主板有什么区别?
  14. Angular报注入错误,以及解决方式..$injector:unpr]
  15. 主数据与数据中台有什么区别?
  16. 启动计算机 英语,电脑开机出现英文怎么办
  17. ipykernel_launcher.py: error: unrecognized arguments: -f C:\Users\ABC\AppData\Roaming\
  18. 机器学习--贝叶斯网
  19. 谈谈Android 6.0 的动态权限管理
  20. 软件测试工程师书籍介绍(精华)

热门文章

  1. Webots中常用的函数(C版)
  2. InnoDB之redo log
  3. 推荐|脚本2分钟实现电话短信报警
  4. 仿微信做个极速二维码扫描功能
  5. TensorBoard对训练过程可视化(不用tf.summaries.merge_all)
  6. 基于Python+Sqlite实现(图形化)民航售票管理系统【100010198】
  7. 某微信公众号运营数据分析报告
  8. Kali/Ubuntu GVM (openvas)安装及使用
  9. win10-2016企业版长期服务版激活
  10. Android第三方库收藏汇总