IP Library Granted Patent US 9,966,972
Granted Patent B1
US 9,966,972 · App. 14/829,257 · Granted May 8, 2018

Systems and methods for dynamic iteration control in a low-density parity-check (LDPC) decoder

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 9,966,972
App. No.
14/829,257
Granted
May 8, 2018
Kind
B1
Abstract

Systems and methods described herein provides a method for dynamically allocating an iteration number for a decoder. The method includes receiving, at an input buffer, an input signal including at least one data packet. The method further includes calculating a first iteration number for decoding the at least one data packet. The method further includes monitoring at least one of available space of the input buffer and available decoding time for the at least one data packet. The method further includes dynamically adjusting the first iteration number to a second iteration number based on the available space or the available decoding time to continue decoding the at least one data packet.

Claims (54)

1. A method for dynamically allocating an iteration number for a decoder, the method comprising:

receiving, at a first input buffer from a plurality of input buffers, an input signal including at least one data packet that includes a plurality of codewords;

calculating a first iteration number for decoding the first codeword from the at least one data packet;

monitoring at least one of available space of the input buffer and available decoding time for the first codeword;

dynamically adjusting the first iteration number to a second iteration number based on the available space or the available decoding time to continue decoding the first codeword;

receiving and storing a second codeword from the at least one data packet at a second input buffer from the plurality of input buffers when the first codeword is being decoded;

receiving a third codeword from the at least one data packet when all the plurality of input buffers are occupied;

terminating the decoding of the first codeword to vacate the first input buffer in which the first codeword is stored, such that the plurality of input buffers have vacancy to receive the third codeword from the at least one data packet when all of the plurality of input buffers are employed;

storing the third codeword from the at least one data packet into the first input buffer; and

decoding the second codeword that is stored in the second input buffer from the plurality of input buffers.

2. The method of claim 1 , further comprising:

receiving the first codeword and the second codeword asynchronously.

3. The method of claim 1 , wherein calculating the first iteration number includes using a register defined maximum iteration value.

4. The method of claim 1 , wherein calculating the first iteration number includes:

determining a number of decoding cores based on a number of symbols in the at least one data packet, a number of codewords in the at least one data packet, or a type of an encoding scheme of the at least one data packet; and

determining an average iteration number based on the number of decoding cores.

5. The method of claim 1 , further comprising:

monitoring remaining iterations to be run for an un-decoded codeword included in the at least one data packet.

6. The method of claim 1 , wherein the dynamically adjusting the first iteration number to the second iteration number comprises:

increasing the first iteration number when there is enough decoding time to decode the first codeword.

7. The method of claim 1 , wherein the dynamically adjusting the first iteration number to the second iteration number comprises:

reducing the first iteration number when decoding time for a last symbol of the at least one data packet is insufficient to decode the last symbol.

8. The method of claim 1 , wherein the dynamically adjusting the first iteration number to the second iteration number comprises:

reducing the first iteration number when the input buffer is near full.

9. The method of claim 1 , wherein the dynamically adjusting the first iteration number to the second iteration number comprises:

reducing the first iteration number for a remaining un-decoded codeword in the at least one data packet during a last symbol period.

10. The method of claim 1 , further comprising:

determining that there is insufficient time for a last symbol in the at least one data packet;

stopping decoding the at least one data packet.

11. A system for dynamically allocating an iteration number for a decoder, the system comprising:

a plurality of input buffers including a first input buffer configured to receive an input signal including at least one data packet including a plurality of codewords; and

an iteration control unit configured to:

calculate a first iteration number for decoding a first codeword from the at least one data packet,

monitor at least one of available space of the input buffer and available decoding time for the first codeword, and

dynamically adjust the first iteration number to a second iteration number based on the available space or the available decoding time to continue decoding the first codeword; and

a buffer scheduling mechanism configured to:

receive and store a second codeword from the at least one data packet at a second input buffer from the plurality of input buffers when the first codeword is being decoded;

receive a third codeword from the at least one data packet when all the plurality of input buffers are occupied;

terminate the decoding of the first codeword to vacate the first input buffer in which the first codeword is stored, such that the plurality of input buffers have vacancy to receive the third codeword from the at least one data packet, when all of the plurality of input buffers are employed,

store the third codeword from the at least one data packet into the first input buffer, and

decode the second codeword that is stored in a second input buffer from the plurality of input buffers.

12. The system of claim 11 , wherein the buffer scheduling mechanism is further configured to: receive the first codeword and the second codeword asynchronously.

13. The system of claim 11 , wherein the iteration control unit calculates the first iteration number by using a register defined maximum iteration value.

14. The system of claim 11 , wherein the iteration control unit is configured to calculate the first iteration number by:

determining a number of decoding cores based on a number of symbols in the at least one data packet, a number of codewords in the at least one data packet, or a type of an encoding scheme of the at least one data packet; and

determining an average iteration number based on the number of decoding cores.

15. The system of claim 11 , wherein the iteration control unit further monitors remaining iterations to be run for an un-decoded codeword included in the at least one data packet.

16. The system of claim 11 , wherein the iteration control unit is configured to dynamically adjust the first iteration number to the second iteration number by increasing the first iteration number when there is enough decoding time.

17. The system of claim 11 , wherein the iteration control unit is configured to dynamically adjust the first iteration number to the second iteration number by reducing the first iteration number when decoding time for a last symbol of the at least one data packet is insufficient to decode the last symbol.

18. The system of claim 11 , wherein the iteration control unit is configured to dynamically adjust the first iteration number to the second iteration number by reducing the first iteration number when the input buffer is near full.

19. The system of claim 11 , wherein the iteration control unit is configured to dynamically adjust the first iteration number to the second iteration number by reducing the first iteration number for a remaining un-decoded codeword in the at least one data packet during a last symbol period.

20. The system of claim 11 , wherein the iteration control unit is further configured to:

determine that there is insufficient time to decode a last symbol in the at least one data packet;

stop decoding the at least one data packet.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2019
From: MARVELL INTERNATIONAL LTD.
To: NXP USA, INC.
Reel/Frame 051536/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2018
From: ZHONG, YAN; YU, MAO
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 045138/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2018
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 045138/0367 →