存储

关注公众号 jb51net

关闭
硬件教程 > 存储 >

什么是NAND Flash? NAND Flash现代存储技术的基础知识

脚本之家

在数字世界,用户存储在SSD上的数据最终会被保存至非易失性存储介质,而存储介质的特性直接影响SSD的主控和固件设计。NAND Flash是当前电子设备中常见的非易失性存储介质,下面我们将为大家讲解NAND Flash的基本原理和特性。

什么是NAND Flash?

Nand Flash是一种非易失性随机访问存储介质,基于浮栅(Floating Gate)晶体管设计,通过浮栅来锁存电荷,电荷被存储在浮栅中,他们在无电源供应的情况下仍然可以保持。数据在Flash内存单元中是以电荷的形式存储的,存储电荷的多少取决于浮栅的外部门所被施加的电压,其控制了是向存储单元中充入电荷还是释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth来表示。

它是闪存的一种形式,这意味着它可以被电擦除和重新编程。NAND闪存以NAND(NOT-AND)逻辑门命名,该逻辑门用于其基本架构。术语“NAND”源自存储单元以串联连接结构的方式组织,类似于NAND门。该技术广泛用于各种存储设备,例如固态硬盘 (SSD)、USB 闪存驱动器、存储卡和智能手机。

(左图)NAND闪存阵列的示意图。串联连接的器件的垂直string经由由drain select line(DSL)和source select line(SSL)驱动的选择晶体管附接到bitlines 和 sourceline;

(右图)阵列沿着WL方向(a)和串方向(b)的示意性横截面(绿色=硅,红色=浮栅,红色=WL,白色=氧化硅)。(c)显示了具有基本单元(虚线)的阵列布局。

NAND Flash主要特点

存储单元结构

存取方式

写入和擦除周期

速度

成本

由于结构相对简单,NAND Flash的单位存储成本较低,因此在大容量存储应用中更具成本效益。

错误率

接口

应用

NAND Flash工作原理

NAND Flash 的存储单元是一种三端器件,与场效应管类似,包含源极、漏极和栅极,栅极与硅衬底之间有二氧化硅绝缘层,用于保护浮置栅极中的电荷不会泄漏,从而使存储单元具有电荷保持能力。其擦除和写入数据基于隧道效应,即电流穿过浮置栅极与硅基层之间的绝缘层,对浮置栅极进行充电(写数据)或放电(擦除数据)。

NAND Flash 通过在存储单元中存储电荷来表示数据。每个存储单元可以存储一个或多个比特的数据。在写入数据时,电子被注入到存储单元中;在读取数据时,通过检测存储单元中的电荷状态来确定存储的数据。擦除数据时,通过施加高电压将存储单元中的电荷释放掉。

NAND Flash基于浮栅晶体管,浮栅晶体管排列成网格状阵列。每个晶体管有两个栅极:一个控制栅极和一个浮动栅极。浮动栅极由氧化层电隔离,使其能够捕获电子。浮栅上电子的存在与否决定了存储单元的二进制状态,代表“0”或“1”。

读取数据

为了从NAND闪存单元读取数据,需要向控制门施加电压。如果浮栅上存在电子,晶体管将不会传导电流,表示“0”状态。如果浮栅为空,晶体管将传导电流,表示“1”状态。

写入和擦除数据

将数据写入NAND闪存单元涉及称为Fowler-Nordheim隧道的过程。对控制栅极施加高压,使电子穿过氧化层并进入浮栅,将cell设置为“0”状态。擦除数据涉及在相反方向上施加高压,从而从浮栅中去除电子,使cell回到“1”状态。

NAND闪存架构

NAND Flash 的数据是以位(bit)的方式保存在存储单元(memory cell)中,多个存储单元以 8 个或 16

个为单位连成位线(bit line),形成字节(byte)或字(word),这就是 NAND 器件的位宽。

这些位线再组成页(page),每页包含一定数量的字节,通常还有一部分额外的空间用于存储纠错码等信息。多个页又组成块(block)。NAND Flash 以页为单位进行读写操作,以块为单位进行擦除操作。

NAND闪存单元组织在一个串联的字符串中,称为NAND字符串。多个NAND串形成一个块,多个块形成一个平面。NAND闪存芯片由一个或多个平面组成。这种分层结构可实现高存储密度和快速读写操作。

NAND闪存根据每个存储单元存储的位数可分为两种主要类型:

每个存储单元存储一位数据,表示“0”或“1”。与 MLC 相比,SLC NAND 闪存提供更快的读写速度、更高的耐用性和更低的功耗。

每个存储单元使用多个电压电平存储两个或更多位数据。与 SLC 相比,MLC NAND 闪存可实现更高的存储密度和更低的每比特成本,但代价是读取和写入速度较慢,耐久性降低。

Nand Flash生产过程

Nand Flash是从原始的硅材料加工出来的,硅材料被加工成晶圆(Wafer),一片晶圆可以做出几百颗Nand Flash芯片。芯片未封装前的晶粒称为Die,它是从Wafer上用激光切割而成的小片,每个Die就是一个独立的功能芯片,它由无数个晶体管电路组成,但最终可被作为一个单元封装起来成为闪存颗粒芯片,下面是Nand Flash芯片的详细加工过程。

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。

下图是一个Flash Block的组织架构,每个Cell的漏极对应BL(Bitline),栅极对应WL(Wordline),源极都连在一起。每个Page对应着一个Wordline,通过Wordline加不同电压和不同时间长度进行各种操作。

一个WordLine对应着一个或者若干个Page,对于SLC来说一个WordLine对应着一个Page;对于MLC来说则对应2个Page;Page的大小与WordLine上存储单元(Cell)数量对应。

下图是一款存储芯片的内部布局

由图可以看出一片Nand Flash为一个设备(device),其数据存储分层为:

以此可以计算出如何访问一个物理地址:块大小x块号 + 页大小x页号 + 页内地址

从硬件的图来看,上面这款芯片,其容量是132MB,那么就需要28条地址线,而nand flash只有8个I/O引脚可以用作地址线,所以nand flash就引入了地址周期的概念。对于这款nand flash,需要4个周期:2个列地址(column)周期和2个行地址(ROW)周期。从下面的功能框图来看,对于列地址A0 – A11,就是页内地址,地址范围是0 – 4096。与页内地址(2K + 64)吻合,其实对与页内地址,其实只需要A0-A10,而对于多出来的A11,是用来表示页内的OOB区域。那么对于A12 - A27就是用来表示属于哪一个块和块里面的哪一个页号。

###### Nand flash的操作

上面这款芯片支持的命令格式

下图是发送一个命令/地址/数据的完整过程

通过时序图看出,上面有很多时间参数,在设置Nand flash控制器的时候,需要确认这些时间参数是否在合适的范围内,对于控制命令都是通过上面的几个基础命令组合而来。 Flash的基本特性

Data Retention(数据保存力)是用于衡量写入NAND Flash的数据能够不失真保时间的可靠性指标,一般定义为在一定的温度条件下,数据在使用ECC纠错之后不失真保存在NAND Flash中的时间;影响Data Retention最大的两个因素是擦写次数和存储温度,通常情况下企业级SSD盘的Data Retention都是遵循JEDEC的JESD218标准,即40°C室温下,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 Write Per Day)指每日写入量。SSD的成本随着DWPD增加而变高,未来SSD的趋势预测密集型当前已占50%,未来的占比会逐渐变大。

Nand Flash的寿命不等于SSD的寿命;SSD盘可以通过多种技术手段从整体上提升SSD的寿命,通过不同的技术手段,SSD盘的寿命可以比NAND Flash宣城寿命提高20%~2000%不等。

Flash的种类

Flash通常分为raw nand和spi nand

raw nand TSOP封装物料实物图

spi nand TSOP封装

对于常见的Nand Flash所拥有的的引脚(Pin)对应的功能如下:

Nand Flash的特殊硬件结构

1、需要先擦除才能写入。Nand Flash可以读写一个Page,但是必须要以Block大小进行擦除。擦除操作就是让块中所有的bit变成1,从一个干净的“已擦除”状态的Block重新开始,当里面的页变成0后,只有擦除整个块才能让这个页变成1.为了尽量减少擦除的次数,成熟的管理技术必不可少。

2、读、写干扰。Nand Flash的电荷非常不稳定,在读/写中很容易对相邻的单元造成干扰,干扰后会让附近单元的电荷脱离实际的逻辑数值,造成bit出错,因为阈值接近的关系,MLC相对SLC来说更容易受到干扰。读取干扰指的是在读取某个page时,邻近的bit会受到升高电压的干扰,造成bit出错。写入干扰指的是,某个page在写入时,邻近bit的电压也被升高了,造成bit出错。相对写入干扰来说,读取干扰明显小的多。在读/写干扰中,可能造成某些bit被改变,结果造成数据出错。所以需要在返回数据给主机前,用ECC/EDC算法来纠正这些bit的错误。随着闪存工艺的提升,同样大小的晶片上被封装入更多的单元,造成告饶越来越厉害,所以需要更强大的ECC/EDC来纠正bit。

3、数据保存期限。数据保存期指的是当完全断电后,数据能在NAND Flash中保存多久。NAND单元必须保存一个稳定的电压水平,来保证数据是有效的。典型的SLC一般为20年。电荷从悬浮门里漏出,这叫做电子迁移,当随着时间的流逝,电核泄漏到一定程度,改变了NAND单元里悬浮门的电压对应的逻辑值,这样就造成了bit出错。数据保存期会随着擦写次数的增加而明显降低,MLC的数据保存期明显会比SLC少,而且更容易被 干扰。

4、坏块。Nand Flash中有两种坏块类型:出厂坏块,由于为了保证量产和控制成本,出厂的Nand Flash某些就会有坏块,厂商保证SLC出厂坏块低于2%,MLC出厂坏块低于5%。积累坏块,在多次的写入/擦除循环中,某些Nand单元的电荷电压被永久性的改变了,那就意味着包含这个Nand单元不再可用。所以固态硬盘需要有坏块管理才能使用,主控制器用坏块表来映射出厂坏块和积累坏块到坏块区内,出厂时,颗粒的第一个块Block 0厂商会保证是可用的。(至少ECC后可用)

5、擦写次数限制。造成nand flash有擦写次数限制的主要有2个因素,电荷被困在氧化层,不能进入悬浮门;或是氧化层结构被破坏。

如图,一旦氧化层损坏到达一定程度,造成电荷越来越难在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能力,目前最常用的三种算法是:

不管是任何ECC算法,任何主控,检测错误的方式都是相同的:

某些主控会把改正后的数据再次回写闪存,另一些则不会,因为谁也不知道下次读取会不会再出错。ECC的能力直接关系到Nand Flash的耐久度,数据保存期。当Nand Flash的P/E数到了之后,错误数会越来越多,ECC弱的直接就报坏块并标记退休,如果ECC能力足够强,就能够挖掘出Flash的所有潜力。

闪存内部原理

闪存的内部存储结构是金属-氧化物-半导体-场效应管(MOSFET):源极、漏极和栅极,其工作原理与场效应管类似,都是电压利用控制源极和漏极之间的通断。闪存是双栅极结构,在栅极和硅衬底之间还有一个浮置栅极,浮置栅极是有氮化物夹在二氧化硅材料之间构成。

对闪存单元的编程:控制栅极去充电,对栅极加压,使得浮置栅极存储的电荷越多,超过阈值,就表示0;对闪存单元的擦除,即对浮置栅极进行放电,低于阈值,就表示1。

NAND Flash发展历程

1987 年,时任日本东芝公司工程师岡本成之提出了 2D NAND 技术,这是 NAND Flash 的起源。当时,东芝虽然占据了市场先机,但战略重心偏向 DRAM 市场,一定程度上忽略了 NAND Flash 的发展潜力。随后,英特尔和三星等公司也迅速加入该领域,推出了自己的 2D NAND 产品。在这一阶段,NAND Flash 主要应用于一些特定的电子设备,如数字电话答录机等。

随着数码摄影的普及,一系列小型闪存卡应运而生,包括 PCMCIA(PC 卡)、CompactFlash、SmartMedia、MultiMediaCard(MMC)和 SecureDigital(SD)卡等,这些小型闪存卡的存储介质主要是 NAND Flash。这使得 NAND Flash 的应用范围得到了极大的扩展,市场需求也开始快速增长。

随着 NAND Flash 成本的不断降低,其应用范围进一步扩大。从数码相机扩展到了 USB 闪存驱动器,进而取代了软盘和可写 CD 等传统存储设备。同时,音频播放设备从传统的磁带和 CD 播放器转变为 MP3 播放器,也推动了 NAND Flash 的需求增长。在这一时期,NAND Flash 逐渐成为了主流的存储技术之一,市场规模不断扩大。

技术概念

提出 2007 年,东芝推出 BICS 类型的 3D NAND,标志着 NAND Flash技术从二维平面堆叠向三维立体堆叠的转变。这种技术通过在垂直方向上堆叠存储单元,大大提高了存储密度,为 NAND Flash的进一步发展提供了新的方向。

商业化量产

2013 年,三星推出第一代 V-NAND(三星自称 3D NAND 为 V-NAND)闪存并投入量产,虽然该款堆叠层数仅为

24 层,但在当时却打破了平面技术的瓶颈,并使 3D NAND 从技术概念推向了商业市场。

层数不断增加

从 2014 年开始,各大厂商纷纷推出更高层数的 3D NAND 产品。例如,三星陆续推出了 32 层、48 层、64层、96 层、128 层、176 层等不同层数的 V-NAND;SK 海力士按照 48 层、72 层 / 76 层、96 层、128 层、176 层、238 层的顺序陆续推出闪存新产品;美光也在不断提高其 3D NAND 的层数。

技术持续演进

在 3D NAND 技术发展的过程中,厂商们还在不断改进和优化技术,以提高存储性能、降低成本。例如,长江存储自研出了Xtacking 架构,大幅度提高了存储密度。