GC垃圾回收是什么?

垃圾回收(Garbage Collection, GC)是針對固態(tài)硬盤(SSD)核心組件NAND閃存存儲器的一種空間管理機制。它的核心任務是將NAND閃存中有效數(shù)據(jù)移動到新的位置,并擦除無效數(shù)據(jù)(不再使用的數(shù)據(jù),或稱“垃圾”)及其所在的整個存儲塊。GC機制設計的優(yōu)劣對 SSD 的耐用性和性能至關重要。

為什么需要GC垃圾回收?

閃存單元本質上是一個金屬氧化物半導體場效應晶體管。由于NAND閃存的物理結構限制,浮柵被絕緣層包圍,電子無法直接“覆蓋”。因此,想要在NAND中寫入新數(shù)據(jù),必須先擦除數(shù)據(jù)。

整個過程的本質就是在釋放電子,通過在P型襯底上施加高壓,從而吸出電子。并且由于整個塊都共用一個P型襯底,閃存都是以“塊”為單位進行擦除數(shù)據(jù)的。于是就造成了Flash最小寫入單位為頁(Page)但最小的擦除單位為塊(Block)的寫入放大(Write Amplification)現(xiàn)象。

因此,當需要更新或刪除頁中的部分數(shù)據(jù)時,SSD 無法原地改寫或擦除單頁數(shù)據(jù),只能將更新后的數(shù)據(jù)(有效數(shù)據(jù))寫入新的空白頁,并將原頁標記為“無效”。長此以往,存儲塊中會積累大量無效數(shù)據(jù)頁。當空白頁不足時,就必須啟動GC來回收這些散布著無效數(shù)據(jù)的塊空間。

GC垃圾回收的運行原理

天碩工業(yè)級SSD垃圾回收過程的具體步驟如下:

識別目標塊: 天碩自研主控會先識別出包含大量無效數(shù)據(jù)的存儲塊。

遷移有效數(shù)據(jù): 將該塊中剩余的有效數(shù)據(jù)頁讀取出來。

寫入新位置: 將這些有效數(shù)據(jù)復制并寫入到新的空白頁或具有空白頁的新塊。

擦除原塊: 待有效數(shù)據(jù)安全遷移后,對該原存儲塊執(zhí)行整塊擦除操作,將其空間徹底釋放為空塊,可供后續(xù)寫入新數(shù)據(jù)。

更新映射表: 天碩的自研主控會實時更新內部的數(shù)據(jù)映射表,將指向原有效數(shù)據(jù)位置的邏輯地址更新到新的物理位置。

垃圾回收是SSD和HDD之間的顯著區(qū)別。當新數(shù)據(jù)被編程到包含無效數(shù)據(jù)的頁面時,SSD 不會覆蓋現(xiàn)有數(shù)據(jù),而是執(zhí)行GC,但它會導致NAND額外磨損。此問題的解決方案之一是 Trim 命令。它可以幫助 SSD 預測來自用戶或操作系統(tǒng)的“文件刪除”任務。這會降低寫入放大、提高吞吐量并提高 SSD 耐用性。

分享到

崔歡歡

相關推薦