几年后,服务器可能看起来与现在有所不同,那时,存储和处理器会被放在彼此独立的机箱内。一种名为CXL(ComputeExpressLink)的互连技术正在使这成为可能。
CXL是由电脑科技的行业巨头组成的联盟—ComputeExpressLinkConsortium(CXLConsortium)所开发和定义的,主要成员包括英特尔(Intel)、AMD、三星(Samsung)、SK海力士(SKHynix)、美光(Micron)、戴尔(Dell)、惠普企业(HewlettPackardEnterprise)、MicrochipTechnolog等。CXL协定发展经历过1.0、1.1、2.0、以及最新的3.0版本,如今市场上已经陆续出现支援CXL1.1和2.0的产品,3.0协定还在开发中;协定本身更是吸引了一群大型科技公司积极参与其中。
该技术的升级规范,3.1版,于本周发布。更新提供了更快、更安全的计算环境和更强大的技术基础,可将数据中心转变为巨型服务器。
新规范将支持DDR6内存,该内存仍在开发中。DDR标准制定组织JEDEC尚未广泛讨论DDR6。
目前,英特尔和AMD的服务器芯片支持DDR5,但尚未指导芯片组对DDR6的支持。大多数硬件和云提供商都支持CXL。
CXL3.1是一年多前推出的CXL3.0的增量改进。CXL协议是系统中芯片、内存和存储之间的通信链路。
CXL3.0规范基于PCIe6.0,数据传输速度高达每秒64千兆。它比其前身CXL2.0快两倍,CXL2.0基于PCIe5.0,并且正在进入服务器系统。
随着AI等技术的普及,CXL已成为芯片组的重要组成部分,机器学习应用程序需要大量内存和带宽,CXL允许跨服务器池化存储和内存。
CXL3.1协议可以打开更多的点对点通信,将内存和存储分解到单独的机箱中,通过传统网络和互连技术进行分解的讨论已经讨论了10年,CXL提供了提供各种计算资源所需的可扩展性。
首先,CXL3.1规范提供了一个支持新型内存的开放标准,可以更有效地将数据重新路由到内存和加速器。
一项重要的改进是将结构上的内存资源汇集到一个全局地址下,该功能称为全局集成内存,对于在内存和其它资源之间建立更快的连接非常重要。
加速器还将能够直接与内存资源通信,基于端口的路由的新功能有助于更快地访问内存资源。
CXL3.1还提供了在受保护环境中执行数据的指令,引入这项技术是为了支持机密计算,英特尔的SapphireRapids中已经引入了TDX指令,AMD的芯片中引入了SNP-SEV功能。
新规范定义了一种安全协议,该协议可保证数据在内存、处理器和存储之间移动时扩展安全环境。
该协议将检测需要对连接进行身份验证以打开硬件保险库,以访问代码或信息的环境。这些信息可能位于处理器、内存或存储上。英特尔、Microsoft和其它公司有不同类型的证明方法来验证在安全环境中访问数据的连接。
CXL的功能与特性详解CXL是一种用于加速CPU和设备之间资料传输的协定,主要应用于人工智能和机器学习等领域,以解决在这些应用中需要高效率的资料交互的需求。随着PCIe协定的发展,到了5.0版本后,像需要大量IO资料交互的人工智能应用,开始遇到性能瓶颈的问题。为了突破这个瓶颈,引入了CXL协定的概念。
首先,CXL协定解决了共享RAM的问题,在支援PCIe协定的设备中,每个设备都拥有自己的RAM,但这些RAM无法被CPU统一编址,因此无法直接进行调用,这导致了延迟的问题;CXL协定引入了共享RAM的概念,允许CPU对所有设备上的RAM进行统一编址,从而实现了彼此之间的互相调用。
其次,CXL协定解决了高延迟的问题,例如:CPU和GPU之间的资料交互,需要经过多个节点,包括CPU缓冲(Cache)、CPURAM、PCIe链路、GPURAM和GPUCache等,这些节点和IO频宽限制导致了延迟的增加;为了降低延迟,我们希望CPU能够直接存取GPU的RAM,从而避免了繁复的资料传输过程。CXL的功能特性中,CXL2.0版本引入了FLIT(可变长度介面传输,Flexible-LengthInterfaceTransport)basedtransfers功能,使用位元的FLIT模式进行资料传输,这种模式可以降低资料传输的延迟,类似于NVMe协定中的队列概念。
CXL的三个子协定及其对应的三种设备CXL有三个子协定:CXL.io、CXL.cache、CXL.memory。
CXL.io和CXL.cache是CXL协定中的两个子协定,它们的功能和用途有所不同,主要是为了引入非对称的概念;CXL.io类似于PCIe的事件(event),主要用于初始化、链接、设备发现、列举以及寄存器(register)的存取,从某种程度上说,它可以看作是PCIe事件的一个变种。
CXL.cache则是用于设备去使用主机的主要RAM,这表示设备可以直接存取主机的RAM,并且需要与CPU的Cache保持资料一致性;如果没有有效的通讯和同步,可能会出现RAM使用冲突或不存在的问题。
另一方面,CXL.memory则是CPU使用设备上的RAM;在这种情况下,CPU可以直接存取设备上的RAM,而不需要与设备的Cache进行交互;这是因为CPU的Cache直接使用设备上的RAM,因此可以直接进行通讯,而无需额外的同步操作。
总结来说,CXL.io和CXL.cache的使用方向和目的不同,因此被拆分为两个子协定;CXL.io类似于PCIe事件,用于设备和主机之间的通讯和初始化过程;而CXL.cache则用于设备存取主机的RAM并保持资料一致性;另一方面,CXL.memory则是CPU直接使用设备上的RAM,无需与设备的Cache进行交互,这样的设计使得CXL协定在不同的使用情境中更具灵活性和效能。
基于这三个子协定,衍生出三种不同的设备类型;其中,CXL.io是所有设备都需要的协定,因为它包含了设备的列举过程,使其能够被识别和通信;另外两个协定则是进行组合以产生更具特定功能的设备。
第一种设备类型是智慧网卡,它有Cache,但没有独立的RAM;相反,它直接使用CPU的内存,这使得在CPU处理资料时非常迅速;由于记忆体就在设备内部,它可以直接读取和处理资料,这是它的优势。
第三种设备类型则只拥有RAM,而没有Cache;换句话说,它实际上是CPU的一种无限扩展的内存;传统CPU主机板上的内存插槽有限,且主机板的空间有限,即使提高单条内存的容量也有限制。
*声明:本文系原作者创作。文章内容系其个人观点,我方转载仅为分享与讨论,不代表我方赞成或认同,如有异议,请联系后台。