• 5

對於現行MLC SSD產品的一些釋疑,個人的一些淺見

在開始前請容我先為各位強調一下,這篇文章僅是對近來版上對於MLC SSD一些常見的缺陷釋疑,以我根據Anand Aal Shimpi兄寫的文章作解釋(畢竟那是個幾十頁的英文評論),解釋出來的也是SSD現行的缺點,目的就在於讓更多人可以用簡單的方式了解SSD的優缺點,至於要不要花那樣的錢在這麼一個還在萌芽的技術和產品,就在於各位朋友了。

SSD對消費性市場來說,是個新的東西,而新的東西,難免會有一些有疑問的地方。

如果可以的話,真的建議看看版上vincentliang1兄推薦Anadtech.com上的這篇文章,很淺顯的講解了SSD的運作和物理上的限制作了一個詳盡的講解,就該篇文章的講述,正因為NAND FLASH有一定的物理限制,所以處理資料的時候,方法和一般的硬碟並不一樣。

一般的硬碟在最小寫入/刪除上的單位是一樣的,能寫入一個軌,就能刪除一個軌(這只是比喻,個人並不清楚硬碟的最小寫入/刪除的單位是什麼),但是比例上是1比1的。

但是在SSD上,最小寫入/刪除上的單位是「不一樣」的,最小可以寫入4kb(1 page)但是刪除的時候卻只能一次刪掉512kb(1 block)。

這就好像要我們要放三個罐頭到一個抽屜裡,而那個抽屜裡只剩下兩個空位加上一個標示可以拿掉的不要的罐頭,但是我們卻不能只拿掉那一個不要的罐頭就好,卻要把整個抽屜給清空後,才把所有的東西放回去。

而在執行上述動作時,控制器上的on-die cache※1的大小與應用對執行上的速度也有一定的影響,這就是Intel的x-25上的控制器(有256kb的on-die cache)和現行市面上的SSD上的JMF602控制器(只有16kb on-die cache)的差別。
※1:X-25M上單獨的DRAM晶片並非使用於讀寫上的緩衝,而是用於平均整體寫入(Wear-Leveling)的用途,讀寫緩衝似乎是由控制器裡內建的256kb的SRAM來達成的(資料來源)。

也正因為SSD上的NAND FLASH有這樣的物理寫入特性,所以一般在寫入資料的時候:
硬碟:把資料寫入到尚未有資料的軌裡,或是複寫進已經被標示為刪除的軌裡(直接把不要的罐頭拿出來就好了)
SSD:把資料寫入到尚未有資料的區塊裡(兩個罐頭先放抽屜1,然後開抽屜2放第三個罐頭),等到所有SSD上空白的區塊都被寫入後「才」開始把之前標示刪除的區塊給清空(等到沒有空的抽屜了,才開始整個拿出來),並複寫。

而上述的「把之前標示刪除的區塊給清空」的動作本身是會影響到寫入的時間(因為是在要寫入的時候才一起做的動作),所以SSD的控制器會把這個動作留到整塊卡都用滿後才開始作這個動作。而這個動作在正常使用下(沒有刻意作大量長時間的寫入),是要過好一陣子才會出現的。

SLC和MLC SSD都有上述相同的寫入/刪除的限制,相對於SLC在存取時只需處理兩種狀態(0或1),MLC在存取時需要處理四種狀態(00, 01, 10, 11),所以MLC的物理寫入時間原本就較SLC慢三倍左右,進而造成以下的問題。

這就是為什麼MLC SSD會有現在版上討論的兩個讓大家疑惑的「缺點」:
1. 當作系統碟時,有時在多工作業時會頓呆(寫入時得先清空區塊,但是又沒有足夠的cache作輔助)
2. 在使用一段時間後,讀取效能不受影響但連續寫入效能明顯下降(因為所有區塊都滿了,所以每次寫入都要先作清空的動作)

有些朋友能會問說,難道就沒有方法能夠改善1的問題嘛?答案是可以的,只不過要作業系統和SSD廠商雙方面的配合。現在我們在刪除一個檔案的時候,作業系統其實除了把該檔案標記為「刪除」外,是什麼都不做的。實際的刪除動作,是要在新的資料要寫入的時候直接把該檔案作「複寫」的動作。換句話說,刪除/寫入這個動作是在要寫新檔案時才做的。

如果我們把刪除/寫入這個動作在當初作刪除時就先做了呢?跟寫入時花很久的時間比起來,應該比較不會有人介意刪東西的時候久了點吧?這就是TRIM的應用。目前有傳聞Windows 7在正式上市的時候會支援該功能。不過SSD廠商也是要釋出支援TRIM的韌體才行。


至於2的問題,目前除了用TRIM輔助和在系統整個重灌的時候用HDD ERASE把所有區塊都清空※2(反正都要重灌了),也沒有別的辦法了,NAND FLASH的4/512物理限制就是這樣,除非哪一天有刪除/寫入是1比1的NAND FLASH出現。但是也不用太過於擔心,畢竟這只對連續寫入有影響(搬移大檔案),在對日常使用時有影響的隨機搜尋/寫入(開程式、存檔案)雖然也會受影響,但還是比傳統硬碟來的快。
※2:Anandtech上的教學在此

個人認為,目前SSD上使用的NAND FLASH儘管技術上還不算非常成熟,但是現階段上對於講究隨機讀寫速度的系統碟應用來說是有很大的吸引力。除去1的問題後,就算最慢的SSD在隨機讀取的表現還是比目前最快的消費型硬碟(VelociRaptor)來的快。在開啟程式的迅速和開機時間的實際的使用經驗是那些破兩百、三百的讀寫數據所無法描述的。儘管還是會有一些人對於SSD有所存疑,上述文章作者Anand Lal Shimpi的一句話說得好:"you don’t think they’re fast, until I take one away from you."

相信有用過SSD的朋友都有相同的體會。

- 任何儲存媒體都有其風險,不管是硬碟/軟碟/隨身碟/DVD/SSD都是一樣的,怕壞掉真的只有勤備份。
- 硬碟也會壞軌、也會有韌體出包就完蛋的時刻,SSD至少個人使用上※3目前為止都是ok的。
- 值不值得端看個人對於SSD的價格和其缺點的容忍度而定。
※3:一顆Samsung SLC 64G在thinkpad x300上約10個月、兩顆Patriot MLC 32G在HTPC上作RAID 0約5個月

歡迎有興趣的朋友一起討論和指教,謝謝。


2009-03-22 16:49 發佈
謝謝版主的 SSD 技術解說文

深入淺出的說明~ 真的是很棒

^^


熱切期待未來SSD更成熟囉~~~~~
perfecblue wrote:
就算最慢的SSD在隨機讀取的表現還是比目前最快的消費型硬碟(VelociRaptor)來的快

效能並不能夠這樣說的。SSD 在 隨機讀取方面比較快,但是讀寫速度則是跟產品本身有很大關希。
你可以比較一下硬碟和 SSD 的速度,會發現只有高檔非常貴的 SSD 才能完全超越硬碟的速度。

SSD 速度測試,你可以發現最慢的寫入速度 24MB/s
http://www.tomshardware.com/charts/flash-ssd-charts/Average-WriteTransfer-Performance,718.html

硬碟的速度測試,你可以看到就算最慢最老的硬碟也還是有36.20MB/s
http://www.tomshardware.com/charts/3.5-hard-drive-charts/Average-WriteTransfer-Performance,659.html

速度測試是要看你說哪方面的,不能因為 SSD IOPS 好就直接說所有的硬碟都是慢。
直寄上,現在Vista 都會幫忙把硬碟內的常用軟件放到記憶體內佔存,隨機讀取速度反而沒那麼重要。
如果真的要衝 SSD 一定要衝上萬等級的才能真正感受到速度差別,而且最好弄個 RAID 0 來增加速度。
感謝yorkhung兄的指教,這兩個圖表顯示的都是平均寫入(Average Write)的數據,換句話說就是在傳輸大檔時的表現,並不是開機表現和在多工情況下的有影響的隨機存取。

再者,Tom的這個圖表已經有好一陣子了,上面頂級的Samsung SLC SSD的官方讀寫數據也才100MB/80MB而已(當時Memoright那些SLC怪物不算的話),而現行市場買得到的低於4000台幣的低階MLC SSD的平均寫入都接近當時Samsung的80MB了,高階的Intel SLC更是在170MB以上。

我的重點是在隨機寫入,最好的傳統硬碟在7ms到10ms之間,而SSD平均都在1ms以下,這才是開機表現和在多工情況下的重點。

傳統硬碟有它無可取代的地方,無抹寫次數的限制、最大容量增加上的簡易度、無奇怪的小檔寫入/刪除限制,但是在平均寫入和隨機存取上的表現本來就有其物理上的限制,提昇寫入速度的碟盤轉速不能無限制的增加和掌管隨機存取的讀取頭不能隨意的跳來跳去。這都是現在傳統硬碟廠商所面對的瓶頸,就拿現行的消費型效能王者VelociRator來說,在一萬轉的碟盤速度加持下所得的130MB讀寫/7ms隨機表現,在耗電量和熱能來說也確實付出了一定的代價。但是話又說回來,在不在乎隨機存取的純資料保存的目的下,傳統硬碟的優勢無可取代。

也許我的表達方式有誤,但是我特指「隨機存取」(seek time)就是在強調在這方面SSD在物理上的優勢和其在使用者實際操作上所感受到的迅速,並無貶低傳統硬碟的意味。每個產品都有他在行和不在行的地方,對SSD來說,在我用過並感受到它帶來的好處後,我選擇繼續支持這項科技。

我無意鼓吹SSD的好,只是希望各位朋友在決定要衝下去的時候,能得到所有關於SSD好與不好的訊息,自己決定值不值得,不要有錯誤的期待。

像我之前說的,只要你能容忍哪天SSD上的NAND FLASH可能壽終正寢(減少可用容量)、每隔一陣子就要區塊抹除的動作(在還沒有更好的辦法前)、和無可避免的4/512寫入特性,

歡迎加入體驗SSD的行列。
perfecblue wrote:
感謝yorkhung...(恕刪)

你說的都沒錯,Random Acces 一直都是 SSD 的優點。
至於 Average Read / Write 在新出品的 SSD 上也可以看見顯著的改進。
不過SSD 最大的問題仍然就是寫入限制以及價格。
現在 Vista 安裝就要 10GB,加上許多佔存檔案大概會用掉 20-30GB。
加上裝一些基本軟體和遊戲後大概都會用到 80-100GB。
所以需要拿來做系統碟的話需要 120GB 裁比較不限限制到自己。
而 120GB 的新版 SSD 雖然速度快但是相對的價格也都是破萬了。
相對的500GB 硬碟三四千都可以買到,使用上也比較不會受到限制。
速度方面因為作業系統的進步SSD 在 Random Access 方面表現也比較看不出來。
例如開機速度使用 Vista 都是使用休眠,開機只花個一兩秒也看不出差別。
而 Supercache 技術更是能把常用檔案放進記憶體,因此也不會怎麼碰到硬碟和 SSD。
高檔SSD 效能會比硬碟好是無可置疑的,只不過以一般使用者角度還是應該多等幾年好。
現階段的 SSD 只適合懂得設定系統的專業人士或者不在意速度和品質,只需要上網看網頁的使用者而已。
>這就是Intel的x-25上的控制器(有on-die cache)和現行市面上的SSD上的JMicron控制器(沒有on-die cache)的差別。

這個說法怪怪的...

X-25上面的DDR RAM也是外掛的, 並沒有跟controller包在一起,
怎麼會這樣說是有on-die cache?
matika wrote:
X-25上面的DDR RAM也是外掛的, 並沒有跟controller包在一起,
怎麼會這樣說是有on-die cache?

25m上的確不是on-die的cache,已做更正,感謝matika兄指正。

再次更正:在經過一些調查後,其實Intel X-25M的控制器裡是有on-die cache的,詳情請見內文裡的※1
下半年, 至少有三家以上的台灣廠商會推出類似Intel X-25這樣架構的SSD Controller了.

除了外掛DRAM module, MCU改成ARM架構之外, 也都號稱速度
可達200MB/S(Read)以上, 而且會改進小檔案寫入過慢的問題..

這下精彩啦!
樓主的文章講到了一個重點,就是SSD如果要寫入的區域不是空的,而是被Mark可刪除的區域,寫入前會多一個『刪除』的動作。


在使用一段時間後,讀取效能不受影響但寫入效能明顯下降。(因為區塊都滿了,所以每次寫入都要先清空區塊)

因此使用SSD的網友要有心理準備,用過一段時間的SSD真的會『生病』,寫入會生病。即使是最新款OCZ的也有一樣問題…


我的Intel X25-M使用到現在,寫入速度約剩下50MB/s而已.....
真的是一篇很棒且值得一讀的好文章!
  • 5
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?
' + '