A data processing method and a data processing device

By inserting alignment marks into the data stream after cascading FEC code, the clock extraction and synchronization process at the receiver is simplified, and the problems of high PLL complexity and large jitter in the prior art are solved, and fast phase locking and low complexity synchronization operations are achieved.

CN118648263BActive Publication Date: 2025-04-22HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202480001044.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2023-05-30
Filing Date
2023-07-21
Publication Date
2025-04-22
Estimated Expiration
2043-07-21

AI Technical Summary

Technical Problem

In the existing cascading FEC transmission scheme, when the receiver performs clock extraction and synchronization, the PLL circuit achieves complexity and high jitter, making it difficult to achieve fast phase locking.

Method used

By periodically inserting the alignment identifiers in the data stream, the alignment identifiers of W bit lengths exist in each P+W bits in the data stream, simplifying the clock extraction and synchronization process at the receiver. Specifically, P bits are obtained from the cascading FEC encoded data stream and an alignment identifier of W bits is inserted so that the baud rate of the modulated symbol data stream is an integer multiple of the typical reference clock frequency of the Ethernet.

Benefits of technology

Fast phase locking at the receiver is realized, the PLL is low in complexity and low jitter, which simplifies the frame synchronization and internal codeword synchronization operations at the receiver, and reduces the hardware implementation complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118648263B_ABST
    Figure CN118648263B_ABST
Patent Text Reader

Abstract

The present application discloses a data processing method and a data processing device. A plurality of first data streams that have been encoded by a first FEC are subjected to first data processing to obtain m second data streams. Each second data stream is subjected to second FEC encoding, and each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, and S represents the number of check bits. The m second data streams are subjected to second data processing to obtain m third data streams. Each third data stream includes at least one bit sequence, each bit sequence includes P+W bits, the P bits in each bit sequence come from the second data stream, and the W bits in each bit sequence are added alignment marks, P=N×b. The m third data streams are subjected to third data processing to obtain Y modulation symbol streams, each modulation symbol stream is modulated, and the baud rate value of each modulation symbol stream is an integer multiple of the value of the typical reference clock frequency of Ethernet.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims the priority of the Chinese patent application filed with the China Patent Office on October 24, 2022, with application number 202211307290.5 and invention name “A data processing method and data processing device”, the priority of the Chinese patent application filed with the China Patent Office on December 6, 2022, with application number 202211559068.4 and invention name “A data processing method and data processing device”, and the priority of the Chinese patent application filed with the China Patent Office on May 30, 2023, with application number 202310631032.0 and invention name “A data processing method and data processing device”, all of which are incorporated into this application by application. Technical Field

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

[0003] Driven by 5G, cloud computing, big data, and artificial intelligence, Ethernet is developing towards greater capacity, higher speed, and lower latency. Using forward error correction (FEC) to correct errors in transmitted data can solve transmission errors and recover the original data sent by the sender from the received data.

[0004] Currently, a cascade FEC transmission scheme is proposed, in which a transmitting device and a transmitting processing module are connected via an attachment unit interface (AUI). The transmitting device performs a first FEC encoding on the data to be transmitted, and sends the data after the first FEC encoding to the transmitting processing module. The transmitting processing module performs a second FEC encoding on the data after the first FEC encoding, and modulates and maps the bit sequence after the second FEC encoding to generate a corresponding modulation symbol sequence, and finally transmits the generated modulation symbol sequence to the receiving end through an optical fiber. The data stream received by the receiving end is asynchronous and noisy, and a clock and data recovery (CDR) based on a phase locked loop (PLL) is usually used, that is, the clock is extracted from the data, and the data is "retimed" to remove the jitter during the transmission process, and then demodulated and decoded to recover the original data sent by the transmitting end. However, the PLL circuit used by the receiving end for CDR in the existing scheme is relatively complex to implement, and the PLL jitter is relatively high. Summary of the invention

[0005] The embodiments of the present application provide a data processing method and a data processing device. On the one hand, they simplify the way the receiving end performs clock extraction and synchronization, and can perform fast phase locking, with low PLL complexity and small jitter. On the other hand, they simplify operations such as frame synchronization and inner code word synchronization at the receiving end, and the implementation complexity is relatively low.

[0006] In a first aspect, an embodiment of the present application provides a data processing method, which is applied to a transmitting end and includes the following steps. First, a plurality of first data streams that have been encoded by a first FEC are subjected to first data processing to obtain m second data streams. Wherein, m is an integer greater than 1, each second data stream has been encoded by a second FEC, and each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, and S is an integer greater than or equal to 1. Next, the m second data streams are subjected to second data processing to obtain m third data streams. Wherein, each third data stream includes at least one bit sequence, each bit sequence includes P+W bits, P bits in each bit sequence come from the second data stream, W bits in each bit sequence are added alignment markers, P=N×b, and b is an integer greater than or equal to 1. Furthermore, the m third data streams are subjected to third data processing to obtain Y modulation symbol streams, where Y is an integer greater than or equal to 1, each modulation symbol stream is modulated, and the baud rate value of each modulation symbol stream is an integer multiple of the reference clock frequency value.

[0007] In this implementation, P bits are periodically obtained from the data stream after cascade FEC encoding, and an alignment mark of W bits in length is inserted, so that there are alignment marks of W bits in length in every P+W bits in the data stream. By selecting positive integers P and W, the baud rate value of the modulated symbol data stream can be an integer multiple of the Ethernet common reference clock frequency (Ethernet common reference clock), which simplifies the clock extraction and synchronization method of the receiving end, can perform fast phase locking, and has low PLL complexity and small jitter. In addition, P is required to be a multiple of the inner code length N, that is, P = N × b. After the receiving end performs frame synchronization on the received data (that is, frame synchronization of P+W bits, also called mark locking operation), the inner code codeword synchronization can be guaranteed, which simplifies the operations of frame synchronization and inner code codeword synchronization at the receiving end, and the implementation complexity is low.

[0008] In some possible implementations, the baud rate value of each modulation symbol stream is an integer multiple of 156.25M.

[0009] In some possible implementations, each second data stream is also subjected to convolution interleaving before being subjected to the second FEC encoding. Convolution interleaving includes delaying the input data stream according to r delay lines, where r is an integer greater than 1, and each delay line includes a different number of storage units. The delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q, and each storage unit is used to store d bits. The bits in the input data stream are sequentially input into the r delay lines according to the sequence numbers of the r delay lines, and each delay line inputs d bits at a time and outputs d bits at a time. After convolution interleaving, the continuous r*d bits in the output data stream include d bits output by each delay line, where Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1.

[0010] In some possible implementations, after convolution interleaving, for every f bits output, the input and output switches corresponding to the convolution interleaving are located at the 0th delay line, and K×b can be divided by f. It should be satisfied that the input and output switches of the convolution deinterleaver corresponding to the starting position of each frame (W+P bits) are located at the starting position of the switch, usually the topmost positions. More specifically, for every f bits output by the convolution interleaver and the convolution deinterleaver, the input and output switch positions are located at the topmost positions, so that the synchronization of the convolution deinterleaver can be guaranteed during frame synchronization.

[0011] In some possible implementations, r×d×c=K×b, where c is an integer greater than or equal to 1. That is, the convolution interleaver and the convolution deinterleaver can output K×b bits per polling c times, and at this time, the input and output switch positions are located at the starting positions of the switches, so that the convolution deinterleaver synchronization can be guaranteed during frame synchronization.

[0012] In some possible implementations, the rate of the first data stream is 850 Gbps. a is an integer greater than or equal to 1, G represents 10^9, and M represents 10^6.

[0013] In some possible implementations, N=128, K=120,

[0014] In some possible implementations, W=48, P=13056, a=728, b=102, baud rate=113.75 Gbaud;

[0015] Or, W = 48, P = 52224, a = 726, b = 408, baud rate = 113.4375 Gbaud;

[0016] Or, W = 56, P = 15232, a = 728, b = 119, baud rate = 113.75 Gbaud;

[0017] Or, W = 56, P = 60928, a = 726, b = 476, baud rate = 113.4375 Gbaud;

[0018] Or, W = 64, P = 13056, a = 728, b = 102, baud rate = 113.75 Gbaud;

[0019] Or, W = 64, P = 69632, a = 726, b = 544, baud rate = 113.4375 Gbaud;

[0020] Or, W = 120, P = 32640, a = 728, b = 255, baud rate = 113.75 Gbaud;

[0021] Or, W = 120, P = 52224, a = 727, b = 408, baud rate = 113.5938 Gbaud;

[0022] Or, W = 120, P = 130560, a = 726, b = 1020, baud rate = 113.4375 Gbaud;

[0023] Or, W = 128, P = 34816, a = 728, b = 272, baud rate = 113.75 Gbaud;

[0024] Alternatively, W=128, P=139264, a=726, b=1088, baud rate=113.4375 Gbaud.

[0025] In some possible implementations, N=170, K=160,

[0026] In some possible implementations, W=48, P=23120, a=724, b=136, baud rate=113.125 Gbaud;

[0027] Or, W = 48, P = 69360, a = 723, b = 408, baud rate = 112.9688 Gbaud;

[0028] Or, W = 56, P = 11560, a = 726, b = 68, baud rate = 113.4375 Gbaud;

[0029] Or, W = 56, P = 80920, a = 723, b = 476, baud rate = 112.9688 Gbaud;

[0030] Or, W = 64, P = 92480, a = 723, b = 544, baud rate = 112.9688 Gbaud;

[0031] Or, W = 120, P = 34680, a = 725, b = 204, baud rate = 113.2813 Gbaud;

[0032] Or, W = 120, P = 57800, a = 724, b = 340, baud rate = 113.125 Gbaud;

[0033] Or, W = 120, P = 173400, a = 723, b = 1020, baud rate = 112.9688 Gbaud;

[0034] Or, W = 170, P = 49130, a = 725, b = 289, baud rate = 113.2813 Gbaud;

[0035] Alternatively, W=170, P=245650, a=723, b=1445, baud rate=112.9688 Gbaud.

[0036] In some possible implementations, N=144, K=136,

[0037] In some possible implementations, W=48, P=5760, a=726, b=40, baud rate=113.4375 Gbaud;

[0038] Or, W = 48, P = 8640, a = 724, b = 60, baud rate = 113.125 Gbaud;

[0039] Or, W = 48, P = 11520, a = 723, b = 80, baud rate = 112.9688 Gbaud;

[0040] Or, W = 48, P = 17280, a = 722, b = 120, baud rate = 112.8125 Gbaud;

[0041] Or, W = 48, P = 34560, a = 721, b = 240, baud rate = 112.6563 Gbaud;

[0042] Or, W = 56, P = 5760, a = 727, b = 40, baud rate = 113.5938 Gbaud;

[0043] Or, W = 56, P = 20160, a = 722, b = 140, baud rate = 112.8125 Gbaud;

[0044] Or, W = 56, P = 40320, a = 721, b = 280, baud rate = 112.6563 Gbaud;

[0045] Or, W = 64, P = 5760, a = 728, b = 40, baud rate = 113.75 Gbaud;

[0046] Or, W=64, P=11520, a=724, b=80, baud rate=113.125 Gbaud;

[0047] Or, W = 64, P = 23040, a = 722, b = 160, baud rate = 112.8125 Gbaud;

[0048] Or, W = 64, P = 46080, a = 721, b = 320, baud rate = 112.6563 Gbaud;

[0049] Or, W = 120, P = 14400, a = 726, b = 100, baud rate = 113.4375 Gbaud;

[0050] Or, W = 120, P = 17280, a = 725, b = 120, baud rate = 113.2813 Gbaud;

[0051] Or, W = 120, P = 28800, a = 723, b = 200, baud rate = 112.9688 Gbaud;

[0052] Or, W = 120, P = 43200, a = 722, b = 300, baud rate = 112.8125 Gbaud;

[0053] Or, W = 120, P = 86400, a = 721, b = 600, baud rate = 112.6563 Gbaud;

[0054] Or, W = 144, P = 11520, a = 729, b = 80, baud rate = 113.9063 Gbaud;

[0055] Or, W = 144, P = 17280, a = 726, b = 120, baud rate = 113.4375 Gbaud;

[0056] Or, W = 144, P = 25920, a = 724, b = 180, baud rate = 113.125 Gbaud;

[0057] Or, W = 144, P = 34560, a = 723, b = 240, baud rate = 112.9688 Gbaud;

[0058] Or, W = 144, P = 51840, a = 723, b = 360, baud rate = 112.8125 Gbaud;

[0059] Alternatively, W=144, P=103680, a=721, b=720, baud rate=112.6563 Gbaud.

[0060] In some possible implementations, W=56, P=5040, a=728, b=35, baud rate=113.75 Gbaud;

[0061] Or, W = 56, P = 10080, a = 724, b = 70, baud rate = 113.125 Gbaud;

[0062] Or, W = 56, P = 20160, a = 722, b = 140, baud rate = 112.8125 Gbaud;

[0063] Alternatively, W=56, P=40320, a=721, b=280, baud rate=112.6563 Gbaud.

[0064] In some possible implementations, N=148, K=140, W is a multiple of 4, and b is a multiple of 17.

[0065] In some possible implementations, N=128, K=120, and the baud rate of the modulation symbol stream is 113.4375 Gbaud.

[0066] In some possible implementations, P=1088×W.

[0067] In some possible implementations, the alignment marker includes at least one frame synchronization sequence with a length of 48 bits.

[0068] In some possible implementations, the 48 bits of the frame synchronization sequence are continuous in the alignment marker.

[0069] In some possible implementations, the values ​​of the 48 bits of the frame synchronization sequence include 0x9A, 0x4A, 0x26, 0x65, 0xB5, and 0xD9.

[0070] In some possible implementations, the frame synchronization sequence includes two frame synchronization subsequences, the bit length of each frame synchronization subsequence is 24 bits, and the two frame synchronization subsequences are separated by 8 bits in the alignment marker.

[0071] In some possible implementations, the values ​​of 24 bits of one of the two frame synchronization subsequences include 0x9A, 0x4A, and 0x26, and the values ​​of 24 bits of the other of the two frame synchronization subsequences include 0x65, 0xB5, and 0xD9.

[0072] In some possible implementations, the alignment indicator includes a padding bit and / or a status field.

[0073] In some possible implementations, W is divisible by N.

[0074] In some possible implementations, each second data stream undergoes at least one of identification locking, channel de-skew processing, and channel reordering before the second FEC encoding, and / or each second data stream undergoes at least one of channel interleaving and scrambling after the second FEC encoding.

[0075] In some possible implementations, performing first data processing on multiple first data streams to obtain m second data streams includes: performing second FEC encoding on each group of 8 first data streams in the multiple first data streams to obtain each group of 8 encoded data streams. Channel interleaving is performed on each group of 8 encoded data streams to obtain 1 second data stream, so as to obtain m second data streams.

[0076] In some possible implementations, N=128, K=120, and performing channel interleaving on each group of 8 coded data streams to obtain a second data stream includes: obtaining an inner codeword with a length of 128 bits from each coded data stream of each group of 8 coded data streams to obtain a total of 8 inner codewords. Polling obtains 2 bits from each of the 8 inner codewords to obtain 1024 consecutive bits in the second data stream.

[0077] In some possible implementations, each second data stream is further cyclically shifted before being subjected to the second FEC encoding.

[0078] In some possible implementations, performing first data processing on the plurality of first data streams includes: performing convolution interleaving on 8×m first data streams, performing cyclic shift on the 8×m first data streams after convolution interleaving, and performing second FEC encoding on the 8×m first data streams after cyclic shift.

[0079] In some possible implementations, performing first data processing on the plurality of first data streams includes: performing convolution interleaving on 2×m first data streams respectively. Distributing each first data stream after convolution interleaving to obtain 4 distributed first data streams, so as to obtain a total of 8×m distributed first data streams. Performing cyclic shift on the distributed 8×m first data streams respectively. Performing second FEC encoding on the 8×m first data streams after cyclic shift respectively.

[0080] In some possible implementations, performing first data processing on the plurality of first data streams includes: performing convolution interleaving on the m first data streams respectively. Distributing each first data stream after convolution interleaving to obtain 8 distributed first data streams, so as to obtain a total of 8×m distributed first data streams. Performing cyclic shift on the distributed 8×m first data streams respectively. Performing second FEC encoding on the 8×m first data streams after cyclic shift respectively.

[0081] In some possible implementations, in order to achieve lower latency, lower complexity and power consumption, the cyclic shift operation and / or the channel interleaving operation may not be performed (bypassed). Specifically, performing first data processing on multiple first data streams to obtain m second data streams includes: first, distributing each of the m first data streams to obtain 8 distributed first data streams, so as to obtain a total of 8×m distributed first data streams. Afterwards, performing second FEC encoding on the distributed 8×m first data streams respectively to obtain 8×m coded data streams. Furthermore, codeword merging is performed on every 8 coded data streams in the 8×m coded data streams to obtain 1 second data stream, so as to obtain a total of m second data streams. It should be understood that codeword merging of 8 coded data streams is equivalent to performing one-way Hamming codeword interleaver on the 8 coded data streams.

[0082] In some possible implementations, the alignment marker includes at least one target codeword, and the target codeword includes N bits.

[0083] In some possible implementations, the target codeword is obtained by second FEC encoding of K bits of alignment mark information. It should be understood that the target codeword can also be called an inner codeword, and selecting the specific pattern of the alignment mark as one or more inner codewords is conducive to the receiving end to achieve low-complexity frame synchronization and codeword synchronization.

[0084] In some possible implementations, the alignment marker is obtained by codeword interleaving of multiple target codewords. For example, each alignment marker is obtained by 8 target codewords through 8-way codeword interleaving, and the codeword interleaving here can also be referred to as channel interleaving. It should be understood that the alignment marker obtained by codeword interleaving of multiple target codewords should also be considered to include multiple target codewords. Alternatively, each alignment marker is obtained by codeword merging of multiple target codewords. For example, each alignment marker is obtained by codeword merging of 8 target codewords, and the codeword merging here can also be referred to as 1-way codeword interleaving.

[0085] In a second aspect, an embodiment of the present application provides a data processing method, which is applied to a receiving end, and the method includes the following steps. First, the received Y modulation symbol streams are subjected to fourth data processing to obtain m fourth data streams. Among them, each fourth data stream is demodulated, and the Y modulation symbol streams are obtained by performing third data processing on m third data streams, each modulation symbol stream is modulated, and the m third data streams are obtained by performing second data processing on m second data streams respectively, and the m second data streams are obtained by performing first data processing on multiple first data streams after first FEC encoding, and Y is an integer greater than or equal to 1, and m is an integer greater than 1. Each second data stream is subjected to second FEC encoding, and each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, and S is an integer greater than or equal to 1. Each third data stream includes at least one bit sequence, and each bit sequence includes P+W bits, and the P bits in each bit sequence come from the second data stream, and the W bits in each bit sequence are added alignment markers. P=N×b, b is an integer greater than or equal to 1, and the baud rate value of each modulation symbol stream is an integer multiple of the reference clock frequency value. Furthermore, frame synchronization is performed on each fourth data stream according to the alignment mark in each fourth data stream.

[0086] In some possible implementations, the baud rate value of each modulation symbol stream is an integer multiple of 156.25M.

[0087] In some possible implementations, each second data stream is also subjected to convolution interleaving before being subjected to the second FEC encoding. Convolution interleaving includes delaying the input data stream according to r delay lines, where r is an integer greater than 1, and each delay line includes a different number of storage units. The delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q, and each storage unit is used to store d bits. The bits in the input data stream are sequentially input into the r delay lines according to the sequence numbers of the r delay lines, and each delay line inputs d bits at a time and outputs d bits at a time. After convolution interleaving, the continuous r*d bits in the output data stream include d bits output by each delay line, where Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1.

[0088] In some possible implementations, after convolution interleaving, for every f bits output, the input and output switches corresponding to the convolution interleaving are located at the 0th delay line, and K×b can be divided by f. It should be satisfied that the input and output switches of the convolution deinterleaver corresponding to the starting position of each frame (W+P bits) are located at the starting position of the switch, usually the topmost positions. More specifically, for every f bits output by the convolution interleaver and the convolution deinterleaver, the input and output switch positions are located at the topmost positions, so that the synchronization of the convolution deinterleaver can be guaranteed during frame synchronization.

[0089] In some possible implementations, r×d×c=K×b, where c is an integer greater than or equal to 1. That is, the convolution interleaver and the convolution deinterleaver can output K×b bits per polling c times, and at this time, the input and output switch positions are located at the starting positions of the switches, so that the convolution deinterleaver synchronization can be guaranteed during frame synchronization.

[0090] In some possible implementations, the rate of the first data stream is 850 Gbps. a is an integer greater than or equal to 1, G represents 10^9, and M represents 10^6.

[0091] In some possible implementations, N=128, K=120,

[0092] In some possible implementations, W=48, P=13056, a=728, b=102, baud rate=113.75 Gbaud;

[0093] Or, W = 48, P = 52224, a = 726, b = 408, baud rate = 113.4375 Gbaud;

[0094] Or, W = 56, P = 15232, a = 728, b = 119, baud rate = 113.75 Gbaud;

[0095] Or, W = 56, P = 60928, a = 726, b = 476, baud rate = 113.4375 Gbaud;

[0096] Or, W = 64, P = 13056, a = 728, b = 102, baud rate = 113.75 Gbaud;

[0097] Or, W = 64, P = 69632, a = 726, b = 544, baud rate = 113.4375 Gbaud;

[0098] Or, W = 120, P = 32640, a = 728, b = 255, baud rate = 113.75 Gbaud;

[0099] Or, W = 120, P = 52224, a = 727, b = 408, baud rate = 113.5938 Gbaud;

[0100] Or, W = 120, P = 130560, a = 726, b = 1020, baud rate = 113.4375 Gbaud;

[0101] Or, W = 128, P = 34816, a = 728, b = 272, baud rate = 113.75 Gbaud;

[0102] Alternatively, W=128, P=139264, a=726, b=1088, baud rate=113.4375 Gbaud.

[0103] In some possible implementations, N=170, K=160,

[0104] In some possible implementations, W=48, P=23120, a=724, b=136, baud rate=113.125 Gbaud;

[0105] Or, W = 48, P = 69360, a = 723, b = 408, baud rate = 112.9688 Gbaud;

[0106] Or, W = 56, P = 11560, a = 726, b = 68, baud rate = 113.4375 Gbaud;

[0107] Or, W = 56, P = 80920, a = 723, b = 476, baud rate = 112.9688 Gbaud;

[0108] Or, W = 64, P = 92480, a = 723, b = 544, baud rate = 112.9688 Gbaud;

[0109] Or, W = 120, P = 34680, a = 725, b = 204, baud rate = 113.2813 Gbaud;

[0110] Or, W = 120, P = 57800, a = 724, b = 340, baud rate = 113.125 Gbaud;

[0111] Or, W = 120, P = 173400, a = 723, b = 1020, baud rate = 112.9688 Gbaud;

[0112] Or, W = 170, P = 49130, a = 725, b = 289, baud rate = 113.2813 Gbaud;

[0113] Alternatively, W=170, P=245650, a=723, b=1445, baud rate=112.9688 Gbaud.

[0114] In some possible implementations, N=144, K=136,

[0115] In some possible implementations, W=48, P=5760, a=726, b=40, baud rate=113.4375 Gbaud;

[0116] Or, W = 48, P = 8640, a = 724, b = 60, baud rate = 113.125 Gbaud;

[0117] Or, W = 48, P = 11520, a = 723, b = 80, baud rate = 112.9688 Gbaud;

[0118] Or, W = 48, P = 17280, a = 722, b = 120, baud rate = 112.8125 Gbaud;

[0119] Or, W = 48, P = 34560, a = 721, b = 240, baud rate = 112.6563 Gbaud;

[0120] Or, W = 56, P = 5760, a = 727, b = 40, baud rate = 113.5938 Gbaud;

[0121] Or, W = 56, P = 20160, a = 722, b = 140, baud rate = 112.8125 Gbaud;

[0122] Or, W = 56, P = 40320, a = 721, b = 280, baud rate = 112.6563 Gbaud;

[0123] Or, W = 64, P = 5760, a = 728, b = 40, baud rate = 113.75 Gbaud;

[0124] Or, W=64, P=11520, a=724, b=80, baud rate=113.125 Gbaud;

[0125] Or, W = 64, P = 23040, a = 722, b = 160, baud rate = 112.8125 Gbaud;

[0126] Or, W = 64, P = 46080, a = 721, b = 320, baud rate = 112.6563 Gbaud;

[0127] Or, W = 120, P = 14400, a = 726, b = 100, baud rate = 113.4375 Gbaud;

[0128] Or, W = 120, P = 17280, a = 725, b = 120, baud rate = 113.2813 Gbaud;

[0129] Or, W = 120, P = 28800, a = 723, b = 200, baud rate = 112.9688 Gbaud;

[0130] Or, W = 120, P = 43200, a = 722, b = 300, baud rate = 112.8125 Gbaud;

[0131] Or, W = 120, P = 86400, a = 721, b = 600, baud rate = 112.6563 Gbaud;

[0132] Or, W = 144, P = 11520, a = 729, b = 80, baud rate = 113.9063 Gbaud;

[0133] Or, W = 144, P = 17280, a = 726, b = 120, baud rate = 113.4375 Gbaud;

[0134] Or, W = 144, P = 25920, a = 724, b = 180, baud rate = 113.125 Gbaud;

[0135] Or, W = 144, P = 34560, a = 723, b = 240, baud rate = 112.9688 Gbaud;

[0136] Or, W = 144, P = 51840, a = 723, b = 360, baud rate = 112.8125 Gbaud;

[0137] Alternatively, W=144, P=103680, a=721, b=720, baud rate=112.6563 Gbaud.

[0138] In some possible implementations, W=56, P=5040, a=728, b=35, baud rate=113.75 Gbaud;

[0139] Or, W = 56, P = 10080, a = 724, b = 70, baud rate = 113.125 Gbaud;

[0140] Or, W = 56, P = 20160, a = 722, b = 140, baud rate = 112.8125 Gbaud;

[0141] Alternatively, W=56, P=40320, a=721, b=280, baud rate=112.6563 Gbaud.

[0142] In some possible implementations, N=148, K=140, W is a multiple of 4, and b is a multiple of 17.

[0143] In some possible implementations, the alignment indicator includes a padding bit and / or a status field.

[0144] In some possible implementations, W is divisible by N.

[0145] In some possible implementations, the alignment marker includes at least one target codeword, and the target codeword includes N bits.

[0146] In some possible implementations, the target codeword is obtained by second FEC encoding of K bits of alignment mark information. It should be understood that the target codeword can also be called an inner codeword, and selecting the specific pattern of the alignment mark as one or more inner codewords is conducive to the receiving end to achieve low-complexity frame synchronization and codeword synchronization.

[0147] In some possible implementations, the alignment marker is obtained by codeword interleaving of multiple target codewords. For example, each alignment marker is obtained by 8 target codewords through 8-way codeword interleaving, and the codeword interleaving here can also be referred to as channel interleaving. It should be understood that the alignment marker obtained by codeword interleaving of multiple target codewords should also be considered to include multiple target codewords. Alternatively, each alignment marker is obtained by codeword merging of multiple target codewords. For example, each alignment marker is obtained by codeword merging of 8 target codewords, and the codeword merging here can also be referred to as 1-way codeword interleaving.

[0148] In a third aspect, an embodiment of the present application provides a data processing device, which is applied to a transmitting end, and the data processing device includes: a first data processing unit, a second data processing unit, and a third data processing unit. The first data processing unit is used to: perform first data processing on multiple first data streams that have been encoded by the first forward error correction FEC to obtain m second data streams, m is an integer greater than 1, each second data stream has been encoded by the second FEC, and each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, and S is an integer greater than or equal to 1. The second data processing unit is used to: perform second data processing on the m second data streams to obtain m third data streams, each third data stream includes at least one bit sequence, each bit sequence includes P+W bits, P bits in each bit sequence come from the second data stream, W bits in each bit sequence are added alignment markers, P=N×b, b is an integer greater than or equal to 1. The third data processing unit is used to perform third data processing on m third data streams to obtain Y modulation symbol streams, where Y is an integer greater than or equal to 1, each modulation symbol stream is modulated, and the baud rate value of each modulation symbol stream is an integer multiple of the reference clock frequency value.

[0149] In some possible implementations, the baud rate value of each modulation symbol stream is an integer multiple of 156.25M.

[0150] In some possible implementations, each second data stream is also subjected to convolution interleaving before being subjected to the second FEC encoding. Convolution interleaving includes delaying the input data stream according to r delay lines, where r is an integer greater than 1, and each delay line includes a different number of storage units. The delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q, and each storage unit is used to store d bits. The bits in the input data stream are sequentially input into the r delay lines according to the sequence numbers of the r delay lines, and each delay line inputs d bits at a time and outputs d bits at a time. After convolution interleaving, the continuous r*d bits in the output data stream include d bits output by each delay line, where Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1.

[0151] In some possible implementations, after convolution interleaving, for every f bits output, the input and output switches corresponding to the convolution interleaving are located at the 0th delay line, and K×b can be divided by f. It should be satisfied that the input and output switches of the convolution deinterleaver corresponding to the starting position of each frame (W+P bits) are located at the starting position of the switch, usually the topmost positions. More specifically, for every f bits output by the convolution interleaver and the convolution deinterleaver, the input and output switch positions are located at the topmost positions, so that the synchronization of the convolution deinterleaver can be guaranteed during frame synchronization.

[0152] In some possible implementations, r×d×c=K×b, where c is an integer greater than or equal to 1. That is, the convolution interleaver and the convolution deinterleaver can output K×b bits per polling c times, and at this time, the input and output switch positions are located at the starting positions of the switches, so that the convolution deinterleaver synchronization can be guaranteed during frame synchronization.

[0153] In some possible implementations, the rate of the first data stream is 850 Gbps. a is an integer greater than or equal to 1, G represents 10^9, and M represents 10^6.

[0154] In some possible implementations, N=128, K=120,

[0155] In some possible implementations, W=48, P=13056, a=728, b=102, baud rate=113.75 Gbaud;

[0156] Or, W = 48, P = 52224, a = 726, b = 408, baud rate = 113.4375 Gbaud;

[0157] Or, W = 56, P = 15232, a = 728, b = 119, baud rate = 113.75 Gbaud;

[0158] Or, W = 56, P = 60928, a = 726, b = 476, baud rate = 113.4375 Gbaud;

[0159] Or, W = 64, P = 13056, a = 728, b = 102, baud rate = 113.75 Gbaud;

[0160] Or, W = 64, P = 69632, a = 726, b = 544, baud rate = 113.4375 Gbaud;

[0161] Or, W = 120, P = 32640, a = 728, b = 255, baud rate = 113.75 Gbaud;

[0162] Or, W = 120, P = 52224, a = 727, b = 408, baud rate = 113.5938 Gbaud;

[0163] Or, W = 120, P = 130560, a = 726, b = 1020, baud rate = 113.4375 Gbaud;

[0164] Or, W = 128, P = 34816, a = 728, b = 272, baud rate = 113.75 Gbaud;

[0165] Alternatively, W=128, P=139264, a=726, b=1088, baud rate=113.4375 Gbaud.

[0166] In some possible implementations, N=170, K=160,

[0167] In some possible implementations, W=48, P=23120, a=724, b=136, baud rate=113.125 Gbaud;

[0168] Or, W = 48, P = 69360, a = 723, b = 408, baud rate = 112.9688 Gbaud;

[0169] Or, W = 56, P = 11560, a = 726, b = 68, baud rate = 113.4375 Gbaud;

[0170] Or, W = 56, P = 80920, a = 723, b = 476, baud rate = 112.9688 Gbaud;

[0171] Or, W = 64, P = 92480, a = 723, b = 544, baud rate = 112.9688 Gbaud;

[0172] Or, W = 120, P = 34680, a = 725, b = 204, baud rate = 113.2813 Gbaud;

[0173] Or, W = 120, P = 57800, a = 724, b = 340, baud rate = 113.125 Gbaud;

[0174] Or, W = 120, P = 173400, a = 723, b = 1020, baud rate = 112.9688 Gbaud;

[0175] Or, W = 170, P = 49130, a = 725, b = 289, baud rate = 113.2813 Gbaud;

[0176] Alternatively, W=170, P=245650, a=723, b=1445, baud rate=112.9688 Gbaud.

[0177] In some possible implementations, N=144, K=136,

[0178] In some possible implementations, W=48, P=5760, a=726, b=40, baud rate=113.4375 Gbaud;

[0179] Or, W = 48, P = 8640, a = 724, b = 60, baud rate = 113.125 Gbaud;

[0180] Or, W = 48, P = 11520, a = 723, b = 80, baud rate = 112.9688 Gbaud;

[0181] Or, W = 48, P = 17280, a = 722, b = 120, baud rate = 112.8125 Gbaud;

[0182] Or, W = 48, P = 34560, a = 721, b = 240, baud rate = 112.6563 Gbaud;

[0183] Or, W = 56, P = 5760, a = 727, b = 40, baud rate = 113.5938 Gbaud;

[0184] Or, W = 56, P = 20160, a = 722, b = 140, baud rate = 112.8125 Gbaud;

[0185] Or, W = 56, P = 40320, a = 721, b = 280, baud rate = 112.6563 Gbaud;

[0186] Or, W = 64, P = 5760, a = 728, b = 40, baud rate = 113.75 Gbaud;

[0187] Or, W=64, P=11520, a=724, b=80, baud rate=113.125 Gbaud;

[0188] Or, W = 64, P = 23040, a = 722, b = 160, baud rate = 112.8125 Gbaud;

[0189] Or, W = 64, P = 46080, a = 721, b = 320, baud rate = 112.6563 Gbaud;

[0190] Or, W = 120, P = 14400, a = 726, b = 100, baud rate = 113.4375 Gbaud;

[0191] Or, W = 120, P = 17280, a = 725, b = 120, baud rate = 113.2813 Gbaud;

[0192] Or, W = 120, P = 28800, a = 723, b = 200, baud rate = 112.9688 Gbaud;

[0193] Or, W = 120, P = 43200, a = 722, b = 300, baud rate = 112.8125 Gbaud;

[0194] Or, W = 120, P = 86400, a = 721, b = 600, baud rate = 112.6563 Gbaud;

[0195] Or, W = 144, P = 11520, a = 729, b = 80, baud rate = 113.9063 Gbaud;

[0196] Or, W = 144, P = 17280, a = 726, b = 120, baud rate = 113.4375 Gbaud;

[0197] Or, W = 144, P = 25920, a = 724, b = 180, baud rate = 113.125 Gbaud;

[0198] Or, W = 144, P = 34560, a = 723, b = 240, baud rate = 112.9688 Gbaud;

[0199] Or, W = 144, P = 51840, a = 723, b = 360, baud rate = 112.8125 Gbaud;

[0200] Alternatively, W=144, P=103680, a=721, b=720, baud rate=112.6563 Gbaud.

[0201] In some possible implementations, W=56, P=5040, a=728, b=35, baud rate=113.75 Gbaud;

[0202] Or, W = 56, P = 10080, a = 724, b = 70, baud rate = 113.125 Gbaud;

[0203] Or, W = 56, P = 20160, a = 722, b = 140, baud rate = 112.8125 Gbaud;

[0204] Alternatively, W=56, P=40320, a=721, b=280, baud rate=112.6563 Gbaud.

[0205] In some possible implementations, N=148, K=140, W is a multiple of 4, and b is a multiple of 17.

[0206] In some possible implementations, N=128, K=120, and the baud rate of the modulation symbol stream is 113.4375 Gbaud.

[0207] In some possible implementations, P=1088×W.

[0208] In some possible implementations, the alignment marker includes at least one frame synchronization sequence with a length of 48 bits.

[0209] In some possible implementations, the 48 bits of the frame synchronization sequence are continuous in the alignment marker.

[0210] In some possible implementations, the values ​​of the 48 bits of the frame synchronization sequence include 0x9A, 0x4A, 0x26, 0x65, 0xB5, and 0xD9.

[0211] In some possible implementations, the frame synchronization sequence includes two frame synchronization subsequences, the bit length of each frame synchronization subsequence is 24 bits, and the two frame synchronization subsequences are separated by 8 bits in the alignment marker.

[0212] In some possible implementations, the values ​​of 24 bits of one of the two frame synchronization subsequences include 0x9A, 0x4A, and 0x26, and the values ​​of 24 bits of the other of the two frame synchronization subsequences include 0x65, 0xB5, and 0xD9.

[0213] In some possible implementations, the alignment indicator includes a padding bit and / or a status field.

[0214] In some possible implementations, W is divisible by N. In some possible implementations, each second data stream undergoes at least one of identification locking, channel de-skew processing, and channel reordering before the second FEC encoding. And / or, each second data stream undergoes at least one of channel interleaving and scrambling after the second FEC encoding.

[0215] In some possible implementations, the first data processing unit is specifically configured to: perform second FEC encoding on each group of 8 first data streams in the plurality of first data streams to obtain each group of 8 encoded data streams, perform channel interleaving on each group of 8 encoded data streams to obtain 1 second data stream, and obtain m second data streams.

[0216] In some possible implementations, N=128, K=120, and the first data processing unit is specifically configured to: obtain an inner codeword with a length of 128 bits from each coded data stream of each group of 8 coded data streams to obtain a total of 8 inner codewords. Polling obtains 2 bits from each of the 8 inner codewords to obtain 1024 consecutive bits in the second data stream.

[0217] In some possible implementations, each second data stream is further cyclically shifted before being subjected to the second FEC encoding.

[0218] In some possible implementations, the first data processing unit is specifically configured to: perform convolution interleaving on the 8×m first data streams, perform cyclic shift on the 8×m first data streams after convolution interleaving, and perform second FEC encoding on the 8×m first data streams after cyclic shift.

[0219] In some possible implementations, the first data processing unit is specifically configured to: perform convolution interleaving on 2×m first data streams respectively. Distribute each first data stream after convolution interleaving to obtain 4 distributed first data streams, so as to obtain a total of 8×m distributed first data streams. Perform cyclic shift on the distributed 8×m first data streams respectively. Perform second FEC encoding on the 8×m first data streams after cyclic shift respectively.

[0220] In some possible implementations, the first data processing unit is specifically configured to: perform convolution interleaving on the m first data streams respectively. Distribute each first data stream after convolution interleaving to obtain 8 distributed first data streams, so as to obtain a total of 8×m distributed first data streams. Perform cyclic shift on the distributed 8×m first data streams respectively. Perform second FEC encoding on the 8×m first data streams after cyclic shift respectively.

[0221] In some possible implementations, the first data processing unit is specifically used to: distribute each of the m first data streams to obtain 8 distributed first data streams, so as to obtain a total of 8×m distributed first data streams. Perform second FEC encoding on the distributed 8×m first data streams to obtain 8×m coded data streams. Perform codeword merging on every 8 coded data streams in the 8×m coded data streams to obtain 1 second data stream, so as to obtain a total of m second data streams. It should be understood that codeword merging on the 8 coded data streams is equivalent to performing one-way Hamming codeword interleaver on the 8 coded data streams.

[0222] In some possible implementations, the alignment identifier includes at least one target codeword, and the target codeword includes N bits.

[0223] In some possible implementations, the target codeword is obtained by second FEC encoding of K bits of alignment mark information. It should be understood that the target codeword can also be called an inner codeword, and selecting the specific pattern of the alignment mark as one or more inner codewords is conducive to the receiving end to achieve low-complexity frame synchronization and codeword synchronization.

[0224] In some possible implementations, the alignment marker is obtained by codeword interleaving of multiple target codewords. For example, each alignment marker is obtained by 8 target codewords through 8-way codeword interleaving, and the codeword interleaving here can also be referred to as channel interleaving. It should be understood that the alignment marker obtained by codeword interleaving of multiple target codewords should also be considered to include multiple target codewords. Alternatively, each alignment marker is obtained by codeword merging of multiple target codewords. For example, each alignment marker is obtained by codeword merging of 8 target codewords, and the codeword merging here can also be referred to as 1-way codeword interleaving.

[0225] In a fourth aspect, an embodiment of the present application provides a data processing device, which is applied to a receiving end, and the data processing device includes: a data processing unit and a synchronization unit; the data processing unit is used to: perform a fourth data processing on the received Y modulation symbol streams to obtain m fourth data streams. Wherein, each fourth data stream is demodulated, and the Y modulation symbol streams are obtained by performing a third data processing on m third data streams, each modulation symbol stream is modulated, and the m third data streams are obtained by performing a second data processing on m second data streams respectively, and the m second data streams are obtained by performing a first data processing on multiple first data streams that have been encoded by a first forward error correction FEC, Y is an integer greater than or equal to 1, and m is an integer greater than 1. Each second data stream is encoded by a second FEC, and each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, and S is an integer greater than or equal to 1. Each third data stream includes at least one bit sequence, each bit sequence includes P+W bits, the P bits in each bit sequence come from the second data stream, and the W bits in each bit sequence are added alignment marks. P=N×b, b is an integer greater than or equal to 1, and the baud rate value of each modulation symbol stream is an integer multiple of the reference clock frequency value. The synchronization unit is used to: perform frame synchronization on each fourth data stream according to the alignment mark in each fourth data stream.

[0226] In some possible implementations, the baud rate value of each modulation symbol stream is an integer multiple of 156.25M.

[0227] In some possible implementations, each second data stream is also subjected to convolution interleaving before being subjected to the second FEC encoding. Convolution interleaving includes delaying the input data stream according to r delay lines, where r is an integer greater than 1, and each delay line includes a different number of storage units. The delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q, and each storage unit is used to store d bits. The bits in the input data stream are sequentially input into the r delay lines according to the sequence numbers of the r delay lines, and each delay line inputs d bits at a time and outputs d bits at a time. After convolution interleaving, the continuous r*d bits in the output data stream include d bits output by each delay line, where Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1.

[0228] In some possible implementations, after convolution interleaving, for every f bits output, the input and output switches corresponding to the convolution interleaving are located at the 0th delay line, and K×b can be divided by f. It should be satisfied that the input and output switches of the convolution deinterleaver corresponding to the starting position of each frame (W+P bits) are located at the starting position of the switch, usually the topmost positions. More specifically, for every f bits output by the convolution interleaver and the convolution deinterleaver, the input and output switch positions are located at the topmost positions, so that the synchronization of the convolution deinterleaver can be guaranteed during frame synchronization.

[0229] In some possible implementations, r×d×c=K×b, where c is an integer greater than or equal to 1. That is, the convolution interleaver and the convolution deinterleaver can output K×b bits per polling c times, and at this time, the input and output switch positions are located at the starting positions of the switches, so that the convolution deinterleaver synchronization can be guaranteed during frame synchronization.

[0230] In some possible implementations, the rate of the first data stream is 850 Gbps. a is an integer greater than or equal to 1, G represents 10^9, and M represents 10^6.

[0231] In some possible implementations, N=128, K=120,

[0232] In some possible implementations, W=48, P=13056, a=728, b=102, baud rate=113.75 Gbaud;

[0233] Or, W = 48, P = 52224, a = 726, b = 408, baud rate = 113.4375 Gbaud;

[0234] Or, W = 56, P = 15232, a = 728, b = 119, baud rate = 113.75 Gbaud;

[0235] Or, W = 56, P = 60928, a = 726, b = 476, baud rate = 113.4375 Gbaud;

[0236] Or, W = 64, P = 13056, a = 728, b = 102, baud rate = 113.75 Gbaud;

[0237] Or, W = 64, P = 69632, a = 726, b = 544, baud rate = 113.4375 Gbaud;

[0238] Or, W = 120, P = 32640, a = 728, b = 255, baud rate = 113.75 Gbaud;

[0239] Or, W = 120, P = 52224, a = 727, b = 408, baud rate = 113.5938 Gbaud;

[0240] Or, W = 120, P = 130560, a = 726, b = 1020, baud rate = 113.4375 Gbaud;

[0241] Or, W = 128, P = 34816, a = 728, b = 272, baud rate = 113.75 Gbaud;

[0242] Alternatively, W=128, P=139264, a=726, b=1088, baud rate=113.4375 Gbaud.

[0243] In some possible implementations, N=170, K=160,

[0244] In some possible implementations, W=48, P=23120, a=724, b=136, baud rate=113.125 Gbaud;

[0245] Or, W = 48, P = 69360, a = 723, b = 408, baud rate = 112.9688 Gbaud;

[0246] Or, W = 56, P = 11560, a = 726, b = 68, baud rate = 113.4375 Gbaud;

[0247] Or, W = 56, P = 80920, a = 723, b = 476, baud rate = 112.9688 Gbaud;

[0248] Or, W = 64, P = 92480, a = 723, b = 544, baud rate = 112.9688 Gbaud;

[0249] Or, W = 120, P = 34680, a = 725, b = 204, baud rate = 113.2813 Gbaud;

[0250] Or, W = 120, P = 57800, a = 724, b = 340, baud rate = 113.125 Gbaud;

[0251] Or, W = 120, P = 173400, a = 723, b = 1020, baud rate = 112.9688 Gbaud;

[0252] Or, W = 170, P = 49130, a = 725, b = 289, baud rate = 113.2813 Gbaud;

[0253] Alternatively, W=170, P=245650, a=723, b=1445, baud rate=112.9688 Gbaud.

[0254] In some possible implementations, N=144, K=136,

[0255] In some possible implementations, W=48, P=5760, a=726, b=40, baud rate=113.4375 Gbaud;

[0256] Or, W = 48, P = 8640, a = 724, b = 60, baud rate = 113.125 Gbaud;

[0257] Or, W = 48, P = 11520, a = 723, b = 80, baud rate = 112.9688 Gbaud;

[0258] Or, W = 48, P = 17280, a = 722, b = 120, baud rate = 112.8125 Gbaud;

[0259] Or, W = 48, P = 34560, a = 721, b = 240, baud rate = 112.6563 Gbaud;

[0260] Or, W = 56, P = 5760, a = 727, b = 40, baud rate = 113.5938 Gbaud;

[0261] Or, W = 56, P = 20160, a = 722, b = 140, baud rate = 112.8125 Gbaud;

[0262] Or, W = 56, P = 40320, a = 721, b = 280, baud rate = 112.6563 Gbaud;

[0263] Or, W = 64, P = 5760, a = 728, b = 40, baud rate = 113.75 Gbaud;

[0264] Or, W=64, P=11520, a=724, b=80, baud rate=113.125 Gbaud;

[0265] Or, W = 64, P = 23040, a = 722, b = 160, baud rate = 112.8125 Gbaud;

[0266] Or, W = 64, P = 46080, a = 721, b = 320, baud rate = 112.6563 Gbaud;

[0267] Or, W = 120, P = 14400, a = 726, b = 100, baud rate = 113.4375 Gbaud;

[0268] Or, W = 120, P = 17280, a = 725, b = 120, baud rate = 113.2813 Gbaud;

[0269] Or, W = 120, P = 28800, a = 723, b = 200, baud rate = 112.9688 Gbaud;

[0270] Or, W = 120, P = 43200, a = 722, b = 300, baud rate = 112.8125 Gbaud;

[0271] Or, W = 120, P = 86400, a = 721, b = 600, baud rate = 112.6563 Gbaud;

[0272] Or, W = 144, P = 11520, a = 729, b = 80, baud rate = 113.9063 Gbaud;

[0273] Or, W = 144, P = 17280, a = 726, b = 120, baud rate = 113.4375 Gbaud;

[0274] Or, W = 144, P = 25920, a = 724, b = 180, baud rate = 113.125 Gbaud;

[0275] Or, W = 144, P = 34560, a = 723, b = 240, baud rate = 112.9688 Gbaud;

[0276] Or, W = 144, P = 51840, a = 723, b = 360, baud rate = 112.8125 Gbaud;

[0277] Alternatively, W=144, P=103680, a=721, b=720, baud rate=112.6563 Gbaud.

[0278] In some possible implementations, W=56, P=5040, a=728, b=35, baud rate=113.75 Gbaud;

[0279] Or, W = 56, P = 10080, a = 724, b = 70, baud rate = 113.125 Gbaud;

[0280] Or, W = 56, P = 20160, a = 722, b = 140, baud rate = 112.8125 Gbaud;

[0281] Alternatively, W=56, P=40320, a=721, b=280, baud rate=112.6563 Gbaud.

[0282] In some possible implementations, N=148, K=140, W is a multiple of 4, and b is a multiple of 17.

[0283] In some possible implementations, the alignment indicator includes a padding bit and / or a status field.

[0284] In some possible implementations, W is divisible by N.

[0285] In some possible implementations, the alignment identifier includes at least one target codeword, and the target codeword includes N bits.

[0286] In some possible implementations, the target codeword is obtained by second FEC encoding of K bits of alignment mark information. It should be understood that the target codeword can also be called an inner codeword, and selecting the specific pattern of the alignment mark as one or more inner codewords is conducive to the receiving end to achieve low-complexity frame synchronization and codeword synchronization.

[0287] In some possible implementations, the alignment marker is obtained by codeword interleaving of multiple target codewords. For example, each alignment marker is obtained by 8 target codewords through 8-way codeword interleaving, and the codeword interleaving here can also be referred to as channel interleaving. It should be understood that the alignment marker obtained by codeword interleaving of multiple target codewords should also be considered to include multiple target codewords. Alternatively, each alignment marker is obtained by codeword merging of multiple target codewords. For example, each alignment marker is obtained by codeword merging of 8 target codewords, and the codeword merging here can also be referred to as 1-way codeword interleaving.

[0288] In a fifth aspect, an embodiment of the present application provides a data processing method, which is applied to a transmitting end, and the method comprises the following steps. First, m first data streams encoded by a first forward error correction (FEC) are subjected to a first data processing to obtain m second data streams. Wherein m is an integer greater than 1, each second data stream comprises at least one first bit sequence, and each first bit sequence comprises bits, each of the first bits in the sequence bits come from the first data stream, each of the first bit sequences bits are added as the first identifier. Next, the second data processing is performed on the m second data streams to obtain m third data streams. The second data processing includes the second FEC encoding, and each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, and S is an integer greater than or equal to 1. b is an integer greater than or equal to 1, and e is an integer greater than or equal to 1. Further, the m third data streams are subjected to third data processing to obtain Y modulation symbol streams. Wherein, Y is an integer greater than or equal to 1, each modulation symbol stream is modulated, and the baud rate value of each modulation symbol stream is an integer multiple of the reference clock frequency value.

[0289] In the embodiment of the present application, the data stream after the outer code is periodically inserted into the first identifier and then the inner code is encoded. Specifically, the periodic acquisition of the first identifier from the data stream after the outer code is obtained bits and insert The first identifier of the bit length makes each bits exist The first identifier of the length of bits. This application selects a positive integer and The baud rate of the modulated symbol data stream can be made an integer multiple of the reference clock frequency (referenceclock), making it easier to implement clock extraction and clock synchronization at the receiving end, allowing for fast phase locking, low PLL complexity and small jitter. Further selecting a positive integer and can be divided by the inner code information length K, so that the frame synchronization and code word synchronization operations of the receiving end processing module for receiving data have lower hardware implementation complexity. At the same time, further select a positive integer The synchronization of the inner code word can ensure the synchronization of the cascade deinterleaving. That is to say, the data processing method provided by the present application material makes the implementation complexity of the receiving end processing module in performing frame synchronization, inner code word synchronization and cascade deinterleaving synchronization low.

[0290] In some possible implementations, each third data stream includes at least one second bit sequence, each second bit sequence includes P+W bits, and the P bits in each second bit sequence are composed of bits are obtained through the second FEC encoding, the W bits in each second bit sequence are the second identifier, the second identifier is obtained by the first identifier through the second FEC encoding, P=N×b, W=N×e.

[0291] In some possible implementations, the baud rate value of each modulation symbol stream is an integer multiple of 156.25M.

[0292] In some possible implementations, the first identifier includes a padding bit and / or a status field.

[0293] In some possible implementations, each first data stream is also subjected to convolution interleaving, and the convolution interleaving includes delaying the input data stream according to r delay lines, where r is an integer greater than 1, and each delay line includes a different number of storage units. The delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q. Each storage unit is used to store d bits, and the bits in the input data stream are input into the r delay lines in sequence according to the sequence numbers of the r delay lines. Each delay line inputs d bits at a time and outputs d bits at a time. After convolution interleaving, the continuous r*d bits in the output data stream include d bits output by each delay line, Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1.

[0294] In some possible implementations, after convolution interleaving, every time f bits are output, the input and output switches corresponding to the convolution interleaving are located at the 0th delay line, and K×b is divisible by f.

[0295] In some possible implementations, r×d×c=K×b, where c is an integer greater than or equal to 1.

[0296] In some possible implementations,

[0297] In some possible implementations, N=148, K=140, 5032×e is divisible by b, and Divisible by 7.

[0298] In some possible implementations, b=629×e.

[0299] In some possible implementations, the first FEC encoding uses KP4 encoding, and the second FEC encoding uses Hamming (148, 140). Alternatively, the first FEC encoding uses KP4 encoding, and the second FEC encoding performs bit XOR on every two consecutive information bits in K = 140 information bits to obtain 70 bits, and performs Hamming (78, 70) encoding on the 70 bits to obtain S = 8 check bits. The codeword with a length of 148 bits obtained by the second FEC encoding includes K = 140 information bits and S = 8 check bits.

[0300] In some possible implementations, N=127, K=120, 2159×e is divisible by b, and Divisible by 3.

[0301] In some possible implementations, b=2159×e.

[0302] In some possible implementations, the first FEC encoding uses KP4 encoding, and the second FEC encoding uses Hamming (127, 120). Alternatively, the first FEC encoding uses KP4 encoding, and the second FEC encoding performs bit XOR on every two consecutive information bits in K = 120 information bits to obtain 60 bits, and performs Hamming (67, 60) encoding on the 60 bits to obtain S = 7 check bits. The codeword with a length of 127 bits obtained by the second FEC encoding includes K = 120 information bits and S = 7 check bits.

[0303] In some possible implementations, the first data processing further includes scrambling.

[0304] In some possible implementations, the third data processing further includes codeword interleaving, and t codewords are interleaved to obtain an interleaved sequence including t×N bits, wherein the i-th codeword among the t codewords contains an information sequence B of K bits. i and a check sequence P of S bits i , 0≤i≤t-1, the interleaved sequence includes a first subsequence of continuous t×K bits and a second subsequence of continuous t×S bits, the first subsequence includes B0, B1, B2, ..., B t;1 There are t information sequences in total, and the second subsequence contains P0, P1, P2, ..., P t;1 There are t check sequences in total.

[0305] In some possible implementations, the baud rate of the modulation symbol stream is And the baud rate value is Wherein a is an integer greater than or equal to 1, G represents 10^9, and M represents 10^6.

[0306] In some possible implementations, N=128, K=120, and the baud rate of the modulation symbol stream is 113.4375 Gbaud.

[0307] In some possible implementations,

[0308] In some possible implementations, performing third data processing on the m third data streams to obtain Y modulation symbol streams includes: performing channel interleaving on each group of 8 third data streams in the m third data streams to obtain one fourth data stream, so as to obtain a total of Y fourth data streams. Modulating the Y fourth data streams respectively to obtain Y modulation symbol streams.

[0309] In some possible implementations, the first identifier in each second data stream includes a length of bits of synchronization subsequence, wherein the synchronization subsequence is located in the first identifier starting from the starting position bits.

[0310] In some possible implementations, A group of 8 third data streams among the m third data streams are obtained by a group of 8 second data streams among the m second data streams through a second FEC encoding, and a fourth data stream obtained by channel interleaving from a group of 8 third data streams includes a synchronization sequence with a length of 48 bits, and the synchronization sequence with a length of 48 bits is continuous in one fourth data stream. The synchronization sequence with a length of 48 bits includes a synchronization subsequence included in each of a group of 8 second data streams, totaling 8 synchronization subsequences.

[0311] In some possible implementations, the values ​​of the 48 bits of the synchronization sequence include 0x9A, 0x4A, 0x26, 0x65, 0xB5, and 0xD9.

[0312] In some possible implementations, the synchronization subsequence 0 included in the 0th second data stream in a group of 8 second data streams is 010110;

[0313] The synchronization subsequence 1 included in the first second data stream in a group of 8 second data streams is 011010;

[0314] The synchronization subsequence 2 included in the second second data stream in a group of 8 second data streams is 100111;

[0315] The synchronization subsequence 3 included in the third second data stream in a group of 8 second data streams is 010001;

[0316] The synchronization subsequence 4 included in the fourth second data stream in a group of eight second data streams is 011010;

[0317] The synchronization subsequence 5 included in the fifth second data stream in a group of eight second data streams is 011001;

[0318] The synchronization subsequence 6 included in the sixth second data stream in a group of eight second data streams is 000110;

[0319] The synchronization subsequence 7 included in the 7th second data stream in a group of 8 second data streams is 101011.

[0320] In some possible implementations, a group of 8 third data streams among the m third data streams is obtained by a group of 8 second data streams among the m second data streams through a second FEC encoding. The 0th second data stream, the 1st second data stream, the 2nd second data stream, and the 3rd second data stream among the group of 8 second data streams each include a synchronization subsequence with a length of 8 bits. The 4th second data stream, the 5th second data stream, the 6th second data stream, and the 7th second data stream among the group of 8 second data streams each include a synchronization subsequence with a length of 4 bits, wherein the first 2 bits and the last 2 bits in the synchronization subsequence with a length of 4 bits are separated by 2 bits.

[0321] In some possible embodiments, a fourth data stream obtained by channel interleaving of a group of 8 third data streams includes a synchronization sequence with a length of 48 bits, and the synchronization sequence with a length of 48 bits includes a synchronization subsequence, each of which includes a group of 8 second data streams, for a total of 8 synchronization subsequences, and there is an interval of 8 bits between the first 24 bits and the last 24 bits in the synchronization sequence with a length of 48 bits.

[0322] In some possible implementations, the values ​​of the first 24 bits in the synchronization sequence with a length of 48 bits include 0x9A, 0x4A, and 0x26, and the values ​​of the last 24 bits in the synchronization sequence with a length of 48 bits include 0x65, 0xB5, and 0xD9.

[0323] In some possible implementations, the synchronization subsequence 0 included in the 0th second data stream in a group of 8 second data streams is 01011010;

[0324] The synchronization subsequence 1 included in the first second data stream in a group of 8 second data streams is 01101001;

[0325] The synchronization subsequence 2 included in the second second data stream in a group of 8 second data streams is 10010110;

[0326] The synchronization subsequence 3 included in the third second data stream in a group of eight second data streams is 01001011;

[0327] The synchronization subsequence 4 included in the fourth second data stream in a group of eight second data streams is 0110;

[0328] The synchronization subsequence 5 included in the fifth second data stream in a group of eight second data streams is 0110;

[0329] The synchronization subsequence 6 included in the sixth second data stream in a group of eight second data streams is 0011;

[0330] The synchronization subsequence 7 included in the seventh second data stream in a group of eight second data streams is 1001.

[0331] In some possible implementations, the first identifier in each second data stream includes a synchronization subsequence with a length of 48 bits, wherein the first 24 bits and the last 24 bits in the synchronization subsequence are spaced 8 bits apart.

[0332] In some possible implementations, the values ​​of the first 24 bits in the synchronization subsequence with a length of 48 bits include 0x9A, 0x4A, and 0x26, and the values ​​of the last 24 bits in the synchronization subsequence with a length of 48 bits include 0x65, 0xB5, and 0xD9.

[0333] In some possible implementations, N=128, K=120, and performing channel interleaving on each group of 8 third data streams to obtain one fourth data stream includes: obtaining one inner code word with a length of 128 bits from each third data stream of each group of 8 third data streams to obtain a total of 8 inner code words. Polling obtains 2 bits from each of the 8 inner code words to obtain 1024 consecutive bits in the fourth data stream.

[0334] In some possible implementations, performing the first data processing on the m first data streams includes: performing cyclic shift on the m first data streams respectively.

[0335] In some possible implementations, before performing cyclic shifts on the m first data streams respectively, performing first data processing on the m first data streams includes: performing convolution interleaving on the m first data streams respectively.

[0336] In some possible implementations, before performing cyclic shift on the m first data streams, the method further includes: performing convolution interleaving on the m / 4 input data streams, distributing each of the convolution interleaved input data streams to obtain 4 first data streams, so as to obtain a total of m first data streams.

[0337] In some possible implementations, before performing cyclic shift on the m first data streams, the method further includes: performing convolution interleaving on the m / 8 input data streams, distributing each input data stream after convolution interleaving to obtain 8 first data streams, so as to obtain a total of m first data streams.

[0338] In a sixth aspect, an embodiment of the present application provides a data processing method, which is applied to a receiving end, and the method includes the following steps. First, the fourth data processing is performed on the received Y modulation symbol streams to obtain m fourth data streams. Among them, Y is an integer greater than or equal to 1, each fourth data stream is demodulated, the baud rate value of each modulation symbol stream is an integer multiple of the reference clock frequency value, and the Y modulation symbol streams are obtained by performing the third data processing on m third data streams, and each modulation symbol stream is modulated. The m third data streams are obtained by performing the second data processing on m second data streams, and the m second data streams are obtained by performing the first data processing on m first data streams that have been encoded by the first forward error correction FEC. m is an integer greater than 1, and each second data stream includes at least one first bit sequence, and each first bit sequence includes bits, each of the first bits in the sequence bits come from the first data stream, each of the first bit sequences bits are the added first identifier, the second data processing includes the second FEC encoding, each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, S is an integer greater than or equal to 1, is an integer greater than or equal to 1, and e is an integer greater than or equal to 1. Furthermore, codeword synchronization and / or frame synchronization is performed on each fourth data stream.

[0339] In some possible implementations, each third data stream includes at least one second bit sequence, each second bit sequence includes P+W bits, and the P bits in each second bit sequence are composed of bits are obtained through the second FEC encoding, the W bits in each second bit sequence are the second identifier, the second identifier is obtained by the first identifier through the second FEC encoding, P=N×b, W=N×e.

[0340] In some possible implementations, the baud rate value of each modulation symbol stream is an integer multiple of 156.25M.

[0341] In some possible implementations, the first identifier includes a padding bit and / or a status field.

[0342] In some possible implementations, each first data stream is also subjected to convolution interleaving, and the convolution interleaving includes delaying the input data stream according to r delay lines, where r is an integer greater than 1, and each delay line includes a different number of storage units. The delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q. Each storage unit is used to store d bits, and the bits in the input data stream are input into the r delay lines in sequence according to the sequence numbers of the r delay lines. Each delay line inputs d bits at a time and outputs d bits at a time. After convolution interleaving, the continuous r*d bits in the output data stream include d bits output by each delay line, Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1.

[0343] In some possible implementations, after convolution interleaving, every time f bits are output, the input and output switches corresponding to the convolution interleaving are located at the 0th delay line, and K×b is divisible by f.

[0344] In some possible implementations, r×d×c=K×b, where c is an integer greater than or equal to 1.

[0345] In some possible implementations,

[0346] In some possible implementations, N=148, K=140, 5032×e is divisible by b, and Divisible by 7.

[0347] In some possible implementations, b=629×e.

[0348] In some possible implementations, the first FEC encoding uses KP4 encoding, and the second FEC encoding uses Hamming (148, 140). Alternatively, the first FEC encoding uses KP4 encoding, and the second FEC encoding performs bit XOR on every two consecutive information bits in K = 140 information bits to obtain 70 bits, and performs Hamming (78, 70) encoding on the 70 bits to obtain S = 8 check bits. The codeword with a length of 148 bits obtained by the second FEC encoding includes K = 140 information bits and S = 8 check bits.

[0349] In some possible implementations, N=127, K=120, 2159×e is divisible by b, and Divisible by 3.

[0350] In some possible implementations, b=2159×e.

[0351] In some possible implementations, the first FEC encoding uses KP4 encoding, and the second FEC encoding uses Hamming (127, 120). Alternatively, the first FEC encoding uses KP4 encoding, and the second FEC encoding performs bit XOR on every two consecutive information bits in K = 120 information bits to obtain 60 bits, and performs Hamming (67, 60) encoding on the 60 bits to obtain S = 7 check bits. The codeword with a length of 127 bits obtained by the second FEC encoding includes K = 120 information bits and S = 7 check bits.

[0352] In some possible implementations, the first data processing further includes scrambling.

[0353] In some possible implementations, the third data processing further includes codeword interleaving, and t codewords are interleaved to obtain an interleaved sequence including t×N bits, wherein the i-th codeword among the t codewords contains an information sequence B of K bits. i and a check sequence P of S bits i , 0≤i≤t-1, the interleaved sequence includes a first subsequence of continuous t×K bits and a second subsequence of continuous t×S bits, the first subsequence includes B0, B1, B2, ..., B t;1 There are t information sequences in total, and the second subsequence contains P0, P1, P2, ..., P t;1 There are t check sequences in total.

[0354] In a seventh aspect, an embodiment of the present application provides a data processing device. The data processing device includes: a first data processing unit, a second data processing unit, and a third data processing unit. The first data processing unit is used to: perform first data processing on m first data streams encoded by a first forward error correction (FEC) to obtain m second data streams, where m is an integer greater than 1, and each second data stream includes at least one first bit sequence, and each first bit sequence includes bits, each of the first bits in the sequence bits come from the first data stream, each of the first bit sequences bits are added as the first identifier. The second data processing unit is used to: perform second data processing on the m second data streams to obtain m third data streams, the second data processing includes second FEC encoding, each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, S is an integer greater than or equal to 1, b is an integer greater than or equal to 1, and e is an integer greater than or equal to 1. The third data processing unit is used to: perform third data processing on the m third data streams to obtain Y modulation symbol streams, where Y is an integer greater than or equal to 1, each modulation symbol stream is modulated, and the baud rate value of each modulation symbol stream is an integer multiple of the reference clock frequency value.

[0355] In some possible implementations, each third data stream includes at least one second bit sequence, each second bit sequence includes P+W bits, and the P bits in each second bit sequence are composed of bits are obtained through the second FEC encoding, the W bits in each second bit sequence are the second identifier, the second identifier is obtained by the first identifier through the second FEC encoding, P=N×b, W=N×e.

[0356] In some possible implementations, the baud rate value of each modulation symbol stream is an integer multiple of 156.25M.

[0357] In some possible implementations, the first identifier includes a padding bit and / or a status field.

[0358] In some possible implementations, each first data stream is also subjected to convolution interleaving, and the convolution interleaving includes delaying the input data stream according to r delay lines, where r is an integer greater than 1, and each delay line includes a different number of storage units. The delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q. Each storage unit is used to store d bits, and the bits in the input data stream are input into the r delay lines in sequence according to the sequence numbers of the r delay lines. Each delay line inputs d bits at a time and outputs d bits at a time. After convolution interleaving, the continuous r*d bits in the output data stream include d bits output by each delay line, Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1.

[0359] In some possible implementations, after convolution interleaving, every time f bits are output, the input and output switches corresponding to the convolution interleaving are located at the 0th delay line, and K×b is divisible by f.

[0360] In some possible implementations, r×d×c=K×b, where c is an integer greater than or equal to 1.

[0361] In some possible implementations,

[0362] In some possible implementations, N=148, K=140, 5032×e is divisible by b, and Divisible by 7.

[0363] In some possible implementations, b=629×e.

[0364] In some possible implementations, the first FEC encoding uses KP4 encoding, and the second FEC encoding uses Hamming (148, 140). Alternatively, the first FEC encoding uses KP4 encoding, and the second FEC encoding performs bit XOR on every two consecutive information bits in K = 140 information bits to obtain 70 bits, and performs Hamming (78, 70) encoding on the 70 bits to obtain S = 8 check bits. The codeword with a length of 148 bits obtained by the second FEC encoding includes K = 140 information bits and S = 8 check bits.

[0365] In some possible implementations, N=127, K=120, 2159×e is divisible by b, and Divisible by 3.

[0366] In some possible implementations, b=2159×e.

[0367] In some possible implementations, the first FEC encoding uses KP4 encoding, and the second FEC encoding uses Hamming (127, 120). Alternatively, the first FEC encoding uses KP4 encoding, and the second FEC encoding performs bit XOR on every two consecutive information bits in K = 120 information bits to obtain 60 bits, and performs Hamming (67, 60) encoding on the 60 bits to obtain S = 7 check bits. The codeword with a length of 127 bits obtained by the second FEC encoding includes K = 120 information bits and S = 7 check bits.

[0368] In some possible implementations, the first data processing further includes scrambling.

[0369] In some possible implementations, the third data processing further includes codeword interleaving, and t codewords are interleaved to obtain an interleaved sequence including t×N bits, wherein the i-th codeword among the t codewords contains an information sequence B of K bits. i and a check sequence P of S bits i , 0≤i≤t-1, the interleaved sequence includes a first subsequence of continuous t×K bits and a second subsequence of continuous t×S bits, the first subsequence includes B0, B1, B2, ..., B t;1 There are t information sequences in total, and the second subsequence contains P0, P1, P2, ..., P t;1 There are t check sequences in total.

[0370] In some possible implementations, the baud rate of the modulation symbol stream is And the baud rate value is Wherein a is an integer greater than or equal to 1, G represents 10^9, and M represents 10^6.

[0371] In some possible implementations, N=128, K=120, and the baud rate of the modulation symbol stream is 113.4375 Gbaud.

[0372] In some possible implementations,

[0373] In some possible implementations, the third data processing unit is specifically configured to: perform channel interleaving on each group of 8 third data streams in the m third data streams to obtain one fourth data stream, so as to obtain a total of Y fourth data streams. And respectively modulate the Y fourth data streams to obtain Y modulation symbol streams.

[0374] In some possible implementations, the first identifier in each second data stream includes a length of bits of synchronization subsequence, wherein the synchronization subsequence is located in the first identifier starting from the starting position bits.

[0375] In some possible implementations, A group of 8 third data streams among the m third data streams are obtained by a group of 8 second data streams among the m second data streams through a second FEC encoding, and a fourth data stream obtained by channel interleaving from a group of 8 third data streams includes a synchronization sequence with a length of 48 bits, and the synchronization sequence with a length of 48 bits is continuous in one fourth data stream. The synchronization sequence with a length of 48 bits includes a synchronization subsequence included in each of a group of 8 second data streams, totaling 8 synchronization subsequences.

[0376] In some possible implementations, the values ​​of the 48 bits of the synchronization sequence include 0x9A, 0x4A, 0x26, 0x65, 0xB5, and 0xD9.

[0377] In some possible implementations, the synchronization subsequence 0 included in the 0th second data stream in a group of 8 second data streams is 010110;

[0378] The synchronization subsequence 1 included in the first second data stream in a group of 8 second data streams is 011010;

[0379] The synchronization subsequence 2 included in the second second data stream in a group of 8 second data streams is 100111;

[0380] The synchronization subsequence 3 included in the third second data stream in a group of 8 second data streams is 010001;

[0381] The synchronization subsequence 4 included in the fourth second data stream in a group of eight second data streams is 011010;

[0382] The synchronization subsequence 5 included in the fifth second data stream in a group of eight second data streams is 011001;

[0383] The synchronization subsequence 6 included in the sixth second data stream in a group of eight second data streams is 000110;

[0384] The synchronization subsequence 7 included in the 7th second data stream in a group of 8 second data streams is 101011.

[0385] In some possible implementations, a group of 8 third data streams among the m third data streams is obtained by a group of 8 second data streams among the m second data streams through a second FEC encoding. The 0th second data stream, the 1st second data stream, the 2nd second data stream, and the 3rd second data stream among the group of 8 second data streams each include a synchronization subsequence with a length of 8 bits. The 4th second data stream, the 5th second data stream, the 6th second data stream, and the 7th second data stream among the group of 8 second data streams each include a synchronization subsequence with a length of 4 bits, wherein the first 2 bits and the last 2 bits in the synchronization subsequence with a length of 4 bits are separated by 2 bits.

[0386] In some possible embodiments, a fourth data stream obtained by channel interleaving of a group of 8 third data streams includes a synchronization sequence with a length of 48 bits, and the synchronization sequence with a length of 48 bits includes a synchronization subsequence, each of which includes a group of 8 second data streams, for a total of 8 synchronization subsequences, and there is an interval of 8 bits between the first 24 bits and the last 24 bits in the synchronization sequence with a length of 48 bits.

[0387] In some possible implementations, the values ​​of the first 24 bits in the synchronization sequence with a length of 48 bits include 0x9A, 0x4A, and 0x26, and the values ​​of the last 24 bits in the synchronization sequence with a length of 48 bits include 0x65, 0xB5, and 0xD9.

[0388] In some possible implementations, the synchronization subsequence 0 included in the 0th second data stream in a group of 8 second data streams is 01011010;

[0389] The synchronization subsequence 1 included in the first second data stream in a group of 8 second data streams is 01101001;

[0390] The synchronization subsequence 2 included in the second second data stream in a group of 8 second data streams is 10010110;

[0391] The synchronization subsequence 3 included in the third second data stream in a group of eight second data streams is 01001011;

[0392] The synchronization subsequence 4 included in the fourth second data stream in a group of eight second data streams is 0110;

[0393] The synchronization subsequence 5 included in the fifth second data stream in a group of eight second data streams is 0110;

[0394] The synchronization subsequence 6 included in the sixth second data stream in a group of eight second data streams is 0011;

[0395] The synchronization subsequence 7 included in the seventh second data stream in a group of eight second data streams is 1001.

[0396] In some possible implementations, the first identifier in each second data stream includes a synchronization subsequence with a length of 48 bits, wherein the first 24 bits and the last 24 bits in the synchronization subsequence are spaced 8 bits apart.

[0397] In some possible implementations, the values ​​of the first 24 bits in the synchronization subsequence with a length of 48 bits include 0x9A, 0x4A, and 0x26, and the values ​​of the last 24 bits in the synchronization subsequence with a length of 48 bits include 0x65, 0xB5, and 0xD9.

[0398] In some possible implementations, N=128, K=120, and the third data processing unit is specifically configured to: obtain an inner code word with a length of 128 bits from each third data stream of each group of 8 third data streams to obtain a total of 8 inner code words. Polling obtains 2 bits from each of the 8 inner code words to obtain 1024 consecutive bits in the fourth data stream.

[0399] In some possible implementations, the first data processing unit is specifically configured to: perform cyclic shift on the m first data streams respectively.

[0400] In some possible implementations, before performing cyclic shift on the m first data streams respectively, the first data processing unit is specifically configured to: perform convolution interleaving on the m first data streams respectively.

[0401] In some possible implementations, the data processing device further includes a convolution interleaving unit and a distribution unit. Before performing cyclic shifts on the m first data streams, the convolution interleaving unit is used to perform convolution interleaving on the m / 4 input data streams. The distribution unit is used to distribute each input data stream after convolution interleaving to obtain 4 first data streams, so as to obtain a total of m first data streams.

[0402] In some possible implementations, the data processing device further includes a convolution interleaving unit and a distribution unit. Before performing cyclic shifts on the m first data streams, the convolution interleaving unit is used to perform convolution interleaving on the m / 8 input data streams respectively. The distribution unit is used to distribute each input data stream after convolution interleaving to obtain 8 first data streams, so as to obtain a total of m first data streams.

[0403] In an eighth aspect, an embodiment of the present application provides a data processing device. The data processing device includes: a data processing unit and a synchronization unit;

[0404] The data processing unit is used to: perform fourth data processing on the received Y modulation symbol streams to obtain m fourth data streams, wherein Y is an integer greater than or equal to 1, each fourth data stream is demodulated, the baud rate value of each modulation symbol stream is an integer multiple of the reference clock frequency value, the Y modulation symbol streams are obtained by performing third data processing on m third data streams, each modulation symbol stream is modulated, the m third data streams are obtained by performing second data processing on m second data streams, the m second data streams are obtained by performing first data processing on m first data streams that have been encoded by the first forward error correction FEC, m is an integer greater than 1, each second data stream includes at least one first bit sequence, and each first bit sequence includes bits, each of the first bits in the sequence bits come from the first data stream, each of the first bit sequences bits are the added first identifier, the second data processing includes the second FEC encoding, each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, S is an integer greater than or equal to 1, b is an integer greater than or equal to 1, and e is an integer greater than or equal to 1. The synchronization unit is used to perform codeword synchronization and / or frame synchronization on each fourth data stream.

[0405] In some possible implementations, each third data stream includes at least one second bit sequence, each second bit sequence includes P+W bits, and the P bits in each second bit sequence are composed of bits are obtained through the second FEC encoding, the W bits in each second bit sequence are the second identifier, the second identifier is obtained by the first identifier through the second FEC encoding, P=N×b, W=N×e.

[0406] In some possible implementations, the baud rate value of each modulation symbol stream is an integer multiple of 156.25M.

[0407] In some possible implementations, the first identifier includes a padding bit and / or a status field.

[0408] In some possible implementations, each first data stream is also subjected to convolution interleaving, and the convolution interleaving includes delaying the input data stream according to r delay lines, where r is an integer greater than 1, and each delay line includes a different number of storage units. The delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q. Each storage unit is used to store d bits, and the bits in the input data stream are input into the r delay lines in sequence according to the sequence numbers of the r delay lines. Each delay line inputs d bits at a time and outputs d bits at a time. After convolution interleaving, the continuous r*d bits in the output data stream include d bits output by each delay line, Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1.

[0409] In some possible implementations, after convolution interleaving, every time f bits are output, the input and output switches corresponding to the convolution interleaving are located at the 0th delay line, and K×b is divisible by f.

[0410] In some possible implementations, r×d×c=K×b, where c is an integer greater than or equal to 1.

[0411] In some possible implementations,

[0412] In some possible implementations, N=148, K=140, 5032×e is divisible by b, and Divisible by 7.

[0413] In some possible implementations, b=629×e.

[0414] In some possible implementations, the first FEC encoding uses KP4 encoding, and the second FEC encoding uses Hamming (148, 140). Alternatively, the first FEC encoding uses KP4 encoding, and the second FEC encoding performs bit XOR on every two consecutive information bits in K = 140 information bits to obtain 70 bits, and performs Hamming (78, 70) encoding on the 70 bits to obtain S = 8 check bits. The codeword with a length of 148 bits obtained by the second FEC encoding includes K = 140 information bits and S = 8 check bits.

[0415] In some possible implementations, N=127, K=120, 2159×e is divisible by b, and Divisible by 3.

[0416] In some possible implementations, b=2159×e.

[0417] In some possible implementations, the first FEC encoding uses KP4 encoding, and the second FEC encoding uses Hamming (127, 120). Alternatively, the first FEC encoding uses KP4 encoding, and the second FEC encoding performs bit XOR on every two consecutive information bits in K = 120 information bits to obtain 60 bits, and performs Hamming (67, 60) encoding on the 60 bits to obtain S = 7 check bits. The codeword with a length of 127 bits obtained by the second FEC encoding includes K = 120 information bits and S = 7 check bits.

[0418] In some possible implementations, the first data processing further includes scrambling.

[0419] In some possible implementations, the third data processing further includes codeword interleaving, and t codewords are interleaved to obtain an interleaved sequence including t×N bits, wherein the i-th codeword among the t codewords contains an information sequence B of K bits. i and a check sequence P of S bits i , 0≤i≤t-1, the interleaved sequence includes a first subsequence of continuous t×K bits and a second subsequence of continuous t×S bits, the first subsequence includes B0, B1, B2, ..., B t;1 There are t information sequences in total, and the second subsequence contains P0, P1, P2, ..., P t;1 There are t check sequences in total.

[0420] In the embodiment of the present application, an alignment marker is periodically inserted into the data stream after cascade FEC encoding. Specifically, P bits are periodically obtained from the data stream after cascade FEC encoding, and an alignment marker of W bits is inserted, so that there are alignment markers of W bits in length in every P+W bits in the data stream. By selecting positive integers P and W, the baud rate value of the modulated symbol data stream can be an integer multiple of the Ethernet common reference clock frequency, which simplifies the clock extraction and synchronization method of the receiving end, can perform fast phase locking, and has low PLL complexity and small jitter. In addition, P is required to be a multiple of the inner code length N, that is, P = N×b. After the receiving end performs frame synchronization on the received data (that is, frame synchronization of P+W bits, also known as marker locking operation), the inner code codeword synchronization can be guaranteed, which simplifies the operations of frame synchronization and inner codeword synchronization at the receiving end, and the implementation complexity is low. In addition, the convolution interleaver and convolution deinterleaver output f bits each time, and their input and output switch positions are located at the top, and K×b can be divided by f, so that the convolution deinterleaver synchronization can be guaranteed during frame synchronization.

[0421] The present application also provides another embodiment, in which the data stream after the outer code is periodically inserted into the first identifier and then the inner code is encoded. Specifically, the periodic acquisition of the first identifier from the data stream after the outer code is encoded bits and insert The first identifier of the bit length makes each bits exist The first identifier of the length of bits. This application selects a positive integer and The baud rate of the modulated symbol data stream can be made an integer multiple of the reference clock frequency, making it easier to extract and synchronize the clock at the receiving end, allowing for fast phase locking, low PLL complexity and small jitter. and can be divided by the inner code information length K, so that the frame synchronization and code word synchronization operations of the receiving end processing module for receiving data have lower hardware implementation complexity. At the same time, further select a positive integer The synchronization of the inner code word can ensure the synchronization of the cascade deinterleaving. That is to say, the data processing method provided by the present application material makes the implementation complexity of the receiving end processing module in performing frame synchronization, inner code word synchronization and cascade deinterleaving synchronization low. BRIEF DESCRIPTION OF THE DRAWINGS

[0422] Figure 1 A schematic diagram of a communication system used in an embodiment of the present application;

[0423] Figure 2(a) shows Figure 1 A schematic diagram of a data transmission process in the communication system shown;

[0424] FIG2( b ) is a schematic diagram of another communication system used in an embodiment of the present application;

[0425] Figure 3 A flowchart of a data processing method provided in an embodiment of the present application;

[0426] FIG4( a) is a schematic diagram of a first structure of a convolutional interleaver in an embodiment of the present application;

[0427] FIG4( b ) is a schematic diagram of a second structure of a convolutional interleaver in an embodiment of the present application;

[0428] FIG5( a) is a schematic diagram of a structure of a third data stream in an embodiment of the present application;

[0429] FIG5( b ) is another schematic diagram of the structure of the third data stream in an embodiment of the present application;

[0430] Figure 6Another flowchart of the data processing method provided in the embodiment of the present application;

[0431] Figure 7 A schematic diagram of another flow chart of the data processing method provided in the embodiment of the present application;

[0432] Figure 8 A schematic diagram of the structure of the second data stream in an embodiment of the present application;

[0433] Fig. 9 This is a structural diagram of the third data stream in an embodiment of the present application;

[0434] Fig.10 This is a schematic diagram of an implementation method of internal code encoding in an embodiment of the present application;

[0435] Fig.11 This is a schematic diagram of another implementation of the internal code encoding in the embodiment of the present application;

[0436] Fig.12 A schematic diagram of the structure of a codeword;

[0437] Fig.13 It is a schematic diagram of the structure of another codeword;

[0438] Fig.14 A schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0439] Fig.15 A schematic diagram of the structure of an alignment mark in an embodiment of the present application;

[0440] Fig.16 A schematic diagram of a computer architecture for synchronization;

[0441] Fig.17 Another structural schematic diagram of an alignment mark in an embodiment of the present application;

[0442] Fig.18 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0443] Fig.19 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0444] Fig. 20 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0445] Fig.21 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0446] FIG22( a ) is a schematic diagram of another implementation method of data processing in an embodiment of the present application;

[0447] FIG22( b ) is a schematic diagram of another implementation method of data processing in an embodiment of the present application;

[0448] FIG22( c ) is a schematic diagram of another implementation method of data processing in an embodiment of the present application;

[0449] FIG22( d ) is a schematic diagram of an implementation method of generating an alignment mark in an embodiment of the present application;

[0450] Fig.23 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0451] Fig.24 A schematic diagram of the structure of the first identifier in the embodiment of the present application;

[0452] Fig.25 A schematic diagram of a structure of a synchronization sequence after channel interleaving in an embodiment of the present application;

[0453] Fig.26 Another structural diagram of the first identifier in the embodiment of the present application;

[0454] Fig. 27 Another structural schematic diagram of a synchronization sequence after channel interleaving in an embodiment of the present application;

[0455] Fig.28 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0456] Fig.29 Another structural diagram of the first identifier in the embodiment of the present application;

[0457] Fig.30 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0458] Fig.31 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0459] Fig.32 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0460] Fig.33 This is another schematic diagram of an implementation method of data processing in an embodiment of the present application;

[0461] Fig.34 A schematic diagram of a structure of a data processing device applied to a sending end in an embodiment of the present application;

[0462] Fig.35 A schematic diagram of a structure of a data processing device applied to a receiving end in an embodiment of the present application;

[0463] Fig.36 Another structural diagram of the data processing device in the embodiment of the present application. DETAILED DESCRIPTION

[0464] The embodiment of the present application provides a data processing method and a data processing device, which, on the one hand, simplifies the way in which the receiving end performs clock extraction and synchronization, can perform fast phase locking, and has low PLL complexity and small jitter. On the other hand, it simplifies the operations such as frame synchronization and inner code word synchronization at the receiving end, and has low implementation complexity. It should be noted that the terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish similar objects, rather than to limit a specific order or sequence. It should be understood that the above terms can be interchanged where appropriate, so that the embodiments described in this application can be implemented in an order other than the content described in this application. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0465] Figure 1 Schematic diagram of a communication system used in the embodiment of the present application. Figure 1 As shown, the communication system includes a transmitting device 01, a transmitting processing module 02, a channel transmission medium 03, a receiving processing module 04 and a receiving device 05. Taking the communication system as a data center network as an example, the transmitting device 01 and the receiving device 05 can be devices such as switches or routers, and the transmitting device 01 is also called a client-side chip (host chip) located at the transmitting end, and the receiving device 05 is also called a client-side chip located at the receiving end, and the channel transmission medium 03 can be an optical fiber. The client-side chip is sometimes also called a client-side device (host device). Among them, the transmitting device 01 and the transmitting processing module 02 can be connected through an attachment unit interface (AUI), and the receiving device 05 and the receiving processing module 04 can be connected through the AUI. The transmitting processing module 02 and the receiving processing module 04 can be optical modules (optical modules), electrical modules, connectors (connectors) or other modules that process data during data transmission. For example, the processing module can be an 800LR module (800LR module, a coherent optical module). Furthermore, the transmitting device 01, the transmitting processing module 02, the channel transmission medium 03, the receiving processing module 04 and the receiving device 05 in the communication system can support bidirectional transmission or unidirectional transmission, which is not specifically limited here.

[0466] Figure 2(a) shows Figure 1 A schematic diagram of a data transmission process in the communication system shown. As shown in FIG2(a), in the process of transmitting data from the transmitting device 01 to the receiving device 05, the transmitting device 01 is used to perform outer code encoding on the data, and then transmit the outer code encoded data to the transmitting processing module 02. The transmitting processing module 02 is used to perform inner code encoding on the outer code encoded data to obtain outer code encoded and inner code encoded data, and transmit the outer code encoded and inner code encoded data to the channel transmission medium 03. The channel transmission medium 03 is used to transmit the outer code encoded and inner code encoded data to the receiving processing module 04. The receiving processing module 04 is used to perform inner code decoding on the outer code encoded and inner code encoded data, and transmit the inner code decoded data to the receiving device 05. The receiving device 05 is used to perform outer code decoding on the inner code decoded data.

[0467] It should be understood that the "inner" in the inner code and the "outer" in the outer code are distinguished only based on the distance of the execution subject operating the data relative to the channel transmission medium 03. The execution subject operating the inner code is closer to the channel transmission medium, and the execution subject operating the outer code is farther away from the channel transmission medium. In the embodiment of the present application, after the data is sent from the transmitting device 01, it is transmitted to the channel transmission medium 03 through the transmitting end processing module 02, and then transmitted from the channel transmission medium 03 to the receiving end device 05 through the receiving end processing module 04. The data encoded by the transmitting device 01 is farther from the channel transmission medium 03 than the data encoded by the transmitting end processing module 02, and the data decoded by the receiving end device 05 is farther from the channel transmission medium 03 than the data decoded by the receiving end processing module 04. Therefore, the data encoded by the transmitting end device 01 is called the data encoded by the outer code, the data encoded by the transmitting end processing module 02 is called the data encoded by the inner code, the data decoded by the receiving end device 05 is called the data decoded by the outer code, and the data decoded by the receiving end processing module 04 is called the data decoded by the inner code. In a possible implementation, the above inner code encoding and outer code encoding are both in the form of FEC encoding, thereby forming a cascade FEC transmission scheme. For example, the transmitting device 01 can use RS code for outer code encoding, and the transmitting processing module 02 can use Hamming code for inner code encoding. For another example, the transmitting device 01 can use RS code for outer code encoding, and the transmitting processing module 02 can use Bose-Chaudhuri-Hocquenghem (BCH) code for inner code encoding. The BCH code that corrects a single error is equivalent to the Hamming code. For another example, the transmitting device 01 can use RS code for outer code encoding, and the transmitting processing module 02 can use polarization code for inner code encoding.

[0468] FIG2(b) is a schematic diagram of another communication system used in an embodiment of the present application. As shown in FIG2(b), the communication system includes a transmitting device 01, a channel transmission medium 03, and a receiving device 05. The transmitting device 01 performs outer code encoding and inner code encoding on the data, and the data after outer code encoding and inner code encoding is sent to the transmission medium 03, and the receiving device 05 performs inner code decoding and outer code decoding on the data received from the transmission medium 03. Taking the communication system as a data center network as an example, the transmitting device 01 and the receiving device 05 can be devices such as switches or routers, and the transmitting device 01 is also called a client-side chip (host chip) located at the transmitting end, and the receiving device 05 is also called a client-side chip located at the receiving end, and the channel transmission medium 03 can be an optical fiber. The client-side chip is sometimes also called a client-side device (host device). The transmitting device 01, the channel transmission medium 03, and the receiving device 05 in the communication system can all support bidirectional transmission or unidirectional transmission, which is not specifically limited here.

[0469] It should be noted that the above content is an illustrative description of the application scenarios of the data processing method provided in the embodiments of the present application, and does not constitute a limitation on the application scenarios of the data processing method. A person of ordinary skill in the art can know that as business needs change, the application scenarios can be adjusted according to application needs, and the embodiments of the present application do not list them one by one.

[0470] Figure 3 A flow chart of a data processing method provided in an embodiment of the present application. It should be understood that the data processing method is applied to the sending end, for example, it can be implemented by the sending end processing module 02 shown in the above FIG2 (a).

[0471] 301. Perform first data processing on multiple first data streams to obtain m second data streams.

[0472] In this embodiment, the multiple first data streams are all data streams that have been encoded by the first FEC, that is, the data streams that have been encoded by the outer code as described above. The above-mentioned outer code encoding can use RS code, and the data stream after outer code encoding can include multiple RS code words. In practical applications, other encoding methods can also be used for outer code encoding. For the convenience of description, the following uniformly uses RS code words to represent the code words generated after outer code encoding. It should be noted that the outer code length value in this application is counted in units of outer code symbols, where the outer code symbol can include one or more bits. For example, the outer code is the KP4RS (544, 514) code used, the code length is 544 symbols, and one outer code RS symbol contains 10 bits.

[0473] It should be understood that the operation of the first data processing includes but is not limited to performing a second FEC encoding on each first data stream, and the second FEC encoding can be understood as the inner code encoding introduced above. That is to say, the m second data streams are all subjected to the second FEC encoding, and m is an integer greater than 1. Typically, m takes a value of 4, 8, 16, 32, or 64. As an example, an inner code encoder is used to perform inner code encoding on each K information bit in each first data stream, that is, after adding S check bits, a total of N bits of inner code codewords are obtained, that is, N = K + S, where K ≥ 1, S ≥ 1. In some scenarios, K is a multiple of 10, and these K bits correspond to K / 10 outer code symbols, and the corresponding K / 10 outer code symbols come from K / 10 different outer code codewords.

[0474] In some possible implementations, the operation of the first data processing may also include at least one of alignment lock, lane de-skew, lane reorder, concatenated interleaving, channel interleave, and scramble. For example, before each second data stream undergoes the second FEC encoding, it also undergoes at least one of alignment lock, lane de-skew, lane reorder, and concatenated interleaving. For another example, after each second data stream undergoes the second FEC encoding, it also undergoes at least one of channel interleave and scramble.

[0475] It should be noted that each second data stream is also subjected to channel interleaving after the second FEC encoding, and the channel interleaving is performed from the input n HM After the second FEC encoding (inner code encoding), the data streams each obtain an inner code word of length N bits, a total of n HM The inner codewords include n HM ×N bits, and poll (Round-Robin) to obtain 2 bits from each inner code word as the bits on the second data stream, so as to obtain n consecutive bits on the second data stream. HM ×N bits. That is, the channel interleaving converts every n HM The second FEC coded (inner code coded) data stream is processed to obtain a second data stream. The channel interleaving is also called n HM -Inter-path code word interleaving (n HM-wayinnercodewordinterleaver), also known as inner codeword interleaver.

[0476] It should be noted that, considering the AWGN channel, the error bits of the inner code decoding input obey random distribution, while the error bits of the decoding output no longer obey random distribution. Adding a cascade interleaver between the inner code and the outer code can make the performance of the entire cascade FEC scheme better. Among them, the operation of cascade interleaving usually includes convolution interleaving to achieve lower latency. A specific implementation of cascade interleaving includes channel permutation and convolution interleaving, wherein channel permutation performs data permutation on the input g data streams to obtain g data permuted data streams, and then performs convolution interleaving to obtain g convolution interleaved data streams respectively. Another specific implementation of cascade interleaving includes channel multiplexing and convolution interleaving, wherein channel multiplexing performs symbol multiplexing (symbol mux) on the input g data streams to obtain g1 symbol multiplexed data streams, wherein g is divisible by g1, and then the above g1 data streams are convolution interleaved to obtain g1 convolution interleaved data streams, and at this time g1 is not equal to g. That is to say, the number of the first data stream and the second data stream obtained after the first data processing may be the same or different, which depends on the actual application scenario and is not limited here.

[0477] The following is an introduction to possible implementations of the above convolution interleaving.

[0478] A convolution interleaver for performing convolution interleaving includes r delay lines, each delay line includes a different number of storage units, the delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q, where r is an integer greater than 1. Each storage unit is used to store d bits. The bits in each channel data stream are sequentially input to the r delay lines according to the sequence numbers of the r delay lines, and each delay line inputs d bits at a time and outputs d bits at a time. The continuous r*d bits in the data stream output after convolution interleaving include d bits output by each delay line, where Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1. For example, r delay lines include 0 storage units, Q storage units, 2Q storage units, ..., (r-1)Q storage units, and each storage unit is used to store d bits. Then, the r delay lines correspond to r delay values, and the delay values ​​include 0 bits, Q×d bits, 2Q×d bits, ..., (r-1)Q×d bits. The more bits included in the delay value of the delay line, the longer the delay (also called time delay) of the delay line to the data stream. It should be understood that when the delay line does not include a storage unit, the delay of the delay line is 0 bits, that is, there is no delay in transmission.

[0479] The specific structure of the convolution interleaver is introduced below in conjunction with the accompanying drawings. Figure 4(a) is a schematic diagram of the first structure of the convolution interleaver in an embodiment of the present application. As shown in Figure 4(a), the number of storage units in the r delay lines decreases in sequence according to the sequence numbers of the r delay lines. That is, delay line 0 has (r-1)Q storage units, each delay line decreases in sequence by Q storage units, and delay line r-1 has 0 storage units. Figure 4(b) is a schematic diagram of the second structure of the convolution interleaver in an embodiment of the present application. As shown in Figure 4(b), the number of storage units in the r delay lines increases in sequence according to the sequence numbers of the r delay lines. That is, delay line 0 has 0 storage units, each delay line increases in sequence by Q storage units, and delay line r-1 has (r-1)Q storage units.

[0480] It should be noted that at the same moment, the switch for the input and output of the convolution interleaver is located on the same delay line. After the current delay line inputs d bits at a time and outputs d bits, the switch is switched to the next delay line to ensure that the bits in each channel data stream are input to the r delay lines in sequence according to the sequence of the r delay lines, and the continuous r*d bits in the first data stream include the d bits output by each delay line. The specific data read and write operations are as follows: read d bits from the storage unit closest to the output port of the current delay line. Transfer the d bits stored in each storage unit in the current delay line to the next storage unit. Then write d bits to the storage unit closest to the input port in the current delay line. After that, switch to the next delay line and repeat the above operations, and so on.

[0481] It should be understood that when the same parameters r, Q and d are used, the convolution interleaving process of FIG4(a) and the convolution interleaving process of FIG4(b) are the inverse operations of each other. That is, when the transmitting end processing module adopts the convolution interleaving structure shown in FIG4(a), the convolution deinterleaving corresponding to the receiving end processing module adopts the structure shown in FIG4(b). Similarly, when the transmitting end processing module adopts the convolution interleaving structure shown in FIG4(b), the convolution deinterleaving corresponding to the receiving end processing module adopts the structure shown in FIG4(a).

[0482] It should be noted that, in some specific applications, the inner code encoder also performs a cyclic shift operation before performing inner code encoding on each K information bits in each first data stream. The cyclic shift operation cyclically shifts each K information bits to the left or to the right to improve the overall cascade code's anti-burst performance.

[0483] 302. Perform second data processing on the m second data streams respectively to obtain m third data streams.

[0484] In this embodiment, an alignment marker is periodically inserted into each second data stream to obtain a third data stream. Specifically, P bits are periodically obtained from each second data stream, and an alignment marker with a length of W bits is inserted, so that there is an alignment marker with a length of W bits in every P+W bits in each third data stream. It should be understood that the present application does not limit the specific form of the alignment marker. For example, the alignment marker added here can be the same as the alignment marker used by the above-mentioned alignment lock. For another example, the alignment marker added here can be a part of the alignment marker used by the above-mentioned alignment lock. It should be noted that if the alignment marker added here includes a part of the alignment marker used by the above-mentioned alignment lock, the operation of the first data processing generally includes scrambling.

[0485] Figure 5(a) is a structural diagram of the third data stream in an embodiment of the present application. As shown in Figure 5(a), the third data stream includes at least one bit sequence, each bit sequence includes P+W bits, the P bits in each bit sequence come from the second data stream, and the W bits in each bit sequence are added alignment markers. It should be noted that each of the above P+W bits can be called a frame, wherein the alignment marker of the W bits is usually located at the front W consecutive bits of the frame. In some specific application scenarios, the alignment marker of the above W bits is also called a frame header, and may also be called a frame alignment signal (frame alignment signal, FAS), or may be called other names. It should be noted that the alignment marker may contain bits with multiple functions, that is, only some of the W bits are used for synchronization of the receiving end.

[0486] It should be noted that, among the P+W bits of each frame, the alignment marker of the W bits may be located at the first W consecutive bits of the frame, or the alignment marker of the W bits may be located at the last W consecutive bits of the frame.

[0487] Figure 5(b) is another structural diagram of the third data stream in an embodiment of the present application. As shown in Figure 5(b), the alignment identifier includes a pad bit and / or a status field. For example, W0 bits of the W bits are used for receiving end synchronization, and W1 bits are pad bits (Padbit), and the pad bits can be preset bits, such as W1 bits are all 0, or W1 bits are random bits, where W0+W1≤W. For another example, W0 bits of the W bits are used for receiving end synchronization, W1 bits are pad bits (Padbit) reserved for future development or innovation, and W2 bits are status fields (status field) used to indicate the status of FEC, where W0+W1+W2≤W.

[0488] In other scenarios, the W-bit alignment marker may not be arranged continuously. For example, the alignment marker may be split into multiple sub-marker blocks distributed in P+W bits. Specifically, the W-bit alignment marker is divided into h sub-marker blocks distributed in P+W bits. The lengths of the h sub-marker blocks are represented by W0, W1, ..., W respectively. h;1 If they are expressed as W0+W1+…+W h;1 = W. There is no specific restriction on the position of the W-bit alignment marker in a frame of P+W bits.

[0489] 303. Perform third data processing on the m third data streams to obtain Y modulation symbol streams.

[0490] In this embodiment, after performing third data processing including modulation on m third data streams, Y modulation symbol streams are obtained, where Y is an integer greater than or equal to 1.

[0491] It should be noted that, by selecting positive integers P and W, the present application can make the baud rate value of the modulation symbol data stream an integer multiple of the reference clock frequency (reference clock), so that the implementation of clock extraction and clock synchronization at the receiving end is simpler, and fast phase locking can be performed, and the PLL complexity is low and the jitter is small. It should be understood that the present application does not limit the specific value of the reference clock frequency, for example, it can be the Ethernet common reference clock frequency (Ethernet common reference clock). As an example, the baud rate value of the modulation symbol data stream is an integer multiple of 156.25M. It should also be understood that in practical applications, a certain error range can also be accepted, for example, the baud rate value of the modulation symbol data stream is an integer multiple of 156.25M ±V (ppm), where V can be 20, 50 or 100.

[0492] Further selecting a positive integer P can enable the receiving end processing module to perform frame synchronization of the received data (i.e., frame synchronization of P+W bits, also known as identification locking operation), and on the basis of achieving frame synchronization, the synchronization of the inner code word and the synchronization of the cascade deinterleaving can be guaranteed. In other words, the data processing method provided by the present application material enables the receiving end processing module to achieve the synchronization of the inner code word and the synchronization of the cascade deinterleaving without designing other operations after the frame synchronization operation, and the synchronization of the inner code word and the synchronization of the cascade deinterleaving can still be achieved, which is simple to implement. The value requirements of P and W are introduced in detail below.

[0493] Considering the 800GbE scenario, the transmitting device performs KP4RS (544,514) outer code encoding on the 800GbE service data stream to be transmitted, obtains a data stream with a total rate of 850Gbps, and sends it to the transmitting processing module through the connection unit interface 800GAUI after PMA processing. The transmitting processing module performs first data processing including inner code encoding on multiple first data streams to obtain m second data streams, whose total rate is Insert the alignment marks periodically into the m second data streams respectively, that is, after the second data processing, m third data streams are obtained, and the total rate is After the third data stream is processed by the third data including PAM4 modulation, 4 modulation symbol streams are obtained, and the baud rate is Here baud represents the modulation symbol rate transmitted per second.

[0494] It should be noted that for the 1.6TbE scenario, the transmitting device performs KP4RS (544,514) outer code encoding on the 1.6TbE service data stream to be transmitted to obtain a data stream with a total rate of 1.7Tbps, and after PMA processing, sends it to the transmitting processing module through the connection unit interface AUI. After the first data processing, the second data processing and the third data processing, the transmitting processing module obtains 8 PAM4 modulation symbol streams with a baud rate of It should be noted that when the modulation in the third data stream processing is not PAM4 modulation, for example, PAM8 modulation is used, in this case, 8 PAM8 modulation symbol streams are obtained, and the baud rate is

[0495] Assuming the reference clock frequency is φMHz, the following describes the 800GBE scenario as an example. The baud rate of the PAM4 modulation symbol stream is an integer multiple of the typical reference clock frequency of Ethernet. Where N is the length of the inner code, K is the information bit length of the inner code, and a is a positive integer. G represents 10^9, and M represents 10^6. At this time, the implementation of clock extraction and clock synchronization at the receiving end is simple, and fast phase locking can be performed, with low PLL complexity and small jitter. A typical Ethernet reference clock frequency is 156.25MHz. In some 800GbE scenarios, considering the 112.5G baud rate, there is

[0496] It should be noted that the parameter combination N, K, P, and W used in the above 800GbE scenario can be used in higher-speed scenarios, such as 1.6TbE. For example, when 1.6TbE uses PAM4 modulation, The integer used in 1.6TbE is twice the integer a in the 800GbE scenario. In some 1.6TbE scenarios, consider the 225G baud rate.

[0497] Furthermore, when P is a multiple of the inner code length N, that is, P = N × b, where b is a positive integer. After the receiving end processing module performs frame synchronization on the received data (that is, frame synchronization of P + W bits, also known as the identifier locking operation), the inner code codeword synchronization can be guaranteed. In other words, the receiving end processing module can determine the boundary (boundary) of the frame according to the alignment identifier, thereby completing the frame synchronization, and then because P is a multiple of the inner code length N, the boundary (boundary) of the inner code codeword can be obtained after completing the frame synchronization, thereby completing the inner code codeword synchronization. In some 800GbE scenarios using PAM4 modulation and 112.5G baud rate, or 1.6TbE scenarios considering 225G baud rate, there are Combined with P=N×b, we have

[0498] Furthermore, for the transmitting end processing module using cascade interleaving including convolution interleaving, in order to ensure the synchronization of convolution deinterleaving during frame synchronization, the receiving end processing module should satisfy that the starting position of each frame (W+P bits) corresponds to the input and output switches of the convolution deinterleaver located at the starting position of the switch, usually the topmost positions, such as the position of delay line 0 shown in Figures 4(a) and 4(b). More specifically, when the convolution interleaver and the convolution deinterleaver output f bits each, the input and output switch positions are located at the topmost position, and K×b can be divided by f, so that the synchronization of the convolution deinterleaver can be ensured during frame synchronization. A specific method is that r*d*c=K×b, where r is the number of delay lines of the convolution interleaver and the convolution deinterleaver, d is the number of bits stored in the storage unit in the convolution interleaver and the convolution deinterleaver, and c is a positive integer.

[0499] In this way, based on the improvement of the transmitting end processing module in the present application, as long as the receiving end processing module realizes the frame synchronization of the received data according to the alignment identifier added by the transmitting end processing module, it is equivalent to realizing the inner code codeword synchronization and the convolutional deinterleaving synchronization at the same time, which simplifies the operations such as the receiving end frame synchronization, inner code codeword synchronization, and cascade interleaving synchronization, and the implementation complexity is relatively low.

[0500] Figure 6 Another flow chart of the data processing method provided in the embodiment of the present application. It should be understood that the data processing method is applied to the receiving end, for example, it can be implemented by the receiving end processing module 04 shown in the above FIG2 (a).

[0501] 601. Perform fourth data processing on Y received modulation symbol streams to obtain m fourth data streams.

[0502] It should be understood that the Y modulation symbol streams come from the transmitting end processing module 02. For the characteristics and generation method of the modulation symbol streams, please refer to the above Figure 3 The receiving end processing module 04 performs fourth data processing including demodulation on the Y modulation symbol streams to obtain m fourth data streams, wherein the fourth data processing performed by the receiving end processing module 04 is the inverse operation of the third data processing performed by the transmitting end processing module 02.

[0503] 602. Perform frame synchronization on each fourth data stream according to an alignment flag in each fourth data stream.

[0504] The receiving end processing module 04 can lock the identifier of each fourth data stream according to the alignment identifier added by the transmitting end processing module 02 to determine the boundary of each frame (P+W bits) in the fourth data stream, thereby achieving frame synchronization.

[0505] It should be understood that after completing frame synchronization, the receiving end processing module 04 will also perform fifth data processing on the m fourth data streams, wherein the fifth data processing can be understood as the inverse operation of the first data processing performed by the transmitting end processing module 02. For example, the fifth data processing includes but is not limited to inner code decoding and cascade deinterleaving, wherein cascade deinterleaving includes convolutional deinterleaving, which will not be described one by one here.

[0506] The following uses a specific application scenario as an example to introduce the operations of the sending end processing module 02 and the receiving end processing module 04.

[0507] The transmitting end processing module 02 performs a first data processing including cascade interleaving and inner code encoding on the first data stream after outer code encoding to obtain m second data streams, wherein the cascade interleaving includes convolution interleaving. Then, the m second data streams are respectively inserted with alignment marks of W bits with a period of P bits to obtain P+W bits, that is, a second data processing is performed to obtain m third data streams. After the third data stream undergoes a third data processing including PAM4 modulation, Y modulation symbol streams are obtained, where Y is a positive integer. For the 800GbE business scenario, Y=4, and for the 1.6TbE business scenario, Y=8. The present application material describes the data processing method using the 800GbE business scenario as an example, which can be simply extended to the 1.6TbE business scenario. The specific implementation method is known to those of ordinary skill in the art and will not be repeated here.

[0508] The receiving end processing module 04 performs the fourth data processing on the received Y modulation symbol streams to obtain m fourth data streams, wherein the fourth data processing is the inverse operation of the third data processing and includes PAM4 demodulation. Then, each fourth data stream is identified and locked according to the alignment mark of W bits inserted by the transmitting end processing module 02 to obtain the frame boundary of P+W bits in the fourth data stream, that is, frame synchronization. Subsequently, the m fourth data streams are subjected to the fifth data processing, which includes inner code decoding and cascade deinterleaving, wherein cascade deinterleaving includes convolution deinterleaving. It should be understood that the receiving end processing module 04 can also identify and lock each received modulation symbol stream according to the alignment mark of W bits inserted by the transmitting end processing module 02 and the characteristics of the third data processing to further achieve frame synchronization.

[0509] It should be noted that before performing inner code decoding, the receiving end processing module 04 needs to determine the inner code codeword boundary, which is also called the need to perform inner code codeword synchronization. It should also be noted that before performing convolutional deinterleaving, the receiving end processing module 04 needs to determine the position of the input and output switches in the convolutional deinterleaving, which is also called the need to perform convolutional deinterleaving synchronization. Based on the above introduction, as long as the receiving end processing module 04 realizes the frame synchronization of the received data according to the alignment mark added by the transmitting end processing module 02, it is equivalent to realizing the inner code codeword synchronization and convolutional deinterleaving synchronization at the same time, and there is no need to design other operations to perform the synchronization of the inner code codeword and the synchronization of the cascade deinterleaving, which simplifies the receiving end to perform the operations of receiving end frame synchronization, inner code codeword synchronization, convolutional deinterleaving, etc., and the implementation complexity is low.

[0510] Several embodiments are provided below based on different inner code encoding methods to introduce possible values ​​of P and W.

[0511] Embodiment 1: The inner code is encoded using Hamming (128, 120).

[0512] Consider a block code with an inner code length of K = 120 bits and a codeword length of N = 128 bits, such as Hamming (128, 120). The baud rate of the PAM4 modulation symbol stream is Assuming the above baud rate value It is an integer multiple of the typical Ethernet reference clock frequency of 156.25MHz, that is, Where a is a positive integer, G represents 10^9, and M represents 10^6. The clock extraction and clock synchronization at the receiving end are simple to implement, and fast phase locking can be performed, with low PLL complexity and small jitter.

[0513] When P is a multiple of the inner code length N, that is, P = 128 × b, the receiving end processing module performs frame synchronization of the received data (that is, frame synchronization of P + W bits, also known as the identification locking operation), which can ensure the synchronization of the inner code word, that is, the boundary of the inner code word can be obtained, where b is a positive integer. At this time, The positive integer 17×W is divisible by the positive integer b, and the positive integer Divisible by 3.

[0514] Considering some commonly used alignment mark bit lengths W of 48, 56, 64, 120, N = 128, the corresponding optional positive integers a, b, P combination and the corresponding baud rate are shown in Table 1 below:

[0515] Table 1

[0516]

[0517]

[0518] For higher baud rates, the power consumption of optical modules is usually higher. Considering baud rates lower than 114GBaud, the optimal positive integer a, b, P combinations and their corresponding baud rates are shown in Table 2 below:

[0519] Table 2

[0520]

[0521]

[0522] The above inner code information length is K=120 bits, and one RS symbol of the outer code KP4 contains 10 bits. For the convolution interleaver between the inner code encoding and the outer code encoding, there is a convolution interleaver whose input and output switch positions are located at the top for every 120 bits it outputs. For example, the number of delay lines of the convolution interleaver is r=3, and each storage unit of the convolution interleaver stores d=40 bits. For another example, the number of delay lines of the convolution interleaver is r=6, and each storage unit of the convolution interleaver stores d=20 bits. At this time, the receiving end processing module performs frame synchronization of the received data (i.e., frame synchronization of P+W bits, also known as identification locking operation), which can ensure the synchronization of the inner code codeword, that is, obtain the boundary of the inner code codeword; and it can also ensure the synchronization of convolution deinterleaving, that is, obtain the position of the input and output switches of convolution deinterleaving, so that the receiving end processing module is simple to implement.

[0523] It should be noted that the above embodiment considers the 800GbE scenario, which can be simply extended to the 1.6TbE scenario; for example, the parameter combination W, P, and b in Table 1 can be directly used in the 1.6TbE scenario. For example, the 1.6TbE scenario still uses PAM4 modulation, and the baud rate used is twice the baud rate in the 800GbE scenario.

[0524] Embodiment 2: Inner code encoding adopts Hamming (170,160).

[0525] Consider a block code with an inner code length of K = 160 bits and a codeword length of N = 170 bits, such as Hamming (170, 160). The baud rate of the PAM4 modulation symbol stream is Assuming the above baud rate value It is an integer multiple of the typical Ethernet reference clock frequency of 156.25MHz, that is, Where a is a positive integer, G represents 10^9, and M represents 10^6. The clock extraction and clock synchronization at the receiving end are simple to implement, and fast phase locking can be performed, with low PLL complexity and small jitter.

[0526] When P is a multiple of the inner code length N, that is, P = 170 × b, the receiving end processing module performs frame synchronization of the received data (that is, frame synchronization of P + W bits, also known as the identification locking operation), which can ensure the synchronization of the inner code word, and also obtain the boundary of the inner code word, where b is a positive integer. At this time, The positive integer 17×W is divisible by the positive integer b, and the positive integer Divisible by 4.

[0527] Considering some commonly used alignment mark bit lengths W of 48, 56, 64, 120, N = 170, the corresponding optional positive integers a, b, P combination and the corresponding baud rate are shown in Table 3 below:

[0528] Table 3

[0529]

[0530]

[0531] For higher baud rates, the power consumption of optical modules is usually higher. Considering baud rates lower than 114GBaud, the optimal positive integer a, b, P combinations and their corresponding baud rates are shown in Table 4 below:

[0532] Table 4

[0533]

[0534] The above inner code information length is K=160 bits, and one RS symbol of the outer code KP4 contains 10 bits. For the convolution interleaver between the inner code and the outer code, there is a convolution interleaver that outputs 160 bits each, and its input and output switch positions are located at the top, such as the number of delay lines of the convolution interleaver r=4, and each storage unit of the convolution interleaver stores d=40 bits. For example, the number of delay lines of the convolution interleaver r=8, and each storage unit of the convolution interleaver stores d=20 bits. At this time, the receiving end processing module performs frame synchronization of the received data (i.e., frame synchronization of P+W bits, also known as identification locking operation), which can ensure the synchronization of the inner code codeword, that is, obtain the boundary of the inner code codeword; and it can also ensure the synchronization of convolution deinterleaving, that is, obtain the position of the input and output switches of convolution deinterleaving, so that the receiving end processing module is simple to implement.

[0535] It should be noted that the above embodiment considers the 800GbE scenario, which can be simply extended to the 1.6TbE scenario; for example, the parameter combination W, P, b in Table 3 can be directly used in the 1.6TbE scenario. For example, the 1.6TbE scenario still uses PAM4 modulation, and the baud rate used is twice the baud rate in the 800GbE scenario.

[0536] Embodiment 3: Inner code encoding adopts Hamming (144,136).

[0537] Consider a block code with an inner code length of K = 136 bits and a codeword length of N = 144 bits, such as Hamming (144, 136). The baud rate of the PAM4 modulation symbol stream is Assuming the above baud rate value It is an integer multiple of the typical Ethernet reference clock frequency of 156.25MHz, that is, Where a is a positive integer, G represents 10^9, and M represents 10^6. The clock extraction and clock synchronization at the receiving end are simple to implement, and fast phase locking can be performed, with low PLL complexity and small jitter.

[0538] When P is a multiple of the inner code length N, that is, P = 144 × b, the receiving end processing module performs frame synchronization of the received data (that is, frame synchronization of P + W bits, also known as the identification locking operation), which can ensure the synchronization of the inner code word, and also obtain the boundary of the inner code word, where b is a positive integer. At this time, The positive integer 5×W is divisible by the positive integer b.

[0539] Considering some commonly used alignment mark bit lengths W of 48, 56, 64, 120, N = 144, the corresponding optional positive integers a, b, P combination and the corresponding baud rate are shown in Table 5 below:

[0540] Table 5

[0541]

[0542]

[0543]

[0544] For higher baud rates, the power consumption of optical modules is usually higher. Considering baud rates lower than 114GBaud, the optimal positive integer a, b, P combinations and their corresponding baud rates are shown in Table 6 below:

[0545] Table 6

[0546]

[0547]

[0548] It should be noted that the above inner code information length is K=136 bits, and one RS symbol of the outer code KP4 contains 10 bits. For the convolution interleaver between the inner code and the outer code, there is a convolution interleaver that outputs r*d=160 bits each time, and its input and output switch position is located at the top, such as the number of delay lines of the convolution interleaver r=4, and each storage unit of the convolution interleaver stores d=40 bits. For example, the number of delay lines of the convolution interleaver r=8, and each storage unit of the convolution interleaver stores d=20 bits. Considering that the least common multiple of the inner code information length K=136 and the above 160 is 2720=136×20, the above convolution interleaver outputs 2720=17×160 bits each time, and its input and output switch is located at the top, and the output 2720 bits are used as 20 inner code information bits. That is, when b is a multiple of 20, 2720=r*d*c=K×b, where c is a positive integer. At this time, the receiving end processing module performs frame synchronization of the received data (i.e., frame synchronization of P+W bits, also known as the identification lock operation), which can ensure the synchronization of the inner code word, that is, obtain the boundary of the inner code word; and can also ensure the synchronization of the convolution deinterleaving, that is, obtain the position of the input and output switches of the convolution deinterleaving. The corresponding positive integers a, b, P combination and their corresponding baud rates are shown in Table 7 below:

[0549] Table 7

[0550]

[0551]

[0552] It should be noted that the above inner code information length is K=136 bits, and one RS symbol of the outer code KP4 contains 10 bits. For the convolution interleaver between the inner code and the outer code, there is a convolution interleaver that outputs r*d=140 bits each time, and its input and output switch positions are located at the top, such as the number of delay lines of the convolution interleaver r=7, and each storage unit of the convolution interleaver stores d=20 bits. Considering that the least common multiple of the inner code information length K=136 and the above 140 is 4760=136×35, the above convolution interleaver outputs 4760=34*140 bits each time, its input and output switches are located at the top, and the output 4760 bits are used as 35 inner code information bits. That is, when b is a multiple of 35, the receiving end processing module performs frame synchronization of the received data (i.e., frame synchronization of P+W bits, also known as the identification locking operation), which can ensure the synchronization of the inner code word, that is, obtain the boundary of the inner code word; and can also ensure the synchronization of the convolution deinterleaving, that is, obtain the position of the input and output switches of the convolution deinterleaving. The corresponding positive integers a, b, P combination and their corresponding baud rates are shown in Table 8 below:

[0553] Table 8

[0554]

[0555] It should be noted that the above embodiment considers the 800GbE scenario, which can be simply extended to the 1.6TbE scenario; for example, the parameter combination W, P, b in Table 5 can be directly used in the 1.6TbE scenario. For example, the 1.6TbE scenario still uses PAM4 modulation, and the baud rate used is twice the baud rate in the 800GbE scenario.

[0556] Embodiment 4: Inner code encoding uses a FEC code with information length K=140 bits and codeword length N=148 bits.

[0557] Consider an FEC code with an information length of K = 140 bits and a codeword length of N = 148 bits, such as the Hamming (148, 140) code. Fig.10In the encoding method shown, the 140-bit data to be encoded is represented as B[139:0], and each consecutive 2 bits are bit-exclusive-ORed to obtain 1-bit data C[i], and a total of 70 bits of data are obtained, represented as C[69:0], where C[i]=B[2*i]^B[2*i+1], 0≤i≤69; then C[69:0] is used as information data to perform Hamming (78,70) encoding to obtain 8-bit check data, represented as P[7:0], and finally B[139:0] and P[7:0], a total of 148 bits, are concatenated as the output of the inner code encoding, represented as D[147:0]. Where D[139:0] comes from B[139:0], and D[147:140] comes from P[7:0].

[0558] The baud rate of the PAM4 modulation symbol stream is Assuming the above baud rate value It is an integer multiple of the typical Ethernet reference clock frequency of 156.25MHz, that is, Where a is a positive integer, G represents 10^9, and M represents 10^6. The clock extraction and clock synchronization at the receiving end are simple to implement, and fast phase locking can be performed, with low PLL complexity and small jitter.

[0559] When P is a multiple of the inner code length N, that is, P = 148 × b, the receiving end processing module performs frame synchronization of the received data (that is, frame synchronization of P + W bits, also known as the identification locking operation), which can ensure the synchronization of the inner code word, and also obtain the boundary of the inner code word, where b is a positive integer. At this time, The positive integer 34×W is divisible by the positive integer b, and the positive integer Divisible by 7.

[0560] Considering some commonly used alignment marker bit lengths W of 48, 56, 64, 120, N = 148, the corresponding optional positive integers a, b, P combination and the corresponding baud rate are shown in Table 9 below:

[0561] Table 9

[0562]

[0563] For higher baud rates, the power consumption of optical modules is usually higher. Considering baud rates lower than 114GBaud, the optimal positive integer a, b, P combinations and their corresponding baud rates are shown in Table 10 below:

[0564] Table 10

[0565]

[0566] The above inner code information length is K=140 bits, and one RS symbol of the outer code KP4 contains 10 bits. For the convolution interleaver between the inner code and the outer code, there is a convolution interleaver that outputs 140 bits each time, and its input and output switch positions are located at the top, such as the number of delay lines of the convolution interleaver r=7, and each storage unit of the convolution interleaver stores d=20 bits. At this time, the receiving end processing module performs frame synchronization of the received data (i.e., frame synchronization of P+W bits, also known as identification locking operation), which can ensure the synchronization of the inner code codeword, that is, obtain the boundary of the inner code codeword; and it can also ensure the synchronization of the convolution deinterleaving, that is, obtain the input and output switch positions of the convolution deinterleaving, so that the receiving end processing module is simple to implement.

[0567] It should be noted that the above embodiment considers the 800GbE scenario, which can be simply extended to the 1.6TbE scenario; for example, the parameter combination W, P, b in Table 9 can be directly used in the 1.6TbE scenario. For example, the 1.6TbE scenario still uses PAM4 modulation, and the baud rate used is twice the baud rate in the 800GbE scenario.

[0568] In some 800GbE scenarios using PAM4 modulation and 112.5G baud rate or 1.6TbE scenarios considering 225G baud rate, there are Combined with P=N×b, we have Since N=148, K=140, 17W=4b. Considering b is an integer, the integer W is a multiple of 4, and the integer b is a multiple of 17.

[0569] Embodiment 5: The inner code encoding adopts the FEC code with information length K=120 bits and codeword length N=128 bits.

[0570] Consider an FEC code with an information length of K = 120 bits and a codeword length of N = 128 bits, such as the Hamming (128, 120) code. For another example, the 120-bit data to be encoded is represented as B[119:0], and each consecutive 2 bits are bit-XORed to obtain 1-bit data C[i], and a total of 60 bits of data are obtained, represented as C[59:0]. Among them, C[i] = B[2*i]^B[2*i+1], 0≤i≤59. Then C[59:0] is used as the information data for Hamming (68, 60) encoding to obtain 8 bits of check data, represented as P[7:0]. Finally, B[119:0] and P[7:0], a total of 128 bits, are concatenated as the output of the inner code encoding, represented as D[127:0]. Among them, D[119:0] comes from B[119:0], and D[127:120] comes from P[7:0].

[0571] Considering the 800GE scenario and using PAM4 modulation, data processing obtains 4 PAM modulation symbol streams. Without considering the alignment mark of W bits inserted in the period, the baud rate of the PAM4 modulation symbol stream is Its baud rate value is approximately 725.3333 times the reference clock frequency value of 156.25M. Considering that 725.3333 is not an integer, the smallest positive integer greater than 725.3333 is 726. Therefore, considering that the baud rate of the PAM4 modulation symbol stream under the alignment mark with a length of W bits inserted per P bits is 113.4375Gbaud, its baud rate value is 726 times the reference clock frequency value of 156.25M.

[0572] Combined with Example 1 have At this time, P = 1088 × W. Considering that W is an integer multiple of the inner codeword length N = 128, the corresponding value of P is also an integer multiple of 128, so that the receiving end can perform low-complexity frame synchronization and codeword synchronization. Several typical values ​​of W and P are shown in Table 13.

[0573] Table 13

[0574]

[0575] Fig.14 This is a schematic diagram of an implementation method of data processing in the embodiment of this application. Fig.14 , the specific data processing flow is introduced below:

[0576] The 32 data streams encoded by the first FEC are inner-coded to obtain 32 inner-coded data streams. Specifically, each K=120 information bits in each data stream are inner-coded, that is, S=8 check bits are added to obtain a total of N=128 bits of inner code codewords.

[0577] Channel interleaving is performed on every 8 coded data streams among the 32 inner code coded data streams to obtain 1 second data stream, and a total of m=4 second data streams are obtained. Fig.14 ,For 800GE scenario, data processing includes 4 data sub-processing, namely Fig.14 The data subprocessing 0, data subprocessing 1, data subprocessing 2, and data subprocessing 3 in the data subprocessing are shown in FIG. Each data subprocessing includes one channel interleaving. The channel interleaving is performed from the input n HM=8 coded data streams each obtain an inner code word of length 128 bits, a total of 8 inner code words, and poll (Round-Robin) to obtain 2 bits from each inner code word as the bits on the second data stream to obtain 1024 consecutive bits on the second data stream. The channel interleaving is also called 8-way Hamming codeword interleaver, or inner codeword interleaving.

[0578] An alignment marker is periodically inserted into each of the m=4 second data streams to obtain m=4 third data streams. Specifically, P bits are periodically obtained from each second data stream, and an alignment marker with a length of W bits is inserted, so that an alignment marker with a length of W bits exists in every P+W bits in each third data stream.

[0579] A third data processing including PAM4 modulation is performed on the m=4 third data streams to obtain Y=4 modulation symbol streams.

[0580] Fig.15 Schematic diagram of a structure of an alignment mark in an embodiment of the present application. This embodiment takes W=3×128=384, P=1088×W=417792 as an example to introduce the specific structure of the alignment mark with a length of W=384 bits inserted periodically. Fig.15 As shown in (a), the 1024-bit alignment identifier contains at least one frame synchronization sequence (Framesynchronizationsequence) for receiving end synchronization. The frame synchronization sequence contains a total of 48 bits, which are distributed as 2 frame synchronization subsequences in the alignment identifier, namely Fig.15 The frame synchronization subsequence 1 and the frame synchronization subsequence 2 in (b) of FIG. Each frame synchronization subsequence contains 24 bits. The two frame synchronization subsequences are not continuous in the 1024-bit alignment mark, and are separated by 8 bits (one byte). The specific structure is as follows: Fig.15 Here, the interval between two consecutive bits is defined as 0 bits.

[0581] In some specific applications, the specific values ​​of the frame synchronization subsequence 1 of 24 bits are: 0x9A, 0x4A, 0x26, and the specific values ​​of the frame synchronization subsequence 2 of 24 bits are: 0x65, 0xB5, 0xD9. It should be noted that the frame synchronization subsequence 1 (or frame synchronization subsequence 2) is transmitted in the order of 0x9A, 0x4A, 0x26 (or 0x65, 0xB5, 0xD9). More specifically, corresponding to the frame synchronization subsequence 1, 0x9A is the first byte transmitted, and 0x26 is the byte transmitted later; and for the 8 bits of a byte, the LSB is transmitted first and the MSB is transmitted later, for example, the 8 bits corresponding to 0x9A are transmitted from left to right according to the bit sequence 01011100.

[0582] Fig.16 It is a schematic diagram of a computer architecture for synchronization. It should be noted that the two frame synchronization subsequences in the set of frame synchronization sequences are separated by 8 bits (one byte) in the 1024-bit alignment mark, which allows the receiving end to reuse the synchronization hardware implementation architecture in the existing 100GE802.3bj and 400GE 802.3bs standards when performing frame synchronization. Fig.16 (a) shows the architecture of the relevant calculator used for alignment mark synchronization in the 100GE 802.3bj standard. Fig.16 (b) shows the architecture of the relevant calculator used for alignment mark synchronization in the 400GE 802.3bs standard. Fig.16 (c) shows the architecture of the relevant calculator used for the frame synchronization in the present invention. It can be seen that the proposed frame synchronization sequence structure can reuse the synchronization hardware implementation architecture in the existing 100GE 802.3bj and 400GE 802.3bs standards, which is easy to implement.

[0583] Embodiment 6:

[0584] Fig.17 Another structural diagram of the alignment mark in the embodiment of the present application. Based on Example 5, consider W = 8 × 128 = 1024, P = 1088 × W = 1114112. In the data processing operation, P bits are periodically obtained from each second data stream, and an alignment mark of W bits in length is inserted. The alignment mark contains multiple groups of frame synchronization sequences for receiving end synchronization. Fig.17 (a) and Fig.17 As shown in (b), the alignment mark includes 3 groups of frame synchronization sequences for receiving end synchronization. Fig.17 As shown in (c), the alignment identifier includes 2 groups of frame synchronization sequences for receiving end synchronization.

[0585] It should be noted that there may be or may not be any intervals between each set of frame synchronization sequences. Fig.17 As shown in (a), there is no gap between the three groups of frame synchronization sequences in the alignment mark of W=1024 bits in length. Fig.17 As shown in (b), two adjacent frame synchronization sequences in the three sets of frame synchronization sequences are separated by 8 bits in the alignment identifier of the length of W=1024 bits. It should be noted that the number of bits separating two adjacent frame synchronization sequences in the three sets of frame synchronization sequences in the alignment identifier of the length of W=1024 bits can be other positive integers that are integer multiples of 8.

[0586] It should be noted that the specific values ​​of the multiple sets of frame synchronization sequences may be the same or different. Fig.17 As shown in (a), the values ​​of the three groups of frame synchronization sequences are the same, and the values ​​of the 48 bits in each group of frame synchronization sequences are: 0x9A, 0x4A, 0x26, 0x65, 0xB5, 0xD9. Fig.17 As shown in (b), among the three groups of frame synchronization sequences, the values ​​of the first group of frame synchronization sequences and the second group of frame synchronization sequences are the same, and the 48 bits in each group of frame synchronization sequences are: 0x9A, 0x4A, 0x26, 0x65, 0xB5, 0xD9; the values ​​of the third group of frame synchronization sequences are different from the values ​​of the first and second groups of frame synchronization sequences, and the 48 bits thereof are: 0x01, 0x71, 0xF3, 0xFE, 0x8E, 0x0C. Fig.17 As shown in (c), the values ​​of the two sets of frame synchronization sequences are different. The 48 bits in the first frame synchronization sequence are: 0x9A, 0x4A, 0x26, 0x65, 0xB5, 0xD9; the 48 bits in the second frame synchronization sequence are: 0x01, 0x71, 0xF3, 0xFE, 0x8E, 0x0C.

[0587] Embodiment 7:

[0588] Fig.18 This is another schematic diagram of data processing in the embodiment of the present application. Based on Example 5, considering the 1.6TE scenario and using PAM4 modulation, data processing obtains 8 PAM modulation symbol streams. Without considering the alignment mark of W bit length inserted in the period, the baud rate of the PAM4 modulation symbol stream is Its baud rate value is approximately 725.3333 times the reference clock frequency value of 156.25M. Considering that 725.3333 is not an integer, the smallest positive integer greater than 725.3333 is 726. Therefore, considering that the baud rate of the PAM4 modulation symbol stream under the alignment mark with a length of W bits inserted in the period is 113.4375Gbaud, its baud rate value is 726 times the reference clock frequency value of 156.25M.

[0589] Combined with Example 1 have At this time, P = 1088 × W. Considering that W is an integer multiple of the inner codeword length N = 128, the corresponding value of P is also an integer multiple of 128, so that the receiving end can perform low-complexity frame synchronization and codeword synchronization. Several typical values ​​of W and P are shown in Table 13 in Example 5. For the specific data processing flow, please refer to Fig.18 For understanding, the data processing includes 8 data sub-processings, namely data sub-processings 0 to 7. The specific operation of each data sub-processing can be understood by referring to Example 5.

[0590] Embodiment 8:

[0591] Fig.19 FIG. 5 is another schematic diagram of another implementation of data processing in the embodiment of the present application. Based on the embodiment 5, the inner code encoder further performs a cyclic shift operation before performing inner code encoding on each K=120 information bits in each first data stream. Fig.19 As shown, the cyclic shift operation cyclically shifts each K=120 information bits to the right to improve the anti-burst performance of the overall concatenated code.

[0592] Embodiment 9:

[0593] Fig. 20 FIG. 5 is another schematic diagram of another implementation of data processing in the embodiment of the present application. Based on the embodiment 5, the inner code encoder further performs a convolution interleaving operation before performing inner code encoding on each K=120 information bits in each first data stream. Fig. 20 As shown, every 8 first data streams of the 32 first data streams are firstly subjected to convolution interleaving, and then cyclic shift of every K=120 bits, and then inner code encoding, and then channel interleaving (inner code word interleaving) are performed to obtain 1 second data stream, and a total of 4 second data streams are obtained. Convolution interleaving is also performed before inner code encoding, which improves the performance of the overall concatenated code under AWGN.

[0594] Embodiment 10:

[0595] Fig.21 Schematic diagram of another implementation of data processing in the embodiments of the present application. Based on Example 9, every two of the eight first data streams are a group of two input data streams as data sub-processing. In each data sub-processing, the two first data streams are respectively subjected to convolution interleaving processing to obtain two convolution interleaved data streams. Each convolution interleaved data stream is subjected to data distribution to obtain four distributed data streams, for a total of eight distributed data streams. The data distribution is based on a granularity of α0 bits. Fig.21As shown, when the convolution interleaved data stream is a group of α0 bits, for 4 consecutive groups of 4×α0 bits in total, the 0th group of α0 bits is sent to the 0th data stream of the 4 distributed data streams, the 1st group of α0 bits is sent to the 1st data stream of the 4 distributed data streams, the 2nd group of α0 bits is sent to the 2nd data stream of the 4 distributed data streams, and the 3rd group of α0 bits is sent to the 3rd data stream of the 4 distributed data streams. Typically, the distribution bit granularity is α0=120.

[0596] It should be noted that for the 800GE scenario, data processing includes four data sub-processings, such as Fig.21 As shown. The data stream input of each data sub-processing is 2 first data streams. The 2 first data streams correspond to a bit rate of about 200G per second, that is, each first data stream corresponds to a bit rate of about 100G per second. Correspondingly, the distributed data stream corresponds to a bit rate of about 25G per second.

[0597] It should also be noted that when the distribution bit granularity is α0=120, Fig.21 The data processing shown can be described as two first data streams are convolutionally interleaved respectively to obtain a total of two convolutionally interleaved data streams. Four bit groups are obtained on each convolutionally interleaved data stream, and the length of each bit group is 120 bits. Each bit group is cyclically shifted and inner-coded to obtain four inner-code codewords. A total of eight bit groups are obtained from the two convolutionally interleaved data streams, which are cyclically shifted and inner-coded to obtain a total of eight inner-code codewords, and then channel interleaved to obtain 1024 bits on the second data stream.

[0598] It should be noted that in some specific application scenarios with low latency requirements, the Fig.21 The convolution interleave in is removed and the convolution interleave operation is not performed (bypass).

[0599] It should be noted that for the 1.6TE scenario, the data processing includes 8 data sub-processings, wherein the data stream input of each data sub-processing is 2 first data streams. The 2 first data streams correspond to a bit rate of about 200G per second, that is, each first data stream corresponds to a bit rate of about 100G per second. Correspondingly, the distributed data stream corresponds to a bit rate of about 25G per second.

[0600] Embodiment 11:

[0601] Figure 22 (a) is a schematic diagram of another implementation method of data processing in the embodiment of the present application. Based on Example 9, each of the four first data streams is used as an input data stream for data sub-processing. In each data sub-processing, the one first data stream is subjected to convolution interleaving processing to obtain one convolution interleaved data stream. The one convolution interleaved data stream is subjected to data distribution (distribution) to obtain 8 distributed data streams. The data distribution uses α0 bits as the granularity. As shown in Figure 22 (a), when the convolution interleaved data stream is grouped as a group, for 8 consecutive groups of a total of 8×α0 bits, the 0th group of α0 bits is sent to the 0th data stream of the 8 distributed data streams, the 1st group of α0 bits is sent to the 1st data stream of the 8 distributed data streams, ..., the 7th group of α0 bits is sent to the 7th data stream of the 8 distributed data streams. Typically, the distribution bit granularity is α0=120.

[0602] It should be noted that for the 800GE scenario, the data processing includes four data sub-processings, as shown in Figure 22(a). The data stream input of each data sub-processing is one first data stream, corresponding to a bit rate of about 200G per second. Correspondingly, the distributed data stream corresponds to a bit rate of about 25G per second.

[0603] It should also be noted that when the distribution bit granularity is α0=120, the data processing shown in Figure 22(a) can be described as performing convolution interleaving on each first data stream to obtain one convolution interleaved data stream. 8 bit groups are obtained from the convolution interleaved data stream, and each bit group has a length of 120 bits. Each bit group is cyclically shifted and inner-code encoded to obtain 8 inner-code codewords, and then channel interleaved to obtain 1024 bits on the second data stream.

[0604] It should be noted that in some specific application scenarios with low latency requirements, the convolution interleaving in Figure 22 can be removed and the convolution interleaving operation can be bypassed. Furthermore, in order to achieve lower latency, lower complexity and power consumption, in some possible scenarios, the cyclic shift operation and / or the channel interleaving (inner codeword interleaving) operation can also be bypassed. If the channel interleaving (inner codeword interleaving) operation is not performed (bypassed), a one-way Hamming codeword interleaver can be performed on the 8 encoded data streams, which is equivalent to codeword merging (codeword merge) on the 8 encoded data streams.

[0605] Figure 22(b) is a schematic diagram of another implementation of data processing in an embodiment of the present application. Each of the four first data streams serves as an input data stream for data sub-processing. Different from the implementation shown in Figure 22(a), as shown in Figure 22(b), in each data sub-processing, convolution interleaving is not performed on one first data stream, but data distribution is directly performed to obtain 8 distributed data streams. Among them, the data distribution is based on the granularity of α0 bits, that is, when the first data stream before data distribution is a group of α0 bits, for 8 consecutive groups of a total of 8×α0 bits, the 0th group of α0 bits is sent to the 0th data stream after distribution, the 1st group of α0 bits is sent to the 1st data stream after distribution, ..., the 7th group of α0 bits is sent to the 7th data stream after distribution. Typically, the distribution bit granularity is α0=120.

[0606] Figure 22(c) is a schematic diagram of another implementation of data processing in an embodiment of the present application. In one possible implementation, the implementation of Figure 22(b) is simplified to obtain an implementation as shown in Figure 22(c) that is equivalent to Figure 22(b). Specifically, as shown in Figure 22(c), in each data sub-processing, the first data stream is inner-coded to obtain a second data stream, and an alignment marker is inserted into the second data stream period to obtain a third data stream, and then PAM4 modulation is performed to obtain a modulation symbol stream.

[0607] It should be noted that the modulated symbol stream obtained by the data processing shown in Figure 22 (b) or Figure 22 (c) is transmitted through the actual channel to obtain the received symbol stream at the receiving end, and PAM4 demodulation is performed to obtain the demodulated data stream. As an example, the data processing method at the receiving end is to use the frame synchronization sequence in the alignment mark to perform frame synchronization to obtain the starting position of each frame and the inner code boundary, and then perform inner code soft decision decoding to obtain the inner code decoded data stream, and then send it to the client side device for outer code KP4 decoding. The pre-correction bit error rate of the entire cascade system can reach about 3.3E-3.

[0608] As another example, the data processing method at the receiving end is to use the frame synchronization sequence in the alignment mark to perform frame synchronization to obtain the starting position of each frame and the inner code boundary, and then perform hard decision decoding of the inner code to obtain the inner code decoded data stream, and then send it to the client side device for outer code KP4 decoding. The pre-correction bit error rate of the entire cascade system can reach about 6E-4. It should be understood that the inner code decoding adopts hard decision decoding, which has a lower decoding complexity.

[0609] As another example, in some scenarios with good link quality, the receiving end can use the frame synchronization sequence in the alignment mark to perform frame synchronization to obtain the starting position of each frame and the inner code boundary, and then bypass the inner code decoding, that is, directly remove the check bit in each received inner code codeword in the data stream, retain only the information bit, and then use the frame synchronization sequence in the alignment mark to perform frame synchronization to obtain the starting position of each frame, remove the alignment mark, and then send it to the client-side device for outer code KP4 decoding. At this time, the receiving end has the advantages of minimal delay and minimal complexity.

[0610] In some possible implementations, the length W of the alignment marker is an integer multiple of the length N of the inner code word, and the specific pattern of the alignment marker is one or more inner code words. As an example, the inner code word constituting the alignment marker is obtained by inner code encoding the alignment marker information, and the inner code encoding is the above-mentioned second FEC encoding. The length of the inner code codeword obtained after the alignment marker information is encoded by the inner code is the same as the length of the inner code codeword obtained by the second FEC encoding in the above-mentioned second data stream. For the convenience of description, the inner code codeword constituting the alignment marker can also be referred to as a target codeword, that is, the length of the target codeword is the same as the length of the inner code codeword in the above-mentioned second data stream. Specifically, each target codeword is obtained by inner code encoding the alignment marker information including K target bits, the target codeword includes N bits, and the N bits include K target bits and S check bits obtained by encoding.

[0611] Fig. 22(d) is a schematic diagram of an implementation method of generating an alignment mark in an embodiment of the present application. As shown in Fig. 22(d), two possible methods of generating an alignment mark are provided.

[0612] Taking the generation method 0 of the alignment marker as an example, the length W of the alignment marker is an integer multiple of the target codeword length N, that is, W = b0×N. Among them, b0 is an integer multiple of 8, for example, W = 8×128 = 1024. At this time, the specific pattern of the alignment marker can be selected as one or more target codewords. Optionally, the alignment marker is obtained by codeword interleaving of multiple target codewords. Specifically, the alignment marker information including b0×K target bits is encoded through inner code to obtain b0 target codewords, and the b0 target codewords are then interleaved through 8-way codewords to obtain the alignment marker. It should be understood that the alignment marker obtained by codeword interleaving of multiple target codewords should also be considered to include multiple target codewords.

[0613] Taking the generation method 1 of the alignment marker as an example, the length W of the alignment marker is an integer multiple of the target codeword length N, that is, W = b1×N. For example, W = 3×128 = 384, and for another example, W = 8×128 = 1024. At this time, the specific pattern of the alignment marker can be selected as one or more target codewords. Optionally, the alignment marker is obtained by merging multiple target codewords. Specifically, the alignment marker information including b1×K target bits is encoded with an inner code to obtain b1 target codewords, and the b1 target codewords are then merged to obtain the alignment marker.

[0614] It should be noted that, for the implementation shown in FIG. 22 (a), the generation method 0 of the alignment mark shown in FIG. 22 (d) can be adopted, or the generation method 1 of the alignment mark shown in FIG. 22 (d) can be adopted. At this time, the corresponding data processing method of the receiving end is to perform inner code word self-synchronization on the demodulated data stream after demodulation processing to obtain the inner code word boundary, and then obtain the 8-way inner code codeword deinterleaved data stream and perform inner code decoding, and then use the frame synchronization sequence in the alignment mark information after inner code decoding to perform frame synchronization to obtain the starting position of each frame. It should be understood that since the reliability of the frame synchronization sequence and status field (status field) contained in the alignment mark information after inner code decoding is further improved, the time required for frame synchronization can be shortened.

[0615] It should be noted that, for the implementation shown in FIG. 22(b) or FIG. 22(c), the generation method 0 of the alignment mark shown in FIG. 22(d) may be adopted, or the generation method 1 of the alignment mark shown in FIG. 22(d) may be adopted. At this time, the corresponding data processing method of the receiving end is to perform inner code word self-synchronization on the demodulated data stream after the demodulation process to obtain the inner code word boundary, and then perform inner code decoding, and then use the frame synchronization sequence in the alignment mark information after inner code decoding to perform frame synchronization to obtain the starting position of each frame. It should be understood that since the reliability of the frame synchronization sequence and status field (status field) contained in the alignment mark information after inner code decoding is further improved, the time required for frame synchronization can be shortened.

[0616] It should be noted that, in the data processing method shown in FIG. 22(a), FIG. 22(b), and FIG. 22(c), the third data stream obtained after inserting the alignment marker contains W-bit alignment markers every P+W bits, and the synchronization sequence in the alignment marker is located at a fixed position. Therefore, for the data processing method shown in FIG. 22(a), FIG. 22(b), and FIG. 22(c), the same operation can be used in the corresponding receiving end data processing to perform frame synchronization and obtain the frame starting position, so that a set of hardware is compatible with the receiving end data processing corresponding to the transmitting end data processing shown in FIG. 22(a), FIG. 22(b), and FIG. 22(c).

[0617] It should be noted that for the 1.6TE scenario, the data processing includes 8 data sub-processings, wherein the data stream input of each data sub-processing is 1 first data stream, corresponding to a bit rate of about 200G per second. Correspondingly, the distributed data stream corresponds to a bit rate of about 25G per second.

[0618] It should be noted that, in some specific applications, the length W of the alignment marker is an integer multiple of the length N of the second FEC code (also called inner code), and P is an integer multiple of N. At this time, the alignment marker can be protected by the inner code, that is, the W-bit alignment marker contains W / N inner code words, where W / N×K bits correspond to the information bits of the inner code word, and W / N×(NK) corresponds to the check bits of the W / N inner code word. Typically, the W / N×K bits The bits are used as the frame synchronization sequence, and the other part is used to transmit link information and / or control information, including the receiving end status, FEC status, etc., also known as the status field. Specifically, in order to improve the accuracy of the transmitted link information and / or control information, the W / N×K bits are excluding the remaining bits of the frame synchronization sequence. Bits, of which bits are used to indicate the type of link information and / or control information, bits are used to indicate the specific content of the indication link information and / or control information, bits are used for cyclic redundancy check CRC (CyclicRedundancy Check). Typically, The value of is 8, 16 or 32. In other specific applications, multiple frames are needed to coordinately transmit the link indication information and / or control information to further improve the accuracy of the transmitted information. In this case, the W / N×K bits are bits are used to refer to the multiple frames, the bits are also called multi-frame synchronization signals. Typically,

[0619] In some specific applications, such as Fig.15 The frame synchronization sequence includes 48 bits, which are distributed into 2 frame synchronization subsequences and the two frame synchronization subsequences are spaced 8 bits apart. At this time, the 8-bit interval can be used for the 8 bits required for the CRC8 check, or for the 8 bits required to indicate the type of link information and / or control information, or 8 of the bit positions are used for the 8 bits required for the multi-frame synchronization signal.

[0620] In summary of the above introduction, in the embodiment of the present application, an alignment marker is periodically inserted into the data stream after cascade FEC coding. Specifically, P bits are periodically obtained from the data stream after cascade FEC coding, and an alignment marker (also called a frame header, which may include padding bits or a status field) with a length of W bits is inserted, so that there is an alignment marker with a length of W bits in every P+W bits (called a frame) in the data stream. By selecting positive integers P and W, the baud rate value of the modulated symbol data stream can be an integer multiple of the Ethernet common reference clock frequency (Ethernet common reference clock), which simplifies the clock extraction and synchronization method of the receiving end, can perform fast phase locking, and has low PLL complexity and small jitter. In addition, it is required that P is a multiple of the inner code length N, that is, P = N × b. After the receiving end performs frame synchronization on the received data (that is, frame synchronization of P+W bits, also called marker locking operation), the inner code codeword synchronization can be guaranteed, which simplifies the operations of frame synchronization and inner codeword synchronization at the receiving end, and the implementation complexity is low. In addition, the convolution interleaver and convolution deinterleaver output f bits each time, and their input and output switch positions are located at the top, and K×b can be divided by f, so that the convolution deinterleaver synchronization can be guaranteed during frame synchronization.

[0621] When the receiving end uses the W-bit alignment mark (also called the frame header, which may include padding bits or status fields) for frame synchronization, it is necessary to perform a bit-by-bit position identification mark. Considering that the value of the integer P is usually large, the complexity of the frame synchronization operation of the bit-by-bit position identification mark is greater than the complexity of the inner code word synchronization operation. In some application scenarios, the length W of the alignment mark can be selected as an integer multiple of the codeword length N of the second FEC encoding (also called inner code encoding), and the specific pattern of the alignment mark can be selected as one or more inner code words, so that the receiving end can perform low-complexity frame synchronization and codeword synchronization. The above-mentioned operation mode of first performing inner code encoding and then periodically inserting the alignment mark can be equivalent to the following operation mode of first periodically inserting the mark and then performing inner code encoding. That is, the inner code encoding scheme adopted in the above-mentioned embodiment of "first performing inner code encoding and then periodically inserting the alignment mark" can also be used for the inner code encoding scheme of "first periodically inserting the mark and then performing inner code encoding" in the following implementation mode. For example, the block code with information length K=120 bits and codeword length N=128 bits in Example 1 can also be used in the following specific implementation mode. The specific implementation plan of "first periodically inserting the identifier and then performing the inner code encoding" is introduced below.

[0622] Figure 7 Another flow chart of the data processing method provided in the embodiment of the present application is shown in FIG.

[0623] 401. Perform first data processing on m first data streams to obtain m second data streams.

[0624] In this embodiment, the m first data streams are all data streams obtained by first FEC coding, that is, the data streams encoded by outer code introduced above. Typically, the value of m is 4, 8, 16, 32, or 64.

[0625] Specifically, a first identifier is periodically inserted into each of the m first data streams to obtain a total of m second data streams. Specifically, a first identifier is periodically obtained from each first data stream. bits and insert bits long, so that each second data stream has bits exist The first identifier is bits long.

[0626] Figure 8 FIG. 2 is a schematic diagram of a structure of the second data stream in the embodiment of the present application. Figure 8 As shown, the second data stream includes at least one first bit sequence, each of which includes bits, each of the first bits in the sequence bits come from the first data stream, and each first bit sequence bits are added as the first identifier. It should be noted that the first identifier may include pad bits and / or status fields. The pad bits may be preset bits, such as all 0s, or random bits; the status field is used to indicate the status of FEC. In other scenarios, the above The first identifiers of bits may not be arranged continuously. The alignment marker of the bit The position in the bits is not specifically restricted here.

[0627] It should be noted that each bits, the The first identifier of bits may be located in the The first bit consecutive bits, the The first identifier of the bit can also be located in the The last bit consecutive bits.

[0628] In some possible implementations, a cascade interleaver is added between the inner code and the outer code to make the entire cascade FEC scheme perform better. Among them, the operation of cascade interleaving usually includes convolution interleaving to achieve lower latency. That is, the m first data streams are all data streams obtained through cascade interleaving. A specific implementation of cascade interleaving includes channel permutation and convolution interleaving, wherein channel permutation performs data permutation on the input g data streams to obtain g data permuted data streams, and then performs convolution interleaving to obtain g convolution interleaved data streams respectively. Another specific implementation of cascade interleaving includes channel multiplexing and convolution interleaving, wherein channel multiplexing performs symbol multiplexing (symbol mux) on the input g data streams to obtain g1 symbol multiplexed data streams, wherein g can be divided by g1, and then performs convolution interleaving on the above g1 data streams to obtain g1 convolution interleaved data streams, and at this time g1 is not equal to g. In other words, the number of the first data stream and the second data stream obtained after the first data processing may be the same or different, which shall be subject to the actual application scenario and is not limited here. Possible implementations of convolution interleaving may be understood with reference to step 301 .

[0629] In some possible implementations, the first data processing may further include at least one of an alignment lock, a lane de-skew, a lane reorder, etc.

[0630] In some possible implementations, the first data processing operation may further include scrambling. For example, each first data stream is first scrambled and then the first identifier is periodically inserted. This can improve the synchronization quality of the receiving end when synchronizing.

[0631] 402. Perform second data processing on m second data streams to obtain m third data streams.

[0632] In this embodiment, the operation of the second data processing includes but is not limited to performing a second FEC encoding on each second data stream, and the second FEC encoding can be understood as the inner code encoding introduced above. That is to say, the m third data streams are all obtained after the second FEC encoding, and m is an integer greater than 1. Typically, m is 4, 8, 16, 32, or 64. As an example, an inner code encoder is used to perform inner code encoding on each K information bits in each second data stream, that is, after adding S check bits, a total of N bits of inner code codewords are obtained, that is, N = K + S, where K ≥ 1, S ≥ 1.

[0633] Fig. 9 Schematic diagram of the structure of the third data stream in the embodiment of the present application. Fig. 9As shown, each third data stream includes at least one second bit sequence, each second bit sequence includes P+W bits, and the P bits in each second bit sequence are composed of the bits are obtained through the second FEC encoding, W bits in each of the second bit sequences are second identifiers, and the second identifier is obtained through the second FEC encoding of the first identifier, P=N×b, W=N×e.

[0634] It should be noted that the length of the first identifier inserted into each first data stream in step 401 is is a multiple of the inner code information length K, The integer e is an integer greater than 0. In addition, the periodic acquisition in step 401 bits The integer b is an integer greater than 0. The first identifier is encoded by the inner code to obtain a second identifier with a length of W=N×e. bits and add The first identifier of the bit is obtained bits, the bits are encoded by inner code to obtain a length of P+W bits, where P=N×b. In the data stream after each second data stream is encoded by inner code, there are W bits of second identifiers in every P+W bits. Fig. 9 by Take W=N×e=N×2 as an example. In some specific implementations, the P+W bits are called a frame, and the W-bit second identifier is called a frame header.

[0635] In some possible implementations, the second data processing operation may further include at least one of channel interleaving and scrambling. For example, after each second data stream undergoes the second FEC encoding, it also undergoes at least one of channel interleaving and scrambling.

[0636] It should be noted that Fig. 9 The second identifier shown is the structure of the data stream after inner code encoding. The data stream after inner code encoding may also undergo other operations, such as channel interleaving to disrupt the order. At this time, the data stream of the second identifier after channel interleaving will be disrupted; but the channel interleaving method is fixed and preset, and the receiving end can restore the specific position of the second identifier in the data stream when performing inner code synchronization according to the channel interleaving method.

[0637] 403. Perform third data processing on the m third data streams to obtain Y modulation symbol streams.

[0638] In this embodiment, after performing third data processing including modulation on m third data streams, Y modulation symbol streams are obtained, where Y is an integer greater than or equal to 1.

[0639] In some possible implementations, the third data processing operation may further include at least one of codeword interleaving and symbol interleaving. For example, each third data stream is first codeword interleaved and then modulated. For another example, each third data stream is modulated and then symbol interleaved, and the symbol interleaving is also called channel interleaving. It can interleave the colored noise in the channel transmission and disrupt the order, so that the receiving end can recover the signal with better quality.

[0640] It should be noted that, in some specific applications, each n HM The third data stream is first channel interleaved to obtain a channel interleaved data stream, a total of m / n HM The data stream is interleaved through the channels. HM After the channels are interleaved, the data stream is modulated to obtain m / n HM Modulation symbol data stream, where m / n HM =Y. The channel interleaving will HM The third data stream obtains an inner code word of length N bits, a total of n HM inner code words, the n HM The inner codewords include n HM ×N bits, and poll (Round-Robin) to obtain 2 bits from each inner code word as the bits on the second data stream, so as to obtain n consecutive bits on the data stream after channel interleaving. HM ×N bits. The channel interleaving is also called n HM -way Hamming codeword interleaving (n HM -wayHammingcodeword interleaver), also known as inner codeword interleaving.

[0641] Consider each n of the m third data streams above HM The third data stream is first channel interleaved and then modulated, resulting in a total of m / n HM The corresponding n HM In each of the third data streams of the second data stream Bits, total After the bits are encoded by inner code and channel interleaved, a total of bits. bits is called a frame. HM The first identifier is obtained by interleaving the coded channel The bit is called a frame identifier. In some specific implementations, the frame identifier is also called a frame header.

[0642] It should be noted that the The first identifier of bits may include a synchronization subsequence for frame synchronization of the receiving end, and the length of the synchronization subsequence is less than Each of the m second data streams includes a periodically inserted synchronization subsequence, and there are m synchronization subsequences in total. In some specific applications, the lengths of the m synchronization subsequences are the same. bits. HM The synchronization subsequence is encoded by inner code and channel interleaved (n HM - Intra-path code word interleaving) to obtain the channel interleaving data stream bits. bits can be called a frame synchronization sequence, or simply a synchronization sequence. HM Channel interleaved data stream, corresponding to m / n HM It should be noted that, in some specific embodiments, the n HM The specific bit patterns of the synchronization subsequences are not exactly the same, but m / n HM The specific bit patterns of the two synchronization sequences are the same.

[0643] It should be noted that, in some other specific applications, each of the m second data streams includes a periodically inserted synchronization subsequence, and there are m synchronization subsequences in total. The lengths of the m synchronization subsequences are not all the same.

[0644] It should be noted that in some specific applications, in order to further improve the overall cascade code anti-burst performance, the period is inserted Before the first identifier of the bits, a cyclic shift operation is performed on the data in the data stream. The cyclic shift operation cyclically shifts each K information bits in the data stream to the left or to the right.

[0645] It should be noted that this application selects a positive integer and The baud rate value of the modulation symbol data stream can be made an integer multiple of the reference clock frequency (reference clock), so that the implementation of clock extraction and clock synchronization at the receiving end is simpler, and fast phase locking can be performed, and the PLL complexity is low and the jitter is small. It should be understood that the present application does not limit the specific value of the reference clock frequency. For example, it can be an Ethernet common reference clock frequency (Ethernet common reference clock). As an example, the baud rate value of the modulation symbol data stream is an integer multiple of 156.25M. It should also be understood that in practical applications, a certain error range can also be accepted, for example, the baud rate value of the modulation symbol data stream is an integer multiple of 156.25M ±V (ppm), where V can be 20, 50 or 100.

[0646] Further select positive integer and can be divided by the inner code information length K, so that the receiving end processing module can perform frame synchronization of received data (i.e., frame synchronization of P+W bits or bits of frame synchronization, also known as identification lock operation) and codeword synchronization have low hardware implementation complexity. At the same time, we further select positive integers The synchronization of the inner code word can ensure the synchronization of the cascade deinterleaving. That is to say, the data processing method provided by the present application material makes the implementation complexity of the receiving end processing module in performing frame synchronization, inner code word synchronization and cascade deinterleaving synchronization low.

[0647] It should be noted that the receiving end may first perform codeword synchronization and then frame synchronization, or may directly use the first identifier or the second identifier to perform frame synchronization bit by bit, which can ensure synchronization of codeword synchronization and cascade deinterleaving.

[0648] Below and The value requirements are introduced in detail.

[0649] Considering the 800GbE scenario, the transmitting device encodes the 800GbE service data stream to be transmitted with KP4RS (544, 514) out-of-code to obtain a data stream with a total rate of 850Gbps, and sends it to the transmitting processing module through the connection unit interface 800GAUI after PMA processing. The transmitting processing module periodically inserts the first identifier into the m first data streams, that is, after the first data processing, m second data streams are obtained, and their total rate is After the m second data streams are processed with the second data including the inner code, m third data streams are obtained, and their total rate is After the third data stream is processed by the third data including PAM4 modulation, four modulation symbol streams are obtained, and the baud rate is Here baud represents the modulation symbol rate transmitted per second. Assume that the reference clock frequency is The baud rate of the PAM4 modulation symbol stream is an integer multiple of the typical Ethernet reference clock frequency. Where N is the length of the inner code, K is the information bit length of the inner code, and a is a positive integer. G represents 10^9, and M represents 10^6. At this time, the implementation of clock extraction and clock synchronization at the receiving end is simple, and fast phase locking can be performed, with low PLL complexity and small jitter. A typical Ethernet reference clock frequency is 156.25MHz. In some 800GbE scenarios, considering the 112.5G baud rate, there is The overall PLL implementation is now simpler.

[0650] Further, when is a multiple of the inner code information length K and When it is a multiple of the inner code information length K, that is, Where b and e are positive integers. In the data stream after the second data stream is encoded by the second FEC, the W bits at a fixed position in every P+W bits are the second identifier, which corresponds to The first identifier of the bit, wherein P=N×b, W=N×e; and each N bits of the P+W bits are an inner code word. In some specific embodiments, the P+W bits are called a frame, and the second identifier of the W bits is called a frame header. The receiving end may first perform inner code word synchronization on the received data stream and identify the inner code word boundary. Combined with the fixed position of the first bit position of the first identifier or the second identifier in the inner code code word, the above-mentioned first identifier or the second identifier may be used to perform simple frame synchronization to identify the first identifier or the second identifier. When the receiving end processing module performs frame synchronization on the received data (i.e., frame synchronization of P+W bits, also called identifier locking operation), there is no need to perform complex bit-by-bit position identification identifiers.

[0651] It should be noted that, considering each n of the m third data streams HM The third data stream is first channel interleaved and then modulated, resulting in a total of m / n HM After the channel is interleaved, each Fixed position in bits bits are the frame synchronization sequence, which corresponds to n bits HM A first identification.

[0652] Furthermore, for the transmitting end processing module, the cascade interleaving including convolution interleaving is adopted. In order to ensure the synchronization of convolution deinterleaving during frame synchronization, the receiving end processing module should meet the requirement of (W+P bits or The starting position of the convolutional deinterleaver (frame synchronization of bits) corresponds to the input and output switches of the convolutional deinterleaver being located at the starting position of the switch, usually the topmost position, such as the position of the delay line 0 shown in Figures 4(a) and 4(b). More specifically, the convolutional interleaver and the convolutional deinterleaver output f bits each, and their input and output switch positions are located at the topmost position, K×b can be divided by f, so that the convolutional deinterleaver synchronization can be guaranteed during frame synchronization. A specific method is that r*d*c=K×b, where r is the number of delay lines of the convolutional interleaver and the convolutional deinterleaver, d is the number of bits stored in the storage unit in the convolutional interleaver and the convolutional deinterleaver, and c is a positive integer. In this way, based on the improvement of the transmitting end processing module of the present application, the receiving end processing module can achieve frame synchronization and codeword synchronization with low complexity. At the same time, the frame synchronization of the received data ensures the convolutional deinterleaving synchronization, simplifies the operations of the receiving end frame synchronization, inner codeword synchronization, cascade interleaving synchronization, etc., and achieves low complexity.

[0653] It should be noted that in the data processing operation of this embodiment, the data stream is first periodically inserted For the first embodiment of the present application, the data stream is firstly encoded with inner code, and then the alignment mark of W bits is periodically inserted into the data stream after inner code encoding. The first identifier of the bit is encoded with an inner code to obtain the second identifier of W bits. When the second identifier is the same as the alignment identifier of W bits in the first embodiment, the effects achieved by the two embodiments are the same, that is, the two embodiments are equivalent at this time.

[0654] The following provides several implementation methods based on different internal code encoding methods to introduce the above and The possible values ​​of .

[0655] Implementation method 1: Inner code encoding uses an FEC code with an information length of K=140 bits and a codeword length of N=148 bits.

[0656] Consider an FEC code with an information length of K=140 bits and a codeword length of N=148 bits as the inner code, for example, Hamming (148, 140) is used.

[0657] Fig.10 Schematic diagram of an implementation method of internal code encoding in the embodiment of this application. Fig.10In the encoding method shown, the 140-bit data to be encoded is represented as B[139:0], and each consecutive 2 bits are bit-exclusive-ORed to obtain 1-bit data C[i], and a total of 70 bits of data are obtained, represented as C[69:0], where C[i]=B[2*i]^B[2*i+1], 0≤i≤69; then C[69:0] is used as information data to perform Hamming (78,70) encoding to obtain 8-bit check data, represented as P[7:0], and finally B[139:0] and P[7:0], a total of 148 bits, are concatenated as the output of the inner code encoding, represented as D[147:0]. Where D[139:0] comes from B[139:0], and D[147:140] comes from P[7:0].

[0658] Considering the 800GbE scenario, the baud rate of the PAM4 modulation symbol stream is Assuming the above baud rate value It is an integer multiple of the typical Ethernet reference clock frequency of 156.25MHz, that is, Where a is a positive integer, G represents 10^9, and M represents 10^6. The clock extraction and clock synchronization at the receiving end are simple to implement, and fast phase locking can be performed, with low PLL complexity and small jitter.

[0659] when and is a multiple of the inner code information length K, that is The frame synchronization and inner code word synchronization operations at the receiving end have low complexity. The positive integer 5032×e is divisible by the positive integer b, and the positive integer It is divisible by 7. Table 11 below gives some parameter combinations and their corresponding baud rates.

[0660] Table 11

[0661]

[0662] Parameter combinations in Table X1 b and e can also be used in 1.6TbE scenarios. For 1.6TbE using PAM4 modulation, the corresponding parameter a and the corresponding baud rate are twice that of 800GbE. In some 800GbE scenarios using PAM4 modulation and 112.5G baud rate or 1.6TbE scenarios considering 225G baud rate, So b=629×e.

[0663] The above inner code information length is K=140 bits, and one RS symbol of the outer code KP4 contains 10 bits. For the convolution interleaver between the inner code and the outer code, there is a convolution interleaver that outputs 140 bits each time, and its input and output switch positions are located at the top, such as the number of delay lines of the convolution interleaver r=7, and each storage unit of the convolution interleaver stores d=20 bits. At this time, the receiving end processing module can achieve frame synchronization and codeword synchronization with low complexity, and the frame synchronization of the received data can ensure the synchronization of the convolution deinterleaving, that is, to obtain the input and output switch positions of the convolution deinterleaving, simplifying the operations of the receiving end frame synchronization, inner code codeword synchronization, cascade interleaving synchronization, etc., and achieving low complexity.

[0664] Implementation method 2: Inner code encoding uses an FEC code with an information length of K=120 bits and a codeword length of N=127 bits.

[0665] Consider an FEC code with an information length of K=120 bits and a codeword length of N=127 bits as the inner code, for example, Hamming (127, 120).

[0666] Fig.11 FIG. 1 is another schematic diagram of an implementation method of the internal code encoding in the embodiment of the present application. Fig.11 In the coding method shown, the 120-bit data to be coded is represented as B[119:0], and each consecutive 2 bits are bit-exclusive-ORed to obtain 1-bit data C[i], and a total of 60 bits of data are obtained, represented as C[59:0], where C[i]=B[2*i]^B[2*i+1], 0≤i≤59; then C[59:0] is used as information data for Hamming (67,60) coding to obtain 7-bit check data, represented as P[6:0], and finally B[119:0] and P[6:0], a total of 127 bits, are concatenated as the output of the inner code coding, represented as D[126:0]. Where D[119:0] comes from B[119:0], and D[126:120] comes from P[6:0].

[0667] Considering the 800GbE scenario, the baud rate of the PAM4 modulation symbol stream is Assuming the above baud rate value It is an integer multiple of the typical Ethernet reference clock frequency of 156.25MHz, that is, Where a is a positive integer, G represents 10^9, and M represents 10^6. The clock extraction and clock synchronization at the receiving end are simple to implement, and fast phase locking can be performed, with low PLL complexity and small jitter.

[0668] when and is a multiple of the inner code information length K, that is The frame synchronization and inner code word synchronization operations at the receiving end have low complexity. The positive integer 2159×e is divisible by the positive integer b, and the positive integer It is divisible by 3. Table 12 below gives some parameter combinations and their corresponding baud rates.

[0669] Table 12

[0670]

[0671] In some 800GbE scenarios using PAM4 modulation and 112.5G baud rate or 1.6TbE scenarios considering 225G baud rate, b = 2159 × e. In this case, the overall PLL implementation is simpler.

[0672] The above inner code information length is K=120 bits, and one RS symbol of the outer code KP4 contains 10 bits. For the convolution interleaver between the inner code encoding and the outer code encoding, there is a convolution interleaver that outputs 120 bits and its input and output switch positions are located at the top. For example, the number of delay lines of the convolution interleaver is r=3, and each storage unit of the convolution interleaver stores d=40 bits. For another example, the number of delay lines of the convolution interleaver is r=6, and each storage unit of the convolution interleaver stores d=20 bits. At this time, the receiving end processing module can achieve frame synchronization and codeword synchronization with low complexity. At the same time, the frame synchronization of the received data can ensure the synchronization of the convolution deinterleaving, that is, obtaining the input and output switch positions of the convolution deinterleaving, simplifying the operations of the receiving end frame synchronization, inner code word synchronization, cascade interleaving synchronization, etc., and achieving low complexity.

[0673] It should be noted that when PAM4 modulation is used, each PAM4 symbol corresponds to 2 bits, where the MSB (MostSignificant Bit) bit and the LSB (Least Significant Bit) bit have different bit error rates. When the codeword bit length N is an odd number (such as the FEC with a code length of 127 bits used in Implementation 2), two consecutive inner codewords will be generated. Fig.12 is a schematic diagram of the structure of a codeword. Fig.12 As shown, the first bit of the K-bit information sequence (also referred to as information bit) of one codeword is the MSB, and the first bit of the K-bit information sequence of another codeword is the LSB, which is not conducive to the hardware implementation of inner code decoding at the receiving end.

[0674] To overcome the above problems, in some possible application scenarios, the t inner code words after inner code encoding may be subjected to inner code word interleaving processing, where t is an even number, such as 2, 4, 8, or 16. The inner code word interleaving processing is described in detail below.

[0675] Fig.13 is a schematic diagram of the structure of another codeword. Fig.13 As shown, consider t inner code words D0, D1, D2, ..., D t;1 , where codeword D i (0≤i≤t-1) contains K bits of information sequence B i and a check sequence P of length S bits i More specifically, there are t information sequences B0, B1, B2, ..., B t;1 , the t check sequences are P0, P1, P2, ..., P t;1 The inner code interleaving process interleaves the t inner code codewords with a total of t×N bits to obtain an interleaved sequence with a length of t×N bits, and the interleaved sequence includes 2 bit-continuous subsequences, a first subsequence with a length of t×K bits and a second subsequence with a length of t×S bits. The bit-continuous first subsequence includes the t information sequences B0, B1, B2, ..., B t;1 The second subsequence of consecutive bits includes the t check sequences P0, P1, P2, ..., P t;1 . Please refer to Fig.13 The above codeword interleaving is also called a specific implementation scheme of channel interleaving.

[0676] It should be noted that the above information sequences of length t×K bits are B0, B1, B2, ..., B t;1 Perform inner code encoding to obtain t inner code words D0, D1, D2, ..., D t;1 Then the inner codewords are interleaved to obtain the t×N bit interleaved sequence B0, B1, B2, …, B t;1 ,P0,P1,P2,…,P t;1 In some possible scenarios, the above inner code (N, K) encoding and t inner code codewords are interleaved and combined to be referred to as inner code (t×N, t×K) encoding. A person skilled in the art can distinguish between the (N, K) encoding and the (t×N, t×K) encoding according to the context, and will not be described in detail here.

[0677] It should be noted that the above t codewords D0, D1, D2, ..., D t;1, which is obtained by inner code encoding of t×K bits in the same second data stream; it can also be obtained by inner code encoding from multiple second data streams, for example, t / 2 inner code words are obtained by inner code encoding of t / 2×K bits in one second data stream, and another t / 2 inner code words are obtained by inner code encoding of t / 2×K bits in another second data stream. The specific implementation method is known to ordinary technicians in this field and will not be repeated here.

[0678] Implementation method 3: Inner code encoding uses an FEC code with an information length of K=120 bits and a codeword length of N=128 bits.

[0679] Consider an FEC code with an information length of K = 120 bits and a codeword length of N = 128 bits, such as the Hamming (128, 120) code. For another example, the 120-bit data to be encoded is represented as B[119:0], and each consecutive 2 bits are bit-XORed to obtain 1-bit data C[i], and a total of 60 bits of data are obtained, represented as C[59:0]. Among them, C[i] = B[2*i]^B[2*i+1], 0≤i≤59. Then C[59:0] is used as the information data for Hamming (68, 60) encoding to obtain 8 bits of check data, represented as P[7:0]. Finally, B[119:0] and P[7:0], a total of 128 bits, are concatenated as the output of the inner code encoding, represented as D[127:0]. Among them, D[119:0] comes from B[119:0], and D[127:120] comes from P[7:0].

[0680] Considering the 800GE scenario and using PAM4 modulation, data processing obtains 4 PAM modulation symbol streams. With the first indicator of bit length, the baud rate of the PAM4 modulation symbol stream is The baud rate value is about 725.3333 times the reference clock frequency value 156.25M. Considering that 725.3333 is not an integer, the smallest positive integer greater than 725.3333 is 726. Therefore, considering each Bit insertion The baud rate of the PAM4 modulation symbol stream under the first identifier of bit length is 113.4375Gbaud, and its baud rate value is 726 times the reference clock frequency value 156.25M.

[0681] Considering the 800GbE scenario, the baud rate of the PAM4 modulation symbol stream is have 113.4375, at this time consider and is an integer multiple of the inner code information length K, and the frame synchronization and inner code word synchronization operations at the receiving end have low complexity. Typically,

[0682] Fig.23 FIG. 1 is another schematic diagram of another implementation method of data processing in the embodiment of the present application. Fig.23 , the specific data processing flow is introduced below:

[0683] A first identifier is periodically inserted into each of the m=32 first FEC-encoded data streams to obtain a total of m=32 second data streams. Specifically, a first identifier is periodically obtained from each of the data streams. bits and insert bits long, so that each second data stream has bits exist The first identifier is bits long.

[0684] Each of the m=32 second data streams is inner-coded to obtain m=32 third data streams. Specifically, each K=120 information bits in each second data stream are inner-coded, that is, S=8 check bits are added to obtain a total of N=128 bits of inner code words.

[0685] For each n of the m=32 third data streams HM = 8 third data streams are processed with the third data including PAM4 modulation to obtain a total of Y = m / n HM = 4 modulation symbol streams. More specifically, each of the 8 third data streams among the 32 third data streams is firstly subjected to channel interleaving to obtain 1 channel interleaved data stream, and a total of 4 channel interleaved data streams are obtained. Fig.23 ,For 800GE scenario, data processing includes 4 data sub-processing, namely Fig.23 Data sub-processing 0, data sub-processing 1, data sub-processing 2, and data sub-processing 3 in the data sub-processing. Each data sub-processing includes 1 channel interleaving. The channel interleaving obtains 1 inner codeword of length 128 bits from each of the 8 input third data streams, a total of 8 inner codewords, and polls (Round-Robin) to obtain 2 bits from each inner codeword as the bits on the data stream after the channel interleaving, so as to obtain 1024 consecutive bits on the data stream after the channel interleaving. The channel interleaving is also called 8-way Hamming codeword interleaver, or inner code codeword interleaving. Then, PAM4 modulation is performed on the 4 data streams after the channel interleaving to obtain Y=4 modulation symbol streams.

[0686] Fig.24Schematic diagram of a structure of the first identifier in the embodiment of the present application. For example, insert the cycle The specific structure of the first identifier with a bit length is introduced. Fig.24 As shown, for each of the m=32 data streams encoded by the first FEC, a periodic insertion The first identification of the bit results in a total of m=32 second data streams. The first bit marker contains the bit length The synchronization subsequences contained in the 8 first identifiers in the 8 second data streams corresponding to each data sub-processing are, that is, Fig.24 Synchronous subsequence 0, synchronous subsequence 1, ..., synchronous subsequence 7 in the total bits can be used for frame synchronization at the receiving end.

[0687] In some specific applications, the The synchronization subsequence of bits is located in the second data stream. The first consecutive bit positions. Fig.24 As shown, this embodiment is based on The specific bit patterns of the 8 synchronization subsequences are shown in Table 14.

[0688] Table 14

[0689]

[0690] Fig.25 Schematic diagram of a structure of a synchronization sequence after channel interleaving in an embodiment of the present application. It should be noted that the specific bit patterns of the 8 synchronization subsequences are not exactly the same. Fig.25 The 8 synchronization subsequences are After inner code encoding and inner code codeword interleaving, the bits are located in 48 consecutive bits in the corresponding channel interleaved data stream, and the specific bit pattern is 01011001010100100110010010100110101010110011011 (transmitted from left to right). The 48 bits can be used for frame synchronization at the receiving end, also known as frame synchronization sequence, or simply synchronization sequence. Here, the leftmost bit in the bit pattern is sent first in actual transmission. The synchronization sequence of 48 consecutive bits in the corresponding channel interleaved data stream can be expressed in hexadecimal, which is 0x9A, 0x4A, 0x26, 0x65, 0xB5, 0xD9 (among the 8 bits within a byte, the LSB is transmitted first). It should be noted that although the specific bit patterns of the 8 synchronization subsequences are not exactly the same, the specific bit patterns of the 4 synchronization sequences corresponding to the data streams after the 4 channels are interleaved are the same, namely 0x9A, 0x4A, 0x26, 0x65, 0xB5, and 0xD9.

[0691] Implementation 4:

[0692] Fig.26 Another structural diagram of the first identifier in the embodiment of the present application. Based on implementation mode 3, each of the m=32 first FEC-encoded data streams is periodically inserted with The first identifier of the bit obtains a total of m=32 second data streams. The lengths of the synchronization subsequences contained in the first identifiers periodically inserted in the m=32 second data streams are not completely equal. Fig.26 The specific structure of 8 synchronization subsequences in each data subprocess is given.

[0693] The specific bit patterns of the 8 synchronization subsequences are shown in Table 15. The lengths of the 8 synchronization subsequences are not all the same. Among them, the bit lengths of synchronization subsequence 0, synchronization subsequence 1, synchronization subsequence 2, and synchronization subsequence 3 are 8, and the bit lengths of synchronization subsequence 4, synchronization subsequence 5, synchronization subsequence 6, and synchronization subsequence 7 are 4.

[0694] Table 15

[0695]

[0696] Fig. 27 FIG. 2 is another structural diagram of a synchronization sequence after channel interleaving in an embodiment of the present application. Fig. 27, the 8 synchronization subsequences, totaling 48 bits, correspond to 48 bits in the corresponding channel interleaved data stream after inner code encoding and inner code codeword interleaving. The 48 bits can be used for frame synchronization at the receiving end, also known as a frame synchronization sequence, or simply a synchronization sequence. The 48-bit synchronization sequence is not arranged continuously in the channel interleaved data stream, and it includes 2 partial bit sequences, the first partial bit sequence includes 24 bits, and the second partial bit sequence includes 24 bits. The first partial bit sequence and the second partial bit sequence are separated by 8 bits (i.e., one byte). Here, the interval between two consecutive bits is defined as 0 bits.

[0697] In some specific applications, the specific value of the first part of the 24-bit bit sequence is 0101100101010010 01100100 (transmitted from left to right), and the specific value of the second part of the 24-bit bit sequence is 10100110 10101101 10011011 (transmitted from left to right). Here, the leftmost bit in the bit pattern is sent first in the actual transmission. The first part of the bit sequence and the second part of the bit sequence can be expressed in hexadecimal, the first part of the bit sequence is 0x9A, 0x4A, 0x26, and the second part of the bit sequence is 0x65, 0xB5, 0xD9. It should be noted that the specific bit patterns of the four synchronization sequences corresponding to the data streams after the four channels are interleaved are the same, all of which are 0x9A, 0x4A, 0x26, 0x65, 0xB5, 0xD9.

[0698] It should be noted that, in the 48-bit synchronization sequence, the first part of the bit sequence contains 24 bits, the second part of the bit sequence contains 24 bits, and the first part of the bit sequence and the second part of the bit sequence are separated by 8 bits (one byte). Fig.16 It can be seen that by adopting the data processing method of this embodiment, the relevant computer architecture used for receiving end synchronization can reuse the synchronization hardware implementation architecture in the existing 100GE 802.3bj and 400GE 802.3bs standards, which is easy to implement.

[0699] Implementation 5:

[0700] Fig.28 This is another schematic diagram of data processing in the embodiment of the present application. Based on Implementation 3, the 1.6TE scenario is considered and PAM4 modulation is adopted. Data processing obtains 8 PAM modulation symbol streams. With the first indicator of bit length, the baud rate of the PAM4 modulation symbol stream is Its baud rate value is about 725.3333 times the reference clock frequency value 156.25M. Considering that 725.3333 is not an integer, the smallest positive integer greater than 725.3333 is 726. Therefore, considering the period insertion The baud rate of the PAM4 modulation symbol stream under the first identifier of bit length is 113.4375Gbaud, and its baud rate value is 726 times the reference clock frequency value 156.25M.

[0701] Considering the 1.6TE scenario, the baud rate of the PAM4 modulation symbol stream is have 113.4375, at this time consider and is an integer multiple of the inner code information length K, and the frame synchronization and inner code word synchronization operations at the receiving end have low complexity. Typically, For the specific data processing process, please refer to Fig.28 For understanding, the data processing includes 8 data sub-processings, namely data sub-processings 0 to 7. The specific operation of each data sub-processing can be understood by referring to Implementation 3.

[0702] Implementation 6:

[0703] Fig.29 Another structural diagram of the first identifier in the embodiment of the present application. Based on implementation mode 3, each of the m=32 first FEC-encoded data streams is periodically inserted with The first identifier of the bit results in a total of m=32 second data streams. Fig.29 As shown, each second data stream The first bit marker contains the bit length Each data sub-processing corresponds to 8 second data streams. The first bit marker contains the bit length The synchronization subsequence of Fig.29 The specific bit patterns of the 8 synchronization subsequences are the same. It should be noted that based on implementation mode 6, it is not necessary to perform the channel interleaving operation during data processing, that is, implementation mode 6 is decoupled from the channel interleaving operation.

[0704] More specifically, the bit length of each synchronization subsequence is They are not all arranged continuously in the first identifier. Each of the synchronization subsequences includes 2 partial bit sequences, the first partial bit sequence includes 24 bits, the second partial bit sequence includes 24 bits, and the first partial bit sequence and the second partial bit sequence are separated by 8 bits. Here, the interval between two consecutive bits is defined as 0 bits.

[0705] In some specific applications, the first part of the bit sequence with a length of 24 bits has specific values: 0x9A, 0x4A, 0x26, and the second part of the bit sequence with a length of 24 bits has specific values: 0x65, 0xB5, 0xD9.

[0706] In some specific applications, the specific data processing scheme of the present invention is adopted, and the receiving end can perform frame synchronization based on the 8 synchronization subsequences with a total of 384 bits, that is, the receiving end performs frame synchronization based on the received data stream at a rate of about 200G. In other specific applications, the receiving end can first perform channel deinterleaving on the received data stream at a rate of about 200G according to the channel interleaving rules to obtain 8 channel deinterleaved data streams, wherein each channel deinterleaved data stream has a rate of about 25G, and then synchronize each channel deinterleaved data stream according to the known synchronization subsequence. It should be noted that when the receiving end adopts the above-mentioned synchronization scheme based on the 25G rate, the 8 channel deinterleaved data streams are not completely aligned, and the order of the channel deinterleaved data streams in the 8 channel deinterleaved data streams can be determined according to the position of the synchronization subsequence obtained after the synchronization of each channel deinterleaved data stream, so as to achieve the correct recovery of the order of the data stream and the synchronization alignment.

[0707] Implementation 7:

[0708] Fig.30 This is another schematic diagram of data processing in the embodiment of the present application. Based on the third embodiment, insert Before the first identifier of the bits, a cyclic shift operation is performed on the data in the data stream. Fig.30 As shown, the cyclic shift operation cyclically shifts each K=120 bits to the right to improve the anti-burst performance of the overall concatenated code.

[0709] Implementation 8:

[0710] Fig.31 This is another schematic diagram of data processing in the embodiment of the present application. Based on the third embodiment, insert Before the first identifier of the bits, a convolution interleaving operation is performed on the data in the data stream. Fig.31As shown, for every 8 first data streams in the 32 first data streams, convolution interleaving is first performed to obtain 8 convolution interleaved data streams, and then cyclic shift is performed for every K=120 bits, and then the first identifier is periodically inserted to obtain 8 second data streams, and then inner code encoding is performed to obtain 8 third data streams, and then channel interleaving (inner code word interleaving) is performed to obtain 1 channel interleaved data stream. Convolution interleaving is also performed before inner code encoding, which improves the performance of the overall cascade code under AWGN.

[0711] Implementation 9:

[0712] Fig.32 Schematic diagram of another implementation of data processing in the embodiment of the present application. Based on implementation 8, in each data sub-processing, two input data streams are respectively subjected to convolution interleaving processing to obtain two convolution interleaved data streams. Each convolution interleaved data stream is subjected to data distribution to obtain four distributed first data streams, and a total of eight distributed first data streams are obtained. The data distribution is based on a granularity of α0 bits. Fig.32 As shown, when the data stream after convolution interleaving is grouped by α0 bits, for 4 groups of consecutive 4×α0 bits in total, the 0th group of α0 bits is sent to the 0th data stream of the 4 distributed first data streams, the 1st group of α0 bits is sent to the 1st data stream of the 4 distributed first data streams, the 2nd group of α0 bits is sent to the 2nd data stream of the 4 distributed first data streams, and the 3rd group of α0 bits is sent to the 3rd data stream of the 4 distributed first data streams. Typically, the distribution bit granularity is α0=120.

[0713] It should be noted that for the 800GE scenario, data processing includes four data sub-processings, such as Fig.32 As shown. Each data sub-processing corresponds to 2 input data streams. The 2 input data streams correspond to a bit rate of about 200G per second, that is, each input data stream corresponds to a bit rate of about 100G per second. Correspondingly, the first data stream after distribution corresponds to a bit rate of about 25G per second.

[0714] It should also be noted that when the distribution bit granularity is α0=120, Fig.32The data processing shown can be described as two input data streams are convolutionally interleaved respectively to obtain a total of two convolutionally interleaved data streams. Four bit groups are obtained on each convolutionally interleaved data stream, and the length of each bit group is 120 bits. Each bit group is cyclically shifted and inner-coded to obtain four inner-code codewords. A total of eight bit groups are obtained from the two convolutionally interleaved data streams, which are cyclically shifted and inner-coded to obtain a total of eight inner-code codewords, and then channel interleaved to obtain 1024 bits on the channel interleaved data stream.

[0715] It should be noted that for the 1.6TE scenario, the data processing includes 8 data sub-processings, each of which corresponds to 2 input data streams. The 2 input data streams correspond to a bit rate of about 200G per second, that is, each input data stream corresponds to a bit rate of about 100G per second. Correspondingly, the first data stream after distribution corresponds to a bit rate of about 25G per second.

[0716] Implementation 10:

[0717] Fig.33 This is another schematic diagram of the data processing in the embodiment of the present application. Based on Implementation 8, the data processing includes 4 input data streams, and each data sub-processing includes 1 input data stream. Each input data stream is subjected to convolution interleaving processing to obtain 1 convolution interleaved data stream. The 1 convolution interleaved data stream is subjected to data distribution to obtain 8 distributed first data streams. The data distribution is based on a granularity of α0 bits. Fig.33 As shown, when the α0 bits are grouped in the first data stream after convolution interleaving, for 8 consecutive groups of 8×α0 bits in total, the 0th group of α0 bits is sent to the 0th data stream of the 8 distributed first data streams, the 1st group of α0 bits is sent to the 1st data stream of the 8 distributed first data streams, ..., the 7th group of α0 bits is sent to the 7th data stream of the 8 distributed first data streams. Typically, the distribution bit granularity is α0=120.

[0718] It should be noted that for the 800GE scenario, data processing includes four data sub-processings, such as Fig.33 As shown, the data stream input of each data subprocessing is 1 data stream, corresponding to a bit rate of about 200G per second. Correspondingly, the first data stream after distribution corresponds to a bit rate of about 25G per second.

[0719] It should be noted that for the 1.6TE scenario, the data processing includes 8 data sub-processings, wherein the data stream input of each data sub-processing is 1 data stream, corresponding to a bit rate of about 200G per second. Correspondingly, the first data stream after distribution corresponds to a bit rate of about 25G per second.

[0720] It should be noted that if Fig.32 The input data stream shown in FIG. 1 is distributed after convolution interleaving to obtain four first data streams, such as Fig.33 The input data stream shown is distributed to obtain 8 first data streams after convolution interleaving, which can be understood as each first data stream has undergone convolution interleaving.

[0721] It should be noted that in Embodiments 3 to 10, each of the eight second data streams includes a periodically inserted Bit first flag, total length is Bit. Part of the bits are used for frame synchronization at the receiving end, that is, as the above-mentioned frame synchronization sequence, and the remaining bits can be used to transmit link information and / or control information, including the receiving end status, FEC status, etc., also known as the status field. Specifically, in order to improve the accuracy of the transmitted link information and / or control information, the Among the bits except the remaining bits of the frame synchronization sequence, bits are used to indicate the type of link information and / or control information, bits are used to indicate the specific content of the indication link information and / or control information, bits are used for cyclic redundancy check CRC (Cyclic Redundancy Check). Typically, The value of is 8, 16 or 32. In other specific applications, multiple frames are needed to coordinately transmit the link indication information and / or control information to further improve the accuracy of the transmitted information. Bit bits are used to refer to the multiple frames, the bits are also called multi-frame synchronization signals. Typically,

[0722] In some specific applications, such as Fig.26 The 8 synchronization subsequences in total of 48 bits are used as the frame synchronization sequence, which are distributed in the 8 second data streams, wherein each of the 4 second data streams contains 8 bits in the frame synchronization sequence (i.e., synchronization subsequences 0-3), and each of the other 4 second data streams contains 4 bits in the frame synchronization sequence (i.e., synchronization subsequences 4-7). The 4 bits of each synchronization subsequence in the synchronization subsequences 4-7 are located in the The 0th, 1st, 4th and 5th bit positions in the bit first identifier (i.e., the first identifier 4, the first identifier 5, the first identifier 6, and the first identifier 7) can be understood with reference to Table 15. The 2nd, 3rd, 6th and 7th bit positions in the first identifier 4, the first identifier 5, the first identifier 6, and the first identifier 7 are a total of 16 bit positions, of which 8 bit positions are used for the 8 bits required for the CRC8 check, or 8 bit positions are used for the 8 bits required for the type of the indication link information and / or control information, or 8 bit positions are used for the 8 bits required for the multi-frame synchronization signal.

[0723] It should be noted that based on the above Figure 7 The data processing method applied to the transmitting end is shown in the figure. Correspondingly, the data processing method applied to the receiving end includes the following steps. First, the received Y modulation symbol streams are subjected to the fourth data processing to obtain m fourth data streams. The characteristics and generation method of the modulation symbol stream can be referred to above. Figure 7 The relevant introduction of the illustrated embodiment will not be repeated here. After the fourth data processing including demodulation is performed on the Y modulation symbol streams, m fourth data streams are obtained, wherein the fourth data processing performed by the receiving end is the inverse operation of the third data processing performed by the transmitting end. Then, frame synchronization is performed on each fourth data stream. It should be understood that the receiving end performs an identifier lock according to the identifier added by the transmitting end in the data stream to determine the boundary (boundary) of each frame (P+W bits) in the fourth data stream, thereby achieving codeword synchronization and / or frame synchronization.

[0724] It should be understood that after completing codeword synchronization and / or frame synchronization, the receiving end will also perform the fifth data processing on the m fourth data streams, wherein the fifth data processing can be understood as the inverse operation of the second data processing performed by the transmitting end. For example, the fifth data processing includes but is not limited to inner code decoding and cascade deinterleaving, wherein cascade deinterleaving includes convolutional deinterleaving, which will not be described one by one here.

[0725] The following is an introduction to the data processing device provided in the embodiments of the present application.

[0726] Fig.34 FIG. 1 is a schematic diagram of a structure of a data processing device applied to a sending end in an embodiment of the present application. Fig.34 As shown, the data processing device includes a first data processing unit 701, a second data processing unit 702 and a third data processing unit 703. The first data processing unit 701 is used to execute the above Figure 3 The operation of step 301 in the embodiment shown or the above Figure 7 The operation of step 401 in the embodiment shown. The second data processing unit 702 is used to perform the above Figure 3 The operation of step 302 in the embodiment shown or the above Figure 7The operation of step 402 in the embodiment shown. The third data processing unit 703 is used to perform the above Figure 3 The operation of step 303 in the embodiment shown or the above Figure 7 The operation of step 403 in the embodiment shown in the figure can be referred to above for specific operation. Figure 3 and Figure 7 The relevant introduction of the illustrated embodiment will not be repeated here.

[0727] Fig.35 FIG. 1 is a schematic diagram of a structure of a data processing device applied to a receiving end in an embodiment of the present application. Fig.35 As shown, the data processing device includes a data processing unit 801 and a synchronization unit 802. The data processing unit 801 is used to perform the above Figure 6 The operation of step 601 in the embodiment shown. The synchronization unit 802 is used to perform the above Figure 6 The operation of step 602 in the embodiment shown in the figure can be referred to above for specific operations. Figure 6 The relevant introduction of the illustrated embodiment will not be repeated here.

[0728] It should be understood that the device provided in the present application can also be implemented in other ways. For example, the unit division in the above-mentioned device is only a logical functional division, and there may be other division methods in actual implementation, for example, multiple units or components can be combined or integrated into another system. In addition, each functional unit in each embodiment of the present application can be integrated in a processing unit, or it can be each independent physical unit, or two or more functional units can be integrated in a processing unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units.

[0729] Fig.36 FIG. 2 is another structural diagram of a data processing device in an embodiment of the present application. Fig.36 As shown, the data processing device includes a processor 901, a memory 902 and a transceiver 903. The processor 901, the memory 902 and the transceiver 903 are connected to each other through a line. Among them, the memory 902 is used to store program instructions and data. Specifically, the processor 901 is used to perform data processing operations, and the transceiver 903 is used to perform data transmission and reception operations. In a possible implementation, the processor 901 may include the above Fig.34 The first data processing unit 701, the second data processing unit 702 and the third data processing unit 703 are shown. In another possible implementation, the processor 901 may include the above Fig.35 A data processing unit 801 and a synchronization unit 802 are shown.

[0730] It should be noted that the above Fig.36The processor shown in the figure may be a general-purpose central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. Fig.36 The memory shown in can store operating systems and other applications. When the technical solutions provided by the embodiments of the present application are implemented by software or firmware, the program code for implementing the technical solutions provided by the embodiments of the present application is stored in the memory and executed by the processor. In one embodiment, the processor may include a memory. In another embodiment, the processor and the memory are two independent structures.

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

[0732] Those skilled in the art will appreciate that all or part of the steps to implement the above embodiments may be accomplished by hardware, or by a program to instruct the relevant hardware to accomplish the steps, and the program may be stored in a computer-readable storage medium, and the storage medium mentioned above may be a read-only memory, a random access memory, etc. Whether the above functions are executed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel 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.

[0733] When software is used for implementation, the method steps described in the above embodiments 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 instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website site, a computer, a server, or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server, or data center. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or a data center that includes one or more available media integrations. The available medium may be a magnetic medium, (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk Solid State Disk (SSD)), etc.

Claims

1. A data processing method, characterized in that: include: Performing a first data processing on a first data stream that has undergone a first forward error correction (FEC) encoding to obtain a second data stream, wherein the second data stream has undergone a second FEC encoding, and each codeword after the second FEC encoding includes N bits, where N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, and S is an integer greater than or equal to 1; Performing second data processing on the second data stream to obtain a third data stream, the third data stream comprising at least one bit sequence, each of the bit sequences comprising P+W bits, the P bits in each of the bit sequences coming from the second data stream, the W bits in each of the bit sequences being added bits, P=N×b, and b being an integer greater than or equal to 1; The third data stream is subjected to a third data processing to obtain Y modulation symbol streams, where Y is an integer greater than or equal to 1, each modulation symbol stream is modulated, and a baud rate value of each modulation symbol stream is an integer multiple of 156.25M.

2. The method according to claim 1, characterized in that: The baud rate value of each modulation symbol stream is 113.4375 Gbaud.

3. The method according to any one of claims 1 to 2, characterized in that: W=1024。 4. The method according to any one of claims 1 to 2, characterized in that: N=128, K=120.

5. The method according to any one of claims 1 to 2, characterized in that: The second data stream is also subjected to convolution interleaving before the second FEC encoding, and the convolution interleaving includes delaying the input data stream according to r delay lines, where r is an integer greater than 1, and each delay line includes a different number of storage units. The delay line with the smallest number of storage units includes 0 storage units, and the difference in the number of storage units between each two adjacent delay lines is Q. Each storage unit is used to store d bits, and the bits in the input data stream are input into the r delay lines in sequence according to the sequence numbers of the r delay lines. Each delay line inputs d bits at a time and outputs d bits at a time. After convolution interleaving, the continuous r*d bits in the output data stream include d bits output by each delay line, where Q is an integer greater than or equal to 1, and d is an integer greater than or equal to 1.

6. The method according to any one of claims 1 to 2, characterized in that: The rate of the first data stream is 850 Gbps, The a is an integer greater than or equal to 1, the G represents 10^9, and the M represents 10^6.

7. The method according to claim 6, characterized in that N=128,K=120, 8. The method according to any one of claims 1-2, characterized in that: P=1088×W.

9. The method according to any one of claims 1-2, characterized in that: The W bits include at least one frame synchronization sequence having a length of 48 bits.

10. The method according to claim 9, characterized in that The 48 bits of the frame synchronization sequence are continuous in the W bits.

11. The method according to claim 9 or 10, characterized in that: The values ​​of the 48 bits of the frame synchronization sequence include 0x9A, 0x4A, 0x26, 0x65, 0xB5 and 0xD9.

12. The method according to any one of claims 1-2, characterized in that: The W bits are added alignment flags.

13. The method according to claim 12, characterized in that The alignment flag includes a padding bit and / or a status field.

14. The method according to any one of claims 1 to 2, characterized in that The second data stream is also subjected to at least one of identification locking, channel deflection processing and channel reordering before being subjected to the second FEC encoding; and / or, After the second FEC encoding, the second data stream also undergoes at least one of channel interleaving and scrambling.

15. The method according to any one of claims 1-2, characterized in that: The step of performing a first data processing on the first data stream after the first forward error correction (FEC) encoding to obtain the second data stream comprises: Performing a first data processing on a plurality of first data streams that have undergone a first forward error correction (FEC) encoding to obtain m second data streams, where m is an integer greater than 1, and each of the second data streams has undergone a second FEC encoding; The performing second data processing on the second data stream to obtain a third data stream includes: Performing second data processing on the m second data streams respectively to obtain m third data streams, each of the third data streams including at least one bit sequence; The performing third data processing on the third data stream to obtain Y modulation symbol streams includes: Perform third data processing on the m third data streams to obtain Y modulation symbol streams.

16. The method according to claim 15, characterized in that Performing first data processing on the multiple first data streams to obtain m second data streams includes: Performing second FEC encoding on each group of eight first data streams in the plurality of first data streams to obtain each group of eight encoded data streams; Channel interleaving is performed on each group of 8 coded data streams to obtain 1 second data stream, so as to obtain the m second data streams.

17. The method according to claim 16, characterized in that N=128, K=120, channel interleaving is performed on each group of 8 coded data streams to obtain a second data stream comprising: Obtaining one inner code word with a length of 128 bits from each coded data stream of each group of 8 coded data streams to obtain a total of 8 inner code words; Polling obtains 2 bits from each of the 8 inner code words to obtain 1024 consecutive bits in the second data stream.

18. The method according to claim 15, characterized in that Each of the second data streams is also cyclically shifted before being encoded by the second FEC.

19. The method according to claim 18, characterized in that Performing first data processing on the plurality of first data streams includes: Performing convolution interleaving on the m first data streams respectively; Distributing each first data stream after convolution interleaving to obtain 8 distributed first data streams, so as to obtain a total of 8×m distributed first data streams; Cyclic shift is performed on the distributed 8×m first data streams respectively; The second FEC encoding is performed on the 8×m first data streams after the cyclic shift.

20. The method according to claim 15, characterized in that Performing first data processing on the multiple first data streams to obtain m second data streams includes: Distribute each of the m first data streams to obtain 8 distributed first data streams, so as to obtain a total of 8×m distributed first data streams; Performing second FEC encoding on the distributed 8×m first data streams respectively to obtain 8×m encoded data streams; Codewords are combined for every 8 coded data streams in the 8×m coded data streams to obtain one second data stream, so as to obtain a total of m second data streams.

21. The method according to any one of claims 1-2, characterized in that: Y=4, or Y=8.

22. A data processing method, characterized in that: include: The received Y modulation symbol streams are subjected to fourth data processing to obtain m fourth data streams, wherein each of the fourth data streams is demodulated, the Y modulation symbol streams are obtained by performing third data processing on m third data streams, each of the modulation symbol streams is modulated, the m third data streams are obtained by performing second data processing on m second data streams respectively, the m second data streams are obtained by performing first data processing on multiple first data streams subjected to first forward error correction FEC encoding, the Y is an integer greater than or equal to 1, the m is an integer greater than 1, each of the second data streams is subjected to second FEC encoding, the Each codeword after the second FEC encoding includes N bits, N=K+S, K represents the number of information bits, S represents the number of check bits, K is an integer greater than or equal to 1, S is an integer greater than or equal to 1, each of the third data streams includes at least one bit sequence, each of the bit sequences includes P+W bits, P bits in each of the bit sequences come from the second data stream, W bits in each of the bit sequences are added bits, P=N×b, b is an integer greater than or equal to 1, and the baud rate value of each of the modulation symbol streams is an integer multiple of 156.25M; Frame synchronization is performed on each of the fourth data streams according to W bits in each of the fourth data streams.

23. The method according to claim 22, characterized in that The baud rate value of each modulation symbol stream is 113.4375 Gbaud.

24. The method according to any one of claims 22-23, characterized in that: W=1024。 25. The method according to any one of claims 22-23, characterized in that: N=128, K=120.

26. The method according to any one of claims 22-23, characterized in that The rate of the first data stream is 850 Gbps, The a is an integer greater than or equal to 1, the G represents 10^9, and the M represents 10^6.

27. The method according to claim 26, characterized in that N=128,K=120, 28. The method according to any one of claims 22-23, characterized in that: P=1088×W.

29. The method according to any one of claims 22-23, characterized in that: Y=4, or Y=8.

30. A data processing device, characterized in that: The device includes a processor and a transceiver, the transceiver is used to perform data transmission and reception operations, and the processor is used to execute the method according to any one of claims 1-29.

31. A chip, characterized in that: The chip includes a processor and a transceiver, the transceiver is used to perform data transmission and reception operations, and the processor is used to execute the method according to any one of claims 1-29.

32. An optical module, characterized in that: The optical module includes a processor and a transceiver, the transceiver is used to perform data transmission and reception operations, and the processor is used to execute the method according to any one of claims 1-29.

Citation Information

Patent Citations

  • Data encoding method, data decoding method and communication device

    CN114257334A

  • Soft FEC with parity check

    US20200220659A1