CN114268325A - 使用索引消息进行ldpc解码的方法和设备 - Google Patents
使用索引消息进行ldpc解码的方法和设备 Download PDFInfo
- Publication number
- CN114268325A CN114268325A CN202111031535.1A CN202111031535A CN114268325A CN 114268325 A CN114268325 A CN 114268325A CN 202111031535 A CN202111031535 A CN 202111031535A CN 114268325 A CN114268325 A CN 114268325A
- Authority
- CN
- China
- Prior art keywords
- bit
- vnu
- message
- cnu
- bit index
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000013507 mapping Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 3
- 230000002441 reversible effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000006854 communication Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/658—Scaling by multiplication or division
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/6588—Compression or short representation of variables
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Abstract
本申请公开了使用索引消息进行LDPC解码的方法和设备。本发明公开了一种低密度奇偶校验(LDPC)解码器,所述LDPC解码器包括变量节点单元(VNU),所述VNU包括被配置为执行总和的多个变量节点。所述LDPC解码器的第一消息映射器从似然比(LLR)输入接收第一n1位索引,并且将所述第一n1位索引映射到输入到所述VNU的所述变量节点的第一数值。所述LDPC解码器的第二消息映射器从校验节点单元(CNU)接收第二n2位索引,并且将所述第二n2位索引映射到输入到所述VNU的所述变量节点的第二数值。所述CNU包括执行奇偶校验操作的多个校验节点。所述第一数值和所述第二数值的范围分别大于以n1位和n2位二进制表示的范围。
Description
发明内容
本公开涉及一种用于使用索引消息进行低密度奇偶校验解码的方法和设备。在一个实施方案中,低密度奇偶校验(LDPC)解码器包括变量节点单元(VNU),该VNU包括被配置为执行总和的多个变量节点。LDPC解码器的第一消息映射器从似然比(LLR)输入接收第一n1位索引,并且将第一n1位索引映射到输入到VNU的变量节点的第一数值。LDPC解码器的第二消息映射器从校验节点单元(CNU)接收第二n2位索引,并且将第二n2位索引映射到输入到VNU的变量节点的第二数值。CNU包括执行奇偶校验操作的多个校验节点。第一数值和第二数值的范围分别大于以n1位和m2位二进制表示的范围。
鉴于以下详细讨论和附图,可理解各种实施方案的这些和其他特征以及方面。
附图说明
下文的讨论参考了以下附图,其中相同的附图标记可用于标识多个附图中的相似/相同部件。
图1是根据示例性实施方案的编码和解码系统以及设备的框图;
图2A和图2B是根据示例性实施方案的低密度奇偶校验解码器节点和H矩阵的图;
图3和图4是根据示例性实施方案的低密度奇偶校验解码器的图;
图5和图6是根据示例性实施方案的解码器消息映射的表格;
图7-图9是根据示例性实施方案的示出解码器的性能的曲线图;并且
图10是根据示例性实施方案的方法的流程图。
具体实施方式
本公开整体涉及对去往和来自信道的数据的编码和解码。例如,数据存储在诸如硬盘驱动器(HDD)和固态驱动器(SSD)之类的持久性数据存储装置上,存储信道有助于将数据存储到记录介质以及从记录介质检索数据。对于HDD,记录介质是磁盘;而对于SSD,记录介质是固态存储器单元。虽然这些类型的介质的组成和操作可基本上不同,但它们共享许多类型的通信信道所共有的特性,诸如噪声和损耗。应当注意,尽管下文的实施方案被描述为数据存储装置中的数据信道,但该概念可适用于其他数据信道,诸如有线和无线通信。
低密度奇偶校验(LDPC)码常用于现今的存储和通信系统。LDPC解码器通过在码的奇偶校验矩阵的列和行之间迭代地传递消息来对所接收的噪声码字进行解码。列表示码位并且还称为变量节点,而行表示奇偶校验约束并且还称为校验节点。LDPC解码器可实现最小和解码算法,并且包括多个变量节点单元(VNU)和校验节点单元(CNU)。VNU使用所接收的位信息,例如输入对数似然比(LLR),以及在先前迭代中在CNU中生成的软信息来形成要传递到CNU的新消息。CNU使用来自VNU的消息来形成要在下一次解码迭代中传递到VNU的新消息。在VNU中生成的消息还与输入LLR一起使用以形成硬决策。用于表示输入LLR以及在CNU和VNU之间传递的消息的位的数量的减少可以减少由解码器消耗的功率/能量。
编码器/解码器系统在图1的框图中示出。通常,处理电路100接收用户数据序列102,该用户数据序列例如从主计算机接收,并且要存储在记录介质104(例如,磁盘、固态存储器)上。用户数据序列可包括任何大小的一和零的序列。调制编码器106将用户数据102转换成用于写入盘的码字。通常,调制编码器106从码字(例如,n个连续一或零)中去除已知会引起信道错误的序列。码字108可具有固定长度,其中它们可由错误检测编码器110,例如,LDPC编码器处理。LDPC编码的数据112被输入到信号发生器114,其中该数据被转换成适合于介质104诸如数据存储介质(例如,磁盘、闪存存储器)的信号。在通信系统中,介质104可以是传输介质诸如电线或无线电信号。
图1中还看到了包括检测器226的对应读取路径,该检测器检测介质104的状态(例如,信号值)并且将状态转换成输入到LDPC解码器118的信号。LDPC编码器118使用与编码器110所执行的LDPC编码兼容的解码,并且输出输入到调制解码器120的码字119。调制解码器120使用与调制编码器106的编码兼容的解码方案,并且输出恢复的用户数据122。处理电路100的操作可由专用或通用逻辑硬件执行,此处表示为处理器124和存储器126。
在本公开中,描述了LDPC解码器118的实现,即对在解码器118的操作部件之间传递的消息进行索引。这允许使用n位索引来表示值可在例如0至2m-1(包含端值在内)的范围内的消息,其中m>n。应当注意,并非0至2m-1之间的每个值都可被表示,最多为其中的2n个,因此在由消息表示的值范围内可能存在间隙。当消息在VNU内使用时,这些索引将映射到在二进制表示中通常将需要多于n位的值。利用这种方法,可以提高减小位宽解码器的性能。具有索引和较小位宽的解码器可用于以较少的功率/能量消耗更接近更复杂的较大位宽解码器的性能。
在图2A中,图示出了根据示例性实施方案的LDPC解码器118的各方面。解码器包括多个变量节点200,该多个变量节点是上述VNU的一部分。总共八个变量节点200在图2A中示出,标记为v1-v8。变量节点200与作为上述CNU的一部分的一系列校验节点202通信。总共四个校验节点在图2A中示出,标记为c1-c4。可根据需要提供相应节点200、202的其他相应数量和布置。将变量节点200连接到校验节点的线表示用于在其间传输消息的双向通信路径。这些消息可从变量节点去往校验节点,如由v2c方向204所指示的,或者从校验节点去往变量节点,如由c2v方向206所指示的。在图2B中,示出了奇偶校验矩阵H,其表示图2A的图中的变量节点与校验节点之间的互连。
输入码位可靠性最初被加载到变量节点200,其中在每个变量节点中提供一位LLR。变量节点中的位LLR值被选择性地组合,以形成传输到对应校验节点202的v2c消息。例如,校验节点c1从变量节点v1、v2和v1接收位。一旦接收,便由校验节点202使用某些奇偶约束来评估v2c消息以解析码字。在一个示例中,校验节点202可实现偶数奇偶约束,使得给定v2c消息中的所有位的总和应达到零(偶数)值。可使用其他奇偶约束。
具有这些奇偶计算结果的消息以c2v消息的形式返回。通常,LDPC算法的每次迭代涉及生成一个v2c消息集合并将其传输到校验节点,随后将一个c2v消息集合返回到变量节点。如果不存在错误,则解析所得码字并输出数据。如果存在至少一个错误,则使用c2v消息以及在一些情况下其他信息来更新变量节点200的值。可应用后续迭代以试图解析码字。
图2A中从第i个变量节点到第j个变量校验节点的v2c消息的计算可如以下等式(1)中所表达,其中LLRi是对应于第i个变量节点的信道对数似然比,并且rj→i表示从第j个校验节点到第i个变量节点的c2v消息。
qi→j=LLRi+∑j′∈N(j)\irj′→i (1)
LLR值是关于相关联变量节点的现有状态的双状态零假设的概率的多位估计值。LLRi值的量值越高,第i个变量节点的现有位状态(0或1)就越有可能是正确的值。LLRi值的量值越低,交替位值(1或0)就越有可能是正确的状态。
等式(1)表明,每个v2c消息包括先前消息的信息内容,以及可提供进一步线索以帮助对码字进行解码的软信息。在一些情况下,校验节点可使用由v2c消息的整体量值提供的信息来对变量节点中的内容进行调整。从第j个校验节点到第i个变量节点的对应c2v消息可如以下等式(2)中所表达。
rj→i=∏i′∈N(j)\isign(qi′→j)·mini′∈N(j)\i|qi′→j| (2)
LDPC解码器118可实现最小和算法,该算法在使用简化的硬件/软件时近似计算上更复杂的置信传播算法。最小和算法的一个问题是与使用纯置信传播方法可获得的瀑布性能相比,瀑布性能下降,使得最小和算法在相同的原始位错误率(RBER)下提供更差的码字失效率。
最小和算法的另一个问题是相应v2c和c2v消息中可用的有限精度。如上所述,这种有限精度的实际结果是存在可在v2c消息的大小中实现的最大量值。无论是在软件还是硬件中实现,通常都将有总共最多n个位可用于描述相应的v2c和c2v消息。诸如n=4位、n=8位等的值可能更适合于基于硬件解码器的实现。诸如n=32、n=64等的更高值可能更适合于基于软件的实现。如将了解的,本文公开的各种实施方案适合于两种类型的实现。
qij值可增长得非常大,从而使得v2c消息达到饱和,如上所述,这是已达到最大可用值的情况(例如,长度为n位的v2c消息,其中每个n位值是逻辑1)。从等式(1)和(2)中可以看出,在一些情况下,可以仅在LDPC解码器的几次迭代中实现饱和。
因此,下文描述的实施方案包括可以减小在变量节点和校验节点之间传输的数据的大小,同时仍允许LDPC解码器的合理性能的特征。通常,使用索引方案,该索引方案允许n位消息包括其最大值可在0至2m-1-1的范围内的数字,其中m大于n。在整个范围内存在分辨率的一些损失,例如,在该范围内只能表示2n个不同的值,使得该范围内的一些值是不可表示的。该索引方案可用于减少LDPC解码器中的饱和效应的特征。
在图3中,框图示出根据示例性实施方案的LDPC解码器中的消息传输路径。路径302从输入LLR 300到VNU 304。通常,输入LLR 300是从存储或通信信道读取的数据。在一些实施方案中,输入LLR 300可包括来自硬盘读取信道的来自软输出维特比算法(SOVA)解码器的软数据,来自多次读取闪存存储器控制器、通信介质软解码器等的估计软值。在这些实施方案中的一些实施方案中,检测和解码可联合完成,这涉及经由消息路径303将输出消息从VNU 304传递到输出LLR 301。VNU 304经由路径306将v2c消息传递到CNU 308。CNU经由路径312将消息传递到存储器314,这些消息中的一些或全部作为c2v消息经由路径310传递到VNU 304。存储器314还接收/存储H矩阵信息316,例如,如图2B所示。
输入LLR 300以及来往于VNU 304和CNU 308的消息的位宽在很大程度上决定了解码器的功率/能量消耗。增加用于这些消息的二进制表示的位的数量不仅提高了错误率,而且还增加了硬件复杂性和功率/能量消耗。输入LLR 300可直接来自信道或作为检测器的输出。LDPC解码器还可生成要与检测器迭代地交换的输出软消息。在常规解码器中,消息路径302、306、310、312可使用共同表示,例如,表示2n个值的n位二进制消息,例如,如果使用无符号整数,则为0至2n-1,或者如果使用二补数有符号整数,则为-2n-1至2n-1-1。在本文中所描述的实施方案中,消息路径302、306、310、312利用消息映射器,该消息映射器可用于增加可在解码器中表示的数字的大小而不增加位的数量。因此,在无符号整数的上述示例中,n位消息的值的范围可以是从0到imax,其中imax>2n-1。
在图4中,图示出了如何在图3所示的LDPC解码器中实现消息映射器。将消息映射器400、401添加到每个VNU单元输入。消息映射器400、401将消息的二进制表示(例如,消息索引)映射到计算值,该计算值对于常规表示中的二进制表示将需要较大数量的位。由于CNU单元通常为特定校验节点确定第一最小值和第二最小值,因此它将在其输出(路径312)处保留与在其输入处相同的消息值集合,并且不需要映射器。消息映射器400、401可以使用消息索引和输出值之间的不同映射来解决由输入LLR 300和CNU 308发送的消息之间的差异。还应当注意,消息路径302、303、306、310和312全部使用n位索引消息示出。然而,在一些实施方案中,一些路径可使用不同的位宽。例如,输入LLR 300/输出LLR 301之间的路径302、303可使用n1位索引消息,并且VNU 304和CNU 308之间的路径306、310和312可使用n2位索引消息,其中在一些实施方案中,n1≠n2。
实现最小和算法的VNU单元304正在执行消息添加。因此,在VNU输出402处可能存在比在其输入处的值集合更大且不同的值集合。出于此原因,在VNU输出处,存在被称为VNU缩放单元404的映射器,其将所有可能的VNU输出值映射到可由n位数字表示的允许消息值集合。该映射器404被称为缩放单元的原因是因为该单元404执行缩放(以及减饱和)以优化解码器的错误率、错误平层和平均迭代计数。VNU缩放输出405处的允许消息值经由逆消息映射器405映射回到其索引。
如上所述,输入LLR 300可从闪存存储器信道(例如,在SSD中)或SOVA检测器(例如,在硬盘驱动器中)提供。在任一种情况下,信道或检测器可与呈本机格式(例如,m位二进制)的数据一起工作,该数据随后被转换为n位索引。输入LLR 300可输出LLR索引(例如,在SSD实现中)或由SOVA检测器生成的失真LLR(例如,在硬盘实现中)。在使用SOVA检测器等的情况下,检测器和VNU 304可迭代地交换数据作为联合检测和解码过程的一部分。在这样的实施方案中,可使用逆映射器406,其提供作为第一映射器400的逆映射的映射。这提供了发送到输出LLR 301的n位索引,其也可将数据从索引格式变换为本机格式。应当注意,这些部件406、301可以不用于所有实施方案,例如SSD驱动器。
根据示例性实施方案的VNU缩放和消息映射的几个具体示例在图5和图6的表格中示出。在用于VNU缩放的这些示例中,假设在0附近的对称映射。因此,使用列500作为示例,映射将从输入延伸,从-1到≤-13,其中VNU输出分别从-1到-8。图5的表格中的列500和501是在没有索引的情况下缩放的相应4位值和3位值的示例。应当注意,缩放倾向于削弱较高值数字之间的区别,特别是在>3的所有输入值被设置为3的列501中。
列502和503是在带有索引的情况下缩放的相应4位值和2位值的示例。在列502中,示出了最大值10,这将需要5位来表示为有符号整数。在列503中,A和B的任意值用作输出。应当注意,列503中的零输入可以是+A或–A。对此的原因在图6中示出,其中在映射的输出中不存在零,因此允许表示从–B到+B的范围,而不是–B到A,这将是未映射的二补数表示的结果。
在图7-图9中,曲线图示出根据示例性实施方案使用映射消息的LDPC解码器的测量。图7中的曲线图示出,4位解码器可使用硬盘驱动器(HDD)读取信道中的索引来接近5位解码器的性能。值得注意的是,与4位非索引解码器相比,这种性能改进是在硬件复杂性增加最少且功率/能量没有增加的情况下实现的。结果是在来自硬盘驱动器的真实数据上获得的。在这种情况下,解码器从软输入软输出(SISO)检测器获得软信息。SISO检测器和解码器在解码期间迭代地交换软信息。除此之外,在包括检测器和解码器的迭代系统中提出的消息索引可延伸到解码器之外,例如,消息映射可以在检测器输入和输出处或在迭代循环的一些其他块中使用。
图8中的曲线图示出使用消息索引的2位和3位解码器的码字失效率(CFR)性能改进。在该示例中,较低复杂性解码器显示出改进的错误率,使其更接近于4位解码器性能。除了使用消息索引之外,为了在该示例中实现改进,还使用输入LLR的迭代相关索引,从大输入LLR开始,并且随着解码的进行减小其量值。
在一些实施方案中,相同的硬件实现可以支持解码器消息的低位宽和高位宽。此解码器实现将能够以多种模式运行,并且在每种模式中,二进制表示中的不同数量的位将是活动的,并且可以使用不同的消息映射。这在例如SSD中可能是有用的。
与4位解码器相比,2位和3位解码器的功率/能量节省在图9的曲线图中示出,并且特别是在低原始位错误率(RBER)区域中可以是显著的(高达25%或35%)。这在SSD应用中是有用的,其中解码可以以例如2位模式从低能量解码器开始,并且这对于闪存的寿命开始或寿命中间的大多数码字是足够的。只有具有较多(例如,不可恢复的)错误的页面将需要用略微较高能量3位或甚至4位解码器模式进行解码,但大多数页面将在大部分时间用低能量2位或3位解码器进行成功解码。连续解码尝试是用相同硬件完成的,并且也没有附加读取,因此不需要显著的硬件改变或显著的附加解码延迟来获得这种能量/功率节省。
应当注意,在不同路径中使用不同位宽索引消息(例如,n1位和n2位)的情况下,位宽模式的改变可影响两个路径。例如,一种模式可以使用VNU与输入/输出LLR之间的n1位索引消息以及VNU与CNU之间的n2位索引消息。在不同的模式中,在VNU与输入/输出LLR之间使用m1位索引消息,并且在VNU与CNU之间使用m2位索引消息,其中m1>n1并且m2>n2。
在图10中,流程图示出根据示例性实施方案的方法。该方法涉及在LDPC解码器处从LLR输入接收1000第一n位索引。将第一n位索引映射1001到具有第一范围的第一数值,该第一范围大于可以以n位二进制表示的范围。将第一数值输入1002到LDPC解码器的VNU的变量节点,VNU确定变量节点处的总和。将总和转换1003为针对具有多个校验节点的校验节点单元(CNU)的第二n位索引。将第二n位索引映射1004到具有第二范围的第二数值,该第二范围大于可以以n位二进制表示的范围。将第二数值输入1005到CNU的校验节点,并且在CNU的校验节点处执行1006奇偶校验。迭代地执行CNU处的奇偶校验1006以及VNU处的总和的确定1002,直到解码器收敛于解(或未能收敛)并且确定输出值。
总之,描述了LDPC解码器,其包括VNU缩放单元、从CNU到VNU的消息的消息索引以及输入LLR的消息索引的。LDPC解码器对于从CNU到VNU的消息可使用与到VNU的输入LLR不同的消息索引。在一些实施方案中,(CNU到VNU消息以及输入LLR的)消息索引可以是迭代相关的。LDPC解码器可被配置为支持具有相同硬件的消息的多个位宽。迭代解码系统可包括迭代地交换软消息的软输入软输出(SISO)检测器和解码器,其中在解码器和/或检测器处使用消息索引。所有上述实施方案均可用于HDD、SSD和/或通信系统中。在SSD系统中,LDPC解码器可多次使用,具有不同的消息二进制表示和不同消息索引,但没有附加读取。
上述各种实施方案可使用交互以提供特定结果的电路、固件和/或软件模块来实现。本领域技术人员可以使用本领域中通常已知的知识,容易地以模块化水平或作为整体来实现此类所描述的功能。例如,本文所示的流程图和控制图可用于创建计算机可读指令/代码以供处理器执行。此类指令可存储在非暂态计算机可读介质上并且传输到处理器以用于执行,如本领域已知的。上文所示的结构和程序仅仅是可用于提供上文所描述的功能的实施方案的代表性示例。
出于说明和描述的目的,已经呈现了示例性实施方案的前述描述。并不旨在穷举或将实施方案限制为所公开的精确形式。鉴于以上教导内容,许多修改和变化是可能的。所公开的实施方案的任何或所有特征可单独地或以任何组合应用,并不意味着是限制性的,而仅仅是说明性的。旨在本发明的范围不受该详细描述的限制,而是由随附于本文的权利要求确定。
进一步的示例:
示例1.一种低密度奇偶校验(LDPC)解码器,所述LDPC解码器包括:
变量节点单元(VNU),所述VNU包括被配置为执行总和的多个变量节点;
第一消息映射器,所述第一消息映射器从似然比(LLR)输入接收第一n1位索引,并且将所述第一n1位索引映射到输入到所述VNU的所述变量节点的第一数值,所述第一数值具有第一范围,所述第一范围大于能够以n1位二进制表示的范围;以及
第二消息映射器,所述第二消息映射器从校验节点单元(CNU)接收第二n位索引,并且将所述第二n2位索引映射到输入到所述VNU的所述变量节点的第二数值,所述CNU包括多个校验节点,所述多个校验节点执行奇偶校验操作,所述第二数值具有第二范围,所述第二范围大于能够以n2位二进制表示的范围。
示例2.如示例1所述的LDPC解码器,还包括:
缩放单元,所述缩放单元将从所述VNU输出的总和缩放到所述CNU的允许消息值集合;以及
反向映射器,所述反向映射器将所允许的消息值映射到n位索引,所述n位索引被发送到所述CNU以执行所述奇偶校验操作。
示例3.如示例2所述的LDPC解码器,其中所述缩放单元执行所述总和的减饱和。
示例4.如示例1所述的LDPC解码器,其中n1等于n2,并且其中所述第一n1位索引与所述第一数值之间的第一映射不同于所述第二n2位索引与所述第二数值之间的第二映射。
示例5.如示例1所述的LDPC解码器,其中所述第一n1位索引与所述第一数值之间的映射对于所述LDPC解码器的不同迭代改变。
示例6.如示例1所述的LDPC解码器,其中所述LLR输入从软输出检测器接收,其中所述第一消息映射器和所述第一消息映射器的逆映射用于在所述软输出检测器与所述VNU之间迭代地交换消息索引。
示例7.如示例1所述的LDPC解码器,其中所述LDPC解码器被配置为使用所述n1位索引和所述n2位索引以第一模式并且用相应的m1位索引和m2位索引以第二模式操作,其中m1>n1并且m2>n2,所述第一映射器和所述第二映射器在所述第一模式和所述第二模式中使用不同映射。
示例8.如示例7所述的LDPC解码器,其中LLR输入来自闪存存储器,并且其中解码最初以所述第一模式开始,并且响应于不可恢复的错误而切换到所述第二模式。
示例9.如示例8所述的LDPC解码器,其中从所述第一模式到所述第二模式的切换不涉及对所述闪存存储器的附加读取。
示例10.一种方法,所述方法包括:
在低密度奇偶校验(LDPC)解码器处从对数似然比(LLR)输入接收第一n1位索引;
将所述第一n位索引映射到具有第一范围的第一数值,所述第一范围大于能够以n1位二进制表示的范围;
将所述第一数值输入到所述LDPC解码器的变量节点单元(VNU)的变量节点,所述VNU确定所述变量节点处的总和;
将所述总和转换为针对包括多个校验节点的校验节点单元(CNU)的第二n2位索引;
将所述第二n2位索引映射到具有第二范围的第二数值,所述第二范围大于能够以n2位二进制表示的范围;
将所述第二数值输入到所述CNU的所述校验节点;以及
在所述CNU的所述校验节点处执行奇偶校验,其中在所述CNU处的所述奇偶校验和在所述VNU处所述总和的确定被迭代地执行,直到输出值被确定。
示例11.如示例10所述的方法,还包括:
将从所述VNU输出的总和缩放到所述CNU的允许消息值集合;以及
将所允许的消息值反向映射到n位索引,所述n位索引被发送到所述CNU以执行所述奇偶校验操作。
示例12.如示例11所述的方法,其中缩放所述总和包括所述总和的减饱和。
示例13.如示例10所述的方法,其中n1等于n2,并且其中所述第一n1位索引与所述第一数值之间的第一映射不同于所述第二n2位索引与所述第二数值之间的第二映射。
示例14.如示例10所述的方法,其中所述第一n1位索引与所述第一数值之间的映射对于所述LDPC解码器的不同迭代改变。
示例15.如示例10所述的方法,其中所述LLR输入从软输出检测器接收,所述方法还包括在所述软输出检测器与所述VNU之间迭代地交换消息索引。
示例16.一种系统,所述系统包括:
数据接口,所述数据接口被配置为从存储介质接收数据;以及
LDPC解码器,所述LDPC解码器耦合到所述数据接口并且包括:
第一消息映射器,所述第一消息映射器从所述数据接口接收第一n1位索引并且将所述第一n1位索引映射到第一数值;
变量节点单元(VNU),所述VNU包括多个变量节点,所述多个变量节点被配置为接收所述第一数值并且对所述第一数值执行总和;以及
第二消息映射器,所述第二消息映射器从校验节点单元(CNU)接收第二n2位索引,并且将所述第二n2位索引映射到输入到所述VNU的所述变量节点的第二数值,所述CNU包括多个校验节点,所述多个校验节点执行奇偶校验操作,所述第一数值和所述第二数值具有相应的第一范围和第二范围,所述第一范围和所述第二范围大于能够以相应的n1位和n2位二进制表示的范围。
示例17.如示例16所述的系统,其中所述数据接口包括软输出检测器,其中所述第一消息映射器和所述第一消息映射器的逆映射用于在所述软输出检测器与所述VNU之间迭代地交换消息索引。
示例18.如示例16所述的系统,其中所述LDPC解码器被配置为使用所述n1位索引和所述n2位索引以第一模式并且用相应的m1位索引和m2位索引以第二模式操作,其中m1>n1并且m2>n2,所述第一映射器和所述第二映射器在所述第一模式和所述第二模式中使用不同映射。
示例19.如示例18所述的系统,其中存储介质包括闪存存储器,并且其中所述解码最初以所述第一模式开始,并且响应于不可恢复的错误而切换到所述第二模式。
示例20.如示例19所述的系统,其中从所述第一模式到所述第二模式的切换不涉及对所述闪存存储器的附加读取。
Claims (10)
1.一种低密度奇偶校验(LDPC)解码器,所述LDPC解码器包括:
变量节点单元(VNU),所述VNU包括被配置为执行总和的多个变量节点;
第一消息映射器,所述第一消息映射器从似然比(LLR)输入接收第一n1位索引,并且将所述第一n1位索引映射到输入到所述VNU的所述变量节点的第一数值,所述第一数值具有第一范围,所述第一范围大于能够以n1位二进制表示的范围;以及
第二消息映射器,所述第二消息映射器从校验节点单元(CNU)接收第二n位索引,并且将所述第二n2位索引映射到输入到所述VNU的所述变量节点的第二数值,所述CNU包括多个校验节点,所述多个校验节点执行奇偶校验操作,所述第二数值具有第二范围,所述第二范围大于能够以n2位二进制表示的范围。
2.如权利要求1所述的LDPC解码器,还包括:
缩放单元,所述缩放单元将从所述VNU输出的总和缩放到所述CNU的允许消息值集合;以及
反向映射器,所述反向映射器将所允许的消息值映射到n位索引,所述n位索引被发送到所述CNU以执行所述奇偶校验操作。
3.如权利要求2所述的LDPC解码器,其中所述缩放单元执行所述总和的减饱和。
4.如权利要求1所述的LDPC解码器,其中n1等于n2,并且其中所述第一n1位索引与所述第一数值之间的第一映射不同于所述第二n2位索引与所述第二数值之间的第二映射。
5.如权利要求1所述的LDPC解码器,其中所述第一n1位索引与所述第一数值之间的映射对于所述LDPC解码器的不同迭代改变。
6.如权利要求1所述的LDPC解码器,其中所述LLR输入从软输出检测器接收,其中所述第一消息映射器和所述第一消息映射器的逆映射用于在所述软输出检测器与所述VNU之间迭代地交换消息索引。
7.如权利要求1所述的LDPC解码器,其中所述LDPC解码器被配置为使用所述n1位索引和所述n2位索引以第一模式并且用相应的m1位索引和m2位索引以第二模式操作,其中m1>n1并且m2>n2,所述第一映射器和所述第二映射器在所述第一模式和所述第二模式中使用不同映射。
8.如权利要求7所述的LDPC解码器,其中LLR输入来自闪存存储器,并且其中解码最初以所述第一模式开始,并且响应于不可恢复的错误而切换到所述第二模式。
9.一种方法,所述方法包括:
在低密度奇偶校验(LDPC)解码器处从对数似然比(LLR)输入接收第一n1位索引;
将所述第一n位索引映射到具有第一范围的第一数值,所述第一范围大于能够以n1位二进制表示的范围;
将所述第一数值输入到所述LDPC解码器的变量节点单元(VNU)的变量节点,所述VNU确定所述变量节点处的总和;
将所述总和转换为针对包括多个校验节点的校验节点单元(CNU)的第二n2位索引;
将所述第二n2位索引映射到具有第二范围的第二数值,所述第二范围大于能够以n2位二进制表示的范围;
将所述第二数值输入到所述CNU的所述校验节点;以及
在所述CNU的所述校验节点处执行奇偶校验,其中在所述CNU处的所述奇偶校验和在所述VNU处所述总和的确定被迭代地执行,直到输出值被确定。
10.一种系统,所述系统包括:
数据接口,所述数据接口被配置为从存储介质接收数据;以及
LDPC解码器,所述LDPC解码器耦合到所述数据接口并且包括:
第一消息映射器,所述第一消息映射器从所述数据接口接收第一n1位索引并且将所述第一n1位索引映射到第一数值;
变量节点单元(VNU),所述VNU包括多个变量节点,所述多个变量节点被配置为接收所述第一数值并且对所述第一数值执行总和;以及
第二消息映射器,所述第二消息映射器从校验节点单元(CNU)接收第二n2位索引,并且将所述第二n2位索引映射到输入到所述VNU的所述变量节点的第二数值,所述CNU包括多个校验节点,所述多个校验节点执行奇偶校验操作,所述第一数值和所述第二数值具有相应的第一范围和第二范围,所述第一范围和所述第二范围大于能够以相应的n1位和n2位二进制表示的范围。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/022,549 US11233528B1 (en) | 2020-09-16 | 2020-09-16 | Method and apparatus for LDPC decoding using indexed messages |
US17/022,549 | 2020-09-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114268325A true CN114268325A (zh) | 2022-04-01 |
Family
ID=79689732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111031535.1A Pending CN114268325A (zh) | 2020-09-16 | 2021-09-03 | 使用索引消息进行ldpc解码的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11233528B1 (zh) |
CN (1) | CN114268325A (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141467B2 (en) * | 2012-03-23 | 2015-09-22 | Samsung Electronics Co., Ltd. | Semiconductor memory system including Reed-Solomon low density parity check decoder and read method thereof |
US9191256B2 (en) * | 2012-12-03 | 2015-11-17 | Digital PowerRadio, LLC | Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems |
US9444493B2 (en) | 2014-06-26 | 2016-09-13 | Sandisk Technologies Llc | Encoder with transform architecture for LDPC codes over subfields using message mapping |
KR102626162B1 (ko) * | 2016-06-14 | 2024-01-18 | 삼성전자주식회사 | 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법 |
US10419027B2 (en) * | 2016-10-13 | 2019-09-17 | Qualcomm Incorporated | Adjusted min-sum decoder |
US10263640B2 (en) | 2017-04-04 | 2019-04-16 | Seagate Technology Llc | Low density parity check (LDPC) decoder with pre-saturation compensation |
US10340951B2 (en) | 2017-09-13 | 2019-07-02 | Toshiba Memory Corporation | Soft decision LDPC decoder with improved LLR from neighboring bits |
US10804932B2 (en) | 2018-12-27 | 2020-10-13 | Seagate Technology Llc | Non-linear LLR look-up tables |
-
2020
- 2020-09-16 US US17/022,549 patent/US11233528B1/en active Active
-
2021
- 2021-09-03 CN CN202111031535.1A patent/CN114268325A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11233528B1 (en) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100958234B1 (ko) | 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들 | |
US7676734B2 (en) | Decoding apparatus and method and information processing apparatus and method | |
US7752523B1 (en) | Reduced-complexity decoding of parity check codes | |
US8291279B2 (en) | Memory-efficient LDPC decoder and method | |
US7219288B2 (en) | Running minimum message passing LDPC decoding | |
US8572463B2 (en) | Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size | |
US10298261B2 (en) | Reduced complexity non-binary LDPC decoding algorithm | |
US9048874B2 (en) | Min-sum based hybrid non-binary low density parity check decoder | |
CN106888026B (zh) | 基于lsc-crc译码的分段极化码编译码方法及系统 | |
US8898538B2 (en) | Construction of multi rate low density parity check convolutional codes | |
US20170041024A1 (en) | Method and apparatus for reducing idle cycles during ldpc decoding | |
JP2014099944A (ja) | ハードウェア共用および直列和積アーキテクチャを用いる低密度パリティ検査復号の方法および装置 | |
US20170134048A1 (en) | Message-passing based decoding using syndrome information, and related methods | |
EP3926834A1 (en) | Ldpc decoder apparatus, device, system, method and computer program | |
US11233528B1 (en) | Method and apparatus for LDPC decoding using indexed messages | |
JP2008153874A (ja) | 軟判定復号装置、軟判定復号方法および軟判定復号プログラム | |
CN112470405A (zh) | 非二进制码的消息传递解码的可变节点处理方法和设备 | |
US8001452B2 (en) | Methods and apparatus for soft decision decoding using reliability values based on a log base two function | |
KR20230029168A (ko) | 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템 | |
Lin et al. | Architecture of the modified Block-Type Low-Density parity-check code decoding design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240726 Address after: Singapore City Applicant after: Avago Technologies General IP (Singapore) Pte. Ltd. Country or region after: Singapore Address before: California, USA Applicant before: Seagate Technology LLC Country or region before: U.S.A. |