TLC/QLC固態硬碟的死結,詳解SSD掉速和卡頓的原因
過去的十年間,PC上最大的技術革新之一就是用固態硬碟取代了機械硬碟。回顧PC的進化史,CPU、內存和顯卡的頻率和性能一直在不斷的進步。而機械硬碟的性能卻出現了瓶頸,傳輸速度一直在200MB/s 以下原地踏步(這個數值是連續讀寫速度,隨機讀寫速度更慘不忍睹)。而如今高端的SSD能將這個速度提升到2GB/s以上。
隨著SSD(固態硬碟)產品價格不斷下降,買塊SSD來提升性能理念已經深入人心。畢竟現在主流的1TB的SSD的價格已經在千元以內了。你花個幾百塊升級CPU內存可能一點性能提升的感覺都沒有,但花同樣的價格從機械硬碟升級到SSD就能感覺到明顯的提速。
但世上似乎沒有完美的事物——SSD亦是如此。雖然在如今大降價的環境下SSD被各種文章做了「真香」評價。但它還是有些讓人糟心的問題——在使用了一段時間後,掉速甚至卡頓藍屏都有可能出現。對於這些問題,長期使用過SSD硬碟的玩家們可能會有所體會,今天我們就來談一談SSD的掉速和卡頓的問題
一、SSD顆粒從SLC、MLC、TLC到QLC變遷,每一次變遷都會導致掉速的發生
稍有常識的用戶都知道,SSD硬碟上的快閃記憶體顆粒分為SLC、MLC、TLC及QLC 四種快閃記憶體顆粒,從顆粒壽命和質量上來講SLC>MLC>TLC>QLC,事實上如果我們都用SLC快閃記憶體的話,今天這個掉速問題的話題可能就不用討論了。但SLC單元可存儲的數據過少,導致了SLC顆粒的成本居高不下。為了能把固態硬碟的價格降到民用級。廠家們之後有進一步推出了MLC、TLC和QLC顆粒。
目前在民用級市場中,MLC顆粒的SSD也已經不多見了。目前主流的顆粒類型是TLC,並正在向QLC過渡。
由於cell單元可以保存的電荷位越來越多,容量在不斷增加,相應地成本在下降,但是NAND快閃記憶體先天的特性就註定了電位越多,控制就越複雜,寫入數據的時間就越長,導致了性能大幅下降(這裡主要是指寫入性能,讀取性能還好)
以英特爾QLC快閃記憶體的660P硬碟為例,隨著寫入數據的增加,SSD本身緩存空間用完之後QLC原本的性能就顯露無遺了。寫入速度只有100MB/s,這基本也就是普通機械硬碟的速度了。
不過這樣的速度只有在特定的條件下才能測試出來,商家給SSD施加了各種「魔法」讓其初始跑分成績非常驚艷。這些「魔法」我們會在後邊的文章中一一提到。
二、SSD硬碟的特有的垃圾回收機制,數據過滿需擦除數據時會導致掉速
SSD主控通過若干個通道(channel)並行操作多塊FLASH顆粒,類似RAID0,大大提高底層的帶寬。舉個例子,假設主控與FLASH顆粒之間有8個通道,每個通道上掛載了一個快閃記憶體顆粒。我們買到一個全新的SSD硬碟的時候。每個顆粒的區塊內都是空白的。
如上圖所示,SSD上的主控會將數據依次寫入每塊緩存。直到將其寫滿,此時由於SSD沒有傳統硬碟那樣的機械限制。寫入和讀取的速度都會比較理想。
而當我們就會刪除掉一部分數據時,這些數據並不會馬上刪掉,而只是標記成可擦寫。類似下圖,紅色的塊表示可擦除塊。
根據SSD的特性:要寫入新的數據前,主控必須將區塊內有用的數據遷移到新的區塊里,再將老區塊內數據整體擦除掉。才能寫入新的數據。
有時還要將幾個區塊的有用數據合併在一起。
這樣的過程稱為SSD的垃圾回收機制。當然,優秀的主控會盡量避免數據回收過程中造成的掉速。一般它會在硬碟空閑的時候默默進行。但如果你的硬碟平時塞的很滿,狂刪文件之後又馬上來下載一個大文件。主控擦除和整理的工作一時忙不過來,就會導致掉速。
所以平時盡量給你的SSD硬碟多預留一些剩餘空間;購買時盡量買大容量大一些的SSD硬碟;避免連續刪除又馬上拷貝文件。就可以有效避免SSD的掉速情況。
三、SSD的緩存結構:從DRAM Cache到SLC Cache
之前曾經提到過某些品牌QLC的真實速度其實不比機械硬碟快(100MB/s)。但新買的QLC硬碟的實測速度還是能達到2GB/s。其原因就是廠家在SSD硬碟上加入了高速緩存。
上圖是一塊M.2硬碟的設計布局從左到右分別是DRAM緩存、主控及NAND快閃記憶體(SATA硬碟的布局與之類似),其中主控及NAND快閃記憶體是必不可少的。而DRAM緩存並不是必需品,它只是用來提升高速SSD硬碟的性能。因為就算是較為便宜的DDR3緩存,其帶寬也能達到數GB/s甚至十幾GB/s。硬碟讀取數據時首先看DRAM緩存中有沒有需要的數據,如果有,那就先用這裡的,所以速度會很快對於SSD整體速度的提升還是很明顯的。(目前三星等公司已經在自己的高端SSD長跑上用上DDR4-2133做緩存了)
至於DRAM緩存容量,容量少的有128MB,256MB、512MB比較常見,隨著SSD硬碟越來越大,1GB緩存的也不少見了。當然排除成本因素,DRAM緩存容量當然還是越大越好了。當然也有低端的SSD硬碟為了節約成本,動用了電腦中的內存作為自己的DRAM緩存,與集成顯卡用內存作為自己顯存是一個道理。
當然DRAM緩存雖快,但畢竟容量還是非常有限。緩存中沒有的數據還是要在NAND快閃記憶體中尋找,速度就是NAND快閃記憶體的了,相對來說慢很多。所以廠家有做了第二道緩存——SLC Cache。顧名思義就是用性能最好的SLC顆粒作為緩存來使用。
與DRAM緩存相比,SLC緩存就可以做得很大了。所以很多評測中測出的SSD的讀寫數據基本都是在SLC緩存跑出來的。至於緩存具體做到多大,以及採用怎樣的加速機制各個廠商有不同的思路和做法。有大於20%的,有的在10%以下。值得一提的是:緩存的大小並不能作為性能的評判標準。
不過依據這個思路,我們倒是可以測出某些固態硬碟的真實速度,比如筆者手中的西數blue系列SN500,查得其SLC緩存大約為7GB。我們在寫入140GB數據的基礎上,用SSD Benchmark寫入一個10GB大小的文件得出的讀寫速度就會更接近於其TLC顆粒的真實速度。
四、SSD之主控過熱保護
除了以上的這些問題以外,溫度也是不容忽視的問題。 支持M.2介面NVMe硬碟因為走高性能的PCIe通道數據的數量大。SSD主控往往都是三核或者四核的多核心架構。加上本身體積不大,發熱集中。控制區域的溫度往往超過90度甚至上百度都是正常現象。為了避免溫度過高損壞,SSD一般都會設置溫控機制。在主控溫度過高的時候就會降頻以減少發熱量。但溫控帶來最直觀的副作用就是SSD會突然降速。有可能會讓用戶在使用中感覺到卡頓。(相對而言SATA介面硬碟因為設計和性能等原因,發生主控溫度過熱的概率會小很多)
尤其是裝在筆記本電腦內部的M.2介面硬碟,很可能會因為散熱不暢而導致溫度過高。此時給SSD安裝散熱片就比較重要了。大家可以在網上買專門的SSD散熱片加裝,一些品牌的SSD現在出廠就安裝了厚度驚人的散熱片。雖然樣子丑了些,當時效果還是非常好的。
五、節能特性導致的掉速和卡頓
無論是SATA介面還是M.2介面都有自己的一套閑置狀態節能特性。節能設置的初衷是好的:為了省電和降低溫度功耗。但這套節能特性需要電腦主機端和固態硬碟方進行協商。如果雙方溝通不來,或者是需要喚醒的時候沒有及時「醒過來」,就可能會導致卡頓甚至是電腦藍屏死機。
比如安裝了英特爾快速存儲驅動RST之後,系統會默認打開全部的節能功能,有時會讓卡頓現象出現或者加重。如果出現類似的現象,我們就需要關閉相關的節能選項。
點擊禁用以後重新啟動一次電腦,即可關閉所有鏈路節能。
另外現在一些比較新的主板也可能會提供禁用節能特性的選項。我們可以在BIOS中關閉節能。
對於支持M.2介面NVMe硬碟,我們還可以在通過關閉"高級電源管理"中 "PCI express選項"的節能設置來達到關閉節能的問題。
關於節能設置的兼容性問題,各個廠家之間的協調似乎一直有點問題。所以如果你的SSD有掉速或者卡頓的情況。我建議還是關掉節能選項來試試。
這筆者個人對SSD掉速問題的總結。當然以上情況排除了人為問題:比如4K沒對齊、同步/非同步快閃記憶體、AHCI/IDE模式等等都會導致SSD的速度不正常。小廠商或者太廉價的SSD,因為快閃記憶體顆粒質量或者主控問題。也都可能導致SSD速度不正常。篇幅問題這裡就不展開說了。
總結下:在目前的技術和市場環境下。SSD的掉速問題似乎很難避免。且SSD硬碟剩餘空間越少的情況下,對緩存加速越不利,掉速問題就越嚴重。這也是很多人覺得SSD硬碟越用越卡的根源。俗稱的掉速也就是這麼來的。
如果對掉速問題很介意的話,只能定期把SSD硬碟安全擦除下。或者去MLC硬碟或者購買大容量SSD。盡量不要將SSD裝得太滿,空餘空間越多,SSD掉速的幾率就越低。

