Compute Express Link

Compute Express Link(简称CXL)是一个开放标准,其高速互联技术可以为高性能数据中心电脑提供高速、大容量的中央处理器(CPU)至装置,CPU至内存,及装置至装置的连接。[1][2][3][4]CXL作为一种高速串行协议,基于PCI Express(PCIe)的物理和电气接口构建。CXL包括基于PCIe的块输入/输出协议(CXL.io)以及用于访问系统内存(CXL.cache)和装置内存(CXL.mem)的新缓存一致协议。串行通信和池化能力允许CXL内存克服常见DIMM内存在实现高存储容量时的性能和插槽封装限制。[5][6]CXL还可以帮助高性能计算提升内存容量、内存带宽并降低I/O延迟。

历史

CXL技术主要由英特尔开发。CXL联盟于2019年3月由创始成员阿里巴巴集团思科系统、戴尔EMC、Meta谷歌惠普企业(HPE)华为、英特尔公司和微软组成,并于2019年9月正式成立。[7]

2021年11月,Gen-Z联盟将其技术标准及资产转移至CXL联盟,便于开发唯一的行业标准。[8]

2022年8月,OpenCAPI技术标准及资产也被并入CXL,进一步扩大支持CXL技术的公司和产品。[9][10]

协议

截止2024年,CXL标准目前支持以下三种协议。[11][12]

  • CXL.io – 以PCIe 5.0(及在CXL 3.0之后的PCIe 6.0)为基础并增加了一些改进。它可以将内存扩展到外部装置,并提供配置、链路初始化和管理、装置发现和枚举、中断、DMA和通过非一致性加载/存储进行的寄存器I/O访问。
  • CXL.cache – 允许外围装置通过低延迟请求/响应接口访问和缓存主机CPU内存。当内存被缓存到外部装置时,CPU只需要在本地缓存中保留最常用的数据。
  • CXL.mem – 允许主机CPU通过加载/存储命令一致性地访问缓存的装置内存,并且同时适用于静态随机存取存储器动态随机存取存储器。通过把外部装置作为主内存使用,CPU可以在内存故障的情况下继续运行。

装置类型

CXL目前支持三种装置类型:[12]

  • Type 1:主要用于没有本地内存的加速器,比如网卡。通过PCIe与现有系统集成,并通过CXL与CPU直接通信。
  • Type 2:主要用于更为通用的加速器,比如GPU,ASIC和FPGA。这类加速器通常具有GDDR高带宽存储器的本地内存。主CPU可通过CXL直接访问装置的本地内存。
  • Type 3:可以用于内存扩展板和持久化内存,与主机处理器直接通信,并且可以使用 CXL 协议来实现低延迟、高吞吐量的数据传输。

应用

CXL早期主要用于数据中心和高性能计算等场景。随着人工智慧领域模型开发对内存的需求不断提升,CXL使GPU和FPGA等加速器与CPU更高效的协作,进而提高人工智慧模型训练和推理的速度。[13]

参考文献