掌桥专利:专业的专利平台
掌桥专利
首页

一种LDPC解码方法及相关设备

文献发布时间:2023-06-19 16:09:34



技术领域

本申请涉及数据处理技术领域,尤其涉及一种LDPC解码方法及相关设备。

背景技术

LDPC(Low-Density Parity-Check Codes,低密度奇偶校验码)在纠错能力、译码吞吐率和算法复杂度等关键指标行具备良好的综合性能,被广泛应用于移动或固网标准中,同时也是当前固态存储控制器的主流纠错码。

目前大多数LDPC解码使用的是min-sum衍生出的算法,然而,现有的min-sum算法或者是衍生出的算法,纠错能力较差。

发明内容

本申请实施例提供一种LDPC解码方法及相关设备,能够提高固态硬盘控制器的LDPC解码的纠错能力。

本申请实施例的第一方面,提供一种LDPC解码方法,包括:

判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,其中,所述奇偶校验矩阵用于表征固态硬盘控制器的低密度奇偶校验码LDPC;

根据所述校验节点信息所属的所述数值空间范围,对所述校验节点信息进行压缩运算,得到压缩信息,其中,不同的所述数值空间范围对应不同的所述压缩运算;

将所述压缩信息发送至判决模块。

在一些实施方式中,所述根据所述校验节点信息所属的所述数值空间范围,对所述校验节点信息进行压缩运算,得到压缩信息,包括:

根据所述校验节点信息所属的所述数值空间范围,对所述校验节点信息的数值空间进行压缩运算,得到压缩信息。

在一些实施方式中,所述判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围之前,还包括:

确定数据压缩的目标位宽;

根据所述目标位宽,确定所述数值空间范围。

在一些实施方式中,所述根据所述校验节点信息所属的所述数值空间范围,对所述校验节点信息进行压缩运算,得到压缩信息,包括:

在所述校验节点信息属于第一数值范围的情况下,对所述校验节点信息进行取整数操作,以对所述校验节点信息进行压缩运算,得到所述压缩信息,其中,所述第一数值范围为大于或等于第一节点数值以及小于或等于第二节点数值,所述第一节点数值和所述第二节点数值均是根据所述目标位宽确定的;

在所述校验节点信息不属于所述第一数值范围的情况下,对所述校验节点信息进行非固定比例的压缩运算,得到所述压缩信息。

在一些实施方式中,所述第一节点数值为-kN+1,所述第二节点数值为kN-1,其中,N=2

在一些实施方式中,所述根据所述校验节点信息所属的所述数值空间范围,对所述校验节点信息进行压缩运算,得到压缩信息,包括:

根据所述校验节点信息所属的所述数值空间范围,按照下式对所述校验节点信息进行压缩运算,得到压缩信息:

其中,L为所述校验节点信息的数值,Q(L)为所述压缩信息对应的压缩数值空间范围,b为整数,-kN+1≤b≤kN-1,k为整数,2≤k≤dv-1,dv为所述校验节点信息对应的校验矩阵的平均列重,Δ为正整数,N=2

在一些实施方式中,所述判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围之前,还包括:

获取固态硬盘内存储数据的对数似然比;

将校验节点信息替换为所述对数似然比,得到替换校验节点信息;

计算所述奇偶校验矩阵中所有行的最小值,得到更新变量节点信息;

根据替换校验节点信息和所述更新后变量节点信息,计算所述判决值;

利用所述判决值更新所述校验节点信息,得到更新校验节点信息;

所述判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,包括:

判断所述奇偶校验矩阵中的每个所述更新校验节点信息所属的所述数值空间范围。

在一些实施方式中,所述将所述压缩信息发送至判决模块之后,包括:

对所述压缩信息进行解压处理,得到解压校验节点信息;

对所述解压校验节点信息进行判决。

本申请实施例的第二方面,提供一种LDPC解码装置,包括:

判断模块,用于判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,其中,所述奇偶校验矩阵用于表征固态硬盘控制器的低密度奇偶校验码LDPC;

压缩模块,用于根据所述校验节点信息所属的所述数值空间范围,对所述校验节点信息进行压缩运算,得到压缩信息不同的所述数值空间范围对应不同的所述压缩运算;

传输模块,用于将所述压缩信息发送至判决模块。

本申请实施例的第三方面,提供一种电子设备,包括:

存储器,所述存储器中存储有计算机程序;

处理器,所述处理器用于执行所述计算机程序时实现如第一方面所述的LDPC解码方法。

本申请实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的LDPC解码方法。

本申请实施例提供的LDPC解码方法及相关设备,通过判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,根据校验节点信息所属的数值空间范围,对校验节点信息进行压缩运算,得到压缩信息。不同的数值空间范围对应不同的压缩运算,压缩运算可以针对不同的数值空间范围进行压缩运算,这种根据不同的数值空间大小进行区别性的压缩,而非固定比例压缩,能够将较大数值空间的校验节点信息进行较大程度的压缩,将较小数值空间的校验节点信息进行较小程度的压缩,或者将部分较小数值空间的校验信息不进行压缩,能够保证较小数值空间的校验节点信息的数值空间或位宽不会过低,从而能够保证纠错性能,不会因为对所有校验节点信息进行固定比例压缩,造成纠错能力的下降。

附图说明

图1为本申请实施例提供的一种LDPC解码方法的示意性流程图;

图2为本申请实施例提供的一种LDPC解码装置的示意性框图;

图3为本申请实施例提供的一种电子设备的示意性框图;

图4为本申请实施例提供的一种计算机可读存储介质的示意性框图。

具体实施方式

为了更好的理解本说明书实施例提供的技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“两个以上”包括两个或大于两个的情况。

LDPC在纠错能力、译码吞吐率和算法复杂度等关键指标行具备良好的综合性能,被广泛应用于移动或固网标准中,同时也是当前固态存储控制器的主流纠错码。目前大多数LDPC译码器使用的是min-sum衍生出的算法,然而,现有的min-sum算法或者是衍生出的算法,纠错能力较差。

有鉴于此,本申请实施例提供一种LDPC解码方法及相关设备,能够提高固态硬盘主控制器芯片的LDPC解码的纠错能力。

本申请实施例的第一方面,提供一种LDPC解码方法,图1为本申请实施例提供的一种LDPC解码方法的示意性流程图。如图1所示,本申请实施例提供的LDPC解码方法,包括:

S100:判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,其中,奇偶校验矩阵用于表征固态硬盘控制器的低密度奇偶校验码LDPC。LDPC可以采用校验矩阵定义,每个奇偶检验矩阵存在一个对应的Tanner二分图,Tanner二分图包括变量节点和校验节点,每个变量节点可以代表奇偶校验矩阵中的一列,每个校验节点可以代表奇偶校验矩阵中的一行。

S200:根据校验节点信息所属的数值空间范围,对校验节点信息进行压缩运算,得到压缩信息,其中,不同的数值空间范围对应不同的压缩运算。可以针对不同的数值空间范围进行压缩运算,这种根据不同的数值空间大小进行区别性的压缩。非固定压缩比例的压缩,能够将较大数值空间的校验节点信息进行较大程度的压缩,将较小数值空间的校验节点信息进行较小程度的压缩,或者将部分较小数值空间的校验信息不进行压缩,能够保证较小数值空间的校验节点信息的精准度,则可以进一步保证纠错性能。不会因为对所有校验节点信息进行固定比例压缩,造成纠错能力的下降。

S300:将压缩信息发送至判决模块。将压缩后的压缩信息发送至判决模块进行判决,判决结果可以反映纠错结果。判决过程可以是将校验节点信息与存储信息进行比较,当比较出不同,可以视为发生错误,完后纠错过程。

需要说明的是,通常输入数据的位宽和内部运算的位宽与纠错能力是解码器需要重点考虑的两个二因素。若LDPC解码器内部位宽较大,会增加解码器所在芯片的面积和布线难度。当前一般方式是通过减小位宽,采用位宽压缩的方式,但是现有的min-sum算法或者是衍生出的算法是对输入数据进行相同比例的压缩,即均匀压缩,例如,所有数据进行相同倍数的压缩,不作区分。虽然位宽越小,解码器在复杂度、功率和吞吐率方面的性能有所提高,但是如此压缩会使得纠错能力下降,尤其当位宽减小到一定值后,纠错能力会出现剧烈的恶化。需要说明的是,数值空间可以得到位宽参数。

针对上述问题,本申请实施例提供的LDPC解码方法,通过判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,根据校验节点信息所属的数值空间范围,对校验节点信息进行压缩运算,得到压缩信息。不同的数值空间范围对应不同的压缩运算,压缩运算可以针对不同的数值空间范围进行压缩运算,这种根据不同的数值空间大小进行区别性的压缩,而非固定比例压缩,能够将较大数值空间的校验节点信息进行较大程度的压缩,将较小数值空间的校验节点信息进行较小程度的压缩,或者将部分较小数值空间的校验信息不进行压缩,能够保证较小数值空间的校验节点信息的数值空间或位宽不会过低,从而能够保证纠错性能,不会因为对所有校验节点信息进行固定比例压缩,造成纠错能力的下降。

在一些实施方式中,步骤S200,可以包括:

根据校验节点信息所属的数值空间范围,对校验节点信息的数值空间进行压缩运算,得到压缩信息。数值空间的压缩可以体现为位宽的压缩,数值空间可以反映位宽参数。需要理解的是,数值空间是校验节点信息取值的分布范围。在数据过于分散的情况下,压缩算法还可以是对数压缩算法,本申请实施例不作具体限定。

本申请实施例提供的LDPC解码方法,通过判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,根据校验节点信息所属的数值空间范围,对校验节点信息进行数值空间的压缩运算,得到压缩信息。可以实现位宽压缩,不同的数值空间范围对应不同的压缩运算,压缩运算可以针对不同的数值空间范围进行压缩运算,这种根据不同的数值空间大小进行区别性的压缩,而非固定比例压缩,能够将较大数值空间的校验节点信息进行较大程度的压缩,将较小数值空间的校验节点信息进行较小程度的压缩,或者将部分较小数值空间的校验信息不进行压缩,能够保证较小数值空间的校验节点信息的数值空间或位宽不会过低,从而能够保证纠错性能,不会因为对所有校验节点信息进行固定比例压缩,造成纠错能力的下降。

在一些实施方式中,步骤S100之前,还包括:

确定数据压缩的目标位宽。示例性的,目标位宽可以是4bit(比特)或5bit,本申请实施例不作具体限定。可以预先设定需要压缩到的位宽大小,作为目标位宽。

根据目标位宽,确定数值空间范围。目标位宽的大小可以影响数值空间范围的制定。

示例性的,步骤S200,可以包括:

在校验节点信息属于第一数值范围的情况下,对校验节点信息进行取整数运算,以对校验节点信息进行压缩运算,得到压缩信息,其中,第一数值范围为大于或等于第一节点数值以及小于或等于第二节点数值,第一节点数值和第二节点数值均是根据目标位宽确定的。示例性的,若校验节点信息通过二进制表示,则取整操作可以是将校验节点信息的最高位赋0值,实现取整运算,取整运算也是压缩的一种方式。

在校验节点信息不属于第一数值范围的情况下,对校验节点信息进行非固定比例的压缩运算,得到压缩信息。可以对二进制的校验节点信息的最高位赋1,

示例性的,第一节点数值为-kN+1,第二节点数值为kN-1,其中,N=2

在一些实施方式中,步骤S200,可以包括:

根据校验节点信息所属的数值空间范围,按照下式对校验节点信息进行压缩运算,得到压缩信息:

其中,L为校验节点信息的数值,Q(L)为压缩信息对应的压缩数值空间范围,b为整数,-kN+1≤b≤kN-1,k为整数,2≤k≤dv-1,dv为校验节点信息对应的校验矩阵的平均列重,Δ为正整数,N=2

示例性的,若目标位宽为4bit,Δ=1,则q=3,k=2,N=3,输出的Q(L)为{(0,0),(0,±1),(0,±2),(0,±3),(1,±1),(1,±2),(1,±3)},-5≤b≤5,r=1或r=2,对应的各个数值空间范围的节点的整数取值分别为0,±1,±2,±3,±kN,±k

示例性的,目标位宽为5bit,Δ=1,则q=4,k=2,N=7,压缩后的Q(L)为{(0,0),(0,±1),(0,±2), (0,±3),(0,±4),(0,±5),(0,±6),(0,±7),(1,±1),(1,±2),(1,±3),(1,±4),(1,±5),(1,±6),(1,±7) },对应的各个数值空间范围的节点的整数取值分别为0,±1,±2, ±3,±4,±5,±6,±7,±14,±28,±56,±112,±224,±448,±896,线性和非线性取值的区间都可以变大。

本申请实施例提供的LDPC解码方法,通过对解码器的中间运算结果进行非线性映射,可以将内部位宽减少到原先的50%左右,降低了芯片面积和功耗和布线难度。可以根据数据特点选择合适的压缩算法,在保证压缩效果,同时又能保持纠错能力。

在一些实施方式中,步骤S100之前,还包括:

获取固态硬盘内存储数据的对数似然比。对数似然比LLR信息可以用L_c

将校验节点信息替换为对数似然比,得到替换校验节点信息。将校验节点信息Lq

计算奇偶校验矩阵中所有行的最小值,得到更新变量节点信息。

示例性的,按照下式计算更新变量节点信息L_r

,式(1)

其中,L_r

根据替换校验节点信息和更新后变量节点信息,计算判决值。

示例性的,按照下式计算判决值:

其中,

利用判决值更新校验节点信息,得到更新校验节点信息。

按照下式计算更新校验节点信息:

步骤S100,可以包括:

判断奇偶校验矩阵中的每个更新校验节点信息所属的数值空间范围。即步骤S100中的校验节点信息为更新校验节点信息。

在一些实施方式中,步骤S300之后,可以包括:

对压缩信息进行解压处理,得到解压校验节点信息。

对解压校验节点信息进行判决。即可以将解压校验节点信息与固态硬盘中存储的数据进行比较,判断是否相同,若相同则未发生错误,若不同则发生错误,此处的相同和不同可以是完全相同,也可以是在误差范围内的相同,本申请实施例不作具体限定。则可以完成解码纠错的过程。解压错过程可以借助查表来完成,查找的表即为压缩过程的对照表。例如,压缩后的值在被取整运算的情况下,在解压缩的过程中可以通过查表来还原其对应的整数。

本申请实施例的第二方面,提供一种LDPC解码装置,图2为本申请实施例提供的一种LDPC解码装置的示意性框图。如图2所示,本申请实施例提供一种LDPC解码装置,包括:

判断模块400,用于判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,其中,所述奇偶校验矩阵用于表征固态硬盘控制器的低密度奇偶校验码LDPC;

压缩模块500,用于根据所述校验节点信息所属的数值空间范围,对所述校验节点信息进行压缩运算,得到压缩信息;

传输模块600,用于将所述压缩信息发送至判决模块。

本申请实施例提供的LDPC解码装置,通过判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,根据校验节点信息所属的数值空间范围,对校验节点信息进行压缩运算,得到压缩信息。不同的数值空间范围对应不同的压缩运算,压缩运算可以针对不同的数值空间范围进行压缩运算,这种根据不同的数值空间大小进行区别性的压缩,而非固定比例压缩,能够将较大数值空间的校验节点信息进行较大程度的压缩,将较小数值空间的校验节点信息进行较小程度的压缩,或者将部分较小数值空间的校验信息不进行压缩,能够保证较小数值空间的校验节点信息的数值空间或位宽不会过低,从而能够保证纠错性能,不会因为对所有校验节点信息进行固定比例压缩,造成纠错能力的下降。

本申请实施例的第三方面,提供一种电子设备,图3为本申请实施例提供的一种电子设备的示意性框图。如图3所示,电子设备包括:存储器700,存储器700中存储有计算机程序;处理器800,处理器800于执行计算机程序时实现如第一方面所述的LDPC解码方法。

LDPC解码方法,包括如下步骤:

判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,其中,奇偶校验矩阵用于表征固态硬盘控制器的低密度奇偶校验码LDPC。

根据校验节点信息所属的数值空间范围,对校验节点信息进行压缩运算,得到压缩信息,其中,不同的数值空间范围对应不同的压缩运算。

将压缩信息发送至判决模块。

本申请实施例的第四方面,提供一种计算机可读存储介质,图4为本申请实施例提供的一种计算机可读存储介质的示意性框图。如图4所示,所述计算机可读存储介质上存储有计算机程序900,计算机程序900被处理器执行时实现如第一方面所述的LDPC解码方法。

LDPC解码方法,包括如下步骤:

判断奇偶校验矩阵中的每个校验节点信息所属的数值空间范围,其中,奇偶校验矩阵用于表征固态硬盘控制器的低密度奇偶校验码LDPC。

根据校验节点信息所属的数值空间范围,对校验节点信息进行压缩运算,得到压缩信息,其中,不同的数值空间范围对应不同的压缩运算。

将压缩信息发送至判决模块。

需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可读程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,当计算机软件指令在处理设备上运行时,使得处理设备执行LDPC解码方法的流程。

计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。

显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

技术分类

06120114723100