新手、老手都瞅瞅!直奔主题!16片MT29F64G08CBABA,别人说是好的,经过测试的(原话:芯片全是新的,我全部低格过的
)我测试了一下,只测试了4片就进行不下去了,惨不忍睹啊!不说了,上图第1片识别
清空
仅读标记坏块,看着还不错是吧,6个坏块
全新+AA55, ECC=4,3941个坏块!8G的片子,只剩下270M(ECC=0的话根本就过不去)
再次清空
第2片识别
清空
仅读标识坏块,3个坏块
全新+AA55, ECC=4, 2149个坏块,剩下一半容量
最后再清空
第3片识别
清空
仅读标识坏块,3个坏块
全新+AA55, ECC=4, 3109个坏块,还剩1.8G
再次清空
第4片识别清空
仅读标识坏块,3个坏块
全新+AA55,ECC=4, 1228个坏块 最后再清空 剩下的12片也懒得测试了,浪费时间,最近实在是没什么时间折腾这些东西,偏偏还碰上这样子的垃圾!先给新手普及一点Flash的基础知识,老手可以跳过1. NandFlash由于本身的特性和工艺,不能保证所有存储单元都是好的,所以即使新出厂的NandFlash也可能包含坏块!而且由于制程的提高,坏块发生的比率越来越高!2. NandFlash在出厂时,厂家已经经过了多重严格的测试,将一些坏块都标识出来了,这些坏块包括本来就是坏的、不能用的坏,或者在一些苛刻条件下不稳定的块。怎么标识呢?3. 首先说说Flash的结构,在Flash中,有很多块(Block),每个块(Block)有很多页(Page),每个页有512字节、2K字节等不同的大小。不同款的Flash,页大小可能不同(同一款Flash中,每个页大小是一样的)。我们以512字节页大小的Flash来举例,其实页大小512字节的Flash,一般每个页还有16字节的冗余空间, 我们称之为OOB,在OOB中,也是可以存储数据的,厂家就会在块的某个页的OOB中做个记号,来表示这个块是好的还是坏的!以前512字节页大小的Flash,有2种规格,在每个Block的前2个页的OOB(16个字节)的第1个字节,或者第5个字节标识本块是好的还是坏的,这个字节是“FF”就表示本块是好的,这个字节是“非FF”就表示本块是坏的。这个字节我们叫做坏块标识具体是在OOB的第1个字节?还是第5个字节来做坏块标识?要看Flash具体的规格书!4. 好了,说完了OOB,我们继续。厂家的坏块标识,我们称之为原厂坏块标记。一般正常操作Flash时,每操作一个块之前,都要先判断块是好的还是坏的,好的就可以操作,坏的就跳过!一旦我们用强力擦除的方式将所有Flash块都擦除了,那么原厂坏块标识就有没有了!那么我们就得在使用前检测每个块来确定是不是好的!这个方法其实有缺陷,因为有些坏块是厂家在严苛条件下测试才发现有问题的,一般的测试根本验证不出来坏,所以嵌入式系统工程中,严格的做法是一定要保留原厂坏块标记的!不过,由于软件开发过程、生产流程等问题,也有可能导致原厂坏块标记丢失。特别是在U盘、SSD DIY领域,大量使用拆机Flash,大部分时候,Flash的原厂坏块是被擦除掉了的!所以,我们只能用软件的方法逐个检测每一个块,看是好的还是坏的?U盘、SSD的量产工具就有这个功能,比如安国的U盘量产工具,就可以在量产时选择一些方式检测Flash,包括重建坏块标识。在安国的量产程序中,“仅读坏块标识”这个选项其实严格来说,只针对全新的Flash(从生产厂家出来后没有用过的)有效!如果Flash经过多次擦除、写入,已经产生了很多新的坏块,或者说原厂标识被擦除了,那么这个选项是不准确的。所以,我们需要用到清空、然后全新+AA55的方式(当然还有其它方式),甚至要用到低格!之前就发现过,高格,全新+AA55都不能检测出问题,必需低格才能发现坏块太多的例子!在我之前做SSD/ U盘的时候有遇到过,我发过帖子!有兴趣的可以找找看所以,最后总结:1、测试Flash时,不要只用“仅读标识坏块”的方法,多做一步,清空,再全新+AA55来测试。如果在使用中存在莫名其妙的问题,可以尝试低格看看2、很多老手在卖Flash时,往往只贴“仅读标识坏块”的测试图,这样是省时间,但是如果Flash将来别人买去有问题,容易产生纠纷!很久没来论坛发帖子了,就写这些吧
补充一些:1、 4楼的刀哥说的我很赞同,现在的Flash,制程越来越先进,所以也容易出现突发错误,因此现在的Flash都支持很高的ECC,比如每512字节12位,每2K字节24位等等。量产、或者测试时,适当调高一点ECC会减少坏块,不过,我个人认为,不宜太高,我一般用4---8,太高我觉得不是很安全(个人感觉)不过,这几片Flash,我不是不想提高ECC,而是ECC=8, ECC=12, ECC=15时,统统测试不过!我是放在清空器上,清空、ECC=4测试;清空、ECC=8测试;清空、ECC=12测试;清空、ECC=15测试,循环测试了5遍以上,ecc=4是能通过,其它的都不能通过!!!????个人猜测:这些Flash已经坏块太多了,ECC加大,有时能测试过去,所以减少了坏块,但是在格式化文件系统时,中途往往发生错误,导致格式化时出错!第一片多测试了几次,ECC=4时测试多几次,有时坏块多,有时坏块少,这是最少的一次!
ECC=8时,没有一次成功
ECC=15时,没有一次成功
2、 2楼的坛友设置ecc=0,这个我也不建议,因为现在Flash制程越来越先进,导致发生突发错误的机会越来越大,所以,有几位ECC来做纠错还是有必要的,但是我不提倡设太高,我一般4---8,太高我觉得不保险(个人想法)
3、0坏块的Flash,确实有,我自己遇到不少,特别是老制程的Flash。
4、16楼的坛友说的很好!我很赞同,如果ecc不开,都能测试到仅为个位数坏块的Flash,绝对好东西!
[ 此帖被羊村村长在2014-03-29 01:48重新编辑 ]