超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

如今已經是9102年了,裝機、升級電腦首選SSD硬盤的理念早就深入人心了,再加上這一年多來NAND閃存價格不斷下滑,SSD硬盤價格應聲回落,1TB容量的SSD硬盤千元內售價已經是主流,而且還可以買到更高性能的M.2硬盤而非SATA硬盤,不怕死的話還可以考慮一些將近5毛/GB的雜牌SSD硬盤,買來當倉庫盤還是可以的。回頭看看多年不降價的HDD硬盤,機械硬盤市場日薄西山不是沒道理的。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

但是HDD硬盤逐漸遠離桌面、筆記本電腦市場,這就能代表SSD硬盤各種完美了嗎?還真不是,如今在大降價的環境下SSD硬盤各種“真香”,但它還是有一個讓人糟心的問題——掉速。對於SSD硬盤掉速,長期使用過SSD硬盤的玩家應該有體會(也有人其實沒意識到這個問題),今天的超能課堂我們就來談談SSD硬盤的掉速問題。

對於SSD硬盤掉速,目前並沒有準確的定義,這裡我們就按照字面意義上的掉速將其理解為“性能下降”,分析目前可能導致SSD掉速的種種原因及解決方案。如果想更好地理解SSD硬盤掉速問題,建議閱讀一下我們之前做過的兩篇橫評:

花開正當時,十四款120/128GB SSD橫評(7年前我們的評測就開花了)

再度重拳出擊,十六款240/256GB固態硬盤2014年度橫評

超能課堂(152):QLC閃存靠譜嗎?它可否堪用?

·SSD掉速之SLC、MLC、TLC到QLC變遷

閃存類型的升級也是SSD硬盤掉速的原因嗎?仔細想想的話還真沒錯,實際上我們可以說正是閃存類型不斷變化才導致了SSD硬盤掉速問題越來越嚴重,如果我們還在使用SLC閃存,那掉速問題早就不是事了,只不過SLC閃存硬盤這事別想了,最好的閃存意味著最貴的成本,即便廠商現在還敢把SLC閃存當主力,普通消費者也用不起。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

從SLC、MLC到TLC再到QLC,由於cell單元可以保存的電荷位越來越多,容量在不斷增加,相應地成本在下降,但是NAND閃存先天的特性就註定了電位越多,控制就越複雜,寫入數據的時間就越長,導致性能大幅下滑(主要是寫入性能,讀取性能還好)。

我們現在看到的TLC、QLC閃存的硬盤性能指標還不錯,SATA接口的也能達到500MB/s寫入速度,M.2接口的視PCIe 3.0通道數不同,寫入性能可達1GB/s、2GB/s甚至更高,但是這樣的性能是施了魔法之後的,是理想情況下的性能。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

上圖就是英特爾QLC閃存的660P硬盤的實際表現,隨著寫入數據量的增加,緩存空間用完之後QLC原始性能就暴露無遺了,寫入速度就降至100MB/s,這性能沒比HDD硬盤快多少了。

·SSD掉速之垃圾回收GC、TRIM

提到SSD硬盤掉速問題,老玩家可能還會想起來早些年浦科特 在自家M系列高性能SSD硬盤中宣傳的不掉速功能,這個賣點當時是吸引了不少SSD用戶的,考慮到那時候MLC閃存還是市場主力,SSD硬盤掉速主要是因為當時的主控管理機制問題所致。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

具體來說就是SSD的GC垃圾回收以及TRIM指令問題,如果大家看過我們之前的科普文章,就知道NAND閃存特殊之處就在在於寫入文件的方式,需要一塊一塊的刪除,由於各種寫入、刪除操作會在SSD留下雜亂的數據,其中有些是還有用的,有些就是無效的,GC功能啟動之後就把有用的數據拷貝到另外的區塊,原來存儲數據的區域就會被清楚,恢復空盤水平以準備寫入新的數據,SSD硬盤的性能也就恢復了。

除了GC垃圾回收機制,微軟在Windows 7及之後的系統還引入了TRIM指令,這是基於SATA控制器的一個指令,一旦有文件刪除或者分區格式化,操作系統就會發TRIM指令給SSD主控告訴它某處的數據已經刪除了,SSD因而知道那些數據是能動那些不能動的,之後就可以進行清空操作以恢復性能了。

GC及TRIM也能影響SSD硬盤的掉速,不過現在來說這些功能已經變成了SSD的基本功能,操作系統上的支持也不是問題了,因為這兩個問題導致SSD掉速的現象少多了。

·SSD掉速之840 EVO掉速門

從SLC到MLC再到TLC、QLC,不僅閃存的性能在逐漸下降,其實可靠性也是在降低的,反映到物理層就是由於TLC、QLC閃存存儲的電荷位更多,控制也更復雜,而隨著時間的流逝,電子的活性也會損失的,在TLC閃存剛問世的時候,三星840 Evo就出現過長期不用導致性能下降的問題。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

840 EVO掉速門事件就是說它在讀取存儲超過數週或者數月的舊文件時,速度嚴重不如預期,官方指標中840 Evo讀取速度超過450MB/s,但讀取舊文件時速度就低至60MB/s,速度明顯下降。

對於這個問題,三星之後也做了調查,表示“藉助閃存管理軟件算法,SSD通常會隨時間校正Cell單元的狀態,840 Evo的讀取-重試(read-retry)操作太過激進,導致了整體讀取性能的下降。這種情況只會發生在其內部Cell單元無數據變化的情況下,如果這個單元的數據隨後遷移了或者被覆寫了,這就不會有性能下降的問題 。”

最後三星發佈了新固件,解決了840 Evo掉速的問題。在這個問題上,三星沒有承認這是TLC閃存的問題,但在發展初期,TLC閃存從閃存到主控管理都是有些問題的,出現這個問題並不意外。

·SSD掉速之主控過熱保護

上面提到的SSD掉速都是圍繞閃存而言的,但SSD主控其實也會影響SSD掉速問題,這主要是由於SSD硬盤的過熱保護問題引起的,SATA硬盤上基本上沒這麼問題,主要是在高性能M.2硬盤大量上市之後才比較集中的。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

SSD主控本質上也是基於ARM或者自研架構的CPU,為了提高性能,SSD主控往往也是多核心架構了,三核甚至四核主控不少見,高負載下發熱也是個問題。對於高性能PCIe、M2接口的SSD硬盤來說,由於空間狹小,發熱集中,主控區域的溫度超過90°C甚至上百度都很正常,為了避免高溫損壞,SSD硬盤會有溫控機制,檢測到溫度過高就會降頻,進而減少發熱。

不過降低主控頻率,實際上也會降低SSD性能。要想解決因為發熱掉速的問題,最常用的手段就是提高散熱效果,比如三星在970 Pro硬盤的主控設計就使用了更好的封裝,整個主控使用了金屬外殼封裝,提高了導熱性能。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

當然,更直接的手段還是加裝散熱片,所以大家可以看到各種M.2硬盤都開始流行散熱馬甲了,影馳之前還推出了鐵甲戰將M.2硬盤,使用了厚度驚人的散熱片,雖然樣子難看了點,但是效果槓槓滴。

除了上面介紹的這些掉速原因,其實還有一些別的因素會影響SSD性能正常發揮,比如4K沒對齊、同步/異步閃存、AHCI/IDE模式等等,不過這些操作現在來說並不是主要問題了,以前是問題主要還是SSD不普及,很多人不懂設置,而現在Windows系統自己就加入了很多SSD優化設置,第三方工具對SSD的支持也到位了。

SSD硬盤的緩存結構:從DRAM Cache到SLC Cache

以上有關SSD掉速的內容涉及到方方面面,不過對單個SSD硬盤來說,SSD掉速問題沒那麼複雜,下面我們要進入正題了,先來看看現代SSD硬盤的基本結構:

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

不論SATA還是M.2硬盤,它們的PCB佈局都差不多,上面的M.2硬盤從左到右分別是DRAM緩存、主控及NAND閃存,其中主控及NAND閃存是必不可少的,DRAM緩存可以有也可以沒有,沒有的主要是低端SSD硬盤,減少DRAM緩存可以降低成本,特別是過去兩年中DRAM內存因為大漲價,低端SSD更加流行無DRAM緩存的方案,它們會用過HMB主機內存緩存來彌補導致的性能損失。

對於高性能的SSD硬盤,DRAM緩存不可少,因為就算是DDR3緩存,其帶寬也能達到數GB/s甚至十幾GB/s,遠高於SSD閃存的性能,對提升性能還是很有幫助的,現在三星等公司在高端SSD上已經開始使用DDR4-2133做緩存了。

至於DRAM緩存容量,容量少的有128MB,256MB、512MB比較常見,隨著SSD硬盤越來越大,1GB緩存的也不少見了,一般來說是1TB閃存配1GB DRAM緩存,越高越好。

DRAM緩存是現代SSD硬盤的第一道緩存結構,從硬盤上讀取數據首先就是看DRAM緩存中有沒有需要的數據,如果有,那就先用這裡的,所以速度會很快,如果緩存中沒有再去NAND閃存中尋找,速度就是NAND閃存的了,相對來說慢很多。

總的來說,DRAM緩存對SSD硬盤來說是錦上添花的,從DRAM緩存到NAND閃存也是存在掉速的,不過通常這種調速大家是感受不出來的,畢竟緩存容量還是太小了,很容易就超出。

SSD硬盤大部分情況下還是要依賴NAND閃存自身性能的,但我們都知道從SLC到MLC再到TLC及現在剛剛興起的QLC閃存,寫入性能是不斷下降的,原始的TLC、QLC閃存性能非常難看,不加修飾的話QLC閃存寫入性能可能都沒有100MB/s,HDD硬盤都比它快不是吹的。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

但實際發售的TLC及QLC閃存硬盤中,不論SATA還是M.2接口的,性能都很強大,三星970 Evo這樣的產品中250GB版標稱寫入性能可達1500MB/s,但它就是使用了寫入加速(Write Acceleration)技術之後的性能,實際性能大約是300MB/s,中間差了四倍性能。

SSD寫入加速技術是個通用稱呼,常見的方案是SLC Cache(SLC緩存),它的意義就是字面意思——用SLC當緩存提速,因為SLC閃存是性能最好的。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

在MLC閃存時代,SLC緩存技術還不是必要的,三星970 Pro都沒有使用這樣的技術,而970 EVO就有,但SLC緩存也不是沒有代價的,因為SLC只能存儲1位數據,TLC是3位數據,QLC是4位數據,在TLC/QLC閃存上使用SLC緩存意味著是犧牲容量換取性能,這是一個魔鬼交換,說的難聽點就是你選擇X味的巧克力還是巧克力味的X一樣,都不是最好的選擇,但不得不選。

用SLC緩存可以提升SSD的寫入速度,讓它看起來很NB,但是這意味著要損失一部分空間,具體多大要看廠商選擇的方案,如果全盤方案的話就意味著只有1/3甚至1/4的容量可用。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

用SLC緩存就好比過山車

更關鍵的是,即便用了SLC緩存,一旦寫入數據超過了緩存容量,SSD性能還得現原形,這個時候就是SSD硬盤掉速了,因為超過緩存加速空間之後就不得不使用原始TLC/QLC性能,這個時候會很難看,寫入速度100MB/s左右很正常。

當然,SLC緩存帶來的額外好處也不是沒有,那就是意外斷電時損失更小,畢竟SLC是存儲1位數據的。

具體的每家SSD廠商中,SLC Cache技術有不同的叫法,三星叫做TurboWrite,SanDisk叫做nCache,美光有Dynamic Write Acceleration動態緩存加速技術。這些技術實際上也是分為不同類型的,有全盤SLC Cahce的,也有部分空間做緩存的,其中全盤模擬效果最好,但對空間浪費是最大的,所以現在SLC Cache技術普遍是劃出部分空間,具體選擇多少空間是廠商綜合考慮的,10%以下可以,20%也可以。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

另外,不論全盤還是部分空間模擬,實際上還有動態及靜態SLC Cache之分,這兩種技術其實也是各有優劣,美光的DWA就是動態寫入緩存加速技術,它的好處就是在用戶用了不同容量之後都可以保持較好的加速性能。

超能課堂(180):TLC/QLC硬盤的死結,SSD為什麼會掉速?

總之,在SLC緩存上各大廠商有自己的選擇,緩存空間、緩存分配、加速策略都有可能是不一樣的,技術路線沒有高下之分,但不論哪種,SLC緩存空間用盡之後,SSD的性能都會暴露出應有的水平,那就是TLC/QLC原始性能。

就是這一點,SSD硬盤如果使用的空間越多,那麼剩餘空白容量就越少,這對緩存加速越不利,所以性能就越低,這也是很多人使用SSD硬盤感覺越用越慢的根源,常說的掉速就是這麼來的。

對於SSD掉速問題,除了特定問題導致的之外,如果是因為緩存用盡而掉速,那還真沒什麼好辦法,除非不怕倒騰數據的麻煩,經常把SSD硬盤安全擦除一下。

如果對掉速問題很介意,現在的選擇只有購買MLC硬盤或者購買大容量SSD,容量不低於1TB,越大越好。

相關推薦

推薦中...