傲腾内存和普通内存与闪存的区别在哪里?
五十多年之前,Intel凭借生产内存起家。在内存毛利率严重下降后,转投CPU设计和制造,并从此开启了五十年的传奇。历史往往是轮回的,就如胶水CPU从嫌弃到真香一样,Intel携3D XPoint技术重返内存领域,并将之作为今后发展的重点方向。在我们感叹"活久见"之前,如果我们仔细这些“相同”中的细节,就会发现技术创新已经让此内存和彼内存大不一样了。
前文我们对内存条形式的傲腾内存所依赖的LRDIMM技术做了简要介绍:
傲腾内存条看起来和一般的LRDIMM区别并不大:
但傲腾的技术底层3D XPoint看起来却十分让人振奋:
如果说它是DRAM和闪存的孩子,它真的集成了两者的优点。它有DRAM的 快 ,字节方式访问;它又有闪存的杀手锏: 大 ,非易失(掉电内容不消失)。它可以对DRAM说:“比你大,比你记忆好!”,转头又对闪存说:“比你快,比你聪明!”各种1000倍的提高简直亮瞎人眼,它是怎么做到的呢?我们今天就来比较一下三者实现方式的区别,并探讨3D XPoint为什么这么强。下篇文章介绍具体的软硬件栈和实测数据。
传统内存DRAM原理
内存DRAM的每个单元可以看作一个晶体管和一个电容的组合:
电容负责存储,充过电时是1,没充过电是0,这就是内存是如何存储数据的。晶体管是个开关,用于选中该电容。Word line被选中,晶体管导通,电容的就和bit line导通,可以读出0和1。正是因为内存每个单元如此简单,才能如此大规模组织起来,形成低价而密度很高的内存颗粒。
DRAM虽然相对SRAM每个单元很简单而便宜,但仍然需要大量的晶体管和电容,两者的异构加上电容的特性,让它很难大幅增长。实际上,它的容量增加远远赶不上摩尔定律。但它最小可以一次在64B的颗粒度上随机读取数据,因为64B是同时到达的,我们可以等同于按Bit随机访问数据,同时访问数据非常快,在几十ns到一百ns级别。
闪存NAND Flash原理
它的基本原理在1980年代之后基本就没有变化过。它的构成和场效应管(MOSFET)十分类似:
它由:源极(Source)、漏极(Drain)、浮动栅(Float Gate)和控制栅(Control Gate)组成。相对场效应管的单栅极结构,闪存是双栅极结构。浮动栅是由氮化物夹在二氧化硅材料(Insulator)之间构成。
它的原理我在这篇文章有详细介绍:
本质上它就是把一些电子囚禁(Trap)在浮动栅之中,从而改变源极和栅极的导通性,来区别0和1的状态(TLC)。这种“密室囚禁”让它具有非易失性。MOSFET管的简单让它可以大规模铺开,甚至可以向3D方向发展。但缺点也是明显的:源极和栅极的导通性测试耗时长;浮动栅的遂川效应让每个单元寿命短;写之前要擦除,且只能按块擦除,写时按Page写,让它性能较DRAM相差甚远,差了3到4个数量级(1000到10000倍)。
3D XPoint原理
DRAM和NAND本质上都是在电子上打主意,要不把电子充到电容上,要不捕获一些电子。毕竟是电子设备,也是应有之义。而3D XPoint却另辟蹊径,我们先来看一段视频:
3D XPoint
https://www.zhihu.com/video/1183804623852306432
听不懂英文没有关系,这个视频只是粗粗介绍一下原理。我们当然不能满足于此。我们来一起详细了解一下:
它和DRAM一样也有Word Line和Bit Line。横着的Word Line和纵向的Bit Line在空间上纵横交错,两者交叉的地点唯一确定一个单元,也就是 可以寻址一个Bit 。两组线在三维空间这种交错形式,也是它的名字的起源(3D XPoint读作 3D Cross Point,三维交叉点)。绿色的小块是一个存储单元,它可以有两种值:0和1。它上面的黄块叫做Selector(选择子)。
这种结构是可以在3D层面上很容易扩展的(Stackable),图中就有两层,可以叠更多层,而且比NAND Flash层叠性更好。它里面没有晶体管,这让它 容量可以很大很大,理论上单层密度至少是DRAM的4倍 。
3D XPoint非易失和高可靠的真正秘密在于绿色的内存单元和黄色的选择子。这个是Intel和美光的商业机密,业界开始普遍猜测是基于相变材料(PCM,Phase Change Material),也就是一种电激发的介于金属和非金属之间的材料。但Intel和美光都已经正式否认。尽管有些人坚持认为就是PCM [1] ,但似乎有点不太靠谱。官方宣传比较模糊,说0和1的改变是某种体制的变化(bulk property change),现在普遍的观点是采用某种电激发的化学变化材料,从而造成每个单元的电阻值(resistance level)发生了变化,通过测量不同的电阻值来确定0和1。而选择子则是阻止附近的单元发生漏电流而采用的通常做法,也是PCM技术已有的技术(这也是阴谋论的一个理由)。
电阻值的变化是长久的,所以傲腾内存有了非易失性;按Bit的访问让读取速度飞快,只比DRAM高一点(200ns~400ns);写的时候要改变单元的状态(bulk property change ),耗时稍长,但可以按Bit更改,比NAND按块擦(64KB)和Page写(16KB)那是一个天上一个地下。同时不需要任何垃圾收集技术(GC)。
结论
二十几年的蝙蝠衫似乎最近流行了起来,我翻出了古董衣服,却发现那时的蝙蝠衫和现在的比起来总觉得怪难看的。有人说普通内存+一块电池就可以解决的非易失内存为啥要搞什么傲腾,是不是过度发明?诚然NvDIMM有这种方案,但非易失只是一个痛点,容量的需求有时却更加重要。
Intel已经为了傲腾内存画下了蓝图:
它夹在DRAM和SSD中间存储温数据和热数据之间的数据(半热数据??(逃。那么它和既有系统是怎么集成的呢?它的实际表现如何呢?我们下节再讲。
欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。