解码器和解码方法

文档序号:6569625阅读:674来源:国知局
专利名称:解码器和解码方法
技术领域
本发明涉及解码设备和方法。特别地,涉及在抑制设备尺寸增大的同时以高精度解码由低密度奇偶校验编码(LDPC编码)编码的代码的解码设备 和方法。
背景技术
近些年来,通信领域(如移动通信或外层空间通信)和广播领域(如数 字陆上或卫星广播)中的研究已经有了显着的进步。与这些进步一起,为了 提高纠错编码和解码的效率的目的,编码理论的研究也已经变得活跃起来。由通信信道的香农理论给出的所谓香农极限已经公知为代码性能的理论 极限。为了开发表现出接近于香农极限性能的代码,已经进行了编码理论的 研究。作为表现出接近于香农极限性能的编码方法,近些年来已经开发出了 称为Turbo编码方法,如并行链接巻积码(PCCC )或串行链接巻积码(SCCC )。 虽然已经开发了这些Turbo码,但是低密度奇偶校验码(下文中称为LDPC 码)已经进入了引人注目的中心,尽管LDPC编码方法是很久之前公知的编 码方法。LDPC码最初是由R.G.Gallager在'R.G.Gallager, "Low Density Parity Check Codes", Cambridge Massachusetts: M.I.T Press, 1963 ,中提出的,然后再 次在'D丄C.MacKay,"Good error correcting codes based on very sparse matrices", Submitted to IEEE Tran. Inf. Theory, IT-45, pp. 399-431 , 1999,,'M.G丄uby, M,Mitzenmacher, M.A.Shokrollahi and D.A.Spielman,"Analysis of low density codes and improved designs using irregular graphs", in Proceedings of ACM Symposium on Theory of Computing, pp.249-258, 1998,等中公布。根据最近的研究,当码长增大时,LDPC码可以与Turbo码等类似地获 得接近于香农极限的性能是公知的。另外,由于LDPC码具有最小距离与码 长成比例的特性,所以LDPC码具有块误差概率特性很好的特点,以及几乎不发生在Turbo码等的解码特性中观察到的所谓误差层(errorfloor)现象的优点。将在下文中具体地描述这样的LDPC码。顺便提及,LDPC码是线性码, 但并非必须是二进制。这里,将LDPC码描述为二进制码。LDPC码具有最大的特点在于,用于定义LDPC码的奇偶校验矩阵是稀 疏的。这里,将稀疏矩阵理解为在矩阵中具有很少数量的分量'T,。假定稀疏 奇偶校验矩阵由H表示,那么,例如,如图1所示,存在奇偶校验矩阵H, 其中每一列的汉明权重(Hamming weight) ('T,的数目)是3,而每一行的汉 明权重是6。将由以这种方式具有每一行的恒定汉明权重和每一列的恒定汉明权重的 奇偶校验矩阵H定义的LDPC码称为规则LDPC码。另 一方面,将由具有每 一行的非恒定汉明权重和每一列的非恒定汉明权重的奇偶校验矩阵H定义的 LDPC码称为不规则LDPC码。通过码字实现这样的LDPC码的编码,所述码字以这样的方式生成基 于奇偶校验矩阵产生生成器矩阵G并与将其乘以二进制信息消息。具体地说,计算保持等式GHt=0的生成器矩阵G。这里,当生成器矩阵G是kxn矩阵(具 有L行和IL列的矩阵)时,奇偶校验矩阵H是具有(n-k)行和il列的矩降。通过将生成器矩阵G乘以由L位组成的信息消息(矢量)y,编码设备 生成由n位组成的码字(LDPC码)£ (=uG)。由编码设备生成的码字i在映 射之后发送,从而将具有"0"值的位改变为"+l",而将具有'T,值的位改变为 "-l"。所发送的码字^通过预定通信信道在接收机侧接收。例如,假定在由iL位组成的码字2是与其中在信息消息1的k位之后排 列(n-k)个奇偶位的位串相一致的系统码的情况下,奇偶校验矩阵H由(n-k) 行和0_列组成,此外有支定与n位码字^中信息消息i的k位相对应的(n-k) 乘k矩阵部分称为信息部分,而与n位码字l中(n-k )个奇偶位相对应的(n-k) 乘(n-k)矩阵部分称为奇偶部分,那么可以使用奇偶校验矩阵H将信息消息 丄编码为LDPC码,只要奇偶部分是上三角矩阵或下三角矩阵即可。也就是说,例如,假定奇偶校^r矩阵H由信息部分和如图2所示的下三 角矩阵的奇偶部分组成,此外假定奇偶部分的下三角矩阵中的全部分量均为 "1",那么码字^中奇偶位的第一位具有通过与奇偶校验矩阵H的信息部分的第一行中的分量'T,相对应的信息消息1的位的异或而获得的值。另外,码字L中奇偶位的第二位具有通过与奇偶校验矩阵H的信息部分 的第二行中的分量"1 ,,相对应的信息消息k的位和奇偶位的第 一位的异或而获得的值。此外,码字L中奇偶位的第三位具有通过与奇偶校验矩阵H的信息部分 的第三行中的分量"1 ,,相对应的信息消息iL的位和奇偶位的第二位的异或而获 得的值。在下文中,以相同的方式,码字i中奇偶位的第i位具有通过与奇偶校 验矩阵H的信息部分的第i行中的分量"l"相对应的信息消息il的位和奇偶位 的第(i-l)位的异或而获得的值。以前述方法获得的(n-k)个奇偶位可以排列在信息消息il的k个位之后, 由此获得由JL组成的码字e。另 一方面,通过消息传递算法(message passing algorithm )可以解码LDPC 码,所述消息传递算法是由Gallager提出的、被称为概率解码的算法,并且 其基于具有可变节点(也称为消息节点)和校验节点的所谓的Tanner图上的 信任传播(belief propagation )。在下文中,也可以合适地将可变节点和校验 节点也一般地称为节点。节点之间的消息交换在概率解码中是实数值。因此,为了寻找分析的解 决方法,必须描绘取得连续值的消息的概率分布,从而要求与高难度伴随的 分析。因此,Gallager已经提出了算法A和算法B作为用于解码LDPC码的 算法。总的来说,在如图3所示的过程中解码LDPC码。这里,将LDPC码的 接收值看作Uo,将从校验节点输出的消息(在下文中也可以合适地称为校验 节点消息)看作Uj,并且将从可变节点输出的消息(在下文中也可以合适地 称为可变节点消息)看作Vi。另外,每一个消息均具有表示所谓的对数似然 比中"O,,似然的实数。将接收值Uo的"O,,似然的对数似然比表示为接收数据u0i 。在解码LDPC码时,如图3所示,在步骤Sll,首先对接收值Uo(接收 数据u。i)进行接收,将消息Uj初始化为"O",并且将取为整数作为迭代处理 的计数的变量L初始化为"O"。然后,处理的程序转到步骤S12。在步骤S12, 通过基于接收数据u。i执行由表达式(1 )表示的运算,获得可变节点消息Vi, 并且基于可变节点消息Vi通过执行由表达式(2)表示的运算,获得校验节点消息Uj。[数值表达式1]<formula>formula see original document page 8</formula>…(1)产i[数值表达式2]<formula>formula see original document page 8</formula>2 /-
2这里,表达式(1)和(2)中的dv和dc分别是表示奇偶校验矩阵H的 纵向(行)方向中"1"的数目和奇偶校验矩阵H的水平(列)方向中'T,的数 目的任意可选参数。例如,在(3, 6)节点的情况下,d^3且d^6。顺便提及,在由表达式(1 )或(2 )表示的运算中,求和或乘积(product) 运算的范围是1到dv-l或1到dc-l,这是因为不使用从分支(边缘)输入的、 想要输出消息的消息作为求和或乘积运算的参数。实际上,由表达式(2)表示的运算可以通过预先产生由关于表达式(3)所示的两个输入Vi和V2的一个输出定义的函数r (Vi, v2)的表并如表达式(4)所示连续(迭代)地使 用该表来执行。[数值表达式3];c = 2 tanh-1 {tanhO, / 2) tanh(v2 / 2)} = , v2) … (3 ) [数值表达式4] =, -2,、 -1)))) ... ( 4 )在步骤S12,变量k以"l"递增。然后,处理的程序转到步骤S13。在步 骤S13,做出关于变量L是否至少是预定迭代解码数N的判定。当在步骤S13 的判定做出变量L并非至少为N的判断时,处理的程序转回步骤S12。然后, 迭代相同的处理。当在步骤S13的判定做出变量L至少为N的判断时,处理的程序转到步 骤S14,其中通过执行由表达式(5)表示的运算获得消息Y,并将消息l作 为最终输出的解码结果输出。然后,终止ldpc码解码处理。[数值表达式5]《<formula>formula see original document page 8</formula>(5)产i这里,不同于表达式(l)表示的运算,通过使用从连接到可变节点的所 有分支给出的消息来执行表达式(5)表示的运算。在这样的ldpc码解码中,例如,在(3, 6)码的情况下,如图4所示消息在相应节点之间交换。顺便提及,在由"="表示的节点(可变节点)中执 行表达式(1)表示的运算,而在由"+"表示的节点(校验节点)中执行表达 式(2)表示的运算。特别地在算法A中,消息是二进制值的,并且在由"+" 表示的节点执行输入到该节点的dc-l个消息的异或,而当输入到由"="表示的 节点的dv-l个消息具有所有与接收数据R(U。i)完全不同的位值时,在该节 点输出码的反转。另一方面,近些年来,也已经进行了用于解码LDPC码的实现方法的研 究。在实现方法的描述之前,将建模和描述LDPC码的解码。图5示出了用于(3, 6) LDPC码(编码速率1/2,码长12)的奇偶校 验矩阵的示例。用于LDPC码的奇偶校验矩阵H可以由图6所示的Tanner 图表示。这里,在图6中,由"+"表示的节点是校验节点,而由"="表示的节 点是可变节点。每一个校验节点与奇偶校验矩阵H中的行相对应,而每一个 可变节点与奇偶校验矩阵H中的列相对应。连接校验节点和可变节点的线是 分支(边缘)并且在奇偶校验矩阵中等效于"l"。也就是说,当位于奇偶校-险 矩阵H的第j行第i列的分量是l时,在图6中从上面第i个可变节点("=" 节点)和从上面第j个校验节点("+"节点)通过分支彼此连接。每一个分支 表示与可变节点对应的LDPC码的位具有与校验节点对应的约束条件。顺便 提及,图6是示出了图5中奇偶校验矩阵H的Tanner图。作为LDPC码解码方法的求和乘积算法迭代可变节点的运算和校验节点 的运算。在如图7所示的可变节点中执行由表达式(1 )表示的运算。也就是说, 在图7中,与要计算的分支对应的可变节点消息Vi通过使用来自与所述节点 连接的其他分支的校验节点消息w和u2以及接收数据Uoi进行计算。与其他 分支对应的可变节点消息也分别以相同的方式计算。在描述校验节点的操作之前,使用等式axb=exp{In (|a|) +In (|b|) }xsign (a) xsign (b)的关系将表达式(2)重新写为表达式(6),其中sign (x) 表示2L的符号(正或负),并且对于x^)取1而对于x〈0取-l。[数值表达式6]<formula>formula see original document page 10</formula> (6) 此外假定非线性函数(将非线性函数^(;0定义为等式^00 = /"(仏1111(>/2))) (其中In ()是自然对数函数)x20,那么非线性函数0(;c)的反函数^(x)表 示为f (x) = 2tanh_V-"。因此,表达式(6)可以重新写为表达式(7)。<formula>formula see original document page 10</formula> (7) 在图8所示的校验节点中执行由表达式(7)表示的运算。也就是说,在 图8中,通过使用来自与对应于要计算的分支的校验节点连接的其他分支的可变消息V,、 V2、 V3、 V4和Vs计算所述校验节点消息Uj。与其他分支对应的校验节点消息也分别以相同的方式计算。顺便提及,函数^(x)可以表示为^(;c) = ln((Z +1) /(^ -1》。当x 〉 0时, 0(x) = ^(x)。当在一块硬件上实现函数^c)和f (x)时,LUT(查找表)可以 用于实现。LUT是相同的。除了求和乘积算法之外,用于解码LDPC码的方法也称为信任传播。在 任意情况下,要执行的运算的内容是相同的。在连续地逐个执行节点的运算由此执行解码的情况(完全串行解码)下 的实现方法将作为在解码设备中求和乘积算法的实现的示例。当在一块硬件中实现求和乘积算法时,需要在中等电路规模中并且以中 等运算频率迭代地执行由表达式(l)表示的可变节点运算和由表达式(7)表示的校验节点运算。这里,例如,假定对由具有36行和108列的奇偶校验矩阵H (如图9 所示)表示的码(编码速率2/3,码长108 )进行解码。图9中奇偶校验矩阵 H中"i"的数目是323。因此,在奇偶校验矩阵H的Tanner图中,分支的数目 是323。这里,将图9中的奇偶校验矩阵中的O表示为"."。图10示出了用于仅在一个周期中解码LDPC码的解码设备的配置的示例。根据图10的解码设备中每一个运算时钟计算与一个分支对应的消息。也就是说,图10中的解码设备包括两个分支存储器100和102、 一个校 验节点计算器101、 一个可变节点计算器103、 一个接收存储器104和一个控 制部分105。在图10的解码设备中,从分支存储器100或102中逐个读取消息,以便 将消息用于计算与所期望的分支对应的消息。将通过计算获得的消息逐个存 储在后级分支存储器102或100。为了迭代地执行解码,可以级联仅用于在 一个周期中执行解码的图IO的解码设备或可以迭代地使用图IO的解码设备, 以便实现迭代解码。这里,例如,假定连接图IO的多个解码设备。分支存储器IOO将从前级解码设备的可变节点计算器103 (未示出)提 供的消息(可变节点消息)D100以在消息D100将由后级校验节点计算器101 读取的顺序存储。在校验节点计算的阶段,分支存储器IOO将消息DIOO作 为消息D101以消息D100被存储在分支存储器100中的顺序提供到校验节点 计算器101。校验节点计算器101基于从控制部分105提供的控制信号D106,通过使 用从分支存储器IOO提供的消息DIOI (可变节点消息Vi),根据表达式(7) 执行运算(校验节点运算),并将通过该运算获得的消息D102 (校验节点消 息Uj)提供到后级分支存储器102。分支存储器102将从前级校验节点计算器101提供的消息D102以消息 D102将由后级可变节点计算器103读取的顺序存储。在可变节点计算的阶段, 分支存储器102将消息D102作为消息D103以消息D102被存储在分支存储 器102中的顺序提供到可变节点计算器103。在控制信号D107从控制部分105提供到可变节点计算器103的同时, 将接收数据D104从接收存储器104提供到可变节点计算器103。可变节点计 算器103基于控制信号D107,通过使用从分支存储器100提供的消息D103 (校验节点消息Uj )和从接收存储器100提供的接收数据D104(接收数据u0i), 根据表达式(1)执行运算(可变节点运算),并将作为该运算的结果所获得 的消息D105 (可变节点消息v》提供到未示出的后级解码设备的分支存储器 100。将LDPC码的接收数据uoi存储在接收存储器104中。控制部分105将用 于控制可变节点运算的控制信号D106和用于控制校验节点运算的控制信号 D107分别提供到校验节点计算器101和可变节点计算器103。图11示出了用于逐个执行校验节点运算的图10的校验节点计算器101 的配置的示例。在图11中,在假定每一个消息均被量化为包括符号位(用于区别正负的位)的总共6位的前提下,示出了校验节点计算器101。也就是说,消息分 别由6位量化值表示,并且为6位量化值赋予通过将预定数值范围等分为64 个值而获得的数值,所述数值可以由包括符号位的6位表示。另夕卜,由图9的奇偶校验矩阵H表示的LDPC码的校验节点运算在图11 中执行。此外,将时钟ck提供到图11的校验节点计算器101。将该时钟ck 提供到必要的块。每一个块与时钟ck同步地执行处理。例如,基于从控制部分105提供的1位控制信号D106,通过使用从分支 存储器IOO逐个读取的消息DIOI (可变节点消息Vi),图11的校验节点计算 器101根据表达式(7 )执行运算。也就是说,在校验节点计算器IOI中,从与奇偶校验矩阵H的各行对应 的可变节点逐个读取6位消息D101 (可变节点消息Vi),以便将作为每一个6 位消息的低5位的绝对值D122 (|vi|)提供到LUT 121 ,而将作为每一个6位 消息的最高有效位的符号位D121提供到异或电路129和FIFO (先入先出) 存储器133。在校验节点计算器101中,从控制部分105给出控制信号D106, 并将其提供到选择器124和选择器131。LUT 121读取5位运算结果D123 (州v, |)),作为关于输入其中的绝对值 D122 (lvip表达式(7)中的非线性函数州v,l)的运算结果,并将该5位运 算结果D123 (州v, I))提供到运算单元122和FIFO存储器127。运算单元122通过将每一个运算结果D123 ()加到存储在寄存器 123中的9位值D124来累计(integrate )运算结果D123,以便将作为累计的 结果所获得的9位累计值再次存储在寄存器123中。顺便提及,当已经累计 了针对从与奇偶校验矩阵H中的一行对应的所有分支给出的消息D101的绝 对值D122 (I Vi I)的运算结果D123时,复位寄存器123。这里,在运算单元122和寄存器123中,从LUT121提供的5位运算结 果D123 ()以高达FIFO存储器127中的延迟次数的最大数目(即高达 与在奇偶校验矩阵H中一行的最大权重相等的次数)的最大量累计。现在, 图9中奇偶校验矩阵H中一行的最大权重是9。因此,在运算单元122和寄 存器123中,以高达9倍的最大量累计9位运算结果D123 ()(累计9个5位值)。由于这个原因,在来自运算单元122的输出和来自运算单元122 之后部分的输出中,量化位数是9 (能够表示9 (倍)的位的最小数目),其 比由LUT 121输出的5位运算结果D1123 ( 0(|v,|))大了 4位,从而可以表示 通过累计5位值9次而获得的值。
当与奇偶校验矩阵中的 一行对应的消息D101 (可变节点消息Vi)已经被 逐个读出并且作为与 一行对应的运算结果D123的累计的结果的累计值已经 被存储在寄存器123中时,从控制部分105提供的控制信号D106从0改变 到1。例如,当行权重是"9"时,对于第一时钟到第八时钟控制信号D106取"0", 而对于第九时钟控制信号D106取'T,。
当控制信号D106是'T,时,选择器104选择在寄存器123中存储的值, 即9位值D124 ( 5>(| v, |)从i=l到i=dc)作为从与奇偶校验矩阵H中一行对 应的所有分支给出的消息DIOI (可变节点消息Vi)计算的州v,l)的累计的结 果,并将9位值D124输出为值D125,以便将值D125存储在寄存器125中。 寄存器125将所存储的值D125作为9位值D126提供到选择器124和运算单 元126。当控制信号D106是"O"时,选择器124选择从寄存器125提供的值 D126,并输出值D126,以便值D126再次存储在寄存器125中。也就是说, 寄存器125将在最后一次累计的州v, l)提供到选择器124和运算单元126,除 非从与奇偶校验矩阵h中一行对应的所有分支给出的消息DlOl(可变节点消 息Vi)计算的判v,l)被完全累计。
另一方面,FIFO存储器127延迟从LUT121输出的5位运算结果D123 ()直到从寄存器125输出新值D126 ( 2>0,|)从1=1到i=dc)为止, 并且将5位运算结果D123 ( i))作为5位值D127提供到运算单元126。
值D127,并将减法结果作为5位差值D128提供到LUT 128。也就是说,运 算单元126从与奇偶校验矩阵H中一行对应的所有分支给出的消息DlOl(可 变节点消息Vi)获得的^vj)的累计值中,减去从想要计算校验节点消息Uj 的分支给出的消息D101 (可变节点消息Vj)计算的0(1 v, i),并将差值(Z0(1 v, i) 从i=l到i=dc)作为差值D128提供到LUT 128。
顺便提及,由于运算单元126从寄存器125提供的9位值D126中减去 从FIFO存储器127提供的5位值D127,所以减法结果最大可以是9位。然 而,运算单元126输出5位差值D128。由于这个原因,当作为从寄存器125提供的9位值D126中减去从FIFO存储器127提供的5位值D127的结果的 减法结果不能由5位表示时,即当减法结果超过可以由5位表示的最大值(31 (二进制中11111))时,运算单元126将减法结果截断成可以由5位表示的 最大值,并将截断的值作为5位差值D128输出。
关于差值D128 ( 2^(Iv,l)从i^到i=dc), LUT128输出5位运算结果 D129 ( f(S^(kl)))作为表达式(7)中反函数的运算结果。
与前述处理同时,异或电路129执行在寄存器130中存储的1位值D131 和符号位D121的异或,由此将符号位彼此相乘,并再次在寄存器130中存 储由此获得的一位乘法结果D130。顺便提及,当从与奇偶校验矩阵H中一行 对应的所有分支给出的消息DIOI (可变节点消息Vi)的符号位D121已经被 完全相乘时,复位寄存器130。
当作为从与奇偶校验矩阵H中 一行对应的所有分支给出的消息D101的 符号位D121的乘法结果的乘法结果D130 ( ^>—(卜,|)从1=1到i=de)已经被 存储在寄存器130中时,从控制部分105提供的控制信号D106从"0"改变到
当控制信号D106是"l"时,选择器131选择在寄存器130中存储的值, 即作为从与奇偶校验矩阵H中一行对应的所有分支给出的消息D101的符号 位D121的乘法结果的值D131( 2>&"( ,|)从卜1到i=dc),并将值D131作为 1位值132输出,以便将1位值D132存储在寄存器132中。寄存器132将所 存储的值D132作为1位值D133提供到选择器131和异或电路134。当控制 信号D106是"0,,时,选择器131选择从寄存器132提供的值D133,并输出值 D133,以便将值D133再次存储在寄存器132中。也就是说,寄存器132将 最后一次存储的值提供到选择器131和异或电路134,除非从与奇偶校验矩 阵H中 一行对应的所有分支给出的消息D101的符号位D121 #皮完全相乘。
另一方面,FIFO存储器133延迟符号位D121,直到将新值D133 (5>g"(|v, |)从i=l到i=de)从寄存器132提供到异或电路134为止,并且将 符号位D121作为1位值D134提供到异或电路134。异或电路134执行从寄 存器132提供的值D133和从FIFO存储器133提供的值D134的异或,由此 将值D133除以D134,并输出1位除法结果作为商值D135。也就是说,异或 电路134将从与奇偶校验矩阵H中一行对应的所有分支给出的消息D101的 符号位D121 ( sign (|Vi|))的乘积值除以从想要计算校验节点消息Uj的分支给出的消息D101的符号位D121 ( sign (|Vi|)),并将商值(n^"")从i=l 到i-dc-l)作为商值D135输出。
将包括从LUT 128中作为6位的低5位输出的5位运算结果D129以及 从异或电路134中作为6位的最高有效位(符号位)输出的1位商值D135 的总共6位,作为来自校验节点计算器101的消息D102 (校验节点消息Uj) 输出。
如上所述,通过校验节点计算器101执行由表达式(7)表示的运算,从
而获得校验节点消息Uj。
由于图9中奇偶校验矩阵H中一行的最大权重是9,即由于提供到校验 节点的可变节点消息Vi的最大数目是9,所以校验节点计算器101具有用于 延迟9个校验节点消息Vi的非线性函数运算结果(州v, I))的FIFO存储器127 和FIFO存储器133。为了计算其行权重小于9的校验节点消息Uj,将FIFO 存储器127和FIFO存储器133中的延迟量减小到等于行权重的值。
图12示出了用于逐个执行可变节点运算的图IO的可变节点计算器103 的配置的示例。
与图ll类似,图12也在假定每一个消息均被量化为包括符号位的总共 6位的前提下,示出了可变节点计算器103。
此外,还在图12中执行由图9的奇偶校验矩阵H表示的LDPC码的可 变节点运算。将时钟ck提供到图12的可变节点计算器103。将该时钟ck提 供到必要的块。每一个块与时钟ck同步地执行处理。
例如,图12的可变节点计算器103基于从控制部分105提供的1位控制 信号D107,通过使用从分支存储器102逐个读取的消息D103以及从接收存 储器104读取的接收数据D104 ( uQi ),根据表达式(1 )执行运算(可变节点 运算)。
也就是说,在可变节点计算器103中,逐个读取从与奇偶校验矩阵H中 每一行对应的校验节点给出的6位消息D103 (校验节点消息Uj),并将其提 供到运算单元151和FIFO存储器155。此外,在可变节点计算器103中,从 接收存储器104逐个读取6位接收数据D104 (u。i)并将其提供到运算单元 156。此外,将从控制部分105给出的控制信号D107提供到可变节点计算器 103,从而将控制信号D107提供到选择器153。
运算单元151通过将6位消息D103加到在寄存器152中存储的9位值D151来累计6位消息D103 (校验节点消息Uj),并将作为累计的结果获得的 9位累计值再次存储在寄存器152中。顺便提及,当从与奇偶校验矩阵H中 一列对应的所有分支给出的消息D103已经被完全累计时,复位寄存器152。 这里,在运算单元151和寄存器152中,6位消息D103以高达FIFO存 储器155中延迟次数的最大数目(即等于奇偶校验矩阵H中一列的最大权重 的次数)的最大量累计。现在,图9中奇偶校验矩阵H中一列的最大权重是 5。因此,在运算单元151和寄存器152中,6位消息D103以高达5倍的最 大量累计(累计5个6位值)。由于这个原因,在来自运算单元151的输出和 来自运算单元151之后的输出中,量化位数是9 (能够表示5 (倍)的位的最 小数目),其比6位消息D103大3,从而可以表示通过6位值的5次累计而 获得的值。
当已经逐个读取与奇偶校验矩阵H中一列对应的消息D103并且已经在 寄存器152中存储与一列对应的消息D103的累计值时,从控制部分105提 供的控制信号从"0,,改变到"1"。例如,当列加权是"5,,时,对于第一到第四时 钟控制信号D107取"0",而对于第五时钟控制信号D107取"1"。
当控制信号D107是'T,时,选择器153选择在寄存器152中存储的值, 即作为从与奇偶校验矩阵H中一列对应的所有分支给出的消息D103(校验节 点消息Uj)的累计的结果的9位值D151 (Z^从j^到dv),并且输出9位 值D151,以便将D151存储在寄存器154中。寄存器154将存储的值D151 作为9位值D152提供到选择器153和运算单元156。当控制信号D107是"0" 时,选择器153选择从寄存器154提供的值D152,并输出值D152,以便将 值D152再次存储在寄存器154中。也就是说,寄存器154将最后一次累计 的值提供到选择器153和运算单元156,除非从与奇偶校验矩阵H中一列对 应的所有分支给出的消息D103 (校验节点消息Uj)被完全累计。
另一方面,FIFO存储器155延迟从校验节点给出的消息D103直到从寄 存器154输出新值D152 ( 2>,ij=l到j=dv)为止,并将消息D103作为6 位值D153提供到运算单元156。运算单元156从寄存器154提供的值D152 中减去从FIFO存储器155提供的值D153。也就是说,运算单元156从与奇 偶校验矩阵H中一列对应的所有分支给出的消息D103 (校验节点消息Uj)的
累计值中减去想要计算可变节点消息Vi的分支给出的校验节点消息Uj ,由此
获得差值(2>,人〗=1到〗=山-1)。此外,在运算单元156中,将从接收存储器104提供的接收数据D104 ( uoi)加到差值(从j=l到j=dv-l ),以便将 作为加法结果而获得的6位值作为消息D105 (可变节点消息Vi)输出。
如上所述,通过可变节点计算器103执行表达式(1)表示的运算,由此
获得可变节点消息Vi。
顺便提及,由于图9中奇偶校验矩阵H中一列的最大权重是5,也就是 说,由于提供到可变节点的校验节点消息Uj的最大数是5,所以可变节点计 算器103具有用于延迟5个校验节点消息u」的FIF0存储器155。为了计算其 列权重小于5的列的可变节点消息Vj,将FIFO存储器155中延迟量减小到等 于列权重的值。
存储器155提供的6位值D153的运算和加上从接收存储器104提供的6位 接收数据D104的运算,从而运算的结果可能小于可以由6位消息D105表示 的最小值,或可能大于可以由6位消息D105表示的最大值。当运算结果小 于可以由6位消息D105表示的最小值时,运算单元156将运算结果截断成 最小值。当运算结果大于可以由6位消息D105表示的最大值时,运算单元 156将运算结果截断成最大值。
在图10的解码设备中,根据奇偶校验矩阵H的权重,从控制部分105 给出控制信号。根据图IO的解码设备,可以简单地改变控制信号,以使得只 要分支存储器100和102以及校验节点计算器101和可变节点计算器103的 FIFO存储器127、 133和155的容量足够大,就可以解码奇偶校验矩阵H的 多种LDPC码。
尽管在图10的解码设备中解码的最终级中没有示出,但是执行表达式 (5 )表示的运算代替表达式(1 )表示的运算,以便将运算的结果作为最终 解码结果输出。
当使用图10的解码设备迭代地用于解码LDPC码时,交替地执行校验节
点操作和可变节点操作。也就是说,在图IO的解码设备中,可变节点计算器
103通过使用由校验节点计算器101执行的校验节点运算的结果来执行可变
节点运算,而校验节点计算器101通过使用由可变节点计算器103执行的可 变节点运算的结果来执行校验节点运算。
顺便提及,尽管图10的解码设备是用于通过连续逐个执行相应节点的运 算来解码LDPC码的完全串行解码设备,但是也已经提出了诸如用于同时执行所有节点的运算的完全并行解码设备(如,见非专利文档1)和用于同时 执行确定数目的节点(既非一个节点也非所有节点)的运算的部分并行解码 设备(如,见非专利文档2和专利文档1 )之类的其他设备。
例如,在图10的解码设备中,要求与LDPC码的码长和用于表示接收数 据D104的量化值的位数(量化位数)的乘积相等的至少位数作为用于存储 接收数据D104的接收存储器104的存储容量。此外,要求与分支总数(总 分支数)和用于表示消息的量化值的位数(量化位数)的乘积相等的至少位 数作为用于存储消息的分支存储器100或102的存储容量。
因此,当如上所述码长是108,用于表示消息(包括接收数据D104)的 量化值的位数是6,并且分支数是323时,要求具有至少648 ( 108x6)位存 储容量的接收存储器104以及具有至少1938 (323x6 )位存储容量的分支存 储器100和102。
尽管为了描述的简化这里示出了码长是10 8的情况,但是实际中可以将 大约几千的值用作LDPC的码长。
另一方面,为了提高LDPC码的解码的精度,简单地需要将具有特定程 度的位数的量化值用作用于表示包括接收数据D104的消息的量化值。
如上所述,然而,分支存储器100和102以及接收存储器104的存储容 量与用于表示消息的量化值的位数成比例。因此,当由具有很大位数的量化 值表示消息时,需要很大容量的存储器作为解码设备的组成部分的存储器, 由此导致设备尺寸的增大。
专利文档1: JP-A-2004-364233
非专利文档1: C. Howland and A. Blanksby, "Parallel Decoding Architectures for Low Density Parity Check Codes", Symposium on Circuits and Systems, 2001
非专利文档2: E. Yeo, R Pakzad, B. Nikolic and V. Anantharam, "VLSI Architectures for iterative Decoders in Magnetic Recording Channels", IEEE Transactions on Magnetics, Vol. 37, No. 2, March 200
发明内容
本发明要解决的问题
在图10的解码设备中,由校验节点计算器101 (图11 )根据表达式(7 )执行的校验节点运算之中非线性函数的的运算和反函数^(5>(卜|))的运
算中的精度对解码LDPC码的精度施加影响。
也就是说,当非线性函数的0(卜,|)的运算和反函数^(2>(卜,|))的运算中的
精度变差时,解码LDPC码的精度也变差。
例如,通过变窄在运算中使用的量化值的量化宽度(由确定量化值表示 的数值和与确定量化值差1的量化值表示的数值之间差)的方法或增大由量 化值表示的数值的动态范围(由量化值表示的数值的最大值和最小值之差) 的方法或通过这两种方法,可以提高非线性函数的^(卜l)运算和反函数
f (1>(卜,|))的运算中的精度。
然而,即使当量化宽度变窄(同时保持当前动态范围)时或即使当量化
值表示的数值的动态范围增大(同时保持当前量化宽度)时,量化值的位数
仍然增大。
在为了将非线性函数的的运算和反函数^(^>(卜,|))的运算中的精 度提高到确定程度或更高而在整个解码设备中使用具有窄量化宽度和大动态 范围的量化值(能够表示数值)的情况下,这样的量化值的位数变得很大, 使得需要大容量存储器作为用作如上所述的解码设备的组成部分的存储器, 由此导致设备尺寸的增大。
在如图11中所示的校验节点计算器101中那样,由LUT(图11中的121 和128)实现非线性函数的-(卜,|)的运算和反函数,(^>(卜|))的运算的情况下, 需要大容量LUT作为每一个均接收或输出具有大位数的量化值的LUT。这样 的大容量LUT占据了校验节点计算器的电路尺寸的很大一部分。
在这种情况下开发本发明。本发明的目标是使得可以高精度地解码 LDPC码,同时抑制设备尺寸的增大。
用于解决问题的装置
根据本发明的一个方面,提供了解码设备或方法,包括第一运算单元 中的函数运算单元/步骤,用于接收作为使用固定量化宽度表示数值的位串的 第一量化值作为输入,并输出非线性函数的运算结果作为第二量化值,该第 二量化值是使用根据位串的一部分而确定的量化宽度来表示数值的位串,提 供第一运算单元用于执行用于解码LDPC码的校验节点的校验节点运算,校 验节点运算包括非线性函数的运算和非线性函数的反函数的运算;以及第一 运算单元中的反函数运算单元/步骤,用于接收第二量化值作为输入,并输出非线性函数的反函数的运算结果作为第一量化值。
在根据该方面的解码设备或方法中,当作为用于解码LDPC码的校验节 点的校验节点运算并且包括非线性函数的运算和非线性函数的反函数的运算 的校验节点运算被执行时,接收作为表示使用固定量化宽度表示数值的位串 的第一量化值作为输入,并输出非线性函数的运算结果作为第二量化值,所 述第二量化值是使用根据位串的一部分而确定的量化宽度表示数值的位串, 而接收第二量化值作为输入,并输出非线性函数的反函数的运算结果作为第
一量化值。
本发明的效果
根据本发明,可以高精度地解码LDPC码,同时抑制设备的尺寸的增大。


图1是用于描述LDPC码的奇偶校验矩阵H的视图2是用于示出具有下三角矩阵作为奇偶部分的奇偶校验矩阵H的视
图3是用于描述解码LDPC码的过程的流程图; 图4是用于描述消息流程的视图5是示出了 LDPC码的奇偶校验矩阵H的示例的视图; 图6是示出了奇偶校验矩阵的Tanner图的视图; 图7是示出了可变节点的视图; 图8是示出了校验节点的视图9是示出了 LDPC码的奇偶校验矩阵H的示例的视图; 图IO是示出了用于逐个执行节点运算的LDPC码解码设备的配置的示例 的框图ll是示出了用于逐个计算消息的校验节点计算器101的配置的示例的
框图12是示出了用于逐个计算消息的可变节点计算器103的配置的示例的
框图13是示出了本发明所应用到的解码设备的配置的示例的框图; 图14是示出了校验节点计算器171的配置的示例的框图; 图15是用于描述校验节点计算器171的处理的流程图;图16是示出了线性函数0(x)及其反函数f O)的视图; 图17是示出了本发明所应用到的解码设备的第 一 实施例的配置的示例 的框图18是示出了校验节点计算器181的配置的示例的框图; 图19是用于描述LUT221的视图; 图20是用于描述转换电路231的视图; 图21是用于描述转换电路231的处理的视图; 图22是用于描述转换电路233的视图; 图23是用于描述转换电路233的处理的视图; 图24是用于描述LUT 228的视图; 图25是用于描述校验节点计算器181的处理的流程图; 图26是示出了本发明所应用到的解码设备的第二实施例的配置的示例 的框图27是示出了可变节点计算器103的配置的示例的框图; 图28是示出了准校验节点计算器412的配置的示例的框图; 图29是示出了准可变节点计算器415的配置的示例的框图; 图30是示出了 BER/FER的框图31是示出了准校验节点计算器412的配置的另一示例的框图;以及 图32是示出了准校验节点计算器412的配置的再一示例的框图。
附图标记描述
100, 102分支存储器,103可变节点计算器,104接收存储器,105控 制部分,129异或电路,130寄存器,131选择器,132寄存器,133 FIFO 存储器,134异或电路,171, 181校验节点计算器,221, 228LUT, 231 至233转换电路,410用于存储中间解码结果的存储器,411开关,412准 校验节点计算器,413分支存储器,415准可变节点计算器,416接收存储 器,417控制部分,431运算单元,432LUT, 433运算单元,434寄存器, 435选择器,436寄存器,437运算单元,438 FIFO存储器,439LUT, 440 异或电路,441寄存器,442选择器,443寄存器,444 FIFO存储器,445异 或电路,471运算单元,472寄存器,473选择器,474寄存器,475运算 单元,501至503转换电路,504LUT, 1211 LUT, 1122运算单元,1123寄存器,1124选择器,1125寄存器,1126运算单元,1127 FIFO存储器,1128 IAJT。
具体实施例方式
参照附图,将在下文中描述执行本发明的方式。
图13是示出了本发明所应用到的、用于解码LDPC码的解码设备的配置 的示例。
在图13中,相同的附图标记表示与图10中解码设备对应的相同的部分。 将在下文中适当地省略关于这些部分的描述。
图13中的解码设备与图10中的解码设备的共同之处在于提供了分支 存储器100和102、可变节点计算器103、接收存储器104以及控制部分105。 图13中的解码设备与图10中的解码设备的不同之处在于提供校验节点计 算器171代替校验节点计算器101。
例如,假定在图13中的解码设备中解码由图9中所示的奇偶校验矩阵H 表示的前述LDPC码(编码速率2/3,码长108 )。将相同的假定应用于将在 后面描述的图17和26的解码设备。
在图13中的解码设备中,校验节点计算器171执行校验节点运算,而可 变节点计算器103执行可变节点运算。通过交替执行校验节点运算和可变节 点运算,解码LDPC码。
也就是说,在码长(如上所述在这种情况下是108)的间隔中连续地提 供LDPC码的接收数据uoi并将其存储在接收存储器104中。
可变节点计算器103执行用于解码LDPC码的每一个可变节点的可变节 点运算。
也就是说,将作为由校验节点计算器171执行的校验节点运算(将在后 面描述)的结果的消息D102 (校验节点消息Uj)存储在分支存储器102中。 分支存储器102将消息D102作为消息D103提供到可变节点计算器103。此 外,将控制信号D107从控制部分105提供到可变节点计算器103,而将每一 个接收数据D104从接收存储器104提供到可变节点计算器103。
如上所述,将可变节点计算器103配置为如图12中所示。可变节点计算 器103基于控制信号D107,通过使用从分支存储器100提供的消息D103(校 验节点消息Uj)和从接收存储器104提供的接收数据D104 (uoi),根据表达式(1 )执行可变节点运算,并将作为可变节点运算的结果而获得的消息D105
(可变节点消息Vi)作为消息D100提供到分支存储器100。
分支存储器IOO存储消息DIOO (可变节点消息Vi),所述消息D100作 为可变节点运算的结果而获得并且从可变节点计算器103提供。分支存储器 100将消息D100读取为消息DlOl,并将消息D101提供到校验节点计算器 171。
校验节点计算器171执行校验节点运算,所述校验节点运算是用于解码 LDPC码的每一个校验节点的校验节点运算,并且包括非线性函数的运算和 非线性函数的反函数的运算。
也就是说,校验节点计算器171基于从控制部分105提供的控制信号
D106,通过使用从分支存储器IOO给出的消息DIOI (可变节点消息Vj),根
据表达式(7)执行校验节点运算(所述校验节点运算包括非线性函数0(x)的 运算和非线性函数^W的反函数--i(JC)的运算),并将通过校验节点运算而获得
的消息D102 (校验节点消息Uj)提供到后级分支存储器102。
分支存储器102存储从前级校验节点计算器171提供的消息D102。如上 所述,将在分支存储器102中存储的消息D102读取为D103,从而将消息D103 提供到可变节点计算器103。
在图13中的解码设备中,例如,关于在接收存储器104中存储的码长的 每一个接收数据u。i,交替执行可变节点运算和校验节点运算预定次数。最后 一次,执行表达式(5)表示的运算代替表达式(1)表示的运算,从而将表 达式(5 )表示的运算的结果作为在接收存储器104中存储的码长的每一个接 收数据uoi (LDPC码)的最终解码结果输出。
图13的解码设备与图10的前述解码设备的相同之处在于通过迭代地 执行校验节点运算和可变节点运算来解码LDPC码。
在作为校验节点运算和可变节点运算执行的处理中,在从非线性函数 ^c)的运算到反函数^("的运算的处理部分中,图13的解码设备使用量化 值,所述量化值使用比图10的解码设备使用的量化值的精度更高的精度表示 数值,而在其他处理部分中使用与图10的解码设备所使用的量化值相同的量 化值。
这里,在图10的解码设备中,如上所述,消息(接收数据U(H以相同的
方式处理)由6位量化值表示,将所述6位量化值指定到通过将预定数值范围划分为可用由包括符号位的6位表示的64值而获得的数值。也就是说,当 预定数值范围是从-R/2到+R/2 (R>0)时,以R/64的量化宽度的间隔将表示 消息的6位量化值分别指定为从-R/2到+R/2的范围中的数值,并分别表示这 些数值。现在将表示消息的每一个6位量化值称为普通量化值。
在图13的解码设备中,将使用比普通量化值更高精度表示数值并且用在 从非线性函数0(x)的运算到反函数f'(x)的运算的处理部分中的量化值称为高 精度量化值。
由于高精度量化值使用比普通量化值更高的精度表示数值,所以高精度 量化值的量化宽度,即指定到确定量化值的数值与指定到比确定量化值小1 的量化值之差(的绝对值)小于普通量化值的量化宽度。
因此,当将高精度量化值的位数设置为与普通量化值的位数(在这种情 况下是6位)相同时,可以由高精度量化值表示的数值范围比可以由普通量 化值表示的数值范围更窄。也就是说,可以由高精度量化值表示的最大值和 最小值之差(动态范围)比可以由普通量化值表示的最大值和最小值之差(动 态范围)更窄。
当将高精度量化值的位数设置为与普通量化值的位数相同时,在由Dyl 表示可以由高精度量化值表示的动态范围而由Qdl表示这样的高精度量化值 的量化宽度的条件下,例如,在由高精度量化值表示具有比Dyl更宽的动态 范围Dy2的数值范围而将高精度量化值的量化宽度保持为Qdl的情况下,或 者在由高精度量化值表示具有动态范围Dyl的数值范围而将高精度量化值的 量化宽度设置为Qd2 (其窄于Qdl)的情况下,高精度量化值的位数必须大 于普通量化值的位数。
尽管使用高于普通量化值的精度表示数值(即具有窄于普通量化值的量 化宽度)的量化值可以用作高精度量化值而不管动态范围和位数,但是具有 小于普通量化值的量化宽度、具有宽于普通量化值的动态范围和具有大于普 通量化值的位数的量化值在这里用作高精度量化值。
例如,假定高精度量化值的位数是10 (位)(包括符号位),其大于普通 量化值的位数(6位),那么在从非线性函数^c)的运算到反函数f(x)的运算 的处理部分(在下文中合适地称为非线性函数操作中处理)中,图13的解码 设备使用IO位高精度量化值,而在其他处理部分中图13的解码设备使用6 位普通量化值。这里,非线性函数操作中处理是校验节点运算处理的一部分。IO位高精
度量化值仅用于非线性函数操作中处理。因此,由于在分支存储器100和102 中存储的每一个消息中使用6位普通量化值或在接收存储器104中存储的每 一个接收数据uoi中使用6位普通量化值,所以图13的解码设备中的分支存 储器100和102以及接收存储器104的必要存储容量与图10的解码设备中的 容量相同。
接着,图14示出了图13中校验节点计算器171的配置的示例。顺便提 及,在图14中,相同的附图标记表示与图11中校验节点计算器101对应的 相同部分。将在下文中适当地省略有关这些部分的描述。
在校验节点计算器171中,提供LUT1121、运算单元1122、寄存器1123、 选择器1124、寄存器1125、运算单元1126、 FIFO存储器1127和LUT 1128 代替图11的LUT 121、运算单元122、寄存器123、选择器124、寄存器125、 运算单元126、 FIFO存储器127和LUT 128。此外,校验节点计算器171与 图11的校验节点计算器101的不同之处在于图14中粗线中所示的每一个 部分的位数均大4,其为高精度量化值和普通量化值之差的位数。
例如,图14中的校验节点计算器171也以与图11中校验节点计算器101 相同的方式,基于从控制部分105提供的1位控制信号D106,通过使用逐个 从分支存储器IOO读取的消息DIOI (可变节点消息Vi),根据表达式(7)执 行校验节点运算。
也就是说,图15示出了由校验节点计算器171执行的处理。
在校验节点计算器171中,从与在奇偶校验矩阵H中每一列对应的可变 节点给出的6位消息D101 (可变节点消息v。从分支存储器100 (图13)中 逐个读取,从而将作为每一个6位消息的低5位的绝对值D11 (IvjI)提供到 LUT1121,而将作为每一个6位消息的最高有效位的符号位D121提供到异 或电路129和FIFO (先入先出)存储器133。将来自控制部分105的控制信 号D106给到校验节点计算器171,从而将控制信号D106提供到选择器1124 和选择器131。
LUT 1121存储与5位绝对值D122 (|Vi|)相关联的表达式(7 )中非线性 函数^(x)的运算结果D1123 ( )。此外,在LUT1121中,每一个绝对值 D122 (hi)由普通量化值表示,而每一个运算结果D1123 ( )由不具有 符号位的高精度量化值表示。也就是说,例如,LUT1121存储与由普通量化值表示的绝对值D122 ( hi)相关联的、由高精度量化值表示的9位非线性函 数0(卜,I)的运算结果D1123 ( -(卜,l))。
在步骤SI, LUT 1121接收由普通量化值表示的5位绝对值D122 (|Vi|) 作为输入,读取与绝对值D122 (|Vi|)相关联地、由高精度量化值表示的9位 非线性函数^(卜,I)的运算结果D1123 ( 一v,l)),并将运算结果D1123 (列v》) 输出到运算单元1122和FIFO存储器1127。
因此,在步骤S1, LUT1121等效地执行用于执行表达式(7)中非线性 函数的一v,l)运算的处理和用于将普通量化值转换为高精度量化值的处理。此 后,通过使用这样的高精度量化值执行处理,直到在LUT1128 (将在后面描 述)中执行用于将高精度量化值转换为普通量化值的处理为止。
然后,在步骤S2,运算单元1122通过将9位运算结果D1123 (-(卜,l)) 加到在寄存器1123中存储的13位值D1124来累计运算结果D1123,并将作 为累计的结果的13位累计值再次存储在寄存器1123中。顺便提及,当来自 与奇偶校验矩阵H中 一行对应的所有分支的消息D101的绝对值D122 (|vi|) 被完全累计时,复位寄存器1123。
这里,在运算单元1122和寄存器1123中,从LUT1121提供的9位运 算结果D1123 ()以高达FIFO存储器1127中最大延迟次数的数目(即 等于奇偶校验矩阵H中一行的最大权重的次数)的最大值累计。现在,图9 中奇偶校验矩阵H中一行的最大权重是9。因此,在运算单元1122和寄存器 1123中,9位高精度量化值以高达9倍的最大量累计(累计9个9位高精度 量化值)。由于这个原因,在来自运算单元1122的输出和来自运算单元1122 之后的部分的输出中,高精度量化值的位数是B (能够表示9 (倍)的最小 位数),其比从LUT1121输出的9位运算结果D1123 ( 0(卜,|))大4,从而可 以表示作为累计9位高精度量化值9次而获得的值。
当已经逐个读取与奇偶校验矩阵H中一行对应的消息D101 (可变节点 消息Vi),并且已经在寄存器1123中存储作为与一行对应的运算结果D1123 的累计结果的累计值时,从控制部分105提供的控制信号D106从"0"改变到 "1"。例如,当奇偶校验矩阵H中行权重是"9"时,对于第一时钟到第八时钟 控制信号D106取"0",而对于第九时钟控制信号D106取"l"。
当控制信号D106是'T,时,选择器1124选择在寄存器1123中存储的值, 即作为从与奇偶校验矩阵H中 一行对应的所有分支给出的消息D101 (可变节点消息v。而获得的0(卜,l)的累计结果的13位累计值D1124 ( 5>(卜,|)从1=1 到i-dc)时,在步骤S3将13位值D1124作为13位值D1125输出,从而将 13位值D1125存储在寄存器1125中。寄存器1125将所存储的值D1125作为 13位值D1126提供到选择器1124和运算单元1126。
当控制信号D106是"0"时,选择器1124选择从寄存器1125提供的值 D1126,并输出值D1126,从而将值D1126再次存储在寄存器1125中。也就 是说,除非从来自与奇偶校验矩阵H中一行对应的所有分支的消息D101 (可 变节点消息Vi)而获得的一v,l)被完全累计,否则寄存器1125将最后一次累计 的0(卜,l)提供到选择器1124和运算单元1126。
另一方面,FIFO存储器1127延迟从LUT1121输出的9位运算结果D1123 (-(卜,l))直到从寄存器1125输出新值D1126 ( 2>(卜,|)从1=1到i=dc)为止, 并将9位计算结果D1123 ()作为9位值D1127提供到运算单元1126。
存储器1127提供的9位值D1127(使用从寄存器1125提供的13位值D1126,
并将减法结果作为9位差值D1128提供到LUT 1128。
也就是说,运算单元1126从与奇偶校验矩阵H中一行对应的所有分支 给出的消息D101 (可变节点消息力)而获得的累计值刈v^I)中减去从想要计算 校验节点消息Uj的分支给出的消息D101 (可变节点消息Vi)获得的-(卜,l),并 将差值(2>(卜,|)从〖=1到i=dc)作为差值D1128提供到LUT1128。
顺便提及,当作为通过从寄存器1125提供的13位值D1126中减去从
量化值)超过可以由9位差值D1128表示的最大值时,运算单元1126将作为 减法结果的高精度量化值截断成可以由9位高精度量化值表示的最大值,并 将所截断的高精度量化值作为9位差值D1128输出。
LUT 1128存储与差值D1128 ( ^>(卜,|)从i=l到i=dc-l )相关联的表达式
(7)中反函数^(Z列v,l))的运算的运算结果D1129 (0-'(^>(卜|)))。此外,在 LUT 128中,由高精度量化值表示差值D1128 ( ^>(卜,|)从i=l到i=dc-l ),而 由不具有符号位的普通量化值表示反函数f (Z列v,l))的运算结果D1129
(矿(2>(卜,|》)。也就是说,LUT 1128存储与由高精度量化值表示的9位差 值D1128 ( 2>(卜,|)从i=l到i=dc-l )相关联的、由普通量化值表示的5位反函数<formula>formula see original document page 28</formula>的运算结果<formula>formula see original document page 28</formula>.
在步骤S5, LUT 1128接收由高精度量化值表示的9位差值<formula>formula see original document page 28</formula>从i=l到i=dc-l )作为输入,并且读取并输出与差值D1128相关联 的、由普通量化值表示的5位反函数<formula>formula see original document page 28</formula>的运算结果<formula>formula see original document page 28</formula>.
因此,在步骤S5, LUT1128等效地执行执行表达式(7)中反函数
<formula>formula see original document page 28</formula>的运算的处理和将高精度量化值转换为普通量化值的处理。此后, 通过使用普通量化值执行处理,直到在前述LUT 1121中执行将普通量化值转 换为高精度量化值的处理为止。
与上述处理并行地,在异或电路129、寄存器130、选择器131、寄存器 132、 FIFO存储器133和异或电路134中执行与图11的校验节点计算器101 中的处理相同的处理。由此,异或电路134将通过从与奇偶校验矩阵H中一 行对应的所有分支给出的消息DIOI (可变节点消息Vi)的符号位D121 (signal)的相乘获得的值除以来自想要计算校验节点消息Uj的分支的消息 D101的符号位D121 ( signal ),并将商值((n^"")从i=l到卜d^1 ))作 为商值D135输出。
校验节点计算器171输出由总共6位的普通量化值表示的消息D102(校 验节点消息Uj),所迷总共6位包括从LUT 1128输出的普通量化值5位运算 结果D1129作为低5位,以及从异或电路134输出的1位商值D135作为最 高有效位(符号位)。
因此,在校验节点计算器171中,LUT1121将普通量化值转换为高精度 量化值,而LUT1128将高精度量化值转换为普通量化值,从而在执行校验节
点运算和可变节点运算的处理中,在从非线性函数^c)的运算到其反函数
f (x)的运算的处理部分中使用高精度量化值,而在其他处理部分中使用普通 量化值。因此,可以使用高精度执行LDPC码的解码,而同时抑制解码设备 的尺寸的增大。
也就是说,图16示出了非线性函数^c)及其反函数^W。顺便提及, 在图16中,符号o表示当使用普通量化值时,非线性函数^(x)及其自变量s 的运算的结果可以取得的数值,以及反函数^Oc)及其自变量t的运算的结果 可以取得的数值。
图16的左侧示出了非线性函数0("。图16的右侧示出了其反函数f(x)。在图16的左侧示出的非线性函数0(x)在其自变量X不小于确定的大数值 时变为基本上等于0。
另一方面,在图16的右侧示出的反函数f(jc)在其自变量L靠近数值0 时突然改变。
因此,当使用普通量化值执行作为校验节点运算的表达式(7 )的运算中
从非线性函数^(;c)的运算到其反函数f (;c)的运算的处理部分时,运算精度劣 化。
也就是说,如果由普通量化值表示非线性函数^c)的运算结果,则当自 变量x不小于确定大的值时,作为非线性函数^c)的运算的所有结果,获得 表示相同的数值O的普通量化值。也就是说,难于通过普通量化值使用高精 度表示非线性函数^(x)的运算结果,这是因为当自变量x不小于确定大的值 时,非线性函数0(x)的运算结果变为基本上等于O。
尽管在由表达式(7)表示的校验节点运算中反函数^'W的自变量L是 非线性函数-(卜,l)的累计值(ZW卜,I)从i=l到i=dc-l ),但是如上所述,当自变 量lvil不小于确定大的值时,表示非线性函数一v,l)的运算结果的所有普通量化 值变为表示数值0的普通量化值。
因此,如果作为要在表达式(7)中累计的非线性函数一v,l)的运算的结 果获得表示数值0的所有普通量化值,则累计值(^>(卜,|)从i=l到i=dc-l ) 变为表示数值O的普通量化值,从而表示数值0的普通量化值作为反函数
f乂力的自变量L给出。
另一方面,由于当自变量3L处于数值0附近时反函数f(力突然改变,所
以为了获得高精度运算结果作为反函数^O0的运算结果,最好由以高精度表 示数值0附近的数值的量化值表示自变量x。
如果使用普通量化值,则如上所述,当自变量lvil不小于确定的大数值时 然而作为非线性函数列v,l)的运算结果获得表示数值0的所有普通量化值。结 果,表示作为反函数f(S^(lv,l))的自变量的累计值2>(卜|)的普通量化值也变 为表示数值0的普通量化值。
由于这个原因,在累计值^>(卜,|)是数值0附近的值的情况下,尽管当累 计值2>(卜」)轻微变化时,反函数f(5^(lv, l))的运算结果应该最初大大地变 化,但是由表示数值0的普通量化值表示数值0附近的所有累计值5>(卜,|)。 因此,当累计值5>(卜,|)轻微变化时,作为反函数f (2>(卜,|))的运算结果获得相同的运算结果,即具有很大误差的运算结果。
相反地,在使用高精度量化值执行从非线性函数一v,l)的运算到其反函数 f(JC)的运算的处理部分的情况下,即使当自变量2L不小于确定的大数值时,
作为非线性函数^w的运算的结果也可以获得以高精度表示数值o附近的数
值的高精度量化值。结果,即使当作为反函数f(Z判v,l))的自变量的累计值 2>(卜,|)是0附近的数值时,也可以获得表示高精度的数值的高精度值。
因此,即使当累计值2>(卜,|)是数值0附近的值时,也可以获得高精度的、
(用于表示)反函数f (^>( ,|))的运算的结果(的高精度量化值),从而当 累计值Z一v,l)轻微变化时,运算结果变化很大。结果,可以高精度地解码
LDPC码。
此外,由于使用高精度量化值仅执行从非线性函数-(卜,l)的运算到其反函 数f(x)的运算的处理部分,而使用普通量化值执行其他处理部分,所以校验 节点计算器171 (图14)中使用高精度量化值的部分的尺寸,即LUT1121 和1128的尺寸轻微地增大了高精度量化值和普通量化值之间的位数之差。如 上所述,与使用普通量化值的图10的解码设备中的分支存储器100和102以 及接收存储器104的必要容量相比,图13的解码设备中的分支存储器100和 102以及接收存储器104的必要容量没有改变。
因此,可以在抑制解码设备尺寸增大的同时,高精度地执行LDPC码的解码。
顺便提及,由于图9中奇偶校验矩阵H中一行的最大权重是9,也就是 说,由于提供到校验节点的消息的最大数是9,所以校验节点计算器171 (图 14)具有用于延迟9个消息U(卜,1))的FIFO存储器1127和FIFO存储器133。 为了计算与其行权重小于9的行对应的消息,将FIFO存储器1127和FIFO 存储器133中的延迟量减小到等于行权重的值。
在图14中的校验节点计算器171中,分别由LUT 1121和1128执行校 验节点运算中非线性函数一v,l)的运算和反函数f(JC)的运算。
也就是说,由LUT 1121执行非线性函数^(卜,l)的运算,所述LUT1121 接收普通量化值作为输入并输出非线性函数^(hl)的运算结果作为9位高精度 量化值,而由LUT 1128执行反函数^(x)的运算,所述LUT 1128接收9位高 精度量化值作为输入并输出反函数f(x)的运算结果作为5位普通量化值。
假定作为输入的量化值的位数是§_位,而作为输出的量化值的位数是b位,那么要求2axb位的容量作为LUT (如LUT1121或LUT1128)的容量。 因此,图11中每一个LUT121和128均需要2、5位的容量,这是因为
每一个LUT 121和LUT 128均接收5位普通量化值作为输入量化值,并发送
5位普通量化值作为输出量化值。
另 一方面,接收5位普通量化值作为输入量化值并发送9位高精度量化
值作为输出量化值的LUT1121需要2、9位的容量,而接收9位高精度量化
值作为输入量化值并发送5位普通量化值作为输出量化值的LUT 1128需要
2、5位的容量。
因此,图14中校验节点计算器171中LUT 1121或LUT 1128的必要容 量大于图11中校验节点计算器101中LUT 121或LUT 128的必要容量,从 而图14中校验节点计算器171的尺寸变为相应地大于图11中校验节点计算 器101的尺寸。此外,因此,图13中解码设备的尺寸变为大于图10中解码 设备的尺寸。
因此,图17示出了本发明所应用到的解码设备的第一实施例的配置的示 例。在图17中,相同的数字表示与图13的解码设备对应的相同部分。在下 文中将适当地省略有关这些部分的描述。
图17中的解码设备与图13中的解码设备的共同之处在于提供了分支 存储器100和102、可变节点计算器103、接收存储器104和控制部分105。 图17中的解码设备与图13中的解码设备的不同之处在于提供校验节点计 算器181代替校验节点计算器171。
这里,在图17的解码设备中,例如,由前述如图9所示的奇偶校验矩阵 H所表示的LDPC码(编码速率2/3,码长108 )如参照图13所述的那样被 解码。
在图17的解码设备中,以与图13的解码设备相同的方式,与图13的校 验节点计算器171对应的校验节点计算器181执行校验节点运算,而可变节 点计算器103执行可变节点运算,从而以交替执行校验节点运算和可变节点 运算的方式对LDCP码进行解码。
因此,以与图13的校验节点计算器171相同的方式在校验节点计算器 181中执行校验节点运算,所述校验节点运算作为用于解码LDPC码的校验 节点的运算并且包括非线性函数的运算和非线性函数的反函数的运算。也就 是说,基于从控制部分105提供的控制信号D106,使用从分支存储器100提供的消息D101 (可变节点消息Vi),由校验节点计算器181执行根据包括非 线性函数^c)的运算和非线性函数^(x)的反函数f(x)的运算的表达式(7)的 校验节点运算,从而将通过校验节点运算获得的消息D102 (校验节点消息 Uj)提供到后级分支存储器102。
然而,校验节点计算器181与图13的校验节点计算器171的不同之处在 于接收第一量化值作为输入,所述第一量化值是使用固定量化宽度表示数
值的位串,并输出非线性函数W"的运算结果作为第二量化值,所述第二量 化值是使用根据位串的一部分而确定的量化宽度表示数值的位串,并且不同 之处在于接收第二量化值作为输入,并输出反函数f(;c)的运算结果作为第 一量化值。
这里,关于作为使用固定量化宽度表示数值的位串的第一量化值,当S 表示固定量化宽度而(^表示第一量化值时,由第一量化值(位串)Q!+l表 示的数值通常是比由第一量化值Q表示的数值大S的数值。因此,第一量化 值等效于以所谓定点表示格式表示数值的位串。在下文中,适当地将第一量 化值称为定点量化值或定点格式量化值。
关于作为使用由位串的 一部分确定的量化宽度表示数值的位串,由第二 量化值Q2+l表示的数值比由第二量化值表示的数值Q2大的差值根据第二量 化值Q2和Q2+1的位串的部分而变化(其中Q2表示第二量化值),这是因为 量化宽度根据第二量化值的位串的一部分而改变。
也就是说,根据第二量化值Q2和Q2+1的位串的一部分,由第二量化值
Q2+l表示的数值可以是比由第二量化值Q2表示的数值大S的数值,或者可 以是比由第二量化值Q2表示的数值大S,(不同于S)的数值。也就是说,当 第二量化值增大一时,由第二量化值表示的数值可能增大例如S或S,(不同 于S)。
另一方面,以所谓浮点表示格式表示数值的位串通常以这样的方式表示 由fx2e表示的数值除非考虑符号位(区分正、负的位),否则将指数^指定 到位串的一部分,而将尾数£指定到位串的其他部分。
关于以浮点表示法表示数值fx2e的位串,例如,当指数L的位串是O时, 由位串表示的数值fx2e(由指数i和尾数组成且以浮点表示法表示)在尾数 f的位串增大1时也增大1。例如,当指数i的位串是l时,由位串表示的数
值fx2e (由指数^和尾数i:组成且以浮点表示法表示)在尾数f的位串增大1时增大2。
因此,关于以浮点表示法表示数值的位串,由该位串表示的数值(由指 数L和尾数£组成且以浮点表示法表示)在指定到位串的其他部分的尾数f 增大1时根据指定到位串的一部分的指数^可以增大例如1或2。
关于增大由第二量化值表示的数值的方式根据位串的 一部分而变化的观 点,作为使用根据位串的 一部分而确定的量化宽度表示数值的位串的第二量 化值,与以浮点表示法表示数值、且在其中增大数值的方式根据指数i而变 化的位串是相同的。
如上所述,由于第二量化值是以浮点表示法表示数值的一种位串,所以 在下文中适当地将第二量化值称为半浮点量化值或半浮点格式量化值。
顺便提及,上述普通量化值和高精度量化值两者均为定点量化值。
接着,图18示出图17中校验节点计算器181的配置的示例。
顺便提及,在图18中,相同的附图标记表示与图14中的校验节点计算 器171相同的部分。在下文中将适当地省略对这些部分的描述。
也就是说,除了提供LUT221和LUT228代替LUT1121和LUT1128 并且新提供转换电路231、 232和233之外,以与图14的校验节点计算器171 相同的方式配置图18的校验节点计算器181。
校验节点计算器181执行表达式(7)表示的运算。在这种情况下,如上 所述,校验节点计算器181接收定点量化值作为输入,并输出非线性函数^(;c) 的运算结果作为半浮点量化值,而接收半浮点量化值作为输入并输出反函数 f (x)的运算结果作为定点量化值。
也就是说,LUT221以与图14的LUT1121相同的方式、存储与普通量 化值的5位绝对值D122 (|Vi|)(也是定点量化值)相关联的、表达式(7 )中 非线性函数^lv,l)的运算结果。顺便提及,LUT1121中非线性函数^(lv,l)的运 算结果由9位高精度量化值表示,而LUT221中非线性函数^(lv,l)的运算结果 由5位半浮点量化值表示。
因此,LUT221接收由5位定点量化值表示的数值lvil作为输入并存储与 5位定点量化值相关联的、表示作为非线性函数^(kl)关于5位定点量化值的 运算结果而获得的lt值的5位半浮点量化值。
LUT221将表示与绝对值D122 (|v")(其是提供到LUT221的5位定点 量化值)相关联的非线性函数M v, l)的运算结果的5位半浮点量化值提供到转4奐电^各231和FIFO 1127。
LUT 228以与图14的LUT 1128相同的方式、存储与5位量化值y (=I>(kD )相关联的、表示表达式(7)中反函数f(力(=广(^>(卜,|)))的 运算结果的5位普通量化值。顺便提及,将反函数f H力的自变量^作为高精 度量化值(其也是9位定点量化值)给到LUT 1128,而将反函数f (力的自 变量JL作为5位浮点量化值从转换电路233给到LUT 228(这将在下面描述)。
因此,LUT228接收由5位半浮点量化值(没有符号位的半浮点量化值) 表示的数值^>(卜|)作为输入,并存储与5位半浮点量化值相关联的、表示反 函数矿(^>(卜,|))关于5位半浮点量化值的运算结果而获得的数值的5位定点 量化值(没有符号位的半浮点量化值)。
LUT228输出表示反函数f'(Z^(卜l))的运算结果并且也是普通量化值的 5位定点量化值,作为与提供到LUT228的5位半浮点量化值F1128( J>(|v,|)) 相关联的反函数矿(2>(卜|))的运算结果01129。
转换电路231以这样的方式执行数值的表示格式的转换,将表示非线性 函数^(lv,l)的运算结果并且从LUT221提供的5位半浮点量化值转换为表示非 线性函数州v, l)的运算结果并且也是高精度量化值的9位定点量化值(没有符 号位的定点量化值)。转换电路231将作为转换结果获得的9位定点量化值提 供到运算单元1122。
这里,如上所述,由于表示从LUT221输出的非线性函数州v,l)的运算 结果5位半浮点量化值是使用根据位串的一部分而确定的量化宽度表示数值 的位串,所以难以直接执行后级运算单元1122的累计。由于这个原因,转换 电路231将从LUT 221输出的5位半浮点量化值转换为也是9位高精度量化 值的定点量化值。
也就是说,将表示从LUT221输出的非线性函数^v,l)的运算结果的5位浮点 量化值在FIFO 127中延迟之后提供到转换电路232。转换电路232将从FIFO 127提供的(经延迟的)5位浮点量化值转换为也是高精度量化值的9位定点 量化值,并将所述定点量化值提供到运算单元1126。
也就是说,由于通过转换电路231将半浮点量化值转换为定点量化值的 相同原因,转换电路232将要由后级运算单元1126累计的5位半浮点量化值 转换为也是高精度量化值的9位定点量化值。转换电路233执行与在转换电路231或232中的转换相反的表示格式的 转换。也就是说,将也是高精度量化值的9位定点量化值从运算单元1126提 供到转换电路233。转换电路233将从运算单元1126提供的9位定点量化值 转换为5位半浮点量化值并将5位半浮点量化值作为输入提供到LUT228。
顺便提及,在图18中,由实粗线表示交换9位定点量化值(以及通过使 用9位定点量化值而执行的运算的结果)的连接线,而由虚粗线表示交换5 位半浮点量化值的连接线。将相同的规则应用于在后面描述的图28。
接着,将参照图19进一步描述图18的LUT221。
将在图19的左表上示出的也是5位普通量化值的定点量化值提供到LUT 221。顺便提及,在图19的左表上一起示出作为5位定点量化值的位串和由 位串表示的十进制数值。
LUT221接收由5位定点量化值表示的数值2L作为输入,并输出表示作 为表达式(7)中的非线性函数0(lv,l)关于5位定点量化值的运算结果而获得 的数值的5位半浮点量化值。
图19的右表示出从LUT221输出的5位半浮点量化值。这里,作为5 位半浮点量化值的位串、作为与半浮点量化值对应的定点量化值(即作为表 示由半浮点量化值表示的数值的顶点量化值)的9位以及由9位表示的十进 制数值一起在图19的右表上示出。
在图19的左表上由5位定点量化值表示的十进制数值范围从0到31, 而图19的右表上由(与)5位半浮点量化值(对应的9位定点量化值)表示 的十进制数值范围从O到448。因此,即使使用相同的5位,半浮点量化值 也可以表示具有比定点量化值更宽的动态范围的数值。顺便提及,例如,由 于由9位定点量化值表示的十进制数值范围是从0到511,所以5位半浮点 量化值可以表示具有与9位定点量化值同样宽的动态范围的数值。
图19的右表上每一个5位半浮点量化值的量化宽度根据作为5位的一部 分的高3位而变化。
也就是说,在十进制数值方面,当5位半浮点量化值的高3位是000或 001时,由5位半浮点量化值表示的十进制数值在剩余的低2位增大1时增 大1。因此,量化宽度变为1。
当5位半浮点量化值的高3位是010时,由5位半浮点量化值表示的十 进制数值在剩余的低2位增大1时增大2。因此,量化宽度变为2。当5位半浮点量化值的高3位是011时,由5位半浮点量化值表示的十 进制数值在剩余的低2位增大1时增大4。因此,量化宽度变为4。
在下文中,类似地,当5位半浮点量化值的高3位是100、 101、 IIO或 111时,量化宽度分别变为8、 16、 32或64。
现在假定将图19的右表上5位半浮点量化值的高3位称为准指数^而将 其剩余低2位称为准尾数f,则除了准指数i是000的情况之外,由5位半浮 点量化值表示的十进制数值变为(l+f/22) x2e+1。因此,可以说半浮点量化值 是具有尾数(l+f/22 )、指数e+l和基数2的浮点(数)。例如,5位半浮点量 化值10001以十进制数值表示法是(l+l/22) x24+1=40,这是因为作为准指数 §_的5位半浮点量化值10001的高3位是100 (以十进制表示的4)并且作为 准尾数£的其低2位是01 (以十进制表示的1 )。
顺便提及,当准指数是000时,由5位半浮点量化值表示的十进制数 值变为^2x2e"。在这种情况下,可以说半浮点量化值是具有尾数f/2、指数 e+l和基数2的浮点(数)。
如上所述,当由半浮点量化值表示的数值增大(减小)时,半浮点量化 值的量化宽度增大(减小)。在该实施例中,例如,5位浮点量化值的最小量 化宽度不大于作为9位定点量化值的高精度量化值的量化宽度(即等于或小 于高精度量化值的量化宽度)。因此,当使用这样的5位半浮点量化值时,可 以以与使用9位定点量化值的情况相同的方式,使用高精度将O附近的数值 表示为非线性函数0(x)(在图16左侧)的运算结果。
也就是说,根据这样的5位半浮点量化值,可以表示具有比5位定点量 化值(普通量化值)更宽的动态范围以及与9位定点量化值同样宽的动态范 围的数值,并且可以使用等于或高于9位定点量化值(高精度量化值)的精 度表示0附近的数值。
接着,将参照图20进一步描述图18的转换电路231。
图20示出输入(给)到转换电路231的5位半浮点量化值与从转换电路 231输出的9位定点量化值之间的关系。
如上所述,转换电路231执行用于将从LUT221提供的5位半浮点量化 值转换为作为高精度量化值的9位定点量化值的数值表示格式的转换。
也就是说,转换电路231将图20左侧第一列示出的5位半浮点量化值转 换为图20左侧第二列示出的9位定点量化值,并输出9位定点量化值。具体地说,当5位半浮点量化值的准指数(高3位)^是000时,转换 电路231输出9位定点量化值,所述9位定点量化值具有等于5位半浮点量 化值的低2位的准尾数(低2位)f,并将剩余的高7位设置为0。
当5位半浮点量化值的准指数^是001时,转换电路231输出9位定点 量化值,其中将第三低位(从最低有效位起第三位)设置为1,将第三低位 之后的低2位设置为其准尾数I",并且将剩余的高6位设置为0。
当5位半浮点量化值的准指数^是010时,转换电路231输出9位定点 量化值,其中将第四低位设置为l,将第四低位之后的低2位设置为其准尾 数f,并将剩余的6位设置为0。
在下文中,以相同的方式,当给出具有由^表示的准指数和由£表示的 准尾数的5位半浮点量化值时,转换电路231输出9位定点量化值,其中将 第(e+l )低位设置为1,将在第(e+l )低位之后的低2位设置为其准尾数f, 并且将剩余6位设置为0。
顺便提及,由9位定点量化值和5位半浮点量化值以及定点量化值表示 的十进制数值在图20从左边起第三(最右)列示出。
图18的转换电路232也以与前述图18的转换电路231相同的方式执行 表示格式的转换(半浮点量化值到定点量化值的转变)。
接着,将参照图21描述由图18的转换电路231执行的表示格式的转换。
当接收到5位半浮点量化值时,基于作为半浮点量化值的高3位的准指 数g,转换电路231决定作为半浮点量化值的低2位的准尾数£插入到9位位 串的位置(要以准尾数£替换的位)。转换电路231输出将准尾数插入到所述 位置的9位位串作为9位定点量化值。
也就是说,如图21所示,转换电路231存储与由作为准指数^的3位表 示的值OOO、 001、 010、 011、 100、 101、 IIO和111相关联的9位OOOOOOOxy、 OOOOOOlxy、 OOOOOlxyO、 OOOOlxyOO、 OOOlxyOOO、 OOlxyOOOO、 OlxyOOOOO和 lxyOOOOOO的位串,其中2位xy未定义。
假定作为半浮点量化值的低2位的准尾数f的左边起第一位和第二位分 别由2L和iL表示,那么转换电路231选择与作为5位半浮点量化值的高3位 的准指数^相关联的9位位串,并将9位位串的未定义2位xy设置为从准尾 凄t[左边起第一位2L和第二位》由此获得9位位串,并输出9位位串作为9 位定点量化值。因此,例如,当将5位半浮点量化值10001输入到转换电路231时,转 换电3各231选择与IOO相关联的9位位串OOOlxyOOO,这是因为作为5位半 浮点量化值的高3位的准指数^是100。
由于作为5位半浮点量化值10001的低2位是01,所以转换电路231将 所选择的9位位串OOOlxyOOO的未定义2位xy设置为准尾数f01从左边起第 一位0和第二位1 ,由此获得9位位串000101000并输出9位位串作为9位 定点量化值。
顺便提及,当5位半浮点量化值的最小量化宽度与9位定点量化值的量 化宽度彼此相等时,浮点量化值的准尾数f(的位串)可以直接用在转换电路 231中,以便可以将半浮点量化值转换为定点量化值(如图21中所述)。因 此,可以相对简单地配置转换电路231,从而可以抑制电路尺寸的大幅度增 大。
接着,将参照图22进一步描述图18的转换电路。
图22示出输入(给)到转换电路233的9位定点量化值与从转换电路 233输出的5位半浮点量化值之间的关系。
如上所述,转换电路233执行用于将作为高精度量化值并且从运算单元 1126 (图18中)提供的9位定点量化值转换为5位半浮点量化值的数值表示 格式的转换。
也就是说,转换电路233将图22的左表上所示的9位定点量化值转换为 图22的右表上所示的5位半浮点量化值,并输出5位半浮点量化值。
这里,在图22的左表上与由定点量化值表示的十进制数值一起示出9 位定点量化值。
另外,图22的右表与图20相同。因此,图22的右表示出5位半浮点量 化值与9位定点量化值之间的关系。
当接收到图22的左表上所示的9位定点量化值时,转换电路233输出与 在图22的右表上提供的定点量化值相对应的5位半浮点量化值,用于表示接 近由定点量化值表示的十进制数的十进制数,即用于表示不大于由例如如图 22的左表上所示的9位定点量化值表示的十进制数的最大十进制数。
具体地说,当接收到图22的左表上所示的9位定点量化值时,当9位定 点量化值的高6位是0时,转换电路233输出与图22的右表上的9位定点量 化值相对应的5点半浮点量化值。另外,当接收到图22的左表上所示的9位定点量化值时,当9位定点量 化值的高5位是0并且9位定点量化值的高第六位(从最高有效位起第六位) 是1时,转换电路233四舍五入9位定点量化值的低1位(最低有效位)到 0,并输出与图22的右表上的经四舍五入的定点量化值相对应的5位半浮点 量化值。
此外,当接收到图22的左表上所示的9位定点量化值时,当9位定点量 化值的高4位是0并且9位定点量化值的高第五位是1时,转换电路233四 舍五入9位定点量化值的低2位到0,并输出与图22的右表上的经四舍五入 的定点量化值相对应的5位半浮点量化值。
此外,当接收到图22的左表上所示的9位定点量化值时,当9位定点量 化值的高3位是0并且9位定点量化值的高第四位是1时,转换电路233四 舍五入9位定点量化值的低3位到0,并输出与图22的右表上经四舍五入的 定点量化值相对应的5位半浮点量化值。
当定点量化值的高2位是0并且定点量化值的高第三位是1时或当定点 量化值的高1位是O并且定点量化值的高第二位是1时在接收到定点量化值 时,转换电路233也以前述情况相同的方式输出5位半浮点量化值。
当定点量化值的低1位(最高有效位)是1时在接收到定点量化值时, 转换电路233四舍五入9位定点量化值的低6位到0,并输出与图22的右表 上经四舍五入的定点量化值相对应的5位半浮点量化值。
接着,将参照图23描述由图18的转换电路233执行的表示格式的转换 的处理。
当接收到9位定点量化值时,转换电路233检测位于9位定点量化值的 最高位侧的l的位置,并基于所述位置获得3位准指数i和2位准尾数f,以 便将5位位串作为5位半浮点量化值输出,在5位位串中从最高有效位侧顺 序排列3位准指数§_和2位准尾数f。
也就是说,9位定点量化值由IN表示,并且从9位定点量化值IN的最 低有效位数起的第(a+l)位由IN[a]表示,其中a=0, 1,…,8。此外,从9 位定点量化值的最低有效位数起的第(a+l)位到第(b+l)位的位串由IN[a: b]表示,其中b=0, 1, 8且a〉b。
如图23所示,当9位定点量化值IN的位IN[8](最高有效位)是1时, 转换电路233将指数^设置为等于111,并且将尾数£设置为等于9位定点量化值IN的2位IN[7: 6]。
当9位定点量化值IN的位IN[7]和IN[8]分别是0和1时,转换电路233 将指数^设置为等于110,并且将尾数£设置为等于9位定点量化值IN的2 位IN[6: 5]。
当9位定点量化值IN的2位IN[8: 7]是0并且其位IN[6]是1时,转换 电路233将指数^设置为101,并且将尾数[设置为等于9位定点量化值IN 的2位IN[5: 4]。
当9位定点量化值IN的3位IN[8: 6]是0并且其位IN[5]是1时,转换 电路233将指数^设置为100,并且将尾数£设置为9位定点量化值IN的2 位IN[4: 3]。
当9位定点量化值IN的4位IN[8: 5]是0并且其位IN[4]是1时,转换 电路233将指数^设置为011 ,并且将尾数£设置为9位定点量化值IN的2 位IN[3: 2]。
当9位定点量化值IN的5位IN[8: 4]是0并且其位IN[3]是1时,转换 电路233将指数i设置为010,并且将尾数£设置为9位定点量化值IN的2 位IN[2: l]。
当9位定点量化值IN的6位IN[8: 3]是0并且其位IN[2]是1时,转换 电路233将指数^设置为001 ,并且将尾数£设置为9位定点量化值IN的2 位IN[1: 0]。
当9位定点量化值IN的7位IN[8: 2]是0时,转换电路233将指数g 设置为000,并且将尾数£设置为9位定点量化值IN的2位IN[1: 0]。
转换电路233输出具有准指数^作为其高3位以及准尾数£作为其低2 位的位串作为5位半浮点量化值。
因此,例如,当将9位定点量化值000011000输入转换电i 各233时,转 换电路233将指数i设置为等于011,并且将尾数£设置为等于9位定点量化 值IN的2位IN[3: 2]10,这是因为9位定点量化值IN的4位IN[8: 5]是0 并且其位IN[4]是1 。转换电路233输出具有准指数s 011作为其高3位以及
顺便提及,当5位半浮点量化值的最小量化宽度于9位定点量化值的量 化宽度彼此相等时,如以上参照图23所述,转换电路233可以通过直接使用 定点量化值的一部分作为准尾数f将定点量化值转换为半浮点量化值。因此,可以相对简单地配置转换电路233 ,从而抑制电路尺寸的大幅度增大。
接着,将参照图24进一步描述图18的LUT228。
将图24的右表上所示的5位半浮点量化值提供到LUT221。
这里,作为与5位半浮点量化值相对应的定点量化值的9位和由9位表
示的十进制数值,以及作为半浮点量化值的位串在闺24的右表上示出。
LUT221接收由5位半浮点量化值表示的数值y,并输出表示作为表达
式(7 )中反函数f'(^>(卜,|))关于半浮点量化值的运算结果而获得的数值^0;)
的5位定点量化值。
也就是说,图24的左表示出从LUT228输出的5位定点量化值。顺便
提及,图24的左表示出作为5位定点量化值的位串和由所述位串表示的十进
制数值。
如以上参照图19所述,由5位定点量化值表示的十进制数值范围是从0 到31,而由(与)5位半浮点量化值(相对应的9位定点量化值)表示的十 进制数值范围是从O到448。此外,由9位定点量化值表示的十进制数值范 围是从0到511。因此,5位半浮点量化值可以表示具有比5位定点量化值更 宽的动态范围以及具有与9位定点量化值同样宽的动态范围的凝:值。
在该实施例中,如上所述,例如,5位半浮点量化值的最小量化宽度不 大于作为9位定点量化值的高精度量化值的量化宽度。因此,当反函数f(力 的自变量L在自变量L位于0附近时突然改变时,5位半浮点量化值可以以 与9位定点量化值相同的方式、使用高精度表示0附近的数值。
也就是说,5位半浮点量化值可以表示具有比5位定点量化值(普通量 化值)更宽的动态范围以及与9位定点量化值(高精度量化值)同样宽的动 态范围的数值,并且可以使用与9位定点量化值(高精度量化值)相同的精 度表示0附近的数值。
如上所述,LUT221输出使用高精度表示0附近的数值的5位半浮点量
化值,作为非线性函数0OO的运算结果,当自变量2L不小于确定的大数值时, 所述运算结果将是0附近的值。
此外,对于高精度表示0附近的数值并作为累计值5>(卜|)(作为反函数
f'(S^(卜,I))的自变量)输入的5位浮点量化值,LUT228输出反函数 f 乂Z"卜I))的运算结果作为定点量化值(其也是5位普通量化值)。
因此,根据5位半浮点量化值,可以高精度地表示作为对于自变量2L不小于确定的大数值的非线性函数0(X)的运算结果的O附近的数值。此外,即
使当作为反函数^乂2>(卜,|))的自变量的累计值Zw卜,i)是0附近的数值时,也
可以高精度地表示该数值。因此,即使当累计值2>(卜,|)是数值0附近的值时, 也可以以这样的方式获得反函数f (^>(卜,|))的高精度的运算结果当累计值 5>(卜|)轻微变化时,运算结果变化。结果,可以高精度地执行LDPC码的解码。
由于LUT 221和LUT 228的输入和输出均为5位,所以每一个LUT 221 和228的必要容量均变为2、5位。因此LUT221所需的并且与电路尺寸成比 例的容量仅为图14的对应LUT 1121的容量(2、9位)的5/9。另夕卜,LUT228 所需的并且与电路尺寸成比例的容量仅为图14的对应LUT1128容量的1/24。
因此,可以紧凑地配置LUT221和228。结果,可以抑制校验节点计算 器181 (图18)的尺寸的增大,因此抑制了图17的解码设备的尺寸的增大。
接着,将参照图25的流程图描述图18的校验节点计算器181中的处理。
在校验节点计算器181中,从与奇偶校验矩阵H中一列对应的可变节点 给出的6位消息D101 (可变节点消息vj被从分支存储器100 (图17)逐个 读取,并且作为每一个6位消息的低5位的绝对值D122( |vi| )提供到LUT 221 , 而将作为每一个6位消息的最高有效位的符号位D121提供到异或电路129 和FIFO存储器133。将控制信号D106从控制部分105 (图17 )给到校验节 点计算器181,以便将控制信号D106提供到选择器1124和选择器131。
在步骤S21, LUT221接收提供到其的5位绝对值D122(IVil)作为输入, 读取与定点量化值(图19的左表上)(也是与5位绝对值D122 (|Vi|)相一致 的5位普通量化值)相关联的、表示非线性函数一v,l)的运算结果的9位半浮 点量化值F1123,并将9位半浮点量化值F1123输出到转换电路231和FIFO 存储器1127。
也就是说,在步骤S21, LUT221等效地执行用于接收由固定点量化值 表示的绝对值D122 (|vi|)作为输入,并执行表达式(7)中非线性函数一v,l) 的运算以及用于将表示运算结果的固定点量化值转换为半浮点量化值的表示 格式的转换。
在步骤S22,转换电路231执行用于将表示从LUT221给出的非线性函 数-(卜,l)的5位半浮点量化值F1123转换为作为如以上图20所述的高精度量 化值的9位定点量化值的表示格式的转换,并将作为转换结果而获得的9位定点量化值输出到运算单元1122。
然后,在步骤S23,运算单元1122通过将由9位定点量化值表示的非线 性函数运算结果D1123 ( )加到在寄存器1123中存储的13位值D1124 来累计运算结果D1123,并在寄存器1123中再次存储作为累计结果获得的13 位累计值。顺便提及,当从与奇偶校验矩阵H中一行对应的所有分支给出的 消息D101的绝对值D122 (hi)的运算结果已经被完全累计时,复位寄存器 1123。
这里,在运算单元1122和寄存器1123中,从转换电路231提供并且由 9位定点量化值表示的运算结果D1123 (-(hl))以高达最大延迟次数的最大 值(即等于奇偶校验矩阵H中一行的最大权重的次数)在FIFO存储器1127 中累计。现在,图9中奇偶校验矩阵H中一行的最大权重是9。因此,在运 算单元1122和寄存器1123中,9位定点量化值以高达9倍(累计9个9位定 点量化值)的最大值累计。由于这个原因,在来自运算单元1122的输出和来 自运算单元1122之后的部分的输出中,连接线的位数是13 (能够表示9 (倍) 的最小位数),其比从LUT221输出的9位定点量化值D1123大4,以便可以 表示通过累计9位定点量化值9次而获得的值。
当与奇偶校验矩阵H中一行对应的消息D101 (可变节点消息Vi)已经 从分支存储器100 (图17)逐个读取,并且已经在寄存器1123中存储通过累 计与一行对应的运算结果D1123而获得的累计值时,从控制部分105提供的 控制信号D106从"0,,改变到"1"。例如,当奇偶校验矩阵H中行权重是"9"时, 对于第一时钟到第八时钟控制信号D106取"0",而对于第九时钟控制信号 D106取T。
当控制信号D106是"1"时,在步骤S24,选择器1124选择在寄存器1123 中存储的值,即作为从与奇偶校验矩阵H中一行对应的所有分支给出的消息 D101 (可变节点消息Vi)而计算的0(卜,l)的累计结果的13位累计值D1124
(!>(卜,|)从!=1到i=de),并输出13位累计值D1124作为13位值D1125,以 便将13位值D1125存储在寄存器1125中。寄存器1125将存储的值D1125 作为13位值D1126提供到选4奪器1124和运算单元1126。当控制信号D106 是"0"时,选择器1124选择从寄存器1125提供的值D1126,并输出值D1126, 以便将值D1126再次存储在寄存器1125中。也就是说,除非从与奇偶校验矩 阵H中一行对应的所有分支给出的消息DIOI (可变节点消息Vi)而计算的一v,.l)被完全累计,否则寄存器1125将最后一次累计的列v,l)提供到选择器 1124和运算单元1126。
另一方面,FIFO存储器1127延迟从LUT221输出的、由非线性函数计 算结果D1123 ()表示的5位半浮点量化值,直到从寄存器1125输出新 值D1126( 2>(卜,|)从〖=1到i二dc)为止,并且当从寄存器1125输出新值D1126 (1>(卜,|)从1=1到i=dc)时,将延迟的5位半浮点量化值F1127提供到转换 电路232。
与转换电路231类似地,转换电路232执行用于将从FIFO 1127提供并 表示非线性函数列v,l)的运算结果的5位半浮点量化值F1127转换为也作为高 精度量化值的9位定点量化值的表示格式的转换。转换电路232将作为转换 结果获得的9位定点量化值D1127提供到运算单元1126。
在步骤S25,运算单元1126从寄存器1125提供的13位值D1126中减去 从FIFO存储器1127输出并具有经转换电路232转换的表示格式的9位值 D1127(累计通过将9位值D1127乘以-1获得的值与从寄存器提供的13位值 D1126 ),并将表示减法结果的、也作为高精度量化值的9位定点量化值D1128 提供到转换电路233。
也就是说,运算单元1126从与奇偶校验矩阵H中一行对应的所有分支 给出的消息D101 (可变节点消息Vi)而计算的-(卜,l)累计值中减去从来自想要 计算校验节点消息Uj的分支的消息D101 (可变节点消息Vi)而计算的-(卜,l), 并将表示差值(1>(卜|)从i=l到i=dc-l )的9位定点量化值D1128提供到转 换电路233。
顺便提及,当作为从寄存器1125提供的13位值D1126中减去从FIFO 存储器1127提供的9位值D1127的结果的量化值超过可以由9位定点量化值 D1128表示的最小值时,运算单元1126将减法结果截断成可以由9位定点量 化值表示的最大值并输出经截断的减法结果。
在步骤S26,转换电路233执行用于将从运算单元1126给出的9位定点 量化值D1128转换为如以上参照图22所述的5位半浮点量化值的表示格式的 转换,并将作为转换结果获得的5位半浮点量化值F1128提供到LUT 228。
在步骤S27, LUT228接收从转换电路233提供并且表示表达式(7)的 累计值2>(卜,|)的5位半浮点量化值,读取与半浮点量化值F1128相关联的、 表示反函数^(Z^卜,I))的运算结果并且也是普通量化值的5位定点量化值D1129 ( f (J>(|v,|))),并输出5位定点量化值D1129。
也就是说,在步骤S27, LUT228等效地执行用于接收由半浮点量化值 表示的表达式(7)的累计值5>(卜,|)作为输入和执行表达式(7)中反函数
f'(2Xhl))的运算的处理,以及用于将表示运算结果的半浮点量化值转换为 定点量化值的表示格式的转换。
与前述处理并行地,在异或电路129、寄存器130、选择器131、寄存器 132、 FIFO存储器133和异或电路134中执行与图11的校验节点计算器101 中相同的处理。由此,异或电路134将从与奇偶校验矩阵H中一行对应的所 有分支给出的消息DIOI (可变节点消息Vi)的符号位D121 (sign (|、|))的 乘积除以从想要计算校验节点消息Uj的分支给出的消息D101的符号位D121
(sign (|vi|)),由此输出商值(]"]"g"(v,)从i=l到i=dc-l )作为商值D135。
校验节点计算器181输出由作为总共6位(其中将从LUT228输出的5 位定点量化值D1129设置为其低5位,而将从异或电路134输出的l位商值 设置为其最高有效位(符号位))的普通量化值的定点量化值表示的消息D102
(校验节点消息Uj)。
如上所述,与图14的校验节点计算器171类似地,在从非线性函数0(x) 的运算到反函数f(x)的运算的处理部分中,校验节点计算器181使用作为高 精度量化值的9位定点量化值,或使用与9位定点量化值同样高的精度、并 且具有与9位定点量化值同样宽的动态范围表示0附近的lt值的5位半浮点 量化值,而在其他处理部分中使用作为普通量化值的定点量化值。因此,可 以高精度地解码LDPC码,同时抑制解码设备的尺寸的增大(而不增大图17 中分支存储器100和102以及接收存储器104的容量)。
此外,在校验节点计算器181中,LUT221接收5位定点量化值作为输 入,并输出非线性函数0(;O的运算结果作为5位半浮点量化值,而LUT228 接收5位半浮点量化值作为输入,并输出反函数fV)的运算结果作为5位定 点量化值。由此,从这几点来看,可以高精度地解码LDPC码,同时抑制解 码设备的尺寸的增大(使用具有很小容量的LUT221和228 )。
顺便提及,与图14的校验节点计算器171相比,校验节点计算器181 中新需要转换电路231到233。如果半浮点量化值的量化宽度的最小值与作 为高精度量化值的定点量化值的量化宽度同样大,则可以如上所述简单地配 置转换电路231到233,以便可以抑制基于新提供的转换电路231到233的电路尺寸的大幅度增大。
另一方面,如上所述,LUT221需要并与电路尺寸成比例的容量仅为图 14的对应LUT 1121容量的5/9,并且LUT228需要并与电路尺寸成比例地容 量仅为图14的对应LUT 1128容量的1/24。因此,通过使用LUT221和228 实现的电路尺寸的减小量是很大的。
因此,在使用LUT221和228的情况下,即使当考虑基于新提供的转换 电路231到233的电路尺寸的增大时,也可以减小校验节点计算器181的电 路尺寸。
接着,图26示出本发明所应用到的、用于解码LDPC码的解码设备的第 二实施例的配置的示例。
图26中的解码设备可以高精度地解码LDPC码,同时抑制解码设备尺寸 的增大。另外,与图17中的解码设备相比,图26中的解码设备可以减小解 码设备所需的存储器的存储容量。
顺便提及,例如,由图9中所示的前述奇偶校验矩阵H表示的LDPC码 (编码速率2/3,码长108 )由图26的解码设备例如以与图17的前述解码设 备类似的方式解码。
在图26中,解码设备包括中间解码结果贮存存储器410、开关4U、准 校验节点计算器412、分支存储器413、准可变节点计算器415、接收存储器 416和控制部分417,以便解码设备通过等效地迭代执行与由图17的解码设 备执行的相同的校验节点运算和可变节点运算来解码LDPC码。
在描述图26的解码设备的各个部分之前,将参照前述图18和图27到 29在此描述图26中准校验节点计算器412/准可变节点计算器415与图17的 校验节点计算器181/可变节点计算器103之间的关系。
如上所述,图18示出用于执行校验节点运算的图17的校验节点计算器 181的配置的示例。
图27示出用于执行可变节点运算的图17的可变节点计算器103的配置 的示例。顺便提及,图17的可变节点计算器103与图IO的可变节点计算器 103相同。因此,图27中所示的图17的可变节点计算器103具有与图12中 所示的图IO的可变节点计算器103相同的配置。
然而,图27图解将图12的运算单元156分为两个运算单元156,和1562 的情况。也就是说,如上所述,图12的运算单元156从寄存器154提供的值D152中减去从FIFO存储器155提供的值D153,将从接收存储器104提供的 接收数据D104加到作为减法结果的差值,并输出由此获得的6位值作为消 息D105 (可变节点消息Vi)。因此,由运算单元156^l行的处理可以分为用 于从寄存器154提供的值D152中减去从FIFO存储器155提供的值D153的 减法处理,和用于将从接收存储器104提供的接收数据D104加到其上的相 加处理。
因此,图27图解将图12的计算器156分为用于执行相加处理的运算单 元156i和用于执行减法处理的运算单元1562。
另一方面,图28示出图26的准校验节点计算器412的配置的示例。图 29示出图26的准可变节点计算器415的配置的示例。
在图26的解码设备中,准校验节点计算器412本身(per se )执行校验 节点运算,而准可变节点计算器415不是本身执行可变节点运算。准校验节 点计算器412执行校验节点运算和一部分可变节点运算,而准可变节点计算 器415执行其他部分可变节点运算。
也就是说,图28的准校验节点计算器412由块A,和块B,组成。块A,与 块A对应,其中图18的校验节点计算器181执行校验节点运算。块B,与块 B对应,块B是图27的可变节点计算器103的一部分并且在块B中从与连 接到奇偶校验矩阵H中每一列的所有分支对应的校验节点消息Uj的累计值中
减去与想要计算可变节点消息Vi的分支对应的校验节点消息uj。
另一方面,图29的准可变节点计算器415由块C,组成。块C,与块C对 应,块C是图27的可变节点计算器103的其他部分并且在块C中累计与连 接到奇偶校验矩阵H中每一列的所有分支对应的校验节点消息Uj并将接收数 据Uoi加到累计值上作为累计的结果。
也就是说,图17的校验节点计算器181由用于本身执行校验节点运算的 块A (如图18所示)组成。如图27所示,图17的可变节点计算器103可以 分为用于执行一部分可变节点运算(其中从与连接到奇偶校验矩阵H中每一 列的所有分支对应的校验节点消息Uj的累计值中减去与想要计算可变节点消 息Vi的分支对应的校验节点消息Uj)的块B,以及用于执行其他部分可变节 点运算(其中累计与连接到奇偶校验矩阵H中每一列的所有分支对应的校验 节点消息Uj,并将接收数据uoi加到累计值上作为累计的结果)的块C。
图28的准校验节点计算器412由与图18的块A对应的块A,和与图27的块B对应的块B,组成。块B,执行一部分可变节点运算,而块A,本身执行 校验节点运算。这里,在下文中适当地将由准校验节点计算器412执行的一 部分可变节点运算和校验节点运算称为准校验节点运算。
另一方面,图29的准可变节点计算器412由与图27的块C对应的块C, 组成。块C,执行其他部分的可变节点运算。在下文中适当地将由准校验节点 计算器415执行的其他部分的可变节点运算称为准可变节点运算。
在图26的解码设备中,准校验节点计算器412通过使用中间解码结果贮 存存储器410的存储内容等执行准校验节点运算( 一部分可变节点运算和校 验节点运算),并将由此获得的校验节点消息Uj提供到分支存储器413,以便 将校验节点消息Uj存储在分支存储器413中。此外,准可变节点计算器415 通过使用在分支存储器413中存储的校验节点消息Uj等执行准可变节点运算 (其他部分可变节点运算),并将由此获得的中间解码结果xi是供到中间解码 结果贮存存储器410,以便将中间解码结果i存储在中间解码结果贮存存储 器410中。
因此,在图26的解码设备中,交替地执行由准校验节点计算器412执行 的准校验节点运算和由准可变节点计算器415执行的准可变节点运算。结果, 交替地执行校验节点运算和可变节点运算,从而解码LDPC码。
顺便提及,在图27的可变节点计算器103中,块C执行用于累计与连 接到奇偶校验矩阵H中每一列的所有分支对应的校验节点消息Uj并将接收数 据uoi加到累计值上作为累计的结果,而块B执行用于从作为相加处理的结果 (与连接到奇偶校验矩阵H中每一列的所有分支对应的校验节点消息Uj的累 计值与接收数据Uoi的和值)获得的值中减去从想要计算可变节点消息Vi的分 支给出的校验节点消息Uj的减法处理。由于这个原因,图27的可变节点计算 器103需要FIFO存储器155,用于延迟从想要计算可变节点消息"的分支给 出的校验节点消息Uj,除非与连接到奇偶校验矩阵H中每一列的所有分支对
应的校验节点消息Uj被完全累计。
另一方面,图28的准校验节点计算器412的块B,,类似于对应块B(图 27 ),执行用于从与连接到奇偶校验矩阵H中每一列的校验节点消息Uj的累
计值中减去从想要计算可变节点消息Vi的分支给出的校验节点消息Uj的减法
处理。在图26的解码设备中,将校验节点消息Uj存储在分支存储器413中, 而将从想要计算可变节点消息Vj的分支给出的校验节点消息Uj (消息D411 )从分支存储器413提供到准校验节点计算器412。
因此,图26的解码设备不需要延迟从想要计算可变节点消息力的分支 给出的校验节点消息Uj的FIFO存储器155 (图27 ),除非与连接到奇偶校验 矩阵H中每一列的所有分支对应的校验节点消息Uj被完全累计。因此,可以 形成图26的解码设备,其比图17的解码设备小了对应于FIFO存储器155 的尺寸。
接着,将基于数值表达式描述由图26的准校验节点计算器412 (图28) 执行的准校验节点运算和由准可变节点计算器415 (图29)执行的准可变节 点运算。
准校验节点计算器412执行由以下表达式(8 )表示的运算( 一部分可变 节点运算)和由前述表达式(7)表示的运算(校验节点运算)作为准校验节
点运算,并将校验节点消息Uj作为准校验节点运算的结果提供到分支存储器
413,以便将校验节点消息Uj存储(保存)在分支存储器413中。另一方面, 准可变节点计算器415执行由前述表达式(5 )表示的运算(其他部分的可变 节点运算)作为准可变节点运算,并将中间解码结果^作为准可变节点运算 的结果提供到中间解码结果贮存存储器410,以便将中间解码结果L存储在 中间解码结果贮存存储器410中。
Vj = v - udv… (8 )
顺便提及,表达式(8)中的Udv表示从想要通过可变节点运算计算与奇 偶校验矩阵H中第i列对应的可变节点消息Vi的分支给出的校验节点的运算
(准校验节点运算)结果。也就是说,Udv是与想要通过可变节点运算计算可 变节点消息Vi的分支对应的校验节点消息Uj (即从分支给出的校验节点消息 Uj)。
这里,作为由前述表达式(5 )表示的运算的结果而获得的中间解码结果 L是接收数据uoi和作为从与奇偶校验矩阵H中第i列上各个行中1对应的所
有分支给出的校验节点的运算结果而获得的校验节点消息Uj之和。因此,从
每个分支给出的可变节点消息Vi可以以这样的方式获得根据表达式(8), 从这样的中间解码结果l中减去从想要计算可变节点消息Vi的分支给出并且 作为通过从与奇偶校验矩阵H中第i列上各个行中1对应的所有分支给出的
校验节点的运算而获得的校验节点消息Uj之一的校验节点消息udv。因此,由表达式(l)表示的、用于计算可变节点消息Vj的可变节点运
算可以分为由表达式(5)表示的运算和由表达式(8)表示的运算。
另一方面,用于计算校验节点消息Uj的校验节点运算由表达式(7)表示。
因此,由表达式(1)表示的可变节点运算和由表达式(7)表示的校验 节点运算的处理等效于由表达式(5)表示的运算以及由表达式(7)和(8) 表示的运算的处理。
因此,在图26的解码设备中,准校验节点计算器412执行由表达式(8 ) 和(7)表示的运算(准校验节点运算),而准可变节点计算器415执行由表 达式(5)表示的运算(准可变节点运算),从而解码LDPC码。
顺便提及,由于通过由表达式(5 )表示的准可变节点运算而获得的中间 解码结果^是作为由表达式(1 )表示的可变节点运算的结果而获得的每一个
分支的可变节点消息Vi和从与可变节点消息Vj对应的分支给出的校验节点消
息Uj之和,所以对于奇偶校验矩阵H的一列(一个可变节点)仅获得一个中 间解码结果Y。因此,对于码长的接收数据uoi获得与码长(奇偶校验矩阵H 中的列数)对应的中间解码结果y。
在图26的解码设备中,准校验节点计算器412通过使用与奇偶校验矩阵 H中每一行对应并且作为由准可变节点计算器415执行的准可变节点运算的 结果的中间解码结果L执行准校验节点运算,以便将作为准校验节点运算的 结果而获得的校验节点消息(由每一个校验节点输出至每一个分支的校验节 点消息)Uj存储在分支存储器413中。
因此,类似于用于存储校验节点运算的结果的图17的分支存储器102, 分支存储器413的必要存储容量变为奇偶校验矩阵H中1的数目(所有分支 数)与校验节点消息Uj的量化位数(普通量化值(在该实施例中也是定点量 化值)的位数)的乘积。
另一方面,准可变节点计算器415通过使用接收数据uoi和与奇偶校验矩 阵H中第i列上各个行中"l"对应并且作为由准校验节点计算器412执行的准
校验节点运算的结果的校验节点消息Uj来执行准可变节点运算,以便将与第
i列对应并且作为准可变节点运算的结果而获得的中间解码结果i存储在中间 解码结果贮存存储器410中。
因此,中间解码结果贮存存储器410的必要存储容量变为小于奇偶校验矩阵H中1的数目(即LDPC码的码长)的奇偶校验矩阵H中的列数与中间 解码结果v中量化位数(普通量化值(在该实施例中也是定点量化值)中的 位数)的乘积。
从以上描述可见,根据用于解码LDPC码(其奇偶校验矩阵H中1的数 目是稀疏的)的图26的解码设备,与图17的分支存储器100相比,可以减 小中间解码结果贮存存储器410的存储容量。因此,可以减小图26的解码设 备的设备尺寸。
此外,在图26的解码设备中,当通过校验节点运算和可变节点运算的交 替迭代执行LDPC码的迭代解码时,由准可变节点计算器415执行的表达式 (5)的准可变节点运算是用于获得LDPC码的最终解码结果的运算。因此, 用于执行由表达式(5 )表示的运算以获得LDPC码的最终解码结果的、如在 图17的解码设备中提供的这样的未示出块并非必须在图26的解码设备中提 供。因此,可以使图26的解码设备的设备尺寸比图17的解码设备的设备尺 寸小与这样的不必要块相对应的尺寸。
接着,将详细描述图26的解码设备的各个部分。
根据奇偶校验矩阵H中各个列、作为表达式(5)的准可变节点运算的 结果而获得的中间解码结果D415 (表达式(5)中的y)被从准可变节点计 算器415提供到中间解码结果贮存存储器410。中间解码结果贮存存储器410 连续地存储从准可变节点计算器415提供的中间解码结果D415 。存储在中间 解码结果l&存存储器410中的根据奇偶校验矩阵H中各个列的中间解码结果 D415被从中间解码结果贮存存储器410读取并被连续地提供到开关411。
除了从中间解码结果贮存存储器410给出的中间解码结果D415之外, 将从接收存储器416给出的接收数据D417 (uQi)提供到开关411。开关411 基于从控制部分417提供的控制信号D421,选择从中间解码结果贮存存储器 410提供的中间解码结果D415或从接收存储器416提供的接收数据D417, 并将所选择的一个作为中间解码结果D411提供到准校验节点计算器412。
也就是说,紧接在将接收数据D417存储在接收存储器416 (在存储接收 数据D417之后,但在通过使用接收数据D417执行第一准可变节点运算之前) 之后,不可能使用中间解码结果D415执行准校验节点运算,这是因为对于 接收数据D417的中间解码结果D415还没有存储在中间解码结果贮存存储器 410中。因此,紧接在接收存储器416中存储接收数据D417之后,控制部分417将用于指示接收数据D417的选择的控制信号D421提供到开关411。结
作为中间解码结果D411提供到准校验节点计算器412。因此,在这种情况下, 准校验节点计算器412通过使用接收数据D417作为表达式(8)中的中间解 码结果i来执行准校验节点运算。尽管在准校验节点运算中使用在分支存储 器413中存储的每一个校验节点消息Uj,但是当在接收存储器416中存储新 的接收数据D417时将分支存储器413中的校验节点消息Uj初始化为0。
另 一方面,在接收存储器416中存储接收数据D417并且使用接收数据 D417执行第一准可变节点运算之后(且在将输出对于接收数据D417的最终
间解码结果贮存存储器410中。因此,控制部分417将用于指示中间解码结 果D415的选择的控制信号D421提供到开关411。结果,开关411选择从中 间解码结果贮存存储器410提供的中间解码结果D415,并将中间解码结果 D415作为中间解码结果D411提供到准校验节点计算器412。因此,在这种 情况下,准校验节点计算器412通过使用中间解码结果D415作为表达式(8 ) 中的中间解码结果^来执行准校验节点运算。
除了从开关411作为表达式(8)中的中间解码结果l给出的中间解码结 果D411之外,将作为由准校验节点计算器412执行的最后准校验节点运算的 结果而获得的校验节点消息Uj作为消息D413从分支存储器413提供到准校 验节点计算器412。将控制信号D420从控制部分417提供到准校验节点计算 器412。
准校验节点计算器412通过使用从开关411给出的中间解码结果D411 (表达式(8)中的y)和消息D413 (最后校验节点消息Uj)执行准校验节点 运算(即由表达式(8)表示的运算),然后执行由表达式(7)表示的运算, 由此根据奇偶校验矩阵H中每一个分支(每一个具有1值的分量)来计算表 达式(7)的校验节点消息Uj。准校验节点计算器412将作为表达式(8)的
准校验节点运算的结果而获得的每一个分支的校验节点消息Uj,作为消息
D412提供到分支存储器413。
分支存储器413连续地存储从准校验节点计算器412提供的各个分支的 消息D412。从分支存储器413连续地读取在分支存储器413中存储的各个分 支的消息D412 (Uj)用于下一次准校验节点运算和下一次准可变节点运算,以便将每一个消息D412作为消息D413提供到准校验节点计算器412和准可 变节点计算器415。
将每一个分支的消息D413 (校验节点消息Uj)从分支存储器413提供到 准可变节点计算器415。将LDPC码的接收数据D417 (表达式(5 )中的uoi) 从接收存储器416提供到准可变节点计算器415。此外,将控制信号D422从 控制部分417提供到准可变节点计算器415。
准可变节点计算器415通过使用从分支存储器413给出的每一个分支的 消息D413 (Uj)和从接收存储器416给出的接收数据D417 ( u0i )、根据奇偶 校验矩阵H中每一列来执行由表达式(5)表示的准可变节点运算,由此获 得根据奇偶校验矩阵H中的每一列的中间解码结果Y。准可变节点计算器415 将作为由表达式(5)表示的准可变节点运算的结果而获得的中间解码结果Y 作为中间解码结果D415提供到中间解码结果贮存存储器410。
这里,如上所述,将从准可变节点计算器415提供的中间解码结果D415 连续地存储在中间解码结果贮存存储器410中,以便将存储的中间解码结果 D415从中间解码结果贮存存储器410中读取并将其连续地提供到开关411。
当已经由准可变节点计算器415执行最终的准可变节点运算时,即当已 经关于在接收存储器416中存储的接收数据D417迭代地执行准校验节点运 算和准可变节点运算例如预定次数时,中间解码结果贮存存储器410输出通 过最终的准可变节点运算而获得的中间解码结果D415作为在接收存储器416 中存储的接收数据D417 (LDPC码)的最终解码的结果。
接收存储器416存储对于一个码长的接收LLR (对数似然比)作为接收 数据D417,所述接收LLR是从通过通信信道接收的接收信号D416计算的 LDPC码的每一位是"O"值的似然,并将接收数据D417提供到开关411和准 可变节点计算器415。
控制部分417分别将控制信号D420、 D421和D422提供到准校验节点 计算器412、开关411和准可变节点计算器415,由此分别控制准校验节点计 算器412和准可变节点计算器415。
在如上所述配置的图26的解码设备中,当数据以中间解码结果贮存存储 器410、准校验节点计算器412、分支存储器413和准可变节点计算器415的 顺序构成一个周期时,执行一个周期的解码(迭代解码(校验节点运算和可 变节点运算)中的一个周期的处理)。在图26的解码设备中,在迭代地执行解码预定次数之后,将作为由准可变节点计算器415执行的准可变节点运算
的结果的中间解码结果D415作为最终解码结果输出。
接着,将详细描述图26中准校验节点计算器412和准可变节点计算器
415。
首先,图28示出图26的准校验节点计算器412的配置的示例。 除了从开关411 (图26)作为表达式(8)的中间解码结果i给出的中间 解码结果D411之外,作为通过准校验节点计算器412的准校验节点运算结果 的最后一次获得的校验节点消息Uj (在之前执行的准可变节点运算中使用的 校验节点消息Uj)之中,从想要根据表达式(8)计算可变节点消息Vi的分支 给出的校验节点消息udv,被从分支存储器413 (图26 )作为到准校验节点计 算器412的消息D413提供到准校验节点计算器412。此外,将控制信号D420 从控制部分417 (图26)提供到准校验节点计算器412。
这里,图26的解码设备迭代地执行准校验节点运算和准可变节点运算, 由此等效地以与图17的解码设备相同的方式迭代地执行校验节点运算和可 变节点运算。
设计图17的解码设备,使得通过校验节点运算获得的消息Uj和通过可 变节点运算获得的消息Vi中的每一个均由作为包括符号位在内的6位普通量 化值的定点量化值表示。此外设计图26的解码设备,使得消息Uj和消息Vi 中的每一个均由作为包括符号位在内的6位普通量化值的定点量化值表示。 进一步设计图26的解码设备,使得在接收存储器416中存储的接收数据D417 也以与图17的解码设备中相同的方式、由作为包括符号位在内的6位普通量 化值的定点量化值表示。
在这种情况下,从分支存储器413 (图26 )提供到准校验节点计算器412 的消息D413由作为包括符号位在内的6位普通量化值的定点量化值表示。 另外,从开关411(图26 )提供到准校验节点计算器412的中间解码结果D411 (v)由作为9位普通量化值(将在后面描述)的定点量化值表示。
将由也作为6位普通量化值的定点量化值表示的、从分支存储器413(图 26 )提供到准校验节点计算器412的消息D413 (即在作为准校验节点运算的 结果最后一次获得的校验节点消息Uj之中,从想要根据表达式(8 )计算可变 节点消息vi的分支给出的校验节点消息Udv)和由作为9位普通量化值的定点 量化值表示的、从开关411 (图26)提供到准校验节点计算器412的中间解码结果D411 (v)两者,提供到块B,的运算单元431。
将从控制部分417(图26)提供到准校验节点计算器412的控制信号D420 提供到选择器435和选择器442。
运算单元431执行由表达式(8 )表示的运算,即从提供到运算单元431 的9位中间解码结果D411 (v)中减去也提供到运算单元431的6位中间解 码结果D413 (udv),由此获得可变节点消息Vi,并输出作为6位普通量化值 并且表示可变节点消息Vi的定点量化值D431 ( Vj )。
顺便提及,当由表达式(8 )表示的运算结果在由作为6位普通量化值的 定点量化值表示的数值范围之外时,运算单元431截断运算结果,并以作为 图12的前述可变节点计算器103的组成部分的运算单元156相同的方式输出 经截断的运算结果。
将从运算单元431输出的6位定点量化值D431 ( Vj)提供到块A,。在块 A,中,将从运算单元431给出的6位定点量化值D431 (可变节点消息Vj)的 作为区分正负的最高有效位的符号位D432 (sign (hi))提供到异或电路440 和FIFO存储器444,而将6位定点量化值D431的低5位的绝对值D433( |Vi|) 提供到LUT432。
如上所述,块A,与图18中所示的校验节点计算器181的块A相对应。 因此,块A,执行与块A相同的处理。
也就是说,在块A,中,LUT432、分别将运算单元433、寄存器434、选 择器435、寄存器436、运算单元437、 FIFO存储器438、 LUT439、异或电 路440、寄存器441、选择器442、寄存器443、 FIFO存储器444、异或电路 445和转换电路501到503配置为类似于图18的块A中的LUT221、运算单 元1122、寄存器1123、选择器1124、寄存器1125、运算单元1126、 FIFO存 储器1127、 LUT228、异或电路129、寄存器130、选择器131、寄存器132、 FIFO存储器133、异或电路134和转换电路231到233。
在块A,中,LUT 432接收与从运算单元431给出的5位绝对值D433( |v」) 一致的、也作为5位普通量化值的定点量化值作为输入,读取表示与定点量 化值相关联的非线性函数州v, l)的运算结果的5位半浮点量化值F434,并将5 位半浮点量化值F434输出到转换电路501和FIFO存储器438。
转换电路501将从LUT432提供的5位半浮点量化值F434转换为作为9 位高精度量化值的定点量化值D434,并以与图18中转换电路231相同的方式将定点量化值D434输出到运算单元433。
运算单元433通过将从转换电路501提供并且表示非线性函数州v, I)的运 算结果的9位定点量化值加到在寄存器434中存储的13位值D435来累计表 示非线性函数^lv,l)的运算结果的9位定点量化值,以便将由作为高精度量化 值的定点量化值表示的、由此获得的累计值D435再次存储在寄存器434中。 顺便提及,当从连接到奇偶校验矩阵H中一行的所有分支给出的消息D431 (可变节点消息Vi)的绝对值D433 已经被完全累计时,复位寄存器
434。
这里,从运算单元433输出的累计值D435由13位组成而通过转换电路 501从LUT432输入到运算单元433的、作为累计对象的运算结果D434
由9位组成的原因,与来自图18中的运算单元1122的输出由比输 入到运算单元1122的9位运算结果D434 ( 0(| v, |))大4位的13位组成的原 因相同。
当与奇偶校验矩阵H中 一行对应的消息D431 (可变节点消息Vj)已经 被逐个读取,并且作为对于一行的运算结果D434的累计结果的累计值已经 被存储在寄存器434中时,从控制部分417 (图26)提供的控制信号D420 从"O"改变到"l"。例如,当奇偶校验矩阵H中行权重是"9"时, 一直到第八运 算结果D434被累计时,控制信号D420取"0",而当第九运算结果被累计时 控制信号D420取"1"。
当控制信号D420是"l"时,选择器435选择在寄存器434中存储的值, 即作为从连接到奇偶校验矩阵H中一行的所有分支给出的消息D431(可变节 点消息v》计算的一v,l)的累计值的13位定值量化值D435 ( 2>(卜,|)从1=1到 i=dc),并将13位定点量化值D435作为13位定点量化值D436输出到寄存器 436,以便将13位定点量化值D436存储在寄存器436中。寄存器436将存 储的定点量化值D436作为13位定点量化值D437提供到选择器435和运算 单元437。当控制信号D420是"0"时,选择器435选择从寄存器436提供的 定点量化值D437,并将定点量化值D437输出到寄存器436,以便将定点量 化值D437再次存储在寄存器436中。也就是说,除非从连接到奇偶校验矩 阵H中一行的所有分支给出的消息D431 (可变节点消息Vi)计算的一v,l)被 完全累计,否则寄存器436将最后一次累计的^(卜,l)提供到选择器435和运算 单元437。另 一方面,FIFO存储器438延迟表示从LUT 432输出的非线性函数^(卜,|) 的运算结果的5位半浮点量化值F434,除非从寄存器436输出新的定点量化 值D437 ( 5>(卜|)从i=l到i=dc ),并将经延迟的5位半浮点量化值F434作为 5位半浮点量化值F438提供到转换电路502。
转换电路502将从FIFO 438提供的5位半浮点量化值F438转换为作为 9位高精度量化值的定点量化值D438,并将定点量化值D438提供到运算单 元437。
运算单元437从寄存器436提供的13位定点量化值D437中减去从转换 电路502提供的9位定点量化值D438,并将作为减法结果获得的9位定点量 化值D439才是供到LUT 439。
也就是说,运算单元437从连接到奇偶校验矩阵H中一行的所有分支给 出的消息D431 (可变节点消息Vi)计算的非线性函数-(卜,l)的运算结果的累计 值中减去从想要计算校验节点消息Uj的分支给出的消息D431(可变节点消息 Vi)计算的非线性函数0(卜|)的运算结果,并将表示差值(^>(卜|)从1=1到 i=dc-l )的9位定点量化值D439提供到转换电路503。
顺便提及,当作为从寄存器436提供的13位定点量化值D437中减去从 转换电路502提供的9位定点量化值D438的结果的减法结果超出作为9位 高精度量化值的定点量化值可以表示的最大值时,运算单元437将运算结果 截断成作为9位高精度量化值的定点量化值可以表示的最大值,并输出截断 的减法结果。
转换电路503将从运算单元437提供并且表示差值(2>(卜,|)从i=l到 i=dc-l )的9位定点量化值D439转换为5位半浮点量化值F439,并将5位半 浮点量化值F439提供到LUT 439。
LUT439接收从转换电路503提供并且表示差值(^>(卜,|)从1=1到i=dc-l ) 的5位半浮点量化值F439作为输入,并且读取并输出与5位半浮点量化值 F439相关联地、表示反函数f 乂Z一v,l))的运算结果并且也作为普通量化值的 5位定点量化值。
与前述处理并行地,异或电路440通过执行在寄存器441中存储的l位 值D442的异或来将符号位彼此相乘,并将1位乘积值D441再次存储在寄存 器441中。顺便提及,当从与奇偶校验矩阵H中一行中所有1对应的中间解 码结果D441计算的可变节点消息Vi(D431)的码位(code bit) D432已经被完全相乘时,复位寄存器441。
当作为从与奇偶校验矩阵中一行中所有1对应的中间解码结果D411计 算的可变节点消息力(D431)的符号位D432的乘法结果的乘法结果D441
(n^g"(v,)从i-l到i=dc)已经被存储在寄存器441中时,从控制部分417 提供的控制信号D420从"0"改变到"1"。
当控制信号D420是'T,时,选择器442选择在寄存器441中存储的值, 即作为从与奇偶校验矩阵中 一行中所有1对应的中间解码结果D411计算的符 号位D432的乘法结果的值D442 ( n"g"")从卜l到i=dc),并将值D442作 为1位值D443输出到寄存器443,以便将1位值D443存储在寄存器443中。 寄存器443将存储的值D443作为1位值D444提供到选择器442和异或电路 445。当控制信号D420是"O,,时,选择器442选择从寄存器443提供的值D444, 并将值D444输出到寄存器443 ,以便将值D444再次存储在寄存器443中。 也就是说,除非从与奇偶校验矩阵中一行中所有1对应的中间解码结果D411
(中间结果解码Y)计算的可变节点消息Vi ( D431 )的符号位D432被完全累 计,否则寄存器443将最后一次的累计值提供到选择器442和异或电路445。 另一方面,FIFO存储器444延迟每一个符号位D432,直到新的值D444
(flw'g"(v,)从i=l到i=dc)从寄存器443提供到异或电路445为止,并将符 号位D432作为一位值D445提供到异或电路445。异或电路445执行从寄存
值D444除以值D445,并将1位除法结果作为商值D446输出。也就是说, 异或电路445将从与奇偶校验矩阵中一行中所有1对应的中间解码值D411 计算的可变节点消息力(D431)的符号位D432 (sign (Vi))的乘积除以从想 要计算校验节点消息Uj的分支给出的可变节点消息Vl( D431 )的符号位D432 (sign (Vi)),以便将结果的商值(n々"0,)从i:l到i=dc-l )作为商值D446 输出。
从准校验节点计算器412输出作为6位普通量化值表示的消息D412(校 验节点消息Uj ),所述6位普通量化值具有从LUT 439输出的5位普通量化值 D440作为其低5位,并且具有从异或电路445输出的1位商值D446作为其 最高有效位(符号位)。
如上所述,准校验节点计算器412执行由表达式(7)和(8)表示的运 算,以便作为校验节点运算的结果获得由6位普通量化值表示的校验节点消息Uj。将该校验节点消息Uj从准校验节点计算器412提供到分支存储器413 (图26 ),并将该校验节点消息Uj存储在分支存储器413中。
顺便提及,由于图9中奇偶校验矩阵中一行的最大权重是9,所以准校 验节点计算器412具有用于延迟从9个中间解码结果D411计算的9个运算结 果D434(0(卜,1))的FIFO存储器438,以及用于延迟9个符号位D432的FIFO 存储器444。当计算其行权重小于9的一行中的校验节点消息Uj时,将FIFO 存储器438和FIFO存储器444中的延迟量减小到等于行权重的值。
接着,图29示出图26中准可变节点计算器415的配置的示例。
准可变节点计算器415由块C,组成。如上所述,块C,与图27所示的可 变节点计算器103的块C对应。因此,块C,执行与块C相同的处理。
也就是说,以分别与图27中块C中运算单元151、寄存器152、选择器 153、寄存器154和运算单元156i相同的方式配置块C,中的运算单元471、 寄存器472、选择器473、寄存器474和运算单元475。
将作为校验节点运算的结果的消息D413 (校验节点消息Uj)从分支存储 器413 (图26)提供到准可变节点计算器415。将消息D413提供到运算单元 471。将接收数据D417 (uQi)从接收存储器416 (图26 )提供到准可变节点 计算器415。将接收数据D417提供到运算单元475。将控制信号D422从控 制部分417 (图26 )给到准可变节点计算器415,以便将控制信号D422提供 到选择器473。
这里,从分支存储器413 (图26)提供到准可变节点计算器415的消息 D413 (校验节点消息Uj)和从接收存储器416 (图26)提供到准可变节点计 算器415的接收数据D417 ( uoi)中的每一个由也作为6位普通量化值的定点 量化值表示(如上所述)。
运算单元471通过将消息D431加到在寄存器472中存储的9位值D471 来累计消息D413uj,以便将作为累计结果获得的9位累计值再次存储在寄存 器472中。顺便提及,当与奇偶校验矩阵中 一列中所有1对应的消息D413 (校验节点消息Uj)已经被完全累计时,复位寄存器472。
这里,从运算单元471输出的累计结果由9位组成而作为输入到运算单 元433的累计对象的消息D413 (Uj)由6位组成的原因与来自运算单元151 的输出由比输入到图12中运算单元151的6位消息D103大3位的9位组成 的原因相同。当作为与 一列对应的消息D413的累计结果的累计值已经净皮存储在寄存 器472中时,从控制部分417(图26)提供的控制信号D422从"0"改变到'T,。 例如,当列权重是"5,,时, 一直到当累计第四消息D413时控制信号D422都 取"0",而当累计第五消息D413时控制信号D422取'T,。
当控制信号D422是'T,时,选择器473选择在寄存器472中存储的值, 即作为从连接到奇偶校验矩阵H中一列的所有分支给出的消息D413(校验节 点消息Uj)的累计结果的9位累计值D471 ( 2>,人i=l到i=dv ),并将9位 累计值D471输出到寄存器474,以便将9位累计值D471存储在寄存器474 中。寄存器474将存储的累计值D471作为9位值D472提供到选择器471和 运算单元475。当控制信号D422是"0"时,选择器473选择从寄存器474提 供的9位值D472,并将9位值D472输出到寄存器474,以便将9位值D472 再次存储在寄存器474中。也就是说,除非从连接到奇偶校验矩阵的一列的 所有分支给出的消息D413 (校验节点消息Uj)被完全累计,否则寄存器474 将最后一次累计的值D472提供到选择器473和运算单元475。
运算单元475将9位累计值D472加到从接收存储器416 (图26 )提供 的6位接收数据D417,以便将作为相加结果的9位累计值作为中间解码结果 D415 (中间解码结果Y)输出。
如上所述,准可变节点计算器415通过直接使用作为普通量化值的定点 量化值来执行由表达式(5)表示的运算,以便获得9位中间解码结果Y。将 该中间解码结果i从准可变节点计算器415提供到中间解码结果贮存存储器 410(图26),并将该中间解码结果L存储在中间解码结果贮存存储器410中。
顺便提及,将由9位定点量化值(普通量化值)表示的中间解码结果Y 存储在中间解码结果贝i存存储器410中。如上所述,通过开关411 (图26) 将该9位中间解码结果i提供到准校验节点计算器412。
此外,在图26的解码设备中,以与图17的解码设备相同的方式,在从 非线性函数0(x)的运算到反函数f (x)的运算的处理部分中,准校验节点计算 器412使用作为高精度量化值的9位定点量化值,或使用与9位定点量化值 同样高的精度表示0附近的数值且具有与9位定点量化值同样宽的动态范围 的5位半浮点量化值,而在其他处理部分中使用也作为普通量化值的定点量 化值。因此,可以高精度地解码LDPC码,同时抑制解码设备的尺寸的增大 (中间解码结果贮存存储器410和用于存储消息的分支存储器413等的容量的增大)。
此外,在准校验节点计算器412 (图28)中,LUT432接收定点量化值 作为输入,并输出非线性函数Wx)的运算结果作为5位半浮点量化值,而LUT 439接收5位半浮点量化值作为输入,并输出反函数f(x)的运算结果作为定 点量化值。由此,从这一点上也可以看出,可以高精度地解码LDPC码,同 时抑制解码设备的尺寸的增大(LUT 432和LUT 439的容量的增大)。
此外,在图26的解码设备中,准校验节点计算器412执行校验节点运算 和一部分可变节点运算,而准可变节点计算器415执行其他部分可变节点运 算。因此,与图17的解码设备相比,可以减小图26的解码设备的尺寸。
也就是说,在图26的解码设备中,分支存储器413与图17的分支存储 器102对应,中间解码结果贮存存储器410与图17的分支存储器IOO对应, 并且接收存储器416与图17的接收存储器104对应。
由于图26的分支存储器413和对应的图17的分支存储器102中的每一 个均需要存储与分支的总数对应的许多6位校验节点消息Uj,所以图26的分 支存储器413和对应的图17分支存储器102的每一个均需要等于分支总数的 6位倍的存储容量。另外,由于图26的分支存储器413和对应的图17的分 支存储器102中的每一个均需要根据码长存储6位接收数据uQi,所以图26 的分支存储器413和对应的图17的分支存储器102中的每一个均需要等于码 长6位倍的存储容量。
此外,由于与图17的分支存储器102类似地,图17的分支存储器100 需要存储与分支总数对应的许多6位可变节点消息Vi,所以图17的分支存储 器100需要等于分支总数的6位倍的存储容量。
相反,与图17的分支存储器IOO对应的图26的中间解码结果贮存存储 器410需要根据码长存储从准可变节点计算器415输出的许多中间解码结果 Y(D415)。由于每一个中间解码结果i由如图29所示的9位(普通量化值) 组成,所以中间解码结果贮存存储器410需要等于码长的9位倍的存储容量。
因此,当分支总数小于码长的3/2倍(=9位/6位)时,中间解码结果贮 存存储器410的存储容量大于图17的对应分支存储器100的存储容量。
尽管LDPC码的奇偶校验矩阵H是稀疏的,但是分支总数(奇偶校验矩 H中分量'T,的总数)通常大于码长(奇偶校验矩阵H中的列数)的3/2倍。 例如,在图9的奇偶校验矩阵H中,分支总数(323 )约为码长(108 )的3倍(几乎等于323/108 )。
因此,可以使中间解码结果贮存存储器410的存储容量小于图17的对应 分支存储器100的存储容量。
结果,可以使图26的解码设备的尺寸一定程度地小于图17的解码设备 的尺寸,通过该程度可以使中间解码结果贮存存储器410的存储容量小于图 17的对应分支存储器100的存储容量。
如上所述,图26的解码设备既不需要用于执行由表达式(5 )表示的运 算的块(与准可变节点计算器415分离)的提供,也不需要图27 (图12)的 FIFO存储器155的提供。因此,可以将图26的解码设备配置为小于图17的 解码设备的尺寸。
接着,图30示出关于各种解码设备的BER/FER仿真的结果。
顺便提及,在图30中,横坐标轴表示每位的信号电功率与噪声电功率的 比值(Eb/N。),纵坐标轴表示BER (位误码率)或FER (帧误码率)。在图 30中,分别由实线和虚线示出BER和FER。
图30中的符号V表示在图13的解码设备中解码LDPC码的情况下,即 在以这样的方式解码LDPC码将也作为5位普通量化值的定点量化值输入 到LUT1121 (图14)并且从LUT1121输出也作为9位高精度量化值的定点 量化值,并且将也作为9位高精度量化值的定点量化值输入到LUT 1128并且 从LUT 1128输出也作为5位普通量化值的定点量化值的情况下的BER和 FER。
另外,图30中的符号o表示在图17的解码设备中解码LDPC码的情况 下,即在以这样的方式解码LDPC码将作为5位普通量化值的定点量化值 输入到LUT221 (图18)并且从LUT221输出5位半浮点量化值,并且将5 位半浮点量化值输入到LUT228并且从LUT228输出作为5位普通量化值的 定点量化值的情况下的BER和FER。
从图30中可以理解,图17的解码设备具有与图13的解码设备基本上相 同的性能。
如上所述,可以使作为图17的解码设备的组成部分的LUT221和LUT 228(图18)在尺寸上显著地小于作为图13的解码设备的组成部分的对应LUT 1121和LUT 1128 (图14)。因此,可以将图17的解码设备配置为在尺寸上 小于图13的解码设备,同时具有与图13的解码设备基本上相同的性能。接着,图31示出图26的准校验节点计算器412的配置的另一示例。顺便提及,在图31中,相同的标记表示与图28的情况相对应的相同部 分。在下文中将适当地省略对关于这些部分的描述。也就是说,将图31的准 校验节点计算器412配置为基本上与图28的准校验节点计算器412相类似。在图28的校验节点计算器412中,LUT432接收5位定点量化值作为输 入,并输出表示非线性函数一v,l)的运算结果的5位半浮点量化值,而LUT439 接收5位半浮点量化值作为输入,并输出表示反函数^C(卜,I))的运算结果 的5位定点量化值。另一方面,在图31的校验节点计算器412中,LUT432 接收5位定点量化值作为输入,并输出表示非线性函数列v,l)的运算结果的6 位半浮点量化值,而LUT439接收6位半浮点量化值作为输入并输出表示反 函数f 、Z刈v,l))的运算结果的5位定点量化值。也就是说,在图31的校验节点计算器412中使用总共6位的半浮点量化 值,例如所述6位半浮点量化值具有3位准尾数£和3位准指数&顺便提及,在图31中,根据这样的6位半浮点量化值做出配置,使得转 换电路501和502中的每一个将6位半浮点量化值转换为9位定点量化值, 而转换电路503将9位定点量化值转换为6位半浮点量化值。在图31的准校验节点计算器412中,除了半浮点量化值不是由5位而是 6位组成之外,以与图28的准校验节点412相同的方式执行准校验节点运算。根据图31的准校验节点计算器412,尽管与使用包括2位准尾数£和3 位准指数i的5位半浮点量化值的图28的校验节点计算器412相比,使得 LUT432和439的容量或多或少地大,但是可以更高精度地执行准校验节点 运算,这是因为图31的准校验节点计算器412使用包括3位准尾数和3位 准指数l的6位半浮点量化值。接着,在准校验节点计算器412中,FIFO存储器438延迟用于由运算单 元437执行并且作为准校验节点运算的一部分的运算的数据。也就是说,在 图28或图31的准校验节点计算器412中,FIFO存储器438延迟从LUT 432 输出的非线性函数列v,l)的运算结果并将经延迟的非线性函数列v,l)的运算结 果通过转换电路502提供到运算单元437,以便运算单元437通过使用经延 迟的非线性函数一v,l)的运算结果来执行运算。图28中的LUT432接收5位定点量化值作为输入,并输出5位半浮点 量化值作为非线性函数一v,l)的运算结果,而图31中的LUT432接收5位定点量化值作为输入,并输出6位半浮点量化值作为非线性函数0(卜l)的运算结 果。因此,与FIFO存储器438延迟5位半浮点量化值的图28的情况相比, FIFO存储器438延迟6位半浮点量化值的图31的情况需要具有很大容量的 FIFO存储器。因此,可以配置准校验节点计算器412(和图18的校验节点计算器181 ), 以便在FIFO存储器438中延迟从输入到LUT 432的定点量化值和从LUT 432 输出的半浮点量化值中选择的具有更少位数的量化值。也就是说,图32示出图26的准校验节点计算器412的配置的示例,配 置图26的准校验节点计算器412,以便在输入到LUT432的定点量化值是5 位且从LUT 432输出的半浮点量化值是6位的情况下,具有更少位数的量化 值,即输入到LUT432的定点量化值由FIFO存储器438延迟。顺便提及,在图32中,相同的标记表示与图31的情况相对应的相同部 分,以便将在下文中适当地省略有关这些部分的描述。配置图32的准校验节点计算器412,以便在FIFO存储器438中延迟输 入到LUT 432的5位定点量化值而不是从LUT 432输出的6位半浮点量化值。此外,在图32的准校验节点计算器412中,在FIFO存储器438和转换 电路502之间重新提供以与LUT432相同的方式配置的LUT 504,以便LUT 504联系由FIFO存储器438延迟输入到LUT 432的6位半浮点量化值而不是 从LUT432输出的6位半浮点量化值的事实,接收由FIFO存储器438延迟 的5位定点量化值作为输入,并输出表示非线性函数^(卜l)的运算结果的6位 半浮点量化值。在如上所述配置的图32的准校验节点计算器412中,在由FIFO存储器 438延迟之后输出输入到LUT432的5位定点量化值,而不是从LUT432输 出的6位半浮点量化值。然后,LUT 504接收从FIFO存储器438输出的经延 迟的5位定点量化值作为输入,并输出表示非线性函数一v,l)的运算结果的6 位半浮点量化值。转换电路502将从LUT504输出的6位半浮点量化值转换为9位定点量 化值,并将9位定点量化值提供到运算单元437。由此,运算单元437通过 使用从转换电路502提供的经延迟的非线性函数列v,.l)的运算结果来执行运算。顺便提及,由图32的准校验节点计算器412执行的其他处理部分与图31的情况相同。如上所迷,可以使用具有小容量的FIFO存储器作为FIFO存储器438, 这是因为例如,当输入到LUT432的定点量化值是5位而从LUT432输出的 半浮点量化值是6位时,配置准校验节点计算器412以便由FIFO存储器438 延迟从输入到LUT 432的定点量化值和从LUT 432输出的半浮点量化值中选 择的具有更少位数的量化值,也就是说,这是因为配置准校验节点计算器412 以便具有更少位数的量化值,即由如图32所示的FIFO存储器438延迟输入 到LUT432的定点量化值。这里,当配置准校验节点计算器412以便由如图32所示的FIFO存储器 438延迟输入到LUT432的定点量化值时,必须在FIFO存储器438和转换电 路502之间重新提供LUT504。由于这个原因,当输入到LUT432的定点量 化值的位数与从LUT432输出的半浮点量化值的位数相同时,可以配置准校 验节点计算器412以便由FIFO存储器438延迟从LUT432输出的半浮点量 化值以省略图28所示的LUT 504,由此减小准校验节点计算器412的电路尺 寸。由于当配置准校验节点计算器412以便由FIFO存储器438延迟输入到 LUT 438的定点量化值时,必须在FIFO存储器438和转换电路502之间重新 提供LUT 504,所以希望除了输入到LUT 432的定点量化值与从LUT 432输 出的半浮点量化值之间的位数的大小关系之外,还考虑LUT504的尺寸来做 出关于由FIFO存储器438延迟输入到LUT 432的定点量化值与从LUT 432 输出的半浮点量化值中的哪一个的决定。也就是说,当输入到LUT432的定点量化值的位数不小于从LUT432输 出的半浮点量化值的位数时,可以配置准校验节点计算器412,以便由如图 28所示的FIFO存储器438延迟从LUT 432输出的半浮点量化值,由此减小 准校验节点计算器的电路尺寸。当输入到LUT 432的定点量化值的位数小于从LUT 432输出的半浮点量 化值的位数时,基于包括当由FIFO存储器438延迟位数上更小并且输入到 LUT 432的定点量化值时FIFO存储器438的尺寸和在这种情况下所需的LUT 504的尺寸的总尺寸与当由FIFO存储器438延迟位数上更大并且从LUT 432 输出的定点量化值时FIFO存储器438的尺寸之间的比较,有希望使用具有更 小尺寸的配置。顺便提及,尽管在该实施例中使用具有用于连续地逐个执行各个节点的 运算的完全串行解码架构,但是解码设备的架构并不特别地受限于此。也就 是说,除了具有完全串行解码架构的解码设备之外,例如,本发明可以应用 于具有用于同时执行所有节点的运算的完全并行解码架构的解码设备,或具 有用于同时执行确定数目的节点(既不是一个节点也不是所有节点)的运算 的部分并行解码架构的解码设备。由于具有完全并行解码架构的解码设备或具有部分并行解码架构的解码 设备具有用于执行校验节点运算的多个校验节点计算器(准校验节点计算器),所以用于执行非线性函数0(x)及其反函数f100的运算的LUT (用于输 出运算结果)的容量的减小的影响变得更大。另外,奇偶校验矩阵H不限于图9所示的那个。此外,普通量化值或作为定点量化值的高精度量化值的位数(量化位数), 或半浮点量化值的位数也不仅限于前述值。此外,例如,RAM (只读存储器)可以用作图17中的分支存储器100 和102以及接收存储器104,图26中的分支存储器413和接收存储器416中 的每一个。这里,用作分支存储器IOO等中的每一个的RAM中每字的位数 (位宽)和可以在RAM中存储的字数不受特别地限定。当根据RAM的位宽 或字数将相同的控制信号(如片选信号或地址信号)给到多个RAM时,可 以逻辑地将多个RAM看作一个RAM,以便可以将多个RAM用作分支存储 器101等。也就是说,例如,当对于接收数据uoi等的量化位数来说RAM的 位宽物理地不足时,可以逻辑地将这样的多个RAM看作一个RAM,以l更可 以将接收数据uoi等存储在多个RAM中。另外,尽管配置该实施例,以便由诸如LUT1121 (图18)和LUT432 (图28 )之类的LUT或由诸如LUT 1128 (图18 )和LUT439 (图28 )之类 的LUT执行非线性函数^c)或其反函数f(力的运算,但是非线性函数";c)或 其反函数f(力的运算可以由例如CPU (中央处理单元)或逻辑电路执行。此外,尽管配置图18的校验节点计算器181,以便由FIFO 1127延迟从 LUT221输出的5位半浮点量化值,但是可以估文出配置,以便由FIFO 1127 延迟通过转换电路231转换5位半浮点量化值的表述格式这样的方式而获得 的9位定点量化值而不是从LUT221输出的5位半浮点量化值。在这种情况 下,可以省略在图18的FIFO 1127的后级提供的转换电路232。当由FIFO 1127延迟5位半浮点量化值时,与由FIFO 1127延迟9位定 点量化值的情况相比,可以减小FIFO 1127的容量。也将相同的原理应用于 图28的FIFO 438。顺便提及,用于解码LDPC码的前述解码设备可以应用于接收(数字化) 卫星广播等的调谐器。
权利要求
1、一种用于解码LDPC(低密度奇偶校验)码的解码设备,包括第一运算单元,用于执行用于解码该LDPC码的校验节点的校验节点运算,该校验节点运算包括非线性函数的运算和该非线性函数的反函数的运算;以及第二运算单元,用于执行用于解码该LDPC码的可变节点的可变节点运算;其中该第一运算单元包括函数运算单元,用于接收作为使用固定量化宽度表示数值的位串的第一量化值作为输入,并输出该非线性函数的运算结果作为第二量化值,该第二量化值是使用根据位串的一部分而确定的量化宽度表示数值的位串;以及反函数运算单元,用于接收该第二量化值作为输入,并输出该非线性函数的反函数的运算结果作为该第一量化值。
2、 根据权利要求1所述的解码设备,其中第一运算单元执行该校验节点运算和一部分的该可变节点运算;以及 第二运算单元执行其他部分的该可变节点运算。
3、 根据权利要求1所述的解码设备,其中该第二量化值的量化宽度的最小值不大于该第一量化值的量化宽度。
4、 根据权利要求3所述的设备,其中该第二量化值的量化宽度的最小值等于该第一量化值的量化。
5、 根据权利要求1所述的解码设备,其中该校验节点运算进一步包括在该非线性函数的运算之后而在该非线性函 数的反函数的运算之前执行的累计;以及该第 一运算单元在执行累计之前将该第二量化值转换为该第 一量化值。
6、 根据权利要求1所述的解码设备,其中该第一运算单元进一步包括转换单元,用于将从函数运算单元输出的该 第二量化值转换为该第 一量化值。
7、 根据权利要求1所述的解码设备,其中该校验节点运算进一步包括在该非线性函数的运算结果被延迟之后通过 使用经延迟的该非线性函数的运算结果来执行的运算;以及该第一运算单元进一步包括转换单元,用于在通过^f吏用经延迟的该非线 性函数的运算结果而执行的运算之前,将表示经延迟的该非线性函数的运算 结果的该第二量化值转换为该第 一量化值。
8、 根据权利要求7所述的解码设备,其中该第一运算单元进一步包括另 一个转换单元,用于在通过使用经延迟的 该非线性函数的运算结果而执行的运算之后,将该第一量化值转换为该第二 量化值,并将该第二量化值提供到该反函数运算单元。
9、 根据权利要求1所述的解码设备,其中该函凄t运算单元是LUT (查找表),用于接收该第一量化值作为输入, 并输出该非线性函数的运算结果作为该第二量化值;以及该反函数运算单元是LUT,用于接收该第二量化值作为输入,并输出该 非线性函数的反函数的运算结果作为该第一量化值。
10、 根据权利要求1所述的解码设备,其中该第一运算单元进一步包括延迟单元,用于延迟用于该校验节点运算的 数据;以及将该延迟单元构建为延迟输入到该函数运算单元的该第一量化值和从该 函数运算单元输出的该第二量化值之一 。
11、 根据权利要求IO所述的解码设备,其中当将该延迟单元构建为延迟输入到该函数运算单元的该第 一量化值时, 该第一运算单元进一步包括另 一个函数运算单元,用于接收由该延迟单元延 迟的该第一量化值作为输入,并输出该非线性函数的运算结果作为该第二量 化值。
12、 一种用于解码设备的解码方法,该解码设备包括 第一运算单元,用于执行用于解码LDPC (低密度奇偶校验)码的校验节点的校验节点运算,该校验节点运算包括非线性函数的运算和该非线性函 数的反函数的运算;以及第二运算单元,用于执行用于解码该LDPC码的可变节点的可变节点运 算;该解码方法包括在该第一运算单元中的函数运算步骤,用于接收作为使用固定量化宽度 表示数值的位串的第一量化值作为输入,并输出该非线性函数的运算结果作 为第二量化值,该第二量化值是使用根据该位串的一部分而确定的量化宽度来表示数值的位串;以及在该第一运算单元中的反函数运算步骤,用于接收该第二量化值作为输 入,并输出该非线性函数的反函数的运算结果作为该第一量化值。
全文摘要
用于高精度地解码LDPC码而同时抑制设备尺寸的增大的解码设备和方法。校验节点计算器(181)执行包括非线性函数φ(x)和非线性函数的反函数φ<sup>-1</sup>(x)的计算的校验节点计算,以便解码LDPC码。可变节点计算器(103)执行可变节点的可变节点计算,以便解码LDPC码。校验节点计算器(181)具有LUT,其接收使用固定量化宽度表示数值的定点量化值,并输出非线性函数φ(x)的计算结果作为半浮点量化值,其为使用根据位序列的一部分而确定的量化宽度表示数值的位序列;以及LUT,其接收半浮点量化值并输出反函数φ<sup>-1</sup>(x)的计算结果作为定点量化值。本发明可以应用于(例如)接收卫星广播的调谐器。
文档编号G06F11/10GK101310446SQ20068004233
公开日2008年11月19日 申请日期2006年9月7日 优先权日2005年9月13日
发明者宫内俊之, 新谷修, 横川峰志, 篠原雄二 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1