闪存物理结构

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

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

闪存物理结构

闪存器件原理

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

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

image

图3-1 浮栅晶体管结构

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

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

image

图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比特数据,本书不做介绍。

image

图3-3 SLC,MLC,TLC原理

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

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

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

image

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

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

image

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

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

image

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

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

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

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


查看更多内容,扫描下图二维码,阅读原著和以上大图。

_wechat_thumb2_thumb_thumb_thumb_thumb_thumb_thumb_thumb

分类目录 技术文章, 闪存 和标签 .
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。