闪存物理结构

640?wx_fmt=png

    读者君知道,你一边吃着地铁口刚买的杂粮煎饼,一边啃读的这本书是ssdfans网站和微信公众号的几位作者倾力合著的,其中阿呆轮到的就是闪存这一章。有一个名人说过,书能传神,当你看书的时候,阿呆也闻到了杂粮煎饼那浓浓的葱香味儿。

闪存物理结构

闪存器件原理

    前文已经讲过了固态硬盘的发展史,曾经的固态硬盘有过RAM等介质,但是目前绝大多数固态硬盘都是以闪存芯片为存储介质的。DRAM固态硬盘我们见得少,主要应用于特殊的场合。1978年诞生的世界上第一块固态硬盘就是基于DRAM的。但由于DRAM掉电易失性,当然还有成本因素,现在的固态硬盘一般都不用DRAM,而是使用闪存作为存储介质,并且是NAND 闪存。固态硬盘的工作原理很多也都是基于闪存特性的。比如,闪存在写之前必须先擦除,不能覆盖写,于是固态硬盘才需要垃圾回收(Garbage Collection,或者叫 Recycle);闪存每个块(Block)擦写次数达到一定值,这个块要么变成坏块,要么存储在上面的数据不可靠,所以固态硬盘固件必须做磨损平衡,让数据平均写在所有块上,而不是盯着几个块拼命写(不然很快固态硬盘就报废了)。还有类似很多例子,固态硬盘内部很多算法都是在为闪存服务的。所以,欲攻固态硬盘,闪存首当其冲。

    闪存是一种非易失性存储器,也就是说,掉电了,数据也不会丢失。闪存基本存储单元 (Cell) 是一种类NMOS的双层浮栅 (Floating Gate) MOS管组成,如图3-1所示:

 

640?wx_fmt=png

               图3-1 浮栅晶体管结构

   在源极(Source)和漏极(Drain)之间电流单向传导的半导体上形成贮存电子的浮栅,浮栅上下被绝缘层所包围,存储在里面的电子不会因为掉电而消失,所以闪存是非易失存储器。

   写操作是在控制极加正电压,使电子通过绝缘层进入浮栅极。擦除操作正好相反,是在衬底加正电压,把电子从浮栅极中吸出来,如图3-2所示:

640?wx_fmt=png

图3-2 左:写原理;右:擦除原理

    在2014年的闪存峰会上,浮栅晶体管的发明人施敏(Dr.Simon Sze)被授予终身成就奖,以表彰他发明了浮栅极晶体管。据说,浮栅极晶体管的发明灵感是这样来的:有天,施敏和搭档Dawon Kahng在公司的食堂一起吃午餐,饭后甜点是奶酪蛋糕。看着夹心蛋糕,他们在想,如果在MOS场效应管中间加个东西,会怎样呢?于是,浮栅晶体管横空出世。截至2014年某个时间点,据统计,全世界生产的浮栅晶体管数目达1 074 344 929 692 350 000 000

     这个数字还在继续增长着。阿呆觉得终身成就奖不够,施敏应该获得诺贝尔奖,毕竟机械硬盘机理——巨磁阻效应的发现人已经获得了诺贝尔奖。

    获后,施敏在庆功宴上,为自己点了一份奶酪蛋糕。

 

SLC,MLC,TLC

一个存储单元存储1比特数据的闪存,我们叫它为SLC (Single Level Cell),2比特为MLC (Multiple Level Cell) ,3比特为TLC (Triple Level Cell)。现在已经有厂商在研发QLC,即一个存储单元存储4比特数据,本书不做介绍。

640?wx_fmt=png

图3-3 SLC,MLC,TLC原理

   对SLC来说,一个存储单元存储两种状态,浮栅极里面的电子多于某个参考值的时候,我们把它采样为0,否则,就判为1。

   图3-4是闪存芯片里面存储单元的阈值电压分布函数,横轴是阈值电压,纵轴是存储单元数量。其实在0或1的时候,并非所有的存储单元都是同样的阈值电压,而是以这个电压为中心的一个分布。读的时候采样电压值,落在1范围里面,就认为是1;落在0范围里面,就认为是是0。

   擦除之后,闪存读出来的值为1,充过电之后,就是0。所以,如果需要写1,就啥都不用干,写0,就需要充电到0。

640?wx_fmt=png

图1-4 SLC电压分布(来源:Inside NAND Flash Memory)

  对MLC来说,如果一个存储单元存储4个状态,那么它只能存储2比特的数据。通俗来说就是把浮栅极里面的电子个数进行一个划分,比如低于10个电子,判为0;11-20个电子,判为1;21-30,判为2;多于30个电子,判为3。

640?wx_fmt=png

图1-5 MLC电压分布(来源:Inside NAND Flash Memory)

依次类推TLC,若是一个存储单元有8个状态,那么它可以存储3比特的数据,它在MLC的基础上对浮栅极里面的电子数又进一步进行了划分。

640?wx_fmt=png

图1-6 TLC电压分布(来源:Inside NAND Flash Memory)

  同样面积的一个存储单元,SLC,MLC和TLC,分别可以存储1,2,3 比特的数据,所以在同样面积的DIE上,闪存容量依次变大。

    但同时,一个存储单元电子划分的越多,那么在写入的时候,控制进入浮栅极的电子个数就要越精细,所以写耗费的时间就越长;同样的,读的时候,需要尝试用不同的参考电压去读取,一定程度上加长读取时间。所以我们会看到在性能上,TLC不如MLC,MLC不如SLC。

 

下表所示是SLC,MLC和TLC在性能和寿命(Endurance)上的一个直观对比

(不同制程和不同厂家的闪存,参数不尽相同,数据仅供参考):

闪存类型

SLC

MLC

TLC

每单元比特数

1

2

3

擦写次数

~10万次

~5000次

~1000次

读时间

~25微秒

~50微秒

~75微秒

写时间

~300微秒

~600微秒

~900微秒

擦除时间

~1500微秒

~3000微秒

~4500微秒

 

 

3D TLC逐渐成为主流。同时,QLC也马上要量产了,每个存储单元存储4比特数据,比TLC还要慢,还要不可靠。之前怀疑TLC可靠性的人们,怎么看QLC?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值