Transcend 300x SLC vs 133x MLC CF vs 1.8" 4,200rpm HDD

(This legacy article is Chinese-only. Translate it to English.)

小弟最近買了張 Transcend 300X SLC CF 來做(偽)SSD,順道試試驗證一下 flash memory (快閃記憶) vs 硬碟各自的優劣。(問題:現時是否值得用 SSD 取替硬碟?)


Transcend 300X, 133X, Compact Flash, CF使用 FDBench測試 - 沒有漂亮圖表,但一個畫面就可以一併顯示連續讀寫和隨機讀寫等等,個人覺得對快閃記憶測試較有意思。

1. 300x SLC 對 133x MLC (使用 CF to 3.5" IDE 轉換器於桌面電腦測試)


Test, FDBench, Transcend 300x 16GB SLC CF
Transcend 300x 16GB SLC CF

Test, FDBench, Transcend 133x 2GB MLC CF
Transcend 133x 2GB MLC CF

留意到幾點:
  1. 紅色圈內的連續寫入速度就是 SLC 和 MLC 的效能分野了。但值不值幾倍的差價呢? 至少 SLC 可用來跑OS,MLC則沒這個可能。
  2. 藍圈內左邊的隨機寫入速度和右邊的隨機讀取速度形成強烈對比,盡顯快閃記憶消除區塊 (erase block)特性的效能問題。
  3. 133x MLC CF 的讀取速度(隨機/連續)想不到也真的很快,應該是 Transcend dual-channel (雙通道) 技術之功。估計用廉價的 133x 來跑 ReadyBoost/eBoostr 也不錯,因為它們對寫入的要求較讀取低。

Compact Flash adapter, 1.8inch Mobile Hard Drive

2. 300x SLC CF 對 1.8" 4,200rpm 硬碟 (使用 CF to 1.8" IDE 轉換器於手提電腦測試)


Transcend 300x 16GB SLC CF

Performance, 1.8inch Mobile Hard Disk
Toshiba 4,200rpm 1.8" 30GB HDD (model: MK3004GAH)

可見到:
  1. 紅圈和藍圈:硬碟因機械原理的關係 seek time (搜尋時間)比起電子原理的快閃記憶高很多 (18ms vs 0.3ms),導致的問題就是隨機讀寫較慢。
  2. 硬碟因不用 erase block 拖慢寫入,所以隨機或連續讀取和寫入數值都是一樣的 (13和13,6和6)。相反快閃記憶那邊讀和寫都有很大分別 (47和10,39和4)。
  3. 就連龜速的 4,200rpm 1.8" 硬碟的隨機寫入速度也要比 300x SLC CF 快 (6MB vs
    4MB)。不過真實使用過發現換了 SLC CF 後大部份時間明顯較順,除了像因程式暴漲而寫入虛疑記憶體,那時會慢得像當機;寫入動作不大的話就快了。
註:不知怎的,CF 在筆電的連續寫入速度比在台機以 CF-to-IDE 測試時慢很多(隨機讀取則差不多),但讀取速度就反而快點,可能是兼容問題吧。雖然寫入還慢過 1.8" HDD 一點點,不過憑著隨機讀取優勢,整體應用 CF 仍快不少。

3. 後記

曾對自己說過不會花巨額金錢購買現時技術尚未成熟的(偽)SSD,最終還是敗了,無論說手提電腦的硬碟有壞磁 (隔離了也可以用啊),抑或那是以多麼優惠的價格購得,這些都只是藉口 (這是小弟自2000年以HK$999購入 64MB CF 卡後第二次做的傻事。可預見將來看見這卡的感覺會和現在看著那張 64MB 卡感覺一樣,無奈...

Transcend 300X Compact Flash, inside Sony TR1
Flash memory 天生的 erase block 特性會令到寫入慢 (尤其是隨機寫入)。以上的小測試驗正了這問題。以前一直不明白為何高速的USB手指(U盤)在寫入細少檔案時都那麼慢,但大檔案又沒問題,現在明白就是這個原因。

那現時來說,以 SSD 取代硬碟值得嗎? 以這 300x SLC CF 取代 1.8" 4,200rpm 筆電硬碟想是可以的,因為那硬碟本來也實在太慢(只以 UDMA mode 2 跑都已了快不少)。不過,主流桌面電腦用的 3.5" 7,200rpm 硬碟則快多了,跟真正的 SSD 比則各有優劣,但SSD那麼貴,好像不太值得。例如小弟在筆電用,快是快了點,靜和熱量小更是了,但容量也少了一倍啊,在僅有的 16GB 裝完 Vista 及所有應用後仍剩 2GB 空間已很感謝了 (做了不少優化)。通常空間對流動電腦都不是一個主要因素,那會好辦些。

快閃記憶擁有搜尋時間如RAM閃電一般快的優勢,所以隨機讀取比得上連續讀取,這方面比硬碟快得多,但隨機寫入卻因為要erase block而拖慢,這點又比硬碟慢,有得有失。雖然 SSD 近來透過 multi-channel (類似多重RAID 0 原理的技術),使到連續讀取超越硬碟,但仍沒有真正應對 erase block;真正解決 erase block 技術的 SSD 仍有待主流化推出,到時隨機寫入速度或能與隨機讀取看齊;到時才是王道。

如有興趣了解 write-erase cycle、到底有甚麼技術可以應對 erase block,這份 PDF 或會有幫助(英文),不少 concept 小弟都是由那處得來的。或者由外行的我說,其實快閃記憶在每次寫入時除了寫入外還會做消除的動作,而所消除的區塊大小 (block size) 是很大的,e.g. 1GB 有的便要 256KB 一塊,如果有很多很多微細檔案做傳輸,而每個檔案都要做一次完整的 write-erase cycle (簡單可想成每個 1KB 檔變成 256KB),可想而知很多效能都會浪費在 write-erase cycle 上。所以 SSD 寫入慢,隨機寫入更慢。至於解決方法,其中一個是 PDF 中提到一個叫 Managed Flash Technology (MFT) 的軟體件,可以透過地址 remapping 將隨機寫入變成以連續方式寫入,效能提升達 80%!另外硬體的方法,Sandisk 最近亦發佈了 ExtremeFFS 技術,不期望微軟在將來的 NTFS 版本優化 SSD block size,現在自己來達成!

聽說將來的 SSD 將會以 RAM cache (緩存) 配合良好的算法和 wear-leveling (平均寫入) 來改善 SSD 壽命 (另一致命問題) - SLC 和 MLC SSD 壽命只有 10,000 和 100,000 write/erase cycle。另外,將來的 MLC 技術能夠從在一個 cell 弄出更多 bit,容量或能追上 TB 硬碟。種種跡象顯示 SSD 還有很大的進步空間。很期待!

完結前附上 Transcend 300x 的 HDTune //資訊(台機)、Atto Disk Benchmark(台機)、Vista score(筆電)和 CrystalMark(筆電)的測試掃瞄。

歡迎用以下方式儲存或分享本文:


Comments