最近(2021年一月份)因特尔宣布停产消费级傲腾产品。在老玩家眼里傲腾一直是最强 SSD 的存在,傲腾的 4K 性能可以说是一骑绝尘,但是傲腾的价格在 SSD 中也是一骑绝尘。所以因特尔砍掉消费级傲腾产品也并不意外。目前网上关于傲腾的讨论,也大多集中于 4K 性能如何如何强,3D XPoint 寿命长,没有写放大问题等等主要还是和现有 NAND flash 的 SSD 相比较,大多媒体也只是抛出了一大堆专用名词,但是从来没有解释过傲腾的 3D XPoint 是具体如何工作的。我在网上发现了一片文章较为完整的解释了傲腾以及 3D XPoint 的工作原理。

How 3D XPoint Phase-Change Memory Works - PC Perspective

我文中的内容也基本来自于这篇文章,为了避免生硬的翻译,我这里会掺杂很多自己的语言解释,感兴趣的可以去看原文。

Optane 的工作原理与 NAND Flash 有很大区别,NAND Flash 是基于 Floating-gate MOSFET 而 Optane 虽然因特尔没有官方资料说明但是根据国外机构用质谱法 测试的结果表明 Optane 是一种基于 PCM (相变化存储器) 原理的存储器,PCM 简单来说就是某种物质目前主要是一种或多种硫族化物的玻璃,经由加热可以改变它的状态,成为晶体或者非晶体,这些不同的状态具有相应的电阻值。

Untitled.png

这是一张因特尔 3D XPoint memory 的宣传图,注意其中存储 Memory Cell 和 Selector 结构,后面会提到

虽然因特尔并没有承认傲腾是基于 PCM 技术开发的,但是英特尔和美光合作研发基于 PCM 的存储器已经有很多年了,而且傲腾的种种特性也指向了它是基于 PCM 开发的事实。

Untitled%201.png

这是一张裸片(die)级别的 DRAM/PCM/NAND Flash 对比图(资料来源于这篇论文link

这篇论文来自于 2011 年现可能稍微有点过时,但是它给了我们裸片级别的量化的性能对比,可能看到 XPoint 相较于 NAND Flash 有近 1000 倍速度和 1000 倍的耐用性。当然裸片的性能并不能直接反映到实际的 SSD 上,因为有控制器的开销以及其他的种种因素。比如英特尔第一代使用傲腾技术的 SSD DC P4800X 实际性能如下:

Untitled%202.png

P4800X 的延迟大约在 10us 左右,是 NVMe SSD 的十倍

对比裸片的性能,有些人可能觉得实际性能表现不够好,但是这毕竟是第一代产品。我们现在常用的闪存也是经历了好几十年的发展的。

下面解释详细的技术细节

相变化存储器(PCM) 是如何工作的

想要了解 XPoint 结构是如何读取和写入数据的,首先要了解相变化物质是如何工作的以及什么这些物质为什么具有这些特性

Untitled%203.png

黄色的是类金属/蓝色框中的是氧族元素

相变材料一般是类金属的合金,类金属的外观多半类似金属,但只是弱的电导体。大部分类金属的物理特性及化学特性都介于金属和非金属之间。在室温下处于绝缘体状态经过加热或掺杂就变为导体。数年来人类已经对大量的类金属进行过实验。硼(B)主要用于掺杂,钋(P) 众所周知因为有放射性而且不稳定所以很少见到:). 硅(Si) 是很好的用于制作晶体管和其他半导体元件的材料但是不是很好的相变材料。剩下锗(Ge),砷(As),锑(Sb)和碲(Te)。它们的合金会生产硫族化物,在本文中指的是一种含有碲(Te)负离子的化合物(碲(Te)是氧族元素中唯一稳定的类金属)。当把这些元素进行适当的混合就能或得一些独特的属性:

Untitled%204.png

尤其是,类金属合金拥有多种稳定状态每一种稳定状态都有不同的电阻值。通过加热和冷却可以实现从不同状态之间的转变。非晶态属性类似于玻璃而结晶态类似于金属。

相变化存储器(PCM) 的读写

Untitled%205.png

当向相变材料上施加电压时,如果材料处于非晶体(Amorphous)的状态,在电压没有到达一个阈值前,会处于截止状态不会有电流通过,只有当电压超过一个阈值才会运行电流通过,一旦电流导通,随着电压的增加电流也会逐步增加。由于材料现在处于导电状态实际相当于一个电阻,因此会发热导致温度上升。当一直保持在 set(1) 的电压时,材料最终会达到约 350摄氏度的温度,虽然这个温度不足以导致融化,但是如果将温度维持约 100ns 则可以使分子重新排列成晶体(crystalline)结构。由于晶体(crystalline)结构也是稳定状态所以一旦形成即使去除电压后温度下降后也会得到保留。处于晶体(crystalline)状态的相变材料性质类似于普通电阻不存在非晶体(Amorphous)状态的电压阈值,当施加 0.5V 左右电压时就有约 0.5mA 的电流通过。

当要重置 reset(0) 到非晶体(Amorphous)状态时,只需要施加一个更大的电压,把温度提高到约 600摄氏度将材料加热到熔融状态。这会融化晶体(crystalline)结构。然后立刻移除电压让温度迅速下降,由于穿过晶体(crystalline)状态的温度区间速度过快所以无法形成任何晶体(crystalline)结构,重新冻结到非晶体(Amorphous)状态,重置完成。这时候如何施加 0.5V 左右的电压则不会有任何电流经过。其实我们不需要很高的电压去读取状态,大约在 0.1V 左右就能很明显的区分出状态。

可以注意到 PCM 不需要像 NAND Flash 一样在进行写入之前需要进行 erase 操作。可以直接通过施加不同的电压进行 set(1) 和 reset(0) 操作,完全不需要顾及之前的状态。NAND Flash 在写入前一般需要进行 KB 级别的 page 的 erase 操作有时候甚至是 MB 级别的 block 的 erase 操作,PCM 可以就地(in-place)写入以及单 bit 的覆盖。

相变材料成分

英特尔和美光不愿意公布自己家 XPoint 的详细技术,希望你相信组成 XPoint 的东西是某种非常神秘的东西,但是其实不是。常见的相变化合金是锗,锑和碲的混合物化学计量比为2:2:5 Ge2Sb2Te5,简称为“ GST”。跟大多是合金一样,配方实际可能有很多细微的变化,这是各个厂商的商业机密。

Untitled%206.png

PCM 的开发人员会通过对混合物比例的微调来提供材料的性能,比如从上面的图可以看到稍微提高锑(Sb)的浓度如何有助于降低复位电阻(降低所需的电压)以及减少设置操作所需的时间。

Untitled%207.png

也许你会以为相变材料是某种最近才出现的高科技材料,其实我们早早就用过了。可以刻录的光盘就合 XPoint 的材料非常接近,光盘使用银和铟代替了GST中的锗改变来合金的性能。空的光盘是晶体状体,通过对写入激光进行脉冲加热,这些斑点迅速冷却而没有机会重结晶,形成了较暗的区域,结晶状态和非晶体状态的反射率不同,通过反射率的不同来读取信息。擦除光盘的时候使用较低功率的激光,让光盘在合适的温度下重新形成结晶。

Selectors

我们拥有了可用的制作相变化存储器的材料之后,就需要将它做的尽可能的小并且尽可能的紧凑的排列起来。存储器寻址的方式一般是通过 Bit/Word lines 即行(rows)列(columns)的方式,简单来说控制电路通过选择指定的行列来选择存储单元,通过测量电流或电压的方式取回存储的数据。对于 NAND Flash 而言,每个存储单元实际上是电路的一部分。并且当前单元的电荷量控制了晶体管的导电率。

当切换到纯电阻类型的存储器时,为了获取尽可能高的存储密度。一般将行列线直接交错,然后存储单元连接行列线的交叉点。这种方式就叫做 crossbar ,XPoint 用的就是这一种技术,可以从最开始的因特尔的宣传图片上看出来:

Untitled%208.png

这种连接方式有一个很明显的问题,就是并联电阻的问题。当向指定的存储单元的 Bit/Word Line 施加电压时,比如上面的右图所示,我们只希望向 Rj 施加一个电压,希望电流只流过 Rj,但是实际可能存在多个平行的路径,比如蓝线所示的路径。这种平行的路径一般会有比较高的电阻值,因为必须通过多个串联的存储单元,但是当这种平行路径数量过多时会导致测量错误,而无法读取数据。

这个时候我们就需要通过 Selector,Selector 通过仅仅开启我们希望电流通过的路径的方式来避免并联电阻导致的问题。一般是晶体管,二极管或者其他开关元件。

Untitled%209.png

可能用于相变化存储器的 Selector 有这些类型,需要注意的是 Cell Size

大多数晶体管的方法的大小都过大了,抵消了 crossbar 这种方式带来的单位密度提升,由于需要做到比 NAND Flash 更高的密度,所以每一个存储单元一个晶体管的方案是不可行的。二极管也可以使用它更加的小巧,但是仍然是一个过于复杂的方案。还有一种简单的方式可以完全避免使用晶体管或者二极管甚至直接复用用来存储数据的相变材料,只用我们能能找这种材料。比如一种元件可以仅仅在施加了足够的电压时才降低电阻值,这样意味着只有被选点的存储单元才有电流流过,而其他并联路径因为存在多个单元串联的情况,电压没有达到阈值所以没有电流流过。

这个性质和处于非晶体状态当相变材料本身的性质很相似,不过还需要添加不同的材料才能让它作为可靠的开关使用。简单来说希望 Selector 元件能够拥有一致属性,我们不希望它像相变材料一样发生状态永久当转变非晶体→晶体。一般通过材料一般通过向材料中添加防止结晶当其他元素(例如砷)来实现。这样我们就或得了一种仅在电压超过阈值时才会导电当材料。

Untitled%2010.png

An Ovonic Threshold Switch (OTS). 每次当电压移除温度下降时,会重新回到非晶体状态,永远不会出现晶体状态,所以不可以用作存储器但是可以作为开关使用。

在 crossbar 布局中与没有 PCM 存储单元串联放置一个 OTS,则只有在施加足够电压使 OTS 导通后,我们才能访问 PCM 存储单元。由于平行的线路一般由多个串联的 OTS/PCM 对组成,因此只有所选单元的 OTS 才能看到足够的电压才能接通,平行线路中的 OTS 全部保持关闭状态不导电,从而可以以最小的干扰读取存储单元的数据。熟悉 NAND Flash 的人可能会知道 NAND Flash 存在一种被称之为读取干扰的现象,因为读取操作可能会略微改变相邻单元格的存储电荷。PCM 由于读取时产生的热量远低于转化为结晶体所需的热量,意味着读取时不会干扰任何的存储单元。

Scalability 扩展性

Untitled%2011.png

由于制作工艺的提升 NAND Flash 面临着很多问题,比如耐久度的下降等。但是对于 PCM 存储来说确实相反的,因为 GST 材料具有电阻性,而且必须加热与周围环境保持热绝缘,所以 PCM 的尺寸越小越好。事实上,这些年来阻碍PCM技术发展的主要因素之一是所需的编程电流过高而无法在高密度设备中使用。较小的单元将在较小的面积上转化为较低的电阻,这意味着加热较小空间所需的功率较少,因此对给定单元进行编程需要的电压和电流较低。从技术上讲,目前的制程还有很大的进步的空间。不过要在标准硅晶片上获得完美分割的GST层的工艺极其复杂。因特尔和美光目前已经实现了 20nm 的工艺。

Untitled%2012.png

根据TechInsights数据,XPoint 将 20nm节点用于字线和位线,单元尺寸为 0.00176 um2。上图的细线是两层堆叠的PCM单元。

XPoint 当前仅使用了两层,与位于 XPoint 阵列下方的控制电路相比,这些层显得非常的薄。这就留出了足够的空间来扩展更多的层,从而扩展提高单片的容量。当然,这种堆叠也有局限性,因为它们引入额外的平行路径,这些平行路径可能会干扰读取。虽然 OTS Selector 避免了这种情况,但是它们也并不是完美的开关,当平行路径的数量足够多时,任何会产生干扰。这意味着如果不研究出其他方式的话,堆叠的层数即单片容量将受到极大的限制。

总结

上面我们介绍了什么是相变化材料,相变化存储器(PCM)的读取过程,以及 Selector 可能的 实现方式,基本上了解清楚了 XPoint 的工作原理。不过目前因特尔并没有公开公布过傲腾相关的技术细节,这些资料也是研究机构对市面上的傲腾产品逆向之后给出的结论。不过总的来说 PCM 存储器相较于 NAND Flash 有着更多的优点,PCM 可能是未来最有可能代替 NAND Flash 的技术了。希望几年后 PCM 能有技术上的突破,能像现在 NAND Flash 一样的白菜价。