Nand Flash 中,一个块中含有 1 个或多个位是坏的,就称为其为坏块 Bad Block。
坏块的稳定性是无法保证的,也就是说,不能保证你写入的数据是对的,或者写入对了,读
出来也不一定对的。与此对应的正常的块,肯定是写入读出都是正常的。
坏块有两种:
(1) 出厂时就有存在的坏块:
一种是出厂的时候,也就是,你买到的新的,还没用过的 Nand Flash,就可以包含了坏块。
此类出厂时就有的坏块,被称作 factory (masked) bad block 或 initial bad/invalid block,
在出
厂之前,就会做对应的标记,标为坏块。
(2) 使用过程中产生的坏块:
第二类叫做在使用过程中产生的,由于使用过程时间长了,在擦块除的时候,出错了,说明
此块坏了,也要在程序运行过程中,发现,并且标记成坏块的。具体标记的位置,和上面一
样。这类块叫做 worn-out bad block。即用坏了的块。
坏块的标记
具体标记的地方是,对于现在常见的页大小为 2K 的 Nand Flash,是块中第一个页的 oob
起
始位置(关于什么是页和 oob,下面会有详细解释)的第 1 个字节(旧的小页面,pagesize
是 512B 甚至 256B 的 Nand Flash,坏块标记是第 6 个字节) 如果不是 0xFF,就说明是坏块。
相对应的是,所有正常的块,好的块,里面所有数据都是 0xFF 的。
不过,对于现在新出的有些 Nand Flash,很多标记方式,有些变化,有的变成该坏块的第一
个页或者第二个页,也有的是,倒数最后一个或倒数第二个页,用于标记坏块的。
- 1
- 2
前往页