之前我们聊了 program,也聊了 read。今天,把 NAND 里最后一块总让人别扭的拼图补上:erase。
很多人第一次认真学 NAND,都会卡在一个问题上:
为什么 NAND 可以按 page 读取、按 page 写入,却偏偏不能按 page 擦除,而只能按 block 擦除?
这件事非常反直觉。
我们平时理解“删除”,往往都是这样的:
- 哪个文件不要了,就删哪个文件
- 哪张照片不想留了,就删哪张照片
- 内存里的某个字节,也可以单独改写
总之,都是一句话:
哪里不要,就改哪里。
可到了 NAND 这里,规则突然变了:
- 读,可以按 page
- 写,也可以按 page
- 擦,却只能整块、整块地擦
这就让人很疑惑:
既然都已经能定位到某个 page,为什么不能只把这一个 page 擦掉?
很多人以为这是协议规定。也有人以为这是厂商故意这么设计。其实都不是。
问题不在于“能不能找到这个 page”, 而在于:
program 和 erase,在物理上根本不是同一种动作。
一、program 为什么能做到 page 粒度?
先回忆一下 program。
program 的本质,是通过控制栅极加电压,把电子一点一点送进浮栅层。这个过程之所以能做到 page 粒度,是因为它天然就是一个局部、渐进、可验证的过程。
写入时,控制器大致会做三件事:
第一:用 wordline 选中这一行。 第二:用 bitline 决定这一行里哪些 cell 要写,哪些 cell 不写。 第三:配合 ISPP,一点一点往里加电子:
- 先加一点
- 验证一下
- 不够再加一点
- 直到阈值电压落进目标区间
所以,program 很像什么?
很像拿着一支很细的笔,对着某一行、某几个格子,一点一点补墨水。
它不是一下子猛灌进去,而是边加、边看、边停。
这就决定了:program 天然适合做精细控制。而且从电子运动的方向看,这条路还特别“顺”。
在 program 时,电子是从衬底这一侧进入浮栅层。随着浮栅层里的电子越来越多,这些电子本身又会形成反向电场,让后面的电子越来越难再进去。
换句话说:
program 天生自带刹车。
越接近目标,越容易收住。 越接近目标,越容易细调。
这几乎就是为 page 级写入量身定做的物理路径。
二、erase 不是“反着写一下”那么简单
很多人会下意识觉得:既然 program 是往里加电子,那 erase 不就是把电子再减回去吗?
听起来很合理。但 NAND 里真正的 erase,并不是“反着写一下”。
program 是把电子弄进去; erase 则是把电子弄出来。
看起来只是方向相反,但底层实现方式完全不同。
在 NAND 里,erase 一般不是靠“对某一个 page 局部减电子”来完成的。 它更像是一种区域性的高压动作:
- 把阵列下面共享的 common p-well / 衬底 拉到很高的正电压,量级大约是 20V
- 同时把被选中 block 的 wordline 接地,也就是 0V
- 这样,浮栅层和衬底之间就建立起很强的电场
- 浮栅里的电子被拉回衬底
- cell 的阈值电压整体下降,回到 erased state
注意这里最关键的一点:
program 更像是在某个 cell 上局部下手。erase 更像是在整块阵列下面“抬地基”。
这就是两者最本质的区别。
三、真正的问题,不是能不能选中这个 page
讲到这里,很多人还是会继续追问:
那只让某一条 wordline 参与 erase,不就只擦掉一个 page 了吗?
这个问题特别自然。而这也正是这篇文章真正的灵魂。
因为问题根本不是:
“能不能找到这一条 wordline?”
而是:
“如果我只想擦这一条 wordline,怎么保证旁边那些 wordline 不出事?”
这才是 page erase 真正难的地方。
四、为什么只擦一个 page 会突然变得很难?
因为 erase 不是像 program 那样,靠 bitline 决定“这一颗写,那一颗不写”。
erase 更像是一种整片结构上的高压偏置条件:
- 下面共享的 p-well/衬底 被整体拉高
- 上面被选中的 wordline 接地
- 中间形成强电场
- 电子从浮栅层回到衬底
这里先注意一个词:共享。
也就是说,下面的 p-well 不是这个 page 独享的。它不是“这个 page 自己的小地盘”,而是很多 cell、很多 string 共用的一片结构。
这意味着:
一旦把 p-well 拉高,影响的不是某一个孤立的小区域,而是下面整片阵列。
所以不能只考虑“这一条 wordline 怎么擦”,还得同时考虑:
旁边那些不该擦的 wordline,怎么保住。
而这件事,恰恰就是single-WL erase最麻烦的地方。
因为只擦中间这一条,实际上等于要求两种相反的条件,在几乎挨在一起的几条 wordline 上同时成立:
- 目标 wordline,必须处在最容易 erase的状态里
- 可它左右两边那几条 wordline,又必须处在最不容易 erase的状态里
问题就在这里:
它们离得实在太近了。这里没有一个放之四海而皆准的“危险距离”,因为真正起作用的,从来不是距离本身,而是距离、压差和介质承压能力三件事叠在一起。但公开资料已经把量级摆得很清楚:2D NAND 一旦进入 sub-40nm、尤其 20–24nm 这一代之后,邻近干扰就已经明显加重;而在今天的 3D NAND 中,相邻 wordline 的 pitch/节距 公开资料也常见只有大约 40nm。
想让中间这一条“强力擦除”, 又想让旁边那几条“强力抑制”, 最后就不得不把相邻 wordline 硬拉到截然不同的电压条件里。
而在现代 NAND 里,wordline 间距已经非常小。 这时候,危险才真正出现:
不是擦不到中间这条, 而是为了只擦它,不得不先把左右邻居推到完全相反的电压世界里。
相邻 wordline 一旦被这样强行拉开,中间那层隔离介质承受的横向电场就会迅速变强。 这也是为什么,厂商在继续缩放时,已经把 inter-WL dielectric(隔在两条 wordline 中间、负责把它们电气隔开的那层绝缘材料) 本身的可靠性,当成必须正面解决的问题。也就是说,single-WL erase 难,不是难在“选不中”,而是难在:
为了让这一条擦、旁边两条不擦,先把相邻结构逼到了危险边缘。
五、为什么 program 不会把旁边 WL 搞坏,而 erase 想只擦一条时却容易出问题?
很多人到这里会有一个非常自然的疑问:
program 的时候,被选中的 wordline 也会加到很高的电压;旁边那些没被选中的 wordline 也会加 pass 电压。那为什么 program 不会把相邻 wordline 之间的介质先搞坏?
而到了 erase 这里,为什么一旦想只擦一条 wordline,问题就突然变严重了?
这个问题的关键在于:
必须区分两件事:
- 高压操作进行时,wordline 之间真实承受的电压差
- 操作结束后,cell 因为存了不同电荷而留下的阈值差
这两件事,看起来有点像,其实完全不是一回事。
1)program 结束后,Vprogram 和 Vpass 都会撤掉
先说最容易混淆的一点。
program 一个 page 时,确实会出现这样的偏置条件:
- 被选中的 WL:十几伏,书里的图示量级是 18V
- 旁边未选中的 WL:不是 0V,而是较高的 pass 电压
- 在公开的 program inhibit 资料里,这个 pass 电压常见是 7V 左右,也可以粗略理解成 7~10V 量级
但这些电压,只存在于 program pulse 正在施加的那一刻。
等写入完成之后:
- Vprogram 会撤掉
- Vpass 也会撤掉
所以 program 结束后,相邻 wordline 导体之间,并不会继续保持“18V 对 7~10V”这样的电压差。
这时候留下来的,不是 WL 上的高压,而是 cell 状态的变化:
- 有些 cell 的浮栅里存进了更多电子
- 这些 cell 的阈值电压变高了
- 没被写进去的 cell,阈值电压还是低的
也就是说:
program 结束后留下来的,是 Vth 差,不是 WL 导体之间还挂着高压差。
2)program 时,相邻 WL 之间的压差其实是被控制过的
那为什么 program 在 pulse 进行时,也不会轻易把相邻 WL 搞出大问题?
因为实际 program 不是:
- selected WL:18V
- 旁边所有 WL:0V
如果真是这样,相邻 WL 之间的压差确实会非常夸张。
但 NAND 实际不是这么偏置的。
program 时更接近这种关系:
- selected WL:18V 量级
- neighbor WL:7~10V 量级的 pass 电压
- 不想被写入的 string,再通过 inhibit 把 channel 抬高,避免电子进入浮栅层
所以相邻 WL 之间真正承受的差值,不是:
18V 对 0V
而更像是:
18V 对 7~10V
也就是说,相邻 WL 之间的实时压差虽然存在, 但它是一个被设计过、被控制过的差值。
因此,program 的主要问题通常不是“相邻 WL 中间介质直接扛不住”,而更多体现为:
- program disturb
- pass disturb
- edge disturb
3)erase 真正危险的,是“只擦一条”时的实时压差
现在再看 erase。
《inside NAND FLASH memories》作者给出的典型 erase 条件是:
- common p-well / 衬底:约 20V
- 被选中的 block 的 WL:0V
- 然后电子从浮栅层回到衬底,cell 被擦除
如果现在擦的是整个 block,那问题反而没那么尖锐。
因为这时候,这个 block 里的很多 wordline 往往是一起配合动作的。 换句话说,在被擦 block 内部,更接近的是:
- WL1:0V
- WL2:0V
- WL3:0V
- WL4:0V
- 下面 p-well:20V
此时会发现,在这种情况下:
同一个被擦 block 内,相邻 WL 之间的压差其实并不大。
真正强的,是从 WL 往下到衬底这一条方向上的电场。 也就是“竖着”的场在起作用, 而不是“横着”的 WL-to-WL 电场在主导。
这就是为什么正常的 block erase,并不会天然触发“相邻 WL 之间先被打坏”的那个问题。
4)真正麻烦,是非要做 single-WL erase
问题出在这里。
假设现在不想擦整个 block,而只想擦其中一条,比如 WL2。
那就会希望:
- WL2:保持在容易 erase 的条件下,比如 0V
- p-well:还是 20V
- 但 WL1 和 WL3:又绝对不能一起被擦掉
那怎么保护 WL1 和 WL3 呢?就必须把它们放到一个更高的电位, 让它们对应 cell 的 erase 条件不成立。
于是局面很快就会变成:
- WL2:0V
- WL1 / WL3:十几伏
- p-well:20V
这时,最危险的地方就不是“WL2 能不能擦掉”,而是:
WL2 和左右相邻 WL 之间,被强行拉出了很大的实时压差。
而现代 NAND 里,wordline 之间的距离非常小。在这么小的线距下,一旦相邻 WL 之间出现很大的压差,中间那层介质承受的横向电场就会非常强。
这时候本来是在“保护旁边那两条线别被擦掉”,结果却可能先把相邻结构逼到一个更危险的状态。
所以 page erase 难,不是难在“这条 WL 选不中”, 而是难在:
一旦选中了这条 WL,就必须让它和左右邻居活在完全不同的电压世界里。
这件事,在现代高密度 NAND 里,代价极高。 作者也正因此强调:如果为了保护部分 wordline 而让相邻 wordline 出现非零电压差,那么相邻 wordline 之间的电场可能导致介质击穿。
六、所以,program 和 erase 的本质差别到底是什么?
到这里会发现,真正的差别不是一句“一个加电子,一个减电子”就能说完的。
更深一层的差别是:
program 的控制方式
像针。
- WL 选行
- BL 选 bit
- 一点一点写
- 边写边 verify
- 相邻 WL 的压差也被控制在合理范围内
所以它天然适合 page 粒度。
erase 的控制方式
像铲子。
- 依赖共享 p-well 的高压
- 依赖整块 WL 的偏置配合
- 是区域性动作
- 一旦想强行缩小到 page 粒度,就得先解决相邻 WL 的保护问题
所以它天然更粗。
一句话说透就是:
program 像拿针一点一点补。erase 像想拿铲子只挖走一粒沙。
不是绝对做不到。而是为了做到它,要付出的结构复杂度、可靠性代价和高压控制成本,往往大得不划算。
七、这不是协议规定,而是物理结构逼出来的结果
很多人第一次知道 NAND 只能 block erase 时,会以为这是协议规定、接口限制,或者厂商为了省事。
其实顺序正好反过来。
不是先有协议,再规定只能 block erase。而是先有 NAND 这种器件结构和擦除方式,后面的系统设计、接口定义、FTL 逻辑,都是顺着这个物理现实往上搭出来的。
也就是说:
不是大家商量好了 NAND 只能整块擦。而是 NAND 这种结构,天生就更适合整块擦。
一旦这个事实定下来,后面很多熟悉的 SSD 机制,其实都能一下子串起来:
- 为什么 NAND 不能原地覆盖写
- 为什么要 out-of-place update
- 为什么需要 FTL
- 为什么会有 GC
- 为什么会有磨损均衡
- 为什么擦写次数会影响寿命
因为所有这些复杂机制,往前追根,最后都会指向同一个源头:
erase 很重,粒度很粗,代价很高。
八、最后收刀
我们在软件世界里说“删除”,总觉得那是个很轻的动作:
- 点一下
- 删掉
- 完事
但在 NAND 的物理世界里,删除从来都不轻。
它不是抹掉某一个格子,也不是把某一页轻轻清空。它更像是:
把整块阵列下面的地基抬起来,再把一整块 cell 里的电子一起拉回去。
所以 NAND 不是不会精细。它在 read 和 program 上,已经精细到 page。真正粗的,是 erase。
而 SSD 后面那些看起来复杂得有点过分的机制,很多并不是“锦上添花”,而是在给这个粗粒度的 erase 善后。说到底:
SSD 不是先有 FTL、GC、磨损均衡,后来才遇到 erase。而是先有 erase 的物理限制,后面才被逼出了整个 SSD 世界。
Alipay
Wechat