超能課堂(96):什麼是TRIM與GC?他們是怎樣讓SSD保持高速的
使用快閃記憶體為存儲載體的SSD的讀寫過程與傳統的HDD有著本質上的不同,特別是在寫入方面,HDD是可以直接對存儲在磁碟上的數據進行覆蓋寫入的,SSD並不能這樣,快閃記憶體需要先擦除原來的數據再把新的數據寫進去,不能直接覆寫數據使得SSD多了擦除的操作,而寫入單位(Page)與擦除單位(Block)的不統一又讓SSD不停地在各個Block區塊之間折騰,SSD用久了需要擦除的區塊就會越多,性能自然也會變慢,然而現在的SSD基本都不會這樣,為什麼會這樣呢?
浦科特的SSD就以True Speed不掉速
SSD的寫入方式決定了它越用越慢的特性,數據寫入的越多性能就會越差,不過現在的SSD都支持TRIM指令與GC垃圾回收功能,在他們倆的守護下可以確保你的SSD裡面即使寫入得再多東西也不會輕易掉速。
TRIM指令
TRIM指令是微軟提出的,但是SSD廠商也有支持與不支持TRIM之分,所以還是跟SSD有一定關係。
TRIM是基於SATA控制器的一個指令,一旦有文件刪除或者分區格式化,操作系統就會發TRIM指令給SSD主控告訴它某處的數據已經刪除了,SSD因而知道哪些數據是能動的哪些不能動的,之後就可以進行清空操作以恢復性能了。不過這個過程不是馬上就完成的,TRIM命令是即時發送到SSD主控中的,但是什麼時候開始清空數據是主控演算法的事。
對TRIM指令的支持是現在SSD主控必備的
之所以有這麼一個溝通過程還是跟SSD與HDD的讀寫方式不同有關,首先操作系統的刪除數據並不是真正把數據清空了,只是加了刪除的標籤而已(就像摘了門牌號,房子還在一樣)就是說真實的數據還在,不過普通的操作訪問不到了,但是一些專用的數據恢復軟體可以把這些數據再找回來。
HDD機械硬碟是可以直接在原有數據上直接覆蓋,但是SSD不行,必須要清空原有數據才能寫入新數據,而系統並非真正刪除數據的特性會對SSD的性能造成影響,TRIM指令的存在使得SSD能夠緊緊跟隨OS的操作意圖,擦除已刪除的無用數據以恢復SSD性能。
上圖很好的說明了TRIM指令是如何工作的,前三步分別是空數據、寫數據和刪除部分數據,在此之後TRIM指令就會通知SSD主控可以清空紅色區域的無用數據,之後SSD的性能就可以恢復如初了。
TRIM支持與否依賴於操作系統、磁碟控制器驅動以及SSD主控,Win7、Windows 2008 R2、Linux 2.6.33、MAC OS 10.6.6、Free BSD 8.2及之後的系統都支持TRIM或者類似指令,Intel 9.6.0.1014及之後的磁碟驅動都可以支持,不過TRIM指令並不強制要求AHCI,IDE模式也可以,只是SSD幾乎沒誰用IDE模式吧。
微軟PPT中專門解釋過TRIM指令的工作方式和優點
Intel在RST 11.5之後的驅動中提供RAID模式的TRIM指令支持,還有一些廠商用自己的方式解決了RAID模式下的TRIM指令問題。另外,XP系統下是不支持TRIM指令的,不過三星的工具軟體也可以讓其SSD實現類似TRIM的功能。
浦科特M8Se有著很高的TRIM效率,這可以提高產品的性能穩定性,能讓SSD能夠保持較長時間的高速運行,還可以抑制寫入放大,提高快閃記憶體的壽命:
用戶可以自行檢查TRIM指令開啟與否,打開CMD窗口定位到「fsutil behavior set DisableDeleteNotify 0」表示啟用TRIM,如果是1就表示禁用狀態或者不支持。
GC垃圾回收
垃圾回收(garbage collection,簡稱GC)是SSD恢復性能的另一大秘籍,這個主要跟廠商所用的主控有關,其意義就跟字面意思一樣,通過清理無用的垃圾數據保持SSD性能如新。
它的存在還是跟SSD的特性有關,空盤下SSD寫入數據所需時間以ns計,但是擦除數據的過程則以ms計,寫入的數據越多,需要擦除的時間也越長,SSD的寫入性能就會嚴重下降,GC機制相當於」騰籠換鳥」,把原本雜亂無章存放的數據整理一遍,然後寫入到新的空白區,之前的區塊就會進行清除操作以恢復正常性能。
GC的處理過程
由於各種寫入、刪除操作會在SSD留下雜亂的數據,其中有些是還有用的,有些就是無效的,GC功能啟動之後就把有用的數據拷貝到另外的區塊,這一步相當於「騰籠」,原來存儲數據的區域就會被 清除,恢復空盤水平以準備寫入新的數據,這就是「換鳥」了。
上面只是理論操作過程,具體怎麼做還有個選擇問題,如果在SSD讀寫數據的同時進行GC操作,這種實時GC(Real Time GC)對主控的性能是個考驗,一方面要往空白區寫入數據,同時還要照顧無效數據的「拆遷」工作,這麼頻繁折騰SSD的話估計SSD那有限的讀寫壽命也支撐不住,實時GC並不可取。
浦科特在2011年的M2P就使用過相當激進的實時GC功能,性能確實不會降低,不過那個時候的快閃記憶體還是32nm的MLC,壽命相當有保障,現在無論MLC還是TLC都不夠膽這樣玩了。
目前的GC大都是在SSD閑置時才開始工作,也就是所謂的「Idle Time GC(閑置GC)」了。廠商會在主控中設定一個條件,比如空白容量達到某種比例才開始GC處理,這樣就預先釋放了空白空間,如果達到設定條件的上限,那麼GC也會停止,這樣處理比實時GC更利於延長SSD壽命。
閑置GC也不是完美無缺的,它會帶來額外的寫入放大,因為在GC處理開始之前,某些整理過的頁面(page)可能正在變髒,不過閑置GC增加的寫入放大率非常小,OCZ稱其SSD的閑置GC只有額外的1%放大率,影響非常小,整體上依然是利大於弊。
現在的SSD大都是利用TRIM和閑置GC相輔相成工作的,當用戶刪除或者修改文件時,系統就會發送TRIM指令告訴SSD那部分數據可以刪掉了,然後SSD在閑置時就會對這部分區域進行GC騰出空白的快閃記憶體空間,實時GC功能現在在啟用SLCCache的SSD上會比較明顯,畢竟它們要快速的騰出SLC Cache空間給後續的數據,這樣才能確保SSD擁有高速的寫入。
TRIM指令通知給SSD的可刪除數據越多,GC操作需要轉移的數據就越少,寫入量也會減少,對SSD來說也是延長使用壽命的一種方式。
※Core i9-7900X評測出爐:多核更強大,但i7-7740X單核性能最強
※美光發布澄清聲明:晶圓廠故障並非氮氣泄露引起
※不止於OPPO R11 Plus,小米5同樣可享受《王者榮耀》的優化
※技嘉AORUS新品發布會,將AORUS元素全面滲透到PC上
TAG:超能網 |
※超能課堂(180):TLC/QLC硬碟的死結,SSD為什麼會掉速?
※超能課堂:從GTX到RTX,NVIDIA GPU架構的變遷史
※超能課堂138:硬碟的S.M.A.R.T.是什麼?如何看懂它
※超能課堂:SSD大敵當前,HDD硬碟100TB容量還有大招
※微星X470 GAMING PLUS主板評測:超具性價比的二代銳龍座駕超能網
※超能課堂:TN/IPS/VA的好與壞,我究竟該選哪一種?
※超能課堂:藍牙耳機的LDAC、aptX指的都是什麼?
※BLACKPINK強勢回歸?全能甜豆Lisa和Jennie業務能力超能打,穿搭功力也時尚滿分!
※超能課堂:X86、ARM有何不同?
※超能課堂(162):SSD大敵當前,HDD硬碟100TB容量還有大招
※超能課堂:我們為什麼需要4+8pin CPU供電介面?
※AMD 7nm曝彪悍超能力!甩開Intel幾條街
※超能周末刊:AMD GCN架構再戰江湖,分析師建議iPhone降價
※NEDC純電續航520公里 試駕秦Pro EV超能版
※小身材超能量 ROG Huracan G21CN遊戲主機圖賞
※ChainMap:將多個字典視為一個,解鎖Python超能力。
※超能課堂(177):為何CPU散片這麼便宜?盒裝CPU值得買嗎?
※超能周末刊:英特爾CPU、GPU擠爆牙膏,蘋果iPhone被禁售
※超能課堂:英特爾不再擠牙膏,Sunny Cove遇上3D封裝
※能玩到GTA6發售!GTA5超級MOD單人大逃殺,70角色,50種超能力任你選擇