标题:
NAND flash的坏块
[打印本页]
作者:
witte
时间:
2018-6-12 14:33
标题:
NAND flash的坏块
1.
为什么会出现坏块
由于
NAND Flash
的工艺不能保证
NAND
的
Memory Array
(由
NAND cell
组成的阵列)在其生命周期中保持性能的可靠(电荷可能由于其他异常原因没有被锁起来,可参考“
NOR flash
和
NAND flash
的掉电保存原理介绍”这篇文章。
),因此,在
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://bbs.eccn.com/)
Powered by Discuz! 7.0.0