CN103973316B - 具有使用定标常数的可变节点更新器的解码方法和解码*** - Google Patents
具有使用定标常数的可变节点更新器的解码方法和解码*** Download PDFInfo
- Publication number
- CN103973316B CN103973316B CN201410044074.5A CN201410044074A CN103973316B CN 103973316 B CN103973316 B CN 103973316B CN 201410044074 A CN201410044074 A CN 201410044074A CN 103973316 B CN103973316 B CN 103973316B
- Authority
- CN
- China
- Prior art keywords
- message
- node
- calculate
- llr
- decoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明涉及具有使用定标常数的可变节点更新器的LDPC解码器。计算与从多个可变节点中的一个转向多个校验节点中的一个相关联的第一消息,其中:(1)所述多个可变节点与所述多个校验节点之间的一个或多个连接被LDPC奇偶校验矩阵规定并且(2)定标常数被用来计算所述第一消息。计算与从所述多个校验节点中的一个转向所述多个可变节点中的一个相关联的第二消息,其中所述定标常数未被用来计算所述第二消息。
Description
相关申请的交叉引用
本申请要求2013年2月4日提交的标题为MODIFIED LDPC DECODER FOR HARD-READNAND DEVICES的美国临时专利申请No.61/760,519(代理人案号No.LINKP131+)的优先权,其通过引用结合在本文中以用于所有目的。
背景技术
低密度奇偶校验(LDPC)码被用来写入固态储存器并且从固态储存器读取,所述固态储存器(转而)被用在移动设备中。自然地,当移动设备从电池操作时,功率消耗对于包括LDPC解码器的所有部件来说是一个重要问题。
节约功率的直截了当的方式是降低用来表示被LDPC解码器输入的软信息的位的数目。这直接地译成转而降低功率消耗的操作的数目的降低。遗憾的是,简单地降低位的数目能够引起显著的性能退化(例如,因为数值误差、舍入误差和/或饱和误差)。已降低了性能退化(尤其是在其中用来表示软信息的位的数目是相对小的***中)的新的LDPC解码技术将是所希望的。例如,这将使得功率能够被节约而不牺牲太多性能。
附图说明
在以下具体实施方式和附图中公开了本发明的各种实施例。
图1是图示了由低密度奇偶校验(LDPC)解码过程所使用的消息更新过程的实施例的流程图。
图2是图示了具有使用定标常数的可变节点更新器的LDPC解码器的实施例的图。
图3是图示了从可变节点发送到校验节点的消息的计算的数值示例的图。
图4是图示了从校验节点发送到可变节点的消息的计算的数值示例的图。
图5是图示了其中在可变节点更新状态期间更新的消息使用定标常数被更新的LDPC解码过程的实施例的流程图。
图6是图示了包括具有使用定标常数的可变节点更新器的LDPC解码器的存储***的实施例的图。
图7是图示了用来确定在计算第一消息(例如,Qji)和/或Qj时使用的值的过程的实施例的流程图。
图8是图示了由本文中所描述的技术所提供的性能改进的实施例的图表。
具体实施方式
能够以许多方式实现本发明,包括作为过程;装置;***;物质的组成;在计算机可读存储介质上体现的计算机程序产品;和/或处理器,诸如配置成执行在耦合到处理器的存储器上存储和/或由耦合到处理器的存储器所提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采取的其他任何形式可以被称为技术。一般而言,可以在本发明的范围内变更公开过程的步骤的顺序。除非另外陈述,否则诸如描述为被配置成执行任务的处理器或存储器之类的部件可以被实现为被临时地配置成在给定时间执行任务的通用部件或被制造成执行任务的特定部件。如本文所用的那样,术语“处理器”指的是被配置成处理数据的一个或多个设备、电路和/或处理核,所述数据诸如计算机程序指令。
本发明的一个或多个实施例的具体描述连同图示本发明的原理的附图一起被提供在下面。关于这种实施例描述本发明,但本发明不限于任何实施例。本发明的范围仅由权利要求来限制,并且本发明包含许多替代方案、修改以及等同物。在以下描述中阐述了许多特定细节以便提供对本发明的彻底理解。这些细节被提供用于示例的目的并且可以在没有这些特定细节中的一些或全部的情况下根据权利要求来实践本发明。出于清楚的目的,与本发明相关的技术领域内已知的技术材料没有被详细描述以便使得本发明被不必要地混淆。
图1是图示了由低密度奇偶校验(LDPC)解码过程所使用的消息更新过程的实施例的流程图。在所示出的示例中,过程由LDPC解码器中的一个或多个部件来执行。在一些实施例中,所示出的消息更新过程由通信***中的一个或多个部件来执行。在一些实施例中,所示出的消息更新过程由存储***(例如,固态存储***、NAND Flash存储***和/或3D NAND存储***)中的一个或多个部件来执行。
在100处,与从多个可变节点中的一个转向多个校验节点中的一个相关联的第一消息被计算,其中:(1)所述多个可变节点与所述多个校验节点之间的一个或多个连接(connection)被LDPC奇偶校验矩阵规定并且(2)定标常数被用来计算第一消息。例如,如果第一消息被从第j个可变节点传递给第i个校验节点,则第一消息可以被称为Qji。
在102处,与从所述多个校验节点中的一个转向所述多个可变节点中的一个相关联 的第二消息被计算,其中定标常数未被用来计算第二消息。例如,如果第二消息被从第i个校验节点传递给第j个可变节点,则第二消息可以被称为Rij。
注意,被与第二消息相关联的校验节点和可变节点未必是被与第一消息相关联的相同的校验节点和/或相同的可变节点。例如,在步骤100处生成的第一消息可以是从第一可变节点到第二校验节点(例如,Q12)以及在步骤102处生成的第二消息可以是从第三校验节点到第四可变节点(例如,R34)。取决于所使用的特定奇偶校验矩阵(H),不同的校验节点将被连接到不同的可变节点。如果奇偶校验矩阵具有N列和M行,则N(m)是连接到校验节点m的可变节点的集合并且N(m)/n是除可变节点n之外连接到校验节点m的可变节点的集合。换句话说,N(m)/n是其中元素n被去除的集合N(m)。类似地,M(n)是连接到可变节点n的校验节点的集合并且M(n)/m是除校验节点m之外连接到可变节点n的校验节点的集合。
以下图示出了包括执行来自图1的步骤100和102的部件的LDPC解码器的示例。
图2是图示了具有使用定标常数的可变节点更新器的LDPC解码器的实施例的图。在一些实施例中,LDPC解码器200使用诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)之类的半导体器件来实现。
在所示出的示例中,LDPC解码器200包括生成被与被从可变节点j发送到校验节点i相关联的消息(Qji)的可变节点更新器202。为了方便,这样的消息可以在本文中被称为“被从可变节点j发送到校验节点i的消息”。可变节点更新器202是执行图1中的步骤100的部件的一个示例。
关于定标常数(α),注意该定标常数被输入到可变节点更新器202,但未被输入到校验节点更新器206。换句话说,可变节点更新器202基于和/或使用定标常数来计算消息Qji,然而校验节点更新器206不在其计算(例如,针对Rij)中考虑定标常数。由可变节点更新器202执行以便生成消息Qji的计算的更具体描述在下面被更详细地描述。
校验节点更新器206示出了执行图1中的步骤102的部件的一个示例。例如,被校验节点更新器206输出的消息Rij是在图1中的步骤102处生成的第二消息的示例。如上,为了方便,与被从校验节点i发送到可变节点j相关联的消息在本文中被称为“从校验节点i发送到可变节点j的消息”。由校验节点更新器206执行以便生成消息Rij的计算的更具体描述在下面被更详细地描述。
在所示出的示例性LDPC解码器中,N个对数似然比(LLR)值的阵列或序列(即,L=[L0,…,LN-1])被LDPC解码器200输入。例如,可以在存储***中使用LDPC解码器 200并且包含N个单元的页或段被从储存器读取。LLR值中的每一个都是软值,其中符号指示判定(例如,负号指示1而正号指示0)并且幅度(magnitude)指示与该判定相关联的必然性或似然(例如,较大幅度对应于相关判定中的更多必然性)。在所示出的示例中,固定数目的位(w)被用来表示被LDPC解码器200输入的每个LLR值。例如,如果w=3,则每个Li值使用3位来表示。
对于0≤j≤N-1和可以使用以下方程来计算Qji消息(被从第j个可变节点发送到第i个校验节点):
注意,方程(1)仅仅是由可变节点更新器所执行的消息计算的一个表示。例如,类似地对于0≤j≤N-1和方程(1)可以被重写为:
可以针对特定情况进一步简化方程(2)。例如,在一些情况下,N个LLR值中的全部的幅度都是相同的并且仅符号变化(例如,从单元到正被读取的单元)。例如,在存储***中,如果页或段的仅一次读取已被执行了,则***将具有相同幅度的Lj值(例如,对于存储小于读取阈值的电压的单元来说Lj=-2,或者对于存储大于读取阈值的电压的单元来说Lj=2)。幅度(在该示例中,幅度为2)是相同的并且仅符号是不同的。在这种情况下,可以提前计算Lj/α的幅度(例如,在方程(2)中)并且仅符号需要被“即时(on the fly)”确定。如果Z(0/1)被用来表示Lj/α的(预先计算的)幅度并且“±”被用来指示适当的符号(无论什么它是用于该特定单元),则类似地对于0≤j≤N-1和i∈M(j),方程(2)可以被重写为:
在许多情况下(例如,约98%的时间),LDPC解码器需要页的仅一次读取以便成功地解码所希望的段或页。通过使用Z(0/1),能够访问较小的存储器并且因此能够节省功率。并且,当然,Z(0/1)是比Lj/α更简单的运算。
以下图示出了使用方程(1)的一个Qji值的计算的数值示例。
图3是图示了从可变节点发送到校验节点的消息的计算的数值示例的图。在一些实施例中,该过程由图2中的可变节点更新器202来执行。在这个示例中,w=3(即,三个位被用来表示输入到LDPC解码器的每个LLR值),并且校验节点350、352以及354被连接到可变节点300(例如,在连接被奇偶校验矩阵H规定的情况下)。
在所示出的示例中,从第一可变节点(300)到第四校验节点(352)的消息Q14正被计算。有关LLR值在这个示例中是L1,其在这个示例中是3b110,其在二的补码方面是十进制形式的-2。注意,前缀“3b”指示三个位被用来以二进制形式来表示数。自然地,尽管在此示出了二的补码表示,但是可以使用任何有符号的表示。
查看方程(1)的后面部分,该求和遍及集合M(j)/i被执行。对于图3中所示出的示例,集合M(j)包括第二校验节点(350)、第四校验节点(352)以及第五校验节点(354),并且集合M(j)/i包括第二校验节点(350)和第五校验节点(354)。
在集合M(j)/i被分解情况下,方程(1)中的求和简化为(R21+R51)。同样地,Q14=L1+α(∑i'∈M(1)/4Ri'1)=L1+α(R21+R51)。如果定标因子α=0.5,则Q14=-2+0.5×(-1+-3)=-4。
返回到图2,除生成Qji消息之外,可变节点更新器202针对0≤j≤N-1生成Qj。Qj可以在本文中被称为解码的LLR。这些值被从可变节点更新器202传递给码字更新器208。在这个示例中,对于0≤j≤N-1可变节点更新器202使用以下方程来计算Qj:
如前所述,如果所有LLR值的幅度是相同的并且仅符号不同(例如,如在固态储存器的一次读取之后的情况一样),则对于0≤j≤N-1方程(4)可以被重写为:
在一些实施例中,Z(0/1)被预先计算并且可变节点更新器202包括Z(0/1)的经预先计算的值被存储在其中的某个储存器或存储器(未在图2中示出)。例如,Z(0/1)可以被存储在被固件设置的寄存器中。当Qji或Qj被计算并且它适于使用Z(0/1)时,则被存储值被从储存器获得。
返回到图3,正被计算的Qj的数值示例被示出。在该示例中,集合M(j)包括校验节点350、352以及354,并且所以对于所示出的示例性值来说,
对于0≤i≤M-1和Rij消息(被从第i个校验节点发送到第j个可变节点)使用以下方程来计算:
方程(6)的第一部分(即,∏j'∈N(i)/jsign(Qj'i))产生+1或-1。方程(6)的第二部分(即,minj'∈N(i)/j|Qj'i|)产生正值。换句话说,方程(6)的第一部分确定符号而方程(6)的第二部分确定幅度。以下图示出了正被计算的一个Rij值的数值示例。
图4是图示了从校验节点发送到可变节点的消息的计算的数值示例的图。在所示出的示例中,从第六校验节点(400)到第三可变节点(452)的消息R63正被计算,并且校验节点400被连接到可变节点450、452以及454。如在前一示例中一样,w=3。定标常数(即,α)在计算Rij时未被使用,所以在这个示例中没有必要规定示例性数值。
在方程(6)中,求和运算和最小化运算两者都遍及集合N(i)/j运算。对于在这里示出的示例,集合N(i)包括第二可变节点(450)、第三可变节点(452)以及第四可变节点(454),并且集合N(i)/j包括第二可变节点(450)和第四可变节点(454)。
在集合N(i)/j被分解情况下,方程(6)可以被简化为 R63=(sign(Q26)×sign(Q46))min(|Q26|,|Q46|)。这转而简化为R63=((+1)×(+1))min(1,2)=1。
返回到图2,码字更新器208使用下式来计算(对于0≤j≤N-1)
在一些实施例中,经解码的LLR值(即,Qj)的MSB位包括经解码的序列(即,),所以经解码的LLR值的MSB位被发送到校正子(syndrome)更新器210以判定解码是成功的还是不成功的。换句话说,在一些实施例中,码字更新器208执行相对简单的处理。
校正子更新器210校验以看所有的误差是否已被从码字去除了。如果则校正子更新器210确定解码是成功的并且所有误差已被从码字去除了。如果是这样的话,LDPC解码器200停止解码并且输出作为解码器输出。
如果则码字(即,)未被输出并且另一解码迭代被执行(例如,可变节点更新器202计算新的Qji消息和新的Qj值,校验节点更新器206计算新的Rij消息,并且码字更新器208计算新的码字而且校验新的码字和奇偶校验矩阵的乘积是否是0),或者直到达到了某一(例如,预定义)最大数目的迭代为止。
以下的是使用上面所描述的消息更新技术的三步骤LDPC解码过程的示例,其中量化的效果(即,w是固定的、非无限数)被显式地说明。注意,以下示例假定所有LLR值的幅度是相同的,并且所以±Z(0/1)被使用代替Lj/α。自然地,如果不满足该条件,则可以使用Lj/α代替±Z(0/1)。
步骤1(可变节点更新)
对于0≤j≤N-1和i∈M(j),计算:
并且对于0≤j≤N-1,计算:
步骤2(校验节点更新)
对于0≤i≤M-1和j∈N(i),计算:
步骤3(判定)
对于0≤j≤N-1,计算其中:
其中如果(即,解码是成功的),则解码停止并且码字(即,)被输出作为LDPC解码器输出。如果码字(即,)和奇偶校验矩阵(即,H)的乘积是非零,则过程返回到步骤1直到达到了某一最大数目的迭代为止或者直到解码是成功的为止。
图5是图示了其中在可变节点更新状态期间更新的消息使用定标常数被更新的LDPC解码过程的实施例的流程图。在所示出的示例中,图1的消息更新过程被结合到LDPC解码过程中以便图示消息更新过程如何可以被使用。为了方便,图1中所示出的步骤被用相同的编号在图5中示出。
在100处,与从多个可变节点中的一个转向多个校验节点中的一个相关联的第一消息被计算,其中:(1)所述多个可变节点与所述多个校验节点之间的一个或多个连 接被LDPC奇偶校验矩阵规定并且(2)定标常数被用来计算第一消息。
在500处,确定所有第一消息是否已被计算。例如,步骤100针对0≤j≤N-1和i∈M(j)被执行。如果已经针对i和j的所有组合执行了步骤100,则在500处的判定是“是”。如果在500处确定更多第一消息仍然要被计算,则步骤100被重复。
在计算所有第一消息之后,Qj在步骤502处被计算。在图2的示例中,可变节点更新器202可以执行这个步骤。在504处,确定所有Qj值是否已被计算。例如,如果仍然尚未对于所有0≤j≤N-1计算Qj则重复步骤502。
在所有Qj值被计算之后,在102处,与从所述多个校验节点中的一个转向所述多个可变节点中的一个相关联的第二消息被计算,其中定标常数未被用来计算第二消息。在506处,确定所有第二消息是否已被计算。例如,如果仍然尚未对于0≤i≤M-1和 的所有组合计算Rij值则重复步骤102。
在所有第二消息被计算之后,在508处,码字使用一个或多个Qj值来计算。在图2中,例如,步骤508可以由生成的码字更新器208来执行。
在510处,确定解码是否是成功的。例如,图2中的码字更新器208可以确定是否如果是这样的话,则过程断定解码是成功的(即,无误差保持在码字中)并且码字在512处被输出。如果是非零值,则过程断定解码不是成功的(即,一些误差保持在码字中)。
如果在510处解码被确定为成功的,则在512处输出码字。如果在510处解码未被确定为成功的,则在514处确定最大数目的尝试是否已达到。例如,如果达到了某一最大数目的解码尝试则LDPC解码器可以停止设法解码页或段(例如,防止无限循环情形发生)。如果尚未达到该最大数目的尝试,则在100处计算新的第一消息。如果已达到了该最大数目的尝试,则过程结束(例如,并且读取失败或解码失败信号被发送到适当的部件或实体)。
图5示出了称作洪泛调度(flooding scheduling)的一种类型的解码调度。本文中所描述的技术不限于洪泛调度并且可以与其他类型的解码调度一起使用。例如,其他类型的解码调度(即,非洪泛调度)不在步骤500和/或步骤504处做“全部计算了?”校验。图5仅仅是示例性的并且不旨在为限制性的。
图6是图示了包括具有使用定标常数的可变节点更新器的LDPC解码器的存储***的实施例的图。图6示出了来自图2的LDPC解码器200如何可以被结合到存储***中的一个示例。出于简洁,与读处理器600相对应的写处理器未被示出。自然地,这不旨在为限制性的,并且本文中所描述的技术可以在***中与同地协作的写处理器一起使用。
读处理器600包括读取阈值生成器602,其生成被用来读取固态储存器650的一个或多个读取阈值。在各种实施例中,固态储存器650可以包括NAND Flash或3D NAND。由读取阈值生成器602所输出的(一个或多个)读取阈值被用来读取固态储存器650中的一组N个单元(例如,页、段等)。
最初,固态储存器650的仅一次读取被执行(例如,包含N个单元的期望页或段被读取)。与那些N个单元相对应的N个硬读取值被从固态储存器650传递给LLR值生成器604。例如,如果固态储存器650包括单层单元(SLC),则硬读取值中的每一个可以为1或0。在各种其他实施例中,固态储存器650包括其中每单元存储两位的多层单元(MLC)、其中每单元三位被存储的三层单元(TLC)等等。
LLR值生成器604使用N个硬读取值来生成N个LLR。因为(最初)该组N个单元的仅一次读已被执行,所以被从LLR值生器604传递给LDPC解码器606的N个LLR值(即,L=[L0,...,LN-1])中的全部都具有相同的幅度。LDPC解码器606(或在它之内的可变节点更新器)知道LLR幅度中的全部都是相同的(例如,因为当新的段或页的解码开始时它一直对解码尝试或跟踪计数)并且能够使用在寄存器608中存储的所存储的Z(0/1)值。例如,寄存器608可以通过固件编程有适当的值。与Z(0/1)的每个存储的值一起使用的符号的选择(例如,在方程Qj=±Z(0/1)+∑i∈M(j)Rij中,在Z(0/1)项前面的符号需要被选择或者确定)可以使用输入到LDPC解码器606的LLR值的符号确定。
如果解码在LDPC解码器606处是成功的,则经解码的码字被输出。然而,如果在LDPC解码器606处的解码是不成功的(例如,在达到了某一数目的最大解码尝试之后),则固态储存器650的另一读取被执行。例如,读取阈值生成器602生成第二组一个或多个读取阈值以便读取所期望的页或段。第二组N个硬读取值被从固态储存器650传递给LLR值生成器604。
在两组N个硬读取值对于它可用的情况下,LLR值生成器604生成第二组N个LLR值。不像第一组N个LLR值,第二组中的LLR值将不具有相同的幅度。例如,在第二读取之后,LLR值生成器604将N个单元中的每一个分配到三个接收器(bin)中的一个中。分配给最左边接收器和最右边接收器的单元将具有相同的LLR幅度(但不同的符 号),但分配给中间接收器的单元将具有不同于分配给其他两个接收器的LLR幅度。同样地,在第二读取之后,LDPC解码器606(或在它之内的可变节点更新器)在计算Qji和/或Qj时不能够使用在寄存器608中存储的Z(0/1)的被存储值。
如果该组N个单元的两次读取已被执行(例如,使用两组或更多组读取阈值),则那两组N个硬读取值在生成N个LLR值时被使用。可以使用任何适当的LLR值生成技术,并且本文中所描述的技术与所使用的特定LLR值生成技术无关。
N个LLR值被从LLR值生成器604传递给包括使用定标常数的可变节点更新器的LDPC解码器606(见,例如,图2中的LDPC解码器200)。LDPC解码器606像上面所描述的那样处理N个LLR值,并且一旦已确定所有误差已被从码字去除了就输出长度N的解码码字(即,)。如果需要,固态储存器650的附加的读取被执行(例如,使用新的一组(一个或多个)读取阈值)以便可以通过LDPC解码器606为另一解码尝试生成新的一组N个硬读取值和新的一组N个LLR值。在一些实施例中,解码尝试在达到了最大数目的解码尝试情况下结束。
图7是图示了用来确定在计算第一消息(例如,Qji)和/或Qj时使用的值的过程的实施例的流程图。在一些实施例中,所示出的示例过程被用在图1和/或图5中的步骤100中。在700处,确定由可变节点更新器所输入的所有LLR值是否被保证为具有相同的幅度。例如,如上面所描述的那样,在一些存储***中保证如果所期望的页或段的仅一次读取已被执行则所有LLR值将具有相同的幅度。LDPC解码器或可变节点更新器可以以各种方式来跟踪这个(例如,LDPC解码器通过固件被通知解码是正在使用硬读取值还是软读取值)。
如果在700处确定所有LLR值被保证为具有相同的幅度,则在702处,与所有LLR值被保证为具有相同的幅度相关联的存储的幅度在702处被获得。例如,固件可以将Z(0/1)的值(即,Lj/α的幅度)存储在图6中的寄存器608中,并且存储在其中的值在步骤702处被获得。在704处,第一消息被计算,包括通过选择适当的符号并且使用所存储的幅度。例如,在二的补码中,如果最高有效位(MSB)是1,则符号是负的。如果MSB是0,则符号是正的。使用方程(9)作为示例,如果(对于j的那个值),Lj的MSB是1,则负号被选择(例如,以得到±Z(0/1)项的符号)。
然而,如果在700处确定所有LLR值未被保证为具有相同的幅度(例如,因为两个或更多个读取已被执行并且不能够保证所有LLR值将具有相同的幅度),则在706处,第一消息被计算,包括通过计算与所存储的幅度相对应的幅度。例如,可以即时计算 Lj/α。在一些实施例中,在步骤706处Lj/α被计算一次(例如,即时)以得到Lj的每个唯一值并且其后被存储以供将来使用。如果Lj的相同值以后被观察到,则使用被存储值。执行除法可能是计算上密集的和/或昂贵的,并且这降低被执行的除法的数目。
图8是图示了由本文中所描述的技术所提供的性能改进的实施例的图表。在这个图表中,针对w(即,用来表示由LDPC解码器所输入的软信息的许多位的数目)的各个值的性能图被示出。曲线800(虚线)示出了与浮点表示相关联的性能(即,当无限数目的位可用来表示软信息时)。
曲线810和812与其中定标常数被校验节点更新器使用和/或说明的LDPC解码器相关联。曲线810(具有菱形的虚线)示出了另一个LDPC解码器在四个位被用来表示软信息时的性能,并且曲线812(具有正方形的虚线)示出了另一个***在三个位被用来表示软信息时的性能。
曲线820(具有菱形的虚点线)和曲线822(具有正方形的虚点线)与其中定标常数被可变节点更新器使用和/或说明的LDPC解码器相关联。曲线820示出了在w=4情况下的性能并且曲线822示出了在w=3情况下的性能。注意,曲线820的性能在两者皆被限于w=4情况下好于曲线810的性能。曲线822与曲线812(在两者皆被限于w=3情况下)之间的性能改进是特别显著的。w=3是在真实世界设计选择的范围内,并且所以由本文中所描述的技术所提供的性能改进将在真实世界***中是引入注意的。
尽管出于理解清楚的目的已经详细地描述了前述实施例,但是本发明不限于所提供的细节。存在实现本发明的许多可替换的方式。所公开的实施例是说明性的而不是限制性的。
Claims (13)
1.一种解码***,包括:
可变节点更新器,其被配置成计算与从多个可变节点中的一个转向多个校验节点中的一个相关联的第一消息,其中:(1)所述多个可变节点与所述多个校验节点之间的一个或多个连接被LDPC奇偶校验矩阵规定并且(2)定标常数被用来计算所述第一消息;以及
校验节点更新器,其被配置成计算与从所述多个校验节点中的一个转向所述多个可变节点中的一个相关联的第二消息,其中所述定标常数未被用来计算所述第二消息,
其中,所述可变节点更新器被配置成计算所述第一消息,包括通过:
确定在计算所述第一消息时使用的所有对数似然比(LLR)值是否被保证为具有相同的幅度;以及
在确定所有LLR值被保证为具有相同的幅度情况下:
获得与所有LLR值被保证为具有相同的幅度相关联的存储的幅度;并且
计算所述第一消息,包括通过选择适当的符号并且使用所存储的幅度。
2.根据权利要求1所述的解码***,其中所述解码***使用半导体器件来实现,所述半导体器件包括下列中的一个或多个:现场可编程门阵列(FPGA)或专用集成电路(ASIC)。
3.根据权利要求1所述的解码***,其中所述解码***被包括在下列中的一个或多个中:通信***、固态存储***、NAND Flash存储***或3D NAND存储***。
4.根据权利要求1所述的解码***,其进一步包括:
码字更新器,其被配置成计算码字;以及
校正子更新器,其被配置成至少部分地基于所述码字和奇偶校验矩阵来确定解码是否是成功的,其中在确定解码是成功的情况下,输出所述码字。
5.根据权利要求1所述的解码***,其进一步包括:
读取阈值生成器,其被配置成生成与读取固态储存器相关联的一个或多个读取阈值;以及
对数似然比(LLR)值生成器,其被配置成生成多个LLR值,其中所述可变节点更新器被进一步配置成基于所述多个LLR值中的至少一个来计算所述第一消息。
6.一种解码方法,包括:
使用处理器来计算与从多个可变节点中的一个转向多个校验节点中的一个相关联的第一消息,其中:(1)所述多个可变节点与所述多个校验节点之间的一个或多个连接被LDPC奇偶校验矩阵规定并且(2)定标常数被用来计算所述第一消息;以及
使用处理器来计算与从所述多个校验节点中的一个转向所述多个可变节点中的一个相关联的第二消息,其中所述定标常数未被用来计算所述第二消息,
其中使用所述处理器来计算所述第一消息包括:
确定在计算所述第一消息时使用的所有对数似然比(LLR)值是否被保证为具有相同的幅度;以及
在确定所有LLR值被保证为具有相同的幅度情况下:
获得与所有LLR值被保证为具有相同的幅度相关联的存储的幅度;以及
计算所述第一消息,包括通过选择适当的符号并且使用所存储的幅度。
7.根据权利要求6所述的解码方法,其中所述解码方法使用半导体器件来执行,所述半导体器件包括下列中的一个或多个:现场可编程门阵列(FPGA)或专用集成电路(ASIC)。
8.根据权利要求6所述的解码方法,其中所述解码方法由下列中的一个或多个来执行:通信***、固态存储***、NAND Flash存储***或3D NAND存储***。
9.根据权利要求6所述的解码方法,其进一步包括:
计算码字;以及
至少部分地基于所述码字和奇偶校验矩阵来确定解码是否是成功的,其中在确定解码是成功的情况下,输出所述码字。
10.根据权利要求6所述的解码方法,其进一步包括:
生成与读取固态储存器相关联的一个或多个读取阈值;以及
生成多个对数似然比(LLR)值,其中所述处理器被进一步配置成基于所述多个LLR值中的至少一个来计算所述第一消息。
11.一种计算机可读存储介质,用于存储计算机指令,该指令被配置为:
生成与从多个可变节点中的一个转向多个校验节点中的一个相关联的第一消息,其中:(1)所述多个可变节点与所述多个校验节点之间的一个或多个连接被LDPC奇偶校验矩阵规定并且(2)定标常数被用来计算所述第一消息;以及
生成与从所述多个校验节点中的一个转向所述多个可变节点中的一个相关联的第二消息,其中所述定标常数未被用来计算所述第二消息,
其中用于生成所述第一消息的计算机指令包括计算机指令以用于:
确定在计算所述第一消息时使用的所有对数似然比(LLR)值是否被保证为具有相同的幅度;以及
在确定所有LLR值被保证为具有相同的幅度情况下:
获得与所有LLR值被保证为具有相同的幅度相关联的存储的幅度;以及
生成所述第一消息,包括通过选择适当的符号并且使用所存储的幅度,
其中,所述第一消息和所述第二消息被用在解码***中。
12.根据权利要求11所述的计算机可读存储介质,所述指令被进一步被配置为:
计算码字;以及
至少部分地基于所述码字和奇偶校验矩阵来确定解码是否是成功的,其中在确定解码是成功的情况下,输出所述码字。
13.根据权利要求11所述的计算机可读存储介质,所述指令被进一步被配置为:
生成与读取固态储存器相关联的一个或多个读取阈值;以及
生成多个对数似然比(LLR)值,其中用于计算所述第一消息的所述计算机指令进一步包括用于基于所述多个LLR值中的至少一个来计算所述第一消息的计算机指令。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361760519P | 2013-02-04 | 2013-02-04 | |
US61/760519 | 2013-02-04 | ||
US61/760,519 | 2013-02-04 | ||
US14/083,186 US9231619B2 (en) | 2013-02-04 | 2013-11-18 | LDPC decoder with a variable node updater which uses a scaling constant |
US14/083186 | 2013-11-18 | ||
US14/083,186 | 2013-11-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103973316A CN103973316A (zh) | 2014-08-06 |
CN103973316B true CN103973316B (zh) | 2017-08-08 |
Family
ID=51242416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410044074.5A Active CN103973316B (zh) | 2013-02-04 | 2014-01-30 | 具有使用定标常数的可变节点更新器的解码方法和解码*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103973316B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160102738A (ko) * | 2015-02-23 | 2016-08-31 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10289348B2 (en) * | 2016-12-30 | 2019-05-14 | Western Digital Technologies, Inc. | Tapered variable node memory |
US10491243B2 (en) * | 2017-05-26 | 2019-11-26 | SK Hynix Inc. | Deep learning for low-density parity-check (LDPC) decoding |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080072406A (ko) * | 2007-02-02 | 2008-08-06 | 엘지전자 주식회사 | 모델 행렬을 이용하여 ldpc 복호화를 수행하는 방법 |
CN101355406A (zh) * | 2008-09-18 | 2009-01-28 | 上海交通大学 | 分层的非规则低密度校验码译码器及译码处理方法 |
KR20090012189A (ko) * | 2007-07-27 | 2009-02-02 | 고려대학교 산학협력단 | Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법 |
CN101552613A (zh) * | 2009-05-14 | 2009-10-07 | 上海交通大学 | 基于外信息符号变化的低密度校验码译码方法 |
CN101577607A (zh) * | 2008-05-07 | 2009-11-11 | 中国科学院微电子研究所 | 可提前结束迭代的归一化最小和译码方法 |
KR20110077189A (ko) * | 2009-12-30 | 2011-07-07 | 연세대학교 산학협력단 | 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치 |
-
2014
- 2014-01-30 CN CN201410044074.5A patent/CN103973316B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080072406A (ko) * | 2007-02-02 | 2008-08-06 | 엘지전자 주식회사 | 모델 행렬을 이용하여 ldpc 복호화를 수행하는 방법 |
KR20090012189A (ko) * | 2007-07-27 | 2009-02-02 | 고려대학교 산학협력단 | Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법 |
CN101577607A (zh) * | 2008-05-07 | 2009-11-11 | 中国科学院微电子研究所 | 可提前结束迭代的归一化最小和译码方法 |
CN101355406A (zh) * | 2008-09-18 | 2009-01-28 | 上海交通大学 | 分层的非规则低密度校验码译码器及译码处理方法 |
CN101552613A (zh) * | 2009-05-14 | 2009-10-07 | 上海交通大学 | 基于外信息符号变化的低密度校验码译码方法 |
KR20110077189A (ko) * | 2009-12-30 | 2011-07-07 | 연세대학교 산학협력단 | 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN103973316A (zh) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102412847B (zh) | 用联合节点处理来解码低密度奇偶校验码的方法和设备 | |
US9529666B2 (en) | Decoding method, memory storage device and memory controlling circuit unit | |
US8996972B1 (en) | Low-density parity-check decoder | |
CN104769556B (zh) | 更新可靠性数据 | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
US9342404B2 (en) | Decoding method, memory storage device, and memory controlling circuit unit | |
US9274891B2 (en) | Decoding method, memory storage device, and memory controlling circuit unit | |
CN104868925A (zh) | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 | |
CN106997777A (zh) | 具有改进的硬解码吞吐量的vss ldpc解码器 | |
US8943386B1 (en) | Generating soft read values which optimize dynamic range | |
JP2011081858A (ja) | メモリシステム | |
CN106575516A (zh) | 使用来自多个存储单元和奇偶校验存储单元的可靠性信息为一个失效存储单元恢复数据 | |
Ho et al. | A 520k (18900, 17010) array dispersion LDPC decoder architectures for NAND flash memory | |
US20180358988A1 (en) | Parameterized Iterative Message Passing Decoder | |
CN109361403A (zh) | Ldpc译码方法、ldpc译码器及其存储设备 | |
US20150113353A1 (en) | Decoding method, decoding circuit, memory storage device and controlling circuit unit | |
Lin et al. | Efficient shuffled decoder architecture for nonbinary quasi-cyclic LDPC codes | |
WO2017113507A1 (zh) | 一种集合译码方法和集合译码器 | |
US20160020784A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN103973316B (zh) | 具有使用定标常数的可变节点更新器的解码方法和解码*** | |
CN107608818A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN113783576A (zh) | 用于从循环置换矩阵的集群构建的准循环低密度奇偶校验码的垂直分层解码的方法及设备 | |
US9231619B2 (en) | LDPC decoder with a variable node updater which uses a scaling constant | |
CN107017030A (zh) | 用于不规则代码的高效ldpc编码器 | |
CN104185952A (zh) | 处理迭代解码器的初级检验节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: SK HYNIX INC. Free format text: FORMER OWNER: SK HAINICKS STORAGE TECHNOLOGY CO., LTD. Effective date: 20140918 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20140918 Address after: Gyeonggi Do, South Korea Applicant after: Hynix Semiconductor Co., Ltd. Address before: American California Applicant before: SK Sea Nicks storage technologies |
|
GR01 | Patent grant | ||
GR01 | Patent grant |