Low density parity check decoder for regular LDPC codes
DCFirst Claim
Patent Images
1. A low density parity check code decoder, comprising:
- a check node unit (“
CNU”
);
the CNU comprising;
a set of comparators for comparing stored minimum values to a received variable message Q, wherein;
a total number of comparators in the set is less than the check node degree;
a first comparator of the set determines a first minimum value, M1, by comparing a first stored minimum value, M1PS, and the received variable message Q; and
a second comparator of the set determines a second minimum value, M2, by comparing a second stored minimum value, M2PS, and the received variable message Q; and
final state storage that stores;
a modified version of M1PS,a modified version of a two'"'"'s complement of M1PS, andone of a modified version of M2PS and a modified version of a two'"'"'s complement of M2PS;
a selector that selects, from the final state storage, a message to a variable node unit to be one of;
the modified version of M1PS,the modified version of the two'"'"'s complement of M1PS, andthe one of the modified version of M2PS and the modified version of the two'"'"'s complement of M2PS;
wherein the modified version of either of M1PS and M2PS is one of an offset corrected version and a scaled version.
2 Assignments
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
98 Claims
-
1. A low density parity check code decoder, comprising:
a check node unit (“
CNU”
);
the CNU comprising;a set of comparators for comparing stored minimum values to a received variable message Q, wherein; a total number of comparators in the set is less than the check node degree; a first comparator of the set determines a first minimum value, M1, by comparing a first stored minimum value, M1 PS , and the received variable message Q; anda second comparator of the set determines a second minimum value, M2, by comparing a second stored minimum value, M2 PS , and the received variable message Q; andfinal state storage that stores; a modified version of M1 PS ,a modified version of a two'"'"'s complement of M1 PS , andone of a modified version of M2 PS and a modified version of a two'"'"'s complement of M2PS ;a selector that selects, from the final state storage, a message to a variable node unit to be one of; the modified version of M1 PS ,the modified version of the two'"'"'s complement of M1 PS , andthe one of the modified version of M2 PS and the modified version of the two'"'"'s complement of M2PS ;wherein the modified version of either of M1 PS and M2PS is one of an offset corrected version and a scaled version.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
14. A method for decoding a low density parity check code, comprising:
-
comparing a received variable message to a first stored minimum value to determine a new first minimum value; comparing the received variable message to a second stored minimum value to determine new second minimum value; determining indicia of the location of the new first minimum value; storing the new first minimum value, the new second minimum value and the indicia of the new first minimum value location in a partial state storage array; storing final minimum values in a final state storage array of a check node unit, the final minimum values comprising modified versions of; the first minimum value read from the partial state storage array, a two'"'"'s complement of the first minimum value read from the partial state storage array, and one of the second minimum value read from the partial state storage array and a two'"'"'s complement of the second minimum value read from the partial state storage array; and selecting, by the check node unit, one of the final minimum values stored in the final state storage array to be a check node message; providing the check node message to a variable node; wherein the modified versions of the first minimum value and the second minimum value are one of offset corrected versions and scaled versions. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A low density parity check (“
- LDPC”
) code decoder, comprising;a plurality of check node unit (“
CNU”
) arrays, each array comprising a plurality of CNUs and each array processing a block row of an LDPC parity check matrix;wherein the CNUs of each array are interconnected to perform a cyclic shift characteristic of the block row processed by the array; wherein routing of messages between CNUs and between CNUs and variable node units (VNUs) is accomplished by passive wired interconnection, rather than by active routers. - View Dependent Claims (21, 22, 23, 24, 25, 26)
- LDPC”
-
27. A method for low density parity check (“
- LDPC”
) code decoding, comprising;applying a log-likelihood ratio (“
LLR”
) as an initial variable message to a check node unit (“
CNU”
) array;processing a layer of an LDPC parity check matrix in an array of CNUs, the CNUs of the array interconnected, without active routers, to provide incremental shifts in accordance with the number of incremental shifts characteristic of the blocks of the layer. - View Dependent Claims (28, 29, 30)
- LDPC”
-
31. A low density parity check (“
- LDPC”
) code decoder, comprising;an R select unit that provides an R message by selecting from a plurality of possible R message values; a Q message first-in first-out (“
FIFO”
) memory that stores a Q message until an R message is generated by a check node unit (“
CNU”
), the Q message and the R message are combined to provide a P message; anda cyclic shifter that shifts the P message; wherein the cyclic shifter shifts the P message by the difference of the shifts of a block currently being processed and the shifts of a block previously processed;
wherein the block currently being processed and the block previously processed are in a same block column. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
- LDPC”
-
49. A method for decoding a low density parity check code, comprising:
-
selecting an R old message from a plurality of possible R old messages based on a message index value and a sign bit; delaying a Q message in a FIFO memory until a check node unit (“
CNU”
) provides an R new message;summing the R new message and the delayed Q message to produce a P message; and cyclically shifting the P message by the difference of the shifts of a block currently being processed and the shifts of a block previously processed;
wherein the block currently being processed and the block previously processed are in a same block column. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61)
-
-
62. A low density parity check (“
- LDPC”
) code decoder, comprising;a first R select unit that provides an R message by selecting from a plurality of possible R message values, a Q message generator that combines the R message with a P message to produce a Q message; and a first cyclic shifter that shifts the P message; wherein the decoder is configured to update the P message based on determination of a final state for each block row. - View Dependent Claims (63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84)
- LDPC”
-
85. A method for decoding a low density parity check code, comprising:
-
selecting a first R message from a plurality of previously generated possible R messages based on at least a message index value and a sign bit; generating a Q message by combining the first R message with a P message; cyclically shifting the P message; and updating the P message responsive to determination of a final state for each block row. - View Dependent Claims (86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97)
-
-
98. A low density parity check code decoder, comprising:
a check node unit (“
CNU”
);
the CNU comprising;a set of comparators for comparing stored minimum values to a received variable message Q, wherein; a total number of comparators in the set is less than the check node degree; a first comparator of the set determines a first minimum value, M1, by comparing a first stored minimum value, M1 PS , and the received variable message Q; anda second comparator of the set determines a second minimum value, M2, by comparing a second stored minimum value, M2 PS , and the received variable message Q; andfinal state storage that stores; a modified version of M1 PS , anda modified version of M2 PS ;a selector that selects, from the final state storage, magnitude of a message to a variable node unit to be one of; the modified version of M1 PS , andthe modified version of M2 PS ;wherein the modified version of either of M1 PS and M2PS is one of an offset corrected version and a scaled version.
Specification