IP Library Granted Patent US 8,751,910
Granted Patent B2
US 8,751,910 · App. 13/085,810 · Granted Jun 10, 2014

Staircase forward error correction coding

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,751,910
App. No.
13/085,810
Granted
Jun 10, 2014
Kind
B2
Abstract

In staircase forward error correction coding, a stream of data symbols are mapped to data symbol positions in a sequence of two-dimensional symbol blocks B i , i a positive integer. Each of the symbol blocks has data symbol positions and coding symbol positions. Coding symbols for the coding symbol positions in each symbol block B i in the sequence are computed. The coding symbols are computed such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the data symbols and the coding symbols along the other dimension in the symbol block B i , form a codeword of a FEC component code, and symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the data symbols and the coding symbols along the other dimension in the subsequent symbol block B i+1 , form a codeword of the FEC component code. Thus, each row in [B i−1 T B i ] and each column in [ B i B i + 1 T ] , for example, is a valid codeword.

Claims (73)

1. A Forward Error Correction (FEC) encoding method of an encoding apparatus comprising a mapper and a FEC encoder operatively coupled to the mapper, the method comprising:

mapping a stream of data symbols to data symbol positions in a sequence of two-dimensional symbol blocks B i , i a positive integer, each of the symbol blocks comprising data symbol positions and coding symbol positions; and

computing coding symbols for the coding symbol positions in each symbol block in the sequence, the coding symbols being computed such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code,

wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the computing comprising:

computing the coding symbols for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 .

2. The method of claim 1 , wherein the predetermined symbols comprise all zeros.

3. The method of claim 1 , the mapping comprising mapping the stream of data symbols to the symbol positions from one or more Optical channel Transport Unit (OTUk) frames.

4. The method of claim 1 , wherein the symbol blocks comprise 512 rows by 510 columns of bits, and wherein the FEC component code comprises an extended Bose-Chaudhuri-Hocquenghem (1022, 990) code in non-cyclic form.

5. The method of claim 4 , wherein mapping comprises mapping information bits of two Optical channel Transport Unit (OTUk) frames to the information symbols in each symbol block B i , i≧1, the method further comprising:

mapping the coding symbols in each symbol block B i−1 , i≧2, into parity bits of the two OTUk frames into which the information symbols in symbol block B i are mapped.

6. The method of claim 1 , wherein the symbol blocks comprise 196 rows by 187 columns of bits, and wherein the FEC component code comprises a Bose-Chaudhuri-Hocquenghem (383, 353) code in non-cyclic form.

7. The method of claim 6 , wherein mapping comprises mapping information bits of one of four rows of an Optical channel Transport Unit (OTUk) frame to the information symbols in each symbol block B i , i≧1, the method further comprising:

mapping the coding symbols in each symbol block B i−1 , i≧2, into parity bits of the Optical channel Transport Unit (OTUk) frame row into which the information symbols in symbol block B i are mapped.

8. A non-transitory computer-readable medium storing instructions which when executed by a computer cause the computer to perform the method of claim 1 .

9. Apparatus comprising:

a mapper to receive a stream of data symbols and to map the stream of data symbols among data symbol positions in a sequence of two-dimensional symbol blocks B i , i a positive integer, each of the symbol blocks comprising data symbol positions and coding symbol positions; and

a Forward Error Correction (FEC) encoder, operatively coupled to the mapper, to compute coding symbols for the coding symbol positions in each symbol block in the sequence, the coding symbols being computed such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , comprises a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code,

wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m,

the FEC encoder computing the coding symbols for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 .

10. The apparatus of claim 9 , the mapper mapping the stream of data symbols to the symbol positions from one or more Optical channel Transport Unit (OTUk) frames.

11. A Forward Error Correction (FEC) decoding method of a FEC decoder, the method comprising:

receiving a sequence of FEC encoded two-dimensional symbol blocks B i , i a positive integer, each of the received symbol blocks comprising received versions of data symbols at data symbol positions and coding symbols at coding symbol positions, the coding symbols for the coding symbol positions in each symbol block B i in the sequence having been computed at a transmitter of the received symbol blocks such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code, wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the coding symbols having been computed at the transmitter for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 ; and

decoding the received FEC encoded symbol blocks.

12. Apparatus comprising:

an interface to receive a sequence of FEC encoded two-dimensional symbol blocks B i , i a positive integer, each of the received symbol blocks comprising received versions of data symbols at data symbol positions and coding symbols at coding symbol positions, the coding symbols for the coding symbol positions in each symbol block B i in the sequence having been computed at a transmitter of the received symbol blocks such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code, wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the coding symbols having been computed at the transmitter for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 ; and

a decoder, operatively coupled to the interface, to decode the received FEC encoded symbol blocks.

13. A Forward Error Correction (FEC) encoding method of an encoding apparatus comprising a mapper and a FEC encoder operatively coupled to the mapper, the method comprising:

the mapper mapping a stream of data symbols to data symbol positions in a sequence of two-dimensional symbol blocks B i , i a positive integer, each of the symbol blocks comprising data symbol positions and coding symbol positions; and

the FEC encoder computing coding symbols for the coding symbol positions in each symbol block in the sequence, the coding symbols being computed such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code,

wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the computing comprising:

computing the coding symbols for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 .

14. An apparatus comprising:

means for mapping a stream of data symbols to data symbol positions in a sequence of two-dimensional symbol blocks B i , i a positive integer, each of the symbol blocks comprising data symbol positions and coding symbol positions; and

means for computing coding symbols for the coding symbol positions in each symbol block in the sequence, the coding symbols being computed such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 ,forms a codeword of the FEC component code,

wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the computing comprising:

computing the coding symbols for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 .

15. The method of claim 1 , wherein the FEC component code comprises an algebraic linear code in non-cyclic form.

16. A Forward Error Correction (FEC) encoding method of an encoding apparatus comprising a mapper and a FEC encoder operatively coupled to the mapper, the method comprising:

mapping a stream of data symbols to data symbol positions in a sequence of two-dimensional symbol blocks B i , i a positive integer, each of the symbol blocks comprising data symbol positions and coding symbol positions; and

computing coding symbols for the coding symbol positions in each symbol block in the sequence, the coding symbols being computed such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code,

wherein the FEC component code comprises an algebraic linear code in non-cyclic form.

17. The method of claim 16 , wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the computing comprising:

computing the coding symbols for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 , wherein the predetermined symbols comprise all zeros.

18. The method of claim 16 , the mapping comprising mapping the stream of data symbols to the symbol positions from one or more Optical channel Transport Unit (OTUk) frames.

19. The method of claim 16 , wherein the symbol blocks comprise 512 rows by 510 columns of bits.

20. The method of claim 19 , wherein mapping comprises mapping information bits of two Optical channel Transport Unit (OTUk) frames to the information symbols in each symbol block B i , i>1, the method further comprising:

mapping the coding symbols in each symbol block B i−1 , i≧2, into parity bits of the two OTUk frames into which the information symbols in symbol block B i are mapped.

21. The method of claim 16 , wherein the symbol blocks comprise 196 rows by 187 columns of bits.

22. The method of claim 21 , wherein mapping comprises mapping information bits of one of four rows of an Optical channel Transport Unit (OTUk) frame to the information symbols in each symbol block B i , i>1, the method further comprising:

mapping the coding symbols in each symbol block B i−1 , i≧2, into parity bits of the Optical channel Transport Unit (OTUk) frame row into which the information symbols in symbol block B i are mapped.

23. A non-transitory computer-readable medium storing instructions which when executed by a computer cause the computer to perform the method of claim 16 .

24. Apparatus comprising:

a mapper to receive a stream of data symbols and to map the stream of data symbols among data symbol positions in a sequence of two-dimensional symbol blocks B i , i a positive integer, each of the symbol blocks comprising data symbol positions and coding symbol positions; and

a Forward Error Correction (FEC) encoder, operatively coupled to the mapper, to compute coding symbols for the coding symbol positions in each symbol block in the sequence, the coding symbols being computed such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , comprises a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code,

wherein the FEC component code comprises an algebraic linear code in non-cyclic form.

25. The apparatus of claim 24 , wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the FEC encoder computing the coding symbols for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 .

26. The apparatus of claim 24 , the mapper mapping the stream of data symbols to the symbol positions from one or more Optical channel Transport Unit (OTUk) frames.

27. A Forward Error Correction (FEC) decoding method of a FEC decoder, the method comprising:

receiving a sequence of FEC encoded two-dimensional symbol blocks B i , i a positive integer, each of the received symbol blocks comprising received versions of data symbols at data symbol positions and coding symbols at coding symbol positions, the coding symbols for the coding symbol positions in each symbol block B i in the sequence having been computed at a transmitter of the received symbol blocks such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code, wherein the FEC component code comprises an algebraic linear code in non-cyclic form; and

decoding the received FEC encoded symbol blocks.

28. The method of claim 27 , wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the coding symbols having been computed at the transmitter for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 .

29. Apparatus comprising:

an interface to receive a sequence of FEC encoded two-dimensional symbol blocks B i , i a positive integer, each of the received symbol blocks comprising received versions of data symbols at data symbol positions and coding symbols at coding symbol positions, the coding symbols for the coding symbol positions in each symbol block B i in the sequence having been computed at a transmitter of the received symbol blocks such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code, wherein the FEC component code comprises an algebraic linear code in non-cyclic form; and

a decoder, operatively coupled to the interface, to decode the received FEC encoded symbol blocks.

30. The apparatus of claim 29 , wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the coding symbols having been computed at the transmitter for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 .

31. A Forward Error Correction (FEC) encoding method of an encoding apparatus comprising a mapper and a FEC encoder operatively coupled to the mapper, the method comprising:

the mapper mapping a stream of data symbols to data symbol positions in a sequence of two-dimensional symbol blocks B i , i a positive integer, each of the symbol blocks comprising data symbol positions and coding symbol positions; and

the FEC encoder computing coding symbols for the coding symbol positions in each symbol block in the sequence, the coding symbols being computed such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code, wherein the FEC component code comprises an algebraic linear code in non-cyclic form.

32. The method of claim 31 , wherein each symbol block comprises an n row by m column array of symbols, m, n≧1, n>m, the computing comprising:

computing the coding symbols for the coding symbol positions in each symbol block B i based on D i−1 and B i , where D i−1 is a matrix formed by adding (n−m) sets of n predetermined symbols along the one dimension of B i−1 .

33. An apparatus comprising:

means for mapping a stream of data symbols to data symbol positions in a sequence of two-dimensional symbol blocks B i , i a positive integer, each of the symbol blocks comprising data symbol positions and coding symbol positions; and

means for computing coding symbols for the coding symbol positions in each symbol block in the sequence, the coding symbols being computed such that, for each symbol block B i that has a preceding symbol block B i−1 and a subsequent symbol block B i+1 in the sequence, a two-block concatenation of symbols at symbol positions along one dimension of the preceding symbol block B i−1 , concatenated with the symbols along the other dimension in the symbol block B i , forms a codeword of a FEC component code, and a two-block concatenation of symbols at symbol positions along the one dimension of the symbol block B i , concatenated with the symbols along the other dimension in the subsequent symbol block B i+1 , forms a codeword of the FEC component code, wherein the FEC component code comprises an algebraic linear code in non-cyclic form.

Assignments (11)
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 Feb 23, 2017
From: CORTINA SYSTEMS, INC.
To: INPHI CORPORATION
Reel/Frame 041363/0110 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2011
From: SMITH, BENJAMIN P.
To: CORTINA SYSTEMS, INC.
Reel/Frame 027049/0146 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2011
From: KSCHISCHANG, FRANK R.
To: CORTINA SYSTEMS, INC.
Reel/Frame 027049/0202 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2011
From: LODGE, JOHN
To: CORTINA SYSTEMS, INC.
Reel/Frame 027049/0250 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2011
From: HER MAJESTY THE QUEEN IN RIGHT OF CANADA
To: CORTINA SYSTEMS, INC.
Reel/Frame 027049/0333 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2011
From: FARHOODFAR, ARASH
To: CORTINA SYSTEMS, INC.
Reel/Frame 027049/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2011
From: HUNT, ANDREW
To: CORTINA SYSTEMS, INC.
Reel/Frame 027048/0897 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2011
From: FARHOODFAR, ARASH; KSCHISCHANG, FRANK R.; HUNT, ANDREW; SMITH, BENJAMIN P.; LODGE, JOHN; HER MAJESTY THE QUEEN IN RIGHT OF CANADA
To: CORTINA SYSTEMS, INC.
Reel/Frame 026120/0069 →