A data encoding method, a data decoding method and related equipment
By independently FEC encoding the header and payload at the sending end and decoding them separately at the receiving end, the processing delay problem caused by the joint encoding of the header and payload in the existing technology is solved, and more efficient data parsing and system delay reduction are achieved.
Patent Information
- Application Number
- CN202110921214.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-11
- Publication Date
- 2025-09-26
- Estimated Expiration
- 2041-08-11
AI Technical Summary
In data exchange networks, the existing technology of jointly encoding the header and payload followed by FEC decoding results in a large processing delay at the receiving end and cannot effectively reduce the end-to-end exchange delay.
The sending end performs FEC encoding on the header and payload separately, generating independent first and second codewords, and decoding them separately on the receiving end, allowing early parsing of the header without waiting for the payload decoding to be completed.
Through independent encoding and decoding, the processing delay of the receiving device is reduced, and the data analysis efficiency and system scalability are improved.
Smart Images

Figure CN115706619B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communications, and in particular to a data encoding method, a data decoding method, and related equipment. Background Art
[0002] In current data center networks and other switching networks, data exchange is often transmitted using a "header + payload" format. As traffic in switching networks continues to increase, the demand for transmission performance continues to rise, necessitating the introduction of forward error correction (FEC) to mitigate errors. In many cases, FEC encoding and decoding delays often account for more than one-third of switching latency. Effectively reducing end-to-end switching latency is a major challenge and pain point in switching network research.
[0003] In the current solution, the sender performs FEC encoding on the header and payload to be sent, generating one or more codewords. Because headers contain very little data, they only account for a small portion of the codeword they contain. Upon receiving the codewords from the sender, the receiver first decodes all codewords and, after decoding, performs routing calculations based on the data in the header. However, routing calculations do not require the data in the payload, so waiting until all codewords have been decoded before performing routing calculations results in significant processing delays at the receiver. Summary of the Invention
[0004] The embodiments of the present application provide a data encoding method, a data decoding method, and related devices, which reduce the processing delay of a receiving device.
[0005] In a first aspect, an embodiment of the present application provides a data decoding method. The method includes multiple steps. First, a receiving device receives at least one first codeword and at least one second codeword sent by a transmitting device. The first codeword is obtained by the transmitting device performing FEC encoding on the header of the data to be transmitted, and the second codeword is obtained by the transmitting device performing FEC encoding on the payload of the data to be transmitted. In addition, the first codeword is received by the receiving device before the second codeword. Afterwards, the receiving device performs FEC decoding on the first codeword and the second codeword respectively, and performs data parsing on the header obtained after FEC decoding. The starting time of the data parsing by the receiving device is before the ending time of the FEC decoding of the second codeword by the receiving device.
[0006] In this embodiment, the first codeword corresponding to the header and the second codeword corresponding to the payload are independent of each other. The receiving device can parse the header data after performing FEC decoding on the first codeword to obtain the header, without having to wait for FEC decoding of the second codeword to complete before starting to parse the header data. In other words, the period during which the receiving device parses the header data and performs FEC decoding on the second codeword partially overlaps, reducing processing delays on the receiving device.
[0007] In some possible implementations, the length of the first codeword is smaller than the length of the second codeword. It should be understood that while the error correction capability of a short code is lower than that of a long code, the decoding latency of a short code is shorter than that of a long code. Therefore, using a short code for FEC decoding of the header and a long code for FEC decoding of the payload can reduce the decoding latency of the receiving device.
[0008] In some possible implementations, the encoding overhead of the first codeword is greater than the encoding overhead of the second codeword. Because using a short code for FEC encoding in the header can result in insufficient error correction capability, increasing the encoding overhead of the first codeword can improve the error correction capability of the first codeword. Although the encoding overhead of the first codeword is required to be greater than that of the second codeword, the overall proportion of the encoding overhead of the first codeword is also small due to the relatively small size of the header, making it an acceptable cost.
[0009] In some possible implementations, the first codeword is decoded using a soft-decision FEC method, while the second codeword is decoded using a hard-decision FEC method. In this manner, if the transmitting device uses a short code to perform FEC encoding on the header to obtain the first codeword and a long code to perform FEC encoding on the payload to obtain the second codeword, and the error correction capability of the short code is inferior to that of the long code, then performing FEC decoding on the first codeword using a soft-decision method can reduce the bit error rate, thereby compensating for the insufficient error correction capability of the short code.
[0010] In some possible implementations, the starting moment of data parsing by the receiving device is before the starting moment of FEC decoding of the second codeword by the receiving device. Specifically, if the receiving device has only one decoder, and the decoder performs FEC decoding on the first codeword received first, even if the receiving device receives the second codeword before the FEC decoding of the first codeword is completed, it can only start decoding the second codeword after the decoding of the first codeword is completed. In this case, the starting moment of data parsing for the header may be before the starting moment of FEC decoding for the second codeword. In addition, the receiving device can also perform data parsing on the header while decoding the first codeword, that is, as long as part of the header information is decoded, the information of this part of the header can be parsed, without having to wait until the first codeword is completely decoded before starting to parse the header, thereby improving the efficiency of header parsing.
[0011] In some possible implementations, the receiving device parsing the header obtained after FEC decoding includes: the receiving device obtaining routing information from the header obtained after FEC decoding, and performing routing calculation based on the routing information. In this implementation, a specific implementation method for parsing the header is provided, thereby improving the practicality of this solution.
[0012] In some possible implementations, the method further includes: the receiving device caches the payload obtained after FEC decoding based on the routing calculation result. If the payload is not for the local node, the payload is stored in the forwarding port queue. If the payload is for the local node, the payload is stored in its own processing queue, thereby enhancing the scalability of the solution.
[0013] In some possible implementations, the method further includes: receiving, by the receiving device, a preamble sent by the transmitting device, where the preamble is received by the receiving device before the first codeword. The receiving device may determine a starting position of the first codeword based on a delimiter in the preamble, so as to facilitate subsequent FEC decoding of the first codeword and the second codeword by the receiving device.
[0014] In a second aspect, an embodiment of the present application provides a data encoding method. The method includes multiple steps. First, the transmitting device performs FEC encoding on the header of the data to be transmitted to obtain at least one first codeword, and performs FEC encoding on the payload of the data to be transmitted to obtain at least one second codeword. Then, the transmitting device sends at least one first codeword and at least one second codeword to the receiving device. The header obtained after the first codeword is FEC-decoded by the receiving device is parsed by the receiving device. The sending order of the first codeword is before the sending order of the second codeword, so that the starting time of the data parsing of the header obtained after FEC decoding by the receiving device is before the ending time of the FEC decoding of the second codeword by the receiving device.
[0015] In some possible implementations, the length of the first codeword is smaller than the length of the second codeword.
[0016] In some possible implementations, the encoding overhead of the first codeword is greater than the encoding overhead of the second codeword.
[0017] In some possible implementations, the first codeword is decoded using a soft-decision FEC decoding method, and the second codeword is decoded using a hard-decision FEC decoding method.
[0018] In some possible implementations, the start time when the receiving end device performs data parsing on the header obtained after FEC decoding is before the start time when the receiving end device performs FEC decoding on the second codeword.
[0019] In some possible implementations, the method further includes: the transmitting device sending a preamble to the receiving device. The preamble is sent before the first codeword, and the preamble is used to indicate a position of the first codeword.
[0020] In a third aspect, the present application provides a decoder, comprising: a receiving unit: configured to receive at least one first codeword and at least one second codeword sent by a transmitting device. The first codeword is obtained by the transmitting device performing FEC encoding on a header in the data to be transmitted. The second codeword is obtained by the transmitting device performing FEC encoding on a payload in the data to be transmitted. The first codeword is received by the receiving device before the second codeword. A decoding unit: configured to perform FEC decoding on the first codeword and the second codeword, respectively, and perform data parsing on the header obtained after FEC decoding. The starting moment of data parsing by the receiving device is before the ending moment of FEC decoding of the second codeword by the receiving device.
[0021] In some possible implementations, the length of the first codeword is smaller than the length of the second codeword.
[0022] In some possible implementations, the encoding overhead of the first codeword is greater than the encoding overhead of the second codeword.
[0023] In some possible implementations, the first codeword is decoded using a soft-decision FEC decoding method, and the second codeword is decoded using a hard-decision FEC decoding method.
[0024] In some possible implementations, the start time of the decoding unit performing data parsing is before the start time of the decoding unit performing FEC decoding on the second codeword.
[0025] In some possible implementations, the decoder is specifically configured to: obtain routing information from a header obtained after FEC decoding, and perform routing calculation based on the routing information.
[0026] In some possible implementations, the decoding unit is further configured to: cache the payload obtained after FEC decoding according to a result of the routing calculation.
[0027] In some possible implementations, the receiving unit is further configured to: receive a preamble sent by the transmitting device, where the preamble is received by the receiving device before the first codeword, and the preamble is used to indicate a position of the first codeword.
[0028] In a fourth aspect, the present application provides an encoder comprising: an encoding unit configured to perform forward error correction (FEC) encoding on a header in data to be transmitted to obtain a first codeword, and to perform FEC encoding on a payload in the data to be transmitted to obtain a second codeword. A transmitting unit configured to transmit the first codeword and the second codeword to a receiving device. The receiving device parses the header obtained by FEC decoding the first codeword. The first codeword is transmitted before the second codeword, so that the starting time for the receiving device to parse the header obtained by FEC decoding is before the ending time for the receiving device to parse the second codeword.
[0029] In some possible implementations, the length of the first codeword is smaller than the length of the second codeword.
[0030] In some possible implementations, the encoding overhead of the first codeword is greater than the encoding overhead of the second codeword.
[0031] In some possible implementations, the first codeword is decoded using a soft-decision FEC decoding method, and the second codeword is decoded using a hard-decision FEC decoding method.
[0032] In some possible implementations, the start time when the receiving end device performs data parsing on the header obtained after FEC decoding is before the start time when the receiving end device performs FEC decoding on the second codeword.
[0033] In some possible implementations, the sending unit is further configured to: send a preamble to the receiving device, where the preamble is sent before the first codeword, and the preamble is used to indicate a position of the first codeword.
[0034] In a fifth aspect, an embodiment of the present application provides a decoding chip, which includes a logic circuit and / or program instructions, and implements the method in any embodiment of the first aspect when the chip is running.
[0035] In a sixth aspect, an embodiment of the present application provides a coding chip, which includes a logic circuit and / or program instructions, and when the chip is running, implements the method in any embodiment of the second aspect.
[0036] In a seventh aspect, embodiments of the present application provide a receiving device, comprising a decoder and a receiver as described in any embodiment of the third aspect, the decoder and the receiver being interconnected via a line. The receiver is configured to receive at least one data symbol sent by a transmitting device, demodulate the at least one data symbol to obtain at least one first codeword and at least one second codeword, and then output the at least one first codeword and at least one second codeword to the decoder.
[0037] In an eighth aspect, embodiments of the present application provide a transmitting device, comprising an encoder and a transmitter as described in any embodiment of the fourth aspect, wherein the encoder and the transmitter are interconnected via a line. The transmitter is configured to modulate at least one first codeword and at least one second codeword output by the encoder to obtain at least one data symbol, and transmit the at least one data symbol to a receiving device.
[0038] In a ninth aspect, an embodiment of the present application provides a communication system, comprising a transmitting device as shown in the eighth aspect above and a receiving device as shown in the seventh aspect above.
[0039] In the tenth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program, wherein the computer program, when executed by hardware, can implement part or all of the steps of any one of the methods in the first or second aspects above.
[0040] In an embodiment of the present application, a transmitting device performs FEC encoding on a header of data to be transmitted to obtain at least one first codeword, and performs FEC encoding on a payload of data to be transmitted to obtain at least one second codeword. The transmitting device then sequentially transmits the first codeword and the second codeword to a receiving device. The receiving device performs FEC decoding on the first codeword and parses the decoded header. Furthermore, the receiving device performs FEC decoding on the second codeword, wherein the receiving device begins parsing the data before the receiving device completes FEC decoding of the second codeword. Through this approach, the first codeword corresponding to the header and the second codeword corresponding to the payload are independent of each other. The receiving device can parse the header immediately after FEC decoding the first codeword to obtain the header, without having to wait for FEC decoding of the second codeword to complete before starting to parse the header. In other words, the time period during which the receiving device parses the header and the time period during which it performs FEC decoding on the second codeword partially overlap, reducing processing latency at the receiving device. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] Figure 1 A schematic diagram of the structure of a communication system used in this application;
[0042] Figure 2 This is a schematic diagram of an embodiment of data encoding and data decoding in this application;
[0043] Figure 3 A schematic diagram of the structure of a data frame in this application;
[0044] Figure 4 Schematic diagram of error correction capabilities using different FEC coding methods for header and payload;
[0045] Figure 5 A schematic diagram of processing delay of a receiving device in this application;
[0046] Figure 6 This is a schematic diagram of the structure of a possible encoder in an embodiment of the present application;
[0047] Figure 7 This is a schematic diagram of the structure of a possible decoder in an embodiment of the present application;
[0048] Figure 8 This is a schematic diagram of the structure of another possible encoder / decoder in the embodiment of the present application;
[0049] Figure 9 This is a schematic diagram of the structure of a possible sending end device in this application;
[0050] Figure 10 A schematic diagram of the structure of a possible receiving device in this application;
[0051] Figure 11 This is a schematic diagram of the structure of a possible communication system in this application. DETAILED DESCRIPTION
[0052] The present invention provides a data encoding method, a data decoding method, and related devices. A first codeword corresponding to a header and a second codeword corresponding to a payload are independent of each other. A receiving device can parse the header after performing forward error coding (FEC) decoding on the first codeword to obtain the header, without having to wait for FEC decoding of the second codeword to complete before starting to parse the header. This reduces processing delays on the receiving device.
[0053] It should be noted that the terms "first", "second", "third", 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 precedence. 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 a sequence other than that described in this application. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes 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.
[0054] Figure 1 This is a schematic diagram of the structure of a communication system used in this application. Figure 1 As shown, the communication system includes multiple Point of Delivery (PoD) clusters and core layer switches. Each PoD cluster includes multiple Top of Rack (ToR) switches, and each PoD cluster also includes multiple aggregation layer switches, which are evenly interconnected with the ToRs. The aggregation layer switches can communicate with each other through the core layer switches. As traffic in switching networks continues to increase, the requirements for the transmission performance of interconnected links continue to rise, necessitating the introduction of FEC to eliminate transmission errors. Specifically, the transmitting device encapsulates the data to be transmitted into a data frame, and finally performs FEC encoding on the data frame at the physical layer before sending it. Both the header and payload in the data frame are FEC-encoded. The receiving device first performs FEC decoding on the received data, then performs route calculation based on the decoded FEC header and caches the decoded FEC payload based on the route calculation results. As can be seen from the above description, the total latency from the transmitting device to the receiving device includes the transmission latency in the link, the FEC decoding latency, the route calculation latency, and the buffering latency.
[0055] It should be understood that if the end-to-end delay can be reduced, the data exchange efficiency of the above-mentioned communication system can be improved. To this end, the embodiment of the present application provides a data encoding method and a data decoding method, which can effectively reduce the processing delay of the receiving device, which is introduced in detail below.
[0056] It should be noted that the sending end device and the receiving end device in this application are defined according to the direction of data flow, not their functions. For example, in addition to the ability to encode and transmit data, the sending end device may also have the ability to receive and decode data. Similarly, in addition to the ability to receive and decode data, the receiving end device may also have the ability to encode and transmit data. Figure 1 The communication system shown is merely an example; the transmitting and receiving devices can be any two switches in the communication system. In practical applications, the transmitting and receiving devices can also be communication devices with FEC encoding and decoding capabilities in other communication systems, and the specific details are not limited here. For example, the present application can also be applied to optical communication networks, where the transmitting and receiving devices can be optical modules or optical transport network (OTN) devices equipped with optical modules.
[0057] Figure 2 This is a schematic diagram of an embodiment of data encoding and data decoding in this application. In this example, the method includes the following steps.
[0058] 201. A transmitting device performs FEC encoding on a header in data to be transmitted to obtain at least one first codeword, and performs FEC encoding on a payload in the data to be transmitted to obtain at least one second codeword.
[0059] In this embodiment, the transmitting device first encapsulates the data to be transmitted in order from the upper layer to the lower layer according to the protocols of each layer, and then performs FEC encoding at the physical layer. Specifically, the data to be transmitted includes both client data and control information such as routing information. In this application, client data is uniformly referred to as the "payload," and control information is uniformly referred to as the "header." It should be understood that the format of data encapsulation at different layers may vary. For example, the data to be transmitted is encapsulated into a data packet at the network layer, which may specifically be an IP packet. The "header" is the packet header of the data packet, and the "payload" is the client data carried in the data packet. For another example, the data to be transmitted is encapsulated into a data frame at the data link layer, which may be an Ethernet frame, an OTN frame, or a media access control (MAC) frame. The "header" is the frame header of the data frame, and the "payload" is the client data carried in the data frame. In one possible implementation, a data frame includes an overhead area and a payload area. The "header" may be the overhead area of the data frame, and the "load" may be the payload area. The following description takes the data format to be sent as a data frame as an example.
[0060] Figure 3 This is a structural diagram of a data frame in this application. Figure 3 As shown in the figure, the data frame consists of a preamble, a header, and a payload. The preamble is located at the beginning of the data frame, followed by the header and payload. The preamble is used to delimit the frame, allowing the receiving device to determine the starting position of the header through the preamble. The preamble does not participate in FEC encoding, while the header and payload do.
[0061] Specifically, the transmitting device will perform FEC encoding on the header and payload respectively, obtain a first codeword after FEC encoding on the header, and obtain a second codeword after FEC encoding on the payload. The codeword obtained after FEC encoding includes information bits and overhead bits, the information bits in the first codeword are the header, and the information bits in the second codeword are the payload. In other words, the first codeword and the second codeword are independent of each other, the first codeword includes the header and overhead bits but does not include the payload, and the second codeword includes the payload and overhead bits but does not include the header. It should be understood that the overhead bits in the codeword are the check information generated by FEC encoding, which is different from the concept of overhead in the above-mentioned data frame. The number of first codewords can be one or more, and the number of second codewords can also be one or more, which is not specifically limited here. In addition, this application does not limit the specific form of FEC encoding adopted. For example, a maximum distance separable (MDS) code can be used for FEC encoding.
[0062] It should be noted that the transmitting device can use the same FEC encoding method for the header and payload, or different FEC encoding methods for the header and payload. Considering that the header and payload are FEC-encoded independently, using different FEC encoding methods for the header and payload can more flexibly control decoding delay. This is explained in detail below.
[0063] In one possible implementation, a short code is used for FEC encoding of the header, and a long code is used for FEC encoding of the payload, i.e., the length of the first codeword is less than the length of the second codeword. It should be understood that although the error correction capability of a short code is inferior to that of a long code, the decoding delay of a short code is less than that of a long code, and the size of the header is generally much smaller than that of the payload. If both the header and the payload are FEC-encoded using a long code, the overall decoding delay is high. If both the header and the payload are FEC-encoded using a short code, the overall encoding overhead is high due to the large payload, and the FEC encoding consumes more resources. Therefore, this application considers using a short code for FEC encoding of the header and a long code for FEC encoding of the payload, which reduces the decoding delay and saves encoding resources.
[0064] Optionally, different encoding methods can be designed to make the encoding overhead of the first codeword greater than the encoding overhead of the second codeword. Since the use of a short code for FEC encoding of the header will result in insufficient error correction capability, the error correction capability of the first codeword can be improved by increasing the encoding overhead of the first codeword. Specifically, the encoding overhead is the percentage of the length of the overhead bits to the length of the information bits. For example, if the codeword length is 100 bytes, the length of the information bits is 80 bytes, and the length of the overhead bits is 20 bytes, then the encoding overhead of the codeword is 20 / 80=25%. Although the encoding overhead of the first codeword is required to be greater than the encoding overhead of the second codeword, since the header is relatively small, the overall proportion of the overhead bits of the first codeword in the first and second codewords is also very small, which is an acceptable cost. The following provides a specific example to introduce the different FEC encoding methods used for the header and payload.
[0065] Figure 4 The error correction capability diagram of the header and payload using different FEC coding methods is shown in Figure 2. The header is encoded with RS (48, 36) for FEC, where the domain is GF (2 4 ), error correction capability T = 6, arrival time under 100G traffic = 1.6ns, arrival beat number under 625M clock = 1 beat, decoding beat number is 2*T = 12 beats, decoding delay = 20.8ns. The payload is FEC-encoded using RS(544,514), where the domain is GF(2 10), error correction capability T = 15, arrival time at 100G traffic = 54.4ns, arrival beats at 625M clock = 34 beats, decoding beats are 2*T = 30 beats, and decoding delay = 102.4ns. It can be seen that the header uses a short code for FEC encoding, and the payload uses a long code for FEC encoding. In addition, the header coding overhead = 12 / 36, and the payload coding overhead = 30 / 514. The header coding overhead is greater than the payload coding overhead. Figure 4 As shown, the horizontal axis represents the signal-to-noise ratio (SNR) and the vertical axis represents the bit error ratio (BER). It is generally believed that a signal with a BER less than 1.0E-15 is reliable. By comparison, it can be seen that the first codeword and the second codeword can both meet the standard of BER less than 1.0E-15 after FEC decoding under the condition of similar signal-to-noise ratio. In other words, the error correction capability of the first codeword and the error correction capability of the second codeword can both meet the standard, but the decoding delay of the first codeword is less than the decoding delay of the second codeword. Compared with the embodiment in which the header and the payload use the same encoding method, this method can reduce the total decoding delay of the receiving device.
[0066] 202. The transmitting device sends at least one first codeword and at least one second codeword to the receiving device.
[0067] It should be understood that the transmitting device first sends a preamble to the receiving device, and then sequentially sends at least one first codeword and at least one second codeword to the receiving device. The receiving device can determine the starting position of the first codeword based on the delimiter in the preamble to facilitate subsequent FEC decoding of the first and second codewords.
[0068] 203. The receiving device performs FEC decoding on the first codeword, and performs data analysis on the header obtained after the FEC decoding.
[0069] After receiving the first codeword, the receiving device can begin FEC decoding of the first codeword, thereby recovering the header sent by the sending device. The receiving device then parses the header to obtain information from the header and performs corresponding processing. For example, the receiving device can obtain routing information from the header and perform routing calculations based on the routing information. For another example, the receiving device can also obtain control information from the header and determine congestion information for a port or queue based on the control information. In one possible embodiment, the receiving device can begin parsing the header after decoding the first codeword. In another possible embodiment, the receiving device can also parse the header while decoding the first codeword. That is, as long as partial header information is decoded, the receiving device can parse this portion of the header information without having to wait until the first codeword is fully decoded before starting to parse the header, thereby improving the efficiency of header parsing.
[0070] 204. The receiving device performs FEC decoding on the second codeword.
[0071] After receiving the second codeword, the receiving device can begin FEC decoding of the second codeword, thereby recovering the payload sent by the transmitting device. It should be understood that the starting time of the receiving device's data parsing must be at least before the end time of the receiving device's FEC decoding of the second codeword. In other words, after the receiving device performs FEC decoding on the first codeword to obtain the header, it can perform data parsing on the header, without having to wait for the FEC decoding of the second codeword to end before starting data parsing on the header. In this way, the time period when the receiving device performs data parsing on the header and the time period when it performs FEC decoding on the second codeword partially overlap, reducing the processing delay of the receiving device.
[0072] It should be understood that this application does not limit the order between the start time of header data parsing and the start time of FEC decoding of the second codeword. For example, if a receiving device has multiple decoders, the first decoder can perform FEC decoding on the first codeword received first. If the second codeword is received before FEC decoding of the first codeword is completed, the second decoder can start FEC decoding of the second codeword to improve decoding efficiency. In this case, the start time of header data parsing may be after the start time of FEC decoding of the second codeword. For another example, if the receiving device has only one decoder and performs FEC decoding on the first codeword received first, even if the receiving device receives the second codeword before FEC decoding of the first codeword is completed, it can only start decoding the second codeword after decoding of the first codeword is completed. In this case, the start time of header data parsing may be before the start time of FEC decoding of the second codeword.
[0073] It should be noted that after the receiving device performs route calculation based on the routing information in the header, it will also store the FEC-decoded payload based on the routing information. If it is not the payload of this node, the payload will be stored in the forwarding port queue. If it is the payload of this node, the payload will be stored in its own processing queue. Of course, if the decoding of the second codeword has been completed before the routing calculation is completed, then the FEC-decoded payload can also be cached first, and then the payload can be allocated to the corresponding queue after the routing calculation is completed. In one possible implementation, the receiving device can start caching the payload after decoding the second codeword. In another possible implementation, the receiving device can also cache the payload while decoding the second codeword. That is, as long as part of the payload information is decoded, this part of the payload can be cached, without having to wait until the second codeword is completely decoded before caching the payload, thereby improving the payload caching efficiency.
[0074] Optionally, the receiving device may also use different decoding methods to perform FEC decoding on the first codeword and the second codeword respectively. For example, a soft-decision FEC decoding method is used for the first codeword, and a hard-decision FEC decoding method is used for the second codeword. That is, the receiving device first performs a soft decision on the received first codeword and then inputs it into the decoder for FEC decoding. The receiving device performs a hard decision on the received second codeword and then inputs it into the decoder for FEC decoding. The purpose of this design is: if the transmitting device uses a short code to perform FEC encoding on the header to obtain the first codeword, and uses a long code to perform FEC encoding on the payload to obtain the second codeword, and the error correction capability of the short code is not as good as that of the long code, then performing FEC decoding on the first codeword by soft decision can reduce the bit error rate, thereby compensating for the defect of insufficient error correction capability of the short code.
[0075] The following describes the processing delay of the receiving device through a specific example.
[0076] Figure 5 This is a schematic diagram of the processing delay of a receiving device in this application. Figure 5As shown, the transmitting device sequentially sends the first and second codewords obtained after FEC decoding to the receiving device, with the link transmission delay denoted as T1. The receiving device performs FEC decoding on the first codeword received to obtain a header, with this decoding delay denoted as T2. The receiving device then performs route calculation based on the routing information in the header, with this route calculation delay denoted as T3. The receiving device then performs FEC decoding on the second codeword received to obtain a payload, with this decoding delay denoted as T4. The receiving device then caches the payload based on the route calculation results, with this payload cache delay denoted as T5. It can be seen that the route calculation delay T3 partially overlaps with the decoding delay T4. During this overlapping period, the receiving device can simultaneously perform route calculation and FEC decoding on the second codeword, reducing the overall processing delay of the receiving device.
[0077] In an embodiment of the present application, a transmitting device performs FEC encoding on the header of the data to be transmitted to obtain at least one first codeword, and performs FEC encoding on the payload of the data to be transmitted to obtain at least one second codeword. The first codeword corresponding to the header and the second codeword corresponding to the payload are independent of each other. After the receiving device performs FEC decoding on the first codeword to obtain the header, it can then perform data parsing on the header without having to wait for the FEC decoding of the second codeword to complete before starting to parse the header. In other words, the period during which the receiving device parses the header and the period during which it performs FEC decoding on the second codeword partially overlap, reducing processing delays on the receiving device.
[0078] The encoder and decoder provided in this application are introduced below.
[0079] Figure 6 This is a schematic diagram of the structure of a possible encoder in the embodiment of the present application. Figure 6 As shown, the encoder includes an encoding unit 601 and a sending unit 602. Specifically, the encoding unit 601 is used to perform the above Figure 2 The operation of step 201 in the embodiment shown. The sending unit 602 is used to perform the above Figure 2 The operation of step 202 in the illustrated embodiment.
[0080] Figure 7 FIG. 1 is a schematic diagram of a possible decoder structure in an embodiment of the present application. Figure 7 As shown, the decoder includes a receiving unit 701 and a decoding unit 702. Specifically, the receiving unit 701 is used to perform the above Figure 2 The decoding unit 702 is used to perform the above-mentioned receiving operation corresponding to step 202 in the embodiment shown. Figure 2 The operations of step 203 and step 204 in the illustrated embodiment.
[0081] Figure 8FIG. 1 is a schematic diagram of another possible encoder / decoder structure in an embodiment of the present application. Figure 8 As shown, the encoder / decoder includes a processor 801, a memory 802 and a transceiver 803. The processor 801, the memory 802 and the transceiver 803 are connected to each other via a line. The memory 802 is used to store program instructions and data. Specifically, the transceiver 803 is used to execute the above Figure 2 The data transmission and reception operations in the steps shown are as follows. The processor 801 is used to execute the above Figure 2 In one possible implementation, the processor 801 may include the above-mentioned Figure 6 The encoding unit 601 shown, the transceiver 803 may include the above Figure 6 In another possible implementation, the processor 801 may include the above Figure 7 The decoding unit 702 and the transceiver 803 shown may include the above Figure 7 The receiving unit 701 is shown.
[0082] It should be noted that the above Figure 8 The 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. Figure 8 The memory shown in can store an operating system and other application programs. When the technical solutions provided in the embodiments of the present application are implemented by software or firmware, the program code for implementing the technical solutions provided in 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.
[0083] The following is an introduction to the transmitting and receiving devices provided by this application.
[0084] Figure 9 This is a schematic diagram of the structure of a possible sending end device in this application. Figure 9 As shown, the transmitting end device includes an encoder 901 and a transmitter 902, and the encoder 901 and the transmitter 902 are connected to each other via a line. The encoder 901 can be specifically the above Figure 6 The encoding unit shown. The transmitter 902 can be Figure 6The sending unit shown is used to modulate at least one first codeword and at least one second codeword output by the encoder 901 to obtain at least one data symbol, and send the at least one data symbol to a receiving device.
[0085] Figure 10 This is a schematic diagram of the structure of a possible receiving device in this application. Figure 10 As shown, the receiving end device includes a decoder 1001 and a receiver 1002, and the decoder 1001 and the receiver 1002 are connected to each other via a line. The decoder 1001 can be specifically the above Figure 7 The receiver 1002 may be Figure 7 The receiving unit shown is used to receive at least one data symbol sent by the transmitting device, demodulate the at least one data symbol to obtain at least one first codeword and at least one second codeword, and then output the at least one first codeword and at least one second codeword to the decoder 1001.
[0086] Figure 11 This is a schematic diagram of a possible communication system in this application. Figure 11 As shown, the communication system includes a transmitting end device 1101 and a receiving end device 1102. The transmitting end device 1101 is used to perform the above Figure 2 In the embodiment shown, some or all of the steps of any method executed by the sending end device. The receiving end device 1102 is used to execute the above Figure 2 Part or all of the steps of any one method executed by the receiving device in the illustrated embodiment.
[0087] The present application also provides a coding chip, which includes logic circuits and / or program instructions, and when the chip is running, it can achieve the above Figure 2 Part or all of the steps of any one method executed by the sending end device in the illustrated embodiment.
[0088] The present application also provides a decoding chip, which includes logic circuits and / or program instructions, and when the chip is running, it can achieve the above Figure 2 Part or all of the steps of any one method executed by the receiving device in the illustrated embodiment.
[0089] Those skilled in the art will 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.
[0090] Those skilled in the art will appreciate that all or part of the steps in the above embodiments can be implemented by hardware or by programs instructing the relevant hardware to perform the steps. The programs can be stored in a computer-readable storage medium, which can be a read-only memory, a random access memory, or the like. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this application.
[0091] When software is used for implementation, the method steps described in the above embodiment 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 can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website, computer, server or data center to another website, computer, server or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrations. The available medium can 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 drive (SSD)).
Claims
1. A data decoding method, characterized in that: include: A receiving device receives at least one first codeword and at least one second codeword sent by a transmitting device, wherein the first codeword is obtained by the transmitting device performing forward error correction (FEC) encoding on a header in data to be transmitted, and the second codeword is obtained by the transmitting device performing FEC encoding on a payload in the data, and the first codeword is received by the receiving device before the second codeword. The receiving end device performs FEC decoding on the first codeword and performs data parsing on a header obtained after the FEC decoding; The receiving device performs FEC decoding on the second codeword, wherein the starting moment when the receiving device performs the data parsing is before the ending moment when the receiving device performs FEC decoding on the second codeword, and there is partial overlap between the time period when the receiving device performs the data parsing and the time period when the receiving device performs FEC decoding on the second codeword.
2. The method according to claim 1, characterized in that The length of the first codeword is smaller than the length of the second codeword.
3. The method according to claim 1 or 2, characterized in that The encoding overhead of the first codeword is greater than the encoding overhead of the second codeword.
4. The method according to any one of claims 1 to 2, characterized in that The first codeword is decoded using a soft-decision FEC decoding method, and the second codeword is decoded using a hard-decision FEC decoding method.
5. The method according to any one of claims 1 to 2, characterized in that The starting time when the receiving end device performs the data parsing is before the starting time when the receiving end device performs FEC decoding on the second codeword.
6. The method according to any one of claims 1 to 2, characterized in that The receiving end device performs data parsing on the header obtained after FEC decoding, including: The receiving end device obtains routing information from the header obtained after FEC decoding, and performs routing calculation based on the routing information.
7. The method according to claim 6, characterized in that The method further comprises: The receiving end device caches the payload obtained after FEC decoding according to the result of the routing calculation.
8. The method according to any one of claims 1 to 2, characterized in that The method further comprises: The receiving end device receives a preamble sent by the transmitting end device, where the preamble is received by the receiving end device before the first codeword, and the preamble is used to indicate a position of the first codeword.
9. A data encoding method, characterized in that: include: The transmitting end device performs forward error correction (FEC) encoding on a header in the data to be transmitted to obtain at least one first codeword, and performs FEC encoding on a payload in the data to obtain at least one second codeword; The transmitting device sends the at least one first codeword and the at least one second codeword to the receiving device, and the header obtained after the first codeword is FEC decoded by the receiving device is parsed by the receiving device. The sending order of the first codeword is before the sending order of the second codeword, so that the starting time when the header obtained after FEC decoding is parsed by the receiving device is before the ending time when the second codeword is FEC decoded by the receiving device, and there is partial overlap between the time period when the receiving device performs the data parsing and the time period when the receiving device performs FEC decoding on the second codeword.
10. The method according to claim 9, characterized in that The length of the first codeword is smaller than the length of the second codeword.
11. The method according to claim 9 or 10, characterized in that The encoding overhead of the first codeword is greater than the encoding overhead of the second codeword.
12. The method according to any one of claims 9 to 10, characterized in that The first codeword is decoded using a soft-decision FEC decoding method, and the second codeword is decoded using a hard-decision FEC decoding method.
13. The method according to any one of claims 9 to 10, characterized in that The start time when the header obtained after FEC decoding is parsed by the receiving end device is before the start time when the second codeword is FEC decoded by the receiving end device.
14. The method according to any one of claims 9 to 10, characterized in that The method further comprises: The transmitting end device sends a preamble code to the receiving end device, where the sending order of the preamble code is before the sending order of the first code word, and the preamble code is used to indicate the position of the first code word.
15. A decoder, characterized in that: include: A receiving unit, configured to receive at least one first codeword and at least one second codeword sent by a transmitting device, wherein the first codeword is obtained by the transmitting device performing forward error correction (FEC) encoding on a header in data to be transmitted, and the second codeword is obtained by the transmitting device performing FEC encoding on a payload in the data, and the first codeword is received by the receiving device before the second codeword; A decoding unit: configured to perform FEC decoding on the first codeword and perform data parsing on the header obtained after FEC decoding; FEC decoding is performed on the second codeword, wherein the starting moment when the receiving device performs the data parsing is before the ending moment when the receiving device performs FEC decoding on the second codeword, and there is a partial overlap between the time period when the receiving device performs the data parsing and the time period when the receiving device performs FEC decoding on the second codeword.
16. The decoder according to claim 15, wherein: The length of the first codeword is smaller than the length of the second codeword.
17. The decoder according to claim 15 or 16, characterized in that: The encoding overhead of the first codeword is greater than the encoding overhead of the second codeword.
18. The decoder according to any one of claims 15 to 16, characterized in that: The first codeword is decoded using a soft-decision FEC decoding method, and the second codeword is decoded using a hard-decision FEC decoding method.
19. The decoder according to any one of claims 15 to 16, characterized in that: The starting time when the decoding unit performs the data parsing is before the starting time when the decoding unit performs FEC decoding on the second codeword.
20. The decoder according to any one of claims 15 to 16, characterized in that: The decoder is specifically used to obtain routing information from the header obtained after FEC decoding, and perform routing calculation according to the routing information.
21. The decoder according to claim 20, wherein: The decoding unit is further configured to cache the payload obtained after FEC decoding according to the result of the routing calculation.
22. The decoder according to any one of claims 15 to 16, characterized in that: The receiving unit is further configured to receive a preamble sent by the transmitting device, where the preamble is received by the receiving device before the first codeword, and the preamble is used to indicate a position of the first codeword.
23. An encoder, characterized in that include: An encoding unit configured to perform forward error correction (FEC) encoding on a header in the data to be transmitted to obtain a first codeword, and to perform FEC encoding on a payload in the data to obtain a second codeword; A sending unit: used to send the first codeword and the second codeword to a receiving device, wherein a header obtained after the first codeword is FEC-decoded by the receiving device is parsed by the receiving device, and the sending order of the first codeword is before the sending order of the second codeword, so that the starting time when the header obtained after FEC decoding is parsed by the receiving device is before the ending time when the second codeword is FEC-decoded by the receiving device, and the time period when the receiving device performs the data parsing and the time period when the receiving device performs FEC decoding on the second codeword partially overlap.
24. The encoder according to claim 23, wherein The length of the first codeword is smaller than the length of the second codeword.
25. The encoder according to claim 23 or 24, characterized in that The encoding overhead of the first codeword is greater than the encoding overhead of the second codeword.
26. The encoder according to any one of claims 23 to 24, characterized in that The first codeword is decoded using a soft-decision FEC decoding method, and the second codeword is decoded using a hard-decision FEC decoding method.
27. The encoder according to any one of claims 23 to 24, characterized in that The start time when the header obtained after FEC decoding is parsed by the receiving end device is before the start time when the second codeword is FEC decoded by the receiving end device.
28. The encoder according to any one of claims 23 to 24, characterized in that The sending unit is further configured to send a preamble to the receiving device, wherein the sending order of the preamble is before the sending order of the first codeword, and the preamble is used to indicate a position of the first codeword.
29. A decoding chip, characterized in that: The chip includes logic circuits and / or program instructions, and when the chip is running, the method according to any one of claims 1 to 8 is implemented.
30. A coding chip, characterized in that: The chip includes logic circuits and / or program instructions, and when the chip is running, the method according to any one of claims 9 to 14 is implemented.
31. A receiving device, characterized in that: comprising a decoder and a receiver as claimed in any one of claims 15 to 22; The receiver is used to receive at least one data symbol sent by a transmitting device, demodulate the at least one data symbol to obtain the at least one first codeword and the at least one second codeword, and then output the at least one first codeword and the at least one second codeword to the decoder.
32. A transmitting end device, characterized in that: comprising an encoder and a transmitter as claimed in any one of claims 23 to 28; The transmitter is configured to modulate the first codeword and the second codeword output by the encoder to obtain at least one data symbol, and send the at least one data symbol to a receiving device.
33. A communication system, characterized in that: It includes the sending end device as described in claim 32 and the receiving end device as described in claim 31.
34. A computer-readable storage medium, characterized in that The method comprises computer instructions, which, when executed on a computer device, cause the computer device to perform the method according to any one of claims 1 to 14.
Citation Information
Patent Citations
Apparatus and method for a regenerative network node between a first and a second link portion
CN107534491A
Method and apparatus for generating second data packet from first data packet
CN107534517A