查看原文
其他

CXL SSD:性能飞跃之路

常华Andy Andy730 2024-03-16

Source: Jim Handy, Understand how the CXL SSD can aid performance, 22 Mar 2023


近期的研究开发和模拟了利用CXL接口加速固态硬盘(SSD)。他们旨在通过接口提供一个比全DRAM池更便宜的大型持久内存池。


CXL SSD也是利用存储网络行业协会(SNIA) NVM编程模型(NVM Programming Model)的另一种选择,因为非易失性DIMM成本较高,而Intel正在逐步停止对Optane的支持。当CXL SSD与使用该模型的下一代程序搭配时,企业将会看到益处。这种新型存储技术应该会为未来的计算系统提供急需的提升。


CXL SSD在需要大量内存的应用程序中可能会变得流行。然而,可能不清楚为什么CXL SSD的性能会与NVMe SSD有所不同。


什么是基于CXL的固态硬盘?


CXL和PCIe之间的区别可能不太明显。在信号级别上,这两者确实是相同的,但两者的协议不同。CXL选择比PCIe更快的协议,尽管CXL.io支持标准的PCIe I/O设备。


CXL的开发是为了支持从服务器主板(远程内存)中脱离出来的大型内存池,以增加驻留在服务器主板(近端内存)上的内存。所有这些内存都映射到服务器的内存地址空间中,并在服务器处理器芯片的内存管理单元的管理下。


与PCIe不同,CXL需要管理一致性。任何内存地址的内容,无论是近端内存还是远程内存,都可能比处理器缓存中的该地址的副本更新。除非另一个处理器尝试读取该内存地址,否则这不是一个大问题。CXL的内存一致性方案被精细地规定,以确保旧数据永远不会出现在处理器中,如果其他处理器的缓存中存在更新版本,则始终会出现。


软件通过字节语义(byte semantics)访问CXL.mem或CXL.cache设备上的内存——软件将其视为服务器主板上的内存。如果固态硬盘是CXL设备,则还必须通过CXL.mem协议与软件和通信,就好像它是内存一样。


标准固态硬盘通过PCIe总线上的NVMe使用块语义进行通信。对于CXL标准,这种通信已变成了CXL.io。


CXL管理必然较慢的远程内存和近端内存之间的不同时间。CXL SSD将其推向了极致:驱动器可以选择像标准固态硬盘一样缓慢地运行,而CXL通道仍然使用内存语义(memory semantics)将数据传输到处理器。预计将看到CXL SSD拥有相对巨大的缓存,以最小化这种缓慢的操作。


Samsung:这就是正确的路径


Samsung是CXL接口SSD的支持者,该公司在2022年的Flash Memory Summit上展示了一种称为“内存语义SSD”(MS-SSD)的技术。


内存语义SSD的理论基础是,从软件角度来看,驱动器中的持久介质是通过内存字节语义而不是通常用于SSD的块语义访问的。


I/O语义(块语义)通过中断驱动系统运行,这或许是自上世纪80年代以来的惯例。当时,软件的I/O例程可以增加毫秒级的延迟,而不会被注意到。这是应对比处理器慢得多的I/O设备的好方法。


在21世纪初期,当SSD开始广泛使用时,SSD用户注意到I/O例程会减慢SSD的速度。对这个软件的新的关注提高了它的速度,但是由处理器中断管理的磁盘I/O的基本结构限制了改进的程度。


同时,DRAM总线必须尽可能地快,这在90年代已经变成了同步的,并且随着这一变化,总线被剥夺了任何暂停以等待慢速存储设备的能力。只有内存可以连接到内存通道。存储必须通过I/O通道。


当持久性内存出现时,软件成为一个问题。这在以下图中有形象的描述。


上下两个条形图中红色部分表示由软件的I/O堆栈造成的延迟。对于代表NVMe NAND闪存SSD的上方条形图来说,这是整体访问时间中可管理的一部分。在包括Intel Optane持久内存模块的下方条形图中,红色部分约占总延迟的一半。


50%的速度损失是无法接受的,这促使开发了更快的接口CXL。CXL以近似于内存速度运行,但不同于双数据率内存总线,它可以与不同速度的内存一起使用。


通过设计带有CXL接口的SSD,Samsung打开了将SSD用作内存的大门。因此,所有SNIA和各种软件公司为支持像Optane这样的持久内存所做的工作都可以用于廉价的基于NAND闪存的存储。SNIA NVM编程模型是软件使用以发挥Intel Optane持久内存功效的协议,现在还有了一个额外的用途:它将支持CXL接口上的NAND闪存SSD。


然而,由于NAND闪存速度较慢,Samsung的设计使用大型DRAM缓存尽可能多的SSD。Samsung在Flash Memory Summit上展示的2TB原型机配备了惊人的16GB内部DRAM缓存。这样大的缓存可能会成为CXL SSD的标准。


然而,这样的大缓存也会产生好处。在Samsung分享的基准测试中,该公司表示,相比现有的SSD,它能将随机读取性能提高约1900%。Samsung声称,MS-SSD可以作为服务器内存的2TB扩展呈现给主机。这个内存的平均延迟取决于SSD内部缓存的命中率。


这个SSD的全部2TB不需要都映射为内存。Samsung的设备可以分成内存区域和SSD区域,由CXL.mem或CXL.io服务,在Samsung称之为“双模式”操作中提供更多的灵活性。


持久性的可能性


Samsung的第一代原型不支持内存持久性。这需要一些工作,因为在停电期间需要保持整个16GB的DRAM存活,或者直到其全部内容都能够写入SSD的NAND闪存。这两种情况都需要大量储存的能量,可以是电池或超级电容器。公司的目标是在第二个原型中包括持久性内存操作,该原型原定于去年年底完成。


如果CXL SSD作为持久性内存被接受,存储管理员的工作将发展成与Intel Optane成为主流时相同。软件和硅供应商希望自动数据管理软件可以隐藏存储管理员的任何问题,但是会有数据安全方面的考虑,因为敏感数据可能存储在CXL SSD和映射到内存-存储层次结构较慢的传统SSD中。


其他CXL SSD的发展


Samsung不是唯一一个计划支持CXL接口的SSD的公司。Kioxia公开讨论了一种基于公司专有XL-Flash芯片设计的概念验证CXL SSD。XL-Flash是NAND闪存,专注于速度,可能是针对3D XPoint存储器的推出而设计的,这些存储器最初被一些公司视为标准NAND闪存SSD的威胁。Kioxia的CXL SSD设计侧重于64字节事务的速度,特别是64字节随机写入。


该公司解释说,它预计其设计的性能几乎与DRAM一样快,比Optane快。它支持的内存大小比近内存DRAM大两个数量级,比近内存Optane持久性内存DIMM大10倍。Kioxia的设计使用了一个大型预取缓冲区,但与Samsung的设计不同之处在于添加了硬件压缩以帮助提高速度。数据较小,SSD需要的带宽较少,可以加速写入。该公司的目标是在本季度推出其CXL SSD仿真器。


此外,韩国科学技术高等研究院的计算机架构和存储系统实验室(CAMEL)与RISC-V和OpenExpress合作,正在模拟CXL SSD的运行,以更好地了解它可能提供的性能优势。它编程一个仿真器来模拟基于Samsung超快速Z-NAND芯片的32GB SSD的操作——与Kioxia XL-Flash有些类似——并将其操作与具有大型DRAM的系统进行比较。


性能高度依赖于SSD中数据的局部性;这是很自然的,因为高局部性意味着大多数SSD访问会命中SSD的DRAM缓存,而不是它的NAND闪存。对于高局部性,CXL SSD提供的数据仅比CPU的本地DRAM的延迟高2.4倍。然而,在局部性较低的情况下,CXL SSD的延迟是DRAM的84倍。显然,CXL SSD为数据集高度局部化的应用程序带来了更多的性能。


CAMEL还发现,在高局部性应用程序中,NVMe SSD的延迟是CXL SSD的129倍。然而,在局部性较低的应用程序中,其延迟仅比CXL SSD高约50%。


这种局部性敏感性反映了Samsung的发现,其CXL SSD在缓存命中期间以大约2000万IOPS的速度运行,具有次微秒级的延迟,对于128字节的随机读取。

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存