二进制对称不变乘积码编码的码字的有效纠错制造技术

技术编号:31477935 阅读:17 留言:0更新日期:2021-12-18 12:10
一种用于对二进制对称不变乘积码进行解码的解码器,包括具有正交第一维和第二维的数据阵列。数据阵列被配置为仅沿第一维访问其中缓冲的二进制对称不变乘积码。解码器还包括用于存储错误位置的错误存储阵列和被配置为检测和校正沿第一维从数据阵列访问的数据中的错误并将沿第二维的错误位置存储在错误存储阵列中的第一校正电路。第一校正电路基于对称不变乘积码的数据对称性确定错误位置。解码器还包括第二校正电路,在第一校正电路接收沿第一维从数据阵列访问的数据之前基于存储在错误存储阵列中的错误位置校正从数据阵列访问的数据。的数据。的数据。

【技术实现步骤摘要】
【国外来华专利技术】二进制对称不变乘积码编码的码字的有效纠错

技术介绍

[0001]本公开涉及数据处理,并且更具体地,涉及例如在数据存储系统或数据通信系统中利用二进制对称不变乘积码(例如,半乘积码)编码的数据的有效纠错。
[0002]数据存储系统和数据通信系统中采用纠错编码以提高可以从数据信道恢复数据的准确性。通过在将数据提供给信道之前根据纠错码(ECC)对数据进行编码,可以在取决于ECC特性的程度上识别和纠正位于信道输出的错误。许多这样的ECC方案是已知的。一类众所周知的ECC方案是基于乘积码的。乘积码使用两个组件ECC码对输入数据的名义二维数组的行和列进行编码。
[0003]图1示意性地示出了传统乘积码的基本结构。输入数据符号(其通常可以是q
ary
符号,具有q个可能的符号值,其中q≧2)被分配给具有n2行和n1列符号位置的名义阵列中的各个符号位置。在该示例中,k2×
k1个数据符号被分配到k2×
k1子阵列中位于n2×
n1阵列的前k2行和前k1列的交叉处的各个位置。通过对数组的行和列分别进行编码来对生成的输入数据符号数组进行编码。第一ECC码C1用于将阵列的每一行中的k
i

符号数据字编码为长度为n1的C1码字。该示例使用系统编码,由此输入数据保留在码字中。具体地,C1码字的n1个码元是通过在给定行中的k1‑
符号数据字之后添加(n1‑
k1)个奇偶校验码而获得的。然后使用第二个ECC码C2将阵列每列中的k2个符号编码为长度为n2的C2码字,这里通过在每列的末尾添加(n2‑
k2)个奇偶校验符号。数组中得到的n2×
n1个码符号形成乘积码的输出码字。在此基本思想的扩展中,交错乘积码将C2码应用于数组的s>1个均匀间隔的列,从而产生n1/s个C2码字。
[0004]乘积码可以提供实用的编码器/解码器实现,它们的解码器是基于硬判决的,因此避免了与软判决解码相关联的各种复杂性和延迟问题。一些用于交错乘积码的解码器使用基于从基本码结构定义的图形的迭代解码技术。简而言之,二部图可以定义为具有n2个右节点,每个节点对应一个C1码字,以及n1/s个左节点对应于各自的C2码字。每个右节点通过s条边连接到每个左节点。连接一对节点的s条边代表上述概念阵列中那些节点的C1和C2码字交叉处的s个公共符号。通过对C1码字进行一一解码,然后对C2码字一一解码,基于图进行迭代解码。每次成功解码一个码字时,都会纠正离开适当节点的边缘。该过程迭代直到解码完成,即解码器不再检测到错误或达到预定的最大迭代次数,在这种情况下,解码器可以声明解码失败。
[0005]在J.Justesen,“Error Correcting coding for OTN(OTN纠错编码)”,IEEE Communications Magazine,2010年9月和J.Justesen,Performance of Product Codes and Related Structures with Iterative Decoding(乘积码和相关结构的迭代解码性能),IEEE Transactions on Communications,2011。这些码称为半乘积码(HPC),是对行码C1和列码C2使用相同码的乘积码。如果每个分量码C1和C2是码长(即一个码字中的符号数)为n,维数(即编码到每个码字中的数据符号数)为k的比率k/n码,则生成的乘积码C的长度为N=n2,维数为K=k2,比率为(k/n)2。C的码字可以由对应于上述概念数组的(n
×
n)

符号矩阵X来定义,其中X的每一行和每一列是行/列码的码字。对应的半乘积码C
H
则定义为C
H

{X

X
T
:X∈C},其中X
T
是X的转置矩阵。
[0006]注意,如果X是码字,则X
T
也是码字,因为行码和列码相同。通过构造,C
H
的每个码字Y
H
的主对角线为零(尽管任一主对角线都可以是零主对角线,但零主对角线在本文中被定义为从右上符号到左下符号跨(n
×
n)

符号矩阵Y
H
对角延伸的符号线)。也就是说,零主对角线上的所有符号的值都为零。由于根据C
H
的定义,Y
H
=Y
HT
,三角形子阵列中零主对角线每一边的n(n

1)/2个符号的集合是相同的。这些n(n

1)/2个符号因此定义了码字Y
H
,使得半乘积码具有N
H
=n(n

1)/2的有效长度。对于HPC,编码和迭代解码通常以与乘积码相同的方式执行,但输入数据仅限于零主对角线一侧的三角形子阵列,因此HPC的维数为K
H
=k(k

1)/2。
[0007]图2中示出了示例性现有技术HPC 200。为了形成HPC 200,原始输入数据204被放置在零主对角线202下方的方形阵列中。然后通过复制原始输入数据204、转置原始输入数据并将所得数据放置在零主对角线202之上来形成对称复制数据206。然后为每行和每列单独计算奇偶校验数据208(例如,利用Bose

Chaudhuri

Hocquenghem(BCH)纠错函数)。编码后,由于数据对称,只需要存储和/或传输零主对角线202上方或下方的阵列部分。
[0008]当从存储器检索数据或经由数据传输接收数据时,可以通过复制和转置检索/接收的数据以填充阵列来重构HPC 200。因此,在数据的存储、保留、检索和/或传输过程中出现的任何错误也将关于重构阵列的零主对角线对称,如图3所示。在传统解码过程中(即迭代处理行和列以纠正行和列错误的纠错过程),阵列中的数据首先以行格式访问,然后以列格式访问。
[0009]在现实世界的实现中,标准软件方法通常不复制CPU存储器中的数据,而是仅对一组数据进行操作并受益于重复错误的隐式校正。假设在图3中,从数组的底部到顶部处理行。如果每个位只有一个副本存储在CPU内存中,则纠正包含A、B和C处错误的行会固有地导致包含这些位值的三个后续行中的A、B和C的值正确。虽然看似高效,但这种基于软件的方法比基于硬件的解决方案具有更高的延迟,因此不适合真正高性能的应用。
[0010]为了实现高性能解码,HPC解码的硬件实现通常会在存储器中形成完整的HPC阵列(包括重复数据206)并然后逐一迭代解码每一行,然后逐一解码每一列。虽然这种方法提供了比传统软件实现更高的性能,本公开认识到能够以行和列格式访问数据的电路非常昂贵。本公开还认识到,常规硬件实现需要独立读取和校正行数据和列数据,这意味着硬件HPC解码实现没有受益于阵列对称性。

技术实现思路
<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于对二进制对称不变乘积码进行解码的解码器,该解码器包括电路,该电路包括:具有正交的第一维和第二维的数据阵列,其中该数据阵列被配置为仅沿第一维访问在其中缓冲的二进制对称不变乘积码;用于存储错误位置的错误存储阵列;第一校正电路,配置为检测并校正沿第一维从数据阵列访问的数据中的错误,并将沿第二维的错误位置存储在错误存储阵列中,其中,第一校正电路基于对称不变乘积码的数据对称性确定错误位置;以及第二校正电路,在第一校正电路接收沿第一维从数据阵列访问的数据之前基于存储在错误存储阵列中的错误位置校正从数据阵列访问的数据。2.根据权利要求1的所述的解码器,其中二进制对称不变乘积码是半乘积码(HPC)。3.根据权利要求1的所述的解码器,其中数据阵列被配置为仅按行访问在其中缓冲的二进制对称不变乘积码。4.根据权利要求1的所述的解码器,其中第一校正电路用校正数据更新数据阵列。5.根据权利要求4的所述的解码器,其中解码器仅沿第一维迭代访问在数据阵列中缓冲的二进制对称不变乘积码的码字,使得至少一些码字沿第一维被多次访问。6.根据权利要求5的所述的解码器,其中解码器基于在达到预定迭代次数或在二进制对称不变乘积代码中没有检测到错误的第一次发生,中断对二进制对称不变乘积码的码字的迭代访问。7.根据权利要求1的所述的解码器,其中:第一校正电路被配置为在每个时钟周期解码多个码字;以及第二校正电路被配置为将错误存储阵列指示的校正应用于每个时钟周期的多个码字。8.根据权利要求1的所述的解码器,其中:第一校正电路根据解码器的等待时间将错误存储阵列中的错误位置的存储进行排序。9.一种数据存储系统,包括:非易失性存储系统;以及耦合到非易失性存储器系统的控制器,其中该控制器包括权利要求1的解码器。10.一种数据通信系统,包括:解调器,被配置为从通信信道接收调制编码数据,解调调制编码数据,并输出编码数据;以及权利要求1的解码器,其中解码器耦合到解调器以接收包括二进制对称不变乘积码的编码数据作为输入。...

【专利技术属性】
技术研发人员:C
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1