Skip to content

L15:片上网络(一):拓扑与流量控制(On-Chip Networks I: Topology / Flow Control

MIT 6.5900 Fall 2024 · Daniel Sanchez 主题:互连网络架构、拓扑(topology)及其度量、流量控制(flow control)协议


一、从互连网络到片上网络

互连网络按尺度从大到小:箱间(box-to-box)→ 板间(board-to-board)→ 芯片间(chip-to-chip)→ 片上网络on-chip network, NoC)。

  • 多芯片场景:超级计算机、数据中心、互联网路由器、服务器;
  • 片上场景:服务器、笔记本、手机、HDTV、接入路由器。

本讲聚焦连接共享内存处理器中各 Cache 的片上网络

什么是片上网络

在缓存一致的片多处理器(chip multiprocessor)中,网络在处理器核之间传输缓存一致性消息缓存行。例如某核执行 Load reg1, addressA,请求需经网络到达地址 A 的归属节点(home node)或持有副本的共享者(sharer)。


二、互连网络架构的五个层面

层面问题
拓扑Topology如何把节点(处理器、存储器、路由器线卡……)连起来?
路由Routing消息应走哪条路径?
流量控制Flow control消息实际如何从源转发到目的?
路由器微架构如何构建路由器?
链路微架构如何构建链路?

本讲采用自底向上:先讲流量控制(假设路由已定),下一讲讲路由算法。


三、拓扑及其度量

拓扑性质

  • 路由距离Routing Distance):路径上的链路数;
  • 直径Diameter):最大路由距离;
  • 平均距离Average Distance);
  • 若移除一组链路会使图断开,则称该组链路划分了网络;
  • 对分带宽Bisection Bandwidth):穿过把网络一分为二的最小割的带宽。

线性阵列与环

路由 AB 由相对地址 R=BA 给定。

度量线性阵列(Linear Array环 / 1-D 环面(Ring / Torus
直径N1N/2(N 为偶数)
平均距离N/31/(3N)N/4(N 为偶数)
对分带宽12

环面例子:FDDI、SCI、FiberChannel Arbitrated Loop、Intel Xeon。环可排布成使用短线的形式。

多维网格与环面

  • d 维阵列n=kd1××k0 个节点,用 d 维坐标向量 (id1,,i0) 描述;
  • d 维 k 元网格k-ary d-mesh):N=kdk=Nd
  • d 维 k 元环面k-ary d-cube):在网格基础上加环绕链路。

四、消息的分层单位

单位含义
Packet路由与排序的基本单位,大小受限(如 64 bits – 64 KB)
flit(flow control digit)带宽/存储分配的基本单位;同一包的所有 flit 走同一路径
phit(physical transfer digit)单个时钟周期内传输的数据

为什么要 flit?为了支持可变包长,并以更细粒度分配带宽与缓冲。

路由 vs 流量控制

  • 路由算法选择包从源到目的应走的路径;
  • 流量控制方案为穿越网络的包分配资源(缓冲、链路、控制状态)。

路由算法的性质

  • 确定性/无关Deterministic/Oblivious):路径仅由 (源, 目的) 决定,与中间状态(流量)无关;
  • 自适应Adaptive):路径受沿途流量影响;
  • 最小Minimal):只选最短路径;
  • 无死锁Deadlock-free):任何流量模式都不会导致没有包能前进。

五、流量控制协议

竞争(Contention

两个包试图同时使用同一链路——因为共享带宽与缓冲资源而产生。缓冲有限或没有缓冲时尤为突出。

协议谱系(复杂度与效率递增)

  • 无缓冲Bufferless):电路交换、丢弃、误路由;
  • 有缓冲Buffered):存储转发、虚直通、虫孔、虚通道。

1. 电路交换(Circuit Switching

源到目的先建立一条"电路":用探测包建立路径 → 预留所有链路 → 数据通过 → 释放。无缓冲

优点:实现简单。缺点:浪费,短包延迟约为 3 倍(请求—确认—释放的往返开销)。

2. 丢弃(Dropping

若两者同时到达而资源不足,丢弃其一(互联网的流量控制哲学)。

缺点:需重传;流量与缓冲之间的权衡很差。

3. 误路由(Misrouting

故意把包路由远离拥塞,无需缓冲。

"若每节点每次只能进/出一个消息,网络就永不拥塞"——!多跳会造成拥塞。问题:活锁livelock),需保证有进展。

有缓冲路由:链路级背压

既然不能丢包,就要管理缓冲。关注吞吐/延迟缓冲利用率。背压技术:

  • 朴素停顿(on/off):源能否发送;
  • 复杂停顿(基于信用,credit-based:能向下游发多少个 flit;
  • 推测(ack/nack):先假设能发并保留副本,按 ack/nack 决定丢副本或重发。

4. 存储转发(Store-and-Forward,基于包)

在每个中间站等整个包到齐才继续前进。

优点:其他包可用中间链路。缺点:每跳都经历串行化延迟(serialization latency)。

5. 虚直通(Virtual Cut-Through,基于包)

包的头 flit 先冲出去,不必等整包到齐;头被阻塞时整包阻塞在一个中间节点。用于 Alpha 21364

优点:更低延迟。缺点:缓冲按包分配 → 缓冲大、利用率低;信道按包分配 → 不公平、利用率低。

6. 虫孔(Wormhole,flit 缓冲流量控制)

包阻塞时,就地阻塞各 flit 当前所在之处。类似直通,但信道与缓冲按 flit 分配(信道状态即虚通道,分配给包以便体 flit 跟随头 flit)。

优点:所需缓冲空间更小。缺点:可能在包中途阻塞一条信道,使其他包无法用其带宽。

7. 虚通道(Virtual-Channel, VC)流量控制

消息阻塞时,不占住物理链路,而是占住虚链路。缓冲中有多个队列(像高速公路上的多车道),虚通道可理解为信道状态 + flit 缓冲

优点:显著减少阻塞。缺点:路由器更复杂,需公平的 VC 分配。


小结

  • 片上网络的设计分拓扑、路由、流量控制、路由器/链路微架构五个层面;
  • 拓扑用直径、平均距离、对分带宽度量,线性阵列/环/多维网格与环面是基础结构;
  • 消息分为 packet / flit / phit;
  • 流量控制从无缓冲(电路交换、丢弃、误路由)到有缓冲(存储转发、虚直通、虫孔、虚通道),虚通道用最小代价显著降低阻塞。

下一讲:路由器(交换机)微架构与路由算法