Nand Flash,每一个页,对应一个空闲区域(OOB),这个区域是基于Nand Flash的硬件特性,数据在读写的时候容易出错,为了保证数据的正确性,就产生了这样一个检测和纠错的区域,用来放置数据的校验值。OOB的读写操作,一般都是随着页的操作一起完成,也就是在读写页的时候,对应的OOB就产生了,那么OOB有什么用途呢?

1). 标记是否存在坏块 

1.为什么会出现坏块
    由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。坏块的特性是:当编程/擦除这个块时,会造成Page Program和Block Erase操作时的错误,相应地反映到Status Register的相应位。

2.坏块的分类
   总体上,坏块可以分为两大类:(1)固有坏块:这是生产过程中产生的坏块,一般芯片原厂都会在出厂时都会将每个坏块第一个page的spare area的第6个byte标记为不等于0xff的 值。(2)使用坏块:这是在NAND Flash使用过程中,如果Block Erase或者Page Program错误,就可以简单地将这个块作为坏块来处理,这个时候需要把坏块标记起来。为了和固有坏块信息保持一致,将新发现的坏块的第一个page的 spare area的第6个Byte标记为非0xff的值。

3.坏块管理
    根据上面的这些叙述,可以了解NAND Flash出厂时在spare area中已经反映出了坏块信息,因此, 如果在擦除一个块之前,一定要先check一下第一页的spare area的第6个byte是否是0xff,如果是就证明这是一个好块,可以擦除;如果是非0xff,那么就不能擦除,以免将坏块标记擦掉。 当然,这样处理可能会犯一个错误―――“错杀伪坏块”,因为在芯片操作过程中可能由于 电压不稳定等偶然因素会造成NAND操作的错误。但是,为了数据的可靠性及软件设计的简单化,还是需要遵照这个标准。

4. 坏块处理  

 使用过程中产生的坏块,就需要将这个块作为坏块来处理,为了与固有的坏块信息保持一致,也需要将新发现的坏块的第一个page的spare eare的第6个Byte标记为非0xff的值。

可以用BBT:bad block table,即坏块表来进行管理。各家对nand的坏块管理方法都有差异。比如专门用nand做存储的,会把bbt放到block0,因为第0块一定是好的块。但是如果nand本身被用来boot,那么第0块就要存放程序,不能放bbt了。 有的把bbt放到最后一块,当然,这一块坚决不能为坏块。 bbt的大小跟nand大小有关,nand越大,需要的bbt也就越大。

2). 存储ECC校验

1. ECC校验

  ECC(Error Checking and Correction),是一种用于Nand Flash的差错检测和修正的算法。由于操作的时序和电路稳定性等原因,常常会出现一些bit出错,也就是原来的某个位,本来是0而变成了1,或者本来是1而变成0。从现象来看,问题其实看起来并不是特别的严重,但是如果恰好某个重要的文件的某一位发生了变化,那么问题就大了,可能会导致此时文件不能运行,如果这个文件是一个影响系统的程序,那么直接将导致系统会出现问题,所以对于Nand Flash就出现了这样一个机制。它能纠正1个bit的错误和检测出2个bit的错误,对于1bit以上的错误无法纠正,而对于2bit以上的错误不能保证能检测。对于ECC其纠错算法是什么样的呢?

  1)当往Nand Flash写入数据时候,每256个字节生成一个ECC校验,针对这些数据会生成一个ECC校验码,然后保存到对应的page的OOB数据区。

  2)当读取Nand Flash的数据时候,每256个字节就会生成一个ECC校验,那么对于这些数据就会计算出一个ECC校验码,然后将从OOB中读取存储的ECC校验和计算的ECC校验想比较,

https://blog.csdn.net/caijiwyj/article/details/89762497

NandFlash OOB及UBI文件系统分析相关推荐

  1. 光盘隐藏文件夹 linux,linux常用命令大全2--挂载/dpkg/文件系统分析/apt/光盘/关机...

    挂载一个文件系统 mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在 umount /dev/hda2 卸载一个叫做hda2 ...

  2. 京东 ChubaoFS 分布式文件系统分析

    ChubaoFS(CFS)是京东开发的一分布式文件系统和对象存储系统.其主要声称是云原生的分布式文件系统,主要用于k8s容器环境. CFS是一个分布式的文件系统,支持多元数据服务器,支持posix接口 ...

  3. linux ext4文件系统分析,LinuxEXT4文件系统分析

    ISSN1009-3044 第7卷第年5月)14期(2011电脑知识与技术ComputerKnowledgeandTechnology Vol.7,No.14,May2011,pp.3443-3446 ...

  4. linux ubi 分区,Linux最新UBI文件系统介绍

    嵌入式linux中文站关注嵌入式linux文件系统的发展.在linux-2.6.27以前,谈到Flash文件系统,大家很多时候多会想到cramfs.jffs2.yaffs2等文件系统.它们也都是基于文 ...

  5. 解压ubi文件_制作ubi文件系统

    制作 ubi 文件系统 目录 开发环境 ................................................................................ ...

  6. 解压ubi文件_请问为什么AM3352 NAND FLASH UBI文件系统挂载失败?

    本帖最后由 一只耳朵怪 于 2018-6-21 11:08 编辑 各位好: 在NAND FLASH中写入ubi文件系统,内核启动时出现挂载失败. SDK:ti-processor-sdk-linux- ...

  7. 无法扩展该卷 因为群集的数量将超过文件系统_Ubifs文件系统分析

    转载是一种动力 分享是一种美德 1.  引言 UBIFS,Unsorted Block Image File System,无排序区块图像文件系统.它是用于固态硬盘存储设备上,并与LogFS相互竞争, ...

  8. Android文件系统分析

    感谢conowen大神 原文地址:http://blog.csdn.net/conowen/article/details/7251057 1.Android文件系统的结构 官方Android源码编译 ...

  9. UBIFS文件系统分析六之wear-leveling

    2011-03-08 14:34:56 分类: LINUX 在本文的开头,先接本章讲一下EBA,什么是EBA,Eraseblock Association. 在上次提到structubi_volume ...

最新文章

  1. shell脚本之 if,case,for的用法
  2. 面试官比较看重简历中的哪些维度,有什么写简历的技巧、建议和总结?
  3. Nat. Mach. Intell. | 少量数据的生成式分子设计
  4. getCacheDir用法
  5. mysql数据库DDL操作
  6. 无线覆盖项目地勘——无线地勘记录
  7. MySQL binlog和redo/undo的概念
  8. java信号灯_java 多线程-信号灯法
  9. java 父类 超类_Java超类-java.lang.object
  10. 大数据_MapperReduce_Hbase相关面试题_补充说明---Hbase工作笔记0030
  11. java正则出现次数_正则表达式(二)—匹配次数的正则
  12. MySQL MHA详解(二)——实战配置
  13. python类的属性前加上双下划线_Python中使用双下划线防止类属性被覆盖问题
  14. 【产业互联网周报】罗永浩AR创业公司获美团领投;英特尔自动驾驶子公司Mobileye敲定IPO条款;星环科技登陆科创板...
  15. 华为老总任正非给公司患抑郁症员工的一封信
  16. 安装kanzi-平台要求
  17. JAVA泛型通配符T,E,K,V区别,T以及ClassT,ClassT的区别
  18. Mac常见问题:如何在Mac中查看多张图片
  19. coco数据集百度网盘下载
  20. Linux命令——ln命令

热门文章

  1. java中 jacob作用_【JAVA】JACOB使用简介
  2. 给网站添加一个初音未来代码
  3. 怎么打开Office 2007 Excel加密文档
  4. 打印机一直显示打印服务器错误,打印机老显示状态错误怎么办_打印机显示打印错误状态怎么弄-win7之家...
  5. 第一次走绿道,从长岭陂到梅林水库_我是亲民_新浪博客
  6. CF698A - Vacations
  7. linux终端查看文件夹图片,如何在Linux终端中显示图片
  8. 提问也能拿书,解惑却要送书!安卓巴士就是这么好!来拿书吧!
  9. 创新 就是以色列人的呼吸
  10. 信息系统项目管理师(2022年) —— 第 24 章 项目管理成熟度模型