查看原文
其他

持久性内存的未来:Optane的贡献和影响

常华Andy Andy730 2024-03-16
Source: Jim Handy, Persistent Memories: Without Optane, Where Would We Be?, March 23, 2023

如今,Intel宣布“停止”其Optane业务,许多人在业界认为Optane技术的兴衰只会留下一个故事。事实上,恰恰相反,Optane留给了整个行业一系列的技术遗产,这些技术将在未来很多年对计算机业界产生积极的影响。

本文基于作者Jim Handy和Tom Coughlin的演讲,指出了Optane在过去几年中为计算机架构带来的6个变化。该演讲题为《持久性内存:没有Optane,我们将处于何种状态?》,于2022年9月12日至15日的SNIA存储开发者大会(SDC)上发表,并由SNIA在在线视频中分享。

介绍

Optane是Intel的内存/存储创新,旨在填补DRAM主存和NAND闪存固态硬盘之间的内存层次结构空白。作为一项新技术,它需要技术人员解决他们以前从未遇到过的问题。我们可以确定Intel的Optane实验为计算机架构带来了6种新技术:
  • 新的编程范式
  • 添加处理器指令
  • 处理两种速度的内存
  • 管理可变的内存延迟
  • 大内存扩展
  • 处理持久性内存安全问题

Optane的编程范式

持久性内存使数据免受断电干扰,而无需进行缓慢的SSD或HDD I/O传输。长期运行的“检查点”系统和金融交易系统可以从这种方法中获得显著的益处,因为这些系统对于任何数据丢失,甚至在停电期间也是无法容忍的。

但是,持久性内存不能仅仅添加到服务器的内存总线上。它需要软件进行更多的修改以利用持久性内存。

持久性内存必须允许现成的软件在不同的环境中操作,具有不同数量的持久性内存。操作系统必须能够支持持久和易失性内存(DRAM)的统一寻址,以使相同的软件可以在许多可能的内存配置中工作。

为了解决这些问题,Intel与SNIA和其他机构合作开发了SNIA非易失性内存编程模型(如下图所示),以支持开发可以在各种环境中执行的应用软件。

该模型与标准操作系统之间的区别可以在波浪形红线处找到。

添加处理器指令

IA(Intel Architecture)指令集新增了两个利用持久性内存的指令,它们允许软件在断电前将脏缓存行刷新到持久性内存中。

以下是对缓存内存不太熟悉的人的解释。您可以在我的缓存内存设计书中找到更详细的解释。
缓存内存通过使CPU看起来像是在与主存储器通信,虽然它实际上是在与速度更快的缓存通信,来欺骗CPU。如果CPU将数据写入缓存,则缓存中的数据比主存储器中的数据更加实时,因此主存储器中的数据被称为“陈旧数据”。在断电时,缓存中的数据会丢失,只剩下主存储器中的陈旧数据。如果主存储器是DRAM,则该陈旧数据也会丢失,但如果它在持久性内存中,则剩下的只是陈旧数据。

自然地,重新启动系统时在持久性内存中具有实时数据会更好。这要求将缓存中的更新数据移动到持久性内存中,而这些新指令允许软件控制此过程。

使用这两个新指令,称为CLWB(Cache Line Write-Back,缓存行写回)和CLFlushOpt((Optimized Cache Line Flush, 优化的缓存行刷新),程序员可以命令更新的缓存行被写入持久性内存。因此,程序员始终知道哪些数据是持久性的,哪些数据可能没有持久,从而允许对数据的持久性进行非常紧密的控制。

在存在持久性内存之前,这样的指令是不必要的,因为写入持久性存储(SSD或HDD)非常缓慢。旧系统可以刷新整个缓存而不会明显影响SSD或HDD写入的性能。

处理两种速度的内存
Optane DIMMs 面临的一个新问题是由于3D XPoint Memory的速度造成的。3D XPoint内存读取的时间约为标准DRAM的3倍,写入的时间几乎是 DRAM 的10倍。虽然这比NAND闪存快得多,但内存总线并未设计成处理速度与DRAM不同的东西,尤其不是比读取慢的写入。
DDR DRAM总线设计为以统一速度运行。允许的唯一差异是所需的延迟周期数。DDR不能支持比读取慢的写入,也不能支持具有广泛不同延迟的两个存储器。

虽然整个总线可以缓慢运行以适应最慢的内存芯片上最慢的操作,但Intel开发了一种名为“DDR-T”的DDR4总线修改版,其中“T”表示总线是“事务性”的——即,CPU发出命令,Optane DIMM在稍后确认其完成。

DDR-T协议是Intel专有的。公司不需要发布规格,因为公司是发出DDR-T命令和DDR-T DIMM的处理器的唯一来源。除了公司下面显示的内容外,Intel并没有分享更多信息:

请注意,几乎所有相同的信号都传输到DDR4 DIMM和“Intel Optane DC Persistent Memory”模块——唯一的区别是最左边标有“Modified Control Signals”的紫色箭头。这些Modified Control Signals使用了一些未分配的引脚,这些引脚在JEDEC标准DDR4接口上没有分配。

通过这样做,Intel提醒了整个行业需要解决的问题,然后提供了一种解决方案。持久性内存可以直接附加到处理器作为DIMM(称为“Near Memory”),或者可以在可能位于服务器主板之外的大型池中进行管理(称为“Far Memory”)。Intel针对Far Memory的解决方案是CXL,而针对Near Memory的解决方案是DDR-T。但是,DDRT需要每次重新定义DDR接口时重新配置,从DDR4移动到DDR5,然后到DDR6以及更高版本。

IBM也已经确定了这个问题,该公司开发了OpenCAPI标准,其中包括在本文中解释的OMI内存接口。CXL最近与OpenCAPI合并,这表明OMI可能成为将任何速度的近存储器连接到处理器的行业标准方法。

管理可变内存延迟

在过去的50年中,计算机通过将系统分成两个通道来管理延迟,一个是内存通道,用于低延迟访问,另一个是I/O通道,用于其他所有内容。I/O使用中断和上下文切换,以允许处理器在等待慢速I/O时继续进行其他任务。处理器上下文切换非常耗时,因为处理器必须通过将程序计数器和各种内部寄存器推入堆栈来开始上下文切换,并通过弹出所有这些内容来结束上下文切换以恢复处理器的原始状态。上下文切换可能需要约100秒来完成所有这些操作,这大约比Optane的100纳秒延迟长了3个数量级。

下图是由SNIA提供的一个图表,它用对数垂直比例尺绘制了4种存储设备类型的大致延迟时间。图表的背景颜色显示了3个区域,以指示可以和不能容忍上下文切换惩罚的延迟时间。从1.0E+4到1.0E+9纳秒,上下文切换将对延迟时间添加很少的负担,不会被注意到,但在图表底部的绿色区域,大约在1.0E+2纳秒及更快的速度下,上下文切换会给事务的延迟时间增加巨大的负担。在这个更快的区域中,让CPU等待事务完成,通过轮询或循环直到事务完成更加合理。在中间的约1.0E+3纳秒附近,很难确定哪种方法更可取。

请注意,直到持久性内存被引入之前,所有形式的持久性存储都太慢了,以至于需要使用中断来管理,这将导致CPU上的上下文切换。Optane改变了这一切,使得轮询成为持久性内存的更好选择。中断结构将使Optane的延迟时间增加三个数量级,但由于Optane比DRAM慢得多,旧系统没有其他选择。

相反,Intel的工程师重新采用了一种被抛弃已久的技术——轮询。Intel使用轮询打开了设计师们的眼睛,让他们看到了一种处理I/O的方法,他们此前忽视了,这导致了高速的CXL通道,CXL.mem和CXL.cache的开发,这些通道旨在管理不基于上下文切换的较慢的内存访问。

大内存扩展

随着处理器速度的提高,内存通道时钟速率试图跟上,使其无法支持超过两个DIMM每个内存通道,因为额外的DIMM电容会要求通道的时钟速率降低。这限制了可以连接到处理器的内存大小。

由于处理器的核心数量不断增加,从来没有足够的内存带宽来支持,因此处理器设计者添加了更多的内存通道,但每个通道消耗更多的引脚和功耗,增加了芯片的面积和成本,同时剥夺了本应可用于处理器内核的电源。

Intel推出Optane的目的是通过创建一种新的方式来增加主存储器的容量,以支持那些需要比通常可用的DRAM DIMMs更大内存的服务器用户。为了促进这一努力,该公司将Optane的价格定为DRAM的一半。谁不喜欢以更少的钱获得更多的内存呢?

但是Optane需要DDR-T,以将Optane的功能添加到DDR4总线上。这对Intel来说是一个问题,因为行业的DDR5转型需要开发DDR-T的DDR5版本。此后,它还需要为DDR6和未来的DDR代数做同样的事情。

由于大容量内存已成为一个问题,许多公司开发了各种远程内存方案,包括CXL、OpenCAPI、GenZ和CCIX。所有这些方案都支持比标准DDR内存接口构建的更大内存池。对于Intel而言,使用这些接口之一意味着它不再需要为每个新一代DDR重新设计DDR-T。
这4个接口都有共同的目标,它们之间存在竞争关系。因此,它们逐渐合并为一个单一的标准CXL。通过CXL,一个处理器可以通过接口连接到非常大的内存,增加的延迟很小,特别是与标准I/O相比。

CXL规范相对较新,但发展速度很快。最近采用的CXL 3.0版本为多个主机共享内存空间的系统架构添加了支持。这使得非常大的消息可以以比通过共享存储传递它们更快的速度在处理器之间传递。

下面的方框图显示了CXL 3.0如何通过4个交换机将8个主机连接在一起,所有主机都通过2个内存池(右侧标有“MC”)进行共享。

这些配置自然主要用于超大规模计算系统,包括领先的互联网数据中心以及专门用于科学处理、天气预报、空气动力学等需要大量计算的大型计算机设施。

大内存池和共享内存的概念源于为Optane开发的模型,这促使设计师考虑如何扩展内存,而无需担心电容负载和引脚数的问题。系统架构师们认为,CXL支持的巨大内存容量将远远抵消交换接口的额外延迟。

解决持久性内存安全问题

安全专家们将注意力集中在存储数据的设备上,其中包括持久性内存、固态硬盘和机械硬盘。当这些设备由于故障或过时而从系统中移除时,它们可能仍然包含敏感数据,这些数据可能被他人恶意使用。DRAM从来没有这个问题,因为其内容在断电后会丢失。

固态硬盘和机械硬盘已经开发出了处理此问题的方法,数据可以通过以下方式销毁:
  • 物理破坏,粉碎或切碎设备。
  • 主机或固态硬盘/机械硬盘上的安全擦除软件。
  • 如果在主机上运行,它通常会将随机数据写入设备多次。
  • 由主机触发的内部设备擦除会导致设备重复擦除和覆盖每个轨道,直到断电。
  • AES加密,加密设备的内容。只有使用加密密钥才能解密数据,该密钥必须在主机和设备中保存。丢失任何一个密钥都会使数据变得不可读,而销毁密钥需要很少的时间,以便永久丢失设备的数据。
Intel的Optane DIMM使用最后一种方法,使设备成为第一个提供加密的DIMM。

Optane以独特的方式使用其AES加密:
  • 在“内存模式”中,Optane DIMM看起来只像一个非常大的DRAM,并且不为用户提供持久性。DIMM的驱动程序利用此功能,并明确在断电时丢失Optane的AES密钥。因此,Optane从停电状态下的随机内容中唤醒。
  • 在“应用直接模式”中,它提供了持久性,数据必须在断电后恢复。为此,Optane将加密密钥存储在模块本身上,主机可以使用密码访问该密钥。只有使用密码才能读取模块的内容。Optane DIMM通过支持内部覆盖机制来提供额外的安全性,该机制可以在命令下擦除和覆盖所有地址。

在未来的某个时候,持久性内存肯定会重新引入,并且由于支持Optane安全性的工作,安全问题已经得到解决。这将有助于加速新内存的采用。

总结

本文详细介绍了由于Intel引入Optane而开发出的6种支持技术,其中许多技术可能会成为未来计算的关键部分:
  • 一种新的编程范式
  • 添加处理器指令
  • 处理两种速度的内存
  • 管理可变内存延迟
  • 大内存扩展
  • 解决持久性内存安全问题
通过Optane,英特尔向整个行业提供了这6种新解决方案,否则这些都可能不会被开发出来。
继续滑动看下一个
向上滑动看下一个

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

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