几年前还在争论到底有没有必要上固态硬盘,现如今,固态硬盘已经是装机的标配了。固态硬盘相对于机械硬盘来说价格高,容量小,但是其高速的读写速度是机械硬盘无法取代的。除了速度之前,大家可能也非常关系固态硬盘的寿命问题,那么SSD固态硬盘寿命是怎么计算的?一块固态硬盘大概能用多久呢?
擦写次数是决定SSD固态硬盘寿命的关键因素
要了解SSD固态硬盘的寿命,需要先了解一下SSD固态硬盘中的存储介质NAND闪存。NAND闪存原理上是一个CMOS管,有两个栅极,一个是控制栅极(Control Gate), 一个是浮栅(Floating Gate). 浮栅的作用就是存储电荷,而浮栅与沟道之间的氧化层(Oxide Layer)的好坏决定着浮栅存储电荷的可靠性,也就是NAND闪存的寿命。
在NAND闪存中,P/E Cycle,也称为擦除次数,是判断NAND闪存寿命的关键参数。随着P/E Cycle的增加,浮栅与沟道之间的氧化层被磨损的越来越严重,导致浮栅中电子的控制越来越艰难,最终结果就是,NAND的寿命走到了尽头。每颗NAND闪存,不管MLC或者TLC,在出厂的那刻,寿命就固定了,所以,减少PE cycle,是延长SSD固态硬盘寿命的主要方式。
Host擦除次数与NAND擦除次数的区别
当我们从电脑上(也就是Host端)往SSD固态硬盘中写入一些数据,然后再擦除,这部分只能算是Host端的擦除次数,并不是SSD存储介质NAND闪存真正的擦除次数。在这里有一个关键的参数,叫做写放大(WA, Write Amplification). WA=NAND闪存写入数据量/Host写入数据量。
当我们顺序写入数据时,NAND闪存端与Host端写入的数据量基本一致,这是写入放大WA=1.
当我们随机写入数据时,NAND闪存端与Host端写入的数据量就会产生差异,因为这个过程中涉及到了垃圾回收(Garbage Clean).
比如,我们写入在上图的Block X写入4页数据A,B,C,D, 之后我们写入新的数据E,F,G,H以及A,B,C,D的更新数据A',B',C,D'.这样的话,原来的A,B,C,D已经是无效数据。由于NAND闪存只能以块为单位进行擦除。之后,SSD启动垃圾回收GC,这样的话就需要把E,F,G,H,A',B',C,D'这8个数据搬到