admin管理员组文章数量:1440451
NVMe Over CXL SSD 概念、场景与价值
全文概览
早期计算机为优化性能,内存与存储分离:内存高速低延迟服务CPU即时需求,存储大容量持久保存。大数据和AI兴起,传统架构瓶颈显现,数据激增,内存需求空前,PCIe扩展受限。CXL应运而生,统一CPU、内存、加速器、存储,使NVMe SSD与内存紧密协作,SSD DRAM可扩展为HDM,提升速度、降低延迟、实现内存池化和动态分配,提高效率。本文将剖析NVMe over CXL原理、优势及应用,阐述其如何革新计算存储,尤其应对AI高性能大容量需求。
阅读收获
- 理解CXL技术如何革新传统计算机架构,实现内存和存储的融合,为未来计算平台带来变革性潜力。
- 掌握NVMe over CXL技术的核心优势,包括其在提升存储性能、效率和资源利用率方面的关键作用。
- 洞悉CXL技术在应对人工智能、大数据等新兴应用对高性能、大容量内存和存储需求的巨大潜力,以及其在相关领域的重要意义。
- 了解NVMe-oC SSD的技术特点、软件架构、应用场景及性能表现,为技术选型和应用实践提供参考。
图注:内存和存储访问接口的差异
图片对比了计算机系统中的内存和存储,并展示了传统的计算机架构,其中内存和输入/输出组件通过不同的接口与中央处理器进行通信。图片强调了这种分离是计算机系统长期以来的基本设计原则。
为什么需要不同的接口?
- 不同的性能需求:
- 内存: CPU需要以极高的速度和非常低的延迟来访问内存,因为这是CPU执行指令的基础。因此,CPU与内存之间的接口被设计成具有非常高的带宽和速度。例如,现代计算机使用DIMM插槽连接内存条,并采用像DDR4、DDR5等高速内存技术。
- I/O组件: 不同的I/O组件对数据传输速度和延迟的要求各不相同。例如,显卡需要非常高的带宽来传输图形数据,而鼠标和键盘的数据传输速率要求则相对较低。为了满足这些不同的需求,CPU需要通过不同的接口与它们进行通信。
- 不同的通信协议:
- 内存: CPU与内存之间的通信遵循特定的内存总线协议,例如前端总线(FSB,较旧的技术)或直接内存接口(DMI,英特尔)和超传输(HyperTransport,AMD)。这些协议专门为高速内存访问而设计。
- I/O组件: 不同的I/O组件使用不同的通信协议。例如:
- 高速设备(如显卡、SSD): 通常使用PCI Express(PCIe)接口,这是一种高速串行总线标准。
- 存储设备(如HDD、SSD): 通常使用SATA或NVMe接口。
- 通用外设(如键盘、鼠标、打印机): 通常使用USB接口。
- 网络设备: 使用以太网接口。
图片介绍了CXL(Compute Express Link)技术,它不仅仅是一个简单的输入/输出总线。CXL通过一个统一的协议,实现了处理单元、内存、存储和输入/输出之间的融合。这种融合使得资源虚拟化能够以新的方式实现,暗示了CXL在提升计算机系统灵活性和效率方面的潜力。
如何更具象化理解CXL总线的价值
更形象的比喻:
- 非CXL总线像传统的物流系统: CPU是总调度中心,内存是自己的仓库,各种设备是不同的供应商,通过不同的运输线路(PCIe)和协议进行数据交换,如果供应商需要和另一个供应商共享货物,需要通过调度中心中转或者复杂的协调。
- CXL总线像一个更现代化的协作平台: CPU、内存和各种设备都在同一个高速、统一的平台上工作,可以直接共享信息和资源,任何一方的修改都能立即被其他方感知,大大提高了协作效率和灵活性。
总结来说,CXL总线带来的主要区别在于:
- 统一的接口: 将数据传输、内存访问和缓存一致性整合到一个总线上。
- 内存扩展和共享: 允许更灵活地扩展内存容量,并实现设备之间高效的内存共享。
- 缓存一致性: 确保连接到总线的不同设备能够看到最新的数据,简化了编程和提高了性能。
- 资源池化和动态分配: 为构建更灵活和高效的计算系统提供了基础。
这些特性使得基于CXL总线的设备互联能够更好地满足现代计算对于高性能、高带宽和低延迟的需求,尤其是在人工智能、数据分析和高性能计算等领域。
图注:内存语义下的数据快速访问
图片展示了一种基于CXL总线的NVMe固态硬盘解决方案。
该方案利用CXL.mem接口,使得CPU可以直接访问SSD上的DRAM缓存(作为Host Directed Memory,HDM)。与传统的通过PCIe进行数据传输的方式不同,CPU只需要通过CXL.mem获取所需的最小数据单元(FLITs),而大部分缓存数据仍然保留在SSD本地。
这种方式减少了CPU和SSD之间的数据传输量,提高了效率。该基于CXL的NVMe-oC SSD可以被系统识别为标准的NVMe SSD以及一块可以直接被主机访问的内存区域(HDM),从而实现了更优化的缓存管理和数据访问。
业界常提及内存语义概念,是否与可以直接被主机访问的内存区域(HDM)相关?
内存语义指的是在多处理器或具有多个内存访问主体的系统中,对内存操作的顺序、可见性和一致性的规则和保证。它定义了当一个处理器或设备写入某个内存地址后,其他处理器或设备何时以及如何能够看到这个写入的值。不同的系统架构和编程模型可能具有不同的内存语义。
Host Directed Memory (HDM) 的引入,尤其是在基于CXL的设备上,直接影响并扩展了系统的内存语义。原因如下:
- 扩展了主机可访问的内存空间: HDM使得SSD上的DRAM资源成为主机(CPU)可以直接寻址和访问的一部分内存。这打破了传统上SSD的DRAM仅作为内部缓存使用的模式。
- 引入了新的内存访问主体: 除了CPU核心,现在SSD控制器也成为可以直接读写HDM区域的内存访问主体。这在传统的CPU和主内存模型中是不存在的。
- 需要考虑跨不同内存域的一致性: 当CPU访问HDM时,需要保证数据的一致性。例如,如果CPU修改了HDM中的数据,那么后续对该数据的读取操作应该能够看到最新的修改。同样,如果SSD控制器修改了HDM中的数据,CPU也应该能够感知到。CXL总线提供的缓存一致性机制正是为了解决这个问题,确保CPU缓存、主内存和HDM之间的数据保持一致。
- 影响编程模型和软件开发: 程序员现在需要考虑如何有效地利用这块可以直接访问的SSD内存。这可能涉及到新的编程接口、数据结构和同步机制,以确保在多核CPU和SSD控制器之间正确地共享和操作HDM中的数据。对HDM的访问方式和性能特性将直接影响应用程序的设计和性能。
具体来说,HDM与内存语义的关联体现在以下几个方面:
- 一致性模型: CXL为HDM提供了一致性协议,定义了CPU和SSD控制器如何共享和更新HDM中的数据,保证数据在不同访问者之间的可见性和一致性。
- 原子性: 系统需要定义对HDM的读写操作是否是原子的,以及在多线程或多设备并发访问时如何保证操作的完整性。
- 排序: 内存语义需要规定不同内存操作的执行顺序,以及这些操作对不同观察者的可见顺序。这对于保证程序的正确性至关重要。
图片描绘了使用CXL技术的NVMe存储解决方案的软件架构。
在用户和内核空间中,应用程序可以通过多种方式与底层的NVMe over CXL模块进行交互,包括标准的NVMe协议、DAX(Direct Access)用于直接访问存储、HDM(Host Directed Memory)用于主机直接访问SSD上的内存、BAEBI(Base Address and Extent Based Interface)以及用于资源池化和共享的机制。
底层的NVMe over CXL模块包含了NAND闪存和DRAM缓存,并且可能包含一个可选的电源。图片强调了在实现这个方案时,应尽可能地利用现有的软件API,以简化开发和部署。
图片展示了一个用于演示NVMe over CXL技术的平台。
该平台包含一个支持CXL接口的主机系统(配备Intel Granite Rapids CPU和128GB内存),以及一个NVMe-oC设备。该NVMe-oC设备具有16GB的DDR4 DRAM作为HDM,以及128GB到1TB的闪存作为SSD。
演示的重点是使用NVMe-oC实现的虚拟HDM模式,展示了通过CXL总线将SSD上的DRAM作为主机可直接访问的内存来使用。
图注:NVMe-oC 支持下的SSD直接访问
柱状图对比了NVMe-oC SSD和传统SSD在不同负载下的读写性能。
结果表明,在繁忙机器上,传统SSD的读取带宽下降了53%,而NVMe-oC SSD的读取带宽仅下降了25%。这说明NVMe-oC SSD在繁忙负载下对读取性能的影响更小,性能更稳定,其读取性能的下降幅度是传统SSD的1/2.8,即降低了2.8倍的影响。
这归因于NVMe-oC技术通过CXL总线实现的更高效的内存和数据管理。
图片比较了不同内存配置下Redis的性能,包括仅使用DRAM、仅使用HDM以及使用NVMe-oC连接的HDM和SSD的组合。
结果表明,通过结合使用HDM和SSD,可以显著提高Redis的内存容量和性能,并且与仅使用DRAM相比,有望实现成本的大幅降低。例如,在使用32GB HDM和128GB SSD的配置下,Redis的性能远超仅使用32GB DRAM的配置。这说明基于CXL的NVMe-oC解决方案能够有效地扩展内存容量,并在保持较高性能的同时降低成本,尤其是在处理大内存占用的应用场景中。
如何理解HDM和DRAM两者的差异?
HDM与DRAM的主要区别在于:
- HDM是位于NVMe-oC SSD上的DRAM,通过CXL总线与主机连接,而传统DRAM直接连接在主板上。
- HDM通常与SSD上的NAND闪存结合使用,以提供更大的内存容量和潜在的成本优势。
- HDM可能支持更细粒度的访问和不同级别的持久性。
- HDM在系统中被识别为一块可以直接被主机访问的内存区域,并可能需要特定的软件接口进行管理和利用。
图注:AI对高速数据访问的需求
图片探讨了人工智能(AI)技术的发展速度和其对内存的需求。
图片指出,与典型的7年技术普及S曲线不同,AI正以更快的速度(18个月的S曲线)发展,这带来了巨大的内存需求,从几十GB到数TB不等。
通过将AI比作拥有“永不满足的胃口”的人脑,强调了AI对内存资源的巨大消耗,并提出了“谁能跟上?”的问题,暗示了满足AI快速增长的内存需求所面临的挑战。
图片探讨了CXL技术在未来计算机系统中的潜力。
它指出,DDR5内存架构的限制可能导致系统内存容量下降,而CXL提供的内存扩展能力可以弥补这一不足。此外,图片还强调了CXL在加速人工智能应用方面的潜力,以及开放的CXL设计对于推动行业创新的重要性。
最后,图片将主板上的CXL比作早期的PCI总线,暗示CXL将为下一代个人电脑带来革命性的变革和新的可能性。
为什么DDR5每个通道减少到一个模块?
与DDR4相比,DDR5每个通道减少到一个模块的主要原因是为了实现更高的速度和带宽,并维持信号的完整性。以下是更详细的解释:
- 更高的传输速率: DDR5的设计目标是提供比DDR4更高的内存传输速率。为了在更高的频率下稳定运行,减少每个通道上的内存模块数量有助于降低信号反射、串扰和时序复杂性等问题,从而更容易保证信号的完整性。
- 更复杂的内部架构: DDR5引入了许多新的特性,例如片上电源管理IC (PMIC) 和增强的错误校正码 (ECC) 功能。这些更复杂的内部设计可能会影响信号的路由和电气特性,使得在每个通道上支持多个模块变得更加困难。
- 优化的信号路径: 减少每个通道上的模块数量可以简化主板上的布线,优化信号路径,从而减少信号的衰减和失真,这对于在高频下稳定传输数据至关重要。
- 关注更高带宽而非单通道容量: 虽然每个通道只支持一个模块可能会在一定程度上限制单个通道的内存容量,但DDR5本身支持更高的单模块容量。其主要目标是大幅提升整体的内存带宽,这对于现代高性能计算、服务器和数据中心应用来说更为重要。通过提高传输速率,即使每个通道只有一个模块,也能提供比DDR4更高的带宽。
- 减轻电气负载: 每个内存模块都会对内存控制器造成一定的电气负载。减少每个通道上的模块数量可以减轻这种负载,使得内存控制器能够更稳定地驱动内存工作在更高的频率上。
延伸思考
这次分享的内容就到这里了,或许以下几个问题,能够启发你更多的思考,欢迎留言,说说你的想法~
- CXL技术除了在存储领域,是否有可能在其他计算领域(如CPU、GPU等)实现更深度的融合与创新应用?
- NVMe over CXL技术在实际应用中,可能面临哪些安全性和数据一致性方面的挑战?又该如何应对?
- 展望未来,您认为CXL技术将如何演进,才能更好地满足不断增长的计算和数据处理需求?
原文标题:NVMe Over CXL is much more than just an SSD
Notice:Human's prompt, Datasets by Gemini-2.0-flash-thinking
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-11,如有侵权请联系 cloudcommunity@tencent 删除存储接口内存数据性能本文标签: NVMe Over CXL SSD 概念场景与价值
版权声明:本文标题:NVMe Over CXL SSD 概念、场景与价值 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1747712492a2748206.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论