NoC(Network on Chip)基础 (6):Oblivious Routing 和 Adaptive Routing
上一篇:NoC(Network on Chip)基础知识 (5):网络路由(Routing)介绍了 NoC 中路由的基础概念并列举了确定性路由的例子。
本篇文章将介绍 Oblivious Routing 以及 Adaptive Routing 。
文章目录
- Oblivious Routing
- 介绍
- Valiant's Randomized Routing
- Minimal Oblivious Routing
- Adaptive Routing
- 介绍
- Minimal Adaptive Routing
- Fully Adaptive Routing
Oblivious Routing
介绍
Oblivious Routing 指在选取 packet 的路由路径时,不考虑网络当前状态的路由方法。
这种方法实现简单且易于分析。
Oblivious Routing 路由方法需要在 局部性(locality)、均衡负载(load balance) 方面做取舍。
Valiant‘s Randomized Routing 首先将 packet 发送到随机节点,之后再向目的节点路由。这种算法能均衡任何 traffic pattern 情况下的负载,然而完全丢失了 locality。
Minimal Oblivious Routing 总是选取距离最近的路径作为路由。这种方法保留了 locality,然而在某些 traffic pattern 下,无法有效均衡负载,导致 throughput 极低。
Valiant’s Randomized Routing
一个 packet 希望从 s 发送至 d,首先会发送给一个随机选择的中间节点 x,之后再由 x 发向 d。
在这两阶段中,可以采用任意的路由算法。通常经验来讲,使用在 uniform traffic 条件下能有效均衡负载的路由算法工作效果更好。
由于中间节点的随机选择,每一阶段的数据传输均为 uniform random pattern。从总体上看,网络承受的总负载增加了一倍。
对于在 Torus 或 Mesh 拓扑中,两阶段的路由算法通常采取 dimention-order routing。
Minimal Oblivious Routing
Minimal oblivious routing 严格控制选择的路由路径为最短路径。
这种方法在层次化的拓扑结构中表现良好,能在兼顾 locality 的同时使负载均衡。
Folded-Clos(Fat-Tree) 拓扑结构:
从 s 向 d 发送数据包,会选择一个距离二者最近的共同祖先节点 x 作为中间节点,先由 s 发送至 x,再从 x 发送至 d。
下图展示了从1发送至6,可以有两条路径选择,经过0XXXA 或 经过0XXXB,二者都是距离最短的路径。
Torus 拓扑结构:
在 Torus 拓扑中的 Minimal Oblivious Routing,限制路由路径的中间节点位于最小象限之内(由 s 和 d 组成的长方形),并确定在每一维度上的移动方向是朝目标移动距离最短的方向。
下面展示了从 00 到 21 的多条路由路径。可以通过随机选择多条路径中的一条来均衡负载。
Torus 拓扑中采取 minimal oblivious 路由,在保留 locality 的方面表现较好,在 random traffic 中也能有效均衡负载。然而在某些最坏情况的 traffic 中,均衡负载的表现很差,如 tornado traffic。
(因为由于必须使用距离最短路径的缘故,只能使用象限内的节点作为中间节点。一旦某个较小象限内的数据传输较密集,就会造成严重的拥挤)
Adaptive Routing
介绍
适应性路由算法会使用网络当前状态(如队列占用情况等)作为决策信息,在多种选择中确定传输数据包的路径。
因为算法的执行依赖于网络状态,所以适应性路由往往与流控制策略密不可分。
一个出色的适应性路由算法,理论上讲会比 oblivious routing 更出色,因为他使用了网络的状态作为决策信息之一。然而在现实中,适应性路由在最坏情况下,性能非常糟糕。
很大程度上这是因为,在路由的决策节点上只能获取局部的拥塞状况,在将包导向局部最优的路径时,经常会导致全局的负载不均衡。
决策节点对于远端的拥塞情况的获知,主要通过流控制策略中 backpressure。
适应性路由采取 flit-based 或 packet-based 的流控制策略,使用包队列的占用情况作为估计局部拥塞情况的依据。
当一个节点的接收队列已满,就会向之前发送数据的节点传递 backpressure signal 令其停止发送数据。这会导致该节点接收队列的占满。Backpressure 沿着 traffic 的反方向传递。在 backpressure 传递给决策节点之前,它无法感知到远处的拥塞情况。
所以,能快速传递 backpressure 的流控制策略对于适应性路由至关重要,这会使决策节点更快地适应远处的拥塞状况。
以下面的情况作例子。
5 正在持续给 6 发送数据,占据了全部的带宽。3 此时希望给 7 发数据,有两条路径可以选择。
3 不能够直接感知到 5、6 之间的拥塞,只能通过 backpressure 间接感知。
3 开始的时候不知道5、6 拥塞了,直接向 7 发送数据。
包在 5 处被卡住,到 5 的接收队列满后,5 向 4 发送 backpressure,4不再发送包给5。
3 依旧给 4 发送数据,直到 4 的队列也满了,4 才向 3 发送 backpressure,3 感知到前方的拥塞。之后采取另一条逆时针路由路径。
Stiff Flow Control (较小的队列容量)更适用于 Adaptive Routing。 这可以使 backpressure 信号更快地从堵塞处传递给决策节点。
在 Torus 等更复杂拓扑中采用适应性路由,通常在每一跳根据局部信息作一次路由选择。这也会带来非全局最优的问题。
在下面的 Torus 由 00 向 23 发数据。
在 01 处,由于 01 到 02 轻度拥塞,所以选择了向 11 转发。
这导致了之后所走的路径都是重度拥塞。
Minimal Adaptive Routing
最短适应路由从所有最短路径中,在每一跳时,根据局部区域的网络状态选择下一跳的地址。
最短适应路由能在局部区域均衡负载,却不能有效地在全局情况下均衡负载。
且如果 source 与 destination 之间最短路径的多样性为 1,这种方法无法避免经过拥塞路径。(下图中由 20 向 23)
Fully Adaptive Routing
全适应路由,不再严格要求路由路径为最短路径。为了避免一些拥塞路段,包可以暂时向远离目的节点的方向作转发。我们称做出这种选择的行为 Misrouting。
全适应路由为了避免拥塞而绕路的同时,需要采取措施**限制活锁(Livelock)**的发生。
活锁指 packet 在网络中陷入了转发的循环,永远无法到达目的地。
避免活锁的方法有多种。
- 限制 Misrouting 的次数,达到次数上限后采用 Minimal Adaptive 方法。
- 限制 Misrouting 的频率,每执行若干次 Minimal Routing 才能选择一次 Misrouting。
NoC(Network on Chip)基础 (6):Oblivious Routing 和 Adaptive Routing相关推荐
- 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 网 ...
- 【RabbitMQ】基础四:路由模式(Routing)
[RabbitMQ]基础四:路由模式(Routing) 1. 路由模式说明 2. 代码示例 2.1 生产者 2.2 消费者1 2.3 消费者2 2.4 测试 3. 总结 1. 路由模式说明 路由模式特 ...
- NoC(Network on Chip)基础 (4):Non-Blocking(Circuit Switch)Network——Crossbar 和 Clos
文章目录 Non-Blocking 的基本概念 Crossbar Switch Clos Network 网络基本结构 Unicast Routing on Strictly Non-Blocking ...
- 【ML4CO基础】Attention, learn to solve routing problems(Wouter Kool, 2018)
Attention, learn to solve routing problems! Paper: Kool W, Van Hoof H, Welling M. Attention, learn t ...
- 【Network】网络基础扫盲
网络基础扫盲 正文开始@小边小边不秃头 hi~ 宝子们,好久好久不见,从今往后,我的文章会较为随意(因为我懒得维持文章严谨的逻辑了,写文章只不过已经变成了习惯,也就是说我只是抱着"学习&qu ...
- The Turn Model for Adaptive Routing中的west-first算法
图5a显示了在2D网格中禁止两次旋转的一种方法.禁止转弯的是向西的两个转弯.因此,要向西,必须从那个方向出发.这就提出了west-first-routing算法:如果需要,先向西路由一个包,然后自适应 ...
- 【IC基础】集成电路设计领域术语缩写及名词解释(字母索引版)
前言: 笔者在大三上学习学习<SoC设计导论>时整理的有关集成电路设计领域的常见有英文缩写和对应的名词解释,文中标注的页码均出自<SoC设计方法与实现>这本参考书: 目录 目录 ...
- 文献调研——存算一体的一些基础知识
SSD课程背景知识学习 主要包含: Part 1 存算一体的相关概念 Part 2 SSD基本结构 一.Why 人工智能芯片: 边缘市场-终端推理手机,可穿戴智能家居 要求低成本低功耗 -推理芯片 云 ...
最新文章
- error: Microsoft Visual C++ 14.0 is required.(安装scrapy)
- Python:更改默认启动的python程序及其对应的安装包路径(更改pip的默认安装包的路径)图文教程之详细攻略
- python自动化接口测试中的cookies怎么实现_python接口自动化测试--requests cookies处理...
- 动态网页开发基础【笔记】
- 汇编常用命令、指令一览
- java map扩容机制_java中ConcurrentHashMap的扩容机制是怎样的?详细解析
- c语言既能读字母也能读数字,2014计算机二级考试C语言考前预测选择题
- docker 搭建 ftp服务器
- 清华AI的华山论剑现已开启,不服就来战!王小川楼天城唐文斌都曾搅动风云...
- mac terminal ssh client shuttle 免输密码
- 开源Math.NET基础数学类库使用(03)C#解析Matlab的mat格式
- python修饰符号的使用_Python 函数修饰符(装饰器)的使用
- 半导体物理学习整理(一)
- Pandas Percentile计算方法
- Python爬取招聘网站
- 《年会抽奖》:无人获奖的概率
- 能够PING通同网段的节点, 但却PING不通其他网段的所有节点的最可能的原因是
- 「macOS无法验证此APP不包含恶意软件」的处理方式
- (一)航空发动机强度与振动复习纲要
- Python实现九宫格解锁
热门文章
- 高阶累积量四阶矩_高阶累积量
- 我在成都火车站捡了个彝族美女 第53节:只是虚情假意吗?
- sota结果是什么意思_文本摘要新框架,抽取式摘要“轻松”取得SOTA
- 细数职场生存的20条实用法则
- LODOP打印控件相关说明
- ESP32-C3 wifi 微信配网+按键清除+LED状态
- oracle中数据链如何删除,数据链(中)
- Windows系统如何配置pycharm的anaconda环境
- 网站压力性能免费在线测试:阿里云PTS,Load Impact,loader.io服务器负载能力测试
- React Hook/Hooks