linux nand 坏块_NAND FLASH 坏块管理 申酷啊,,

关于NAND FLASH 的坏块管理

就现在的NAND FLASH ,有串口和并口两种,

并口就是48PIN的数据的输入和输入公用IO的

串口的就是使用SPI接口的NAND FLASH

说下NAND FLASH 管理的核心思维:

1 识别坏块,标记坏块,

2 如何保存坏块信息

3 交换区概念

4 保留去概念

1,NANDFLASH 的工艺不能保证写进去的每个块里面的数据,和读出来的数据一致,所以是存在坏块的,

而NAND FLASH的数据组织结构是这样的,

由N个块组成,而块由M个PAGE组成+MXSPARE区

比如 K9F1G08U0D 以这个片子为例子,

BLOCK 大小为 128K 用户可以写的,

实际大小为 128K + 64*4*16

至于后面64*4*16的意思是这样的, 因为该片子每个PAGE的大小为2048 也就是2K,

而因为NAND 存在坏块,所以,在每写512个字节后,都会产生一个校验码,而这个校验码用来标记,该块是坏块还是可以正常使用的,

当然这个512是针对大页的NAND FLASH,小页的话是每256个字节产出一个校验码,当然现在这样的小页的NAND FLASH很少见了,

老了,即使有,也是拆机弄下来的,

坏块的识别的话,这几种,并口的:一个是可以根据ECC校验算法来,判断是否为坏块,具体算法可以去百度查查,

一个是可以判断在写玩数据之后,来判断SPARE数据区域来判断段坏块,而对于小页和大页的有区别

小页的NANDFLASH ,比如一个页的大小为1K,那么,在读取1K后面数据的16个数据,

如果第一个数据不为FF,那么标记该块为坏块,在标记的时候,可以标记的数据为全部为00,也就是在标记16个数据的时候表示为0

而在标记的时候,一般标记的区域是这个块的第一个PAGE后的16个数据

串口:串口的,里面有自校验,硬件的,所以在识别的时候,可以直接装载要判断的PAGE的地址,然后去读取状态寄存器即可,

同样的也可以去标记坏块,标记花开的话和并口的一样

2 如何保存坏块信息,

坏块信息一般包括:

1 ,保存坏块的信息的地址,也就是你要获得坏块信息的话,一般去哪个地址去读,可以是固定的,也可以不是固定的,不固定的花费的时间长点,管理起来复杂

2,坏块信息要保存交换区的信息:这个信息是,你所使用的交换区,某个块是坏块,还是好块 后面会介绍

3,保留区的地址映射状态,后面会介绍

4 ,如何去标记该块是作为,保存坏块信息表格呢,,

至于如何保存坏块信息,很多种方法,核心就是,用特殊的数据去标记,

比如,我在用来保存坏块信息表的时候,一般这样标记

该块的第一个PAGE的前面八个数据是这样的,,0xff55aa00,0x0000000

该块的最后一个PAGE ,最后8个数据是0X33445588.0XFF00FF00

然后该块的倒数第二个PAGE,标记交换区的信息和保留去地址映射关系,+一个校验和

而对于保存坏块信息表格所用的块,一般是3个或者5个不等,,交替使用,或者也可以不交替使用,,

对于不交替使用的情况就是,一旦发生坏块标记的情况的话,那么3或者5个块都要被写数据,而却写的数据是一样的,

有人会说,占用这么多块不是浪费,其实,对于整个芯片来说,占用这几个块,而有个坏块管理程序是值得的

3 交换区概念:

比如,块0 ,该块大小为128K, 在0X000-0X18000里面有数据,0x18800 - 0x20000这个有数据是文件系统认为的,

而文件系统要在0x18000-0x18800这个512的范围内要写数据,那该怎么办呢,

肯定要这个块个擦除掉的,如果没有交换区的话,那么擦除的话,会导致在0X000-0X18000,,0x18800 - 0x20000之间的数据都会丢失的,那该怎么办呢,

那就要使用交换区,交换区的作用就是这样的,

如果要擦除某个块的话,那么首先要将这个块里面的数据拷贝到另外一个块里面,而这个另外一个块,称之为交换区,

首先将整个块的数据,全部放到一个可以用的交换区,然后再将0这个块擦除,擦除之后0这个块里面的数据就是FF了,那么在擦除之后,在将交换区里面的数据回写到0这个块里面

那么出现的情况就是0X000-0X18000,,0x18200 - 0x20000 这个两个区间内的数据还是原来的数据,在将原来的数据回写到0块之后,然后在将这次文件系统要写的数据写到

0x18000-0x18200这个区域里面,这样既保证数据的完整性,又能将新数据写进去

4保留区概念:

保留区的作用就是这个,当在写数据的时候发生坏块的话,那么得将这个块的数据要保存另外一个块里面,同时要对产生的那个坏块进行标记,

具体可以参考附件:标记该坏块管理参考圈圈的NANDFLASH坏块管理思维

2015-7-14 23:24 上传

点击文件名下载附件

4.18 KB, 下载次数: 1627

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值