如何成為一個具有領(lǐng)導(dǎo)力的SSD主控? 之前的文章中,已經(jīng)偷偷的分享了SSD主控的成功秘訣: 1. 針對Host和NAND閃存采用不同的安撫策略(Interface/protocol); 2. 高效的處理Host和NAND閃存之間的數(shù)據(jù)傳輸,并保證數(shù)據(jù)的完整性。 此時還是很有必要再一次把SSD主控架構(gòu)圖請出來(最近出鏡率有點高哈,這一次應(yīng)該是最后一次麻煩TA老人家咯): SSD主控的夢想就是實現(xiàn)以下功能: 1. 磨損平衡(Wear-leveling) 2. 垃圾數(shù)據(jù)回收(Garbage Collection) 3. 壞塊管理(Bad Block Management) 4. 數(shù)據(jù)糾錯處理(ECC, Error Correction Code) SSD主控的想法是好,但是理想和現(xiàn)實總是有或多或少的差距,現(xiàn)實是Host的愿景跟NAND閃存的本性有了沖突。 在逆境境中才能檢驗SSD主控的真實領(lǐng)導(dǎo)力,SSD主控大膽的啟用了邏輯與物理轉(zhuǎn)換層(logical to physical)的概念,也稱為閃存轉(zhuǎn)換層 (FTL,F(xiàn)lash Translation Layer)。 有了閃存轉(zhuǎn)換層FTL這一秘密武器,SSD主控可以輕松實現(xiàn)自己的夢想。 1. 磨損平衡(Wear-leveling,WL) 在現(xiàn)實應(yīng)用過程中,SSD主控在NAND閃存寫入數(shù)據(jù)時,并非均勻等機會的寫入NAND閃存的每一個區(qū)塊(Block)。 為了最大化的延長SSD的存儲壽命,閃存轉(zhuǎn)換層FTL引入磨損平衡(Wear-leveling)技術(shù),盡量使NAND閃存的每一個Block/Page壽命均衡化。 在Host對同一邏輯區(qū)塊更新數(shù)據(jù)時,SSD主控會動態(tài)的指向不同的物理區(qū)塊,之前的物理區(qū)塊標(biāo)記為“無效”,進入等待保養(yǎng)狀態(tài),這樣就可以確保每一個物理區(qū)塊都被使用。 用更通俗的話來講就是,每次寫入的時候挑年輕力壯的區(qū)塊, 年老的區(qū)塊則頤養(yǎng)天年。 2. 垃圾數(shù)據(jù)回收(Garbage Collection, GC) 垃圾數(shù)據(jù)回收GC技術(shù), 類似于平時我們電腦、手機內(nèi)存整理優(yōu)化的概念。 3. 壞塊管理(Bad Block Management,BBM) 在終端客戶使用的過程也會不斷產(chǎn)生壞塊,SSD主控會及時更新壞塊表單。 4. 數(shù)據(jù)糾錯處理(ECC, Error Correction Code) NAND閃存不能保證數(shù)據(jù)在整個生命周期里都不出錯,NAND閃存一般不會整個Block或Page全部出錯,只是其中的一個或者幾個bit出錯,如果直接將整個Block標(biāo)記為壞塊,那實在是太浪費了(罪過,罪過~~~)。 數(shù)據(jù)糾錯處理(ECC, Error Correction Code)技術(shù)可以糾正一定數(shù)量的錯誤bit。目前SSD主控基本通過硬件的方式實現(xiàn),主流的SSD ECC糾錯技術(shù)主要有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》