坏块管理(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本身的问题等逻辑坏块:可能都是软件 ...
随机推荐
- 在Ubuntu中设置DNS域名服务器端
在Ubuntu中设置DNS域名服务器主要有四种方法: 一.设置全局静态DNS $ sudo vi /etc/resolvconf/resolv.conf.d/base(这个文件默认是空的),插入: n ...
- 浅谈JavaScript递归
递归:是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象.递归指的是一个过程:函数不断引用自身,直到引用的对象已知. //公园里面有200个桃子,每天吃掉一半,扔掉一个烂的,第6天 ...
- Java 中Calendar、Date、SimpleDateFormat学习总结
在之前的项目中,经常会遇到Calendar,Date的一些操作时间的类,并且总会遇到时间日期之间的格式转化问题,虽然做完了但是总是忘记,记不清楚,每次还都要查找资料.今天总结一下,加深印象. Cale ...
- R语言重要数据集分析研究——搞清数据的由来
搞清数据的由来 作者:李雪丽 资料来源:百度百科
- phpcms V9 后台验证码图片不显示
某个网站在本地运行成功,上传到服务器上后,发现后台登陆的验证码图片不显示 根据网上提供的解决方案, 网站路径变量web_path没问题 database.system的配置路径没问题 apache的G ...
- 使用 Socket.IO 开发聊天室
前言 Socket.IO 是一个用来实现实时双向通信的框架,其本质是基于 WebSocket 技术. 我们首先来聊聊 WebSocket 技术,先设想这么一个场景: · 用户小A,打开了某个网站的充值 ...
- group by和count联合使用问题
要根据用户发布的产品数量来排序做分页,使用group ) FROM( SELECT uid,COU 工作中要根据用户发布的产品数量来排序做分页,使用group by uid 用count(uid) 来 ...
- 使用dns批量管理普通主机名相关问题
1.dns配置 日常管理主机过程中,会有很多地方需要使用到主机名的,当主机非常多的时候,就不适合使用hosts来管理和同步的所有主机hosts了,这个时候就可以使用dns来管理主机名映射和变动 dns ...
- 微信小程序的开发环境搭建(Windows版本)
前言: 小程序是指微信公众平台小程序,小程序可以帮助开发者快速的开发小程序,小程序可以在微信内被便捷地获取和传播:是一种不需要下载安装即可使用的应用小程序,和原有的三种公众号是并行的体系.2017年1 ...
- 一款好用的绘图软件gnuplot
漂亮的图片在一篇报告中是必不可少的.这里推荐一款绘图软件Gnuplot. Gnuplot是一种免费分发的绘图工具,可以移植到各种主流平台,无论是在Linux还是在Windows都易于安装使用.最新的版 ...