一种基于极化码的数据编解码方法、装置和存储介质与流程

文档序号:36333179发布日期:2023-12-10 15:12阅读:75来源:国知局
一种基于极化码的数据编解码方法与流程

本发明涉及安全,特别是涉及一种基于极化码的数据编解码方法、装置和存储介质。


背景技术:

1、纠错能力是反映固态硬盘(solid state drives,ssd)质量的重要指标。目前阶段主要采用低密度校验码(low density parity check,ldpc)作为主要的纠错码方案。相比较ldpc而言,极化码的设计基于递归结构,无论在编码还是译码上,所需资源较少,其编码复杂度也比ldpc低。由于极化码可以极大程度利用到信道的信息,也可以在闪存生存期的不同阶段自适应的调整编码方案,提高纠错性能。这使得下一代存储装置中极化码作为纠错码方案成为有竞争力的选择之一。

2、但是极化中在实际应用中需要考虑两方面的问题。一方面,递归的结构使得极化码的码长限制为2的幂次,需要根据实际情况针对码长设计。另一方面,极化码是一种信道高度相关的码字,且实际中并不是无限长,因此需要对可靠度高的信道进行选择,确定出放置信息位的索引集合。

3、目前主流的ssd是以4kb数据进行ecc(error correction code,纠错码)编码,即信息长度为4kb。由于高码率的设置,比如0.89或0.91,码长往往略大于4kb的长度。在一般线性码的领域,想要获得任意长度的码长,通常需要从的母码进行打孔和缩短操作,表示向上取整, m表示所需获取的码长。但是在ssd应用中,如采用0.89的码率,码长为4.5kb。按照传统方案,需要从8kb的原始极化码进行打孔和缩短操作,打孔和缩短的节点过多,性能损失大。

4、可见,如何降低极化码在固态硬盘上应用的难度,是本领域技术人员需要解决的问题。


技术实现思路

1、本发明实施例的目的是提供一种基于极化码的数据编解码方法、装置和存储介质,可以降低极化码在固态硬盘上应用的难度。

2、为解决上述技术问题,本发明实施例提供一种基于极化码的数据编解码方法,包括:

3、基于待编码数据写入的闪存的噪声分布,从编码索引表中选取出与所述待编码数据匹配的信息位集合;其中,所述信息位集合中包括可靠度第一高的第一信道组的信道索引、可靠度第二高的第二信道组的信道索引、以及第三信道组的信道索引;所述第三信道组由所述第二信道组和扩展信道组二次极化操作得到;

4、将所述待编码数据写入所述第一信道组以及所述第三信道组,将实际码长对应的所有信道中除所述第一信道组和所述第三信道组外的剩余信道全部置0;

5、根据所述第三信道组的信道索引,对所述第二信道组的数据和所述扩展信道组的数据进行成对的编码处理,以得到第一层编码输出数据;

6、利用理论码长所对应的编码结构,对所述第一层编码输出数据进行编码处理,以得到所述理论码长对应的码字序列;

7、将所述理论码长对应的码字序列与所述扩展信道组对应的数据合并作为编码后的码字序列。

8、一方面,所述基于待编码数据写入的闪存的噪声分布,从编码索引表中选取出与所述待编码数据匹配的信息位集合包括:

9、根据所述待编码数据写入的闪存对应的擦写次数,从编码索引表中选取出与所述待编码数据匹配的信息位集合;其中,所述编码索引表中包含了不同区间各自对应的信息位集合,不同区间有其各自对应的擦写次数范围。

10、一方面,针对于所述编码索引表的建立过程,所述方法包括:

11、根据不同存储单元的擦写次数,划分不同的区间;

12、依据目标区间内极化码的信道转移概率,确定出目标区间内各信道的可靠度;其中,所述目标区间为所有区间中的任意一个区间;

13、基于实际码长、实际码率以及所述目标区间内各信道的可靠度,构建出所述目标区间对应的信息位集合;其中,所述信息位集合包括用于存储数据的各信道的信道索引。

14、一方面,所述基于实际码长、实际码率以及所述目标区间内各信道的可靠度,构建出所述目标区间对应的信息位集合包括:

15、根据所述实际码率和极化码的理论码长,确定出信息位长度;

16、依据所述信息位长度、所述实际码长、所述理论码长以及所述理论码长对应的各信道的可靠度,从各所述信道中选取出第一信道组和第二信道组;

17、将所述第一信道组包含的各第一信道的信道索引以及所述第二信道组包含的各第二信道的信道索引分别记录至所述信息位集合;

18、将所述第二信道组中包含的各第二信道与扩展信道组中包含的各扩展信道进行二次极化操作,以得到第三信道组;其中,所述扩展信道组包括根据所述理论码长与实际码长的偏差所补充的信道;

19、将所述第三信道组包含的各信道的信道索引记录至所述信息位集合。

20、一方面,所述依据所述信息位长度、所述实际码长、所述理论码长以及所述理论码长对应的各信道的可靠度,从各所述信道中选取出第一信道组和第二信道组包括:

21、根据所述理论码长对应的各信道的可靠度,对各所述信道进行排序;

22、从排序后的各所述信道中选取出可靠度最高的 k-( m-n)个信道作为第一信道组;其中, k表示信息位长度, m表示实际码长, n表示理论码长;

23、从剩余信道中选取出可靠度最高的( m-n)个信道作为第二信道组。

24、一方面,所述将所述第二信道组中包含的各第二信道与扩展信道组中包含的各扩展信道进行二次极化操作,以得到第三信道组包括:

25、将所述第二信道组中包含的各第二信道与所述扩展信道组中包含的各扩展信道成对进行二次极化操作;

26、从二次极化后的每对信道中选取可靠度最高的信道作为增强信道。

27、一方面,所述根据所述实际码率和极化码的理论码长,确定出信息位长度包括:

28、计算所述实际码率与所述理论码长的乘积值;

29、将所述乘积值向上取整作为所述信息位长度。

30、一方面,所述依据目标区间内极化码的信道转移概率,确定出目标区间内各信道的可靠度包括:

31、对所述目标区间内极化码的信道转移概率进行处理,以得到所述目标区间内各信道的错误概率;其中,所述错误概率的取值与可靠度成反比。

32、一方面,在所述将所述待编码数据写入所述第一信道组以及所述第三信道组,将实际码长对应的所有信道中除所述第一信道组和所述第三信道组外的剩余信道全部置0之前,还包括:

33、在获取到待编码数据的情况下,根据信息位长度以及循环冗余码校验对应的冗余长度,确定出编码长度;

34、从所述待编码数据中读取与所述编码长度对应的信息序列;

35、对所述信息序列进行循环冗余码校验编码,以得到最终的待编码数据。

36、一方面,在所述将所述理论码长对应的码字序列与所述扩展信道组对应的数据合并作为编码后的码字序列之后,还包括:

37、将所述编码后的码字序列存储至闪存。

38、本发明实施例还提供了一种基于极化码的数据编解码方法,包括:

39、在获取到译码指令的情况下,从闪存中读取待译码数据;

40、从编码索引表中选取出与所述待译码数据匹配的信息位集合;其中,所述信息位集合中包括可靠度第一高的第一信道组的信道索引、可靠度第二高的第二信道组的信道索引、以及第三信道组的信道索引;所述第三信道组由所述第二信道组和扩展信道组二次极化操作得到;

41、根据所述信息位集合,确定出所述待译码数据中各子数据所属的信道类型;

42、按照所述待译码数据中各子数据所属的信道类型对应的译码方式,对各所述子数据进行译码以得到译码结果。

43、一方面,所述按照所述待译码数据中各子数据所属的信道类型对应的译码方式,对各所述子数据进行译码以得到译码结果包括:

44、对于属于第一信道组的所有第一待译码子数据,根据各所述第一待译码子数据的度量值,确定出各所述第一待译码子数据对应的第一译码结果。

45、一方面,所述根据各所述第一待译码子数据的度量值,确定出各所述第一待译码子数据对应的第一译码结果包括:

46、将度量值大于或等于0的第一待译码子数据的第一译码结果设置为0;

47、将度量值小于0的第一待译码子数据的第一译码结果设置为1。

48、一方面,所述按照所述待译码数据中各子数据所属的信道类型对应的译码方式,对各所述子数据进行译码以得到译码结果包括:

49、对于不属于第一信道组并且不属于第三信道组的第二待译码子数据,将所述第二待译码子数据的译码结果设置为0。

50、一方面,所述按照所述待译码数据中各子数据所属的信道类型对应的译码方式,对各所述子数据进行译码以得到译码结果包括:

51、对于属于第三信道组的第三待译码子数据,判断所述第三待译码子数据的通道索引是否属于所述第二信道组的通道索引;

52、在所述第三待译码子数据的通道索引属于所述第二信道组的通道索引的情况下,根据所述第三待译码子数据的通道索引在所述第二信道组中的位置顺序,确定出与所述第三待译码子数据匹配的二次极化操作的目标通道;

53、在所述第三待译码子数据的通道索引不属于所述第二信道组的通道索引的情况下,从所述第二信道组中获取与所述第三待译码子数据的通道索引相对应的目标通道;

54、根据所述第三待译码子数据的对数似然比以及所述目标通道上数据的对数似然比,确定出译码结果;

55、将所述译码结果反馈给所述第三待译码子数据,以得到更新后的第三待译码子数据;

56、根据所述更新后的第三待译码子数据,对所述待译码数据对应的译码路径图进行剪枝,以得到最终的译码结果。

57、一方面,所述根据所述更新后的第三待译码子数据,对所述待译码数据对应的译码路径图进行剪枝,以得到最终的译码结果包括:

58、在所述更新后的第三待译码子数据取值为0的情况下,删除所述译码路径图中路径值为1的路径;

59、在所述更新后的第三待译码子数据取值为1的情况下,删除所述译码路径图中路径值为0的路径;

60、将所述译码路径图中剩余的所有路径的路径值拼接作为最终的译码结果。

61、一方面,所述将所述译码路径图中剩余的所有路径的路径值拼接作为最终的译码结果包括:

62、将l条路径各自的路径值拼接作为每个路径的译码结果;其中,l表示预设列表宽度。

63、一方面,在所述将l条路径各自的路径值拼接作为每个路径的译码结果之后,还包括:

64、将通过循环冗余校验并且度量值最大的一条路径所对应的译码结果作为最终的译码结果。

65、本发明实施例还提供了一种基于极化码的数据编解码装置,包括选取单元、写入单元、置零单元、第一编码单元、第二编码单元和合并单元;

66、所述选取单元,用于基于待编码数据写入的闪存的噪声分布,从编码索引表中选取出与所述待编码数据匹配的信息位集合;其中,所述信息位集合中包括可靠度第一高的第一信道组的信道索引、可靠度第二高的第二信道组的信道索引、以及第三信道组的信道索引;所述第三信道组由所述第二信道组和扩展信道组二次极化操作得到;

67、所述写入单元,用于将所述待编码数据写入所述第一信道组以及所述第三信道组;

68、所述置零单元,用于将实际码长对应的所有信道中除所述第一信道组和所述第三信道组外的剩余信道全部置0;

69、所述第一编码单元,用于根据所述第三信道组的信道索引,对所述第二信道组的数据和所述扩展信道组的数据进行成对的编码处理,以得到第一层编码输出数据;

70、所述第二编码单元,用于利用理论码长所对应的编码结构,对所述第一层编码输出数据进行编码处理,以得到所述理论码长对应的码字序列;

71、所述合并单元,用于将所述理论码长对应的码字序列与所述扩展信道组对应的数据合并作为编码后的码字序列。

72、一方面,所述选取单元用于根据所述待编码数据写入的闪存对应的擦写次数,从编码索引表中选取出与所述待编码数据匹配的信息位集合;其中,所述编码索引表中包含了不同区间各自对应的信息位集合,不同区间有其各自对应的擦写次数范围。

73、一方面,针对于所述编码索引表的建立过程,所述装置包括划分单元、确定单元和构建单元;

74、所述划分单元,用于根据不同存储单元的擦写次数,划分不同的区间;

75、所述确定单元,用于依据目标区间内极化码的信道转移概率,确定出目标区间内各信道的可靠度;其中,所述目标区间为所有区间中的任意一个区间;

76、所述构建单元,用于基于实际码长、实际码率以及所述目标区间内各信道的可靠度,构建出所述目标区间对应的信息位集合;其中,所述信息位集合包括用于存储数据的各信道的信道索引。

77、一方面,所述构建单元包括信息位长度确定子单元、信道选取子单元、第一记录子单元、极化子单元、第二记录子单元;

78、所述信息位长度确定子单元,用于根据所述实际码率和极化码的理论码长,确定出信息位长度;

79、所述信道选取子单元,用于依据所述信息位长度、所述实际码长、所述理论码长以及所述理论码长对应的各信道的可靠度,从各所述信道中选取出第一信道组和第二信道组;

80、所述第一记录子单元,用于将所述第一信道组包含的各第一信道的信道索引以及所述第二信道组包含的各第二信道的信道索引分别记录至所述信息位集合;

81、所述极化子单元,用于将所述第二信道组中包含的各第二信道与扩展信道组中包含的各扩展信道进行二次极化操作,以得到第三信道组;其中,所述扩展信道组包括根据所述理论码长与实际码长的偏差所补充的信道;

82、所述第二记录子单元,用于将所述第三信道组包含的各信道的信道索引记录至所述信息位集合。

83、一方面,所述信道选取子单元用于根据所述理论码长对应的各信道的可靠度,对各所述信道进行排序;从排序后的各所述信道中选取出可靠度最高的 k-( m-n)个信道作为第一信道组;其中, k表示信息位长度, m表示实际码长, n表示理论码长;从剩余信道中选取出可靠度最高的( m-n)个信道作为第二信道组。

84、一方面,所述极化子单元用于将所述第二信道组中包含的各第二信道与所述扩展信道组中包含的各扩展信道成对进行二次极化操作;从二次极化后的每对信道中选取可靠度最高的信道作为增强信道。

85、一方面,所述信息位长度确定子单元用于计算所述实际码率与所述理论码长的乘积值;将所述乘积值向上取整作为所述信息位长度。

86、一方面,所述确定单元用于对所述目标区间内极化码的信道转移概率进行处理,以得到所述目标区间内各信道的错误概率;其中,所述错误概率的取值与可靠度成反比。

87、一方面,还包括长度确定单元、信息读取单元和第三编码单元;

88、所述长度确定单元,用于在获取到待编码数据的情况下,根据信息位长度以及循环冗余码校验对应的冗余长度,确定出编码长度;

89、所述信息读取单元,用于从所述待编码数据中读取与所述编码长度对应的信息序列;

90、所述第三编码单元,用于对所述信息序列进行循环冗余码校验编码,以得到最终的待编码数据。

91、一方面,还包括存储单元;

92、所述存储单元,用于将所述编码后的码字序列存储至闪存。

93、本发明实施例还提供了一种基于极化码的数据编解码装置,包括数据读取单元、集合选取单元、信道类型确定单元和译码单元;

94、所述数据读取单元,用于在获取到译码指令的情况下,从闪存中读取待译码数据;

95、所述集合选取单元,用于从编码索引表中选取出与所述待译码数据匹配的信息位集合;其中,所述信息位集合中包括可靠度第一高的第一信道组的信道索引、可靠度第二高的第二信道组的信道索引、以及第三信道组的信道索引;所述第三信道组由所述第二信道组和扩展信道组二次极化操作得到;

96、所述信道类型确定单元,用于根据所述信息位集合,确定出所述待译码数据中各子数据所属的信道类型;

97、所述译码单元,用于按照所述待译码数据中各子数据所属的信道类型对应的译码方式,对各所述子数据进行译码以得到译码结果。

98、一方面,所述译码单元用于对于属于第一信道组的所有第一待译码子数据,根据各所述第一待译码子数据的度量值,确定出各所述第一待译码子数据对应的第一译码结果。

99、一方面,所述译码单元用于将度量值大于或等于0的第一待译码子数据的第一译码结果设置为0;

100、将度量值小于0的第一待译码子数据的第一译码结果设置为1。

101、一方面,所述译码单元用于对于不属于第一信道组并且不属于第三信道组的第二待译码子数据,将所述第二待译码子数据的译码结果设置为0。

102、一方面,所述译码单元包括判断子单元、第一确定子单元、第二确定子单元、第三确定子单元、更新子单元和剪枝子单元;

103、所述判断子单元,用于对于属于第三信道组的第三待译码子数据,判断所述第三待译码子数据的通道索引是否属于所述第二信道组的通道索引;

104、所述第一确定子单元,用于在所述第三待译码子数据的通道索引属于所述第二信道组的通道索引的情况下,根据所述第三待译码子数据的通道索引在所述第二信道组中的位置顺序,确定出与所述第三待译码子数据匹配的二次极化操作的目标通道;

105、所述第二确定子单元,用于在所述第三待译码子数据的通道索引不属于所述第二信道组的通道索引的情况下,从所述第二信道组中获取与所述第三待译码子数据的通道索引相对应的目标通道;

106、所述第三确定子单元,用于根据所述第三待译码子数据的对数似然比以及所述目标通道上数据的对数似然比,确定出译码结果;

107、所述更新子单元,用于将所述译码结果反馈给所述第三待译码子数据,以得到更新后的第三待译码子数据;

108、所述剪枝子单元,用于根据所述更新后的第三待译码子数据,对所述待译码数据对应的译码路径图进行剪枝,以得到最终的译码结果。

109、一方面,所述剪枝子单元用于在所述更新后的第三待译码子数据取值为0的情况下,删除所述译码路径图中路径值为1的路径;在所述更新后的第三待译码子数据取值为1的情况下,删除所述译码路径图中路径值为0的路径;将所述译码路径图中剩余的所有路径的路径值拼接作为最终的译码结果。

110、一方面,所述剪枝子单元用于将l条路径各自的路径值拼接作为每个路径的译码结果;其中,l表示预设列表宽度。

111、一方面,还包括作为单元;

112、所述作为单元,用于将通过循环冗余校验并且度量值最大的一条路径所对应的译码结果作为最终的译码结果。

113、本发明实施例还提供了一种电子设备,包括:

114、存储器,用于存储计算机程序;

115、处理器,用于执行所述计算机程序以实现如上述基于极化码的数据编解码方法的步骤。

116、本发明实施例还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述基于极化码的数据编解码方法的步骤。

117、由上述技术方案可以看出,基于待编码数据写入的闪存的噪声分布,从编码索引表中选取出与待编码数据匹配的信息位集合;信息位集合中包括可靠度第一高的第一信道组的信道索引、可靠度第二高的第二信道组的信道索引、以及第三信道组的信道索引;第三信道组由第二信道组和扩展信道组二次极化操作得到;将待编码数据写入第一信道组以及第三信道组,将实际码长对应的所有信道中除第一信道组和第三信道组外的剩余信道全部置0;根据第三信道组的信道索引,对第二信道组的数据和扩展信道组的数据进行成对的编码处理,以得到第一层编码输出数据;利用理论码长所对应的编码结构,对第一层编码输出数据进行编码处理,以得到理论码长对应的码字序列;将理论码长对应的码字序列与扩展信道组对应的数据合并作为编码后的码字序列。本发明的有益效果在于,通过增加扩展信道组可以满足ssd的不同码长需求,解决了ssd中编码序列的长度通常不是2的幂次的问题。为了保证数据存储的可靠性,由第二信道组和扩展信道组进行二次极化操作可以获取到可靠度更高的第三信道组,从而由第一信道组和第三信道组存储数据。相比较于原始的极化码,编码操作仅在外部增加了一层由第二信道组和扩展信道组进行二次极化的操作,编码复杂度仍然保持线性,相比于传统打孔压缩的方式,降低了极化码在固态硬盘上应用的难度,仍保持了低计算复杂度的特点,增加了极化码在ssd中应用的竞争力。

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