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

数据在Flash内存单元中是以电荷(electrical charge) 形式存储的。存储电荷的多少,取决于图中的控制门(Control gate)所被施加的电压,其控制了是向存储单元中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth 来表示。
1.对于NAND Flash的写入(编程),就是控制Control Gate去充电(对Control Gate加压),使得悬浮门存储的电荷够多,超过阈值Vth,就表示0。
2.对于NAND Flash的擦除(Erase),就是对悬浮门放电,低于阀值Vth,就表示1。
NAND Flash的架构:

如上图所示,这是一个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颗粒。

4KB的页尺寸,256KB的块尺寸。图中4096字节用于存储数据,另外128字节用来做管理和ECC用。
SLC 和 MLC 区别:
SLC主要针对军工,企业级应用,有着高速写入,低出错率,长耐久度特性。
MLC主要针对消费级应用,有着2倍容量于SLC,低成本,适合USB闪盘,手机,数码相机等储存卡。如今也被用于消费级固态硬盘上。

由上图可以看到,MLC和SLC虽然使用相同的电压值,但是电压之间的阀值被分成了4份,直接影响了性能和稳定性。主要有下面几点:
1.相邻的存储电荷的悬浮门间会互相干扰,造成悬浮门里的电荷不稳定出现bit错误,MLC由于阀值相比SLC更接近,造成出错几率更大。
2.MLC读写性能降低,写入更是降低50%以上,因为需要确认充入电荷的量,这需要更精确的处理。SLC只有0和1,也就是有和没有,而MLC会有00,01,10,11 4个状态,在充入电荷后还要去判断是哪个状态,自然就慢了。
3.因为上面说的,造成额外的读写压力,所以功耗明显增大。
4.因为额外的读写压力,造成闪存的写入耐久度和数据保存期受到影响。
eMLC和eSLC的耐久度提升是用牺牲了数据保存期和增加读写时间换来的。(也就是性能会更差点)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具