本文已参与「新人创作礼」活动,一起开启掘金创作之路。
描述
NAND Flash是一种非易失性随机访问存储介质,基于浮栅晶体管设计,通过浮栅来锁存电荷,电荷被存储在浮栅中,在无电源供应情况下仍然可以保持。
物理结构
Cell存储原理
Flash的内部存储是金属-氧化层-半导体-场效晶体管(MOSFET),里面有个悬浮门(Floating Gate),是真正存储数据的单元。该技术有个名称叫浮栅晶体管存储技术。
1、擦除(Erase):对悬浮门放电,在底下加正电压,把电子从悬浮门中吸出来,低于阀值Vth,就表示1。
2、写入(编程):控制Control Gate去充电(对Control Gate加压),使电子通过绝缘层进入悬浮门,使得悬浮门存储的电荷够多,超过阈值Vth,就表示0。
还有另一种存储技术叫Charge Trap(CT晶体管)存储。与浮栅晶体管主要不同就是把上图中的Floating Gate(半导体材料)替换成Charge Trap(高电荷捕捉密度的绝缘材料SI3N4)。Charge Trap主要的特点是对隧道氧化层不敏感,当厚度变薄或者擦除导致老化时,影响不是很大。另外,隧道氧化层磨损更慢,存储单元间距更小。
左floating gate,右Charge Trap。
优劣对比:
悬浮栅晶体管:在读干扰和数据保留上有优势(为什么?)
CT晶体管:对隧道氧化层要求不高,存储单元间距小。控制极与衬底间距小因而读写电压小,氧化层损耗慢,省电,工艺简单。
组织架构
-
Package:
是存储芯片,即拆解固态硬盘或者SD卡后看到的NAND Flash颗粒。每个package包含一个或者多个target。
-
target:
拥有独立片选(ce)的单元,可以单独寻址,通常包含1或多个LUN
-
Die/LUN:
是可以独立执行命令并上报状态的最小单元。每个die包含一个或者多个plane。
-
Plane:
是NAND可以依据读、写、擦除等命令进行操作的最小单位一个plane就是一个存储矩阵。包括若干个Block.
-
Block:
最小擦除单元,每个block在写入前需要先擦除,每个block包含多个page,通常包含32或者64个page。
-
Page:
最小读写单元,通常是512字节或者2KB。
-
Cache/page register:
每个plane都有自己独立的cache/page register(两个一样的只是赋予了不同名字),其大小等于1page。
类型
NAND Flash根据存储原理分为三种,SLC, MLC, TLC。(往后或会有更多)
SLC:1个存储单元可存放1bit的数据,只存在0和1两个值,可表示2种数据状态。
MLC:1个存储单元可存放2bits的数据,可表示4种数据状态。
TLC:1个存储单元可存放3bits的数据,可表示8种数据状态。
差异对比(举例,以数据手册为准)
SLC | MLC | TLC | |
---|---|---|---|
Bits/cell | 1 | 2 | 3 |
擦写次数 | ~10万 | ~5000 | ~1000 |
读时间(us) | ~25 | ~50 | ~75 |
写时间(us) | ~300 | ~600 | ~900 |
擦时间(us) | ~1500 | ~3000 | ~4500 |
封装引脚功能
引脚 | 描述 |
---|---|
I/O 0~7 | Addr/data/cmd的输入,data输出。(存在16位I/O 0~15) |
CLE | 命令锁存使能,在输入命令之前先在模式寄存器中设置CLE使能 |
ALE | 地址锁存使能,在输入地址之前先在模式寄存器中设置ALE使能 |
CE# | 芯片使能(有些叫CS) |
RE# | 读使能 |
WE# | 写使能 |
WP# | 写保护 |
R/B# | 就绪/忙 |
Vcc | 电源 |
Vss | 接地 |
N.C | 未使用 |
#:表示拉低有效,在上面加横杠‘—’的同理