手机闪存和固态硬盘为什么擦除多了会损坏?

手机闪存和固态硬盘为什么擦除多了会损坏?

在我们闪存系列文章中多次提到,构成手机存储和固态硬盘SSD的基本存储单元的NAND闪存,它的寿命是由擦除次数来决定的。准确的来说,是由Program/Erase(P/E)次数来决定的。有很多朋友留言问其中的具体原因,今天我就专门撰文来详细讨论一下其中的原理。本文专注于NAND Flash,有些原理有可能同样适用于NOR Flash,但本文并不关心。如果不做特殊说明,下文闪存(Flash)指代NAND Flash。如果有朋友对NOR Flash感兴趣,见此专门文章:

老狼:杂谈闪存二:NOR和NAND Flashzhuanlan.zhihu.com图标

闪存的工作原理

闪存价格节节攀升,让三星大赚特赚。其实它的基本原理在1980年代之后基本就没有变化过。它的构成和场效应管(MOSFET)十分类似:

它由:源极(Source)、漏极(Drain)、浮动栅(Float Gate)和控制栅(Control Gate)组成。相对场效应管的单栅极结构,闪存是双栅极结构。浮动栅是由氮化物夹在二氧化硅材料(Insulator)之间构成。

我们的写操作(Program)是这样:

在控制栅加正电压,将电子(带负电)吸入浮动栅。在此后,由于浮动栅上下的二氧化硅材料并不导电,这些电子被囚禁(Trap)在浮动栅之中,出不去了。这样无论今后控制栅电压有否,这个状态都会保持下去,所以闪存可以掉电保存数据。注意写操作完毕后,该闪存单元存储的是0,后面我们将会介绍为什么。

我们的擦除操作(Erase)刚好相反:

在源极加正电压利用浮空栅与漏极之间的隧道效应,将注入到浮空栅的负电荷吸引到源极,排空浮动栅的电子。这时读取的状态是1。

那为什么有电子是0,没电子是1呢?以为读取的时候,需要给控制栅加一个低的读取电压,对于被Program过的闪存单元来说,被囚禁的电子可以抵消该读取电压,造成源极和漏极之间是处于被关闭的状态:

如果是被擦除过的就刚好相反,源极和漏极在控制栅的低电压作用下,处于导通状态:

也就是说通过向控制栅加读取电压,判断漏极-源极之间是否处于导通状态来读取闪存单元的状态,如果被Program过的,就是处于关闭OFF状态,为0;而被Erase过的,就是处于导通状态ON,为1。

理论上来说,闪存可以每个单元来单独擦除和编程。但是为了节省成本,实际上作用在控制栅上的擦除电压是整个块(Block)连接在一起的,这就是为什么擦除要以块为单位了。

为什么闪存会损坏

每次电子在包围浮动栅的二氧化硅上进进出出,都会造成它的老化:

长此以往,浮动栅就不能很好的锁住电子,电子会流失造成漏极-源极之间是否处于导通状态错误,进而数据读取错误。闪存控制器通过校验发现错误后会将其标为不可用,而在OP空间找一块来替代,并在FTL表里改变对应关系。

老狼:杂谈闪存三:FTLzhuanlan.zhihu.com图标

而 SLC(Single-Level Cell)的省钱版:MLC(Multi-Level Cell) 和 TLC(Triple-Level Cell) 的引入让这个问题更加严重。原来SLC只有ON/OFF两种状态,现在的TLC要有8种状态:

主要靠精确控制浮动栅里面的电子来实现,老化会让这种控制很容易出错。这样就是为什么MLC和TLC相比SLC,生命周期更短的原因:

注意图中的P/E Cycle。

结论

闪存单元的损坏是个不可逆的过程,坏了就是坏了,人死不能复生,节哀顺变吧。几个坏块不会产生多大问题,OP空间完全可以罩得住,问题是只要产生坏块,慢慢坏块会越来越多,写放大也会越来越严重,慢慢的就会产生读写错误,或者速度严重下降。这时我们一定要考虑换块SSD了。

也许仅仅依靠抽象的判断速度对普通用户并不是很好掌握。就像买西瓜都要拍一下,实际上估计很多人都是做个样子而已。真正科学判断SSD的状态要靠SMART(Self-Monitoring Analysis and Reporting Technology)等工具,我们可以借助SSD厂家提供的工具来查看SSD的健康情况,今后我会专文写写相关内容。

其他闪存相关文章:

老狼:杂说闪存一:关公战秦琼之 UFS VS NVMezhuanlan.zhihu.com图标老狼:杂谈闪存二:NOR和NAND Flashzhuanlan.zhihu.com图标老狼:杂谈闪存三:FTLzhuanlan.zhihu.com图标老狼:杂说闪存四:闪存硬盘接口大比拼zhuanlan.zhihu.com图标老狼:杂说闪存番外:SSD硬盘如何进行日常维护和Trimzhuanlan.zhihu.com图标老狼:杂说闪存番外:傲腾Optane与NAND闪存zhuanlan.zhihu.com图标老狼:杂说闪存番外:我们的数据存在固态硬盘上安全吗?zhuanlan.zhihu.com图标老狼:杂说闪存番外:手机为什么越用越卡和闪存写放大zhuanlan.zhihu.com图标老狼:128G的固态硬盘为什么有的标120G,有的标100G?固态硬盘容量背后的秘密zhuanlan.zhihu.com图标老狼:神秘消失的固态硬盘空间去哪了?zhuanlan.zhihu.com图标

欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!

用微信扫描二维码加入UEFIBlog公众号

编辑于 2018-05-10

文章被以下专栏收录

    从首次运用于Intel 安腾处理器,到第一版统一的可扩展固件接口(UEFI)规范出版,无论是在高性能服务器,移动设备或是深度嵌入式设备等,UEFI已在所有平台完全淘汰了BIOS。这里有关于UEFI的一切。