深入浅出理解CXL,为什么关键是内存?

最新更新时间:2022-08-18来源: EEWORLD关键字:CXL  内存 手机看文章 扫描二维码
随时随地手机看文章

随着每一家主要的半导体和数据中心公司都加入,以及第一代设备即将发布,Compute Express Link (CXL) 的吸引力正在达到临界点。第 3 代 Compute Express Link (CXL) 规范刚刚发布,它带来了该标准先前版本中缺少的一些重大更改。本文将围绕CXL讨论服务器架构和异构计算的未来。


CXL 联盟有 200 多个成员,但我们认为这些公司拥有最有影响力的产品和知识产权。包括英特尔、AMD、Nvidia、Ayar Labs、HPE、微软、Meta、谷歌、阿里巴巴、Ampere Computing、三星、SK Hynix、美光、Rambus、Marvell、Astera Labs、Microchip、Montage Technology、Broadcom、和 Xconn。 


过去,数据中心芯片主要是为了构建更好的 CPU 内核和更快的内存。十年前的服务器大多看起来与今天的服务器没什么不同。在过去十年中,随着横向扩展和云计算的出现,市场发生了变化。最快的核心不是优先事项。重点是如何经济高效地提供总体计算性能并将其集成在一起。


这些趋势都指向计算资源专业化的趋势。收益递减定律的最终示例之一是,在通用 CPU 性能上花费的每个增量晶体管都会带来越来越少的性能。因此异构计算将占主导地位,因为专用 ASIC 可以在使用更少晶体管的特定任务中提供超过 10 倍的性能。


为每个工作负载设计具有精确计算资源的特定芯片非常昂贵,简而言之,由于掩模、验证和确认等工序,设计芯片的固定成本正在飙升。


与其为整个工作负载设计芯片,不如为计算类别设计芯片并将它们连接到特定工作负载所需的任何配置中,这将更具成本效益。


用较小的功能构建大型系统可能会更经济,这些功能分别封装和互连。大功能的可用性与功能设计和构造相结合,应该允许大型系统的制造商快速且经济地设计和构造相当多的器件。


Gordon Moore 博士在预测“摩尔定律”的原始论文中就曾表示:“将更多组件塞进集成电路”。


然而如今,系统构建方式的变化将计算单元从单个芯片或服务器转移到整个数据中心。


黄仁勋也曾说过,数据中心是新的计算单元。


服务器内的芯片连接通常使用 PCIe完成,他的最大缺点是缺乏缓存一致性和内存一致性。这两个概念就好比像邮局一样的服务器。信件是异步的,通常是需要几天时间后处理,而连贯性有助于管理和平衡这一点。


使用 PCIe,从性能和软件的角度来看,不同设备之间通信的开销相对较高。此外,连接多个服务器通常意味着使用以太网或 InfiniBand。这些通信方法有相同的问题,并且具有更差的延迟和更低的带宽。


2018 年,IBM 和 Nvidia 将 NVLink解决方案引入了当时世界上最快的超级计算机 Summit。 AMD 在 Frontier 超级计算机中拥有类似的专有解决方案,称为 Infinity Fabric。没有任何行业生态系统可以围绕这些专有协议发展。 CCIX 在 2010 年代中期成为潜在的行业标准,但它从未真正起飞,因为尽管得到了 AMD、Xilinx、华为、Arm 和 Ampere Computing 的支持,但它缺乏关键的行业支持。


英特尔拥有超过 90% 的 CPU 市场份额,因此没有解决方案会在没有他们支持的情况下实现。英特尔正在制定自己的标准,并于 2019 年将其专有规范作为 Compute Express Link (CXL) 1.0 捐赠给了新成立的 CXL 联盟。该标准得到了半导体行业大多数供应商的同时支持。 CXL 通过使用现有的PCIe 5.0的物理层和电气层标准及生态系统,但使用改进的协议层,为加载存储内存事务增加一致性和低延迟模式。


由于建立了行业中大多数主要参与者都支持的行业标准协议,CXL 使向异构计算的过渡成为可能。


AMD 的 Genoa 和 Intel 的 Sapphire Rapids 将在 2022 年末/2023 年初支持 CXL 1.1。CXL 1.1 附带 3 个协议支持,CXL.io、CXL.cache 和 CXL.mem。 CXL.io 可以被认为是标准 PCIe 的一个类似但改进的版本。CXL.cache 允许 CXL 设备连贯地访问和缓存主机 CPU 的内存。 CXL.mem 允许主机 CPU 连贯地访问设备的内存。更详细的解释包含在下面的要点中。大多数 CXL 设备将使用 CXL.io、CXL.cache 和 CXL.mem 的组合。

image.png

· CXL.io 是用于初始化、链接、设备发现和枚举以及注册访问的协议。它为 I/O 设备提供接口,类似于 PCIe Gen5。 CXL 设备也必须支持 CXL.io。

· CXL.cache 是定义主机(通常是 CPU)和设备(例如 CXL 内存模块或加速器)之间交互的协议。由于安全使用其本地副本,这允许连接的 CXL 设备以低延迟缓存主机内存. 把这想象成一个 GPU 直接从 CPU 的内存中缓存数据。

· CXL.memory / CXL.mem 是为主机处理器(通常是CPU)提供使用加载/存储命令直接访问设备附加内存的协议。将此视为 CPU 使用专用存储级内存设备或使用 GPU/加速器设备上的内存。


到目前为止,我们主要讨论的是异构计算,但 CXL 的真正关键在于内存。过去,我们在解释 Marvell 购买Tanzanite Silicon、Astera Labs 和 Rambus 的内存加速器竞争的文章中讨论了这一点。我们在深入研究 Microsoft 的内存池解决方案时扩展了这个想法。

image.png

数据中心存在大量内存问题。自 2012 年以来,核心数量迅速增长,但每个内核的内存带宽和容量并未相应增加,而是下降了,并且这种趋势将在未来继续。此外,直连 DRAM 和 SSD 在延迟和成本方面存在巨大差距。最后,昂贵的内存资源往往利用率很低,这是一个杀手锏。低利用率对于任何资本密集型行业来说都是一个很大的拖累,而数据中心业务是全球资本最密集的行业之一。


微软表示,50% 的服务器总成本来自 DRAM。尽管 DRAM 成本很高,但他们 25% 的 DRAM 内存还是浪费了!简单来说,微软 Azure 总服务器成本中的12.5%是毫无价值的。


想象一下,如果此内存可以改为存在于连接的网络上,并跨多个 CPU 和服务器动态分配给虚拟机,而不是禁锢每个 CPU 上。内存带宽可以根据工作负载的需求缩放,这将大大提高利用率。

image.png

这个概念不仅限于内存,还包括所有形式的计算和网络。可组合的服务器架构是指服务器被分解成不同的组件并放置在组中,这些资源可以动态地分配给工作负载。


数据中心机架成为计算单元。客户可以为其特定任务选择任意数量的内核、内存和 AI 处理性能。或者更好的是,谷歌、微软、亚马逊等云服务提供商可以根据他们正在运行的工作负载类型任意向他们的客户分配资源,并仅根据他们使用的内容向客户收费。


这一愿景是服务器设计和云计算的圣杯。有许多与此相关的复杂工程问题;许多人集中在构建网络以连接所有内容的延迟和成本上。这些必须是批判性的考过,但协议必须先行,这就是CXL 2.0和3.0标准为何迅速诞生的原因。

image.png

CXL 2.0 的主要特性是支持内存池和交换机。 CXL 交换机可以连接多个主机和设备,从而使连接在 CXL 网络上的设备数量显着增长。新的多逻辑设备功能允许众多主机和设备全部链接并相互通信,而无需历史规定的主从关系。资源网络将由结构管理器进行编排,结构管理器是用于控制和管理该系统的标准 API。细粒度的资源分配、热插拔和动态扩容允许硬件在各个主机之间动态分配和转移,无需任何重启。

image.png

一张图片胜过一千个字,所以让我们讨论一下上面的图片。多台主机可以连接到交换机。然后将交换机连接到各种设备,SLD(单个逻辑设备)或 MLD(多个逻辑设备)。 MLD 旨在耦合到多个主机以共享内存池。


MLD 显示为多个 SLD。这允许他们在主机之间汇集内存,甚至汇集加速器计算资源。 FM(结构管理器)位于控制平面中,它是协调器,分配内存和设备。结构管理器可以位于单独的芯片上或交换机中;它不需要高性能,因为它不接触数据面。如果该 CXL 设备是多头的并连接到多个主机的根端口,则也可以在没有交换机的情况下实现。

image.png

将所有这些结合在一起,微软展示了通过池化 DRAM 将部署的 DRAM 减少 10% 并节省 5% 的总服务器成本的潜力。这是在没有使用 CXL 交换机的第一代 CXL 解决方案基础上构建的。


CXL 3.0 带来了更多改进,有助于扩展创建异构可组合服务器架构的能力。主要关注点是将 CXL 从服务器规模扩展到机架规模。这是通过从主机设备模型转变为使 CPU 成为网络上的另一个设备来实现的。

image.png

CXL 交换机现在可以支持一系列拓扑。以前在 CXL 2.0 中,只能使用 CXL.mem 设备进行扇出。一个机架或多个服务器机架现在可以利用叶和主干或所有拓扑联网。 CXL 3.0 的设备/主机/交换机/交换机端口的理论限制为 4,096个。这些变化极大地扩大了 CXL 网络的潜在规模,从几台服务器扩展到了服务器机架。


此外,所有类型的多个设备都可以位于来自主机的 CXL 的单个根端口上。这以前是一个主要限制,因为单个根端口只能寻址单个设备类型。如果主机连接到具有单个 CXL 根端口的交换机,则该主机只能访问位于交换机外的一种类型的设备。

CXL 3.0 中最重要的变化是内存共享和设备到设备的通信。主机 CPU 和设备现在可以在相同的数据集上协同工作,而无需不必要地打乱和复制数据。一个例子是常见的 AI 工作负载,例如 Google 和 Meta 等巨头采用的数十亿参数的深度学习推荐系统。相同的模型数据在许多服务器上重复。用户的请求进来,推理操作开始运行。如果存在 CXL 3.0 内存共享,则大型 AI 模型可以存在于几个中央内存设备中,并且支持其他设备访问它。该模型可以使用实时手机用户数据不断进行训练,并且可以跨 CXL 交换网络推送更新。这可以将 DRAM 成本降低一个数量级并提高性能。


内存共享可以提高性能和经济性的领域几乎是无限的。第一代内存池可以将总 DRAM 需求降低 10%。较低延迟的内存池可以使多租户云中的节省达到约 23%。内存共享可以进一步将 DRAM 需求降低 35% 以上。这些节省意味着每年在数据中心 DRAM 上花费数十亿美元。

关键字:CXL  内存 编辑:冀凯 引用地址:http://news.eeworld.com.cn/qrs/ic619276.html

上一篇:Rambus扩大面向数据中心和PC设备的DDR5内存接口芯片组合
下一篇:应需而生!兆易创新推出突破性1.2V超低功耗SPI NOR Flash产品系列

推荐阅读

英特尔关闭傲腾内存业务 內部员工已接到通知
9月29日消息,据外媒报道,英特尔公司已经在一个多月前通知傲腾(Optane)内存业务部门员工停止相关业务,今后不再会有新产品,库存处理完之后也将不再生产,傲腾品牌将成为历史。相关人士强调,虽然之前英特尔透露将关闭傲腾业务,但并没有正式的对外公布,现阶段策略就是随着现有产品销售完毕,才会正式宣告结束。英特尔的傲腾内存产品源于英特尔与美光共同开发的3D Xpoint 技术。在2006年,英特尔和美光各自出资12亿美元成立了合资企业(IM Flash Technologies)来研发3D XPoint技术,并于2015年首次对外宣布其合作成果。该技术拥有相近于DRAM 的高速存取性能,又兼具类似SSD的非易失性,即使在断电情况下也可以存
发表于 2022-09-30
英特尔关闭傲腾<font color='red'>内存</font>业务 內部员工已接到通知
处理器架构 (六) armv4v5v6 架构参考手册(2) 内存及系统架构
内存及系统架构 (partB) 内存及系统架构介绍 ARMv6是第一个标准化内存模型和许多系统级特性的体系结构变体。 它是第一个要求提供系统控制协处理器的体系结构变体,也是系统级硬件和软件设计的一致性级别。 因此,ARMv6被认为是B部分中材料呈现方式的分水岭。 1. 内存顺序模型 ARMv6之前 体系结构没有试图定义显式内存事务的可接受内存顺序 ARMv6 定义了 显式内存事务的可接受内存顺序(没有定义隐式内存事务的可接受内存顺序) 为了解释 (显式内存事务的可接受内存顺序) 1.ARMv6引入了一组内存类型(普通内存、设备内存和强顺序内存),定义了内存访问属性,以便以基本上向后兼容的方式适应原始内存区域的实际含义。
发表于 2022-09-29
DDR5内存满足未来内容创作、发布和消费的更高要求
DDR5内存满足未来内容创作、发布和消费的更高要求在过去的十年时间里,随着程序与应用、数据集与复杂代码,以及3D模型渲染、8K视频编辑和高帧速率游戏等领域的空前发展,DDR4技术已不堪重负,难以跟上行业发展步伐。随着CPU内核数量的不断增加,为了应对这些海量需求,内存技术也需要进一步扩展。下一代系统中的DDR5内存是实现当前所需性能的最佳解决方案,同时能够进一步扩展,以满足未来内容创作、内容发布和内容消费的更高要求。内容创作内容创作者受到了DDR4技术的限制,因为他们的高性能工作台消耗了增加的内存密度或内存带宽。等待时间延长导致效率降低,甚至无法进行多任务处理。而DDR5内存能够大幅提高带宽。随着时间的推移,最终DDR5的单条容量将
发表于 2022-09-27
OK6410A 开发板 (三) 25 u-boot-2021.01 boot 解析 U-boot 内存命令 md
md.b $address $count (从地址$address处显示$count个字节的数据b=byte,字节,8位)md.w $address $count (从地址$address处显示$count个字的数据 w=word,字 ,16位)md.l $address $count (从地址$address处显示$count个双字的数据 l=long,双字,32位)内存里的数据=> tftp 51000000 2led_c.bindm9000 i/o: 0x18000300, id: 0x90000a46DM9000: running in 16 bit modeMAC: 76:c5:cb:38:0b:edoperatin
发表于 2022-09-21
OK6410A 开发板 (八) 31 linux-5.11 OK6410A 感知linux的内存管理
linux 内存管理 , 我们感知三类内存管理 系统内存管理 A 内核线程内存管理 A 用户进程内存管理 内核态 A 用户态 B这几种应该分为两类 , A BA 类共用一个内存(虚拟和物理)B 类每个进程有一个内存(虚拟和物理)另外,我们知道在硬件上 内存是 物理内存但在 linux 里面, 内存 除了物理内存 还包括 swap空间代表的空间(这里是将硬盘当作内存) // 可以从 free 命令 分析出来A系统内存管理的感知系统启动的时候,会打印如下的信息[09:52:32]Memory: 243936K/262144K available (5120K kernel code, 6569K rwdata, 736K rod
发表于 2022-09-13
OK6410A 开发板 (八) 32 linux-5.11 OK6410A 从内存角度简略分析整个启动过程
从 arch/arm/kernel/head.S 中的 stext 到 内核 rest_init 的 system_state = SYSTEM_SCHEDULING;分析 整个内存的启动过程至于 为什么不分析 arch/arm/boot/compressed/head.S 中的start 到 arch/arm/kernel/head.S 中的 stext因为 这个过程可以不跑的话, linux 也能运行起来之前在 https://blog.csdn.net/u011011827/article/details/115944495 分析 过,此过程 跑不跑 带来的效果的是一样的整个过程可以分段为5个阶段A arch/arm/kern
发表于 2022-09-07
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved