第三章 拓扑
概述
- 片上网络的拓扑确定了网络中节点和通道之间的物理布局和连接。拓扑对于网络的整体成本效率有重要影响。拓扑决定了一条消息的跳数以及每跳经过的互连线的物理距离。经过路由器和链路都会有一定的延迟和功耗。此外拓扑也决定了节点之间可用路径的总数。
- 拓扑实现的难易程度取决于两个因素:1)每个节点上的链路数量(节点度)和在芯片上布局拓扑的难易程度(所需的导线长度和金属布线层数)
- 总线是最简单的拓扑,但是其带宽受限,可扩展性受限。
3.1 指标
下图中包含一些常见的拓扑。其中ring结构是一维的环形,2D mesh 节点组成了规则的二维网格,而torus则是对mesh的进一步改进,将网格的两侧边缘对应节点相连,构成环路。
3.1.1 与网络流量无关的指标
- 度 degree
- 度表示每个节点拥有的链路数量。ring结构中每个节点有2个链路,度为2;torus中每个节点与四个相邻的节点间都存在链路,故度为4;而mesh结构中不同位置节点的度是不同的。
- 度是一个有效衡量网络开销的指标,度越大,节点路由器需要的端口越多,相应的路由器实现的复杂度和面积功耗都会增大。
- 我们把每个路由器的端口数成为路由器基数(router radix)
- 对分带宽 bisection bandwidth
- 对分带宽是指将网络划分为两个相同的部分后,两部分之间的通信带宽。例如穿过ring的对分线的链路数量为2,则对分带宽为2;mesh为3;torus为6。
- 对分带宽可以有效的反映特定网络在最坏工作情况下的性能,因为对分带宽限制了可以从系统一端到另一端的总数据量。同时也表示了实现片上网络所必需的全局连线数量,也可以衡量网络开销。但片上网络的连线资源丰富,对分带宽在连线方面的评价不是很全面。
- 网络直径 diameter
- 网络直径是指拓扑中任意两个节点的最短路径中的跳数最大值。例如ring为4,mesh为4,torus为2。在没有链路竞争的情况下,网络直径可认为是衡量拓扑中最大延迟的指标。
3.1.2 与网络流量相关的指标
- 跳数 hop count
- 跳数是指从一个节点到另一个节点需要跳的次数。除了最大跳数,平均跳数也可以很好的反映网络延迟
- 当三种拓扑具有相同数量的节点时,且网络流量随机均匀,ring的跳数比mesh和torus都要多。例如如果采用最短路径路由,ring和mesh的最大跳数都是4,torus是2;而平均跳数torus最小,mesh其次,ring最大。
- 最大通道负载 maximum channel load
- 通道负载是和带宽相比得到的比例,例如当通道负载为2时,意味着该通道是注入带宽的2倍,即如果每个节点每个周期将1个flit注入网络,则会出现2个flit在同一周期内都需要穿过该通道。如果该通道每个时钟周期只能处理一个,那么这条通道即是瓶颈,限制注入带宽为之前的一半。因此最大通道负载越大,网络最大注入带宽越小。
- 最大注入带宽 = 1/最大通道负载
- 路径多样性 path diversity
- 给定源节点和目标节点的前提下,如果这对节点在某个拓扑中拥有n条(多条)最短路径,而另一个拓扑中只用一条,则认为前者拥有更大的路径多样性。
- 路径多样性使路由算法在处理负载均衡问题是时具有更大的灵活性,从而减小通道负载,提高网络吞吐量。路径多样性还拥有一定的容错能力,能够使数据包绕开网络故障的潜力。
- 图中ring结构只有一条最短路径,而mesh有6条。
3.2 直连拓扑(Direct Topologies): Ring, Mesh, and Torus
- 直连拓扑指的是每个终端节点都配备一个路由器的网络拓扑,使得所有的节点都是流量的产生和汇入端,又是流量的中转站。大部分片上网络都采取了直连网络,因为将路由器和终端放在一起考虑适合芯片这种存在电路面积限制的场景。
- 直连拓扑可以描述为 k-ary n-cube,k是每个维度上的节点数,n是维度数。例如4x4的mesh/torus可以描述为4-ary 2-cube。节点总数可以描述为k^n。多大多数的片上网络使用2D mesh拓扑。
- 而对于torus结构来说(ring可以描述为k-ary 1-cube,可以归为torus类),所有的节点有相同的节点度,且边缘对称,可以更好地平衡各通道的流量,而mesh对中心通道的负载要求比边缘通道要高。
3.3 非直连拓扑:Crossbars交叉开关, Butterflies蝶形网络, Clos Networks, and Fat Trees
非直连拓扑是指所有的终端节点通过一个或多个中间交换节点(switch node)相连的网络拓扑。与直连拓扑不同,终端节点和交换节点是分离的,终端节点只是源或者目的地,中间交换节点只是中转站。
-
Crossbars
- 最简单的非直连拓扑,通过nxm个简单的交换节点连接了n个输入和m个输出,非阻塞全连接
-
Butterflies
-
蝶形网络可以描述为k-ary n-fly。网络具有k^n 个终端节点,具有n级交换节点,每级含k^(n-1)个kxk的交换节点。即k是交换节点的出入度,n是交换节点的级数。如下图所示。
-
蝶形网络的中间交换节点度为2k,跳数始终为n-1。(实际中终端节点一般和边缘中间交换节点集成,即0和1与00集成在一起,故总跳数为n-1)。
-
蝶形网络的最大缺点是缺失路径多样性并缺少对网络局部性的利用,使得其在非平衡流量模式下性能很差。
-
一个蝶形网络将各个交换节点合并之后称为扁平蝶形(flattened butterfly)网络,将同一行的中间交换节点合并为一个交换节点,从而将非直连拓扑转换为直连拓扑。由4-ary 2-fly的蝶形网络得到4-ary 2-fly的扁平蝶形网络。一个4x4的扁平蝶形网络如下图所示,其网络直径为2,但最短路径不能满足所有的节点对,故需要使用一些非最短路径。
-
-
Clos Networks
- 对称clos网络可用三元数组(m,n,r)表示的3级网络,m是中间级交换节点数,n指的是输入输出级交换节点的输入输出端口数,r表示网络第一级或最后一级的节点数。m>2n-1,对应的clos网络是严格无阻塞的,任意一个输入端口都可以连接到任何一个输出端口。
- 下图展示了一个(5,3,4)表示的对称clos网络
-
Fat Trees
- fat tree在逻辑上是一个如图a的二叉树结构,各节点布线资源不同,距离根结点越近连线资源越多。如图b,一个fat tree网络可以由clos网络折叠而成。根节点处存在多个可以连接左右两边的节点,因此fat tree具有路径多样性。每个交换节点的逻辑上的度为4。
3.4 不规则拓扑
- 多处理器片上系统(MPSoC)可以使用多种异构IP模块,则前文所描述的规则拓扑可能不适合此类场景,一个定制的拓扑往往可以比标准拓扑更高的能效和更好的性能。
- 事实上,具体的应用可能不需要让所有的IP模块进行通信,不需要具备完全的连通性。如下图所示。
3.5 层级拓扑
- 图a中利用集线器可以使3x3的mesh连接36个节点,而不再使用6x6的结构。图b中使用一个一级ring结构去连接4个二级的ring结构。层级拓扑的设计挑战在于如何设计对中心结构的带宽仲裁。