近日大家對 9 吋 EeePC 十分注目,主要是因為低於四千元的價格和 20G 超大 SSD。不過被人發現當中的 20GB SSD 是由 4G SLC + 16G MLC 組成後,由於 MLC SSD 的速度和壽命遠低於 SLC,立即引起恐慌。網上更有人誤解 MLC 的壽命只有一萬次存取,是等於「如果每天存取三十次,一年便會用完限額」。
我找了一些資料了解過後,發覺其實是有些杞人憂天的。
(圖片來源:akihabaranews.com)
首先,所謂一萬次的限制,只是說寫入的限制為一萬次,讀取資料在理論上是無限的。至於所謂「寫入」,當然不是「save 一個 file 便算寫入一次」。
SSD 的最小存取單位是 "page",通常一個 page 約儲存 2KB 資料。SSD 每次寫入一個 page 時都要先清除上面的資料,這就是所謂的 erase/write cycle(也就是這個原因令 SSD 的寫入速度慢,因為要做兩個 operations),而 SSD 的 erase 不是以 page 為單位的,而是以 64 個 pages 組成的 128KB "block" 為單位。所以這一萬次寫入限制就是說每個 block 可以分別獨立寫入一萬次。所以假設每日寫入 1 GB data 的話,一個 8 GB 的 MLC SSD 的壽命可是有 219 年。
有人會問,如果不斷重複寫入同一個 block,不用很久便會用盡那個 block 一萬次的配額,那樣整隻 SSD 便報廢了?在設計時當然已考慮到這一點,有一種技術叫作 wear-leveling,簡單來說就是會平衡每個 block 的寫入次數,例如當要寫入一個寫入次數偏高的 block 時,會把這個 block 和另一個寫入次數最低的 block 交換(所有工作都在背景完成),這樣就能用盡每一個 block 的配額了。不過留意每次搬動也算上一次寫入的,所以又會再拖慢寫入的速度了。另外一種做法是預留一些不計算入容量的額外 blocks,當有一個 block 到極限時,便用這些預留的 blocks 去充當生力軍,這樣就可以減少很多搬動的時間。
七除八扣之後,當然不會有之前計算的 219 年這麼久,不過只要可以用上三五年,相信已經很足夠了。
參考資料:
SSD Myths and Legends - "write endurance" (StorageSearch.com)






