从NMOS 和 PCM 底层存储单元 来看NAND和3D XPoint的本质区别

本文深入探讨了NAND闪存的存储单元结构,包括浮栅晶体管的工作原理,写入/擦除过程以及其寿命限制。接着介绍了3DXPoint相变内存,通过PCM技术实现非易失性存储,其写入过程无需预先擦除,具有更长的寿命。两者对比显示3DXPoint在性能和寿命上有显著优势。
摘要由CSDN通过智能技术生成


前言

近期在小组内分享了一篇新硬件(Optane PMEM)和LSM 相结合的论文,在前期准备过程中特地研究了一番NAND和PMEM底层bit 存储单元之间的差异,希望能够在分享过程中让听众从底层存储单元的角度对上层存储介质的性能有一个更加直观得了解。

准备的过程中发现了一个更加庞大的知识领域,这个领域涉及到了:理学中的物理学,工学中的:材料学,电气学,计算机科学。每一个分支学科里都有非常庞大的专业知识,最终形成了一个个我们开发者可见的存储介质。数十亿的存储单元(类似于晶体管,通电后能够形成两种稳态,分别代表0和1)分布在数平方厘米的地方,而且拥有高性能/低延时/高可靠性的存储特质。这样的工艺,结合了以上学科中很多科学家的很多年的探索试错,最终形成了像Intel,三星,希捷,西部数据等 能够垄断存储介质的大厂,不得不说人家强,毕竟这一些技术大量人力和时间投入不共享的话没有办法段时间达到并超越。

而像PMEM 这样的持久内存的出现(实测,性能和内存是处于一个量级),更是让Intel 在存储硬件领域的地位不可动摇。

以上都是探索过程中的一些感慨,毕竟了解的越多,越发现自己的无知,还是回到已知的东西上吧。。。。。。

接下来将从存储介质更底层的存储单元看看NMOS和PCM 的区别,以及他们是如何 体现到上层各自的存储特性中的。

本节不讨论HDD,我们还是得顺应时代,方可生存。当然,机械硬盘还是比较简单的,想要了解的同学可以参考:

HDD 工作原理

当然NAND演进肯定是从内存DRAM这样的易失性晶体管演进而来的,因为内存的易失性(下电之后无法保存之前的稳态),所以存储介质既想要更快,快过机械硬盘;有想要非易失,不想要内存的存储介质,那新的存储介质必然是研究材料科学家研究的一个重要方向。

NAND – 类NMOS浮栅晶体管

上图是我们 传统的SATA 系统总线的NAND ssd

上图是走PCIe系统总线的SSD。

存储单元

他们的底层都是使用 NAND flash 作为存储介质。
特点:非易失,高性能(相比于传统HDD而言),寿命有限;其底层的存储单元是一种类NMOS的浮栅晶体管

这里我们统一叫做浮栅晶体管,大体形态如下:

其中有四个极:源极,漏极,栅极,基极。源极和漏极使用做导电的,电流在两极之间单向传递形成存储电子的浮栅,浮栅上下被绝缘层(图中黄色部分的氧化层,一般使用二氧化硅来做的)包围,所以提现到上层的NAND存储介质就是非易失性,即使设备掉电,有氧化层的存在,浮栅极中的电子也不会轻易丢失。而栅极和基极 用做形成MOS场效应的,完成我们想要的写/擦除操作。

几个不同组件以及其材质从下往上分别为:

  • 衬底 ,可以导电,一般是多晶Si,为浮栅层提供电子
  • 隧道氧化层,绝缘层,一般是SiO2
  • 浮栅层,电子能够在该层移动,下电之后电子能够大量保存在该层,这一层也是MOS场效应的核心。能够让电子通过的材质一般是金属,但是金属中存在的一些杂质离子(Na+,K+,Li+)会对栅极和基极的电压判断有影响,从而影响到0/1的判断,所以这里材质的普遍选择是多晶硅。
  • 浮栅层之上同样是一个氧化层,也是为了存储设备下电之后浮栅层的电子流失。
  • 控制栅极,也是多晶硅,同样为浮栅层低筒电子。材料的选择也是为了避免过多的杂质离子,对最终的结果判断有影响。

写/擦除

我们知道NAND底层在写入前需要先做一次擦除,接下来从浮栅晶体管的角度看一下NAND的写之前为什么需要擦除。

  • 写入

    写的过程是在控制栅极加上正电压,将衬底中多晶硅的电子从隧道氧化层吸入到浮栅极,这一些电子又因为浮栅极之上的氧化层很难通过,大部分会保存在浮栅层之中。最终形成稳态,也就是通过预估这个时候浮栅极内部的电子数目,从而表示相应的bit位。

  • 擦除

    和写入刚好是相反的过程,在基极加上正电压,浮栅极中的电子吸出。

通过这两个过程,可以很明显看到,写入之前的擦除是十分有必要的,为了保证数据的可靠性,写入之前需要将浮栅极多余的电子尽可能得吸出,从而能够在一个较为稳定的电压下保证里面的电子维持在可以表示0/1的数量上。防止未擦除之前的写入,会收到浮栅极中的电子数量的影响。

最终的0/1可以通过电压和浮栅极中电子的数量来表示。

随着持续的写入和擦除,氧化层会被不断得消耗,当氧化层最终变成一个很薄的层之后浮栅极中的电子数量就不能通过指定的电压精确控制。可能会出现我们硬件常见的静默错误(bit位反转,坏块等)。所以,每一个存储单元的擦写次数是有限制的(硬件厂商会给出),超过这个限制可能会出出现内部的一些错误。当然,NAND的软件层面肯定不会漠视这种现象,FTL算法会尽可能得进行磨损均衡,不会出现针对一个存储单元短时间内大量的擦写,而其他的存储单元很空闲这样的情况。

当然我们上面所说的是SLC(sigle-level cell),也就是一个存储单元表示两种状态。而市面上也有MLC(Multi-level cell),也就是一个存储单元能够表示四种状态,这样就需要对电压和内部的电子数量有一个更加精细的控制,能够提供更大的存储容量的同时寿命也会进一步降低。

ps:
上面描述的擦写过程只是存储单元层面的,更上层的存储介质 在NAND ssd中是以block为单位的,一般一个Block是4K,也就擦写过程是对整个Block 4096*8 个存储单元同时增加正向/反向电压的。

NAND总结

通过对存储单元的介质,存储单元的擦写过程的描述,我们知道了NAND 的非易失性,写之前需要擦除 以及 NAND寿命问题的源头。
当然,这距离NAND的真正实现还有很远的距离,更高层的存储单元的组织(从LUN/DIE,到plane,到Block,到Page, 到worldline/bitline),NAND软件层的逻辑(FTL算法,磨损均衡,GC),已经总线协议(SATA,PCIe)还有很长一段路需要走。因为有这一些学科引入的复杂度,所以核心更难获取。

3D XPoint – PCM 相变内存

随着相关学科的进步,理学中的物理学,工学中的:材料学,电气学,计算机科学。利用MOS场效应的浮栅晶体管 每次写入需要擦除,这个过程拖慢了SSD的性能(相对不断成熟MOS工艺而言)。进击的科学家们不能忍,千亿级别的存储单元 组织起来还不能一次完成写,还有寿命问题,想要提升竞争力,这一些痛点一定需要解决。

科学家们追求极致,资本家们追求利益。

于是相变内存的介质应运而生,需要拥有NAND的非易失性之外,性能能够大幅提升(写之前擦除必然不能有,寿命问题也得有一个大的里程碑)。

接下来简单介绍一下通过相关论文了解的细节。

毕竟非专业人员,过程有一些错误的地方还请直接批评指正。

存储单元

如上图,一个PCM ,也就是3D XPoint的存储单元,同样它最基本的功能是提供两个稳态,能够分别表示0/1。
大体的底层实现是利用晶体的无定形态(原子的无序排列) 向 晶态变化(原子有序排列),这个过程叫做相变。主要材料如下:

  • 底触点 ,能够导电,用来加正向电压
  • 加热电阻,电阻的大小是根据末端晶体GST的形态,如果原子有序即处于稳定的晶态,那导电性能肯定好,相应的电阻就小。相反,电阻大的话末端晶态还处于无定形态,原子排序无序。
  • 晶体GST, 核心器件。晶体,拥有自己的熔点,在不同温度下会在无定形态和稳态之间变化。通过测量电阻底触点和 顶触点之间的电阻大小,即能够知道是否处于一个稳态,从而表示对应的0/1。
  • 顶触点,能够导电。

稳态表示

GST晶体会随着温度的变化而改变自己内部的原子排序方式(物理反应,并没有生成新的物质),即使下电,该状态并不会发生变化,也就非易失性的体现。

晶体状态随着温度的变化过程如下:

其中纵坐标是温度,横坐标是相变的程度,即

中间PCM的相变完成,其温度可以看到是在Tmelt之下,而在Tmelt之上,晶体处于无定形态。
这个温度的变化是因为PCM通电之后电流从底触点到顶触点,通过加热电阻,因为GST是无定形态,导电能力弱,电阻自然就高,此时产生的热量达到一定阈值会将无定形态相变为晶态。

相应的电阻情况如下:

可以看到,我们想要的稳态非常清晰,在Tmelt 之下的电阻和Tmelt之上的电阻差异还比较大。也就是我们最后通过电阻反馈出来的底触点和顶触点之间的电压能够非常清晰得表示 0/1。即使下电,晶体的对应状态也能一直保存,上电之后只需要测量电压即可。

只是这里因为是通过温度控制的底层相变过程,那大量的PCM元器件产生的热量该如何处理呢(选择的晶体材质的熔点一定是需要严格测试,而且3D XPoint 应该还需要有良好的散热能力),更多的细节只能以后有时间探索了。

3D XPoint总结

非易失;写入之前不需要擦除,只需要通电让晶体状体受热变化;晶体材质的消耗大大降低,仅仅是物理状态的相变,寿命大大增加。

下面会有一个整体的对比。

相变内存和浮栅晶体管对比

在这里插入图片描述

图中软件复杂性的差异主要是由于NAND 写之前擦除引入的磨损均衡 带来的。
写带宽和读延迟 是底层存储单元的性能,并非介质层面的性能差异。

从性能/寿命来看,3D XPoint 已经比NAND 超出太多了,下图是实测的NVM PMEM性能
CPU:Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz 56core
内存: 256G
硬盘:pmem 128G*4 aep
操作系统:CentOS Linux release 7.4.1708 (Core)
文件系统:XFS(rw,noatime,attr2,dax,inode64,noquota)
测试软件:FIO

fio脚本:

[global]
ioengine=libpmem
direct=1
norandommap=1
randrepeat=0
runtime=60
time_based
size=1G
directory=./fio
group_reporting
[read256B-rand]
bs=256B
rw=randread
numjobs=32
iodepth=4
cpus_allowed=0-15,16-31

感兴趣的同学可以实际测试一波。

而且PMEM提供了128G/256G/512G 的容量选择,且其是插在内存的DIMM之上的,可以多个一起绑定。

除了协议层的优化之外,可以看到其性能已经和内存是一个量级了(内存的访问是100ns, 内存的带宽是百G 级别),资本家们的目的还是达到了,科学家们也满意了。

我们更高层的操作系统之上的软件开发者们也得跟着变化,用更低的TCO来弥补硬件层成本的增加(3台PMEM的机器代替10台SSD的机器,且能够提供更高的吞吐,更低的延时,更久的寿命),公司何乐而不为。

参考文献

1. Phase_Change_Memory_Technology
2. An overview of phase-change memory device physics
3. Phase-change memory

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值