ENZH
和 AI 讨论这篇文章
ChatGPTClaude

SSD 凭什么断电了数据还在

📊 幻灯片

上一篇讲了 DRAM 是怎么存一个比特的:靠电容存电荷。电容这东西,断电电荷就漏光了,存的数据跟着就没了。但你的 SSD 不是这样啊——电脑关机扔一个月,开机文件全都在。大家好像都觉得这事天经地义吧?可凭什么啊?电都断了,电子凭什么还老老实实待在原地?

NAND 给的答案挺朴素的:把电子关起来。不是打比方,是物理意义上把它关进一个出不来的地方。

电子进得去,出不来

NAND 的存储单元也是个晶体管,但比普通晶体管多了一层结构:一层导电层,四面八方被绝缘体整个包死,这层东西叫浮栅。往浮栅里充电或者放电,晶体管的阈值电压就跟着变——阈值电压这个词有点书面,大概就是「把这个晶体管打开需要多高的电压」。读的时候测一下这个电压是高是低,就知道里面存的是 1 还是 0。

关键就在包着浮栅的那圈绝缘层。电子一旦被塞进去,四周全是绝缘体,它出不来。断电了,它还是出不来。教科书管这个性质叫「非易失性」,这词也挺书面的,说白了就是断电不丢数据。所以 SSD 断电数据还在,没什么玄的,就是电子被关住了,跟供不供电没有一毛钱关系。

NAND 靠一圈绝缘层把电子物理关在浮栅里,进得去出不来,断电也跑不掉,所以数据不丢NAND 靠一圈绝缘层把电子物理关在浮栅里,进得去出不来,断电也跑不掉,所以数据不丢

一个单元能塞几个比特

那一个单元能不能多存几个比特啊?可以。浮栅里的电荷量不是只有「有」和「没有」两档,可以细分成好几档电平,分几档,就能表示几个比特。

SLC 一个单元就两个电平,0 和 1,存 1 个比特,最快也最耐用,企业级和数据中心用得多。MLC 四个电平,存 2 比特。TLC 八个电平,存 3 比特,现在消费级 SSD 的主流。QLC 十六个电平,存 4 比特,容量最大,耐用性也最差。

一个单元塞进越多比特,就要把同一段电压切成越多档、档间越窄,密度越高寿命就越短一个单元塞进越多比特,就要把同一段电压切成越多档、档间越窄,密度越高寿命就越短

电平分得越细,读起来就越费劲——噪声和干扰会让相邻的电平糊在一起,就得靠更复杂的纠错码去兜底,也就是 ECC。QLC 的原始误码率是 SLC 的 1000 倍以上。1000 倍啊。所以市面上所有 QLC SSD,实际工作状态都是边读边纠错的,不是偶尔纠一下,是一直在纠。

为什么 SSD 写多了会坏

NAND 有个致命的物理限制:写入和擦除,都是用高电压把电子硬压过绝缘层,每来一次,绝缘层就被击穿一次。次数多了,绝缘层慢慢退化、开始漏电,最后连电平都分不清了,这个单元就废了。

SLC 的寿命大概是 10 万次编程/擦除,TLC 掉到 1,000 到 3,000 次,QLC 只有 500 到 1,000 次。而且这个次数还不是你直觉里的「写满一次算一次」。SSD 内部有写放大这回事:你写 1MB 数据,SSD 内部要搬移、擦除、重写,真正落到闪存上的物理写入可能是 3 到 5 倍。

所以 SSD 主控芯片的很大一部分心思,都花在给 NAND 续命上。把写入摊到所有单元,别让某几个块先磨报废,这叫磨损均衡;擦一个块之前,先把里面还有用的数据搬到别的块去,这是垃圾回收;再维护一张逻辑地址到物理地址的动态映射表,就是 FTL。这一整套跑下来,SSD 的实际可用寿命还是远低于纸面上那个数。

缩不动了就往上堆

传统 NAND 是二维的,存储单元在芯片表面一字排开。想提密度就得缩制程,单元一缩小,绝缘层也得跟着变薄。但绝缘层薄到一定程度,就关不住电子了。平面缩微就这么走到了物理极限。

3D NAND 的思路是不缩了,往上堆:把存储单元竖起来一层一层叠,相当于从平房改成盖楼。目前主流已经堆到 200 多层,三星 2024 年量产了 290 层的。密度靠层数往上涨,绝缘层不用再变薄。

平面缩微撞到物理墙后,NAND 不再缩小单元,而是把存储单元一层层竖着往上堆,靠层数涨密度平面缩微撞到物理墙后,NAND 不再缩小单元,而是把存储单元一层层竖着往上堆,靠层数涨密度

我只能说,3D NAND 是过去十年存储行业最成功的创新。物理上没什么新突破,纯粹是工程上把单元一层一层堆上去,硬给做成了。

AI 这波跟 NAND 有什么关系

模型权重平时是躺在 SSD 上的,推理的时候才加载进 HBM/DRAM。SSD → DRAM → GPU 这条链路,每次切换模型——比如推理换一个 LoRA adapter——数据都得重新搬一遍,SSD 的速度直接决定 cold-start 延迟有多长。

训练那边更夸张。大规模训练数据集动不动 TB 级甚至 PB 级,全存在 NAND 阵列里,数据加载本身就成了训练瓶颈——GPU 利用率常年低于 70%,里面很大一部分时间就是在等数据从存储搬进内存。这么贵的卡在那干等数据,讲道理挺离谱的。

边缘 AI 那边还有个挺有意思的方向:能不能干脆直接从 NAND 推理?让模型权重就留在 NAND 上不动,需要哪一层,才把哪一层加载进 DRAM。这是 offloading 的前沿方向。

NAND 不像 HBM 那么亮眼,但 AI 系统整体能跑多快,很多时候是它说了算。下一篇就讲那个亮眼的:HBM,把内存直接架到芯片头顶上。

和 AI 讨论这篇文章
ChatGPTClaude

订阅更新

新文章发布时发到你的邮箱,不发别的。


© Xingfan Xia 2024 - 2026 · CC BY-NC 4.0