Compute Express Link Initiative地址计算内存挑战

文章作者:Jeff Hockert

Compute Express Link允许开发人员通过拨入他们的应用程序理想的内存带宽来使用持久内存选项。

在计算的世界中,奇迹的意外事件之一是在数据中心的迅速采用人工智能(AI)和云计算。这些和其他力量正在驾驶异构计算 - 使用CPU,GPU,FPGA,ASIC加速器,网络接口控制器(NIC)和其他处理元件,所有这些都连接到更大的内存池。

然而,高性能计算(HPC)需要更新能够有效地连接这些处理元件,并共享越来越昂贵的内存。输入CXL (Compute Express Link)倡议,形成了处理异构计算所带来的挑战。它旨在提供缓存一致性,以及在没有不必要的成本的情况下添加新的内存层的能力。

CXL联盟吸引了广泛的支持,近100成员公司以及一个由14家公司组成的董事会,几乎包括所有主要供应商,包括AMD、Arm、IBM、英特尔和Xilinx。

就像USB、PCI和PCI Express是由英特尔发起的一样,CXL联盟是在英特尔将该技术的第一次迭代贡献给最初由九家公司组成的工作组时启动的。2019年9月,成立了董事会,拥有96家成员公司。

在承诺成为完全贡献成员之前,任何公司都可以访问CXL站点,获得免费的点击许可,并下载规范的当前版本的评估副本。贡献成员能够指导工作的发展,工程师可以接受2.0规范的培训课程,现在正处于开发阶段。

CXL建立在PCIe互连标准的基础上,而CXL 2.0(将于2020年12月推出)将在PCIe 5.0标准投入使用后补充PCIe 5.0标准,其每车道的信号速度为32gbps,预计将于2021年发布。后续的PCIe 6.0规范预计将达到两倍的速度。CXL具有三种协议的套件,它利用了PCIe提供替代协议的能力。

第一个CXL.IO,取代了PCIe并处理了标准设置功能。当CXL卡插入PCIe插槽时,CXL.IO识别出CXL正在使用中,关闭PCIe,并启动CXL.IO协议。它允许系统使用相同的电线和标准PCIe插槽,并根据需要混合CXL和PCIe资源,这提供了节省资源和系统成本的重要手段。

第二和第三个协议是cxl。缓存和CXL。内存支持维护缓存一致性、减少延迟和使用新的内存类型的能力,以及其他优点。

CXL事务层的图 图1CXL事务层在一条链路上包含三个动态多路复用的子协议。来源:英特尔

在许多方面,CXL是关于驱动异构计算的,这是计算领域的许多创新的来源。在今天的异构计算世界中,内存连接到CPU上,其他内存连接到加速器设备上:gpu、定制逻辑、fpga、nic,等等。这些内存池位于两个不同的域中,不同的设备类以不同的机制与内存通信。维护高速缓存的一致性具有挑战性。

cpu附加的和加速器附加的内存池具有PCI点对点访问。通过CXL及其以内存为中心的体系结构,它将内存体系结构和内存语义引入到传统的I/O总线上。

使用PCIe的替代协议

CXL利用了PCIe中的替代协议选项。当我们使用CXL时,PCIe关闭,CXL接管,并给我们内存类延迟,而不是I/ o类延迟。

在数据中心,CXL主要在芯片对芯片互连的互连体系结构的节点层运行。对于机架和行水平,开放系统Gen-Z.interconnect可以通过直接连接、交换或结构拓扑提供对数据和设备的内存语义访问。

CXL和Gen-Z具有很强的互补性,前者用于节点内,后者用于节点外。从CXL的角度来看,Gen-Z可以帮助我们变得非常灵活,我们也看到了两者的协同作用。事实上,我们相信,互补性是一种趋势,将会随着时间的推移而增长。

CXL与Gen-Z有着良好的关系,包括一份正式协议。其目的是让Gen-Z能够非常有效地与CXL结合。如果工程师想要它可靠地工作,任何fabric都需要一个与CPU一致的接口。因此,让Gen-Z在位于CXL之上的机架级和行级上进行更多操作是有意义的。

不对称复杂性是关键

CXL中的一个功能是不对称地“偏向”系统中的计算资源。为了保持高速缓存的一致性,操作通常会保持“CPU偏差”,因为这是确保高速缓存一致性最经常发生的地方,在CPU的“主代理”。大多数时候处理特定类型数据的加速器,会使用一种稍微简单一些的“设备偏差”。

通过这种不对称的方法,CXL提供了缓存一致性的好处,而不会在CPU上的归属代理的复杂性中陷入困境。总而言之,不对称复杂性是CXL的关键特征,从而减轻了缓存相干界面设计的负担。万博投注网址

使用CXL进行缓存相干界面设计的图万博投注网址 图2CXL中的不对称复杂性简化了缓存相干界面设计的负担。万博投注网址来源:英特尔

降低CXL的复杂性将使不同厂商的处理器能够轻松地建立连贯的缓存,这在业界尚是首例。拆分复杂性、利用CPU中的复杂性并不在加速器中复制复杂性的概念是CXL的一个关键价值主张。

在CXL中,我们从cpu开始,cpu的可缓存内存分为南北两部分,分别位于自己的内存和加速器内存中。加速器也有同样的能力。能够访问CPU内存的PCI设备现在能够访问CXL下的加速器内存。我们在内存的两个部分都得到了这种对称的能力。这两个池将是两台机器都可寻址的一致内存池的一部分。

添加内存容量可高效

不可避免地,数据中心系统需要增加内存容量和带宽。一个解决方案是在DRAM和固态驱动器(SSD)之间添加一类持久存储器,在许多情况下足够大以存储整个数据库。这款单独的内存比DRAM昂贵 - 可用于各种存储创新。

CXL定义了三种类型的设备:类型1包括有自己的高速缓存但没有附加内存的加速器。类型2类设备包括带有存储器的加速器。在这两种情况下,缓存一致性都得到了保证。

第三种类型的设备包括支持内存缓冲区的控制器和内存扩展设备。系统可以添加更多的DRAM和/或持久内存,但将其移出DDR接口。从逻辑上讲,内存缓冲区与主内存总线上的缓冲区没有什么不同。

启用分列的内存

CXL是一种高速互连,该联盟致力于显著降低延迟,以实现分解内存。创建具有高效、低延迟访问机制的共享内存池符合联盟的异构资源共享的首要目标。

对CXL中的3型设备的支持提供了分离内存控制器的机会。随着数据中心处理广泛的用例,3型设备可以更容易地提供持久媒体或新内存类型的访问尚未投入生产。

仅仅增加更多的直接附加DRAM被证明是太昂贵的。不仅DRAM的成本增长速度非常缓慢,而且pcb上更多路由层和控制器上更多引脚的复杂性也非常昂贵。

而不是在板上添加更多内存,而不是在缩放CXL链接的数量是一种更简单的方法,不依赖于并行高速总线。并行DDR接口需要200遍PIN,而CXL可实现每个包装的引脚更少,并且降低PCB层数。使用CXL串行接口,存储器可以在更优化位置达到更长时间,这会更改存储器设备上的空气流。

供应商可以用媒体专用控制器构建CXL内存扩展器设备。一个系统可以支持各种不同的内存类型,包括DDR3、DDR4或DDR5,以及持久内存、低功耗DRAM等等,每个都有一个支持非对称或非确定性定时和错误处理的媒体特定控制器。较慢的内存层可以完全与主层隔离,对直接连接的DRAM双直插式内存模块(dimm)的干扰最小。

CXL使用和福利图 图3代表性的CXL使用简化了编程模型并提高了性能。来源:英特尔

使用CXL,开发人员可以在内存带宽中拨打理想的应用程序,使用持久内存选项,并在应用程序所需的情况下混合和匹配。联盟的目标是汇集许多不同的行业球员,以确保强大,不断增长的生态系统。我们确实需要通过互操作性工作,但是在我们与PCIe有很好的轨道记录时,我们还需要通过电源,机械和管理接口进行工作以构建强大的CXL生态系统。

本文最初发表于edn.

Jeff Hockert是英特尔技术领导营销团队的高级营销经理。

本系列中的其他文章:

相关文章:

留下你的评论