首页 » 智能 » CXL协议演进若何构建未来可组合根本举动办法?_内存_装备

CXL协议演进若何构建未来可组合根本举动办法?_内存_装备

南宫静远 2024-10-14 06:21:01 0

扫一扫用手机浏览

文章目录 [+]

媒介

近日我有幸阅读了英特尔公司互联系统领域的威信人物Debendra Das Sharma撰写的一篇首创性文章——《Novel Composable and Scaleout Architectures Using Compute Express Link》在这篇文章中,Debendra Das Sharma详尽地阐述了如何利用CXL(Compute Express Link)技能构建一个可横向扩展的可组合分离架构。
众所周知,CXL协议涵盖了type1、type2、type3三种设备类型,而目前学术界和工业界的研究紧张集中在如何利用CXL技能扩展系统的内存容量。

CXL协议演进若何构建未来可组合根本举动办法?_内存_装备 CXL协议演进若何构建未来可组合根本举动办法?_内存_装备 智能

然而至今尚未有文献系统地磋商如何直接通过CXL技能在机架级别构建一个支持异构打算、内存和存储设备的池化系统。
据我理解,现有的CXL协议在不进行任何修正和优化的情形下,彷佛难以胜任这一重任。
至少在性能和可扩展性方面,它与PCIe比较并没有展现出显著的上风。
(对付如何通过PCIe技能构建可组合根本举动步伐感兴趣的读者,可以参考《基于PCIE的可组合根本举动步伐的性能洞察》。

CXL协议演进若何构建未来可组合根本举动办法?_内存_装备 CXL协议演进若何构建未来可组合根本举动办法?_内存_装备 智能
(图片来自网络侵删)

Debendra Das Sharma凭借其卓越的技能洞察力和对CXL技能的深刻理解,提出了一系列在现有CXL协议根本上的增强方法。
这些建议旨在提升协议的性能和扩展性,部分发起已经在最新的CXL 3.1规范中得到了采纳。
这些改进不仅为CXL技能的发展供应了新的方向,也为构建下一代高性能打算系统供应了可能。
在接下来的内容中,我们将深入磋商这些协议增强方法的详细细节,以及它们如何助力实现大规模、高效能的打算架构。
这不仅涉及到硬件层面的创新,也包括软件和系统设计的新思路。
通过这些综合方法,我们有望冲破现有的技能瓶颈,推动打算技能迈向一个新的高度。

背景知识

CXL是一个开放的行业标准互连,它在PCI-Express之上供应了缓存和内存语义。
除了在主机处理器和加速器、智能网络接口卡以及内存扩展设备之间供应高带宽和低延迟的连接外,它还支持跨多个别系的资源共享池,实现可扩展、节能和本钱效益高的打算。
接下来谈判量利用CXL互连在机架级别及更高等别上搭建可组合和可扩展架构,以实现异构内存和异构打算资源的池化和共享。

PCIe是一个非同等性互连。
PCIe设备一样平常利用DMA完成系统内存读写事务以非同等性办法访问系统内存。
附加到PCIe设备的任何内存都在系统中作为不可缓存的内存映射I/O(MMIO)区域进行映射。
CXL 1.0/1.1在PCIe根本举动步伐之上增加了同等性和内存语义,以支持细粒度的协同异构处理以及知足新兴打算需求所需的内存带宽和容量扩展。
英特尔捐赠了最初的CXL 1.0规范,并在2019年领导了CXL同盟的启动。
CXL 1.0/1.1支持I/O(CXL.io)、同等性(CXL.cache)和内存(CXL.memory)协议之间的动态多路复用,如图1(b)所示。
CXL基于内存加载-存储语义。
它在中心处理单元(CPU(s))(主机处理器)和跨异构内存的CXL设备之间掩护统一的、同等的内存空间,如图1(a)所示。

图 1. CXL 1.0和CXL 2.0的利用模式和协议。
(a) 绿色文本显示了CXL 1.0启用的新系统能力。
三种类型的CXL 1.0设备。
(b) CXL在PCIe PHV上的三种协议的动态多路复用。
(c) CXL 2.0的资源池化。

CXL类型1设备是加速器,例如利用同等性语义以及PCIe的DMA传输的智能NIC。
CXL类型2设备是加速器,例如通用图形处理单元(GP-GPU)和现场可编程门阵列(FPGA),它们具有可以部分或全部映射到可缓存系统内存确当地内存。
CXL类型3设备用于利用可能具有自己内存层次构造的异构内存进行内存带宽和容量扩展。

后面文章会展示如何开拓商业上可行的可组合系统,在POD级别具有加载-存储语义,并连续向后兼容CXL的演进。

CXL 2.0引入了通过许可多个域对一个或多个池扮装备进行加载-存储访问的内存和加速器的池化观点。
这种池化能力可以供应更高的能效同时降落总拥有本钱,由于各个做事器不必过度配置内存,由于它们可以依赖内存池来应对需求的临时激增。
CXL 2.0支持扇出和池化、内存和加速器池化、热插拔管理和资源管理器的切换,同时完备向后兼容CXL 1.0/1.1。
因此,CXL 2.0为CXL供应了一种扩展到机架级别低延迟互连的机制,具有加载-存储语义。

CXL协议概述

68字节的FLIT是CXL中传输的基本单位。
CXL.io基于带有非同等性加载-存储和生产者-消费者排序语义的PCIe协议。
CXL.cache 支持设备缓存数据,采取要乞降相应协议。
主机处理器管理修正、独占、共享、无效(MESI)同等性协议,根据须要支配SNOOP。
每个方向上都有三种种别:要求(Req)、相应(Rsp)和数据。
在设备到主机(D2H,上行)方向上,Req 包括读取(例如,Rd_Shared,RdOwn)和写入;相应的下行 H2D 相应是全局可不雅观察性(GO)。
H2D-Req 是SNOOP,导致 D2H 相应SNOOP(例如,RspI,RspSHitSE)。

图 2. CXL 实现和丈量的延迟

CXL.memory 支持类型2/3设备将其内存映射到系统的同等性内存中,这将被称为主机管理的设备内存(HDM)。
它以缓存行粒度(64字节)在主机处理器(M)和类型2/3设备(S)之间传输内存加载和存储事务。
要求从主机发送到设备在一个下贱通道上:M2SReq(例如,读取要求),以及 M2S RwD(例如,写入)。
相应从设备发送到主机在两个上行通道上:S2M NDR(无数据相应)和 S2M DRS(带数据的相应)。

CXL 实现和结果

CXL 1.0/1.1 在英特尔的 Sapphire Rapids (SPR) CPU 中实现,支持所有三种协议,符合 CXL 规范的哀求。
它已经通过在 32.0 GT/s 下运行的 x16 宽度的英特尔 FPGA 实现 CXL 进行了广泛测试。
末了一级缓存(LLC)和窥伺过滤器涵盖了 CXL设备中的缓存。
无论是本地连接到 CPU 的双倍数据速率动态随机存取存储器(DDR)总线还是映射到系统地址空间的 CXL设备,内存都在 CPU 中的 Home Agent 的统领范围内。

图 2 表示我们的 IP 级微架构块图。
SERDES 引脚到运用层的总来回延迟目标是 21 或 25 纳秒,这取决于公共时钟模式是否开启。
这符合 CXL 规范目标,即内存访问的引脚到引脚来回延迟为 80 纳秒,SNOOP的相应为 50 纳秒。
因此,跨 CXL 链路的加载到利用延迟估量为 CXL.Mem 的大约 150-175 纳秒。

图3(a)和(b)展示了我们构建大型可组合做事器集群的架构愿景,这些做事器超过一个或多个机架,利用CXL作为互连。
每个机架抽屉可以是打算抽屉(抽屉可以理解为一个机架中有独立外壳的托盘),连接多个节点(做事器)与池化内存(包括双列内存模块、双列内存模块(DIMM)和CXL内存驱动器),和池化加速器。
每个节点可能有自己的专用内存、加速器和其他I/O资源。
一个抽屉也可以只由内存或加速器组成,这些可以是跨机架资源池的一部分。
共享内存掌握器(SMC)芯片供应CXL连接。
SMC也可以本地托管DDR内存,如图3(c)所示。
SMC之间的互连可以通过机架内的铜缆(1-2米)。
或者利用光纤用于SMC之间的跨机架连接。

图 4. 延迟优化的FLIT布局,提出的CXLFLIT打包和CXL事务增强。
(a) 128字节优化的FLIT布局。
(b) 利用我们提出的可扩展性机制,在SMC-SMC链路中利用128字节LO FLIT的例子。
(c) 现有的CXL(1.0,2.0)流程;所有HDM访问都通过主机处理器与HA进行。
(d) 直接访问HDM内存的提出流程;新流程以赤色文本显示。

CXL协议和能力增强

文中提出了几项CXL增强方法,以实现可组合和可扩展架构。
这使得跨多个域共享和池化资源(例如,内存、加速器);每个域都是一个独立的做事器。
可以构建跨机架的可组合系统,每个域都可以根据须要动态地从资源池中添加/移除资源。
新的架构还通过利用共享内存、跨域中断、旗子暗记量和基于CXL的直接加载存储内存访问语义的通报,实现跨域的协同打算。

后面须要在不增加延迟惩罚的情形下将可扩展架构带宽翻倍。
CXL 3.0规范采取了64-GT/s PAM-4旗子暗记与我们的128字节sub-FLIT机制(与CXL 2.0比较没有增加任何延迟)。
图4(a)显示了不同slot的布局。
通用(G)slot为16字节,可用于头和数据,而H/HS slot(14/12字节)仅用于头。

为了构建图3所示的大规模可扩展系统,纵然存在多级SMC也须要有靠近单节点性能的表现。
文中方法适用于任何利用无去世锁路由机制的拓扑构造,没有PCIe和CXL 1.0/2.0的树形拓扑限定。
SMC之间的CXL链路须要是CXL 3.0协议加上这里谈论的增强功能,并支持每个CXL协议的高下游通道。

我们发起增强CXL 3.0的128字节延迟优化(LO)FLIT,利用12位端口ID号通过SMC路由。
这比256字节的方法供应了更低的延迟和更高的带宽效率。
端口ID号只须要唯一标识连接到SMC的主机CPU或CXL设备,许可多达4,096个主机CPU或设备(可以是PCIe/CXL 1.0/CXL 2.0/CXL 3.0)连接到任何SMC端口。
为此,我们须要在每个头进入第一个SMC时添加12位目标端口ID(也称为Dest-ID)。
对付要求,我们须要添加12位源端口ID(Src-ID),以便相应可以路由回源节点。
当事务通报到CPU或设备并在出口SMC端口交付时,这些Dest-ID / Src-ID将被移除,并转换为标准PCIe/CXL 1.0/1.1/2.0/3.0格式,以便现有的CPU/设备可以与我们提出的架构一起事情,该架构仅将可组合性和可扩展性包袱放在SMC上。

CXL.Cache/Mem头有足够的备用位来适应这种扩展,并且仍旧适宜CXL3流量的任何slot。
我们已经确定了CXL 3.0规范中所有性能关键的头编码,如图4(b)所示(例如,一个G slot中的3个S2M NDR)。
纵然在每个事务中添加了额外的端口ID位,我们也可以容纳它们,包括每个slot有多个头的那些。
有两个例外:1)有两个头(M2SReq,M2SRwD),由于没有足够的备用位,Dest-ID没有发送。
因此,这两个须要在每个SMC进行目的ID查找(而不是在进入SMC复合体时一次)。
我们认为,为了保留外部链路带宽而增加的查找逻辑带宽是一个合理的权衡。
2)有一个实例,个中插槽中的第三个数据返转头(DRS)须要与第二个DRS具有相同的目标ID位。
这也是一个合理的权衡,由于我们无法发送3个DRS(而是发送2个DRS)的唯一韶光是如果有超过2,048个CPU/CXL设备,并且在一个重负载系统中我们无法调度两个具有相同Dest-ID的DRS。

通过这些发起的优化,对付CXL.Cache/CXL.Mem,现有的单一域与我们为大型可组合系统提出的多域支持之间没有效率丢失。
对付跨SMC链路的CXL.io访问,在SMC的初始入口点,目标端口ID天生并添加为事务层数据包(TLP)前缀,并适当转换为目标域的总线、设备和功能。
TLP前缀的额外4个字节将对CXL.io带宽产生很小的影响。

为了在大型系统中扩展性能,我们还提出了新的CXL流程,个中一些已经被采取在CXL 3.0规范中。
在CXL 1.0/CXL 2.0中,所有HDM访问都通过主机处理器进行,以办理缓存同等性,纵然类型2/3设备可以通过SMC直接访问,如图4(a)所示。
这导致链路带宽摧残浪费蹂躏和额外的延迟。
我们提出直接点对点(p2p)访问HDM内存,我们在CXL.io中称之为“无序I/O”(UIO),类似于MMIO访问的点对点。
我们在S2M中添加了一个新的回退使能窥伺(“BI-Snp”)和相应的回退使能相应(“BI-Rsp”),以支持这种直接p2p HDM访问。
这种方法保留了CXL的不对称性,由于主机处理器仍旧折衷同等性并办理可缓存访问的冲突。
BI-Snp只启用设备端内存掌握器支持直接点对点访问,类似于自CXL 1.0时期以来类型2设备已经具备的能力,而不会引入实现类型2设备的缓存语义和偏置翻转流程的繁芜性。

类型2/3设备已经有一个目录,由两位存储元数据(MESI状态:I、S、E/A,个中A代表任何MESI状态)。
吸收到其HDM内存的直接UIO要求的类型2/3设备,如果可以在保持MESI同等性机制的同时本地做事事务[例如,如果状态是I/S,则为读取(写入)要求];否则,它将触发BI-Snp流程,如图4(b)所示,以通过主机CPU逼迫实行MESI同等性机制,然后完成要求。
这些回退使能流程还使类型2设备能够支配一个窥伺过滤器。
BI流程是CXL.Mem中的一个单独种别,由于CXL.Mem不依赖于其他种别,并且CXL.Mem存在于类型3(和类型2)设备中。
我们还发起为CXL.io UIO写事务添加一个可选的完成流程,如图4(b)所示,从而将生产者-消费者排序点移动到源,以实现CXL.io的多路径。

我们发起利用增强类型2/3设备在CPU和设备之间利用硬件逼迫缓存同等性共享内存。
内存掌握器可以在芯片上实现一个窥伺过滤器,可选地由内存中的目录支持,或者仅仅是内存中的目录,个中它跟踪可能拥有缓存行的主机处理器(s)的端口ID,并根据须要向主机处理器(s)发送BI-Snp。
这使得SMC能够在跨域的共享内存上逼迫实行缓存同等性。
这种共享内存也可以用来跨域实现旗子暗记量。
我们基于CXL.io(UIO)和非同等性CXL.Mem的节点间通报机制。

我们发起利用单根I/O虚拟化,为多个域中的CXL类型1/2和PCIe设备添加池化能力。
在这种情形下,fabric管理器将卖力设备。
SMC将把所有配置要求转发给fabric管理器,该管理器将仿照配置访问并确保跨域的隔离。
一个域只对其分配的设备功能(s)的内存空间有直接访问权,这是为了供应最佳性能所必需的。

SMC微架构

图3(c)显示了SMC芯片的块图,它支持连接到CXL节点(主机处理器或CXL设备)或其他SMC的CXL链路,以及连接到DRAM内存的DDR总线。
CXL管理接供词给了分布式fabric管理功能,这些功能对付折衷资源分配、掌握池化、共享CXL设备的配置寄存器空间以及在SMC内部跨域设置公共数据构造是必需的。
每个主机都有独立的系统地址空间视图。
带有分布式fabric管理软件栈的SMC折衷全局地址映射,如图5所示。
因此,对从CXL节点的访问通过SMC内部的地址映射和路由逻辑进行适当的重映射。
SMC内部数据路径和SMC链路中的事务头携带源和/或目标的12位端口ID进行路由。
SMC须要在交付给CPU或设备时取下这些前缀、源/目标端口ID,并在完成时重新分配它。
除了跨域的地址转换外,SMC在我们的发起架构中还供应对复制、邮箱、旗子暗记量和中断做事的支持。

性能指标

SMC之间的连通性 一个抽屉可以有一个或多个SMC。
对付大规模扩展配置,我们期望每个独立链接是x4@64.0GT/s,每个方向32 GB/s。
拥有192个通道或48个链接,每个SMC可以连接到机架中所有16个独立做事器和16个池扮装备,其余16个可以用于连接机架内/跨机架的其他SMC。
因此,利用两个级别的SMC可以在16个机架之间实现连通性。

用于I/O同等性访问和图5中描述的跨域通报,可以支配CXL.io或CXL.Mem机制。
由于带宽效率CXL.io更高,并且它不会花费连接到SMC(s)的系统内存来备份通报空间,我们建议仅利用CXL.io进行跨域通报,以得到性能、实现大略性和本钱效益。
表1(a)和(b)总结了我们利用CXL.io的带宽结果。

表1 架构的链路效率

如上所述,我们发起通过直接点对点(包括不涉及缓存的DMA和跨域)绕过主机处理器进行CXL.io访问。
预期绝大多数这些访问不会引发BI-Snp机制来逼迫同等性。
这有助于提高链路效率以及减轻主机处理器链路的拥塞。
如表1(b)所示,纵然在所有访问都引发BI-Snp的极度情形下,这种机制的效率增益也是显著的,由于这比跨链路的多缓存行传输更好。

根据我们在“带有CXL的可组合、可扩展机架级架构”部分中先容的结果,CXL堆栈的Tx+Rx路径为25纳秒。
纵然增加额外的15纳秒用于内部延迟,如排队/地址查找/仲裁/传播延迟等,每次通过SMC的跳转少于40纳秒。
这使得两次SMC跳转对付内存访问非常可行。
表2总结了我们基于在实现CXL和详细微架构SMC方面的事情履历对各种访问的估计。

表2 架构的延迟估计

结论

CXL技能由于在成熟稳定的PCIe根本举动步伐上实现低延迟缓存和内存语义的简便性而在行业中得到了广泛的关注。
CXL可以进一步增强和支配,以超过多个机架,为多种运用供应高可靠性和低延迟的加载-存储访问。
通过我们提出的方法,我们期望实现构建超过机架和数据中央的可组合和可扩展系统的愿景,从而实现能效性能,并带来显著的总拥有本钱上风。

标签:

相关文章

全球半导体芯片公司10强_美元_全球

环球半导体行业领先企业排名英伟达NVIDIA ,美国,成立于1993年,半导体芯片,环球视觉打算技能的行业领袖,1999年发明了...

智能 2025-01-17 阅读0 评论0

单片机电子称相关常识_暗记_旗子

根据智能电子秤的性能及技能哀求,选择89C52单片机为核心,组成称量系统。系统紧张有89C52单片机、A/D转换器、键盘/显示电路...

智能 2025-01-17 阅读0 评论0