CN115562902A - 一种存储区域的编码方法、装置及相关设备 - Google Patents
一种存储区域的编码方法、装置及相关设备 Download PDFInfo
- Publication number
- CN115562902A CN115562902A CN202210026668.8A CN202210026668A CN115562902A CN 115562902 A CN115562902 A CN 115562902A CN 202210026668 A CN202210026668 A CN 202210026668A CN 115562902 A CN115562902 A CN 115562902A
- Authority
- CN
- China
- Prior art keywords
- storage area
- service data
- code rate
- error correction
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请实施例本一种存储区域的编码方法、装置及相关设备,该方法包括:先确定存储区域发生数据读取错误且纠错失败UECC。存储区域用于存储业务数据以及业务数据对应的纠错码。然后,采用比存储区域的当前码率更低的码率对存储区域中的业务数据重新进行编码,以使存储区域的纠错能力提升,从而使得存储区域的数据读取错误被纠正。存储区域的码率为业务数据占用的码长和存储区域的总码长的比值,存储区域的总码长为业务数据占用的码长与纠错码占用的码长之和。将原本不能再进行利用的数据读取错误且纠错失败的存储区域,通过降低该存储区域的码率,提高该存储区域的纠错能力,使得该存储区域可以被重新利用,进而使得存储器损失的存储空间减少。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种存储区域的编码方法、装置及相关设备。
背景技术
存储区域(例如存储块)在存储业务数据时,通常还存储有纠错码。其中,纠错码用于在发生数据读取错误时对业务数据进行纠错。
在读取存储区域中的业务数据时,可能会发生数据读取错误。此时,存储区域所在的存储器可以根据纠错码执行错误检查和纠正(Error Checking and Correcting,ECC)过程,以实现数据的正确读取。但随着存储区域使用次数的增加,该存储区域所产生的数据读取错误问题可能会过于严重,此时,存储器即使利用纠错码也难以读取到正确数据,即出现纠错失败(Uncorrectable Error Correction Code,UECC)的情况。
目前,对于纠错失败的存储区域,存储器会将其添加失效标记,并不再利用该存储区域保存业务数据,这使得存储器将损失该存储区域对应的存储空间。
发明内容
本申请提供了一种存储区域的编码方法、装置及相关设备,用于在存储区域发生数据读取错误并纠错失败UECC后,减少存储器损失的存储空间。
第一方面,本申请提供了一种存储区域的编码方法,该方法应用于存储器,存储器包括控制器和存储介质,该方法包括:控制器确定存储介质中发生数据读取错误且纠错失败UECC的存储区域,存储区域用于存储业务数据以及业务数据对应的纠错码,存储区域发生数据读取错误时存储区域的码率为第一码率,存储区域的码率为业务数据占用的码长和存储区域的总码长的比值,存储区域的总码长为业务数据占用的码长与纠错码占用的码长之和;控制器基于第二码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,第二码率小于第一码率。
由此可知,本申请实施例提供的存储区域的编码方法,在确认发生数据读取错误且纠错失败的存储区域后,以更低的码率对该区域进行重新编码,从而使得该存储区域对应的纠错能力提升,进而使得该存储区域的数据读取错误并纠正。在存储器的使用过程中,本申请实施例提供的方法可以恢复发生数据读取错误且纠错失败的存储区域的部分存储功能,从而减少存储因为老化等问题损失的存储空间。
作为一种可能的实施方式,在控制器基于第二码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码后,且控制器确定存储区域发生数据读取错误且纠错失败时,该方法还包括:控制器基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,第三码率小于第二码率。当已经恢复的存储区域重新出现数据读取错误并纠错失败UECC时,本申请实施例提供的方法还可以继续通过降低该存储区域的码率,从而继续提高该存储区域的纠错能力,进而使得该存储区域的数据读取错误再次被纠正,进一步减少存储因为老化等问题损失的存储空间。
作为一种可能的实施方式,控制器基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,包括:当第三码率大于预设阈值时,控制器基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码。作为一种可能的实施方式,本申请实施例提供的存储区域的编码方法还包括:当第三码率小于或等于预设阈值时,控制器停用存储区域。在存储区域的码率过小时,降低存储区域的码率对提高存储区域纠错能力的影响十分有限。为了避免被恢复的存储区域很快重新出现存储失败的问题,在存储区域的码率过小时,可以不再通过降低码率来恢复存储区域,而是直接停用该存储区域。
作为一种可能的实施方式,存储介质还包括预留存储区域,目标业务数据为业务数据中的部分数据。在存储区域的数据读取错误被纠正后,本申请实施例提供的存储区域的编码方法还包括:控制器将业务数据中的另一部分数据以及另一部分数据对应的纠错码写入预留存储区域。由于该存储区域恢复后码率降低,因此该存储区域能够存储的业务数据减少。为了方便控制器对存储区域的管理,控制器可以将该存储区域原本存储的业务数据的一部分仍存储在该存储区域中,将剩下的业务数据以及这部分数据对应的纠错码写入预留存储区域。
作为一种可能的实施方式,预留存储区域存储多个存储区域各自在发生数据读取错误且纠错失败时所存储的业务数据中的部分数据,以及各个存储区域中的部分数据对应的纠错码。本申请实施例提供的存储区域在发生数据读取错误且纠错失败时,该存储区域的码率降低但依然可以存储部分业务数据,因此预留存储区域可以存储多个存储区域剩下的业务数据,节省了预留存储区域的存储空间,减少了存储器在老化的过程中损失的存储空间。
作为一种可能的实施方式,控制器基于第二码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,包括:控制器基于第二码率对应的校验矩阵向存储区域中写入目标业务数据以及目标业务数据对应的纠错码。
作为一种可能的实施方式,校验矩阵为n*(k-s*m)的矩阵,其中,s为存储区域码率迭代的次数,m为校验矩阵每次迭代损失的长度,n为校验矩阵的宽度,k为初始校验矩阵的长度。
作为一种可能的实施方式,上述的存储区域包括存储块。
根据上述提供的存储区域的编码方法,本申请实施例还提供了一种存储区域的编码装置,该装置应用于存储器的控制器,存储器还包括存储介质,该装置包括:确定模块,用于确定存储介质中发生数据读取错误且纠错失败UECC的存储区域,存储区域用于存储业务数据以及业务数据对应的纠错码,存储区域发生数据读取错误时存储区域的码率为第一码率,存储区域的码率为业务数据占用的码长和存储区域的总码长的比值,存储区域的总码长为业务数据占用的码长与纠错码占用的码长之和;第一写入模块,用于基于第二码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,第二码率小于第一码率。
作为一种可能的实施方式,本申请提供的存储区域的编码装置还可以包括:第二写入模块,用于基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,第三码率小于第二码率。
作为一种可能的实施方式,第二写入模块具体用于:当第三码率大于预设阈值时,基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码。
作为一种可能的实施方式,第二写入模块还用于:当第三码率小于或等于预设阈值时,停用存储区域。
根据上述提供的存储区域的编码方法及编码装置,本申请还提供了一种电子设备,该设备包括处理器以及存储器:存储器用于存储计算机程序;处理器用于根据计算机程序执行上述的存储区域的编码方法。
根据上述提供的存储区域的编码方法及编码装置,本申请还提供了一种计算机可读存储介质。其中,计算机可读存储介质用于存储计算机程序,计算机程序用于执行上述的存储区域的编码方法。
通过上述技术方案可知,本申请具有以下有益效果:
本申请实施例提供了一种存储区域的编码方法,包括:先确定存储区域发生数据读取错误且纠错失败UECC,其中,存储区域用于存储业务数据以及业务数据对应的纠错码。然后,可以更改存储区域的编码方式,采用比存储区域的当前码率更低的码率对存储区域中的业务数据重新进行编码,以使存储区域的纠错能力提升,从而使得存储区域的数据读取错误被纠正。具体地,存储区域的码率为业务数据占用的码长和存储区域的总码长的比值,存储区域的总码长为业务数据占用的码长与纠错码占用的码长之和。
如此,本申请实施例提供的存储区域的纠错方法,将原本不能再进行利用的数据读取错误且纠错失败的存储区域,通过降低该存储区域的码率,提高该存储区域的纠错能力,使得该存储区域可以被重新利用,进而使得存储器损失的存储空间减少。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种存储器的架构示意图;
图2为本申请实施例提供的一种存储区域的编码方法的流程图;
图3为本申请实施例提供的一种码率与纠错码的纠错能力的映射关系图;
图4为本申请实施例提供的一种存储区域的示意图;
图5为本申请实施例提供的另一种存储区域的示意图;
图6为本申请实施例提供的一种校验矩阵迭代示意图;
图7为本申请实施例提供的一种存储区域的编码装置示意图。
具体实施方式
本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了更好地理解本申请实施例提供案,先对本申请实施例提供的方案的应用场景进行介绍。
本申请实施例中的存储区域可以为存储器中的存储区域,也可以为其他存储介质中的存储区域,本申请实施例在此不做限制。下面以存储器中的存储区域作为示例介绍本申请的技术方案。
参见图1,该图为本申请实施例提供的一种存储器的架构示意图。
如图1所示,本申请实施例提供的存储器100包括存储介质101和控制器102。其中存储介质101中包含多个存储区域。存储介质101中的多个存储区域分别用于存储业务数据和业务数据对应的纠错码。控制器102用于控制在存储区域中写入数据,或读取存储区域内的数据。
在图1所示的存储器中包含了用于存储业务数据以及业务数据对应的纠错码的存储区域。存储区域可以为存储块或其他大小的存储区域。当存储区域发生数据读取错误且纠错失败时,传统方式中存储器将认为该存储区域可靠性较低,不再利用该存储区域保存业务数据。这使得存储器损失了该存储区域对应的存储空间。为此,本申请实施例提供了一种存储区域的编码方法,可以在存储区域发生数据读取错误且纠错失败时,恢复该存储区域的一部分存储功能。使得该存储区域可以存储一部分业务数据,从而使得存储器损失的存储空间减少。
下面结合附图对本申请实施例提供的存储区域的编码方法进行具体的介绍。
参见图2,该图为本申请实施例提供的一种存储区域的编码方法的流程图。该方法可以应用到图1所示的存储器中。
如图2所示,存储区域的编码方法包括:
S201:控制器102确定发生数据读取错误且纠错失败UECC的存储区域。
由上可知,存储器中可以包含多个或一个存储区域。存储区域可以为存储器内任意大小的存储空间。作为一个示例,存储区域可以为存储块。存储区域用于存储业务数据以及业务数据对应的纠错码。需要说明的是,存储器中的存储区域发生数据读取错误时,存储器中的控制器102可以利用存储区域内的纠错码对读取的业务数据进行验证,同时对数据读取错误进行纠正。当存储区域的数据读取错误被纠正后,控制器102可以继续利用该存储区域存储业务数据以及业务数据对应的纠错码。但随着存储区域的使用次数增加,存储器的老化程度增大,控制器102利用存储区域内的纠错码对数据读取错误进行纠正时会出现纠错失败UECC的情况。
需要说明的是,存储区域中同时存有业务数据以及业务数据对应的纠错码。存储区域的码率为业务数据占用的码长和存储区域的总码长的比值,存储区域的总码长为业务数据占用的码长与纠错码占用的码长之和。假设存储区域中存储有0.8个单位的业务数据,0.2个单位的纠错码,此时该存储区域的总码长为1个单位,该存储区域的码率为0.8。在存储区域发生数据读取错误时,存储区域内存储有业务数据和业务数据对应的纠错码,将此时存储区域的码率称为第一码率。
S202:控制器102基于第二码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码。
需要说明的是,第二码率小于第一码率。当该存储区域发生数据读取错误且纠错失败时,控制器102基于第二码率对该存储区域进行重新编码。该存储区域的码率由原本的第一码率减小至第二码率,从而该存储区域对应的纠错能力提升,进而使得该存储区域中的数据读取错误被纠错成功。在传统的方法中该存储区域纠错失败后将被停用,而在本申请实施例提供的方法中该存储区域在纠错成功后可以被存储器重新利用,从而使得存储器中被停用的存储区域减少,进而减少了存储器在老化的过程中损失的存储空间。
为了更好地理解本申请实施例提供的方法,下面对存储区域的码率和存储区域的纠错能力之间的对应关系进行介绍。
参见图3,该图为本申请实施例提供的一种码率与纠错码的纠错能力的映射关系图。
该图的横坐标为存储区域的码率,纵坐标为存储区域译码前的原始误码率。其中,存储区域的码率为该存储区域中业务数据占用的码长和存储区域的总码长的比值。误码率为业务数据中错误的代码占用的码长和业务数据占用的码长的比值。如图3所示,当存储区域的码率为0.9且该存储区域在译码前的原始误码率为10-3时,该存储区域译码后的误码率为10-4。当存储区域的码率为0.7且该存储区域在译码前的原始误码率为10-2时,该存储区域译码后的误码率为10-4。当码率减小时,译码后误码率为10-4的存储区域对应的原始误码率越高。即码率越小时,控制器102可以根据纠错码对原始误码率越高的存储区域进行纠错,使该存储区域的误码率降低到标准值。由此可知,存储区域的码率越低,存储区域的纠错能力越高。在码率从0.9降低至0.8时,该存储区域的纠错能力可以提升数倍。
当存储区域发生数据读取错误且纠错失败UECC时,本申请实施例提供的存储区域的编码方法,可以通过采用更低的码率对存储区域内的数据进行重新编码,从而提高存储区域的纠错能力,进而恢复存储区域的存储功能。需要说明的是,在实际的应用中导致存储区域发生数据读取错误且纠错失败UECC的主要原因是存储器的存储区域在使用中逐渐老化。存储器的老化过程是一个连续且缓慢的过程,随着存储区域的老化,存储区域的可靠性能下降,发生严重的数据读取错误。当存储器无法解决存储区域产生的数据读取错误时,该存储区域发生纠错失败。在纠错失败时,存储区域的纠错能力与数据读取错误对应的纠错能力的差距较小,因此,本申请实施例提供的方法通过码率提高存储区域的纠错能力后,通常都可以恢复由于存储器老化带来的数据读取错误且纠错失败UECC的问题。
需要说明的是,当存储区域的码率降低后,该存储区域的存储能力也会降低。例如,码率为0.9的存储区域存储的数据中百分之九十为有效的业务数据,百分之十为用于纠错的纠错码。码率为0.8的存储区域存储的数据中百分之八十为有效的业务数据,百分之二十为用于纠错的纠错码。假设本申请实施例中的存储区域原本的码率为0.9并存储有0.9个单元的业务数据,在该存储区域出现读取错误且纠错失败UECC后,控制器102将该存储区域的码率从0.9降低为0.8,那么该存储区域将仅能存储0.8个单元的业务数据。在数据读取错误被纠正后,存储区域内存储的0.8个单元的业务数据称为目标业务数据。本申请实施例中目标业务数据可以为存储区域原本存储的业务数据的一部分,也可以为其他的业务数据,本申请实施例在此不做限定。
在本申请实施例中,目标业务数据可以为业务数据中的部分数据,存储器还可以包括预留存储区域。当存储区域的数据读取错误被纠正后,存储区域的码率降低,导致存储区域仅能存储业务数据中的一部分(目标业务数据)。为了方便控制器对存储区域的管理,控制器102还可以将业务数据中的另一部分数据以及另一部分数据对应的纠错码写入预留存储区域。为了更好地理解本申请实施例提供的存储区域和预留存储区域,下面结合附图进行举例介绍。
参见图4,为本申请实施例提供的一种存储区域的示意图。
如图4所示,本申请实施例中的存储区域原本的码率为0.9,存储有0.9个单元的业务数据和0.1个单元的纠错码,在该存储区域出现读取错误且纠错失败UECC后,存储器将该存储区域的码率从0.9降低为0.8。该存储区域内将存储原本0.9个单元的业务数据中的0.8个单元业务数据和0.2个单元的纠错码,剩下的0.1个单元的业务数据将存储至预留存储区域中。需要说明的是,预留存储区域也同时存储有业务数据和业务数据对应的纠错码。预留存储区域中的业务数据和纠错码的比值可以为预设的固定值,如0.1个单元的业务数据对应0.02个单元的纠错码。
需要说明的是,虽然该存储区域的码率由0.9降低为0.8,但该存储区域依然可以存储0.8个单元的业务数据,预留存储区域可以仅存储0.1个单元的业务数据。在传统方法中该存储区域被直接停用,预留存储区域存储原本存储区域中的全部业务数据,即0.9个单元的业务数据。因此,本申请实施例提供的存储区域在发生数据读取错误且纠错失败时,该存储区域的码率降低但依然可以存储部分业务数据,节省了预留存储区域的存储空间,减少了存储器在老化的过程中损失的存储空间。
在本申请实施例中,预留存储区域仅存储了存储区域的业务数据中的部分数据。该部分数据可以为业务数据中无法被码率降低的存储区域存储的部分(0.1个单元的业务数据)。假设预留存储区域和存储区域具有同样大小的存储空间,那么预留存储区域可以存储多个存储区域各自在发生数据读取错误且纠错失败时所存储的业务数据中的部分数据,以及各个存储区域中的部分数据对应的纠错码。
参见图5,该图为本申请实施例提供的另一种存储区域的示意图。
如图5所示,本申请实施例提供的8个预留存储区域原本的码率为0.9,分别存储有0.9个单元的业务数据和0.1个单元的纠错码,在这8个存储区域分别出现读取错误且纠错失败UECC后,8个存储区域的码率从0.9降低为0.8。8个存储区域分别存储原本0.9个单元的业务数据中的0.8个单元业务数据和0.2个单元的纠错码。8个存储区域剩下的8个0.1个单元的业务数据将存储至预留存储区域中。
假设预留存储区域和存储区域的空间大小一致。若采用传统的技术方案,当8个存储区域发生数据读取错误且纠错失败时,存储器将需要8个预留存储区域来存储8个存储区域中的业务数据。若采用本申请实施例提供的方案,由于存储区域仍保持了一定的存储功能,存储器仅需要一个预留存储区域可以存储多个存储区域降低码率后剩下业务数据,节省了预留存储区域的存储空间,减少了存储器在老化的过程中损失的存储空间。
控制器102在降低存储区域的码率,提高存储区域的纠错能力后,控制器102在再次访问该存储区域时,该存储区域产生的数据读取错误可能仍然无法被纠正。此时,控制器102可以判断该存储区域发生未知原因的数据读取错误,无法通过降低存储区域的码率来解决该存储区域的数据读取错误。该存储区域的可靠性已经无法保证,控制器102将停用该存储区域,不再向该存储区域写入数据。
随着存储区域的老化,存储区域的数据读取错误会不断地加重。为了恢复存储区域的存储功能,控制器102可以通过不断迭代降低存储区域的码率,使得存储区域的数据读取错误被解决,存储区域重新被利用。在本申请实施例中,控制器102在确定发生数据读取错误且纠错失败UECC的存储区域后,若该存储区域发生数据读取错误时的编码码率为第一码率,控制器102可以基于第二码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,其中第二码率小于第一码率。
当控制器102使用小于第一码率的第二码率对存储区域中业务数据的进行编码,且解决了该存储区域的数据读取错误后,随着存储区域的缓慢老化,该存储区域发生的数据读取错误继续加重,该存储区域仍然可能会发生数据读取错误且纠错失败UECC的问题。因此,存储器在基于第二码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码后,且确定存储区域发生数据读取错误且纠错失败时,还可以基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,第三码率小于第二码率。作为一种可能的实施方式,第一码率、第二码率和第三码率可以均为存储器预设的码率。控制器102可以通过预设的码率不断迭代存储区域对应的码率,从而使得老化的存储区域恢复存储功能。
需要说明的是,在存储区域的码率过小时,降低存储区域的码率对提高存储区域纠错能力的影响十分有限。如图3所示,当存储区域的原始码率越小,存储区域的码率每降低0.1对存储区域纠错能力的提高越小。例如,存储区域的码率从0.9降低至0.8时,存储区域的纠错能力提升了数倍,但存储区域的码率从0.6降低至0.5时,对存储区域的纠错能力的提高十分有限。因此,若存储区域的码率过小,此时降低存储区域的码率不一定能解决存储区域的纠错失败UECC的问题,且如果解决了存储区域的纠错失败的问题,随着存储区域的老化,存储区域可能很快会重新出现存储失败的问题。
为了避免上述问题的产生,作为一种可能的实施方式,在基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码之前,还可以对第三码率进行判断,当第三码率大于预设阈值时,基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码。当第三码率小于或等于预设阈值时,停用存储区域。在存储区域的码率过小时,不再通过降低码率来恢复存储区域,而是直接停用该存储区域。如此,控制器102在降低存储区域的码率后,可以解决存储区域中因为老化出现的数据读取错误并纠错失败UECC的问题。且存储区域中的纠错失败UECC被解决后,在短时间内该存储区域不会再次发生数据读取错误并纠错失败UECC的问题。
当存储区域发生数据读取错误且纠错失败UECC时,可以根据更低的码率对应的校验矩阵向存储区域写入目标业务数据以及所述目标业务数据对应的纠错码。下面结合附图对本申请实施例中的校验矩阵进行介绍。
参见图6,该图为本申请实施例提供的一种校验矩阵迭代示意图。
如图6所示,校验矩阵为n*(k-s*m)的矩阵。其中,s为存储区域码率迭代的次数,m为校验矩阵每次迭代损失的长度,n为校验矩阵的宽度,k为初始校验矩阵的长度。存储区域的校验矩阵与存储区域的码率对应。具体地,第一码率对应的校验矩阵中s的值为0,第二码率对应的校验矩阵中的s的值为1;第三码率对应的校验矩阵中的s的值为2,以此类推。当存储区域的码率迭代时,存储区域的校验矩阵随之迭代。存储区域的码率越小,校验矩阵的长度越短。具体地,存储器根据预设码率向存储区域写入目标业务数据,可以为存储器根据预设码率对应的校验矩阵向存储区域写入目标业务数据。
作为一种可能的实施方式,本申请可以将存储区域标记为以下三种状态:G(好)、T(过渡)和B(损坏)。将未发生纠错失败UECC的存储区域标记为G。当存储区域发生数据读取错误且纠错失败UECC时,将该存储区域标记为T(0),采用第二码率对存储区域中的业务数据进行重新编码后,若存储区域恢复数据读取功能,则将该存储区域标记为T(1)。当存储区域重新编码后,若存储区域未恢复数据读取功能,仍出现纠错失败UECC时,将该存储区域标记为B。当T(1)态的存储区域再次发生数据读取错误且纠错失败UECC时,采用第三码率对存储区域进行重新编码,若存储区域恢复数据读取功能,则将该存储区域标记为T(2),以此类推。当存储区域的码率小于或等于预设阈值,或者存储区域的码率迭代次数大于或等于迭代阈值,将该存储区域标记为B。
综上所述,本申请实施例提供的存储区域的编码方法,在存储区域发生数据读取错误且纠错失败UECC后,可以更改存储区域的编码方式,采用更低的码率对存储区域中的业务数据重新进行编码,以使存储区域的纠错能力提升,从而使得存储区域的数据读取错误被纠正。如此,本申请实施例提供的存储区域的纠错方法,将原本不能再进行利用的数据读取错误且纠错失败的存储区域,通过降低该存储区域的码率恢复该存储区域的一部分存储功能,使得存储区域可以重新存储一部分业务数据,从而使得存储器损失的存储空间减少。
根据上述实施例提供的存储区域的编码方法,本申请实施例还提供了一种存储区域的编码装置。
参见图7,该图为本申请实施例提供的一种存储区域的编码装置示意图。该编码装置应用于存储器中的控制器,控制器中还包括存储介质。
如图7所示,本申请实施例提供的编码装置包括:
确定模块701,用于确定存储介质中发生数据读取错误且纠错失败UECC的存储区域,存储区域用于存储业务数据以及业务数据对应的纠错码,存储区域发生数据读取错误时存储区域的码率为第一码率,存储区域的码率为业务数据占用的码长和存储区域的总码长的比值,存储区域的总码长为业务数据占用的码长与纠错码占用的码长之和;
第一写入模块702,用于基于第二码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,第二码率小于第一码率。
作为一种可能的实施方式,本申请实施例听的编码装置还可以包括:第二写入模块,用于基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码,第三码率小于第二码率。在本申请实施例中,第二写入模块具体用于:当第三码率大于预设阈值时,基于第三码率向存储区域中写入目标业务数据以及目标业务数据对应的纠错码。在本申请实施例中,第二写入模块还用于:当第三码率小于或等于预设阈值时,停用存储区域。
由此可知,本申请实施例提供的存储区域的编码装置,在存储区域发生数据读取错误且纠错失败UECC后,可以更改存储区域的编码方式,采用更低的码率对存储区域中的业务数据重新进行编码,以使存储区域的纠错能力提升,从而使得存储区域的数据读取错误被纠正,进而使得存储器损失的存储空间减少。
根据上述实施例提供的存储区域的编码方法和存储区域的编码装置,本申请实施例还提供了一种电子设备,该设备包括处理器以及存储器。其中,存储器用于存储计算机程序;处理器用于根据计算机程序执行上述的存储区域的编码方法。
根据上述实施例提供的存储区域的编码方法和存储区域的编码装置,本申请实施例还一种计算机可读存储介质。其中,计算机可读存储介质用于存储计算机程序,计算机程序用于执行上述的存储区域的编码方法。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种存储区域的编码方法,其特征在于,所述方法应用于存储器,所述存储器包括控制器和存储介质,所述方法包括:
所述控制器确定所述存储介质中发生数据读取错误且纠错失败UECC的存储区域,所述存储区域用于存储业务数据以及所述业务数据对应的纠错码,所述存储区域发生所述数据读取错误时所述存储区域的码率为第一码率,所述存储区域的码率为所述业务数据占用的码长和所述存储区域的总码长的比值,所述存储区域的总码长为所述业务数据占用的码长与所述纠错码占用的码长之和;
所述控制器基于第二码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码,所述第二码率小于所述第一码率。
2.根据权利要求1所述的方法,其特征在于,在所述控制器基于所述第二码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码后,且所述控制器确定所述存储区域发生数据读取错误且纠错失败时,所述方法还包括:
所述控制器基于第三码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码,所述第三码率小于所述第二码率。
3.根据权利要求2所述的方法,其特征在于,所述控制器基于所述第三码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码,所述方法包括:
当所述第三码率大于预设阈值时,所述控制器基于所述第三码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码。
4.根据权利要求3所述的方法,其特征在于,还包括:
当所述第三码率小于或等于预设阈值时,所述控制器停用所述存储区域。
5.根据权利要求1所述的方法,其特征在于,所述存储介质还包括预留存储区域,所述目标业务数据为所述业务数据中的部分数据;
所述存储区域的数据读取错误被纠正后,所述方法还包括:
所述控制器将所述业务数据中的另一部分数据以及所述另一部分数据对应的纠错码写入所述预留存储区域。
6.根据权利要求5所述的方法,其特征在于,所述预留存储区域存储多个存储区域各自在发生数据读取错误且纠错失败时所存储的业务数据中的部分数据,以及各个存储区域中的部分数据对应的纠错码。
7.根据权利要求1所述的方法,其特征在于,所述控制器基于第二码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码,所述方法包括:
所述控制器基于第二码率对应的校验矩阵向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码。
8.根据权利要求7所述的方法,其特征在于,所述校验矩阵为n*(k-s*m)的矩阵,其中,s为所述存储区域码率迭代的次数,m为校验矩阵每次迭代损失的长度,n为校验矩阵的宽度,k为初始校验矩阵的长度。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述存储区域包括存储块。
10.一种存储区域的编码装置,其特征在于,所述装置应用于存储器的控制器,所述存储器还包括存储介质,所述装置包括:
确定模块,用于确定所述存储介质中发生数据读取错误且纠错失败UECC的存储区域,所述存储区域用于存储业务数据以及所述业务数据对应的纠错码,所述存储区域发生所述数据读取错误时所述存储区域的码率为第一码率,所述存储区域的码率为所述业务数据占用的码长和所述存储区域的总码长的比值,所述存储区域的总码长为所述业务数据占用的码长与所述纠错码占用的码长之和;
第一写入模块,用于基于第二码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码,所述第二码率小于所述第一码率。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二写入模块,用于基于第三码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码,所述第三码率小于所述第二码率。
12.根据权利要求11所述的装置,其特征在于,所述第二写入模块具体用于:
当所述第三码率大于预设阈值时,基于所述第三码率向所述存储区域中写入目标业务数据以及所述目标业务数据对应的纠错码。
13.根据权利要求12所述的装置,其特征在于,所述第二写入模块还用于:
当所述第三码率小于或等于预设阈值时,停用所述存储区域。
14.一种电子设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1-9中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210026668.8A CN115562902A (zh) | 2022-01-11 | 2022-01-11 | 一种存储区域的编码方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210026668.8A CN115562902A (zh) | 2022-01-11 | 2022-01-11 | 一种存储区域的编码方法、装置及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115562902A true CN115562902A (zh) | 2023-01-03 |
Family
ID=84736546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210026668.8A Pending CN115562902A (zh) | 2022-01-11 | 2022-01-11 | 一种存储区域的编码方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115562902A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320915A1 (en) * | 2010-06-29 | 2011-12-29 | Khan Jawad B | Method and system to improve the performance and/or reliability of a solid-state drive |
CN105280239A (zh) * | 2015-10-22 | 2016-01-27 | 湖南国科微电子股份有限公司 | 一种动态实现固态硬盘ecc校验码的方法和装置 |
CN108183729A (zh) * | 2018-03-19 | 2018-06-19 | 西安电子科技大学 | 基于fpga的电力线载波通信的信道交织方法及系统 |
CN111813591A (zh) * | 2020-07-03 | 2020-10-23 | 深圳市国微电子有限公司 | Nand Flash的数据纠错方法、装置、电子设备及存储介质 |
-
2022
- 2022-01-11 CN CN202210026668.8A patent/CN115562902A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320915A1 (en) * | 2010-06-29 | 2011-12-29 | Khan Jawad B | Method and system to improve the performance and/or reliability of a solid-state drive |
CN105280239A (zh) * | 2015-10-22 | 2016-01-27 | 湖南国科微电子股份有限公司 | 一种动态实现固态硬盘ecc校验码的方法和装置 |
CN108183729A (zh) * | 2018-03-19 | 2018-06-19 | 西安电子科技大学 | 基于fpga的电力线载波通信的信道交织方法及系统 |
CN111813591A (zh) * | 2020-07-03 | 2020-10-23 | 深圳市国微电子有限公司 | Nand Flash的数据纠错方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8321757B2 (en) | Method and apparatus for error correction | |
US8234544B2 (en) | Data access apparatus and data access method | |
US20100217919A1 (en) | Memory controller, semiconductor memory device and control method thereof | |
US20130346829A1 (en) | Flash memory device and storage control method | |
US8386868B2 (en) | Using programming-time information to support error correction | |
KR20090015927A (ko) | 멀티플 에러 보정 방식에 의한 손상 방지 데이터 포팅 | |
WO2013112580A1 (en) | Generating soft read values using multiple reads and/or bins | |
US11886705B2 (en) | System and method for using free space to improve erasure code locality | |
US20120124442A1 (en) | Storage device failure management | |
US11301326B2 (en) | Method and apparatus for performing dynamic recovery management regarding redundant array of independent disks | |
KR20180086816A (ko) | 사전-검사된 에러율에 따른 적응형 에러정정을 수행하는 메모리장치 및 전자장치와, 메모리장치의 동작방법 | |
CN114816837B (zh) | 一种纠删码融合方法、系统、电子设备及存储介质 | |
US10514980B2 (en) | Encoding method and memory storage apparatus using the same | |
US11314594B2 (en) | Method, device and computer program product for recovering data | |
KR20190038964A (ko) | 에러 정정 코드 유닛, 그것의 인코딩 및 디코딩 방법 | |
CN115729746A (zh) | 一种基于crc和ecc存储数据保护方法 | |
CN110535476B (zh) | Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质 | |
US10735030B2 (en) | Re-encoding data associated with failed memory devices | |
US9959166B2 (en) | Error correction for non-volatile memory | |
CN111506450B (zh) | 用于数据处理的方法、设备和计算机程序产品 | |
CN110716824B (zh) | 编码方法及使用所述编码方法的存储器存储装置 | |
CN115562902A (zh) | 一种存储区域的编码方法、装置及相关设备 | |
CN116521433A (zh) | 一种数据保护方法、系统、设备和存储介质 | |
US9954556B2 (en) | Scheme to avoid miscorrection for turbo product codes | |
CN115269258A (zh) | 一种数据恢复的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |