2. NAND Flash核心架构:浮栅晶体管原理,SLC/MLC/TLC/QLC单元结构差异

大家好,我是你们的存储芯片讲师。今天咱们聊聊NAND Flash最核心的东西——浮栅晶体管。说实话,搞了这么多年存储,每次跟新人聊到这个话题,我都觉得特别有意思。你想想看,一个指甲盖大小的芯片,凭什么能存下几百GB的数据?秘密就在这个小小的晶体管里。

2.1 浮栅晶体管:存储的“细胞”

NAND Flash的基本存储单元,就是浮栅晶体管。它跟普通的MOS管长得有点像,但多了一层“浮栅”。我习惯把这层浮栅想象成一个“电子监狱”——电子一旦进去,就很难自己跑出来。

核心结构:控制栅(Control Gate)→ 氧化层 → 浮栅(Floating Gate)→ 氧化层 → 沟道(Channel)

为什么会这样?因为浮栅被两层高质量的氧化层包裹着。这层氧化层就像监狱的高墙,电子想翻过去?门儿都没有。除非你给它施加足够高的电压——这就是编程(Program)和擦除(Erase)操作的原理。

我在项目中遇到过一件事:有次客户反映某批芯片数据保持能力下降。查了半天,发现是氧化层工艺出了问题,电子慢慢“越狱”了。嗯,从那以后我对氧化层质量格外敏感。

2.2 编程与擦除:电子的“越狱”游戏

说白了,NAND Flash的读写操作就是控制电子进出浮栅的过程。

  • 编程(Program):在控制栅上加高电压(约18-20V),电子从沟道穿过氧化层,进入浮栅。这叫Fowler-Nordheim隧穿效应。
  • 擦除(Erase):在衬底上加高电压,电子从浮栅被“吸”出来,回到沟道。
  • 读取(Read):加一个较低的电压(约4-5V),检测沟道是否导通。浮栅里有电子,阈值电压高,管子不导通——这就是“0”;没电子,阈值电压低,管子导通——这就是“1”。

避坑指南:我曾经犯过一个低级错误——以为编程和擦除是对称操作。其实不是!编程是逐页进行的,擦除却是按块进行的。你想想看,擦除一个块要几毫秒,编程一页只要几百微秒。这个差异直接影响你的FTL(闪存转换层)设计。

2.3 SLC/MLC/TLC/QLC:从“单间”到“合租”

好了,现在咱们聊聊SLC、MLC、TLC、QLC的区别。我打个比方你就明白了:

  • SLC(Single-Level Cell):一个浮栅只存1个bit。要么有电子(0),要么没电子(1)。就像一个人住单间,清清爽爽。
  • MLC(Multi-Level Cell):一个浮栅存2个bit。需要区分4种电子数量状态:00、01、10、11。相当于两个人合租,得商量好谁睡上铺。
  • TLC(Triple-Level Cell):一个浮栅存3个bit。8种状态。三个人合租,有点挤了。
  • QLC(Quad-Level Cell):一个浮栅存4个bit。16种状态。四个人挤一间房,你想想看什么感觉?

我刚开始接触QLC时,心里直打鼓:16种电压状态,这能分得清吗?后来发现,确实分得清,但代价是速度慢、寿命短。

2.4 单元结构差异:一张表说清楚

参数 SLC MLC TLC QLC
每单元bit数 1 2 3 4
电压状态数 2 4 8 16
编程时间(典型) ~50μs ~200μs ~500μs ~1ms
擦除时间(典型) ~1ms ~2ms ~3ms ~4ms
P/E循环次数 ~100,000 ~10,000 ~3,000 ~1,000
读取延迟 ~25μs ~50μs ~75μs ~100μs

看到没?从SLC到QLC,容量上去了,但性能和寿命下来了。这就是存储界的“不可能三角”——容量、速度、寿命,你最多只能选两个。

2.5 电压分布:为什么QLC这么“娇气”

咱们用SVG画个图,看看不同单元类型的电压分布差异。

SLC vs MLC vs TLC vs QLC 电压分布对比 SLC (2状态) 1 0 MLC (4状态) 11 10 01 00 TLC (8状态) QLC (16状态) 状态越多 → 电压窗口越窄 → 对噪声越敏感 → 纠错要求越高

从图上你能直观地看到:SLC只有2个状态,每个状态之间的电压窗口很宽,随便读都不会出错。到了QLC,16个状态挤在同一个电压范围内,每个窗口窄得可怜。稍微有点噪声、温度变化、或者读干扰,就可能读错。

注意:QLC的电压窗口宽度只有SLC的1/15左右。这意味着什么?意味着QLC需要更强的ECC纠错能力。我见过一些方案用LDPC纠错,码率低到0.8甚至0.7,才勉强保证数据可靠性。

2.6 实际项目中的选择建议

说了这么多理论,咱们聊聊实际选型。我个人习惯这样选:

  • 工业级、车规级:必须用SLC。寿命长、温度范围宽、数据保持能力强。贵是贵点,但稳定压倒一切。
  • 消费级SSD:TLC是主流。性价比高,配合SLC Cache技术,日常使用体验不差。
  • 大容量存储(如U盘、存储卡):QLC开始普及。便宜、容量大,但要做好散热和纠错。
  • 嵌入式系统:看场景。如果频繁写日志,用SLC或MLC;如果主要是读操作,TLC也能凑合。

我曾经在一个物联网项目中,为了省成本选了QLC。结果设备在户外暴晒,温度一高,数据就开始出错。后来乖乖换回MLC,虽然贵了30%,但再也没出过问题。嗯,有些钱真不能省。

2.7 小结

这一章咱们把NAND Flash最底层的存储单元讲清楚了。浮栅晶体管是基础,SLC/MLC/TLC/QLC是它的不同“玩法”。记住一个核心原则:状态越多,容量越大,但代价是性能和寿命下降。搞嵌入式开发,选型时一定要权衡好这三个维度。

下一章咱们聊聊NAND Flash的阵列结构和页、块、平面的组织方式。到时候你会发现,原来这些单元是怎么拼成一个大芯片的。


专注资料整理