天天看點

Trim除了提升固态硬碟性能,為什麼還能提升使用壽命?

1. 閃存讀寫和擦除機關不同:

閃存的最小讀取和寫入機關為Page,典型的Page大小為4KB。

而擦除的最小機關是Block,SSD塊的典型大小是512KB或1MB,即128 Page或256 Page。

SSD有一個重要特性,是顆粒一旦被寫入,就不能覆寫寫了,這點和基于磁媒體的機械盤不同。為了能重複寫,SSD需要對已經寫入過的顆粒進行擦除操作(erase)

2. 先擦後寫帶來的問題

(1)電腦上的Windows作業系統在删除硬碟上檔案時,作業系統僅僅是在檔案配置設定表中做一個标記,并不會對存放檔案的位置做實際的抹除。這種做法對機械硬碟而言是很高效的。隻要作業系統心中有數(檔案配置設定表),随時可以在檔案删除留下的垃圾位置上覆寫寫入新的位置。(因為機械硬碟可以直接覆寫)

(2)固态硬碟繼承了機械盤的使用方式,删除檔案産生的“垃圾“會一直在閃存中存放着,直到作業系統下一次要求在相同位置覆寫寫入新資料,主要這才恍然大悟、措手不及(閃存無法不經擦除直接寫入,隻能先寫到别處,通過FTL閃存映射表進行标記)。

(3)當Block塊中的垃圾多到一定程度之後,固态硬碟不得不将整個Block塊中的全部Page頁都讀取出來、全部寫入到新的Block塊當中,然後擦除之前的Block。這個先讀取、再寫入、後擦除的過程就是固态硬碟中費時費力的“垃圾回收”工作。

(4)因為删除檔案時作業系統隻在分區表上做改動,固态硬碟分不清哪些是無效頁哪些是存有資料的有效頁,将無效頁也做了重複搬運:這樣就做了無用功,不僅影響性能更是加速了閃存的磨損。

3. Trim指令

(1)Trim在Windows中的大名是Delete Notify删除通知。通過Trim指令,作業系統可以在标記檔案配置設定表的同時,順帶通知到固态硬碟:這些位置的資料已經沒用了,你得空的話可以做下打掃了。

【這意味着檔案系統删除後,固态硬碟是清楚目前哪些Page是垃圾資料,這樣在空閑時刻能提前進行GC,避免新的寫入和GC同步指令導緻性能驟降的情況】

(2)有了Trim指令之後,固态硬碟對閃存的實際占用情況了然于胸,在做垃圾回收時可以隻讀取其中的有效Page頁,将它們寫入到新的Block,然後就可以對舊block做擦除。簡單來說就是Trim讓固态硬碟垃圾回收的效率更高,減少了不必要的資料搬運重寫,降低了寫入放大率,提升了固态硬碟的使用壽命。

【Trim功能使固态硬碟能區分一個block中的有效資料和無效資料,這樣進行GC時,隻需搬移其中的有效資料即可,首先提高了GC效率,并且減少了不必要的資料重寫,提升了使用壽命】

繼續閱讀