数据校正方法和系统的制作方法

文档序号:6622652阅读:219来源:国知局
数据校正方法和系统的制作方法
【专利摘要】本发明公开了一种数据校正方法和系统,该数据校正方法应用于Nand?Flash存储器中,该方法包括:依次读取第一镜像中的数据;对所述数据进行校验,根据校验结果判断所述数据是否发生位交换;在判断结果为是的情况下,读取第二镜像中的数据,并利用读取的所述数据对所述第一镜像进行同步,其中,所述第二镜像为所述第一镜像的备份镜像。本发明通过,利用备份镜像的数据来恢复发生位交换镜像的数据的方法,能够及时校正NAND中数据发生位交换的问题,并且在校正算法无法校正的情况下也可以对发生位交换的数据进行校正处理,而且在即使少量数据发生了位交换的情况下本发明也可以及时校正,保证了存储在NAND中数据的正确性和系统的稳定性。
【专利说明】
数据校正方法和系统

【技术领域】
[0001]本发明涉及数据处理领域,并且特别地,涉及一种数据校正方法和系统。

【背景技术】
[0002]FLASH存储器属于内存器件的一种,是一种不挥发性内存,其在没有电流供应的条件下也能够长久地保持数据,存储特性相当于硬盘,这项特性正是FLASH存储器得以成为各类便携型数字设备的存储介质的基础。NAND FLASH被广泛用于移动存储、数码相机、MP3播放器、掌上电脑等新兴数字设备中。由于受到数码设备强劲发展的带动,NAND FLASH —直在高速增长。
[0003]目前,所有FLASH器件都受到交换现象的困扰,现有技术中提出一种解决交换现象问题的方法,其通过将当前发生错误的比特数与预先设定好的“比特错误阈值”相比较,当发生错误的比特数大于“比特错误阈值”时则通过校正算法将校正后的数据重写到NAND中。
[0004]但是当出现错误的比特数数量过大,导致校正算法无法校正,那么上述方法将无法解决位交换的问题。
[0005]此外,在某些情况下,只有少数的比特数发生位交换且这些发生位交换的比特数数量小于“比特错误阈值”,那么这些少量发生位交换的比特数将不被校正,虽然这些少量的发生位交换的比特数发生变化可能不是很明显,但是如果其发生在一个关键文件上,这个小小的故障将可能导致系统停机,这也是上述现有技术所无法解决的问题。
[0006]针对相关技术中NAND发生位交换的比特数过少或过多导致无法校正的问题,目前尚未提出有效的解决方案。


【发明内容】

[0007]针对相关技术中的问题,本发明提出一种数据校正方法和系统,可以通过利用备份镜像的数据来同步发生位交换镜像的数据的方法,实现了及时校正NAND中数据位交换的问题,并且在校正算法无法校正的情况下也可以对发生位交换的数据进行校正处理,而且在即使少量数据发生了位交换的情况下也可以及时校正从而保证了存储在NAND中数据的正确性和系统的稳定性。
[0008]为实现上述技术目的,根据本发明的一个方面,提供了一种数据校正方法。
[0009]该数据校正方法应用于Nand Flash存储器中,该数据校正方法包括:
[0010]依次读取第一镜像中的数据;
[0011]对所述数据进行校验,根据校验结果判断所述数据是否发生位交换;
[0012]在判断结果为是的情况下,读取第二镜像中的数据,并利用读取的所述数据对所述第一镜像进行同步,其中,所述第二镜像为所述第一镜像的备份镜像。
[0013]其中,所述第二镜像的数量为一个或多个,并且与所述第一镜像位于NAND的同一个分区中,且在所述同一个分区中所述第一镜像与所述第二镜像共用一个分区头。
[0014]其中,依次读取所述第一镜像中的数据,包括:
[0015]读取分区头信息,并指向所述第一镜像的起始地址,其中所述分区头信息包括以下至少之一:镜像的起始地址、镜像的大小和镜像的md5值。
[0016]其中,当所述数据发生位交换的情况下,还可以将经过校验确定的发生位交换的比特数与校正算法所能校正的最大比特数相比较,在确定的发生位交换的比特数大于校正算法所能校正的所述最大比特数的情况下,从所述第二镜像中读取数据,并利用读取的数据对所述第一镜像进行同步。
[0017]其中,从所述第二镜像中读取的所述数据与所述第一镜像中发生位交换的数据具有相同的偏移。
[0018]其中,该数据校正方法进一步包括:
[0019]当所述第一镜像的数据全部校正完成后,将所述第二镜像全部读取,并计算重新读取后的所述第二镜像的md5值,当重读后的所述第二镜像的所述md5值与分区头中的md5值不一致时,利用校正完成后的第一镜像的数据来同步所述第二镜像。
[0020]根据本发明的另一个方面提供了一种数据校正系统,应用于Nand Flash存储器中,该数据校正系统包括:
[0021]读取模块,用于依次读取第一镜像中的数据,并在发生位交换的情况下读取第二镜像中的数据;
[0022]校验模块,用于对所述第一镜像中的数据进行校验,根据校验结果判断所述数据是否发生位交换;
[0023]同步模块,用于在发生位交换的情况下利用读取的所述第二镜像中的数据对所述第一镜像进行同步;
[0024]其中,所述第二镜像为所述第一镜像的备份镜像。
[0025]其中,所述读取模块进一步用于读取分区头信息,并指向所述第一镜像的起始地址,并且当所述第一镜像的数据全部校正完成后,将所述第二镜像全部读取,并计算重新读取后的所述第二镜像的md5值;
[0026]其中所述分区头信息包括以下至少之一:镜像的起始地址、镜像的大小和镜像的md5 值。
[0027]其中,所述校验模块进一步用于当所述数据发生位交换的情况下,确定所述第一镜像中发生位交换的比特数,并将确定的发生位交换的比特数与校正算法所能校正的最大比特数相比较,并且,所述同步模块用于在比较结果为确定的发生位交换的比特数大于校正算法所能校正的所述最大比特数的情况下,从所述第二镜像中读取数据,并利用读取的数据对所述第一镜像进行同步。
[0028]其中,所述同步模块进一步用于当重读后的所述第二镜像的所述md5值与分区头中的md5值不一致时,利用校正完成后的第一镜像的数据来同步所述第二镜像。
[0029]本发明通过,利用备份镜像的数据来恢复发生位交换镜像的数据的方法,能够及时校正NAND中数据发生位交换的问题,并且在校正算法无法校正的情况下也可以对发生位交换的数据进行校正处理,而且在即使少量数据发生了位交换的情况下本发明也可以及时校正,保证了存储在NAND中数据的正确性和系统的稳定性。

【专利附图】

【附图说明】
[0030]图1是根据本发明实施例提供的数据校正方法的流程图;
[0031]图2是本发明一具体实施例的数据校正方法的整体流程图;
[0032]图3是根据本发明实施例提供的数据校正系统的框图。

【具体实施方式】
[0033]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0034]根据本发明的实施例,提供了一种数据校正方法,应用于Nand Flash存储器中。
[0035]如图1所示,该数据校正方法包括:
[0036]步骤S101,依次读取第一镜像中的数据;
[0037]步骤S103,对数据进行校验,根据校验结果判断数据是否发生位交换;
[0038]步骤S105,在判断结果为是的情况下,读取第二镜像中的数据,并利用读取的数据对第一镜像进行同步,其中,第二镜像为第一镜像的备份镜像。
[0039]并且,第二镜像的数量为一个或多个,并与第一镜像位于NAND的同一个分区中,且在同一个分区中第一镜像与第二镜像共用一个分区头。
[0040]其中,步骤S101,依次读取第一镜像中的数据进一步包括:读取分区头信息,并指向第一镜像的起始地址,其中分区头信息包括以下至少之一:镜像的起始地址、镜像的大小和镜像的md5值。
[0041]此外,当数据发生位交换的情况下,将经过校验确定的发生位交换的比特数与校正算法所能校正的最大比特数相比较,在确定的发生位交换的比特数大于校正算法所能校正的最大比特数的情况下,从第二镜像中读取数据,并利用读取的数据对第一镜像进行同止/J/ O
[0042]其中,从第二镜像中读取的数据与第一镜像中发生位交换的数据具有相同的偏移。
[0043]此外,当第一镜像的数据全部校正完成后,将第二镜像全部读取,并计算重新读取后的第二镜像的md5值,当重读后的第二镜像的md5值与分区头中的md5值不一致时,利用校正完成后的第一镜像的数据来同步第二镜像,这样也可以保证了第二镜像的正确性。
[0044]为了更清楚地理解本发明,下面以一具体实施例来对本发明进行说明。
[0045]如图2示出了本发明一具体实施例的流程图,其步骤如下:
[0046](I)读取分区头信息,得到该分区中所包含的两个镜像的起始地址,镜像的大小以及镜像的md5值并指向第一镜像的起始地址;
[0047](2)从NAND中依次读取第一个镜像的数据;
[0048](3)对数据进行校验;
[0049](4)如果没有出现位交换的现象,则跳转至(2);
[0050](5)如果出现位交换的现象,则根据校验确定的发生位交换的比特数与校正算法所能校正的最大比特数进行比较,判断是否超过校正算法所能校正的最大比特数,如果没有超过,则通过校正算法将校正后的数据回写到NAND中,然后跳转至(2);
[0051](6)如果超过了校正算法所能校正的最大比特数,则从第二个镜像的相同位置读取数据同步到第一个镜像中。虽然从第二个镜像读取数据时也会出现无法校正的情况,但是两个镜像同时出现同一个偏移无法校正的概率很低,如果实际使用中发现该现象,则需要在分区中再增加一个相同的镜像,即第二镜像为第一镜像的备份镜像且备份镜像可以为多个;
[0052](7)依次校正第一个镜像的数据直至结束;
[0053](8)直接读取第二个镜像的全部数据,根据读取到的数据计算出来md5值;
[0054](9)将重新计算的第二个镜像的md5值与分区头中保存的md5值进行比较,如果不一致,则将刚才校正后的第一个的镜像的数据同步到第二个镜像中。
[0055]根据本发明的实施例,提供了一种数据校正系统,应用于Nand Flash存储器中。
[0056]如图3所示,该数据校正系统包括:
[0057]读取模块31,用于依次读取第一镜像中的数据,并在发生位交换的情况下读取第二镜像中的数据;
[0058]校验模块32,用于对第一镜像中的数据进行校验,根据校验结果判断数据是否发生位交换;
[0059]同步模块33,用于在发生位交换的情况下利用读取的第二镜像中的数据对第一镜像进行同步;
[0060]其中,第二镜像为第一镜像的备份镜像。
[0061]其中,读取模块31进一步用于读取分区头信息,并指向第一镜像的起始地址,并且当第一镜像的数据全部校正完成后,将第二镜像全部读取,并计算重新读取后的第二镜像的md5值;
[0062]其中分区头信息包括以下至少之一:镜像的起始地址、镜像的大小和镜像的md5值。
[0063]其中,校验模块32进一步用于当数据发生位交换的情况下,确定第一镜像中发生位交换的比特数,并将确定的发生位交换的比特数与校正算法所能校正的最大比特数相比较,并且,同步模块33用于在比较结果为确定的发生位交换的比特数大于校正算法所能校正的最大比特数的情况下,从第二镜像中读取数据,并利用读取的数据对第一镜像进行同止/J/ O
[0064]其中,同步模块33进一步用于:当重读后的第二镜像的md5值与分区头中的md5值不一致时,利用校正完成后的第一镜像的数据来同步第二镜像。
[0065]综上所述,借助于本发明的上述技术方案,本发明通过,当NAND中发生位交换的比特数大于校正算法所能校正的最大比特数的时候利用备份镜像的数据来恢复发生位交换的数据的方法和当发生位交换的比特数小于校正算法所能校正的最大比特数的时候通过校正算法进行校正,实现了及时校正NAND中数据出现位交换的问题,即只要发生位交换的现象就采用相关方法进行校正,保证了存储在NAND中数据的正确性和系统的稳定性。
[0066]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据校正方法,其特征在于,应用于Nand Flash存储器中,所述方法包括: 依次读取第一镜像中的数据; 对所述数据进行校验,根据校验结果判断所述数据是否发生位交换; 在判断结果为是的情况下,读取第二镜像中的数据,并利用读取的所述数据对所述第一镜像进行同步,其中,所述第二镜像为所述第一镜像的备份镜像。
2.根据权利要求1所述的数据校正方法,其特征在于,所述第二镜像的数量为一个或多个,并且与所述第一镜像位于NAND的同一个分区中,且在所述同一个分区中所述第一镜像与所述第二镜像共用一个分区头。
3.根据权利要求1所述的数据校正方法,其特征在于,依次读取所述第一镜像中的数据,包括: 读取分区头信息,并指向所述第一镜像的起始地址,其中所述分区头信息包括以下至少之一:镜像的起始地址、镜像的大小和镜像的md5值。
4.根据权利要求1所述的数据校正方法,其特征在于,当所述数据发生位交换的情况下,将经过校验确定的发生位交换的比特数与校正算法所能校正的最大比特数相比较,在确定的发生位交换的比特数大于校正算法所能校正的所述最大比特数的情况下,从所述第二镜像中读取数据,并利用读取的数据对所述第一镜像进行同步。
5.根据权利要求1所述的数据校正方法,其特征在于,从所述第二镜像中读取的所述数据与所述第一镜像中发生位交换的数据具有相同的偏移。
6.根据权利要求1所述的数据校正方法,其特征在于,所述数据校正方法进一步包括: 当所述第一镜像的数据全部校正完成后,将所述第二镜像全部读取,并计算重新读取后的所述第二镜像的md5值,当重读后的所述第二镜像的所述md5值与分区头中的md5值不一致时,利用校正完成后的第一镜像的数据来同步所述第二镜像。
7.一种数据校正系统,其特征在于,应用于Nand Flash存储器中,所述数据校正系统包括: 读取模块,用于依次读取第一镜像中的数据,并在发生位交换的情况下读取第二镜像中的数据; 校验模块,用于对所述第一镜像中的数据进行校验,根据校验结果判断所述数据是否发生位交换; 同步模块,用于在发生位交换的情况下利用读取的所述第二镜像中的数据对所述第一镜像进行同步; 其中,所述第二镜像为所述第一镜像的备份镜像。
8.根据权利要求7所述的数据校正系统,其特征在于,所述读取模块进一步用于:读取分区头信息,并指向所述第一镜像的起始地址,并且当所述第一镜像的数据全部校正完成后,将所述第二镜像全部读取,并计算重新读取后的所述第二镜像的md5值; 其中所述分区头信息包括以下至少之一:镜像的起始地址、镜像的大小和镜像的md5值。
9.根据权利要求7所述的数据校正系统,其特征在于,所述校验模块进一步用于当所述数据发生位交换的情况下,确定所述第一镜像中发生位交换的比特数,并将确定的发生位交换的比特数与校正算法所能校正的最大比特数相比较,并且,所述同步模块用于在比较结果为确定的发生位交换的比特数大于校正算法所能校正的所述最大比特数的情况下,从所述第二镜像中读取数据,并利用读取的数据对所述第一镜像进行同步。
10.根据权利要求7所述的数据校正系统,其特征在于,所述同步模块进一步用于:当重读后的所述第二镜像的所述md5值与分区头中的md5值不一致时,利用校正完成后的第一镜像的数据来同步所述第二镜像。
【文档编号】G06F11/00GK104133731SQ201410384374
【公开日】2014年11月5日 申请日期:2014年8月6日 优先权日:2014年8月6日
【发明者】孙浩 申请人:曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1