CXL —— 内存解耦的关键拼图
DDR 物理上必须挂在 CPU 旁边,HBM 必须焊在芯片同一块硅中介上——这两条路都没法解决”内存能不能像存储一样池化、共享、按需分配“。CXL 是这个问题的答案。
CXL 的起点:PCIe 上的”内存级”协议
CXL = Compute Express Link,由 Intel 在 2019 年发起,2020 年 Gen-Z、CCIX、OpenCAPI 几家组织全部并入 CXL 联盟——业界统一到一条路。
CXL 物理层直接复用 PCIe:
1 | |
但 CXL 不是 PCIe 的简单映射——它在 PCIe 之上定义了三个协议:
graph TB
subgraph CXL_proto["CXL 三种协议"]
CIO[CXL.io
类 PCIe,发现/枚举/中断]
CCC[CXL.cache
设备缓存 CPU 内存的一致性]
CMEM[CXL.mem
CPU 访问设备的内存]
end
| 协议 | 谁访问谁 | 谁需要这个 |
|---|---|---|
| CXL.io | 标准 PCIe 设备访问 | 几乎所有 CXL 设备 |
| CXL.cache | 设备 → CPU 内存(带缓存一致性) | 加速器(GPU、智能网卡) |
| CXL.mem | CPU → 设备的内存 | 内存扩展卡 |
CXL.mem 是关键——它让 CPU 可以像访问本地 DDR 一样访问 PCIe 上的内存。
CXL 的三类设备
CXL 1.0 把设备分成三类:
graph LR T1[Type 1
无内存的加速器
支持 .io + .cache] --- A1[智能网卡
SmartNIC] T2[Type 2
有内存的加速器
三协议全用] --- A2[GPU
FPGA 加速器] T3[Type 3
纯内存设备
支持 .io + .mem] --- A3[内存扩展卡
Memory Expander]
服务器场景下最重要的是 Type 3——内存扩展卡。
CXL.mem 的工作模式
服务器看到的”CXL 内存”:
1 | |
应用层完全透明:
1 | |
操作系统上看到一个没有 CPU 的 NUMA Node——这就是 CXL 内存。延迟比本地 DDR5 高一倍多(~150-300 ns),但远低于跨 socket。
CXL 三个阶段的演进
CXL 1.0 / 1.1(2019-2020)
- 单主机内的扩展
- Type 1/2/3 设备定义
- 物理层 PCIe 5.0
- 没人量产——只是规范
CXL 2.0(2020)
引入两个关键概念:
1. CXL Switch
像以太网交换机一样,让多个主机和多个 CXL 设备多对多互联:
graph TB H1[主机 1] --- SW H2[主机 2] --- SW H3[主机 3] --- SW SW[CXL Switch] SW --- M1[CXL Memory 1] SW --- M2[CXL Memory 2] SW --- M3[CXL Memory 3]
2. Memory Pooling(内存池化)
多台主机共用同一池内存:
1 | |
实际产品:三星、SK 海力士、美光在 2023-2024 年分别发布 CXL 2.0 Memory Module,数据中心客户开始 PoC。
CXL 3.0 / 3.1(2022-2024)
CXL 3.x 是质的飞跃:
- 物理层升到 PCIe 6.0(双倍带宽)
- 多级 Switch(机柜级互联)
- Memory Sharing:多主机直接共享同一块内存(不是 pooling,是 sharing)
- 一致性硬件支持,避免软件复杂度
graph TB
subgraph 机柜A
HA1[主机 A1] --- SWA[CXL Switch A]
HA2[主机 A2] --- SWA
end
subgraph 机柜B
HB1[主机 B1] --- SWB[CXL Switch B]
HB2[主机 B2] --- SWB
end
subgraph 内存池
MP1[CXL Memory Pool 1]
MP2[CXL Memory Pool 2]
end
SWA --- FAB[Fabric / Multi-level Switch]
SWB --- FAB
FAB --- MP1
FAB --- MP2
CXL 3.x 之后,”内存池“概念可以扩展到整个机柜甚至机房。
CXL 内存的延迟梯度
1 | |
待补充:实测数据因平台而异,以上是 2024-2025 年厂商公开的典型范围。
可以看到:CXL 内存比远端 DDR5 慢,但比 NVMe SSD 快上百倍——这是它的”位置”。
CXL 的三个使用场景
场景 1:单机内存扩展
最直接的用法。一台服务器主板 12 通道 × 2 DPC × 256 GB = 6 TB,但不够?加 CXL 卡:
1 | |
适合:内存数据库、超大容器、Java 大堆。
场景 2:内存池化
数据中心多台机器算 + 1 个 CXL 内存池:
1 | |
云厂商最关心这个——内存是数据中心 TCO 的最大头,池化能省真金白银。
场景 3:异构内存架构(Tiered Memory)
1 | |
OS(Linux 内核 5.15+)已支持自动冷热数据分层迁移——最近访问的留在快层,长期不用的下沉到 CXL。
CXL 的产品现状(2025 末)
| 厂商 | 产品 | 阶段 |
|---|---|---|
| 三星 | CXL 2.0 Memory Module CMM-D | 量产 |
| SK海力士 | CXL 2.0 Memory Solution | 量产 |
| 美光 | CXL 2.0 NVMe-style memory | 量产小规模 |
| Astera Labs | Leo CXL Smart Memory Controller | 量产 |
| Microchip | SMC 2000 系列 | 量产 |
| Marvell | Structera A 系列 | 量产 |
CPU 平台支持:
| 平台 | CXL 支持 |
|---|---|
| Intel SPR/EMR | CXL 1.1 |
| Intel Xeon 6 | CXL 2.0 |
| AMD Genoa | CXL 1.1 |
| AMD Turin | CXL 2.0 |
| ARM(Grace 等) | CXL 2.0/3.0 |
CXL 3.x 的产品已经开始出现,但大规模商用还要 2026-2027 年——主要等 PCIe 6.0 完整生态、Switch 芯片成熟、整机厂方案稳定。
CXL 上的”持久内存”
Optane 走了,CXL 把持久内存的接力棒接了过来:
- Type 3 设备 + 后端 NAND/3D XPoint 类介质 = CXL Persistent Memory
- 字节寻址、断电保留
- 容量大、延迟比 DRAM 高、可热插
1 | |
待补充:当前已量产的 CXL Persistent Memory 产品和规格。
CXL 的限制和挑战
1. 延迟高于本地 DRAM
加一跳 PCIe 就多 50-100 ns。不能完全替代本地 DDR——只能做”远端 / 池化 / 持久”层。
2. 一致性的复杂度
CXL.cache + 多主机共享 → 缓存一致性协议变复杂。CXL 3.0 引入硬件级一致性,但调优、故障定位都比传统 NUMA 难。
3. 故障域扩大
CXL Switch 挂掉 = 多台机器同时失内存 → 单点故障风险。Fabric 级冗余是必须的。
4. 软件适配
OS、虚拟化、数据库要明确”哪段内存是 CXL 哪段是 DDR”——目前 Linux 5.18+ 已基本就绪,Windows Server 2025 跟进,但应用层还不成熟。
5. 安全和隔离
多租户共享内存池如何防止租户间数据泄露?CXL 3.0 引入 IDE 加密通道,但实战经验少。
一张大图
graph LR GEN1[2019
CXL 1.0] --> GEN11[2020
CXL 1.1
规范完成] GEN11 --> GEN2[2020-2023
CXL 2.0
Switch + Pooling] GEN2 --> GEN3[2022-2025
CXL 3.x
Sharing + 多级] GEN3 --> FUT[2026+
机柜级内存池化普及]
CXL vs NVLink、UALink
CXL 不是这个空间唯一的协议:
| 协议 | 主导者 | 物理层 | 主要场景 |
|---|---|---|---|
| CXL | Intel + 业界联盟 | PCIe | 通用,CPU 内存扩展、加速器 |
| NVLink | NVIDIA | 自研 | GPU↔GPU、CPU↔GPU |
| UALink | AMD/Intel/Broadcom等 | 类以太网 | GPU↔GPU 集群(对标 NVLink) |
| Infinity Fabric | AMD | 自研 | EPYC 多 socket 互联 |
短期看 CXL 在”CPU 周边”占优势,NVLink 在 GPU 互联占绝对优势。中长期 UALink 试图打破 NVIDIA 在 GPU 集群互联上的垄断。
小结
- CXL 在 PCIe 物理层之上加了 .io / .cache / .mem 三个协议
- CXL 1.x 单机扩展,2.0 Switch + 池化,3.x 多机共享 + 多级 Fabric
- CXL 内存延迟 150-400 ns,比本地 DDR5 慢、比 SSD 快几个数量级
- 三大用途:单机内存扩展、内存池化、异构内存分层
- Optane 退役后的”持久内存”接力棒交给 CXL
- 当前产品已量产但生态仍在成熟期,2026-2027 年是关键窗口
下一篇是第三章最后一篇——内存选型实战和小结。