Skip to content

Lec 16 片上网络 II:拓扑与路由

MIT 6.1920 · Constructive Computer Architecture 讲师:Tushar Krishna · 日期:2024-04-09

1. 拓扑设计指标

定义 — 拓扑设计时指标(Design-Time Metrics
  • 度(Degree:路由器的端口数。代理面积/能耗成本。
  • 二等分带宽(Bisection Bandwidth:将网络均分为两半的最小割所跨越的链路数 × 单链路带宽。代理峰值带宽。
  • 直径(Diameter:任意两节点间最短路径的最大跳数。代理最坏情况延迟。

2. 主流拓扑比较

2.1 总线(Bus

=1,直径=1,二等分 BW=1

优点:4–6 核以下成本极低,支持嗅探一致性(snoopy coherence)。 缺点:带宽不可扩展(随核数增多,争用急剧加剧)。

2.2 全连接(Fully Connected

=N1,直径=1,二等分 BW=N2/4

不可扩展:布线面积 O(N2),6 核以上即面临物理布局困难。

2.3 交叉开关(Crossbar

=N,直径=1,二等分 BW=N

GPU 内部广泛使用;面积/功耗随 N2 增长。

2.4 环形(Ring

=2,直径=N/2,平均距离N/4,二等分 BW=N/4

Intel Ring Bus(Sandy Bridge 以来)使用此结构;简单、低成本;带宽随 N 固定,难以扩展。

2.5 环面(Torus

=4,直径=N,二等分 BW=2N

优点:路径多样性高(6 条最短路径)、边对称(边沿节点与中心节点路由能力相同)。 缺点:环绕链路(wrap-around links)布线不等长,物理实现困难。

2.6 网格(Mesh

=4,直径=2(N1),二等分 BW=N

优点:等长链路,易于片上布局;路径多样性 = 3 条最短路径。 缺点:边缘节点度数较低(2–3),不对称;比 Torus 带宽低。

比较总结

拓扑直径二等分 BW适用场景
总线111≤6 核
环形2N/2N/4Intel 中等规模
Mesh42(√N−1)√N多核片上网络
Torus4√N2√NHPC 互连
全连接N−11N²/4极小规模

3. 层次化拓扑(Hierarchical Topologies

  • 层次化环(Hierarchical Rings:本地环 + 全局环,折中成本与带宽
  • 集中网格(Concentrated Mesh:多核共享一个路由器节点,减少路由器数量,降低功耗

4. 运行时指标

定义 — 最大吞吐量(Maximum Throughput
在均匀随机流量(uniform random traffic)下,找出最拥堵的链路(最大信道负载,Maximum Channel Load),该链路限制整体吞吐量。
例题 — 环形拓扑最大吞吐量

8 节点环形,均匀流量,每节点产生 p 条消息/周期:

  • 左侧 4 节点发往右侧 4 节点的消息全部经过中间 bisection 链路
  • 每周期 4p 条消息进入左半环,2p 条消息跨越二等分链路
  • 链路容量 = 1 消息/周期,故 pmax=1/2

Sol:环形拓扑在均匀流量下,最大吞吐量仅为节点注入率上限的 50%。


5. 路由算法

定义 — 路由算法分类
  • 最短路径(Minimal)vs. 非最短路径(Non-Minimal:只选最短路径 vs. 允许绕道
  • 确定性(Deterministic/Oblivious)vs. 自适应(Adaptive:路径固定 vs. 根据网络拥堵动态选择

5.1 维度排序路由(Dimension-Ordered Routing, XY

2D Mesh 上先走 X 方向,再走 Y 方向(确定性最短路径):

  • 优点:简单,无死锁(天然无环路依赖)
  • 缺点:消除了所有路径多样性,负载均衡差

5.2 路由死锁(Routing Deadlock

定义 — 路由死锁(Routing Deadlock
死锁发生条件:存在一组数据包,每个数据包持有某个缓冲区并等待另一个被占用的缓冲区,形成循环等待(resource dependence cycle)。类比哲学家就餐问题(Dining Philosophers)。 避免方法:资源依赖图不能有环路。

5.3 转向模型(Turn Model, Glass & Ni 1994)

通过禁止某些方向转向来打破依赖环:

算法禁止转向路径多样性
XY 路由所有 Y→X 转向1
西先(West-First向西必须先走完部分
北后(North-Last向北必须最后走部分
负先(Negative-First负方向先走部分

5.4 逃逸虚通道(Escape Virtual Channel

利用虚通道(VC)实现完全路径多样性:

  • VC0–VCk:允许任意转向(提高负载均衡),可能死锁
  • 逃逸 VC(1 条):使用 XY 路由(严格无死锁),确保所有数据包最终可以排出

若 VC0 形成死锁,数据包可"跳入"逃逸 VC 继续前进,彻底避免死锁。


6. 协议死锁(Protocol Deadlock

推论 — 需要独立虚网络(Virtual Networks 缓存一致性协议中,若请求和响应共用同一 VC,可能发生协议死锁(目录处理请求时需要发送响应,但响应队列被请求堵满)。解决方案:为请求和响应分配独立的虚网络(VN),完整一致性协议通常需要 3 个 VN。

本讲总结

Mesh 是片上多核互连的主流拓扑;XY 路由简单无死锁但路径多样性差;转向模型通过禁止部分转向在无死锁和路径多样性间取得平衡;逃逸 VC 允许任意路由同时保证死锁自由;协议死锁需要通过独立 VN 解决;拓扑选择权衡成本(链路数、度)与性能(带宽、延迟)。