Low density parity check decoder
DCFirst Claim
Patent Images
1. A low density parity check (LDPC) code decoder, comprising:
- decoding circuitry configured to;
perform block parallel processing that initiates processing all non-zero block columns of a plurality (M) of rows of a layer of an LDPC matrix in each clock cycle, and wherein M≦
p, and p is a total number of elements in a layer of the LDPC matrix; and
update a P message responsive to determination of a final state for each row of the LDPC matrix;
wherein the LDPC matrix comprises a plurality of layers, each of the layers comprising a plurality (M) of rows that are processed per clock cycle;
wherein each of the plurality of rows of each of the layers is datawise independent of the rows processed during a previous NP_MAX clock cycles and at least one row in each layer is datawise dependent on a row of an immediately preceding layer;
wherein NP_MAX is greater than one.
1 Assignment
Litigations
0 Petitions
Accused Products
Abstract
A method and system for decoding low density parity check (“LDPC”) codes. An LDPC decoder includes an R select unit, a Q message first-in first-out (“FIFO”) memory, and a cyclic shifter. The R select unit provides an R message by selecting from a plurality of possible R message values. The Q message memory stores a Q message until an R message is generated by a CNU, the Q message and the R message are combined to provide a P message. The cyclic shifter shifts the P message.
-
Citations
35 Claims
-
1. A low density parity check (LDPC) code decoder, comprising:
decoding circuitry configured to; perform block parallel processing that initiates processing all non-zero block columns of a plurality (M) of rows of a layer of an LDPC matrix in each clock cycle, and wherein M≦
p, and p is a total number of elements in a layer of the LDPC matrix; andupdate a P message responsive to determination of a final state for each row of the LDPC matrix; wherein the LDPC matrix comprises a plurality of layers, each of the layers comprising a plurality (M) of rows that are processed per clock cycle;
wherein each of the plurality of rows of each of the layers is datawise independent of the rows processed during a previous NP_MAX clock cycles and at least one row in each layer is datawise dependent on a row of an immediately preceding layer;
wherein NP_MAX is greater than one.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. A low density parity check (LDPC) code decoder, comprising:
an array of reconfigurable minimum finder units adapted to; perform block parallel processing of an LDPC matrix; selectably process in parallel a first plurality (dc1) of block columns of a plurality (M1) of rows of a layer of a first LDPC matrix, where; dc1 is check node degree of a block row of the first LDPC matrix; p1 is a total number of elements of the block row of a first LDPC matrix; and M1<
=p1; andselectably process in parallel a second plurality (dc2) of block columns of a plurality (M2) of rows of a layer of a second LDPC matrix, where; dc2 is check node degree of a block row of the second LDPC matrix, and dc1 is different from dc2; p2 is a total number of elements of the block row of the second LDPC matrix; M2<
=p2; andM2 is different from M1. - View Dependent Claims (12)
-
13. A low density parity check (LDPC) code decoder, comprising:
-
a Q message generator configured to combine an R message with a P message to produce a Q message; logic configured to reduce the magnitude a Q message provided to a check node unit of the decoder; and a permuter configured to permute the P message by a difference of permutation of a block currently being processed and permutation of a block previously processed;
wherein the block currently being processed and the block previously processed are in a same block column of an LDPC matrix. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A low density parity check (LDPC) code decoder, comprising:
-
a control unit that controls decoder processing, the control unit configured to cause the decoder to process blocks of an LDPC matrix in a sequence defined by an order of non-zero blocks of a given layer of the LDPC matrix; wherein the LDPC matrix comprises a plurality of layers, each layer having a plurality of blocks ordered such that the sequence of non-zero blocks of the given layer of the LDPC matrix specifies a first set of non-zero blocks of the given layer to be processed at a given time and a second set of non-zero blocks of the given layer to be processed after the first set of non-zero blocks;
wherein the first set specifies only non-zero blocks of the given layer that are not dependent on a result of a previously processed layer and the second set specifies non-zero blocks of the given layer that are dependent on a result of the previously processed layer. - View Dependent Claims (26, 27, 28, 29, 30, 31)
-
-
32. A method for generating a low density parity check (LDPC) matrix, comprising:
-
generating a first plurality of rows of the LDPC matrix for processing in an LDPC decoder during a first NP_MAX clock cycles, wherein NP_MAX is greater than one; and generating a second plurality of rows of the LDPC matrix for processing in the LDPC decoder immediately after the first set of rows, each of the rows of the second plurality of rows is datawise independent of each of the rows of the first plurality of rows; wherein the LDPC matrix comprises a plurality of layers and at least one row in each layer is datawise dependent on a row of a previous layer. - View Dependent Claims (33, 34, 35)
-
Specification