QLC SSD为什么不耐用?

很多人已经隐约感觉到了:

现在的 SSD,越来越不像“耐用品”, 而更像“消耗品”。

用着用着掉速, 写着写着寿命见底。很多人第一反应是: 是不是厂商缩水了?是不是偷工减料?

但如果把问题往底层再挖一层,会发现一个更真实、也更残酷的答案:

不是 SSD 变差了,而是我们在用一种更“极限”的方式存数据。

而 QLC,正是这种“极限操作”的代表。


一、SSD并不是“写进去”的

我们习惯理解的“写数据”,是这样的:

  • 写1就是1
  • 写0就是0

但在 NAND 里,完全不是这么回事。

一个 cell,本质上不是“0或1”,而是一个电压值(threshold voltage)。

所谓的数据,其实只是:

这个电压,落在哪一个区间

换句话说:

👉 SSD 不是“写进去”的 👉 而是一点一点“逼近出来”的


二、从TLC说起:8个波峰已经很挤了

如图所示,以 TLC 为例,一个 cell 存 3bit:

👉 一共 8 个状态(000 ~ 111)

写完之后,不是8个“点”,而是:

👉 8个“波峰”(电压分布)

每一个波峰,都有宽度、有误差、有漂移。

但问题还不算严重,因为:

👉 8个区间,还勉强能分开


三、QLC做了一件更激进的事

到了 QLC,情况发生了本质变化:

👉 一个 cell 存 4bit

意味着:

👉 16 个状态(0000 ~ 1111)

问题来了:

同一段电压空间,要塞下16个波峰

你可以这样理解:

  • TLC:8个人住一栋楼
  • QLC:16个人住同一栋楼
  • 房子大小没变

👉 每个人的空间,被直接压缩了一半。


四、问题核心:不是写不进去,而是写不准

很多人以为 QLC 的问题是“写不进去”。其实恰恰相反:

QLC 最大的问题,是写不准。

NAND 的写入过程,之前的两篇文章已经详细介绍过,本质是:

👉 加一点电压 → 验证 → 再加一点 → 再验证

这个过程叫:

👉 逐步逼近(ISPP)

但在 QLC 里:

  • 每个状态之间间距极小
  • 每一步都必须更精细
  • verify 次数暴增

稍微多一点:

👉 写“过头”(overshoot)

稍微少一点:

👉 落不到目标区间

👉 容错空间几乎被压扁


五、工程师是怎么“硬撑住”的?

既然这么难,为什么还能用?

答案是:改变写入方式


1️⃣ Two Pass(主流)

现在的 QLC,大多采用:

👉 两步写入

  • 第一步:粗写(先大致落位)
  • 第二步:细调(再逼近目标)


2️⃣ Three Pass(早期方案)

更早期的 QLC,更“保守”:

👉 分三步写:如图所示,写page0~3一共4个page分了三步。

  • 2个状态 → 8个状态 → 16个状态

也就是:

先搭骨架,再细化,最后精修

但代价很明显:太慢了

所以逐渐被淘汰。


六、为什么这会影响寿命?

关键点来了,很多人以为寿命低是因为“写得多”。

但真正的原因是:

每一次写入,本身就更“折腾 cell”

因为:

  • ISPP 步数更多
  • verify 次数更多
  • 电压调整更频繁
  • 邻近干扰更严重

👉 一次写入,对 cell 的消耗更大


七、一个反直觉的事实

很多人以为:

SSD 技术在进步,是越来越稳定

但现实是:

我们是在用越来越精细、越来越脆弱的方式存数据

换句话说:

  1. 我们不是把数据写得更清楚了
  2. 而是把“容错空间”一点点榨干了

八、QLC,到底算不算进步?

如果从容量和成本看:

👉 是进步

但如果从稳定性和寿命看:

👉 它更像是一次工程上的妥协

因为并没有找到更稳定的存储方式, 只是把原本还能容忍的误差空间:

👉 继续压缩了一半


九、总结

如果只记住一个结论,那就是:

SSD 的写入,本质不是“写”,而是“逼近”

而 QLC 的问题在于:

它要在极其狭窄的空间里,做极其精细的逼近

这,就是它不耐用的真正原因。


🔥(收尾钩子)

那问题来了:

👉 既然波峰会重叠、会漂移,SSD 是怎么“读对”的?

下一篇,我们聊一个更关键的东西:

读,是怎么在一堆模糊信号里“猜对答案”的