Efficient implementation to perform iterative decoding with large iteration counts
Abstract
Systems and methods are presented to improve the performance of a constant bit rate iterative decoder by providing elastic buffering, while utilizing a relatively simple decoder architecture capable of maintaining a fixed number of iterations of a lower value. An LDPC decoder can be designed, for example, to support less than the maximum possible number of iterations, and can, for example, be mated to elastic input and output buffers. If a given code block, or succession of code blocks, requires the maximum number of iterations for decoding, the decoder can, for example, run at such maximum number of iterations and the elastic input buffer can, for example, hold code blocks waiting to be processed so as to maintain a constant input rate. Alternatively, if one or more code blocks requires less than the nominal number of iterations, the output buffer can store those code blocks so as to preserve a constant output rate. It is emphasized that this abstract is provided to comply with the rules requiring an abstract, and is submitted with the understanding that it will not be used to interpret or limit the scope or the meaning of the claims.
Claims
exact text as granted — not AI-modified1 . A method of efficiently performing iterative decoding in a decoder, comprising:
operating at a nominal iteration rate N; changing the iteration rate by either:
(i) increasing the number of iterations as needed, if sufficient buffer space is available,
(ii) decreasing the number of iterations of a current code block being processed, or
(iii) stopping decoding of a current code block being processed; and
storing a queue of code blocks in each of an elastic input buffer and an elastic output buffer. wherein the input rate of code blocks to the input buffer and the output rate of code blocks from the output buffer is constant, and wherein the elastic buffer size is a multiple of a single code block.
2 . The method of claim 1 , wherein the decoder can increase to a maximum number of iterations M.
3 . The method of claim 2 , wherein M is an integer multiple of N.
4 . The method of claim 1 , wherein the decoder implements one of a Low Density Parity Code, a Turbo code and a modification of either of them.
5 - 6 . (canceled)
7 . The method of claim 1 , wherein the size of the elastic output buffer is a function of the expected number of sequential code blocks that can be processed with less than N iterations.
8 . The method of claim 1 , wherein if the elastic input buffer is filled, the decoder operates at a multiple of N, depending upon how many code blocks can fit into the remaining input buffer space.
9 . The method of claim 1 , wherein the decoder can exit processing of a code block upon the detection of one of a defined set of termination indicators, including (i) large portion of bits still in error after a defined number of iterations, (ii) static parity error count, (iii) parity sum below a defined minimum threshold, or(iv) any combination of these.
10 . (canceled)
11 . A system for efficient iterative decoding, comprising:
a decoder set to operate at a nominal iteration rate N; and an elastic input buffer and an elastic output buffer each coupled to the decoder, wherein the input rate of code blocks to the input buffer and the output rate of code blocks from the output buffer is constant, and wherein in operation, the decoder can change the iteration rate by either:
(ii) increasing the number of iterations, as needed, if sufficient buffer space is available,
(ii) decreasing the number of iterations of a current code block being processed, or
(iii) stopping decoding of a current code block being processed; and
wherein the elastic buffer size is a multiple of a single code block.
12 . (canceled)
13 . The system of claim 12 , wherein the decoder can increase to a maximum number of iterations M, where M is a multiple of N.
14 . (canceled)
15 . The system of claim 11 , wherein the decoder implements one of a Low Density Parity Code, a Turbo code and a modification of one of them.
16 . The system of claim 13 , wherein at least one of:
the size of the elastic input buffer is a function of the expected number of sequential code blocks that can require M iterations, and the size of the elastic output buffer is a function of the expected number of sequential code blocks that can be processed with less than N iterations.
17 - 18 . (canceled)
19 . The system of claim 11 , wherein the decoder can exit stop processing of a current code block upon the detection of one of a defined set of termination indicators.
20 . A program storage device readable by a processing unit, tangibly embodying a program of instructions executable by the processing unit to implement a method of efficiently performing iterative decoding, said method comprising:
operating at a nominal iteration rate N; changing the iteration rate by either:
(i) increasing the number of iterations as needed, if sufficient buffer space is available,
(ii) decreasing the number of iterations of a current code block being processed, or
(iii) stopping decoding of a current code block being processed; and
storing a queue of code blocks in each of an elastic input buffer and an elastic output buffer, wherein the input rate of code blocks to the input buffer and the output rate of code blocks from the output buffer is constant, and wherein the elastic buffer size is a multiple of a single code block.
21 . The programmable storage device of claim 20 , wherein in said method the decoder can increase to a maximum number of iterations M.
22 . The programmable storage device of claim 20 , wherein in said method M is an integer multiple of N.
23 . The programmable storage device of claim 20 , wherein in said method the decoder implements one of a Low Density Parity Code, a Turbo code and a modification of either of them.
24 . (canceled)
25 . The programmable storage device of claim 20 , wherein in said method, at least one of:
the size of the elastic input buffer is Nseq multiplied by the size of a code block multiplied by M/N, or Nseq*M/N*Block_size, and the size of the elastic output buffer is a function of the expected number of sequential code blocks that can be processed with less than N iterations.
26 . (canceled)
27 . The programmable storage device of claim 20 , wherein in said method if the elastic input buffer is filled, the decoder operates at a multiple of N, depending upon how many code blocks can fit into the remaining input buffer space.
28 . The programmable storage device of claim 20 , wherein in said method the decoder can exit processing of a code block upon deciding that the currently processed code block will either (i) not converge, or (ii) does not need to.
29 . (canceled)Join the waitlist — get patent alerts
Track US2015188579A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.