LDPC译码器的译码方法、装置、介质及SSD设备与流程

文档序号:37932257发布日期:2024-05-11 00:11阅读:7来源:国知局
LDPC译码器的译码方法、装置、介质及SSD设备与流程

本发明涉及ldpc译码器,尤其涉及一种ldpc译码器的译码方法、装置、介质及ssd设备。


背景技术:

1、低密度奇偶校验码(ldpc)因在纠错能力、译码吞吐率和算法复杂度这几个关键指标上具备良好的综合性能,在2000年以后被广泛应用于通信系统,同时也是当前固态存储(ssd)控制器的主流纠错码。

2、ldpc译码器基于校验矩阵来进行译码。每一个奇偶校验矩阵h,存在一个对应的tanner二分图(bipartitle tanner graph)。tanner图中包含两种节点,分别是变量节点(variable node,简称vn)和校验节点(check node,简称cn)。如图1所示,每个vn代表h中的一列,每个cn则表示h的一行;当h中某行某列的元素为1时,tanner图中对应的vn和cn用一条线连接。

3、为了将最初由ldpc的发明者r.gallager提出的译码算法实用化,并尽可能地保持纠错能力,ldpc的译码算法的演变大致经历了从和积(sum product)算法,到对数域的belief propagation(简称log bp),再到最小和(min-sum)算法及其各种变形。在这个过程中,校验节点运算中复杂的乘法运算首先被简化为更为简单的对数和加法运算,使得ldpc在不损失纠错能力的同时,第一次具备了在芯片上实现的可能性;接着,对对数和加法运算被更为简单的最小、次小排序算法替代,虽然损失了少许纠错性能,但也使得算法对信道参数的估计不再敏感。因此,目前大多数ldpc译码器使用的都是由min-sum衍生出的各种算法。本文提到的分层译码算法也是一种min-sum衍生算法。

4、ldpc译码器在ssd中的应用也面临着众多挑战,ssd控制器芯片规模有限而译码器占用计算资源多,有限的计算资源下译码带宽有限等等。

5、当前主流ssd的ldpc采用分层译码算法,分层译码算法相对普通的译码算法不仅可以加速译码过程的收敛,也可以减少运算中多个变量的膨胀从而使得计算单元减少。分层译码算法有个特点,下一层的运算依赖上一层的运算传递过来的置信值,因此,如果上下层相同位置上都有非零块,下一层的非零块计算必须等待上一层相同位置上的非零块计算完毕后才能启动。一般的矩阵构造中,矩阵每行非零块的数量和位置有随机性,导致分层算法实现时很难做到层间并行处理,而一次完整的迭代运算是需要所有行计算完成之后才结束,因此,单次迭代运算需要的时钟周期数为整个矩阵的非零块数量加上冗余周期数,这样会导致一次译码的时长过长,无法满足存储设备的低延迟、高带宽的需求。


技术实现思路

1、为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种ldpc译码器的译码方法、装置、介质及ssd设备。

2、本发明的一个方面,提供了一种ldpc译码器的译码方法,所述方法包括:

3、对奇偶校验矩阵的各个行的非零块进行计算排序,获取各个行的第一计算列和第二计算列,其中,各个行的第一计算列包含当前行和与其相邻的下一行的所有重叠非零块;

4、在采用分层译码算法进行层内列间循环计算时,顺次对当前计算层的第一计算列和第二计算进列行迭代计算,其中,层内列间循环计算的计算层与奇偶校验矩阵的行相对应;

5、在当前计算层的第一计算列计算结束后,启动下一层的层内列间循环计算。

6、进一步地,在对奇偶校验矩阵的各个行的非零块进行计算排序之前,所述方法还包括:构造奇偶校验矩阵;

7、所述构造奇偶校验矩阵包括:

8、将奇偶校验矩阵中每行的行重设定为预设固定值;

9、相邻两行重叠非零块的数量与行重的占比小于或等于二分之一。

10、进一步地,采用分层译码算法进行层内列间循环计算的计算方法为:

11、

12、

13、

14、其中,i为奇偶校验矩阵的行号,j为奇偶校验矩阵的列号,t为当前迭代次数,表示第t次迭代时,第i个校验节点传递给第j个变量节点的信息。表示第t次迭代时,第j个变量节点传递给第i个校验节点的信息。表示第t次迭代时,第j个变量节点的可靠度,α是归一化参数,是取的符号位,min是取集合元素的最小值;

15、所述方法还包括:

16、将当前层的第一计算列的和第二计算列的存储到不同bank的sram中。

17、本发明的另一方面,还提供了一种ldpc译码器的译码装置,所述装置包括:

18、获取模块,用于对奇偶校验矩阵的各个行的非零块进行计算排序,获取各个行的第一计算列和第二计算列,其中,各个行的第一计算列包含当前行和与其相邻的下一行的重叠非零块;

19、第一计算模块,用于在采用分层译码算法进行层内列间循环计算时,顺次对当前计算层的第一计算列和第二计算列进行迭代计算,其中,层内列间循环计算的计算层与奇偶校验矩阵的行相对应;

20、第二计算模块,用于在当前计算层的第一计算列计算结束后,启动下一层的层内列间循环计算。

21、进一步地,所述装置还包括:

22、校验矩阵构造模块,用于构造奇偶校验矩阵;

23、所述校验矩阵构造模块,具体用于将奇偶校验矩阵中每行的行重设定为预设固定值;相邻两行重叠非零块的数量与行重的占比小于或等于二分之一。

24、进一步地,采用分层译码算法进行层内列间循环计算的计算方法为:

25、

26、

27、

28、其中,i为奇偶校验矩阵的行号,j为奇偶校验矩阵的列号,t为当前迭代次数,表示第t次迭代时,第i个校验节点传递给第j个变量节点的信息。表示第t次迭代时,第j个变量节点传递给第i个校验节点的信息。表示第t次迭代时,第j个变量节点的可靠度,α是归一化参数,是取的符号位,min是取集合元素的最小值;

29、所述装置还包括:

30、存储模块,用于将当前层的第一计算列的和第二计算列的存储到不同bank的sram中。

31、本发明的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。

32、本发明的另一方面还提供了一种ssd设备,该ssd设备包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。

33、本实施例提供的ldpc译码器的译码方法、装置、介质及ssd设备,通过对奇偶校验矩阵的各个行的非零块进行计算排序,获取各个行的第一计算列和第二计算列,其中,各个行的第一计算列包含当前行和与其相邻的下一行的所有重叠非零块;并在采用分层译码算法进行层内列间循环计算时,对当前计算层的第一计算列进行迭代计算,在当前计算层的第一计算列计算结束后,启动下一层的层内列间循环计算,使得下一层的层内列间循环计算无需等待上一层所有非零块全部迭代计算完,从而大大加快了ldpc译码器的译码速度,满足存储设备的低延迟、高带宽的需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1