NoC(Network on Chip)基础 (4):Non-Blocking(Circuit Switch)Network——Crossbar 和 Clos
文章目录
- Non-Blocking 的基本概念
- Crossbar Switch
- Clos Network
- 网络基本结构
- Unicast Routing on Strictly Non-Blocking Clos
- Unicast Routing on Rearrangeable Clos Networks
Non-Blocking 的基本概念
电路交换网络(Circuit-Switched Network):不同于包交换网络(packet-switched)的共享资源,电路交换网络在传输数据之前,会建立一条从 source 到 destination 专用的连接,数据会连续地通过这条连接传输,数据传输完成后断开连接。
非阻塞网络(Non-Blocking Network)与 阻塞网络(Blocking-Network):Non-Blocking 与 Blocking 是 Circuit-Swtiched 网络的一种分类方式。
Non-Blocking 网络可以同时为所有由 input 到 output 的数据传输请求建立连接。即在同一时刻,所有的 input 到它所选择的 output 之间的连接不会产生冲突(共享一条channel)。
Blocking 网络不能同时处理由所有 input 发出的向 output 建立连接的请求。
非阻塞网络(Non-Blocking Network)的分类:
- Strictly Non-Blocking:连接可以递增地建立。在建立新的连接时,不必改变之前已建立的连接的路由路径。
- Rearrangeably Non-Blocking:在建立新的连接时,可能需要将之前已建立的其他连接重新设置路由路径。
通常对于以上概念,我们都只考虑 unicast traffic 的场景,即一个 input 最多只和一个 output 建立连接,每个 output 也只和一个 input 建立连接。
Crossbar Switch
Crossbar 是经典的 Non-Blocking 网络,最早的电话网络大多使用 crossbar 实现。
在数字逻辑电路上,对于 n 个 input,m 个 output 的 crossbar 网络,需要 m 个 n:1 的多选器来实现。
Crossbar 最大的缺陷在于它的面积与开销。随着 input 和 output 规模的增大,电路规模会以 n x n 的量级扩大,而后面将介绍的其他 Non-Blocking 网络规模增长的量级仅为 n x logn。
Clos Network
网络基本结构
经典的 Clos 结构是一个三阶段的网络,每一阶段由若干数量的 crossbar swtich 组成。通常使用三元组(m, n, r)来表示一个 Clos 的参数:
- m 是中间阶段 switch 的数量。
- n 是每个input/output swtich 的端口数量。
- r 是 input、output 阶段 switch 的数量。
- 每个 middle switch 会和所有的 input swtich 和 output swtich 相连。
第一阶段的 r 个 input swtich 是 n x m 的 crossbar,每个 swtich 将各自 n 个输入端口连接到 m 个 middle swtich 上。
第二阶段的 m 个 middle switch 是 r x r 的 crossbar,每个 switch 将 r 个 input swtich 与 r 个 output swtich 相连。
第三阶段的 r 个 output switch 是 m x n 的 crossbar,每个 switch 将 m 个 middle switch 与 n 个输出端口相连。
Unicast Routing on Strictly Non-Blocking Clos
在 Clos 的路由选择上,唯一可以进行选择的地方在 input switch。只要 input switch 到 middle switch 的 channel 没有被占用,input switch 就可以选择该 middle switch 作为建立连接的中间节点。一旦 middle switch 被选定,剩下的路径也就被唯一确定了(或者路径繁忙路由失败)。
定理: 如果对于一个 Clos, m>=2n−1m >= 2n - 1m>=2n−1,那么它是 strictly non-blocking。
证明: 由 input switch A.i 向 input switch B.j 建立连接。
若 A 的 n-1 个端口和 B 的 n-1 个端口均已建立连接。A 已建立的连接选择前 n-1 个middle switch,B已建立的连接用到后 n-1 个 middle switch。
这时还再需要一个可用的 middle swtich,才能完成 A.i 向 B.j 的连接。
共计是 m=2n−1m = 2n -1m=2n−1 个 middle switch,能够作为 strictly non-blocking 的充分条件。
路由算法: 根据上面推导的证明过程,可以得到路由选择算法,即只要有能用的 middle switch,双边要用到的 channel 均空闲,就可以选择。
strictly non-blocking 的路由算法非常简单,然而它的花销较大。它所需 middle switch 的数量是 rearrangeable network 的 2n−1n\frac{2n-1}{n}n2n−1 倍。
Unicast Routing on Rearrangeable Clos Networks
定理: 如果对于一个 Clos, m>=nm >= nm>=n,那么它是 rearrangeable non-blocking。
路由算法: 从 input swtich a 向 output swtich b 建立连接。
1、如果有可用的 middle switch,a、b 两端均为空闲,则选择该 middle swtich。
2、如果没有可用的 middle swtich,则选择 a 端空闲的 middle switch,建立连接。
3、之前的 switch c 通过该 middle switch 与 swtich b 的连接断开。重新为 input switch c 到 output switch b 尝试建立连接。
4、如此循环迭代。回到步1。
定理:上述算法的循环,最多经过 2r−22r-22r−2 次的迭代,可以最终完成全部 arrangement。
NoC(Network on Chip)基础 (4):Non-Blocking(Circuit Switch)Network——Crossbar 和 Clos相关推荐
- NoC (Network on chip) 基础 (1) : 片上网络的简介
本系列的文章是我在学习NoC经典书籍:Principles and Practices of Interconnection Networks 以及相关的论文过程中所作的总结和归纳.在敦促自己建立更全 ...
- NoC(Network on Chip)基础 (3):网络拓扑结构 Butterfly、Torus、Mesh
上一篇:NoC (Network on chip) 基础知识 (2) :片上网络的拓扑结构(Topology) 介绍了网络拓扑中的常见概念. 本篇文章将重点介绍 Butterfly 和 Torus 网 ...
- NoC(Network on Chip)基础 (6):Oblivious Routing 和 Adaptive Routing
上一篇:NoC(Network on Chip)基础知识 (5):网络路由(Routing)介绍了 NoC 中路由的基础概念并列举了确定性路由的例子. 本篇文章将介绍 Oblivious Routin ...
- VXLAN 隧道 基础介绍 Virtual eXtensible Local Area Network,虚拟可扩展局域网
一.概述 VXLAN(Virtual eXtensible Local Area Network,虚拟可扩展局域网),是一种虚拟化隧道通信技术.它是一种 Overlay(覆盖网络)技术,通过三层的网络 ...
- nin神经网络_深度学习基础(三)NIN_Network In Network
该论文提出了一种新颖的深度网络结构,称为"Network In Network"(NIN),以增强模型对感受野内local patches的辨别能力.与传统的CNNs相比,NIN主 ...
- 【Network】网络基础扫盲
网络基础扫盲 正文开始@小边小边不秃头 hi~ 宝子们,好久好久不见,从今往后,我的文章会较为随意(因为我懒得维持文章严谨的逻辑了,写文章只不过已经变成了习惯,也就是说我只是抱着"学习&qu ...
- php switch 函数,PHP丨PHP基础知识之条件语SWITCH判断「理论篇」
Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择.以PHP来说,switch(开关语句)常和case break default一起使用 典型结构 switch($control ...
- LSA类型讲解——LSA-2(第二类LSA——Network LSA)、LSA-3(第三类LSA——Network Summary LSA)详解
目录 一.LSA-2 (1)--简介: (2)--头部信息: (3)--数据部分: (4)--作用: (5)如何查看: 二.LSA-3 (1)--简介: (2)--头部信息: (3)--数据部分: ( ...
- java基础面试题之:switch的参数类型
1.参数类型 基础数据类型: (整数):byte,short,int (字符):char 非基础数据类型:String和枚举类 2.跟break有关的事情: 源代码: for(int x=0;x< ...
最新文章
- 安装JDK1.8+环境配置
- 网站优化只需五步技巧分享推广无界限
- Flutter ListView解决底部或顶部留白问题
- wsl2 Ubuntu 18.04 安装 ROS
- 标记 (TAG) 您的 k8s 集群资源
- hadoop日常维护之问题解决01
- iOS中关于文件操作
- Linux二进制保护(文末福利)
- Servlet容器和IOC容器
- 什么事IPC(Inter-Process Communication,进程间通信)
- mysql 多字段,多条件查找
- 一般总账科目 调整 为统驭科目时报错:只以本位币计的统驭科目余额未定义
- 博弈论-多智能体强化学习基础
- Win10 平台下, LightGBM GPU 版本的安装
- 【x86架构】x86上的那些不明觉厉的功能
- WorkFlow一:WorkFlow基础配置
- WIN10自带的录屏软件Xbox Game Bar的启动相关问题
- K3 WISE 12.3 中间层在虚拟机中注册
- 终端python版本管理切换
- [Swift]LeetCode832. 翻转图像 | Flipping an Image