阅读:2443回复:10
Nand Flash方面的问题,大家帮帮忙~~~
查过了论坛内的帖子,关于Flash坏块的问题,有部分网友也问起过来,但没有哪位老大给出过很完整的解答。在此再请教关于Nand Flash坏块处理方面的问题,希望高手不吝赐教。
以512bytes(+16bytes)/page为例。 第517byte为Invalid Block的标志,若为0xff则说明是一个坏的block。 Samsung在datasheet中建议我们建立坏块表,如果检测到517byte为0xff的page,则标记它所在的block为坏块。 请问: 这个第517个byte是由谁来修改的?由firmware来做的吗?在每次读写操作之前做一次检查?能不能把这个过程详细的说一下?有些帖子里说在写之前写入ECC,读出来后检查ECC,可我不是很明白,请高手指教。 |
|
|
沙发#
发布于:2005-03-17 09:39
把samsung的data sheet多读几遍就知道了。
检测第517字节是否0XFF是FLASH出厂时的要求,如果FLASH出厂某一个块坏了,这个块的第一或第二个PAGE就不是0XFF。一般FIRMWARE对刚出厂的FLASH进行一次全面的坏块检测,建立坏块表,在这个表中记录所有坏块的位置,在写和察除时不去访问这些坏块,并根据写和察除后的状态获得块的状态,动态更新坏块表。 在第一次进行全面检测后,对坏块的检测就不要检查第517字节了,那时这个块可能已经被察除,或这个PAGE的SPARE AREA已经被写入其他数据了,对坏块的管理完全依赖第一次建立的坏块表了。 |
|
板凳#
发布于:2005-03-17 10:10
很感激p_y_h的回复。
按照你的说法,出厂时检测过后建立了坏块表,那么在出厂之后的坏块是怎么来标记的? 是不是在每次执行写操作擦除操作和读操作后用read status来检测 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一下是否有error发生,如果有error则表明这个page是坏的,然后在 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 坏块表里把这个page所在的block标记为坏块,是不是这样的呢? 因此现在市面上的U盘的坏块管理操作是在每次的读写和擦除后read status一次看是否有错误发生,是不是这样的一个过程呢? 在每次格式化(U盘生产厂商提供的格式化程序)的时候是不是也要进行一次坏块的检测? |
|
|
地板#
发布于:2005-03-17 11:04
没人理了。。。
自己顶一下~ |
|
|
地下室#
发布于:2005-03-17 11:05
是的,每次写或察除后会读状态,判断有没有写或察除成功,如果不成功则表记坏块,如果有ECC,则在读的时候,也会获得块的好坏(NAND FLASH 有FLIPPING BIT)。工业格式化的程序就是删除后读状态然后建立坏块表等。
|
|
5楼#
发布于:2005-03-17 11:20
是的,每次写或察除后会读状态,判断有没有写或察除成功,如果不成功则表记坏块,如果有ECC,则在读的时候,也会获得块的好坏(NAND FLASH 有FLIPPING BIT)。工业格式化的程序就是删除后读状态然后建立坏块表等。 p_y_h,还要请教一下。 你所说的“如果有ECC,则在读的时候,也会获得块的好坏“这句话能不能具体讲一下呢?ECC是具体怎么来用的,怎么操作的? 是不是在写入的时候根据写入的512bytes数据计算出一个ECC的值写入C区某个位置(这个位置是哪个位置呢),然后在读出的时候把数据读出来,根据512bytes计算出ECC的值再跟这个值进行比较,如果两个值不同就说明有错误,然后把这个page所在的block标记为坏的 是不是这样呢? 你说的那个flipping bit是怎么回事呢?在data sheet中我没有看到它,呵呵。 |
|
|
6楼#
发布于:2005-03-17 11:23
没有高手指教一下了吗?
|
|
|
7楼#
发布于:2005-03-17 12:14
你到samsung网站看application notes,上面讲的很具体。
|
|
8楼#
发布于:2005-03-17 12:41
[quote
p_y_h,还要请教一下。 你所说的“如果有ECC,则在读的时候,也会获得块的好坏“这句话能不能具体讲一下呢?ECC是具体怎么来用的,怎么操作的? 是不是在写入的时候根据写入的512bytes数据计算出一个ECC的值写入C区某个位置(这个位置是哪个位置呢),然后在读出的时候把数据读出来,根据512bytes计算出ECC的值再跟这个值进行比较,如果两个值不同就说明有错误,然后把这个page所在的block标记为坏的 是不是这样呢? 你说的那个flipping bit是怎么回事呢?在data sheet中我没有看到它,呵呵。 [/quote] p_y_h,先帮忙把我的问题解答一下好吗?我在看application notes,可是可能要些时间,而且也抓不住重点。我现在大体上有这个思路,但不知道通常情况下大家都是怎么处理的。 |
|
|
9楼#
发布于:2005-03-17 17:37
流汗中……
|
|
|
10楼#
发布于:2010-04-28 20:11
回 1楼(p_y_h) 的帖子
您好,您的QQ是多少呵呵可以交流下吗 非常感谢诶 。我我的QQ 442133447 |
|
|