来源:内容由半导体行业观察(ID:icbank)编译自allaboutcircuit,谢谢。
CXL 数据协议对于满足当今数据中心的互连需求至关重要。了解该协议的关键要素和优点,以及 CXL 版本 3.0 中的新增功能。
工程涉及到权衡——性能与成本、专有与开源、效率与灵活性。这些二分法同样适用于数据中心计算技术,从基础设施到将数据中心连接在一起的互连。
有两种相互竞争的理念持续存在:集成与模块化。与使用不同供应商的模块生产功能系统相比,集成(通常是专有的)具有独特的优点和挑战。
另一方面,开源协作可以实现共享技术创新,但面临着削减可盈利、可授权专利的风险。传统上,科技公司都处于这种哲学鸿沟的任何一边。
Compute Express Link (CXL) 是由CXL 联盟创建的数据协议,试图弥合集成方法和开源协作之间的差距。通过在处理器、内存缓冲区和加速器之间提供开放标准的缓存一致性链接,CXL 使由不同供应商的可互操作元素组成的数据中心结构能够自由共享资源,以解决棘手的计算问题。
该协议可实现资源共享,从而有效处理新兴处理密集型技术生成的 PB 级数据。如果 CXL 成为行业标准,它将改变数据中心支持自动化智能、机器学习、边缘计算等新兴技术的方式。
CXL 是一种相对较新的接口技术,它使用外围组件互连 Express (PCIe) 的物理电气层,但它具有自己独特的链路和传输层协议。CXL 通过利用替代协议协商(PCIe 5.0 中引入的一项功能)来实现此目的。
新协议为计算加速器和内存缓冲区提供高带宽、低延迟的链接。在某种程度上,CXL 是专为高性能计算应用而定制的 PCIe 的一个子类型或升级版。CXL 链路有助于 CPU 和专用端点硬件之间的资源池,以处理特定于流程的工作负载,同时使用相同熟悉的 PCIe 设备外形规格。
CXL 联盟是一个行业支持的开放标准开发组织,由来自技术行业的数十家成员公司组成。成员包括半导体、内存、数据中心网络以及测试和测量行业的知名人士。与 PCI-SIG 和 USB-IF 等类似标准机构一样,CXL 联盟的成员公司致力于定义一个接口,使主机和端点设备能够无缝协作。
CXL 具有三个主要协议。所有 CXL 设备都需要CXL.io ,它像 PCIe 事务层一样处理发现、配置和中断。
CXL.cache使 CXL 加速器能够访问 CPU 内存,以确保板载缓存一致,这对于两个设备共享计算资源是必要的,如图 1 所示。CXL.memory允许内存扩展设备(缓冲区),增加可用的持久内存,它以接近 DRAM 的速度运行,具有类似 NAND 的非易失性,如图 2 所示。
CXL 设备具有三种类型:
类型 1 设备是仅具有 CXL.cache 功能的硬件加速器。 类型2 设备是带有板载内存的加速器,具有 CXL.memory 和 CXL.cache。 类型 3 设备是仅具有 CXL.memory 的内存扩展。 图1.CXL.cache 允许主机和加速设备之间共享缓存 图2 . CXL.memory 允许主机访问连接的内存缓冲设备上的内存 CXL 的主要目标是实现数据中心容量扩展,以满足新兴技术不断增长的工作负载需求。CXL 的独特创新通过共享内存和处理资源,同时保持低延迟的一致性,使分解复杂的计算任务变得更加可行和高效。 CXL 受益于现有的物理层基础设施,建立在数十年的 PCI-SIG 创新和行业熟悉度之上,但通过简化设备之间的通信来减少延迟。PCIe 支持多种用例和跨通道的可变负载长度。 每个事务都需要主机和端点之间的开销通信来传达有效负载的长度和其他事务细节。CXL 通过使用固定的 528 位流控制单元 (flit) 消除了额外的开销:四个 16 字节时隙加两个循环冗余校验 (CRC) 字节。 CXL 使用 PCIe 的 Flex Bus,这意味着 CXL 设备适合 PCIe 插槽。如果 CPU 或端点设备不支持 CXL,设备将默认为 PCIe 操作。 自 2019 年推出以来,CXL 的开发在实现完整计算结构和分解计算的目标方面取得了稳步进展。CXL 1.1 一次仅支持一种设备/主机关系。 CXL 2.0 引入了支持最多 16 个主机同时访问内存和交换不同部分的能力,允许 CPU 根据需要访问其他设备,从而使资源池更加灵活。 CXL 3.0 增加了点对点内存访问和多层交换,从而扩大了对分解计算的范围和支持。CXL 3.0 还允许 CXL 在 PCIe 6.0 硬件上匹配 PCIe 6.0 速度(64 GT/s),而且还支持与以前的 CXL 协议和 PCIe 硬件的向后兼容性。 也许最重要的是,CXL 3.0 引入了结构功能,将标准从传统的树形拓扑中解放出来。现在,多达 4,096 个节点可以相互通信,从而创建一个复杂的资源共享处理器网络。CXL 3.0 功能的选择列表如图 3 所示。 图3 . CXL 具有跨代特征 CXL 从快速 PCIe 替代方案发展为多层、高度灵活的链路网络,使该标准进一步成为可组合、可扩展的计算结构。结构是系统中相互连接的节点,可以与其他节点进行交互并更快、更高效地完成工作,而不是受到传统的基于树的架构的限制。 数据中心也朝着类似的方向发展,将处理从单一服务器系统分解为采用链路交换机网络,从而允许资源池化。一些行业(例如自动驾驶汽车,每秒从数千个传感器生成数 TB 的数据,以做出安全关键的、近乎即时的决策)正在采用边缘计算,以使处理更接近数据源。 现在,工业 4.0、人工智能、机器学习和其他新技术给数据中心带来了前所未有的负载,从芯片设计师到系统集成商,每个人都必须重新思考数据的传输、通信和处理方式。 CXL给数据中心带来的最重要的元素是资源池。允许 CPU 访问其他专用资源来完成复杂的计算是高效、去中心化设计理念的关键。 CXL 3.0 包括多级交换、多头和结构连接设备、增强的结构管理和可组合的分解基础设施(图 4)等新功能,这使得该标准能够成为编织结构的链路或主线。数据中心在一起。 虽然不太可能完全取代以太网电缆和光缆以及收发器,但 CXL 以独特的方式为元件之间的通信提供了价值。 图4 . 支持 CXL 3.0 的交换矩阵数据中心架构示例 数据标准游戏的另一个新成员是通用 Chiplet Interconnect Express (UCIe),它将可组合性降低到了集成电路级别。UCIe 和 CXL 与锁定、专有片上系统的趋势相反,都采用模块化和灵活性。 但随着技术趋势变得更加离散和模块化,验证组件是否完美地协同工作(无论原始制造商是谁)可能会变得更加困难。 模块化意味着符合定义的互操作性要求。此类系统中的每个模块都必须与该系统中的任何其他模块无缝协作,无论是谁设计或制造的。标准的验证和合规性成为重要的测试,以确保每个供应商的产品能够与其他所有设备良好配合。 合规性测试带来了挑战。尽管 CXL 建立在 PCIe 互连和电气构建块之上,但即使是经验丰富的 PCIe 开发人员在设计和验证其 CXL 设备时也需要小心。 需要注意的一个潜在问题与 CXL 如何减少延迟有关。CXL 传输做出 PCIe 没有的假设,从而在主机和设备之间的通信过程中缩短传输时间并减少开销。因此,flit 中可能会丢失重要信息,这些信息对于调试问题至关重要,并且是开发人员在 PCIe 传输中期望的信息。与 PCIe 相比,CXL 重试通常会丢失可以帮助开发人员调试的信息。 维持不同缓存之间的一致性会产生窥探操作和数据复制的开销。CXL 规范建议使用基于偏差的一致性模型,以减轻对过多窥探操作的需求。然而,系统可能会掩盖有关偏见的不当行为。 虽然可以进行内存访问并保持一致性,但如果系统没有正确遵循偏差规则,则可能会产生不必要的开销。分析和检测有关偏差的不当行为可以产生重要的见解,从而提高系统性能并减少延迟。由于 CXL 器件存在这些问题和其他潜在问题,专用测试软件对于学习调试和验证 CXL 器件性能的开发人员来说可能会派上用场。 CXL 界面象征着当今科技世界的多种趋势。CXL 是朝着分解和模块化设计迈出的一步,但它同样代表了协作解决大型任务的重要性。CXL 使多个设备能够协同处理复杂的计算,自由共享资源以处理数据密集型行业生成的 PB 级数据。 作为一种开源标准,CXL 是通信、信号处理以及测试和测量行业中最聪明的人才共同努力解决社会不断增长的数据需求的产物。尽管他们可能来自竞争对手的公司,但这些工程师开发了一个标准,确保他们的产品能够互操作以提高数据中心的容量。 可能还需要几年和更多代的 CXL 标准才能看到它对数据中心行业的全面影响,但可以肯定地说,CXL 将在即将到来的数据革命中发挥重要作用。