在计算世界中,不可思议的事情之一是在数据中心中迅速采用人工智能(AI)和云计算。这些和其他因素正在推动异构计算-使用CPU,GPU,FPGA,ASIC加速器,网络接口控制器(NIC)和其他处理元件,所有这些元件都连接到越来越大的内存池。
但是,高性能计算(HPC)需要更新以有效连接这些处理元素并共享日益昂贵的内存的能力。参加旨在应对异构计算带来的挑战的Compute Express Link(CXL)计划。它旨在提供高速缓存一致性以及在没有不必要的成本的情况下添加新的内存层的能力。
CXL联盟吸引了广泛的支持,有近100个成员公司和14个公司的董事会,其中包括几乎所有主要供应商,包括AMD,Arm,IBM,Intel和Xilinx。
就像Intel发起USB,PCI和PCI Express一样,当Intel向最初由9家公司组成的工作组贡献了该技术的第一个迭代时,CXL联盟便开始起步。2019年9月,成立了董事会,拥有96家成员公司。
在致力于成为正式成员之前,任何公司都可以访问CXL网站,免费获得点击许可,并下载该规范当前版本的评估版。参与人员能够指导工作的进展,工程师现在可以在开发阶段接受有关2.0规范的培训课程。
CXL建立在PCIe互连标准的基础上,CXL 2.0(将于2020年12月推出)将补充PCIe 5.0标准的使用,其每通道32 Gbps的信号速度,预计将在2021年发布。随后的PCIe 6.0规格有望提高一倍。具有三个协议套件的CXL利用PCIe内具有备用协议的功能。
第一个CXL.io取代了PCIe并处理标准设置功能。将CXL卡插入PCIe插槽后,CXL.io会识别出正在使用CXL,然后关闭PCIe并启动CXL.io协议。它允许系统使用同一组电线和标准PCIe插槽,并根据需要混合CXL和PCIe资源,这是节省资源和系统成本的重要手段。
第二个和第三个协议CXL.cache和CXL.memory支持维护缓存一致性,减少延迟以及使用新的内存类型的能力,以及其他优势。
图1 CXL事务层在单个链路上包含三个动态多路复用子协议。资料来源:英特尔
从许多方面来看,CXL都是关于驱动异构计算的,异构计算正是其中的许多创新之源。在当今的异构计算世界中,内存连接到CPU,其他存储库连接到加速器设备:GPU,自定义逻辑,FPGA,NIC等。这些内存池位于两个不同的域中,不同类别的设备通过不同的机制与内存通信。保持高速缓存一致性是一项挑战。
连接CPU和连接加速器的内存池具有PCI对等访问。借助CXL及其以内存为中心的体系结构,它可以将内存体系结构和内存语义引入到传统上在I / O总线上的功能。
使用PCIe的替代协议
CXL利用PCIe中的替代协议选项。当我们使用CXL时,PCIe会关闭,CXL会接管工作,并为我们提供内存类的延迟,而不是I / O类的延迟。
在数据中心中,CXL主要在互连体系结构的节点级层上运行,以实现芯片到芯片的互连。对于机架和行级别,开放系统Gen-Z互连可以通过直接连接,交换或结构拓扑提供对数据和设备的存储器语义访问。
CXL和Gen-Z非常互补,前者用于节点,后者用于节点之外。从CXL的角度来看,Gen-Z可以帮助我们变得更加流畅,当同时部署两者时,我们将看到很多协同作用。实际上,我们认为互补性将随着时间的流逝而发展。
CXL与Gen-Z有着很好的关系,包括正式协议。目的是使Gen-Z非常有效地连接到CXL。如果工程师希望结构能够可靠地工作,则任何结构都需要与CPU保持一致的接口。因此,让Gen-Z在CXL上方的机架级和行级进行更多操作是很有意义的。
非对称复杂性是关键
CXL中的一项功能是能够非对称地“偏置”系统中的计算资源。为了保持高速缓存一致性,操作通常会保持“ CPU偏差”,因为这是确保高速缓存一致性最经常发生的地方,是在CPU的“本地代理”处。加速器大多数时候都使用特定类别的数据,它们将使用稍微更简单的“设备偏差”。
通过这种非对称方法,CXL提供了缓存一致性的好处,而不会陷入CPU上本地代理的复杂性中。总而言之,非对称复杂性是CXL的关键功能,它减轻了缓存一致性接口设计的负担。
图2 CXL中的非对称复杂性减轻了缓存一致性接口设计的负担。资料来源:英特尔
降低CXL的复杂性将使来自不同供应商的处理器能够轻松建立一致的缓存,这在业界尚属首次。CXL的一项关键价值主张是,利用CPU中的复杂性而不是在加速器中复制复杂性来分解复杂性的概念。
在CXL中,我们从CPU开始,向北和向南都有可缓存的内存,既有它自己的内存,也有加速器内存。加速器也具有完全相同的功能。可以访问CPU内存的PCI设备现在可以访问CXL下的加速器内存。我们对内存的两个部分都具有这种对称能力。这两个池将成为两台机器均可访问的一致性内存池的一部分。
负担得起地增加存储容量
数据中心系统不可避免地需要增加存储容量和带宽。一种解决方案是在DRAM和固态驱动器(SSD)之间添加一类持久性存储器,在许多情况下,它们足以存储整个数据库。这种单独的存储层(比DRAM便宜)可以用于各种存储创新中。
CXL定义了三种类型的设备:类型1包括具有自己的缓存但没有附加内存的加速器。类型2类的设备包括已附加内存的加速器。在这两种情况下,都可以保证高速缓存的一致性。
第三类设备包括支持内存缓冲区和内存扩展设备的控制器。系统可以添加更多的DRAM和/或持久性内存,但将其移出DDR接口。从逻辑上讲,出现的内存缓冲区与其在主内存总线上的内存缓冲区没有什么不同。
启用分类内存
CXL是一种高速互连,并且该联盟已致力于显着减少等待时间,以实现分类内存。用高效,低延迟的访问机制创建共享内存池与联盟实现异构资源共享的总体目标是一致的。
CXL中对Type 3设备的支持为分离内存控制器提供了机会。随着数据中心处理各种用例,第3类设备可以更轻松地提供对持久性介质或尚未投入生产的新内存类型的访问。
事实证明,仅仅增加更多的直接连接DRAM太昂贵了。不仅DRAM成本的增长步伐很慢,而且PCB上更多路由层和控制器上更多引脚的复杂性也很昂贵。
与其增加板上的内存,不如增加CXL链路的数量是一种更简单的方法,它不依赖于并行高速总线。并行DDR接口需要200个以上的引脚,而CXL可以使每个封装的引脚数更少,并减少PCB层数。使用CXL串行接口,可以在更理想的位置存储更长的内存,从而改变了存储设备上的气流。
供应商可以使用特定于媒体的控制器来构建CXL内存扩展器设备。一个系统可以支持多种不同的存储器类型,包括DDR3,DDR4或DDR5,以及持久性存储器,低功耗DRAM等,每种类型都具有特定于媒体的控制器,该控制器支持非对称或不确定的定时和错误处理。较慢的内存层可以与主层完全隔离,而对直接连接的DRAM双列直插式内存模块(DIMM)的干扰最小。
图3代表性的CXL用法简化了编程模型并提高了性能。资料来源:英特尔
使用CXL,开发人员可以拨入最适合其应用程序的内存带宽,使用持久性内存选项,并根据应用程序的需要进行混合匹配。该联盟的目标是召集许多不同的行业参与者,以确保一个健壮的,不断发展的生态系统。我们确实需要通过互操作性来进行工作,但是尽管我们在PCIe方面拥有良好的记录,但是我们还需要通过电源,机械和管理接口来构建健壮的CXL生态系统。
Jeff Hockert是英特尔技术领导力营销团队的高级营销经理。
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !