文章目录
基本介绍
网络的拓扑结构:Channels 和 Nodes的静态组合方式。
设计拓扑结构往往是设计网络的第一步,后续的路由(Route)策略以及流控制(Flow-Control)策略都建立在拓扑的基础上。
我们在考虑选择网络拓扑时往往要考虑以下两个要素
- 成本 (Cost):包括chip、circuit board、cable等设备。
- 性能 (Performance): 主要包括 bandwidth 和 latency 两方面。
这些度量的尺度大多也都与流控制策略、路由策略有关。为了能单一的评价一个拓扑的性能好坏,还引入了包括 bisection bandwidth、channel load、path delay等度量手段。
设计人员常见的想法往往是为一个问题设计专门的不规则的网络拓扑。然而实际情况是,不规则的拓扑无法与当前众多研究人员在通用形状拓扑上的各种经验相适应。所以一般还是建议设计人员在挑选拓扑时,选择如Torus、Butterfly等成熟的通用拓扑。
一些专用的名词
- Direct Network:packet 能在terminal node之间直接传递,不需要经过专用的swtich node (如上图a 的Torus拓扑,每一个node都是terminal)
- Indirect Network:packet 需要借助专用的swtich node进行传递。(如上图b的butterfly拓扑)
- 网络的一个划分(Cut):选取一组channels,这组channels能将拓扑中全部的结点划分为分离的两部分。
- 网络的一个等分(Bisection):一个能将网络切分为相等数量(或数量相差为一)结点的两部分的 Cut。
- Channel Bisection:在所有等分中,channel 数量最少的那一组。
- Bisection Bandwidth:在所有等分中,channel 带宽最小的那一组。
- 路径(Path):从开始点到目的点的一组channel的集合。
- 网络的直径(Diameter):在所有两两成对的terminal之间的所有最小路径中的最大值。
- 顶点对称性(Vertex Symmetric):从每一个node的角度来看,网络的拓扑都是一样的。这可以简化路由的计算。
- 边对称性(Edge Symmetric):任意一条channel都可以自动的映射到其它某条channel上。这有利于channels之间的负载均衡。
拓扑的性能度量(Performance)
在引入度量指标之前,有必要对 traffic pattern进行了解。因为各种不同的 traffic 极大程度影响着拓扑性能的好坏。
交通模式(Traffic Pattern)
Traffic pattern 是指 terminal 之间发送消息的空间分布。在有的场景下,一个 terminal 可能会和多个其他的 terminal 进行通信;有些时候,一个 terminal 可能会一直和另外某一个特定的 terminal 进行通信。
- 随机(Random Traffic):每一个源 terminal 发送给其他 任意一个 terminal 的概率是相等的。这种 traffic 模式能够均衡不同channel的负载,即使遇上很差的拓扑以及路由策略,在这种traffic 场景下通常也能表现得不错。
- 排列(Permutation Traffic):每一个源 terminal 只会给另一个固定的目的 terminal 通信。这种方式能够给予拓扑和路由策略更大的压力,更好测试拓扑及路由算法均衡负载的能力。
吞吐量(Throughput)
网络的吞吐量指网络接收 input 的数据速率(bit/s)。
吞吐量是网络全局的一种属性。他取决于拓扑、路由、流控制等因素。在同一个拓扑架构上,我们希望可以选择最好的路由和流控制策略,来达到吞吐量的最大化。
在某种 traffic 场景下,当网络全局的吞吐量达到最大化,是因为有某个处于瓶颈位置的channel 运输数据达到了饱和。
延迟(Latency)
网络的延迟是指 packet 从 header 到达 input 端口开始, 一直到 packet 全部到达 output 端口所花费的时间。
一个包的延迟可以分为两部分:head latency、serialization latency
serialization latency 是指通过带宽 b 的 channel 发送长度为 L 的 packet 所需的时间。
head latency 是指消息头从源节点到目的节点花费的时间。可以进一步分为两部分:routing delay、link latency。分别指路由所花费的时间和在链路上所花费的时间。
下面的展示了一个 2-hop 路由的从 node x 到 node z 的甘特图。
路径多样性(Path Diversity)
从一个源节点到目标节点,如果有多条路径可走,网络的鲁棒性以及均衡负载的能力便会大大增强。
如果对于如下的 permutation traffic (即 node0 只给 node0 发,node1 只给 node2 发,node2 只给 node4 发…)
在Butterfly的拓扑架构下,从源节点到目的节点只有单一的路径。在以上的traffic之下,0、1、8、9 四个terminal的数据都需要经过 switch10 和 switch 20,这就导致输入端口的实际吞吐量只能达到输入端口带宽的0.25。
而在Torus的架构下,各个节点之间往往有多条路径可以选择。如果采取合适的路由策略(如 non-minimal routing),实际吞吐量能够达到物理带宽的0.89 甚至更高。
这显示了较高的 path diversity 能均衡负载,提升拓扑的吞吐量。
同时路径多样性能提升网络的鲁棒性。如果路径上的某个 node 或 channel 发生故障,存在多种路径的选择可以避免信息无法送达。
下一篇:NoC(Network on Chip)基础知识 (3):网络拓扑结构 Butterfly、Torus、Mesh 将介绍几种应用较广泛的拓扑结构。