摘要:静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)均已停止规模化发展:目前没有能降低其单位成本(每字节 / 每 GB)的技术路线。因此,内存现已成为系统成本的主要组成部分。本文主张从当前简单的内存层次结构向利用应用程序特定访问模式的专用内存架构进行
静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)均已停止规模化发展:目前没有能降低其单位成本(每字节 / 每 GB)的技术路线。因此,内存现已成为系统成本的主要组成部分。本文主张从当前简单的内存层次结构向利用应用程序特定访问模式的专用内存架构进行范式转变。我们设想的内存系统不再仅仅依赖传统的片外 DRAM 和片上 SRAM,而是配备额外类型的内存,通过非层次化优化,其性能权衡能使工作负载受益。
我们提出两种值得操作系统明确支持的新型内存类别:长期内存(LtRAM),针对具有长生命周期的读密集型数据进行优化;短期内存(StRAM),专为具有短生命周期的瞬态、频繁访问数据而设计。我们探究了可实现这些类别的底层设备技术,包括它们的演进以及在新兴工作负载需求下与当前系统设计的潜在集成方式。
我们确定了实现这一目标所面临的关键研究挑战 —— 我们认为这是朝着更高效、可扩展的计算系统发展的必要演进,此类系统能够满足未来的需求。
引言
几十年来,计算机系统性能的提升一直由摩尔定律推动的内存和计算能力的持续规模化发展所驱动。但对于内存而言,这种规模化发展已经终结 —— 两种主流内存技术(SRAM 和 DRAM)已遇到根本性的物理限制。这使得内存成为当前和未来计算系统在性能、功耗和成本方面的主要瓶颈。
这种规模化限制导致计算能力与内存能力之间出现严重脱节。尽管处理器和网络性能通过架构改进不断提升,但 SRAM 和 DRAM 的密度及成本却陷入停滞。这种脱节具有深远的经济影响:内存现已主导系统成本,其中 DRAM 占服务器硬件成本的 50% 以上 [34]。随着内存与计算能力的容量比下降,应用程序对内存的依赖程度日益加深。
内存密集型工作负载(尤其是人工智能领域)的兴起加剧了这一挑战。对更高带宽的需求催生了诸如高带宽内存(HBM)等创新,它采用先进封装技术,将多个 DRAM 接口放置在靠近计算元件的位置 [31],以实现更低的延迟和更高的能效 [33]。然而,仅靠此类封装改进无法解决规模化危机 —— 它们无法克服 SRAM 和 DRAM 技术的根本性规模化限制。
近期研究已开始探索一些内存技术,这些技术通过权衡诸如数据保留时间和耐久性等特性,来适配特定工作负载的内存访问模式和数据生命周期。例如,Managed Retention Memory(MRM)试图重新利用存储级内存,通过牺牲数据保留时间和写入性能,来提高耐久性并降低 I/O 能耗,从而更好地支持大型语言模型(LLM)推理等工作负载。同样,对于片上内存阵列,增益单元嵌入式 DRAM 通过类似的保留时间权衡,实现了类 DRAM 的密度和类 SRAM 的集成特性。
基于这些见解,我们主张从层次化内存架构向利用特定工作负载访问特性的专用内存架构进行根本性转变。我们不主张将众多异构设备技术直接暴露给系统软件,而是倡导为两类内存设备技术引入新的抽象概念:用于持久化、读密集型数据的长期内存(LtRAM),以及用于瞬态、写密集型工作负载的短期内存(StRAM)。这些抽象概念为系统优化提供了易于管理的接口,同时允许针对每类内存的性能需求定制多样化的底层实现。
本文有以下三个贡献:
提出 LtRAM 和 StRAM 作为新型内存类别,定义了现代工作负载所需的特定性能和生命周期特性。
探究了可实现 LtRAM 和 StRAM 的底层设备技术,并研究了它们与当前系统设计的集成方式。
确定了在单节点和分布式计算环境中实现 LtRAM 和 StRAM 潜力所必须解决的关键研究问题。
当今的内存:SRAM 与 DRAM
当今计算系统中典型的内存层次结构包括计算芯片上的 SRAM 缓存(L1、L2 等)、片外 DRAM 主内存,以及用于永久数据的 NAND 闪存或其他非易失性存储,如下表 1 所述。
静态随机存取存储器(SRAM)每个位由六个晶体管组成,运行速度快,在通电时能静态保持其状态,且易于与计算逻辑集成。这些特性使 SRAM 成为片上缓存和暂存存储器的默认选择。
动态随机存取存储器(DRAM)每个位由一个晶体管和一个电容器组成。电容器存储代表 0 或 1 的电荷,而晶体管控制对存储单元的访问。为了最大化密度,DRAM 电容器做得又窄又高,这使得与高性能逻辑集成变得不切实际。由于电荷泄漏,DRAM 单元的 retention(数据保留能力)有限,且会被读取操作干扰。因此,DRAM 子系统通过读取和重写单元内容来动态 “刷新”(例如,DDR5 每 32 毫秒刷新一次)。即使内存未被主动访问,这些周期性刷新也会消耗大量能量。
规模化发展的终结
SRAM 和 DRAM 都面临着同样的根本性挑战:它们已停止规模化发展。图 1(a)显示,过去 15 年中 DRAM 的成本趋势一直停滞不前。虽然更小的 DRAM 单元在技术上仍然可行,但电容器尺寸限制带来的制造困难阻碍了单位单元成本的降低 [4]。尽管 3D 堆叠可以在一定程度上延长密度规模化,但 HBM 的发展路线图表明,由于封装复杂性和成本限制,超过 20 层裸片后,密度增长将停止,这为 HBM 设备的容量设定了上限。
图 1:SRAM 和 DRAM 缩放
SRAM 也面临类似的限制。图 1(b)显示,自 7nm 工艺节点以来,SRAM 单元尺寸已停止显著缩小 [43]。这种停滞源于 SRAM 工作的基本物理原理 —— 在更小的工艺节点和更低的工作电压下,维持晶体管尺寸和阈值电压之间的微妙平衡变得越来越困难。
封装方案
当前解决 SRAM 和 DRAM 规模化限制的一种方法是在封装而非单元技术上进行创新。
SRAM 通常集成在计算芯片内部,但也可以通过 3D 堆叠来提高容量。DRAM 的封装方案则更多。DRAM 历史上采用双列直插内存模块(DIMMs)进行封装,以实现模块化。如今,DRAM 封装更注重低功耗和 / 或高带宽。LPDDR 实现了更低的功耗和更高的带宽(10Gbps / 引脚,而传统 DDR 为 5.6Gbps / 引脚),但必须焊接到电路板上,牺牲了 DDR DIMMs 的可重构性。HBM 通过多个裸片的 3D 堆叠(通过硅中介层连接)实现了更高的带宽。这种复杂的工艺需要先进的设备,降低了制造良率,使得 HBM 比 DDR DRAM 昂贵得多,同时也限制了容量,使得 TB 级的片上封装配置不切实际。
这些封装创新提供了不同的性能 / 成本权衡,但并未解决底层 SRAM 和 DRAM 单元技术的根本性规模化限制。
摆脱内存规模化困境
为了应对现有内存的规模化挑战,一系列具有根本不同规模化路线图的替代内存技术应运而生,包括增益单元嵌入式 DRAM [28]、铁电 RAM(FeRAM)、磁阻 RAM(MRAM)和阻变 RAM(RRAM)。每种技术在密度、耐久性、数据保留能力、读 / 写能耗、访问时间和片上集成能力方面都有不同的权衡,这使得它们适用于不同的应用,尽管它们不能直接替代 SRAM 或 DRAM。本节量化了它们的规模化优势,探讨了阻碍直接替代的限制,并说明了这些限制如何促使向专用内存系统转变。
相对于 SRAM 和 DRAM 的密度优势
许多新兴内存设备被设计得比 SRAM 或 DRAM 更密集,并且随着工艺节点的缩小,有可能保持这种优势。例如,增益单元嵌入式 DRAM 在相似工艺节点下,密度可以达到 SRAM 的 2-3 倍,同时由于其全晶体管结构,还允许片上集成。
更具体地说,RRAM 由于其简单的单元结构(由一个晶体管和一个电阻器组成,或者仅由一个电阻器组成),在更高密度下表现出比 DRAM 更低的读取能耗和延迟。图 2 展示了 RRAM 的规模化趋势,比较了 DRAM 和 HBM⁴与各种 RRAM 配置的面积密度,从 2D 平面 RRAM 单元 到具有 8 层和 64 层的 3D 堆叠 V-RRAM 架构。
图 2:DRAM 和 HBM 与 RRAM 的扩展趋势和潜力比较
图 2 表明,虽然平面 RRAM 单元的密度最高可达 DRAM 的 2 倍,但最显著的规模化优势来自 3D V-RRAM 架构,在相同工艺节点下,其密度可达最先进的 HBM4 的 10 倍。这些优势超越了当前节点:RRAM 可以继续向更小的工艺尺寸规模化,而 DRAM 在 11nm 以下将面临困难;此外,V-RRAM 架构最多可堆叠 64 层,而 HBM 的裸片限制为 16 层。
新兴内存技术的限制
尽管新兴内存技术具有显著的密度优势,但由于其固有单元特性的根本性权衡,它们不能直接替代 SRAM 或 DRAM。相反,这些技术表现出不对称的读 / 写性能,并在数据保留时间和写入耐久性之间进行明确的权衡。
例如,尽管 RRAM 具有优异的规模化潜力,但其有限的耐久性和高写入能耗使其无法用于频繁重写的瞬态数据。同样,增益单元 RAM 由于依赖晶体管的固有电容而非 SRAM 的数据保留反馈机制,需要定期刷新。
这些限制使得必须使数据访问模式与底层单元技术特性相匹配。需要考虑两个关键特性:第一,对于耐久性有限的内存,在设备预期使用寿命内的数据写入速率应与单元耐久性一致;第二,使单元的数据保留能力与数据的生命周期相匹配有助于降低能耗。这推动了内存专业化的发展,即内存系统可以由一组异构的内存设备阵列构建,每个阵列都针对特定的写入模式和数据生命周期进行优化,从而能够覆盖目标工作负载中所有的内存访问场景。
关于 LtRAM 和 StRAM 的提议
新兴内存技术的范围不断扩大,这给系统软件带来了重大挑战。特定设备特有的专用异构内存系统无法完全对软件栈保持透明。相反,操作系统、中间件和应用程序必须适应不同系统中具有不同特性的内存设备。此外,软件必须与当前和未来的内存设备保持兼容,而不必随着新专用技术的出现而不断更新。
我们提议通过将新兴设备分为仅两个新的内存类别来应对这种复杂性:短期内存(StRAM)和长期内存(LtRAM)。如表 1 所示,这些新增类别构成了一个五类内存系统,该系统保留了现有的 SRAM、DRAM 和 NAND 闪存(以及其他形式的非易失性存储),同时为新兴工作负载增加了针对性功能。这种方法不是管理众多单独的内存技术,而是为操作系统提供易于管理的抽象概念,以适应各种底层设备实现。尽管可以设想更精细的保留和访问特性连续体,但这两个类别涵盖了大多数新兴设备和工作负载的权衡,而不会造成过度细分。
表 1:五种类型的存储器。表中的“功耗”指的是该技术产生的持续漏电流,而“能量”指的是存储器单元进行有效读写操作的成本。静态功耗仅随时钟频率变化,而有效能量则随使用量变化。
表 1 中的 SRAM、DRAM 和 NAND 闪存已在当今的内存层次结构中确立了稳固地位。本节的其余部分将重点介绍另外两个内存类别 StRAM 和 LtRAM,它们是对现有技术的补充,用于服务特定的工作负载。
短期内存(StRAM:Short-term RAM)
短期内存(StRAM)是一类针对瞬态数据优化的内存,这类数据要么被频繁访问,要么被读取一次后就被丢弃,其数据生命周期短(亚秒级)且能耗低。它以具有对称读写性能和极高(或无限)耐久性但不一定具有高保留能力的内存技术为基础。StRAM 的主要用例利用了数据的瞬态特性,包括神经网络中的中间激活缓冲区、指针追踪,以及服务器应用中的临时数据结构(如先进先出队列和消息队列)。
StRAM 可以通过多种底层设备技术实现,其中增益单元嵌入式 DRAM 就是一个典型例子。根据设备特性和热约束,集成方式包括片上放置和近计算配置等。
长期内存(LtRAM:Long-term RAM)
长期内存(LtRAM)是一类针对具有长期数据生命周期(以分钟及以上为单位)的持久性、读密集型数据优化的内存,它建立在管理保留概念的基础上。与 StRAM 不同,LtRAM 将读取性能和能效置于写入特性之上,通过明确的权衡,接受更高的写入延迟和能耗以及更低的耐久性,以换取更优异的读取性能和保留特性。可作为 LtRAM 基础的示例技术包括非易失性存储器,如 RRAM、MRAM、FeRAM 以及管理保留 DRAM 变体。这些技术在读写不对称性、密度、耐久性和集成复杂性方面具有不同的权衡,可根据应用需求以片上、3D 堆叠封装或片外模块的形式部署。
LtRAM 的核心见解是,长数据生命周期和读密集型访问模式允许进行不适合通用内存的优化。主要应用包括机器学习推理中的模型权重、代码页、热门指令路径以及相对静态的数据页 —— 这些工作负载可以容忍更高的写入成本,以换取更低的读取能耗和更优的单位比特成本。这种专业化解决了当前系统中的根本性不匹配问题,即读密集型数据与频繁修改的数据争夺相同的资源。
专业化机遇
分析工作负载的内存访问模式对于识别专业化机遇至关重要,这在内存系统研究中已有先例。例如,MRM 项目研究了大型语言模型(LLM)推理中的访问模式,发现该工作负载主要是读密集型且需要高带宽的。这使得通用 DRAM 速度过慢,而 HBM 在写入性能和耐久性方面则显得配置过剩,因此作者提出将 MRM 作为一种针对 LLM 工作负载优化的专用内存类别⁵。各类应用的内存访问模式都存在类似的专业化机遇,这些机遇不仅限于 LLM 推理,还涵盖了现代计算系统的各个方面。
以下示例将说明如何通过观察特定应用的访问模式和数据生命周期,为基于 LtRAM 和 StRAM 分类的专用内存系统设计提供依据。
服务器工作负载
服务器应用呈现出多样化的内存访问模式,这些模式能从专用内存技术中获益。一个有趣的例子是内存数据存储,如 Redis 、Memcached 、Ray Plasma ,以及内容分发网络(CDNs)、域名系统(DNS)和其他典型的服务器工作负载。它们呈现出以读操作为主的工作负载特征,其数据生命周期会根据运行时选择的确切数据缓存和访问算法而变化 —— 我们预计,未来会有更多应用采用这种设计,以适应特定内存架构中 LtRAM 和 StRAM 的不同组合。
日志记录、遥测和事件缓冲系统具有写入一次、生命周期中低到中等的特点,数据经常被追加但很少被访问;StRAM 非常适合在这些数据最终归档到片外闪存或其他非易失性存储之前,存储这些工作负载的中间状态。
诸如 ElasticSearch和 Lucene 之类的搜索引擎会维护大型倒排索引,这些索引是读密集型的且生命周期长,而其查询处理会生成短生命周期的数据结构。无服务器计算平台会创建短暂的执行环境,其中代码和数据的生命周期极短,通常以秒为单位。数据库缓冲池呈现出复杂的访问模式:最近访问的页面保持 “热态”,数据生命周期较短;而其他页面则变为 “冷态”,数据生命周期较长。这为 StRAM、LtRAM、SRAM 和 DRAM 之间的异构内存管理创造了机遇。
代码页是另一个值得专业化处理的典型案例 —— 它们是读密集型的,且生命周期很长,但当前系统却将它们与频繁修改的应用数据存储在同一块 DRAM 中。将代码页存储在 LtRAM 中能够以更节能、更具成本效益的方式来存储这些页面。
机器学习工作负载
人工智能工作负载因其高度可预测和确定性的数据流,进一步推动了向内存专业化的转变。这些特性使得随机存取存储器的传统特性与应用需求不匹配。
在推理过程中,模型权重通常是不可变的,这会导致频繁的高带宽大块数据读取,对于大型语言模型而言尤其如此。如先前的研究 [24] 所指出的,传统 HBM 和 DRAM 在写入性能方面配置过剩,因此 LtRAM 可能会带来更高的效率,并为片上集成提供机遇。推理过程中的激活值和中间结果在计算后会立即被丢弃,因此更适合存储在 StRAM 中。
训练工作负载既包括对模型权重的大量读写访问,也包括对梯度和优化器状态的大量写入访问。训练过程中的激活数据具有特别显著的时间局部性 —— 在正向传播和反向传播过程中被频繁访问,在梯度计算完成后立即被丢弃。激活数据和梯度的短数据生命周期使它们成为 StRAM 的理想使用对象。
处理器内核内的内存访问模式
在处理器内核内部,内存访问模式与当前的技术配置也不匹配。大多数数据在基于 SRAM 的 L1/L2/L3 缓存中仅存在很短的时间,包括函数调用栈、局部临时变量、数学内核中的中间结果以及紧密的线程通信数据。对于这些短生命周期的数据对象,SRAM 的配置过于冗余,而 StRAM 足以满足需求,同时还能提供相似的性能特性,且可能具有更高的密度和更低的静态功耗。
系统设计挑战
LtRAM 和 StRAM 的引入从根本上打破了传统的内存系统设计,带来了跨越整个系统栈的新研究挑战。我们确定了几个必须解决的关键研究问题,以充分发挥专用内存系统的潜力。
后层次化内存的抽象
传统内存系统通过字节或块可寻址的扁平地址空间提供统一的抽象,向软件隐藏了设备的复杂性,整个内存地址空间被视为同构资源。这种方法虽然提供了简单的接口和编程模型,但无法利用新兴内存技术的专用特性,也无法适配促使 LtRAM 和 StRAM 产生的特定应用访问模式。
传统层次结构假设距离与性能相关:SRAM 离处理器最近、速度最快、成本最高;DRAM 和 NAND 闪存则依次距离更远、速度更慢、成本更低。我们提出的以专用内存设备为基础的内存类别打破了这种严格层次结构的假设,因此需要非层次化的优化来制定数据放置和访问策略。
例如,SRAM 和密度更高的 StRAM 的异构组合都可以集成在片上作为一级暂存存储器,数据的放置由应用需求决定 [44],而非由层次位置决定。同样,LtRAM 可能被放置在片外,但对于读密集型、长生命周期的数据,尽管带宽较低,仍可直接访问。
要应对这种 “后层次化内存” 的局面,需要向应用程序和系统软件暴露各个内存类别的特性。在相关研究中,NAND 闪存存储越来越多地暴露其内部组织,以实现更高效的访问 [2];而 GPU 架构为性能关键型库提供了显式的 SRAM 内存访问指令 [14]。这些例子表明,提供底层硬件控制可以带来显著的性能收益,尽管这会增加代码的复杂性。
关键的研究挑战在于:操作系统应如何向应用程序暴露保留特性、耐久性限制以及读写性能不对称性,同时又不影响可编程性?新的内存系统抽象必须在性能优化机遇和软件复杂性之间取得平衡。
数据放置策略
异构内存系统需要复杂的数据放置策略,以在不依赖层次假设的情况下确定何时以及在何处做出放置决策。
当前的内存管理以较粗的页面级粒度运行,无法捕捉到有利于内存专业化的细微模式 [27]。未来的系统需要对数据生命周期、读写速率和时间局部性模式进行细粒度分析 [25]。开发无显著开销的轻量级分析技术是一项关键的研究挑战。此外,如何传播分析得出的见解仍是一个悬而未决的问题。我们认为,编译器注释或指令元数据可能会为应用程序的内存访问模式和需求提供有用的提示。
放置决策的时机和权限因应用而异。数据库和机器学习框架等专用软件凭借其领域知识,在数据流程简单的情况下能够自主做出合理的放置决策;而通用应用程序则需要操作系统或硬件进行自动放置。这种多样性要求放置框架具有灵活性,既能支持显式的应用程序控制,又能实现透明的系统管理。然而,后层次化内存系统中的自动数据放置策略最终需要预测未来的访问模式,预测错误的后果不仅仅是传统的性能损失,因此稳健的放置算法对系统可靠性至关重要。
一致性与连贯性
通过打破传统的内存层次结构,专用内存类别给一致性和连贯性协议带来了新的挑战。缓存一致性通过基于失效的协议(当数据过期时通知缓存)或基于更新的协议(将新值直接传播到所有缓存)确保处理器之间的数据视图一致。另一方面,一致性协议确保不同处理器上的内存操作看起来是按照全局一致的顺序执行的,维持了顺序一致性的假象。这些协议先前的假设(即所有内存类型具有相似的访问延迟和读写成本)在异构内存系统中不再成立。
StRAM 有限的保留时间带来了新的连贯性复杂性。缓存控制器必须通过在保留期限到期前定期刷新缓存行或预先逐出缓存行来防止连贯性违规。或者,系统可能故意允许某些失效的 StRAM 缓存行过期,以一致性为代价减少刷新开销。
LtRAM 的不对称读写特性对现有机制构成了挑战。依赖频繁元数据更新的基于失效的协议在 LtRAM 的高写入成本下可能表现不佳,因此尽管基于更新的协议对带宽要求更高,但可能更高效。系统设计人员还可以将缓存行数据与连贯性元数据分离,将频繁更新的连贯性信息存储在速度更快的内存类型中,而将实际数据存储在读优化的 LtRAM 中。
跨多种内存技术的缓存组织必须处理不同内存设备的可变访问延迟,同时维持适当的顺序保证。这种异构性可能需要全新的方法,如内存类型之间的消息传递协议,以在不牺牲专业化收益的情况下保持一致性。
功耗 / 热感知集成
云计算的持续发展以及如今人工智能的兴起,导致数据中心的能耗和功率密度显著增加。如今,典型的基于 CPU 的计算和存储服务器需要约 20 kW 的功率 ,当前一代的 AI 机架功耗高达 120 kW,而下一代 AI 机架(预计于 2027 年末推出)的功耗将达到 600 kW 。如今,由于供电限制,运营商无法在现有设施中满负荷运行 AI 机架。越来越多的运营商开始转向现场发电,甚至考虑核能,同时改进数据中心内部的供电方式,以实现每机架 1 兆瓦以上的功率。因此,降低功耗正成为新系统的首要优化目标。
尽管计算部分在功耗方面通常受到最多关注,但如图 3 所示,内存在现代系统的总功耗中也占很大比例。内存通过静态泄漏、刷新操作以及片上和片外内存阵列的数据移动成本 [8],对系统总功耗做出了显著贡献。
图 3:仓库级计算机各组件的峰值功耗分布
内存专业化通过更好地使存储单元特性与工作负载需求相匹配,提供了巨大的功耗优化机遇。在内存单元层面,使数据生命周期尽可能接近单元级别的保留特性,可以通过最大限度地减少不必要的 SRAM 泄漏和 DRAM 刷新操作,大幅降低静态功耗。数据移动能耗通常主导着内存总功耗,且其随互连距离呈超线性增长。因此,任何内存专业化的尝试都必须考虑系统中互连和封装的能耗。对内存单元、互连、封装和数据分配进行协同优化至关重要。
功率密度的增加以及高密度内存阵列的紧密集成也意味着必须重视冷却问题,以确保硬件的有效和可靠运行。这可能需要研发和集成新技术(例如微流体技术 [12])来实现这一目标。
结论
随着内存规模化发展陷入停滞,内存在现代系统的成本、性能和功耗方面已成为主要瓶颈。本文主张向专用内存架构转变,引入 LtRAM 和 StRAM 作为抽象概念,以捕捉新兴技术的关键权衡。这些类别使系统软件能够利用特定工作负载的访问模式和数据生命周期,在不过度增加复杂性的情况下提高效率和可编程性。
为实现这一愿景,我们呼吁开展以下研究:细粒度工作负载分析、感知生命周期的数据放置和编译器优化、暴露异构内存特性的新接口,以及 LtRAM 和 StRAM 的高效硬件实现。材料科学家、器件物理学家、电路设计师、计算机架构师和系统研究人员之间的跨学科合作对于解决这些多方面的研究问题至关重要。
感谢本文作者:
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
来源:半导体行业观察一点号