0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

遇到Nand Flash坏块怎么处理?

AGk5_ZLG_zhiyua 来源:未知 作者:佚名 2017-10-10 10:54 次阅读

Nand Flash存储器是Flash存储器的一种,为固态大容量内存的实现提供了廉价有效的解决方案。NAND存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,如嵌入式产品中包括数码相机、记忆卡、体积小巧的U盘等。

1989年,东芝公司发表了Nand Flash结构,强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级。经过十几年的发展,NAND应用越来越广泛,但是大多数工程师却仍然不知道关于NAND应用的一些难点:分区、ECC纠错、坏块管理等。只有真正了解NAND特性的工程师,才能在应用上得心应手,不会被Nand Flash所绊倒。

分区

定义分区的实质是定义数据会如何写入NAND Flash,不同内容的数据写到对应的地址中。一般用户会有多个区,比如boot、kernel、fs、user等分区。

分区的描述:分区的地址范围(起始块、结束块),镜像文件大小(Image Size)。

分区的数据存储:镜像文件是从分区的起始块开始存放,如果分区中有坏块,将使用坏块处理策略替换坏块,直到镜像文件结束,如果分区中不够好块存放镜像文件,则烧录失败。

如下图是跳过坏块的镜像文件分区烧写示意图:

ECC(错误更正)算法

ECC 存在于NAND 每页的备用区(Spare Area)中,它允许外部系统发现主区的数据是否有误。在大多数情况下,ECC 算法可以纠正误码,NandFlash在使用中也可能会出现坏块,所以ECC是非常有必要的。

不同的用户会可能会使用不同的ECC算法,一般来说ECC算法由处理器供应商提供,如果编程器软件中无这个ECC算法,则需要用户提供ECC算法源代码。

如果用户不使用调入文件,而是使用读母片的方式烧录,并且无动态数据,则可以不考虑ECC算法,因为母片中的备用区已计算好ECC,直接将母片的备用区拷贝至其他芯片即可。

坏块管理

坏块处理策略定义了在遇到坏块时算法应该如何处理,基本的坏块处理策略有:跳过坏块、替换表(预留块区Reserve BlockArea,RBA)等等,下面分别对几种坏块处理方案进行说明。

1、硬拷贝

硬拷贝其实就是遇到坏块什么都不处理,不管好块还是坏块直接烧写按顺序烧写数据,即使校验数据不一致也不报错,这是最简单、直接的处理方法,但是只能适用于数据不需管理的方案;

2、跳过坏块

跳过坏块就是烧录数据时,遇到坏块即跳过此坏块,将数据顺延烧到下一个好块,这样可以保证所有的数据都能烧写到NAND存储空间中,但是并不知道数据究竟烧到了哪一位;

3、替换表

此方法是将NAND存储空间中预留出一些块作为保留块,当遇到坏块时,在预留的保留块中选一个块来替换坏块,将原来写到坏块的数据写到替换块中;

4、BBT(Bad block table)

此方法核心是跳过坏块,但是跳过后需要在NAND闪存指定位置写入一个坏块表(Bad block table),下图是BBT的结构图。

NAND应用需要注意的点大致整理如上,实际使用中会有灵活的应用方案,需要熟知NAND特性、编程器原理的工程师才能设计出合适的方案加以运用。P800Flash极速编程器融合了ZLG致远电子三代Flash编程器的特点,全面支持eMMC、NOR、NAND Flash的烧录,可提供完善的编程解决方案。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NAND
    +关注

    关注

    16

    文章

    1514

    浏览量

    134536
  • 周立功
    +关注

    关注

    38

    文章

    130

    浏览量

    37035

原文标题:遇到Nand Flash坏块如何处理?

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    标准NAND FLASH控制器

    、Toshiba、ST-Micro和其他厂商)的Nand Flash NAND FLASH Controller自动进行坏块管理以及ECC纠
    发表于 02-17 11:11

    标准NAND FLASH控制器/超高速NAND FLASH阵列控制器

    支持各个设备厂商(Micron、Samsung、Hynix、Toshiba、ST-Micro和其他厂商)的Nand FlashNAND FLASH Controller自动进行坏块管理以及ECC纠错
    发表于 03-01 18:49

    Cheap_flash--嵌入式NandFlash的坏块管理驱动层免费C源码下载

    写入产生的坏块。文件系统通过NAND FLASH坏块管理驱动层运行。ECC纠错支持,对每个扇区进行二次ECC纠错,保证正确的数据读出。如果发现Unrecoverable_error的扇
    发表于 10-15 12:23

    nand flash坏块问题

    在网上看到一段这样的话:yaffs文件系统映像文件的格式则跟它们不同,文件本身就包含了OOB区的数据(里面有坏块标记、ECC较验码、其他yaffs相关的信息)。所以烧写时,不需要再计算ECC值,首先
    发表于 01-16 21:07

    Nand Flash中的坏块(Bad Block)

    本帖最后由 一只耳朵怪 于 2018-6-12 11:32 编辑 Nand Flash中,一个块中含有1个或多个位是坏的,就成为其为坏块坏块的稳定性是无法保证的,也就是说,不能
    发表于 06-11 12:15

    NAND flash坏块分类和管理

    一定不是坏块。  (2) 使用坏块    这是在NAND Flash使用过程中,如果Block Erase或者Page Program错误,就可以简单地将这个块作为
    发表于 07-19 09:52

    NAND上面都是坏块

    NAND 上面都是坏块怎么办啊?u-boot 上执行nand bad 发现nand 上都是坏块,下载内核时 ,执行
    发表于 05-20 03:50

    请问NAND FLASH使用时坏块的的位置和个数会变化吗?

    NAND FLASH使用过程中,坏块的的位置和个数会变化吗?
    发表于 09-20 07:52

    uboot移植遇到坏块该怎么办?

    nand flash 应该也没什么问题才对, 而且视频教程上也是烧写到 nand flash上的。 猜想:是因为 nand
    发表于 09-29 10:10

    SD NAND Flash哪家好?CS品牌(创世)最佳选择

    。容量需要大一点的话,就会用采用NAND Flash。  但用NAND Flash会有哪些问题呢?  第一,NAND
    发表于 09-29 16:45

    请问NAND FLASH的ECC怎么配置?

    我的板子是EasyEVM,在调试NAND FLASH时,按照官方的例程配置eccType为NAND_ECC_ALGO_RS_4BIT,发现有以下两个问题:1.读取block0,page0时,读到一般
    发表于 10-25 10:38

    技术小课堂| NAND Flash与MCU集成的细微之处

    在SSD(固态硬盘),移动电话和消费类设备中使用的NAND Flash芯片,通常针对速度和每比特位数进行优化,因此,它们必须使用专用逻辑或应用处理器来处理优化带来的复杂性。但是,对于
    发表于 09-04 13:51

    nuc980买的串口server的,焊接的spi nandnand是不是会有坏块问题?

    请问,这个nand是不是会有坏块问题?会不会出现无法启动到客户那边!因为nand除了ecc,还有负载平衡,处理坏块!文件系统也要求高 另外
    发表于 09-04 07:11

    NAND Flash嵌入式存储系统设计

    基于NAND Flash的存储系统的设计首先要解决坏块问题。由于NAND Flash自身存在固有坏块
    发表于 04-25 11:10 1318次阅读
    <b class='flag-5'>NAND</b> <b class='flag-5'>Flash</b>嵌入式存储系统设计

    Nand Flash中的坏块(Bad Block)

    Nand Flash中,一个块中含有1个或多个位是坏的,就成为其为坏块坏块的稳定性是无法保证的,也就是说,不能保证你写入的数据是对的,或者写入对了,读出来也不一定对的。而正常的块,肯
    发表于 06-05 15:11 1894次阅读