固態硬盤 (SSD) 是一種電子數據存儲設備,由控制器、NAND 閃存、DDR(可選)和接口/協議連接器組成。 (例如,PATA、SATA 和 PCIe NVMe。)與硬盤驅動器 (HDD) 不同,SSD 不使用機械部件來讀取、編程和擦除數據。通過對數百萬個 NAND 閃存單元的精確控制,SSD 控制器可以執行讀、寫和擦除任務。
閃存單元本質上是一個 MOSFET(金屬氧化物半導體場效應晶體管),具有特殊的浮動柵極,可以持久保留和存儲數據。每次電子被捕獲在晶體管的浮柵中時,數據就會被編程。當電子被釋放時,數據被刪除。
與 HDD 不同,NAND 閃存無法覆蓋現有數據。垃圾收集 (GC) 用於重新定位空閒或已用空間並回收有效和無效數據,是所有 SSD 中採用的基本過程。 GC 可以通過多種方式實現,直接影響 SSD 的整體性能和耐用性。
GC如何處理數據
由於 SSD 無法覆蓋 NAND 存儲單元中的現有數據,因此它們必須先擦除舊數據,然後才能將新數據編程到同一位置。 GC 是將現有數據重新定位到可用內存空間中的新位置並徹底擦除周圍的無效數據的過程。
閃存單元由頁組成,頁形成塊。由於 NAND 器件物理特性的固有特性,閃存單元允許在頁級上對數據進行編程,但只能在塊級上進行擦除。編程和擦除任務之間的這種不一致是對 SSD 耐用性的主要影響。
在聲明無效數據佔用的空間之前,必須將初始塊中頁中的所有有效數據複製並寫入新塊的空頁中。然後可以擦除原始塊中的無效數據,為寫入新的有效數據做好準備。
修剪命令
操作系統(OS)感知只能識別SSD映射表中尋址的邏輯位置。存儲系統從物理位置返回數據,而操作系統從相應的邏輯位置請求數據。微軟提出Trim命令概念是為了減少NAND不必要的磨損。當在操作系統級別刪除文件時,此命令可讓操作系統立即通知 SSD。然後,SSD 可以更早地判斷數據是否被標記為有效數據或無效數據。
Trim 命令的最大好處是幫助 SSD 實時跟踪操作系統即將執行的操作。因此,有效減少了對 NAND 閃存的冗餘訪問。
Trim 命令可以帶來三個主要好處:
-
-
- 較低的寫入放大: 儘早通知那些包含無效數據的頁面的無效數據有助於減少數據重寫。當有更多可用空間可供寫入時,SSD 所需的寫入任務就會減少。
- 高吞吐量: 使用 Trim 命令時,如果 GC 期間要移動的數據較少,則驅動器運行速度會更快。 SSD 寫入閃存的速度是吞吐量的瓶頸。當GC處理時,SSD必須停止來自Host的一些數據傳輸。因此,SSD 知道哪些頁麵包含無效數據是有好處的,這樣在 GC 期間就不必移動該頁面。
- 提高耐力: 通過不重寫無效數據,驅動器向 NAND 閃存寫入更少的數據。
-
GC 和 Trim 是 SSD 操作的構建塊
垃圾收集是 SSD 和 HDD 之間的顯著區別。當新數據被編程到包含無效數據的頁面時,SSD 不會覆蓋現有數據,而是執行 GC。它會導致 NAND 額外磨損。然而,此問題的解決方案之一是 Trim 命令。它可以幫助 SSD 預測來自用戶或操作系統的任何“文件刪除”任務。這會降低寫入放大、提高吞吐量並提高 SSD 耐用性。