NAND FLash基础概念介绍

一、引脚介绍
引脚名称 引脚功能
CLE 命令锁存功能
ALE 地址锁存功能
/CE 芯片使能
/RE 读使能
/WE 写使能
/WP 写保护
R/B 就绪/忙输出信号
Vcc 电源
Vss
N.C 不接
IO0~IO7 数据传输、命令、地址

 

    1. 命令、地址、数据都通过8个I/O口传输
    2. 写命令、地址、数据时,都须要将WE、CE信号同一时候拉低
    3. 数据在WE信号的上升沿被NAND Flash锁存
    4. 命令锁存信号CLE和地址锁存信号ALE用来分辨、锁存命令或地址
    5. 在CLE上升沿,命令被锁存
    6. 在ALE上升沿,地址被锁存
    7. R/B处于低电平时,表示有编程、擦除或随机读操作正在进行。当R/B处于低电平时,主控无法对FLASH进行读写操作,只有当R/B处于高电平时,主控才能对FLASH进行读写操作。
    6. CE:片选,大致来说,一个DIE 有一个CE,多CE的 单片闪存,就是 多管芯的闪存,相当于一片闪存那么大的地方,装下了不止一片闪存,特别是 BGA的板子,能实现单片双通道,就是这个原理。

二、存储组织形式

    1. NAND芯片内部分为die, plane,block, page
    2. chip是指芯片,一个封装好的芯片就是一个chip
    3. die是晶圆上的小方块,一个芯片里可能封装若干个die,因为flash的工艺不一样,技术不一样。由此产生了die
        的概念。常见的有Mono Die,a Die。 b die等,一个chip包括N个die
    4. plane是NAND可以依据读、写、擦除等命令进行操作的最小单位

一个plane就是一个存储矩阵。包括若干个Block

    5.  Block是NANDFlash的最小擦除单位,一个Block包括了若干个Page
    6.  Page是NANDFlash的最小读写单位。一个Page包括若干个Byte

 

OOB/Spare Area

每个页,相应另一块区域。叫做空暇区域(SpareArea)。在Linux系统中。一般叫做OOB(Out of Band)。

数据在读写的时候相对容易出错,所以为了保证数据的正确性。必需要有相应的检測和纠正机制,此机制叫做ECC/EDC,所以设计了多余的区域,用于存放数据的校验值。

OOB的读写是随着随着页的操作一起完毕的。

OOB的详细用途包含下面几个方面:

► 标记所处的block是否为坏块

► 存储ECC数据

► 存储一些和文件系统相关的数据。如jaffs2就会用到这些空间存储一些特定信息。而yaffs2文件系统。会在oob中存放非常多和自己文件系统相关的信息

 

一个16G的NAND的存储结构大致例如以下:

一个16G的NANDFlash须要34位地址,而传输地址的IO口是8位的。因此须要5个循环来传输地址信息。

NAND Flash中的坏块

Nand Flash 中。一个块中含有1 个或多个位是坏的,就称为其为坏块Bad Block。坏块的稳定性是无法保证

的。也就是说,不能保证你写入的数据是对的。或者写入对了。读出来也不一定对的。与此相应的正常的块。肯定

是写入读出都是正常的。

坏块有两种:

(1)出厂时就有存在的坏块:

一种是出厂的时候。也就是,你买到的新的,还没用过的Nand Flash,就能够包括了坏块。此类出厂时就有的坏块,被称作factory (masked) bad block 或initial bad/invalid block,在出厂之前,就会做相应的标记, 标为坏块。

(2) 使用过程中产生的坏块:

第二类叫做在使用过程中产生的,因为使用过程时间长了,在擦块除的时候,出错了,说明此块坏了,也

要在程序执行过程中,发现。而且标记成坏块的。详细标记的位置。和上面一样。这类块叫做worn-out bad block。即用坏了的块。

 

SLC、MLC以及TLC区别

这几种闪存的物理结构是相同的,SLC(single-level-cell)是最简单的一种,加电就是1,断电就是0。

MLC (multi-level-cell)就是每个cell单元中有多个信号,通过控制不同的电压来实现的,常见的是2个电信号的,它的信号组合有11,01,00,10四种,也就是可储存的容量提升了。

TLC(Triple-level-cell)实际上也是MLC中的一种,不过常说的MLC几乎就是特指2个信号位的。TLC每个Cell单元中可荣内的信号更多,有000,001,010,011,111,110,100,101这8种,容量会更大。

提升容量、降低成本是MLC及TLC最大的优点,但是负面影响也很严重。

1.MLC性能下降

MLC需要更精确的电压控制,program过程所需时间更多,因此写入性能也会大幅下降,理论上只有SLC的1/4;读取,特别是随机读取性能也会受影响,因为需要花更多的时间从四种电信号状态中区分所需数据,读取性能只有SLC的1/3。

SLC与MLC性能对比

2.MLC可靠性下降

SLC闪存一次P/E循环只需要击穿一次氧化层,而MLC需要不同的电压多次击穿氧化层,物理损害比SLC要严重得多,MLC的写入次数指数级下降,比如SLC的理论寿命是1万-10万次,而MLC的写入寿命上限就只有1万次,而且随着工艺的进步,这个数值还在下降,25nm MLC普遍只有3000-5000次。

3.MLC需要更高的纠错

由于电压分的更细,MLC在读取数据的过程中需要提高敏感度,不然就容易出现读错数据的可能,也就是说MLC出错的几率增大了,纠错要求也必须随之提高,反应在SSD上就是需要更强的ECC机制。

除了上面提到的几点缺陷之外,MLC的漏电流、电压边界位移(voltage margin shifting)现象也增加了,MLC的功耗和发热也更高,这些都是MLC带来的问题,虽然相比前面几个并不算严重。

说了这么多MLC的“坏话”,其实也没必要,因为SLC的成本和售价不是谁都能接受的,而MLC带来的好处是极具诱惑力的,它带来的问题可以通过技术手段缓解,至少SSD的主流还是MLC,而且针对企业级应用的MLC在可靠性和寿命上一样有保障。而且跟TLC一比较就觉得MLC好了,同样再跟QLC一比较,TLC也不是那么难接受。

发表评论

邮箱地址不会被公开。