在这篇文章中,我们将讨论转储修正的不同方法。 我认为在NAND存储器芯片读取期间可能会出现一些误码并不是秘密。 位错误的数量取决于以下因素:
NAND存储芯片的类型(SLC,MLC,TLC);
触点清洁度(脏芯片通常更糟);
温度影响(芯片拆焊过程中的高温可能会损坏电池);
NAND单元的磨损程度(如果客户在NAND设备上重写信息数百次,小单元电容器的质量变得非常糟糕,并且它们会读取大量错误);
当然,如果您希望从用户闪存驱动器获得100%的恢复,首先您需要尽可能多地修复ECC错误。 否则,所有数据都将被破坏,无法使用或部分损坏:
请记住,BIT ERROR CORRECTION非常重要!
第一个是ECC校正。 通常,这是最简单的数据修复方式。 如您所知,通常控制器会在每个页面中添加称为备用区域(SA)的附加信息。 它包含一些标记(例如 – 用于图像构建的标记),不同的标记和纠错码(ECC)。 ECC – 是一种基于初始写入用户信息的特殊扩展数据。 通过特殊数学公式扩展数据有助于查找扇区\范围中的位错误并修复它们。 通常ECC代码具有特殊长度 – 选择用于纠错的字节数。 最大数量的ECC字节允许我们在每个扇区\范围内修复更多错误。
来自旧SLC NAND芯片的通用MBR扇区,页面大小为2112字节,扇区大小为528字节:
黄色 – 我们的DA(512字节),蓝色 – 用于图像构建的块号的标记(6个字节),绿色 – 错误校正码(10个字节):
我们的软件试图找到以下扇区中的所有误码:
并应用ECC代码来修复它们:
例子 – 10个字节的ECC可以在扇区中修复5个字节的数据。 100字节的ECC可以在扇区中修复50字节的数据。 但正如您所知,所有现代NAND存储器芯片都具有TLC架构,并且每个芯片中的ECC错误数量非常大。 这就是为什么在现代芯片中,每页的ECC大小可以达到每16384字节DA的1690字节ECC(~10%)! 同时,对于旧的SLC芯片,控制器通常每2048字节DA使用大约40个字节(仅2%)。
为了获得良好的ECC校正结果,您应该记住几条规则
在一些旧的SLC和MLC NAND存储器芯片中,ECC将无法应用,直到您进行页面转换;
现代TLC芯片通常在一对复杂的控制器中工作,该控制器使用XOR模式来加密数据。 有时(在AU699x,SSS669x和其他一些)你应该在XOR准备后应用ECC自动检测! 因为这个控制器中的XOR也支持crypt SA区域!
有时现代TLC芯片包含插入物(添加物)! 如果你不消除它们将找不到ECC。
修复所有ECC错误时,应使用ECC构建映射并检查仍未纠正的扇区数。 他们的人数不应超过5-6%。 如果位错误的数量较大(例如 – 来自8GB转储的未校正数据的7.1GB)进一步恢复过程将是无用的。 您将需要使用其他方法来提高内存转储质量。
在下一部分中,我们将讨论读出。
- 工程师微信二维码
- 微信扫一扫添加好友可直接咨询数据恢复相关问题
- 关注盘首微信小程序
- 扫描微信小程序查看大量数据恢复技术视频教程