学习:一些互联概念的澄清

按三条原本独立的栈(板级 I/O 栈、封装内 D2D 栈、Arm 一致性 NoC 栈),是"分层 + 跨栈拼接"的关系。下面按"自底向上分层 → 逐个定位 → 组合链路 → 选型场景"来梳理。


一、全景分层:三条栈如何咬合

复制代码
┌──────────────────────────────────────────────────────────────────────┐
│ A. 片上 NoC / 一致性域                                                │
│    CHI(Arm 一致性)      AXI / ACE-Lite(非一致或 IO 一致)           │
└───────────────┬──────────────────────────────────────────────────────┘
                │  CCG(CMN 多芯片网关:ID 空间映射 LDID ↔ RAID/HAID)
                │  可切换成三种"出片协议":CML_SMP / CHI C2C / CXL
┌───────────────┴──────────────────────────────────────────────────────┐
│ B. 出片协议层(决定语义:SMP 对称一致 / Host-Device / CXL 内存语义)    │
│    CML_SMP(64B|256B flit)   CHI C2C(fmt X=die2die / Y=PCIe)        │
│    CXL.io + CXL.cache + CXL.mem(68B 或 256B flit)                    │
│    PCIe Transaction Layer(纯 I/O 语义)                               │
└───────────────┬──────────────────────────────────────────────────────┘
                │  ★ CXS:AMBA 信用制流接口(512-bit Issue B),
                │    只管 flit 搬运与 credit,不管 flit 语义
┌───────────────┴──────────────────────────────────────────────────────┐
│ C. 链路层(决定可靠性与 flit 封装)                                    │
│    CML DLL/LLL(Arm AES0024)  CXL/PCIe 链路层   UCIe D2D Adapter      │
└───────────────┬──────────────────────────────────────────────────────┘
                │  FDI(Flit-aware D2D Interface,协议层↔Adapter)
┌───────────────┴──────────────────────────────────────────────────────┐
│ D. 物理层(决定距离、带宽密度、pJ/bit)                                │
│    UCIe PHY(封装内,时钟前向 + sideband,UCIe-S/UCIe-A/UCIe-3D)      │
│    PCIe PHY(板级/背板,SerDes + Retimer,NRZ→PAM4)                  │
└──────────────────────────────────────────────────────────────────────┘
                │  RDI(Raw D2D Interface,Adapter↔PHY)

关键洞察:CXS 是"竖向胶水",CCG 是"横向闸门",CML 是"协议方言",UCIe/PCIe 是"物理与链路底座",CXL/PCIe 是"通用语"。


二、逐个定位(最容易混淆的地方)

概念 全称与归属 层次 本质作用
PCIe PCI Express,PCI-SIG 完整协议栈(TL/DL/PHY) 通用 I/O 互连底座,板级事实标准
CXL Compute Express Link,CXL 联盟 跑在 PCIe PHY 之上的协议层集合 给 PCIe 补上缓存一致性与内存语义(.io/.cache/.mem)
UCIe Universal Chiplet Interconnect Express PHY + D2D Adapter(链路层) 封装内 die-to-die 的开放底座,上层可承载 PCIe/CXL/自定义流
CXS AMBA CXS,Arm 公开规范 片上/片间接口(非协议) 基于 credit 的宽位流接口,把 CCIX/CXL/C2C 包搬给链路层或 PCIe 控制器
CML Coherent Mesh Link(CML_SMP),Arm CMN IP 芯片间一致性协议​ + 其 DLL Arm 私有 SMP 一致性协议,把 CMN 网格跨芯片延伸到对称多芯片系统
CCG CMN multi-chip Gateway,Arm CMN IP 网关模块(非协议) 在片上 ID 空间(LDID)与跨片 ID 空间(RAID/HAID)之间做映射与路由

三个必须纠正的常见误解:

  1. CXS 不是 CXL 的下层。CXS 是 Arm 定义的"传输接口",它搬运的载荷既可以是 CXL 包,也可以是 CCIX、CHI C2C、CML_SMP 包------它对载荷语义完全透明。
  2. CCG 不是协议,是 CMN 里的一个节点/模块,且同一 CCG 可配置为跑 CML_SMP、CHI C2C 或 CXL 3.0,CMN S3 最多 32 个 CCG,每个带 512-bit CXS Issue B 接口。
  3. CML_SMP 是 Arm IP 的私有协议,CHI C2C 才是开放的 AMBA 规范。前者用于同构多芯片 SMP,后者用于 Host-Device 直连,二者不是一回事。

三、四条可落地的组合链路

组合 1:原生 PCIe

PCIe TL → PCIe DL → PCIe PHY

标准 I/O attach:网卡、SSD、GPU、Retimer 扩展。板级、跨连接器、带枚举与驱动生态。

组合 2:CXL over PCIe PHY

CXL.io/.cache/.mem → CXL/PCIe 链路层(68B / 256B flit,FEC+CRC)→ PCIe PHY

CXL 与 PCIe 的关系是逐层不同:物理层直接继承,逻辑 PHY 与链路层是"扩展",事务层与 .cache/.mem 则是"新增"------PCIe 本身没有对应语义。用于内存扩展/池化(Type 3)、带缓存的加速器(Type 1/2)、机架级解耦。

版本现状:CXL 1.1/2.0 基于 PCIe 5.0(32 GT/s),CXL 3.x 基于 PCIe 6.0(64 GT/s、256B Flit),CXL 4.0 已于 2025 年 11 月发布,转向 PCIe 7.0(128 GT/s),新增 bundled port(多端口聚合成单一逻辑端口)、原生 x2 宽度、最多 4 个 Retimer,并强化内存 RAS。

组合 3:PCIe / CXL over UCIe(封装内)

PCIe TL 或 CXL → UCIe D2D Adapter(CRC/retry/arb-mux)→ UCIe PHY

  • Flit Mode 时由 Adapter 负责 CRC 与重传,延迟可预测;
  • Raw Mode 时绕过 Adapter 的可靠性处理,专为 Retimer 场景(把 UCIe 流量经光/电缆送出封装)设计,由协议层自己保证可靠性。
  • UCIe 支持多协议挂在同一 Adapter 上,靠 Adapter 的 Arb/Mux 时分复用,链路训练时通过 sideband 协商选哪个协议。

UCIe 3.0(2025 年 8 月)把 UCIe-S 与 UCIe-A 速率均提升至 48/64 GT/s,新增运行时重校准、sideband 距离扩展至 100 mm、早期固件下载、连续传输模式,且完全向后兼容。

组合 4:Arm 一致性栈(CML / CCG / CXS 真正出场的地方)

路径 a --- 同构多芯片 SMP(封装内)

CHI NoC → CCG(LDID→RAID 映射)→ CML_SMP(64B/256B flit)→ CXS(512b)→ CML LLL/DLL(format X)→ UCIe PHY

路径 b --- Host 到 Device 直连

CHI NoC → CCG → CHI C2C → CXS → LLL:format X 走 UCIe(die-to-die),format Y 走 PCIe LLL

路径 c --- 接标准 CXL 设备

CHI NoC → CCG RA 配成 CXSA 模式 → CXL.mem / CXL.cache → CXS(512b Issue B)→ CXL/PCIe 控制器 → PCIe PHY

路径 c 里还有个值得注意的组合:CCG RA 通过额外的 MPE CXS 接口外接内存保护引擎,在 CXL Type-3 HDM-H 设备上做主机侧数据加解密。


四、场景选型速查

场景 推荐组合 理由
封装内 I/O die ↔ 计算 die,要求驱动零改动 **PCIe over UCIe(Flit Mode)**​ 复用 PCIe 软件栈,跨 die 边界对软件透明
封装内接 CXL 内存/加速器,追求低延迟 CXL over UCIe 省掉板级 SerDes 与 Retimer,pJ/bit 与延迟大幅改善
自研同构多芯片 SMP(如双 compute die 拼一颗) **CML_SMP over UCIe(Streaming Raw Mode)**​ 对称一致性、延迟最优,代价是绑定 Arm CMN 生态
跨厂商 chiplet 生态、需要混搭 CHI C2C over UCIe 开放 AMBA 规范,format X 专为 die-to-die 设计
跨封装 / 跨 socket / 背板 CXL over PCIe(或 UCIe Retimer Raw Mode) 只有 PCIe PHY 能撑住长距与连接器
内存池化、机架级解耦 CXL 3.x/4.0 Type 3 + Switch 多级交换、fabric、DCD 动态容量
非标准协议(以太网 MAC、自定义 NoC、RF/DSP 流) UCIe Streaming Raw Mode 协议任意,只要两端自洽,仍可白拿 UCIe 的链路管理与测试修复
纯 I/O 扩展 原生 PCIe CXL 的一致性开销没有收益

五、几条实践判据

  • 要"生态互通"选 CXL,要"极致延迟/能效"选自研协议 over UCIe Streaming------这是 chiplet 设计里最核心的一次取舍。
  • CXS 只解决"怎么把包递给链路层",flit 内容、顺序、重试语义全由上层的 CXL/CML/C2C 决定;换协议时 CXS 这层不用动,这正是 Arm 把它独立出来的价值。
  • 距离决定物理层,语义决定协议层:先定"封装内还是板级",UCIe 与 PCIe PHY 二选一;再定"要不要一致性",CXL / CML_SMP / CHI C2C / 纯 PCIe 四选一。这两步定完,栈就基本确定了。
  • UCIe 上跑 PCIe 有个版本坑:Flit Mode 要求协议本身已 flit 化,所以早期只支持 PCIe 6.0;UCIe 2.0 起才补充了把 PCIe non-Flit 模式事务封装进 68B Flit 的映射方式,做 IP 选型时务必对齐版本。
相关推荐
zyf10441632 分钟前
暑期实践日志 Day45:梳理第五章内容,完善成果总结
学习·计算机网络·剪辑·暑期实践·课题任务
m4Rk_44 分钟前
【论文阅读】Agent 记忆机制(56):R2D2——把历史网页轨迹变成可搜索地图与反思记忆
论文阅读·人工智能·学习·开源·github
M78佐菲44 分钟前
Linux学习笔记:网络通信
linux·笔记·学习·算法
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(58):Amory——把长期对话从记忆碎片组织成会生长的故事
论文阅读·人工智能·学习·开源·github
西峰u1 小时前
Java IO 完整学习笔记|字节流、字符流、缓冲流、资源关闭全梳理
java·笔记·学习
星恒随风1 小时前
C++11详解(一):统一初始化——列表初始化与 initializer_list
c++·笔记·学习·list·状态模式
我爱cope2 小时前
【计算机网络 | 网络层补充:内部网关协议:RIP 与 OSPF 如何在自治系统内选择路由?】
网络·学习·计算机网络·智能路由器
是隼人2 小时前
buuctf-pwn ciscn_2019_n_5题解(学习过程持续 更新)
c语言·学习·安全·pwn入门·ctf入门
旖旎夜光2 小时前
【AI入门】大模型介绍全解析:从模型、LLM 到提示词与嵌入
人工智能·笔记·python·学习·ai编程