GC垃圾回收是什么?

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

為什么需要GC垃圾回收?

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

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

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

GC垃圾回收的運(yùn)行原理

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

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

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

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

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

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

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

分享到

崔歡歡

相關(guān)推薦