坏块管理(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的总和。
坏块管理(Bad Block Management,BBM)的更多相关文章
- BBM(Bad Block Management)坏块管理
不管WL算法如何高明,在使用中都会碰到一个头痛的问题,那就是坏块,所以一个SSD必须要有坏块管理机制.何谓坏块?一个闪存块里包含有不稳定的地址,不能保证读/写/擦时数据的准确性. ...
- Nand Flash基础知识与坏块管理机制的研究
概述 Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次 ...
- 【转】nand flash坏块管理OOB,BBT,ECC
0.NAND的操作管理方式 NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 ...
- nand flash 的oob 及坏块管理
0.NAND的操作管理方式 NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 ...
- NAND Flash大容量存储器K9F1G08U的坏块管理方法
转: http://www.360doc.com/content/11/0915/10/7715138_148381804.shtml 在进行数据存储的时候,我们需要保证数据的完整性,而NAND Fl ...
- nand flash坏块管理OOB,BBT,ECC
转:http://www.cnblogs.com/elect-fans/archive/2012/05/14/2500643.html 0.NAND的操作管理方式 NAND FLASH的管理方式:以三 ...
- STM32下FatFs的移植,实现了坏块管理,硬件ECC,ECC纠错,并进行擦写均衡分析
最近因项目需要,做一个数据采集的单片机平台.需要移植 FatFs .现在把最后成果贴上来. 1.摘要 在 STM32 单片机上,成功移植 FatFs 0.12b,使用的 Nand Flash 芯片为 ...
- Oracle corrupt block(坏块) 详解
转自:http://blog.csdn.net/tianlesoftware/article/details/5024966 一. 坏块说明 1.1 相关链接 在看坏块之前,先看几个相关的链接,在后面 ...
- 12 oracle 数据库坏块--物理坏块-ORA-01578/ORA-01110
oracle 数据库坏块--物理坏块 数据坏块的类型物理坏块:通常是由于硬件损坏如磁盘异常导致.内存有问题.存储链有问题. IO有问题.文件系统有问题. Oracle本身的问题等逻辑坏块:可能都是软件 ...
随机推荐
- Vulkan Tutorial 17 Rendering and presentation
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Setup 这一章节会把之前的所有内容进行整合.我们将会编写drawFrame函数, ...
- Linux 进程,线程 -- (未完)
系统调用 Linux 将系内核的功能接口制作成系统调用, Linux 有 200 多个系统调用, 系统调用是操作系统的最小功能单元. 一个操作系统,以及基于操作系统的应用,都不能实现超越系统调用的功能 ...
- 蜘蛛大战之 站点LOGO(SEO)
起因: 同事让我看 搜公司名称,百度第一位并没有出现公司网址,是别人的,然后我 惊奇的发现,站点logo 竟然 抓了张 无关紧要的图片,从此 变开始了 为期 10天+的战争: 经过: [2017-06 ...
- Objective-C 编码风格指南
本文转自:[Objective-C 编码风格指南 | www.samirchen.com][2] ## 背景 保证自己的代码遵循团队统一的编码规范是一个码农的基本节操,能够进入一个有统一编码规范的团队 ...
- CSS 浅析position:relative/absolute定位方式
## 一.position:relative 相对定位 ## 分两种情况分析: · 无 position: relative: · 有 position: relative. 代码如下图: 显示效果如 ...
- nvarchar 和varchar区别
有时候设计字段的时候,碰到nvarchar和varchar时候,是有点犹豫.所以今天就来探个究竟把. (一) varchar是非Unicode可变长度类型,nvarchar是Unicode编码可变长 ...
- Linux下如何启动svn服务器
service svnserve start 启动服务 service svnserve stop 停止服务 service svnserve restart 重启服务 rpm -e --nodeps ...
- “HK”的日常之ARP断网攻击
ARP断网攻击是什么?可以吃吗?如果可以吃它好吃吗? ARP断网攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响 ...
- 你应该知道的jQuery技巧【收藏】
jQuery的存在,让学习前端开发的人感到前端越来越容易入门了,用简单的几行代码就可以实现需求,但是,你真的会用jQuery么,当代码运行 后无法看到自己预期的效果,是不是觉得jQuery出了问题,其 ...
- for循环语句
for循环格式: for(表达式1:表达式2:表达式3) { 循环语句 } 1.首先计算表达式1的值. 2.再计算表达式2 的值,若值为真(非0) ...