一种数据恢复方法及装置制造方法及图纸

技术编号:14485088 阅读:136 留言:0更新日期:2017-01-26 17:46
一种数据恢复方法,包括:当数据块内的数据发生位翻转时,将进行错误检查和纠正(ECC)后的正确数据拷贝到第一数据块和/或第二数据块;其中,所述第一数据块和第二数据块为连续干净的好块;擦除发生位翻转的数据块内的数据;将第一数据块或第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中。本发明专利技术还提供了另外一种数据恢复装置。

【技术实现步骤摘要】

本专利技术涉及数据恢复技术,尤其涉及一种nandflash数据块发生位翻转时的数据恢复方法及装置
技术介绍
随着电子工业技术的发展,电子产品的功能越来越丰富,产品智能化逐渐成为主流,这就对电子产品的可存储器有了更高的要求,如要求可存储器具备小体积、大容量、低成本、高效率、寿命长等特点。目前的与非闪存(nandflash)由于具备上述优点,在嵌入式领域,应用非常广泛。虽然nandflash在使用时的有显著的有点,但其缺点也会影响着存储数据的可靠性,如nandflash在使用过程中有可能会发生坏块、位翻转现象。对于坏块管理,大部分的嵌入式系统软件都有较完善的处理流程。而位翻转现象,则只能通过错误检查和纠正(ECC,ErrorCorrectingCode)来保证数据的正确性。对于硬件ECC功能,数据写入flash时,flash内部根据写入page的数据计算出校验值并写入page的spare区,同时数据被写入maindata区。在读数据时,如果数据发生了位翻转,通过ECC校验错误并将正确的数据返回到驱动程序;软件ECC则将数据校验功能通过软件实现。虽然ECC的校验保证了数据的正确性,但实际上并没有对发生位翻转的存储区域进行数据恢复,因此一旦发生位翻转,将伴随产品的整个生命周期。由于nandflash的物理特性,位翻转的数量有扩大的可能性,因此,如果对系统可靠性要求较高的电子产品不能有效及时的解决发生位翻转的存储区域的数据恢复问题,将会带来灾难性的后果。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种数据恢复方法及装置,能够有效的解决位翻转问题,实现发生位翻转的存储区域的数据恢复,保证flash存储区的数据的可靠性。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术实施例提供了一种数据恢复方法,所述方法包括:当数据块内的数据发生位翻转时,将进行错误检查和纠正(ECC)后的正确数据拷贝到第一数据块和/或第二数据块;其中,所述第一数据块和第二数据块为连续干净的好块;擦除发生位翻转的数据块内的数据;将第一数据块或第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中。上述方案中,在将进行ECC后的正确数据拷贝到第一数据块和/或第二数据块之前,所述方法还包括:擦除第一数据块和/或第二数据块中的数据。上述方案中,所述将进行ECC后的正确数据拷贝到第一数据块和/或第二数据块包括:将发生位翻转的数据块内的数据进行ECC后得到的正确数据按页(page)拷贝到第一数据块和/或第二数据块。上述方案中,当将进行ECC后的正确数据拷贝到第一数据块和第二数据块时,所述第二数据块为第一数据块的备份数据块;相应地,所述将第一数据块或第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中包括:判断第一数据块是否仍然为好块,当第一数据块为好块时,将所述第一数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中;当所述第一数据块变为坏块时,将所述第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中。上述方案中,所述方法还包括:将发生位翻转的数据块的地址拷贝到第三数据块和/或第四数据块,并通过第三数据块和/或第四数据块,记录数据恢复进程。上述方案中,所述方法还包括:当数据恢复的过程中发生中断时,在重新开启后,读取第三数据块或第四数据块中中断前发生位翻转的数据块的地址以及数据恢复进程,并根据所述中断前发生位翻转的数据块的地址以及数据恢复进程,继续进行数据恢复操作。上述方案中,当将发生位翻转的数据块的地址拷贝到第三数据块和第四数据块,并通过第三数据块和第四数据块记录数据恢复进程时,所述第四数块为第三数据块的备份数据块;相应地,所述读取第三数据块或第四数据块中中断前发生位翻转的数据块的地址以及数据恢复进程包括:判断第三数据块是否仍然为好块,当所述第三数据块为好块时,读取所述第三数据块中中断前发生位翻转的数据块的地址以及数据恢复进程;当所述第三数据块变为坏块时,读取所述第四数据块中中断前发生位翻转的数据块的地址以及数据恢复进程。本专利技术实施例还提供了一种数据恢复装置,所述装置包括:第一拷贝模块、第二擦除模块、第二拷贝模块,其中,所述第一拷贝模块,用于当数据块内的数据发生位翻转时,将进行错误检查和纠正(ECC)后的正确数据拷贝到第一数据块和/或第二数据块;其中,所述第一数据块和第二数据块为连续干净的好块;所述第二擦除模块,用于擦除发生位翻转的数据块内的数据;所述第二拷贝模块,用于将第一数据块或第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中。上述方案中,所述装置还包括第一擦除模块,用于在将进行ECC后的正确数据拷贝到第一数据块和/或第二数据块之前,擦除第一数据块和/或第二数据块中的数据。上述方案中,所述第一拷贝模块具体用于:将发生位翻转的数据块内的数据进行ECC后得到的正确数据按页(page)拷贝到第一数据块和/或第二数据块。上述方案中,当所述第一拷贝模块将进行错误检查和纠正(ECC)后的正确数据拷贝到第一数据块和第二数据块时,所述第二拷贝模块具体用于:判断第一数据块是否仍然为好块,当所述第一数据块为好块时,将所述第一数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中;当所述第一数据块变为坏块时,将所述第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中。上述方案中,所述装置还包括第三拷贝模块,用于将发生位翻转的数据块的地址拷贝到第三数据块和/或第四数据块,并通过第三数据块和/或第四数据块,记录数据恢复进程。上述方案中,所述装置还包括中断处理模块,用于当数据恢复的过程中发生中断时,在重新开启后,读取第三数据块或第四数据块中中断前发生位翻转的数据块的地址以及数据恢复进程,并根据所述中断前发生位翻转的数据块的地址以及数据恢复进程,继续进行数据恢复操作。上述方案中,当所述第三拷贝模块将发生位翻转的数据块的地址拷贝到第三数据块和第四数据块,并通过第三数据块和第四数据块记录数据恢复进程时,所述中断处理模块具体用于:判断第三数据块是否仍然为好块,当所述第三数据块为好块时,读取所述第三数据块中中断前发生位翻转的数据块的地址以及数据恢复进程;当所述第三数据块变为坏块时,读取所述第四数据块中中断前发生位翻转的数据块的地址以及数据恢复进程。本专利技术实施例所提供的数据恢复方法及装置,当数据块内的数据发生位翻转时,将进行错误检查和纠正(ECC)后的正确数据拷贝到第一数据块和/或第二数据块;擦除发生位翻转的数据块内的数据;将第一数据块或第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中。如此能够将发生位翻转的数据块的数据还原到正确的数据,实现发生位翻转的存储区域的数据恢复,有效的解决位翻转问题,保证flash存储区的数据的可靠性。附图说明图1为本专利技术实施例数据恢复方法应用场景示意图;图2为本专利技术实施例一数据恢复方法流程示意图;图3为本专利技术实施例二数据恢复方法流程示意图;图4为本专利技术实施例数据恢复装置结构示意图。具体实施方式本专利技术实施例中,当数据块内的数据发生位翻转时,将进行错误检查和纠正(ECC)后的正确数据拷贝到第一数据块和/或第二数据块;擦除发生位翻转本文档来自技高网...
一种数据恢复方法及装置

【技术保护点】
一种数据恢复方法,其特征在于,所述方法包括:当数据块内的数据发生位翻转时,将进行错误检查和纠正(ECC)后的正确数据拷贝到第一数据块和/或第二数据块;其中,所述第一数据块和第二数据块为连续干净的好块;擦除发生位翻转的数据块内的数据;将第一数据块或第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中。

【技术特征摘要】
1.一种数据恢复方法,其特征在于,所述方法包括:当数据块内的数据发生位翻转时,将进行错误检查和纠正(ECC)后的正确数据拷贝到第一数据块和/或第二数据块;其中,所述第一数据块和第二数据块为连续干净的好块;擦除发生位翻转的数据块内的数据;将第一数据块或第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中。2.根据权利要求1所述方法,其特征在于,在将进行ECC后的正确数据拷贝到第一数据块和/或第二数据块之前,所述方法还包括:擦除第一数据块和/或第二数据块中的数据。3.根据权利要求1所述方法,其特征在于,所述将进行ECC后的正确数据拷贝到第一数据块和/或第二数据块包括:将发生位翻转的数据块内的数据进行ECC后得到的正确数据按页(page)拷贝到第一数据块和/或第二数据块。4.根据权利要求1所述方法,其特征在于,当将进行ECC后的正确数据拷贝到第一数据块和第二数据块时,所述第二数据块为第一数据块的备份数据块;相应地,所述将第一数据块或第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中包括:判断第一数据块是否仍然为好块,当第一数据块为好块时,将所述第一数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中;当所述第一数据块变为坏块时,将所述第二数据块内的数据拷贝到所述进行擦除操作后的发生位翻转的数据块中。5.根据权利要求1至4任一项所述方法,其特征在于,所述方法还包括:将发生位翻转的数据块的地址拷贝到第三数据块和/或第四数据块,并通过
\t第三数据块和/或第四数据块,记录数据恢复进程。6.根据权利要求5所述方法,其特征在于,所述方法还包括:当数据恢复的过程中发生中断时,在重新开启后,读取第三数据块或第四数据块中中断前发生位翻转的数据块的地址以及数据恢复进程,并根据所述中断前发生位翻转的数据块的地址以及数据恢复进程,继续进行数据恢复操作。7.根据权利要求6所述方法,其特征在于,当将发生位翻转的数据块的地址拷贝到第三数据块和第四数据块,并通过第三数据块和第四数据块记录数据恢复进程时,所述第四数块为第三数据块的备份数据块;相应地,所述读取第三数据块或第四数据块中中断前发生位翻转的数据块的地址以及数据恢复进程包括:判断第三数据块是否仍然为好块,当所述第三数据块为好块时,读取所述第三数据块中中断前发生位翻转的数据块的地址以及数据恢复进程;当所述第三数据块变为坏块时,读取所述第四数据块中中断前发生位翻转的数据块的地址以及数...

【专利技术属性】
技术研发人员:王夏超
申请(专利权)人:西安中兴新软件有限责任公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1