当前位置: 首页 > news >正文

NAND flash的坏块

NAND flash的坏块

1.为什么会出现坏块
由于NAND Flash的工艺不能保证NAND的Memory Array(由NAND cell组成的阵列)在其生命周期中保持性能的可靠(电荷可能由于其他异常原因没有被锁起来。因此,在NAND的生产中及使用过程中会产生坏块。坏块的特性是:当编程/擦除这个块时,不能将某些位拉高,这会造成Page Program和Block Erase操作时的错误,相应地反映到Status Register的相应位。

2.坏块的分类
总体上,坏块可以分为两大类
(1) 固有坏块
这是生产过程中产生的坏块,一般芯片原厂都会在出厂时都会将坏块第一个page的spare area的第6个byte标记为不等于0xff的值。出厂时,ATO solution原厂也会保证第一个块一定不是坏块。
(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.补充
(1)需要对前面由于Page Program错误发现的坏块进行一下特别说明。如果在对一个块的某个page进行编程的时候发生了错误就要把这个块标记为坏块,首先就要把其他好的page里面的内容备份到另外一个空的好块里面,然后,把这个块标记为坏块。
当然,这可能会犯“错杀”之误,一个补救的办法,就是在进行完页备份之后,再将这个块擦除一遍,如果Block Erase发生错误,那就证明这个块是个真正的坏块,那就毫不犹豫地将它打个“戳”吧!
(2)可能有人会问,为什么要使用spare area的第六个byte作为坏块标记。这是NAND Flash生产商的默认约定,你可以看到Samsung,Toshiba,ATO solution都是使用这个Byte作为坏块标记的。

http://www.lryc.cn/news/101405.html

相关文章:

  • 代码随想录算法训练营第二十五天 | 读PDF复习环节3
  • 18.Netty源码之ByteBuf 详解
  • #P0999. [NOIP2008普及组] 排座椅
  • Sentinel 容灾中心的使用
  • 深度学习中简易FC和CNN搭建
  • 【多模态】20、OVR-CNN | 使用 caption 来实现开放词汇目标检测
  • 网络编程 IO多路复用 [select版] (TCP网络聊天室)
  • 数学建模学习(7):单目标和多目标规划
  • Element UI如何自定义样式
  • protobuf入门实践2
  • adb shell使用总结
  • UG NX二次开发(C++)-Tag的含义、Tag类型与其他的转换
  • Informer 论文学习笔记
  • c语言位段知识详解
  • FFmpeg aresample_swr_opts的解析
  • CAN学习笔记3:STM32 CAN控制器介绍
  • 软工导论知识框架(二)结构化的需求分析
  • [SQL挖掘机] - 算术函数 - abs
  • vue拼接html点击事件不生效
  • 【Spring】Spring之依赖注入源码解析
  • 【微软知识】微软相关技术知识分享
  • 12.python设计模式【观察者模式】
  • 重生之我要学C++第五天
  • 复习之linux高级存储管理
  • HuggingGPT Solving AI Tasks with ChatGPT and its Friends in Hugging Face
  • java工程重写jar包中class类覆盖问题
  • Mybatis基于注解与XML开发
  • 数字化转型导师坚鹏:数字化时代扩大内需的8大具体建议
  • M1/M2 通过VM Fusion安装Win11 ARM,解决联网和文件传输
  • Linux中显示系统正在运行的进程的命令