全文概览
早期计算机为优化性能,内存与存储分离:内存高速低延迟服务CPU即时需求,存储大容量持久保存。大数据和AI兴起,传统架构瓶颈显现,数据激增,内存需求空前,PCIe扩展受限。CXL应运而生,统一CPU、内存、加速器、存储,使NVMe SSD与内存紧密协作,SSD DRAM可扩展为HDM,提升速度、降低延迟、实现内存池化和动态分配,提高效率。本文将剖析NVMe over CXL原理、优势及应用,阐述其如何革新计算存储,尤其应对AI高性能大容量需求。
阅读收获
图注:内存和存储访问接口的差异
图片对比了计算机系统中的内存和存储,并展示了传统的计算机架构,其中内存和输入/输出组件通过不同的接口与中央处理器进行通信。图片强调了这种分离是计算机系统长期以来的基本设计原则。
为什么需要不同的接口?
图片介绍了CXL(Compute Express Link)技术,它不仅仅是一个简单的输入/输出总线。CXL通过一个统一的协议,实现了处理单元、内存、存储和输入/输出之间的融合。这种融合使得资源虚拟化能够以新的方式实现,暗示了CXL在提升计算机系统灵活性和效率方面的潜力。
如何更具象化理解CXL总线的价值
更形象的比喻:
总结来说,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与内存语义的关联体现在以下几个方面:
图片描绘了使用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的主要区别在于:
图注:AI对高速数据访问的需求
图片探讨了人工智能(AI)技术的发展速度和其对内存的需求。
图片指出,与典型的7年技术普及S曲线不同,AI正以更快的速度(18个月的S曲线)发展,这带来了巨大的内存需求,从几十GB到数TB不等。
通过将AI比作拥有“永不满足的胃口”的人脑,强调了AI对内存资源的巨大消耗,并提出了“谁能跟上?”的问题,暗示了满足AI快速增长的内存需求所面临的挑战。
图片探讨了CXL技术在未来计算机系统中的潜力。
它指出,DDR5内存架构的限制可能导致系统内存容量下降,而CXL提供的内存扩展能力可以弥补这一不足。此外,图片还强调了CXL在加速人工智能应用方面的潜力,以及开放的CXL设计对于推动行业创新的重要性。
最后,图片将主板上的CXL比作早期的PCI总线,暗示CXL将为下一代个人电脑带来革命性的变革和新的可能性。
为什么DDR5每个通道减少到一个模块?
与DDR4相比,DDR5每个通道减少到一个模块的主要原因是为了实现更高的速度和带宽,并维持信号的完整性。以下是更详细的解释:
延伸思考
这次分享的内容就到这里了,或许以下几个问题,能够启发你更多的思考,欢迎留言,说说你的想法~
原文标题:NVMe Over CXL is much more than just an SSD
Notice:Human's prompt, Datasets by Gemini-2.0-flash-thinking