固态硬盘的数据到底存在哪里呢?我们来一探究竟!
上回说到,SSD主控主要有三大部分组成:与Host对接的界面(Host interface), 闪存转换层FTL以及闪存对接界面(Flash interface)。
再把SSD主控的架构图请上来展示一下:
先插播个预告哈,下一篇文章分享主控的核心部分闪存转换层FTL。由于闪存转换层FTL是NAND闪存总管,负责NAND闪存的衣食住行,所以请出大总管之前,先来欣赏一下NAND闪存的内在气质。目前主流NAND闪存都是采用浮栅技术(Floating Gate, 简称FG)。
学过数电,模电,半导体物理的你,是否还记得大明湖畔的MOS管吗?NAND闪存的基本单元就是多出一个浮栅的MOS管。
也许还有与MOS管素未谋面的你,没关系,你只要了解NAND闪存的浮栅FG就是存放我们写入的数据就足够了。
浮栅FG类似于一个“陷阱”,电子在控制栅(Controll Gate,简称CG)的召唤下从沟道欢快地奔向控制栅CG,不幸的是,半道杀出个程咬金-浮栅FG,电子就这样被困在浮栅了。
NAND闪存利用这个有点“残忍”的手段实现了领导-主控交给的任务-【数据写入】。
NAND闪存性本善,电子被困浮栅FG之后, 输送给基板(Subsrtate)20V左右的能量,让基板奋不顾身的把电子都浮栅中解救出来。
NAND闪存通过把电子从浮栅FG解救出来的过程也实现了领导-主控交给的另一个任务-【数据擦除】。
其实上面看到的浮栅FG结构只是NAND闪存中的最小单元(Cell),成千上万个这样的单元(Cell)组成的阵列(Array)是才是NAND闪存的真正模样。
了解NAND闪存阵列之前,先NAND闪存阵列的两个坐标轴:字线(Word Line,简称WL),位线(Bit Line, 简称BL)。
WL方向,连接着控制栅CG,
BL方向,连接着MOS管的漏(Drain),
明白WL和BL的含义之后,让我们检阅一下NAND闪存中Cell方阵-Array。
1. Cell沿着BL方向手拉手,排排站,构成了一个串(String),
上图中左边有一个String,由64个Cell组成,
2. 共享一组WLs的所有String称为是一个块(Block)。
上图中右边有两个Block,Block0由WL Group 0<63:0>组成,Block1由WL Group 2<63:0>组成,
3. 共享一根WL的Cell称为是一个页(Page)。
上图中右边有两个Page, Page0是由WL0与偶数BL交叉的Cell构成,Page1是由WL0与奇数BL交叉的Cell构成,
面对庞大的Cell阵营,管理起来实在伤脑筋,于是NAND闪存引入了逻辑页(Logical page)的管理概念。
有了逻辑页的概念,就需要把单纯的cell根据存储级别划分为SLC/MLC/TLC,
SLC Cell存储1个bit,SLC很单纯,很靠谱,很少犯错,所以SLC Page又被称为Strong Page;
MLC Cell存储2个bit,MLC包含有Lower page和Upper page;
TLC Cell存储3个bit, TLC包含有Lower page, Middle page和Upper page;
本文很简单的描述了一些NAND闪存相关的概念,后续会针对NAND闪存的读,写,擦除作详细介绍,敬请期待!
NAND Flash是如何生产出来的?
Hardy(晗狄) 架构师技术联盟
NAND Flash是一种非易失性随机访问存储介质,基于浮栅(Floating Gate)晶体管设计,通过浮栅来锁存电荷,电荷被储存在浮栅中,它们在无电源供应的情况下仍然可以保持。关于NAND Flash技术基本原理之前有过讲解,大家可以参考文章闪存技术最全面解析。今天主要讨论下NAND Flash生产过程、架构 和关键指标 。
NAND Flash是从原始的硅材料加工出来的,硅材料被加工成晶圆(Wafer) ,一片晶圆上可以做出几百颗NAND FLASH芯片。芯片未封装前的晶粒成为Die,它是从Wafer上用激光切割而成的小片,每个Die就是一个独立的功能芯片,它由无数个晶体管电路组成,但最终可被作为一个单位封装起来成为闪存颗粒芯片。下面是NAND Flash芯片的详细加工过程。
NAND Flash的容量结构从大到小可以分为Device、Target、LUN、Plane、Block、Page、Cell 。一个Device有若干个Die(或者叫LUN),每个Die有若干个Plane,每个Plane有若干个Block,每个Block有若干个Page,每个Page对应着一个Wordline。
Die/LUN是接收和执行FLASH命令的基本单元。不同的LUN可以同时接收和执行不同的命令。但在一个LUN当中,一次只能执行一个命令,不能对其中的某个Page写的同时又对其他Page进行读访问。下面详解介绍下这些结构单元和之间的联系。
Device就是指单片NAND Flash,对外提供Package封装的芯片,通常包含1个或多个Target;
Target拥有独立片选的单元,可以单独寻址,通常包含1或多个LUN;LUN也就是Die,能够独立封装的最新物理单元,通常包含多个plane。
Plane拥有独立的Page寄存器,通常LUN包含1K或2K个奇数Block或偶数Block;
Block是能够执行擦除操作的最小单元,通常由多个Page组成;Page是能够执行编程和读操作的最小单元,通常大小为4KB/8KB/16KB/32KB等。
Cell是Page中的最小操作擦写读单元,对应一个浮栅晶体管,可以存储1bit或多bit数据,主要可颗粒类型。
下图是一个FLASH Block的组织架构,每个Cell的漏极对应BL(Bitline) ,栅极对应WL(Wordline) ,源极都连在一起。每个Page对应着一个Wordline,通过Wordline加不同电压和不同时间长度进行各种操作。
一个WordLine对应着一个或若干个Page,对SLC来说一个WordLine对应一个Page;而对MLC来说则对应2个Page(Lower Page 和Upper Page);Page的大小与WordLine上存储单元(Cell)数量对应。
Data Retention(数据保存力) 是用于衡量写入NAND Flash的数据能够不失真保时间的可靠性指标,一般定义为在一定的温度条件下,数据在使用ECC纠错之后不失真保存在NAND Flash中的时间;影响Data Retention 最大的两个因素是擦写次数和存储温度。通常情况下企业级SSD盘的Data Retention都是遵循JEDEC的JESD218标准,即40℃室温下,100%的PE Cycle之后,在下电的情况Data Retention时间要求达到3个月。
NAND Flash写入前必须擦除, Block擦除1次后再写入1次称为1次PE Cycle ,Endurance (耐久性) 用于衡量NAND Flash的擦写寿命的可靠性指标;Endurance指的是在一定的测试条件下NAND Flash能够反复擦写数据的能力,即对应NAND Flash的PE (Program/Erase ) Cycle。
Bit Error Rate(BER) 指由于NAND Flash颗粒概率发生Bit位翻转导致的错误,其中,RBER (Raw Bit Error Rate) 指没有经过ECC纠错时出现一个Bit位发生错误的几率,RBER也是衡量NAND品质的一项指标。RBER是NAND自身品质的一个特性,随着PE次数的增加会变差,出错趋势呈指数分布,其主要原因是擦写造成了浮栅氧化层的磨损。
UBER(Uncorrectable Bit Error Rate) 指发生不可纠正ECC错误的几率,即一个纠错单元Codeword内发生bit位翻转的位数超出ECC算法可纠能力范围的几率。
DWPD(Diskful Writes Per Day) 指每日写入量。SSD的成本($/GB)随DWPD增加会变高,未来SSD的趋势预测读密集型当前已占50%,未来的占比会逐渐变大。
NAND Flash的寿命不等于SSD的寿命;SSD盘可以通过多种技术手段从整体上提升SSD的寿命,通过不同的技术手段,SSD盘的寿命可以比NAND Flash宣称寿命提升20%~2000%不等。
SSD的寿命不等于NAND Flash的寿命。NAND Flash的寿命主要通过P/E cycle来表征。SSD由多个Flash颗粒组成,通过盘片算法,可有效发挥颗粒寿命。影响SSD盘使用寿命关键因素主要包括下面因素。
每年写入数据量 ,和客户的业务场景强相关;
单个Flash颗粒寿命 , 不同颗粒的P/E Cycle不同
数据纠错算法 ,更强纠错能力延长颗粒可用寿命
磨损均衡算法 ,避免擦写不均衡导致擦写次数超过颗粒寿命
Over Provisioning占比 ,随着OP(预留空间)的增加SSD磁盘的寿命会得到提高。
作为闪存开发、设计和从业人员而言,必须与时俱进,紧跟新技术步伐。关于SSD、闪存、NVMe和SCM技术想做进一步了解,请参看“闪存技术、产品和发展趋势全面解析 ”资料,目录详情如下。
点击原文链接 即可查看最“闪存技术、产品和发展趋势全面解析”全面的闪存技术大餐。
>>>推荐阅读
从高性能计算(HPC)技术演变解析方案、生态和行业发展趋势
存储性能瓶颈的背后,这篇文章带来的参考价值
分布式、多活数据中心如何实现DNS域名解析和负载均衡
传统企业存储厮杀过后,昨天的战场留下什么值得回忆
相关问答
1+1在什么情况下等于零,<不要乱猜>[回答]1+1=?这是一个答案开放的题目.看单位,1个0+1个0=2个0=0,1个+1个=2个,1个+1对=3个,1对+1对=4个,1个季度+1年=5个季度,1个指头+1只手=6个指头,1天+1周...