1. 程式人生 > 其它 >SSD盤為什麼有擦寫次數

SSD盤為什麼有擦寫次數

這個問題,要從SSD盤的結構說起。SSD盤由控制單元(主控晶片)和儲存元(快閃記憶體晶片)兩部分組成。而影響寫入壽命問題,就出在快閃記憶體器件上。

1、快閃記憶體儲存單元的物理結構中,用氧化物建立一個電場,電子穿過氧化物並儲存電荷,記錄一個電位值,即寫入1位資料,擦除資料會向相反方向發生同樣事件。問題是電子穿過氧化物的次數越多,氧化膜就會變的越弱,最終電場也不能阻止電子的自由活動了,這個單元儲存顆粒就損壞了。

比如一個單元顆粒,可以擦寫1000次;利用多個這些個單元顆粒,組成了100G的硬碟;當你正好寫入100G的資料的時候,這個100G的硬碟,正好每個顆粒被擦寫了1次。個人的SSD硬碟,如果每天能寫滿100G,那1000次的顆粒硬碟,可以用1000天。

平時我們的SSD,寫入是非常少的,為了保證每個顆粒的使用頻度;SSD有一套均衡機制,保證每個顆粒都能被使用到,而且儘可能的使用的平均。 如果100G硬碟,平時只有10G資料,不會只往那10G上寫【與機械硬碟的區別】,否則的話,那10G寫報廢了,豈不是整個硬碟也跟著報廢。

即使硬碟有些資料是始終只讀的,在其它顆粒被頻繁使用後,排程也會做出資料遷移,保證每個顆粒的平均使用度。就是,100G的硬碟,一天寫100G,如果是1000次擦寫的,基本上用3年沒任何問題【理論上的,沒有其它故障原因】。

但是,一天寫100G,基本不可能,所以呢,一個固態硬碟,用個5、6年基本沒問題,跟機械硬碟差不了多謝; 反而是機械硬碟頻繁擦寫固定的位置,反而容易壞道。

 

2、因此,寫和擦都是會減少氧化膜的壽命的,製造工藝又限制了該膜的厚度,其儲存單元的壽命由此而來。理論值,SLC快閃記憶體擦寫壽命10萬次;MLC快閃記憶體擦寫壽命1萬次;TLC快閃記憶體擦寫壽命500~1500次。

 

SSD的磨損均衡

上面說過,每個Flash顆粒中Block的可擦除次數是有限制的,如果顆粒中的某些Block很快達到了擦除次數上限,而其他大部分都幾乎沒有被擦除過,則會很快的造成整個SSD失效。而磨損均衡(Wear Leveling)則是通過各種手段,保證整個SSD所有的block的擦除次數是相近的從而延長SSD的使用壽命。

磨損均衡分為 動態磨損均衡 和 靜態磨損均衡:

動態磨損均衡

,是指在外部力量的驅動下,自然完成磨損均衡。這裡外部力量,包括寫IO和垃圾回收。

靜態磨損均衡,是指磨損均衡功能模組主動地查詢那些長時間沒有變化的資料,將這些資料搬移到其他位置,以便釋放出擦除次數較少的block,使其投入到擦除/程式設計的迴圈之中。