壞塊管理(Bad Block Management,BBM)

  看了不少壞塊管理的文章,加上本身的理解,把整個壞塊管理作了個總結。緩存

壞塊分類

一、出廠壞塊

  又叫初始壞塊,廠商會給點最小有效塊值(NVB,mininum number of valid blocks)。app

二、新增壞塊

  使用過程當中由於磨損形成的新增壞塊,或者使用壞塊。blog

三、假性壞塊

  異常掉電等緣由被主控誤判的假性壞塊。it

壞塊判斷

一、對於出廠壞塊的判斷

  掃描廠商指定地址所對應的byte是否有0xFF標誌,若沒有0xFF則爲壞塊。io

二、對於新增壞塊的判斷

(1)當執行擦除指令時出錯;垃圾回收

(2)當執行寫命令時出錯;im

(3)當執行讀取命令時出錯,並且bit的錯誤超過ECC的糾錯能力;總結

那麼,該Block將被判斷爲壞塊。數據

壞塊管理

一、創建和更新壞塊表(Bad Block Table)

  對出廠壞塊和新增壞塊集中(或分別)管理。異常

  出廠壞塊被標識在SA區中;在讀取閃存內全部的SA區域後,壞塊表就被創建;當壞塊表建立後,主控會把壞塊表保存在某個好的塊裏,每次重啓後,主控會從那個塊裏把表調用進緩存(SDRAM)裏。

二、壞塊表內容

(1)用1bit標識:0表示好塊,1表示壞塊;

(2)用2bit標識:00表示好塊,01表示Program失敗的壞塊,10表示Read失敗的壞塊,11表示Erase失敗的壞塊。

三、壞塊不建議擦除

  因爲在使用中會產生壞塊,因此SSD的主控在每次寫入、擦除、讀取等操做後都要檢查塊的狀態;其中刪除操做前也須要檢查塊的狀態,由於壞塊信息被擦除以後沒法恢復,因此不建議擦除壞塊,擦除前需確保不是壞塊。 

四、壞塊管理策略

(1)壞塊跳過策略:遇到壞塊跳過,存放進好塊裏。

(2)壞塊替換策略:替換以後,FTL會將壞塊地址從新映射到好塊地址。

  基於NAND Flash來說,用SA區中的好塊替換壞塊。Spare Area(SA區)通常用來標記壞塊,和保存對main區數據的ECC校驗碼。是基於NAND Flash的概念。

 

  基於SSD來說,用OP中的free block替換壞塊。Over Provisioning(OP,預留空間)不單單只是用來保證垃圾回收的正常完成,還存儲着SSD內部的系統數據(包括:出廠壞塊信息、SSD固件、Mapping Table等)。是基於SSD的概念。

  OP大小爲全部64bytes的總和。

相關文章
相關標籤/搜索