眾所周知,SSD固態硬盤的存儲介質是Nand Flash顆粒,那么如何延長SSD的壽命,實際上就是如何延長Nand閃存顆粒的壽命了。
為了實現這些目標,閃存的特性是控制器必須適應的關鍵因素。寫入數據的過程、閃存單元的有限編程/擦除周期以及錯誤處理只是這些特性的幾個示例,下面將更詳細地描述這些特性。
Nand閃存的一個關鍵特性是,數據是在頁面中寫入和編程的。這些頁面的大小通常在4kB到16kB之間,并且只能通過擦除由多個頁面組成的整個塊來擦除。頁和塊中的一個單元需要“在瞬間”編程和擦除,這就是為什么它被稱為閃存的原因。任何已編程為0的單元格只能通過擦除整個塊重置為1。最后,在將新數據編程到已經包含數據的頁面之前,必須將頁面的當前內容復制到另一個空頁面,或者在不再需要時刪除。如果沒有可用的空頁,則在將數據復制到塊中的頁之前,必須刪除塊。然后舊頁被標記為無效,可以擦除和重用。
控制器管理決定要使用哪些頁面以及跟蹤需要擦除的無效頁面的過程。此外,它還執行一個名為“垃圾收集”的函數,將有效數據頁合并到塊中,創建空塊以供擦除和重復使用。在所有數據處理過程中,控制器管理從主機的邏輯地址到內存中物理位置的映射。控制器的另一個關鍵特性是,如果在移動數據時發生電源故障,可以確保數據的完整性。在醫療技術等重要行業發生停電時,這一點尤為關鍵。
上述過程包括復雜的物理特性和相對高的電壓,正因為如此,閃存單元所能完成的有限的編程和擦除周期使得選擇要使用的塊和頁變得更加復雜。為了防止頁面的早期故障,控制器會執行一個稱為“磨損均衡”的過程,以確保所有閃存塊都得到平等使用。
控制器的另一個重要任務是盡可能有效地使用糾錯編碼(ECC)來檢測讀取數據時的錯誤。最近的ECCs可以在1kByte的用戶數據中糾正超過120位的錯誤。這意味著,在70位讀取中有1位與原始誤碼率(RBER)有關的預計是不正確的!
如果某個塊中出現重復故障或某個塊未能擦除,則該塊將被標記為壞塊,以后將不再使用。閃存的一個重要特性是,它們是用額外的備用塊構建的。因此,如果某個塊顯示的錯誤率超出了公差限制,則該塊將不被使用,并將被標記為壞塊。相反,將使用另一個備用塊。
最后,讓我們看看如何跟蹤閃存的當前狀態和預期壽命。此過程用于避免意外故障和數據丟失。與硬盤驅動器一樣,標準的自我監控、分析和報告技術(SMART)允許控制器報告閃存的運行狀況。
因此,最先進的Nand Flash控制器技術是實現基于Flash的存儲產品的關鍵,與硬盤存儲相比,它確保了高水平的耐久性、可靠性和運行壽命。