簡介
固態硬碟(Solid State Drive,SSD)是一種新興的儲存裝置。儘管SSD相較於傳統硬碟而言,具備輕盈、高速、耐震等優勢,卻也存在高成本及低耐用度的缺陷。垃圾資料回收機制(Garbage Collection)對於改善SSD的耐用度及效能,就扮演了重要的角色。
垃圾資料回收機制如何運作
SSD的原理,是由控制器將欲寫入的資料存放於Flash顆粒中來運作。其中Flash顆粒無法以覆蓋的方式將資料直接寫入,因此需先將顆粒中原有資料做抹除後,再做寫入的動作,描述(圖1 & 圖2)如下:
*
Flash最小寫入單位為頁(Page);最小抹除單位為區塊(Block)
- 將資料寫入到A區塊的9張頁面。寫入完成後,A區塊空間已滿。
- 頁a到頁c的數據刪除了,但flash操作下頁面無法單獨抹除,這些頁面被標示為無效頁無法讀取,且不可再度寫入資料。
- A、B區塊皆含有無效頁面(圖中灰色區域)。
- 系統會判讀A、B區塊中含有有效資訊(頁a~h),將這些資料轉移到C區塊。
- A、B區塊隨後被抹除。
根據演算法機制,會啟動垃圾資料回收機制,有效資料搬至C區塊後,再將A、B區塊抹除,釋放出空間以利新資料寫入,此過程即為「垃圾資料回收」。
垃圾資料回收機制的優勢
早期每次寫入資料時,只要遇到有區塊空間不夠用的情形,就需要做一次垃圾資料回收的動作,但若是每次都在要寫入資料時,才開始運行該機制,將會大大降低SSD的效能。而現行SSD的垃圾資料回收機制,由於控制器的演進,會在非寫入或讀取的狀態下,先行對Flash內部的零散空間進行整理與優化的動作,並且會有額外的空白區塊作為緩衝區,因此不會影響SSD 的效能。
如果以系統端來看,有另一種功能“TRIM”(可參考TRIM)會減少SSD運行垃圾回收機制對系統端的負擔,同時讓SSD作好更妥善的資料儲存管理,便於下一次新的資料寫入。