基于NAND FLASH存储器的纠错方法及装置制造方法及图纸

技术编号:23238793 阅读:64 留言:0更新日期:2020-02-04 18:17
本发明专利技术适用于计算机技术领域,提供了一种基于NAND FLASH存储器的纠错方法及装置,该方法包括:通过在数据写入时,根据原始数据生成原始纠错码,并将原始数据以及原始纠错码写入NAND FLASH存储器中;读取数据时,将读取的读出数据生成对应的读出纠错码,并将读出纠错码与读取的校验纠错码进行比较,根据比较结果确定读出数据中的错误位元并对所述错误位元进行纠错处理,本实施例通过多维空间来实现对一个位元错误的纠错处理,相比ECC方案更直观和容易理解,并且运算量较小。

Error correction method and device based on NAND flash memory

【技术实现步骤摘要】
基于NANDFLASH存储器的纠错方法及装置
本专利技术属于计算机
,尤其涉及一种基于NANDFLASH存储器的纠错方法及装置。
技术介绍
在计算机领域中,闪存FLASH是一种固态、电可擦除可写入、掉电不丢失信息的计算机存储介质,按结构FLASH可以分为NANDFLASH和NORFLASH。其中,NANDFLASH存储器中保存的数据由于位损坏、对某存储页的频繁读取操作、静电干扰或者外部强电磁辐射等原因,容易出现比特位翻转的问题,为了提高NANDFLASH存储器的可靠性,NANDFLASH存储器应用时需要采用纠错算法来保证数据的正确性。一般采用ECC(ErrorCheckingandCorrection)校验进行比特位翻转问题的校验与纠错处理,ECC校验是指在读写数据的时候分别计算ECC码,通过比较写入数据的ECC码与读取数据的ECC码以确定所述NANDFlash是否出现比特翻转以及在出现比特翻转时进行纠错处理。然而,目前的校验方法采用二维平面校验的方式,导致纠错处理过程不直观,且运算量较大。
技术实现思路
有鉴于此,本专利技术实施例提供了一种基于NANDFLASH存储器的纠错方法及装置,以解决现有技术中采用二维平面校验的方式,导致纠错处理过程不直观,且运算量较大的问题。本专利技术实施例的第一方面提供了一种基于NANDFLASH存储器的纠错方法,包括:在数据写入时,获取原始数据,并根据所述原始数据生成多维空间位元矩阵;根据所述多维空间位元矩阵生成各维空间的各坐标轴方向上的纠错码,将各维空间的各坐标轴方向上的纠错码串接为原始纠错码;将所述原始数据以及所述原始纠错码写入所述NANDFLASH存储器中;在数据读取时,从所述NANDFLASH存储器中读取与所述原始数据对应的读出数据以及与所述原始纠错码对应的校验纠错码;根据生成所述原始数据对应的原始纠错码的方式生成所述读出数据对应的读出纠错码;将所述校验纠错码与所述读出纠错码进行校验,获得校验结果,根据所述校验结果确定所述读出数据中的错误位元并对所述错误位元进行纠错处理。在一实施例中,所述根据所述原始数据生成多维空间位元矩阵,包括:根据所述原始数据的数据区的数据位元和冗余区的冗余位元,确定多维空间位元矩阵的维度数以及维度宽度,各个维度上的维度宽度相同或者不同;根据所述维度宽度将所述数据区的数据位元按照预设顺序排列到所述多维空间位元矩阵的各维度上,获得多维空间位元矩阵。在一实施例中,当各个维度上的维度宽度相同时,所述根据所述原始数据的数据区的数据位元和冗余区的冗余位元,确定多维空间位元矩阵的维度数以及维度宽度,包括:根据确定多维空间位元矩阵的维度数以及维度宽度;其中,Ds表示数据区的数据位元总数,Rs表示冗余区的冗余位元总数,W表示维度宽度,n表示维度数。在一实施例中,根据所述原始数据的数据区的数据位元和冗余区的冗余位元,确定满足多维空间位元矩阵的多组维度数以及对应的维度宽度;确定多组维度数以及对应的维度宽度中满足预设条件的一组维度数以及对应的维度宽度作为最终确定的多维空间位元矩阵的维度数以及维度宽度;其中预设条件为使得W与n的乘积最小且n的取值最小。在一实施例中,所述根据所述维度宽度将所述数据区的数据位元按照预设顺序排列到所述多维空间位元矩阵的各维度上,获得多维空间位元矩阵,包括:将所述数据区的数据位元依次在各维度上排列,在每个维度上按照数据位元的序列号,基于坐标轴方向依次进行排列;或者,将所述数据区的数据位元依次在各维度上排列,在每个维度上将数据位元的序列号采用循环排列方式进行排列;数据位元的序列号与数据位元在多维空间位元矩阵中的坐标值形成一一映射关系,不同的排列顺序产生不同的映射关系;当所述数据位元填充完毕后所述多维空间位元矩阵未被填满时,未填充位元的位置采用预设数值填充。在一实施例中,所述根据所述多维空间位元矩阵生成各维空间的各坐标轴方向上的纠错码,将各维空间的各坐标轴方向上的纠错码串接为原始纠错码,包括:将所述多维空间位元矩阵中第一坐标轴上的同一坐标的所有数据位元进行异或运算得到一个纠错码,根据上述将所述第一坐标轴上的同一坐标的所有数据位元进行异或运算得到一个纠错码的计算纠错码的方式依次计算所述第一坐标轴上的W个坐标序号对应的W个纠错码或者同时计算所述第一坐标轴上的W个坐标序号中至少两个坐标序号对应的纠错码,按照坐标序号的不同的排列方式将所述W个纠错码串接为所述同一坐标轴上的纠错码串,所述第一坐标轴为所述多维空间位元矩阵对应的多维空间中任意一个维度对应的坐标轴;根据所述计算纠错码的方式得到所述多维空间位元矩阵中各维空间对应的坐标轴上的纠错码串,将各维空间对应的坐标轴上的纠错码串按照坐标轴序号按从小到大的顺序或者从大到小的顺序串接为原始纠错码。在一实施例中,所述将所述多维空间位元矩阵中第一坐标轴上的同一坐标的所有数据位元进行异或运算得到一个纠错码,包括:根据得到Vj坐标轴上坐标为k对应的纠错码;其中,Cj(k)表示Vj坐标轴上坐标值为k对应的纠错码,j表示当前维度数,j为大于等于1小于等于n的整数,k表示坐标轴上的坐标值,X表示异或运算符号,i表示循环变量。在一实施例中,所述将所述校验纠错码与所述读出纠错码进行校验,获得校验结果,根据所述校验结果确定所述读出数据中的错误位元并对所述错误位元进行纠错处理,包括:将所述校验纠错码与所述读出纠错码进行两两异或运算,得到结果串;按照坐标轴向,将所述结果串划分为n个结果子串;确定各个结果子串中位元为1的个数为对应的结果子串的码重;确定非零码重对应的结果子串中首个位元为1的序号;当所有结果子串对应的码重均为1时,则根据各个非零码重对应的结果子串的首个位元为1的序号确定错误位元的坐标;将所述错误位元的坐标对应的读出数据进行位元取反,得到纠正后的位元。在一实施例中,在所述确定非零码重对应的结果子串中首个位元为1的序号之后,还包括:当所有结果子串对应的码重均为0或者所有结果子串对应的码重中有且仅有一个码重为1时,则结束流程;当所有结果子串对应的码重中有至少两个码重为1时,上报错误个数。本专利技术实施例的第二方面提供了一种基于NANDFLASH存储器的纠错装置,包括:矩阵生成模块,用于在数据写入时,获取原始数据,并根据所述原始数据生成多维空间位元矩阵;纠错码生成模块,用于根据所述多维空间位元矩阵生成各维空间的各坐标轴方向上的纠错码,将各维空间的各坐标轴方向上的纠错码串接为原始纠错码;数据写入模块,用于将所述原始数据以及所述原始纠错码写入所述NANDFLASH存储器中;数据读取模块,用于在数据读取时,从所述NANDFLASH存储器中读取与所述原始数据对应的读出数据以及与所述原始纠错码对应的校验纠错码;所述纠错码生成模块,还用于根据生成所述原始数据对应的原始纠错码的方式生成所述本文档来自技高网...

【技术保护点】
1.一种基于NAND FLASH存储器的纠错方法,其特征在于,包括:/n在数据写入时,获取原始数据,并根据所述原始数据生成多维空间位元矩阵;根据所述多维空间位元矩阵生成各维空间的各坐标轴方向上的纠错码,将各维空间的各坐标轴方向上的纠错码串接为原始纠错码;将所述原始数据以及所述原始纠错码写入NAND FLASH存储器中;/n在数据读取时,从所述NAND FLASH存储器中读取与所述原始数据对应的读出数据以及与所述原始纠错码对应的校验纠错码;根据生成所述原始数据对应的原始纠错码的方式生成所述读出数据对应的读出纠错码;将所述校验纠错码与所述读出纠错码进行校验,获得校验结果,根据所述校验结果确定所述读出数据中的错误位元并对所述错误位元进行纠错处理。/n

【技术特征摘要】
1.一种基于NANDFLASH存储器的纠错方法,其特征在于,包括:
在数据写入时,获取原始数据,并根据所述原始数据生成多维空间位元矩阵;根据所述多维空间位元矩阵生成各维空间的各坐标轴方向上的纠错码,将各维空间的各坐标轴方向上的纠错码串接为原始纠错码;将所述原始数据以及所述原始纠错码写入NANDFLASH存储器中;
在数据读取时,从所述NANDFLASH存储器中读取与所述原始数据对应的读出数据以及与所述原始纠错码对应的校验纠错码;根据生成所述原始数据对应的原始纠错码的方式生成所述读出数据对应的读出纠错码;将所述校验纠错码与所述读出纠错码进行校验,获得校验结果,根据所述校验结果确定所述读出数据中的错误位元并对所述错误位元进行纠错处理。


2.如权利要求1所述的基于NANDFLASH存储器的纠错方法,其特征在于,所述根据所述原始数据生成多维空间位元矩阵,包括:
根据所述原始数据的数据区的数据位元和冗余区的冗余位元,确定多维空间位元矩阵的维度数以及维度宽度,各个维度上的维度宽度相同或者不同;
根据所述维度宽度将所述数据区的数据位元按照预设顺序排列到所述多维空间位元矩阵的各维度上,获得多维空间位元矩阵。


3.如权利要求2所述的基于NANDFLASH存储器的纠错方法,其特征在于,当各个维度上的维度宽度相同时,所述根据所述原始数据的数据区的数据位元和冗余区的冗余位元,确定多维空间位元矩阵的维度数以及维度宽度,包括:
根据确定多维空间位元矩阵的维度数以及维度宽度;
其中,Ds表示数据区的数据位元总数,Rs表示冗余区的冗余位元总数,W表示维度宽度,n表示维度数。


4.如权利要求3所述的基于NANDFLASH存储器的纠错方法,其特征在于,根据所述原始数据的数据区的数据位元和冗余区的冗余位元,确定满足多维空间位元矩阵的多组维度数以及对应的维度宽度;确定多组维度数以及对应的维度宽度中满足预设条件的一组维度数以及对应的维度宽度作为最终确定的多维空间位元矩阵的维度数以及维度宽度;其中预设条件为使得W与n的乘积最小且n的取值最小。


5.如权利要求3所述的基于NANDFLASH存储器的纠错方法,其特征在于,所述根据所述维度宽度将所述数据区的数据位元按照预设顺序排列到所述多维空间位元矩阵的各维度上,获得多维空间位元矩阵,包括:
将所述数据区的数据位元依次在各维度上排列,在每个维度上按照数据位元的序列号,基于坐标轴方向依次进行排列;或者,将所述数据区的数据位元依次在各维度上排列,在每个维度上将数据位元的序列号采用循环排列方式进行排列;
数据位元的序列号与数据位元在多维空间位元矩阵中的坐标值形成一一映射关系,不同的排列顺序产生不同的映射关系;
当所述数据位元填充完毕后所述多维空间位元矩阵未被填满时,未填充位元的位置采用预设数值填充。


6.如权利要求1至5中任一项所述的基于NANDFLASH存储器的纠错方法,其特征在于,所述根据所述多维空间位元矩阵生成各维空间的各坐标轴方向上的纠错码,将各维空间的各坐标轴方向上的纠错码串接为原始纠错码,包括:
将所述多维空间位元矩阵中第一坐标轴上的同一坐标的所有数据位元进行异或运算得到一个纠错码,根据上述将...

【专利技术属性】
技术研发人员:董时舫
申请(专利权)人:百富计算机技术深圳有限公司
类型:发明
国别省市:广东;44

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

1