Forward error correction (FEC) code type conversion
Saved in:
| Title: | Forward error correction (FEC) code type conversion |
|---|---|
| Patent Number: | 12160,314 |
| Publication Date: | December 03, 2024 |
| Appl. No: | 17/525189 |
| Application Filed: | November 12, 2021 |
| Abstract: | A method includes: a first chip receives a first data stream from a second chip, where the first data stream is obtained through encoding by using a first forward error correction (FEC) code type; and the first chip re-encodes the first data stream at least once, to obtain a second data stream, where the second data stream is a concatenated FEC code stream obtained through encoding by using at least the first FEC code type and a second FEC code type. |
| Inventors: | Huawei Technologies Co., Ltd. (Shenzhen, CN) |
| Assignees: | HUAWEI TECHNOLOGIES CO., LTD. (Shenzhen, CN) |
| Claim: | 1. A method implemented by an optical module and comprising: receiving, from a chip outside of the optical module, a first data stream encoded with a first forward error correction (FEC) code; and encoding, without FEC decoding the first data stream, the first data stream with a second FEC code to obtain a second data stream by: distributing the first data stream to obtain n third data streams, wherein n is a natural number greater than 1, and wherein data of a codeword in the first data stream is distributed to different third data streams; and encoding each of the n third data streams with the second FEC code to obtain the second data stream, wherein the second data stream is a concatenated FEC code stream based on a concatenation of the first FEC code and the second FEC code. |
| Claim: | 2. The method of claim 1 , wherein the first FEC code is a Reed-Solomon (RS) code, a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming code, an extended Hamming code, a staircase code, a low-density parity check (LDPC) code, a turbo code, or a turbo product code (TPC). |
| Claim: | 3. The method of claim 1 , wherein the second FEC code is a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming code, an extended Hamming code, a Reed-Solomon (RS) code, a staircase code, a low-density parity check (LDPC) code, a turbo code, or a turbo product code (TPC). |
| Claim: | 4. The method of claim 1 , wherein distributing the first data stream comprises distributing k codewords from the first data stream to the third data streams, wherein k is a natural number greater than 1, and wherein re-encoding each of the third data streams comprises encoding data that belong to the k codewords into one codeword block in the second data stream, and wherein a total data volume comprised in the k codewords in the first data stream is equal to a payload data volume comprised in n second codewords in the second data stream. |
| Claim: | 5. The method of claim 1 , wherein data in the first data stream is distributed at an FEC symbol granularity, and wherein data in an FEC symbol in the first data stream is encoded into a codeword in the second data stream. |
| Claim: | 6. The method of claim 1 , wherein data in the first data stream are distributed at a bit granularity. |
| Claim: | 7. The method of claim 1 , wherein the optical module and the chip are located in a same data transmission device. |
| Claim: | 8. The method of claim 1 , further comprising further receiving the first data stream through an attachment unit interface (AUI). |
| Claim: | 9. The method of claim 1 , further comprising further encoding each of the n third data streams with the second FEC code using FEC encoders. |
| Claim: | 10. The method of claim 1 , wherein the FEC encoders comprise Bose-Chaudhuri-Hocquenghem (BCH) encoders. |
| Claim: | 11. An optical module comprising: a receiver configured to receive, from a chip, a first data stream encoded with a first forward error correction (FEC) code; and an encoder configured to encode, without FEC decoding the first data stream, the first data stream with a second FEC code to obtain a second data stream by: distributing the first data stream to obtain n third data streams, wherein n is a natural number greater than 1, and wherein data of a codeword in the first data stream is distributed to different third data streams; and encoding each of the n third data streams with the second FEC code to obtain the second data stream, wherein the second data stream is a concatenated FEC code stream based on a concatenation of the first FEC code and the second FEC code. |
| Claim: | 12. The optical module of claim 11 , wherein the first FEC code is a Reed-Solomon (RS) code, a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming code, an extended Hamming code, a staircase code, a low-density parity check (LDPC) code, a turbo code, or a turbo product code (TPC). |
| Claim: | 13. The optical module of claim 11 , wherein the second FEC code is a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming Code, an extended Hamming code, a Reed-Solomon (RS) code, a staircase code, a low-density parity check (LDPC) code, a turbo code, or a turbo product code (TPC). |
| Claim: | 14. The optical module of claim 11 , wherein the encoder is further configured to: further distribute the first data stream by distributing k codeword blocks from the first data stream to the third data streams wherein k is a natural number greater than 1; and further re-encode the third data streams by encoding data that belong to the k codeword blocks into one codeword block in the second data stream, and wherein a total data volume comprised in the k codeword blocks in the first data stream is equal to a payload data volume comprised in n second codeword blocks in the second data stream. |
| Claim: | 15. The optical module of claim 11 , wherein data in the first data stream is distributed at an FEC symbol granularity, and wherein data in an FEC symbol in the first data stream is encoded into a codework in the second data stream. |
| Claim: | 16. The optical module of claim 11 , wherein data in the first data stream are distributed at a bit granularity. |
| Claim: | 17. The optical module of claim 11 , wherein the chip comprises an Ethernet interface. |
| Claim: | 18. The optical module of claim 11 , wherein the receiver is further configured to further receive the first data stream through an attachment unit interface (AUI). |
| Claim: | 19. The optical module of claim 11 , wherein the encoder comprises FEC encoders, and wherein the encoder is further configured to further encode each of the n third data streams with the second FEC code using the FEC encoders. |
| Claim: | 20. The optical module of claim 11 , wherein the FEC encoders comprise Bose-Chaudhuri-Hocquenghem (BCH) encoders. |
| Claim: | 21. A method implemented by a first circuit and comprising: receiving, from a second circuit through an Ethernet interface, a first data stream that is based on encoding original data using a Reed-Solomon (RS) code; and encoding the first data stream with a first forward error correction (FEC) code to obtain a second data stream by filling data of the first data stream into a first FEC codeword corresponding to the first FEC code, wherein a reference quantity of consecutive RS-FEC symbols in the first FEC codeword are from different RS-FEC codewords, and wherein the first FEC code is a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming code, or an extended Hamming code. |
| Claim: | 22. The method of claim 21 , further comprising: further receiving the first data stream from a plurality of physical lanes; and further performing, when a first quantity of first FEC encoders in the first circuit is the same as a second quantity of the physical lanes, the first FEC encoding using the first FEC encoders. |
| Claim: | 23. The method of claim 21 , further comprising further receiving the first data stream from a plurality of physical lanes, wherein performing the first FEC encoding comprises scheduling, by a scheduler when a first quantity of first FEC encoders in the first circuit is not the same as a second quantity of the physical lanes, one of the first FEC encoders to perform the first FEC encoding. |
| Claim: | 24. The method of claim 21 , further comprising: further receiving the first data stream from a plurality of physical lanes; interleaving the data based on a first quantity of RS codewords to obtain symbol stream data, wherein the first quantity is equal to the reference quantity; outputting the symbol stream data to virtual lanes; bit-multiplexing the symbol stream data based on a second quantity of the physical lanes to obtain bit-multiplexed symbol stream data; transmitting the bit-multiplexed symbol stream data to the first circuit through the physical lanes; demultiplexing, before the filling, the first data stream to restore data on all virtual lanes; and aligning, before the filling, the data on all the virtual lanes to obtain aligned data, wherein the filling comprises filling the aligned data into the corresponding first FEC codeword. |
| Claim: | 25. The method of claim 21 , wherein the first data stream comprises a first quantity of first RS codewords, wherein each of the first RS codewords comprises a first target quantity of RS symbols, wherein the data is interleaved based on the first RS codewords, wherein each of the first FEC encoders corresponds to a second quantity of first FEC codewords and comprises a second target quantity of symbols, wherein the second target quantity is based on the first target quantity and the second quantity is based on the first quantity, wherein filling the data comprises: sequentially filling a first half of the data in each row of the first data stream into a third quantity of the first FEC codewords; and sequentially filling a second half of the data in each row of the first data stream into a fourth quantity of the first FEC codewords, wherein the fourth quantity is half of the third quantity. |
| Claim: | 26. The method of claim 25 , wherein the first target quantity is 544, the first quantity is 2, the second quantity is 32, and the second target quantity is 360, and wherein the method further comprises: further sequentially filling the first half into the first 16 first FEC codewords in 32 first FEC codewords; and further sequentially filling the second half into the last 16 first FEC codewords in the 32 first FEC codewords, wherein two consecutive RS symbols in each first FEC codeword are from different RS codewords. |
| Claim: | 27. The method of claim 21 , wherein the first data stream comprises a first quantity of RS codewords, wherein each of the RS codewords comprises a first target quantity of RS symbols, wherein the data is interleaved based on the RS codewords, wherein RS symbols at the beginning or the end of each column of data in the first data stream are permuted, wherein each of the first FEC encoders corresponds to a second quantity of first FEC codewords, wherein each of the first FEC codewords comprises a second target quantity of first FEC symbols, wherein the second target quantity is based on the first target quantity and the second quantity is based on the first quantity, wherein the filling comprises sequentially filling each column of data of the first data stream into the first FEC codewords, and wherein consecutive RS symbols in each first FEC codeword are from different RS codewords. |
| Claim: | 28. The method of claim 27 , wherein the first target quantity is 544, the first quantity is 2, the second quantity is 32, and the second target quantity is 360, and wherein two consecutive RS symbols in each first FEC codeword are from different RS codewords. |
| Claim: | 29. The method of claim 21 , wherein the first data stream comprises a first quantity of RS codewords, wherein each of the RS codewords comprises a first target quantity of RS symbols, wherein the data in the first data stream is interleaved based on the RS codewords, wherein each of the first FEC encoders corresponds to a second quantity of first FEC codewords, wherein each of the first FEC codewords comprises a second target quantity of first FEC symbols, wherein the second target quantity is based on the first target quantity and the second quantity is based on the first quantity, wherein filling the data comprises: de-interleaving the data to obtain original RS codewords; interleaving the original RS codewords based on a fourth quantity of RS codewords to obtain interleaved data, wherein the fourth quantity is greater than the first quantity; and sequentially filling each row of data of the interleaved data into the first FEC codewords, wherein a fourth quantity of consecutive RS symbols comprised in each first FEC codeword are from different RS codewords. |
| Claim: | 30. The method of claim 21 , wherein after performing the first FEC code encoding, the method further comprises transmitting the second data stream to a third circuit using a medium and through one or more physical lanes. |
| Claim: | 31. The method of claim 21 , wherein the Ethernet interface is an attachment unit interface (AUI). |
| Claim: | 32. The method of claim 21 , wherein the first circuit is an optical module. |
| Claim: | 33. The method of claim 21 , further comprising further encoding the first data stream with the second FEC code using FEC encoders of the first circuit. |
| Claim: | 34. The method of claim 33 , wherein the FEC encoders comprise Bose-Chaudhuri-Hocquenghem (BCH) encoders. |
| Claim: | 35. A method implemented by a third circuit and comprising: receiving, from a first circuit, through a plurality of physical lanes or through one physical lane in a time-division multiplexing mode, and using a medium, second data streams encoded with a Reed-Solomon (RS) code and a first forward error correction (FEC) code, wherein the first FEC code is a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming code, or an extended Hamming code; demultiplexing the second data streams to form demultiplexed second data streams when receiving the second data streams through the one physical lane and in the time-division multiplexing mode; decoding the demultiplexed second data streams using the first FEC code to obtain a first data stream; and decoding the first data stream using the RS code to obtain original data. |
| Claim: | 36. The method of claim 35 , wherein before decoding the demultiplexed second data streams, the method further comprises aligning the demultiplexed second data streams to obtain aligned second data streams, and wherein decoding the demultiplexed second data streams comprises decoding the aligned second data streams using the first FEC code. |
| Claim: | 37. A data transmission device comprising: a first circuit configured to: receive, from a second circuit through an Ethernet interface, a first data stream that is based on encoding original data using a Reed-Solomon (RS) code; and encode the first data stream with a first forward error correction (FEC) code to obtain a second data stream by filling data of the first data stream into a first FEC codeword corresponding to the first FEC code, wherein a reference quantity of consecutive RS-FEC symbols in the first FEC codeword are from different RS-FEC codewords, and wherein the first FEC code is a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming code, or an extended Hamming code. |
| Claim: | 38. The data transmission device of claim 37 , wherein the first circuit further comprises first FEC encoders, wherein the first circuit is further configured to: further receive the first data stream from a plurality of physical lanes; and further perform, when a first quantity of the first FEC encoders is the same as a second quantity of the physical lanes, the first FEC encoding. |
| Claim: | 39. The data transmission device of claim 37 , wherein the first circuit further comprises: first FEC encoders; and a scheduler, wherein the first circuit is further configured to further receive the first data stream from a plurality of physical lanes, and wherein the scheduler is configured to schedule, when a first quantity of the first FEC encoders is not the same as a second quantity of the physical lanes, one of the first FEC encoders to perform the first FEC code encoding. |
| Claim: | 40. The data transmission device of claim 37 , wherein the first circuit is further configured to: further receive the first data stream from a plurality of physical lanes; interleave the data based on a first quantity of RS codewords to obtain symbol stream data, wherein the first quantity is equal to the reference quantity; output the symbol stream data to virtual lanes; bit-multiplex the symbol stream data based on a second quantity of the physical lanes to obtain bit-multiplexed symbol stream data; transmit the bit-multiplexed symbol stream data to the data encoding apparatus through the physical lanes; demultiplex, before the filling, the first data stream to restore data on all virtual lanes; align, before the filling, the data on all the virtual lanes to obtain aligned data; and fill the data by filling the aligned data into the corresponding first FEC codeword. |
| Claim: | 41. The data transmission device of claim 37 , wherein the first data stream comprises a first quantity of first RS codewords, wherein each of the first RS codewords comprises a first target quantity of RS symbols, wherein the data is interleaved based on the first RS codewords, wherein each of the first FEC encoders corresponds to a second quantity of first FEC codewords and comprises a second target quantity of first FEC symbols, wherein the second target quantity is based on the first target quantity and the second quantity is based on the first quantity, and wherein the first circuit is further configured to fill the data by: sequentially filling a first half of the data in each row of the first data stream into a third quantity of the first FEC codewords; and sequentially filling a second half of the data in each row of the first data stream into a fourth quantity of the first FEC codewords, wherein the fourth quantity is half of the third quantity. |
| Claim: | 42. The data transmission device of claim 41 , wherein the first target quantity is 544, the first quantity is 2, the second quantity is 32, and the second target quantity is 360, and wherein the first circuit is further configured to: further sequentially fill the first half into the first 16 first FEC codewords in 32 first FEC codewords; and sequentially fill the second half into the last 16 first FEC codewords in the 32 first FEC codewords, wherein two consecutive RS symbols in each BCH codeword are from different RS codewords. |
| Claim: | 43. The data transmission device of claim 37 , wherein the first data stream comprises a first quantity of RS codewords, wherein each of the RS codewords comprises a first target quantity of RS symbols, wherein the data is interleaved based on the RS codewords, wherein RS symbols at the beginning or the end of each column of data in the first data stream are permuted, wherein each of the first FEC encoders corresponds to a second quantity of first FEC codewords, wherein each of the first FEC codewords comprises a second target quantity of first FEC symbols, wherein the second target quantity is based on the first target quantity and the second quantity is based on the first quantity, wherein the first circuit is further configured to fill the data by sequentially filling each column of data of the first data stream into the first FEC codewords, and wherein consecutive RS symbols in each first FEC codeword are from different RS codewords. |
| Claim: | 44. The data transmission device of claim 43 , wherein the first target quantity is 544, the first quantity is 2, the second quantity is 32, and the second target quantity is 360, and wherein two consecutive RS symbols in each first FEC codeword are from different RS codewords. |
| Claim: | 45. The data transmission device of claim 37 , wherein the first data stream comprises a first quantity of RS codewords, wherein each of the RS codewords comprises a first target quantity of RS symbols, wherein the data in the first data stream is interleaved based on the RS codewords, wherein each of the first FEC encoders corresponds to a second quantity of first FEC codewords, wherein each of the first FEC codewords comprises a second target quantity of first FEC symbols, wherein the second target quantity is based on the first target quantity and the second quantity is based on the first quantity, wherein the first circuit is further configured to fill the data by: de-interleaving the data to obtain original RS codewords; interleaving the original RS codewords based on a fourth quantity of RS codewords to obtain interleaved data, wherein the fourth quantity is greater than the first quantity; and sequentially filling each row of data of the interleaved data into the first FEC codewords, wherein a fourth quantity of consecutive RS symbols comprised in each first FEC codeword are from different RS codewords. |
| Claim: | 46. The data transmission device of claim 37 , wherein the first circuit is further configured to transmit the second data stream to a third circuit using a medium and through one or more physical lanes. |
| Claim: | 47. The data transmission device of claim 37 , wherein the Ethernet interface is an attachment unit interface (AUI). |
| Claim: | 48. The data transmission device of claim 37 , wherein the first circuit comprises FEC encoders, and wherein the first circuit is further configured to further encode the first data stream with the second FEC code using the FEC encoders. |
| Claim: | 49. The data transmission device of claim 48 , wherein the FEC encoders comprise Bose-Chaudhuri-Hocquenghem (BCH) encoders. |
| Claim: | 50. The data transmission device of claim 37 , wherein the first circuit is an optical module. |
| Claim: | 51. A data transmission device comprising: a third circuit configured to: receive, from a first circuit, through a plurality of physical lanes or through one physical lane in a time-division multiplexing mode, and using a medium, second data streams encoded with a Reed-Solomon (RS) code and a first forward error correction (FEC) code, wherein the first FEC code is a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming code, or extended Hamming code; demultiplex the second data streams to form demultiplexed second data streams when receiving the second data streams through the one physical lane and in the time-division multiplexing mode; decode the demultiplexed second data streams using the first FEC code to obtain a first data stream; and decode the first data stream using the RS code to obtain original data. |
| Claim: | 52. The data transmission device of claim 51 , wherein the third circuit is further configured to: align, before decoding the demultiplexed second data streams, the demultiplexed second data streams to obtain aligned second data streams; and further decode the demultiplexed second data streams by decoding the aligned second data streams using the first FEC code. |
| Claim: | 53. A data transmission device comprising: an optical module configured to: receive, from a second chip outside of the optical module, a first data stream encoded with a first forward error correction (FEC) code; and encode, without FEC decoding the first data stream, the first data stream with a second FEC code to obtain a second data stream by: distributing the first data stream to obtain n third data streams, wherein n is a natural number greater than 1, and wherein data of a codeword in the first data stream is distributed to different third data streams; and encoding each of the n third data streams with the second FEC code to obtain the second data stream, wherein the second data stream is a concatenated FEC code stream based on a concatenation of the first FEC code and the second FEC code. |
| Claim: | 54. The data transmission device of claim 53 , wherein the first FEC code is a Reed-Solomon (RS) code, a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming code, an extended Hamming code, a staircase code, a low-density parity check (LDPC) code, a turbo code, or a turbo product code (TPC). |
| Claim: | 55. The data transmission device of claim 53 , the second FEC code is a Bose-Chaudhuri-Hocquenghem (BCH) code, an extended BCH (eBCH) code, a Hamming code, an extended Hamming code, a Reed-Solomon (RS) code, a staircase code, a low-density parity check (LDPC) code, a turbo code, or a turbo product code (TPC). |
| Claim: | 56. The data transmission device of claim 53 , wherein data in the first data stream is distributed at an FEC symbol granularity or at a bit granularity. |
| Claim: | 57. The data transmission device of claim 53 , wherein the optical module comprises FEC encoders, and wherein the optical module is further configured to further encode each of the n third data streams with the second FEC code using the FEC encoders. |
| Claim: | 58. The data transmission device of claim 53 , wherein the FEC encoders comprise Bose-Chaudhuri-Hocquenghem (BCH) encoders. |
| Patent References Cited: | 5699367 December 1997 Haartsen 5841378 November 1998 Klayman et al. 7418644 August 2008 Smith 9325350 April 2016 Prodan 9450616 September 2016 Zhang et al. 10630430 April 2020 Kalhan et al. 10804999 October 2020 Kalhan 10848270 November 2020 Pan 10903937 January 2021 Smith et al. 20070104225 May 2007 Mizuochi et al. 20090122741 May 2009 Chang et al. 20090222709 September 2009 Lin et al. 20100146374 June 2010 Samuelson 20110173511 July 2011 Miyata et al. 20120020279 January 2012 Kim et al. 20120297266 November 2012 Xu et al. 20130216221 August 2013 Zhang et al. 20130311847 November 2013 Miyata 20140068385 March 2014 Zhang et al. 20140153625 June 2014 Vojcic et al. 20150162937 June 2015 Zhang et al. 20150180575 June 2015 Bruckman 20160080087 March 2016 Koike-Akino et al. 20160094311 March 2016 Su et al. 20160191277 June 2016 Li et al. 20170141912 May 2017 Cech 20190068322 February 2019 Smith et al. 20190238212 August 2019 Kalhan 20200021313 January 2020 Lu 20200177307 June 2020 Pan 1489308 April 2004 1538315 October 2004 101288255 October 2008 101667887 March 2010 102111233 June 2011 102130742 July 2011 102870361 January 2013 103797742 May 2014 104115435 October 2014 104426631 March 2015 104541452 April 2015 106688201 May 2017 107786305 March 2018 108667553 October 2018 1002272 September 2008 2346197 July 2011 3293908 March 2018 3595208 January 2020 2011146932 July 2011 2017509170 March 2017 2018133726 August 2018 2001095502 December 2001 2012164929 December 2012 2015178315 November 2015 2018177152 October 2018 2019026981 February 2019 |
| Other References: | IEEE Std 802.3-2018, “IEEE Standard for Ethernet,” IEEE Computer Society, Aug. 31, 2018, 5600 pages. cited by applicant IEEE Std 802.3bs, 2017, IEEE Standard for Ethernet, “Amendment 10: Media Access Control Parameters, Physical Layers, and Management Parameters for 200 Gb/s and 400 Gb/s Operation,” IEEE Computer Society, 372 pages. cited by applicant IEEE Std 802.3 , 2005, “Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications,” IEEE Standard for Information technology—Telecommunications and information exchange between systems, Local and metropolitan area networks, Specific requirements, 2595 pages. cited by applicant Liu, H., et al., 802.3cu, “Towards 400GBASE-FR4 Baseline Proposal,” IEEE 802.3 100G/lane optical PHYs Study Group, Mar. 2019, 10 pages. cited by applicant Stassar, P., IEEE P802.3ct, “Baseline considerations for 100G and 400G DWDM objectives,” Task Force, Vancouver, Mar. 2019, 18 pages. cited by applicant ITU-T G.975, Telecommunication Standardization Sector of ITU, Oct. 2000, “Series G: Transmission Systems and Media, Digital Systems and Networks Digital sections and digital line system, Optical fibre submarine cable systems, Forward error correction for submarine systems,” Oct. 2000, 21 pages. cited by applicant Mike A. Sluyski et al., “Implementation Agreement for 400ZR”, IA # OIF-400ZR 0.10-Draft IA for 400ZR, Nov. 2, 2018, 80 pages. cited by applicant Gary Nicholl et al., “Inverse RS-FEC Baseline Proposal,” IEEE P802.3ct Task Force, San Diego, Mar. 2019, 8 pages. cited by applicant |
| Primary Examiner: | Knapp, Justin R |
| Attorney, Agent or Firm: | Conley Rose, P.C. |
| Accession Number: | edspgr.12160314 |
| Database: | USPTO Patent Grants |
| Abstract: | A method includes: a first chip receives a first data stream from a second chip, where the first data stream is obtained through encoding by using a first forward error correction (FEC) code type; and the first chip re-encodes the first data stream at least once, to obtain a second data stream, where the second data stream is a concatenated FEC code stream obtained through encoding by using at least the first FEC code type and a second FEC code type. |
|---|