是否選用SSD固態硬碟,SLC 或者 MLC ?


近來買SSD的人有顯著的增加,因為在價格部份雖然仍高,但和過去相較起來,其實已經降了非常多。但很多人可能不解的是,同樣的容量大小,價格差異怎麼會那麼大?

除了品牌差異外,最重要的在於採用的顆粒不同,通常分成兩種,一為比較高價的SLC,另外就是比較低廉的MLC顆粒。

SLC(Single Level Cell︰單層式)由Samsung、Hynix、Micron、Toshiba生產,SLC顆粒的特點是由0和1兩個值,在寫入數據時通過對浮置閘極的電荷加電壓,再經過源極將所儲存的電荷消除。MLC(Multi Level Cell︰多層式)則是由intel主導,Samsung、Toshiba、Renesas生產,它具有4個以上的值,將兩個單位的訊息存入一個Floating Gate,再採用不同電位的電荷來使用電壓控制讀寫,因為多層式的架構,使它的儲存密度優於SLC,而且因為SLC的生產方式比較先進,MLC可以使用舊有設備生產,所以MLC的成本也相對的比SLC來的低廉,儲存容量也會比較大。

不過在速度及改寫能力次數上是SLC優於MLC,SLC的速度是MLC的三倍以上,讀寫次數則是10萬次優於MLC的1萬次。在功耗方面,SLC也比較低,比較省電(約節省15%)。

雖然MLC的效能劣於SLC,不過其實架構方面它反面比較好,如果有良好的解決方案,例如上例的OCZ Z Drive或是三星的wear leveling、4bit ECC校驗技術,都可以讓它趨近於SLC的效能。

大家看了解說,應該比較在意的是「讀寫次數」,MLC只有讀寫一萬次,豈不是很快就會被用完報廢?

正確來說,這個一萬次指的是「寫入次數」,讀取資料則是無上限。

再精細一點的說法,不是每儲存一筆資料,就代表一次,SSD的最小存取單位為「Page」,一個Page約2KB,每寫入一個Page都要先清除上面的資料,即是erase/write cycle,因為每次都需要清除page,SSD的最大效能瓶頸由此而來,如果能解決這個問題,SSD的速度將會更快。而SSD的寫入清除以64個page 組成的128KB為一個block,一萬次的意思是每個block可以分別獨立寫入一萬次。

ok,我們來做個計算,假設我買了一顆16GB MLC SSD,假設每天會存入約2GB的資料

1Cycle=16/2=8

8x10000(次)=80000

80000/365(天)=219(年)

換句話說,這顆16GB MLC SSD大概可以使用219年,因為每個block使用約一萬次後就毀壞,一個一個的使用完畢後,也就容量會越來越小,年限也會越來越少,再加上東扣西扣的可能性,假設保用只有1%,那219/100=2.19年,也有約兩年的時間,當然啦,不會只有1%啦!

同樣的,在相同的條件下,16GB SLC SSD,同樣每天存入2GB資料

1Cycle=16/2=8

8x100000(次)=800000

800000/365(天)=2191(年)

更驚人吧!看起來廠商其實就算是做終身保固都可以,不過因為其他的因素,例如其他控制晶片及電路板等的設計問題,還有其他電流及外在因素影響,最重要的是廠商要賺錢…

前面說到每一個block一萬次的次數限制(MLC),那如果一直都是同樣一個block在寫入,那不是很快就將這個block用完?所以在設計時就會有平衡計算的技術,如的wear-leveling,就會平衡計算block的寫入次數,那也就不會有容量越來越小的情形,因為當出現了一個block要被寫入超過10000次時,也代表其他的block也差不多了,這顆SSD就差不多要到極限了。

當然不是說您買了SSD就可以不管它了,有些人運用磁碟空間的能力真的是超乎我們的想像…養太多寵物的那種(養很大…養不用錢…),最好還是有個備份碟會比較好…