几年前还在争论到底有没有必要上固态硬盘,现如今,固态硬盘已经是装机的标配了。固态硬盘相对于机械硬盘来说价格高,容量小,但是其高速的读写速度是机械硬盘无法取代的。除了速度之前,大家可能也非常关系固态硬盘的寿命问题,那么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个数据搬到新的Block Y, 然后把Block X擦除。
所以,当我们从Host端写入一个文件时,NAND闪存增加的写入次数可能会比Host端看到的多。
SSD固态硬盘擦寿命计算方法
举个例子,某款120G的SSD,用的是TLC芯片,标称是1000次的P/E,那么当用户向这个硬盘写入或者擦除的数据量达到120G,则视为一次。比如,用户今天下载了60G的电影,然后看完了就删除掉了。就产生了以下操作,下载60G是写入,删除60G是擦除,总共就产生了120G的数据操作。1000次,就意味着,用户如果每天都这样用了120G,这个硬盘的寿命大约就是1000天。
普通用户是否需要考虑SSD寿命的问题?
正常情况下,你不可能每天都有这么大的读写量,另外SSD主控厂商和SSD协议都努力优化了SSD的寿命问题。比如主控厂商对GC的优化,NVMe协议中Multi Stream等功能,都尽可能的减少对NAND闪存的写入次数,延长SSD的寿命。而且现在大多数固态硬盘都有厂家的3年免费质保,所以说固态硬盘的寿命问题无需过多担心(杂牌山寨品牌的ssd另说)