在上一篇文章中为大家介绍了NAND Flash的工作原理和自身的特性,本次文章将继续为大家带来关于NAND Flash的内容。
一、NAND Flash 的容量结构
从访问NAND Flash来看,NAND Flash的容量结构为:
一个封装好的颗粒一般有多个片选信号,即NAND CE#,代表独立的Chip Enable片选信号。
一个Target下有一个或多个Die/LUN ,它是能够独立执行命令和报告状态的最小单元。
一个Die/LUN有多个Plane(e.g. 4Plane),通过多Plane并发操作提升NAND Flash读写性能。
一个Plane有几百上千个物理Block,Block是擦除操作的最小操作单元。
一个Block中含有多个Page,Page是Program/Read的最小操作单元。
二、NAND Flash可靠性
- Endurance 耐久度
耐久度表征NAND Flash能够承受的反复擦写次数。NAND Flash的擦写次数是有限的,因为每次擦写操作都会对介质造成损伤。如下图所示,进行擦写操作时,会用十几伏特的高电压对晶体管进行充放电操作,当高能电子来回的穿越绝缘层,就会给绝缘层带来物理损伤,最终影响数据可靠性。
- Data Retention 数据保持
随着时间流逝,受量子隧穿效应影响,编程操作充进去的电子会随机发生电子逃逸,进而影响存储的信息。如下图所示,编程操作后的电荷分布如蓝色线所示,Retention后电荷分布向左偏移,影响数据的正确读取。
- 读干扰
受闪存阵列结构影响,我们去读一个Page时,要对其他位置上的非读page也施加一个电压,造成读干扰效应。读次数较少时,读干扰影响不明显,但是当次数增加到几千次时,累积的弱编程的效应也会影响数据可靠性。如下图所示,较低的电荷状态更容易受到干扰。
三、NAND Flash特性
NAND Flash应用挑战:
读写擦操作单元不对称
在一个block里面的读写擦是不对称的,读写操作的粒度是page,但擦除操作的粒度是block,一般在FTL层进行地址映射来匹配。
写操作之前先擦除
在写操作之前,必须先进行擦除工作,不然会导致写的数据丢失,并且不能找回。
有限的耐久度
磨损的次数是有限的,在反复擦写后,闪存的寿命是有限的,需要有效的寿命管理策略来延长NAND Flash寿命。
数据存储错误
数据写入NAND Flash后,再读取数据,总是会存在比特翻转,并且出错数随擦写次数增加而增加,需要有效的纠错算法来保证数据可靠性。
虽然Nand Flash还面临着很多挑战,但它的成本优势明显。为了将不可靠的介质打造成可靠的存储产品,我们会通过高效的介质管理算法来保障产品的性能、寿命和可靠性。