PC3000 军达成数据恢复论坛

 找回密码
 立即注册
查看: 2283|回复: 0
打印 上一主题 下一主题

以最大成功率从NAND闪存设备恢复数据的主要数据校正方法 [复制链接]

Rank: 8Rank: 8

  • TA的每日心情
    开心
    2021-12-28 15:01:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    金钱
    10000
    元宝
    13995
    专业度
    10030

    优秀版主 论坛元老

    跳转到指定楼层
    楼主
    发表于 2021-3-2 09:16:33 |只看该作者 |倒序浏览
    本帖最后由 JUNDACHENGTS 于 2021-3-2 09:18 编辑

    PC-3000FLASH 以最大成功率从NAND闪存设备恢复数据的主要数据校正方法

    上周,我们讨论了在ACE Lab免费网络研讨会期间如何使用PC-3000 Flash进行NAND Flash数据恢复的第一步。接下来,我们为您准备了有关恢复Flash案例的重要过程。对于想要学习如何以最有效,最智能的方式处理NAND闪存的数据恢复的初学者而言,该主题将特别有趣。对于已经有经验的数据恢复专家,本文可以作为处理Flash案例时主要数据校正方法的便捷清单。

    图片1.png

    首先,我们将讨论ECC校正和无效扇区的重读

    1部分 ECC的理论

    NAND存储器芯片读取期间,可能会出现一些bit错误bit错误的数量取决于以下因素:

    NAND存储芯片类型SLC,MLC,TLC,QLC)
    触点的清洁度脏芯片通常读效果更差
    温度影响芯片拆焊期间的高温可能会损坏存储单元
    NAND单元的磨损程度如果将NAND设备上的信息重写数百次,则小型单元电容器的质量会下降,并且读取时会出现很多错误
    芯片质量低如今,制造商经常通过使用小型技术工艺来压缩单元大小来降低生产成本,从而导致新闪存驱动器中出现错误)

    如果要从闪存驱动器中获得最大恢复率,首先,需要修复尽可能多的ECC错误。否则,所有数据将被破坏,无法使用或部分破坏:

    图片2.png

    纠错的基本方法是ECC算法-最简单的数据修复方法。通常,控制器将每页附加信息(称为备用区(SA))放入其中。它包含一些标记(例如,用于像构建的标记),差异标记和纠错码(ECC)。 ECC是基于最初由用户信息写入的特殊扩展数据。这些扩展的数据有助于查找扇区/范围内的bit错误,并通过特殊的数学公式进行修复。 通常,ECC代码具有特殊的长度–选择用于纠错的字节数。 ECC字节数最多,可以修复每个扇区/范围内的更多错误。

    来自旧SLC NAND芯片的公共MBR扇区,页大小为2112字节,扇区大小为528字节

    图片3.png

    黄色–我们的数据区DA512字节)
    蓝色–我们在逻辑映像中的块顺序标记(6字节),用于构建像的块编号
    绿色–纠错码(10字节):

    图片4.png

    PC-3000软件正在尝试查找以下扇区中的所有bit错误:

    图片5.png

    并且它正在应用ECC代码来修复错误:

    图片6.png

    让我们继续练习。

    我们有一个镁光的芯片,容量为4GB,芯片ID:0x2C44444B

    我们强烈建议您仅在换图上(而不是在芯片上)自动检测ECC。当您纠正芯片上的ECC时,可能会发生不同的错误。不要浪费时间校正芯片上的ECC(“芯片”节点下屏幕的左侧)。

    图片7.png

    图片8.png

    图片9.png


    但是,检测ECC并不总是那么容易。

    在某些情况下,在检测和纠正ECC之前,应检查转储中是否有坏字节或应用XOR(主要用于ITE,SSS,AU控制器),并且只能在之后检测ECC。如果我们谈论的是旧的SLC和MLC NAND情况,那么在您进行页转换之前,将无法进行ECC校正。 2部分 重读。

    从下面的示例中,您可以看到在这种情况下ECC校正的效果不佳。校正质量取决于许多因素,因此,当ECC校正结束时,您应该始终使用ECC信息来构建图,以检查还没有校正多少个扇区。

    图片10.png

    图片11.png

    图片12.png

    从屏幕截图中可以看到,在4GB中,我们有3.93GB的无效扇区。这意味着整个转储都被错误覆盖。 每个文件将被损坏。为了获得良好的bit错误原始恢复结果,错误率应小于5%,并且链数应小于100-500。如果您不注意链的数量,尽管您只有几MB的错误,但是您可能会遇到文件已损坏的情况

    这是重读应该派上用场的地方。

    我们需要使用另一种数据校正方法Readout开始修复ECC校正位错误后的余错误。

    要开始读取过程,我们需要执行以下步骤:

    图片13.png

    最好选择“执行”,而不是“在后台运行(Shift)”,以查看当前正在修复的错误数量。

    图片14.png

    通常,我们建议默认使用所有设置。尝试读取的次数表示重新读取的次数。默认情况下,最好将此数字保持为1。如果读取有助于修复至少某些范围,则“如果成功”参数描述了额外的重读次数。

    图片15.png

    如我们所见,很快就得到了结果。某些范围已得到纠正,但其中有些甚至即使读出也没有得到纠正:

    图片16.png

    3部分 读取重试。

    在在这种情况下,我们需要使用另一个功能–读取重试。这是一个特殊的NAND芯片命令,它允许NAND存储器芯片自行更改电压。NAND内核开始使用不同的电压电平进行数据修复。这是一种特殊的自修复系统,在所有QLC / TLC芯片和某些现代MLC芯片中都提供。目前,PC-3000闪存支持许多QLC / TLC / MLC存储芯片的ReadRetry模式。随着每周新的PC-3000 Flash资源更新,我们的开发人员将为其添加新的算法。

    图片17.png

    如果此“读取重试”命令复选框处于活动状态,您将能够获得非常好的读取结果:

    图片18.png

    在下面,您将看到一个非常有用的功能,用于真正难以破解的情况。

    4部分 的操作节省时间。

    您可以使用“复操作”功能节省一些时间。如果选择它,PC-3000软件将自动生成无效扇区的图并询问您有关重读选项的信息。不过,您将无法选择链的数量,顺序等。因此,尽管通过一些自动操作可以节省您的时间,但最终,可能会发现所需的链没有得到纠正。

    图片19.png

    图片20.png

    图片21.png

    请记住,如果您的案例中有多于1个芯片,则需要确保您重新读取了正确的芯片。有时,您可能会忘记在重新读取转储后再次将第一块芯片插入PC-3000 Flash Reader。因此,当ECC校正结束时,您可以尝试重新读取第一个芯片(转换图上的第0部分),同时将第二个芯片放入读取器中。因此,最后,您将获得两个应该有所不同的相似部分。因此,在开始重读过程之前,请注意阅读器中的芯片。

    图片22.png

    5部分 电压控制。

    电压控制只能在最有问题的情况下提供帮助,即使在经过ECC校正和重新读取过程后,bit错误的数量仍然非常高。基本上,电压控制是一种ReadRetry操作,但处于手动模式。我们使用软件控制设置自己的电压以读取NAND芯片中的每一页而不使用芯片自己设置电压

    每个芯片都知道它现在正在工作的温度。根据温度,芯片的电压也会发生变化。在下面,您可以看到带有温度和电压近似值的表格。有时,由于芯片内部问题以及电压错误,该表中的值可能会发生变化,因此您将无法重新读取扇区。

    图片23.png

    请注意,此选项仅在以下情况下可用:
    ►PC -3000 Flash Reader 3.0 +电源适配器(上一代)
    ►PC -3000 Flash Reader 4.0(最新一代,电源适配器已集成

    图片24.png

    如何设置电压控制?

    准备好所有可能的错误修复程序,但错误数量仍在几百MB左右时,我们应该尝试使用电压控制。通常,如果NAND存储器芯片支持ReadRetry,我们不应使用不同的电压-最好的结果将始终由ReadRetry提供!

    但是有时您的芯片可能不支持ReadRetry方法。这就是为什么您需要尝试检测电压范围并开始校正过程的原因。

    修复ECC,进行读出并构建坏扇区的映射之后,需要转到重读菜单并选择下一个功能:

    图片25.png

    请记住,如果单击“更多”,然后单击“ ReadRetry方法检查”,则可以检查ReadRetry成功率并选择最佳的成功率。在大多数情况下,它会自动选择最佳变量,但有时您需要手动进行操作。

    图片26.png

    图片27.png

    图片28.png

    现在出现了ReadRetry选项6部分 温度控制。

    有时,即使使用电压控制进行重新读取后,也无法获得良好的重新读取结果。在这种情况下您该怎么办?

    还有另一种方法可以通过记录”温度来获得更好的重读结果。对于某些存储芯片,非常冷的温度(-15°С…-20°С)可能有助于增加芯片内部的电传递,以提供最佳的结果。

    图片29.png

    在某些情况下,您可以尝试加热芯片。如果将其加热到+ 80°C…140°C,您还将获得良好的重读效果。

    图片30.png

    但是您应该小心高温会熔化塑料盖并损坏阅读器。

    有关如何减少损坏芯片,读取器等的风险的更多信息,请单击此链接

    让我们总结一下要点:

    1. 仅在转换图上检测和纠正ECC

    2. 有时您需要使用其他功能来检测和纠正ECC(坏字节XOR或页转换

    3. 为了获得良好的恢复结果,bit错误的数量应小于5%,未校正的链的数量应不大于200-300

    4. 如果您有很多位错误,请使用“重读”

    5. 如果您的芯片支持ReadRetry方法,请使用它代替其他选项

    6. NAND芯片不支持ReadRetry的情况下,电压控制将非常有用

    7. 如果您的芯片不支持ReadRetry,请尝试使用更多– ReadRetry模式检查(这种方式仅适用于现代QLC / MLC / TLC芯片

    8. 在某些AU,SSS,Phison和SM情况下,可以使用“重读图生成器工具来节省时间。

    9. 在某些情况下,即使电压控制也无济于事,您可以尝试“改变”温度




    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    Archiver|手机版|PC3000 数据恢复 ( 京ICP备09023376号-1 )

    GMT+8, 2025-5-2 06:24 , Processed in 0.148887 second(s), 15 queries .

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    回顶部