内存系统:DRAM, DDR 与Memory Controller-之四
这一节打算回顾一下新式存储介质和新式存储方法
传统存储介质的不足
1. DRAM不是理想的内存
DRAM大家用得很开心,而且已经服务大家几十年了,好像一谈到内存,那就是DRAM了,DRAM已经成了内存的代名词,有时候大家甚至觉得我们有DRAM已经足够了。
这些都是普通消费者的想法,对于计算机科学的研究人员来说,DRAM并不一内存的理想选择。
说DRAM是易失性存储器,是说掉电后它里面存储的内容就丢掉了。其实这并没有什么,不关电不得掉了?对于台式电脑而言也许一直开着机太费电了,然后对于服务器/手机/平板而言不关电也不是什么大不了的。
但是DRAM还有一个更大的问题,那就是刷新,refresh。
DRAM并不是不关电内容就不会丢失。DRAM是用电容来存储数据的,电容就存在漏电的问题。如果你什么也不做的话,即使不关电,DRAM内存储的内容也会在几十毫秒到几百毫秒的时间内一点一点的丢失数据。也就是说不关电的情况下,DRAM里的内容也无法保存超过一秒。
目前解决这个问题的办法就刷新,简言之就是在数据还没有丢之间把它读出来,再重新写一遍。这个过程要耗电,更要耗DDR总线带宽。在内存容量不是那么大的情况下,也就是过去的几十年,这个问题不是很大,所以大家也没有动力在新式存储介质上花大量的时间和经历,当然研究还是有的,但投入不高。
随着内存容量越来越大,现在一个内存条已经达到32GB,后面上百上T并不是什么不可想象的事情,刷新的问题就越来越大。DDR总线带宽的问题可以通过自刷新来解决,就是说内存条里面集成一个控制器,来代替DDR控制器来发送刷新指令。但刷新带来的耗电问题却无法解决。现在而言,一个计算机系统中存储设备已经消耗了电力的三分之一,后面这个比例可能还会提升。
对于服务器而言,电就是钱,能省三分之一的电费谁不想省?
对于消费电子而言,电就是用户体验,如果能把这三分之一的耗电降下来,你的手机就又能多撑一天不用充电。
2. Nand Flash容量有点小
对于Storage而言,硬盘越来越被计算机抛弃,很快就会成为软盘一样的传说。
硬盘的速度慢,但容量现在做得越来越大,所以它的结局可能就是成为冷存储。对于数据中心来讲,它越来越少出现在计算节点上,而是SAN的重要组成部分。
对于女性消费者而言,好多人可能已经没有硬盘了。有情怀一点的可能也是在家搭一个NAS还用得着它。想来想去,阻碍它完全远离消费视线的唯一理由可能就是广大男士对“老师”的喜爱了。然而随着SSD越来越便宜,硬盘的消失是迟早的事。
SSD之所以不那么便宜,是因为它的容量不太容易做上去。首先,Nand Flash的结构是固定的,一个存储单元就占那么大的地方,你不能想通过优化结构来把它做小。提高工艺也是个办法,这个方法不太好用,一来把存储单元变得太小的话就容易损坏,二来工艺再小也架不住用于对容量的需求大,工艺一次提一倍也就不错了。
所以目前提高SSD容量的办法主要是两个,一个是MLC,一个是堆叠。
MLC就是一个存储单元存储多个位,就是把一个单元存储的电位原来划分为两个档位,分别认为是1和0,现在划分为8个档位,分别认为是0~7。
堆叠相当于几个芯片竖着叠放在一起,只不过这是在芯片内部做的。
新式存储介质的优越性质
目前正在研究的新式存储介质多数是面向成为内存而研究的。由于它们多数是非易失的,所以可能顺便也把存储的问题给解决了。
1. PCM相变存储器
相变存储器是目前的研究中最被大家看好,最有商用希望的一种存储介质。话是这么说,要说真正能商用要到什么时候?也许三年五年,也许五年十年,也许三五十年。。。
2012年刚进公司的时候就是研究这玩意,当时市面上已经有样片可用,甚至三星的一款手机已经用它来做存储设备了。所以当时感觉时间很紧迫,再不抓紧时间研究,部署一些专利可能这波计算机的小变革就被落下了。然而一转眼2018年了。。。。。。
PCM也叫PCRAM,即Phase Change Memory或Phase Change RAM,中文叫相变存储器。它的存储原理是:
相变硫属化物在由无定形相转向结晶相时会表现出可逆的相变现象。如图1,在无定形相,材料是高度无序的状态,不存在结晶体的网格结构。在此种状态下,材料具有高阻抗和高反射率。相反地,在结晶相,材料具有规律的晶体结构,具有低阻抗和低反射率。
就是说有一种材料,它可以在多晶态(polycrytalline state)和不定形态(amorphous state)之间可逆的来回转换,多晶态就电阻低,不定形态就电阻高,这就提供一个可以用来存储数据的可能性。我们对这个材料施加一个电压,如果有大电流,就说明是多晶态,如果没有大电流就表明是不定形态,它们分别可以用这种状态来表示0和1。
某种程度上来讲,nand flash和nor flash也是用类似的原理来存储数据的,但相对于nand和nor flash它都有优势。
相对于Nand flash来讲, Nand flash写入数据的时候需要先erase,然后再write。PCM不用直接就可以写入。
相对于Nor flash来讲,Nor flash可以直接写入,但它的写入速度慢,而且Nor flash的存储密度不行,无法做大容量。PCM可以直接写入,写入速度还快(与DRAM的写入速度有望达到同一量级),存储密度还高。
相对于DRAM,DRAM要刷新,PCM是非易失的,掉电都不丢失数据,当然不存在刷新的问题。DRAM写入从某种程度上来讲是一个read-modify-write的过程,它需要把一行数据读出来,把一行cell的内容清空,然后在row buffer中修改内容,然后再写入cell。PCM可以直接对某个位写0,写1。虽然现在来讲写入速度不如DRAM,但将来超过DRAM也说不定。
到现在为止,看起来PCM是一个超级好的东西,兼顾了DRAM和Flash的优势,可以把Memory和Storage统一替换掉。然而现在还有一些问题导致不它能商用:
- endurance,就是写入次数,内存的写入很频繁的,但PCM有写入次数的限制。写次数多了就坏掉了,直接做内存目然还不行。
- 容量问题,不能做内存做存储怎么样?残念的是,它做存储的话容量比不上Nand Flash。
所以目前来讲,虽然PCM是各方面特性都还不错,但也各方面都不是专家,所以被DRAM+Nand Flash组合碾压。
2. MRAM/STT-MRAM
现在提MRAM的话,基本都是在讲STT-MRAM了,即Spin Torque Magnetic RAM。中文叫自旋扭矩磁阻随机存储器。它的原理比较复杂,我就不做不准备的通俗解释了,有兴趣的可以看下百度百科:STT-MRAM_百度百科 或是wikipedia。下面的图是百度百科拿来的:
如果说PCM是想以一已之力挑战DRAM+Nand Flash组合,STT-MRAM则是想以一已之力挑战SRAM+DRAM组合。
已经讲过了DRAM的问题,SRAM也是有问题的,它最大的问题就是容量太难做大。现在好多CPU一半以上的面积都用来做SRAM了。以前讲Cache的时候曾讲过,SRAM还有一个问题是它的面积做的越大,速度就越慢。。。。
所以现在1级缓存几乎一直在256KB左右,2级缓存一般是几个MB,3级缓存顶多也就几十MB。要想拿SRAM做到几GB的容量几乎是不可能完成的任务。
如果SRAM能做到GB级别,或是DRAM能做得和SRAM一样快,我们就可以把三级缓存+DRAM的分层结构压成一层了。
STT-MRAM似乎给了人希望,它有以下优点:
- 速度快,可比SRAM
- 非易失(从而更节能)
- 集成度高,可以把容量做很大。
- 无限写入(反而写入次数可以很大就是了)
就像PCM没能干死DRAM+Nand Flash组合一样,STT-MRAM没有干死SRAM+DRAM组合也是有原因的:
- 集成度没那高,目前做几个GB仍然有困难。
- 不是真的无限写入,做SRAM的话真的可能被写坏。
- 写入速度替换一级缓存还是不难度
- 写入能耗有点高
目前我知道的最佳成绩:
容量:Everspin在搞的1Gb的内存颗粒。一条上搞16颗芯片的话,也就2GB。
写入次数:10的15次方(不太记得了,欢迎提供数据)。
写入速度:<20ns,但SRAM做一级缓存是<ns。
从目前的形势看,如果大家对内存的非易失性有要求但容量要求不是很高的话,很快就有可用的。
STT-MRAM参考资料:
DRAM最佳候补:自旋注入式MRAM步入实用阶段 - 存储技术 - 电子工程世界网
东芝提出只靠STT-MRAM进行运算和存储的计算架构_公司_元器件交易网
3. 其他新式存储介质
其他还有一些目前前景看起来没有那么美好,但说不定将来突然变美的新式存储介质和方法,比如说ReRAM, FeRAM等。这里由于一些比较懒的原因,就不简介了。