壞塊管理(Bad Block Management,BBM)


  看了很多壞塊管理的文章,加上自己的理解,把整個壞塊管理做了個總結。

壞塊分類

1、出廠壞塊

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

2、新增壞塊

  使用過程中因為磨損造成的新增壞塊,或者使用壞塊。

3、假性壞塊

  異常掉電等原因被主控誤判的假性壞塊。

壞塊判斷

1、對於出廠壞塊的判斷

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

2、對於新增壞塊的判斷

(1)當執行擦除指令時出錯;

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

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

那么,該Block將被判斷為壞塊。

壞塊管理

1、建立和更新壞塊表(Bad Block Table)

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

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

2、壞塊表內容

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

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

3、壞塊不建議擦除

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

4、壞塊管理策略

(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的總和。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM