如何成為一個具有領導力的SSD主控? 之前的文章中,已經偷偷的分享了SSD主控的成功秘訣: 1. 針對Host和NAND閃存采用不同的安撫策略(Interface/protocol); 2. 高效的處理Host和NAND閃存之間的數據傳輸,并保證數據的完整性。 此時還是很有必要再一次把SSD主控架構圖請出來(最近出鏡率有點高哈,這一次應該是最后一次麻煩TA老人家咯): SSD主控的夢想就是實現以下功能: 1. 磨損平衡(Wear-leveling) 2. 垃圾數據回收(Garbage Collection) 3. 壞塊管理(Bad Block Management) 4. 數據糾錯處理(ECC, Error Correction Code) SSD主控的想法是好,但是理想和現實總是有或多或少的差距,現實是Host的愿景跟NAND閃存的本性有了沖突。 在逆境境中才能檢驗SSD主控的真實領導力,SSD主控大膽的啟用了邏輯與物理轉換層(logical to physical)的概念,也稱為閃存轉換層 (FTL,Flash Translation Layer)。 有了閃存轉換層FTL這一秘密武器,SSD主控可以輕松實現自己的夢想。 1. 磨損平衡(Wear-leveling,WL) 在現實應用過程中,SSD主控在NAND閃存寫入數據時,并非均勻等機會的寫入NAND閃存的每一個區塊(Block)。 為了最大化的延長SSD的存儲壽命,閃存轉換層FTL引入磨損平衡(Wear-leveling)技術,盡量使NAND閃存的每一個Block/Page壽命均衡化。 在Host對同一邏輯區塊更新數據時,SSD主控會動態的指向不同的物理區塊,之前的物理區塊標記為“無效”,進入等待保養狀態,這樣就可以確保每一個物理區塊都被使用。 用更通俗的話來講就是,每次寫入的時候挑年輕力壯的區塊, 年老的區塊則頤養天年。 2. 垃圾數據回收(Garbage Collection, GC) 垃圾數據回收GC技術, 類似于平時我們電腦、手機內存整理優化的概念。 3. 壞塊管理(Bad Block Management,BBM) 在終端客戶使用的過程也會不斷產生壞塊,SSD主控會及時更新壞塊表單。 4. 數據糾錯處理(ECC, Error Correction Code) NAND閃存不能保證數據在整個生命周期里都不出錯,NAND閃存一般不會整個Block或Page全部出錯,只是其中的一個或者幾個bit出錯,如果直接將整個Block標記為壞塊,那實在是太浪費了(罪過,罪過~~~)。 數據糾錯處理(ECC, Error Correction Code)技術可以糾正一定數量的錯誤bit。目前SSD主控基本通過硬件的方式實現,主流的SSD ECC糾錯技術主要有BCH編碼和LDPC編碼。 1. S.-W. Lee, D.-J. Park, T.-S. Chung, D.-H. Lee, S.-W. Park, H.-J. Songe, FAST: A log-buffer based FTL scheme with fully associative sector translation, in 2005 US-Korea Conference on Science, Technology, & Entrepreneurship, Seoul, Aug 2005 2. R. Micheloni, A. Marelli, R. Ravasio, Error Correction Codes for Non-Volatile Memories (Springer, Dordrecht, 2008) |
|
來自: Long_龍1993 > 《SSD》