3、NAND Flash 原理:存储单元结构与 SLC/MLC/TLC/QLC 选型权衡

好,咱们进入正题。NAND Flash 这东西,说白了就是黑匣子的「记忆细胞」。你想想看,飞机坠毁后,黑匣子要在烈火、深海、撞击中活下来,靠的就是它。我做了十几年存储,见过太多因为选错 Flash 类型导致数据全丢的案例。今天咱们就把它的老底翻一翻。

3.1 存储单元结构:一个晶体管的故事

NAND Flash 的核心,是一个浮栅晶体管。嗯,这里要注意,它跟普通晶体管最大的区别,就是多了一层「浮栅」。

普通晶体管,栅极加电压,沟道导通,电流流过。但浮栅晶体管呢?它在控制栅和沟道之间,夹了一层被氧化物包裹的浮栅。这层浮栅就像一个小仓库,可以存电子。

怎么存进去的?

  • 编程(写操作):在控制栅加高电压,电子穿过氧化层,隧穿到浮栅里。电子进去了,晶体管的阈值电压就升高了。
  • 擦除(清空):在衬底加高电压,把电子从浮栅里拉出来。阈值电压又降回去。

读的时候,我们给控制栅加一个中间电压。如果浮栅里有电子(阈值高),晶体管不导通,读出「0」;如果没电子(阈值低),晶体管导通,读出「1」。

关键点:NAND Flash 的擦除操作,是以「块」为单位的。你没法单独擦除一个字节。这是它跟 NOR Flash 最大的区别,也是很多新手踩坑的地方。

我在项目中遇到过,有人把 NAND 当 RAM 用,频繁改写单个字节。结果呢?块擦除次数暴涨,寿命直接腰斩。记住,NAND 适合大块数据顺序读写,不适合随机小数据频繁改写。

3.2 SLC / MLC / TLC / QLC:一个单元存几个 bit?

刚才说的浮栅,只能存「有电子」和「没电子」两种状态,这就是 SLC(Single-Level Cell),一个单元存 1 bit。

那能不能多存几个?当然可以。通过控制浮栅里电子的数量,我们可以划分出多个阈值电压区间。每个区间代表一个二进制值。

类型 每单元 bit 数 阈值电压区间数 典型寿命(P/E 次数)
SLC 1 2 50,000 - 100,000
MLC 2 4 3,000 - 10,000
TLC 3 8 1,000 - 3,000
QLC 4 16 500 - 1,000

为什么会这样?你想想看,SLC 只有两个电压区间,区间很宽,电子跑掉一点没关系。但 QLC 有 16 个区间,每个区间窄得像刀片。电子稍微漏一点,就可能跳到隔壁区间,数据就错了。

所以,容量越大,寿命越短,速度越慢,可靠性越差。这是物理规律,谁也绕不过去。

3.3 选型权衡:黑匣子该用哪种?

好,现在问题来了:黑匣子该选哪种?

我个人习惯,先看三个指标:可靠性、寿命、温度范围

  • SLC:可靠性最高,寿命最长,能扛 -40°C 到 +85°C。但容量小,价格贵。适合黑匣子里的关键数据存储,比如飞行参数、语音记录。我见过一些老款黑匣子,还在用 SLC,就是因为「稳」。
  • MLC:性价比不错,寿命和容量折中。适合消费级黑匣子,比如行车记录仪。但要注意,MLC 在高温下数据保持能力会下降。我曾经测试过,85°C 下 MLC 的数据只能保持 1 年,而 SLC 能保持 10 年。
  • TLC:容量大,价格低,但寿命短,可靠性差。说实话,我不建议黑匣子用 TLC。除非你做了极强的纠错和磨损均衡,否则数据丢失风险太高。
  • QLC:别想了。黑匣子不是 U 盘,数据丢了是要出人命的。QLC 的寿命和可靠性,根本扛不住黑匣子的严苛环境。

警告:黑匣子存储介质,必须满足以下最低要求:

  • P/E 次数 ≥ 10,000(对应 SLC 或高端 MLC)
  • 数据保持时间 ≥ 10 年(85°C 环境下)
  • 支持 -40°C 到 +85°C 工作温度
  • 内置 ECC 纠错,至少支持 BCH 或 LDPC

达不到这些,就别往黑匣子里放。

3.4 避坑指南:我踩过的那些坑

我曾经在一个项目里,为了省成本,选了 TLC 做黑匣子。结果呢?高温老化测试,数据全丢。嗯,从那以后,我再也不敢在关键系统里用 TLC 了。

还有一次,客户说「我们只要容量大,便宜就行」。我劝了半天没用,最后签了免责协议。半年后,黑匣子从飞机残骸里挖出来,数据读不出来。客户后悔了,但晚了。

所以,我的建议是:

  1. 别贪便宜:黑匣子的存储成本,在整个系统里占比很小。省那几块钱,可能赔上几千万的飞机。
  2. 留足余量:标称 10 万次 P/E 的 SLC,实际用到 5 万次就该换了。磨损均衡算法再强,也扛不住物理老化。
  3. 做好冗余:重要数据,至少存两份。一份在主存储,一份在备份。我习惯用 RAID 1 或者镜像,确保单点故障不影响数据。
  4. 定期测试:黑匣子不是装上去就不管了。每半年做一次全盘读写测试,检查坏块和数据保持能力。发现问题,及时更换。

小技巧:选型时,可以要求供应商提供「数据保持时间 vs 温度」的曲线图。如果他不给,或者含糊其辞,直接换一家。靠谱的供应商,这些数据都是公开的。

3.5 总结:一句话记住

黑匣子存储,SLC 是首选,MLC 是底线,TLC 和 QLC 别碰。容量不够?那就多装几片 SLC,别在可靠性上妥协。

好了,这一章就到这里。下一章咱们聊聊 NAND Flash 的坏块管理和 ECC 纠错,这可是黑匣子数据恢复的最后一道防线。