WO2020228126A1 - 数据传输、编码、解码方法、装置、设备及存储介质 - Google Patents

数据传输、编码、解码方法、装置、设备及存储介质 Download PDF

Info

Publication number
WO2020228126A1
WO2020228126A1 PCT/CN2019/096055 CN2019096055W WO2020228126A1 WO 2020228126 A1 WO2020228126 A1 WO 2020228126A1 CN 2019096055 W CN2019096055 W CN 2019096055W WO 2020228126 A1 WO2020228126 A1 WO 2020228126A1
Authority
WO
WIPO (PCT)
Prior art keywords
data stream
data
bch
code
chip
Prior art date
Application number
PCT/CN2019/096055
Other languages
English (en)
French (fr)
Inventor
何向
王心远
林军
王中风
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to BR112021022737A priority Critical patent/BR112021022737A2/pt
Priority to EP19928816.8A priority patent/EP3965325A4/en
Priority to CN202410807429.5A priority patent/CN118677571A/zh
Priority to CA3178909A priority patent/CA3178909A1/en
Priority to JP2021567829A priority patent/JP7424724B2/ja
Priority to CN201980096406.5A priority patent/CN113875177B/zh
Publication of WO2020228126A1 publication Critical patent/WO2020228126A1/zh
Priority to US17/525,189 priority patent/US20220077875A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Definitions

  • This application relates to the field of communication technology, in particular to data transmission, encoding, and decoding methods, devices, equipment and storage media.
  • Forward error correction (English: forward error correction, abbreviated as: FEC) code can provide error correction protection for data in transmission, thereby improving the data transmission rate and transmission distance in the channel.
  • FEC forward error correction
  • the sending device can use a specific FEC code pattern to encode the original data and then send the encoded data to the receiving device, and the receiving device can use the same FEC code pattern for the received data. The data is decoded to obtain the original data.
  • the FEC code pattern may need to be converted during data transmission.
  • the FEC code pattern in order to adapt to high-rate and/or long-distance data transmission, when the original FEC code pattern adopted by the original data transmission interface cannot meet the requirements of data transmission, the FEC code pattern needs to be converted to make the original FEC code pattern It is replaced by a higher gain FEC pattern.
  • the conversion process of the FEC code pattern tends to increase the time delay of the data transmission process and the power consumption of the data transmission equipment, thereby affecting the data transmission efficiency.
  • Ethernet Error Network
  • the embodiments of the present application provide a data transmission, encoding, and decoding method, device, equipment, and storage medium to solve problems in related technologies.
  • the technical solutions are as follows:
  • an embodiment of the present application provides a data transmission method, including: a first chip receives a first data stream sent by a second chip; the first data stream is encoded using a first forward error correction FEC code pattern The data stream; the first chip encodes the first data stream at least once to obtain a second data stream; wherein, the second data stream uses at least the first FEC code pattern and the second FEC Concatenated FEC code stream of code type encoding; the first chip sends the second data stream to the third chip. It can be seen that for the first data stream encoded by the first FEC code pattern sent by the second chip to the first chip, the first chip does not need to use the first FEC code pattern to decode the first data stream and then re-encode the original data.
  • a higher gain FEC code pattern but at least the second FEC code pattern can be used on the basis of the first data stream to perform at least one encoding, so that at least the first FEC code pattern and the second FEC code pattern can be obtained.
  • the second data stream is cascaded to achieve higher gain. Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device during the conversion of the FEC code type are reduced, and the data transmission efficiency is improved.
  • the first FEC code type is specifically: RS code, BCH code, Staircase code, LDPC code, Turbo code, or TPC. It can be seen that the first chip can support encoding to obtain concatenated FEC codes on the basis of multiple different first FEC code types.
  • the second FEC code type is specifically: BCH code, RS code, Staircase code, LDPC code, Turbo code or TPC. It can be seen that the first chip can support a concatenated FEC code obtained by encoding on the basis of the first FEC code type according to multiple different second FEC code types.
  • the first chip encodes the first data stream at least once to form a second data stream, including : The first chip distributes the first data stream into n third data streams; wherein the data of the same codeword block in the first data stream is distributed to different third data streams ; The first chip separately encodes the plurality of third data streams at least once to form the second data stream. It can be seen that the data in the same codeword block in the first data stream can be encoded into multiple different codeword blocks in the second data stream, so that the concatenated FEC code has stronger error correction capability.
  • the k codeword blocks identified from the first data stream are distributed to n third data streams
  • each piece of data belonging to the k codeword blocks in the third data stream is encoded into a codeword block in the second data stream; wherein, k codewords in the first data stream
  • the total amount of data contained in the block is equal to the amount of payload data contained in the n codeword blocks in the second data stream.
  • the payload in the n second codeword blocks is all the data in the k codeword blocks
  • the n second codeword blocks can directly follow the second FEC code pattern and the first FEC code
  • the type is decoded into original data, which facilitates the decoding operation of the first FEC code type and the second FEC code type on the same chip.
  • the data in the first data stream is distributed according to FEC symbol blocks, and the same in the first data stream
  • the data of the FEC symbol block is encoded in the same codeword block in the second data stream. It can be seen that the first chip can distribute the first data stream with the granularity of the symbol block.
  • the data in the first data stream is distributed according to a bit stream, and the data in the third data stream is distributed according to The bitstream is encoded. It can be seen that the first chip can distribute and process the first data stream with bit granularity.
  • the first chip and the second chip are located in a first data transmission device, and the third chip is located in In the second data transmission device, the first chip is an electrical chip, the second chip is a device using an Ethernet interface, and the third chip is an electrical chip.
  • the first data transmission device can encode the first data stream of the first FEC code pattern output by the device using the Ethernet interface into at least the first FEC code pattern and the second FEC code pattern cascaded to form the first data stream through the electronic chip.
  • the two data streams are then sent to the second data transmission device, thereby realizing data transmission between the first data transmission device and the second data transmission device through concatenated FEC codes.
  • the first data stream passes through interference between the second chip and the first chip. Physical channel for transmission. It can be seen that for the first data stream that has error codes during transmission on the physical path with interference, the first chip can directly encode the first data stream at least once without decoding and error correction of the first data stream. Form a cascaded second data stream.
  • an embodiment of the present application provides a data transmission method, including: a first chip receives a second data stream sent by a second chip; the second data stream adopts at least a first FEC code pattern and a second FEC Concatenated FEC code stream of code type encoding; said first chip decodes said second data stream at least once to form a first data stream; said first data stream is coded using said first FEC code type Data stream; the first chip sends the first data stream to the third chip. It can be seen that, for the second data stream that is at least cascaded by the first FEC code pattern and the second FEC code pattern sent by the second chip to the first chip, the first chip may use other codes other than the first FEC code pattern.
  • the FEC code type decodes the second data stream to form a first data stream encoded with the first FEC code type and sends it to the third chip, without having to decode the second data stream into original data and then re-encode it into the first FEC
  • the data stream of the pattern is sent to the third chip. Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device during the conversion of the FEC code type are reduced, and the data transmission efficiency is improved.
  • the first FEC code type is specifically: RS code, BCH code, Staircase code, LDPC code, Turbo Code or TPC.
  • the second FEC code type is specifically: BCH code, RS code, Staircase code, LDPC code, Turbo Code or TPC. It can be seen that the first chip can support the decoding of multiple different second FEC code patterns.
  • the first data stream is used to be decoded by the third chip according to the first FEC code pattern . It can be seen that the first chip can support cascaded FEC code decoding and output multiple different first FEC code types.
  • the second chip is located in the first data transmission device, and the first chip and the third The chip is located in the second data transmission device, the first chip is an electrical chip, the second chip is a chip, and the third chip is a device using an Ethernet interface.
  • the first data transmission device can use the first data transmission device through the electronic chip.
  • Two FEC code pattern The second data stream is decoded into the first data stream of the first FEC code pattern and then sent to the device using the Ethernet interface, so as to realize the cascaded FEC between the first data transmission device and the second data transmission device Code for data transmission.
  • the first data stream passes through a physical medium between the first chip and the third chip.
  • the first chip can decode the second data stream into a second data stream encoded with the first FEC code type by using other FEC code types except the first FEC code type without decoding the second data stream into the original data.
  • a data stream so that the first data stream is transmitted to the third chip through a physical medium with interference, and the third chip decodes the first data stream to obtain the original data.
  • the physical medium may be, for example, an optical fiber, an optical waveguide, a circuit, air, and the like.
  • an embodiment of the present application provides a data transmission device applied to a first chip, including a receiver, an encoder, and a transmitter.
  • the receiver is used to receive the first data stream sent by the second chip;
  • the first data stream is the data stream encoded with the first forward error correction FEC code type;
  • the encoder is used to The data stream is encoded again at least once to obtain a second data stream;
  • the second data stream is a concatenated FEC code stream that uses at least the first FEC code type and the second FEC code type code;
  • the transmitter uses Yu sends the second data stream to the third chip.
  • the first FEC code type is specifically: RS code, BCH code, Staircase code, LDPC code, Turbo code or TPC.
  • the second FEC code type is specifically: BCH code, RS code, Staircase code, LDPC code, Turbo code or TPC.
  • the encoder is specifically configured to: distribute the first data stream into n third data streams; Wherein, the data of the same codeword block in the first data stream is distributed to the different third data streams; the multiple third data streams are respectively encoded at least once to form the second data flow.
  • the k codeword blocks identified from the first data stream are distributed to n third data streams Wherein, each piece of data belonging to the k codeword blocks in the third data stream is encoded into one codeword block in the second data stream;
  • the total amount of data included in the k codeword blocks in the first data stream is equal to the amount of payload data included in the n codeword blocks in the second data stream.
  • the data in the first data stream is distributed according to FEC symbol blocks, and the same in the first data stream
  • the data of the FEC symbol block is encoded in the same codeword block in the second data stream.
  • the data in the first data stream is distributed according to a bit stream
  • the data in the third data stream is distributed according to The bitstream is encoded.
  • the first chip and the second chip are located in a first data transmission device, and the third chip is located in In the second data transmission device, the first chip is an electrical chip, the second chip is a device using an Ethernet interface, and the third chip is an electrical chip.
  • the first data stream passes through a physical medium between the second chip and the first chip To transfer. It can be seen that, for the first data stream that has an error during transmission in the physical medium with interference, the first chip can directly encode the first data stream at least one more time without decoding and correcting the first data stream. Form a cascaded second data stream.
  • the data transmission device provided in the third aspect corresponds to the data transmission method provided in the first aspect. Therefore, the technical effects of the various possible implementations of the data transmission device provided in the second aspect can be referred to the aforementioned first aspect. An introduction to the data transmission method provided by the aspect.
  • an embodiment of the present application provides a data transmission device applied to a first chip, including a receiver, a decoder, and a transmitter.
  • the receiver is used to receive the second data stream sent by the second chip;
  • the second data stream is a concatenated FEC code stream encoded with at least the first FEC code type and the second FEC code type;
  • the decoder is used The second data stream is decoded at least once to form a first data stream;
  • the first data stream is a data stream encoded with the first FEC code pattern;
  • a transmitter is used to send all data streams to a third chip The first data stream.
  • the first FEC code type is specifically: RS code, BCH code, Staircase code, LDPC code, Turbo Code or TPC.
  • the second FEC code type is specifically: BCH code, RS code, Staircase code, LDPC code, Turbo Code or TPC.
  • the first data stream is used to be decoded by the third chip according to the first FEC code pattern .
  • the second chip is located in the first data transmission device, and the first chip and the third The chip is located in the second data transmission device, the first chip is an electrical chip, the second chip is a chip, and the third chip is a device using an Ethernet interface.
  • the first data stream passes through a physical medium between the first chip and the third chip To transfer. It can be seen that the first chip can decode the second data stream into a second data stream encoded with the first FEC code type by using other FEC code types except the first FEC code type without decoding the second data stream into the original data. A data stream, so that the first data stream is transmitted to the third chip through a physical medium with interference, and the third chip decodes the first data stream to obtain the original data.
  • the data transmission device provided in the fourth aspect corresponds to the data transmission method provided in the second aspect. Therefore, the technical effects of the various possible implementations of the data transmission device provided in the fourth aspect may refer to the aforementioned second aspect. An introduction to the data transmission method provided by the aspect.
  • an embodiment of the present application also provides a communication method, the communication method comprising: the data transmission method described in any one of the implementations of the first aspect, and the data transmission method described in any of the implementations of the second aspect. Data transfer method.
  • an embodiment of the present application also provides a communication system, which includes: the data transmission device described in any one of the foregoing third aspect implementation manners, and the aforementioned data transmission device in any one implementation manner of the foregoing fourth aspect Data transmission device.
  • an embodiment of the present application also provides a network device, which includes the data transmission device described in any one of the implementation manners of the third aspect.
  • an embodiment of the present application also provides a network device, which includes the data transmission apparatus described in any one of the foregoing fourth aspects.
  • the embodiments of the present application also provide a computer program product, which when running on a computer, causes the computer to execute the data transmission method described in any one of the foregoing first aspects or any of the foregoing second aspects.
  • the embodiments of the present application also provide a computer-readable storage medium that stores instructions in the computer-readable storage medium, which when run on a computer or processor, causes the computer or processor to execute the aforementioned first
  • a data encoding method includes: a first circuit receives a first data stream transmitted by a second circuit through an Ethernet interface, and the first data stream uses an RS code to perform processing on the original data. Obtained by encoding; the first circuit performs BCH encoding on the first data stream to obtain a second data stream. Two-level coding is realized through RS and BCH, which makes the gain higher, thereby increasing the distance and speed at which data can be transmitted.
  • the first circuit receiving the first data stream transmitted by the second circuit through the Ethernet interface includes: A physical path receives the first data stream transmitted by the second circuit through the Ethernet interface; the first circuit includes one or more BCH encoders, and the first circuit performs BCH encoding on the first data stream,
  • Obtaining the second data stream includes: when the number of BCH encoders included in the first circuit is the same as the number of the physical channels, one BCH encoder is connected to one physical channel, and the first circuit passes through the one physical channel. Or multiple BCH encoders perform BCH encoding on the first data stream transmitted by the corresponding physical channel to obtain the second data stream.
  • the number of BCH encoders is the same as the number of physical channels, the two can correspond one-to-one, so that multiple BCH encoders can encode in parallel and increase the encoding speed.
  • the first circuit receiving the first data stream transmitted by the second circuit through the Ethernet interface includes: A physical path receives the first data stream transmitted by the second circuit through the Ethernet interface; the first circuit includes one or more BCH encoders, the first circuit further includes a scheduler, and the first circuit pair Performing BCH encoding on the first data stream to obtain a second data stream includes: when the number of BCH encoders included in the first circuit is inconsistent with the number of physical channels, the first circuit passes the scheduling The processor schedules a corresponding BCH encoder to perform BCH encoding on the first data stream to obtain a second data stream.
  • the BCH encoders can be scheduled through the scheduler to connect the BCH encoders with the corresponding physical channels. , So as to realize BCH coding on the first data stream transmitted by the physical channel.
  • the performing BCH encoding on the first data stream includes: The data in the stream is filled into the corresponding BCH codewords, and the consecutive reference number symbols included in each BCH codeword come from different RS codewords.
  • the data in the first data stream is interleaved according to the reference number of RS codewords. After the symbol stream data, it is output to multiple virtual channels, and then bit multiplexed according to the number of physical channels, and transmitted from the multiple physical channels to the first circuit; because the first data stream on the multiple physical channels reaches the first circuit The circuit time may be different.
  • the method further includes: the first circuit demultiplexes the first data stream and restores Extracting the data of each virtual channel; aligning the data of each virtual channel to obtain aligned data; said filling the data in the first data stream into the corresponding BCH codeword includes: Fill the aligned data into the corresponding BCH codeword.
  • the first data stream includes a first number of RS codewords, each The RS codeword includes a first target number of symbols, the data in the first data stream is interleaved according to the first number of RS codewords, each BCH encoder corresponds to a second number of BCH codewords, and each BCH The codeword includes a second target number of symbols, the second target number is determined according to the first target number, the second number is determined according to the first number; the data in the first data stream Filling into the corresponding BCH codeword includes: filling the first half of the data of each row of the first data stream into the first third number of BCH codewords of the second number of BCH codewords in sequence , Filling the second half of the data of each row of the first data stream into the last third number of BCH codewords of the second number of BCH codewords in sequence, where the third number is the first number of BCH code
  • the first target number is 544, the first number is 2, and the second number is 32.
  • the second target number is 360;
  • the filling of the data in the first data stream into the corresponding BCH codeword includes: filling the first half of the data of each row of the first data stream in sequence Enter the first 16 BCH codewords of the 32 BCH codewords, and fill in the second half of the data of each row of the first data stream in the last 16 BCH codewords of the 32 BCH codewords in sequence , The two consecutive symbols included in each BCH codeword come from different RS codewords.
  • the first data stream includes a first number of RS codewords, each The RS codeword includes a first target number of symbols, the data in the first data stream is interleaved according to the first number of RS codewords, and the symbols at the beginning or end of each column of data in the first data stream are
  • each BCH encoder corresponds to a second number of BCH codewords, each BCH codeword includes a second target number of symbols, the second target number is determined according to the first target number, and the second The quantity is determined according to the first quantity;
  • the filling of the data in the first data stream into the corresponding BCH codeword includes: filling each column of data of the first data stream into the In the second number of BCH codewords, the consecutive first number of symbols included in each BCH codeword are from different RS codewords.
  • the first target quantity is 544, the first quantity is 2, and the second quantity is 32.
  • the second target number is 360;
  • the filling of the data in the first data stream into the corresponding BCH codeword includes: filling each column of data in the first data stream in sequence Among the 32 BCH codewords, two consecutive symbols included in each BCH codeword come from different RS codewords.
  • the first data stream includes a first number of RS codewords, each The RS codeword includes a first target number of symbols, the data in the first data stream is interleaved according to the first number of RS codewords, each BCH encoder corresponds to a second number of BCH codewords, and each BCH The codeword includes a second target number of symbols, the second target number is determined according to the first target number, the second number is determined according to the first number; the data in the first data stream Filling in the corresponding BCH codeword includes: deinterleaving the data in the first data stream to obtain the original RS codeword; performing the original RS codeword according to the fourth number of RS codewords Interleaving to obtain interleaved data, the fourth quantity is greater than the first quantity; each row of data of the interleaved data is sequentially filled into the second quantity of BCH codewords, each The fourth
  • the first target number can be determined based on the RS code pattern. For example, for RS (544, 514), the first target number is 544, then each One RS code word includes 544 symbols.
  • the second target number can be determined based on the first target number. For RS (544,514), BCH (360,340) can be used, and the second target number is 360. For another example, for RS (528, 514), the first target number is 528, and each RS codeword includes 528 symbols.
  • the method provided in the embodiment of the present application is to use RS and BCH two-level coding, and the embodiment of the present application does not limit which RS code type and which BCH code type is used.
  • the first target number of symbols and the second target number of symbols may be 10-bit (bit) symbols, 1-bit symbols or symbols of other lengths, and the length of the symbols is not limited in the embodiment of the present application.
  • the first circuit performs BCH encoding on the first data stream to obtain a second data stream
  • the method further includes: transmitting the second data stream to the third circuit using multiple physical channels through the medium, or transmitting the second data stream to the third circuit in a time division multiplexing manner through the medium.
  • the third circuit transmitting the second data stream to the third circuit using multiple physical channels through the medium, or transmitting the second data stream to the third circuit in a time division multiplexing manner through the medium.
  • a data decoding method includes: a third circuit receives a second data stream transmitted by the first circuit, the second data stream is obtained by encoding using RS code and BCH code; Use the BCH code to decode the second data stream to obtain a first data stream; use the RS code to decode the first data stream to obtain original data.
  • the first circuit uses RS and BCH two-stage encoding, the gain is increased, so that the data can be transmitted farther and faster.
  • the third circuit decodes according to the corresponding RS code and BCH code, so that the data can be successfully decoded.
  • the third circuit receiving the second data stream transmitted by the first circuit includes: receiving the first circuit using multiple data streams through a medium The second data stream transmitted by a physical channel, or the second data stream transmitted by the first circuit in a time division multiplexing manner by using one physical channel is received through the medium.
  • the first circuit can flexibly use one or more physical channels to transmit the second data stream, and the third circuit can receive the second data stream in a manner in which the first circuit sends the second data stream.
  • the use of the BCH code to decode the second data stream to obtain the first data Before streaming the method further includes: when receiving the second data stream transmitted by the first circuit in a time-division multiplexing manner by using one physical path through the medium, demultiplexing the second data stream; Said using the BCH code to decode the second data stream to obtain the first data stream includes: using the BCH code to decode the demultiplexed data stream to obtain the first data stream.
  • the method before the BCH code is used to decode the demultiplexed second data stream, the method further includes : Aligning the second data stream after demultiplexing; said using the BCH code to decode the second data stream after demultiplexing to obtain the first data stream, including: using the BCH code to align the second data stream The stream is decoded to obtain the first data stream.
  • the demultiplexed second data stream is aligned first, and then the BCH code is used to decode the aligned second data stream to ensure the accuracy of BCH decoding.
  • a data encoding device in a thirteenth aspect, includes: a receiving module configured to receive a first data stream transmitted by a second circuit through an Ethernet interface, and the first data stream is a RS code The data is obtained by encoding; an encoding module is used to perform BCH encoding on the first data stream to obtain a second data stream.
  • the receiving module is configured to receive the first data stream transmitted by the second circuit through the Ethernet interface from multiple physical channels;
  • the device includes one or more BCH encoders, and the encoding module is used for when the number of included BCH encoders is the same as the number of the physical channels, one BCH encoder is connected to one physical channel, and the One or more BCH encoders perform BCH encoding on the first data stream transmitted by the corresponding physical channel to obtain the second data stream.
  • the receiving module is configured to receive the first data stream transmitted by the second circuit through the Ethernet interface from multiple physical channels;
  • the device includes one or more BCH encoders, and also includes a scheduler.
  • the encoding module is configured to pass the BCH encoder when the number of BCH encoders included in the first circuit is inconsistent with the number of physical channels.
  • the scheduler schedules a corresponding BCH encoder to perform BCH encoding on the first data stream to obtain a second data stream.
  • the encoding module is configured to fill the data in the first data stream into the corresponding In the BCH codewords, the consecutive reference number symbols included in each BCH codeword are from different RS codewords.
  • the data in the first data stream is interleaved according to the reference number of RS codewords.
  • bit multiplexing is performed according to the number of physical channels, and the multiple physical channels are transmitted to the device;
  • the device further includes: a demultiplexing module for The first data stream is demultiplexed to recover the data of each virtual channel; the alignment module is used to align the data of each virtual channel to obtain the aligned data; the encoding module is used to The aligned data is filled into the corresponding BCH codeword.
  • the first data stream includes a first number of RS codewords, each The RS codeword includes a first target number of symbols, the data in the first data stream is interleaved according to the first number of RS codewords, each BCH encoder corresponds to a second number of BCH codewords, and each BCH The codeword includes a second target number of symbols, the second target number is determined according to the first target number, and the second number is determined according to the first number; the encoding module is configured to combine the first The first half of the data of each row of the data stream is sequentially filled into the first third number of BCH codewords of the second number of BCH codewords in sequence, and the second half of the data of each row of the first data stream is sequentially filled in Fill in the second number of BCH codewords in the last third number of BCH codewords in sequence, where the third number is half of the second number, and the consecutive
  • the first target quantity is 544, the first quantity is 2, and the second quantity is 32, the second target number is 360; the encoding module is used to fill the first half of the data of each row of the first data stream into the first 16 BCH codewords of the 32 BCH codewords in sequence, and The second half of the data of each row of the first data stream is sequentially filled into the last 16 BCH codewords of the 32 BCH codewords, and the consecutive 2 symbols included in each BCH codeword come from different RS code word.
  • the first data stream includes a first number of RS codewords, and each Each RS codeword includes a first target number of symbols, the data in the first data stream is interleaved according to the first number of RS codewords, and the symbols at the beginning or end of each column of data in the first data stream The order is reversed.
  • Each BCH encoder corresponds to a second number of BCH codewords.
  • Each BCH codeword includes a second target number of symbols. The second target number is determined according to the first target number.
  • the second number is determined according to the first number; the encoding module is configured to fill each column of data of the first data stream into the second number of BCH codewords in sequence, and each BCH codeword The first number of consecutive symbols included in are from different RS codewords.
  • the first target quantity is 544, the first quantity is 2, and the second quantity is 32.
  • the second target number is 360; the encoding module is used to fill each column of data of the first data stream into 32 BCH codewords in sequence, and each BCH codeword includes consecutive 2 The symbols are from different RS code words.
  • the first data stream includes a first number of RS codewords, and each Each RS codeword includes a first target number of symbols, the data in the first data stream is interleaved according to the first number of RS codewords, and each BCH encoder corresponds to a second number of BCH codewords, each The BCH codeword includes a second target number of symbols, the second target number is determined according to the first target number, and the second number is determined according to the first number; the encoding module is configured to convert the first number The data in a data stream is deinterleaved to obtain the original RS codeword; the original RS codeword is interleaved according to the fourth number of RS codewords to obtain interleaved data, the fourth number is greater than the The first number; each row of data of the interleaved data is sequentially filled into the second number of BCH codewords in sequence, and the fourth
  • the device further includes: a transmission module configured to transfer the second data through a medium The stream is transmitted to the third circuit by using multiple physical channels, or the second data stream is transmitted to the third circuit by using one physical channel in a time division multiplexing manner through the medium.
  • a data decoding device configured to receive a second data stream transmitted by a first circuit, and the second data stream is encoded by using RS codes and BCH codes; A decoding module is used to decode the second data stream using the BCH code to obtain a first data stream; a second decoding module is used to decode the first data stream using the RS code to obtain Raw data.
  • the receiving module is configured to receive the second data stream transmitted by the first circuit using multiple physical channels through a medium, Alternatively, the second data stream transmitted by the first circuit in a time division multiplexing manner using one physical channel is received through the medium.
  • the device further includes: a demultiplexing module, which is configured to receive the data through the medium.
  • a demultiplexing module which is configured to receive the data through the medium.
  • the first circuit uses the second data stream transmitted by one physical path in a time division multiplexing manner, demultiplexes the second data stream; the first decoding module is configured to use the BCH code The demultiplexed data stream is decoded to obtain the first data stream.
  • the device further includes: an alignment module for demultiplexing the second data The stream is aligned; the first decoding module is configured to use the BCH code to decode the aligned second data stream to obtain the first data stream.
  • a data transmission device in a fifteenth aspect, includes a memory and a processor; the memory stores at least one instruction, and the at least one instruction is loaded and executed by the processor to implement the present application.
  • a communication device which includes a transceiver, a memory, and a processor.
  • the transceiver, the memory, and the processor communicate with each other through an internal connection path
  • the memory is used to store instructions
  • the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals
  • the processor executes the instructions stored in the memory, the processor is caused to execute the method in any possible implementation manner of the eleventh aspect or the twelfth aspect.
  • processors there are one or more processors and one or more memories.
  • the memory may be integrated with the processor, or the memory and the processor may be provided separately.
  • the memory can be a non-transitory (non-transitory) memory, such as a read only memory (ROM), which can be integrated with the processor on the same chip, or can be set in different On the chip, the embodiment of the present application does not limit the type of memory and the setting mode of the memory and the processor.
  • ROM read only memory
  • a computer program includes: computer program code, when the computer program code is run by a computer, the computer executes the eleventh aspect or The method in any possible implementation of the twelfth aspect.
  • a readable storage medium stores a program or instruction.
  • the program or instruction runs on a computer, any one of the above-mentioned eleventh or twelfth aspects is possible The method in the embodiment is executed.
  • a chip including a processor, configured to call and execute instructions stored in the memory from a memory, so that a communication device installed with the chip executes the eleventh or tenth aspect above.
  • the method in any possible implementation of the two aspects.
  • another chip including: an input interface, an output interface, a processor, and a memory, the input interface, output interface, the processor, and the memory are connected by an internal connection path, the The processor is configured to execute the code in the memory, and when the code is executed, the processor is configured to execute the method in any possible implementation manner of the eleventh aspect or the twelfth aspect.
  • FIG. 1 is a schematic diagram of an example of an application scenario in an embodiment of the application
  • FIG. 2 is a schematic flowchart of a data transmission method in an embodiment of this application.
  • FIG. 3 is a schematic diagram of an example of a data distribution method in an embodiment of the application.
  • FIG. 4 is a schematic diagram of an example of a data distribution method in an embodiment of the application.
  • FIG. 5 is a schematic diagram of an example of a data distribution method in an embodiment of the application.
  • FIG. 6 is a schematic diagram of an example of a data distribution method in an embodiment of the application.
  • FIG. 7 is a schematic diagram of a network structure in an exemplary scenario in an embodiment of the application.
  • FIG. 8 is a schematic flowchart of a data transmission method in an embodiment of this application.
  • FIG. 9 is a schematic flowchart of a data transmission method in an embodiment of this application.
  • FIG. 10 is a schematic flowchart of an encoding method in an embodiment of this application.
  • FIG. 11 is a schematic flowchart of a data transmission method in an embodiment of this application.
  • FIG. 12 is a schematic flowchart of a data transmission method in an embodiment of this application.
  • FIG. 13 is a schematic structural diagram of a data transmission method in an embodiment of this application.
  • FIG. 14 is a schematic structural diagram of a data transmission method in an embodiment of this application.
  • 15 is a schematic diagram of an implementation environment provided by an embodiment of this application.
  • FIG. 16 is a schematic diagram of an implementation environment provided by an embodiment of this application.
  • FIG. 17 is a flowchart of a data encoding method provided by an embodiment of the application.
  • FIG. 19 is a schematic diagram of a data transmission process provided by an embodiment of this application.
  • FIG. 20 is a schematic diagram of a BCH encoding process provided by an embodiment of this application.
  • FIG. 21 is a schematic diagram of a BCH encoding process provided by an embodiment of this application.
  • FIG. 22 is a schematic diagram of a BCH encoding process provided by an embodiment of this application.
  • FIG. 23 is a schematic diagram of a BCH encoding process provided by an embodiment of this application.
  • FIG. 24 is a flowchart of a data decoding method provided by an embodiment of this application.
  • 25 is a schematic diagram of a data transmission process provided by an embodiment of the application.
  • FIG. 26 is a schematic diagram of experimental results of using 4 codewords for interleaving according to an embodiment of the application.
  • FIG. 27 is a schematic structural diagram of a data encoding device provided by an embodiment of this application.
  • FIG. 28 is a schematic structural diagram of a data encoding device provided by an embodiment of this application.
  • FIG. 29 is a schematic structural diagram of a data encoding device provided by an embodiment of the application.
  • FIG. 30 is a schematic structural diagram of a data decoding device provided by an embodiment of this application.
  • FIG. 31 is a schematic structural diagram of a data decoding device provided by an embodiment of this application.
  • FIG. 32 is a schematic structural diagram of a data decoding device provided by an embodiment of this application.
  • FIG. 33 is a schematic structural diagram of a data transmission device provided by an embodiment of the application.
  • FIG. 34 is a schematic structural diagram of a data transmission device provided by an embodiment of the application.
  • the sending device can use a specific FEC code pattern to encode the original data and then send the encoded FEC code to the receiving device, and the receiving device can receive the data according to the same FEC code pattern.
  • the FEC code is decoded to obtain the original data. In this way, even if the transmission channel causes errors in certain positions in the FEC code, the receiving device can obtain the original data before the error by performing reverse calculations based on the check bits in the FEC code during decoding, thereby realizing the error correction function.
  • the FEC code pattern may need to be converted during data transmission.
  • the concatenated FEC code adopts one or more basic FEC code types to construct the code type to form a multi-level FEC code, which can provide stronger error correction protection for the transmission data. Therefore, cascaded FEC codes can be used to transmit data between devices to cope with the noise introduced during high-speed or long-distance data transmission.
  • the original FEC code pattern used by the original data transmission interface of the device is the code type specified by the standard. For example, the original Ethernet interface of many devices only supports Reed-Solomon (English: Reed-Solomon, referred to as RS) code.
  • RS Reed-Solomon
  • the device When the device is used in data transmission scenarios with a higher rate or longer distance than the standard stipulated, the FEC code pattern stipulated by the standard often cannot meet the requirements. Therefore, the device needs to convert the data to be transmitted from the original FEC code pattern to a higher gain FEC code.
  • the data encoded using the original FEC code type needs to be decoded into original data, and then the original data is coded using the new FEC code type.
  • such a conversion process will not only bring additional power consumption to the data transmission device, but also increase the time delay of the data transmission process.
  • the cascaded FEC code when data is transmitted between two chips, is a FEC code pattern that can provide high gain for high-rate and/or long-distance data transmission and is
  • the concatenated FEC code is formed by cascading multi-level FEC code types.
  • the chip When receiving the first data stream encoded with the first FEC code type, the chip does not need to decode the first data stream first FEC code type. Then re-encode the original data into concatenated FEC codes.
  • at least the second FEC code pattern can be used for at least one encoding, so that at least the first FEC code pattern and the second FEC code pattern can be obtained.
  • the second data stream formed by cascading FEC patterns to obtain higher gain. Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device required for the FEC code type conversion are reduced, and the data transmission efficiency is improved.
  • the embodiments of this application can be applied to the scenario shown in FIG. 1.
  • the data transmission device 101 is provided with a chip 103 and a chip 105
  • the data transmission device 102 is provided with a chip 107 and a chip 109.
  • the chip 103 can use the first FEC code pattern
  • the original data is encoded to form a first data stream, and the first data stream is sent to the chip 105 through the channel 104.
  • the chip 105 After the chip 105 receives the first data stream, it can use at least the second FEC code pattern to encode the first data stream at least once to obtain a second cascade of at least the first FEC code pattern and the second FEC code pattern. Data stream, and send the second data stream to the chip 107 through the channel 106. After the chip 107 receives the second data stream, it can decode the second data stream at least once using the second FEC code type to obtain the first data stream coded using the first FEC code type, and transmit the first data stream through the channel 108. The data stream is sent to the chip 109. After the chip 109 receives the first data stream, it can use the first FEC code pattern to decode the first data stream to obtain the original data.
  • the first FEC code type may be an FEC code type such as RS code supported by the Ethernet interface
  • the second FEC code type may be Bose-Chaudhuri-Hocquenghem (English: Bose-Chaudhuri-Hocquenghem, abbreviated as: BCH) code and other code types.
  • BCH Bose-Chaudhuri-Hocquenghem
  • the channel 104, the channel 106, and the channel 108 may all be physical channels with interference, and bit errors will occur when the data stream is transmitted in the channel 104, the channel 106, and the channel 108.
  • the first data stream sent by chip 103 to chip 105 will generate errors when transmitted in channel 104
  • the second data stream sent by chip 105 to chip 107 will generate errors when transmitted in channel 106.
  • errors will occur again.
  • FIG. 2 is a schematic flowchart of a data transmission method 200 in an embodiment of this application.
  • the method may include, for example:
  • Chip 1 receives a first data stream sent by chip 2; the first data stream is a data stream encoded with a first forward error correction FEC code pattern.
  • chip 2 may use the first FEC code pattern to encode the original data to form a first data stream and send it to chip 1. Therefore, the first data stream received by chip 1 is a data stream that has been coded with the first FEC code type. In other words, the first data stream is a code stream composed of codeword blocks (English: codeword) of the first FEC code type. .
  • the first FEC code type can be RS code, BCH code, ladder (English: Staircase) code, low-density parity-check (English: low-density parity-check, abbreviation: LDPC) code, turbo (English: Turbo) Code, turbo product code (English: Turbo product code, TPC for short) and other code types.
  • the first FEC code pattern may be an RS code.
  • the codeword block of the first FEC pattern contains an additional parity code (English: parity code) provided for the original data, and the parity code is used to correct errors generated during data transmission. Perform error correction.
  • the first FEC code type may be a systematic FEC code (English: systematic FEC), that is, the codeword block of the first FEC code type may include original data and a check code provided for the original data.
  • the codeword block of the first FEC code type can be processed based on a finite field.
  • the codeword block may be divided into multiple FEC symbol (English: symbol) blocks, and the processing of the codeword block may be based on the FEC symbol block as the granularity.
  • a 5440-bit codeword block includes 5140-bit original data and a 300-bit check code.
  • Galois Field English: Galois Field, abbreviated: GF
  • a codeword block includes 544 FEC symbol blocks, that is, 514 FEC symbol blocks The original data and check code of 30 FEC symbol blocks.
  • a 5280-bit codeword block includes 5140-bit original data and 140-bit check code. If the GF (210) domain is used for processing, every 10 bits of data forms an FEC symbol block, then a codeword block includes 528 FEC symbol blocks, that is, the original data of 514 FEC symbol blocks and the checksum of 14 FEC symbol blocks code. It is understandable that for consecutive errors (English: consecutive errors) or burst errors (English: burst errors), consecutive multi-bit errors will only be reflected as errors in a small number of FEC symbol blocks. Therefore, When the FEC symbol block is used as the granularity to process the FEC codeword block, the FEC error correction capability is stronger.
  • chip 1 and chip 2 are two different chips, and data can be transmitted through a physical path with interference between them. Therefore, the first data stream sent by chip 2 to chip 1 is on the physical path. During transmission, it will be affected by interference and cause bit errors. It can be seen that the first data stream received by chip 1 is a data stream that has already generated bit errors.
  • the chip 1 encodes the first data stream at least once to obtain a second data stream; wherein, the second data stream is encoded using at least the first FEC code type and the second FEC code type The cascaded FEC code stream.
  • the chip 1 may not need to use the first FEC code pattern to decode the first data stream into original data, but may at least be based on the first data stream.
  • the second FEC code type is used to perform at least one encoding, so as to form a second data stream formed by cascading at least the first FEC code type and the second FEC code type.
  • the second data stream may be a cascaded FEC code stream in which the first FEC code type and the second FEC code type are cascaded, that is, the second data stream is a two-level cascaded FEC code stream, or the second data stream It is also possible to cascade one or more levels of cascaded FEC code streams on the basis of the cascade of the first FEC code pattern and the second FEC code pattern, that is, the second data stream is a three-level or more cascaded FEC code stream. Code stream. It is understandable that if chip 2 sends the first data stream to chip 1 through a physical path with interference, the first data stream received by chip 1 is a data stream that has already caused bit errors. Therefore, chip 1 is not correct. In the case of decoding the first data stream that has generated errors, directly encode the first data stream that has generated errors at least once to form a second data stream of multi-level FEC cascade.
  • the second FEC code type may be a code type such as BCH code, RS code, Staircase code, LDPC code, Turbo code, TPC, etc. It is understandable that the second FEC code type may be the same as the first FEC code type, or the second FEC code type may be different from the first FEC code type. For example, both the first FEC code type and the second FEC code type may be RS codes, or the first FEC code type may be RS codes and the second FEC code type may be BCH codes.
  • the second data stream is a code stream composed of codeword blocks of the FEC code type used in the last level of encoding.
  • the second data stream is a data stream formed by concatenating the first FEC code type and the second FEC code type, the first level uses the first FEC code type encoding, and the second level uses the second FEC code type encoding, Then the second data stream is a code stream composed of codeword blocks of the second FEC code type. Since the second data stream is obtained by using the second FEC code type encoding on the basis of the first data stream, the code word block of the second FEC code type includes an additional check code provided for the first data stream. If the second FEC code type is a systematic code, the code word block of the second FEC code type includes the data in the first data stream and the check code provided for the data.
  • the data in the same codeword block in the first data stream can be encoded into multiple different codeword blocks in the second data stream, so that even if the second data A small part of the codeword blocks in the stream cannot be decoded correctly, and it will not affect the correct decoding of the codeword blocks in the first data stream.
  • the chip 1 can distribute the first data stream to n different channels to form n third data streams, so that the data of the same codeword block in the first data stream is distributed To multiple different third data streams, where n represents a natural number greater than 1. Then, the chip 1 can respectively encode the third data streams on the n channels at least once to form a second data stream.
  • the first FEC codeword block is a codeword block in the first data stream, and the data in the codeword block is distributed to the third data stream on n channels, each The third data stream on the channel is respectively encoded into second FEC codeword blocks to form n second FEC code streams, and the n second FEC code streams form the second data stream.
  • the first FEC codeword block represents the codeword block obtained by using the first FEC code type
  • the second FEC codeword block represents the codeword block obtained by using the second FEC code type
  • the second FEC code stream represents A data stream composed of two FEC codeword blocks.
  • the first data stream can be a data stream on one channel, or it can be composed of data streams on multiple channels, that is, the first data stream can be one code stream or multiple barcodes. Stream composition.
  • the first data stream is a data stream on a channel
  • the first data stream is distributed into a third data stream, which is equivalent to one data stream being distributed into multiple data streams.
  • n is a natural number greater than 1
  • the first data stream is the first FEC code stream on one channel
  • the third data stream on n channels is formed after distribution processing.
  • the third data streams on the channels are respectively encoded into a second FEC code stream, and these n FEC code streams constitute the second data stream.
  • the first FEC code stream represents a data stream composed of a first FEC codeword block
  • the first FEC codeword block represents a codeword block obtained by encoding the first FEC code type
  • the second FEC code stream represents a data stream composed of a second FEC codeword block.
  • the distribution from the first data stream to the third data stream is equivalent to the distribution from multiple data streams to multiple data streams.
  • This distribution can be interleaved (English: interleave) technology and/or multiplexing (English: multiplex) technology and other distribution strategies to achieve. For example, in the example shown in FIG.
  • the first data stream is composed of the first FEC stream on k channels, and passes through an interleaver (English: interleaver)
  • the fourth data stream on m channels can be formed, and after multiplexers such as bit multiplexer (English: bit multiplexer) or symbol multiplexer (English: symbol multiplexer)
  • the third data stream on n channels can be formed.
  • the third data stream on each channel is respectively encoded into a second FEC code stream, and these n FEC code streams form the second data stream.
  • the first FEC code stream represents a data stream composed of a first FEC codeword block
  • the first FEC codeword block represents a codeword block obtained by encoding the first FEC code type
  • the second FEC code stream represents a data stream composed of a second FEC codeword block.
  • the chip 1 may perform distribution processing on the first data stream with a bit granularity, that is, the data in the first data stream may be distributed to n third data streams according to the bit stream.
  • chip 1 can obtain one bit of data from the first data stream, and select a channel for the data from n channels according to the distribution strategy, thereby distributing the data to the third data stream on the channel in.
  • the chip 1 may also perform encoding processing on the third data stream with bit granularity, that is, the data in the third data stream may be encoded according to the bit stream.
  • the chip 1 may distribute the first data stream with the granularity of FEC symbol blocks, that is, the data in the first data stream may be distributed according to the FEC symbol stream.
  • chip 1 can identify an FEC symbol block from the first data stream, and select a channel for the FEC symbol block from n channels according to the distribution strategy, thereby distributing the FEC symbol block to the channel In the third data stream.
  • the chip 1 can also encode the third data stream with the granularity of FEC symbol blocks.
  • chip 1 can identify a certain number of FEC symbol blocks from the third data stream and encode them into the same codeword block in the second data stream. Therefore, the same FEC symbol block in the first data stream The data will be encoded in the same codeword block in the second data stream.
  • the FEC symbol block can be identified by an alignment marker (English: alignment marker, AM for short).
  • the chip 1 may perform distribution processing on the first data stream with a granularity of multiple codeword blocks.
  • the chip 1 can identify multiple codeword blocks from the first data stream, and distribute the data of the multiple codeword blocks to the third data stream on n channels according to the distribution strategy.
  • the distribution strategy can be implemented by, for example, interleaving (English: interleave) technology and/or multiplexing (English: multiplexer) technology.
  • the first data stream may be one code stream, that is, the multiple codeword blocks may be identified from one code stream, or the first data stream may be composed of multiple code streams, that is,
  • the k codeword blocks may be identified from multiple barcode streams.
  • the first data stream is composed of k barcode streams, and the multiple codeword blocks may be identified from each barcode stream. K codeword blocks obtained from one codeword block.
  • chip 1 can use all the data of the k codeword blocks in the first data stream as the payload of the n codeword blocks in the second data stream, so that The k codeword blocks in the first data stream are encoded into n codeword blocks in the second data stream.
  • the chip 1 can identify k codeword blocks from the first data stream, and distribute the data of these k codeword blocks to the third data stream on n channels according to the distribution strategy.
  • the data of these k codeword blocks distributed to each channel can be respectively encoded into a codeword block in the second data stream, so that n codeword blocks in the second data stream are encoded on n channels. .
  • the k first FEC codeword blocks identified from the first data stream are input to the interleaver (English: interleaver In ), the data output by the interleaver to m channels is then input to a multiplexer such as bit multiplexer (English: bit multiplexer) or symbol multiplexer (English: symbol multiplexer), and the multiplexer outputs n
  • a multiplexer such as bit multiplexer (English: bit multiplexer) or symbol multiplexer (English: symbol multiplexer)
  • the multiplexer outputs n
  • the data on the channels, and the data on each channel are respectively encoded into a second FEC codeword block, thereby obtaining n second FEC codeword blocks in the second data stream.
  • the first FEC codeword block represents a codeword block obtained by using the first FEC code type encoding, and can be identified from the first data stream through AM.
  • the second FEC codeword block represents a codeword block obtained by using the second FEC code type encoding.
  • the total data volume of the k codeword blocks in the first data stream needs to be the same as that of the second data stream.
  • the amount of payload data of the n codeword blocks of the stream is equal.
  • the RS codeword block of the first data stream includes a payload of 5140 bits and a check code of 300 bits.
  • the BCH of the second data stream The codeword block includes a 340-bit payload and a 20-bit check code.
  • the total data volume of 4 RS codeword blocks is 21760 bits, and the payload data volume of 64 BCH codeword blocks is also 21760 bits. Therefore, The 4 RS codeword blocks of the first data stream can be encoded into 64 BCH codeword blocks of the second data stream.
  • the chip 1 sends the second data stream to the chip 3.
  • the chip 3 After the chip 3 receives the second data stream, it can decode the second data stream. In this way, the cascaded FEC code is used to transmit data between chip 1 and chip 3.
  • the chip 3 may decode all FEC code patterns including the first FEC code pattern and the second FEC code pattern in the second data stream, so as to obtain the original data.
  • chip 3 can decode other FEC code patterns in the second data stream except the first FEC code pattern to obtain the first data stream and send it to chip 4, and chip 4 can then decode the first data stream.
  • the first FEC code pattern in the stream is decoded to obtain the original data. It is understandable that chip 1 and chip 3 are two different chips, and data can be transmitted between the two through a physical path with interference. Similarly, chip 3 and chip 4 are two different chips, and data can be transmitted between the two through physical channels.
  • the second data stream sent by chip 1 to chip 3 when the second data stream sent by chip 1 to chip 3 is transmitted on the physical channel, it will be interfered by the physical channel and cause errors. Chip 3 does not decode the second data stream that has already caused errors.
  • the second data stream of cascaded FEC is decoded into the first data stream encoded with the first FEC code pattern and sent to chip 4.
  • the first data stream sent from chip 3 to chip 4 is physically When transmitting on the channel, it will be affected by interference again and cause errors, so that the chip 4 decodes and corrects the first data into original data. It can be seen that the first data stream received by the chip 1 is a data stream that has already caused an error.
  • the decoding of each level of FEC code pattern can be realized by identifying the code word block of the level FEC code pattern and performing reverse calculation on the identified code word block.
  • the second data stream is formed by cascading the first FEC code pattern and the second FEC code pattern
  • the second data stream can be decoded from the second data stream by means of AM or self-synchronization technology.
  • the codeword block of the second FEC code type is identified in the second FEC code type, and the codeword block of the second FEC code type is inversely calculated to obtain the first data stream.
  • the codeword block of the second FEC code type can be compared with the first data stream.
  • the fixed mapping relationship between the codeword blocks of the FEC code type or AM and other methods identify the codeword block of the first FEC code type from the first data stream, and perform reverse calculation on the codeword block of the first FEC code type, thereby Get the original data.
  • chip 1 and chip 2 may be two chips located in the first data transmission device, and chip 3 and chip 4 may be one chip located in the second data transmission device. chip.
  • the first data transmission device and the second data transmission device need to use cascaded FEC codes to transmit data, but chip 2 and chip 4 only support the first FEC code type and do not support the cascaded FEC code, therefore, chip 1 pair chip 2
  • the output data stream is then encoded to form a cascaded FEC code stream and sent to chip 3.
  • the chip decodes the cascaded FEC code stream into a data stream of the first FEC code pattern and then outputs it to chip 4, so that the difference between chip 1 and chip 3 Then, data can be transmitted through concatenated FEC codes, so that data can be transmitted between the first data transmission device and the second data transmission device through concatenated FEC codes.
  • the chip 1 may be an electrical chip, for example, a relay electrical chip or an electrical chip of an optical module, such as a digital signal processing (English: Digital Signal Processing, DSP for short) chip.
  • Chip 2 may be a chip using an Ethernet interface, such as a physical (English: physical, abbreviated: PHY) layer chip.
  • the chip 3 may be an electrical chip, for example, an electrical chip that relays an electrical chip or an optical module, such as a DSP chip.
  • the chip 4 may be a chip using an Ethernet interface, such as a physical (English: physical, abbreviated: PHY) layer chip.
  • the concatenated FEC code provided in this embodiment achieves a better error correction effect in simulation verification.
  • an additive Gaussian is inserted in the channel between chip 2 and chip 1, the channel between chip 1 and chip 3, and the channel between chip 3 and chip 4.
  • White noise (English: Additive White Gaussian Noise, abbreviated as: AWGN), thus forming a simulation environment.
  • chip 2 sends the data stream of the first FEC code pattern to chip 1, and chip 1 converts the data stream of the first FEC code pattern into a cascaded FEC code stream and sends it to chip 3, and chip 3 will cascade
  • the FEC code stream is converted into a data stream of the first FEC code type and then sent to the chip 4.
  • chip 4 can correctly decode the received data stream of the first FEC pattern;
  • chip 2 sends the data stream of the first FEC pattern to chip 1, and chip 1 sends the data stream of the first FEC pattern directly to Chip 3 and chip 3 directly send the data stream of the first FEC pattern to chip 4.
  • chip 4 cannot correctly decode the received data stream of the first FEC pattern.
  • the simulation verification performed in the above simulation environment shows that: Compared with the cascaded FEC code stream formed by chip 1 decoding the code stream of the first FEC code pattern and then performing multi-level coding, chip 1 is not correcting the first FEC code stream.
  • the second FEC code type is used to encode the code stream of the first FEC code type to form a cascaded FEC code stream, which can not only save 60 to 100 ns of time delay, but also It can achieve a net coding gain (English: net coding gain, abbreviated: NCG) above 9dB.
  • chip 1 does not need to use the first FEC code pattern to decode the first data stream and then reconstruct the original data.
  • Encoded into a concatenated FEC code but on the basis of the first data stream, at least the second FEC code pattern can be used for at least one encoding, so that at least the first FEC code pattern and the second FEC code pattern can be cascaded Into the second data stream. Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device during the conversion of the FEC code type are reduced, and the data transmission efficiency is improved.
  • FIG. 8 is a schematic flowchart of a data transmission method 800 in an embodiment of this application.
  • the method may include, for example:
  • Chip 3 receives a second data stream sent by chip 1.
  • the second data stream is a concatenated FEC code stream that uses at least a first FEC code type and a second FEC code type encoding;
  • the chip 3 decodes the second data stream at least once to form a first data stream; the first data stream is a data stream encoded with the first FEC code pattern;
  • the chip 3 sends the first data stream to the chip 4.
  • the chip 4 After the chip 4 receives the first data stream, it can decode the first data stream according to the first FEC code pattern to obtain the original data.
  • the first FEC code type may be RS code, BCH code, ladder code, LDPC code, Turbo code, TPC and other code types
  • the second FEC code type may be BCH code, RS code, Staircase code, LDPC Code, Turbo code, TPC and other code types.
  • the chip 1 may be located in a first data transmission device, the chip 3 and the chip 4 may be located in a second data transmission device, and the chip 3 and the chip 1 may be Electric chip.
  • the chip 4 may be a chip using an Ethernet interface.
  • this embodiment corresponds to the decoding process of the second data stream
  • the embodiment shown in FIG. 2 corresponds to the encoding process of the second data stream. Therefore, various specific implementations related to this embodiment, such as For the specific implementations of the first data stream, the second data stream, the first FEC code pattern, the second FEC code pattern, chip 1, chip 3, chip 4, etc., please refer to the introduction of the embodiment shown in FIG. 2, namely The method in the embodiment corresponding to FIG. 8 is the inverse decoding solution of encoding introduced in the embodiment corresponding to FIG.
  • chip 3 may use a data stream other than the first FEC code pattern.
  • Other FEC code types decode the second data stream to form a first data stream coded with the first FEC code type and send it to the chip 4 without having to decode the second data stream into original data and then re-encode it into the first FEC
  • the data stream of the code pattern is sent to the chip 4. Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device during the conversion of the FEC code type are reduced, and the data transmission efficiency is improved.
  • the first data transmission device includes a first PHY layer chip and a first optical module
  • the first optical module has a first DSP chip
  • the second data transmission device includes a second PHY layer chip and a second optical module.
  • the second optical module has a second DSP.
  • the first data transmission device and the second data transmission device adopt cascaded FEC codes to transmit data
  • the first PHY layer chip and the second PHY layer chip support RS codes but not cascaded FEC codes.
  • the data transmission method 900 between the first data transmission device and the second data transmission device may include, for example:
  • the first PHY chip uses the RS code to encode the original data once to form an RS code stream.
  • the first PHY chip sends an RS code stream to the first DSP.
  • the first DSP uses the BCH code to encode the RS code stream again to form a BCH code stream.
  • the BCH code stream is actually a concatenated FEC code stream formed by concatenating the RS code and the BCH code.
  • the first DSP sends the BCH code stream to the second DSP.
  • the second DSP uses the BCH code to decode the BCH code stream once to form an RS code stream.
  • the second DSP sends the RS code stream to the second PHY chip.
  • the second PHY chip uses the RS code to decode the RS code stream again to obtain the original data.
  • the first DSP does not need to use the RS code to decode the RS code stream and then re-encode the original data into the concatenated FEC code stream, but can use the BCH code on the basis of the RS code stream to do it again.
  • the BCH code can be used to decode the concatenated FEC code stream once to form the RS code stream, so that the second PHY chip can receive the RS code stream . Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device during the conversion of the FEC code type are reduced, and the data transmission efficiency is improved.
  • FIG. 10 is a schematic flowchart of an encoding method 1000 in an embodiment of this application.
  • the method 1000 is used to encode k codeword blocks of the first FEC code type by using the second FEC code type to form n codeword blocks of the second FEC code type.
  • the method 1000 may include:
  • the first data stream is a data stream encoded with the first FEC code type. Therefore, the first code word block in the first data stream is a code word block of the first FEC code type.
  • the first codeword block can be identified from the first data stream by AM
  • the distribution strategy can be implemented by interleaving (English: interleave) technology and/or multiplexing (English: multiplexer) technology.
  • the k first FEC codeword blocks can be input to the interleaver (English: interleaver), and the data output by the interleaver to m channels are then input to the bit multiplexer (English: bit multiplexer) or symbol complex.
  • the multiplexer outputs data on n channels.
  • the data from the k first codeword blocks is encoded as a payload into a second codeword block, that is, the payload of the second codeword block is The data allocated from the k first codeword blocks on this channel. Therefore, the total payload of the n second codeword blocks encoded on n channels is all the data of the k first codeword blocks, that is to say, the total data volume of the k first codeword blocks needs to be equal to The payload data amount of the n second codeword blocks is equal.
  • the n second codeword blocks can directly follow the second FEC code pattern and The first FEC code pattern is decoded into original data, which facilitates the decoding operations of the first FEC code pattern and the second FEC code pattern on the same chip.
  • FIG. 11 is a schematic structural diagram of a data transmission method 1100 in an embodiment of this application.
  • the method 1100 includes:
  • a first chip receives a first data stream sent by a second chip; the first data stream is a data stream encoded with a first forward error correction FEC code pattern;
  • the first chip encodes the first data stream at least once to obtain a second data stream; wherein, the second data stream adopts at least the first FEC code pattern and the second FEC code pattern Encoded concatenated FEC code stream.
  • the first FEC code type is specifically: RS code, BCH code, Staircase code, LDPC code, Turbo code, or turbo product code TPC.
  • the second FEC code type is specifically: BCH code, RS code, Staircase code, LDPC code, Turbo code, or TPC.
  • the first chip encodes the first data stream at least once to form a second data stream, including:
  • the first chip distributes the first data stream into n third data streams; wherein the data of the same codeword block in the first data stream is distributed to different third data streams;
  • the first chip separately encodes the plurality of third data streams at least once to form the second data stream.
  • the k codeword blocks identified from the first data stream are distributed to n third data streams, and each third data stream belongs to the k codes
  • the data of the word block is encoded into a code word block in the second data stream;
  • the total amount of data included in the k codeword blocks in the first data stream is equal to the amount of payload data included in the n codeword blocks in the second data stream.
  • the data in the first data stream is distributed according to FEC symbol blocks, and the data of the same FEC symbol block in the first data stream is encoded in the same FEC symbol block in the second data stream.
  • a codeword block In a codeword block.
  • the data in the first data stream is distributed according to a bit stream
  • the data in the third data stream is encoded according to a bit stream.
  • the first chip and the second chip are located in the same data transmission device, the first chip is an electrical chip, and the second chip is a chip using an Ethernet interface.
  • the first chip is the chip 1 mentioned in the data transmission method 200
  • the second chip is the chip 2 mentioned in the data transmission method 200
  • the third chip is the chip mentioned in the data transmission method. 3. Therefore, the various specific embodiments of the operations performed by the first chip, the second chip, and the third chip in this embodiment can be found in the data transmission method 200 shown in FIG. The introduction is not repeated in this embodiment.
  • chip 1 does not need to use the first FEC code pattern to decode the first data stream and then reconstruct the original data.
  • Encoded into a concatenated FEC code but on the basis of the first data stream, at least the second FEC code pattern can be used for at least one encoding, so that at least the first FEC code pattern and the second FEC code pattern can be cascaded Into the second data stream. Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device during the conversion of the FEC code type are reduced, and the data transmission efficiency is improved.
  • FIG. 12 is a schematic structural diagram of a data transmission method 1200 in an embodiment of this application.
  • the method 1200 includes:
  • a first chip receives a second data stream sent by a second chip; the second data stream is a concatenated FEC code stream that uses at least a first FEC code type and a second FEC code type encoding;
  • the first chip decodes the second data stream at least once to form a first data stream; the first data stream is a data stream encoded with the first FEC code pattern;
  • the first chip sends the first data stream to a third chip.
  • the first FEC code type is specifically: RS code, BCH code, Staircase code, LDPC code, Turbo code, or TPC.
  • the second FEC code type is specifically: BCH code, RS code, Staircase code, LDPC code, Turbo code, or TPC.
  • the first data stream is used to be decoded by the third chip according to the first FEC code pattern.
  • the second chip is located in a first data transmission device, the first chip and the third chip are located in a second data transmission device, the first chip is an electrical chip, so The second chip is an electrical chip, and the third chip is a chip using an Ethernet interface.
  • the first chip is the chip 3 mentioned in the data transmission method 200
  • the second chip is the chip 1 mentioned in the data transmission method 200
  • the third chip is the chip mentioned in the data transmission method. 4. Therefore, the various specific embodiments of the operations performed by the first chip, the second chip, and the third chip in this embodiment can be found in the data transmission method 200 shown in FIG. 2 for chip 3, chip 1, and chip 4. The introduction is not repeated in this embodiment.
  • the first chip may use the first FEC code pattern except The other FEC code types decode the second data stream to form the first data stream encoded with the first FEC code type and send it to the third chip, instead of re-encoding the second data stream after decoding the original data
  • the data stream in the first FEC code pattern is sent to the third chip. Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device during the conversion of the FEC code type are reduced, and the data transmission efficiency is improved.
  • FIG. 13 is a schematic structural diagram of a data transmission device 1300 in an embodiment of this application.
  • the device 1300 is the first chip and includes:
  • the receiver 1301 is configured to receive a first data stream sent by the second chip; the first data stream is a data stream encoded with a first forward error correction FEC code pattern;
  • the encoder 1302 is configured to encode the first data stream at least once to obtain a second data stream; wherein, the second data stream is encoded by at least the first FEC code type and the second FEC code type The cascaded FEC code stream.
  • the first FEC code type is specifically: RS code, BCH code, Staircase code, LDPC code, Turbo code, or TPC.
  • the second FEC code type is specifically: BCH code, RS code, Staircase code, LDPC code, Turbo code, or TPC.
  • the encoder 1302 is specifically used for:
  • the plurality of third data streams are respectively encoded again at least once to form the second data stream.
  • the k codeword blocks identified from the first data stream are distributed to n third data streams, and each third data stream belongs to the k codes
  • the data of the word block is encoded into a code word block in the second data stream;
  • the total amount of data included in the k codeword blocks in the first data stream is equal to the amount of payload data included in the n codeword blocks in the second data stream.
  • the data in the first data stream is distributed according to FEC symbol blocks, and the data of the same FEC symbol block in the first data stream is encoded in the same FEC symbol block in the second data stream.
  • a codeword block In a codeword block.
  • the data in the first data stream is distributed according to a bit stream
  • the data in the third data stream is encoded according to a bit stream.
  • the first chip and the second chip are located in the same data transmission device, the first chip is an electrical chip, and the second chip is a device using an Ethernet interface.
  • the device 1100 shown in FIG. 11 is the chip 1 mentioned in the embodiment shown in FIG. 2. Therefore, for various specific embodiments of the device 1100 in this embodiment, refer to FIG. 2 The description of the chip 1 in the embodiment is omitted in this embodiment.
  • the first chip does not need to use the first FEC code pattern to decode the first data stream before decoding the first data stream.
  • the original data is re-encoded into concatenated FEC codes, but on the basis of the first data stream, at least the second FEC code pattern can be used for at least one encoding, so that at least the first FEC code pattern and the second FEC code can be obtained Type cascade into the second data stream. Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device during the conversion of the FEC code type are reduced, and the data transmission efficiency is improved.
  • FIG. 14 is a schematic structural diagram of a data transmission device 1400 in an embodiment of this application.
  • the device 1400 is specifically the first chip and includes:
  • the receiver 1401 is configured to receive a second data stream sent by a second chip; the second data stream is a concatenated FEC code stream that uses at least a first FEC code type and a second FEC code type encoding;
  • the decoder 1402 is configured to decode the second data stream at least once to form a first data stream; the first data stream is a data stream encoded with the first FEC code type;
  • the transmitter 1403 is configured to send the first data stream to the third chip.
  • the first FEC code type is specifically: RS code, BCH code, Staircase code, LDPC code, Turbo code, or TPC.
  • the second FEC code type is specifically: BCH code, RS code, Staircase code, LDPC code, Turbo code or TPC.
  • the first data stream is used to be decoded by the third chip according to the first FEC code pattern.
  • the second chip is located in a first data transmission device, the first chip and the third chip are located in a second data transmission device, the first chip is an electrical chip, so The second chip is a chip, and the third chip is a device using an Ethernet interface.
  • the device 1400 shown in FIG. 14 is the chip 3 mentioned in the embodiment shown in FIG. 2. Therefore, for various specific embodiments of the device 1400 in this embodiment, refer to FIG. 2 The introduction of the chip 3 in the embodiment of, will not be repeated in this embodiment.
  • chip 1 may use a code other than the first FEC code pattern.
  • Other FEC code types decode the second data stream to form a first data stream encoded with the first FEC code type and send it to the chip 3, without having to decode the second data stream into original data and then re-encode it into the first FEC
  • the data stream of the code pattern is sent to chip 3. Therefore, the conversion process of the FEC code type is simplified, the time delay and the power consumption of the device during the conversion of the FEC code type are reduced, and the data transmission efficiency is improved.
  • an embodiment of the present application also provides a communication method, which includes: the aforementioned data transmission method 1100 and the aforementioned data transmission method 1200.
  • an embodiment of the present application also provides a communication system, which includes the aforementioned data transmission device 1300 and the aforementioned data transmission device 1400.
  • an embodiment of the present application also provides a network device, which includes the aforementioned data transmission apparatus 1300 or 1400.
  • an embodiment of the present application also provides a data transmission system, including the aforementioned network device.
  • the embodiment of the present application also provides a computer program product containing instructions, which when running on a computer, causes the computer to execute the data transmission method 1100 or 1200 described in the method embodiment of the embodiment of the present application.
  • the embodiments of the present application also provide a computer-readable storage medium that stores instructions in the computer-readable storage medium. When it runs on a computer or a processor, the computer or the processor executes the Method of Example The data transmission method 1100 or 1200 described in the embodiment.
  • FEC is an error control method, and the principle of FEC is to provide an additional parity code for the transmitted data through a certain method.
  • FEC Reed-Solomon FEC
  • Bose-Chaudhuri-Hocquenghem FEC Bose-Chaudhuri-Hocquenghem FEC
  • BCH FEC BCH FEC
  • Fire code Farr code
  • turbo turbo code
  • LDPC low density parity check code
  • FECs have different calculation methods.
  • the original data will not be changed, only by adding a check bit.
  • This FEC is called a systematic FEC (systematic FEC).
  • Parity code and original data are sent to the receiving end together in the path.
  • Parity code and original data are transmitted in the path, there may be errors in some positions in the original data or parity code, and pass through the reverse direction at the receiving end. The calculation can obtain the original data before the error occurs.
  • FEC can increase the data transmission rate and transmission distance in the channel, it is widely used in data transmission technology.
  • the Ethernet interface is a data transmission interface widely used in the world. With the rapid increase in speed, FEC has played an important role in it. For example, for a 10 Gigabit Ethernet (GbE) interface, FEC was added, which was a cyclic code (Cyclic code) at that time, with a data length of 2080 bits and a check digit 32 bits, thus forming FC (2112 , 2080) FEC encoding. This code can correct common errors that occur in backplane transmission. For example, a code block of Firecode is 2080 bits of data and 32-bit check code.
  • the common errors that Firecode can correct are A burst error with a maximum length of 11 bits.
  • the industry introduced a stronger FEC code—RS FEC.
  • KR4FEC and KP4FEC are both RS-FEC, and their code patterns are RS (528,514) and RS (544,514), respectively.
  • the two FECs, KR4FEC and KP4FEC are calculated based on the GF(2 10 ) domain. Each symbol (symbol) contains 10-bit (bit) data, and all calculations are based on the symbol.
  • Each code word (code word) of KP4FEC contains 514 FEC symbols corresponding to the original data information and 30 FEC symbols corresponding to the check digit, that is, the original data information of 5140 bits and the check digit of 300 bits.
  • each code word of KR4FEC there are 514 FEC symbols corresponding to the original data information and 14 FEC symbols corresponding to the check digits, that is, 5140 bits of original data information and 140 bits of check digits.
  • FEC symbol has strong error correction capability for consecutive errors (Consecutive errors, also called burst errors). For example, continuous 20-bit errors will not be extended to more than 3 symbols, but from the perspective of the decoder, there are only 3 error symbols at most.
  • NCG net coding gain
  • the required signal-to-noise ratio (SNR) is lower than the SNR requirement without FEC, for example, the industry generally believes that it is required
  • the signal-to-noise ratio is about 6.5dB lower than the SNR requirement without FEC. This greatly increases the distance the signal can be transmitted.
  • KR4FEC and KP4FEC are mentioned above.
  • RS(544,514) is also used, and in response to burst errors, two codewords are interleaved and retransmitted.
  • the burst errors that appear on the link can be allocated to two FEC symbols with a greater probability, and then are allocated to two code words, thereby reducing errors in each code word The number of symbols.
  • This method can enhance the performance of FEC, and can successfully correct errors that cannot be corrected by a single code word.
  • the use of interleaving is particularly effective for paths with burst errors.
  • the design of the optical module needs to be considered, so it is often required that the data does not need to be particularly complicated processing on the optical module side.
  • the embodiment of the present application provides a data encoding method, which can be applied to current Ethernet interfaces and Ethernet interfaces that may appear in the future.
  • the Ethernet interfaces used in this application include 10GBASE-T, 100GBASE-LR4, 200GBASE-SR4 and other speed electrical or optical interfaces, and also include attachment unit (AUI) interfaces, and also include 100GBASE-CR1 , 400GBASE-KR4 and other interfaces.
  • the methods provided in the embodiments of the present application are applicable to single-stage or multi-stage passages. Among them, the difference between a single-segment path and a multi-segment path lies in whether the entire data transmission process passes through the active circuit or whether it is all transmitted through the medium.
  • the data from the sending end to the receiving end is all passive media, such as PCB circuit boards and optical fibers, then this is considered a single-segment path. If there are other circuits, photoelectric conversion devices, etc., between the sending end and the receiving end, the other circuits, photoelectric conversion devices, etc. are used as the dividing point to divide into multiple paths. Different channels may have different channel characteristics, including burst error behavior.
  • the implementation environment of the data encoding method includes a second circuit and a first circuit.
  • the second circuit can be provided in the data transmission device 1, and the first circuit can be provided in the data transmission device 2.
  • the second circuit includes a circuit that supports an Ethernet interface, such as a circuit that supports a standard 400GbE interface.
  • the second circuit acquires the RS raw data received from the media access control (MAC) layer, and transmits it to the physical coding sublayer (PCS) via a media independent interface (MII).
  • the original data is transcoded with 256B (bits) or 257B after the PCS performs encoding and rate matching.
  • the transcoded data is sequentially scrambled and aligned symbol inserted.
  • Alignment symbol insertion refers to inserting an alignment marker (alignment marker, AM) into the scrambled data, and the alignment is identified by AM.
  • the AM identifiers between different virtual channels can be different, so that data on different virtual channels can be distinguished based on AM, and the boundary of the FEC codeword or the boundary of the FEC symbol can be determined by AM alignment during subsequent encoding. After alignment, data distribution before FEC encoding is performed, so that the data is distributed to the corresponding RS encoder.
  • the second circuit includes one or more RS encoders. Taking a 400GbE interface as an example, after the original RS data received by the MAC layer of the second circuit is FEC encoded, two RS (544,514) codewords are obtained, such as FEC-CW1 and FEC-CW2 in FIG. 15. After that, the two RS codewords are interleaved.
  • RS (544,514) is used to deal with burst errors.
  • the result is interleaved and retransmitted, so that burst errors appearing on the physical channel can be It is allocated to two FEC symbols, and then is allocated to two code words, thereby reducing the number of wrong symbols in each code word.
  • This method can enhance the performance of FEC, and can successfully correct errors that cannot be corrected by a single code word. Therefore, the use of interleaving has a significant effect on paths with burst errors.
  • the PCS can adopt the IEEE 802.3 standard, such as IEEE 802.3-2005 and other versions of the IEEE 802.3 standard, to perform the above-mentioned encoding, transcoding, and AM insertion functions.
  • IEEE 802.3 standard such as IEEE 802.3-2005 and other versions of the IEEE 802.3 standard
  • the order of encoding, transcoding, scrambling, and AM insertion is different.
  • the IEEE 802.3-2018 standard please refer to the IEEE 802.3-2018 standard.
  • the interleaved data is distributed to a virtual lane (virtual lane, referred to as a PCS lane in the standard, and may also be referred to as a logical channel).
  • a virtual lane virtual lane, referred to as a PCS lane in the standard, and may also be referred to as a logical channel.
  • the data is transmitted to the physical medium attachment sublayer (PMA) through the virtual channel, and the PMA performs bit-mux, thereby multiplexing the data transmitted on multiple virtual channels into one or more A physical lane (physical lane).
  • PMA physical medium attachment sublayer
  • the number of virtual channels is m and the number of physical channels is n
  • m:n multiplexing is implemented in PMA.
  • the embodiment of the present application does not limit, that is, the embodiment of the present application does not limit the number of virtual channels and physical channels.
  • the specification of multiplexing in PMA can be determined according to the number of physical channels, so that data can be multiplexed onto physical channels in a bit stream.
  • the IEEE 802.3bs standard has defined 400GbE BASE-LR8, which uses 8 parallel optical paths, each supporting 50G rate.
  • 50G rate refers to the rate of payload transmission, including overhead, the transmission rate is 53.125 Gbps; 400GBASE-DR4 is also defined in 802.3bs, using 4 parallel optical paths, each supporting 100G rate.
  • 100G rate refers to the rate of payload transmission, not including overhead, such as FEC overhead.
  • the transmission rate including overhead is about 106.25Gbps; while the 802.3cu project uses 4 wavelengths to be multiplexed into one optical path using WDM, and each wavelength carries a 100G rate.
  • the "transmission rate” mentioned refers to the rate at which the payload is transmitted.
  • the second circuit After multiplexing the virtual path to the physical path, the second circuit transmits the first data stream to the first circuit through the physical path, that is, transmits the first data stream to the first circuit through the Ethernet interface, and the first data stream is RS-encoded data.
  • the first circuit can perform BCH encoding on the first data stream through the BCH encoder to obtain the second data stream. After that, it is distributed to the physical channel, and transmitted to the medium through the PMA and the physical media dependent (PMD) layer, and the second data stream is transmitted to other receiving ends, such as the third circuit, by the medium.
  • the medium includes but is not limited to optical fiber, backplane, or copper cable.
  • the virtual path for transmitting data in the second circuit is the first path
  • the physical path for transmitting the first data stream between the second circuit and the first circuit is the second path.
  • the first circuit may not recognize the boundary of the FEC code word or FEC symbol.
  • the first circuit uses the first data stream as original data and performs BCH encoding according to the bit stream. For example, this method can be applied to the situation where there are many random errors in the second path.
  • the second circuit transmits the first data stream to the first circuit through multiple physical channels
  • the method provided in the embodiment of the present application realigns the data before performing BCH encoding on the first data stream.
  • the implementation environment can be as shown in Figure 16.
  • the PMA layer aligns the data received from multiple physical channels.
  • the first data stream composed of data received from multiple physical channels is demultiplexed to recover the data of each virtual channel.
  • the data received from n physical channels is converted into m sets of data, and the m sets of data are aligned.
  • the first data stream since the first data stream is transmitted to the first circuit, the data on different virtual channels are distinguished by the AM identifier, so before the first data stream is BCH encoded, it can be Align the data of each virtual channel according to AM to obtain the aligned data.
  • the aligned first data stream is distributed before FEC encoding, and distributed to the corresponding BCH encoder for BCH encoding.
  • an embodiment of the present application provides a data encoding method. It can be applied to the above-mentioned first circuit and second circuit. Referring to Figure 17, the method includes the following steps:
  • Step 1701 The second circuit obtains the original data, uses the RS code to encode the original data, and obtains the first data stream based on the encoded RS codeword.
  • the second circuit obtains the original data for RS encoding from the MAC layer. Transfer from a certain MII to PCS. Among them, after the original data is encoded and rate-matched at the PCS layer, it is transcoded with 256B (bits) or 257B, and then scrambling and alignment symbol insertion are sequentially performed after transcoding. After alignment, data distribution before FEC encoding is performed, so that the data is distributed to the corresponding RS encoder, and the RS encoder implements encoding of the original data to obtain the RS codeword, thereby obtaining the first data based on the encoded RS codeword.
  • Step 1702 The second circuit transmits the first data stream to the first circuit through the Ethernet interface.
  • the two RS codewords are interleaved, and the interleaved data is distributed to the virtual channel.
  • the data is transmitted to the PMA through the virtual channel, and the PMA performs bit multiplexing, thereby realizing multiplexing from the virtual channel to one or more physical channels. That is, when the second circuit transmits the first data stream to the first circuit through the Ethernet interface, the first data stream can be transmitted through one or more physical channels.
  • Step 1703 The first circuit receives the first data stream transmitted by the second circuit through the Ethernet interface.
  • the first circuit receiving the first data stream transmitted by the second circuit through the Ethernet interface includes: The first data stream transmitted by the second circuit through the Ethernet interface is received.
  • the first circuit receiving the first data stream transmitted by the second circuit through the Ethernet interface includes: the first circuit receives the first data stream transmitted by the second circuit through the Ethernet interface from multiple physical channels. data flow.
  • Step 1704 The first circuit performs BCH encoding on the first data stream to obtain a second data stream.
  • the first circuit After the first circuit receives the first data stream, it can perform FEC encoding on the first data stream again. This time, taking BCH encoding as an example, the gain is improved through cascaded encoding.
  • the first circuit includes one or more BCH encoders, and the first circuit receives the first data stream through one or more physical channels. Among them, the number of BCH encoders is consistent with the number of physical channels. After the first circuit receives the first data stream, each physical channel sends the first data stream transmitted on the physical channel to the BCH encoder connected to the physical channel, and the BCH encoder performs BCH encoding.
  • the second circuit supports the 400GbE interface and performs RS encoding on the original data according to the RS (544,514) defined by 802.3bs.
  • the second circuit uses the RS encoder as an example. Perform RS encoding to get 2 RS (544,514) codewords.
  • Data is transmitted to PMA through 16 virtual channels, which are multiplexed by PMA in a 16:n specification, and multiplexed from 16 virtual channels to n physical channels, such as chip-to-module (C2M) or short From the circuit to the circuit (chip-to-chip-short, C2C-S) connection.
  • C2M chip-to-module
  • C2C-S chip-to-module
  • the first circuit includes an optical module or a clock and data recovery (Clock and Data Recovery, CDR).
  • the CDR may be a circuit, and the industry also refers to the CDR as a retiming circuit (retimer).
  • the first circuit includes BCH encoders with the same number of physical channels. After each BCH encoder receives the first data stream transmitted by the physical channel connected to it, it encodes the first data stream, and obtains the second data stream based on the encoded data. data flow. As shown in Figure 18, the data is interleaved with 2 RS(544,514) code words and then multiplexed by PMA 16:4. The first data stream is directly output through 4 physical channels, and the 4 physical channels can enter 4 BCH codes respectively.
  • the bit stream is coded according to the time division multiplexing mode. After that, the second data stream is transmitted to other circuits, such as the third circuit, through n physical channels. Alternatively, the second data stream is transmitted to other circuits by multiplexing a physical path in a link multiplexing manner.
  • the light FEC that is, the BCH encoder
  • the light FEC can adopt the BCH (360,340) encoding method.
  • BCH 360,340
  • other types of BCH encoders can also be used, which is not limited in the embodiment of the present application.
  • the data stream includes: a first circuit performs BCH encoding on the first data stream through one or more BCH encoders in a time division multiplexing manner to obtain a second data stream. Since the number of BCH encoders included in the first circuit is less than the number of physical channels, one or more BCH encoders are multiplexed in a time division multiplexing manner to realize BCH encoding of all the first data streams.
  • the first circuit when the number of BCH encoders included in the first circuit is inconsistent with the number of physical channels, the first circuit further includes a scheduler, and the first circuit performs BCH encoding on the first data stream to obtain the first data stream.
  • the second data stream includes: the first circuit schedules the corresponding BCH encoder through the scheduler to perform BCH encoding on the first data stream to obtain the second data stream. Since the number of BCH encoders is more or less than the number of physical channels, which BCH encoder is selected for encoding among multiple BCH encoders can be implemented through scheduler scheduling. That is, the scheduler is used to connect the physical channel with the corresponding BCH encoder, and the BCH encoder performs BCH encoding on the first data stream.
  • the first circuit may also include a buffer. The first data stream transmitted on the physical path is first stored in the buffer, and then the corresponding BCH encoder is scheduled by the scheduler to perform BCH encoding.
  • the second circuit is still supporting 400GbE interface, and the original data is encoded according to RS (544,514) defined by 802.3bs as an example.
  • the second circuit is encoded by RS
  • the receiver performs RS encoding to obtain 2 RS(544,514) codewords.
  • Data is transmitted to PMA through 16 virtual channels, which are multiplexed by PMA in a 16:n specification, and multiplexed from 16 virtual channels to n physical channels, such as C2M or C2C-S connections.
  • the first circuit is an optical module or a CDR, and includes a BCH encoder.
  • the scheduler is used to schedule which physical path the BCH encoder transmits to encode the first data stream, and obtain the second data stream based on the encoded data. Afterwards, through the scheduling of the scheduler, the second data stream is transmitted to other circuits, such as the third circuit, through n physical channels. Alternatively, the second data stream is transmitted to other circuits by multiplexing a physical path in a link multiplexing manner.
  • performing BCH encoding on the first data stream includes: filling the data in the first data stream into the corresponding In the BCH codewords, the consecutive reference number symbols included in each BCH codeword are from different RS codewords.
  • each physical channel can flow to one BCH encoder, or a BCH encoder with a small number of time division multiplexing (1, 2, 4, etc.) can be used.
  • the first data stream of a physical channel enters a BCH encoder for encoding operation. Since this method does not change any existing or future Ethernet interface data output methods, it is only placed in the data stream as an enhanced device for secondary encoding, thereby achieving higher gains.
  • the alignment operation is performed before the first data stream is encoded.
  • the data in the first data stream is interleaved according to a reference number of RS code words to obtain symbol stream data, and then output to multiple virtual channels, and then bit multiplexing is performed according to the number of physical channels.
  • Multiple physical channels are transmitted to the first circuit; before the data in the first data stream is filled into the corresponding BCH codeword, it also includes: the first circuit demultiplexes the first data stream to restore each virtual channel Align the data of each virtual channel to obtain the aligned data; fill the data in the first data stream into the corresponding BCH codeword, including: fill the aligned data into the corresponding BCH Code word.
  • the data in the first data stream is filled into the corresponding BCH codeword, including but not limited to the following three methods:
  • the first data stream includes the first number of RS codewords, each RS codeword includes the first target number of symbols, the data in the first data stream is interleaved according to the first number of RS codewords, each The BCH encoder corresponds to the second number of BCH codewords, each BCH codeword includes a second target number of symbols, the second target number is determined according to the first target number, and the second number is determined according to the first number as an example.
  • the data in the data stream is filled into the corresponding BCH codeword, including:
  • the third number is half of the second number
  • the first number of consecutive symbols included in each BCH codeword are from different RS codes word.
  • the above-mentioned first number can be determined according to the RS code pattern, or according to application scenarios or experience, which is not limited in the embodiment of the present application.
  • the data in the first data stream is filled into the corresponding BCH codeword, including : Fill in the first half of the data of each row of the first data stream into the first 16 BCH codewords of the 32 BCH codewords in sequence, and fill in the data of the second half of each row of the first data stream in sequence Among the last 16 BCH codewords of the 32 BCH codewords, two consecutive symbols included in each BCH codeword come from different RS codewords.
  • FIG. 20 shows a schematic diagram of a BCH encoding process of the foregoing mode 1.
  • the first data stream includes 2 RS code words, each RS code word has 544 symbols, taking A and B representing two RS code words as an example, the subscripts below A and B respectively represent different symbols in the code word .
  • the interleaved data is shown on the left side of FIG. 20.
  • the data on these 16 virtual channels are filled into the BCH code word on the right.
  • the first row of data A 0 B 8 A 16 B 24 ... A 528 B 536 of the first data stream is divided into two parts.
  • the 18th codeword of the BCH codeword is in BCH-17. And so on, until all the data in the first data stream is filled into the corresponding BCH codeword. And in this way, two consecutive symbols included in each BCH codeword come from different RS codewords.
  • the first data stream includes the first number of RS codewords, each RS codeword includes the first target number of symbols, the data in the first data stream is interleaved according to the first number of RS codewords, and the first The symbols at the beginning or end of each column of data in the data stream are sequentially swapped.
  • Each BCH encoder corresponds to a second number of BCH codewords.
  • Each BCH codeword includes a second target number of symbols. The second target number is based on the second number of symbols.
  • a target quantity is determined, and the second quantity is determined according to the first quantity as an example.
  • Filling the data in the first data stream into the corresponding BCH codeword includes: filling each column of data in the first data stream in sequence In the second number of BCH codewords, the consecutive first number of symbols included in each BCH codeword are from different RS codewords.
  • the data in the first data stream is filled into the corresponding BCH codeword, including : Fill each column of data of the first data stream into 32 BCH codewords in sequence, and each BCH codeword includes two consecutive symbols from different RS codewords.
  • FIG. 21 shows a schematic diagram of a BCH encoding process in the second mode.
  • the first data stream includes 2 RS code words, each RS code word has 544 symbols, taking A and B representing two RS code words as an example, the subscripts below A and B respectively represent different symbols in the code word .
  • the interleaved data is shown on the left side of FIG. 21.
  • each column of data in the first data stream starts from the second column, and the symbols at the beginning are sequentially exchanged, so as to ensure that when each column of data is filled into 32 BCH code words, each The two consecutive symbols included in the BCH codeword come from different RS codewords.
  • a 0 B 0 A 1 B 1 ...A 16 B 16 is filled in BCH-0 in turn
  • a 17 B 17 A 18 B 18 ...A 33 B 33 is filled in BCH-1 in turn, and so on.
  • the data in a data stream is filled into the corresponding BCH codeword.
  • FIG. 21 only uses the order of the symbols at the beginning of the second column to be exchanged as an example. In addition, the order of the symbols at the end of each column can also be exchanged.
  • mode 1 and mode 2 only uses mode 1 and mode 2 to realize that the two consecutive symbols included in each BCH codeword come from different RS codewords.
  • other methods can also be used to realize that the two consecutive symbols included in each BCH codeword come from different RS codewords, that is, there will not be two consecutive symbols from the same RS codeword. This embodiment of the application There is no restriction on this.
  • mode 1 and mode 2 are both BCH coding implemented under the condition that the first circuit does not change the interleaving mode after the data in the first data stream is interleaved. Then, in order to increase the interleaving depth, in the method provided in the embodiment of the present application, the first circuit may also re-interleave the data in the first data stream after receiving the first data stream.
  • BCH encoding method see the following method for details three.
  • the first data stream includes a first number of RS codewords, each RS codeword includes a first target number of symbols, the data in the first data stream is interleaved according to the first number of RS codewords, and each BCH
  • the encoder corresponds to the second number of BCH codewords, each BCH codeword includes a second target number of symbols, the second target number is determined according to the first target number, and the second number is determined according to the first number
  • the first data stream Filling the data in the corresponding BCH codeword into the corresponding BCH codeword includes: de-interleaving the data in the first data stream to obtain the original RS codeword; interleaving the original RS codeword according to the fourth number of RS codewords, Obtain the interleaved data, the fourth quantity is greater than the first quantity; fill each row of data of the interleaved data into the second quantity of BCH codewords in sequence, and each BCH codeword includes the consecutive fourth quantity
  • the symbols are from different RS code
  • the method provided in this embodiment of the present application first deinterleaves the data in the first data stream after acquiring the first data stream to obtain the original RS codeword. Then re-interleaving, using more codeword interleaving during interleaving, thereby increasing the interleaving depth. Then, each row of data of the re-interleaved data is sequentially filled into the second number of BCH codewords in sequence. In this manner, the fourth number can be determined according to the RS code pattern, or according to application scenarios or experience, which is not limited in the embodiment of the present application.
  • the fourth number is greater than the first number.
  • the first circuit can set a buffer to perform interleaving after receiving the fourth number of codewords.
  • the first circuit further deinterleaves the first data stream to restore the original RS- FEC code words, so that more RS-FEC can be accumulated for stronger interleaving, for example, using 4 code words interleaving.
  • the first circuit receives the first data stream, it performs a certain degree of buffering, and performs interleaving after receiving the entire 4 codewords.
  • FIG. 22 and FIG. 23 respectively show a schematic diagram of a BCH encoding process in the third mode.
  • Figure 22 and Figure 23 are examples of two interleaving methods respectively, where A, B, C, and D represent symbols from different RS-FEC code words. Since the letters A to D in Figure 22 and Figure 23 do not reflect the subscript numbers, they only represent different symbols from different code words. 4 RS code words are used for interleaving, so that any connected 4 symbols are from different RS code words.
  • the first target number may be determined based on the RS code pattern. For example, for RS (544, 514), the first target number is 544, and each RS codeword includes 544 symbols.
  • the second target number can be determined based on the first target number. For RS (544,514), BCH (360,340) can be used, and the second target number is 360. For another example, for RS (528, 514), the target number is 528, and each RS codeword includes 528 symbols.
  • the method provided in the embodiment of the present application is to use RS and BCH two-level coding, and the embodiment of the present application does not limit which RS code type and which BCH code type is used.
  • the first target quantity and the second target quantity may also adopt other numerical values.
  • the aforementioned first target number of symbols and the second target number of symbols can be either 10-bit (bit) symbols, 1-bit symbols or symbols of other lengths, and the length of the symbols is not limited in the embodiment of the application. .
  • P(x) polynomial there can also be other polynomials used in BCH coding, which is not limited in this application.
  • the first circuit performs BCH encoding on the first data stream
  • the method further includes: transmitting the second data stream to the third circuit through the medium using multiple physical channels, or, The second data stream is transmitted to the third circuit through a physical channel in a time division multiplexed manner through the medium.
  • the medium includes but is not limited to optical fiber, backplane or copper cable.
  • the medium includes but is not limited to optical fiber, backplane or copper cable.
  • the medium includes but is not limited to optical fiber, backplane or copper cable.
  • the medium includes but is not limited to optical fiber, backplane or copper cable.
  • the 800GbE port that may appear in the future as an example, there may be various solutions such as 8x100G, 4x200G, etc., which can be transmitted on optical fibers, backplanes or copper cables.
  • an embodiment of the present application provides a data decoding method, which can be used in a third circuit, and the third circuit is used to decode a second data stream obtained by applying the encoding method described in FIG. As shown in Figure 24, the method includes the following steps:
  • Step 2401 The third circuit receives the second data stream transmitted by the first circuit, and the second data stream is obtained by encoding using the RS code and the BCH code.
  • the third circuit receiving the second data stream transmitted by the first circuit includes: receiving through a medium the second data stream transmitted by the first circuit using multiple physical channels, or receiving the first data stream through the medium.
  • the circuit adopts a second data stream transmitted by a physical path in a time division multiplexing manner.
  • the medium includes but is not limited to optical fiber, backplane or copper cable. Since the first circuit uses the coding method shown in FIG. 17 to perform BCH coding on the first data stream that has been coded with RS, the second data stream is coded with the RS code and the BCH code.
  • Step 2402 The third circuit uses the BCH code to decode the second data stream to obtain the first data stream.
  • the BCH code used when the third circuit decodes the second data stream is consistent with the code pattern used when the first circuit performs BCH encoding on the first data stream, so as to ensure that the third circuit can successfully perform the second data stream. Decode, get the first data stream.
  • the BCH code is used to transmit the second data stream.
  • the method further includes: demultiplexing the second data stream when the second data stream transmitted by the first circuit in a time-division multiplexing manner is received through the medium. ; Using the BCH code to decode the second data stream to obtain the first data stream includes: using the BCH code to decode the demultiplexed data stream to obtain the first data stream.
  • the BCH code is used to demultiplex the first data stream. Before the second data stream is decoded, it also includes: aligning the second data stream after demultiplexing; using BCH code to decode the second data stream after demultiplexing to obtain the first data stream, including: using BCH code The second data stream after the alignment is decoded to obtain the first data stream. Since BCH encoding does not change AM characters, when aligning the second data stream after demultiplexing, the existing AM characters in the second data stream can be multiplexed to realize the second data after demultiplexing. The stream is aligned.
  • Step 2403 The third circuit uses the RS code to decode the first data stream to obtain the original data.
  • the RS code used by the third circuit when decoding the first data stream is consistent with the RS code pattern used when encoding the data in the first data stream to ensure that the third circuit can successfully decode the first data stream , Get the original data.
  • the embodiment of the present application is verified on a field-programmable gate array (FPGA) through modeling.
  • FPGA field-programmable gate array
  • PRBS31 is a kind of test data that generates a pseudo-random sequence as the system input.
  • the original data is encoded with RS (544,514), and then the result of 4 RS code word interleaving is used as an example.
  • the first data stream obtained after interleaving is transmitted to the BCH encoder through channel 1 through bit multiplexing for BCH. Encode to get the second data stream. After that, the second data stream is transmitted to the decoding end through channel 2.
  • the decoding end first performs BCH decoding on the second data stream to obtain the first data stream. After the first data stream is transmitted through channel 3, bit demultiplexing is performed, and then the demultiplexed data is deinterleaved. RS (544,514) decoder is used for RS decoding to obtain the original data.
  • the gain is improved.
  • the concatenated coding scheme provided by the embodiment of the present application can have a net gain of 2dB. Whether on the electrical interface or the optical interface, the additional net gain can greatly increase the signal transmission distance.
  • an embodiment of the present application provides a data encoding device, which is used to execute the above data encoding method.
  • the device includes:
  • the receiving module 271 is configured to receive the first data stream transmitted by the second circuit through the Ethernet interface, where the first data stream is obtained by encoding the original data using the RS code;
  • the encoding module 272 is configured to perform BCH encoding on the first data stream to obtain the second data stream.
  • the receiving module 271 is configured to receive the first data stream transmitted by the second circuit through the Ethernet interface from multiple physical channels;
  • the device includes one or more BCH encoders and an encoding module.
  • the number of included BCH encoders is the same as the number of physical channels, one BCH encoder is connected to one physical channel, and one or more BCH encoders are used to pair The first data stream transmitted by the corresponding physical channel is subjected to BCH encoding to obtain the second data stream.
  • the receiving module 271 is configured to receive the first data stream transmitted by the second circuit through the Ethernet interface from multiple physical channels;
  • the device includes one or more BCH encoders, and also includes a scheduler.
  • An encoding module 272 is used to schedule the corresponding BCH encoder pair through the scheduler when the number of BCH encoders included in the first circuit is inconsistent with the number of physical channels.
  • the first data stream is subjected to BCH encoding to obtain the second data stream.
  • the encoding module 272 is configured to fill the data in the first data stream into the corresponding BCH codeword, and the consecutive reference number symbols included in each BCH codeword come from different RSs. Codeword.
  • the data in the first data stream is interleaved according to a reference number of RS code words to obtain symbol stream data, and then output to multiple virtual channels, and then bit multiplexing is performed according to the number of physical channels. Multiple physical channels are transmitted to the data encoding device;
  • the data encoding device further includes:
  • the demultiplexing module 273 is used to demultiplex the first data stream and restore the data of each virtual channel;
  • the alignment module 274 is used to align the data of each virtual path to obtain aligned data
  • the encoding module 272 is used to fill the aligned data into the corresponding BCH codeword.
  • the first data stream includes a first number of RS codewords, each RS codeword includes a first target number of symbols, and the data in the first data stream is based on the first number of RS codewords.
  • each BCH encoder corresponds to a second number of BCH codewords, each BCH codeword includes a second target number of symbols, the second target number is determined according to the first target number, and the second number is determined according to the first number;
  • the encoding module 272 is configured to sequentially fill the first half of the data of each row of the first data stream into the first and the third number of BCH codewords of the second number of BCH codewords in sequence, and add the last part of each row of the first data stream to Half of the data is sequentially filled into the third number of BCH codewords after the second number of BCH codewords, the third number is half of the second number, and each BCH codeword includes consecutive first numbers The symbols come from different RS code words.
  • the first target number is 544, the first number is 2, the second number is 32, and the second target number is 360;
  • the encoding module 272 is used to fill the first half of the data of each row of the first data stream into the first 16 BCH codewords of the 32 BCH codewords in sequence, and the second half of the data of each row of the first data stream is Fill in the last 16 BCH codewords of the 32 BCH codewords in sequence, and the two consecutive symbols included in each BCH codeword come from different RS codewords.
  • the first data stream includes a first number of RS codewords, each RS codeword includes a first target number of symbols, and the data in the first data stream is based on the first number of RS codewords.
  • the symbols at the beginning or end of each column of the first data stream are sequentially swapped.
  • Each BCH encoder corresponds to the second number of BCH codewords, and each BCH codeword includes the second target number of symbols. 2.
  • the target quantity is determined according to the first target quantity, and the second quantity is determined according to the first quantity;
  • the encoding module 272 is configured to sequentially fill each column of data of the first data stream into the second number of BCH codewords in sequence, and the first number of consecutive symbols included in each BCH codeword are from different RS codewords .
  • the first target number is 544, the first number is 2, the second number is 32, and the second target number is 360;
  • the encoding module 272 is configured to sequentially fill each column of data of the first data stream into 32 BCH codewords in sequence, and each BCH codeword includes two consecutive symbols from different RS codewords.
  • the first data stream includes a first number of RS codewords, each RS codeword includes a first target number of symbols, and the data in the first data stream is based on the first number of RS codewords.
  • each BCH encoder corresponds to a second number of BCH codewords, each BCH codeword includes a second target number of symbols, the second target number is determined according to the first target number, and the second number is determined according to the first number;
  • the encoding module 272 is configured to de-interleave the data in the first data stream to obtain the original RS codeword; interleave the original RS codeword according to the fourth number of RS codewords to obtain the interleaved data, and the fourth The number is greater than the first number; each row of interleaved data is sequentially filled into the second number of BCH codewords in sequence, and the fourth number of consecutive symbols included in each BCH codeword comes from a different RS codeword .
  • the data encoding device further includes:
  • the transmission module 275 is configured to transmit the second data stream to the third circuit using multiple physical paths through the medium, or to transmit the second data stream to the third circuit using one physical path through the medium in a time division multiplexing manner.
  • an embodiment of the present application provides a data decoding device, which is used to execute the above data decoding method.
  • the device includes:
  • the receiving module 161 is configured to receive a second data stream transmitted by the first circuit, and the second data stream is obtained by encoding using RS code and BCH code;
  • the first decoding module 162 is configured to use the BCH code to decode the second data stream to obtain the first data stream;
  • the second decoding module 163 is configured to decode the first data stream by using the RS code to obtain original data.
  • the receiving module 161 is configured to receive the second data stream transmitted by the first circuit using multiple physical channels through the medium, or to receive the first circuit through the medium using a physical path in a time division multiplexing manner.
  • the second data stream transmitted by the channel is configured to receive the second data stream transmitted by the first circuit using multiple physical channels through the medium, or to receive the first circuit through the medium using a physical path in a time division multiplexing manner.
  • the data decoding apparatus further includes:
  • the demultiplexing module 164 is configured to demultiplex the second data stream when the second data stream transmitted by the first circuit in a time-division multiplexing manner is received through a medium through a physical path;
  • the first decoding module 162 is configured to use the BCH code to decode the demultiplexed data stream to obtain the first data stream.
  • the data decoding apparatus further includes:
  • the alignment module 165 is configured to align the second data stream after demultiplexing
  • the first decoding module 162 is configured to use the BCH code to decode the aligned second data stream to obtain the first data stream.
  • first circuit second circuit
  • third circuit data encoding device
  • data decoding device may be implemented in one or more chips.
  • an embodiment of the present application also provides a data transmission device.
  • the device includes a storage 191 and a processor 192; the storage 191 stores at least one instruction, and at least one instruction is loaded and executed by the processor 192 , So as to implement any of the foregoing data encoding or data decoding methods provided in the embodiments of the present application.
  • the device includes a transceiver 3401, a memory 3402, and a processor 3403.
  • the transceiver 2001, the memory 3402, and the processor 3403 communicate with each other through an internal connection path
  • the memory 3402 is used to store instructions
  • the processor 3403 is used to execute instructions stored in the memory to control the transceiver 3401 to receive signals
  • the processor 3403 executes the instructions stored in the memory 3402, the processor 3403 is caused to execute any of the foregoing data encoding methods or data decoding methods.
  • An embodiment of the present application also provides a data transmission system, which includes the data encoding device shown in any one of FIGS. 27-29 and the data decoding device shown in any one of FIGS. 30-32.
  • the data encoding device and the data decoding device in the embodiments of the present application may be a personal computer (PC) or server or network device.
  • the data encoding device and the data decoding device may be routers, switches, servers, etc.
  • the embodiment of the present application also provides a computer-readable storage medium.
  • the storage medium stores at least one instruction.
  • the instruction is loaded and executed by the processor to implement any of the above-mentioned data encoding methods or data decoding methods provided in the embodiments of the present application. .
  • the embodiment of the present application also provides a circuit, including a processor, which is used to call and execute instructions stored in the memory from the memory, so that the communication device installed with the circuit executes any of the foregoing data encoding methods or data decoding methods.
  • the embodiment of the present application also provides a circuit including: an input interface, an output interface, a processor, and a memory.
  • the input interface, output interface, the processor and the memory are connected by an internal connection path, and the processor is used to execute the code in the memory.
  • the processor is used to execute any of the aforementioned data encoding methods or data decoding methods.
  • processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processing (digital signal processing, DSP), and application specific integrated circuits. ASIC), field-programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or any conventional processor. It is worth noting that the processor may be a processor that supports an advanced reduced instruction set machine (advanced RISC machines, ARM) architecture.
  • the memory may be integrated with the processor, or the memory and the processor may be provided separately.
  • the above-mentioned memory may include a read-only memory and a random access memory, and provides instructions and data to the processor.
  • the memory may also include non-volatile random access memory.
  • the memory can also store device type information.
  • the memory may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), and electronic Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be random access memory (RAM), which is used as an external cache. By way of exemplary but not limiting illustration, many forms of RAM are available.
  • static random access memory static random access memory
  • dynamic random access memory dynamic random access memory
  • DRAM dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • double data rate synchronous dynamic random access Memory double data date SDRAM, DDR SDRAM
  • enhanced synchronous dynamic random access memory enhanced SDRAM, ESDRAM
  • serial link DRAM SLDRAM
  • direct memory bus random access memory direct rambus RAM
  • This application provides a computer program.
  • the computer program When the computer program is executed by a computer, it can cause a processor or computer to execute the corresponding steps and/or processes in the foregoing method embodiments.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk).
  • the computer software product can be stored in a storage medium, such as read-only memory (English: read-only memory, ROM)/RAM, magnetic disk, An optical disc, etc., includes a number of instructions to enable a computer device (which may be a personal computer, a server, or a network communication device such as a router) to execute the method described in each embodiment of the application or some parts of the embodiment.
  • a computer device which may be a personal computer, a server, or a network communication device such as a router
  • the various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments.
  • the description is relatively simple, and for related parts, please refer to the partial description of the method embodiment.
  • the above-described device and system embodiments are only illustrative.
  • the modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules, that is, they may be located in One place, or it can be distributed to multiple network units. Some or all of the modules may be selected according to actual needs to achieve the objectives of the solutions of the embodiments. Those of ordinary skill in the art can understand and implement it without creative work.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Dc Digital Transmission (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了数据传输、编码方法、解码方法、装置、设备及存储介质。数据传输方法包括:第一芯片接收第二芯片器件发送的第一数据流;第一数据流为采用第一前向纠错FEC码型编码的数据流;第一芯片器件对第一数据流再进行至少一次编码,得到第二数据流;其中,第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流。数据编码方法包括:第一电路接收第二电路通过以太网接口传输的第一数据流,第一数据流是采用RS码对原始数据进行编码得到的;第一电路对第一数据流进行BCH编码,得到第二数据流。本申请提供了级联编码的方式,使得增益更高,简化FEC码型的转换过程,减少FEC码型转换时所要耗费的时延及设备功耗,提高数据可被传输的距离和速度。

Description

数据传输、编码、解码方法、装置、设备及存储介质
本申请要求于2019年5月15日提交的国际申请号为PCT/CN2019/087058、发明名称为“一种数据传输方法和装置”的国际申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别涉及数据传输、编码、解码方法、装置、设备及存储介质。
背景技术
前向纠错(英文:forward error correction,简称:FEC)码可以为传输中的数据提供纠错保护,从而能够提高信道中的数据传输速率及传输距离。在使用FEC码的数据传输过程中,发送设备可以采用特定的FEC码型对原始数据进行编码之后再将编码后的数据发送给接收设备,接收设备则可以采用同样的FEC码型对接收到的数据进行解码,从而得到原始数据。
在有些场景下,数据在传输过程中可能需要转换FEC码型。例如,为了适应高速率和/或远距离的数据传输当原有数据传输接口采用的原有FEC码型无法满足数据传输的要求时,需要对FEC码型进行转换,使得原有的FEC码型被替换为一种更高增益的FEC码型。但是,FEC码型的转换过程往往会增大数据传输过程的时延以及数据传输设备的功耗,从而影响到数据传输效率。
此外,以太网(Ethernet)接口作为世界广泛被使用的数据传输接口,随着速率迅速提升,FEC在以太网中起到的作用越来越重要。随着速率的不断提高,传输距离不断增加,对FEC的要求也越来越高。
发明内容
本申请实施例提供了一种数据传输、编码、解码方法、装置、设备及存储介质,以解决相关技术中的问题,技术方案如下:
第一方面,本申请实施例提供了一种数据传输方法,包括:第一芯片接收第二芯片发送的第一数据流;所述第一数据流为采用第一前向纠错FEC码型编码的数据流;所述第一芯片对所述第一数据流再进行至少一次编码,得到第二数据流;其中,所述第二数据流为至少采用所述第一FEC码型和第二FEC码型编码的级联FEC码流;所述第一芯片向第三芯片发送所述第二数据流。可见,对于第二芯片向第一芯片发送的采用第一FEC码型编码的第一数据流,第一芯片可以不必先采用第一FEC码型对第一数据流进行解码再将原始数据重新编码成更高增益的FEC码型,而是可以在第一数据流的基础上至少采用第二FEC码型再进行至少一次编码,从而就可以得到至少由第一FEC码型和第二FEC码型级联成的第二数据流,以实现更高的增益。因此,FEC码型的转换过程得以简化,FEC码型转换时所要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
结合第一方面的任何一种实现方式,在第一方面的第一种可能的实现方式中,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。可见,第一芯片可以支持在多种不同的第一FEC码型的基础上编码得到级联FEC码。
结合第一方面的任何一种实现方式,在第一方面的第二种可能的实现方式中,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。可见,第一芯片可以支持按照多种不同的第二FEC码型在第一FEC码型的基础上编码得到级联FEC码。
结合第一方面的任何一种实现方式,在第一方面的第三种可能的实现方式中,所述第一芯片对所述第一数据流再进行至少一次编码,形成第二数据流,包括:所述第一芯片将所述第一数据流分发成n条第三数据流;其中,所述第一数据流中同一个码字块的数据被分发到不同的所述第三数据流中;所述第一芯片分别对所述多条第三数据流再进行至少一次编码,形成所述第二数据流。可见,第一数据流中同一个码字块中的数据可以被编码到第二数据流中多个不同的码字块中,从而使得级联FEC码具有更强的纠错能力。
结合第一方面的第三种实现方式,在第一方面的第四种可能的实现方式中,从所述第一数据流中识别出来的k个码字块被分发到n条第三数据流中,每一条所述第三数据流中属于所述k个码字块的数据被编码成所述第二数据流中的一个码字块;其中,所述第一数据流中k个码字块所包含的全部数据量与所述第二数据流中n个码字块所包含的有效载荷数据量相等。可见,由于n个第二码字块中的有效载荷即是k个码字块中的全部数据,因此,这n个第二码字块就可以直接按照第二FEC码型和第一FEC码型解码成原始数据,这样便于在同一个芯片上进行第一FEC码型和第二FEC码型的解码操作。
结合第一方面的第三种实现方式,在第一方面的第五种可能的实现方式中,所述第一数据流中的数据按照FEC符号块进行分发,所述第一数据流中同一个FEC符号块的数据被编码在所述第二数据流中的同一个码字块中。可见,第一芯片可以以符号块为粒度对第一数据流进行分发处理。
结合第一方面的第三种实现方式,在第一方面的第六种可能的实现方式中,所述第一数据流中的数据按照比特流进行分发,所述第三数据流中的数据按照比特流进行编码。可见,第一芯片可以以比特为粒度对第一数据流进行分发处理。
结合第一方面的任何一种实现方式,在第一方面的第七种可能的实现方式中,所述第一芯片和所述第二芯片位于第一数据传输设备内,所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二芯片为采用以太网接口的器件,所述第三芯片为电芯片。可见,第一数据传输设备可以通过电芯片将采用以太网接口的器件输出的第一FEC码型的第一数据流编码成至少由第一FEC码型和第二FEC码型级联成的第二数据流再发送给第二数据传输设备,从而实现第一数据传输设备与第二数据传输设备之间通过级联FEC码来进行数据传输。
结合第一方面的任何一种可能的实现方式,在第一方面的第八种可能的实现方式中,所述第一数据流在所述第二芯片与所述第一芯片之间通过具有干扰的物理通路进行传输。可见,对于在具有干扰的物理通路中传输时产生了误码的第一数据流,第一芯片可以在不对第一数据流进行解码纠错的情况下直接对第一数据流再进行至少一次编码形成级联的第二数据流。
第二方面,本申请实施例提供了一种数据传输方法,包括:第一芯片接收第二芯片发送的第二数据流;所述第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流;所述第一芯片对所述第二数据流进行至少一次解码,形成第一数据流;所述第一数据流 为采用所述第一FEC码型编码的数据流;所述第一芯片向第三芯片发送所述第一数据流。可见,对于第二芯片向第一芯片发送的至少由第一FEC码型和第二FEC码型级联而成的第二数据流,第一芯片可以采用除第一FEC码型之外的其他FEC码型对第二数据流进行解码,形成采用第一FEC码型编码的第一数据流并向第三芯片发送,而不必将第二数据流解码成原始数据之后再重新编码成第一FEC码型的数据流向第三芯片发送。因此,FEC码型的转换过程得以简化,FEC码型转换时所要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
结合第二方面的任何一种可能的实现方式,在第二方面的第一种可能的实现方式中,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
结合第二方面的任何一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。可见,第一芯片可以支持对多种不同的第二FEC码型进行解码。
结合第二方面的任何一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一数据流用于被所述第三芯片按照所述第一FEC码型进行解码。可见,第一芯片可以支持级联FEC码解码后输出多种不同的第一FEC码型。
结合第二方面的任何一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第二芯片位于第一数据传输设备内,所述第一芯片和所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二芯片为芯片,所述第三芯片为采用以太网接口的器件。可见,对于第一数据传输设备向第二数据传输设备发送的至少由第一FEC码型和第二FEC码型级联而成的第二数据流,第一数据传输设备可以通过电芯片利用第二FEC码型将第二数据流解码成第一FEC码型的第一数据流再发送给采用以太网接口的器件,从而实现第一数据传输设备与第二数据传输设备之间通过级联FEC码来进行数据传输。
结合第二方面的任何一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第一数据流在所述第一芯片与所述第三芯片之间通过物理介质进行传输。可见,第一芯片可以在不将第二数据流解码成原始数据的情况下采用除第一FEC码型之外的其他FEC码型将第二数据流解码成采用第一FEC码型编码的第一数据流,从而使得第一数据流通过具有干扰的物理介质中传输给第三芯片再由第三芯片对第一数据流进行解码得到原始数据。所述物理介质例如可以是光纤,光波导,电路,空气等。
第三方面,本申请实施例提供了一种应用于第一芯片的数据传输装置,包括接收器、编码器和发送器。其中:接收器,用于接收第二芯片发送的第一数据流;所述第一数据流为采用第一前向纠错FEC码型编码的数据流;编码器,用于对所述第一数据流再进行至少一次编码,得到第二数据流;其中,所述第二数据流为至少采用所述第一FEC码型和第二FEC码型编码的级联FEC码流;发送器,用于向第三芯片发送所述第二数据流。
结合第三方面的任何一种实现方式,在第三方面的第一种可能的实现方式中,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
结合第三方面的任何一种实现方式,在第三方面的第二种可能的实现方式中,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
结合第三方面的任何一种实现方式,在第三方面的第三种可能的实现方式中,所述编码器,具体用于:将所述第一数据流分发成n条第三数据流;其中,所述第一数据流中同一个 码字块的数据被分发到不同的所述第三数据流中;分别对所述多条第三数据流再进行至少一次编码,形成所述第二数据流。
结合第三方面的第三种实现方式,在第三方面的第四种可能的实现方式中,从所述第一数据流中识别出来的k个码字块被分发到n条第三数据流中,每一条所述第三数据流中属于所述k个码字块的数据被编码成所述第二数据流中的一个码字块;
其中,所述第一数据流中k个码字块所包含的全部数据量与所述第二数据流中n个码字块所包含的有效载荷数据量相等。
结合第三方面的第三种实现方式,在第三方面的第五种可能的实现方式中,所述第一数据流中的数据按照FEC符号块进行分发,所述第一数据流中同一个FEC符号块的数据被编码在所述第二数据流中的同一个码字块中。
结合第三方面的第三种实现方式,在第三方面的第六种可能的实现方式中,所述第一数据流中的数据按照比特流进行分发,所述第三数据流中的数据按照比特流进行编码。
结合第三方面的任何一种实现方式,在第三方面的第七种可能的实现方式中,所述第一芯片和所述第二芯片位于第一数据传输设备内,所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二芯片为采用以太网接口的器件,所述第三芯片为电芯片。
结合第三方面的任何一种可能的实现方式,在第三方面的第八种可能的实现方式中,所述第一数据流在所述第二芯片与所述第一芯片之间通过物理介质进行传输。可见,对于在具有干扰的物理介质中传输时产生了误码的第一数据流,第一芯片可以在不对第一数据流进行解码纠错的情况下直接对第一数据流再进行至少一次编码形成级联的第二数据流。
可以理解的是,第三方面提供的数据传输装置,对应于第一方面提供的数据传输方法,故第二方面提供的数据传输装置的各种可能的实现方式的技术效果,可以参照前述第一方面提供的数据传输方法的介绍。
第四方面,本申请实施例提供了一种应用于第一芯片的数据传输装置,包括接收器、解码器和发送器。其中:接收器,用于接收第二芯片发送的第二数据流;所述第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流;解码器,用于对所述第二数据流进行至少一次解码,形成第一数据流;所述第一数据流为采用所述第一FEC码型编码的数据流;发送器,用于向第三芯片发送所述第一数据流。
结合第四方面的任何一种可能的实现方式,在第四方面的第一种可能的实现方式中,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
结合第四方面的任何一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
结合第四方面的任何一种可能的实现方式,在第四方面的第三种可能的实现方式中,所述第一数据流用于被所述第三芯片按照所述第一FEC码型进行解码。
结合第四方面的任何一种可能的实现方式,在第四方面的第四种可能的实现方式中,所述第二芯片位于第一数据传输设备内,所述第一芯片和所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二芯片为芯片,所述第三芯片为采用以太网接口的器件。
结合第四方面的任何一种可能的实现方式,在第四方面的第五种可能的实现方式中,所述第一数据流在所述第一芯片与所述第三芯片之间通过物理介质进行传输。可见,第一芯片可以在不将第二数据流解码成原始数据的情况下采用除第一FEC码型之外的其他FEC码型将 第二数据流解码成采用第一FEC码型编码的第一数据流,从而使得第一数据流通过具有干扰的物理介质中传输给第三芯片再由第三芯片对第一数据流进行解码得到原始数据。
可以理解的是,第四方面提供的数据传输装置,对应于第二方面提供的数据传输方法,故第四方面提供的数据传输装置的各种可能的实现方式的技术效果,可以参照前述第二方面提供的数据传输方法的介绍。
第五方面,本申请实施例还提供了一种通信方法,该通信方法包括:前述第一方面任意一种实现方式所述的数据传输方法,以及,前述第二方面任意一种实现方式所述的数据传输方法。
第六方面,本申请实施例还提供了一种通信系统,该通信系统包括:前述第三方面任意一种实现方式所述的数据传输装置,以及,前述第四方面任意一种实现方式所述的数据传输装置。
第七方面,本申请实施例还提供了一种网络设备,该网络设备包括前述第三方面任意一种实现方式所述的数据传输装置。
第八方面,本申请实施例还提供了一种网络设备,该网络设备包括前述第四方面任意一种实现方式所述的数据传输装置。
第九方面,本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述第一方面中任意一种实现方式所述的数据传输方法或前述第二方面任意一种实现方式所述的数据传输方法。
第十方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得该计算机或处理器执行前述第一方面中任意一种可能的实现方式中所述的数据传输方法或前述第二方面中任意一种可能的实现方式中所述的数据传输方法。
第十一方面,提供了一种数据编码方法,所述方法包括:第一电路接收第二电路通过以太网接口传输的第一数据流,所述第一数据流是采用RS码对原始数据进行编码得到的;所述第一电路对所述第一数据流进行BCH编码,得到第二数据流。通过RS及BCH实现两级编码,使得增益更高,从而提高数据可被传输的距离和速度。
结合第十一方面,在第十一方面的第一种可能的实现方式中,所述第一电路接收第二电路通过以太网接口传输的第一数据流,包括:所述第一电路从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;所述第一电路包括一个或多个BCH编码器,所述第一电路对所述第一数据流进行BCH编码,得到第二数据流,包括:当所述第一电路包括的BCH编码器的数量与所述物理通路的数量一致时,一个BCH编码器与一条物理通路对接,所述第一电路通过所述一个或多个BCH编码器对对应的物理通路传输的第一数据流进行BCH编码,得到第二数据流。当BCH编码器的数量与物理通路的数量一致时,二者可以一一对应,从而使得多个BCH编码器可以并行编码,提高编码速度。
结合第十一方面,在第十一方面的第二种可能的实现方式中,所述第一电路接收第二电路通过以太网接口传输的第一数据流,包括:所述第一电路从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;所述第一电路包括一个或多个BCH编码器,所述第一电路还包括调度器,所述第一电路对所述第一数据流进行BCH编码,得到第二数据流,包括:当所述第一电路包括的BCH编码器的数量与所述物理通路的数量不一致时,所述第一电路通过所述调度器调度对应的BCH编码器对所述第一数据流进行BCH编码,得到第二数据 流。无论BCH编码器的数量少于物理通路的数量,还是BCH编码器的数量多于物理通路的数量,均可以通过调度器对BCH编码器进行调度,以将BCH编码器与对应的物理通路进行对接,从而实现对物理通路传输的第一数据流进行BCH编码。
结合第十一方面的任一种可能的实现方式,在第十一方面的第三种可能的实现方式中,所述对所述第一数据流进行BCH编码,包括:将所述第一数据流中的数据填入到对应的BCH码字中,每个BCH码字中包括的连续参考数量个符号来自不同的RS码字。
结合第十一方面的第三种可能的实现方式,在第十一方面的第四种可能的实现方式中,所述第一数据流中的数据按照所述参考数量个RS码字进行交织得到符号流数据之后,输出至多条虚拟通路上,再根据物理通路的数量进行比特复用,由多条物理通路传输至所述第一电路;由于多条物理通路上的第一数据流到达第一电路的时间有可能不同,所述将所述第一数据流中的数据填入到对应的BCH码字中之前,还包括:所述第一电路对所述第一数据流解复用,恢复出各条虚拟通路的数据;对所述各条虚拟通路的数据进行对齐,得到对齐后的数据;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述对齐后的数据填入到对应的BCH码字中。通过在进行BCH编码之前先将各条虚拟通路的数据进行对齐,之后再将对齐后的数据填入到对应的BCH码字中,以提高BCH编码的准确性。
结合第十一方面的第三种或第四种可能的实现方式,在第十一方面的第五种可能的实现方式中,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流每一行的前半部分数据按照顺序依次填入到所述第二数量个BCH码字的前第三数量个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述第二数量个BCH码字的后第三数量个BCH码字中,所述第三数量为所述第二数量的一半,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
结合第十一方面的第五种可能的实现方式,在第十一方面的第六种可能的实现方式中,所述第一目标数量为544,第一数量为2,所述第二数量为32,第二目标数量为360;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流每一行的前半部分数据按照顺序依次填入到32个BCH码字的前16个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述32个BCH码字的后16个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
结合第十一方面的第三种或第四种可能的实现方式,在第十一方面的第七种可能的实现方式中,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,所述第一数据流的每一列数据的开头或结尾的符号进行了顺序调换,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流的每一列数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
结合第十一方面的第七种可能的实现方式,在第十一方面的第八种可能的实现方式中,所述第一目标数量为544,第一数量为2,所述第二数量为32,第二目标数量为360;所述将 所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流的每一列数据按照顺序依次填入到32个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
结合第十一方面的第三种或第四种可能的实现方式,在第十一方面的第九种可能的实现方式中,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流中的数据进行解交织,得到原始的RS码字;将所述原始的RS码字按照第四数量个RS码字进行交织,得到交织后的数据,所述第四数量大于所述第一数量;将所述交织后的数据的每一行数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第四数量个符号来自不同的RS码字。
其中,上述第十一方面的第五至第九种可能的实现方式中,第一目标数量可以基于RS码型确定,例如,针对RS(544,514),第一目标数量为544,则每个RS码字包括544个符号。第二目标数量可以基于第一目标数量确定,针对RS(544,514),可以采用BCH(360,340),则第二目标数量为360。又例如,针对RS(528,514),第一目标数量为528,则每个RS码字包括528个符号。此外,本申请实施例提供的方法在于采用RS和BCH两级编码,对于采用哪种RS码型以及哪种BCH码型,本申请实施例对此不加以限定。另外,上述第一目标数量个符号和第二目标数量个符号既可以是10-bit(比特)符号,也可以是1bit符号或者其他长度的符号,本申请实施例对符号的长度不加以限定。
结合第十一方面的任一种可能的实现方式,在第十一方面的第十种可能的实现方式中,所述第一电路对所述第一数据流进行BCH编码,得到第二数据流之后,还包括:通过媒介将所述第二数据流采用多条物理通路传输至第三电路,或者,通过所述媒介将所述第二数据流以时分复用的方式采用一条物理通路传输至所述第三电路。
第十二方面,提供了一种数据解码方法,所述方法包括:第三电路接收第一电路传输的第二数据流,所述第二数据流是采用RS码及BCH码进行编码得到的;采用所述BCH码对所述第二数据流进行解码,得到第一数据流;采用所述RS码对所述第一数据流进行解码,得到原始数据。
由于第一电路采用RS和BCH两级编码,因而提高了增益,使得数据被传输的距离能够更远,速度能够更快。当传输至第三电路后,第三电路按照相应的RS码和BCH码进行解码,从而使得数据能够被成功解码。
结合第十二方面,在第十二方面的第一种可能的实现方式中,所述第三电路接收第一电路传输的第二数据流,包括:通过媒介接收所述第一电路采用多条物理通路传输的所述第二数据流,或者,通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流。第一电路可以灵活地应用一条或多条物理通路传输第二数据流,第三电路可以按照第一电路发送第二数据流的方式来接收第二数据流。
结合第十二方面的第一种可能的实现方式,在第十二方面的第二种可能的实现方式中,所述采用所述BCH码对所述第二数据流进行解码,得到第一数据流之前,还包括:当通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流时,对所述第二数据流进行解复用;所述采用所述BCH码对所述第二数据流进行解码,得到第一数 据流,包括:采用所述BCH码对解复用之后的数据流进行解码,得到第一数据流。
结合第十二方面的第二种可能的实现方式,在第十二方面的第三种可能的实现方式中,所述采用BCH码对解复用之后的第二数据流进行解码之前,还包括:对解复用之后的第二数据流进行对齐;所述采用BCH码对解复用之后的第二数据流进行解码,得到第一数据流,包括:采用BCH码对对齐之后的第二数据流进行解码,得到第一数据流。通过在进行BCH解码之前先将解复用之后的第二数据流进行对齐,之后再采用BCH码对对齐后的第二数据流进行解码,以保证BCH解码的准确性。
第十三方面,提供了一种数据编码装置,所述装置包括:接收模块,用于接收第二电路通过以太网接口传输的第一数据流,所述第一数据流是采用RS码对原始数据进行编码得到的;编码模块,用于对所述第一数据流进行BCH编码,得到第二数据流。
结合第十三方面,在第十三方面的第一种可能的实现方式中,所述接收模块,用于从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;所述装置包括一个或多个BCH编码器,所述编码模块,用于当包括的BCH编码器的数量与所述物理通路的数量一致时,一个BCH编码器与一条物理通路对接,通过所述一个或多个BCH编码器对对应的物理通路传输的第一数据流进行BCH编码,得到第二数据流。
结合第十三方面,在第十三方面的第二种可能的实现方式中,所述接收模块,用于从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;所述装置包括一个或多个BCH编码器,还包括调度器,所述编码模块,用于当所述第一电路包括的BCH编码器的数量与所述物理通路的数量不一致时,通过所述调度器调度对应的BCH编码器对所述第一数据流进行BCH编码,得到第二数据流。
结合第十三方面的任一种可能的实现方式,在第十三方面的第三种可能的实现方式中,所述编码模块,用于将所述第一数据流中的数据填入到对应的BCH码字中,每个BCH码字中包括的连续参考数量个符号来自不同的RS码字。
结合第十三方面的第三种可能的实现方式,在第十三方面的第四种可能的实现方式中,所述第一数据流中的数据按照所述参考数量个RS码字进行交织得到符号流数据之后,输出至多条虚拟通路上,再根据物理通路的数量进行比特复用,由多条物理通路传输至所述装置;所述装置,还包括:解复用模块,用于对所述第一数据流解复用,恢复出各条虚拟通路的数据;对齐模块,用于对所述各条虚拟通路的数据进行对齐,得到对齐后的数据;所述编码模块,用于将所述对齐后的数据填入到对应的BCH码字中。
结合第十三方面的第三种或第四种可能的实现方式,在第十三方面的第五种可能的实现方式中,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述编码模块,用于将所述第一数据流每一行的前半部分数据按照顺序依次填入到所述第二数量个BCH码字的前第三数量个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述第二数量个BCH码字的后第三数量个BCH码字中,所述第三数量为所述第二数量的一半,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
结合第十三方面的第五种可能的实现方式,在第十三方面的第六种可能的实现方式中,所述第一目标数量为544,第一数量为2,所述第二数量为32,第二目标数量为360;所述编 码模块,用于将所述第一数据流每一行的前半部分数据按照顺序依次填入到32个BCH码字的前16个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述32个BCH码字的后16个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
结合第十三方面的第三种或第四种可能的实现方式中,在第十三方面的第七种可能的实现方式中,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,所述第一数据流的每一列数据的开头或结尾的符号进行了顺序调换,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述编码模块,用于将所述第一数据流的每一列数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
结合第十三方面的第七种可能的实现方式,在第十三方面的第八种可能的实现方式中,所述第一目标数量为544,第一数量为2,所述第二数量为32,第二目标数量为360;所述编码模块,用于将所述第一数据流的每一列数据按照顺序依次填入到32个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
结合第十三方面的第三种或第四种可能的实现方式中,在第十三方面的第九种可能的实现方式中,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述编码模块,用于将所述第一数据流中的数据进行解交织,得到原始的RS码字;将所述原始的RS码字按照第四数量个RS码字进行交织,得到交织后的数据,所述第四数量大于所述第一数量;将所述交织后的数据的每一行数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第四数量个符号来自不同的RS码字。
结合第十三方面的任一种可能的实现方式中,在第十三方面的第十种可能的实现方式中,所述装置,还包括:传输模块,用于通过媒介将所述第二数据流采用多条物理通路传输至第三电路,或者,通过所述媒介将所述第二数据流以时分复用的方式采用一条物理通路传输至所述第三电路。
第十四方面,提供了一种数据解码装置,所述装置包括:接收模块,用于接收第一电路传输的第二数据流,所述第二数据流采用RS码及BCH码进行编码;第一解码模块,用于采用所述BCH码对所述第二数据流进行解码,得到第一数据流;第二解码模块,用于采用所述RS码对所述第一数据流进行解码,得到原始数据。
结合第十四方面,在第十四方面的第一种可能的实现方式中,所述接收模块,用于通过媒介接收所述第一电路采用多条物理通路传输的所述第二数据流,或者,通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流。
结合第十四方面的第一种可能的实现方式,在第十四方面的第二种可能的实现方式中,所述装置,还包括:解复用模块,用于当通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流时,对所述第二数据流进行解复用;所述第一解码模块,用于采用所述BCH码对解复用之后的数据流进行解码,得到第一数据流。
结合第十四方面的第二种可能的实现方式,在第十四方面的第三种可能的实现方式中, 所述装置,还包括:对齐模块,用于对解复用之后的第二数据流进行对齐;所述第一解码模块,用于采用BCH码对对齐之后的第二数据流进行解码,得到第一数据流。
第十五方面,提供了一种数据传输设备,所述设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现本申请第十一方面或第十二方面的任一种可能的实施方式中的方法。
第十六方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第十一方面或第十二方面的任一种可能的实施方式中的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
第十七方面,提供了一种计算机程序(产品),所述计算机程序(产品)包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行上述第十一方面或第十二方面的任一种可能的实施方式中的方法。
第十八方面,提供了一种可读存储介质,可读存储介质存储程序或指令,当所述程序或指令在计算机上运行时,上述第十一方面或第十二方面的任一种可能的实施方式中的方法被执行。
第十九方面,提供了一种芯片,包括处理器,处理器用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述第十一方面或第十二方面的任一种可能的实施方式中的方法。
第二十方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述第十一方面或第十二方面的任一种可能的实施方式中的方法。
附图说明
图1为本申请实施例中一种应用场景示例的示意图;
图2为本申请实施例中一种数据传输方法的流程示意图;
图3为本申请实施例中一种数据分发方式示例的示意图;
图4为本申请实施例中一种数据分发方式示例的示意图;
图5为本申请实施例中一种数据分发方式示例的示意图;
图6为本申请实施例中一种数据分发方式示例的示意图;
图7为本申请实施例中一种示例性场景下的网络结构示意图;
图8为本申请实施例中一种数据传输方法的流程示意图;
图9为本申请实施例中一种数据传输方法的流程示意图;
图10为本申请实施例中一种编码方法的流程示意图;
图11为本申请实施例中一种数据传输方法的流程示意图;
图12为本申请实施例中一种数据传输方法的流程示意图;
图13为本申请实施例中一种数据传输方法的结构示意图;
图14为本申请实施例中一种数据传输方法的结构示意图;
图15为本申请实施例提供的实施环境示意图;
图16为本申请实施例提供的实施环境示意图;
图17为本申请实施例提供的数据编码方法流程图;
图18为本申请实施例提供的数据传输过程示意图;
图19为本申请实施例提供的数据传输过程示意图;
图20为本申请实施例提供的BCH编码过程示意图;
图21为本申请实施例提供的BCH编码过程示意图;
图22为本申请实施例提供的BCH编码过程示意图;
图23为本申请实施例提供的BCH编码过程示意图;
图24为本申请实施例提供的数据解码方法流程图;
图25为本申请实施例提供的数据传输过程示意图;
图26为本申请实施例提供的采用4个码字进行交织的实验结果示意图;
图27为本申请实施例提供的数据编码装置的结构示意图;
图28为本申请实施例提供的数据编码装置的结构示意图;
图29为本申请实施例提供的数据编码装置的结构示意图;
图30为本申请实施例提供的数据解码装置的结构示意图;
图31为本申请实施例提供的数据解码装置的结构示意图;
图32为本申请实施例提供的数据解码装置的结构示意图;
图33为本申请实施例提供的数据传输设备的结构示意图;
图34为本申请实施例提供的数据传输设备的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的实施例进行解释,而非旨在限定本申请。
在使用FEC码的数据传输过程中,发送设备可以采用特定的FEC码型对原始数据进行编码之后再将编码得到的FEC码发送给接收设备,接收设备则可以按照同样的FEC码型对接收到的FEC码进行解码,从而得到原始数据。这样,即使传输信道引起了FEC码中某些位置出现误码,接收设备通过解码时根据FEC码中的校验位进行逆向计算,也可以得到误码前的原始数据,从而实现纠错功能。
在有些场景下,数据在传输过程中可能需要转换FEC码型。例如,作为一种增强型的FEC码型,级联FEC码采用一种或多种基础的FEC码型进行码型构造形成多级FEC编码,从而能够对传输数据提供更强的纠错保护。因此,设备间可以采用级联FEC码传输数据,以应对数据在进行高速率或远距离传输时被引入的噪声。但是,设备的原有数据传输接口所采用的原有FEC码型是标准规定的码型,如许多设备原有的以太网接口仅支持里德-所罗门(英文:Reed-Solomon,简称:RS)码。当设备应用于比标准规定的速率更高或者距离更远的数据传 输场景时,标准规定的FEC码型往往无法满足要求。因此,该设备就需要将要传输的数据从原有FEC码型转换成增益更高的FEC码。通常,在转换FEC码型时,采用原FEC码型编码的数据需要被解码成原始数据,然后再采用新FEC码型对原始数据进行编码。但这样的转换过程不仅会给数据传输设备带来额外的功耗,而且也会增大数据传输过程的时延。
为了解决上述问题,在本申请实施例中,两个芯片之间传输数据时,由于级联FEC码是一种能够为高速率和/或远距离的数据传输提供高增益的FEC码型且级联FEC码是由多级FEC码型级联而成的,当接收到采用第一FEC码型编码的第一数据流时,芯片可以不必先对第一数据流进行第一FEC码型的解码再将原始数据重新编码成级联FEC码,而是可以在第一数据流的基础上至少采用第二FEC码型再进行至少一次编码,从而就可以得到至少由第一FEC码型和第二FEC码型级联成的第二数据流,以获得更高的增益。因此,FEC码型的转换过程得以简化,FEC码型转换需要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
举例说明,本申请实施例可以应用到如图1所示的场景中。数据传输设备101中设置有芯片103和芯片105,数据传输设备102中设置有芯片107和芯片109。假设芯片103和芯片109都是支持第一FEC码型,但数据传输设备101与数据传输设备102之间的信道106需要采用级联FEC码进行数据传输,则芯片103可以采用第一FEC码型对原始数据进行编码而形成第一数据流,并通过信道104将第一数据流发送给芯片105。芯片105在接收到第一数据流之后,可以至少采用第二FEC码型对第一数据流再进行至少一次编码,得到至少由第一FEC码型和第二FEC码型级联成的第二数据流,并通过信道106将第二数据流发送给芯片107。芯片107在接收到第二数据流之后,可以至少采用第二FEC码型对第二数据流进行至少一次解码,得到采用第一FEC码型编码的第一数据流,并通过信道108将第一数据流发送给芯片109。芯片109在接收到第一数据流之后,可以采用第一FEC码型对第一数据流进行解码,得到原始数据。其中,第一FEC码型可以是以太网接口支持的RS码等FEC码型,第二FEC码型可以是博斯-乔赫里-霍克文黑姆(英文:Bose-Chaudhuri-Hocquenghem,简称:BCH)码等码型。需要说明的是,信道104、信道106和信道108均可以是具有干扰的物理通路,数据流在信道104、信道106和信道108中传输时均会产生误码。也就是说,芯片103向芯片105发送的第一数据流在信道104中传输时会产生误码,芯片105向芯片107发送的第二数据流在信道106中传输时会再产生误码,芯片107向芯片109发送的第一数据流在信道108中传输时会再产生误码。
在本申请中,“物理通路”和“物理介质”经常交替使用,本领域技术人员可以理解,“物理通路”是数据在“物理介质”中传递的路径。
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本申请实施例中一种数据传输方法和装置的具体实现方式。
图2为本申请实施例中一种数据传输方法200的流程示意图。该方法例如可以包括:
201、芯片1接收芯片2发送的第一数据流;所述第一数据流为采用第一前向纠错FEC码型编码的数据流。
具体实现时,芯片2可以采用第一FEC码型对原始数据进行编码,形成第一数据流并向芯片1发送。因此,芯片1接收到的第一数据流是已采用第一FEC码型编码的数据流,换言之,第一数据流是由第一FEC码型的码字块(英文:codeword)组成的码流。
其中,第一FEC码型可以是RS码、BCH码、阶梯(英文:Staircase)码、低密度奇偶校验(英文:low-density parity-check,简称:LDPC)码、涡轮(英文:Turbo)码、涡轮乘积码(英文:Turbo product code,简称:TPC)等码型。例如,在一种示例性的场景中,假设芯片2采用以太网接口与芯片1进行通信,则第一FEC码型可以是RS码。
可以理解的是,在第一FEC码型的码字块中包含有为原始数据提供的额外的校验码(英文:parity code),该校验码用于对数据传输过程中产生的误码进行纠错。例如,第一FEC码型可以是系统FEC码(英文:systematic FEC),也即,第一FEC码型的码字块可以包括原始数据和为该原始数据提供的校验码。
其中,第一FEC码型的码字块可以基于有限域进行处理。码字块可以划分成多个FEC符号(英文:symbol)块,针对码字块的处理可以是以FEC符号块为粒度。例如,在一种RS码中,一个5440比特的码字块中包括5140比特的原始数据和300比特的校验码。若采用伽罗华域(英文:Galois Field,简称:GF)(210)进行处理,每10比特数据形成一个FEC符号块,则一个码字块包括544个FEC符号块,即514个FEC符号块的原始数据和30个FEC符号块的校验码。又如,在另一种RS码中,一个5280比特的码字块中包括5140比特的原始数据和140比特的校验码。若采用GF(210)域进行处理,每10比特数据形成一个FEC符号块,则一个码字块包括528个FEC符号块,即514个FEC符号块的原始数据和14个FEC符号块的校验码。可以理解的是,对于连续发生的误码(英文:consecutive errors)或称突发误码(英文:burst errors),连续多比特的误码仅会体现为少量FEC符号块的误码,因此,采用FEC符号块为粒度对FEC码字块进行处理时FEC的纠错能力更强。
可以理解的是,芯片1和芯片2是两个不同的芯片,两者之间可以通过具有干扰的物理通路来传输数据,因此,芯片2向芯片1发送的第一数据流在该物理通路上传输时会受到干扰的影响而产生误码,可见,芯片1接收到的第一数据流是已经产生了误码的数据流。
202、所述芯片1对所述第一数据流再进行至少一次编码,得到第二数据流;其中,所述第二数据流为至少采用所述第一FEC码型和第二FEC码型编码的级联FEC码流。
具体实现时,对于采用第一FEC码型编码的第一数据流,芯片1可以不必采用第一FEC码型将第一数据流解码成原始数据,而是可以在第一数据流的基础上至少采用第二FEC码型再进行至少一次编码,从而形成至少由第一FEC码型和第二FEC码型级联而成的第二数据流。换言之,第二数据流可以是级联了第一FEC码型和第二FEC码型的级联FEC码流,即第二数据流是两级级联的FEC码流,或者,第二数据流也可以在第一FEC码型和第二FEC码型级联的基础上再级联一级或多级的级联FEC码流,即第二数据流是三级或三级以上级联的FEC码流。可以理解的是,若芯片2通过具有干扰的物理通路向芯片1发送的第一数据流,芯片1接收到的第一数据流是已经产生了误码的数据流,因此,芯片1是在不对已经产生了误码的第一数据流进行解码的情况下直接对已经产生了误码的第一数据流再进行至少一次编码,形成多级FEC级联的第二数据流。
其中,第二FEC码型可以是BCH码、RS码、Staircase码、LDPC码、Turbo码、TPC等码型。可以理解的是,第二FEC码型可以与第一FEC码型相同,或者,第二FEC码型可以与第一FEC码型不同。例如,第一FEC码型和第二FEC码型都可以是RS码,或者,第一FEC码型可以是RS码而第二FEC码型可以是BCH码。
需要说明的是,第二数据流是由最后一级编码所采用的FEC码型的码字块组成的码流。例如,若第二数据流是由第一FEC码型和第二FEC码型级联而成的数据流,第一级采用第一 FEC码型编码,第二级采用第二FEC码型编码,则第二数据流是由第二FEC码型的码字块组成的码流。由于第二数据流是在第一数据流的基础上采用第二FEC码型编码得到的,在第二FEC码型的码字块中包含有为第一数据流提供的额外的校验码。若第二FEC码型为系统码,则第二FEC码型的码字块包括第一数据流中的数据和为该数据提供的校验码。
在一些实施方式中,为了使得纠错能力更强,第一数据流中同一个码字块中的数据可以被编码到第二数据流中多个不同的码字块中,这样即使第二数据流中的少部分码字块不能正确解码,也不会影响第一数据流中的码字块正确解码。具体实现时,芯片1可以通过分发的方式,将第一数据流分发到n个不同的通道上,形成n条第三数据流,从而使得第一数据流中同一个码字块的数据被分发到多条不同的第三数据流中,其中n表示大于1的自然数。然后,芯片1可以分别对n条通道上的第三数据流再进行至少一次编码,形成第二数据流。例如,在图3的示例中,第一FEC码字块为第一数据流中的一个码字块,该码字块中的数据被分发到n条通道上的第三数据流中,每条通道上的第三数据流分别被编码成第二FEC码字块,形成n条第二FEC码流,这n条第二FEC码型的码流组成了第二数据流。其中,第一FEC码字块表示采用第一FEC码型编码得到的码字块,第二FEC码字块表示采用第二FEC码型编码得到的码字块,第二FEC码流表示由第二FEC码字块组成的数据流。
可以理解的是,第一数据流可以是一条通道上的数据流,也可以是由多条通道上的数据流组成,也即,第一数据流可以是一条码流,也可以是由多条码流组成。
若第一数据流是一条通道上的数据流,则第一数据流被分发成第三数据流,相当于一条数据流被分发成多条数据流。例如,在图4所示的示例中,假设n是大于1的自然数,第一数据流是一条通道上的第一FEC码流,经过分发处理之后形成n条通道上的第三数据流,每条通道上的第三数据流分别被编码成一条第二FEC码流,这n条FEC码流组成了第二数据流。其中,第一FEC码流表示由第一FEC码字块组成的数据流,第一FEC码字块表示采用第一FEC码型编码得到的码字块,第二FEC码流表示由第二FEC码字块组成的数据流,第二FEC码字块表示采用第二FEC码型编码得到的码字块。
若第一数据流是由多条通道上的数据流组成,则从第一数据流到第三数据流的分发相当于从多条数据流到多条数据流的分发,这种分发可以通过交织(英文:interleave)技术和/或复用(英文:multiplex)技术等分发策略来实现。例如,在图5所示的示例中,假设k、m和n均为大于1的自然数,第一数据流是由k条通道上的第一FEC码流组成,经过交织器(英文:interleaver)之后可以形成m条通道上的第四数据流,再经过比特复用器(英文:bit multiplexer)或符号复用器(英文:symbol multiplexer)等复用器之后可以形成n条通道上的第三数据流,每条通道上的第三数据流再分别被编码成一条第二FEC码流,这n条FEC码流组成了第二数据流。其中,第一FEC码流表示由第一FEC码字块组成的数据流,第一FEC码字块表示采用第一FEC码型编码得到的码字块,第二FEC码流表示由第二FEC码字块组成的数据流,第二FEC码字块表示采用第二FEC码型编码得到的码字块。
需要说明的是,多种分发方式可以用于将第一数据流分发成n条第三数据流。
作为一种示例,芯片1可以以比特为粒度对第一数据流进行分发处理,也即,第一数据流中的数据可以按照比特流被分发到n条第三数据流中。具体实现时,芯片1可以从第一数据流中获取一比特的数据,并根据分发策略从n条通道中为该数据选择一条通道,从而将该数据分发到该条通道上的第三数据流中。相应地,芯片1也可以以比特为粒度对第三数据流进行编码处理,也即,第三数据流中的数据可以按照比特流进行编码。
作为另一种示例,芯片1可以以FEC符号块为粒度对第一数据流进行分发处理,也即,第一数据流中的数据可以按照FEC符号流进行分发。具体实现时,芯片1可以从第一数据流中识别出一个FEC符号块,并根据分发策略从n条通道中为该FEC符号块选择一条通道,从而将该FEC符号块分发到该条通道上的第三数据流中。相应地,芯片1也可以以FEC符号块为粒度对第三数据流进行编码。具体实现时,芯片1可以从第三数据流中识别出一定数量的FEC符号块并编码到第二数据流中的同一个码字块中,因此,第一数据流中同一个FEC符号块的数据会被编码在第二数据流中的同一个码字块中。其中,FEC符号块可以通过对齐标记(英文:alignment marker,简称:AM)来进行识别。
作为又一种示例,芯片1可以以多个码字块为粒度对第一数据流进行分发处理。具体实现时,芯片1可以从第一数据流中识别出多个码字块,并按照分发策略将这多个码字块的数据分发到n条通道上的第三数据流中。其中,分发策略例如可以通过交织(英文:interleave)技术和/或多路复用(英文:multiplexer)技术来实现。此外,所述第一数据流可以是一条码流,即所述多个码字块可以是从一条码流中识别出的,或者,所述第一数据流可以是由多条码流组成,即所述k个码字块可以是从多条码流中识别出的,例如,所述第一数据流由k条码流组成,所述多个码字块可以是通过从每条码流中分别识别出一个码字块而得到的k个码字块。
为了便于第二数据流在同一芯片上解码成原始数据,芯片1可以将第一数据流中的k个码字块的全部数据作为第二数据流中的n个码字块的有效载荷,使得第一数据流中的k个码字块被编码成第二数据流中的n个码字块。具体实现时,芯片1可以从第一数据流中识别出k个码字块,并按照分发策略将这k个码字块的数据分发到n条通道上的第三数据流中。这k个码字块被分发到每条通道上的数据可以分别被编码成第二数据流中的一个码字块,从而在n条通道上编码得到第二数据流中的n个码字块。例如,在图6所示的示例中,假设k、m和n均为大于1的自然数,从第一数据流中识别出的k个第一FEC码字块被输入到交织器(英文:interleaver)中,交织器输出到m条通道上的数据再被输入到比特复用器(英文:bit multiplexer)或符号复用器(英文:symbol multiplexer)等复用器中,复用器则输出n条通道上的数据,每条通道上的数据再分别被编码成一个第二FEC码字块,从而得到了第二数据流中的n个第二FEC码字块。其中,第一FEC码字块表示采用第一FEC码型编码得到的码字块,可以通过AM来从第一数据流中进行识别。第二FEC码字块表示采用第二FEC码型编码得到的码字块。
其中,为了使得第一数据流中的k个码字块能够被编码成第二数据流中的n个码字块,第一数据流的k个码字块的全部数据量需要与第二数据流的n个码字块的有效载荷数据量相等。例如,假设第一数据流为RS码流且第二数据流为BCH码流,第一数据流的RS码字块包括5140比特的有效载荷和300比特的校验码,第二数据流的BCH码字块包括340比特的有效载荷和20比特的校验码,可见,4个RS码字块的全部数据量是21760比特,64个BCH码字块的有效载荷数据量也是21760比特,因此,第一数据流的4个RS码字块可以被编码成第二数据流的64个BCH码字块。
203、所述芯片1向芯片3发送所述第二数据流。
芯片3在接收到第二数据流之后,可以对所述第二数据流进行解码。这样就实现了芯片1与芯片3之间采用级联FEC码来传输数据。
作为一种示例,芯片3可以对所述第二数据流中包括第一FEC码型和第二FEC码型在内的所有FEC码型进行解码,从而得到原始数据。作为另一种示例,芯片3可以对所述第二数据流中除第一FEC码型之外的其他FEC码型进行解码,得到第一数据流并向芯片4,芯片4再对第一数据流中的第一FEC码型进行解码,从而得到原始数据。可以理解的是,芯片1和芯片3是两个不同的芯片,两者之间可以通过具有干扰的物理通路来传输数据。同样的,芯片3和芯片4是两个不同的芯片,两者之间可以通过物理通路来传输数据。因此,芯片1向芯片3发送的第二数据流在物理通路上传输时,会受到所述物理通路的干扰而产生误码,芯片3是在没有将已经产生了误码的第二数据流解码纠错成原始数据的情况下将级联FEC的第二数据流解码成采用第一FEC码型编码的第一数据流并发送给芯片4,芯片3向芯片4发送的第一数据流在物理通路上传输时会再受到干扰的影响而产生误码,从而芯片4将第一数据解码纠错成原始数据,可见,芯片1接收到的第一数据流是已经产生了误码的数据流。
其中,对于第二数据流中级联FEC码,每一级FEC码型的解码可以通过识别该级FEC码型的码字块并对识别出的码字块进行逆向计算来实现。例如,若第二数据流是由第一FEC码型和第二FEC码型级联而成的,则对第二数据流进行解码时,可以通过AM或自同步技术等方式从第二数据流中识别出第二FEC码型的码字块,对第二FEC码型的码字块进行逆向计算,从而得到第一数据流,然后,可以通过第二FEC码型的码字块与第一FEC码型的码字块之间的固定映射关系或AM等方式从第一数据流中识别出第一FEC码型的码字块,对第一FEC码型的码字块进行逆向计算,从而得到原始数据。
在一种示例性的场景中,如图7所示,芯片1和芯片2可以是位于第一数据传输设备内的两个芯片,芯片3和芯片4可以是位于第二数据传输设备内的一个芯片。第一数据传输设备与第二数据传输设备之间需要采用级联FEC码来传输数据,但芯片2和芯片4仅支持第一FEC码型而不支持级联FEC码,因此,芯片1对芯片2输出的数据流再进行编码形成级联FEC码流并发送给芯片3,芯片将级联FEC码流解码成第一FEC码型的数据流再输出给芯片4,这样芯片1与芯片3之间就可以通过级联FEC码来传输数据,从而实现了第一数据传输设备与第二数据传输设备之间通过级联FEC码来传输数据。其中,芯片1可以是电芯片,例如可以是中继电芯片或光模块的电芯片,如数字信号处理(英文:Digital Signal Processing,简称:DSP)芯片。芯片2可以为采用以太网接口的芯片,如物理(英文:physical,简称:PHY)层芯片。芯片3可以是电芯片,例如可以是中继电芯片或光模块的电芯片,如DSP芯片。芯片4可以为采用以太网接口的芯片,如物理(英文:physical,简称:PHY)层芯片。
需要说明的是,本实施例提供的级联FEC码在仿真验证中达到了较好的纠错效果。假设在图7所示的示例性场景中进行仿真验证,在芯片2与芯片1之间的信道、芯片1与芯片3之间的信道以及芯片3与芯片4之间的信道中插入加性高斯白噪声(英文:Additive White Gaussian Noise,简称:AWGN),从而形成仿真环境。在该仿真环境下:芯片2向芯片1发送第一FEC码型的数据流,芯片1将第一FEC码型的数据流转换成级联FEC码流再发送给芯片3,芯片3将级联FEC码流转换成第一FEC码型的数据流再发送给芯片4。此时,芯片4能够对接收到的第一FEC码型的数据流正确解码;芯片2向芯片1发送第一FEC码型的数据流,芯片1将第一FEC码型的数据流直接发送给芯片3,芯片3将第一FEC码型的数据流直接发送给芯片4,此时,芯片4无法对接收到的第一FEC码型的数据流正确解码。
在上述仿真环境中进行的仿真验证,结果表明:与芯片1先对第一FEC码型的码流进行解码再进行多级编码形成的级联FEC码流相比,芯片1在不对第一FEC码型的码流进行解码 的情况下采用第二FEC码型对第一FEC码型的码流再进行一次编码而形成的级联FEC码流,不仅能够节省60至100ns的时延,而且也能够达到9dB以上的净编码增益(英文:net coding gain,简称:NCG)。
在本实施例中,对于芯片2向芯片1发送的采用第一FEC码型编码的第一数据流,芯片1可以不必先采用第一FEC码型对第一数据流进行解码再将原始数据重新编码成级联FEC码,而是可以在第一数据流的基础上至少采用第二FEC码型再进行至少一次编码,从而就可以得到至少由第一FEC码型和第二FEC码型级联成的第二数据流。因此,FEC码型的转换过程得以简化,FEC码型转换时所要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
图8为本申请实施例中一种数据传输方法800的流程示意图。该方法例如可以包括:
801、芯片3接收芯片1发送的第二数据流;所述第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流;
802、所述芯片3对所述第二数据流进行至少一次解码,形成第一数据流;所述第一数据流为采用所述第一FEC码型编码的数据流;
803、所述芯片3向芯片4发送所述第一数据流。
芯片4在接收到第一数据流之后,可以按照第一FEC码型对第一数据流进行解码,从而得到原始数据。
其中,所述第一FEC码型可以是RS码、BCH码、阶梯码、LDPC码、Turbo码、TPC等码型,所述第二FEC码型可以是BCH码、RS码、Staircase码、LDPC码、Turbo码、TPC等码型。
在一个示例性的场景中,所述芯片1可以位于第一数据传输设备内,所述芯片3和所述芯片4可以位于第二数据传输设备内,所述芯片3和所述芯片1可以为电芯片。例如中继电芯片或光模块的电芯片,所述芯片4可以为采用以太网接口的芯片。
可以理解的是,本实施例对应于第二数据流的解码过程,而图2所示的实施例对应于第二数据流的编码过程,因此,本实施例相关的各种具体实施方式,如第一数据流、第二数据流、第一FEC码型、第二FEC码型、芯片1、芯片3、芯片4等的具体实施方式,均可以参见图2所示的实施例的介绍,即图8对应的实施例的方法为图2对应的实施例所介绍的编码的逆向解码的方案,本领域技术人员可以理解,本申请不再赘述。
在本实施例中,对于芯片1向芯片3发送的至少由第一FEC码型和第二FEC码型级联而成的第二数据流,芯片3可以采用除第一FEC码型之外的其他FEC码型对第二数据流进行解码,形成采用第一FEC码型编码的第一数据流并向芯片4发送,而不必将第二数据流解码成原始数据之后再重新编码成第一FEC码型的数据流向芯片4发送。因此,FEC码型的转换过程得以简化,FEC码型转换时所要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
下面通过一个具体场景示例,介绍本申请实施例提供的数据传输方法在具体场景中的应用示例。在该具体场景示例中,第一数据传输设备包括第一PHY层芯片和第一光模块,第一光模块上具有第一DSP芯片,第二数据传输设备包括第二PHY层芯片和第二光模块,第二光模块上具有第二DSP。第一数据传输设备与第二数据传输设备之间采用级联FEC码传输数据, 而第一PHY层芯片和第二PHY层芯片支持RS码但不支持级联FEC码。在该具体场景下,如图9所示,第一数据传输设备与第二数据传输设备之间的数据传输方法900例如可以包括:
901、第一PHY芯片采用RS码对原始数据进行一次编码,形成RS码流。
902、第一PHY芯片向第一DSP发送RS码流。
903、第一DSP采用BCH码对RS码流再进行一次编码,形成BCH码流。
其中,该BCH码流实际上是由RS码与BCH码级联而成的级联FEC码流。
904、第一DSP向第二DSP发送BCH码流。
905、第二DSP采用BCH码对BCH码流进行一次解码,形成RS码流。
906、第二DSP向第二PHY芯片发送RS码流。
907、第二PHY芯片采用RS码对RS码流再进行一次解码,得到原始数据。
在本实施例中,第一DSP可以不必先采用RS码对RS码流进行解码再将原始数据重新编码成级联FEC码流,而是可以在RS码流的基础上采用BCH码再进行一次编码,形成RS码与BCH码级联而成的级联FEC码流,从而使得第一DSP与第二DSP之间可以采用级联FEC码流来传输数据,并且,第二DSP可以不必将级联FEC码流解码成原始数据之后再重新编码成RS码流,而是可以采用BCH码对级联FEC码流进行一次解码来形成RS码流,从而使得第二PHY芯片可以接收到RS码流。因此,FEC码型的转换过程得以简化,FEC码型转换时所要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
图10为本申请实施例中一种编码方法1000的流程示意图。该方法1000用于采用第二FEC码型对第一FEC码型的k个码字块进行编码,形成第二FEC码型的n个码字块。具体地,该方法1000可以包括:
1001、从第一数据流中识别出k个第一码字块。
其中,第一数据流为采用第一FEC码型编码的数据流,因此,第一数据流中的第一码字块为第一FEC码型的码字块。第一码字块可以通过AM来从第一数据流中进行识别
1002、将所述k个第一码字块的数据分发到n条通道上。
其中,分发的策略可以通过交织(英文:interleave)技术和/或多路复用(英文:multiplexer)技术来实现。例如,k个第一FEC码字块可以被输入到交织器(英文:interleaver)中,交织器输出到m条通道上的数据再被输入到比特复用器(英文:bit multiplexer)或符号复用器(英文:symbol multiplexer)等复用器中,复用器则输出n条通道上的数据。
1003、在每条通道上,采用第二FEC码型对从所述k个第一码字块中分到的数据进行编码,形成一个第二码字块,从而在n条通道上得到第二数据流中的n个第二码字块。
其中,在每条通道上,从所述k个第一码字块的数据是作为有效载荷被编码到一个第二码字块中的,也即,该第二码字块的有效载荷即是该条通道上从所述k个第一码字块中分到的数据。因此,n条通道上编码出的n个第二码字块的全部有效载荷即是k个第一码字块的全部数据,也就是说,k个第一码字块的全部数据量需要与n个第二码字块的有效载荷数据量相等。
在本实施例中,由于n个第二码字块中的有效载荷即是k个码字块中的全部数据,因此,这n个第二码字块就可以直接按照第二FEC码型和第一FEC码型解码成原始数据,这样便于在同一个芯片上进行第一FEC码型和第二FEC码型的解码操作。
图11为本申请实施例中一种数据传输方法1100的结构示意图。该方法1100包括:
1101、第一芯片接收第二芯片发送的第一数据流;所述第一数据流为采用第一前向纠错FEC码型编码的数据流;
1102、所述第一芯片对所述第一数据流再进行至少一次编码,得到第二数据流;其中,所述第二数据流为至少采用所述第一FEC码型和第二FEC码型编码的级联FEC码流。
在一些可能的实现方式中,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或涡轮乘积码TPC。
在一些可能的实现方式中,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
在一些可能的实现方式中,所述第一芯片对所述第一数据流再进行至少一次编码,形成第二数据流,包括:
所述第一芯片将所述第一数据流分发成n条第三数据流;其中,所述第一数据流中同一个码字块的数据被分发到不同的所述第三数据流中;
所述第一芯片分别对所述多条第三数据流再进行至少一次编码,形成所述第二数据流。
在一些可能的实现方式中,从所述第一数据流中识别出来的k个码字块被分发到n条第三数据流中,每一条所述第三数据流中属于所述k个码字块的数据被编码成所述第二数据流中的一个码字块;
其中,所述第一数据流中k个码字块所包含的全部数据量与所述第二数据流中n个码字块所包含的有效载荷数据量相等。
在一些可能的实现方式中,所述第一数据流中的数据按照FEC符号块进行分发,所述第一数据流中同一个FEC符号块的数据被编码在所述第二数据流中的同一个码字块中。
在一些可能的实现方式中,所述第一数据流中的数据按照比特流进行分发,所述第三数据流中的数据按照比特流进行编码。
在一些可能的实现方式中,所述第一芯片和所述第二芯片位于同一数据传输设备内,所述第一芯片为电芯片,所述第二芯片为采用以太网接口的芯片。
可以理解的是,第一芯片即是数据传输方法200中提及的芯片1,第二芯片即是数据传输方法200中提及的芯片2,第三芯片即是数据传输方法中提及的芯片3,因此,本实施例中第一芯片、第二芯片、第三芯片执行操作的各种具体实施例方式,可以参见图2所示的数据传输方法200中对芯片1、芯片2、芯片3的介绍,本实施例不再赘述。
在本实施例中,对于芯片2向芯片1发送的采用第一FEC码型编码的第一数据流,芯片1可以不必先采用第一FEC码型对第一数据流进行解码再将原始数据重新编码成级联FEC码,而是可以在第一数据流的基础上至少采用第二FEC码型再进行至少一次编码,从而就可以得到至少由第一FEC码型和第二FEC码型级联成的第二数据流。因此,FEC码型的转换过程得以简化,FEC码型转换时所要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
图12为本申请实施例中一种数据传输方法1200的结构示意图。该方法1200包括:
1201、第一芯片接收第二芯片发送的第二数据流;所述第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流;
1202、所述第一芯片对所述第二数据流进行至少一次解码,形成第一数据流;所述第一数据流为采用所述第一FEC码型编码的数据流;
1203、所述第一芯片向第三芯片发送所述第一数据流。
在一些可能的实现方式中,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
在一些可能的实现方式中,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
在一些可能的实现方式中,所述第一数据流用于被所述第三芯片按照所述第一FEC码型进行解码。
在一些可能的实现方式中,所述第二芯片位于第一数据传输设备内,所述第一芯片和所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二芯片为电芯片,所述第三芯片为采用以太网接口的芯片。
可以理解的是,第一芯片即是数据传输方法200中提及的芯片3,第二芯片即是数据传输方法200中提及的芯片1,第三芯片即是数据传输方法中提及的芯片4,因此,本实施例中第一芯片、第二芯片、第三芯片执行操作的各种具体实施例方式,可以参见图2所示的数据传输方法200中对芯片3、芯片1、芯片4的介绍,本实施例不再赘述。
在本实施例中,对于第二芯片向第一芯片发送的至少由第一FEC码型和第二FEC码型级联而成的第二数据流,第一芯片可以采用除第一FEC码型之外的其他FEC码型对第二数据流进行解码,形成采用第一FEC码型编码的第一数据流并向第三芯片发送,而不必将第二数据流解码成原始数据之后再重新编码成第一FEC码型的数据流向第三芯片发送。因此,FEC码型的转换过程得以简化,FEC码型转换时所要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
图13为本申请实施例中一种数据传输装置1300的结构示意图。该装置1300为第一芯片,包括:
接收器1301,用于接收第二芯片发送的第一数据流;所述第一数据流为采用第一前向纠错FEC码型编码的数据流;
编码器1302,用于对所述第一数据流再进行至少一次编码,得到第二数据流;其中,所述第二数据流为至少采用所述第一FEC码型和第二FEC码型编码的级联FEC码流。
在一些可能的实现方式中,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
在一些可能的实现方式中,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
在一些可能的实现方式中,所述编码器1302,具体用于:
将所述第一数据流分发成n条第三数据流;其中,所述第一数据流中同一个码字块的数据被分发到不同的所述第三数据流中;
分别对所述多条第三数据流再进行至少一次编码,形成所述第二数据流。
在一些可能的实现方式中,从所述第一数据流中识别出来的k个码字块被分发到n条第三数据流中,每一条所述第三数据流中属于所述k个码字块的数据被编码成所述第二数据流中的一个码字块;
其中,所述第一数据流中k个码字块所包含的全部数据量与所述第二数据流中n个码字块所包含的有效载荷数据量相等。
在一些可能的实现方式中,所述第一数据流中的数据按照FEC符号块进行分发,所述第一数据流中同一个FEC符号块的数据被编码在所述第二数据流中的同一个码字块中。
在一些可能的实现方式中,所述第一数据流中的数据按照比特流进行分发,所述第三数据流中的数据按照比特流进行编码。
在一些可能的实现方式中,所述第一芯片和所述第二芯片位于同一数据传输设备内,所述第一芯片为电芯片,所述第二芯片为采用以太网接口的器件。
可以理解的是,图11所示的装置1100即是图2所示的实施例中提及的芯片1,因此,本实施例中装置1100的各种具体实施例方式,可以参见图2所示的实施例对芯片1的介绍,本实施例不再赘述。
在本实施例中,对于第二芯片向第一芯片发送的采用第一FEC码型编码的第一数据流,第一芯片可以不必先采用第一FEC码型对第一数据流进行解码再将原始数据重新编码成级联FEC码,而是可以在第一数据流的基础上至少采用第二FEC码型再进行至少一次编码,从而就可以得到至少由第一FEC码型和第二FEC码型级联成的第二数据流。因此,FEC码型的转换过程得以简化,FEC码型转换时所要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
图14为本申请实施例中一种数据传输装置1400的结构示意图。该装置1400具体为第一芯片,包括:
接收器1401,用于接收第二芯片发送的第二数据流;所述第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流;
解码器1402,用于对所述第二数据流进行至少一次解码,形成第一数据流;所述第一数据流为采用所述第一FEC码型编码的数据流;
发送器1403,用于向第三芯片发送所述第一数据流。
在一些可能的实施方式中,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
在一些可能的实施方式中,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
在一些可能的实施方式中,所述第一数据流用于被所述第三芯片按照所述第一FEC码型进行解码。
在一些可能的实施方式中,所述第二芯片位于第一数据传输设备内,所述第一芯片和所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二芯片为芯片,所述第三芯片为采用以太网接口的器件。
可以理解的是,图14所示的装置1400即是图2所示的实施例中提及的芯片3,因此,本实施例中装置1400的各种具体实施例方式,可以参见图2所示的实施例对芯片3的介绍,本实施例不再赘述。
在本实施例中,对于芯片1向芯片3发送的至少由第一FEC码型和第二FEC码型级联而成的第二数据流,芯片1可以采用除第一FEC码型之外的其他FEC码型对第二数据流进行解码,形成采用第一FEC码型编码的第一数据流并向芯片3发送,而不必将第二数据流解码成 原始数据之后再重新编码成第一FEC码型的数据流向芯片3发送。因此,FEC码型的转换过程得以简化,FEC码型转换时所要耗费的时延及设备功耗都得以减小,从而数据传输效率得以提高。
此外,本申请实施例还提供了一种通信方法,该通信方法包括:前述数据传输方法1100以及前述数据传输方法1200。
此外,本申请实施例还提供了一种通信系统,该通信系统包括前述数据传输装置1300以及前述数据传输装置1400。
此外,本申请实施例还提供了一种网络设备,该网络设备包括前述数据传输装置1300或1400。
此外,本申请实施例还提供了一种数据传输系统,包括前述网络设备。
此外,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例的方法实施例中所述的数据传输方法1100或1200。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得该计算机或处理器执行如本申请实施例的方法实施例中所述的数据传输方法1100或1200。
在数据传输过程中,通路的损耗和噪声限制了数据传输的速率和距离。而FEC的出现,为传输中的数据提供了纠错保护,使通路的传输能力逐渐逼近香农极限(Shannon Limit),从而能够提高通路中数据传输速率以及传输距离。本申请通过多级FEC码级联的方式,进一步提高增益,从而提高数据传输速率及传输距离。香农极限是经过香农定理证明的在某通路中可传输的数据速率存在一个不可超越的上限。
其中,FEC是一种差错控制方式,FEC原理在于通过某种方法为被传递的数据提供额外的校验位(parity code)。FEC有多种,比如里德-所罗门前向纠错码(Reed-Solomon FEC,RS-FEC),博斯-乔赫里-霍克文黑姆BCH前向纠错码(Bose–Chaudhuri–Hocquenghem FEC,BCH FEC),Fire码(法尔码),涡轮(turbo)码,低密度奇偶校验码(low density parity check code,LDPC)等等。这些FEC可以由不同的码长、不同开销比例来获得不同的增益。
此外,不同的FEC有不同的计算方法。有些FEC中,原始数据不会被改变,仅仅通过增加校验位,这种FEC被称为系统码(systematic FEC)。针对系统码,Parity code和原始数据一起在通路中被发送到接收端,Parity code和原始数据在通路中传输时,原始数据或者parity code中的某些位置可能出现误码,在接收端通过逆向计算可以获得发生误码前的原始数据。
由于FEC能够提高通路中数据传输速率及传输距离,因而被广泛应用于数据传输技术中。Ethernet接口是世界上广泛被使用的数据传输接口,随着速率迅速提升,FEC在其中起到了重要作用。例如,针对10吉比特以太网(Gigabit Ethernet,GbE)的接口,其中加入了FEC,当时是一种循环码(Cyclic code),数据长度2080比特,校验位32比特,从而构成了FC(2112,2080)FEC编码。该编码可以纠正发生在背板传输中的常见误码,例如,Firecode的一个码块长度是2080比特数据和32位校验码,基于该Firecode的纠错能力,Firecode能够纠正的常见误码是一处最长可达11比特的突发错误(burst error)。而在100GbE标准制定的过程中,业界引入了更强的FEC编码–RS FEC,如KR4FEC和KP4FEC都是RS-FEC, 其码型分别为RS(528,514)和RS(544,514)。KR4FEC和KP4FEC这两个FEC都是基于GF(2 10)域进行计算的,每个符号(symbol)包含了10-bit(比特)数据,所有的计算都以符号为单位。KP4FEC每个码字(code word)里面有原始数据信息对应的514个FEC symbol和校验位对应的30个FEC symbol,即5140bits的原始数据信息和300bits的校验位。KR4FEC每个码字(code word)里面有原始数据信息对应的514个FEC symbol和校验位对应的14个FEC symbol,即5140bits的原始数据信息和140bits的校验位。使用FEC symbol的一个优势在于对于连续发生的误码(Consecutive errors,也称为突发错误,burst errors),纠错能力强。比如,连续20bit错误不会扩展到3个以上的symbol里,对于解码器看来,仅仅是至多3个错误symbol。
以KP4FEC为例,其在纠后误码率Post-FEC BER=1×10 -13的情况下,大约有6.5dB的净增益(net coding gain,NCG),即在使用该FEC的情况下,数据达到该比特误码率(bit error ratio,BER)水平,所需的信噪比(signal-to-noise ratio,SNR)比不使用FEC所需的SNR要求低,比如业界普遍认为所需的信噪比比不使用FEC所需的SNR要求低约6.5dB。这就大大提高了信号可以传递的距离。
然而,随着速率的不断提高,传输距离不断增加,对FEC的要求也越来越高。但是与此同时,更强的FEC往往需要更多校验位,从而使数据所需带宽更高,而串行器/解串器(serializer/deserializer)速率是有限制的,不同的设计,甚至会有不同的频率点要求,这对FEC的选择也有了一定限制。比如在100Gb/s传输速率上,业界往往采用的速率一般在103.125G,106.25G等。
上面提到了KR4FEC和KP4FEC,在400GbE上,RS(544,514)也被使用,并且出于对突发误码的应对,采用了两个码字进行交织(interleave)再传输的方式。该方式下,可以使得出现在链路上的突发错误(burst errors)有较大概率被分摊到两个FEC symbol上,然后被分配到两个code word中,从而减少每个code word中错误的symbol数量。该方式可以增强FEC的性能,可以成功纠错单个code word无法纠正的错误。交织的使用对于有突发错误的通路尤其有效。然而,以太网接口在光模块连接的情况下,需要考虑到光模块的设计,所以往往要求数据在光模块侧不需要进行特别复杂的处理。
对此,本申请实施例提供了一种数据编码方法,该方法可应用于当前的以太网接口以及将来有可能出现的以太网接口。例如,本申请所应用的以太网接口包括10GBASE-T、100GBASE-LR4、200GBASE-SR4等速率的电接口或者光接口,还包括附接单元(attachment unit interface,AUI)接口,也包括100GBASE-CR1,400GBASE-KR4等接口。此外,本申请实施例提供的方法对单段通路或多段通路均可适用。其中,单段通路和多段通路的区别在于整个数据传递的过程中,中间是否经过有源电路,还是全部通过介质传播。如果数据从发送端到接收端,传递过程中经过的全部都是被动介质,比如PCB电路板,光纤,那么认为这是单段通路。如果发送端到接收端之间经过了其他的电路、光电转换装置等,则以该其他的电路、光电转换装置等为分界点划分为多段通路。不同的通路可能具有不同的通路特征,包括突发误码行为等。
参见图15,该数据编码方法的实施环境包括第二电路和第一电路。第二电路可设置于数据传输设备1中,第一电路可设置于数据传输设备2中。以第二电路作为数据发送端,第一电路为数据接收端为例,第二电路包括支持以太网接口的电路,如支持标准400GbE接口的电路。
第二电路获取从媒体访问控制(media access control,MAC)层接收RS原始数据,由某个媒介独立接口(media independent interface,MII)传输至物理编码子层(physical coding sublayer,PCS)。其中,原始数据在PCS进行编码和速率匹配之后,以256B(比特)或者257B来进行转码(transcode),转码之后再对转码之后的数据依次进行扰码(scramble)和对齐符号插入。对齐符号插入是指向扰码后的数据中插入对齐标志(alignment marker,AM),通过AM标识对齐。不同虚拟通道之间的AM标识可以不同,从而能够基于AM来区分不同虚拟通道上的数据,后续编码时可通过AM对齐来确定FEC码字的边界或者FEC符号的边界。对齐之后进行FEC编码前数据分发,从而将数据分发到对应的RS编码器。第二电路包括一个或多个RS编码器。以400GbE接口为例,第二电路的MAC层收到的RS原始数据经过FEC编码后,得到2个RS(544,514)码字,如图15中的FEC-CW1和FEC-CW2。之后,再将该2个RS码字进行交织。在400GbE上,通过使用RS(544,514)来应对突发误码,通过采用两个编码器进行编码,将结果进行交织(interleave)再传输的方式,可以使得出现在物理通路上的突发错误被分摊到两个FEC symbol上,然后被分配到两个code word中,从而减少每个code word中错误的symbol数量。该方式可以增强FEC的性能,可以成功纠错单个code word无法纠正的错误。因此,交织的使用对于有突发错误的通路有明显的效果。此外,作为一种可能的实现方式,PCS可采用IEEE 802.3标准,比如IEEE 802.3-2005以及其他版本的IEEE 802.3标准,进行上述编码、转码及AM插入等功能。在其他速率如25GbE、50GbE及100GbE中,编码、转码、扰码及AM插入等顺序有所不同,参见IEEE 802.3-2018标准。
进一步地,将该2个RS码字进行交织之后,将交织后的数据分发到虚拟通路(virtual lane,标准中称为PCS lane,也可以称为逻辑通道)上。以16条虚拟通道为例,支持16×25G,8×50G或者4×100G输出模式。通过虚拟通路将数据传输至物理介质接入子层(physical medium attachment sublayer,PMA),由PMA进行比特复用(bit-mux),从而将多条虚拟通路上传输的数据复用到一条或多条物理通路(physical lane)。以图15所示为例,虚拟通路的数量为m,物理通路的数量为n,在PMA实现m:n的复用(multiplex,MUX)。关于m和n的大小,本申请实施例不加以限定,即本申请实施例不对虚拟通路及物理通路的数量加以限定。可以根据物理通路的数量确定PMA中进行复用的规格,实现将数据按照比特流的方式复用到物理通路上。例如,IEEE 802.3bs标准中已经定义了400GbE BASE-LR8,采用的是8条并行光路,每条支持50G速率,这里的“50G速率”是指传输净荷的速率,包括开销的传输速率为53.125Gbps;802.3bs中也定义了400GBASE-DR4,采用的是4条并行光路,每条支持100G速率,这里的“100G速率”是指传输净荷的速率,不包括开销,比如FEC的开销等,包括开销的传输速率约为106.25Gbps;而802.3cu项目,则是采用4个波长采用WDM方式复用到一条光路,每个波长承载100G速率。在本申请中,如非特别限定,提到的“传输速率”是指传输净荷的速率。
在进行虚拟通路到物理通路的复用之后,第二电路通过物理通路向第一电路传输第一数据流,即通过以太网接口向第一电路传输第一数据流,该第一数据流即为经过RS编码的数据。第一电路接收到第一数据流之后,可通过BCH编码器对第一数据流进行BCH编码,得到第二数据流。之后分发到物理通路上,经过PMA和物理介质关联层(physical media dependent,PMD)传输到媒介,由媒介将第二数据流传输至其他接收端,如第三电路。其中,媒介包括但不限于光纤、背板或者铜缆等。
图15所示的实施环境中,第二电路中传输数据的虚拟通路为第一段通路,第二电路和第一电路之间传输第一数据流的物理通路为第二段通路。第一电路作为数据接收端,可以不识别FEC code word或者FEC symbol的边界,第一电路接收到第一数据流之后,将第一数据流作为原始数据,按照比特流进行BCH编码。例如,该方法可适用于第二段通路存在较多随机错误的情况。
作为一种可选的实施环境,针对第二电路通过多条物理通路向第一电路传输第一数据流的情况,由于多条物理通路之间的数据会存在偏斜(skew)。例如,第一数据流在从第二电路通过电路板或者线缆抵达第一电路的时候,同时发出的数据在各条物理通路上到达第一电路的时间不尽相同。因此,本申请实施例提供的方法在对第一数据流进行BCH编码前,先重新对齐这些数据。该种情况下,实施环境可如图16所示。在图15所示方案的基础上,在第一电路中,BCH编码器处理所述第一数据流之前,在PMA层对从多条物理通路收到的数据进行对齐。例如,对从多条物理通路收到的数据构成的第一数据流解复用,恢复出各条虚拟通路的数据。即将从n条物理通路收到的数据转换为m组数据,再对m组数据进行对齐。例如,参见上述对图15的介绍,由于第一数据流被传输到第一电路之前,通过AM标识对不同虚拟通道上的数据进行了区分,因而在对第一数据流进行BCH编码前,能够根据AM对各条虚拟通路的数据进行对齐,得到对齐后的数据。之后,再将对齐后的第一数据流进行FEC编码前数据分发,分发到对应的BCH编码器进行BCH编码。
无论是上述图15所示的实施环境,还是上述图16所示的实施环境,针对第一电路与第二电路之间的数据传输过程,本申请实施例提供了一种数据编码方法,该方法可应用于上述第一电路和第二电路。参见图17,该方法包括如下几个步骤:
步骤1701,第二电路获取原始数据,采用RS码对原始数据进行编码,基于编码后的RS码字得到第一数据流。
如上述对图15所示的实施环境的介绍,第二电路从MAC层获取用于RS编码的原始数据。由某个MII传输至PCS。其中,原始数据在PCS层进行编码和速率匹配之后,以256B(比特)或者257B来进行转码,转码之后再依次进行扰码和对齐符号插入。对齐之后进行FEC编码前数据分发,从而将数据分发到对应的RS编码器,由RS编码器实现对原始数据进行编码,得到RS码字,从而基于编码后的RS码字得到第一数据。
步骤1702,第二电路通过以太网接口将第一数据流传输至第一电路。
如上述对图15所示的实施环境的介绍,通过RS编码器编码得到2个RS码字之后,对2个RS码字进行交织,将交织后的数据分发到虚拟通路上。通过虚拟通路将数据传输至PMA,由PMA进行比特复用,从而实现由虚拟通路复用到一条或多条物理通路。也就是说,第二电路通过以太网接口将第一数据流传输至第一电路时,可以通过一条或多条物理通路来传输该第一数据流。
步骤1703,第一电路接收第二电路通过以太网接口传输的第一数据流。
基于上述第二电路传输第一数据流的方式,在一种可能的实施方式中,第一电路接收第二电路通过以太网接口传输的第一数据流,包括:第一电路从多个物理通路接收第二电路通过以太网接口传输的第一数据流。
在另一种可能的实施方式中,第一电路接收第二电路通过以太网接口传输的第一数据流,包括:第一电路从多个物理通路接收第二电路通过以太网接口传输的第一数据流。
步骤1704,第一电路对第一数据流进行BCH编码,得到第二数据流。
第一电路接收到第一数据流之后,可对第一数据流再次进行FEC编码,此次以BCH编码为例,以通过级联编码的方式提高增益。在一种可能的实施方式中,第一电路包括一个或多个BCH编码器,第一电路通过一条或多条物理通路接收到第一数据流。其中,BCH编码器的数量与物理通路的数量一致。第一电路接收到第一数据流之后,每条物理通路将该物理通路上传输的第一数据流发送至与该物理通路连接的BCH编码器,由BCH编码器进行BCH编码。
以图18所示的数据传输实施环境为例,图18中,以第二电路支持400GbE接口,按照802.3bs定义的RS(544,514)对原始数据进行RS编码为例,第二电路通过RS编码器进行RS编码得到2个RS(544,514)码字。数据通过16条虚拟通路传输至PMA,由PMA以16:n的规格进行复用,由16条虚拟通路复用到n条物理通路,如电路到模块(chip-to-module,C2M)或者短距电路到电路(chip-to-chip-short,C2C-S)连接。第一电路包括光模块或者时钟和数据恢复(Clock and Data Recovery,CDR),CDR可以是一种电路,业界也将CDR称作再定时电路(retimer)。第一电路包括与物理通路数量一致的BCH编码器,每个BCH编码器接收到与其相连的物理通路传输的第一数据流之后,对第一数据流进行编码,基于编码后的数据得到第二数据流。如图18所示,数据以2个RS(544,514)code words交织之后,经过PMA 16:4复用,第一数据流直接通过4条物理通路输出,4条物理通路可以分别进入4个BCH编码器中,按照时分复用方式按照比特流进行编码。之后,通过n条物理通路将第二数据流传输至其他电路,如第三电路。或者,以链路复用的方式通过复用一条物理通路将第二数据流传输至其他电路。
通过在光模块里面增加一个轻型FEC,比如BCH编码器,实现级联编码,可以通过级联方式获得进一步增益,使得数据被传输的距离可以进一步增长、或者单波长速率更高。该轻型FEC,即BCH编码器可以采用BCH(360,340)编码方式。当然,也可以采用其他类型的BCH编码器,本申请实施例对此不加以限定。
除BCH编码器的数量与物理通路的数量一致的情况外,当第一电路包括的BCH编码器的数量少于物理通路的数量时,第一电路对第一数据流进行BCH编码,得到第二数据流,包括:第一电路以时分复用的方式通过一个或多个BCH编码器对第一数据流进行BCH编码,得到第二数据流。由于第一电路包括的BCH编码器的数量少于物理通路的数量,因而采用时分复用的方式复用一个或多个BCH编码器,实现对全部的第一数据流进行BCH编码。
在一种可能的实施方式中,当第一电路包括的BCH编码器的数量与物理通路的数量不一致时,第一电路还包括调度器,第一电路对第一数据流进行BCH编码,得到第二数据流,包括:第一电路通过调度器调度对应的BCH编码器对第一数据流进行BCH编码,得到第二数据流。由于BCH编码器的数量多于或少于物理通路的数量,因而在多个BCH编码器中选择哪个BCH编码器进行编码,可以通过调度器调度实现。也就是说,调度器用于将物理通路与对应的BCH编码器对接,由BCH编码器对第一数据流进行BCH编码。该种情况下,第一电路还可以包括缓存。物理通路上传输的第一数据流先存入缓存中,之后再通过调度器调度对应的BCH编码器进行BCH编码。
以图19所示的数据传输实施环境为例,图19中,仍以第二电路支持400GbE接口,按照802.3bs定义的RS(544,514)对原始数据进行RS编码为例,第二电路通过RS编码器进行RS编码得到2个RS(544,514)码字。数据通过16条虚拟通路传输至PMA,由PMA以16:n的规格进行复用,由16条虚拟通路复用到n条物理通路,如C2M或者C2C-S连接。第一电路 为光模块或者CDR,包括一个BCH编码器,通过调度器来调度BCH编码器对哪条物理通路传输的第一数据流进行编码,基于编码后的数据得到第二数据流。之后,通过调度器的调度,通过n条物理通路将第二数据流传输至其他电路,如第三电路。或者,以链路复用的方式通过复用一条物理通路将第二数据流传输至其他电路。
进一步地,无论是上述图18或图19所示的哪种结构,在一种可能的实施方式中,对第一数据流进行BCH编码,包括:将第一数据流中的数据填入到对应的BCH码字中,每个BCH码字中包括的连续参考数量个符号来自不同的RS码字。
应当理解的是,如果仅是通过一条物理通路传输第一数据流,则不存在数据偏斜的情况,因而无需识别码字边界或者符号边界,且无需改变任何已有的或者未来的以太接口数据输出方式,直接对第一数据流进行BCH编码。且除上述图18和图19所示实例外,本申请实施例提供的方法可以灵活扩展到支持任意数量的物理通路。例如在8x50G方案下,可以每条物理通路流向一个BCH编码器,或者采用时分复用的数量较少(1、2、4等)的BCH编码器。又例如,在1x100G方式下,一条物理通路的第一数据流进入一个BCH编码器,进行编码操作。由于该种方式不会改变任何已有的或者未来的以太接口数据输出方式,而仅仅作为一个增强的装置置于数据流中,进行二次编码,从而能够实现更高增益。
但对于通过多条物理通路传输第一数据流的情况,由于多条物理通路传输的第一数据流达到第一电路的时间不同,因而在对第一数据流进行编码之前,先进行对齐操作。在一种可能的实施方式中,第一数据流中的数据按照参考数量个RS码字进行交织得到符号流数据之后,输出至多条虚拟通路上,再根据物理通路的数量进行比特复用,由多条物理通路传输至第一电路;将第一数据流中的数据填入到对应的BCH码字中之前,还包括:第一电路对第一数据流解复用,恢复出各条虚拟通路的数据;对各条虚拟通路的数据进行对齐,得到对齐后的数据;将第一数据流中的数据填入到对应的BCH码字中,包括:将对齐后的数据填入到对应的BCH码字中。
无论是否需要进行对齐操作,将第一数据流中的数据填入到对应的BCH码字中,包括但不限于如下三种方式:
方式一:以第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,第一数据流中的数据按照第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,第二目标数量根据第一目标数量确定,第二数量根据第一数量确定为例,将第一数据流中的数据填入到对应的BCH码字中,包括:
将第一数据流每一行的前半部分数据按照顺序依次填入到第二数量个BCH码字的前第三数量个BCH码字中,将第一数据流每一行的后半部分数据按照顺序依次填入到第二数量个BCH码字的后第三数量个BCH码字中,第三数量为第二数量的一半,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。其中,上述第一数量可以根据RS码型来定,或者根据应用场景或经验来定,本申请实施例对此不加以限定。
例如,以第一目标数量为544,第一数量为2,第二数量为32,第二目标数量为360为例,将第一数据流中的数据填入到对应的BCH码字中,包括:将第一数据流每一行的前半部分数据按照顺序依次填入到32个BCH码字的前16个BCH码字中,将第一数据流每一行的后半部分数据按照顺序依次填入到32个BCH码字的后16个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
以图20所示的BCH编码过程为例,图20中给出了上述方式一的一种BCH编码过程示意 图。如图20所示,第二电路的以太网接口有16条虚拟通路,即m=16。第一数据流包括2个RS码字,每个RS码字有544个符号,以A和B分别代表两个RS码字为例,A和B下面的角标分别代表码字中不同的符号。第一数据流中的数据按照2个RS码字交织之后,交织后的数据如图20左侧所示。这16条虚拟通路上的数据被填入到右侧的BCH码字中,如将第一数据流第一行数据A 0B 8A 16B 24…A 528B 536分成两部分,前半部分按照顺序依次填入到32个BCH码字的第1个码字,即BCH-0中,后半部分按照顺序依次填入到32个BCH码字的第17个码字,即BCH-16中。将第一数据流第二行数据分成两部分,前半部分按照顺序依次填入到32个BCH码字的第2个码字,即BCH-1中,后半部分按照顺序依次填入到32个BCH码字的第18个码字,即BCH-17中。以此类推,直至将第一数据流中的数据全部填入到对应的BCH码字中。且采用该种方式,每个BCH码字中包括的连续2个符号来自不同的RS码字。
方式二:以第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,第一数据流中的数据按照第一数量个RS码字进行交织,第一数据流的每一列数据的开头或结尾的符号进行了顺序调换,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,第二目标数量根据第一目标数量确定,第二数量根据第一数量确定为例,将第一数据流中的数据填入到对应的BCH码字中,包括:将第一数据流的每一列数据按照顺序依次填入到第二数量个BCH码字中,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
例如,以第一目标数量为544,第一数量为2,第二数量为32,第二目标数量为360为例,将第一数据流中的数据填入到对应的BCH码字中,包括:将第一数据流的每一列数据按照顺序依次填入到32个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
以图21所示的BCH编码过程为例,图21中给出了上述方式二的一种BCH编码过程示意图。如图21所示,第二电路的以太网接口有16条虚拟通路,即m=16。第一数据流包括2个RS码字,每个RS码字有544个符号,以A和B分别代表两个RS码字为例,A和B下面的角标分别代表码字中不同的符号。第一数据流中的数据按照2个RS码字交织之后,交织后的数据如图21左侧所示。从图21中能够看出,第一数据流的每一列数据从第二列开始,开头的符号进行了顺序调换,这样以此保证每列数据填入到32个BCH码字中时,每个BCH码字中包括的连续2个符号来自不同的RS码字。如A 0B 0A 1B 1…A 16B 16依次填入到BCH-0中,A 17B 17A 18B 18…A 33B 33依次填入BCH-1中,以此类推,将第一数据流中的数据填入到对应的BCH码字中。当然,图21仅以在第二列开头的符号进行了顺序调换为例进行了说明,除此之外,还可以对每列结尾的符号进行顺序调换。
需要说明的是,上述仅以方式一和方式二来实现每个BCH码字中包括的连续2个符号来自不同的RS码字。除此之外,还可以采用其他方式实现每个BCH码字中包括的连续2个符号来自不同的RS码字,即不会有连续的2个符号来自同一个RS码字,本申请实施例对此不加以限定。
此外,上述方式一和方式二均是在第一数据流中的数据交织之后,第一电路不对交织的方式进行改动的情况下实现的BCH编码。然后,为了提高交织深度,本申请实施例提供的方法中,第一电路还可以在接收到第一数据流之后,对其中的数据重新进行交织,该种方式的BCH编码方法详见下面的方式三。
方式三:第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号, 第一数据流中的数据按照第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,第二目标数量根据第一目标数量确定,第二数量根据第一数量确定;将第一数据流中的数据填入到对应的BCH码字中,包括:将第一数据流中的数据进行解交织,得到原始的RS码字;将原始的RS码字按照第四数量个RS码字进行交织,得到交织后的数据,第四数量大于第一数量;将交织后的数据的每一行数据按照顺序依次填入到第二数量个BCH码字中,每个BCH码字中包括的连续第四数量个符号来自不同的RS码字。
由于第一数据流中的数据本身已经进行了交织,本申请实施例提供的方法在获取到第一数据流之后,先将第一数据流中的数据进行解交织,得到原始的RS码字。之后再重新交织,交织时使用更多码字交织,从而加大交织深度。之后再将重新交织后的数据的每一行数据按照顺序依次填入到第二数量个BCH码字中。该种方式下,第四数量可以根据RS码型来定,或者根据应用场景或经验来定,本申请实施例对此不加以限定。由于重新交织的深度大于之前第一数据流中的交织深度,因而第四数量大于第一数量。此外,第一电路可通过设置缓存,以在收到第四数量的码字之后再进行交织。
例如,以第一目标数量为544,第一数量为2,第四数量为4,第二目标数量为360为例,第一电路对第一数据流进一步解交织,恢复出原有的RS-FEC code words,这样便可以积攒更多的RS-FEC进行更强的交织,比如采用4个code words交织。第一电路接收到第一数据流时进行一定程度的缓存,收取到整4个code words之后再进行交织。以图22和图23所示的BCH编码过程为例,图22和图23分别给出了上述方式三的一种BCH编码过程示意图。图22和图23分别为两种交织方式举例,其中A、B、C、D表示来自不同的RS-FEC code words中的symbol。由于图22和图23中的字母A至D未体现角标序号,仅表示来自不同code words中的不同符号。使用4个RS码字进行交织,使得任意相连的4个符号都是来自不同的RS码字。
需要说明的是,上述将第一数据流中的数据填入到对应的BCH码字中的三种实现方式中,第一目标数量可以基于RS码型确定。例如,针对RS(544,514),第一目标数量为544,则每个RS码字包括544个符号。第二目标数量可以基于第一目标数量确定,针对RS(544,514),可以采用BCH(360,340),则第二目标数量为360。又例如,针对RS(528,514),目标数量为528,则每个RS码字包括528个符号。此外,本申请实施例提供的方法在于采用RS和BCH两级编码,对于采用哪种RS码型以及哪种BCH码型,本申请实施例对此不加以限定。也就是说,针对不同码型,第一目标数量和第二目标数量还可以采用其他数值。另外,上述第一目标数量个符号和第二目标数量个符号既可以是10-bit(比特)符号,也可以是1bit符号或者其他长度的符号,本申请实施例对符号的长度也不加以限定。
此外,无论采用上述哪种方式将第一数据流中的数据填入到对应的BCH码字中,对于BCH编码方式,可以采用多项式p(x)=x 10+x 3+x+1。也就是说,BCH编码器可以根据多项式p(x)=x 10+x 3+x+1进行编码,从而得到第二数据流。当然,除了采用上述P(x)的多项式外,还可以有其他BCH编码所采用的多项式,本申请对此不加以限定。
作为一种可能的实施方式,第一电路对第一数据流进行BCH编码,得到第二数据流之后,还包括:通过媒介将第二数据流采用多条物理通路传输至第三电路,或者,通过媒介将第二数据流以时分复用的方式采用一条物理通路传输至第三电路。其中,媒介包括但不限于光纤、背板或者铜缆。例如,以100GbE以太网端口为例,可以以1个波长承载100G速率的 方式发出,通过光纤传输;或者1个电接口传输100G速率信号,通过背板或者铜缆来传输。又或者,以未来可能出现的800GbE端口为例,可能存在8x100G、4x200G等各种不同方案,可以在光纤、背板或者铜缆上传输。
参见图24,本申请实施例提供了一种数据解码方法,该方法可用于第三电路,该第三电路用于对应用图17所述的编码方法进行编码得到的第二数据流进行解码。如图24所示,该方法包括如下几个步骤:
步骤2401,第三电路接收第一电路传输的第二数据流,第二数据流是采用RS码及BCH码进行编码得到的。
在一种可能的实施方式中,第三电路接收第一电路传输的第二数据流,包括:通过媒介接收第一电路采用多条物理通路传输的第二数据流,或者,通过媒介接收第一电路以时分复用的方式采用一条物理通路传输的第二数据流。其中,媒介包括但不限于光纤、背板或者铜缆。由于第一电路采用上述图17所示的编码方法对已经采用RS编码的第一数据流进行BCH编码,因而第二数据流采用RS码和BCH码进行了编码。
步骤2402,第三电路采用BCH码对第二数据流进行解码,得到第一数据流。
其中,第三电路对第二数据流进行解码时采用的BCH码与第一电路对第一数据流进行BCH编码时使用的码型一致,以此保证第三电路能够成功对第二数据流进行解码,得到第一数据流。
由于第一电路在传输第二数据流时,可以以时分复用的方式采用一条物理通路传输,也可以采用多条物理通路传输,因此,在一种可能的实施方式中,采用BCH码对第二数据流进行解码,得到第一数据流之前,还包括:当通过媒介接收第一电路以时分复用的方式采用一条物理通路传输的第二数据流时,对第二数据流进行解复用;采用BCH码对第二数据流进行解码,得到第一数据流,包括:采用BCH码对解复用之后的数据流进行解码,得到第一数据流。
针对采用多条物理通路传输的第二数据流的方式,为避免第二数据流数据达到第三电路时存在偏斜,在一种可能的实施方式中,采用BCH码对解复用之后的第二数据流进行解码之前,还包括:对解复用之后的第二数据流进行对齐;采用BCH码对解复用之后的第二数据流进行解码,得到第一数据流,包括:采用BCH码对对齐之后的第二数据流进行解码,得到第一数据流。由于BCH编码不会改变AM字符,因此,在对解复用之后的第二数据流进行对齐时,可以复用第二数据流中已有的AM字符来实现对解复用之后的第二数据流进行对齐。
步骤2403,第三电路采用RS码对第一数据流进行解码,得到原始数据。
其中,第三电路对第一数据流进行解码时采用的RS码与第一数据流中的数据在编码时使用的RS码型一致,以此保证第三电路能够成功对第一数据流进行解码,得到原始数据。
基于上述数据编码方法和数据解码方法,本申请实施例通过建模,在现场可编程门阵列(field-programmable gate array,FPGA)上进行了验证。如图25所示,以PRBS31作为原始数据为例,PRBS31是生成伪随机序列作为系统输入的一种测试数据。在编码端以RS(544,514)对原始数据进行编码,之后以4个RS code word交织的结果为例,通过比特复用将交织后得到的第一数据流通过通路1传输至BCH编码器进行BCH编码,得到第二数据流。之后通过通路2将第二数据流传输至解码端。解码端先对第二数据流进行BCH解码,得到第一数据流。之后将第一数据流通过通路3传输之后,进行比特解复用,再针对解复用之 后的数据进行解交织。通过RS(544,514)解码器进行RS解码,从而得到原始数据。
通过上述交织过程,增益有所提高。如图26所示的对比图,以解码与802.3bs提供的RS-FEC相比,在1E-15post FEC BER区域,本申请实施例提供的级联编码方案可以有2dB净增益提高。无论是在电接口上还是光接口上,额外的净增益可以大大提高信号传输的距离。
参见图27,本申请实施例提供了一种数据编码装置,该装置用于执行上述数据编码方法。如图27所示,该装置包括:
接收模块271,用于接收第二电路通过以太网接口传输的第一数据流,第一数据流是采用RS码对原始数据进行编码得到的;
编码模块272,用于对第一数据流进行BCH编码,得到第二数据流。
在一种可能的实施方式中,接收模块271,用于从多个物理通路接收第二电路通过以太网接口传输的第一数据流;
装置包括一个或多个BCH编码器,编码模块,用于当包括的BCH编码器的数量与物理通路的数量一致时,一个BCH编码器与一条物理通路对接,通过一个或多个BCH编码器对对应的物理通路传输的第一数据流进行BCH编码,得到第二数据流。
在一种可能的实施方式中,接收模块271,用于从多个物理通路接收第二电路通过以太网接口传输的第一数据流;
装置包括一个或多个BCH编码器,还包括调度器,编码模块272,用于当第一电路包括的BCH编码器的数量与物理通路的数量不一致时,通过调度器调度对应的BCH编码器对第一数据流进行BCH编码,得到第二数据流。
在一种可能的实施方式中,编码模块272,用于将第一数据流中的数据填入到对应的BCH码字中,每个BCH码字中包括的连续参考数量个符号来自不同的RS码字。
在一种可能的实施方式中,第一数据流中的数据按照参考数量个RS码字进行交织得到符号流数据之后,输出至多条虚拟通路上,再根据物理通路的数量进行比特复用,由多条物理通路传输至数据编码装置;
参见图28,该数据编码装置,还包括:
解复用模块273,用于对第一数据流解复用,恢复出各条虚拟通路的数据;
对齐模块274,用于对各条虚拟通路的数据进行对齐,得到对齐后的数据;
编码模块272,用于将对齐后的数据填入到对应的BCH码字中。
在一种可能的实施方式中,第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,第一数据流中的数据按照第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,第二目标数量根据第一目标数量确定,第二数量根据第一数量确定;
编码模块272,用于将第一数据流每一行的前半部分数据按照顺序依次填入到第二数量个BCH码字的前第三数量个BCH码字中,将第一数据流每一行的后半部分数据按照顺序依次填入到第二数量个BCH码字的后第三数量个BCH码字中,第三数量为第二数量的一半,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
在一种可能的实施方式中,第一目标数量为544,第一数量为2,第二数量为32,第二目标数量为360;
编码模块272,用于将第一数据流每一行的前半部分数据按照顺序依次填入到32个BCH码字的前16个BCH码字中,将第一数据流每一行的后半部分数据按照顺序依次填入到32个BCH码字的后16个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
在一种可能的实施方式中,第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,第一数据流中的数据按照第一数量个RS码字进行交织,第一数据流的每一列数据的开头或结尾的符号进行了顺序调换,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,第二目标数量根据第一目标数量确定,第二数量根据第一数量确定;
编码模块272,用于将第一数据流的每一列数据按照顺序依次填入到第二数量个BCH码字中,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
在一种可能的实施方式中,第一目标数量为544,第一数量为2,第二数量为32,第二目标数量为360;
编码模块272,用于将第一数据流的每一列数据按照顺序依次填入到32个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
在一种可能的实施方式中,第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,第一数据流中的数据按照第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,第二目标数量根据第一目标数量确定,第二数量根据第一数量确定;
编码模块272,用于将第一数据流中的数据进行解交织,得到原始的RS码字;将原始的RS码字按照第四数量个RS码字进行交织,得到交织后的数据,第四数量大于第一数量;将交织后的数据的每一行数据按照顺序依次填入到第二数量个BCH码字中,每个BCH码字中包括的连续第四数量个符号来自不同的RS码字。
参见图29,该数据编码装置,还包括:
传输模块275,用于通过媒介将第二数据流采用多条物理通路传输至第三电路,或者,通过媒介将第二数据流以时分复用的方式采用一条物理通路传输至第三电路。
参见图30,本申请实施例提供了一种数据解码装置,该装置用于执行上述数据解码方法。如图30所示,该装置包括:
接收模块161,用于接收第一电路传输的第二数据流,第二数据流是采用RS码及BCH码进行编码得到的;
第一解码模块162,用于采用BCH码对第二数据流进行解码,得到第一数据流;
第二解码模块163,用于采用RS码对第一数据流进行解码,得到原始数据。
在一种可能的实施方式中,接收模块161,用于通过媒介接收第一电路采用多条物理通路传输的第二数据流,或者,通过媒介接收第一电路以时分复用的方式采用一条物理通路传输的第二数据流。
在一种可能的实施方式中,参见图31,该数据解码装置,还包括:
解复用模块164,用于当通过媒介接收第一电路以时分复用的方式采用一条物理通路传输的第二数据流时,对第二数据流进行解复用;
第一解码模块162,用于采用BCH码对解复用之后的数据流进行解码,得到第一数据流。
在一种可能的实施方式中,参见图32,该数据解码装置,还包括:
对齐模块165,用于对解复用之后的第二数据流进行对齐;
第一解码模块162,用于采用BCH码对对齐之后的第二数据流进行解码,得到第一数据流。
应理解的是,上述提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
需要说明的是,上述第一电路、第二电路、第三电路、数据编码装置及数据解码装置可以在一个或多个芯片里实现。
基于相同构思,本申请实施例还提供了一种数据传输设备,参见图33,该设备包括存储191及处理器192;存储器191中存储有至少一条指令,至少一条指令由处理器192加载并执行,以实现本申请实施例提供的上述任一种数据编码或数据解码方法。
本申请实施例还提供了一种数据传输设备,参见图34,该设备包括:收发器3401、存储器3402和处理器3403。其中,该收发器2001、该存储器3402和该处理器3403通过内部连接通路互相通信,该存储器3402用于存储指令,该处理器3403用于执行该存储器存储的指令,以控制收发器3401接收信号,并控制收发器3401发送信号,并且当该处理器3403执行该存储器3402存储的指令时,使得该处理器3403执行上述任一种数据编码方法或数据解码方法。
本申请实施例还提供了一种数据传输系统,该系统包括上述图27-29任一所示的数据编码装置,以及上述图30-32任一所示的数据解码装置。
本申请实施例中的数据编码设备和数据解码设备可以是个人电脑(personal computer,PC)或服务器或网络设备。例如,数据编码设备和数据解码设备可以是路由器、交换机、服务器等。
本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现本申请实施例提供的上述任一种数据编码方法或数据解码方法。
本申请实施例还提供了一种电路,包括处理器,处理器用于从存储器中调用并运行存储器中存储的指令,使得安装有电路的通信设备执行上述任一种数据编码方法或数据解码方法。
本申请实施例还提供了一种电路,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述任一种的数据编码方法或数据解码方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、 分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述处理器为一个或多个,存储器为一个或多个。可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
本申请提供了一种计算机程序,当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk)等。
本申请实施例中提到的“1”、“2”、“3”、“第一”、“第二”、“第三”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (63)

  1. 一种数据传输方法,其特征在于,包括:
    第一芯片接收第二芯片发送的第一数据流;所述第一数据流为采用第一前向纠错FEC码型编码的数据流;
    所述第一芯片对所述第一数据流再进行至少一次编码,得到第二数据流;其中,所述第二数据流为至少采用所述第一FEC码型和第二FEC码型编码的级联FEC码流。
  2. 根据权利要求1所述的方法,其特征在于,所述第一FEC码型具体为:里德-所罗门RS码、博斯-乔赫里-霍克文黑姆BCH码、阶梯Staircase码、低密度奇偶校验LDPC码、涡轮Turbo码或涡轮乘积码TPC。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
  4. 根据权利要求1至3任意一项所述的方法,其特征在于,所述第一芯片对所述第一数据流再进行至少一次编码,形成第二数据流,包括:
    所述第一芯片将所述第一数据流分发成n条第三数据流;其中,所述第一数据流中同一个码字块的数据被分发到不同的所述第三数据流中;
    所述第一芯片分别对所述多条第三数据流再进行至少一次编码,形成所述第二数据流。
  5. 根据权利要求4所述的方法,其特征在于,从所述第一数据流中识别出来的k个码字块被分发到n条第三数据流中,每一条所述第三数据流中属于所述k个码字块的数据被编码成所述第二数据流中的一个码字块;
    其中,所述第一数据流中k个码字块所包含的全部数据量与所述第二数据流中n个码字块所包含的有效载荷数据量相等。
  6. 根据权利要求4所述的方法,其特征在于,所述第一数据流中的数据按照FEC符号块进行分发,所述第一数据流中同一个FEC符号块的数据被编码在所述第二数据流中的同一个码字块中。
  7. 根据权利要求4所述的方法,其特征在于,所述第一数据流中的数据按照比特流进行分发,所述第三数据流中的数据按照比特流进行编码。
  8. 根据权利要求1至7所述的方法,其特征在于,所述第一芯片和所述第二芯片位于同一数据传输设备内,所述第一芯片为电芯片,所述第二芯片为采用以太网接口的芯片。
  9. 一种数据传输方法,其特征在于,包括:
    第一芯片接收第二芯片发送的第二数据流;所述第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流;
    所述第一芯片对所述第二数据流进行至少一次解码,形成第一数据流;所述第一数据流为采用所述第一FEC码型编码的数据流;
    所述第一芯片向第三芯片发送所述第一数据流。
  10. 根据权利要求9所述的方法,其特征在于,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
  11. 根据权利要求9或10所述的方法,其特征在于,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
  12. 根据权利要求9至11所述的方法,其特征在于,所述第一数据流用于被所述第三芯片按照所述第一FEC码型进行解码。
  13. 根据权利要求9至12所述的方法,其特征在于,所述第二芯片位于第一数据传输设备内,所述第一芯片和所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二芯片为电芯片,所述第三芯片为采用以太网接口的芯片。
  14. 一种数据传输装置,其特征在于,所述装置为第一芯片,包括:
    接收器,用于接收第二芯片发送的第一数据流;所述第一数据流为采用第一前向纠错FEC码型编码的数据流;
    编码器,用于对所述第一数据流再进行至少一次编码,得到第二数据流;其中,所述第二数据流为至少采用所述第一FEC码型和第二FEC码型编码的级联FEC码流。
  15. 根据权利要求14所述的装置,其特征在于,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
  16. 根据权利要求14或15所述的装置,其特征在于,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
  17. 根据权利要求14至16任意一项所述的装置,其特征在于,所述编码器,具体用于:
    将所述第一数据流分发成n条第三数据流;其中,所述第一数据流中同一个码字块的数据被分发到不同的所述第三数据流中;
    分别对所述多条第三数据流再进行至少一次编码,形成所述第二数据流。
  18. 根据权利要求17所述的装置,其特征在于,从所述第一数据流中识别出来的k个码字块被分发到n条第三数据流中,每一条所述第三数据流中属于所述k个码字块的数据被编码成所述第二数据流中的一个码字块;
    其中,所述第一数据流中k个码字块所包含的全部数据量与所述第二数据流中n个码字块所包含的有效载荷数据量相等。
  19. 根据权利要求17所述的装置,其特征在于,所述第一数据流中的数据按照FEC符号块进行分发,所述第一数据流中同一个FEC符号块的数据被编码在所述第二数据流中的同一个码字块中。
  20. 根据权利要求17所述的装置,其特征在于,所述第一数据流中的数据按照比特流进行分发,所述第三数据流中的数据按照比特流进行编码。
  21. 根据权利要求14至20所述的装置,其特征在于,所述第一芯片和所述第二芯片位于同一数据传输设备内,所述第一芯片为电芯片,所述第二芯片为采用以太网接口的芯片。
  22. 一种数据传输装置,其特征在于,所述装置为第一芯片,包括:
    接收器,用于接收第二芯片发送的第二数据流;所述第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流;
    解码器,用于对所述第二数据流进行至少一次解码,形成第一数据流;所述第一数据流为采用所述第一FEC码型编码的数据流;
    发送器,用于向第三芯片发送所述第一数据流。
  23. 根据权利要求22所述的装置,其特征在于,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
  24. 根据权利要求22或23所述的装置,其特征在于,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
  25. 根据权利要求22至24所述的装置,其特征在于,所述第一数据流用于被所述第三芯片按照所述第一FEC码型进行解码。
  26. 根据权利要求22至25所述的装置,其特征在于,所述第二芯片位于第一数据传输设备内,所述第一芯片和所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二模块为芯片,所述第三芯片为采用以太网接口的芯片。
  27. 一种通信系统,其特征在于,包括权利要求14-21任一项所述的数据传输装置以及权利要求22-26任一项所述的数据传输装置。
  28. 一种网络设备,其特征在于,包括权利要求14-21任一项所述的数据传输装置。
  29. 一种网络设备,其特征在于,包括权利要求22-26任一项所述的数据传输装置。
  30. 一种数据传输系统,其特征在于,包括权利要求28所述的网络设备和权利要求29所述的网络设备。
  31. 一种数据编码方法,其特征在于,所述方法包括:
    第一电路接收第二电路通过以太网接口传输的第一数据流,所述第一数据流是采用里德-所罗门RS码对原始数据进行编码得到的;
    所述第一电路对所述第一数据流进行博斯-乔赫里-霍克文黑姆BCH编码,得到第二数据流。
  32. 根据权利要求31所述的方法,其特征在于,所述第一电路接收第二电路通过以太网接口传输的第一数据流,包括:
    所述第一电路从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;
    所述第一电路包括一个或多个BCH编码器,所述第一电路对所述第一数据流进行BCH编码,得到第二数据流,包括:
    当所述第一电路包括的BCH编码器的数量与所述物理通路的数量一致时,一个BCH编码器与一条物理通路对接,所述第一电路通过所述一个或多个BCH编码器对对应的物理通路传输的第一数据流进行BCH编码,得到第二数据流。
  33. 根据权利要求31所述的方法,其特征在于,所述第一电路接收第二电路通过以太网接口传输的第一数据流,包括:
    所述第一电路从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;
    所述第一电路包括一个或多个BCH编码器,所述第一电路还包括调度器,所述第一电路对所述第一数据流进行BCH编码,得到第二数据流,包括:
    当所述第一电路包括的BCH编码器的数量与所述物理通路的数量不一致时,所述第一电路通过所述调度器调度对应的BCH编码器对所述第一数据流进行BCH编码,得到第二数据流。
  34. 根据权利要求31-33任一所述的方法,其特征在于,所述对所述第一数据流进行BCH编码,包括:
    将所述第一数据流中的数据填入到对应的BCH码字中,每个BCH码字中包括的连续参考数量个符号来自不同的RS码字。
  35. 根据权利要求34所述的方法,其特征在于,所述第一数据流中的数据按照所述参考数量个RS码字进行交织得到符号流数据之后,输出至多条虚拟通路上,再根据物理通路的数量进行比特复用,由多条物理通路传输至所述第一电路;
    所述将所述第一数据流中的数据填入到对应的BCH码字中之前,还包括:
    所述第一电路对所述第一数据流解复用,恢复出各条虚拟通路的数据;对所述各条虚拟通路的数据进行对齐,得到对齐后的数据;
    所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述对齐后的数据填入到对应的BCH码字中。
  36. 根据权利要求34或35所述的方法,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;
    所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:
    将所述第一数据流每一行的前半部分数据按照顺序依次填入到所述第二数量个BCH码字的前第三数量个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述第二数量个BCH码字的后第三数量个BCH码字中,所述第三数量为所述第二数量的一半,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
  37. 根据权利要求36所述的方法,其特征在于,所述第一目标数量为544,所述第一数量为2,所述第二数量为32,所述第二目标数量为360;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:
    将所述第一数据流每一行的前半部分数据按照顺序依次填入到32个BCH码字的前16个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述32个BCH码字的后16个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
  38. 根据权利要求34或35所述的方法,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,所述第一数据流的每一列数据的开头或结尾的符号进行了顺序调换,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;
    所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:
    将所述第一数据流的每一列数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
  39. 根据权利要求38所述的方法,其特征在于,所述第一目标数量为544,所述第一数量为2,所述第二数量为32,所述第二目标数量为360;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:
    将所述第一数据流的每一列数据按照顺序依次填入到32个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
  40. 根据权利要求34或35所述的方法,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数 量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;
    所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:
    将所述第一数据流中的数据进行解交织,得到原始的RS码字;
    将所述原始的RS码字按照第四数量个RS码字进行交织,得到交织后的数据,所述第四数量大于所述第一数量;
    将所述交织后的数据的每一行数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第四数量个符号来自不同的RS码字。
  41. 根据权利要求31-40任一所述的方法,其特征在于,所述第一电路对所述第一数据流进行BCH编码,得到第二数据流之后,还包括:
    通过媒介将所述第二数据流采用多条物理通路传输至第三电路,或者,通过所述媒介将所述第二数据流以时分复用的方式采用一条物理通路传输至所述第三电路。
  42. 一种数据解码方法,其特征在于,所述方法包括:
    第三电路接收第一电路传输的第二数据流,所述第二数据流是采用里德-所罗门RS码及博斯-乔赫里-霍克文黑姆BCH码进行编码得到的;
    采用所述BCH码对所述第二数据流进行解码,得到第一数据流;
    采用所述RS码对所述第一数据流进行解码,得到原始数据。
  43. 根据权利要求42所述的方法,其特征在于,所述第三电路接收第一电路传输的第二数据流,包括:
    通过媒介接收所述第一电路采用多条物理通路传输的所述第二数据流,或者,通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流。
  44. 根据权利要求43所述的方法,其特征在于,所述采用所述BCH码对所述第二数据流进行解码,得到第一数据流之前,还包括:当通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流时,对所述第二数据流进行解复用;
    所述采用所述BCH码对所述第二数据流进行解码,得到第一数据流,包括:采用所述BCH码对解复用之后的数据流进行解码,得到第一数据流。
  45. 根据权利要求44所述的方法,其特征在于,所述采用BCH码对解复用之后的第二数据流进行解码之前,还包括:对解复用之后的第二数据流进行对齐;
    所述采用BCH码对解复用之后的第二数据流进行解码,得到第一数据流,包括:采用BCH码对对齐之后的第二数据流进行解码,得到第一数据流。
  46. 一种数据编码装置,其特征在于,所述装置包括:
    接收模块,用于接收第二电路通过以太网接口传输的第一数据流,所述第一数据流是采用里德-所罗门RS码对原始数据进行编码得到的;
    编码模块,用于对所述第一数据流进行博斯-乔赫里-霍克文黑姆BCH编码,得到第二数据流。
  47. 根据权利要求46所述的装置,其特征在于,所述接收模块,用于从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;
    所述装置包括一个或多个BCH编码器,所述编码模块,用于当包括的BCH编码器的数量 与所述物理通路的数量一致时,一个BCH编码器与一条物理通路对接,通过所述一个或多个BCH编码器对对应的物理通路传输的第一数据流进行BCH编码,得到第二数据流。
  48. 根据权利要求46所述的装置,其特征在于,所述接收模块,用于从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;
    所述装置包括一个或多个BCH编码器,还包括调度器,所述编码模块,用于当所述第一电路包括的BCH编码器的数量与所述物理通路的数量不一致时,通过所述调度器调度对应的BCH编码器对所述第一数据流进行BCH编码,得到第二数据流。
  49. 根据权利要求46-48任一所述的装置,其特征在于,所述编码模块,用于将所述第一数据流中的数据填入到对应的BCH码字中,每个BCH码字中包括的连续参考数量个符号来自不同的RS码字。
  50. 根据权利要求49所述的装置,其特征在于,所述第一数据流中的数据按照所述参考数量个RS码字进行交织得到符号流数据之后,输出至多条虚拟通路上,再根据物理通路的数量进行比特复用,由多条物理通路传输至所述数据编码装置;
    所述装置,还包括:
    解复用模块,用于对所述第一数据流解复用,恢复出各条虚拟通路的数据;
    对齐模块,用于对所述各条虚拟通路的数据进行对齐,得到对齐后的数据;
    所述编码模块,用于将所述对齐后的数据填入到对应的BCH码字中。
  51. 根据权利要求49或50所述的装置,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;
    所述编码模块,用于将所述第一数据流每一行的前半部分数据按照顺序依次填入到所述第二数量个BCH码字的前第三数量个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述第二数量个BCH码字的后第三数量个BCH码字中,所述第三数量为所述第二数量的一半,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
  52. 根据权利要求51所述的装置,其特征在于,所述第一目标数量为544,所述第一数量为2,所述第二数量为32,第二目标数量为360;
    所述编码模块,用于将所述第一数据流每一行的前半部分数据按照顺序依次填入到32个BCH码字的前16个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述32个BCH码字的后16个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
  53. 根据权利要求49或50所述的方法,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,所述第一数据流的每一列数据的开头或结尾的符号进行了顺序调换,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;
    所述编码模块,用于将所述第一数据流的每一列数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
  54. 根据权利要求53所述的装置,其特征在于,所述第一目标数量为544,所述第一数量为2,所述第二数量为32,第二目标数量为360;
    所述编码模块,用于将所述第一数据流的每一列数据按照顺序依次填入到32个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
  55. 根据权利要求49或50所述的装置,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;
    所述编码模块,用于将所述第一数据流中的数据进行解交织,得到原始的RS码字;将所述原始的RS码字按照第四数量个RS码字进行交织,得到交织后的数据,所述第四数量大于所述第一数量;将所述交织后的数据的每一行数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第四数量个符号来自不同的RS码字。
  56. 根据权利要求46-55任一所述的装置,其特征在于,所述装置,还包括:
    传输模块,用于通过媒介将所述第二数据流采用多条物理通路传输至第三电路,或者,通过所述媒介将所述第二数据流以时分复用的方式采用一条物理通路传输至所述第三电路。
  57. 一种数据解码装置,其特征在于,所述装置包括:
    接收模块,用于接收第一电路传输的第二数据流,所述第二数据流是采用里德-所罗门RS码及博斯-乔赫里-霍克文黑姆BCH码进行编码得到的;
    第一解码模块,用于采用所述BCH码对所述第二数据流进行解码,得到第一数据流;
    第二解码模块,用于采用所述RS码对所述第一数据流进行解码,得到原始数据。
  58. 根据权利要求57所述的装置,其特征在于,所述接收模块,用于通过媒介接收所述第一电路采用多条物理通路传输的所述第二数据流,或者,通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流。
  59. 根据权利要求58所述的装置,其特征在于,所述装置,还包括:
    解复用模块,用于当通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流时,对所述第二数据流进行解复用;
    所述第一解码模块,用于采用所述BCH码对解复用之后的数据流进行解码,得到第一数据流。
  60. 根据权利要求59所述的装置,其特征在于,所述装置,还包括:
    对齐模块,用于对解复用之后的第二数据流进行对齐;
    所述第一解码模块,用于采用BCH码对对齐之后的第二数据流进行解码,得到第一数据流。
  61. 一种数据传输设备,其特征在于,所述设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现权利要求31-41中任一所述的数据编码方法,或者实现权利要求42-45中任一所述的数据解码方法。
  62. 一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现权利要求31-41中任一所述的数据编码方法,或者实现权利要求42-45中任一所述的数据解码方法。
  63. 一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行权利要求31-41中任一所述的数据编码方法,或者执行权利要求42-45中任一所述的数据解码方法。
PCT/CN2019/096055 2019-05-15 2019-07-15 数据传输、编码、解码方法、装置、设备及存储介质 WO2020228126A1 (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
BR112021022737A BR112021022737A2 (pt) 2019-05-15 2019-07-15 Método de transmissão de dados, método de codificação, método de decodificação, aparelho, dispositivo, e mídia de armazenamento
EP19928816.8A EP3965325A4 (en) 2019-05-15 2019-07-15 METHOD, APPARATUS AND DEVICE FOR DATA TRANSMISSION, CODING AND DECODED, AND STORAGE MEDIUM
CN202410807429.5A CN118677571A (zh) 2019-05-15 2019-07-15 数据传输、编码、解码方法、装置、设备及存储介质
CA3178909A CA3178909A1 (en) 2019-05-15 2019-07-15 Data transmission method, encoding method, decoding method, apparatus, device, and storage medium
JP2021567829A JP7424724B2 (ja) 2019-05-15 2019-07-15 データ伝送方法、データ伝送装置、通信システム、ネットワークデバイス、データ伝送システム、コンピュータ可読記憶媒体、およびコンピュータプログラムコード
CN201980096406.5A CN113875177B (zh) 2019-05-15 2019-07-15 数据传输、编码、解码方法、装置、设备及存储介质
US17/525,189 US20220077875A1 (en) 2019-05-15 2021-11-12 Data Transmission Method, Encoding Method, Decoding Method, Apparatus, Device, and Storage Medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/CN2019/087058 WO2020227976A1 (zh) 2019-05-15 2019-05-15 一种数据传输方法和装置
CNPCT/CN2019/087058 2019-05-15

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/525,189 Continuation US20220077875A1 (en) 2019-05-15 2021-11-12 Data Transmission Method, Encoding Method, Decoding Method, Apparatus, Device, and Storage Medium

Publications (1)

Publication Number Publication Date
WO2020228126A1 true WO2020228126A1 (zh) 2020-11-19

Family

ID=73289091

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/CN2019/087058 WO2020227976A1 (zh) 2019-05-15 2019-05-15 一种数据传输方法和装置
PCT/CN2019/096055 WO2020228126A1 (zh) 2019-05-15 2019-07-15 数据传输、编码、解码方法、装置、设备及存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/087058 WO2020227976A1 (zh) 2019-05-15 2019-05-15 一种数据传输方法和装置

Country Status (7)

Country Link
US (2) US20220077958A1 (zh)
EP (2) EP3958485A4 (zh)
JP (2) JP2022533326A (zh)
CN (5) CN116032422A (zh)
BR (2) BR112021022883A2 (zh)
CA (2) CA3177569A1 (zh)
WO (2) WO2020227976A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022156767A1 (zh) * 2021-01-25 2022-07-28 华为技术有限公司 数据传输的方法、装置、设备、系统及计算机可读存储介质
WO2023015863A1 (zh) * 2021-08-11 2023-02-16 华为技术有限公司 数据传输的方法、装置、设备、系统及可读存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11153211B2 (en) * 2017-12-09 2021-10-19 Intel Corporation Fast data center congestion response
CN114430278A (zh) * 2020-10-29 2022-05-03 华为技术有限公司 一种以太网的编码方法及装置
CN112330948B (zh) * 2021-01-04 2021-04-27 杭州涂鸦信息技术有限公司 红外遥控码匹配方法、装置、计算机设备和可读存储介质
CN116092566A (zh) * 2021-10-29 2023-05-09 长鑫存储技术有限公司 基础芯片、存储系统以及半导体结构
US20240014927A1 (en) * 2022-07-05 2024-01-11 Cisco Technology, Inc. Physical coding sublayer with modified bit ordering to improve error burst resiliency
CN117713992A (zh) * 2022-09-15 2024-03-15 华为技术有限公司 一种数据处理方法以及数据处理装置
CN115499102B (zh) * 2022-09-16 2024-04-09 迈普通信技术股份有限公司 报文处理方法、装置、交换机及计算机可读存储介质
CN117938337A (zh) * 2022-10-24 2024-04-26 华为技术有限公司 一种数据处理方法和数据处理装置
CN118487714A (zh) * 2023-02-14 2024-08-13 华为技术有限公司 一种以太网中发送数据的方法、设备和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104115435A (zh) * 2012-02-20 2014-10-22 泰科电子海底通信有限责任公司 包括改进位交错编码调制的系统和方法
CN104541452A (zh) * 2012-08-31 2015-04-22 泰科电子海底通信有限责任公司 具有迭代解码和分形内编码的位交织编码调制
US20150162937A1 (en) * 2013-12-11 2015-06-11 Nec Laboratories America, Inc. Adaptive Coded-Modulation for Intelligent Optical Transport Networks
CN106688201A (zh) * 2014-09-16 2017-05-17 三菱电机株式会社 用于通过光超级信道传输数据的方法和系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699367A (en) * 1995-12-29 1997-12-16 Telefonaktiebolaget Lm Ericsson Concatenated error detection coding and packet numbering for hierarchical ARQ schemes
US5841378A (en) * 1996-10-25 1998-11-24 Motorola, Inc. System and apparatus for, and method of, interfacing a demodulator and a forward error correction decoder
AU2001263442A1 (en) * 2000-06-07 2001-12-17 Tycom (Us) Inc. Concatenated forward error correction decoder
KR20040033101A (ko) * 2002-10-11 2004-04-21 삼성전자주식회사 디지털방송 시스템의 전송장치 및 전송방법
CN100353352C (zh) * 2003-04-15 2007-12-05 华为技术有限公司 一种减少解编码过程中数据传输延时的方法及其装置
US7418644B2 (en) * 2004-03-01 2008-08-26 Hewlett-Packard Development Company, L.P. System for error correction coding and decoding
WO2005120062A1 (en) * 2004-05-13 2005-12-15 Samsung Electronics Co., Ltd. Digital broadcasting transmission/reception devices capable of improving a receiving performance an dsignal processing method thereof
US20070104225A1 (en) * 2005-11-10 2007-05-10 Mitsubishi Denki Kabushiki Kaisha Communication apparatus, transmitter, receiver, and error correction optical communication system
GB0715494D0 (en) * 2007-08-10 2007-09-19 Cell Ltd G Monitoring system and method
WO2010114344A2 (ko) * 2009-04-03 2010-10-07 (주)엘지전자 릴레이 시스템에서 다중 데이터 스트림 전송 방법 및 장치
CN101667887A (zh) * 2009-09-02 2010-03-10 中兴通讯股份有限公司 编码方法及其装置、解码方法及其装置
CN102111233B (zh) * 2009-12-28 2014-03-26 华为软件技术有限公司 一种fec数据的处理方法及系统
JP5523120B2 (ja) * 2010-01-14 2014-06-18 三菱電機株式会社 誤り訂正符号化方法、誤り訂正復号方法、誤り訂正符号化装置、および、誤り訂正復号装置
WO2012164929A1 (ja) * 2011-05-31 2012-12-06 三菱電機株式会社 誤り訂正符号化装置、誤り訂正復号装置、およびその方法
WO2013185355A1 (zh) * 2012-06-15 2013-12-19 华为技术有限公司 数据处理方法、装置及系统
US9191256B2 (en) * 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
ES2673571T3 (es) * 2013-01-04 2018-06-22 Huawei Technologies Co., Ltd. Método para procesar datos en Ethernet, circuito integrado de capa física y dispositivo de Ethernet
US9203435B2 (en) * 2013-05-08 2015-12-01 Broadcom Corporation Multiple size and rate FEC code combination with minimum shortening and maximum combined code rate
CN104426631B (zh) * 2013-09-06 2018-03-06 华为技术有限公司 对数据进行处理的方法及装置
US9647759B2 (en) * 2013-12-22 2017-05-09 IPLight Ltd. Efficient mapping of CPRI signals for sending over optical networks
JP5933862B2 (ja) * 2014-05-21 2016-06-15 三菱電機株式会社 通信システム
US9654253B1 (en) * 2015-12-21 2017-05-16 Inphi Corporation Apparatus and method for communicating data over an optical channel
WO2017161280A1 (en) * 2016-03-18 2017-09-21 Kyocera Corporation System and method for dual-coding for dual-hops channels
JP6736046B2 (ja) * 2016-08-01 2020-08-05 京セラ株式会社 デュアルコーディングによるロバストなリレー再送
CN107786305A (zh) * 2016-08-29 2018-03-09 海思光电子有限公司 一种前向纠错后的误码补偿方法和编解码处理装置
JP6660898B2 (ja) * 2017-02-16 2020-03-11 日本電信電話株式会社 伝送装置、伝送方法およびプログラム
CN108667553B (zh) * 2017-03-29 2021-07-09 华为技术有限公司 编码方法、解码方法、装置和系统
US10998922B2 (en) * 2017-07-28 2021-05-04 Mitsubishi Electric Research Laboratories, Inc. Turbo product polar coding with hard decision cleaning
US10374752B2 (en) * 2017-08-31 2019-08-06 Inphi Corporation Methods and systems for data transmission
US10848270B2 (en) * 2018-11-29 2020-11-24 Ciena Corporation Concatenated forward error correction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104115435A (zh) * 2012-02-20 2014-10-22 泰科电子海底通信有限责任公司 包括改进位交错编码调制的系统和方法
CN104541452A (zh) * 2012-08-31 2015-04-22 泰科电子海底通信有限责任公司 具有迭代解码和分形内编码的位交织编码调制
US20150162937A1 (en) * 2013-12-11 2015-06-11 Nec Laboratories America, Inc. Adaptive Coded-Modulation for Intelligent Optical Transport Networks
CN106688201A (zh) * 2014-09-16 2017-05-17 三菱电机株式会社 用于通过光超级信道传输数据的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3965325A4

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022156767A1 (zh) * 2021-01-25 2022-07-28 华为技术有限公司 数据传输的方法、装置、设备、系统及计算机可读存储介质
CN117749323A (zh) * 2021-01-25 2024-03-22 华为技术有限公司 数据传输的方法、装置、设备、系统及可读存储介质
WO2023015863A1 (zh) * 2021-08-11 2023-02-16 华为技术有限公司 数据传输的方法、装置、设备、系统及可读存储介质

Also Published As

Publication number Publication date
JP2022533326A (ja) 2022-07-22
CN115987450A (zh) 2023-04-18
BR112021022737A2 (pt) 2022-02-15
JP7424724B2 (ja) 2024-01-30
US20220077875A1 (en) 2022-03-10
JP2022533081A (ja) 2022-07-21
WO2020227976A1 (zh) 2020-11-19
EP3965325A1 (en) 2022-03-09
CA3177569A1 (en) 2020-11-19
CN113728569B (zh) 2022-12-06
BR112021022883A2 (pt) 2022-01-04
CN113875177B (zh) 2024-07-05
US20220077958A1 (en) 2022-03-10
CN113875177A (zh) 2021-12-31
CN118677571A (zh) 2024-09-20
CN113728569A (zh) 2021-11-30
EP3958485A1 (en) 2022-02-23
CN116032422A (zh) 2023-04-28
CA3178909A1 (en) 2020-11-19
EP3965325A4 (en) 2022-10-26
EP3958485A4 (en) 2022-03-23

Similar Documents

Publication Publication Date Title
WO2020228126A1 (zh) 数据传输、编码、解码方法、装置、设备及存储介质
US7917833B2 (en) Communication apparatus, transmitter, receiver, and error correction optical communication system
US11245493B2 (en) Methods and systems for data transmission
US20020056064A1 (en) Method and apparatus for enhanced forward error correction in network
WO2011026375A1 (zh) 编码方法及装置、解码方法及装置
US11528094B2 (en) Data sending and receiving method and device
US20220069944A1 (en) Data Processing Method And Related Apparatus
WO2022199529A1 (zh) 一种数据编码处理方法、装置、存储介质及电子装置
JP2013070289A (ja) 誤り訂正方法、誤り訂正装置、送信機、受信機及び誤り訂正プログラム
KR20120101808A (ko) 고성능 연접 bch 기반 순방향 오류 정정 시스템 및 방법
CN110034846B (zh) 一种编码方法及装置
Seki et al. Single-chip FEC codec LSI using iterative CSOC decoder for 10 Gb/s long-haul optical transmission systems
WO2023236838A1 (zh) 编码传输方法、解码方法和通信装置
US20240356673A1 (en) Data sending and receiving method and device
CN116261066A (zh) 一种数据传输方法及相关设备
CN116073944A (zh) 数据传输的方法、装置、设备、系统及可读存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19928816

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021567829

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112021022737

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 2019928816

Country of ref document: EP

Effective date: 20211129

REG Reference to national code

Ref country code: BR

Ref legal event code: B01E

Ref document number: 112021022737

Country of ref document: BR

Free format text: FAVOR EFETUAR, EM ATE 60 (SESSENTA) DIAS, O PAGAMENTO DE GRU CODIGO DE SERVICO 260 PARA A REGULARIZACAO DO PEDIDO, CONFORME ART 2O 1O DA RESOLUCAO 189/2017 E NOTA DE ESCLARECIMENTO PUBLICADA NA RPI 2421 DE 30/05/2017, UMA VEZ QUE A PETICAO NO 870210112386 DE 03/12/2021 APRESENTA DOCUMENTOS REFERENTES A DOIS SERVICOS DIVERSOS (APRESENTACAO DA TRADUCAO DO PEDIDO E APRESENTACAO DE MODIFICACOES NAS REIVINDICACOES) TENDO SIDO PAGA SOMENTE UMA RETRIBUICAO. DEVERA SER PAGA MAIS 1 (UMA) GRU CODIGO DE SERVICO 260 E A GRU CODIGO DE SERVICO 207 REFERENTE A RESPOSTA DESTA EXIGENCIA.

ENP Entry into the national phase

Ref document number: 112021022737

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20211111

ENP Entry into the national phase

Ref document number: 3178909

Country of ref document: CA