回覆列表
-
1 # 超能網
-
2 # 老許生活之體驗
Trim演算法:對無用的頁進行標記,這個指令本身並不去刪除無用的塊。它協助垃圾回收,減少刪除次數,提高了垃圾回收效率。 這個trim指令是win 7以上作業系統預設開啟的,不需人工開啟,也不需人工去操作這條指令,韌體軟體會自動執行這條指令的。 對支援TRIM的系統,在使用者寫入資料時並沒有什麼不同。但是當用戶刪除檔案的時候,因為系統支援了TRIM指令,固態硬碟立刻就把資料標記為“無用”。 垃圾回收演算法等待到所有Block中的有效Page(標記為無用的頁,就不會搬動了)合併到一個新的Block中,剩下的是無用的頁,最後統一將舊的Block擦除乾淨。這樣做減少了快閃記憶體刪除資料的次數,節約了時間。 簡言之,就是對無效資料所在的整個塊,先把這塊內有效資料集中起來,轉移到空閒的塊中,然後把“已搬遷的塊連同無效資料”整個擦除。 SSD讀寫是按1頁為單位進行的,但整理擦除是按128頁即一塊為單位進行的。
Trim對SSD來說相對重要,沒有的話你的SSD不用一陣就掉速嚴重,而且嚴重影響SSD的壽命。
作業系統在刪除檔案時其實並不會立即把硬碟上的資料刪除,只是加了刪除標籤而已,這個在可以直接覆寫資料的機械硬碟上沒所謂,然而在SSD上問題就大了,SSD的儲存介質是快閃記憶體,快閃記憶體寫入資料時並不像機械硬碟那樣可以直接覆蓋,而是需要先擦除原來的資料再把新的資料寫進去,而且要命的是SSD的寫入單位頁(Page)與擦除單位區(Block)是不一樣的,頁比區更小,寫入資料時得先把整個區清乾淨在把資料寫入,在讀取、寫入和擦除這三個SSD的基本讀寫操作中擦除這步耗時是最久的,SSD用久之後需要擦除的區塊就會越多,效能自然也會變慢。
而TRIM則是一個可以解決這事情發生的指令,如果有檔案刪除或者分割槽格式化,系統就會發TRIM指令給SSD主控告訴它這些資料已經刪除了,SSD就會知道哪些資料是可以清理掉而哪些是不能動的,之後就可以在空閒時進行清空這部分快閃記憶體上的資料,至於什麼時候會動手清空資料這就是主控演算法的事請了。
SSD另一個和TRIM配合的功能就是垃圾回收(garbage collection,簡稱GC),就跟字面意思一樣,透過清理無用的垃圾資料保持SSD效能如新。
GC功能和碎片整理很相似,SSD使用時肯定會有各種寫入、刪除操作,這會在SSD留下雜亂的資料,GC功能就是把這些雜亂無章存放的資料整理一遍,然後把他們結合到一齊寫入到新的空白區,原來這些資料儲存的區域就會被清空,恢復空盤水平以準備寫入新的資料,這樣才可保持SSD的高速效能。
TRIM和GC相輔相成工作的,當用戶刪除或者修改檔案使資料發生變化時,系統就會發送TRIM指令告訴SSD那部分資料可以刪除了,然後SSD在空閒時就會對這部分割槽域進行GC操作時快閃記憶體空間變成空白狀態,TRIM指令通知給SSD的可刪除資料越多,GC時要轉移的資料就越少,變相降低了寫入量,對SSD來說也是一種延壽方式。