PC3000 Flash数据校正方法 Readout
在前一篇文章中,我们讨论了ECC纠错 – 首先是纠错的主要方法。 有时这个功能可能非常有效,但是如果你的NAND芯片基于TLC架构,那么很有可能在ECC校正之后,大部分数据仍然会被损坏。 因为我们知道 – 错误修正代码只能修复有限数量的错误。 例如,如果在一个范围(DA的1024字节)上我们有50个字节的ECC,则可以仅修复约25个字节的错误。 如果数字更大(26-27字节),错误将无法纠正,我们的范围将保持不变。
让我们看一下小例子:
- 我们成功读取了NAND存储芯片并开始ECC校正;
但在修正过程中,我们可以看到仍有很多范围尚未得到纠正。 不好的迹象……
顺便说一句 – ECC校正需要快速CPU。 这就是为什么我们建议您阅读我们关于系统要求的文章。 (在下面的屏幕上,Core i7 2600 3.4Ghz几乎100%加载!)
当ECC校正完成后,我们需要了解有多少坏扇区未得到纠正。 我们应该构建无效扇区的地图:
毕竟我们可以看到大约4.5GB的无效扇区。 它太多了 – 大约50%的数据都被破坏了。 这种误码不在一个地方,它们均匀地存在于NAND存储器的所有表面上。 如果我们想要获得良好的恢复结果,我们必须将位错误的数量减少至少5-7%,但更好 – 至1-3%! 这就是为什么我们需要应用额外的数据校正方式 – 读出!
基本上是读数 – 它几乎与自动验证操作相同。 软件多次读取相同的数据,如果某些字节不稳定并且发生变化 – 它会选择那些经常重复的字节。 与自动验证的唯一区别是数据的额外ECC校正。 所以,Readout – 是一个像Autoverification + ECC这样的功能:
要启动Readout过程,我们需要执行以下步骤:
通常我们建议默认使用所有设置。 读出尝试次数表示重读次数。 最好保留默认值1.“如果成功”参数描述了在读取有助于修复至少某些范围的情况下传递的额外重读次数。
这是结果! 其他范围会得到纠正,但即使有读数,其中一些也无法正确:
在这种情况下,另一个功能可以帮助我们 它叫做 – ReadRretry。 它是一种特殊的NAND芯片命令,允许自己改变NAND存储器芯片的电压。 NAND核心开始使用不同的电压水平来修复数据。 这是一种特殊的自定义系统,可在所有TLC芯片和一些MLC芯片中使用。 目前,PC-3000 Flash支持大量TLC内存的ReadRetry模式。 随着每个新版本的PC-3000 Flash,我们的开发人员为它们添加了新的算法。
如果此读取重试命令复选框处于活动状态,您将能够获得令人印象深刻的读数结果:
就这样! 最后,我们将讨论电压控制和温度影响!