WO2020228126A1 - 数据传输、编码、解码方法、装置、设备及存储介质 - Google Patents
数据传输、编码、解码方法、装置、设备及存储介质 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0065—Serial concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block 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
Description
Claims (63)
- 一种数据传输方法,其特征在于,包括:第一芯片接收第二芯片发送的第一数据流;所述第一数据流为采用第一前向纠错FEC码型编码的数据流;所述第一芯片对所述第一数据流再进行至少一次编码,得到第二数据流;其中,所述第二数据流为至少采用所述第一FEC码型和第二FEC码型编码的级联FEC码流。
- 根据权利要求1所述的方法,其特征在于,所述第一FEC码型具体为:里德-所罗门RS码、博斯-乔赫里-霍克文黑姆BCH码、阶梯Staircase码、低密度奇偶校验LDPC码、涡轮Turbo码或涡轮乘积码TPC。
- 根据权利要求1或2所述的方法,其特征在于,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
- 根据权利要求1至3任意一项所述的方法,其特征在于,所述第一芯片对所述第一数据流再进行至少一次编码,形成第二数据流,包括:所述第一芯片将所述第一数据流分发成n条第三数据流;其中,所述第一数据流中同一个码字块的数据被分发到不同的所述第三数据流中;所述第一芯片分别对所述多条第三数据流再进行至少一次编码,形成所述第二数据流。
- 根据权利要求4所述的方法,其特征在于,从所述第一数据流中识别出来的k个码字块被分发到n条第三数据流中,每一条所述第三数据流中属于所述k个码字块的数据被编码成所述第二数据流中的一个码字块;其中,所述第一数据流中k个码字块所包含的全部数据量与所述第二数据流中n个码字块所包含的有效载荷数据量相等。
- 根据权利要求4所述的方法,其特征在于,所述第一数据流中的数据按照FEC符号块进行分发,所述第一数据流中同一个FEC符号块的数据被编码在所述第二数据流中的同一个码字块中。
- 根据权利要求4所述的方法,其特征在于,所述第一数据流中的数据按照比特流进行分发,所述第三数据流中的数据按照比特流进行编码。
- 根据权利要求1至7所述的方法,其特征在于,所述第一芯片和所述第二芯片位于同一数据传输设备内,所述第一芯片为电芯片,所述第二芯片为采用以太网接口的芯片。
- 一种数据传输方法,其特征在于,包括:第一芯片接收第二芯片发送的第二数据流;所述第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流;所述第一芯片对所述第二数据流进行至少一次解码,形成第一数据流;所述第一数据流为采用所述第一FEC码型编码的数据流;所述第一芯片向第三芯片发送所述第一数据流。
- 根据权利要求9所述的方法,其特征在于,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
- 根据权利要求9或10所述的方法,其特征在于,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
- 根据权利要求9至11所述的方法,其特征在于,所述第一数据流用于被所述第三芯片按照所述第一FEC码型进行解码。
- 根据权利要求9至12所述的方法,其特征在于,所述第二芯片位于第一数据传输设备内,所述第一芯片和所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二芯片为电芯片,所述第三芯片为采用以太网接口的芯片。
- 一种数据传输装置,其特征在于,所述装置为第一芯片,包括:接收器,用于接收第二芯片发送的第一数据流;所述第一数据流为采用第一前向纠错FEC码型编码的数据流;编码器,用于对所述第一数据流再进行至少一次编码,得到第二数据流;其中,所述第二数据流为至少采用所述第一FEC码型和第二FEC码型编码的级联FEC码流。
- 根据权利要求14所述的装置,其特征在于,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
- 根据权利要求14或15所述的装置,其特征在于,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
- 根据权利要求14至16任意一项所述的装置,其特征在于,所述编码器,具体用于:将所述第一数据流分发成n条第三数据流;其中,所述第一数据流中同一个码字块的数据被分发到不同的所述第三数据流中;分别对所述多条第三数据流再进行至少一次编码,形成所述第二数据流。
- 根据权利要求17所述的装置,其特征在于,从所述第一数据流中识别出来的k个码字块被分发到n条第三数据流中,每一条所述第三数据流中属于所述k个码字块的数据被编码成所述第二数据流中的一个码字块;其中,所述第一数据流中k个码字块所包含的全部数据量与所述第二数据流中n个码字块所包含的有效载荷数据量相等。
- 根据权利要求17所述的装置,其特征在于,所述第一数据流中的数据按照FEC符号块进行分发,所述第一数据流中同一个FEC符号块的数据被编码在所述第二数据流中的同一个码字块中。
- 根据权利要求17所述的装置,其特征在于,所述第一数据流中的数据按照比特流进行分发,所述第三数据流中的数据按照比特流进行编码。
- 根据权利要求14至20所述的装置,其特征在于,所述第一芯片和所述第二芯片位于同一数据传输设备内,所述第一芯片为电芯片,所述第二芯片为采用以太网接口的芯片。
- 一种数据传输装置,其特征在于,所述装置为第一芯片,包括:接收器,用于接收第二芯片发送的第二数据流;所述第二数据流为至少采用第一FEC码型和第二FEC码型编码的级联FEC码流;解码器,用于对所述第二数据流进行至少一次解码,形成第一数据流;所述第一数据流为采用所述第一FEC码型编码的数据流;发送器,用于向第三芯片发送所述第一数据流。
- 根据权利要求22所述的装置,其特征在于,所述第一FEC码型具体为:RS码、BCH码、Staircase码、LDPC码、Turbo码或TPC。
- 根据权利要求22或23所述的装置,其特征在于,所述第二FEC码型具体为:BCH码、RS码、Staircase码、LDPC码、Turbo码或TPC。
- 根据权利要求22至24所述的装置,其特征在于,所述第一数据流用于被所述第三芯片按照所述第一FEC码型进行解码。
- 根据权利要求22至25所述的装置,其特征在于,所述第二芯片位于第一数据传输设备内,所述第一芯片和所述第三芯片位于第二数据传输设备内,所述第一芯片为电芯片,所述第二模块为芯片,所述第三芯片为采用以太网接口的芯片。
- 一种通信系统,其特征在于,包括权利要求14-21任一项所述的数据传输装置以及权利要求22-26任一项所述的数据传输装置。
- 一种网络设备,其特征在于,包括权利要求14-21任一项所述的数据传输装置。
- 一种网络设备,其特征在于,包括权利要求22-26任一项所述的数据传输装置。
- 一种数据传输系统,其特征在于,包括权利要求28所述的网络设备和权利要求29所述的网络设备。
- 一种数据编码方法,其特征在于,所述方法包括:第一电路接收第二电路通过以太网接口传输的第一数据流,所述第一数据流是采用里德-所罗门RS码对原始数据进行编码得到的;所述第一电路对所述第一数据流进行博斯-乔赫里-霍克文黑姆BCH编码,得到第二数据流。
- 根据权利要求31所述的方法,其特征在于,所述第一电路接收第二电路通过以太网接口传输的第一数据流,包括:所述第一电路从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;所述第一电路包括一个或多个BCH编码器,所述第一电路对所述第一数据流进行BCH编码,得到第二数据流,包括:当所述第一电路包括的BCH编码器的数量与所述物理通路的数量一致时,一个BCH编码器与一条物理通路对接,所述第一电路通过所述一个或多个BCH编码器对对应的物理通路传输的第一数据流进行BCH编码,得到第二数据流。
- 根据权利要求31所述的方法,其特征在于,所述第一电路接收第二电路通过以太网接口传输的第一数据流,包括:所述第一电路从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;所述第一电路包括一个或多个BCH编码器,所述第一电路还包括调度器,所述第一电路对所述第一数据流进行BCH编码,得到第二数据流,包括:当所述第一电路包括的BCH编码器的数量与所述物理通路的数量不一致时,所述第一电路通过所述调度器调度对应的BCH编码器对所述第一数据流进行BCH编码,得到第二数据流。
- 根据权利要求31-33任一所述的方法,其特征在于,所述对所述第一数据流进行BCH编码,包括:将所述第一数据流中的数据填入到对应的BCH码字中,每个BCH码字中包括的连续参考数量个符号来自不同的RS码字。
- 根据权利要求34所述的方法,其特征在于,所述第一数据流中的数据按照所述参考数量个RS码字进行交织得到符号流数据之后,输出至多条虚拟通路上,再根据物理通路的数量进行比特复用,由多条物理通路传输至所述第一电路;所述将所述第一数据流中的数据填入到对应的BCH码字中之前,还包括:所述第一电路对所述第一数据流解复用,恢复出各条虚拟通路的数据;对所述各条虚拟通路的数据进行对齐,得到对齐后的数据;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述对齐后的数据填入到对应的BCH码字中。
- 根据权利要求34或35所述的方法,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流每一行的前半部分数据按照顺序依次填入到所述第二数量个BCH码字的前第三数量个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述第二数量个BCH码字的后第三数量个BCH码字中,所述第三数量为所述第二数量的一半,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
- 根据权利要求36所述的方法,其特征在于,所述第一目标数量为544,所述第一数量为2,所述第二数量为32,所述第二目标数量为360;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流每一行的前半部分数据按照顺序依次填入到32个BCH码字的前16个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述32个BCH码字的后16个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
- 根据权利要求34或35所述的方法,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,所述第一数据流的每一列数据的开头或结尾的符号进行了顺序调换,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流的每一列数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
- 根据权利要求38所述的方法,其特征在于,所述第一目标数量为544,所述第一数量为2,所述第二数量为32,所述第二目标数量为360;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流的每一列数据按照顺序依次填入到32个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
- 根据权利要求34或35所述的方法,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数 量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述将所述第一数据流中的数据填入到对应的BCH码字中,包括:将所述第一数据流中的数据进行解交织,得到原始的RS码字;将所述原始的RS码字按照第四数量个RS码字进行交织,得到交织后的数据,所述第四数量大于所述第一数量;将所述交织后的数据的每一行数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第四数量个符号来自不同的RS码字。
- 根据权利要求31-40任一所述的方法,其特征在于,所述第一电路对所述第一数据流进行BCH编码,得到第二数据流之后,还包括:通过媒介将所述第二数据流采用多条物理通路传输至第三电路,或者,通过所述媒介将所述第二数据流以时分复用的方式采用一条物理通路传输至所述第三电路。
- 一种数据解码方法,其特征在于,所述方法包括:第三电路接收第一电路传输的第二数据流,所述第二数据流是采用里德-所罗门RS码及博斯-乔赫里-霍克文黑姆BCH码进行编码得到的;采用所述BCH码对所述第二数据流进行解码,得到第一数据流;采用所述RS码对所述第一数据流进行解码,得到原始数据。
- 根据权利要求42所述的方法,其特征在于,所述第三电路接收第一电路传输的第二数据流,包括:通过媒介接收所述第一电路采用多条物理通路传输的所述第二数据流,或者,通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流。
- 根据权利要求43所述的方法,其特征在于,所述采用所述BCH码对所述第二数据流进行解码,得到第一数据流之前,还包括:当通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流时,对所述第二数据流进行解复用;所述采用所述BCH码对所述第二数据流进行解码,得到第一数据流,包括:采用所述BCH码对解复用之后的数据流进行解码,得到第一数据流。
- 根据权利要求44所述的方法,其特征在于,所述采用BCH码对解复用之后的第二数据流进行解码之前,还包括:对解复用之后的第二数据流进行对齐;所述采用BCH码对解复用之后的第二数据流进行解码,得到第一数据流,包括:采用BCH码对对齐之后的第二数据流进行解码,得到第一数据流。
- 一种数据编码装置,其特征在于,所述装置包括:接收模块,用于接收第二电路通过以太网接口传输的第一数据流,所述第一数据流是采用里德-所罗门RS码对原始数据进行编码得到的;编码模块,用于对所述第一数据流进行博斯-乔赫里-霍克文黑姆BCH编码,得到第二数据流。
- 根据权利要求46所述的装置,其特征在于,所述接收模块,用于从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;所述装置包括一个或多个BCH编码器,所述编码模块,用于当包括的BCH编码器的数量 与所述物理通路的数量一致时,一个BCH编码器与一条物理通路对接,通过所述一个或多个BCH编码器对对应的物理通路传输的第一数据流进行BCH编码,得到第二数据流。
- 根据权利要求46所述的装置,其特征在于,所述接收模块,用于从多个物理通路接收所述第二电路通过以太网接口传输的第一数据流;所述装置包括一个或多个BCH编码器,还包括调度器,所述编码模块,用于当所述第一电路包括的BCH编码器的数量与所述物理通路的数量不一致时,通过所述调度器调度对应的BCH编码器对所述第一数据流进行BCH编码,得到第二数据流。
- 根据权利要求46-48任一所述的装置,其特征在于,所述编码模块,用于将所述第一数据流中的数据填入到对应的BCH码字中,每个BCH码字中包括的连续参考数量个符号来自不同的RS码字。
- 根据权利要求49所述的装置,其特征在于,所述第一数据流中的数据按照所述参考数量个RS码字进行交织得到符号流数据之后,输出至多条虚拟通路上,再根据物理通路的数量进行比特复用,由多条物理通路传输至所述数据编码装置;所述装置,还包括:解复用模块,用于对所述第一数据流解复用,恢复出各条虚拟通路的数据;对齐模块,用于对所述各条虚拟通路的数据进行对齐,得到对齐后的数据;所述编码模块,用于将所述对齐后的数据填入到对应的BCH码字中。
- 根据权利要求49或50所述的装置,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述编码模块,用于将所述第一数据流每一行的前半部分数据按照顺序依次填入到所述第二数量个BCH码字的前第三数量个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述第二数量个BCH码字的后第三数量个BCH码字中,所述第三数量为所述第二数量的一半,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
- 根据权利要求51所述的装置,其特征在于,所述第一目标数量为544,所述第一数量为2,所述第二数量为32,第二目标数量为360;所述编码模块,用于将所述第一数据流每一行的前半部分数据按照顺序依次填入到32个BCH码字的前16个BCH码字中,将所述第一数据流每一行的后半部分数据按照顺序依次填入到所述32个BCH码字的后16个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
- 根据权利要求49或50所述的方法,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,所述第一数据流的每一列数据的开头或结尾的符号进行了顺序调换,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述编码模块,用于将所述第一数据流的每一列数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第一数量个符号来自不同的RS码字。
- 根据权利要求53所述的装置,其特征在于,所述第一目标数量为544,所述第一数量为2,所述第二数量为32,第二目标数量为360;所述编码模块,用于将所述第一数据流的每一列数据按照顺序依次填入到32个BCH码字中,每个BCH码字中包括的连续2个符号来自不同的RS码字。
- 根据权利要求49或50所述的装置,其特征在于,所述第一数据流包括第一数量个RS码字,每个RS码字包括第一目标数量个符号,所述第一数据流中的数据按照所述第一数量个RS码字进行交织,每个BCH编码器对应第二数量个BCH码字,每个BCH码字包括第二目标数量个符号,所述第二目标数量根据所述第一目标数量确定,所述第二数量根据所述第一数量确定;所述编码模块,用于将所述第一数据流中的数据进行解交织,得到原始的RS码字;将所述原始的RS码字按照第四数量个RS码字进行交织,得到交织后的数据,所述第四数量大于所述第一数量;将所述交织后的数据的每一行数据按照顺序依次填入到所述第二数量个BCH码字中,每个BCH码字中包括的连续第四数量个符号来自不同的RS码字。
- 根据权利要求46-55任一所述的装置,其特征在于,所述装置,还包括:传输模块,用于通过媒介将所述第二数据流采用多条物理通路传输至第三电路,或者,通过所述媒介将所述第二数据流以时分复用的方式采用一条物理通路传输至所述第三电路。
- 一种数据解码装置,其特征在于,所述装置包括:接收模块,用于接收第一电路传输的第二数据流,所述第二数据流是采用里德-所罗门RS码及博斯-乔赫里-霍克文黑姆BCH码进行编码得到的;第一解码模块,用于采用所述BCH码对所述第二数据流进行解码,得到第一数据流;第二解码模块,用于采用所述RS码对所述第一数据流进行解码,得到原始数据。
- 根据权利要求57所述的装置,其特征在于,所述接收模块,用于通过媒介接收所述第一电路采用多条物理通路传输的所述第二数据流,或者,通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流。
- 根据权利要求58所述的装置,其特征在于,所述装置,还包括:解复用模块,用于当通过所述媒介接收所述第一电路以时分复用的方式采用一条物理通路传输的所述第二数据流时,对所述第二数据流进行解复用;所述第一解码模块,用于采用所述BCH码对解复用之后的数据流进行解码,得到第一数据流。
- 根据权利要求59所述的装置,其特征在于,所述装置,还包括:对齐模块,用于对解复用之后的第二数据流进行对齐;所述第一解码模块,用于采用BCH码对对齐之后的第二数据流进行解码,得到第一数据流。
- 一种数据传输设备,其特征在于,所述设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现权利要求31-41中任一所述的数据编码方法,或者实现权利要求42-45中任一所述的数据解码方法。
- 一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现权利要求31-41中任一所述的数据编码方法,或者实现权利要求42-45中任一所述的数据解码方法。
- 一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行权利要求31-41中任一所述的数据编码方法,或者执行权利要求42-45中任一所述的数据解码方法。
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)
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)
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)
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)
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 |
-
2019
- 2019-05-15 CN CN202211516321.8A patent/CN116032422A/zh active Pending
- 2019-05-15 WO PCT/CN2019/087058 patent/WO2020227976A1/zh unknown
- 2019-05-15 EP EP19929100.6A patent/EP3958485A4/en active Pending
- 2019-05-15 CN CN201980095737.7A patent/CN113728569B/zh active Active
- 2019-05-15 JP JP2021565966A patent/JP2022533326A/ja active Pending
- 2019-05-15 BR BR112021022883A patent/BR112021022883A2/pt unknown
- 2019-05-15 CA CA3177569A patent/CA3177569A1/en active Pending
- 2019-05-15 CN CN202211516507.3A patent/CN115987450A/zh active Pending
- 2019-07-15 JP JP2021567829A patent/JP7424724B2/ja active Active
- 2019-07-15 CA CA3178909A patent/CA3178909A1/en active Pending
- 2019-07-15 WO PCT/CN2019/096055 patent/WO2020228126A1/zh unknown
- 2019-07-15 CN CN201980096406.5A patent/CN113875177B/zh active Active
- 2019-07-15 BR BR112021022737A patent/BR112021022737A2/pt unknown
- 2019-07-15 EP EP19928816.8A patent/EP3965325A4/en active Pending
- 2019-07-15 CN CN202410807429.5A patent/CN118677571A/zh active Pending
-
2021
- 2021-11-12 US US17/525,178 patent/US20220077958A1/en active Pending
- 2021-11-12 US US17/525,189 patent/US20220077875A1/en active Pending
Patent Citations (4)
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)
Title |
---|
See also references of EP3965325A4 |
Cited By (3)
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 |