先将原始数据存储至指定区域时确定该原始数据在具有与原 校验码一致的校验码的全部数据中所处的位置为原位置信息;
[0078] 生成模块35,用于生成与原异或信息对应的N个初选数据,并按照指定算法计算 每个初选数据的目标校验码;
[0079] 第一确定模块36,用于确定与原校验码一致的目标校验码对应的初选数据为终选 数据,并确定终选数据在具有与原校验码一致的校验码的全部数据中所处的位置为目标位 置信息;
[0080] 第二确定模块37,用于确定与原位置信息一致的目标位置信息对应的终选数据为 原始数据。
[0081] 本申请中当读取到的指定数据存在错误时,利用与原始数据对应的原异或信息得 到N个初选数据,进而确定验证码与原始数据的原验证码匹配的初选数据为终选数据,最 后确定位置信息与原始数据的原位置信息匹配的终选数据为原始数据,由此,无论指定数 据中出现错误的位数为几位,均可W基于原异或信息、原校验码及原位置信息确定出正确 的原始数据,通过运种由上述信息反推得到正确的原始数据的纠错方式,实现了任意错误 数据的完全可修复,保证了数据可靠性,解决了现有技术对RAM存储的数据进行纠错的技 术方案中存在的可靠性较低的问题,进一步提高了RAM的RAS性能及忍片可靠性。
[0082] 另外,可将异或模块与位置模块获取的信息存至信息存储模块中,并且,不同的模 块可集成为同一模块,如生成模块、第一确定模块及第二确定模块可集成为同一模块,即修 复逻辑模块,本发明中不做具体限定。
[0083] 上述实施例提供的一种数据恢复模块中,异或模块可W包括:
[0084] 异或单元,用于对原始数据中相邻的两位数据进行异或,得到其长度等于原始数 据长度的一半的原异或信息。
[00化]上述实施例提供的一种数据恢复模块中,校验码模块可W包括:
[0086] 校验码单元,用于利用ECC校验算法对原始数据进行计算,得到原校验码。
[0087] 上述实施例提供的一种数据恢复模块中,位置模块可W包括:
[0088] 位置单元,用于将具有与原校验码一致的校验码的全部数据按照其长度进行排 序,得到数据序列,并确定原始数据在数据序列中所处的位置为原位置信息。
[0089] 上述实施例提供的一种数据恢复模块中,还可W包括:
[0090] 触发获取模块,用于由指定区域中读取到指定数据,并利用ECC校验算法判断指 定数据中是否存在错误数据位,如果是,则判断错误数据位是否为1位,如果错位数据位为 1位,则按照ECC校验算法得到原始数据,如果错误数据位不为1位,则获取原异或信息、原 校验码及原位置信息。
[0091] 由于本发明实施例提供的一种数据恢复方法与本发明实施例提供的一种数据恢 复装置相对应,因此,上述装置实施例中相关内容的说明请参阅上述方法实施例中对应内 容的说明,在此不再寶述。
[0092] 对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对运 些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可 W在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限 制于本文所示的运些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的 范围。
【主权项】
1. 一种数据恢复方法,其特征在于,包括: 如果由指定区域读取到的指定数据存在错误,则读取预先将原始数据存储至指定区域 时对该原始数据的指定位进行异或得到的原异或信息、按照指定算法对该原始数据进行计 算得到的原校验码及该原始数据在具有与所述原校验码一致的校验码的全部数据中所处 位置的原位置信息; 生成与所述原异或信息对应的N个初选数据,并按照所述指定算法计算每个初选数据 的目标校验码; 确定与所述原校验码一致的目标校验码对应的初选数据为终选数据,并确定所述终选 数据在具有与所述原校验码一致的校验码的全部数据中所处的位置为目标位置信息; 确定与所述原位置信息一致的目标位置信息对应的终选数据为原始数据。2. 根据权利要求1所述的方法,其特征在于,对所述原始数据的指定位进行异或得到 原异或信息,包括: 对所述原始数据中相邻的两位数据进行异或,得到其长度等于所述原始数据长度的一 半的原异或信息。3. 根据权利要求2所述的方法,其特征在于,按照指定算法对所述原始数据进行计算 得到原校验码,包括: 利用ECC校验算法对所述原始数据进行计算,得到所述原校验码。4. 根据权利要求3所述的方法,其特征在于,确定所述原始数据的位置信息包括: 将具有与所述原校验码一致的校验码的全部数据按照预设规律进行排序,得到数据序 列,并确定所述原始数据在所述数据序列中所处的位置为所述原位置信息。5. 根据权利要求1至4任一项所述的方法,其特征在于,还包括: 由所述指定区域中读取到指定数据,并利用ECC校验算法判断所述指定数据中是否存 在错误数据位,如果是,则判断所述错误数据位是否为1位,如果所述错误数据位为1位,则 按照所述ECC校验算法得到原始数据,如果所述错误数据位不为1位,则获取所述原异或信 息、原校验码及原位置信息。6. -种数据恢复装置,其特征在于,包括: 读取模块,用于如果由指定区域读取到的指定数据存在错误,则读取原异或信息、原校 验码及原位置信息; 异或模块,用于预先将原始数据存储至指定区域时对该原始数据的指定位进行异或得 到原异或信息; 校验码模块,用于预先将原始数据存储至指定区域时按照指定算法对该原始数据进行 计算得到原校验码; 位置模块,用于预先将原始数据存储至指定区域时确定该原始数据在具有与所述原校 验码一致的校验码的全部数据中所处的位置为原位置信息; 生成模块,用于生成与所述原异或信息对应的N个初选数据,并按照所述指定算法计 算每个初选数据的目标校验码; 第一确定模块,用于确定与所述原校验码一致的目标校验码对应的初选数据为终选数 据,并确定所述终选数据在具有与所述原校验码一致的校验码的全部数据中所处的位置为 目标位置信息; 第二确定模块,用于确定与所述原位置信息一致的目标位置信息对应的终选数据为原 始数据。7. 根据权利要求6所述的装置,其特征在于,异或模块包括: 异或单元,用于对所述原始数据中相邻的两位数据进行异或,得到其长度等于所述原 始数据长度的一半的原异或信息。8. 根据权利要求7所述的装置,其特征在于,校验码模块包括: 校验码单元,用于利用ECC校验算法对所述原始数据进行计算,得到所述原校验码。9. 根据权利要求8所述的装置,其特征在于,位置模块包括: 位置单元,用于将具有与所述原校验码一致的校验码的全部数据按照预设规律进行排 序,得到数据序列,并确定所述原始数据在所述数据序列中所处的位置为所述原位置信息。10. 根据权利要求6至9任一项所述的装置,其特征在于,还包括: 触发获取模块,用于由所述指定区域中读取到指定数据,并利用ECC校验算法判断所 述指定数据中是否存在错误数据位,如果是,则判断所述错误数据位是否为1位,如果所述 错误数据位为1位,则按照所述ECC校验算法得到原始数据,如果所述错误数据位不为1 位,则获取所述原异或信息、原校验码及原位置信息。
【专利摘要】本发明公开了一种数据恢复方法及装置,该方法包括:如果由指定区域读取到的指定数据存在错误,则读取预先将原始数据存储至指定区域时对该原始数据的指定位进行异或得到的原异或信息、按照指定算法对该原始数据进行计算得到的原校验码及该原始数据在具有与原校验码一致的校验码的全部数据中所处位置的原位置信息;生成与原异或信息对应的N个初选数据,并按照指定算法计算每个初选数据的目标校验码;确定与原校验码一致的目标校验码对应的初选数据为终选数据,并确定终选数据在具有与原校验码一致的校验码的全部数据中所处的位置为目标位置信息;确定与原位置信息一致的目标位置信息对应的终选数据为原始数据,从而保证了数据的可靠性。
【IPC分类】G06F11/10, G06F11/14
【公开号】CN105279048
【申请号】CN201510866695
【发明人】刘同强, 刘刚, 童元满, 李仁刚
【申请人】浪潮(北京)电子信息产业有限公司
【公开日】2016年1月27日
【申请日】2015年12月1日