EP2012433A2

LDPC (low density parity check) decoder with distributed processing

Abstract

Distributed processing LDPC (Low Density Parity Check) decoder. A means is presented herein that includes an LDPC decoding architecture leveraging a distributed processing technique (e.g., daisy chain) to increase data throughput and reduce memory storage requirements. Routing congestion and critical path latency are also improved thereby. Each daisy chain includes a number of registers, and a number of localized MUXs (e.g., MUXs having merely 2 inputs each). The means presented herein also does not contain any barrel shifters, high fan-in multiplexers, or interconnection networks; therefore, the critical path is relatively short and it can also be pipelined to further increase data throughput. If desired, a communication device can include multiple configurations of such daisy chains to accommodate the decoding of various LDPC coded signals (e.g., such as for an application and/or communication device that must decoded LDPC codes using different low density parity check matrices).

EP2012433A2, drawing sheet 1
Sheet 1 of 34

Term

Projected expiry 5 June 2028.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

10 claims: 3 independent, 7 dependent

  1. 1
    A decoder that is operable to decode an LDPC (Low Density Parity Check) coded signal, the decoder comprising:a plurality of registers and a plurality of multiplexers (MUXs) configured in a daisy chain, wherein the plurality of registers is operable to store both bit edge messages and check edge messages and the plurality of MUXs is interposed amongst the plurality of registers;and a check engine that is operable to employ a first bit edge message to update a first check edge message thereby generating a second check edge message;and a bit engine that is operable to: employ the second check edge message to update a second bit edge message thereby generating a third bit edge message;and employ the third bit edge message to generate soft information corresponding to an information bit encoded into the LDPC coded signal;and wherein: the soft information corresponding to the information bit encoded into the LDPC coded signal is used to make a best estimate of the information bit encoded into the LDPC coded signal;each register of the plurality of registers corresponds to a non-null location within a sub-matrix of a parity check matrix of an LDPC code by which the LDPC coded signal is generated;each register of the plurality of registers is operable to shift a check edge message or a bit edge message contained therein by one location;during bit node processing, a first select signal is provided to the plurality of MUXs that is interposed amongst the plurality of registers to ensure a check edge message is provided from at least one register of the plurality of registers to the bit engine;and during check node processing, a second select signal is provided to the plurality of MUXs that is interposed amongst the plurality of registers to ensure a bit edge message is provided from at least one register of the plurality of registers to the check engine.
  2. 6
    A decoder that is operable to decode an LDPC (Low Density Parity Check) coded signal, the decoder comprising:a plurality of registers and a plurality of multiplexers (MUXs) configured in a daisy chain, wherein the plurality of registers is operable to store both bit edge messages and check edge messages and the plurality of MUXs is interposed amongst the plurality of registers;and a plurality of check engines that is operable to employ a first plurality of bit edge messages to update a first plurality of check edge messages thereby generating a second plurality of check edge messages;and a plurality of bit engines that is operable to: employ the second plurality of check edge messages to update a second plurality of bit edge messages thereby generating a third plurality of bit edge messages;and employ the third plurality of bit edge messages to generate soft information corresponding to at least one information bit encoded into the LDPC coded signal;and wherein: the soft information corresponding to the at least one information bit encoded into the LDPC coded signal is used to make a best estimate of the at least one information bit encoded into the LDPC coded signal;each register of the plurality of registers corresponds to a non-null location within a sub-matrix of a parity check matrix of an LDPC code by which the LDPC coded signal is generated;each register of the plurality of registers is operable to shift a check edge message or a bit edge message contained therein by one location;during bit node processing, a first select signal is provided to the plurality of MUXs that is interposed amongst the plurality of registers to ensure a check edge message is provided from at least one register of the plurality of registers to the bit engine;during check node processing, a second select signal is provided to the plurality of MUXs that is interposed amongst the plurality of registers to ensure a bit edge message is provided from at least one register of the plurality of registers to the check engine;the plurality of registers is hard-wired to the plurality of bit engines and the plurality of check engines based on non-null location within the parity check matrix of the LDPC code by which the LDPC coded signal is generated;and the decoder is operable to perform belief propagation decoding processing or message passing decoding processing.
  3. 9
    A decoder, implemented in an integrated circuitry, that is operable to decode an LDPC (Low Density Parity Check) coded signal, the integrated circuitry comprising:a plurality of registers and a plurality of multiplexers (MUXs) configured in a daisy chain, wherein the plurality of registers is operable to store both bit edge messages and check edge messages and the plurality of MUXs is interposed amongst the plurality of registers;and a check engine that is operable to employ a first bit edge message to update a first check edge message thereby generating a second check edge message;and a bit engine that is operable to: employ the second check edge message to update a second bit edge message thereby generating a third bit edge message;and employ the third bit edge message to generate soft information corresponding to an information bit encoded into the LDPC coded signal;and wherein: the soft information corresponding to the information bit encoded into the LDPC coded signal is used to make a best estimate of the information bit encoded into the LDPC coded signal;each register of the plurality of registers corresponds to a non-null location within a sub-matrix of a parity check matrix of an LDPC code by which the LDPC coded signal is generated;each register of the plurality of registers is operable to shift a check edge message or a bit edge message contained therein by one location;during bit node processing, a first select signal is provided to the plurality of MUXs that is interposed amongst the plurality of registers to ensure a check edge message is provided from at least one register of the plurality of registers to the bit engine;during check node processing, a second select signal is provided to the plurality of MUXs that is interposed amongst the plurality of registers to ensure a bit edge message is provided from at least one register of the plurality of registers to the check engine;the plurality of registers is hard-wired to the bit engine and the check engine based on at least one non-null location within the parity check matrix of the LDPC code by which the LDPC coded signal is generated;the parity check matrix of the LDPC code by which the LDPC coded signal is generated includes a plurality of square sub-matrices.