设计工具
内存

内存湖:CXL™ 重新定义内存格局

美光可扩展内存系统寻路小组 | 2024 年 1 月

不断演变的数据需求

自计算机问世以来,从处理器高效输入和输出数据一直是一项挑战。先是高高摞起的打孔卡、磁带卷,然后是软盘驱动器,再然后是能够快速读取和存储大量(就当时而言)数据的旋转式硬盘。这些硬盘连接到单台计算机,如果用户想在多台计算机之间移动数据,那么“球鞋网络”(sneakernet) 和 FTP 是理想选择。但这些方法导致了同一文件存在许多副本,难以保持同步和管理。

在 20 世纪 80 年代中期,Sun Microsystems 公司一些睿智的工程师开发出了网络文件系统 (NFS),使多台计算机能够访问保存在单个位置的文件,从而解决了文件复制问题。起初,这个位置是另一台计算机;后来,它变成了网络附加存储 (NAS) 设备。

如今,数据集市数据仓库和数据孤岛已演变成数据湖,所谓“数据湖”,是指位于非易失性、块可寻址存储中的,可供各种用户出于各种目的通过网络访问的大量数据,如图 1 所示。

memory-lake-graph-2.png

随着数据集的大小从 MB 增至 TB,再到 PB,将数据从块存储设备通过互连移动到系统内存、执行计算,然后再将大型数据集存储回持久存储的成本越来越高,包括时间方面和功率(瓦特)方面的成本。此外,异构计算硬件对相同数据集的访问需求也日益增长。例如,虽然通用 CPU 可用于组装和预处理数据集及调度任务,但专用计算引擎(如 GPU)在 AI 模型训练方面的速度要快得多。我们需要一种更高效的解决方案,来缩短从存储将大型数据集直接传输到处理器可访问的内存的过程。

一些组织已通过将数据集保存在大型、字节可寻址、可共享的内存中,来推动业界解决这些问题。在 20 世纪 90 年代,可扩展一致性接口 (SCI) 允许多个 CPU 在系统内以一致的方式访问内存。异构系统架构 (HSA)1 规范允许在同一总线上不同类型的设备之间共享内存。从 2010 年开始的十年里,Gen-Z 标准提出了高带宽、低延迟的一致性内存语义总线协议。这些努力最终形成了目前广泛采用的 Compute Express Link (CXLTM) 标准。自 Compute Express Link (CXL) 联盟成立以来,美光一直是并且将来也会是积极的参与者。

CXL 共享的零复制内存

Compute Express Link 为节省时间和减少功耗开辟了新途径。新的 CXL 3.1 标准允许使用行业标准器件,通过低延迟、高带宽接口在不同主机之间共享 DRAM 等字节可寻址、负载存储可访问的内存。

借助这种共享,可以轻松实现此前只能使用昂贵专有设备才能实现的事情。通过共享内存系统,只需将数据加载到共享内存一次,然后整个工作流中的多台主机和加速器就可以多次处理这些数据,而不会产生将数据复制到本地内存所需的成本,也不会用到块存储协议和产生延迟。

此外,还可以避免一些网络数据传输。例如,连接到传感器阵列的主机可以逐渐摄取数据并将其存储到共享内存中。一旦数据进入内存,针对此目的优化的第二台主机就可以清理和预处理这些数据,然后由第三台主机处理这些数据。与此同时,第一台主机继续摄取第二个数据集。主机之间需要传递的唯一信息是指向数据、表明数据已准备好处理的消息。大型数据集本身无需移动或复制,从而节省了带宽、能源和内存空间。

零复制数据共享的另一个例子是生产者-使用者数据模式,在该模式下,单个主机负责在内存中收集数据,然后多个其他主机在数据写入后即可使用这些数据。和前面一样,生产者只需发送一条指向数据地址的消息,告诉其他主机数据已准备好处理即可。

增强内存功能

具有内置处理功能的 CXL 内存模块可进一步增强零复制数据共享。例如,如果 CXL 内存模块可完全在模块中对数据对象执行重复的数学运算或数据转换,则可节省系统带宽和减少功耗。这些节省是通过使用一种称为近内存计算 (NMC) 的功能命令内存模块执行操作来实现的,无需数据离开模块。

此外,可利用低延迟 CXL 结构以低成本在主机之间、主机和内存模块之间,以及内存模块之间非常快速地发送消息。这些连接可用于同步步骤,以及在生产者和使用者之间共享数据指针。

除 NMC 和通信优势外,还可将高级内存遥测技术添加到 CXL 模块中,从而为共享设备的实际应用程序流量提供新窗口,而不增加主机处理器的负担2。借助这些洞察,操作系统和管理软件可以优化数据放置(内存分层)和调整其他系统参数,满足从性能到能耗的运营目标。诸如事务等其他内存密集型增值功能也非常适合 NMC。

内存湖

美光很高兴能将大型、横向扩展的 CXL 全局共享内存和增强内存功能整合到我们的内存湖概念中。内存湖利用了 CXL 3.1 规范的新特性,并引入了本博客中讨论的功能,如图 2 所示。

memory-lake-graph-1.png;内存湖块状图

内存湖具有如下特性:

  • 高容量、低成本
    • 数百 TB 至 PB 的全局可寻址共享内存,允许对最大的数据集进行非分片访问
    • 内存分层,其中最关键的数据始终位于最快的内存层中,而成本和数据持久性通过将次关键数据保存在更具成本效益的内存层中来控制
    • 可配置拓扑
  • 通过共享提高性能
    • 数据共享,允许多达数十甚至数百个主机通过负载存储语义,在无需复制数据的情况下访问字节可寻址数据
  • 实现低延迟
    • 数据加载和存储时间低于 600 纳秒
    • 通过 CXL 结构进行同步(少于 1 微秒)
  • 近内存计算,加速性能
    • 数据永远不会离开内存模块的计算能力(近内存计算或内存内计算)
    • 支持原生内存模块,可执行原子操作
对 CXL 和共享内存而言,这是一个令人振奋的时刻。如果您目前正在测试 CXL,请加入我们的技术支持计划 (TEP) 以了解最新动态,或者关注我们以获取未来的更新。

1 异构系统架构基金会 (hsafoundation.org)

2 D. Boles、D. Waddington 和 D. A. Roberts,“CXL-Enabled Enhanced Memory Functions”

美光可扩展内存系统寻路小组
先进内存解决方案小组 (Advanced Memory Solutions Group) 主要负责新内存技术的研究、设计和测试。我们的专家团队与合作伙伴、客户、大学和标准机构密切合作,确保美光内存解决方案始终走在内存技术的前沿。