IP Library › Granted Patent US 8,234,537
Granted Patent B2
US 8,234,537 · App. 12/282,239 · Granted Jul 31, 2012

Layered decoder and method for performing layered decoding

Assignee: Intel Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,234,537
App. No.
12/282,239
Granted
Jul 31, 2012
Kind
B2
Abstract

Embodiments of a decoder and method of decoding blocks of soft bits in a wireless receiver are generally described herein. Other embodiments may be described and claimed. In some embodiments, a memory is initialized with encoded input data and updated with sums of extrinsic reliabilities. Decoded output data is provided from the memory after a predetermined number of iterations.

Claims (107)

1. A programmable decoder configurable to decode data encoded with multiple different LDPC codes, the decoder comprising:

control circuitry programmed with a parity check matrix associated with one of the LDPC codes;

a message memory to store layers of blocks of updated extrinsic reliabilities;

a column-sum memory to store soft bits comprising column-sum data;

a subtraction element to subtract a next layer of the updated extrinsic reliabilities from corresponding soft bits of the column-sum data;

a layer processor to recalculate data stored in the message memory to update the extrinsic reliabilities of the next layer from a soft-bit output of the subtraction element; and

a sum element to add the updated extrinsic reliabilities generated by the layer processor with a soft-bit output of a prior subiteration provided by the subtraction element to generate the column-sum data to be fed-back to update the column-sum memory for each iteration,

wherein the control circuitry is to cause the message memory to exclude blocks of the updated extrinsic reliabilities from being provided to the subtraction element that correspond to null submatrices of the parity check matrix of the programmed LDPC code.

2. The decoder of claim 1 further comprising a multiplexer to initially route input data to the column-sum memory and to subsequently route the column-sum data from the sum element to the column-sum memory after each of a plurality of subiterations,

wherein the column-sum data comprises sums of updated extrinsic reliabilities in the message memory summed with the input data.

3. The decoder of claim 2 wherein for each of the subiterations, a next layer of the updated extrinsic reliabilities in the message memory is selected, and

wherein the subtraction element subtracts the updated extrinsic reliabilities of the selected next layer from column-sum data bits stored in the column-sum memory.

4. The decoder of claim 3 wherein for each of the subiterations, the layer processor generates the updated extrinsic reliabilities from soft bits provided by the subtraction element, and

wherein for each of the subiterations, the sum element adds the updated extrinsic reliabilities generated by the layer processor for a current subiteration with the soft bits of the prior subiterations provided by the subtraction element to generate the column-sum data for storage in the column-sum memory.

5. The decoder of claim 4 further comprising a delay element to provide to the sum element soft bits from the prior subiterations received from the subtraction element to allow the sum element to generate column-sum data for a current subiteration.

6. The decoder of claim 2 wherein the input data comprises blocks of soft bits generated by a demodulator of a multicarrier receiver, and

wherein the decoder is a low-density parity check (LDPC) decoder that implements layered LDPC decoding.

7. The decoder of claim 6 wherein after a predetermined number of iterations, a block of output data corresponding to a block of soft bits comprising the input data is stored in the column-sum memory, the block of soft bits comprising the input data having a greater number of bits than the block of output data, and

wherein each iteration comprises a plurality of the subiterations.

8. The decoder of claim 2 wherein the control circuitry is configured to generate control signals to:

cause the multiplexer to initially route the input data to the column-sum memory and to subsequently route the column-sum data from the sum element to the column-sum memory after each subiteration;

select a layer of updated extrinsic reliabilities from the message memory for each of subiteration for the subtraction element;

select column-sum data from the column-sum memory for each of the subiterations for the subtraction element;

select a code word as output data from the column-sum memory after a predetermined number of iterations.

9. The decoder of claim 1 wherein the updated extrinsic reliabilities stored in message memory are initialized to zero and comprise extrinsic messages which are updated once for each of the subiterations,

wherein for each subiteration, the layer processor re-computes extrinsic reliabilities based on one row of a parity check matrix.

10. The decoder of claim 1 wherein input data for the decoder is generated by demodulating a plurality of frequency-domain symbol-modulated subcarriers generated from a received orthogonal frequency division multiplexed (OFDM) signal.

11. A method of decoding blocks of soft bits with a programmable decoder configurable to decode data encoded with multiple different LDPC code, the method comprising:

programming control circuitry with a parity check matrix associated with one of the LDPC codes;

configuring a message memory to store layers of blocks of updated extrinsic reliabilities;

initializing a column-sum memory with input data;

updating the column-sum memory with sums of updated extrinsic reliabilities generated by processing differences between current data in the memory and the updated extrinsic reliabilities;

reading decoded output data from the memory after a predetermined number of iterations; and

causing the message memory to exclude blocks of the updated extrinsic reliabilities from being subtracted that correspond to null submatrices of the parity check matrix of the pro rammed LDPC code.

12. The method of claim 11

wherein the method further comprises:

subtracting a layer of the updated extrinsic reliabilities from corresponding soft bits of the column-sum data;

generating the updated extrinsic reliabilities from soft bits provided by the subtracting; and

adding the updated extrinsic reliabilities to soft bits of prior subiterations provided by subtracting to generate the column-sum data to generate the soft bits comprising column-sum data for storing in the column-sum memory.

13. The method of claim 12 further comprising:

initially routing the input data to the column-sum memory; and

subsequently routing the column-sum data from the sum element to the column-sum memory after each of a plurality of subiterations,

wherein the column-sum data comprises sums of updated extrinsic reliabilities in the message memory summed with the input data.

14. The method of claim 13 wherein for each of the subiterations, the method further comprises:

selecting a next layer of the updated extrinsic reliabilities in the message memory; and

subtracting the updated extrinsic reliabilities of the selected next layer from column-sum data bits stored in the column-sum memory.

15. The method of claim 14 wherein for each of the subiterations, the method further comprises:

generating the updated extrinsic reliabilities from soft bits provided by the subtraction element; and

adding the updated extrinsic reliabilities generated for a current subiteration with the soft bits of the prior subiterations to generate the column-sum data for storing in the column-sum memory.

16. The method of claim 15 further comprising providing soft bits from the prior subiterations to allow the generation of column-sum data for a current subiteration.

17. The method of claim 13 wherein the input data comprises blocks of soft bits generated by demodulating a multicarrier receiver, and

wherein the input data is encoded with a low-density parity check (LDPC) code.

18. The method of claim 17 wherein after a predetermined number of iterations, a block of output data corresponding to a block of soft bits comprising the input data is stored in the column-sum memory, the block of soft bits comprising the input data having a greater number of bits than the block of output data, and

wherein each iteration comprises a plurality of the subiterations.

19. The method of claim 13 further comprising generating control signals to:

initially route the input data to the column-sum memory;

subsequently route the column-sum data from the sum element to the column-sum memory after each subiteration;

select a layer of updated extrinsic reliabilities from the message memory for each of subiteration for the subtracting;

select column-sum data from the column-sum memory for each of the subiterations for the subtracting;

select a code word as output data from the column-sum memory after a predetermined number of iterations.

20. The method of claim 12 further comprising initializing any updated extrinsic reliabilities stored in message memory, wherein the updated extrinsic reliabilities comprise extrinsic messages that are updated once for each of the subiterations,

wherein for each subiteration, the method comprises re-computing extrinsic reliabilities based on one row of a parity check matrix.

21. The method of claim 11 wherein the input data is generated by demodulating a plurality of frequency-domain symbol-modulated subcarriers generated from a received orthogonal frequency division multiplexed (OFDM) signal.

22. A data storage system comprising:

a data-storage unit to store data encoded with multiple different a layered low-density parity check (LDPC) codes; and

a programmable decoder to decode blocks of input data retrieved from the data-storage unit and to generate blocks of output data, the decoder comprising control circuitry programmed with a parity check matrix associated with one of the LDPC codes, a message memory to store layers of blocks of updated extrinsic reliabilities, a column-sum memory to store soft bits comprising column-sum data, a subtraction element to subtract a next layer of the updated extrinsic reliabilities from corresponding soft bits of the column-sum data, a layer processor to recalculate data stored in the message memory to update the extrinsic reliabilities of the next layer from a soft-bit output of the subtraction element, and a sum element to add the updated extrinsic reliabilities generated by the layer processor with a soft-bit output of a prior subiteration provided by the subtraction element to generate the column-sum data to be fed-back to update the column-sum memory for each iteration,

wherein the control circuitry is to cause the message memory to exclude blocks of the updated extrinsic reliabilities from being provided to the subtraction element that correspond to null submatrices of the parity check matrix of the programmed LDPC code.

23. The data storage system of claim 22 wherein after a predetermined number of iterations, a block of output data corresponding to a block of soft bits comprising the input data is stored in the column-sum memory.

24. The data storage system of claim 23 further comprising a data-reading unit to read the blocks of the input data from the data-storage element, and

wherein the decoder further comprises:

multiplexer to initially route the input data to the column-sum memory and to subsequently route the column-sum data from the sum element to the column-sum memory after each of a plurality of subiterations,

wherein the column-sum data comprises sums of updated extrinsic reliabilities in the message memory summed with the input data.

25. The data storage system of claim 24 wherein for each of the subiterations, a next layer of the updated extrinsic reliabilities in the message memory is selected, and

wherein the subtraction element subtracts the updated extrinsic reliabilities of the selected next layer from column-sum data bits stored in the column-sum memory.

26. A multicarrier receiver comprising:

a demodulator to generate soft bits by demodulating subcarriers of multicarrier communication signals; and

a programmable decoder configurable to decode data encoded with multiple different LDPC codes, the decoder comprising:

control circuity programmed with a parity check matrix associated with one of the LDPC codes;

a message memory to store layers of blocks of updated extrinsic reliabilities;

a column-sum memory to store soft bits comprising column-sum data;

a subtraction element to subtract a next layer of the updated extrinsic reliabilities from corresponding soft bits of the column-sum data;

a layer processor to recalculate data stored in the message memory to update the extrinsic reliabilities of the next layer from a soft-bit output of the subtraction element; and

a sum element to add the updated extrinsic reliabilities generated by the layer processor with a soft-bit output of a prior subiteration provided by the subtraction element to generate the column-sum data to be fed-back to update the column-sum memory for each iteration,

wherein the control circuitry is to cause the message memory to exclude blocks of the updated extrinsic reliabilities from being provided to the subtraction element that correspond to null submatrices of the parity check matrix of the programmed LDPC code.

27. The multicarrier receiver of claim 26 wherein the decoder further comprises:

a multiplexer to initially route input data comprising soft bits provided by the demodulator to the column-sum memory and to subsequently route the column-sum data from the sum element to the column-sum memory after each of a plurality of subiterations,

wherein the column-sum data comprises sums of updated extrinsic reliabilities in the message memory summed with the input data, and

wherein after a predetermined number of iterations, a block of output data corresponding to a block of the soft bits comprising the input data is stored in the column-sum memory.

28. The multicarrier receiver of claim 27 wherein for each of the subiterations, a next layer of the updated extrinsic reliabilities in the message memory is selected, and

wherein the subtraction element subtracts the updated extrinsic reliabilities of the selected next layer from column-sum data bits stored in the column-sum memory.

29. A non-transitory computer-readable storage medium that provides instructions, which when accessed, cause one or more processors to perform operations for decoding data encoded with multiple different LDPC codes, the operations comprising:

programming control circuit with a parity check matrix associated with one of the LDPC codes;

configuring a message memory to store layers of blocks of updated extrinsic reliabilities;

initializing a column-sum memory with input data;

updating the column-sum memory with sums of updated extrinsic reliabilities generated by processing differences between current data in the memory and the updated extrinsic reliabilities;

reading decoded output data from the memory after a predetermined number of iterations; and

causing the message memory to exclude blocks of the updated extrinsic reliabilities from being subtracted that correspond to null submatrices of the parity check matrix of the programmed LDPC code.

30. The non-transitory computer-readable storage medium of claim 29 wherein the memory comprises a column-sum memory, and

wherein the instructions, when further accessed, cause the machine to:

store layers of blocks of updated extrinsic reliabilities in a message memory;

subtract a layer of the updated extrinsic reliabilities from corresponding soft bits of the column-sum data;

generate the updated extrinsic reliabilities from soft bits provided by the subtracting; and

add the updated extrinsic reliabilities to soft bits of prior subiterations provided by subtracting to generate the column-sum data to generate the soft bits comprising column-sum data for storing in the column-sum memory.

31. The non-transitory computer-readable storage medium of claim 30 wherein the instructions, when further accessed, cause the machine to:

initially route the input data to the column-sum memory; and

subsequently route the column-sum data from the sum element to the column-sum memory after each of a plurality of subiterations,

wherein the column-sum data comprises sums of updated extrinsic reliabilities in the message memory summed with the input data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2009
From: PAVLOV, DMITRI YURIEVICH; LYAKH, MIKHAIL YURIEVICH
To: INTEL CORPORATION
Reel/Frame 022296/0203 →
Continuity (1)
Related Publication 20090037791A1 · Feb 5, 2009