
MizuiroBOX第4季-第28期
我们都知道,闪存是有擦写寿命的,虽然很少有人能把闪存的寿命用完(当年被写坏的盘很多都是“石广”和数据中心盘),但是还是很多人对闪存寿命存在几乎没有必要的焦虑,所以我还是要来说说,闪存的寿命和哪些因素有关。

首先是2D闪存,众所周知,2D闪存的寿命和光刻制程关系密切,制程越先进,闪存单元的绝缘层越薄,理论上擦写寿命就越短。当然不同厂商的制程没有一起比较的价值,例如2D时代SK海力士闪存出了名的喜欢漏电,这就说明其制程和其他厂商的没有办法比较了。
到了3D时代,3D闪存的寿命就稍微复杂一点。首先,大部分3D闪存使用的是电荷捕获(CTF)技术,优点是耐擦写性能有非常大的提高,同样的TLC,末代的2D TLC可能1000次擦写就达到了SPEC寿命上限、3000次擦写就会出现大量的无法纠正错误,闪存报废,但是CTF技术下的3D NAND保守一点估计也可以提升到4倍的写入耐久度。但是CTF的缺点就是(新盘时)数据保持能力相比浮栅(FG)技术差,可以这么理解,FG技术的前期比CTF更能保持数据,但随着写入次数增加,FG的绝缘层逐渐被消耗,不耐擦写的问题逐渐显现,数据保持能力下降到不如CTF。所以可以粗略认为FG闪存适合读取密集型工作,CTF适合写入密集型工作,但实际上家用用不出区别。目前只有IMFT以及英特尔/Solidigm的闪存使用FG技术用于3D闪存,其他厂商(包括美光的128L之后)都是CTF闪存。
还有就是大家都知道的SLC/MLC/TLC/QLC了,大家都知道我就不多说了,实际上这只对同制程下闪存有比较价值,例如同为IMFT 96L,TLC一定比QLC擦写寿命长,这是合理的,但是东芝15nm MLC在擦写寿命上可能还就真不如BICS4 TLC。你可能会说PLC,目前这种东西只能在液氮中可用,所以五年内普及还很难。
除了闪存自身因素外,闪存的使用层面也有很多影响寿命的因素。
首先是ECC(错误检查与纠正)。ECC技术是现代存储器必需的技术,闪存的ECC则尤为复杂,从2D MLC时代的BCH码到现在最常见的LDPC码(LDPC也分为2k和4k),纠错能力逐渐提升,也越来越复杂、消耗算力越来越高,纠错能力越强,就越能延长闪存的使用寿命,本来BCH无法纠正的错误换成更先进的LDPC纠错码后可以纠错,这就让闪存在BCH下是报废状态,在LDPC下依然是可用状态。
当然还有一个很影响闪存寿命的技术,SLC Cache,这种现在在家用SSD上司空见惯的技术对闪存擦写寿命的伤害是你难以想象的——静态SLC Cache对闪存寿命几乎没有影响,但是目前最常见的动态SLC Cache则非常伤害闪存的擦写寿命,TLC写入是至少3+1倍的写入放大,QLC则是至少4+1倍的写入放大。但好在家用SSD的写入量不大,而且现在CTF的闪存非常耐擦写,所以还是不用担心SLC Cache能把闪存写坏,而写入量极大的企业级写入密集型SSD则不使用这个技术,也没有担心的必要。
也有其他“固件层面”的东西,例如垃圾回收、常规情况的写入放大等,基本上就是垃圾回收策略越激进,写入性能、一致性越好,但对闪存伤害越大。而我们常说闪存盘不要写太满,也是因为闪存盘写太满,会增加写入放大,当然OP空间大一点是可以解决“满盘”下写入性能下降及写入放大问题的,但是家用盘也没有那么多OP。
最后就是,如何界定一个闪存是否“报废”?这就涉及到标准问题了,不同厂商有不同的规定,例如当初有一个表格,介绍的是美光的闪存盘SPEC,大概就是,SPEC寿命1000P/E指的是,1000个P/E之后,写入的数据还能在断电下、30摄氏度下保存1年读取不出错,其实这个标准是比较高的,因为这个时候闪存还是能继续正常读写、使用很长时间的,而且30摄氏度的温度,人都嫌热,电脑断电不可能有如此高的温度的。当然也有其他的标准,例如“写到死”,这个比较简单粗暴,就是什么时候写到盘再也没法正常读写为止,可能到后期,因为ECC的压力剧增,SSD的读写性能会剧烈下降,但这依然不算“死”,有些人一定要写到写入的数据几秒钟之后就无法靠ECC纠正为止,这时才算“报废”,也确实,这个时候闪存就是实实在在的电子垃圾了。

但以上说的这些,对于大多数用户来说一点用都没有,你决定不了大部分影响闪存寿命的因素,你能做到的只有降低闪存的工作温度,让它保持数据的时间长一点,仅此而已。当然别去掏一些垃圾企业盘、其他二手盘,现在这个“万物皆可清零”的时代,你可能会花不少钱买到个几乎报废的垃圾回来,例如当年比较有名的美光M600,都多少年了还有“0写入0通电”,你信吗?什么“A片老演员是童贞”啊这是。
ETAC Labs

流石雪菜
a.k.a. Sasuga Setsuna
Mizuiro-Aqua联合创始人、编辑
From Clover4 Centre
bilibili:@SasugaSetsuna
煨衅功仲号:@流石雪菜 @Mizuiro-Aqua
(雪菜的新号开放了!欢迎过去撩扯~)