你是否曾因电脑内存不足而感到沮丧,却又无法像插上一个 U盘? CXL 技术正是为了解决这一问题而诞生的。它如同内存的“外部扩展系统”,使服务器或工作站能够通过专用电缆和扩展卡灵活地添加大量外部内存,甚至让多台机器共享一个共同的内存池。 得益于 CXL 技术,1TB 的系统内存——这一曾仅在昂贵的大型机上才能实现的配置——正在高性能计算和人工智能领域变得越来越普遍。.
CXL为何应运而生?
我们可以将传统的服务器内存比作一栋设有独立储物柜的大型公寓楼:每个房间(每台服务器)都有自己的存储空间,但这个空间的大小在入住时就已经确定,即使邻居的储物柜是空的,你也无法借用。 随着人工智能、云计算和大数据的发展,这种模式开始暴露出三个严重的问题。.
当物理插槽用完时,就无法再添加内存了。. 每块服务器主板上的内存插槽数量是有限的,通常为八个、十二个或十六个。即使您将每个插槽都装上市面上容量最大的内存条,总容量仍会达到上限。 当您的应用程序所需的内存超过这一上限时,唯一的解决方案是购买更昂贵、更高端的服务器,而不是简单地给现有机器添加更多内存。.
内存资源无法共享,这造成了巨大的浪费。. 在大型数据中心中,不同服务器的峰值负载往往出现在不同时间。但在传统架构下,这些闲置的内存资源无法被需要它们的服务器“借用”。行业统计数据显示,数据中心的内存利用率通常低于百分之五十,这意味着近一半的硬件投资处于闲置状态。.
为了应对突如其来的需求,企业不得不进行过度投资。. 当某个项目偶尔需要两倍于常规的内存容量时,传统的解决方案是购买能够满足峰值需求的硬件。这笔钱花在了大部分时间都闲置的容量上。而且,一旦这些硬件模块安装到位,就无法在不同项目之间灵活调配,也难以随着业务增长而轻松扩展。.
这正是为了同时解决这三个问题—— 有限的物理容量、无法共享资源以及投资效率低下 – 工程师们设计了CXL技术。它从根本上改变了内存与计算单元之间的连接方式,使内存成为一种可按需连接并动态分配的资源。.
什么是 CXL,它是如何工作的?
CXL 是一种基于标准 PCIe 物理接口的开放式通信协议。其全称是 Compute Express Link, ,你可以将其视为一套“语言规则”,它能够实现 CPU 与外部存储设备之间高速、一致且低延迟的通信。 CXL 的独特之处在于,它允许 CPU 将外部存储器视作自身的一部分,而非需要绕道访问的外设。.
缓存一致性
设想这样一种情况:你和一位同事正在编辑同一个在线文档。如果你们各自保存一份本地副本并进行修改,合并时就会出现冲突——究竟该采纳谁的修改?计算机内存也面临同样的问题。 CPU内部有一个名为“缓存”的快速小型存储区域,其中保存着主内存中最近使用过的数据副本。当CPU访问内存时,它会优先从缓存中读取数据,这样速度要快得多。 但如果本地 DDR 内存和外部 CXL 内存都保存着相同数据的副本,且其中一个副本被修改,另一个副本必须相应地更新。 否则,CPU 可能会读取错误的数据。这个问题被称为“缓存一致性”。CXL 包含一个专门的子协议来处理这个问题,它会在 CPU 和外部内存之间不断“通信”,以确保所有副本保持一致。.
内存池与灵活分配
在传统方法下,每台服务器只能使用其自身插槽中的内存。. CXL 提出了“池化”的概念”: 您可以将多个 CXL 存储设备连接到 CXL 交换机,形成一个单一的大容量存储池,然后让多台服务器根据需要从该池中“调用”存储资源。这就像一栋办公楼将每个办公室里的独立饮水机替换为走廊里的中央饮水站,供所有人按需取水。 中央供水站的总容量可能小于十台独立饮水机的总和,但仍能满足所有人的需求,因为他们的用水高峰时段并不重合。 同样,CXL 内存池允许数据中心管理员根据每台服务器的实时负载动态分配内存——繁忙时分配更多,空闲时回收——从而以更少的硬件总数支持更多的计算任务。.
CXL 技术包含哪些内容?
CXL 是一套完整的内存解决方案,涵盖从物理硬件到软件配置的方方面面。 您可以将该系统视为一条高速公路:道路本身(物理连接)仅是基础;您还需要交通规则(通信协议)来确保车辆有序通行,还需要交通管理系统(软件配置)来引导车辆前往目的地并选择行车道。 如果缺少任何一个层,高速公路就无法真正运行。.
硬件层:可见组件
CXL 技术的物理组件包括多种类型的设备,它们共同构成了内存扩展的基础设施。最常见的硬件是 CXL 内存扩展卡,其外观类似于显卡,可直接插入服务器主板上的现有 PCIe 插槽。该卡上焊接有内存芯片,或设有内存模块插槽。 插入后,系统会自动识别新增的内存容量。另一种硬件形态是 CXL 内存模块,其体积更小——类似于紧凑型固态硬盘——可安装在专用的服务器硬盘托架中,因此非常适合高密度部署。.
当需要连接多台服务器或多个内存设备时,CXL交换机便派上了用场。它类似于网络交换机,但与网络交换机不同的是,它处理的不是网络数据包,而是内存访问请求。 通过 CXL 交换机,管理员可以将多张 CXL 内存卡连接在一起,形成一个统一的大容量内存池,从而让多台服务器能够同时共享该池的资源。 对于更长的距离,专用 CXL 电缆可在数米甚至数十米的距离内保持高速传输,从而允许将存储设备放置在与服务器不同的机架中。.
协议层:通信的语言规则
如果说硬件是骨架,那么协议就是让一切正常运转的灵魂。CXL 协议包含三个并行子协议,每个子协议负责不同的任务。它们可以同时运行,且互不干扰。.
- 第一个子协议名为 CXL.io, 其作用是进行设备发现和初始化。当您将一张 CXL 存储卡插入服务器时,, CXL.io 负责让 CPU 识别该设备、读取其基本信息(例如容量和支持的模式),并为其分配地址空间。这一过程与插入显卡或网卡非常相似。.
- 第二个子协议称为 CXL.cache, ,这是 CXL 的核心特性之一。CXL.cache 负责维护 CPU 缓存与外部存储器之间的数据一致性。如前所述,当 CPU 修改某条数据时,CXL.cache 会确保外部存储器中的对应副本也随之更新,反之亦然。.
- 第三个子协议称为 CXL.mem, ,它负责实际的数据读写操作。当 CPU 需要从 CXL 内存中读取数据时,CXL.mem 会转发请求并返回数据;当 CPU 需要将数据写入 CXL 内存时,CXL.mem 也会以同样的方式执行传输。.
软件层:通过配置与管理确保一切正常运行
通过软件配置,操作系统和应用程序才能真正使用这种新型内存。在 BIOS 中,管理员需要启用 CXL 功能并分配资源。 在操作系统层面,以 Linux 为例,CXL 内存会被识别为一个独立的 NUMA 节点,管理员可以通过命令指定程序应优先使用本地内存还是 CXL 内存。 现代操作系统还支持内存分层,该功能会自动将最活跃的数据保留在高速本地 DDR 中,并将不那么活跃的数据迁移到 CXL 内存中。绝大多数应用程序无需修改代码即可使用 CXL 内存,因为操作系统对其的管理方式与普通内存完全相同。.
CXL 与传统内存解决方案
| 方面 | 传统DDR解决方案 | CXL 解决方案 |
|---|---|---|
| 容量上限 | 受主板内存插槽和内存条最大容量限制;一旦达到上限,便无法进一步扩展 | 无需更换主板,即可通过 CXL 扩展卡或交换机继续增加内存 |
| 资源灵活性 | 每台服务器的内存是固定的;无法在服务器之间重新分配 | 支持内存池;多个服务器可根据需要共享一个公共内存池 |
| 成本效益 | 为满足峰值需求而采购大量内存;日常利用率通常低于50% | 在更少的总内存下支持相同的工作负载;利用率可超过 80% |
| 扩展操作 | 需要关机,并手动插拔内存条;可能需要更换硬件 | 支持热插拔和动态分配;可在线添加或移除内存资源 |
| 适用场景 | 具有极高性能要求和稳定工作负载的小规模部署 | 大型数据中心、AI 训练、云计算以及其他需要弹性资源的场景 |
如表所示,传统的DDR方案在极致性能和简便部署方面仍具优势,但代价是成本高昂且资源管理僵化。相比之下,CXL方案虽在访问速度上略有牺牲,却换来了巨大的收益:可扩展的容量、可共享的资源以及更高的成本效益。 在实际的数据中心运营中,这种权衡往往非常值得,因为闲置内存造成的浪费远比微小的速度差异更令人头疼。.
CXL 的应用场景
CXL 并非旨在取代传统内存,而是为了解决传统内存难以应对的特定场景。以下三个领域是 CXL 部署最为成熟且能带来最显著价值的领域。.
人工智能与大型模型训练
训练一个拥有数千亿参数的大型语言模型,需要同时将整个模型的参数、训练数据和中间计算结果加载到内存中。 当模型规模超过单台服务器的内存容量时,CXL 允许一台服务器直接连接数 TB 的 CXL 内存,将所有数据存储在单个节点内——这极大地简化了编程模型,并提高了训练效率。对于从事大型模型研发的中型团队而言,CXL 提供了一条比购买昂贵大型机更经济的途径。.
数据中心内存池化
在大型云数据中心中,不同租户和应用程序的峰值负载往往出现在不同时间。通过部署 CXL 交换机和 CXL 内存池,数据中心可以将所有闲置内存汇集到一个共享池中,并根据每台服务器的实时需求进行动态分配。 业界估计,这种方法可将内存利用率从通常的40%至50%提升至80%以上——这意味着相同的硬件投资可支持近两倍的计算工作负载。.
云计算与虚拟机密度
云服务提供商希望在单台物理服务器上运行尽可能多的虚拟机(VM),以增加收入。 但每台虚拟机都必须分配固定数量的内存,即使该内存实际使用率很低,也不能被其他虚拟机占用。因此,服务器往往在 CPU 资源耗尽之前就已内存不足,从而限制了可创建的虚拟机数量。 CXL内存池使云平台能够将内存视为一种弹性资源,用于超额分配或动态调整:当某台虚拟机的内存使用量低于分配额度时,剩余资源可被回收并分配给其他虚拟机。这项技术使云服务提供商能够在同一台物理服务器上托管更多租户,从而降低运营成本。.
除了这三个主要应用场景外,CXL 还被用于高性能计算中的大规模模拟、内存数据库(如 SAP HANA)的容量扩展,以及实时大数据分析引擎(如 Apache Spark)的加速。 这些应用的共同点在于对内存容量有极高需求,同时对延迟具有一定容忍度——这正是 CXL 表现卓越的领域。.
CXL的现状与未来展望
CXL 已从实验室走向实际部署。 在硬件方面,英特尔第四代至强可扩展处理器和 AMD 第四代 EPYC 处理器原生支持 CXL 1.1 或 2.0 标准。戴尔、惠普企业、浪潮和 Supermicro 等主要服务器厂商在其高端产品线中均提供了 CXL 内存选项。 三星和美光目前已量产容量从 128GB 到 512GB 不等的 CXL 内存模块,其中部分产品支持热插拔。在软件方面,Linux 内核自 5.18 版本起便原生支持 CXL,各大云操作系统也在逐步完善 CXL 内存池功能。.
展望未来,CXL 主要沿着两条路径发展。第一条是协议升级。 CXL 2.0引入了内存池化和交换机支持,目前已开始试用。CXL 3.0将带宽提升至64 GB/s,并增加了多级交换功能,预计将在2026年后普及。基于PCIe 7.0的CXL 4.0计划将带宽再次提升约一倍。 第二条路径是部署演进。短期内,CXL将作为“第二层”内存,与本地DDR互补。中期来看,内存池化将在大型数据中心成为标准配置,使内存像计算和存储资源一样能够动态分配。 从长远来看,CXL 和 DDR 可能会共存:DDR 用于对延迟敏感的核心工作负载,CXL 则用于大容量、可共享的扩展内存。.
CXL 技术的出现,正是为了解决长期困扰计算行业的一个难题:为什么内存不能像存储一样灵活地扩展和共享?CXL 技术通过精妙的协议设计,在现有的 PCIe 基础设施之上构建了缓存一致性和内存池化等关键功能。 从硬件到软件,从单机扩展到数据中心范围内的资源共享,CXL正在逐步改变我们对内存的认知。当然,这项技术仍处于早期阶段;协议的成熟、生态系统的完善以及成本的降低都需要时间。 但可以肯定的是,随着AI模型持续增长、数据规模不断突破物理边界,能够让内存摆脱固定插槽束缚的CXL,将在高性能计算领域成为日益不可或缺的基础设施组成部分。.





