首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

NAND flash的坏块

NAND flash的坏块

1.为什么会出现坏块
 
由于NAND Flash的工艺不能保证NANDMemory Array(由NAND cell组成的阵列)在其生命周期中保持性能的可靠(电荷可能由于其他异常原因没有被锁起来,可参考“NOR flashNAND flash的掉电保存原理介绍”这篇文章。


),因此,在NAND的生产中及使用过程中会产生坏块。坏块的特性是:当编程/擦除这个块时,不能将某些位拉高,这
会造成Page ProgramBlock Erase操作时的错误,相应地反映到Status Register的相应位。


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


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


4.补充
 
1)需要对前面由于Page Program错误发现的坏块进行一下特别说明。如果在对一个块的某个page进行编程的时候发生了错误就要把这个块标记为坏块,首先就要把其他好的page里面的内容备份到另外一个空的好块里面,然后,把这个块标记为坏块。
当然,这可能会犯错杀之误,一个补救的办法,就是在进行完页备份之后,再将这个块擦除一遍,如果Block Erase发生错误,那就证明这个块是个真正的坏块,那就毫不犹豫地将它打个吧!
 
2)可能有人会问,为什么要使用spare area的第六个byte作为坏块标记。这是NAND Flash生产商的默认约定,你可以看到Samsung,Toshiba,ATO solution都是使用这个Byte作为坏块标记的。


返回列表