本帖主要内容:
1. 讨论Flash寿命测试方法
2. HD Tune坏块检测功能对于Flash产品不适用
3. 可使用Check Flash 检测U盘逻辑储存错误以判断U盘状态
闲的没事用urwtest对一个台电黑胶体U盘做了一次全扫,发现了有3处错误。于是想下载量产工具对其进行坏块屏蔽(这个盘本来也没用几次,主要拿去打印店打印文档的)。U盘具体信息如下:
8GB 闪迪 TLC 主控型号为:DM8261
量产图
打开量产工具发现该工具并不支持低格及坏块扫描,于是判断该主控可能不支持坏块管理和磨损平衡,于是萌生了测试U盘寿命的想法。
1. 寿命测试
使用软件Check Flash对U盘进行写入校检,测试逻辑存储错误。由于该U盘不支持平衡磨损,遂将U盘格式化为Fat32,系统最大只能使用4GB作为测试空间。黑胶体U盘很容易发热,所以采用水冷方式散热,温度保持在20℃。
历经一周多日日夜夜的连续测试,数据如下,其中,纵轴代表逻辑存储错误个数,横轴代表写入次数。
可以看到,写入次数在120次之前,逻辑错误个数较稳定,当写入次数在150次之后,逻辑错误个数井喷式增长,写入达到200次时,我终止了测试。这个盘能够稳定使用的写入周期已经明了。。。
之前我曾使用同样方法测试一款群联主控U盘,在烧入镜像后留出10MB空间用于测试,结果写入周期达到50000次时仍未发现逻辑错误井喷式增长。原因可能是由于主控支持磨损平衡,而我划分的测试区域又小,不足以抵抗磨损平衡算法。
因此,测试Flash寿命的可靠方法有二:1)使用不支持磨损平衡的主控---貌似不多了 2)全盘写入校检---用时长
2. 在测试结束后,使用HD Tune扫描U盘坏块:
你没看错,全绿通过!而我将右边图形显示方式改为速度图后,结果完全变了。。。
从坏块图中我们无法看到经过长时间测试之后这个U盘有任何问题,而其速度图可以直观的显示出测试区(4GB)和未测试区(3.6GB)的速度差异!
主要原因:经过多次写入,该部分Flash已经出现所谓坏块,只不过HD Tune是以磁盘容量来划分每个测试块大小,当坏块个数(容量)低于某一个值时,整个HD测试块并不会划定为已经损坏。但是在进行读写操作时,大量的Flash坏块会导致延迟增大,这也是为何HD Tune两种图差异明显的原因。因此我认为HD Tune或是相似原理的软件不适合检测U盘的健康状态。
3. Check Flash 可以用来测试U盘健康状态
之所以选用Check Flash 是因为它可以精确显示每个扇区物理地址的错误,例如TLC测试时,写入 010101 ,而校验时发现 000101,那么这就算一个错误。虽然ECC可以修正这种错误,但是存在这么一个不稳定的扇区,相信大家也是会想办法修正的吧。之前简单测试过,安国主控ECC2以内,一个逻辑错误都没有,越大逻辑错误越多。
CheckFlash
欢迎大家批评指正
放置一天之后再次扫描,不知道这个结果是怎样造成的
[ 此帖被wqjuyu在2016-04-19 21:05重新编辑 ]