zoukankan      html  css  js  c++  java
  • 坏块管理(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的总和。

  • 相关阅读:
    z-index只能在position属性值为relative或absolute或fixed的元素上有效。
    margin负值得理解
    <em>标签与<strong>标签区别
    文字的垂直居中
    data-*的定义和用法
    one()方法的介绍
    <meta name="application-name" content="优酷网" /> 是什么意思?
    <meta property="qc:admins" content="70003766576320416375" />是什么意思?具体功能是什么?
    head部分关于搜索引擎
    java第三次作业
  • 原文地址:https://www.cnblogs.com/Christal-R/p/7262503.html
Copyright © 2011-2022 走看看