NANDFLASH的学习(二)

本文深入探讨NAND Flash的动态坏块管理,包括坏块的概念、管理方法,如跳过坏块和保留坏块策略,以及动态坏块管理算法的设计思想和实现流程。通过对NAND Flash进行读写和擦写操作前的检查,建立坏块表和逻辑-物理地址映射表,确保数据的安全存储。
摘要由CSDN通过智能技术生成

与之相关联的文章:
NANDFLASH的学习(一)
NANDFLASH的学习(二)
NANDFLASH的学习(三)

三、动态坏块处理

(一)、坏块的概念

NAND Flash由于生产工艺的问题,会存在一定数量的坏块。它产生的原因是解码失败、地址线错误和存储单元等,当区块超出擦写次数时也很容易变成坏块。当区块变成坏块,则不可以对其进行擦写和写操作,相当于这部分资源报废了。但坏块和好块之间是相互独立的,这是由于他们被一个选定的晶体管把位线和指令线分开。说到NAND Flash肯定会有人想到NOR Flash是不是没有坏块呢?其实它也有坏块,不过相对来说比较少,它在内部通常会通过循环冗余比特校验或者纠错码来进行管理。同时由于NOR Flash可直接寻址且可在内部运行代码,它的使用会更加多样性,而NAND Flash相对来说比较简单,需要搭配控制器及驱动芯片才可对其操作。坏块标记的流程大致如下。
在这里插入图片描述

(二)、坏块管理的方法

由于对块进行擦写或者写操作失败时以及超出ECC纠错码的纠正能力时该块可以标记为坏块,坏块管理软件会将坏块重新映射地址到一个好块。当存储了有效数据的块成为坏块后,只是不能进行数据擦除和写操作,但这不影响读操作。所以我们可以将坏块数据读出来然后存放到好块里,这样子坏块就被好块替换了。下面介绍两种常用的寻找好块的方法。

1、跳过坏块

该方法通过读每个块的坏块标记位,建立坏块表,当要写数据的块是坏块时则跳过此块将数据写入到下一块。该坏块对应好块的表也要存储于Flash中。

2、保留坏块

该方法和上述方法相似,但是当遇到坏块时它不跳过坏块,而是建立逻辑-物理映射关系,将坏块的逻辑地址映射到一个好块,从而达到替换坏块的目的。所以坏块管理软件将NAND Flash分为两个部分,分别为用户可寻址区域(User Addressable Block Area)和保留块区域(Reserve Block Area)。其中前一区域用于存储数据、系统应用程序(全都是好块),后者则用于替换坏块并将要替代的坏块信息保存下来。在该模式下,保留块区域的起始地址和大小需要预先给出,它可由坏块管理软件或用户决定。有些厂家会提供一个关于保留块大小,如ST公司的为块总数的2% 。如果NAND Flash有2048个块,则其中2008个块用于用户可寻址区域,其余的40个块用于保留块区域。NAND Flash的内存划分如下图。
在这里插入图片描述

当文件系统写一个逻辑区块(sector)时,会先计算出要写的物理地址然后检测该块是否为坏块。如果是坏块的话,那么它会将该区块的逻辑地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值