片上网络初印象

  • ~4.56K 字
  1. 1. 导论
    1. 1.1. 片上网络之前
    2. 1.2. 片上网络优势
    3. 1.3. 片上网络基本构建模块
  2. 2. 片上网络的系统架构接口
    1. 2.1. 共享缓存
    2. 2.2. 缓存一致性协议
    3. 2.3. 协议级死锁
    4. 2.4. 多级缓存
    5. 2.5. 基于目录的协议中的内存控制器
    6. 2.6. 未命中/事物状态保持寄存器 MSHR(Miss Status Holding Register)
    7. 2.7. 片上网络接口标准
  3. 3. 拓扑
  4. 4. 路由
  5. 5. 流控制
    1. 5.1. 消息、数据包、flit 和 phit
    2. 5.2. 流控制机制
    3. 5.3. 无死锁流控制
    4. 5.4. 缓冲区反压
  6. 6. 路由器微体系结构
    1. 6.1. 分配器和仲裁器
    2. 6.2. 流水线
      1. 6.2.1. 流水线阶段详解
      2. 6.2.2. 优化技术对比

前言:本内容根据《片上互联网络——多核/众核处理器关键技术》中文版自行整理

导论

片上网络(On-Chip Networks),也即 NoC,是一种新型的芯片内通信结构,它采用类似计算机网络的设计思想,将片上系统内部的各个处理器、存储器、I/O 等单元连接起来,形成一个可重构的、高效的、灵活的通信网络。

片上网络之前

在 NoC 出现之前,片上系统主要采用总线架构(Bus)或者交叉开关(Crossbar)。

  • 总线是一种共享的物理通道,所有处理器核通过同一线路进行通信,同一时间仅允许一对核进行数据传输
  • 交叉开关通过矩阵式开关实现任意两个核间的直接连接,支持多对核同时通信
    但随着多核处理器(如 MPSoC)和复杂 SoC 的发展,传统架构的局限性愈发明显。总线和交叉开关都无法满足高并发、低延迟、低功耗的需求,促使研究者借鉴计算机网络的分组交换思想,提出了片上网络。

片上网络优势

  1. 高可扩展性:模块化设计,通过添加路由器和链路可线性拓展节点数量,避免总线架构因节点增加导致的带宽竞争问题
  2. 高带宽:并行传输
  3. 低延迟:短距离片上通信和分布式路由算法

片上网络基本构建模块

  1. 拓扑:在网络中各个节点(各个模块连接一个路由器,路由器作为与网络中其他节点的直接对接节点)和通道形成的形状
  2. 路由:在某种拓扑结构中,消息从源节点到目的节点的走法
  3. 流控制:消息在传输时需要资源(谁先谁后,通过哪一条路径),流控制规定了给消息分配资源的策略
  4. 路由器微体系结构:整个路由器工作时需要输入缓冲区、路由器状态、路由逻辑、分配器和交叉开关等部分,这些部分工作的逻辑通常设计为流水线结构
  5. 链路结构:全摆幅逻辑和带有中继器的连线

片上网络的系统架构接口

共享缓存

在大规模并行处理系统中,结合消息传递接口(Message Passing Interface, MPI)单芯片多处理器(Chip Multiprocessor, CMP)技术,将统一的地址空间划分为多个地址空间分区,每个分区对应多个共享存储的节点,各个分区之间的数据交互通过 MPI 进行统一管理。
实现共享存储的一种方式是共享存储模型:
共享存储的 CMP 架构

缓存一致性协议

多核系统中常用两种缓存一致性协议:

  • 基于广播(broadcast)的协议,常采用 MESI 协议
    • Modified
    • Exclusive
    • Shared
    • Invalid
  • 基于目录(directory)的协议:中心化目录记录缓存状态
    两类缓存一致性协议的网络请求示例

协议级死锁

不同类消息之间存在资源依赖时,就可能导致死锁。

多级缓存

缓存结构

私有二级缓存和共享二级缓存的节点设计

基于目录的协议中的内存控制器

内存控制器在网路中的部署位置

未命中/事物状态保持寄存器 MSHR(Miss Status Holding Register)

  • 功能:跟踪未完成缓存未命中请求
  • 工作流程:
    1. 缓存未命中时分配 MSHR 条目
    2. 合并后续相同地址请求
    3. 数据返回后批量响应

片上网络接口标准

  1. 基于总线的事务语义
  2. 乱序事务

拓扑

拓扑类型 结构名称 连接方式 扩展性 优缺点
直连 Ring 首尾闭环连接 结构简单无死锁,但带宽受限且扩展性差
直连 Mesh 二维网格布局,四邻连接 规则布局易实现,边缘节点带宽受限,适合平面化制造
直连 Torus Mesh 变体带环绕连接 消除边界效应但布线复杂度增加,需要三维集成技术
非直连 Crossbar N×N 全连接矩阵 零冲突高带宽,但布线复杂度随节点数平方增长
非直连 Butterfly 多级递减式连接 低跳数传输适合大规模系统,但非对称结构导致负载不均衡
非直连 Fat Tree 带宽逐级加粗的树状结构 消除传统树形瓶颈,需要复杂布线且中间层功耗占比高
混合 CMesh 集中式路由连接节点簇 减少全局路由数量但增加本地通信延迟,适合异构计算场景

结构特性说明:

  1. 布线复杂度:与节点连接数和物理距离正相关(Mesh < Torus < Butterfly)
  2. 功耗分布:非直连拓扑中间节点功耗占比可达 40-60%
  3. 制造兼容性:Mesh 等平面结构更适合当前 CMOS 工艺
  4. 容错能力:多路径拓扑(Fat Tree)比单路径(Ring)更易实现故障绕过

"部分拓扑结构示例"

交叉开关

路由

路由算法种类 路由分类 实现原理 优缺点
维序路由 (DOR) 确定性路由 & 最短路由 按维度顺序逐维调整坐标,保证路径最短且无环 优点:无死锁、实现简单
缺点:路径固定导致负载不均衡
Valiant 随机路由 无关路由 & 非最短路由 先将数据包发送至随机中间节点,再从中间节点转发至终点,通过路径随机化打破对称性 优点:高容错性
缺点:平均路径长度增加 30%-50%
Duato 协议 自适应性路由 & 最短路由 使用自适应虚拟通道动态选择最短路径,结合逃生通道确保无死锁 优点:高吞吐量
缺点:需要额外 2-4 个虚拟通道增加硬件开销
West-First 转向限制路由 确定性路由 & 非最短路由 限制向西转向必须在路径早期完成,强制形成无环通道依赖图 优点:天然避免死锁
缺点:在非对称拓扑中可能产生绕行路径

自适应路由的挑战:活锁、维持数据包之间的顺序
选择非最短路径来避免或减少拥塞,往往会比选择存在拥塞的最短路径具有更低的传输延迟。

流控制

消息、数据包、flit 和 phit

层级 功能单元 典型大小 传输方式 组成关系
消息 应用层逻辑单元 64B-128B 端到端传输 由 1 个或多个数据包组成
数据包 路由基本单元 1-5 flit 逐跳传输 头 flit + 体 flit + 尾 flit
flit 流控制基本单元 128-256bit 按虚拟通道管理 1 个 flit = 2-4 个 phit
phit 物理传输单元 链路宽度(如 64bit) 每个时钟周期传输 不可分割的物理信号单元

层级关系:消息 → 拆分为多个包 → 包拆分为多个 flit → flit 拆分为多个 phit

消息、数据包、flit 和 phit 的层级关系

流控制机制

机制类型 控制级别 工作原理 主要特性
电路交换 (Circuit Switching) 消息级 1. 建立阶段(20-50 周期):协商端到端专用路径
2. 数据传输(固定带宽)
3. 拆除阶段(10-20 周期)
链路利用率 ≤40%
建立延迟与跳数正相关
存储转发 (Store-and-Forward) 数据包级 完整接收数据包后校验 CRC32
缓存整个包(1-5KB)再进行路由决策
缓冲区需求与包大小成正比
端到端延迟=Σ(传输延迟+排队延迟)
虚拟直通流控制 (Virtual Cut-Through) 数据包级 包头到达立即启动路由计算
采用信用控制保证下一跳缓冲区空间
需要至少 1 个包大小的缓冲区
支持提前释放缓冲区
虫洞交换 (Wormhole Switching) flit 级 1. 头 flit 路由计算(2-3 周期)
2. 体 flit 流水跟进
3. 尾 flit 释放通道资源
缓冲区仅需存储 1-3 个 flit
易受跨包队头阻塞影响
虚拟通道流控制 (VC Flow Control) flit 级 多逻辑通道分时复用物理链路
采用优先级加权轮询调度(如 WRR 算法)
支持 QoS 差分服务
硬件开销增加 15-20%
需要虚拟通道状态机管理

无死锁流控制

方法名称 原理描述 实现方法 优势 适用场景 典型案例
时间线划分 通过时间片周期打破资源依赖链 将操作划分为奇数/偶数周期,交替使用不同虚拟通道 天然避免循环依赖 周期性通信场景 同步 NoC 架构
逃生虚拟通道 保留专用通道作为逃生路径 每个物理通道保留至少 1 个专用逃生 VC,阻塞时启用确定性路由 确保死锁可恢复 自适应路由网络 Duato 协议
气泡流控制 环形拓扑中维持空缓冲区防止流量停滞 设计时保证环中至少存在 1 个空缓冲区,通过反压机制维持 简单有效 环形拓扑网络 处理器 L2 缓存互连

缓冲区反压

类型 实现方法 关键参数 优缺点 适用场景 同步要求
基于 credit 接收方分配初始信用值,发送方消耗信用,信用耗尽暂停发送 初始信用值:8-16
更新延迟:2-3 周期
高精度控制但硬件开销大 高带宽链路(HBM3 接口) 严格时钟同步
基于 ON/OFF 信号 接收方通过阈值触发停止/继续信号 停止阈值:75%容量
恢复阈值:25%容量
低功耗但吞吐量受限 低功耗 IoT 芯片 宽松同步
混合方案 结合信用机制和全局流控信号 信用粒度:VC 级
信号粒度:端口级
平衡性能与功耗 移动 SoC 区域同步

路由器微体系结构

基于 credit 的缓冲区反压机制的虚拟通道路由器微体系结构

分配器和仲裁器

分配器:将 N 个请求匹配到 M 个资源(如虚拟通道VC或交叉开关端口),支持多对多映射 。
仲裁器:将 N 个请求匹配到 1 个资源 ,解决单一资源的竞争问题。

类型 类别 工作原理 优点 缺点
轮询仲裁器 仲裁器 按固定顺序循环访问请求源,确保每个请求源都能获得均等机会 实现简单,公平性有保障 无法优先处理紧急请求
矩阵仲裁器 仲裁器 通过请求矩阵和授权矩阵进行二维仲裁,支持多请求并行处理 高并发处理能力 硬件复杂度呈平方增长
分离式分配器 分配器 将虚拟通道分配与交叉开关分配分为两个独立阶段 减少分配冲突 增加流水线级数
波前分配器 分配器 采用波前推进算法动态分配资源,优先满足关键路径请求 资源利用率高,低延迟 需要复杂的状态跟踪机制

流水线

路由器流水线

流水线阶段详解

阶段名称 功能描述 关键参数 延迟 功耗占比
缓冲区写入(BW) flit 物理层数据接收与缓冲 缓冲深度:4-8 flit/VC 0.5-1ns 8-12%
路由计算(RC) 确定输出端口和路径 路由表条目:256-1024 1.2-2ns 15-20%
虚拟通道分配(VA) 分配可用虚拟通道资源 并发请求数:4-8 1.5-3ns 20-25%
开关分配(SA) 仲裁输入输出端口连接关系 QoS 权重:高达 30% 1.8-3.2ns 25-30%
交叉开关传输(ST) 物理层数据交换传输 传输位宽:128bit 0.3-0.5ns 30-35%
链路传输(LT) 跨路由器物理链路传输 链路频率:2-4GHz 0.6-1.2ns 10-15%

优化技术对比

技术名称 实现原理 性能提升 硬件开销 适用场景
前瞻路由计算 在 BW 阶段预取路由信息 减少 RC 阶段延迟 40% +5% 逻辑面积 高负载网络
低负荷旁路 流量低时跳过 VA/SA 仲裁阶段 降低端到端延迟 15-20% 增加 10%控制逻辑 突发流量场景
动态 VC 合并 合并空闲 VC 提升资源利用率 吞吐量提升 12-18% 需要共享缓冲池 非均匀流量模式