CN114337685B - Raid的迭代纠错方法、装置、存储介质及ssd设备 - Google Patents
Raid的迭代纠错方法、装置、存储介质及ssd设备 Download PDFInfo
- Publication number
- CN114337685B CN114337685B CN202210229255.XA CN202210229255A CN114337685B CN 114337685 B CN114337685 B CN 114337685B CN 202210229255 A CN202210229255 A CN 202210229255A CN 114337685 B CN114337685 B CN 114337685B
- Authority
- CN
- China
- Prior art keywords
- error
- error frame
- information
- frame set
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000007787 solid Substances 0.000 title abstract description 4
- 239000000872 buffer Substances 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000012163 sequencing technique Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000013500 data storage Methods 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及数据存储技术领域,提供一种RAID的迭代纠错方法、装置、存储介质及SSD设备,该方法包括:根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息,根据外信息对输入缓存中所述目标错帧的输入信息进行更新,输入缓存用于缓存各个LDPC帧的解码输入信息;对输入缓存中更新后的输入信息进行LDPC解码,根据本次迭代纠错的解码结果更新错帧集合,若更新后的错帧集合中错帧数非1,则从更新后的错帧集合中选取下一目标错帧,重复上述纠错步骤,直到错帧集合中错帧数为1,若更新后的错帧集合中错帧数为1,则采用常规RAID纠错方式对唯一的错帧纠错。本发明能够大大提高存储系统纠错能力。
Description
技术领域
本发明涉及编解码技术领域,尤其涉及一种RAID的迭代纠错方法、装置、存储介质及SSD设备。
背景技术
RAID(Redundant Arrays of Independent Disks,磁盘阵列)技术是存储系统中常用的一种纠错技术(例如,RAID5)。若SSD(Solid State Drive,固态硬盘)的主控芯片中采取了RAID架构,则进行编码时,通常从N(N≥1)个颗粒Die上各取一个经过信道编码的数据帧,例如LDPC(Low Density Parity Check Code,低密度奇偶校验码)编码,然后将这些编码帧进行XOR(异或)运算得到校验帧,这种编码方式称为单比特奇偶校验码。当RAID阵列中只有1帧数据译码失败时,其可以通过将其余正确帧的译码结果进行简单的XOR运算来恢复。但是,当RAID阵列内超过1帧译码失败,以上算法就无法恢复数据。
如何提供一种改进的技术来解决现有技术中所存在的这一问题,以提高存储系统整体纠错能力具有重要意义。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的RAID的迭代纠错方法、装置、存储介质及SSD设备。
本发明的一个方面,提供了一种RAID的迭代纠错方法,所述方法包括:
步骤S11、根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息,所述外信息用于对所述目标错帧的输入信息进行纠错;
步骤S12、根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新,所述输入缓存用于缓存各个LDPC帧的解码输入信息;
步骤S13、对输入缓存中更新后的输入信息进行LDPC解码,完成一次迭代纠错。
进一步地,在步骤S13之后,所述方法包括:
步骤S14、根据本次迭代纠错的解码结果更新错帧集合;
步骤S15、判断更新后的错帧集合中错帧数是否为1;
若更新后的错帧集合中错帧数不为1,则重复执行步骤S11~S13,对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1,否则采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
进一步地,在步骤S11之前,所述方法还包括:
步骤S10、判断错帧集合中错帧数是否大于1;
若当前错帧集合中错帧数大于1,则执行步骤S11,否则,判断错帧集合中错帧数是否等于1;
若当前错帧集合中错帧数为1,则采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
进一步地,在步骤S15之后,所述方法还包括:
若更新后的错帧集合中错帧数不为1,判断错帧集合中的错帧是否均完成一次迭代纠错;
若是,则返回步骤S10,进入下一迭代纠错,直到达到预设的迭代次数阈值或所有错帧都被恢复;
否则,重复执行步骤S11~S13,对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1。
进一步地,所述步骤S11中的根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息,包括:
计算除了目标错帧n以外的其他各LDPC帧的第j个比特位的解码输出信息的符号位的乘积,得到目标错帧n的外信息符号位;
对除了目标错帧n以外的各个错帧的第j个比特位的解码输出信息或解码输入信息的模值进行排序,获取排序结果中的最小值,得到目标错帧n的外信息模值;
根据目标错帧n的外信息符号位和外信息模值确定目标错帧n的第j个比特位的外信息。
进一步地,所述步骤S12中的根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新,包括:
将输入缓存中所述目标错帧的输入信息与按照预设的外信息的权重参数加权后的外信息相加得到目标错帧的更新后的输入信息;
将所述目标错帧的更新后的输入信息写入输入缓存。
本发明的第二方面,提供了一种RAID的迭代纠错装置,所述装置包括:
计算模块,用于根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息,所述外信息用于对所述目标错帧的输入信息进行纠错;
控制模块,用于根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新,所述输入缓存用于缓存各个LDPC帧的解码输入信息;
LDPC解码模块,用于对输入缓存中更新后的输入信息进行LDPC解码,完成一次迭代纠错。
进一步地,所述控制模块,还用于在对输入缓存中更新后的输入信息进行LDPC解码之后,根据本次迭代纠错的解码结果更新错帧集合;判断更新后的错帧集合中错帧数是否为1;若更新后的错帧集合中错帧数不为1,则对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1;
所述装置还包括:RAID解码模块,用于当更新后的错帧集合中错帧数为1时,采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
进一步地,所述控制模块,还用于在计算模块根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息之前,判断错帧集合中错帧数是否大于1;若当前错帧集合中错帧数大于1,则计算模块执行根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息的操作,否则,判断错帧集合中错帧数是否等于1;
所述RAID解码模块,还用于当当前错帧集合中错帧数为1时,采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
进一步地,所述控制模块,还用于若更新后的错帧集合中错帧数不为1,判断错帧集合中的错帧是否均完成一次迭代纠错;若是,则判断错帧集合中错帧数是否为1,进入下一迭代纠错,直到达到预设的迭代次数阈值或所有错帧都被恢复;否则,对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1。
本发明的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上RAID的迭代纠错方法的步骤。
本发明的又一个方面,还提供了一种SSD设备,该SSD设备包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上RAID的迭代纠错方法的步骤。
本发明实施例提供的RAID的迭代纠错方法、装置、存储介质及SSD设备,当RAID阵列中LDPC译码失败的帧数量较多时,通过利用那些通过译码的帧的编码输出结果,计算本次LDPC解码对应的错帧集合中目标错帧的外信息,基于外信息对所述目标错帧的输入信息进行纠错,以纠错后的各个错帧的输入信息作为LDPC解码器输入并重新译码,进而大大提高存储系统整体纠错能力。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的RAID的迭代纠错方法的流程图;
图2为本发明实施例二提供的RAID的迭代纠错方法的流程图;
图3为本发明实施例三提供的RAID的迭代纠错方法的流程图
图4为本发明实施例提供的RAID的迭代纠错装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
当RAID阵列中LDPC译码失败的帧数量较多时,仅仅通过对逐个重新计算各个错帧的LDPC解码器输入并重新译码,并不能保证所有错帧都能被正确译码。为此,本发明提供了一种RAID的迭代纠错方法,通过能利用那些通过译码的帧的编码输出结果对本次LDPC解码对应的错帧集合错帧输入信息进行纠错,然后重新开始一轮上述操作,则该轮译码中通常又会恢复一些错帧,如此迭代下去,直至译码成功或者达到最大迭代次数位为止,以大大提高存储系统纠错能力。
图1示意性示出了本发明一个实施例的RAID的迭代纠错方法的流程图。参照图1,本发明实施例的RAID的迭代纠错方法具体包括以下步骤:
步骤S11、根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息。其中,外信息用于对所述目标错帧的解码输入信息进行纠错。
步骤S12、根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新。其中,输入缓存用于缓存各个LDPC帧的解码输入信息。
本发明实施例中,设有输入缓存和输出缓存。其中,输入缓存最初用于缓存各个LDPC帧读取自存储器的输入信息,随着迭代的进行,其信息被替换为根据外信息更新后的输入信息,这对下一次迭代的纠错能力至关重要,能有效提升整体纠错能力。在现有技术中,一般并不会对输入缓存进行刷新;输出缓存则缓存LDPC解码器输出的各个LDPC帧的解码输出信息。
步骤S13、对输入缓存中更新后的输入信息进行LDPC解码,完成一次迭代纠错。
由于LDPC解码器可以输出LDPC帧的每个比特的软信息,因此当RAID阵列内超过1帧译码失败时,可以根据正确帧解码输出信息的比特序列和这些错帧的软信息计算各个错帧的外信息,然后将这些外信息与原编码输入信息结合后再次送给解码器重新译码。
本发明实施例提供的RAID的迭代纠错方法,当RAID阵列中LDPC译码失败的帧数量较多时,通过利用那些通过译码的帧的编码输出结果,计算本次LDPC解码对应的错帧集合中目标错帧的外信息,基于外信息对所述目标错帧的输入信息进行纠错,以纠错后的各个错帧的解码输入信息作为LDPC解码器输入并重新译码,进而大大提高存储系统整体纠错能力。
本发明实施例中,根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息的实现方式包括两种。
下面分别给出两种不同的外信息计算方法:
第一种计算目标错帧的外信息的方式侧重纠错能力的提升, 方法如下:计算除了目标错帧n以外的其他各LDPC帧的第j个比特位的解码输出信息的符号位的乘积,得到目标错帧n的外信息符号位;对除了目标错帧n以外的各个错帧的第j个比特位的解码输出信息的模值进行排序,获取排序结果中的最小值,得到目标错帧n的外信息模值;根据目标错帧n的外信息符号位和外信息模值确定目标错帧n的第j个比特位的外信息。
具体的,该实现方式中目标错帧n的每个比特j的外信息表示为:
公式(1)由两部分组成,其中表示解码器输出的第i帧第j个比特的信息,表示除了目标错帧n以外的其他各帧的第j个比特位的输出信息的符号位
(取值为±1)乘积。该乘积的物理意义是,为了使得奇偶校验通过,在给定其余各个比特符
号位的情况下,第n帧第j个比特的外信息符号位。在实际系统中,符号位通常以二进制形式
表达,因此该乘积运算也可以通过异或操作实现。
本发明通过在上述最小值排序的过程中排除当前的错帧,有效提高存储系统纠错能。
第二种实现目标错帧的外信息的方式侧重减少输出缓存的位宽, 方法如下:计算除了目标错帧n以外的其他各LDPC帧的第j个比特位的解码输出信息的符号位的乘积,得到目标错帧n的外信息符号位;对除了目标错帧n以外的各个错帧的第j个比特位的解码输入信息的模值进行排序,获取排序结果中的最小值,得到目标错帧n的外信息模值;根据目标错帧n的外信息符号位和外信息模值确定目标错帧n的第j个比特位的外信息。
具体的,该实现方式中目标错帧n的每个比特j的外信息表示为:
其中是第i帧第j个比特输入解码器的信息。表示除了目标错帧n以外的其他各帧的第j个比特位的输出信息的符号位(取值为±1)乘积,表示对除了目标错帧n以外的各个错帧的第j个比特位的解码输入信息的模值进行排序,找出最小值。根据公式(2),计算外信息只需要缓存解码器输出信息的符号位(仅占一个bit位宽),这样做可以显著减少输出缓存的硬件消耗,并对纠错能力的影响较小。
本发明实施例中,根据外信息对输入缓存中所述目标错帧的输入信息进行更新的实现方式为:将输入缓存中所述目标错帧的输入信息与按照预设的外信息的权重参数加权后的外信息相加得到目标错帧的更新后的输入信息;将所述目标错帧的更新后的输入信息写入输入缓存。
具体的,采用如下公式计算目标错帧的纠错后的输入信息:
其中,表示目标错帧n的第j个比特位的纠错后的输入信息,表示目标错帧n的第j个比特位的输入信息,表示目标错帧n的第j个比特位的外信息,β是一个小于1的正数,表示预设的外信息的权重参数,合并后的LLR还要进行限幅以适应解码器的输入位宽。
图2示意性示出了本发明另一个实施例的RAID的迭代纠错方法的流程图。参照图2,本发明实施例的RAID的迭代纠错方法具体包括以下步骤:
步骤S10、判断错帧集合中错帧数是否大于1。
若当前错帧集合中错帧数大于1,则执行步骤S11,否则执行步骤S00;
步骤S00、判断错帧集合中错帧数是否等于1。
若当前错帧集合中错帧数为1,则执行步骤S16,否则结束迭代纠错。
步骤S11、根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息。其中,外信息用于对所述目标错帧的解码输入信息进行纠错。
步骤S12、根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新。其中,输入缓存用于缓存各个LDPC帧的解码输入信息。
步骤S13、对输入缓存中更新后的输入信息进行LDPC解码,完成一次迭代纠错。
步骤S14、根据本次迭代纠错的解码结果更新错帧集合;
步骤S15、判断更新后的错帧集合中错帧数是否为1;
若更新后的错帧集合中错帧数不为1,则重复执行步骤S11~S13,对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1,若更新后的错帧集合中错帧数为1,则执行步骤S16;
步骤S16、采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
本发明实施例中,根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息的实现方式与如图1所示实施例相同,相关之处参见如图1所示实施例的部分说明即可。
本发明实施例中,根据外信息对输入缓存中所述目标错帧的输入信息进行更新的实现方式与如图1所示实施例相同,相关之处参见如图1所示实施例的部分说明即可。
图3示意性示出了本发明另一个实施例的RAID的迭代纠错方法的流程图。参照图3,本发明实施例的RAID的迭代纠错方法具体包括以下步骤:
步骤S10、判断错帧集合中错帧数是否大于1。
若当前错帧集合中错帧数大于1,则执行步骤S11,否则执行步骤S00;
步骤S00、判断错帧集合中错帧数是否等于1。
若当前错帧集合中错帧数为1,则执行步骤S17,否则结束迭代纠错。
步骤S11、根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息。其中,外信息用于对所述目标错帧的解码输入信息进行纠错。
步骤S12、根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新。其中,输入缓存用于缓存各个LDPC帧的解码输入信息。
步骤S13、对输入缓存中更新后的输入信息进行LDPC解码,完成一次迭代纠错。
步骤S14、根据本次迭代纠错的解码结果更新错帧集合;
步骤S15、判断更新后的错帧集合中错帧数是否为1;
若更新后的错帧集合中错帧数不为1,则执行步骤S17,若更新后的错帧集合中错帧数为1,则执行步骤S16;
步骤S16、采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。错帧集合中每个错帧在一次迭代中只能被选一次。
步骤S17、判断错帧集合中的错帧是否均完成一次迭代纠错;
若是,则执行步骤S18,否则重复执行步骤S11~S13,对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1;
步骤S18、判断是否达到预设的迭代次数阈值;
若未达到预设的迭代次数阈值,返回步骤S10,进入下一迭代纠错,直到达到预设的迭代次数阈值或所有错帧都被恢复;
否则,执行所述从更新后的错帧集合中选取下一目标错帧的操作。
本发明实施例提供的RAID的迭代纠错方法,在迭代开始前,以及每次LDPC解码以后,都会判断错帧集合中当前剩余的错帧是否只有1个,如果是则可执行传统的RAID5纠错方式,对错帧集合中唯一的错帧纠错,这样可以避免调用LDPC解码器,从而降低系统功耗和延时。
下面以一个具体示例来说明本发明实施例提供的RAID的迭代纠错方法的执行过程。
在该具体示例中,假设第 2、N和N+1个LDPC数据帧译码失败,首先利用第2帧输入\输出缓存的信息计算出第2个错帧的更新后的输入信息,并将新的输入信息写入输入缓存中。
对对输入缓存中更新后的第2帧的输入信息进行LDPC解码,译码完成后更新其对应的输出缓存,再对第N帧和第N+1帧分别进行上述操作。
以上全部操作称为一次迭代译码。如果一次迭代完成以后:
a) 只有一个译码失败的帧,则通过传统的XOR运算(即标准的RAID5纠错)对该帧进行纠错,以充分利用了传统的RAID5纠错,减少了LDPC解码器的调用。
b) 如果错帧数大于1,则进入新的一轮迭代,直至所有错帧都被恢复或者达到最大的迭代次数为止;
c) 如果没有错帧,则终止迭代。
本发明实施例中,根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息的实现方式与如图1所示实施例相同,相关之处参见如图1所示实施例的部分说明即可。
本发明实施例中,根据外信息对输入缓存中所述目标错帧的输入信息进行更新的实现方式与如图1所示实施例相同,相关之处参见如图1所示实施例的部分说明即可。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图4示意性示出了本发明一个实施例的RAID的迭代纠错装置的结构示意图。参照图4,本发明实施例的RAID的迭代纠错装置具体包括计算模块201、控制模块202以及LDPC解码模块203,其中:
计算模块201,用于根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息,所述外信息用于对所述目标错帧的输入信息进行纠错;
控制模块202,用于根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新,所述输入缓存用于缓存各个LDPC帧的解码输入信息;
LDPC解码模块203,用于对输入缓存中更新后的输入信息进行LDPC解码,完成一次迭代纠错。
在本发明的一个实施例中,控制模块202,还用于在对输入缓存中更新后的输入信息进行LDPC解码之后,根据本次迭代纠错的解码结果更新错帧集合;判断更新后的错帧集合中错帧数是否为1;若更新后的错帧集合中错帧数不为1,则对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1;
所述装置还包括附图中未示出的:RAID解码模块,用于当更新后的错帧集合中错帧数为1时,采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
本实施例中,所述控制模块202,还用于在计算模块201根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息之前,判断错帧集合中错帧数是否大于1;若当前错帧集合中错帧数大于1,则计算模块执行根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息的操作,否则,判断错帧集合中错帧数是否等于1;
所述RAID解码模块,还用于当当前错帧集合中错帧数为1时,采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
本实施例中,控制模块202,还用于若更新后的错帧集合中错帧数不为1,判断错帧集合中的错帧是否均完成一次迭代纠错;若是,则判断错帧集合中错帧数是否为1,进入下一迭代纠错,直到达到预设的迭代次数阈值或所有错帧都被恢复;否则,对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1。
进一步地,本实施例中的计算模块201,可通过两种方式实现外信息计算。
在一个实施例中,计算模块201,用于计算除了目标错帧n以外的其他各LDPC帧的第j个比特位的解码输出信息的符号位的乘积,得到目标错帧n的外信息符号位;对除了目标错帧n以外的各个错帧的第j个比特位的解码输出信息的模值进行排序,获取排序结果中的最小值,得到目标错帧n的外信息模值;根据目标错帧n的外信息符号位和外信息模值确定目标错帧n的第j个比特位的外信息。
在另一个实施例中,计算模块201,用于计算除了目标错帧n以外的其他各LDPC帧的第j个比特位的解码输出信息的符号位的乘积,得到目标错帧n的外信息符号位;对除了目标错帧n以外的各个错帧的第j个比特位的解码输入信息的模值进行排序,获取排序结果中的最小值,得到目标错帧n的外信息模值;根据目标错帧n的外信息符号位和外信息模值确定目标错帧n的第j个比特位的外信息。
进一步地,控制模块202,用于通过以下方式实现根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新,具体包括:将输入缓存中所述目标错帧的输入信息与按照预设的外信息的权重参数加权后的外信息相加得到目标错帧的更新后的输入信息;将目标错帧的更新后的输入信息写入输入缓存。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法的步骤。
本实施例中,所述RAID的迭代纠错装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
此外,本发明实施例还提供了一种SSD设备,该SSD设备包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法的步骤。例如图1所示的步骤S11~S13。或者,所述处理器执行所述计算机程序时实现上述RAID的迭代纠错装置实施例中各模块/单元的功能,例如图4所示的计算模块201、控制模块202以及LDPC解码模块203。
本发明实施例提供的RAID的迭代纠错方法、装置、存储介质及SSD设备,当RAID阵列中LDPC译码失败的帧数量较多时,通过利用那些通过译码的帧的编码输出结果,计算本次LDPC解码对应的错帧集合中目标错帧的外信息,基于外信息对所述目标错帧的输入信息进行纠错,以纠错后的各个错帧的输入信息作为LDPC解码器输入并重新译码,进而大大提高存储系统整体纠错能力。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种RAID的迭代纠错方法,其特征在于,所述方法包括:
步骤S11、根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息,所述外信息用于对所述目标错帧的输入信息进行纠错;
步骤S12、根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新,所述输入缓存用于缓存各个LDPC帧的解码输入信息;
步骤S13、对输入缓存中更新后的输入信息进行LDPC解码,完成一次迭代纠错;
其中,步骤S11中的根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息,包括:
计算除了目标错帧n以外的其他各LDPC帧的第j个比特位的解码输出信息的符号位的乘积,得到目标错帧n的外信息符号位;
对除了目标错帧n以外的各个错帧的第j个比特位的解码输出信息或解码输入信息的模值进行排序,获取排序结果中的最小值,得到目标错帧n的外信息模值;
根据目标错帧n的外信息符号位和外信息模值确定目标错帧n的第j个比特位的外信息。
2.根据权利要求1所述的方法,其特征在于,在步骤S13之后,所述方法包括:
步骤S14、根据本次迭代纠错的解码结果更新错帧集合;
步骤S15、判断更新后的错帧集合中错帧数是否为1;
若更新后的错帧集合中错帧数不为1,则重复执行步骤S11~S13,对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1,否则,采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
3.根据权利要求2所述的方法,其特征在于,在步骤S11之前,所述方法还包括:
步骤S10、判断错帧集合中错帧数是否大于1;
若当前错帧集合中错帧数大于1,则执行步骤S11,否则,判断错帧集合中错帧数是否等于1;
若当前错帧集合中错帧数为1,则采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
4.根据权利要求2所述的方法,其特征在于,在步骤S15之后,所述方法还包括:
若更新后的错帧集合中错帧数不为1,判断错帧集合中的错帧是否均完成一次迭代纠错;
若是,则返回步骤S10,进入下一迭代纠错,直到达到预设的迭代次数阈值或所有错帧都被恢复;
否则,重复执行步骤S11~S13,对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1。
5.根据权利要求1所述的方法,其特征在于,所述步骤S12中的根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新,包括:
将输入缓存中所述目标错帧的输入信息与按照预设的外信息的权重参数加权后的外信息相加得到目标错帧的更新后的输入信息;
将所述目标错帧的更新后的输入信息写入输入缓存。
6.一种RAID的迭代纠错装置,其特征在于,所述装置包括:
计算模块,用于根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息,所述外信息用于对所述目标错帧的输入信息进行纠错;所述根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息,具体包括:计算除了目标错帧n以外的其他各LDPC帧的第j个比特位的解码输出信息的符号位的乘积,得到目标错帧n的外信息符号位;对除了目标错帧n以外的各个错帧的第j个比特位的解码输出信息或解码输入信息的模值进行排序,获取排序结果中的最小值,得到目标错帧n的外信息模值;根据目标错帧n的外信息符号位和外信息模值确定目标错帧n的第j个比特位的外信息;
控制模块,用于根据所述外信息对输入缓存中所述目标错帧的输入信息进行更新,所述输入缓存用于缓存各个LDPC帧的解码输入信息;
LDPC解码模块,用于对输入缓存中更新后的输入信息进行LDPC解码,完成一次迭代纠错。
7.根据权利要求6所述的装置,其特征在于,所述控制模块,还用于在对输入缓存中更新后的输入信息进行LDPC解码之后,根据本次迭代纠错的解码结果更新错帧集合;判断更新后的错帧集合中错帧数是否为1;若更新后的错帧集合中错帧数不为1,则对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1;
所述装置还包括:RAID解码模块,用于当更新后的错帧集合中错帧数为1时,采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
8.根据权利要求7所述的装置,其特征在于,所述控制模块,还用于在计算模块根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息之前,判断错帧集合中错帧数是否大于1;若当前错帧集合中错帧数大于1,则计算模块执行根据LDPC解码输出信息计算本次LDPC解码对应的错帧集合中目标错帧的外信息的操作,否则,判断错帧集合中错帧数是否等于1;
所述RAID解码模块,还用于当当前错帧集合中错帧数为1时,采用常规RAID纠错方式对错帧集合中唯一的错帧纠错。
9.根据权利要求7所述的装置,其特征在于,所述控制模块,还用于若更新后的错帧集合中错帧数不为1,判断错帧集合中的错帧是否均完成一次迭代纠错;若是,则判断错帧集合中错帧数是否为1,进入下一迭代纠错,直到达到预设的迭代次数阈值或所有错帧都被恢复;否则,对更新后的错帧集合中的下一目标错帧进行纠错,直到更新后的错帧集合中错帧数为1。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5任一项所述方法的步骤。
11.一种SSD设备,其特征在于,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210229255.XA CN114337685B (zh) | 2022-03-10 | 2022-03-10 | Raid的迭代纠错方法、装置、存储介质及ssd设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210229255.XA CN114337685B (zh) | 2022-03-10 | 2022-03-10 | Raid的迭代纠错方法、装置、存储介质及ssd设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114337685A CN114337685A (zh) | 2022-04-12 |
CN114337685B true CN114337685B (zh) | 2022-05-13 |
Family
ID=81033474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210229255.XA Active CN114337685B (zh) | 2022-03-10 | 2022-03-10 | Raid的迭代纠错方法、装置、存储介质及ssd设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114337685B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189603A (zh) * | 2018-07-20 | 2019-01-11 | 江苏华存电子科技有限公司 | 一种用于动态随机存取存储器使用raid做纠错校验的方法 |
CN112383314A (zh) * | 2021-01-12 | 2021-02-19 | 杭州阿姆科技有限公司 | 一种基于raid信息的ldpc纠错方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6789227B2 (en) * | 2001-07-05 | 2004-09-07 | International Business Machines Corporation | System and method for generating low density parity check codes using bit-filling |
-
2022
- 2022-03-10 CN CN202210229255.XA patent/CN114337685B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189603A (zh) * | 2018-07-20 | 2019-01-11 | 江苏华存电子科技有限公司 | 一种用于动态随机存取存储器使用raid做纠错校验的方法 |
CN112383314A (zh) * | 2021-01-12 | 2021-02-19 | 杭州阿姆科技有限公司 | 一种基于raid信息的ldpc纠错方法 |
Non-Patent Citations (1)
Title |
---|
"基于LDPC码的3D Flash差错控制技术研究";郏宏鑫;《中国优秀硕士学位论文全文数据库》;20210115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114337685A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200177208A1 (en) | Device, system and method of implementing product error correction codes for fast encoding and decoding | |
TWI411912B (zh) | 使用寫入驗證之代碼之錯誤底限減緩 | |
JP5039160B2 (ja) | 不揮発性半導体記憶システム | |
US20050262420A1 (en) | Apparatus and method for decoding low density parity check codes | |
TW201926911A (zh) | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 | |
CN110278002A (zh) | 基于比特翻转的极化码置信传播列表译码方法 | |
JP2004147318A (ja) | Ldpc復号化装置及びその方法 | |
US8913438B2 (en) | Adaptive architecture in a channel detector for NAND flash channels | |
JP2020510931A (ja) | 非2値コンテキスト・ミキシング方法、非2値コンテキスト・ミキシング圧縮器および圧縮解除器を備えるデータ・ストレージ・システム、ならびにコンピュータ・プログラム | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
KR102543059B1 (ko) | 저밀도 패리티 체크 코드의 디코딩 방법, 이를 수행하는 디코더 및 시스템 | |
CN112039531A (zh) | 杰林码纠错优化方法及装置 | |
KR20210123476A (ko) | 전자 장치 | |
CN114337685B (zh) | Raid的迭代纠错方法、装置、存储介质及ssd设备 | |
US9026881B2 (en) | Soft input, soft output mappers and demappers for block codes | |
CN111277355B (zh) | 一种tpc译码中纠死锁的方法及装置 | |
US11949429B2 (en) | Memory device, error correction device and error correction method thereof | |
US20170161141A1 (en) | Method and apparatus for correcting data in multiple ecc blocks of raid memory | |
JP2002305453A (ja) | mまたは2mビットデータ処理兼用リードソロモン復号器及びその復号方法 | |
JP2023040796A (ja) | メモリシステム | |
CN110289863B (zh) | 译码设备、方法及信号传输系统 | |
CN117176185B (zh) | 一种基于极化码的数据编解码方法、装置和存储介质 | |
CN113489995B (zh) | 用以解码接收信息的解码方法与相关解码装置 | |
CN114142870B (zh) | Ldpc码的译码方法、装置、存储介质及ssd设备 | |
CN112233720B (zh) | 低时延ldpc解码器的硬件实现方法、装置及解码器 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |