玩转OurBMC第十七期:CXL协议基础知识串讲(下)
【栏目介绍:“玩转OurBMC”是OurBMC社区开创的知识分享类栏目,主要聚焦于社区和BMC全栈技术相关基础知识的分享,全方位涵盖了从理论原理到实践操作的知识传递。OurBMC社区将通过“玩转OurBMC”栏目,帮助开发者们深入了解到社区文化、理念及特色,增进开发者对BMC全栈技术的理解。
欢迎各位关注“玩转OurBMC”栏目,共同探索OurBMC社区的精彩世界。同时,我们诚挚地邀请各位开发者向“玩转OurBMC”栏目投稿,共同学习进步,将栏目打造成为汇聚智慧、激发创意的知识园地。】
随着异构计算(CPU、GPU、FPGA、AI加速器)的普及,传统互连协议(如PCIe)在缓存一致性、内存共享和低延迟通信方面的局限性逐渐暴露。CXL(Compute Express Link)应运而生,其目标是构建一个统一的缓存一致性协议,支持CPU与加速器、内存扩展设备之间的高效协作。本文旨在为读者普及CXL协议的基础知识,助力其深入理解并有效运行这一技术。
CXL 设备类型
CXL 定义了三种设备类型(Type1、Type2、Type3),每种类型支持不同的协议子集,适用于不同的硬件场景:
注:上图引用< Compute Express Link Specification Revision 3.1, Version 1.0>
图1 CXL设备类型
01 Type1设备:缓存一致性加速器
该设备无本地内存且依赖主机内存,支持CXL.io和CXL.cache协议:
注:上图引用< Compute Express Link Specification Revision 3.1, Version 1.0>
图2 Type1-带缓存的CXL设备
Type1 设备是无本地内存的加速器(如智能网卡、FPGA、AI 推理芯片),需要直接访问主机的物理内存。
其核心功能是通过 CXL.cache 协议实现以下操作:
-
缓存一致性机制:Type1 设备可以缓存主机内存中的数据,并与CPU缓存(如L1/L2/L3)保持一致性。当设备修改缓存数据时,CXL.cache 会自动通知 CPU缓存失效,反之亦然,避免数据冲突。
-
低延迟访问:设备通过CXL链路直接访问主机内存,无需软件干预(如 DMA 或驱动程序的数据拷贝)。
示例应用场景:
- 网络数据包处理:智能网卡可以直接解析主机内存中的网络数据包,无需先将数据复制到设备本地。
- 加密加速:FPGA 可以直接读取主机内存中的明文数据,加密后写回,全程无需 CPU 参与。
关键优势:
- 简化编程模型:开发者无需手动管理缓存一致性(如传统的DMA +软件同步)。
- 低延迟:设备与主机内存的交互延迟接近本地内存访问。
02 Type2设备:带本地内存的加速器
支持CXL.io、CXL.cache以及CXL.mem协议:
注:上图引用< Compute Express Link Specification Revision 3.1, Version 1.0>
图3 Type2-带内存的CXL设备
Type2 设备是有本地内存的加速器(如GPU、AI训练芯片),其核心功能是双向缓存一致性:
- 设备访问主机内存:设备通过CXL.cache协议缓存主机内存数据,与CPU缓存保持一致(类似Type1)。
- 主机访问设备内存:主机可以通过CXL.mem协议直接读写设备的本地内存(如GPU显存),视为“内存扩展”。例如CPU可以直接访问GPU显存中的张量数据,无需通过PCIe的显式拷贝。
- 缓存一致性域扩展:设备本地内存与主机内存被纳入统一的缓存一致性域,由CXL.cache协议管理。当GPU修改显存数据时,CPU缓存会自动失效,反之亦然。
示例应用场景:
- 机器学习训练:GPU可直接读取主机内存中的训练数据集,同时CPU可以直接访GPU 显存中的中间结果。
- 异构计算:FPGA 的本地内存与CPU内存统一编址,实现零拷贝数据共享。
关键优势:
- 双向内存共享:主机和设备内存无缝融合,减少数据拷贝开销。
- 一致性粒度更细:支持缓存行(Cache Line)级别的一致性管理。
03 Type3 设备:内存扩展设备
支持CXL.io和CXL.mem协议,不支持CXL.cache:设备内存与主机缓存无一致性。
注:上图引用< Compute Express Link Specification Revision 3.1, Version 1.0>
图4 Type3-HDM-H内存扩展设备
Type3设备是纯内存扩展设备(如CXL内存条、内存池、SSD内存化存储),其核心功能是为主机提供大容量、低延迟的内存扩展。例如主机将Type3设备的内存映射到自身物理地址空间(通过 CXL.mem),像使用本地DDR内存一样,突破本地内存插槽的限制。
示例应用场景:
- 内存扩展:为内存密集型应用(如数据库)提供低成本的大容量内存。
- 持久化内存:将支持字节寻址的持久内存模块通过 CXL.mem 接口连接到系统中,以实现高性能的持久化存储
关键优势:
- 容量灵活:突破物理内存插槽限制,动态扩展内存容量。
- 低延迟访问:相比传统网络存储(如RDMA),CXL.mem提供纳秒级延迟。
CXL 设备固件端支持
在CXL设备使用过程中(以Type3设备为例),固件端通过描述ACPI表并上报操作系统,提供了必要的信息以用于内存访问、优化资源分配和提升系统性能。其中关于CXL设备的ACPI内容包括:
01 CEDT表
CEDT表允许操作系统发现系统中的任何CXL主机桥和主机桥寄存器。它包含两种类型的ACPI对象:
CHBS(CXL Host Bridge Structure):提供指向CHBCR(CXL Host Bridge Control Register)块的指针,操作系统通过对HDM(Host-managed Device Memory)Decoder进行配置,将CXL设备内存映射到统一的系统地址空间。
CFMWS(CXL Fixed Memory Window Structure):描述了CXL设备内存的HPA(Host Physical Address)内存基址、窗口大小、内存交织粒度与路数等。操作系统驱动程序可根据这些参数进行内存映射与访问。
02 DSDT表
在ACPI命名空间中描述CXL设备,以便操作系统对CXL设备进行枚举并了解相关的属性参数。其中描述的ACPI HID(Hardware ID)包括:
ACPI0017: 使操作系统知晓CXL根设备的存在。
ACPI0016: 描述CXL主机桥,操作系统利用其进行枚举和配置。
03 SRAT表
SRAT(System Resource Affinity Table)表用于描述系统资源的NUMA(Non-Uniform Memory Access)亲和性,帮助操作系统了解内存的物理拓扑和性能特性,对CXL内存的分配至关重要。
04 HMAT表
HMAT(Heterogeneous Memory Attribute Table)表提供了系统局部性之间的内存延迟和带宽属性信息,帮助操作系统优化内存访问路径,减少延迟,并提高带宽利用率。
CXL 设备固件端支持
CXL是一项前沿的开放高速互连技术,专为提升数据中心及高性能计算环境中CPU与多样化加速器、内存扩展设备间的通信效率而设计。该技术的核心在于其支持的三种设备类型:CXL.cache、CXL.io以及CXL.mem,它们分别专注于实现缓存一致性管理、I/O操作优化与内存扩展功能。依托于PCIe物理层的强大传输能力,CXL协议能够支持高达64GT/s的数据速率,使得设备能够直接且高效地访问主机内存,实现高效的数据传输,还确保了缓存数据的一致性。此外,CXL还支持硬件级原子操作和电源管理,提供灵活的内存映射和资源分配,优化系统性能。通过ACPI表与操作系统交互,CXL确保了跨平台的兼容性和资源的最优利用。
进阶思考
思考点:CXL如何实现与现有PCIe生态的兼容性?答案:CXL.io层完全兼容PCIe协议,设备可降级为传统PCIe模式运行。
常见问题解答
Q1:CXL Type3设备与Type1/2设备的区别是什么?
Type3是内存扩展设备(如SSD、内存条),仅支持CXL.mem,Type1/2是加速器(如GPU、FPGA),需支持CXL.cache。
Q2:若CFMWS窗口与其他内存区域重叠,会发生什么?
系统可能无法启动或出现内存访问错误,固件端在上报该部分内容时,需合理分配地址避免冲突。
欢迎大家关注OurBMC社区,了解更多BMC技术干货。
OurBMC社区官方网站:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
缓存监控治理在游戏业务的实践和探索
作者:来自 vivo 互联网服务器团队- Wang Zhi 通过对 Redis 和 Caffeine 的缓存监控快速发现和定位问题降低故障的影响面。 一、缓存监控的背景 游戏业务中存在大量的高频请求尤其是对热门游戏而言,而应对高并发场景缓存是一个常见且有效的手段。 游戏业务中大量的采用远程缓存(Redis)和本地缓存(Caffeine)组合方式来应对大流量的场景。 在整个缓存使用的实践过程中,基于真实线上案例和日常缓存运维痛点沉淀了一些缓存监控治理的有效案例供分享。 二、远程缓存的监控介绍 2.1 监控的方案 2.1.1 监控目的 从宏观来讲监控本质目的是为了及时发现定位并解决问题,在成本可控的前提下监控维度尽可能丰富。 聚焦到 Redis 的维度,除了 Server 本身的监控指标(如请求量、连接数外),还需要监控更多偏业务的指标。 Redis 目前最常见的问题包括:热点 Key 问题,大 Key 问题,超负载的大请求量问题。 聚焦上述的问题,在基于 Redis 的原生监控指标基础上,补充更多的包含业务属性的监控。 2.1.2 监控方案 目前从监控的维度进行分析,希望能做到既能针对某...
- 下一篇
揭开RAG的神秘面纱:重新定义信息检索的革命性技术
随着人工智能技术的快速发展,检索增强生成(RAG)作为一种结合检索与生成的创新技术,正在重新定义信息检索的方式。本文深入探讨了RAG的核心原理及其在实际应用中的挑战与解决方案。文章首先分析了通用大模型在知识局限性、幻觉问题和数据安全性等方面的不足,随后详细介绍了RAG通过“检索+生成”模式如何有效解决这些问题。具体而言,RAG利用向量数据库高效存储与检索目标知识,并结合大模型生成合理答案。此外,文章还对RAG的关键技术进行了全面解析,包括文本清洗、文本切块、向量嵌入、召回优化及提示词工程等环节。最后,针对RAG系统的召回效果与模型回答质量,本文提出了多种评估方法,为实际开发提供了重要参考。通过本文,读者可以全面了解RAG技术的原理、实现路径及其在信息检索领域的革命性意义。 引言 检索增强生成(Retrieval Augmented Generation,简称 RAG)已经成为当前最热门的 LLM 应用方案。然而,当我们将大模型应用于实际业务场景时,会发现通用的基础大模型基本无法满足我们的实际需求,主要有以下几方面原因: 知识的局限性:模型的知识完全来源于其训练数据,而现有主流大模型(如...
相关文章
文章评论
共有0条评论来说两句吧...