CN109586731B - 用于解码纠错码的系统和方法 - Google Patents

用于解码纠错码的系统和方法 Download PDF

Info

Publication number
CN109586731B
CN109586731B CN201811021325.2A CN201811021325A CN109586731B CN 109586731 B CN109586731 B CN 109586731B CN 201811021325 A CN201811021325 A CN 201811021325A CN 109586731 B CN109586731 B CN 109586731B
Authority
CN
China
Prior art keywords
decoding
decoder
check
soft
linear block
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
Application number
CN201811021325.2A
Other languages
English (en)
Other versions
CN109586731A (zh
Inventor
张元茂
陈杰
王仲立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yingren Technology Co ltd
Original Assignee
Yingren Technology Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yingren Technology Shanghai Co ltd filed Critical Yingren Technology Shanghai Co ltd
Publication of CN109586731A publication Critical patent/CN109586731A/zh
Application granted granted Critical
Publication of CN109586731B publication Critical patent/CN109586731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/458Soft decoding, i.e. using symbol reliability information by updating bit probabilities or hard decisions in an iterative fashion for convergence to a final decoding result
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本申请提供了用于解码由线性分组码编码的码字的系统和方法。该方法可以包括:使用第一解码器对码字执行第一解码,针对第一解码的结果,确定或计算码字中每一个符号位元所对应的校验节点中校验成功的数量和校验未成功的数量,根据校验成功的校验节点的数量和校验未成功的校验节点的数量,为码字中每一个符号位元生成相对应的软LLR,以软LLR作为第二解码器的输入,使用第二解码器执行第二解码。

Description

用于解码纠错码的系统和方法
技术领域
本申请涉及用奇偶校验数据编码的码字的解码方法,尤其涉及使用基于解码结果生成的软对数似然比(LLR)来解码码字。
背景技术
许多数据通信或存储系统常见的一个问题是数据的损坏,例如,由于通信信道中的噪声或存储系统中的写/读过程。解决数据损坏的一种技术是使用纠错码(ECC)或前向纠错(FEC)码。ECC和FEC将冗余数据或奇偶校验数据添加到用户数据中,即使,例如在传输过程中或由于存储的损坏,一些错误(在所用代码的能力之内)被引入,接收器或读取器也可以恢复用户数据。
多年来已经开发了许多不同的编码方案,例如,汉明码,里德-所罗门码,Turbo码等。最近,低密度奇偶校验(Low Density Parity Check,LDPC)码已经被广泛使用。然而,所有这些代码在运算中都是相当复杂的,仍然需要改进。
发明内容
本申请公开了一种方法,包括:使用第一解码器对码字执行第一解码;根据第一解码的解码结果,为码字的每一个符号位元计算(或确定)校验成功(或被满足)的校验节点的数量和校验未成功(或未被满足)的校验节点的数量;基于被满足的校验节点的数量和未被满足的校验节点的数量,生成相对应的符号位元的软对数似然比(LLR);并且以软LLR作为第二解码器的输入,使用第二解码器执行第二解码。
根据一个实施例,第一解码是硬式判决解码。
根据一个实施例,第二解码是软式判决解码。
根据一个实施例,根据被满足的校验节点的数量与未被满足的校验节点的数量之间的差异来生成对应于符号位元值的软LLR。
根据一个实施例,所述符号位元值的软LLR根据公式P=((#S-#U)*Q+1)*D*X生成,其中#S是所述校验运算成功(或被满足)的校验节点的数量,#U是所述校验运算未成功(或未被满足)的校验节点的数量,Q是缩放因子,D是符号位元的符号值(即+1或-1),X是分配给对应的符号位元的初始LLR幅度大小,“*”是乘号。
根据一个实施例,选择缩放因子Q和初始LLR幅度X以满足硬件约束。
根据一个实施例,第一解码是迭代解码。
根据一个实施例,在第一解码的可配置次数的迭代完成之后生成软LLR。
根据一个实施例,可配置次数是1和迭代的最大次数之间的任意整数。
根据一个实施例,在第一解码的每次迭代完成之后生成软LLR。
根据一个实施例,用作第二解码输入的软LLR是在第一解码任意次迭代完成之后产生的软LLR。
根据一个实施例,该方法还包括在第一解码操作期间调整比特翻转阈值。
本申请还公开了一种系统,包括:第一解码器,包括被配置为对码字执行第一解码的电路;软对数似然比(LLR)生成器,包括被配置为以下功能的电路:根据第一解码的解码结果,为码字的符号位元确定被满足的校验节点的数量和未被满足的校验节点的数量;并且根据被满足的校验节点的数量和未被满足的校验节点的数量,生成对应于符号位元的软对数似然比(LLR);和第二解码器,包括被配置为使用软LLR作为输入以执行第二解码的电路。
根据一个实施例,第一解码器是硬式判决解码器,并且,第二解码器是软式判决解码器。
根据一个实施例,基于被满足的校验节点的数量与未被满足的校验节点的数量之间的差异来生成对应于符号位元的软LLR。
根据一个实施例,软LLR生成器被配置为根据公式P=((#S-#U)*Q+1)*D*X生成软LLR,其中#S是被满足的校验节点的数量,#U是未被满足的校验节点的数量,Q是缩放因子,D是符号位元的符号值(即+1或-1),X是分配给符号位元的初始LLR幅度大小,“*”是乘号。
根据一个实施例,选择缩放因子Q和初始LLR幅度X以满足硬件约束。
根据一个实施例,第一解码器被配置为执行迭代解码,并且在第一解码的可配置次数的迭代完成之后生成软LLR,并且该可配置次数是1和最大迭代次数之间的任意整数。
根据一个实施例,该系统还包括数据存储器,其中从数据存储器中检索码字。
根据一个实施例,该系统还包括接收器和解调器,其中码字通过接收器从通信信道接收并由解调器解调。
附图说明
图1示意性地示出了根据本申请一个实施例的线性块解码器。
图2A是根据本申请一个实施例的用于码字的Tanner图的图示。
图2B和2C是根据本申请一个实施例的在码字的Tanner图中信息传递的图示。
图3示意性地示出了根据本申请一个实施例的图1的线性块解码器的第一解码器。
图4示意性地示出了根据本申请一个实施例的图1的线性块解码器的第二解码器。
图5示意性地示出了根据本申请一个实施例的LLR的生成。
图6是根据本申请一个实施例的使用所生成的软LLR解码码字的处理的流程图。
图7示意性地示出了根据本申请一个实施例的带有错误纠正的存储系统。
图8示意性地示出了根据本申请一个实施例的带有错误纠正的通信系统。
具体实施方式
现在将参考附图详细描述基于本申请的具体实施例。各个图中的相同元件由相同的附图标记表示以保持一致性。
本申请提供了用于解码线性分组码的系统和方法,例如但不限于矩形奇偶校验、汉明码和低密度奇偶校验(LDPC)码。线性分组码可以由m×n矩阵H指定,其中n是码字中的比特数,m是冗余比特的数量(例如,奇偶校验比特)。对于LDPC码,矩阵H可以是具有低密度非零元素的稀疏矩阵。当满足矩阵方程HcT=0时,n比特码字c=[c1,c2,c3,…,cn]是有效码字,其中cT是c的转置,矢量
Figure GDA0001826059890000041
可以被称为c的校验子(syndrome)。线性分组码也可以通过Tanner图以图形形式表示。对应于m×n矩阵H的Tanner图可以包括两组顶点:用于码字比特(比特节点)的n个顶点,以及用于奇偶校验方程(校验节点)的m个顶点。本申请的一个或多个实施例提供了一种线性分组解码方法,包括对码字执行第一解码,确定比特节点的校验运算成功和未成功的校验节点数量,校验运算成功和未成功的校验节点数量生成用于比特节点的软对数似然比(LLR),并使用软LLR作为第二解码器的输入执行第二解码。
图1示意性地示出了根据一个实施例的线性分组解码器100。线性分组解码器100可以是复合或级联解码器,其包括第一解码器104和第二解码器106。另外,线性分组解码器100还可以包括码字缓冲器102,软LLR生成器108,仲裁器110和交换缓冲器112。码字缓冲器102可以是用于码字的临时存储器。可以从,例如通信信道或存储器(诸如内存或硬盘驱动器),接收码字。码字可以包括有效码字,每个有效码字可以具有零的校验子。也就是说,它们满足方程HcT=0。然而,码字缓冲器102中的许多码字可能是无效的。也就是说,这些码字不满足HcT=0的矩阵方程,需要解码成有效的码字。在一个实施例中,线性分组解码器100可以是LDPC解码器。
第一解码器104可以是要应用于存储在码字缓冲器102中的码字的第一解码器。第一解码器104可以从码字缓冲器102接收码字并确定该码字的校验子是否为零。如果该码字的校验子为零,则该码字不需要被解码并且可以被发送到仲裁器110。仲裁器110可以从线性分组解码器100输出码字。如果码字的校验子不为零,则需要对码字进行解码。第一解码器104可以执行第一解码操作。第一解码操作可以是硬式判决解码操作,其可以是例如迭代解码操作,例如但不限于业内已知的比特翻转算法,或者还有待开发的任何其他技术。如果第一解码操作成功解码码字,则可以将解码的码字发送到仲裁器110,并且仲裁器110可以从线性分组解码器100输出解码的码字。然而,如果第一解码器104不能成功解码码字,则可以将在解码过程期间生成的数据发送到软LLR生成器108。
在一个实施例中,第一解码器104可以设置有预先配置的最大迭代次数,并且第一解码器104可以在确定它不能成功解码码字之前按预先配置的最大迭代次数执行解码操作。在另一实施例中,第一解码器104可具有收敛确定机制。例如,在每次迭代完成之后,第一解码器104可以确定码字中是否存在任何改进,例如,更多的校验节点变得满足。如果在一次迭代或可配置次数的迭代完成之后没有改进,则第一解码器104可以确定它不能成功地解码码字,并把码字留给第二解码器106解码。
软LLR生成器108可以被配置为基于第一解码器104的解码操作生成软对数似然比(LLR)。在一个实施例中,例如,在每次解码操作的迭代完成之后,对于一个比特节点,码字的一些校验节点的校验被满足,而该码字的另一些校验节点的校验未被满足。软LLR生成器108可以基于被满足的校验节点和未被满足的校验节点的数量来为比特节点生成软LLR。生成的LLR信息可以被发送到交换缓冲器112,交换缓冲器112还可以从码字缓冲器102接收码字,并且将LLR信息和对应的码字都提供给第二解码器106。
在一个实施例中,交换缓冲器112可以从第一解码器104接收经处理的码字。例如,尽管第一解码器104不能成功解码码字,但是在执行每次迭代完成之后可以翻转码字的一个或多个符号位元值。在第一次迭代完成之后被翻转了一个或多个符号位元值的码字可以在第一次迭代完成之后临时存储为经处理的码字,在第二次迭代完成之后被翻转了一个或多个符号位元值的码字可以在第二次迭代完成之后临时存储为经处理的码字,等等。尽管软LLR生成器108可以在图1中示出为与第一解码器104分离的组件,但是在一个实施例中,软LLR生成器108可以实现为第一解码器104的一部分。
如果第一解码器104未能成功解码码字,则第二解码器106可以是要被应用于该码字的第二解码器。第二解码器106可以执行第二解码操作,该第二解码操作可以将所生成的LLR信息用于码字的比特节点。第二解码操作可以是基于业界已知或尚待开发的任何软式判决算法的软式判决解码的实现。例如,在一个实施例中,第二解码操作可以是业界已知的或尚待开发的消息传递算法(message passing algorithm,MPA),例如但不限于,和积算法(sum-product algorithm,SPA),min-sum算法,随机解码算法或它们的变体。当第二解码器106成功解码码字时,第二解码器106可以将解码的码字发送到仲裁器110,并且仲裁器110可以从线性分组解码器100输出解码的码字。
在一个实施例中,第一解码器104可以被称为主解码器(“MDEC”),第二解码器106可以被称为强力解码器(powerful decoder,“PDEC”)。此外,在一个实施例中,线性分组解码器100可包括多个第一解码器104(例如,2个,3个,4个,8个,16个等)。作为一个例子,第二个第一解码器104以虚线示出。多个第一解码器104可以在来自码字缓冲器102的不同码字上并行地执行第一解码。另外,在一个实施例中,线性分组解码器100可包括多个第二解码器106(例如,2个,3个,4个,8个,16个等)。作为一个例子,第二个第二解码器106以虚线示出。多个第二解码器106可以在未被第一解码器104成功解码的不同码字上并行地执行第二解码。
图2A是根据本申请一个实施例的用于码字的Tanner图200的图示。Tanner图200可以是二分图,其示出了诸如汉明码或LDPC码的块码的奇偶校验约束。可以在奇偶校验矩阵HE中指定奇偶校验约束。对于LDPC码,奇偶校验矩阵HE可以是低密度,稀疏的n×m矩阵,其中n可以是码字中的符号位元的数量,m是校验节点的数量。奇偶校验矩阵HE不一定是唯一的,并且可以通过任何已知技术或将来开发的任何技术来选择。
奇偶校验矩阵HE的每一行可以对应于一个校验节点,并且每列可以对应于一个比特节点。在二进制代码中,奇偶校验矩阵的元素是0或1,但是对于非二进制LDPC码,奇偶校验矩阵的元素可以具有非二进制值。奇偶校验矩阵的每一行可以形成奇偶校验方程的系数。例如,对于图2A中描绘的节点,奇偶校验矩阵HE可以如下:
Figure GDA0001826059890000081
Tanner图中示出了两种类型的节点。如图2A所示,校验节点202,204,206,208,210,212,214,216和218可以用方块表示,并且可以表示有效码字或成功解码的码字必须满足的奇偶校验方程。比特节点220,222,224,226,228,230,232,234,236,238,240和242可以表示为圆圈,并且可以表示码字中的符号位元(即,二进制码的比特),例如比特节点220,222,224,226,228,230,232,234,236,238,240和242可以分别表示代码字c=[c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12]中的c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11和c12。
校验节点和比特节点之间的连接可以表示奇偶校验约束。例如,校验节点202可以表示在上面示出的奇偶校验矩阵HE中指定的第一行奇偶校验方程,其在列3,6,7和8中具有非零值。码字中的符号位元c3,c6,c7和c8可以对应于奇偶校验矩阵HE的第一行中的这些非零位置,并且第一行奇偶校验方程可以由数学方程表示:c3⊕c6⊕c7⊕c8=0,其中⊕是二进制码字的模2加法。因为比特节点224,230,232和234对应于符号位元c3,c6,c7和c8,所以校验节点202可以连接到这些比特节点。也就是说,可以认为校验节点202“校验”比特节点⊕224,230,232和234。类似地,校验节点204可以表示在上面示出的奇偶校验矩阵HE中指定的第二行奇偶校验方程,其在列1,2,5和12中具有非零值,并且第二行奇偶校验方程可以由数学方程表示:c1⊕c2⊕c5⊕c12=0,其中⊕是二进制码字的模2加法。因为比特节点220,222,228和242可以对应于符号位元c1,c2,c5和c12,所以校验节点204可以连接到这些比特节点。可以认为校验节点204“校验”比特节点220,222,228和242。其他校验节点可以根据相应的奇偶校验约束连接到比特节点。应当注意,因为每行具有四个非零位置,所以每个校验节点可以连接到四个比特节点。
从比特节点的角度来看,上面示出的奇偶校验矩阵HE中的每列可以在三行中非零。也就是说,码字中的每个符号位元可以由三个奇偶校验方程“校验”。相应地,每个比特节点可以连接到三个校验节点。例如,可以在第二,第五和第七奇偶校验方程(矩阵HE的第二,第五和第七行)中校验码字中的第一个符号位元。可以表示码字中的第一个符号位元的比特节点220可以被连接到校验节点204,210和214。可以表示码字中的第二符号位元的比特节点222可以被连接到校验节点204,208和218。其他的比特节点可以根据相应的奇偶校验约束连接到校验节点。从比特节点的角度的全部连接和从校验节点的角度的全部连接是相同的。
图2B和2C是根据本申请一个实施例的在Tanner图200中传递用于码字的信息的图示。Tanner图200可以用于码字的迭代解码。如图2A所示,校验节点208可以连接到比特节点222,230,232和238。也就是说,校验节点208可以“校验”比特节点222,230,232和238。图2B中的箭头指示,信息可以从比特节点222,230,232和238流到校验节点208。校验节点208可以根据从这些比特节点传递来的信息执行“校验”比特节点222,230,232和238的操作。这可以被称为迭代解码操作中的“符号位元到校验”步骤。校验节点可以根据由解码器(例如,硬式判决算法或软式判决解码算法)实现的解码算法来执行“校验”操作。
在一个实施例中,从比特节点传递到校验节点的信息可以包括每个比特节点的符号位元值。对于二进制符号位元值,例如,可以执行输入符号位元值的模2和,并且可以确定模2和是否为零。如果模2和为零,则可以将校验节点标记为被满足的校验节点。如果模2和不为零,则可以将校验节点标记为未被满足的校验节点。在另一实施例中,除了比特节点的符号位元值之外,每个符号位元值的可靠性信息(例如LLR)可以从比特节点传递到校验节点。在该实施例中,除了确定校验节点被满足或未被满足之外,解码器还可以确定该校验节点被满足或未被满足的可信度(或置信度如何)。
此外,图2A中的Tanner图200示出了比特节点226可以连接到校验节点206,212和214。也就是说,比特节点226可以由校验节点206,212和214“校验”。图2C中的箭头指示,信息可以从校验节点206,212和214流到比特节点226。比特节点226可以基于来自校验节点206,212和214的信息执行更新其信息(例如,符号位元值,符号位元值的可靠性)的操作。这可以被称为迭代解码操作中的“校验到符号位元”步骤。
在一个实施例中,从校验节点传递到比特节点的信息可以包括该比特节点的被满足的校验节点和未被满足的校验节点的数量。比特节点可以使用该信息来确定是否需要改变它们各自的符号位元值。例如,如果符号位元值是二进制的,并且被满足的校验节点比未被满足的校验节点更多地连接到比特节点,则该比特节点可以翻转其符号位元值。在另一个实施例中,除了比特节点的被满足的校验节点和未被满足的校验节点的数量之外,还可以将校验节点如何被满足或未被满足的可信度信息从校验节点传递给比特节点。在该实施例中,解码器确定是否更新比特节点的符号位元值时,可以不仅基于被满足和未被满足的校验节点的数量,而且基于每个校验节点的被满足或未被满足有多可靠。
图3示意性地示出了根据一个实施例的第一解码器104的组件图。第一解码器104可以包括比特节点存储器302,校验子计算器304,码字收敛检测器306和比特翻转控制308。比特节点存储器302可以是用于码字的符号位元值的存储器。在解码操作的第一次迭代之前,比特节点存储器302中的码字的符号位元值可以是来自码字缓冲器102的初始符号位元值。在每次迭代完成之后,如果码字不满足任何奇偶校验约束,则可以改变被解码的码字的一个或多个符号位元值,并且可以更新存储在比特节点存储器302中的码字的符号位元值以反映这些改变。
校验子计算器304可以被配置为计算正被解码的码字的校验子。例如,校验子计算可以包括计算码字的每个奇偶校验方程。码字收敛检测器306可以被配置为基于校验子计算确定被解码的码字是否为一个有效码字。如果针对码字计算的校验子为零,则该码字是一个有效码字,并且可以由第一解码器104发送到仲裁器110。如果计算出的码字校验子不为零,则该码字无效。无效码字可以由第一解码器104在另一次迭代中继续解码,或者如果已经达到最大迭代次数,则第一解码器104可以将校验节点满足度信息传递给LLR生成器108并且将该码字留给第二解码器106解码。
比特翻转控制308可以包括比特翻转阈值,并且可以被配置为确定是否需要更新正被解码的码字中的符号位元值。在一个实施例中,比特翻转阈值可以以简单多数规则实现。例如,比特节点可以连接到总数为T的校验节点,并且T=#U+#S,其中#U可以表示未被满足的校验节点的数量,#S可以表示被满足的校验节点的数量。根据简单多数规则,只要未被满足的校验节点的数量大于被满足的校验节点的数量(例如,#U>#S),比特节点的符号位元值可以根据接收到的#U和#S信息而被翻转。在另一个实施例中,比特翻转阈值可以被配置为比简单多数规则更加复杂一点。例如,比特翻转阈值可以是未被满足的校验节点的数量大于被满足校验的数量和数字M的总和,由不等式#U>#S+M表示。数字M可以是正整数(例如,1,2,3,5,10等),总数T的百分比(例如,T的10%,T的15%,T的30%)),未被满足的校验节点数量的百分比(例如,#U的10%,#U的15%,#U的30%)或被满足的校验节点总数的百分比(例如,10%的#S,15%的#S,30%的#S)。
在一个或多个实施例中,比特翻转阈值可以是可配置的。例如,可以将其设置为一个阈值以解码一组码字,并设置为另一阈值以解码另一组码字。此外,在解码操作期间可以实时调整比特翻转阈值。例如,可以针对解码操作的某一次迭代的将其设置为一个阈值,并且针对解码操作的另一次迭代将其调整为另一阈值。
图4示意性地示出了根据一个实施例的第二解码器106的组件图。第二解码器106可以包括LLR存储器402,比特节点处理器404,校验节点处理器406,校验子计算器408,校验比特(check-to-bit,C2B)存储器410和LLR计算器412。LLR存储器402可以是用于LLR信息的存储。最初,LLR存储器402可以存储从LLR生成器108接收的LLR信息。在第二解码器106的每次解码迭代完成之后,LLR存储器402可以存储由LLR计算器412生成的更新过的LLR信息。
比特节点处理器404可以被配置为基于由第二解码器106实现的解码算法来执行操作。在一个实施例中,第二解码器106可以实现最小和(min-sum)解码算法,并且比特节点处理器404可以被配置为执行要在最小和解码算法中执行的比特节点操作。在另一实施例中,第二解码器106可以实现随机解码算法,并且比特节点处理器404可以被配置为执行要在随机解码算法中执行的比特节点操作。
校验节点处理器406也可以被配置为基于由第二解码器106实现的解码算法来执行操作。在第二解码器106实现最小和解码算法的实施例中,校验节点处理器406可以被配置为执行要在最小和解码算法中执行的校验节点操作。在第二解码器106实现随机解码算法的另一实施例中,校验节点处理器406可以被配置为执行要在随机解码算法中执行的校验节点操作。
校验比特(check-to-bit,C2B)存储器410可以是用于需要从校验节点处理器406传递到比特节点处理器404的信息的存储器。例如,基于由第二解码器106实现的解码算法,存储在C2B存储器410中的信息可以是最不可靠的LLR及其位置(例如,对应于哪个比特节点),第二最不可靠的LLR及其位置(例如,对应于哪个比特节点),以及连接到相应校验节点的比特节点的累积符号位元值。
校验子计算器408可以被配置为计算正被解码的码字的校验子。例如,校验子计算可以是计算码字的每个奇偶校验方程。如果正被解码的码字的计算结果校验子为零,则该码字已成功解码,并且可由第二解码器106发送到仲裁器110。如果正被解码的码字的计算结果校验子非零,则该码字尚未被成功解码,并且第二解码器106可以执行另一次迭代。
LLR计算器412可以被配置为基于第二解码器106的解码操作来计算软对数似然比(LLR)。在一个实施例中,例如,第二解码器106可以实现最小和解码算法,并且LLR计算器412可以被配置为根据最小和解码算法执行LLR计算。在另一实施例中,第二解码器106可以实现随机解码算法,并且LLR计算器412可以被配置为根据随机解码算法执行LLR计算。在一个或多个实施例中,可以将计算出的LLR信息传递到LLR存储器402以进行解码操作的下一次迭代。
图5示意性地示出了根据本申请一个实施例的LLR生成。图5中的Tanner图可以是用于奇偶校验矩阵的部分Tanner图,其中每个比特节点可以被六个校验节点“校验”。例如,如图5所示,比特节点514可以连接到六个校验节点502,504,506,508,510和512。在一次解码迭代中的“符号位元到校验”步骤之后,校验节点502,504,508和510可能被满足,而校验节点506和512可能被未满足,可以基于关于被满足的校验节点的数量(例如,#S)和未被满足的校验节点的数量(例如,#U)生成软LLR。
在一个实施例中,可以将初始LLR幅度分配给一个值X,可以将比例因子分配给一个值Q,将比特节点的符号位元值表示为D,然后根据P=#S*Q*D*X-#U*Q*D*X+D*X=(#S*Q-#U*Q+1)*D*X=((#S-#U)*Q+1)*D*X生成软LLR,其中“*”是乘号。例如,如图5所示,四个校验节点502,504,508和510可以是被满足,并且校验节点506和512可以是未被满足。因此,#S是4,#U是2。如果初始LLR幅度X=8,缩放因子Q=0.5,并且比特节点514的符号位元值D=+1,则软LLR P可以被生成为P=((4-2)*0.5+1)*8*1=16。在另一示例中,在一次解码迭代中的“符号位元到校验”步骤之后,#S可以是1,并且#U可以是5。如果初始LLR幅度X=8,缩放因子Q=0.5,并且比特节点514的符号位元值D=+1,则软LLR P可以被生成为P=((1-5)*0.5+1)*8*1=-8。
在一些实施例中,软LLR和任何后续计算生成的LLR可具有硬件约束。例如,软LLR和任何后续计算的LLR可以具有有限比特位宽,例如但不限于4比特,5比特,6比特,7比特或8比特,并且其中一个比特可以是符号比特(例如,最高比特(most significant bit,MSB))。初始的LLR幅度X和缩放因子Q需要合适的选择以满足硬件约束。例如,X和Q的值可以是任意值,该任意值可以使得生成的软LLR值和任何后续计算生成的LLR值落入由有限比特位宽限制的值范围内。另外,在一些实施例中,可以选择X和Q的值,使得生成的软LLR值和任何后续计算生成的LLR值不仅落入由有限比特位宽限制的值范围内,而且还覆盖尽可能大的范围。在一个实施例中,例如,具有误码率(BER)的二进制系统可以具有基于BER计算的LLR,并且可以将计算的LLR缩放为整数并选择为初始LLR幅度X。缩放因子可以通过模拟仿真计算确定。
在一个实施例中,对于二进制码字,比特节点的符号位元值D可以是+1或-1,其可以是来自码字缓冲器102的初始符号位元值,或者在上一次解码迭代中由第一解码器104翻转。
在一个或多个实施例中,图5中所示的软LLR生成可以在软LLR生成器108中实现。在一个实施例中,可以在第一解码器104进行可配置数量的解码迭代完成之后生成软LLR。例如,可配置数量可以是一次,两次,三次或为第一解码器104配置的最大迭代次数,并且线性分组解码器100可以被配置为使用所生成的软LLR作为第二解码器106的输入,无论最终由第一解码器104执行了多少次迭代解码操作。在另一实施例中,可以在第一解码器104每次解码迭代完成之后生成软LLR,并且线性分组解码器100可以被配置为选择所生成的软LLR中的任何一个作为第二解码器106的输入,而不管最终由第一解码器104执行了多少次迭代解码操作。在又一个实施例中,软LLR生成器108可以被配置为针对若干所选迭代生成软LLR,例如,在第一次迭代,第三次迭代,第五次迭代等之后,要选择哪些迭代可以是可配置的。
图6示出了根据一个实施例的用于解码线性分组码字的过程600的流程图。在框602中,可以对码字执行第一解码。例如,第一解码器104可以从码字缓冲器102获取码字并且对码字执行第一解码操作。在框604中,可以为比特节点确定被满足的校验节点和未被满足的校验节点的数量。例如,在第一解码操作的一次迭代(可以是第一次迭代,第二次迭代,或任何次数的迭代)之后,可以为比特节点确定被满足的校验节点的数量和未被满足的校验节点的数量。在框606中,可以基于被满足和未被满足的校验节点的数量来生成用于比特节点的软LLR。如图5中所示并且在此描述的,可以基于被满足和未被满足的校验节点的数量来生成用于比特节点的软LLR。在框608中,可以使用软LLR作为输入来执行第二解码。例如,第二解码器106可以使用用于比特节点的软LLR信息对码字执行第二解码操作。
过程600可以使用软件(例如,可由计算机处理器(CPU,GPU,或两者的组合)执行)、硬件(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、固件、或三者的任意合适组合来实现。在一个实施例中,例如,线性分组解码器100的组件可以以硬件电路实现,并且过程600可以在硬件中实现。在另一个实施例中,例如,线性分组解码器100的组件可以用软件模拟,并且过程600可以以计算机处理器可执行指令编程,并由执行可执行指令的计算机处理器执行。
图7示意性地示出了包括本文所述的线性分组解码器100的系统700。系统700可以是存储系统,例如但不限于内存或硬盘驱动器系统。系统700可以包括数据存储器702和解码器704。数据存储器702可以是,例如,内存或硬盘驱动器。解码器704可以是图1中所示的线性分组解码器100的实施例。从数据存储器702读取的数据可能已损坏,并且解码器704可解码损坏的数据并恢复正确的数据信息。
图8示意性地示出了包括本申请所述的线性分组解码器100的另一系统800。系统800可以是通信系统,例如但不限于有线或无线通信系统。系统800可以包括接收器802,解调器804和解码器806。接收器802可以是例如用于无线通信的天线或用于有线通信的接收器。解调器804可以被配置为解调由接收器802接收的信号并生成数字信号。解码器806可以是图1中所示的线性分组解码器100的实施例。由接收器802接收的数据可能已损坏,解码器806可解码损坏的数据并恢复正确的数据信息。
本申请任何所公开的方法和操作可以实现为存储在一个或多个计算机可读存储介质上的计算机可执行指令(例如,线性分组解码器100的软件模拟),并在计算机上执行(例如,任何商用计算机,包括智能电话或其他包含计算硬件的移动设备)。计算机可读存储介质可以是例如非暂时性的计算机可读存储介质,例如一个或多个光学媒体盘,易失性存储器组件(例如DRAM或SRAM),或非易失性存储器组件(例如硬盘驱动器)等等。用于实现所公开的技术的任何计算机可执行指令以及在所公开的实施例的实现期间创建和使用的任何数据可以存储在一个或多个计算机可读介质(例如,非暂时性计算机可读介质)上。计算机可执行指令可以是例如存储器访问控制或数字信号通信的一部分。这样的软件可以例如在单个本地计算设备(例如,任何合适的商用计算机或移动设备)上或在网络环境中使用一个或多个网络计算机执行,网络环境可以是例如通过因特网、广域网、局域网、客户端-服务器网络(例如云计算网络)、或其他此类网络。
应当注意,在若干示例和实施例中,LDPC可以用作线性分组码的示例。然而,本申请的实施例也可以以其他类型的线性分组码实现,例如但不限于矩形奇偶校验和汉明码。例如,在一个实施例中,线性分组解码器100可以作为汉明码解码器而用于汉明码,并且第一解码器104和第二解码器106可以实现汉明码的解码操作。此外,诸如在“线性分组码”,“LDPC码”或“汉明码”中使用的词“码”可以一般性地指码的类型。并且“码字”一词可以指用线性分组码编码的单位数据块。
虽然本文已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员而言将是显而易见的。这里公开的各个方面和实施例是出于说明的目的而不是限制性的,真正的范围和精神由所附权利要求指示。

Claims (18)

1.一种用于解码由线性分组码编码的码字的方法,其特征在于,包括:
使用第一解码器对码字执行第一解码;
针对所述第一解码的解码结果,为所述码字的每一个符号位元确定与该符号位元相对应的校验节点中,校验运算成功的校验节点数量和校验运算未成功的校验节点数量;
根据所述校验运算成功的校验节点数量和所述校验运算未成功的校验节点数量,生成所述码字中每一个符号位元相对应的软对数似然比LLR,其中,符号位元对应的软LLR根据公式P=((#S-#U)*Q+1)*D*X生成,其中,P为软LLR,#S是所述校验运算成功的校验节点的数量,#U是所述校验运算未成功的校验节点的数量,Q是缩放因子,D是符号位元的符号值,X是分配给所述符号位元的初始LLR幅度大小,“*”是乘号;以及,
以所述软LLR作为第二解码器的输入,使用所述第二解码器执行第二解码。
2.如权利要求1所述的用于解码由线性分组码编码的码字的方法,其特征在于,所述第一解码是硬式判决解码。
3.如权利要求1所述的用于解码由线性分组码编码的码字的方法,其特征在于,所述第二解码是软式判决解码。
4.如权利要求1所述的用于解码由线性分组码编码的码字的方法,其特征在于,根据所述校验运算成功的校验节点数量与所述校验运算未成功的校验节点数量之间的差值来生成相对应符号位元的软LLR。
5.如权利要求1所述的用于解码由线性分组码编码的码字的方法,其特征在于,所述缩放因子Q和所述初始LLR幅度被选择以满足硬件约束。
6.如权利要求1所述的用于解码由线性分组码编码的码字的方法,其特征在于,所述第一解码是一种迭代解码方式。
7.如权利要求6所述的用于解码由线性分组码编码的码字的方法,其特征在于,所述软LLR在所述第一解码的可配置次数的迭代完成之后生成。
8.如权利要求7所述的用于解码由线性分组码编码的码字的方法,其特征在于,所述可配置次数是1和最大迭代次数之间的任意整数。
9.如权利要求6所述的用于解码由线性分组码编码的码字的方法,其特征在于,所述软LLR在所述第一解码的每一次迭代完成之后生成。
10.如权利要求9所述的用于解码由线性分组码编码的码字的方法,其特征在于,用作所述第二解码的输入的所述软LLR是在第一解码任意次迭代完成之后生成的软LLR。
11.如权利要求1所述的用于解码由线性分组码编码的码字的方法,其特征在于,进一步包括,在所述第一解码操作期间调整比特翻转阈值。
12.一种用于解码由线性分组码编码的码字的系统,其特征在于,包括:
第一解码器,包括被配置为对码字执行第一解码的电路;
软对数似然比LLR生成器,包括被配置为以下功能的电路:
针对第一解码的解码结果,为所述码字的每一个符号位元计算与该符号位元相对应的校验节点中,校验运算成功的校验节点数量和校验运算未成功校验节点的数量;
根据所述校验运算成功的校验节点数量和所述校验运算未成功的校验节点数量,生成符号位元相对应的软对数似然比LLR,其中,符号位元对应的软LLR根据公式P=((#S-#U)*Q+1)*D*X生成,其中,P为软LLR,#S是所述校验运算成功的校验节点数量,#U是所述校验运算未成功的校验节点数量,Q是缩放因子,D是符号位元的符号值,X是分配给对应的符号位元的初始LLR幅度大小,“*”是乘号;以及,
第二解码器,包括被配置为使用所述软LLR作为输入以执行第二解码的电路。
13.如权利要求12所述的用于解码由线性分组码编码的码字的系统,其特征在于,所述第一解码器是硬式判决解码器,并且,所述第二解码器是软式判决解码器。
14.如权利要求12所述的用于解码由线性分组码编码的码字的系统,其特征在于,基于所述校验运算成功的校验节点数量与校验运算未成功的校验节点数量之间的差异来生成所述符号位元相对应的软LLR。
15.如权利要求12所述的用于解码由线性分组码编码的码字的系统,其特征在于,所述缩放因子Q和所述初始LLR幅度被选择以满足硬件约束。
16.如权利要求12所述的用于解码由线性分组码编码的码字的系统,其特征在于,所述第一解码器被配置为执行迭代解码,并且在所述第一解码的可配置次数的迭代完成之后生成所述软LLR,并且所述可配置次数是1和最大迭代次数之间的任意整数。
17.如权利要求12所述的用于解码由线性分组码编码的码字的系统,其特征在于,进一步包括,数据存储器,其中所述码字被从所述数据存储器读取。
18.如权利要求12所述的用于解码由线性分组码编码的码字的系统,其特征在于,进一步包括,接收器和解调器,其中所述码字通过所述接收器从通信信道接收并由所述解调器解调。
CN201811021325.2A 2017-09-29 2018-09-03 用于解码纠错码的系统和方法 Active CN109586731B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/719,753 US10574274B2 (en) 2017-09-29 2017-09-29 Systems and methods for decoding error correcting codes
US15/719,753 2017-09-29

Publications (2)

Publication Number Publication Date
CN109586731A CN109586731A (zh) 2019-04-05
CN109586731B true CN109586731B (zh) 2023-03-24

Family

ID=65896262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811021325.2A Active CN109586731B (zh) 2017-09-29 2018-09-03 用于解码纠错码的系统和方法

Country Status (2)

Country Link
US (1) US10574274B2 (zh)
CN (1) CN109586731B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992477B2 (en) 2015-09-24 2018-06-05 Ouster, Inc. Optical system for collecting distance information within a field
US10715182B2 (en) * 2018-07-27 2020-07-14 Innogrit Technologies Co., Ltd. Systems and methods for decoding error correcting codes with self-generated LLR
US11025283B1 (en) 2020-02-26 2021-06-01 SK hynix, Inc. Decoding latency and throughput of a multi-decoder error correction system
CN114079474A (zh) * 2020-08-14 2022-02-22 深圳市中兴微电子技术有限公司 数据处理方法、装置、译码器、网络设备和可读存储介质
US11375486B1 (en) * 2021-01-07 2022-06-28 Hong Kong Applied Science And Technology Research Institute Co., Ltd Method and device for detecting discontinuous transmission (DTX) assisted by noise estimation
CN113872611B (zh) * 2021-12-02 2022-04-15 阿里云计算有限公司 一种ldpc解码方法、设备、系统及存储介质
US11664821B1 (en) * 2022-02-08 2023-05-30 SK Hynix Inc. Error floor performance of a bit flipping decoder through identifying unreliable check nodes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064591A (zh) * 2006-04-24 2007-10-31 中兴通讯股份有限公司 低密度奇偶校验码的译码方法及其校验节点更新电路
CN102325001A (zh) * 2011-05-24 2012-01-18 东南大学 一种带宽自适应大迭代接收机

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1518328B1 (en) * 2002-07-03 2007-04-18 The DIRECTV Group, Inc. Encoding of low-density parity check (ldpc) codes using a structured parity check matrix
CN1713530A (zh) * 2004-06-22 2005-12-28 印芬龙科技股份有限公司 解码低密度奇偶校验(ldpc)码字的ldpc解码器
JP4595650B2 (ja) * 2005-04-25 2010-12-08 ソニー株式会社 復号装置および復号方法
JP4293172B2 (ja) * 2005-09-13 2009-07-08 ソニー株式会社 復号装置および復号方法
JP4758765B2 (ja) * 2006-01-05 2011-08-31 ルネサスエレクトロニクス株式会社 トランスポートフォーマット検出装置及びトランスポートフォーマット検出方法
EP1811711A1 (en) * 2006-01-23 2007-07-25 Motorola, Inc., A Corporation of the State of Delaware; Apparatus and methods for handling a message difference prior to decoding based on apriori knowledge of modified codeword transmission
US8281210B1 (en) * 2006-07-07 2012-10-02 Aquantia Corporation Optimized correction factor for low-power min-sum low density parity check decoder (LDPC)
CN101136639B (zh) * 2006-09-28 2014-04-02 开曼群岛威睿电通股份有限公司 用于降低复杂性的低密度奇偶校验解码的系统和方法
CN100578945C (zh) * 2007-07-06 2010-01-06 北京航空航天大学 一种ldpc码的译码器装置及译码方法
US8799742B1 (en) * 2007-07-30 2014-08-05 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US8219878B1 (en) * 2007-12-03 2012-07-10 Marvell International Ltd. Post-processing decoder of LDPC codes for improved error floors
US8312354B1 (en) * 2007-12-27 2012-11-13 Marvell International Ltd. Method and apparatus for improved performance of iterative decoders on channels with memory
KR20090126829A (ko) * 2008-06-05 2009-12-09 삼성전자주식회사 반복 복호 방법과 반복 복호 장치
WO2010019169A1 (en) * 2008-08-15 2010-02-18 Lsi Corporation Rom list-decoding of near codewords
US8190977B2 (en) * 2008-08-27 2012-05-29 Intel Mobile Communications GmbH Decoder of error correction codes
US8291285B1 (en) * 2008-09-18 2012-10-16 Marvell International Ltd. Circulant processing scheduler for layered LDPC decoder
US8301979B2 (en) * 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders
CN101807929B (zh) * 2010-03-19 2013-04-24 中国人民解放军理工大学 低密度奇偶校验码的选择退火最小和译码方法
KR101968746B1 (ko) * 2011-12-30 2019-04-15 삼성전자주식회사 저장 장치로부터 데이터를 읽는 읽기 방법, 에러 정정 장치, 그리고 에러 정정 코드 디코더를 포함하는 저장 시스템
JP6451955B2 (ja) * 2013-03-21 2019-01-16 マーベル ワールド トレード リミテッド 多段ソフト入力デコードのためのシステムおよび方法
CN104518801A (zh) * 2013-09-29 2015-04-15 Lsi公司 非二进制的分层低密度奇偶校验解码器
FR3016259B1 (fr) * 2014-01-07 2017-09-08 Univ Bretagne Sud Procede de gestion d'une unite de calcul de noeud de parite, equipement et logiciel pour la mise en oeuvre du procede
US20150227419A1 (en) * 2014-02-12 2015-08-13 Kabushiki Kaisha Toshiba Error correction decoder based on log-likelihood ratio data
US9378765B2 (en) * 2014-04-03 2016-06-28 Seagate Technology Llc Systems and methods for differential message scaling in a decoding process
US9509342B2 (en) * 2014-06-02 2016-11-29 Sandisk Technologies Llc Error correcting code decoder
US9614547B2 (en) * 2014-06-30 2017-04-04 Sandisk Technologies Llc Multi-stage decoder
US20160020783A1 (en) * 2014-07-17 2016-01-21 Lsi Corporation Low Density Parity Check Decoder With Relative Indexing
CN104393877B (zh) * 2014-12-03 2017-07-28 西安电子科技大学 基于加权的非规则ldpc码线性规划译码方法
US9977713B2 (en) * 2015-03-20 2018-05-22 SK Hynix Inc. LDPC decoder, semiconductor memory system and operating method thereof
TWI705446B (zh) * 2015-09-18 2020-09-21 韓商愛思開海力士有限公司 具有改良硬解碼處理量的vss低密度同位檢驗解碼器
US9866241B2 (en) * 2015-09-25 2018-01-09 SK Hynix Inc. Techniques for adaptive LDPC decoding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064591A (zh) * 2006-04-24 2007-10-31 中兴通讯股份有限公司 低密度奇偶校验码的译码方法及其校验节点更新电路
CN102325001A (zh) * 2011-05-24 2012-01-18 东南大学 一种带宽自适应大迭代接收机

Also Published As

Publication number Publication date
US20190103885A1 (en) 2019-04-04
US10574274B2 (en) 2020-02-25
CN109586731A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
CN109783270B (zh) 用于解码纠错码的系统和方法
CN109586731B (zh) 用于解码纠错码的系统和方法
CN109787639B (zh) 用于解码纠错码的系统和方法
US10547332B2 (en) Device, system and method of implementing product error correction codes for fast encoding and decoding
KR101854954B1 (ko) 치환 소행렬의 합을 사용하는 체크섬
US8448050B2 (en) Memory system and control method for the same
US9490849B1 (en) Systems and methods for configuring product codes for error correction in a hard disk drive
US9015547B2 (en) Multi-level LDPC layered decoder with out-of-order processing
US8645810B2 (en) Fast detection of convergence or divergence in iterative decoding
CN110784231B (zh) 用于解码具有自生成对数似然比的纠错码的系统和方法
US20060026486A1 (en) Memory efficient LDPC decoding methods and apparatus
US10439649B2 (en) Data dependency mitigation in decoder architecture for generalized product codes for flash storage
US10484020B2 (en) System and method for parallel decoding of codewords sharing common data
JP2008035524A (ja) 反復確率伝搬を使用して記号ブロックを復号化する装置および方法
US10389383B2 (en) Low-complexity LDPC encoder
US20160020783A1 (en) Low Density Parity Check Decoder With Relative Indexing
CN109873646B (zh) 使用级联码的软芯片猎杀恢复
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
EP3926834A1 (en) Ldpc decoder apparatus, device, system, method and computer program
US8719686B2 (en) Probability-based multi-level LDPC decoder
US20180175885A1 (en) Hybrid LDPC-SEC/SECDED Decoding
EP1643653B1 (en) Iterative decoding of low-density parity-check (LDPC) codes
US20160283321A1 (en) Systems and Methods for Flash Memory Access
KR102635444B1 (ko) 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템
Tuntoolavest et al. A Practical Nonbinary Decoder for Low-Density Parity-Check Codes with Packet-Sized Symbols

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: 20200507

Address after: 2 / F, No.1, Lane 500, shengxia Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant after: Yingren Technology (Shanghai) Co.,Ltd.

Address before: Greater Cayman, Cayman Islands

Applicant before: Nyquist Semiconductor Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 601-606, No. 40, Lane 565, Shengxia Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, 201210 (nominal floor 6, actual floor 5)

Patentee after: Yingren Technology Co.,Ltd.

Address before: 2 / F, No.1, Lane 500, shengxia Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai 201210

Patentee before: Yingren Technology (Shanghai) Co.,Ltd.