[转]谈NAND Flash的底层结构和解析

这里我想以一个纯玩家的角度来谈谈关于NAND Flash的底层结构和解析,可能会有错误的地方,若是有这方面专家强烈欢迎指正。


NAND Flash做为一种比较实用的固态硬盘存储介质,有本身的一些物理特性,须要有基本的管理技术才能使用,对设计者来讲,挑战主要在下面几点:

1.须要先擦除才能写入。
2.损耗机制,有耐久度限制。
3.读写时候形成的干扰会形成数据出错。
4.数据的保存期。
5.对初始和运行时候的坏块管理。

只有至少知足这些基本的管理技术,才能让NAND Flash成为一款可使用的固态存储介质。(这里尚未谈到任何关于性能的地方,由于那是这些基本条件知足后的事。)

当知足了上面的5点后,才该谈到稳定,性能,耐久度,影响这些的5大因素为:

1.SLC和MLC
2.平衡磨损算法
3.透过坏块管理技术确保数据的完整性。
4.使用错误检测和校订技术
5.写入放大


只有知足了这些条件,才能获得一款理想中的完美的固态硬盘。



-----------------------------------------------------------------------


Flash全名叫作Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非易失性/易失性,从名字中就能够看出,非易失性就是不容易丢失,数据存储在这类设备中,即便断电了,也不会丢失,这类设备,除了Flash,还有其余比较常见的如硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,好比你们经常使用的内存,不管是之前的SDRAM,DDR SDRAM,仍是如今的DDR2,DDR3等,都是断电后,数据就没了。

Flash的内部存储是金属-氧化层-半导体-场效晶体管(MOSFET),里面有个悬浮门(Floating Gate),是真正存储数据的单元。

1.jpg 算法

 



数据在Flash内存单元中是以电荷(electrical charge) 形式存储的。存储电荷的多少,取决于图中的控制门(Control gate)所被施加的电压,其控制了是向存储单元中冲入电荷仍是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth 来表示。

1.对于NAND Flash的写入(编程),就是控制Control Gate去充电(对Control Gate加压),使得悬浮门存储的电荷够多,超过阈值Vth,就表示0。

2.对于NAND Flash的擦除(Erase),就是对悬浮门放电,低于阀值Vth,就表示1。


NAND Flash的架构:

2.jpg 编程

 




如上图所示,这是一个8Gb 50nm的SLC颗粒内部架构。

每一个page有33,792个单元,每一个单元表明1bit(SLC),因此每一个page就是4096Byte + 128Byte(SA)。
每一个Block有64个page组成,因此每一个Block容量为262,114Byte + 8192Byte (SA)

page是NAND Flash上最小的读/写单位(一个page上的单元共享一根字符线Word line),块是最小的擦除单位(。不一样厂牌不一样型号颗粒有不一样的page和block大小。

下图是个8Gb 50nm的SLC颗粒。

3.jpg 架构

 




4KB的页尺寸,256KB的块尺寸。图中4096字节用于存储数据,另外128字节用来作管理和ECC用。


SLC 和 MLC 区别:

SLC主要针对军工,企业级应用,有着高速写入,低出错率,长耐久度特性。
MLC主要针对消费级应用,有着2倍容量于SLC,低成本,适合USB闪盘,手机,数码相机等储存卡。现在也被用于消费级固态硬盘上。

4.jpg 性能

 




由上图能够看到,MLC和SLC虽然使用相同的电压值,可是电压之间的阀值被分红了4份,直接影响了性能和稳定性。主要有下面几点:

1.相邻的存储电荷的悬浮门间会互相干扰,形成悬浮门里的电荷不稳定出现bit错误,MLC因为阀值相比SLC更接近,形成出错概率更大。
2.MLC读写性能下降,写入更是下降50%以上,由于须要确认充入电荷的量,这须要更精确的处理。SLC只有0和1,也就是有和没有,而MLC会有00,01,10,11 4个状态,在充入电荷后还要去判断是哪一个状态,天然就慢了。
3.由于上面说的,形成额外的读写压力,因此功耗明显增大。
4.由于额外的读写压力,形成闪存的写入耐久度和数据保存期受到影响。

eMLC和eSLC的耐久度提高是用牺牲了数据保存期和增长读写时间换来的。(也就是性能会更差点)

-------------------------------------------------------------------

挑战1:须要先擦除才能写入。

5.jpg spa

 




当今的NAND Flash能够读/写一个page,可是必须以block大小擦除。

擦除操做就是让块中全部的bit变为1,从一个干净的“已擦除”状态的block从新开始。当里面的页变为0后,只有擦除整个块才能让这个页变为1。为了尽可能减小擦除的次数,成熟的块管理技术必不可少。


挑战2:读/写干扰。

NAND Flash的电荷很是不稳定,在读/写中很容易对邻近的单元形成干扰,干扰后会让附近单元的电荷脱离实际的逻辑数值,形成bit出错,由于阀值接近的关系,MLC相对SLC来讲更容易受到干扰。

6.jpg 设计

 



读取干扰

7.jpg blog

 



写入干扰

读取干扰指的是在读取某个page时,邻近的bit会受到升高电压的干扰,形成bit出错。写入干扰指的是,某个page在写入时,邻近bit的电压也被升高了,形成bit出错。相对写入干扰来讲,读取干扰明显小的多。在读/写干扰中,可能形成某些bit被改变,结果形成数据出错。因此须要在返回数据给主机前,用ECC/EDC算法来纠正这些bit的错误。随着闪存工艺的提高,一样大小的晶片上被封装入更多的单元,形成干扰愈来愈厉害,因此须要更强大的ECC/EDC来纠正bit。


挑战3:数据保存期限

数据保存期指的是当彻底断电后,数据能在NAND Flash里保存多久。NAND单元必须保证一个稳定的电压水平,来保证数据是有效的。典型的SLC通常为10年。电荷从悬浮门里漏出,咱们叫作电子迁移,当随着时间的流逝,电荷泄漏到必定程度,改变了NAND单元里悬浮门的电压对应的逻辑值,这样就形成bit出错。

8.jpg 内存

 




数据保存期会随着擦写次数的增长而明显下降,并且从上面的原理中看出,MLC的数据保存期明显会比SLC少。(更容易被干扰)


挑战4: 坏块

NAND Flash里有2种坏块类型:

1,出厂坏块:因为为了保证产量和控制成本,出厂的NAND Flash某些就会有坏块。厂商保证SLC出厂坏块低于2%,MLC出厂坏块低于5%。
2,积累坏块:在屡次的写入/擦除循环中,某些NAND单元的电荷电压被永久性的改变了,那就意味着包含这个NAND单元不可用了。

因此固态硬盘须要有坏块管理才能使用,主控制器用坏块表来映射出厂坏块和积累坏块到坏块区内,出厂时,颗粒的第一个块Block 0厂商会保证是可用的(至少ECC后可用)。



挑战5:擦写次数限制

形成NAND Flash有擦写次数限制的主要有2个因素:

1,电荷被困在氧化层,不能进入悬浮门。
2,氧化层结构被破坏。

9.jpg it

 




如图,一旦氧化层损坏到达必定程度,形成电荷愈来愈难在P-substrate和悬浮门之间交流。电荷被困在氧化层形成悬浮门中的电压到不了阀值,因此说这个NAND单元就要被放入坏块区了。

当前主流SLC的P/E为10万次,50nm MLC为1万次,3xnm的MLC为5000次。到了这个数字并不意味着就不能用了,这个只是表明平均寿命,也就是说到了这个次数后,坏块就会开始大量增长了。

随着工艺提高,ECC的要求愈来愈高,50nm的SLC颗粒,三星规定1bit ECC的就够了,而50nm MLC要4bit ECC,到了3xnm要求达到24bit ECC。


-----------------------------------------

附; ECC

影响NAND Flash稳定性和耐久度的一个主要因素就是ECC能力,目前最经常使用的三种算法是:

1.Reed-Solomon。2.Hamming。3.BCH (Bose, Ray-Chaudhuri, Hocquenghem)

无论何种ECC算法,何种主控,检测错误的方式是相同的:


10.jpg 原理

 

1.每当一个page写入NAND Flash,数据会经过ECC引擎,创造独特的ECC签名。2.数据和对应的ECC签名存都存放在NAND Flash里,数据放在数据区,ECC签名放在 SA区。3.当须要读取数据时,数据和ECC签名一块儿被送往主控制器,此时新的ECC签名被生成。4.此时主控把2个签名对照,若是签名相同,说明数据没有错误,数据就会被送往主机。若是签名不一样,数据就会先放在主控里,而不是直接送往主机。某些主控会把改正后的数据再次写回闪存,另外一些则不会,由于谁也不知道下次读取会不会再出错。ECC的能力直接关系到NAND Flash的耐久度,数据保存期。当NAND Flash的P/E数到了以后,错误数会愈来愈多,ECC弱的直接就报坏块并标记退休,若是ECC能力足够强,就能挖掘出Flash全部潜力。

相关文章
相关标签/搜索