余生

SSD(闪存)寿命详细解析
众所周知,固态硬盘(SSD)是有寿命的,而这个寿命受许多因素影响。固态硬盘和HDD的区别就在于固态硬盘储存介质是N...
扫描右侧二维码阅读全文
18
2019/11

SSD(闪存)寿命详细解析

众所周知,固态硬盘(SSD)是有寿命的,而这个寿命受许多因素影响。固态硬盘和HDD的区别就在于固态硬盘储存介质是NAND Flash,NAND Flash的寿命就是固态硬盘的寿命。在解释闪存(NAND Flash)寿命之前,需要先了解闪存的工作原理。一般来说,闪存的存储结构是金属氧化层半导体场效晶体管(MOSFET),MOSFET是最小储存单元(如图1)。
a98211f1415deb23485c84aeb2d22cf8.png

其中,数据以电荷(electrical charge)形式储存。储存电荷的多少,取决于图中的控制栅极(Control gate)所被施加的电压。数据以所存储的电荷的电压是否超过一个特定的阈值Vth来表示。对于SLC(Single-Level Cell)来说NAND闪存的写入(program),是通过量子遂穿效应,通过Control Gate充电(对Control Gate施加电压),使得浮置栅极存储的电荷电势超过阈值(表示0)。NAND Flash的擦除(Erase),是对浮置栅极放电,使电势低于阈值(表示1)。
3e887393b9f52e147105de0a01550b16.png

上图是一个SLC颗粒内部结构,不同厂家不同型号颗粒Page和Block不同。数据写入时,在字线(wordline)上施加电压,擦除时则是在位线(bitline)上加压。因为一个块共享一条位线,所以擦除的单位是块(block),一个page共享一个字线,所以写入最小单位是页(page)。SLC由于只有一个阈值,所以只有2个状态,而MLC相比SLC,有更多的阈值,所以有更多的状态(储存更多的数据),在施加的最高电压相同的情况下,MLC各个阈值之差更小。并且由于MLC颗粒中,状态增加,但是改变状态的方式却没有增加,所以写入数据变得更复杂,MLC写入变慢主要就在于此。闪存寿命影响因素:1.物理效应导致闪存失效MOSFET在不断的擦除,写入过程中,会有一部分电子被图1紫色部分的二氧化硅绝缘层捕获,并且不断积累。而电子周围存在电场,可以改变周围的电势,导致读取到的电势与写入时的电势存在偏差。所以当绝缘层中积累的电子足够多的时候,读取到的电势(数据)会超过写入后的电势,超过下一个阈值,导致数据与写入时的不符,此时这个MOSFET将不能使用。
a3963ca0e6bbfc9d923a56a4dfb5694c.jpg
2→2²→2³→2⁴

2.MLC相比SLC寿命减小原因假设有一个NAND颗粒,它有1k个MOSFET,每个MOSFET可以擦写10k次。使用MLC方式时,它可以储存3kbit的数据,代表着容量是3kbit。在最理想状况下,它可以写入的总数据量是10000kbit。使用SLC方式时,它可以储存1kbit的数据,代表着容量是1kbit。在最理想状况下,它可以写入的总数据量是10000kbit。所以,MLC的可写入数据总量/容量为10000/3,即3333次P/E,而SLC的可写入数据总量/容量为10k,即10k次P/E。
e6683d4bc097a1fe5c97c11682fd1742.jpg
9ed363324d5f65d5494ef2ab9715f708.jpg

3.写入放大导致实际寿命比理论寿命低在第一段闪存原理处我们可以得知,每次擦写都需要擦写一个块(block),每次写入都需要写入一个page。假设我们有一个1024KB的NAND。假设该NAND一个page是8kb,一个block是128page(实际上还有4kb/page,16kb/page,256page/block等等)。假设该NAND有10000次P/E。经过计算,理论上的可写总量是10240000kb现在已经有16KB的数据存进了2个page,假设这2个page属于一个block。那么当我需要更改最开始的2kb数据时,需要进行如下操作:①读取后2个page中的数据到缓存②擦写这个block③将修改的2kb和原来不修改的7x2kb写入到2个page。根据以上步骤,我们可以发现,我们修改第一个2kb文件,需要释放2个page中的电子,代表着消耗了这2个page的一次P/E,实际写入了16kb,NAND的可写容量缩小了16kb。如果我们重复以上过程,那么NAND的寿命将会是理论上的2kb/16kb=1/8。浅谈SLC到QLC,及更新的制程带来的问题:由于量子遂穿效应,电子在MOSFET中,即使没有被施加电压,也有一定的概率从浮置栅极中跑出,造成电势改变。随着时间的增加,改变的电子增多,数据就可能会失效。由于MLC中数据的读取对电势更敏感,所以有更大的导致概率数据失效。在此提出个人建议:请不要将关键数据储存在劣质SSD及长期不通电的SSD中,不要将民用级SSD作为数据盘。随着新工艺,新制程,MOSFET间距和复制栅极厚度会变小,所以MLC的P/E次数不一定在5000左右。虽然在算法的支持,和大容量下,QLC的寿命不是问题,但是请不要盲信那些没有经过数据完整性的写入测试(就像扩容U盘一样,能写入不代表能正常储存)。

以上就是本文全部内容,关于如何减小写入放大,以及固态硬盘的主控究竟在干什么,请戳查看链接
关于如何提高硬盘容量(MLC,TLC,3D,多层堆叠),请戳查看链接
关于SSD的工作原理,请戳查看链接

Last modification:November 18th, 2019 at 05:55 pm
如果觉得我的文章不错,请随意赞赏吧Σ(゚∀゚ノ)ノ

Leave a Comment

召唤看板娘