快閃記憶體 SLC 與 MLC 的差別

最近好像太常碰到這個問題了, 就寫一篇文放著, 下次再遇到人問就丟這篇的URL給他看.

首先還是得先來一些關於快閃(flash)記憶體的預備常識:快閃記憶體的用途目前最常見的就是: 記憶卡 (你的數位相機在用的), 隨身碟, 以及 SSD (固態磁碟機).
依其記憶單元的儲存技術, 可分為:
SLC: Single-Level Cell, 一個記憶單元只存放一個位元 (兩個狀態)
MLC: Multi-Level Cell, 一個單元可以存放多個電位狀態, 以 2 bits 為例就是 00, 01, 10, 11 四個狀態, 如此一來儲存密度較 SLC 高, 成本較低, 但速度就慢多了 <— 我們不要太深究為什麼, 那是學電子的人才要去關心的事…我們暫時只需知道片面的結論就好. 讀完這一點, 你已經知道 SLC/MLC 不是牌子的名稱, 而是不同的技術名詞.SLC 的壽命為 100,000 次的讀寫
MLC 的壽命為 10,000 次的讀寫
是的, 以同容量的 SLC 與 MLC 隨身碟相比, MLC 的價格大約才四分之一, 但壽命只有十分之一Wear-leveling (損耗平均) 技術:
不管是 SLC 或 MLC 都有壽命上的問題, 所以如果有些記憶單元太常被讀取, 就會比其他記憶單元早很多步往生歸西. wear-leveling 就是要想辦法偷偷幫你搬家, 平均用掉這些記憶單元的壽命. 例如你家樓下有十個信箱筒, 有三個最常被使用, 怕說壞得比較快…樓下管理員就在半夜偷偷地把另外幾乎沒在用的三戶的信箱筒掉包…大概就是這樣的概念了. 等等, wear-leveling 當然是控制晶片 (樓下管理員) 在管的啦, 你有看過信箱 (記憶單元) 會自己搬家的嗎? 讀到這裏, 你應該更有概念了: 一隻 16G MLC 隨身碟的壽命, 不是一隻讀寫一萬次就完蛋了, 而是 [理想上] 有 16GB*10000 這麼長命; 觀念不在次數, 而在總資料流量. 160000GB 的資料流量, 給你三年的時間當分母好了, 全年無休地天天拷來拷去, 一天 146GB 耶!多通道讀寫:
類似的名詞這幾年比較常見於主機板: 雙通道記憶體. 兩條RAM同時抓取資料, 在相同時間內抓到的資料量自然就是單條的兩倍 (廢話). 相同的觀念, 一樣可以用在快閃記憶體的控制晶片設計. MLC 比 SLC 慢這個常識這我們剛剛知道了, 但 “多通道 MLC 讀寫” 就可以和 “單通道 SLC 讀寫” 一較長短了… 決勝點就在於控制晶片. 當然…控制晶片本身也是成本之一, 搞得愈複雜就愈貴.不是技術阿宅的人可能看到這裏就已經沒耐性再看下去了 (我有預先做過 reader’s test 了哈哈)… 幸好你大概也只需要知道這麼多啦. 接下來就是 case study 了.目前 (2008年11月) 市售已經罕有 SLC 的隨身碟了. 創見 JF168 16G (SLC) 的要價四千多塊. 而 16G MLC 隨身碟滿街都是, 最普通的大概一千元上下, 而像我買的 Corsair Voyager GT 16G 則是一千八左右, 速度仍略遜於 SLC 的隨身碟.

如果你比較在意 “寫入速度”, 加上你真的比別人常常在用隨身碟搬大量資料 (例如影音圖檔什麼的), 那你可能得多花點錢投資購買 SLC 的隨身碟. 這並不是壽命上的考量. 如同我前一篇文寫過的, 除非你一天有 146G 的資料搬移量 (不管是讀或寫), 不然 MLC 16G 的隨身碟應該夠長命撐到你嫌它太小而買一隻大了八倍十六倍的新品 (屆時價錢可能也一樣在兩千塊以下). MLC 的另一個小問題就 “寫入比較有卡卡的感覺”, 不若 SLC 那麼順暢, 尤其當你有一堆大大小小的檔案要寫來寫去的時候, 爛一點的 MLC 隨身碟就像喘不過氣來似的半死狀 (啊就慢啊~).

(待續)

後記: 因為太多國外來的垃圾迴響, 所以我把這篇的迴響關了…最近砍到手軟