Virtual Channel Flow Control(虚通道与链路流控)
interconn-study 流控篇 Day 16:Dally & Towles Ch.10——把一条物理链路切成多条逻辑车道,打破虫孔 HoL。电路级细节亦见 NoC Router 微架构。
Source: interconn-study-21d-day-16.md
原典精读:Dally TPDS 1992 — paper-deepdive Day 5、dally-virtual-channel-flow-control.md。
VC 是什么
每条 VC:独立缓冲队列 + 独立信用/状态;物理链路在 flit 粒度时分复用。报文 A 在 VC0 卡住时,VC1 上的报文 B 仍可前进。
| 作用 | 说明 |
|---|---|
| 缓解 HoL | 多逻辑车道,互不堵死整条物理链路 |
| 死锁工具 | Escape / dateline VC;见 Duato |
| 优先级/服务类 | 不同 VC 映射不同流量 |
代价:每 VC 缓冲 + VC Allocator + Switch Allocator 复杂度;VC 过多 → 面积/功耗升、每 VC 深度变浅 → 吞吐先升后饱和。
典型 2-D Mesh uniform traffic:1→2 VC 吞吐跳升最大;再往上收益递减(笔记经验曲线)。WSE 公开未定数,工程猜测链路侧 2–4 VC 量级(另有 color 语义)。
VC Allocator
Head flit 到达后选一条空闲下游 VC。策略:
| 静态 / 保守 | 动态 | |
|---|---|---|
| 做法 | 流固定映射 VC | 按空闲池分配 |
| 优点 | 可证明、隔离好 | 利用率高 |
| 缺点 | 浪费 | 实现与公平更难 |
仲裁器细节(iSLIP 等)见 NoC Router Pipeline and Allocators。
三种链路流控
| Credit-based | On/Off | Window-based | |
|---|---|---|---|
| 机制 | 每 VC 信用计数;发 flit −1,腾空 +1 回送 | 高水位关、低阈值开 | 飞行窗口 W,ACK 滑动 |
| 精度 | 精确 | 粗 | 中 |
| 往返开销 | 每 flit 级信用 | 低 | 中 |
| 适用 | HPC / NoC 主流 | 长延迟、粗控制 | 突发折中 |
WSE/AI 加速器:主路径 Credit 概率高;大突发可叠 Window/On-Off 类阈值逻辑(笔记推测,非官方规格)。
与路由三角
自适应路由需要 VC 自由度
↕
HoL 缓解需要多 VC
↕
死锁避免需要 escape / 受限 VC(Duato / Dally)
Day 12–14 路由篇在此收束:VC 是「性能」与「正确性」的共用资源。
相关页面
- Flow Control Fundamentals — Day 15:WH / HoL
- Æthereal NoC — GS TDM vs BES 虫孔(Philips 2005)
- NoC Router Pipeline and Allocators — Day 17:VA/SA
- NoC Router Pipeline Optimizations — Day 18:动态 VC / 共享缓冲
- Duato Escape VC Deadlock-Free Routing
- Adaptive Routing for NoC
- Cerebras Color Mechanism — color ≈ 类 VC 语义
- UB Data Link Layer — Credit / Go-Back-N
- Network Interface and System-Level Design — 流控 vs 拥塞控制(Day 19)
- dally-virtual-channel-flow-control.md — 1992 原典摘要
Citations
[1] interconn-study-21d-day-16.md — D&T Ch.10 Virtual Channels(Day 16) [2] paper-deepdive-day-05.md — Dally TPDS’92 精读(paper-deepdive Day 5)