切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 14932阅读
  • 15回复

NAND Flash闪存坏块说明及常识[转] [复制链接]

上一主题 下一主题
离线埋头苦修
 

发帖
1699
M币
-1161
专家
-4
粉丝
498
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2008-01-31
1)为什么会出现坏块

由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。坏块的特性是:

当编程/擦除这个块时,不能将某些位拉高,这会造成Page Program和Block Erase操作时的错误,相应地反映到Status Register的相应位。

2)坏块的分类

总体上,坏块可以分为两大类

(1) 固有坏块

这是生产过程中产生的坏块,一般芯片原厂都会在出厂时都会将坏块第一个page的spare area的第6个byte标记为不等于0xff的值。

(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发生错误,那就证明这个块是个真正的坏块,那就毫不犹豫地将它打个“戳”吧!mydigit.net

(2)可能有人会问,为什么要使用spare area的第六个byte作为坏块标记。这是NAND Flash生产商的默认约定,你可以看到Samsung,Toshiba,STMicroelectronics都是使用这个Byte作为坏块标记的。
本帖最近打赏记录:共1条打赏
离线郑气飞洋
发帖
350
M币
179
专家
1
粉丝
7
只看该作者 1楼 发表于: 2008-02-01
请登录后查看
离线柳州仔

发帖
32
M币
11
专家
1
粉丝
1
只看该作者 2楼 发表于: 2008-02-01
请登录后查看
离线asm007
发帖
53
M币
115
专家
1
粉丝
11
只看该作者 3楼 发表于: 2008-02-01
请登录后查看
离线vip_neter
发帖
11
M币
0
专家
1
粉丝
0
只看该作者 4楼 发表于: 2008-02-01
请登录后查看
离线enimv

发帖
3343
M币
-9865
专家
-14
粉丝
46
只看该作者 5楼 发表于: 2008-02-01
请登录后查看
本帖最近打赏记录:共1条打赏
离线bingchong
发帖
12
M币
24
专家
1
粉丝
0
只看该作者 6楼 发表于: 2008-02-01
请登录后查看
离线fireant
发帖
1225
M币
1833
专家
3
粉丝
0
只看该作者 7楼 发表于: 2008-02-03
请登录后查看
离线awnuqq
发帖
9
M币
10
专家
1
粉丝
0
只看该作者 8楼 发表于: 2008-02-14
请登录后查看
离线坏坏~

发帖
289
M币
466
专家
3
粉丝
3
只看该作者 9楼 发表于: 2008-02-14
请登录后查看
快速回复
限80 字节
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
 
上一个 下一个