前几天写了一个关于新协议技术的文章,大家反响不错,那今天再写一个新协议。
协议技术的本质,其实是翻译。举一个极端情况,如果所有设备都说同样的「语言」,那就压根不需要这么多复杂的协议了。
从这个角度来看,对协议的定义,其实是对话语权的定义。
之前文章里介绍的协议,更多应用在我们日常生活中;但其实真正「诸侯割据」的大战场,在数据中心。你听过的几乎所有最先进的技术,比如AI训练、云计算、大数据分析等等,都发生(或首先发生)在数据中心里。
AI领域有算力、算法、数据三个要素,但它们本质上都是对「数据」本身的处理:算力意味着数据处理性能更高、算法代表处理数据更加智能和高效,而数据其实指的是对更多更高质量数据的需求。
所以还有这样一句话:数据是新时代的石油。
然而,硬件又一次成功「拉胯」:虽然存储数据的介质有了进步,但面对不断增长的海量数据,内存容量有限、存储带宽瓶颈、算存分离带来的效率低下等问题,就成为制约数据中心里系统性能提升的瓶颈。当然,本质上的原因,是因为数据中心里巨头太多,有的做计算、有的做存储、有的做网络、有的做应用,大家在不同领域,由于各种各样的原因很难好好协作。
在这个背景下,一个名叫CXL(Compute Express Link)的技术出现了。
和传统的小修小补不同,CXL不是简单的加内存条数量或升级接口带宽,而是提供了一种跨CPU、内存、存储的新连接标准。这不仅让服务器架构发生了根本性变化,也为传统存储与计算资源的使用方式带来了重构机会。
CXL:集团军作战,想卷死谁?
想理解CXL的核心价值,我们可以打个比方:在传统的计算架构里,CPU像是一位将军,带着自己麾下的一群士兵(内存、存储)单打独斗。而CXL的出现,就像让来自各个军团的所有将军之间可以调兵遣将、共享粮草、统一调度,从而形成一支集团军。
这样你不需要是韩信,带兵多多益善;只要你是良将,就能靠CXL「对齐颗粒度,拉通上下游,形成组合拳」。
值得注意的是,CXL不是一个协议,而是一个协议家族,主要包含三个关键点:
1. CXL.io:基于PCIe的I/O协议,用于设备发现、配置、管理和传统的I/O操作,确保了与现有PCIe生态系统的兼容性。
2. CXL.cache:允许加速器等设备与CPU共享缓存,实现对CPU内存的一致性访问。这对于需要低延迟访问共享数据的应用至关重要,比如现在的各种AI训练和推理任务。
3. CXL.mem:允许CPU访问连接在CXL设备上的内存,从而实现内存的扩展和池化。这是CXL最具革命性的部分,使得内存不再仅仅局限于主板上的DIMM插槽,也是我们今天要说的重点。
这意味着在基于CXL构建的系统中,可以有一个“内存池”,由多个CXL内存设备构成,不同CPU和加速器根据任务需求动态调用,而不再局限于本地内存。这种分布式共享内存的架构,不仅极大地提升了资源利用率,也为AI等吞吐密集型任务提供了理想平台。
从宏观层面来看,CXL所推动的是一个「软硬解耦、统一抽象」的未来,它将系统架构拉向一个更加灵活、模块化、资源池化的方向。而这正是下一代数据中心、云计算架构的刚需。
不过有人会问了,CXL到底是不是重复造轮子?
比如,NVMe已经是一个非常成熟且高速的存储接口标准。为什么还需要CXL、或者CXL能否取代NVMe?
答案是否定的。NVMe主要解决的是低延迟高并发的存储访问问题,而CXL则是要解决跨节点算力协同与内存资源共享问题。两者在物理接口层(都是基于PCIe)可能相似,但在协议、架构和目标场景上则完全不同。
NVMe强调“更快地用SSD”,而CXL强调“更聪明地用内存”。在未来的数据中心中,NVMe继续担任高速块存储的角色,而CXL将成为跨计算节点的“记忆网络”。所以两者并非你死我活,而是强强联合。
新机会,到底在哪里?
回到这篇文章的主题,那就是在这波CXL的浪潮中,大厂们看到了怎样的机会?
例如,三星已大大加快了基于CXL解决方案的研发进程。在2021年,他们推出了全球首款支持CXL的内存原型,2022年推出了第二代并支持512GB内存模块,并在后续几届技术大会上持续披露新产品。
比如,CMM-D(CXL Memory Module – DRAM)本质上是基于CXL标准封装的DDR内存扩展模块。CMM-D通过CXL接口连接到CPU,可以直接作为系统内存使用,具有热插拔、远程访问、跨节点共享等特性。相当于在不改变主CPU内存通道数量的前提下,实现内存容量和带宽的扩展。比如,这些模块可以直接插入支持CXL的服务器中,即时扩展系统内存,满足AI/ML、内存数据库等应用对大容量内存的需求。
此外,CMM-D原生支持CXL特有的内存一致性,即CPU内存和CXL设备内存之间可以无缝共享相同的数据。从技术上看,这是因为CXL主机有一个作为管理器的主代理,并使用CXL.cache和CXL.mem来一致地访问所连接的内存,并保证主机和CXL设备能看到内存位置的相同副本。
基于CXL的内存池扩展
从各自为战,到联合作战
现代技术早就不是各个厂商单打独斗就能闯出一片天的时候了,一个技术的成熟和破圈,离不开整个产业链的协同努力。在CXL领域,各家CPU厂商、存储厂商、操作系统厂商、服务器OEM等厂商都在一起合作,构建数据中心的CXL生态。
比如,在CPU方面,英特尔、AMD这些数据中心CPU的巨头厂商,都在扩展自家的服务器CPU平台以无缝兼容CXL内存产品,并实现最优性能。在扩展控制器方面,澜起科技将自家的CXL内存扩展控制器 (MXC) 与三星的CXL内存模块配合,为服务器提供高效的内存扩展能力。在操作系统和软件层面,红帽等OS大厂也在开发和优化支持CXL的软件栈,包括在Linux内核中添加对CXL设备发现、内存管理、错误处理等功能的支持,以及开发相应的管理工具和API,使应用程序能够充分利用CXL带来的内存扩展和共享能力。
未来已来?
对协议的定义,其实就是对话语权的定义,但这绝对不是一蹴而就的过程。三星在CXL领域的投入就是一个很好的例子,不管是标准制定、产品研发、还是生态建设,都需要长期大量持续的投入。当然也只有这样,才能保证在新技术的浪潮中占领先机。
看到机会、解决困难的问题,并长期坚持做下去,这或许是硬科技最吸引人的地方。
(注:本文不代表老石任职单位的观点。)