Method, device and system for de-interleaving data streams

CN119948787AActive Publication Date: 2025-05-06HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202480003305.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-01-16
Filing Date
2024-06-25
Publication Date
2025-05-06
Estimated Expiration
2044-06-25

AI Technical Summary

Technical Problem

During Ethernet data transmission, due to environmental interference and system errors, there is a code error between the data received by the data receiving end and the data at the sending end. The prior art requires additional transmission of fixed data segments to determine the deinterleaving location, resulting in transmission costs and inefficient.

Method used

By obtaining the forward error correction FEC encoded data stream, the deinterleaving location is determined based on the interleaving particle size and the FEC codeword boundary, avoiding additional transmission of fixed data segments, and directly restoring the original data stream.

Benefits of technology

Improve the efficiency of understanding interleaving, save hardware resources, reduce transmission costs, and improve network transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119948787A_ABST
    Figure CN119948787A_ABST
Patent Text Reader

Abstract

Provided is a data stream de-interleaving method, comprising: acquiring a first interleaved data stream subjected to forward error correction (FEC) coding, acquiring N sub-data streams corresponding to the first interleaved data stream based on an interleaving granularity of the first interleaved data stream, N being an interleaving depth of the first interleaved data stream and N being a positive integer greater than 1, and determining a de-interleaving position based on the FEC codeword boundaries of at least two sub-data streams in the N sub-data streams, and obtaining a first de-interleaving data stream according to the first interleaving data stream based on the de-interleaving position. By means of the method, de-interleaving can be completed without inserting extra fixed data segments specially used for searching the de-interleaving position, and data can be correctly recovered. Therefore, additional data is avoided, hardware resources are saved, the de-interleaving efficiency is improved, the transmission cost is reduced, and the network efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Method, device and system for deinterleaving data stream

[0001] This application claims priority to Chinese patent application No. 202410063609.7, filed on January 16, 2024, with the invention name “A method, device and system for deinterleaving a data stream”, as well as Chinese patent application No. 202310773216.0, filed on June 27, 2023, with the invention name “A synchronization method for deinterleaving”, and Chinese patent application No. 202310808219.3, filed on July 3, 2023, with the invention name “A method, device and system for deinterleaving a data stream”, the entire contents of which are incorporated into this application by reference. Technical Field

[0002] The present application relates to the field of communications, and in particular to a method, device, and system for deinterleaving data streams. Background Art

[0003] During Ethernet data transmission, due to various factors such as environmental interference and system errors, inconsistencies between the data received by the data receiver and the data sent by the data transmitter may occur, resulting in inevitable bit errors. Current methods such as forward error correction (FEC) and interleavers can reduce the bit error rate (BER). The data output by the interleaver is transmitted through a communication channel to the data receiver, where it is deinterleaved by the deinterleaver and then decoded by the FEC decoder.

[0004] To determine the correct deinterleaving position, the data transmitter typically periodically inserts fixed data segments into the data, specifically used to determine the deinterleaving position. The data receiver then determines the correct deinterleaving position by searching for these fixed data segments. However, this approach requires transmitting an additional fixed data segment in addition to the original data, resulting in higher transmission costs.

[0005] Summary of the Invention

[0006] A method for deinterleaving a data stream is provided to solve the technical problems of low deinterleaving efficiency and low network transmission efficiency caused by inserting fixed data segments.

[0007] In a first aspect, a method for deinterleaving a data stream is provided. The method includes obtaining a first interleaved data stream encoded with forward error correction (FEC), obtaining N sub-data streams corresponding to the first interleaved data stream based on the interleaving granularity of the first interleaved data stream, where N is the interleaving depth of the first interleaved data stream and is a positive integer greater than 1, determining a deinterleaving position based on FEC codeword boundaries of at least two of the N sub-data streams, and obtaining a first deinterleaved data stream based on the first interleaved data stream based on the deinterleaving position. The deinterleaving position may also be referred to as a correct deinterleaving position, i.e., a position used to correctly perform the deinterleaving process, recover the original codewords and their relative order, and thereby recover the position of the data stream before encoding. This method allows deinterleaving to be completed and data to be correctly recovered without inserting additional fixed data segments specifically for finding the deinterleaving position. This avoids the addition of additional data, saves hardware resources, improves deinterleaving efficiency, reduces transmission costs, and enhances network efficiency.

[0008] In one possible implementation, N sub-data streams are arranged in sequence, and determining the deinterleaving position based on the FEC codeword boundaries of at least two of the N sub-data streams includes: determining the deinterleaving position to be the FEC codeword boundary of the second sub-data stream based on the FEC codeword boundary of the first sub-data stream being after the FEC codeword boundary of the second sub-data stream; wherein the first sub-data stream and the second sub-data stream are two adjacent sub-data streams among the N sub-data streams. The order of the FEC codeword boundaries refers to the order in which the data at the FEC codeword boundary position is transmitted in the first interleaved data stream, or is also called the speed order. When a difference in the FEC codeword boundaries between two adjacent sub-data streams is found, the sub-data stream with the earlier FEC codeword boundary is the sub-data stream that transmits faster, and the FEC codeword boundary of the faster sub-data stream is the correct deinterleaving position.

[0009] In a possible implementation, the first sub-data stream is arranged before the second sub-data stream.

[0010] In a possible implementation, the FEC codeword boundary of the first sub-data stream differs from the FEC codeword boundary of the second sub-data stream by one symbol.

[0011] In one possible implementation, the N sub-data streams are arranged in sequence, and determining the deinterleaving position based on the FEC codeword boundaries of at least two of the N sub-data streams includes: determining the deinterleaving position as the FEC codeword boundary of the first sub-data stream based on the alignment of the FEC codeword boundaries of each sub-data stream in the N sub-data streams; wherein the first sub-data stream is arranged first in the N sub-data streams. The alignment of the FEC codeword boundaries of each sub-data stream means that the data at the FEC codeword boundary position of each sub-data stream is included in the data corresponding to a single deinterleaving distribution, that is, the data at the FEC codeword boundary position of each sub-data stream is included in the data corresponding to a group of interleaving at the data transmitter. When the FEC codeword boundaries of each sub-data stream are found to be aligned, the current starting point for deinterleaving distribution is the correct deinterleaving position, that is, the FEC codeword boundary of the sub-data stream that is arranged first in the N sub-data streams is the correct deinterleaving position.

[0012] In one possible implementation, obtaining a first deinterleaved data stream according to the first interleaved data stream based on the deinterleaving position includes: determining a deinterleaving combination order of the N sub-data streams based on the deinterleaving position and an arrangement order of the N sub-data streams; and combining data in the first interleaved data stream based on the deinterleaving combination order to obtain the first deinterleaved data stream.

[0013] In one possible implementation, obtaining N sub-data streams corresponding to the first interleaved data stream based on the interleaving granularity of the first interleaved data stream includes: selecting a data stream distribution starting position from the first interleaved data stream, and distributing the first interleaved data stream into N sub-data streams based on the interleaving granularity of the first interleaved data stream; wherein the data stream distribution starting position is a randomly selected position in the first interleaved data stream.

[0014] In a possible implementation, obtaining N sub-data streams corresponding to the first interleaved data stream based on the interleaving granularity of the first interleaved data stream includes: distributing data of the first interleaved data stream to the N sub-data streams in a round-robin manner based on the interleaving granularity of the first interleaved data stream.

[0015] In a possible implementation, the method further includes: determining an FEC codeword boundary of each of the N sub-data streams.

[0016] In a possible implementation, determining the FEC codeword boundary of each of the N sub-data streams includes: determining the FEC codeword boundary of each of the N sub-data streams according to FEC codeword characteristics.

[0017] In one possible implementation, determining the FEC codeword boundary of each of the N sub-data streams based on the FEC codeword characteristics includes: performing characteristic value verification based on the assumed FEC codeword boundary in each sub-data stream, and determining the FEC codeword boundary of each sub-data stream based on the verification result.

[0018] In one possible implementation, the FEC codewords of the N sub-data streams are in a cyclic shift relationship, and determining the FEC codeword boundary of each sub-data stream in the N sub-data streams based on the FEC codeword characteristics includes: performing a reverse cyclic shift on the obtained FEC codewords of the N sub-data streams; and determining the FEC codeword boundary of each sub-data stream in the N sub-data streams after the reverse cyclic shift based on the FEC codeword characteristics.

[0019] In a possible implementation, the first interleaved data stream does not include a periodic alignment data segment, and the periodic alignment data segment includes an alignment word, a frame alignment word, or a guide data.

[0020] In a possible implementation, the FEC encoding mode of the first interleaved data stream is non-concatenated code FEC encoding or concatenated code FEC encoding.

[0021] In a possible implementation, N is 4 or 8.

[0022] In a possible implementation, the interleaving type of the first interleaved data stream is symbol interleaving or convolutional interleaving.

[0023] In a possible implementation, the method is executed by a physical layer PHY chip, a forwarding device, or a pluggable module.

[0024] In a possible implementation, a channel rate of the first interleaved data stream is greater than or equal to 200 gigabits per second (Gbps).

[0025] In a second aspect, an Ethernet device is provided, comprising at least one module; the at least one module is configured to execute the method provided in the first aspect or any optional embodiment of the first aspect. The at least one module may be implemented based on software, hardware, or a combination of software and hardware, and the modules may be arbitrarily combined or divided based on the specific implementation.

[0026] In a third aspect, an Ethernet device is provided, comprising a memory and a processor; the memory is used to store a computer program; the processor is used to execute the computer program stored in the memory so that the Ethernet device performs the method provided in the first aspect or any optional manner of the first aspect.

[0027] In a fourth aspect, an Ethernet device is provided, comprising a main control board and an interface board, wherein the main control board or the interface board is used to implement the method provided in the first aspect or any optional manner of the first aspect.

[0028] In a fifth aspect, a communication system is provided, which includes a sending end device and a receiving end device, and the receiving end device is used to execute the method provided in the first aspect or any optional manner of the first aspect.

[0029] In a sixth aspect, a computer-readable storage medium is provided, in which a computer program is stored. When the computer program is executed, the method provided in the first aspect or any optional manner of the first aspect is implemented.

[0030] In a seventh aspect, a computer program product is provided, which includes a program or code, and when the program or code is executed, it implements the method provided in the first aspect or any optional manner of the first aspect.

[0031] In an eighth aspect, a chip is provided that, when running, implements the method provided in the first aspect or any optional manner of the first aspect. The chip may be a control chip or a forwarding chip, and the chip includes a programmable logic circuit and / or program instructions.

[0032] The technical effects of the second to eighth aspects mentioned above can refer to the technical effects of the first aspect and will not be elaborated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0033] To more clearly illustrate the technical solutions of this application, the following briefly introduces the drawings used in the embodiments. Obviously, the following drawings are only drawings of some embodiments of this application. A person skilled in the art can, without inventive effort, derive other technical solutions and drawings that can also implement this application based on these drawings.

[0034] FIG1( a ) is a schematic diagram of a random bit error provided by an embodiment of the present invention;

[0035] FIG1( b ) is a schematic diagram of a random bit error provided by an embodiment of the present invention;

[0036] FIG2 is a schematic diagram of an interleaver processing process provided by an embodiment of the present invention;

[0037] FIG3 is a schematic diagram of an interleaved data processing process provided by an embodiment of the present invention;

[0038] FIG4( a ) is a schematic diagram of an interleaved data processing process provided by an embodiment of the present invention;

[0039] FIG4( b ) is a schematic diagram of an interleaved data processing process provided by an embodiment of the present invention;

[0040] FIG5 is a schematic diagram of an interleaved data processing process provided by an embodiment of the present invention;

[0041] FIG6 is a schematic diagram of a data insertion processing process provided by an embodiment of the present invention;

[0042] FIG7 is a schematic flow chart of a method for deinterleaving a data stream according to an embodiment of the present invention;

[0043] FIG8( a ) is an applicable scenario of a data stream deinterleaving method provided in an embodiment of the present application;

[0044] FIG8( b ) is an applicable scenario of a data stream deinterleaving method provided in an embodiment of the present application;

[0045] FIG8( c ) is an applicable scenario of a data stream deinterleaving method provided in an embodiment of the present application;

[0046] FIG9 is a schematic diagram of a cyclic shift processing process provided in an embodiment of the present application;

[0047] FIG10 is a schematic diagram of a processing procedure for interleaving with cyclic shift provided by an embodiment of the present application;

[0048] FIG11 is a schematic diagram of a data stream deinterleaving process provided in an embodiment of the present application;

[0049] FIG12 is a schematic diagram of a data stream deinterleaving process provided in an embodiment of the present application;

[0050] FIG13 is a schematic diagram of a data stream deinterleaving process provided in an embodiment of the present application;

[0051] FIG14 is a schematic diagram of a data stream deinterleaving process provided in an embodiment of the present application;

[0052] FIG15 is a schematic structural diagram of an Ethernet device provided in an embodiment of the present invention;

[0053] FIG16 is a schematic structural diagram of an Ethernet device provided in an embodiment of the present invention;

[0054] FIG17 is a schematic diagram of a communication system provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0055] During the communication transmission process, due to various factors such as environmental interference and system errors, there is a high probability of inconsistencies between the data received by the data receiver and the data sent by the data transmitter. This inconsistency is also known as a bit error. Bit errors are inevitable during communication transmission. Bit errors can cause many problems. For example, when errors occur in critical control signals used for communication between various devices on the network, they can lead to serious problems such as system crashes and data loss. In addition, the presence of bit errors can significantly affect network communication latency, which in turn affects consumers' experience in activities such as watching videos, playing online games, and making calls. Therefore, the bit error rate (BER) has always been a key performance indicator of communication systems. The lower the BER value at the data receiver, the higher the network transmission reliability.

[0056] To ensure high reliability of communication systems, the industry usually sets clear requirements for the BER of communication systems. For example, the Institute of Electrical and Electronics Engineers (IEEE) standard 802.3bs requires that the BER of data received by the data receiver when entering the media access control (MAC) sublayer should be less than 1×10 -13 However, when the data in the network completes the transmission in the network link and enters the data receiving end, its BER can usually reach 2×10 -4 At this point, the data receiving end can use FEC to correct the bit errors in the data stream and restore it to the transmitted data. FEC can eliminate most bit errors, significantly reducing the BER of the processed data.

[0057] The effectiveness of FEC is related to the error distribution. When two data streams have different error distributions, their post-correction BERs will differ even if their pre-correction BERs are the same. The pre-correction BER refers to the BER before FEC, while the post-correction BER refers to the BER after FEC. Error distribution can be primarily categorized into two types: random errors and non-random errors. For illustrative purposes, Figures 1(a) and 1(b) illustrate random and non-random errors, where b represents a correct bit and x represents an erroneous bit. Random errors manifest as random error distribution, as shown in Figure 1(a). Non-random errors manifest as multiple errors clustered within a short data sequence, as shown in Figure 1(b). Therefore, non-random errors are also called burst errors. Burst errors are common in real-world communication networks. Examples include continuous errors caused by decision feedback equalization (DFE) and continuous errors caused by fast fading due to multipath effects in wireless information. As shown above, the data in Figure 1(a) and Figure 1(b) have the same current BER, but different error distributions lead to different BERs after FEC. Under most communication transmission conditions, burst errors result in a better post-correction BER than random errors, given the same pre-correction FEC.

[0058] To further reduce the post-correction FEC error rate in the event of burst errors, an interleaver, also known as a channel interleaver, is typically introduced. Figure 2 illustrates how an interleaver is used. In Figure 2, Tx represents the data to be input to the FEC encoder at the data transmitter. After being encoded by the FEC encoder at the data transmitter, this data is input to the interleaver for interleaving. The interleaver's output data is transmitted via the communication channel to the data receiver. At the data receiver, the data is input to the deinterleaver for deinterleaving and then to the FEC decoder for decoding. Rx represents the data output from the FEC decoder at the data receiver. After FEC and interleaving, the BER at Rx is significantly reduced.

[0059] In an embodiment of the present application, the interleaving mode of the interleaver can have multiple properties. The interleaving type is a property of the interleaving mode, and the interleaving type includes symbol interleaving or convolution interleaving. Among them, symbol interleaving can also be called block interleaving. Symbol interleaving and convolution interleaving are basically the same in terms of error correction performance, but when achieving the same error correction performance, the latency and power consumption of the two modes may be different. The interleaving depth is also a property of the interleaving mode. The interleaving depth indicates the number of FEC codewords involved in the interleaving, and the number of FEC codewords involved in the interleaving will affect the error correction performance.

[0060] FIG3 exemplarily shows a schematic diagram of a data processing method of symbol interleaving.

[0061] As shown in Figure 3, multiple FEC-encoded codewords are obtained from the data stream to be interleaved as codewords participating in the interleaving, such as codeword A, codeword B, codeword C, codeword D, etc. When the codewords participating in the interleaving come from the same data stream, it is interleaving within the data stream; when the codewords participating in the interleaving come from different data streams, it is interleaving between data streams. Each codeword includes p FEC-encoded symbols, each symbol includes q bits, that is, each codeword includes p×q bits. Wherein, p and q are positive integers. For example, the length of each symbol can be 10 bits, that is, the symbol interleaving is performed with a granularity of 10 bits. For another example, in pulse amplitude modulation-4 (PAM4), the length of each symbol can be 2 bits, that is, PAM4 can use symbol interleaving with a granularity of 2 bits. For another example, p can also be 1, that is, the length of each symbol can be 1 bit, that is, the symbol interleaving is performed with a granularity of 1 bit. As shown in Figure 3, four codewords are selected from the data stream to be interleaved, resulting in an interleaving depth of four codewords. When these codewords are RS codewords, the interleaving depth is 4×RS. These four codewords are interleaved at a symbol granularity and distributed as n data streams across n lanes. Adjacent symbols in each data stream come from different codewords. In other words, symbols from these four codewords appear alternately, forming the interleaved data sequence, shown as interleaved lanes 1 through n in Figure 3.

[0062] Symbol interleaving can be performed on one data stream or on multiple data streams. Figures 4(a) and 4(b) respectively illustrate exemplary data processing methods for symbol interleaving on one or more data streams.

[0063] As shown in Figure 4(a), the data stream to be interleaved is a data stream Tx. Four FEC codewords are obtained from the data stream Tx for interleaving, as shown in Figure 4(a). Four FEC codewords are selected for interleaving at a time, resulting in an interleaving depth of 4. Each codeword consists of 8 symbols. For example, codeword cwA consists of 8 symbols, each of which is a. This means that codeword cwA can be expanded to aaaaaaaa. Similarly, cwB, cwC, and cwD can be expanded to bbbbbbbb, cccccccc, and dddddddd, respectively. These four codewords are alternately combined at the symbol granularity to form the interleaved data stream abcdabcdabcd…abcd, completing a set of interleaving operations. Since the interleaving depth is 4, this is also called a 4:1 interleave. Afterwards, four more FEC codewords are selected to perform the next set of 4:1 interleaving operations, and so on. This is not further explained.

[0064] As shown in Figure 4(b), the data streams to be interleaved are four: Tx1, Tx2, Tx3, and Tx4. An FEC codeword is selected from each of the four data streams to be interleaved as the FEC codeword involved in the interleaving, such as cwA, cwB, cwC, and cwD, which are selected from Tx1, Tx2, Tx3, and Tx4, respectively, in Figure 4(b). Four FEC codewords are selected for interleaving at a time, resulting in an interleaving depth of 4. The composition of each codeword is the same as in Figure 4(a). That is, the codewords cwA, cwB, cwC, and cwD are expanded to aaaaaaaa, bbbbbbbb, cccccccc, and dddddddd, respectively. These four codewords are alternately combined at the symbol granularity to form the interleaved data stream abcdabcdabcd…abcd. Thereafter, the subsequent four FEC codewords are further taken out from the four data streams to be interleaved and interleaved, and so on, which will not be described in detail.

[0065] FIG5 exemplarily shows a schematic diagram of a data processing method of convolution interleaving. Convolution interleaving involves a variety of design parameters, including the number of delay lines, delay block length, and the number of delay blocks. As shown in FIG5 , multiple FEC-encoded codewords are obtained from the data stream to be interleaved for interleaving, including cwA, cwB, cwC, cwD, etc. The interleaving depth is 4 codewords, that is, 4 codewords are selected from the data stream to be interleaved, namely the above-mentioned cwA, cwB, cwC, and cwD, and the number of delay lines is 4, namely 4 lines of data from top to bottom, line 0, 1, 2, and 3. In FIG5 , D represents a delay block. Each delay block is composed of a shift register (LFSR) that can temporarily store certain data, and the number of delay blocks on each delay line is different. There is a switch on the input and output sides of the interleaver that can be switched to connect a certain delay line. FEC codeword data enters the convolutional interleaver column by column, with the delay block length as the granularity, as shown in Figure 5 (a, b, c, d). When the FEC codeword length is the same as the delay block length, the granularity entering the convolutional interleaver is the same as the FEC codeword length. When the FEC codeword length is different from the delay block length, the FEC codeword data must be adjusted to enter the convolutional interleaver with the delay block length as the granularity. Each time a delay block length of data is input to the input side, the output side simultaneously outputs a delay block length of data. The switchable connections on both sides then switch to the next delay line, polling in the order {line 0, line 1, line 2, line 3, line 0, line 1, line 2, line 3, line 0, line 1, …}. Furthermore, in Figure 5, the output side x represents the data stored in the delay block four codewords prior. Moreover, although FIG5 takes the convolution interleaving of one data stream as an example, the convolution interleaving between multiple data streams is similar to the process shown in FIG5 . The difference is that the codewords involved in the interleaving come from multiple data streams, which will not be repeated here.

[0066] As previously mentioned, the data output by the interleaver is transmitted via a communication channel to the data receiving end. At the data receiving end, the data is input into a deinterleaver for deinterleaving and then into an FEC decoder for decoding. The deinterleaver can also be called a channel deinterleaver. During the deinterleaving process at the data receiving end, the deinterleaving position must first be determined. This deinterleaving position can, for example, be the first FEC codeword boundary within an interleaving group. As shown in Figure 4(a), the circled position is the deinterleaving position, i.e., the first FEC codeword boundary within an interleaving group. Starting from this position, the interleaved data stream can be deinterleaved and combined to obtain a deinterleaved data stream. It is easy to understand that this deinterleaving position appears periodically in the interleaved data stream. For example, the first FEC codeword boundary within each interleaving group exists within that group. After determining the deinterleaving position, the received interleaved data stream can be distributed based on the interleaving granularity and interleaving depth, starting from this deinterleaving position. The distributed codewords are then reassembled in sequence to obtain a deinterleaved data stream. For example, for the interleaved data stream formed by 4:1 interleaving as shown in Figure 4(a), four FEC codewords are obtained based on the interleaving granularity distribution. These four FEC codewords are reassembled in the order of A, B, C, and D to obtain a deinterleaved data stream. For the interleaved data stream shown in Figure 4(b), four FEC codewords are obtained based on the interleaving granularity distribution. These four FEC codewords are respectively assigned to the four deinterleaved data streams in the order of A, B, C, and D.

[0067] It can be seen that determining the correct deinterleaving position is a prerequisite for deinterleaving. In order to determine the deinterleaving position, the data transmitter can periodically insert fixed data segments known to the data receiver before or after the deinterleaving position. These fixed data segments are specifically used to find the deinterleaving position, so that the data receiver can determine the deinterleaving position by finding these fixed data segments. The above-mentioned fixed data segments may include alignment markers (AM), frame alignment words, or pilot data. Figure 6 shows one way to insert additional data, where pppp is the inserted fixed data segment. It can be seen that this method requires the transmission of an additional fixed data segment in addition to the original data to be transmitted, which brings higher transmission costs. In addition, under transmission conditions with limited bandwidth or phase-locked loop frequency, the applicability of this method is greatly reduced.

[0068] The present application proposes a method for deinterleaving a data stream, that is, a method for restoring the correct data order of an interleaved data stream. The method can be performed by a physical layer PHY chip, a forwarding device, or a pluggable module in an Ethernet network. The physical layer PHY chip and the pluggable module can be located in a forwarding device or a server, the forwarding device includes but is not limited to an Ethernet switch or a router, the server includes but is not limited to a computing server or a storage server, and the pluggable module includes but is not limited to an optical module. The method can start processing at any position of the received data stream, find the correct deinterleaving position by identifying FEC codeword features, and restore the data stream before interleaving at the data sending end. Through the above method, deinterleaving can be completed and data can be correctly restored without inserting an additional fixed data segment specifically for finding the deinterleaving position. This avoids adding extra data, saves hardware resources, improves deinterleaving efficiency, and reduces transmission costs and improves network efficiency.

[0069] FIG7 is a flow chart of a data transmission method 700 according to an embodiment of the present application. The method may include:

[0070] Step S701: Acquire a first interleaved data stream.

[0071] The data receiving end obtains a data stream. The first interleaved data stream is a data stream that has been encoded with forward error correction (FEC). In one possible implementation, the FEC encoding method of the first interleaved data stream can be non-concatenated code FEC encoding or concatenated code FEC encoding in the IEEE802.3dj standard.

[0072] Figures 8(a), 8(b) and 8(c) illustrate applicable scenarios of the data stream deinterleaving method in an embodiment of the present application, wherein Figure 8(a) is a non-concatenated code FEC encoding scenario, and Figures 8(b) and 8(c) are concatenated code FEC encoding scenarios in the IEEE802.3dj standard, wherein the dotted boxes represent functions that can be removed. The specific contents of each function in Figures 8(b) and 8(c) can be found in the IEEE802.3dj standard and will not be repeated here. A cyclic shift function is introduced in both Figures 8(b) and 8(c), wherein the cyclic shift in Figure 8(b) is performed before the second-level FEC, and the cyclic shift in Figure 8(c) is performed after the second-level FEC.

[0073] Cyclic shift is a feature introduced in the concatenated code FEC encoding scenario. Through cyclic shift, the internal structure of the concatenated code's inner FEC codewords is disrupted, further dispersing burst errors, reducing their impact on the concatenated code's outer FEC codeword, and enhancing error correction performance. The specific implementation of cyclic shift is shown in Figure 9. In Figure 9, using a channel interleaving depth of 4 as an example, for each group of four adjacent inner FEC codewords to be interleaved, the bit content within each FEC codeword is cyclically shifted by a certain length. Each row contains an inner FEC codeword, including eight symbols from A to H. Each symbol can be, for example, 10 bits long. Symbol blocks A, B, C, and D represent symbols from different concatenated outer FEC codewords. As can be seen, cyclic shift disrupts the original concatenated code's inner FEC codeword structure—that is, the FEC codeword structure consisting of the information bits plus the trailing parity bits—which can change the FEC codeword characteristics. FIG10 shows a channel interleaved data sequence after adding cyclic shift, wherein each symbol A.1, A.2, etc. may be a symbol of 10 bits in length, for example.

[0074] In a possible implementation, the interleaving type of the first interleaved data stream is symbol interleaving or convolution interleaving. The specific contents of the symbol interleaving or convolution interleaving are described above and will not be repeated here.

[0075] In one possible implementation, the first interleaved data stream does not include a periodic alignment data segment, and the periodic alignment data segment includes an alignment marker, a frame alignment word, or a pilot. As previously described, the data stream deinterleaving method in the embodiment of the present application does not require the data transmitter to insert an additional fixed data segment specifically for determining the deinterleaving position into the data stream, and deinterleaving can be completed at the data receiving end to correctly recover the data.

[0076] In one possible implementation, the channel rate of the first interleaved data stream is greater than or equal to 200 gigabits per second (Gbps). The data stream deinterleaving method in the embodiments of the present application can be applicable to high-speed Ethernet transmission scenarios, such as 800GbE or 1.6TbE scenarios defined by the IEEE standard. For example, the channel rate of the first interleaved data stream can be 200Gbps, 400Gbps, 800Gbps, or 1.6Tbps, etc.

[0077] Step S702: Based on the interleaving granularity of the first interleaved data stream, obtain N sub-data streams corresponding to the first interleaved data stream, where N is the interleaving depth of the first interleaved data stream and is a positive integer greater than 1.

[0078] After obtaining the first interleaved data stream, the data receiving end deinterleaves the first interleaved data stream. In one possible implementation, the processing process at the data receiving end can start from any position in the first interleaved data stream. For example, the data receiving end randomly selects a starting position in the first interleaved data stream and starts processing.

[0079] In an embodiment of the present application, the data receiving end is able to obtain the parameters of the data sending end in the process of processing the first interleaved data stream, such as the FEC codeword length, interleaving granularity, or interleaving depth, and on this basis, the data receiving end deinterleaves the first interleaved data stream.

[0080] In one possible implementation, after determining a starting position, the data receiving end distributes the first interleaved data stream into N sub-data streams, starting from the starting position and based on the interleaving granularity of the first interleaved data stream. The starting position may also be referred to as a data stream distribution start position. The sub-data streams may also be referred to as sub-channel data streams.

[0081] In a possible implementation, the data receiving end distributes the data of the first interleaved data stream to the N sub-data streams in a round-robin manner based on the interleaving granularity of the first interleaved data stream.

[0082] In a possible implementation, N is 4 or 8.

[0083] In a possible implementation, the N sub-data streams are not obtained in one go based on distribution, but are obtained by taking one sub-data stream from the first interleaved data stream each time, processing it, and then taking the next sub-data stream, and performing this process N times to obtain the N sub-data streams.

[0084] Figure 11 exemplifies the process of distributing the first interleaved data stream into N sub-data streams. For example, the interleaving depth N is 4. A data receiver receives an interleaved data stream, which includes multiple symbols, such as D.3, A.4, B.4, C.4...A.0, B.0, C.0 in the figure. The data receiver selects an arbitrary position within the interleaved data stream, such as C.5 in Figure 11, and distributes the interleaved data stream based on the interleaving granularity to obtain four sub-data streams. Furthermore, the data in the interleaved data stream is distributed to the four sub-data streams in a round-robin manner. That is, lane 0 first receives the first symbol C.5, lane 1 receives the second symbol D.5, lane 2 receives the third symbol A.0, lane 3 receives the fourth symbol B.0, lane 0 receives the fifth symbol C.0, and so on. After distribution, the data in each sub-data stream consists of a series of FEC codewords, which facilitates the determination of the FEC codeword boundaries for each sub-data stream in subsequent steps.

[0085] In one possible implementation, if the cyclic shift shown in FIG8(c) exists at the data transmitting end, that is, when the cyclic shift at the data transmitting end is performed after the second-level FEC, then in the N sub-data streams obtained at the data receiving end, the data structure within each FEC codeword in each sub-data stream has been disrupted, that is, the FEC codewords in the N sub-data streams are in a cyclic shift relationship.

[0086] Step S703: Determine a deinterleaving position based on FEC codeword boundaries of at least two sub-data streams among the N sub-data streams.

[0087] In one possible implementation, after obtaining the N sub-data streams corresponding to the first interleaved data stream, the data receiving end further determines the FEC codeword boundaries for each of the N sub-data streams. In this embodiment of the present application, the specific method for determining the FEC codeword boundaries is not limited. In this embodiment of the present application, the deinterleaving position is used to correctly deinterleave the data, recover the original codewords and their relative order, and thus recover the data stream before encoding.

[0088] In one possible implementation, the data receiving end can determine the FEC codeword boundary of each of the N sub-data streams based on the FEC codeword characteristics. For example, a feature value verification is performed in the sub-data stream based on the assumed FEC codeword boundary, and the FEC codeword boundary is determined based on the verification result. The feature value can be, for example, a check sequence, syndrome. As shown in Figure 11, in one example, the FEC codeword boundary of each of the four sub-data streams is the position where the symbol 0 is located, that is, the FEC codeword boundary in lane 0 is the position indicated by symbol C.0, the FEC codeword boundary in lane 1 is the position indicated by symbol D.0, the FEC codeword boundary in lane 2 is the position indicated by symbol A.0, and the FEC codeword boundary in lane 3 is the position indicated by symbol B.0. It should be noted that the FEC codeword boundary in each sub-data stream appears periodically in the data stream, and the length of the interval between each FEC codeword boundary is the FEC codeword length.

[0089] In an embodiment of the present application, the specific content of determining the FEC codeword boundary in the data stream based on the FEC codeword characteristics can be found in the patent document with application number 202010424884.9 with application date of May 19, 2020, the patent document with application number 202110904102.6 with application date of August 6, 2021, and the patent document with application number 202210520888.6 with application date of May 12, 2022, and all of their contents are incorporated herein by reference as if fully stated.

[0090] In one possible implementation, the data receiving end may also determine the FEC codeword boundary of each of the N sub-data streams based on other information besides FEC codeword characteristics. This other information includes, but is not limited to, scrambling code information and the AM in the N sub-data streams. The AM in the N sub-data streams may, for example, be the AM inserted by the physical coding sublayer (PCS). This AM is scrambled after data interleaving at the data transmitting end. This means that the data receiving end cannot find this AM upon receiving the interleaved data stream, but may be able to recover it from the N sub-data streams and use it to determine the FEC codeword boundary within the sub-data stream.

[0091] In one possible implementation, the data receiving end can first determine the FEC codeword boundary of one of the N sub-data streams based on FEC codeword characteristics or other information, and then further determine the FEC codeword boundaries of other sub-data streams based on the FEC codeword boundary of this sub-data stream. For example, the FEC codeword boundary of any one of the N sub-data streams can be first determined based on FEC codeword characteristics or other information, and then the possible locations of the FEC codeword boundaries of other sub-data streams can be estimated based on the FEC codeword boundary of this sub-data stream, thereby significantly reducing the computational effort or power consumption required to find the codeword boundaries of all sub-data streams. As shown in Figure 11, in one example, the data receiving end first finds the FEC codeword boundary of lane 0 in the four sub-data streams, i.e., the position indicated by symbol C.0, also referred to as position 0. Based on the interleaving characteristics, it can be determined that after distribution, the FEC codeword boundaries of all sub-data streams are distributed in the same column or in two adjacent columns. Therefore, once the FEC codeword boundary for lane 0 is determined to be at position 0, the FEC codeword boundaries for other sub-data streams must also be at position 0 or at a position adjacent to position 0, such as position 5. Taking lane 1 as an example, the FEC codeword boundary for lane 1 must be at position D.0 or D.5, as shown in the figure. Therefore, for lane 1, only positions D.0 or D.5 need to be verified to find the FEC codeword boundary, eliminating the need to verify other positions such as D.1 to D.4, significantly reducing the computational effort. Similarly, for lane 2, only positions A.1 or A.0 need to be verified to find the FEC codeword boundary, eliminating the need to verify other positions such as A.2 to A.5. For lane 3, only positions B.1 or B.0 need to be verified to find the FEC codeword boundary, eliminating the need to verify other positions such as B.2 to B.5. It should be noted that the data receiving end can first find the FEC codeword boundary position of any lane in the four sub-data streams, such as the FEC codeword boundary of lane 2, and then determine the possible positions of the FEC codeword boundaries of the other three sub-data streams based on this, thereby reducing the amount of computation or power consumption required to find the FEC codeword boundaries of the three sub-data streams. The principle is the same and will not be repeated here.

[0092] In one possible implementation, as previously described, if the cyclic shift shown in Figure 8(c) is present at the data transmitter, i.e., when the cyclic shift is performed after the second-level FEC, then the FEC codewords in the N sub-data streams obtained at the data receiver are cyclically shifted, and the cyclic shift changes the FEC codeword characteristics within the sub-data streams. In this case, before determining the FEC codeword boundaries for each of the N sub-data streams based on the FEC codeword characteristics, it is necessary to perform an inverse cyclic shift on the FEC codewords in each sub-data stream to restore the disrupted FEC codeword structure. Furthermore, the FEC codeword boundaries for each of the N sub-data streams after the inverse cyclic shift can be determined based on the FEC codeword characteristics.

[0093] After determining the FEC codeword boundaries for each of the N sub-data streams, the data receiving end determines a deinterleaving position based on the FEC codeword boundaries of at least two of the N sub-data streams. As previously described, after the data receiving end obtains the N sub-data streams corresponding to the first interleaved data stream, the N sub-data streams are arranged in sequence. Determining the deinterleaving position based on the FEC codeword boundaries of at least two of the N sub-data streams can be performed in two situations.

[0094] In the first possible scenario, FEC codeword boundaries of at least two adjacent sub-data streams differ, for example, the two adjacent sub-data streams may be a first sub-data stream and a second sub-data stream. The data receiving end determines that the deinterleaving position is the FEC codeword boundary of the second sub-data stream based on the FEC codeword boundary of the first sub-data stream being after the FEC codeword boundary of the second sub-data stream.

[0095] In this embodiment of the present application, the order of FEC codeword boundaries refers to the order in which data at the FEC codeword boundary locations are transmitted in the first interleaved data stream, also known as the speed order. When differences are found between the FEC codeword boundaries of two adjacent sub-data streams, the sub-data stream with the earlier FEC codeword boundary is the sub-data stream that was transmitted faster, and the FEC codeword boundary of the faster sub-data stream is the correct deinterleaving position.

[0096] Generally speaking, the first sub-data stream is arranged before the second sub-data stream, and the FEC codeword boundaries of the two sub-data streams differ by 1 symbol.

[0097] In the second possible scenario, the FEC codeword boundaries of each sub-data stream are aligned. The data receiver determines the FEC codeword boundary of the first sub-data stream in the N sub-data streams as the correct deinterleaving position. In this case, if the current deinterleaving start point is an FEC codeword boundary, then the current deinterleaving start point is the correct deinterleaving position.

[0098] In an embodiment of the present application, the FEC codeword boundary alignment of each sub-data stream means that the data at the FEC codeword boundary position of each sub-data stream is in the data corresponding to a deinterleaving distribution, that is, the data at the FEC codeword boundary position of each sub-data stream is in the data corresponding to a group of interleaving at the data sending end.

[0099] FIG. 11 and FIG. 12 respectively illustrate two possible situations of determining the deinterleaving position based on the FEC codeword boundaries of at least two of the N sub-data streams.

[0100] As shown in Figure 11, as previously mentioned, in one example, the FEC codeword boundary for each of the four sub-data streams is located at the position of symbol 0. That is, the FEC codeword boundary in lane 0 is located at the position indicated by symbol C.0, the FEC codeword boundary in lane 1 is located at the position indicated by symbol D.0, the FEC codeword boundary in lane 2 is located at the position indicated by symbol A.0, and the FEC codeword boundary in lane 3 is located at the position indicated by symbol B.0. Comparing the FEC codeword boundaries in the four sub-data streams, it can be seen that the FEC codeword boundaries of at least two of the four sub-data streams are not in the same column, that is, they are not aligned. As shown in Figure 11, there are differences between the FEC codeword boundaries of lane 1 and lane 2. The FEC codeword boundary of lane 1 is D.0, and the FEC codeword boundary of lane 2 is A.0. Moreover, the FEC codeword boundary of lane 1 is after the FEC codeword boundary of lane 2. Therefore, the FEC codeword boundary A.0 of lane 2 is the correct deinterleaving position.

[0101] FIG12 exemplarily shows another process of distributing the first interleaved data stream into N sub-data streams. For example, the interleaving depth N is 4. Unlike FIG11 , the data receiving end selects an arbitrary position from the received interleaved data stream, such as A.5 in FIG12 , and starting from this position, distributes the interleaved data stream based on the interleaving granularity to obtain 4 sub-data streams. Furthermore, the data in the interleaved data stream is distributed to the 4 sub-data streams in a round-robin manner. That is, lane 0 first obtains the first symbol A.5, lane 1 obtains the second symbol B.5, lane 2 obtains the third symbol C.5, lane 3 obtains the fourth symbol D.5, lane 0 obtains the fifth symbol A.0, and so on. The FEC codeword boundary for each of the four sub-data streams is located at the position of symbol 0. Specifically, the FEC codeword boundary in lane 0 is indicated by symbol A.0, the FEC codeword boundary in lane 1 is indicated by symbol B.0, the FEC codeword boundary in lane 2 is indicated by symbol C.0, and the FEC codeword boundary in lane 3 is indicated by symbol D.0. Comparing the FEC codeword boundaries in the four sub-data streams reveals that they are all in the same column, meaning they are aligned. Considering that lane 0 is the first of the four sub-data streams, the FEC codeword boundary A.0 in lane 0 is the deinterleaving position.

[0102] Comparing Figures 11 and 12 , it can be seen that the data transmitter interleaves multiple FEC codewords with aligned FEC codeword boundaries. When the data receiver deinterleaves at a randomly selected position as the starting position, the FEC codeword boundaries in the multiple sub-data streams obtained may be aligned or misaligned. However, even when the FEC codeword boundaries in the multiple sub-data streams are misaligned, these codeword boundaries remain adjacent, differing only by one symbol. Furthermore, it should be noted that if the FEC codeword boundaries of the multiple sub-data streams determined are non-adjacent, differing by more than two symbols, this indicates an error in the aforementioned steps, possibly in the process of determining the FEC codeword boundaries in the sub-data streams, or in another process. In this case, it is necessary to return to step S702, redetermine a starting position, and obtain N sub-data streams from the first interleaved data stream.

[0103] Step S704: Based on the deinterleaving position, obtain a first deinterleaved data stream according to the first interleaved data stream.

[0104] After determining the deinterleaving position sequence, the data receiving end can combine the FEC codewords in the first interleaved data stream to obtain a deinterleaved data stream and restore the data before interleaving.

[0105] In one possible implementation, in addition to determining the FEC codeword boundary of each sub-data stream in the N sub-data streams, the data receiving end also needs to determine the deinterleaving combination order of the N sub-data streams, and then, based on the deinterleaving combination order, combine the FEC codewords in the N sub-data streams to obtain the first deinterleaved data stream.

[0106] In one possible implementation, when determining the deinterleaving and combining order of the N sub-data streams, the data receiving end determines the deinterleaving and combining order of the N sub-data streams based on the distribution order of the first interleaved data stream into the N sub-data streams and the positional relationship of the FEC codeword boundaries of each sub-data stream in the N sub-data streams. The positional relationship is determined based on the order of the data at the FEC codeword boundary position of each sub-data stream in the N sub-data streams in the first interleaved data stream. It is easy to understand that the order of the data in the first interleaved data stream refers to the order in which the data is received, that is, the data received first has an order in the first interleaved data stream, and the data received later has an order in the first interleaved data stream.

[0107] In one possible implementation, when a data receiving end obtains a first deinterleaved data stream based on the first interleaved data stream, it is not required that all data in the first interleaved data stream be in the first deinterleaved data stream. In one example, part of the data in the first interleaved data stream is in the first deinterleaved data stream.

[0108] In one possible implementation, the data used to assemble the first deinterleaved data stream may be part of the data in the first interleaved data stream, or in other words, part of the data in the first interleaved data stream is not assembled into the deinterleaved data stream. For example, the data used to assemble the deinterleaved data stream and the data distributed to the N sub-data streams and used to determine the deinterleaving position may be different data in the first interleaved data stream. For example, the data distributed to the N sub-data streams and used to determine the deinterleaving position may be discarded after finding the deinterleaving position, and is not introduced into the deinterleaved data stream. For example, the data used to assemble the deinterleaved data stream may be data in the first interleaved data stream that is located after the data distributed to the N sub-data streams.

[0109] In the embodiment of the present application, the specific method for obtaining the deinterleaved data stream after finding the deinterleaving position is not limited. In one possible implementation, after finding the deinterleaving position, the interleaved data stream may no longer be distributed into N sub-data streams, but the deinterleaved data stream may be obtained from the interleaved data stream based on the deinterleaving position.

[0110] Figure 13 shows an example of the data stream deinterleaving method in an embodiment of the present application. As shown in Figure 13, the data transmitting end obtains a single data stream to be interleaved, and the data stream to be interleaved is composed of multiple FEC codewords, each codeword contains 12 bits, and each adjacent 2 bits is a PAM4 symbol, such as A.0, A.1, etc. in Figure 13. The data transmitting end interleaves the data stream and distributes it into 4 sub-data streams, namely T0, T1, T2, and T3 in Figure 13, and then interleaves based on the PAM4 symbol to obtain the interleaved data stream. The data receiving end obtains the interleaved data stream, selects any position from it, such as C.5 in Figure 13, and starts from this position. Based on the interleaving granularity, the interleaved data stream is PAM4 symbol deinterleaved and distributed to obtain 4 sub-data streams, namely lane0, lane1, lane2, and lane3. According to the FEC codeword characteristics, it is determined that the FEC codeword boundaries of each of the 4 sub-data streams are the positions where symbol 0 is located. Then, by comparing the FEC codeword boundaries within the four substreams and considering the positional relationship between the FEC codeword boundaries within each of the four substreams, as well as the order in which the four substreams are distributed, the order of the four substreams is determined to be lane 2, lane 3, lane 0, lane 1. FEC codeword boundary A.0 in lane 2 is the deinterleaving location. The FEC codewords from the four substreams are combined in this order. For example, FEC codewords A.0 to A.5 are taken from lane 2, B.0 to B.5 are taken from lane 3, C.0 to C.5 are taken from lane 0, and D.0 to D.5 are taken from lane 1. This sequential combination yields a set of deinterleaved data. This can be repeated to obtain more sets of deinterleaved data. As can be seen, the deinterleaved data is identical to the pre-interleaved data at the data transmitter.

[0111] FIG14 shows another example of the data stream deinterleaving method in an embodiment of the present application. For example, the number of sub-data streams is 8, each small square represents a PAM4 symbol, and the gray small square is the first FEC codeword in a set of interleaving, that is, the correct deinterleaving position. As shown in FIG14 , the data transmitter interleaves the 8 sub-data streams to obtain an interleaved data stream and sends it to the data receiver. The data receiver receives the interleaved data stream and starts processing from any position, such as the small square filled with diagonal lines shown in FIG14 . Based on the FEC codeword characteristics, the FEC codeword boundary of each sub-data stream is determined. When the FEC codeword boundaries between two adjacent sub-data streams differ by one PAM4 symbol, as shown in Figure 14, the FEC codeword boundaries between the second and third sub-data streams differ by one PAM4 symbol. Since the FEC codeword boundary of the third sub-data stream is closer to the front, meaning that the third sub-data stream is the faster-transmitted sub-data stream within the interleaved data stream, the FEC codeword boundary of the third sub-data stream is the correct deinterleaving position (as shown by the gray square position in the third sub-data stream in Figure 14). It is easy to understand that if the FEC codeword boundaries of each of the eight sub-data streams do not differ, then any of the above positions is the correct deinterleaving position.

[0112] The above method can complete deinterleaving and correctly recover data without inserting additional fixed data segments, thus avoiding the addition of extra data, reducing transmission costs, and improving network efficiency.

[0113] FIG15 is a schematic diagram of the structure of an Ethernet device provided in an embodiment of the present application. The Ethernet device can be used to receive data. The Ethernet device can be the Ethernet device in the data stream deinterleaving method shown in FIG7 . Based on the structure shown in FIG15 , the Ethernet device 1500 can perform all or part of the operations in the method shown in FIG7 . It should be understood that the Ethernet device can include more additional structures than the structure shown or omit some of the structures shown therein, and the embodiment of the present application is not limited to this. As shown in FIG15 , the Ethernet device includes:

[0114] Deinterleaving circuit 1501 is configured to obtain a first interleaved data stream, where the first interleaved data stream is a data stream encoded with forward error correction (FEC); obtain N sub-data streams corresponding to the first interleaved data stream based on the interleaving granularity of the first interleaved data stream, where N is the interleaving depth of the first interleaved data stream and is a positive integer greater than 1; determine a deinterleaving position based on FEC codeword boundaries of at least two of the N sub-data streams; and obtain a first deinterleaved data stream based on the first interleaved data stream based on the deinterleaving position.

[0115] In a possible implementation, the Ethernet device may further include an interface circuit. The interface circuit may be configured to receive the first interleaved data stream and may also be configured to send the first deinterleaved data stream.

[0116] In one possible implementation, the N sub-data streams are arranged in sequence, and determining the deinterleaving position based on the FEC codeword boundaries of at least two sub-data streams among the N sub-data streams includes: based on the FEC codeword boundary of the first sub-data stream being after the FEC codeword boundary of the second sub-data stream, determining the deinterleaving position to be the FEC codeword boundary of the second sub-data stream; wherein the first sub-data stream and the second sub-data stream are two adjacent sub-data streams among the N sub-data streams.

[0117] In a possible implementation, the first sub-data stream is arranged before the second sub-data stream.

[0118] In a possible implementation, the FEC codeword boundary of the first sub-data stream differs from the FEC codeword boundary of the second sub-data stream by one symbol.

[0119] In one possible implementation, the N sub-data streams are arranged in sequence, and determining the deinterleaving position based on the FEC codeword boundaries of at least two sub-data streams among the N sub-data streams includes: determining the deinterleaving position as the FEC codeword boundary of the first sub-data stream based on the alignment of the FEC codeword boundaries of each sub-data stream among the N sub-data streams; wherein the first sub-data stream is arranged first in the N sub-data streams.

[0120] In one possible implementation, the N sub-data streams are arranged in sequence, and obtaining a first deinterleaved data stream based on the first interleaved data stream based on the deinterleaving position includes: determining a deinterleaving combination order of the N sub-data streams based on the deinterleaving position and the arrangement order of the N sub-data streams; and combining data in the first interleaved data stream based on the deinterleaving combination order to obtain the first deinterleaved data stream.

[0121] In one possible implementation, obtaining N sub-data streams corresponding to the first interleaved data stream based on the interleaving granularity of the first interleaved data stream includes: selecting a data stream distribution starting position from the first interleaved data stream, and distributing the first interleaved data stream into N sub-data streams based on the interleaving granularity of the first interleaved data stream; wherein the data stream distribution starting position is a randomly selected position in the first interleaved data stream.

[0122] In a possible implementation, obtaining N sub-data streams corresponding to the first interleaved data stream based on the interleaving granularity of the first interleaved data stream includes: distributing data of the first interleaved data stream to the N sub-data streams in a round-robin manner based on the interleaving granularity of the first interleaved data stream.

[0123] In a possible implementation, the deinterleaving circuit is further configured to determine an FEC codeword boundary of each of the N sub-data streams.

[0124] In a possible implementation, determining the FEC codeword boundary of each of the N sub-data streams includes: determining the FEC codeword boundary of each of the N sub-data streams according to FEC codeword characteristics.

[0125] In one possible implementation, determining the FEC codeword boundary of each of the N sub-data streams based on the FEC codeword characteristics includes: performing characteristic value verification based on the assumed FEC codeword boundary in each sub-data stream, and determining the FEC codeword boundary of each sub-data stream based on the verification result.

[0126] In one possible implementation, the FEC codewords of the N sub-data streams are in a cyclic shift relationship, and determining the FEC codeword boundary of each sub-data stream in the N sub-data streams based on the FEC codeword characteristics includes: performing a reverse cyclic shift on the obtained FEC codewords of the N sub-data streams; and determining the FEC codeword boundary of each sub-data stream in the N sub-data streams after the reverse cyclic shift based on the FEC codeword characteristics.

[0127] In a possible implementation, the first interleaved data stream does not include a periodic alignment data segment, and the periodic alignment data segment includes an alignment word, a frame alignment word, or a guide data.

[0128] In a possible implementation, the FEC encoding mode of the first interleaved data stream is non-concatenated code FEC encoding or concatenated code FEC encoding.

[0129] In a possible implementation, N is 4 or 8.

[0130] In a possible implementation, the interleaving type of the first interleaved data stream is symbol interleaving or convolutional interleaving.

[0131] In a possible implementation, the method is executed by a physical layer PHY chip, a forwarding device, or a pluggable module.

[0132] In a possible implementation, a channel rate of the first interleaved data stream is greater than or equal to 200 gigabits per second (Gbps).

[0133] For a detailed description of the operations performed by the Ethernet device, reference may be made to the detailed description of the method embodiment shown in FIG. 7 , which will not be repeated here.

[0134] The Ethernet device may be a physical layer PHY chip, a forwarding device or a pluggable module, wherein the forwarding device may be an Ethernet forwarding device such as a switch or a router, and the pluggable module is not limited to a pluggable optical module or an electrical module.

[0135] When the Ethernet device is an Ethernet forwarding device such as a switch or a router, the Ethernet device may include an Ethernet chip, or a pluggable optical module or electrical module, wherein the Ethernet chip, or the pluggable optical module or electrical module can perform all or part of the operations in the method of Figure 7.

[0136] Referring to FIG. 16 , FIG. 16 shows a schematic diagram of the structure of an Ethernet device 2100 provided in another exemplary embodiment of the present application. The Ethernet device 2100 shown in FIG. 16 is configured to perform all or part of the operations involved in the data stream deinterleaving method shown in FIG. The network device 2100 is, for example, a physical layer PHY chip, a forwarding device, or a pluggable module. The Ethernet device 2100 can be implemented using a general bus architecture.

[0137] As shown in FIG. 16 , the Ethernet device 2100 includes a main control board 2110 and an interface board 2130 .

[0138] The main control board (MCB), also known as the main processing unit (MPU) or route processor card, is used to control and manage the various components of Ethernet device 2100, including routing calculations, device management, device maintenance, and protocol processing. MCB 2110 includes a central processing unit (CPU) 2111 and memory 2112.

[0139] Interface board 2130 is also known as a line processing unit (LPU), line card, or service board. It provides various service interfaces and implements data packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces and POS (Packet over SONET / SDH) interfaces. Ethernet interfaces, for example, are Flexible Ethernet Clients (FlexE Clients) interfaces. Interface board 2130 includes a central processing unit (CPU) 2131, a network processor (NPU) 2132, a forwarding table memory 2134, and a physical interface card (PIC) 2133.

[0140] The central processing unit 2131 on the interface board 2130 is used to control and manage the interface board 2130 and communicate with the central processing unit 2111 on the main control board 2110 .

[0141] The network processor 2132 is used to implement message forwarding processing. The network processor 2132 can be in the form of a forwarding chip. The forwarding chip can be a network processor (NP). In some embodiments, the forwarding chip can be implemented using an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA). Specifically, the network processor 2132 is used to forward received messages based on the forwarding table stored in the forwarding entry memory 2134. If the destination address of the message is the address of the Ethernet device 2100, the message is sent to the CPU (such as the central processing unit 2131) for processing. If the destination address of the message is not the address of the Ethernet device 2100, the next hop and outgoing interface corresponding to the destination address are searched in the forwarding table based on the destination address, and the message is forwarded to the outgoing interface corresponding to the destination address. The processing of uplink messages may include processing the message inbound interface and forwarding table lookup; the processing of downlink messages may include forwarding table lookup, etc. In some embodiments, the central processing unit may also perform the functions of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, thereby eliminating the need for a forwarding chip in the interface board.

[0142] Physical interface card 2133 implements physical layer interconnection. Raw traffic enters interface board 2130 through this card, and processed packets are sent out from this physical interface card 2133. Physical interface card 2133, also known as a daughter card, can be installed on interface board 2130. It converts optical and electrical signals into packets, performs a validity check on these packets, and then forwards them to network processor 2132 for processing. In some embodiments, central processing unit 2131 can also perform the functions of network processor 2132, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for network processor 2132 in physical interface card 2133.

[0143] Optionally, the Ethernet device 2100 includes multiple interface boards. For example, the Ethernet device 2100 further includes an interface board 2140. The interface board 2140 includes a central processing unit 2141, a network processor 2142, a forwarding table entry memory 2144, and a physical interface card 2143. The functions and implementation of the components in the interface board 2140 are the same as or similar to those of the interface board 2130 and are not described in detail here.

[0144] Optionally, Ethernet device 2100 also includes a switching fabric unit (SFU) 2120. Switching fabric unit (SFU) 2120 may also be referred to as a switch fabric unit (SFU). If network device 2100 includes multiple interface boards, SFU 2120 is used to exchange data between the interface boards. For example, interface board 2130 and interface board 2140 can communicate via SFU 2120.

[0145] The main control board 2110 is coupled to the interface board. For example, the main control board 2110, the interface board 2130, the interface board 2140, and the switching network board 2120 are connected to the system backplane via a system bus to achieve intercommunication. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 2110 and the interface boards 2130 and 2140, and communication is performed between the main control board 2110 and the interface boards 2130 and 2140 via the IPC channel.

[0146] Logically, Ethernet device 2100 includes a control plane and a forwarding plane. The control plane includes a main control board 2110 and a central processing unit (CPU) 2111. The forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 2134, a physical interface card 2133, and a network processor 2132. The control plane performs routing functions, generates forwarding tables, processes signaling and protocol messages, and configures and maintains network device status. The control plane sends the generated forwarding tables to the forwarding plane. On the forwarding plane, the network processor 2132 forwards messages received by the physical interface card 2133 based on the forwarding tables sent by the control plane. The forwarding tables sent by the control plane can be stored in the forwarding table entry memory 2134. In some embodiments, the control plane and forwarding plane can be completely separate and not located on the same network device.

[0147] It's worth noting that there may be one or more main control boards (SPUs), which can include both active and standby SPUs. There may also be one or more interface boards. The higher the network device's data processing capabilities, the more interface boards it provides. Interface boards can also have one or more physical interface cards. There may be no SPUs, one or more SPUs, and multiple SPUs can be used to achieve load balancing and redundancy. In a centralized forwarding architecture, network devices may not require SPUs; the interface boards handle service data processing for the entire system. In a distributed forwarding architecture, network devices may have at least one SPU, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Therefore, network devices with distributed architectures have greater data access and processing capabilities than those with centralized architectures. Alternatively, a network device can consist of a single card, without a switching fabric board (SFB), integrating the functions of the interface board and the main control board. In this case, the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU on this card, performing the combined functions of the two. This type of network device has lower data exchange and processing capabilities (for example, low-end network devices such as switches or routers). The specific architecture used depends on the specific network deployment scenario and is not specified here.

[0148] In a specific embodiment, the Ethernet device 2100 corresponds to the Ethernet device shown in FIG. 15 above.

[0149] For example, the Ethernet device 2100 may be an Ethernet forwarding device such as a switch or router as shown in FIG15 . In this case, the Ethernet chip that executes the method shown in FIG7 may be located in the main control board 2110 , or may be located in the interface board 2130 or the interface board 2140 , and the Ethernet chip may be located in the physical interface card 2133 or 2143 .

[0150] As shown in FIG17 , an embodiment of the present application further provides a communication system 3000, which includes a transmitting device 3001 and a receiving device 3002. Optionally, the receiving device 3002 executes the data stream deinterleaving method shown in FIG7 .

[0151] An embodiment of the present application also provides a computer-readable storage medium, in which at least one instruction is stored. The instruction is loaded and executed by a processor to enable a computer to implement any of the above data sending methods or data receiving methods.

[0152] The embodiments of the present application further provide a computer program (product), which, when executed by a computer, can enable a processor or computer to execute the corresponding steps and / or processes in the above method embodiments.

[0153] An embodiment of the present application also provides a chip, including a processor, for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes any of the above data sending methods or data receiving methods.

[0154] An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute any of the above data sending methods or data receiving methods.

[0155] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions according to the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can 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 can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state drive).

[0156] Those skilled in the art will appreciate that the various method steps and modules described in conjunction with the embodiments disclosed herein can be implemented in software, hardware, firmware, or any combination thereof. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0157] Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or may be accomplished by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0158] When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. As an example, the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target. Generally speaking, a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure. In various embodiments, the function of the program module can be merged or split between the described program modules. The machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.

[0159] The computer program code for realizing the method for the embodiment of the application can be written in one or more programming languages.These computer program codes can be provided to the processor of general-purpose computer, special-purpose computer or other programmable data processing device, so that program code, when being executed by computer or other programmable data processing device, causes the function / operation specified in flow chart and / or block diagram to be implemented.Program code can be executed completely on computer, partly on computer, as independent software package, partly on computer and partly on remote computer or completely on remote computer or server.

[0160] In the context of the embodiments of the present application, computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and the like.

[0161] Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.

[0162] A machine-readable medium may be any tangible medium that contains or stores a program for or in connection with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.

[0163] Those skilled in the art will clearly understand that, for the sake of convenience and brevity of description, the specific working processes of the above-described systems, devices, and modules can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0164] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the modules is merely a logical function division. In actual implementation, there may be other division methods, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, or can be electrical, mechanical or other forms of connection.

[0165] The modules described as separate components may or may not be physically separate, and the components shown as modules may or may not be physical modules, that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of the present application.

[0166] In addition, the functional modules in the various embodiments of the present application may be integrated into a processing module, or each module may exist physically separately, or two or more modules may be integrated into a single module. The above-mentioned integrated modules may be implemented in the form of hardware or software functional modules.

[0167] If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0168] In this application, the terms "first", "second", etc. are used to distinguish between identical or similar items that have substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is there any limitation on quantity or execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. The first image and the second image may both be images, and in some cases, may be separate and different images.

[0169] It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0170] In this application, the term "at least one" means one or more, and the term "plurality" means two or more. For example, "plurality of second messages" means two or more second messages. The terms "system" and "network" are often used interchangeably herein.

[0171] It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.

[0172] It should also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the listed items. The term "and / or" describes an association between associated objects, indicating that three possible relationships exist. For example, "A and / or B" can represent: A exists alone, A and B exist simultaneously, or B exists alone. Furthermore, the character " / " in this application generally indicates that the associated objects are in an "or" relationship.

[0173] It will also be understood that the term “comprise” (also known as “includes,” “including,” “comprises,” and / or “comprising”) when used in this specification specifies the presence of stated features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0174] It should also be understood that the terms “if” and “if” may be interpreted to mean “when” or “upon” or “in response to determining” or “in response to detecting.” Similarly, the phrases “if it is determined that ” or “if [stated condition or event] is detected” may be interpreted to mean “upon determining ” or “in response to determining ” or “upon detecting [stated condition or event]” or “in response to detecting [stated condition or event],” depending on the context.

[0175] It should be understood that determining B based on A does not mean determining B based solely on A. B can also be determined based on A and / or other information.

[0176] It should also be understood that references throughout this specification to "one embodiment," "an embodiment," or "one possible implementation" mean that specific features, structures, or characteristics associated with that embodiment or implementation are included in at least one embodiment of the present application. Therefore, the appearance of "in one embodiment," "in an embodiment," or "one possible implementation" throughout this specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

[0177] The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the principles of the present application should be included in the scope of protection of the present application.

Claims

1. A method for deinterleaving a data stream, characterized in that: The method comprises: Acquire a first interleaved data stream, where the first interleaved data stream is a data stream encoded by forward error correction (FEC); Based on the interleaving granularity of the first interleaved data stream, obtain N sub-data streams corresponding to the first interleaved data stream, where N is the interleaving depth of the first interleaved data stream, and N is a positive integer greater than 1; Determining a deinterleaving position based on FEC codeword boundaries of at least two of the N sub-data streams; Based on the deinterleaving position, a first deinterleaved data stream is obtained according to the first interleaved data stream.

2. The method according to claim 1, characterized in that The N sub-data streams are arranged in sequence, and the determining of the deinterleaving position based on FEC codeword boundaries of at least two sub-data streams among the N sub-data streams includes: Based on the fact that the FEC codeword boundary of the first sub-data stream is after the FEC codeword boundary of the second sub-data stream, determining that the deinterleaving position is the FEC codeword boundary of the second sub-data stream; The first sub-data stream and the second sub-data stream are two adjacent sub-data streams among the N sub-data streams.

3. The method according to claim 2, characterized in that The first sub-data stream is arranged before the second sub-data stream.

4. The method according to claim 2 or 3, characterized in that: The FEC codeword boundary of the first sub-data stream differs from the FEC codeword boundary of the second sub-data stream by one symbol.

5. The method according to claim 1, characterized in that The N sub-data streams are arranged in sequence, and the determining of the deinterleaving position based on FEC codeword boundaries of at least two sub-data streams among the N sub-data streams includes: Based on the alignment of the FEC codeword boundaries of each sub-data stream in the N sub-data streams, determining the deinterleaving position as the FEC codeword boundary of the first sub-data stream; The first sub-data stream is arranged first in the N sub-data streams.

6. The method according to any one of claims 1 to 5, characterized in that: The N sub-data streams are arranged in sequence, and obtaining a first deinterleaved data stream according to the first interleaved data stream based on the deinterleaved position includes: Determining a deinterleaving combination order of the N sub-data streams based on the deinterleaving positions and the arrangement order of the N sub-data streams; Based on the deinterleaving combination order, the data in the first interleaved data stream is combined to obtain the first deinterleaved data stream.

7. The method according to any one of claims 1 to 6, characterized in that: The obtaining, based on the interleaving granularity of the first interleaved data stream, N sub-data streams corresponding to the first interleaved data stream includes: Selecting a data stream distribution start position from the first interleaved data stream, and distributing the first interleaved data stream into N sub-data streams based on an interleaving granularity of the first interleaved data stream; The data stream distribution start position is a randomly selected position in the first interleaved data stream.

8. The method according to any one of claims 1 to 7, characterized in that: The obtaining, based on the interleaving granularity of the first interleaved data stream, N sub-data streams corresponding to the first interleaved data stream includes: Based on the interleaving granularity of the first interleaved data stream, data of the first interleaved data stream is distributed to the N sub-data streams by polling.

9. The method according to any one of claims 1 to 8, characterized in that: The method further comprises: Determine an FEC codeword boundary of each of the N sub-data streams.

10. The method according to claim 9, characterized in that The determining of the FEC codeword boundary of each of the N sub-data streams includes: According to the FEC codeword characteristics, an FEC codeword boundary of each of the N sub-data streams is determined.

11. The method according to claim 10, characterized in that The step of determining the FEC codeword boundary of each of the N sub-data streams according to the FEC codeword feature includes: In each sub-data stream, characteristic value verification is performed based on the assumed FEC codeword boundary, and the FEC codeword boundary of each sub-data stream is determined according to the verification result.

12. The method according to claim 10 or 11, characterized in that: The FEC codewords of the N sub-data streams are in a cyclic shift relationship, and determining the FEC codeword boundary of each sub-data stream in the N sub-data streams according to the FEC codeword characteristics includes: Performing a reverse cyclic shift on the obtained FEC codewords of the N sub-data streams; According to the FEC codeword characteristics, the FEC codeword boundary of each sub-data stream in the N sub-data streams after the reverse cyclic shift is determined.

13. The method according to claim 9, characterized in that The determining of the FEC codeword boundary of each of the N sub-data streams includes: Determining an FEC codeword boundary of a third sub-data stream among the N sub-data streams; Based on the FEC codeword boundary of the third sub-data stream, the FEC codeword boundaries of other sub-data streams in the N sub-data streams are determined.

14. The method according to claim 13, characterized in that The FEC codeword boundary of the third sub-data stream is located in the first column of the third sub-data stream, The determining, based on the FEC codeword boundary of the third sub-data stream, the FEC codeword boundary of other sub-data streams in the N sub-data streams includes: The FEC codeword boundaries of the other sub-data streams are respectively located in the first column of the other sub-data streams or in a column adjacent to the first column.

15. The method according to any one of claims 1 to 14, characterized in that: The first interleaved data stream does not include a periodic alignment data segment, and the periodic alignment data segment includes an alignment word, a frame alignment word or a guide data.

16. The method according to any one of claims 1 to 15, characterized in that: The FEC encoding method of the first interleaved data stream is non-concatenated code FEC encoding or concatenated code FEC encoding.

17. The method according to any one of claims 1 to 16, characterized in that: The N is 4 or 8.

18. The method according to any one of claims 1 to 17, characterized in that: The interleaving type of the first interleaved data stream is symbol interleaving or convolutional interleaving.

19. The method according to any one of claims 1 to 18, characterized in that: The method is executed by a physical layer PHY chip, a forwarding device, or a pluggable module.

20. The method according to any one of claims 1 to 19, characterized in that: The channel rate of the first interleaved data stream is greater than or equal to 200 Gbps.

21. An Ethernet device, characterized in that: The Ethernet device is used to execute the method according to any one of claims 1-20.

22. A chip, characterized in that: The chip is used to execute the method according to any one of claims 1 to 20.

23. A communication system, characterized in that: The communication system includes a transmitting device and a receiving device. The receiving device is used to execute the method as described in any one of claims 1-20.

Citation Information

Patent Citations

  • Extended deinterleaver for an iterative decoder

    CN102171934A

  • Data processing method and data processing equipment in passive optical network system

    CN114337912A

  • Data transmission method, apparatus, device and system, and readable storage medium

    CN115706622A

  • Interleaving and de-interleaving methods and apparatuses

    WO2022141326A1