IP Library Granted Patent US 10,103,751
Granted Patent B2
US 10,103,751 · App. 15/188,957 · Granted Oct 16, 2018

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

Inventors: Damian Alfonso Morero (Cordoba, AR); Mario Alejandro Castrillon (Cordoba, AR); Matias German Schnidrig (Bialet Masse, AR); Mario Rafael Hueda (Cordoba, AR); Franco Paludi (Cordoba, AR)
Assignee: INPHI CORPORATION
H03M13/1128H03M13/112H03M13/116H03M13/1131H03M13/1137H03M13/616H03M13/6577
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 10,103,751
App. No.
15/188,957
Filed
Jun 21, 2016
Granted
Oct 16, 2018
Kind
B2
Art Unit
2117
USPC
714/774
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 (49)

1. A decoder circuit for decoding forward error correcting codewords, the decoder circuit comprising:

a plurality of check node processing unit circuits to receive a forward error correction codeword, each check node processing unit circuit performing, in parallel, a check node computation on the forward error correction codeword using a different row of a shift parity check matrix to generate a plurality of check node output messages; and

a plurality of variable node processing unit circuits, each variable node processing unit circuit to receive the plurality of check node output messages and to perform, based on the plurality of check node output messages, variable node update computations corresponding to different columns belonging to a same sub-matrix of the shift parity check matrix to generate variable node output messages; and

an output circuit to generate a decoded codeword based on the variable node output messages,

wherein the plurality of check node processing unit circuits are implemented as an integrated circuit and comprise a plurality of pipeline processing stages including:

an input computation stage circuit to compute initial computation values from the plurality of variable node messages;

a pipelined message memory having at least two memory stages, the pipelined message memory to receive the initial computation values at an initial memory stage of the message memory and to shift the initial computation values to a subsequent memory stage in the pipelined message memory at a predefined clock interval;

an output computation stage circuit to receive the initial computation values from a final memory stage of the pipelined message memory and to generate the plurality of check node output messages;

wherein at a given time instance, the initial computation stage circuit computes initial computation values associated with a second iteration of an iterative decoding algorithm applied to a first codeword, the pipelined message memory stores initial computation values for a first iteration of the iterative decoding algorithm applied to a second codeword, and the output computation stage circuit computes a plurality of check node output messages associated with a first iteration of the iterative decoding algorithm applied to the first codeword.

2. The decoder circuit of claim 1 , wherein each of the check node processing unit circuits comprises partial-parallel computation units including:

a minimum computation unit circuit determining a first minimum value and a second minimum value of the variable node messages and determining an identity of a variable node corresponding to the first minimum value;

a sign product computation unit circuit determining a product of signs of the variable node messages corresponding to the first minimum value;

a sign FIFO unit circuit storing the signs of the variable node messages from the plurality of variable node processing unit circuits; and

wherein the output computation stage circuit computes the plurality of check node messages based on the signs of the variable node messages from the sign FIFO circuit, the identity of the variable node processing unit circuit corresponding to the first minimum value, and a product of the signs of the variable node messages.

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

4. The decoder circuit of claim 1 , wherein a circular shift of a valid codeword by an integer amount results in another valid codeword in the quasi-cyclic low density parity check matrix.

5. The decoder circuit of claim 1 , wherein the quasi-cyclic low density 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.

6. The decoder circuit of claim 1 , wherein the decoder circuit is configured to iteratively decode the low forward error correcting codewords based on one of: a sum-product algorithm, a min-sum algorithm, and a scaled min-sum algorithm.

7. The decoder circuit of claim 1 , wherein the decoder circuit further comprises a control unit circuit configured to determine if an activation criteria is met and

responsive to the activation criteria being met, control the decoder circuit to adaptively quantize the variable node messages.

8. The decoder circuit of claim 7 , wherein the control circuit is configured to adaptively quantize the variable node messages by scaling the variable node messages by scaling factors to increase a representation range given a fixed number of bits.

9. The decoder circuit of claim 1 , wherein the shift parity check matrix comprises a 2×6 array of 2048×3072 submatrices.

10. The decoder circuit of claim 1 , wherein the forward error correcting codewords have an expansion ratio of 9/7, wherein the expansion ratio comprises a ratio of a code-length to an effective code dimension.

11. A method for decoding forward error correcting codewords, the method comprising:

receiving, by a plurality of check node processing unit circuits, a forward error correction codeword;

performing in parallel by each check node processing unit circuit, a check node computation on the forward error correction codeword using a different row of a shift parity check matrix to generate a plurality of check node output messages; and

receiving the plurality of check node output messages by a plurality of variable node processing unit circuits;

performing, by the plurality of variable node processing unit circuits based on the plurality of check node output messages, variable node update computations corresponding to different columns belonging to a same sub-matrix of the shift parity check matrix to generate variable node output messages; and

generating, by an output circuit, a decoded codeword based on the variable node output messages,

wherein performing the check node computation comprises:

computing, by an input computation stage circuit, initial computation values from the plurality of variable node messages;

storing, in a pipelined message memory having at least two memory stages, the initial computation values at an initial memory stage of the message memory;

shifting the initial computation values to a subsequent memory stage in the pipelined message memory at a predefined clock interval;

receiving, by an output computation stage circuit from a final memory stage of the pipelined message memory; and

generating the plurality of check node output messages;

wherein at a given time instance, the initial computation stage circuit computes initial computation values associated with a second iteration of an iterative decoding algorithm applied to a first codeword, the pipelined message memory stores initial computation values for a first iteration of the iterative decoding algorithm applied to a second codeword, and the output computation stage circuit computes a plurality of check node output messages associated with a first iteration of the iterative decoding algorithm applied to the first codeword, such that data communication occurs at a speed of 100 Gb/second or greater.

12. The method of claim 11 , wherein performing the check node computation comprises:

determining, by a minimum computation unit circuit, a first minimum value and a second minimum value of the variable node messages and determining an identity of a variable node corresponding to the first minimum value;

determining, by a sign product computation unit circuit, a product of signs of the variable node messages corresponding to the first minimum value;

storing, by a sign FIFO unit circuit, the signs of the variable node messages from the plurality of variable node processing unit circuits; and

computing, the plurality of check node messages based on the signs of the variable node messages from the sign FIFO circuit, the identity of the variable node processing unit circuit corresponding to the first minimum value, and a product of the signs of the variable node messages.

13. The method of claim 11 , further comprising:

determining, by a control circuit, if an activation criteria is met; and

responsive to the activation criteria being met, controlling the decoder circuit to adaptively quantize the variable node messages.

14. The method of claim 13 , further comprising:

adaptively quantizing the variable node messages by scaling the variable node messages by scaling factors to increase a representation range given a fixed number of bits.

15. The method of claim 13 , wherein determining if the activation criteria is met comprises determining if a number of unsatisfied check nodes is smaller than a predetermined threshold.

16. The method of claim 13 , wherein the shift parity check matrix comprises a 2×6 array of 2048×3072 submatrices.

17. The method of claim 11 , wherein the forward error correcting codewords have an expansion ratio of 9/7, wherein the expansion ratio comprises a ratio of a code-length to an effective code dimension.

Assignments (5)
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 24, 2017
From: CLARIPHY COMMUNICATIONS, INC.
To: INPHI CORPORATION
Reel/Frame 042492/0629 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2016
From: MORERO, DAMIAN ALFONSO; CASTRILLON, MARIO ALEJANDRO; SCHNIDRIG, MATIAS GERMAN; HUEDA, MARIO RAFAEL; PALUDI, FRANCO
To: CLARIPHY COMMUNICATIONS, INC.
Reel/Frame 040644/0598 →
Continuity (7)
Continuation In Part 15000978 · Jan 19, 2016
Continuation In Part 14561183 · Dec 4, 2014
Division 13406452 · Feb 27, 2012
Provisional Application 61447620 · Feb 28, 2011
Provisional Application 62107171 · Jan 23, 2015
Provisional Application 62183081 · Jun 22, 2015
Related Publication 20160301425A1 · Oct 13, 2016
Cited By (2)
US 12,334,954 US 12,656,975