IP Library Granted Patent US 9,608,666
Granted Patent B1
US 9,608,666 · App. 14/561,183 · Granted Mar 28, 2017

Non-concatenated FEC codes for ultra-high speed optical transport networks

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,608,666
App. No.
14/561,183
Granted
Mar 28, 2017
Kind
B1
Abstract

A decoder performs forward error correction based on quasi-cyclic regular column-partition low density parity check codes. A method for designing the parity check matrix reduces the number of short-cycles of the matrix to increase performance. An adaptive quantization post-processing technique further improves performance by eliminating error floors associated with the decoding. A parallel decoder architecture performs iterative decoding using a parallel pipelined architecture.

Claims (45)

1. A method for forward error correction comprising:

receiving, by a decoder, a stream of low density parity check codewords;

iteratively decoding the low density parity check codewords based on a parity check matrix by iteratively performing check node computations by a check node processing unit of the decoder and performing update computations by a variable node processing unit of the decoder;

for each iteration of the decoding, determining if an activation criteria is met; and

subsequent to a given iteration in which the activation criteria is met, configuring the decoder to adaptively quantize messages processed by the decoder based on a scaling factor between 0 and 1; and

applying the scaling factor to the messages in a variable node processing unit of the decoder to generate scaled messages; and

outputting the scaled messages.

2. The method of claim 1 , wherein iteratively decoding the low density parity check codewords comprises decoding based on one of: a sum-product algorithm, a min-sum algorithm, and a scaled min-sum algorithm.

3. The method of claim 1 , wherein determining if the activation criteria is met comprises determining if a number of unsatisfied parity checks of the parity check matrix is smaller than a predetermined threshold.

4. The method of claim 1 , where adaptively quantizing the messages comprises:

determining a log-likelihood ratio of received bits of the low density parity check codewords;

receiving a message representing output of a prior decoding iteration;

scaling the log-likelihood ratio and the message by the scaling factor to increase a representation range given a fixed number of bits; and

iteratively decoding the low density parity check codewords using the scaled log-likelihood ratio and scaled message.

5. The method of claim 1 , wherein the parity check matrix is row-regular and column-regular such that the parity check matrix has a first same number of 1s in each row and a second same number of 1s in each column.

6. The method of claim 1 , wherein the parity check matrix is quasi-cyclic such that a circular shift of a valid codeword by an integer amount results in another valid codeword.

7. The method of claim 1 , wherein the parity check matrix comprises an array of circulant sub-matrices, wherein each of the circulant sub-matrices comprises a square matrix in which a first row is a cyclic shift of a last row, and each other row is a cyclic shift of a row directly above it.

8. The method of claim 1 , wherein the parity check matrix comprises an array of circulants arranged in 2 rows and 12 columns, each of the circulants having a 2048 rows and 2048 columns of values, and each circulant having two non-zero diagonals, wherein each of the circulants comprises a square matrix in which a first row is a cyclic shift of a last row, and each other row is a cyclic shift of a row directly above it.

9. The method of claim 1 , wherein each of the low density parity check codewords has a code-length of 24,576 symbols.

10. The method of claim 1 , further comprising:

outputting a decoded codeword having a code-dimension of 20,482 symbols.

11. The method of claim 1 , wherein iteratively decoding the low density parity check codewords comprises:

in a first processing stage, performing, by a first processing block of a decoder, a first plurality of check node initial-computations with respect to a first received codeword, each of the first plurality of check node initial-computations corresponding to a different row of the parity check matrix; simultaneously with performing the first plurality of check node initial-computations, storing by a message memory, previously computed check node initial-computation results associated with processing of a second received codeword by the first processing block;

simultaneously with performing the first plurality of check node initial-computations, performing, by a second processing block of the decoder, a first plurality of check node final-computations for the first received codeword, each of the first plurality of check node final-computations corresponding to a different row of the parity check matrix;

in a second stage following the first stage, performing, by the first processing block of the decoder, a second plurality of check node initial-computations for the second received codeword, each of the second plurality of check node initial-computations corresponding to a different row of the parity check matrix;

simultaneously with performing the second plurality of check node initial-computations, storing by the message memory, results of the first plurality of check node computations associated with processing of the first received codeword by the first processing block;

simultaneously with performing the second plurality of check node initial-computations, performing, by a second processing block of the decoder, a second plurality of check node final-computations for the second received codeword, each of the second plurality of check node computations corresponding to a different row of the parity check matrix.

12. The method of claim 11 , further comprising:

simultaneously with performing the first plurality of check node initial-computations, performing, by a third processing block the decoder, a first plurality of variable node update computations with respect to the first received codeword, each of the first plurality of variable node computations corresponding to a different column belonging to a same sub-matrix of the parity check matrix; and

simultaneously with performing the second plurality of check node initial-computations, performing, by the third processing block of the decoder, a second plurality of variable nodes computations for the second received codeword, each of the second plurality of variable node computations corresponding to a different column of the parity check matrix.

13. A decoder circuit for decoding forward error correcting codewords according to an iterative decoding process, the decoder circuit comprising:

a plurality of check node processing units, each check node processing performing a check node computation corresponding to a different row of a parity check matrix, each of the plurality of check node processing units to receive, by the decoder circuit, a stream of low density parity check codewords and iteratively decode the low density parity check codewords based on the parity check matrix;

a control unit to determine if an activation criteria is met for each iteration of the decoding, and subsequent to a given iteration in which the activation criteria is met, configuring the decoder circuit to adaptively quantize messages processed by the decoder circuit based on a scaling factor between 0 and 1; and

a plurality of variable node processing units, each variable node processing unit determining variable node update computations corresponding to different columns belonging to a same sub-matrix of the parity check matrix, the variable node processing units applying the scaling factor to the messages to generate scaled messages, and the variable node processing units outputting the scaled messages.

14. The decoder circuit of claim 13 , wherein iteratively decoding the low density parity check codewords comprises decoding based on one of: a sum-product algorithm, a min-sum algorithm, and a scaled min-sum algorithm.

15. The decoder circuit of claim 13 , wherein determining if the activation criteria is met comprises determining if a number of unsatisfied parity checks of the parity check matrix is smaller than a predetermined threshold.

16. The decoder circuit of claim 13 , where adaptively quantizing the messages comprises:

determining a log-likelihood ratio of received bits of the low density parity check codewords;

receiving a message representing output of a prior decoding iteration;

scaling the log-likelihood ratio and the message by a scaling factor to increase a representation range given a fixed number of bits; and

iteratively decoding the low density parity check codewords using the scaled log-likelihood ratio and scaled message.

17. The decoder circuit of claim 13 , wherein the parity check matrix is row-regular and column-regular such that the parity check matrix has a first same number of 1s in each row and a second same number of 1s in each column.

18. The decoder circuit of claim 13 , wherein the parity check matrix is quasi-cyclic such that a circular shift of a valid codeword by an integer amount results in another valid codeword.

19. The decoder circuit of claim 13 , wherein the parity check matrix comprises an array of circulant sub-matrices, wherein each of the circulant sub-matrices comprises a square matrix in which a first row is a cyclic shift of a last row, and each other row is a cyclic shift of a row directly above it.

20. The decoder circuit of claim 13 , wherein the parity check matrix comprises an array of circulants arranged in 2 rows and 12 columns, each of the circulants having a 2048 rows and 2048 columns of values, and each circulant having two non-zero diagonals, wherein each of the circulants comprises a square matrix in which a first row is a cyclic shift of a last row, and each other row is a cyclic shift of a row directly above it.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2021
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE LTD.
Reel/Frame 057336/0873 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2021
From: MARVELL TECHNOLOGY CAYMAN I
To: CAVIUM INTERNATIONAL
Reel/Frame 057279/0519 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2021
From: INPHI CORPORATION
To: MARVELL TECHNOLOGY CAYMAN I
Reel/Frame 056649/0823 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2017
From: CLARIPHY COMMUNICATIONS, INC.
To: INPHI CORPORATION
Reel/Frame 042284/0100 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2016
From: MORERO, DAMIAN ALFONSO; CASTRILLON, MARIO ALEJANDRO; SCHNIDRIG, MATIAS GERMAN; HUEDA, MARIO RAFAEL
To: CLARIPHY COMMUNICATIONS, INC.
Reel/Frame 040291/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2015
From: MORERO, DAMIAN ALFONSO; CASTRILLON, MARIO ALEJANDRO; GOETTE, TEODORO ARIEL; SCHNIDRIG, MATIAS GERMAN; RAMOS, FACUNDO ABEL ALCIDES; HUEDA, MARIO RAFAEL
To: CLARIPHY COMMUNICATIONS, INC.
Reel/Frame 036211/0339 →