CN109818625B - 低密度奇偶检查码译码器 - Google Patents

低密度奇偶检查码译码器 Download PDF

Info

Publication number
CN109818625B
CN109818625B CN201810804568.7A CN201810804568A CN109818625B CN 109818625 B CN109818625 B CN 109818625B CN 201810804568 A CN201810804568 A CN 201810804568A CN 109818625 B CN109818625 B CN 109818625B
Authority
CN
China
Prior art keywords
data portion
codeword
flip
value
values
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
CN201810804568.7A
Other languages
English (en)
Other versions
CN109818625A (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN109818625A publication Critical patent/CN109818625A/zh
Application granted granted Critical
Publication of CN109818625B publication Critical patent/CN109818625B/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/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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种用于低密度奇偶检查码译码器的方法和相关的低密度奇偶检查码译码器,所述方法包括:接收第一码字的特定数据部份;通过使用奇偶校验矩阵的多个校验方程式并根据所述特定数据部份来计算所述特定数据部份的翻转函式值,以计算所述特定数据部份的多个校验值;以及通过比较所述翻转函式值与一翻转临界值来决定是否翻转所述第一码字的所述特定数据部份;其中所述翻转临界值是已经基于较早于所述特定数据部份的多个先前的数据部份的多个对翻转函式值所被计算出的值。本发明的方法相关的低密度奇偶检查码译码器能够大幅增进译码器的效能、降低/减少计算复杂度以及加速数值收敛。

Description

低密度奇偶检查码译码器
技术领域
本发明关于一种译码机制,尤其关于一种使用在低密度奇偶检查码译码器(Low-Density Parity-Check Code(LDPC)Decoder)的方法及相关的低密度奇偶检查码译码器。
背景技术
一般而言,具有传统的位翻转(Bit Flip)机制的低密度奇偶检查码译码器会被用来计算一个完整码字(Codeword)的所有数据位的所有初步的/初始的征状值(Syndrome)、接着基于所有数据位的所有初步的/初始的征状值来决定出一翻转临界值(FlippingThreshold)、接着再通过比较每一位被计算出的征状值与所述翻转临界值来分别决定是否翻转或切换(Toggle)所述完整码字的每一位、以及如果某一位已经被翻转或被切换则重新计算或更新所述完整码字的所述位的征状值,不幸的是,由于对于这种传统的位翻转机制来说必然需要计算一个完整码字的所有数据位的所有初步的/初始的征状值、接着基于所有数据位的所有初步的/初始的征状值来决定出所述翻转临界值、最终才能根据所述翻转临界值及所有位的计算出的征状值来决定是否翻转或切换所述完整码字的每个位,因此无可避免地需要进行复杂的计算、同时导致数值收敛较慢的问题。
发明内容
因此,本发明的目的之一在于公开一种用于低密度奇偶检查码译码器的方法及所述低密度奇偶检查码译码器,以解决上述的问题。
根据本发明的实施例,其揭露一种用于低密度奇偶检查码译码器的方法。所述方法包括有:接收一第一码字的一特定数据部份;通过使用一奇偶校验矩阵的多个校验方程式并根据所述特定数据部份来计算所述特定数据部份的一翻转函式值,以计算所述特定数据部份的多个校验值;以及通过比较所述翻转函式值与一翻转临界值来决定是否翻转所述第一码字的所述特定数据部份;其中所述翻转临界值是已经基于较早于所述特定数据部份的多个先前的数据部份的多个对翻转函式值所被计算出的值。
根据上述实施例,其另揭露了一种低密度奇偶检查码译码器。所述低密度奇偶检查码译码器包括有一桶式移位器、一征状值计算器、一反向桶式移位器、一翻转函式值计算器以及一决定单元。桶式移位器用来对一第一码字进行一规定位个数的移位及旋转操作;征状值计算器耦接于所述桶式移位器并用来接收所述桶式移位器的一输出,基于一奇偶校验矩阵的多个校验方程式,计算所述第一码字的一特定数据部分的一征状值;反向桶式移位器耦接于所述征状值计算器并用来对于所述征状值计算器的一输出执行所述桶式移位器的一反相的操作,产生对于在所述奇偶校验矩阵的一特定横列上的一校验方程式的所述特定数据部份的一校验值;翻转函式值计算器耦接于所述反向桶式移位器并用来通过使用所述奇偶校验矩阵的所述多个校验方程式所产生的多个校验值并根据所述特定数据部份,计算所述特定数据部份的一翻转函式值;以及决定单元耦接于所述翻转函式值计算器并用来通过比较所述翻转函式值与一翻转临界值来决定是否翻转所述第一码字的所述特定数据部份;所述翻转临界值是已经基于较早于所述特定数据部份的多个先前的数据部份的多个对翻转函式值所被计算出的值。
根据上述实施例,本发明的方法及译码器能够大幅增进译码器的效能、降低/减少计算复杂度以及加速数值收敛。
附图说明
图1为本发明第一实施例使用于一线性分组码译码器(例如低密度奇偶检查码译码器)的译码方法的流程示意图。
图2为图1的实施例的译码器电路的方块示意图。
图3为本发明第二实施例的使用于一加权位翻转的低密度奇偶检查码译码器中的译码方法的流程示意图。
图4为图3所示的实施例的加权位翻转的低密度奇偶检查码译码器的方块示意图。
其中,附图标记说明如下:
200、400 译码器电路
205 逻辑异或运算电路
210 桶式移位器
215 征状值计算器
225、425 翻转函式值计算器
230 决定单元
235 临界值记录单元
220 反向桶式移位器
427 权重更新单元
具体实施方式
图1是本发明第一实施例使用于一线性分组码(Linear Block Code)译码器(例如一低密度奇偶检查码译码器)的译码方法的流程示意图,包括于一码字内的某些数据部份(例如一或多个数据位)于其传输期间可能会受到某些错误的影响而造成数据改变,本译码方法是用来接收并解码这样的码字以产生一个更正后的正确码字,本译码方法是用以执行位翻转操作,所述翻转操作是用以判断是否翻转所接收的码字的一数据部份(例如一位;但不限定)并接着在翻转之后计算一对应的征状值,如果所计算的对应的征状值等于零,则所述位(无论是被翻转后或并未被翻转)会被估计为一正确的位,也就是说,本译码方法正确地译码了所述位;所述翻转操作均对于每一个数据部份进行处理,每一个数据部份例如是每一个码字的每一个数据位。
对于一个完整码字,现有传统机制会计算所述完整码字的所有数据位的所有初步的/初始的多个征状值、基于所有的初步的/初始的多个征状值来决定一翻转临界值、通过比较所述完整码字的一位的一初步的/初始的征状值与所述位的所述翻转临界值来决定是否翻转所述位以及最后在翻转运作后再次计算结果的或更新后的多个征状值,然而,现有机制需要复杂的计算。
为了解决现有传统机制的问题,在第一实施例,本方法决定是否翻转一位的操作是基于根据多个先前的数据位在其翻转操作后(例如一先前码字的多个位)的结果的/更新后的多个征状值所决定出的一翻转临界值,如此,对于决定是否翻转一目前码字的一位,本译码方法并不需要等候直到所述目前码字的所有数据位的所有初步的多个征状值已经被计算出时才进行决定是否翻转的操作,本译码方法是在一旦某一个位的先前征状值已经计算出后就可以立刻决定是否要翻转所述位。
再者,本解码方法更特别地涉及一种直行式(Column-layer)的位翻转机制,所述位翻转机制能够翻转一个码字位,而不用等待计算出一个完整码字的所有初步征状值的时间,也就是说,在同一个码字的其他剩下的一或多个码字位还尚未被译码器所接收或所处理时,如果需要翻转的话,则所述解码方法就可以立刻翻转所述码字位,这样的作法可以大幅地增进译码器的效能、降低计算复杂度以及加速数值收敛。
换言之,本解码方法的操作是基于所述码字位(例如目前进来的数据位)的信息以及较早于所述目前进来的数据位的其他多个数据位的信息,更具体来说,本解码方法是用于当每一个数据位正在被处理时基于先前多个数据位来估计及更新每一数据位的一翻转临界值以及接着比较所估计的翻转临界值与所述目前进来数据位的一翻转函式值(Flipping Function Value)来决定是否要翻转所述目前进来数据位并计算其更新后的征状值,举例来说,所述翻转函式值可以被设置为所述数据位的初步征状值,也就是无效校验和(Invalid Checksum)。
另外,在一加权位翻转(Weighted Bit Flipping,WBF)的译码器的其他实施例,本解码方法可以被另用来基于多个先前数据位的信息来决定多个加权数值(WeightedValue)以决定多个翻转函式值及翻转临界值。
假设可获取相同的结果,则这些步骤并不一定要遵照图1所示的执行次序来执行,且这些步骤不一定要连续地执行,也就是说,一些其他步骤可插入其中。这些步骤的详细内容如下:
步骤105:开始;
步骤110:接收具有N个位的一码字的一特定数据位,其中N为一正整数,举例来说,所述特定数据位是一目前进来的位,例如是所述码字的第n个数据位;
步骤115:计算第n个数据位的翻转函式值En,举例来说,翻转函式值En可以是所述特定数据位的一无效校验和(也就是说,所述征状值,与奇偶校验矩阵(Parity CheckMatrix)H的所有校验方程式有关的多个初步校验值的总和);
步骤120:比较第n个数据位的翻转函式值En与第n个数据位的翻转临界值θ,以决定是否翻转第n个数据位,其中第n个数据位的翻转临界值θ是已经根据N-1个先前的数据位的多个翻转函式值所计算出或决定出的值;
步骤125A:翻转第n个数据位;
步骤125B:不翻转第n个数据位;
步骤130A:计算已经被翻转的第n个数据位的所有校验方程式的多个征状值/校验值;
步骤130B:计算没有被翻转的第n个数据位的所有校验方程式的多个征状值/校验值;
步骤135:根据第n个数据位的翻转函式值En及N-1个先前的数据位的多个翻转函式值,对于接下来的一或多个数据位,更新翻转临界值θ;
步骤140:对于接下来的一或多个数据位,重复执行上述步骤直到计算出的多个征状值/校验值的和等于零或是到达一最大迭代次数(Maximum Iteration Number);以及
步骤145:结束。
具体来说,本解码方法是基于奇偶校验矩阵H来计算所接收到的多个数据位的多个征状值/校验值,对于横列上的任一向量X来说,S=XT·H即是向量X的征状值,向量X在意义上所指的是所接收到的一码字,向量X为一正确的码字的条件以及征状值S等于0的条件为充份且必要的条件,矩阵H具有M个横列(Row)及N个直行(Column),其中M及N均为正整数,在实施例中,N个直行所指的是一个码字被定义为具有N个数据位,而M个横列所指的是M个校验方程式或检查节点(Checking Node),此外,奇偶校验矩阵H是与类循环码(Quasi-Cyclic(QC)Code)有关并由多个循环矩阵的多个区块所形成,所述低密度奇偶检查码译码器是一类循环低密度奇偶检查码译码器,码字向量X内的每一单元是0或1,Smn定义为对于第m个横列的一特定校验方程式在第n个直行的第n个数据位的一征状值/校验值,而∑mSmn定义为对于所有M个校验方程式在第n个直行的第n个数据位的多个征状值/校验值的一总和,也就是说,第n个数据位的一无效校验和,举例来说,如果有一个校验方程式的条件不满足,则所述无效校验和会等于1,相同地,如果有两个校验方程式的条件不满足,则所述无效校验和会等于2。
在步骤115,译码方法将第n个数据位的翻转函式值En设置为第n个数据位的无效校验和,也就是说,翻转操作之前的初步征状值,相同地,解码方法也可以对于N-1个先前的数据位执行类似的步骤,分别计算在处理第n个数据位之前的N-1个先前的数据位的多个翻转函式值。
如此,在步骤120,解码方法用来比较翻转函式值En与翻转临界值θ,其中翻转临界值θ是基于N-1个先前的数据位的翻转函式值所已经决定出或计算出的值,而在N-1个先前的数据位中某一些数据位可能会属于另一个不同的码字。此外,解码方法举例来说可以对N-1个先前的数据位的多个翻转函式值进行排序、选取并记录N-1个先前的数据位的多个翻转函式值中的一最大值作为翻转临界值θ以及也可以记录上述多个翻转函式值中的一次大值作为第n个数据位的一候选的翻转临界值。
如果翻转函式值En不小于翻转临界值θ,则于步骤125A中解码方法会翻转或切换第n个数据位,而在步骤130A中解码方法会计算∑m Smn=En,也就是说,已经被翻转的第n个数据位的所有校验方程式的征状值/校验值的一总和。反之,如果翻转函式值En小于翻转临界值θ,则在步骤125B中所述解码方法会决定不翻转或不切换第n个数据位,而在步骤130B中所述解码方法会计算∑m Smn=En,也就是说,没有被翻转的第n个数据位的所有校验方程式的征状值/校验值的一总和。
在步骤135,所述解码方法接着会根据上述N-1个先前的数据位的多个翻转函式值及上述的所述翻转函式值En,更新接下来一或多个数据位的翻转临界值θ。
相似地,在其他实施例,所述解码方法也可以对于所述翻转函式值En及N-2个先前的数据位的多个翻转函式值进行排序、选取及更新/记录所述翻转函式值En及N-2个先前的数据位的多个翻转函式值中的一最大值作为所述翻转临界值θ,以及也可以更新/记录所述翻转函式值En及N-2个先前的数据位的多个翻转函式值中的一次大值作为接下来一或多个数据位的一候选的翻转临界值。
因此,每一个数据部份(例如每一数据位)的一翻转临界值θ均可基于N-1个先前的数据位的多个无效校验和而决定出,此外,应注意的是,所述译码方法也可以记录对应于所述最大翻转函式值的翻转临界值θ的相对应的索引值以及记录对应于所述次大的翻转函式值的候选翻转临界值的一相对应的索引值,以更新所述多个临界值;然此均并非是本案的限制。
实作上,请搭配参考图1与图2,图2是图1的实施例的一译码器电路200的方块示意图,译码器电路200包括一逻辑异或运算(exclusive-OR,XOR)电路205、一桶式移位器(Barrel Shifter)210、一征状值计算器215、一反向桶式移位器(Inverse BarrelShifter)220、一翻转函式值计算器225、一决定单元230以及一临界值记录单元235。逻辑异或运算电路205是用来于其第一输入端接收多个码字(例如码字201A、201B、201C、201D及201E)以及在其第二输入端接收多个回授位以执行逻辑异或运算操作来产生一输出至桶式移位器210。桶式移位器210是耦接于逻辑异或运算电路205的一输出的一数字电路,并用来对一码字进行一规定位个数的移位及旋转操作。征状值计算器215是耦接于桶式移位器210并用来接收桶式移位器210的一输出,其基于奇偶校验矩阵H的多个校验方程式来计算一数据部份(例如一数据位)的一或多个征状值,所述数据位例如所述码字的第n个数据位;在本实施例,一数据部份的征状值被定义为对于奇偶校验矩阵H的所有校验方程式所述数据部份的校验值/征状值的一总和,然而并非本案的限制。
反向桶式移位器220是耦接于征状值计算器215并用来接收征状值计算器215的一输出,执行与桶式移位器210相反的操作以在其输出端产生在奇偶校验矩阵H的第m个横列的一校验方程式的第n个数据位的一校验值Smn,所述校验值Smn可视为是第m个横列的校验方程式的第n个数据位的一征状值,而对于奇偶校验矩阵H的所有校验方程式,反向桶式移位器220会一个接一个地于其输出端上输出第n个数据位的多个征状值/校验值S1n、S2n、…、SMn。翻转函式值计算器225是耦接于反向桶式移位器220并用来基于对应于奇偶校验矩阵H的所有校验方程式的第n个数据位的多个校验值S1n、S2n、…、SMn,计算第n个数据位的翻转函式值En,举例来说,翻转函式值计算器225会计算出翻转函式值En=∑m Smn,也就是说,对于所有校验方程式第n个数据位的多个征状值/校验值的一总和,然此并非是本案的限制,在其他实施例,也可以通过其他不同的等式来设置或计算翻转函式值En。
决定单元230是耦接于翻转函式值计算器225的输出并用来比较第n个数据位的所述翻转函式值En与所述翻转临界值θ以决定是否翻转第n个数据位。临界值记录单元235是耦接于决定单元230并用来记录上述的翻转临界值θ及候选的翻转临界值(也就是说,N-1个先前的数据位的多个无效校验和中的次大值)。此外,决定单元230是用来更新所述翻转临界值θ,并接着会输出所述回授位(无论是已经翻转后或并未被翻转)至逻辑异或运算电路205。ΔA(1)、ΔB(1)、ΔC(1)、ΔD(1)、ΔE(1)、ΔA(2)、ΔB(2)等分别所指的是不同码字的多个不同的回授位。桶式移位器210、征状值计算器215、反向桶式移位器220、翻转函式值计算器225、决定单元230及临界值记录单元235分别用来对下一个数据位(例如第n+1个数据位)执行相对应的操作。
再者,上述所提的所述解码方法亦可应用于一加权位翻转的译码器电路。请搭配参考图3与图4,图3是本发明第二实施例的使用于一加权位翻转的低密度奇偶检查码译码器中的译码方法的流程示意图,图4是图3所示的实施例的加权位翻转的低密度奇偶检查码译码器400的方块示意图,在本实施例中,加权位翻转的译码器电路400中所采用的方法可另用来基于多个先前的数据位的多个征状值/校验值的信息来决定多个权重值,以决定出多个翻转函式值及翻转临界值。
假设可获取相同的结果,则这些步骤并不一定要遵照图3所示的执行次序来执行,且这些步骤不一定要连续地执行,也就是说,一些其他步骤可插入其中。这些步骤的详细内容如下:
步骤305:开始;
步骤307:计算初始的权重;
步骤310:接收具有N个位的一码字的一特定数据位,其中N为正整数,例如,所述特定数据位是一目前进来的位,例如所述码字的第n个位;
步骤315:计算第n个数据位的翻转函式值En;
步骤317:更新所述权重;
步骤320:比较第n个数据位的翻转函式值En与第n个数据位的翻转临界值θ来决定是否翻转第n个数据位,其中第n个数据位的翻转临界值θ已经根据N-1个先前的数据位的多个翻转函式值而被算出或被决定出;
步骤325A:翻转第n个数据位;
步骤325B:不翻转第n个数据位;
步骤330A:对于已经翻转的第n个数据位,计算其所有校验方程式的多个征状值/校验值;
步骤330B:对于没有被翻转的第n个数据位,计算其所有校验方程式的多个征状值/校验值;
步骤335:根据第n个数据位的翻转函式值En及N-1个先前的数据位的多个翻转函式值,更新下一个或多个数据位的翻转临界值θ;
步骤340:对于下一个或多个数据位,重复上述的步骤,直到所计算的多个征状值/校验值的总和等于零或已经达到了一最大迭代次数;以及步骤345:结束。
在步骤307,如果加权位翻转的低密度奇偶检查码译码器400搭配有一动态加权位翻转算法,则所述初始的权重(例如一初始加权值)可以被设定为零,或者如果加权位翻转的低密度奇偶检查码译码器400搭配有其他加权位翻转算法,则可根据信道值来计算出所述初始的权重。
在步骤315,例如所述解码方法是用以基于以下方程序来计算第n个数据位的翻转函式值En:
Figure GDA0003804932490000101
其中ωmn为在奇偶校验矩阵H的第m个横列的校验方程式所对应的第n个数据位的一加权值,也就是说,有M×N个加权值,其中某些加权值可能相同,而其他加权值可能不相同,以及ωmn可以由下列方程式所表示:
Figure GDA0003804932490000102
在其他实施例,第n个数据位的翻转函式值En可以被设定为以下等式(但不限定):
Figure GDA0003804932490000103
在步骤317,所述解码方法是用来对于N-1个先前的数据位中每一个位,计算其加权值ωmn,并在每次当计算例如第n个数据位的翻转函式值En时排序所述多个加权值以选出并记录一最小的加权值、一次小的加权值及一再次小的加权值,如果根据上述等式及所述翻转函式值而已经计算出一新的加权值,则所述解码方法会接着排序并记录一最小的加权值、一次小的加权值及一再次小的加权值,此外,所述解码方法也可以改为记录与最小的加权值、一次小的加权值及一再次小的加权值三者有关的相对应的索引值。
再者,所述解码方法也可以设定N-1个先前的数据位的多个翻转函式值中一最大值作为翻转临界值θ。
步骤320至步骤340的操作相似于图1所述的相对应的步骤内容,为了简化说明书篇幅,不再重述。
对于实作来说,译码器电路400包括逻辑异或运算电路205、桶式移位器210、征状值计算器215、反向桶式移位器220、翻转函式值计算器425、一权重更新单元427、决定单元230以及临界值记录单元235,逻辑异或运算电路205是用来于其第一输入端接收多个码字(例如码字201A、201B、201C、201D及201E)以及于其第二输入端接收多个回授位,以执行逻辑异或运算操作以产生输出至桶式移位器210,桶式移位器210是一数字电路,所述数字电路用以耦接于逻辑异或运算电路205的输出并用来对一码字进行一规定位个数的移位及旋转操作,征状值计算器215是耦接于桶式移位器210并用来接收桶式移位器210的输出以基于多个校验方程式来计算一数据部份(例如一数据位,例如所述码字的第n个数据位)的一或多个征状值,反向桶式移位器220是耦接于征状值计算器215并用来接收征状值计算器215的输出以执行与桶式移位器210相反的操作以在其输出端产生在奇偶校验矩阵H的第m个横列的一校验方程式的第n个数据位的征状值/校验值Smn,反向桶式移位器220会对于奇偶校验矩阵H的所有校验方程式,一个接一个地于其输出端上输出第n个数据位的多个征状值/校验值S1n、S2n、…、SMn。
翻转函式值计算器425是耦接于反向桶式移位器220并用来基于对应于奇偶校验矩阵H的所有校验方程式所对应的第n个数据位的多个校验值S1n、S2n、…、SMn,计算第n个数据位的翻转函式值En,例如,翻转函式值计算器425计算所述翻转函式值En=∑m ωmn×(1-2×Sm),然此并非是本案的限制,在其他实施例,可以通过其他不同的公式来设定或计算所述翻转函式值En。
权重更新单元427是耦接于翻转函式值计算器425并用来于第n个数据位之前计算N-1个先前的数据位的每一个数据位的加权值ωmn,并于每一次当计算所述翻转函式值(例如第n个数据位的翻转函式值En)时对多个加权值进行排序以选取并记录所述最小的加权值、所述次小的加权值及所述再次小的加权值,如果根据上述等式及所述翻转函式值而已经计算得到一新的加权值,权重更新单元427是用来再对多个加权值进行排序以选取并记录所述最小的加权值、所述次小的加权值及所述再次小的加权值,并且,权重更新单元427也可以用来记录所述最小的加权值、所述次小的加权值及所述再次小的加权值有关的相对应的多个索引值。
决定单元230是耦接于翻转函式值计算器425的输出并用来比较第n个数据位的翻转函式值En与翻转临界值θ以决定是否翻转第n个数据位,临界值记录单元235是耦接于决定单元230并用来记录上述的翻转临界值θ及候选的翻转临界值(也就是说,N-1个先前的数据位的多个翻转函式值的次大值),决定单元230是用来更新所述翻转临界值θ,此外,决定单元230会接着输出回授位(无论是被翻转或并未被翻转)至逻辑异或运算电路205,ΔA(1)、ΔB(1)、ΔC(1)、ΔD(1)、ΔE(1)、ΔA(2)、ΔB(2)等分别所指的是不同码字的不同回授位,桶式移位器210、征状值计算器215、反向桶式移位器220、翻转函式值计算器425、权重更新单元427、决定单元230及临界值记录单元235分别用来对于接下来的数据位(第n+1个数据位)执行上述相对应的操作。
此外,应注意的是,上述包括于一译码器电路内的组件及/或单元均可采用硬件电路(例如处理器)、软件模块/应用/程序代码及/或硬件电路与软件模块/应用/程序代码的多种组合来实现。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种低密度奇偶检查码译码器,其特征在于,包括有:
一桶式移位器,用来对一第一码字进行一规定位个数的移位及旋转操作;
一征状值计算器,耦接于所述桶式移位器,用来接收所述桶式移位器的一输出,基于一奇偶校验矩阵的多个校验方程式,计算所述第一码字的一特定数据部分的一征状值;
一反向桶式移位器,耦接于所述征状值计算器,用来对于所述征状值计算器的一输出执行所述桶式移位器的一反相的操作,产生对于在所述奇偶校验矩阵的一特定横列上的一校验方程式的所述特定数据部份的一校验值;
一翻转函式值计算器,耦接于所述反向桶式移位器,用来通过使用所述奇偶校验矩阵的所述多个校验方程式所产生的多个校验值并根据所述特定数据部份,计算所述特定数据部份的一翻转函式值;以及
一决定单元,耦接于所述翻转函式值计算器,用来通过比较所述翻转函式值与一翻转临界值来决定是否翻转所述第一码字的所述特定数据部份;
其中所述翻转临界值是已经基于较早于所述特定数据部份的多个先前的数据部份的多个对翻转函式值所被计算出的值,所述多个先前的数据部份的至少其中一个是被一第二码字所包括,以及所述第一码字是在所述第二码字之后。
2.如权利要求1所述的低密度奇偶检查码译码器,其特征在于,所述桶式移位器是用来接收至少一个接下来的数据部份,以及所述桶式移位器、所述征状值计算器、所述反向桶式移位器、所述翻转函式值计算器及所述决定单元是迭代地对所述至少一个接下来的数据部份重复相对应操作,直到所述征状值在计算后等于零或是已经到达一最大迭代次数才停止。
3.如权利要求2所述的低密度奇偶检查码译码器,其特征在于,所述征状值是被设定为再次计算后的所述多个校验值的一总和。
4.如权利要求1所述的低密度奇偶检查码译码器,其特征在于,所述特定数据部份是所述第一码字的一数据位。
5.如权利要求1所述的低密度奇偶检查码译码器,其特征在于,所述特定数据部份及所述多个先前的数据部份是对应于一数据长度,所述数据长度等于一完整码字的一数据长度。
6.如权利要求1所述的低密度奇偶检查码译码器,其特征在于,所述翻转函式值计算器是用来:
通过使用所述奇偶校验矩阵的所述多个校验方程式及多个加权值,来计算所述特定数据部份的所述多个校验值,所述多个加权值是基于至少一个最小值所已经决定出的数值,所述至少一个最小值是从所述多个先前的数据部份的多个加权值所选出的;以及
根据所计算的所述多个校验方程式,计算所述第一码字的所述特定数据部份的所述翻转函式值。
7.如权利要求6所述的低密度奇偶检查码译码器,其特征在于,所述低密度奇偶检查码译码器还包括有:
一权重更新单元,耦接于所述翻转函式值计算器,用来在所述决定单元决定是否翻转所述第一码字的所述特定数据部份之前,根据所述特定数据部份的所计算的所述翻转函式值,更新所述多个加权值。
8.如权利要求1所述的低密度奇偶检查码译码器,其特征在于,所述低密度奇偶检查码译码器还包括有:
一临界值记录单元,耦接于所述决定单元,用来根据所述特定数据部份的所计算的所述翻转函式值,更新所述翻转临界值及一相对应的索引值,以用以处理下一个数据部分。
9.如权利要求1所述的低密度奇偶检查码译码器,其特征在于,当所述翻转函式值不小于所述翻转临界值时,所述决定单元翻转或切换所述第一码字的所述特定数据部份,所述翻转临界值是已经基于较早于所述特定数据部份的所述多个先前的数据部份的所述多个对翻转函式值所被计算出的值。
CN201810804568.7A 2017-11-21 2018-07-20 低密度奇偶检查码译码器 Active CN109818625B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/820,391 US10523236B2 (en) 2017-11-21 2017-11-21 Method employed in LDPC decoder and the decoder
US15/820,391 2017-11-21

Publications (2)

Publication Number Publication Date
CN109818625A CN109818625A (zh) 2019-05-28
CN109818625B true CN109818625B (zh) 2022-10-21

Family

ID=66533461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810804568.7A Active CN109818625B (zh) 2017-11-21 2018-07-20 低密度奇偶检查码译码器

Country Status (3)

Country Link
US (2) US10523236B2 (zh)
CN (1) CN109818625B (zh)
TW (2) TWI699977B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI646783B (zh) * 2018-04-10 2019-01-01 大陸商深圳大心電子科技有限公司 解碼方法及儲存控制器
US10951232B2 (en) 2018-11-26 2021-03-16 Micron Technology, Inc. Error correction bit flipping scheme
US11184024B2 (en) * 2019-12-02 2021-11-23 SK Hynix Inc. Error mitigation scheme for bit-flipping decoders for irregular low-density parity-check codes
US11057059B1 (en) * 2020-01-15 2021-07-06 Western Digital Technologies, Inc. Content aware bit flipping decoder
US11387845B2 (en) 2020-02-06 2022-07-12 SK Hynix Inc. LDPC decoder, operating method of LDPC decoder, and semiconductor memory system
US11190212B1 (en) 2020-07-24 2021-11-30 SK Hynix Inc. Dynamic control of quasi-cyclic low-density parity-check bit-flipping decoder
US11349498B2 (en) * 2020-10-08 2022-05-31 Micron Technology, Inc. Bit flipping low-density parity-check decoders with low error floor
CN112306741B (zh) * 2020-11-19 2022-12-23 山东云海国创云计算装备产业创新中心有限公司 一种crc校验方法及相关装置
US11664821B1 (en) 2022-02-08 2023-05-30 SK Hynix Inc. Error floor performance of a bit flipping decoder through identifying unreliable check nodes
TWI818490B (zh) * 2022-03-29 2023-10-11 睿寬智能科技有限公司 低密度奇偶校驗碼的重組式解碼法與裝置
US11949430B2 (en) * 2022-09-01 2024-04-02 SK Hynix Inc. Parallel system to calculate low density parity check

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888148A (zh) * 2014-03-20 2014-06-25 山东华芯半导体有限公司 一种动态阈值比特翻转的ldpc码硬判决译码方法
US8996972B1 (en) * 2011-02-11 2015-03-31 Marvell International Ltd. Low-density parity-check decoder
CN107241102A (zh) * 2016-03-29 2017-10-10 慧荣科技股份有限公司 在硬决策软解码期间决定何时结束位翻转算法的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US63400A (en) * 1867-04-02 Joel lee
US9258015B2 (en) * 2013-12-23 2016-02-09 Apple Inc. Decoder with selective iteration scheduling
US20160335160A1 (en) * 2014-04-03 2016-11-17 Empire Technology Development Llc Memory device with speculated bit flip threshold
US9692450B2 (en) * 2015-05-11 2017-06-27 Maxio Technology (Hangzhou) Ltd. Systems and methods for early exit of layered LDPC decoder
US9768807B2 (en) * 2015-08-31 2017-09-19 Sandisk Technologies Llc On-the-fly syndrome and syndrome weight computation architecture for LDPC decoding
US10050642B2 (en) * 2016-03-17 2018-08-14 Silicon Motion Inc. Low power scheme for bit flipping low density parity check decoder

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996972B1 (en) * 2011-02-11 2015-03-31 Marvell International Ltd. Low-density parity-check decoder
CN103888148A (zh) * 2014-03-20 2014-06-25 山东华芯半导体有限公司 一种动态阈值比特翻转的ldpc码硬判决译码方法
CN107241102A (zh) * 2016-03-29 2017-10-10 慧荣科技股份有限公司 在硬决策软解码期间决定何时结束位翻转算法的方法

Also Published As

Publication number Publication date
TWI758748B (zh) 2022-03-21
TW201926911A (zh) 2019-07-01
US11296725B2 (en) 2022-04-05
TW202044780A (zh) 2020-12-01
US20200136645A1 (en) 2020-04-30
US20190158115A1 (en) 2019-05-23
CN109818625A (zh) 2019-05-28
US10523236B2 (en) 2019-12-31
TWI699977B (zh) 2020-07-21

Similar Documents

Publication Publication Date Title
CN109818625B (zh) 低密度奇偶检查码译码器
US7730377B2 (en) Layered decoding of low density parity check (LDPC) codes
JP4627317B2 (ja) 通信装置および復号方法
US6763494B2 (en) Turbo product code decoder
JP4320418B2 (ja) 復号装置および受信装置
US10050642B2 (en) Low power scheme for bit flipping low density parity check decoder
CN107919874B (zh) 校验子计算基本校验节点处理单元、方法及其计算机程序
US20110191653A1 (en) Quasi-cyclic ldpc encoding and decoding for non-integer multiples of circulant size
US20200044668A1 (en) Method for ldpc decoding, ldpc decoder and storage device
CN108270518B (zh) 用以解码接收信息的解码方法与相关解码装置
US11381260B2 (en) Architecture for guessing random additive noise decoding (GRAND)
US20080263123A1 (en) Method and system for determining a minimum number and a penultimate minimum number in a set of numbers
CN113612485A (zh) 一种译码方法、译码装置、设备及存储装置
CN111769839A (zh) 快速的比特翻转译码方法
CN110289863B (zh) 译码设备、方法及信号传输系统
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法
TWI810872B (zh) 用於準循環低密度奇偶校驗碼的快速解碼器
US20240157933A1 (en) Acceleration of s-polar ecc throughput by scheduler
CN108270517B (zh) 用以解码接收信息的解码方法与相关解码装置
KR101221062B1 (ko) 가변 usc 부호를 이용한 부호화 및 복호화 방법
KR101268060B1 (ko) 결합 상태-체크 코드를 이용한 부호화 방법 및 복호화 방법
CN113271109A (zh) 一种ldpc译码过程中迭代循环数据存储方法及系统
CN115706587A (zh) 用于低密度奇偶校验码解码的装置和方法
CN113556136A (zh) 一种gn陪集码译码方法及装置
CN115499019A (zh) 用于系统擦除编码的硬件架构和方法

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
GR01 Patent grant
GR01 Patent grant