A data statistics method and device
By setting the correction of codewords in the counter statistics data stream in the receiving end device, the problem of difficulty in effectively counting data stream related parameters in the prior art is solved, and an effective evaluation of the communication quality of transmission channel and data processing operations is realized.
Patent Information
- Application Number
- CN202411067710.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-04-24
- Publication Date
- 2025-04-11
- Estimated Expiration
- 2044-04-24
AI Technical Summary
It is difficult for the prior art to effectively count relevant parameters of data flow, especially in the communication quality evaluation of transmission channels and the data processing abnormality detection of the receiving end device.
P counters are set in the receiving end device, and the number of codewords with different number of bits or symbols corrected in the data stream is counted separately according to the number of bits or symbols corrected in each codeword in the data stream.
By counting the correction of codewords, it is possible to effectively detect burst errors, calculate the error rate, and judge the synchronization status of the data stream, thereby evaluating the communication quality of the transmission channel and the data processing operation of the receiving device.
Smart Images

Figure CN118890132B_ABST
Abstract
Description
[0001] This application is a divisional application of the application filed with the China Intellectual Property Office with an application date of April 24, 2024, application number 202410504399.0, and invention name “A data statistics method and device”. Technical Field
[0002] The present application relates to the field of communications, and in particular to a data statistics method and device. Background Art
[0003] Data streams can be transmitted in the network. In some scenarios, after receiving the data stream, the receiving end can count the relevant parameters of the data stream to facilitate subsequent data processing based on the statistical parameters. For example, based on statistical parameters to evaluate the communication quality provided by the transmission channel, or based on statistical parameters to determine whether the data processing operation of the receiving end device is abnormal, etc. As a specific example, in a scenario where the transmitting end performs forward error correction (FEC) encoding on the transmitted data stream, the receiving end can decode the FEC codeword included in the received data stream and perform statistics on relevant parameters based on the decoding results.
[0004] How to collect statistics on relevant parameters of data streams is a problem that has yet to be solved. Summary of the invention
[0005] In the first aspect, the present application provides a data statistics method, which can be applied to a receiving device. In an embodiment of the present application, considering the number of bits of a codeword that are corrected, it can reflect the communication quality provided by the transmission channel and whether the data processing operation of the receiving device is abnormal. Therefore, in the present application, P counters are set in the receiving device, and P can be an integer greater than or equal to 3. The P counters can count the number of codewords with different numbers of bits corrected in the data stream according to the number of bits of each codeword corrected in the data stream. Accordingly, after receiving the data stream, the receiving device can use P counters to record the number of codewords with different numbers of bits corrected in the data stream, so as to facilitate subsequent data processing based on statistical parameters.
[0006] In a possible implementation, considering that the number of codewords with different numbers of bits corrected in a data stream can reflect whether a burst error occurs in the data stream, after using P counters to respectively record the number of codewords with different numbers of bits corrected in the data stream, a burst error can be further detected based on the values respectively recorded by the P counters. The detection of burst errors mentioned here can be detecting whether a burst error occurs in the data stream, detecting the number of burst errors that occur in the data stream, detecting the data length corresponding to the burst error that occurs in the data stream, and so on.
[0007] In one possible implementation, the number of codewords with different numbers of bits corrected in the data stream can reflect the error rate of data stream transmission. Therefore, after using P counters to respectively record the number of codewords with different numbers of bits corrected in the data stream, the error rate can be further calculated based on the values respectively recorded by the P counters.
[0008] In a possible implementation, the error rate includes, but is not limited to, one or more of a codeword error rate (codeword error ratio, CER), a bit error rate (bit error ratio, BER), a symbol error rate (symbol error ratio, SER) and a frame loss rate (frame loss ratio, FLR). In other words, using the solution of the present application, after using P counters to respectively record the number of codewords with different numbers of bits corrected in the data stream, one or more of CER, BER, SER and FLR can be further calculated based on the values recorded by the P counters.
[0009] In one possible implementation, taking into account the number of codewords with different numbers of bits corrected in the data stream, it can be reflected whether an error occurs in the synchronization processing of the data stream by the receiving device. Therefore, after using P counters to respectively record the number of codewords with different numbers of bits corrected in the data stream, it is possible to further detect whether the data stream has a synchronization error based on the values recorded by the P counters.
[0010] In a possible implementation, the number of corrected bits corresponding to any two of the P counters is different. As a specific example, the number of corrected bits corresponding to the P counters is continuous, for example, 0 to P-2, and more than P-2. In this way, the distribution of the number of corrected bits of the codewords included in the data stream can be determined.
[0011] In a possible implementation, after receiving the data stream, the receiving end device can obtain at least one codeword based on the data stream. Further, each codeword in the at least one codeword is corrected to determine the number of corrected bits in each codeword, thereby updating the value of at least one of the P counters. As a specific example, for any codeword, after determining the number of corrected bits in the codeword, the counter corresponding to the number of bits can be increased by 1.
[0012] In one possible implementation, R counters are provided in the receiving end device, and the R counters are used to record the number of codeword groups with different numbers of bits corrected in the at least one codeword group according to the number of bits corrected in each codeword group in the at least one codeword group, and R can be a positive integer greater than or equal to 3.
[0013] In a possible implementation, the number of corrected bits corresponding to any two of the R counters is different. As a specific example, the number of corrected bits corresponding to the R counters is continuous, for example, 0 to R-2, and more than R-2. In this way, the distribution of the number of corrected bits of the codeword group included in at least one codeword group can be determined.
[0014] In a possible implementation, after receiving the data stream, the receiving end device can obtain at least one codeword group based on the data stream. Furthermore, for each codeword group, each codeword included in the codeword group is error corrected to determine the number of corrected bits in each codeword, and further the number of corrected bits in each codeword in the codeword group is summed to obtain the number of corrected bits in the codeword group, so as to update the value of at least one of the aforementioned R counters. As a specific example, for any codeword group, after determining the number of corrected bits of the codeword group, the counter corresponding to the number of bits can be increased by 1.
[0015] In a possible implementation, the receiving end device may also be provided with at least one of a codeword group quantity counter, a codeword quantity counter, and a bit quantity counter. Wherein: the codeword group quantity counter is used to record the total number of codeword groups included in the data stream. The codeword quantity counter is used to record the total number of codewords included in the data stream. The bit quantity counter is used to record the total number of bits included in the data stream. Optionally, the receiving end device may combine the numerical value recorded by at least one of the codeword group quantity counter, the codeword quantity counter, and the bit quantity counter, and the number of codeword groups with different numbers of bits corrected in the at least one codeword group obtained by statistics, to perform one or more of detecting burst errors, calculating error rates, and detecting whether the data stream has synchronization errors.
[0016] In the second aspect, the present application provides a data statistics method, which can be applied to a receiving device. The receiving device can receive a data stream, and further obtain at least one codeword group based on the data stream, and for each codeword group in the at least one codeword group, it includes Q codewords obtained by deinterleaving, where Q is an integer greater than or equal to 2. Taking into account the number of corrected bits in the codeword group, it can reflect the communication quality provided by the transmission channel and whether the data processing operation of the receiving device is abnormal. Therefore, in an embodiment of the present application, the receiving device can count the number of codeword groups with different numbers of bits corrected in the at least one codeword group, so as to facilitate subsequent data processing based on statistical parameters.
[0017] In a possible implementation, considering that the number of codeword groups with different numbers of bits corrected in the at least one codeword group can reflect whether a burst error occurs in the data stream, therefore, after counting the number of codeword groups with different numbers of bits corrected in the at least one codeword group, a burst error can be further detected based on the statistical result. The detection of burst errors mentioned here can be detecting whether a burst error occurs in the data stream, or detecting the number of burst errors occurring in the data stream, or detecting the corresponding data length when a burst error occurs in the data stream, and so on.
[0018] In a possible implementation, considering that the number of codeword groups with different numbers of bits corrected in the at least one codeword group can reflect the error rate of data stream transmission, therefore, after counting the number of codeword groups with different numbers of bits corrected in the at least one codeword group, the error rate of data stream transmission can be further calculated based on the statistical results.
[0019] In a possible implementation, the error rate includes but is not limited to one or more of CER, BER, SER and FLR. In other words, using the solution of the present application, after counting the number of codeword groups with different numbers of bits corrected in the at least one codeword group, one or more of CER, BER, SER and FLR of the data stream transmission can be further calculated based on the statistical results.
[0020] In one possible implementation, taking into account the number of codeword groups with different numbers of bits corrected in the at least one codeword group, it can be reflected whether an error occurs in the synchronization processing of the data stream by the receiving device. Therefore, after counting the number of codeword groups with different numbers of bits corrected in the at least one codeword group, it is possible to further detect whether the data stream is synchronized incorrectly based on the statistical results.
[0021] In a possible implementation, the above first aspect and any item of the first aspect, and the above second aspect and any item of the above second aspect, can be arbitrarily combined without conflict.
[0022] In a possible implementation, the codewords described in the first aspect and the second aspect may be FEC codewords, for example, may be FEC outer codewords, or, in a concatenated code scenario, may be FEC inner codewords.
[0023] In the third aspect, the present application provides a data statistics method, which can be applied to a receiving device. In an embodiment of the present application, considering the number of symbols corrected by the codeword, it can reflect the communication quality provided by the transmission channel and whether the data processing operation of the receiving device is abnormal. Therefore, in the present application, P counters are set in the receiving device, and P can be an integer greater than or equal to 3. The P counters can count the number of codewords with different numbers of symbols corrected in the data stream according to the number of symbols corrected for each codeword in the data stream. Accordingly, after receiving the data stream, the receiving device can use P counters to record the number of codewords with different numbers of symbols corrected in the data stream, so as to facilitate subsequent data processing based on statistical parameters.
[0024] In a possible implementation, considering that the number of codewords with different numbers of symbols corrected in a data stream can reflect whether a burst error occurs in the data stream, after using P counters to respectively record the number of codewords with different numbers of symbols corrected in the data stream, a burst error can be further detected based on the number recorded by the P counters. The detection of burst errors mentioned here can be detecting whether a burst error occurs in the data stream, detecting the number of burst errors that occur in the data stream, detecting the data length corresponding to the burst error that occurs in the data stream, and so on.
[0025] In a possible implementation, the number of codewords with different numbers of symbols corrected in the data stream can reflect the error rate of data stream transmission. Therefore, after using P counters to respectively record the number of codewords with different numbers of symbols corrected in the data stream, the error rate can be further calculated based on the numbers recorded by the P counters.
[0026] In a possible implementation, the error rate includes but is not limited to one or more of CER, BER, SER and FLR. In other words, using the solution of the present application, after using P counters to respectively record the number of codewords with different numbers of symbols corrected in the data stream, one or more of CER, BER, SER and FLR can be further calculated based on the values recorded by the P counters.
[0027] In one possible implementation, taking into account the number of codewords with different numbers of symbols corrected in the data stream, it can be reflected whether an error occurs in the synchronization processing of the data stream by the receiving device. Therefore, after using P counters to respectively record the number of codewords with different numbers of symbols corrected in the data stream, it is possible to further detect whether the data stream has a synchronization error based on the numbers recorded by the P counters.
[0028] In a possible implementation, the numbers of corrected symbols corresponding to any two of the P counters are different. As a specific example, the numbers of corrected symbols corresponding to the P counters are continuous, for example, 0 to P-2, and more than P-2, respectively. In this way, the distribution of the number of corrected symbols of the codewords included in the data stream can be determined.
[0029] In a possible implementation, after receiving the data stream, the receiving end device may obtain at least one codeword based on the data stream. Further, each codeword in the at least one codeword is corrected to determine the number of symbols corrected in each codeword, thereby updating the value of at least one of the aforementioned P counters. As a specific example, for any codeword, after determining the number of symbols corrected in the codeword, the counter corresponding to the number of symbols may be incremented by 1.
[0030] In one possible implementation, R counters are provided in the receiving end device, and the R counters are used to record the number of codeword groups with different numbers of symbols corrected in the at least one codeword group according to the number of symbols corrected in each codeword group in the at least one codeword group, and R can be a positive integer greater than or equal to 3.
[0031] In a possible implementation, the number of corrected symbols corresponding to any two of the R counters is different. As a specific example, the number of corrected symbols corresponding to the R counters is continuous, for example, 0 to R-2, and more than R-2. In this way, the distribution of the number of corrected symbols of the codeword group included in at least one codeword group can be determined.
[0032] In a possible implementation, after receiving the data stream, the receiving end device can obtain at least one codeword group based on the data stream. Furthermore, for each codeword group, error correction is performed on each codeword included in the codeword group to determine the number of corrected symbols in each codeword, and the number of corrected symbols in each codeword in the codeword group is further summed to obtain the number of corrected symbols in the codeword group, so as to update the value of at least one of the aforementioned R counters. As a specific example, for any codeword group, after determining the number of corrected symbols of the codeword group, the counter corresponding to the number of symbols can be increased by 1.
[0033] In a possible implementation, the receiving end device may also be provided with at least one of a codeword group quantity counter, a codeword quantity counter, and a symbol quantity counter. Wherein: the codeword group quantity counter is used to record the total number of codeword groups included in the data stream. The codeword quantity counter is used to record the total number of codewords included in the data stream. The symbol quantity counter is used to record the total number of symbols included in the data stream. Optionally, the receiving end device may combine the count value of at least one of the codeword group quantity counter, the codeword quantity counter, and the symbol quantity counter, and the number of codeword groups with different numbers of symbols corrected in the at least one codeword group obtained by statistics, to perform one or more of detecting burst errors, calculating error rates, and detecting whether the data stream has synchronization errors.
[0034] In a fourth aspect, the present application provides a data statistics method, which can be applied to a receiving device. The receiving device can receive a data stream, and further obtain at least one codeword group according to the data stream, and for each codeword group in the at least one codeword group, it includes Q codewords obtained by deinterleaving, where Q is an integer greater than or equal to 2. Taking into account the number of corrected symbols in the codeword group, it can reflect the communication quality provided by the transmission channel and whether the data processing operation of the receiving device is abnormal. Therefore, in an embodiment of the present application, the receiving device can count the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, so as to facilitate subsequent data processing based on statistical parameters.
[0035] In a possible implementation, considering that the number of codeword groups with different numbers of symbols corrected in the at least one codeword group can reflect whether a burst error occurs in the data stream, therefore, after counting the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, a burst error can be further detected based on the statistical result. The detection of burst errors mentioned here can be detecting whether a burst error occurs in the data stream, or detecting the number of burst errors occurring in the data stream, or detecting the corresponding data length when a burst error occurs in the data stream, and so on.
[0036] In one possible implementation, considering that the number of codeword groups with different numbers of symbols corrected in the at least one codeword group can reflect the error rate of data stream transmission, therefore, after counting the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, the error rate of data stream transmission can be further calculated based on the statistical results.
[0037] In a possible implementation, the error rate includes but is not limited to one or more of CER, BER, SER and FLR. In other words, using the solution of the present application, after counting the number of codeword groups with different numbers of bits corrected in the at least one codeword group, one or more of CER, BER, SER and FLR of the data stream transmission can be further calculated based on the statistical results.
[0038] In one possible implementation, taking into account the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, it can be reflected whether an error occurs in the synchronization processing of the data stream by the receiving device. Therefore, after counting the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, it is possible to further detect whether the data stream has a synchronization error based on the statistical results.
[0039] In a possible implementation, the third aspect and any item of the third aspect, and the fourth aspect and any item of the fourth aspect, may be arbitrarily combined without conflict.
[0040] In a possible implementation, the codewords described in the third aspect and the fourth aspect may be FEC codewords, for example, may be FEC outer codewords, or, in a concatenated code scenario, may be FEC inner codewords.
[0041] In a fifth aspect, the present application provides a data statistics device, which includes: a receiving unit, used to receive a data stream; a processing unit, used for P counters to respectively record the number of codewords with different numbers of bits corrected in the data stream, where P is greater than or equal to 3.
[0042] In one possible implementation, the processing unit is further used to: detect burst bit errors based on the numbers recorded by the P counters; or, calculate the error rate based on the numbers recorded by the P counters; or, detect whether the data stream has synchronization errors based on the numbers recorded by the P counters.
[0043] In a possible implementation, the numbers of corrected bits corresponding to the P counters are respectively 0 to P-2, and greater than P-2.
[0044] In a possible implementation manner, when the number of corrected bits in a codeword in the data stream is determined, a counter corresponding to the number of bits is incremented by 1.
[0045] In one possible implementation, the processing unit is further used to: obtain at least one codeword group based on the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, and Q is greater than or equal to 2; and count the number of codeword groups in the at least one codeword group that have different numbers of bits corrected.
[0046] In one possible implementation, the processing unit is further used to perform at least one of the following: detecting burst errors based on the number of codeword groups with different numbers of bits corrected in the at least one codeword group; or calculating the error rate based on the number of codeword groups with different numbers of bits corrected in the at least one codeword group; or detecting whether the data stream has synchronization errors based on the number of codeword groups with different numbers of bits corrected in the at least one codeword group.
[0047] In a possible implementation, R counters respectively record the number of codeword groups with different numbers of bits corrected in the at least one codeword group, and R is greater than or equal to 3.
[0048] In a possible implementation, the numbers of corrected bits corresponding to the R counters are 0 to R-2, and exceed R-2.
[0049] In a possible implementation manner, when the number of corrected bits in one of the at least one codeword group is determined, a counter corresponding to the number of bits is incremented by 1.
[0050] In a possible implementation, the processing unit is further used to perform at least one of the following: a codeword group quantity counter records the total number of codeword groups included in the data stream; a codeword quantity counter records the total number of codewords included in the data stream; and a bit quantity counter records the total number of bits included in the data stream.
[0051] In a sixth aspect, the present application provides a data statistics device, the device comprising: a receiving unit, configured to receive a data stream;
[0052] A processing unit is used to obtain at least one codeword group according to the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, and Q is greater than or equal to 2; and count the number of codeword groups with different numbers of bits corrected in the at least one codeword group.
[0053] In a possible implementation, the processing unit is further used to: detect burst errors based on the number of codeword groups with different numbers of bits corrected in the at least one codeword group; or, calculate the error rate based on the number of codeword groups with different numbers of bits corrected in the at least one codeword group; or, detect whether the data stream has synchronization errors based on the number of codeword groups with different numbers of bits corrected in the at least one codeword group.
[0054] In a possible implementation, R counters respectively record the number of codeword groups with different numbers of bits corrected in the at least one codeword group, and R is greater than or equal to 3.
[0055] In a possible implementation, the numbers of corrected bits corresponding to the R counters are 0 to R-2, and exceed R-2.
[0056] In a possible implementation manner, when the number of corrected bits in one of the at least one codeword group is determined, a counter corresponding to the number of bits is incremented by 1.
[0057] In a possible implementation, the processing unit is further used to perform at least one of the following: a codeword group quantity counter records the total number of codeword groups included in the data stream; a codeword quantity counter records the total number of codewords included in the data stream; and a bit quantity counter records the total number of bits included in the data stream.
[0058] In a possible implementation, the processing unit is further configured to: use P counters to respectively record the number of code words with different numbers of bits corrected in the data stream, where P is greater than or equal to 3.
[0059] In one possible implementation, the processing unit is further used to: detect burst bit errors based on the numbers recorded by the P counters; or, calculate the error rate based on the numbers recorded by the P counters; or, detect whether the data stream has synchronization errors based on the numbers recorded by the P counters.
[0060] In a possible implementation, the numbers of corrected bits corresponding to the P counters are respectively 0 to P-2, and greater than P-2.
[0061] In a possible implementation manner, when the number of corrected bits in a codeword in the data stream is determined, a counter corresponding to the number of bits is incremented by 1.
[0062] In a possible implementation, the codewords described in the third and fourth aspects above include: forward error correction FEC codewords.
[0063] In a possible implementation manner, the FEC codeword includes: an FEC inner codeword, or an FEC outer codeword.
[0064] In a possible implementation, in the data statistics device described in the third and fourth aspects above, the receiving end device includes: a chip, an optical module, a network device or a server.
[0065] In a seventh aspect, the present application provides a data statistics device, comprising: a receiving unit, configured to receive a data stream; and a processing unit, configured to use P counters to respectively record the number of codewords with different numbers of symbols corrected in the data stream, where P is greater than or equal to 3.
[0066] In one possible implementation, the processing unit is further used to: detect burst bit errors based on the numbers recorded by the P counters; or, calculate the error rate based on the numbers recorded by the P counters; or, detect whether the data stream has synchronization errors based on the numbers recorded by the P counters.
[0067] In a possible implementation, the numbers of corrected symbols corresponding to the P counters are 0 to P-2, and greater than P-2, respectively.
[0068] In a possible implementation manner, when the number of corrected symbols in a codeword in the data stream is determined, a counter corresponding to the number of symbols is incremented by 1.
[0069] In one possible implementation, the processing unit is further used to: obtain at least one codeword group based on the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, and Q is greater than or equal to 2; and count the number of codeword groups in the at least one codeword group that have different numbers of symbols corrected.
[0070] In one possible implementation, the processing unit is further used to perform at least one of the following: detecting burst errors based on the number of codeword groups with different numbers of symbols corrected in the at least one codeword group; or calculating an error rate based on the number of codeword groups with different numbers of symbols corrected in the at least one codeword group; or detecting whether the data stream has synchronization errors based on the number of codeword groups with different numbers of symbols corrected in the at least one codeword group.
[0071] In a possible implementation, R counters respectively record the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, and R is greater than or equal to 3.
[0072] In a possible implementation, the numbers of corrected symbols corresponding to the R counters are 0 to R-2, and exceed R-2.
[0073] In a possible implementation manner, when the number of corrected symbols in one of the at least one codeword group is determined, a counter corresponding to the number of symbols is incremented by 1.
[0074] In a possible implementation, the processing unit is further used to perform at least one of the following: a codeword group quantity counter records the total number of codeword groups included in the data stream; a codeword quantity counter records the total number of codewords included in the data stream; and a symbol quantity counter records the total number of symbols included in the data stream.
[0075] In an eighth aspect, the present application provides a data statistics device, the device comprising: a receiving unit, configured to receive a data stream;
[0076] A processing unit is used to obtain at least one codeword group according to the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, and Q is greater than or equal to 2; and count the number of codeword groups in the at least one codeword group that are corrected with different numbers of symbols.
[0077] In one possible implementation, the processing unit is further used to: detect burst errors based on the number of codeword groups with different numbers of symbols corrected in the at least one codeword group; or, calculate the error rate based on the number of codeword groups with different numbers of symbols corrected in the at least one codeword group; or, detect whether the data stream has synchronization errors based on the number of codeword groups with different numbers of symbols corrected in the at least one codeword group.
[0078] In a possible implementation, R counters respectively record the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, and R is greater than or equal to 3.
[0079] In a possible implementation, the numbers of corrected symbols corresponding to the R counters are 0 to R-2, and exceed R-2.
[0080] In a possible implementation manner, when the number of corrected symbols in one of the at least one codeword group is determined, a counter corresponding to the number of symbols is incremented by 1.
[0081] In a possible implementation, the processing unit is further used to perform at least one of the following: a codeword group quantity counter records the total number of codeword groups included in the data stream; a codeword quantity counter records the total number of codewords included in the data stream; and a symbol quantity counter records the total number of symbols included in the data stream.
[0082] In a possible implementation, the processing unit is further configured to: use P counters to respectively record the number of code words with different numbers of symbols corrected in the data stream, where P is greater than or equal to 3.
[0083] In one possible implementation, the processing unit is further used to: detect burst bit errors based on the numbers recorded by the P counters; or, calculate the error rate based on the numbers recorded by the P counters; or, detect whether the data stream has synchronization errors based on the numbers recorded by the P counters.
[0084] In a possible implementation, the numbers of corrected symbols corresponding to the P counters are 0 to P-2, and greater than P-2, respectively.
[0085] In a possible implementation manner, when the number of corrected symbols in a codeword in the data stream is determined, a counter corresponding to the number of symbols is incremented by 1.
[0086] In a possible implementation, the codewords described in the third and fourth aspects above include: forward error correction FEC codewords.
[0087] In a possible implementation manner, the FEC codeword includes: an FEC inner codeword, or an FEC outer codeword.
[0088] In a possible implementation, in the data statistics device described in the third and fourth aspects above, the receiving end device includes: a chip, an optical module, a network device or a server.
[0089] In the ninth aspect, the present application provides a device. The device includes a processor and a communication interface, the processor is used to perform the data processing operations in the method described in the first aspect and any one of the first aspects, and the communication interface is used to perform the data transceiving operations in the method described in the first aspect and any one of the first aspects; or, the processor is used to perform the data processing operations in the method described in the second aspect and any one of the second aspects, and the communication interface is used to perform the data transceiving operations in the method described in the second aspect and any one of the second aspects. Alternatively, the processor is used to perform the data processing operations in the method described in the third aspect and any one of the third aspects, and the communication interface is used to perform the data transceiving operations in the method described in the third aspect and any one of the third aspects. Alternatively, the processor is used to perform the data processing operations in the method described in the fourth aspect and any one of the fourth aspects, and the communication interface is used to perform the data transceiving operations in the method described in the fifth aspect and any one of the fifth aspects.
[0090] In a possible implementation, the device further includes a memory, the memory is used to store instructions or computer programs, and the processor is used to execute the instructions or computer programs in the memory, triggering the device to perform the method described in the first aspect and any one of the first aspects above; or, the processor is used to execute the instructions or computer programs in the memory, and perform the method described in the second aspect and any one of the second aspects above. Or, the processor is used to execute the instructions or computer programs in the memory, and perform the method described in the third aspect and any one of the third aspects above. Or, the processor is used to execute the instructions or computer programs in the memory, and perform the method described in the fourth aspect and any one of the fourth aspects above.
[0091] In a tenth aspect, the present application provides a device comprising an interface circuit and a processing circuit, wherein the interface circuit is used to receive and / or send data, and the processing circuit is used to perform data processing.
[0092] In one example, the device is used to execute the method described in the first aspect and any one of the first aspect above. For this case:
[0093] The interface circuit is used to receive a data stream; the processing circuit is used for P counters to respectively record the number of code words with different numbers of bits corrected in the data stream, where P is greater than or equal to 3.
[0094] In yet another example, the device is used to execute the method described in the second aspect and any one of the second aspect above. For this case:
[0095] The interface circuit is used to receive a data stream, and the processing circuit is used to obtain at least one codeword group according to the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, and Q is greater than or equal to 2; and the number of codeword groups with different numbers of bits corrected in the at least one codeword group is counted.
[0096] In another example, the device is used to execute the method described in the third aspect and any one of the third aspects above. For this case:
[0097] The interface circuit is used to receive a data stream; the processing circuit is used for P counters to respectively record the number of code words with different numbers of symbols corrected in the data stream, where P is greater than or equal to 3.
[0098] In yet another example, the device is used to execute the method described in the fourth aspect and any one of the fourth aspects above. For this case:
[0099] The interface circuit is used to receive a data stream, and the processing circuit is used to obtain at least one codeword group according to the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, and Q is greater than or equal to 2; and the number of codeword groups with different numbers of symbols corrected in the at least one codeword group is counted.
[0100] In the eleventh aspect, the present application provides a computer-readable storage medium, including instructions or computer programs, which, when running on a computer, enable the computer to execute the method described in the first aspect and any one of the first aspects above, or, when running on a computer, enable the computer to execute the method described in the second aspect and any one of the second aspects above, or, when running on a computer, enable the computer to execute the method described in the third aspect and any one of the third aspects above, or, when running on a computer, enable the computer to execute the method described in the fourth aspect and any one of the fourth aspects above.
[0101] In the twelfth aspect, the present application provides a computer program product comprising instructions or computer programs, which, when executed on a computer, enables the computer to execute the method described in the first aspect and any one of the above first aspects, or enables the computer to execute the method described in the second aspect and any one of the above second aspects, or enables the computer to execute the method described in the third aspect and any one of the above third aspects, or enables the computer to execute the method described in the fourth aspect and any one of the above fourth aspects.
[0102] In the thirteenth aspect, the present application provides a chip comprising an interface circuit and a processing circuit, wherein the chip is used to execute the method described in the first aspect and any one of the above first aspects; or, to execute the method described in the second aspect and any one of the above second aspects, or, to execute the method described in the third aspect and any one of the above third aspects, or, to execute the method described in the fourth aspect and any one of the above fourth aspects.
[0103] In a fourteenth aspect, the present application provides an optical module comprising an interface circuit and a processing circuit, wherein the optical module is used to execute the method described in the first aspect and any one of the above first aspects; or, to execute the method described in the second aspect and any one of the above second aspects, or, to execute the method described in the third aspect and any one of the above third aspects, or, to execute the method described in the fourth aspect and any one of the above fourth aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0104] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0105] Figure 1 A schematic diagram of an exemplary application scenario provided for an embodiment of the present application;
[0106] Figure 2 A flowchart of a data statistics method provided in an embodiment of the present application;
[0107] Figure 3 A schematic diagram of a data processing flow provided in an embodiment of the present application;
[0108] Figure 4 A flowchart of another data statistics method provided in an embodiment of the present application;
[0109] Figure 5 A schematic diagram of a data processing flow provided in an embodiment of the present application;
[0110] Figure 6 A schematic diagram of the structure of a receiving end device provided in an embodiment of the present application;
[0111] Figure 7 A schematic diagram of the structure of a data statistics device provided in an embodiment of the present application;
[0112] Figure 8 A schematic diagram of the structure of a device provided in an embodiment of the present application;
[0113] Fig. 9 A schematic diagram of the structure of a device provided in an embodiment of the present application;
[0114] Fig.10 A schematic diagram of the structure of a chip or optical module provided in an embodiment of the present application. DETAILED DESCRIPTION
[0115] The embodiments of the present application provide a data statistics method and device, which can perform statistics of relevant parameters based on a received data stream.
[0116] Before introducing the data statistics method provided in the embodiment of the present application, the possible application scenarios of the present application are first introduced.
[0117] See also Figure 1 , which is a schematic diagram of an exemplary application scenario provided in an embodiment of the present application.
[0118] like Figure 1 As shown, the chip or optical module at the transmitting end can perform FEC encoding on the data stream to be transmitted, where: Figure 1 It shows that the transmitting end can use 8-way FEC encoder to perform FEC encoding on the data stream to be transmitted in parallel, and the 8-way FEC codewords obtained by FEC encoding are interleaved 8:1 bit pairs. Figure 1 In the scenario shown, the 8-channel FEC codewords obtained after FEC encoding are interleaved 8:1 based on four-level pulse amplitude modulation (PAM4) symbols. The data stream after 8:1 bit pair interleaving is subjected to padding insertion operation, and the data stream inserted with pad is further PAM4 encoded and sent to the receiving end through the channel.
[0119] After the receiving end receives the data stream sent by the transmitting end, it can process the data stream. The receiving end's processing of the data stream is the inverse process of the transmitting end's processing of the data stream. Specifically, the chip or optical module at the receiving end can first decode the received data stream based on the PAM4 symbol, and further, for the decoded data stream, delete the pad in the data stream, and perform 1:8 bit pair deinterleaving on the data stream obtained by deleting the pad, and use the 8-way FEC decoder to perform FEC decoding on the corresponding FEC codewords obtained by deinterleaving.
[0120] In one example, the transmitter can also perform 8:1 bit pair interleaving on the 8-way FEC codewords obtained by FEC encoding based on dual polarization 16-state quadrature amplitude modulation (DP-16QAM) symbols. In this scenario, after the transmitter performs the pad insertion operation on the data stream, it can further perform DP-16QAM encoding on the data stream with the pad inserted, and send the data stream after DP-16QAM encoding to the receiver through the channel. Correspondingly, the chip or optical module at the receiving end can first decode the received data stream based on the DP-16QAM symbol, and further, for the decoded data stream, delete the pad in the data stream, and perform 1:8 bit pair deinterleaving on the data stream obtained by deleting the pad, and use the 8-way FEC decoder to perform FEC decoding on the corresponding FEC codewords obtained by deinterleaving.
[0121] In one example, Figure 1 The receiving end and the sending end shown can be servers, network devices, network cards or boards with specific functions. The network devices mentioned here include but are not limited to routers or switches.
[0122] In another example, Figure 1 The receiving end and the sending end shown may be different modules (eg, different chips) located in the same server or network device.
[0123] Figure 1 The chips shown in include but are not limited to a network processor (NP) or an application specific integrated circuit (ASIC).
[0124] In one example, a burst error is one of the indicators for evaluating the communication quality provided by a transmission channel. Among them, a burst error is manifested as multiple errors occurring in data of a shorter length. With the increase of the communication transmission rate, the impact of the burst error on the reliability of the transmission system is also increasing. As a specific example, the burst error will reduce the reliability of the transmission system and make the transmission system more prone to failure. Therefore, in order to ensure the reliability of the transmission system, the detection of the burst error is particularly important. For example, after the burst error is detected, corresponding processing measures can be adopted so that the data can be transmitted normally through the transmission system. In one example, in the data statistics method provided in an embodiment of the present application, the receiving end can perform statistics on relevant parameters based on the received data stream, and detect the burst error based on the statistical parameters.
[0125] In another example, the error rate of a data stream transmitted in a transmission channel is one of the indicators for evaluating the communication quality provided by the transmission channel. The error rate includes, but is not limited to, one or more of CER, BER, SER, and FLR. In one example, in the data statistics method provided in an embodiment of the present application, the receiving end can perform statistics of relevant parameters based on the received data stream, and determine the error rate of the data stream transmitted in the transmission channel based on the statistical parameters.
[0126] In another example, the receiving end needs to synchronize the data stream before deinterleaving the received data stream. If the data stream synchronization error occurs, the subsequent "deinterleaving" and "FEC decoding" operation results performed by the receiving end device will be abnormal. In one example, the data statistics method provided in the embodiment of the present application can be used by the receiving end to perform statistics on relevant parameters based on the received data stream, and determine whether the data stream is synchronized incorrectly based on the statistical parameters. If a synchronization error is found, the error information needs to be reported in a timely manner.
[0127] Next, the data statistics method provided in the embodiment of the present application is introduced in conjunction with the accompanying drawings.
[0128] See also Figure 2 , which is a flow chart of a data statistics method provided in an embodiment of the present application. Figure 2 The method shown can be applied to a receiving end device. The receiving end device mentioned in the embodiment of the present application can correspond to Figure 1 The receiving end shown in the figure may be a chip or an optical module in the receiving end, or may be the receiving end itself, that is, the receiving end device may also be a network device or a server. The server mentioned here may be, for example, a server in a data center for storing data and performing related calculations. In addition, the receiving end device may also be a network card.
[0129] Figure 2 The method shown includes the following S101-S102.
[0130] S101: receiving a data stream.
[0131] The receiving end device may receive a data stream sent by the transmitting end, the data stream comprising one or more bits. In one example, the data stream may be a data stream obtained by encoding via a multi-channel FEC encoder and interleaving the FEC codewords encoded by the multi-channel FEC encoder. In one example, the FEC codewords encoded by the multi-channel FEC encoder may be interleaved based on PAM4 symbols.
[0132] S102: P counters respectively record the number of code words with different numbers of bits or symbols corrected in the data stream, where P is greater than or equal to 3.
[0133] In an embodiment of the present application, P counters are provided in the receiving end device, and the P counters are used to record the number of codewords with different numbers of bits or symbols corrected in the data stream according to the number of bits or symbols corrected for each codeword included in the data stream. The codewords mentioned in the embodiment of the present application may be FEC codewords, and the two may be used interchangeably. The FEC codeword may be an FEC outer codeword, and in a cascade code scenario, the FEC codeword may also be an FEC inner codeword. In one example, the counter may also be understood as a register.
[0134] In one example, the codeword in the embodiment of the present application may be a BCH code, such as a BCH (126, 110) code or a BCH (128, 120) code. In another example, the codeword in the embodiment of the present application may be a Hamming code, or a systematic binary (128, 120) code obtained by Hamming encoding.
[0135] In the embodiment of the present application, if the P counters are used to respectively record the number of codewords with different numbers of bits corrected in the data stream, then the numbers of corrected bits corresponding to any two counters in the P counters are different.
[0136] In a specific example, the number of corrected bits corresponding to the P counters is continuous, for example, 0 to P-2, and more than P-2, respectively. For example:
[0137] When P is equal to 3, the numbers of corrected bits corresponding to the three counters may be: 0, 1, and more than 1;
[0138] When P is equal to 4, the numbers of corrected bits corresponding to the four counters may be: 0, 1, 2, and more than 2;
[0139] When P is equal to 5, the numbers of corrected bits corresponding to the five counters may be: 0, 1, 2, 3, and more than 3;
[0140] And so on.
[0141] The number exceeding 3 mentioned this time refers to being greater than 3.
[0142] The embodiment of the present application does not specifically limit the specific value of P, as long as P is greater than or equal to 3.
[0143] In one example, the value of P can be determined based on the maximum error correction capability of the receiving device, wherein the maximum error correction capability of the receiving device refers to the maximum number of bits that the receiving device can correct for a codeword to be corrected. In other words, when the number of erroneous bits in a codeword is greater than the maximum error correction capability of the receiving device, the receiving device cannot correct the codeword. In a specific example, the value of P can be the maximum error correction capability of the receiving device + 2. In this scenario, a codeword with more than P-2 corrected bits is actually an uncorrectable codeword.
[0144] In another specific example, the numbers of corrected bits corresponding to the aforementioned P counters may also be discontinuous. For example, if P is equal to 3, the numbers of corrected bits corresponding to the three counters may be: 0, 1, and 3, respectively.
[0145] In one example, after receiving the data stream, the receiving end device may synchronize the data stream, and then deinterleave the synchronized data stream, for example, deinterleave based on PAM4 symbols to obtain several codewords. Further, FEC error correction is performed on each of the several codewords to determine the number of corrected bits in each codeword, thereby updating the value of at least one of the aforementioned P counters. As a specific example, for any codeword, after determining the number of corrected bits in the codeword, the counter corresponding to the number of bits may be incremented by 1. For example:
[0146] P is equal to 5, and the P counters are P0, P1, P2, P3, and P3+. P0 is used to record the number of codewords corrected by 0 bits, P1 is used to record the number of codewords corrected by 1 bit, P2 is used to record the number of codewords corrected by 2 bits, P3 is used to record the number of codewords corrected by 3 bits, and P3+ is used to record the number of codewords corrected by more than 3 bits. For codeword 1 in the data stream, after FEC error correction, it is determined that codeword 1 is corrected by 2 bits, then counter P2 is incremented by 1.
[0147] In an embodiment of the present application, if the P counters are used to respectively record the number of codewords with different numbers of symbols corrected in the data stream, then the numbers of corrected symbols corresponding to any two counters in the P counters are different.
[0148] In a specific example, the numbers of corrected symbols corresponding to the P counters are continuous, for example, 0 to P-2, and more than P-2, respectively. For example:
[0149] When P is equal to 3, the numbers of corrected symbols corresponding to the three counters may be: 0, 1, and more than 1;
[0150] When P is equal to 4, the numbers of corrected symbols corresponding to the four counters may be: 0, 1, 2, and more than 2;
[0151] When P is equal to 5, the numbers of corrected symbols corresponding to the five counters may be: 0, 1, 2, 3, and more than 3;
[0152] And so on.
[0153] The number exceeding 3 mentioned this time refers to being greater than 3.
[0154] The embodiment of the present application does not specifically limit the specific value of P, as long as P is greater than or equal to 3.
[0155] In one example, the value of P can be determined based on the maximum error correction capability of the receiving device, wherein the maximum error correction capability of the receiving device refers to the maximum number of symbols that the receiving device can correct for a codeword to be corrected. In other words, when the number of erroneous symbols in a codeword is greater than the maximum error correction capability of the receiving device, the receiving device cannot correct the codeword. In a specific example, the value of P can be the maximum error correction capability of the receiving device + 2. In this scenario, a codeword whose number of corrected symbols exceeds P-2 is actually an uncorrectable codeword. Among them, the maximum number of symbols that the receiving device can correct can be equal to the maximum number of bits that the receiving device can correct.
[0156] In another specific example, the numbers of corrected symbols corresponding to the aforementioned P counters may also be discontinuous. For example, if P is equal to 3, the numbers of corrected symbols corresponding to the three counters may be: 0, 1, and 3, respectively.
[0157] In one example, after receiving the data stream, the receiving end device may synchronize the data stream, and then deinterleave the synchronized data stream, for example, deinterleave based on PAM4 symbols to obtain several codewords. Further, FEC error correction is performed on each of the several codewords to determine the number of corrected symbols in each codeword, thereby updating the value of at least one of the aforementioned P counters. As a specific example, for any codeword, after determining the number of corrected symbols in the codeword, the counter corresponding to the number of symbols may be incremented by 1. For example:
[0158] P is equal to 5, and the P counters are P0, P1, P2, P3, and P3+. P0 is used to record the number of codewords corrected with 0 symbols, P1 is used to record the number of codewords corrected with 1 symbol, P2 is used to record the number of codewords corrected with 2 symbols, P3 is used to record the number of codewords corrected with 3 symbols, and P3+ is used to record the number of codewords corrected with more than 3 symbols. For codeword 1 in the data stream, after FEC error correction, it is determined that codeword 1 is corrected with 2 symbols, then counter P2 is incremented by 1.
[0159] As an example, for any codeword, the codeword can be decoded by using an FEC decoder. When the FEC decoder decodes the codeword, it will perform error correction on the codeword. Accordingly, based on the decoding of the codeword by the FEC decoder, the number of corrected bits or symbols in the codeword can be determined.
[0160] For example, to determine the number of corrected bits in a codeword, refer to Figure 3 To understand, Figure 3 A schematic diagram of a data processing flow provided in an embodiment of the present application. Figure 3 As shown, after receiving the data stream, the receiving end device can first perform deinterleaving decoding based on the PAM4 symbol, further synchronize the decoded data stream, and then delete the pad in the synchronized data stream, and perform 1:8 bit pair deinterleaving on the data stream obtained by deleting the pad. One deinterleaving can obtain 8 FEC codewords, corresponding to Figure 3 In addition, the receiving end device includes 8 FEC decoders, which are used to decode the 8 FEC codewords obtained by one deinterleaving. In other words, after one deinterleaving obtains 8 FEC codewords, the 8 FEC decoders, FEC decoder 0 to FEC decoder 7, are used to perform FEC decoding on FEC codeword 0 to FEC codeword 7, respectively, so as to obtain the number of corrected bits of each FEC codeword in the 8 FEC codewords, FEC codeword 0 to FEC codeword 7.
[0161] In one example, after using P counters to respectively record the number of codewords with different numbers of bits corrected in the data stream, burst errors can be further detected based on the values recorded by the P counters. The detection of burst errors mentioned here can be detecting whether a burst error has occurred in the data stream, or detecting the number of burst errors occurring in the data stream, or detecting the corresponding data length when a burst error occurs in the data stream, etc. The embodiments of the present application do not specifically limit how to detect burst errors using the numbers recorded by the P counters.
[0162] In another example, after using P counters to respectively record the number of codewords with different numbers of bits corrected in the data stream, the error rate can be further calculated based on the values recorded by the P counters. Regarding the error rate, reference can be made to the description of the error rate in the previous text, which will not be repeated here. Regarding how to calculate the error rate using the number recorded by the P counters, the embodiment of the present application does not specifically limit it.
[0163] In another example, after using P counters to respectively record the number of codewords with different numbers of bits corrected in the data stream, it is possible to further detect whether the data stream has a synchronization error based on the values recorded by the P counters. Regarding data stream synchronization, reference may be made to the relevant description section above, which will not be repeated here. Regarding how to use the numbers recorded by the P counters to detect whether the data stream has a synchronization error, the embodiment of the present application does not specifically limit it.
[0164] In one example, after using P counters to respectively record the number of codewords with different numbers of symbols corrected in the data stream, burst errors can be further detected based on the values recorded by the P counters. The detection of burst errors mentioned here can be detecting whether a burst error has occurred in the data stream, or detecting the number of burst errors occurring in the data stream, or detecting the data length corresponding to the burst error occurring in the data stream, etc. The embodiment of the present application does not specifically limit how to detect burst errors using the numbers recorded by the P counters.
[0165] In another example, after using P counters to respectively record the number of codewords with different numbers of symbols corrected in the data stream, the error rate can be further calculated based on the values recorded by the P counters. Regarding the error rate, reference can be made to the description of the error rate in the previous text, which will not be repeated here. Regarding how to calculate the error rate using the number recorded by the P counters, the embodiment of the present application does not specifically limit it.
[0166] In another example, after using P counters to respectively record the number of codewords with different numbers of symbols corrected in the data stream, it is possible to further detect whether the data stream is synchronized incorrectly based on the values recorded by the P counters. Regarding data stream synchronization, reference may be made to the relevant description section above, which will not be repeated here. Regarding how to use the numbers recorded by the P counters to detect whether the data stream is synchronized incorrectly, the embodiments of the present application do not specifically limit.
[0167] It can be seen from the above description that the embodiment of the present application provides a new data statistics method, and the receiving end device can use P counters to respectively record the number of codewords with different numbers of bits or symbols corrected in the data stream. Optionally, the values recorded by the P counters can be analyzed later to determine the communication quality provided by the transmission channel (for example, detecting burst errors or calculating error rates). Alternatively, the values recorded by the P counters can be analyzed later to determine whether the data processing operation of the receiving end device (for example, data stream synchronization operation) is abnormal.
[0168] The embodiment of the present application also provides another data statistics method, which is described below with reference to the accompanying drawings.
[0169] See also Figure 4 , which is a flow chart of another data statistics method provided in an embodiment of the present application. Figure 4 The method shown can be applied to a receiving end device. For the description of the receiving end device, reference can be made to the above description part, and a repeated description will not be made here.
[0170] Figure 4 The method shown includes the following S201-S203.
[0171] S201: receiving a data stream.
[0172] The receiving end device may receive a data stream sent by the transmitting end, the data stream comprising one or more bits. In one example, the data stream may be a data stream obtained by encoding via a multi-channel FEC encoder and interleaving the FEC codewords encoded by the multi-channel FEC encoder. In one example, the FEC codewords encoded by the multi-channel FEC encoder may be interleaved based on PAM4 symbols.
[0173] S202: Obtain at least one codeword group according to the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, where Q is greater than or equal to 2.
[0174] In one example, after receiving the data stream, the receiving end device may sequentially perform PAM4 decoding, pad deletion, and data stream synchronization operations on the data stream, and then deinterleave the synchronized data stream to obtain a number of codewords. For example, the receiving end device may deinterleave the synchronized data stream based on the PAM4 symbol to obtain a number of codewords. Further, the at least one codeword group is obtained based on the number of codewords. For each codeword group in the at least one codeword group, the codeword group includes Q codewords obtained by one or more deinterleaving operations, where Q is an integer greater than or equal to 2. For example, in Figure 1In the scenario shown, 8 FEC codewords can be obtained by one deinterleaving. When the codeword group includes Q codewords obtained by one deinterleaving, the value of Q can be 2, 3, 4, 5, 6, 7 or 8. For example, when the value of Q is equal to 8, the 8 FEC codewords obtained by one deinterleaving constitute a codeword group. When the codeword group includes Q codewords obtained by multiple deinterleavings, the value of Q can be greater than 8, for example. The codewords mentioned in the embodiments of the present application can be FEC codewords, and the two can be used alternately. The FEC codeword can be an FEC outer codeword, and in the cascade code scenario, the FEC codeword can also be an FEC inner codeword.
[0175] S203: Count the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group.
[0176] In one example, after obtaining the at least one codeword group, for any codeword group, each codeword in the codeword group can be error corrected (e.g., FEC error correction) to determine the number of bits corrected for each codeword. Further, in one example, the number of bits corrected for each codeword group can be summed to obtain the number of bits corrected for the codeword group. For example, a codeword group includes 8 codewords, and each of the 8 codewords is corrected by 1 bit, then the number of bits corrected for the codeword group is 8. In another example, the number of symbols corrected for each codeword group can be summed to obtain the number of symbols corrected for the codeword group. For example, a codeword group includes 8 codewords, and each of the 8 codewords is corrected by 1 symbol, then the number of symbols corrected for the codeword group is 8.
[0177] In one example, R counters are provided in the receiving end device. As an example, the R counters are used to record the number of codeword groups with different numbers of bits corrected in the at least one codeword group according to the number of bits corrected in each codeword group in the at least one codeword group. As another example, the R counters are used to record the number of codeword groups with different numbers of symbols corrected in the at least one codeword group according to the number of symbols corrected in each codeword group in the at least one codeword group. R can be a positive integer greater than or equal to 3.
[0178] In the case where the R counters are used to record the number of codeword groups with different numbers of bits corrected in the at least one codeword group, the numbers of corrected bits corresponding to any two counters in the R counters are different.
[0179] In a specific example, the number of corrected bits corresponding to the R counters is continuous, for example, 0 to R-2, and more than R-2, respectively. For example:
[0180] When R is equal to 3, the numbers of corrected bits corresponding to the three counters may be: 0, 1, and more than 1;
[0181] When R is equal to 4, the numbers of corrected bits corresponding to the four counters may be: 0, 1, 2, and more than 2;
[0182] When R is equal to 5, the numbers of corrected bits corresponding to the five counters may be: 0, 1, 2, 3, and more than 3;
[0183] And so on.
[0184] The embodiment of the present application does not specifically limit the specific value of R, and R can be greater than or equal to 3.
[0185] In one example, the value of R can be determined according to the maximum error correction capability of the receiving end device and the number Q of codewords included in a codeword group. In a specific example, the value of R can be the product of the maximum error correction capability of the receiving end device and Q + 2. For example, if the value of Q is 8 and the maximum error correction capability of the receiving end device is 3 bits, the value of R can be 26. In this scenario, the codeword group with the number of corrected bits exceeding R-2 is actually a codeword group in which all Q codewords included cannot be corrected.
[0186] Regarding the maximum error correction capability of the receiving device, please refer to the relevant description above, which will not be repeated here.
[0187] In another specific example, the numbers of corrected bits corresponding to the aforementioned R counters may also be discontinuous. For example, if R is equal to 3, the numbers of corrected bits corresponding to the three counters may be: 0, 8, and 16, respectively.
[0188] In the scenario where R counters are used to record the number of codeword groups with different numbers of corrected bits in the at least one codeword group, for any codeword group, after determining the number of corrected bits in the codeword group, the counter corresponding to the number of bits can be incremented by 1. For example:
[0189] R is equal to 26, and the R counters are R0, R1, R2, R3, ..., R24 and R24+. R0 is used to record the number of codeword groups corrected by 0 bits, R1 is used to record the number of codeword groups corrected by 1 bit, R2 is used to record the number of codeword groups corrected by 2 bits, R3 is used to record the number of codeword groups corrected by 3 bits, and so on, R24 is used to record the number of codeword groups corrected by 24 bits, and R24+ is used to record the number of codeword groups corrected by more than 24 bits. For codeword group 1 in the at least one codeword group, after error correction, it is determined that codeword group 1 is corrected by 8 bits, then counter R8 is increased by 1.
[0190] In the case where the R counters are used to record the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, the numbers of corrected symbols corresponding to any two counters in the R counters are different.
[0191] In a specific example, the numbers of corrected symbols corresponding to the R counters are continuous, for example, 0 to R-2, and more than R-2, respectively. For example:
[0192] When R is equal to 3, the numbers of corrected symbols corresponding to the three counters may be: 0, 1, and more than 1;
[0193] When R is equal to 4, the numbers of corrected symbols corresponding to the four counters may be: 0, 1, 2, and more than 2;
[0194] When R is equal to 5, the numbers of corrected symbols corresponding to the five counters may be: 0, 1, 2, 3, and more than 3;
[0195] And so on.
[0196] The embodiment of the present application does not specifically limit the specific value of R, and R can be greater than or equal to 3.
[0197] In one example, the value of R can be determined according to the maximum error correction capability of the receiving end device and the number Q of codewords included in a codeword group. In a specific example, the value of R can be the product of the maximum error correction capability of the receiving end device and Q + 2. For example, if the value of Q is 8 and the maximum error correction capability of the receiving end device is 3 symbols, the value of R can be 26. In this scenario, the codeword group with the number of corrected symbols exceeding R-2 is actually a codeword group in which all Q codewords included cannot be corrected.
[0198] Regarding the maximum error correction capability of the receiving device, please refer to the relevant description above, which will not be repeated here.
[0199] In another specific example, the numbers of corrected symbols corresponding to the aforementioned R counters may also be discontinuous. For example, if R is equal to 3, the numbers of corrected symbols corresponding to the three counters may be: 0, 8, and 16, respectively.
[0200] In the scenario where the number of codeword groups with different numbers of corrected symbols in the at least one codeword group is recorded by R counters, for any codeword group, after the number of corrected symbols in the codeword group is determined, the counter corresponding to the number of symbols can be incremented by 1. For example:
[0201] R is equal to 26, and the R counters are R0, R1, R2, R3, ..., R24 and R24+. R0 is used to record the number of codeword groups corrected with 0 symbols, R1 is used to record the number of codeword groups corrected with 1 symbol, R2 is used to record the number of codeword groups corrected with 2 symbols, R3 is used to record the number of codeword groups corrected with 3 symbols, and so on, R24 is used to record the number of codeword groups corrected with 24 symbols, and R24+ is used to record the number of codeword groups corrected with more than 24 symbols. For codeword group 1 in the at least one codeword group, after error correction, it is determined that codeword group 1 is corrected with 8 symbols, then counter R8 is incremented by 1.
[0202] As an example, for any codeword, the codeword can be decoded by using an FEC decoder. When the FEC decoder decodes the codeword, it will perform FEC error correction on the codeword. Accordingly, based on the decoding of the codeword by the FEC decoder, the number of corrected bits or symbols in the codeword can be determined.
[0203] For example, to determine the number of corrected bits in a codeword, refer to Figure 5 To understand, Figure 5 A schematic diagram of a data processing flow provided in an embodiment of the present application. Figure 5 As shown, after receiving the data stream, the receiving end device can first perform deinterleaving decoding based on the PAM4 symbol, further synchronize the decoded data stream, and then delete the pad in the synchronized data stream, and perform 1:8 bit pair deinterleaving on the data stream obtained by deleting the pad. One deinterleaving can obtain 8 FEC codewords, corresponding to Figure 5 FEC codeword 0 to FEC codeword 7 are shown. In one example, the eight FEC codewords FEC codeword 0 to FEC codeword 7 can constitute a codeword group. Further, each codeword in the codeword group can be error corrected separately. Specifically, the receiving end device includes eight FEC decoders for decoding the eight FEC codewords obtained by one deinterleaving. When the FEC decoder decodes the FEC codeword, it will perform error correction on the FEC codeword. In other words, after one deinterleaving obtains eight FEC codewords, the eight FEC decoders FEC decoder 0 to FEC decoder 7 are used to perform FEC decoding on FEC codeword 0 to FEC codeword 7, respectively, and the number of bits corrected for each of the eight FEC codewords FEC codeword 0 to FEC codeword 7 can be obtained. Correspondingly, the number of bits corrected for each of the eight FEC codewords FEC codeword 0 to FEC codeword 7 is summed, and the number of bits corrected for the codeword group can be obtained.
[0204] In an embodiment of the present application, the method for counting the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group is not limited to the aforementioned R counters. Any method that can perform quantity statistics can be used to count the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group, which are not listed one by one here.
[0205] In a specific example, the receiving end device may also be provided with at least one of a codeword group quantity counter, a codeword quantity counter, and a bit quantity counter.
[0206] The codeword group quantity counter is used to record the total number of codeword groups included in the data stream. In one example, the receiving end device increases the codeword group quantity counter by 1 each time it obtains a codeword group based on the deinterleaved codeword.
[0207] The codeword quantity counter is used to record the total number of codewords included in the data stream. In one example, when the receiving end device obtains K codewords through deinterleaving, the codeword quantity counter is incremented by K. The value of K can be a positive integer, for example, Figure 1 In the scenario shown, the value of K is 8. In one example, the value of the codeword quantity counter may be the product of the value of the codeword group quantity counter and the number of codewords Q included in each codeword group.
[0208] The bit quantity counter is used to record the total number of bits included in the data stream. In one example, the receiving end device may increase the bit quantity counter by 1 each time a bit is received. In one example, the value of the bit quantity counter may be the product of the value of the codeword quantity counter and the number of bits included in each codeword.
[0209] In one example, after counting the number of codeword groups with different numbers of bits corrected in the at least one codeword group, burst errors can be detected based on the statistical results. As a specific example, after using R counters to respectively record the number of codeword groups with different numbers of bits corrected in the at least one codeword group, burst errors can be further detected based on the values respectively recorded by the R counters. The detection of burst errors mentioned here can be detecting whether a burst error has occurred in the data stream, or detecting the number of burst errors occurring in the data stream, or detecting the corresponding data length when a burst error occurs in the data stream, and so on. The embodiments of the present application do not specifically limit how to detect burst errors using the numbers recorded by the R counters.
[0210] In the case where the receiving end device is also provided with at least one of a codeword group quantity counter, a codeword quantity counter and a bit quantity counter, the receiving end device can detect burst errors by combining the value recorded by at least one of the codeword group quantity counter, the codeword quantity counter and the bit quantity counter, and the values respectively recorded by the R counters.
[0211] In another example, after counting the number of codeword groups with different number of bits corrected in the at least one codeword group, the error rate can be calculated based on the statistical results. As a specific example, after using R counters to respectively record the number of codeword groups with different number of bits corrected in the at least one codeword group, the error rate can be further calculated based on the values recorded by the R counters. Regarding the error rate, reference can be made to the description of the error rate in the previous text, and no repeated description is made here. Regarding how to calculate the error rate using the number recorded by the R counters respectively, the embodiments of the present application do not make specific restrictions.
[0212] In the case where the receiving end device is also provided with at least one of a codeword group quantity counter, a codeword quantity counter and a bit quantity counter, the receiving end device can calculate the error rate by combining the value recorded by at least one of the codeword group quantity counter, the codeword quantity counter and the bit quantity counter, and the values recorded by the R counters respectively.
[0213] In another example, after counting the number of codeword groups with different numbers of bits corrected in the at least one codeword group, it is possible to detect whether the data stream has a synchronization error based on the statistical results. As a specific example, after using R counters to respectively record the number of codeword groups with different numbers of bits corrected in the at least one codeword group, it is possible to further detect whether the data stream has a synchronization error based on the values respectively recorded by the R counters. Regarding data stream synchronization, please refer to the relevant description section above, which will not be repeated here. As to how to use the numbers recorded by the R counters to detect whether the data stream has a synchronization error, the embodiments of the present application do not make specific restrictions.
[0214] In the case where the receiving end device is also provided with at least one of a codeword group quantity counter, a codeword quantity counter and a bit quantity counter, the receiving end device can detect whether the data stream has a synchronization error by combining the value recorded by at least one of the codeword group quantity counter, the codeword quantity counter and the bit quantity counter and the values recorded by the R counters respectively.
[0215] In one example, after counting the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, burst errors can be detected based on the statistical results. As a specific example, after using R counters to respectively record the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, burst errors can be further detected based on the values respectively recorded by the R counters. The detection of burst errors mentioned here can be detecting whether a burst error has occurred in the data stream, or detecting the number of burst errors occurring in the data stream, or detecting the corresponding data length when a burst error occurs in the data stream, and so on. The embodiments of the present application do not specifically limit how to detect burst errors using the numbers recorded by the R counters.
[0216] In the case where the receiving end device is also provided with at least one of a codeword group quantity counter, a codeword quantity counter and a symbol quantity counter, the receiving end device can detect burst errors by combining the value recorded by at least one of the codeword group quantity counter, the codeword quantity counter and the symbol quantity counter, and the values respectively recorded by the R counters.
[0217] In another example, after counting the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, the error rate can be calculated based on the statistical results. As a specific example, after using R counters to respectively record the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, the error rate can be further calculated based on the values recorded by the R counters. Regarding the error rate, reference can be made to the description of the error rate in the previous text, and no repeated description is made here. Regarding how to calculate the error rate using the number recorded by the R counters respectively, the embodiments of the present application do not make specific restrictions.
[0218] In the case where the receiving end device is also provided with at least one of a codeword group quantity counter, a codeword quantity counter and a symbol quantity counter, the receiving end device can calculate the error rate by combining the value recorded by at least one of the codeword group quantity counter, the codeword quantity counter and the symbol quantity counter, and the values recorded by the R counters respectively.
[0219] In another example, after counting the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, it is possible to detect whether the data stream has synchronization errors based on the statistical results. As a specific example, after using R counters to respectively record the number of codeword groups with different numbers of symbols corrected in the at least one codeword group, it is possible to further detect whether the data stream has synchronization errors based on the values respectively recorded by the R counters. Regarding data stream synchronization, please refer to the relevant description section above, which will not be repeated here. Regarding how to use the numbers recorded by the R counters to detect whether the data stream has synchronization errors, the embodiments of the present application do not make specific restrictions.
[0220] In the case where the receiving end device is also provided with at least one of a codeword group quantity counter, a codeword quantity counter and a symbol quantity counter, the receiving end device can detect whether the data stream has a synchronization error by combining the value recorded by at least one of the codeword group quantity counter, the codeword quantity counter and the symbol quantity counter and the values recorded by the R counters respectively.
[0221] It can be seen from the above description that the embodiment of the present application provides a new data statistics method, and the receiving end device can use R counters to respectively record the number of codeword groups with different numbers of bits or symbols corrected in at least one codeword group. Optionally, the values recorded by the R counters can be analyzed later to determine the communication quality provided by the transmission channel (for example, detecting burst errors or calculating error rates). Alternatively, the values recorded by the R counters can be analyzed later to determine whether the data processing operation (for example, data stream synchronization operation) of the receiving end device is abnormal.
[0222] In one example, for the receiving end device, it can be provided with at least one of the R counters of the aforementioned P counters, and optionally, it can also be provided with at least one of the aforementioned codeword group quantity counter, codeword quantity counter, and bit quantity counter. Accordingly, the receiving end device can perform one or more of detecting burst bit errors, calculating error rates, and detecting whether the data stream has synchronization errors in combination with the values recorded by the counters set by itself.
[0223] The data statistics method provided in the embodiment of the present application is introduced above. Next, the solution of the embodiment of the present application is introduced in combination with the architecture of the receiving end device.
[0224] See also Figure 6 , which is a schematic diagram of the structure of a receiving end device provided in an embodiment of the present application. Figure 6The receiving end device 600 shown includes a PAM4 decoding module 601, a data stream synchronization module 602, a pad deletion module 603, a deinterleaving module 604, and an error correction module 605. The data statistics device 600 is used to execute the data statistics method performed by the receiving end device provided by the above method embodiment. Among them:
[0225] The PAM4 decoding module 601 is used to perform PAM4 decoding on the received data stream, and transmit the data stream obtained by performing PAM4 decoding to the data stream synchronization module.
[0226] The data stream synchronization module 602 is used to synchronize the data stream transmitted by the PAM4 decoding module 601 and transmit the synchronized data stream to the pad deletion module 603.
[0227] The pad removal module 603 is used to perform a pad removal operation on the data stream transmitted by the data stream synchronization module 602, and transmit the data stream obtained after performing the pad removal operation to the de-interleaving module 604.
[0228] The deinterleaving module 604 is used to deinterleave the data stream transmitted by the pad removal module 603 based on the PAM4 symbol to obtain at least one codeword.
[0229] The error correction module 605 is used to perform error correction on each codeword to determine the number of corrected bits or symbols in each codeword.
[0230] In one example, the error correction module 605 may include at least one FEC decoder, for example, 8 FEC decoders. In one example, the receiving end device may update the aforementioned P counters based on the number of corrected bits or symbols in each codeword.
[0231] In another example, the receiving device can further determine the number of bits or symbols corrected in the codeword group based on the number of bits or symbols corrected in each codeword belonging to the same codeword group, thereby updating the number of codeword groups with different numbers of bits or symbols corrected, for example, updating the aforementioned R counters.
[0232] Based on the data statistics method provided in the above embodiments, the embodiments of the present application also provide a corresponding device, and the device is described below in conjunction with the accompanying drawings.
[0233] See also Figure 7 , which is a structural schematic diagram of a data statistics device provided in an embodiment of the present application. Figure 7The data statistics device 700 shown includes a receiving unit 701 and a processing unit 702. The data statistics device 700 is used to execute the data statistics method performed by the receiving end device provided in the above method embodiment.
[0234] In a possible implementation, the receiving end device includes: a chip, an optical module, a network card, a network device or a server.
[0235] In a specific example, the device 700 is used in at least the above method embodiments. Figure 2 Corresponding data statistical method. For this case:
[0236] A receiving unit 701, configured to receive a data stream;
[0237] The processing unit 702 is configured to use P counters to respectively record the number of code words with different numbers of bits or symbols corrected in the data stream, where P is greater than or equal to 3.
[0238] In a possible implementation, the processing unit 702 is further used to: detect burst bit errors based on the values respectively recorded by the P counters; or, calculate the error rate based on the values respectively recorded by the P counters; or, detect whether the data stream has synchronization errors based on the values respectively recorded by the P counters.
[0239] In a possible implementation, the number of corrected bits or symbols corresponding to the P counters is 0 to P-2, and exceeds P-2, respectively.
[0240] In a possible implementation manner, when the number of bits or the number of symbols corrected in a codeword in the data stream is determined, a counter corresponding to the number of bits or the number of symbols is incremented by 1.
[0241] In one possible implementation, the processing unit 702 is further used to: obtain at least one codeword group based on the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, and Q is greater than or equal to 2; and count the number of codeword groups in the at least one codeword group that have different numbers of bits or symbols corrected.
[0242] In a possible implementation, the processing unit 702 is further used to perform at least one of the following: detecting burst errors based on the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group; or calculating the error rate based on the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group; or detecting whether the data stream has synchronization errors based on the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group.
[0243] In a possible implementation, R counters respectively record the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group, and R is greater than or equal to 3.
[0244] In a possible implementation, the corrected bit numbers or symbol numbers corresponding to the R counters are 0 to R-2, and exceed R-2.
[0245] In a possible implementation manner, when the number of bits or the number of symbols corrected in one of the at least one codeword group is determined, a counter corresponding to the number of bits or the number of symbols is incremented by 1.
[0246] In a possible implementation, the processing unit 702 is further used to perform at least one of the following: a codeword group quantity counter records the total number of codeword groups included in the data stream; a codeword quantity counter records the total number of codewords included in the data stream; and a bit quantity counter records the total number of bits included in the data stream.
[0247] In yet another specific example, the device 700 is used in at least the above method embodiments. Figure 4 Corresponding data statistical method. For this case:
[0248] A receiving unit 701, configured to receive a data stream;
[0249] The processing unit 702 is used to obtain at least one codeword group according to the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, and Q is greater than or equal to 2; and count the number of codeword groups in the at least one codeword group that are corrected with different numbers of bits or symbols.
[0250] In a possible implementation, the processing unit 702 is further used to: detect burst errors based on the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group; or, calculate the error rate based on the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group; or, detect whether the data stream has synchronization errors based on the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group.
[0251] In a possible implementation, R counters respectively record the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group, and R is greater than or equal to 3.
[0252] In a possible implementation, the corrected bit numbers or symbol numbers corresponding to the R counters are 0 to R-2, and exceed R-2.
[0253] In a possible implementation manner, when the number of bits or the number of symbols corrected in one of the at least one codeword group is determined, a counter corresponding to the number of bits or the number of symbols is incremented by 1.
[0254] In a possible implementation, the processing unit 702 is further used to perform at least one of the following: a codeword group quantity counter records the total number of codeword groups included in the data stream; a codeword quantity counter records the total number of codewords included in the data stream; and a bit quantity counter records the total number of bits included in the data stream.
[0255] In a possible implementation, the processing unit 702 is further configured to: use P counters to respectively record the number of code words with different numbers of bits or symbols corrected in the data stream, where P is greater than or equal to 3.
[0256] In a possible implementation, the processing unit 702 is further used to: detect burst bit errors based on the values respectively recorded by the P counters; or, calculate the error rate based on the values respectively recorded by the P counters; or, detect whether the data stream has synchronization errors based on the values respectively recorded by the P counters.
[0257] In a possible implementation, the number of corrected bits or symbols corresponding to the P counters is 0 to P-2, and exceeds P-2, respectively.
[0258] In a possible implementation manner, when the number of bits or the number of symbols corrected in a codeword in the data stream is determined, a counter corresponding to the number of bits or the number of symbols is incremented by 1.
[0259] In a possible implementation manner, the codeword includes: a forward error correction FEC codeword.
[0260] In a possible implementation manner, the FEC codeword includes: an FEC inner codeword, or an FEC outer codeword.
[0261] See also Figure 8 , which is a structural schematic diagram of a device provided in an embodiment of the present application. Figure 8 The device 800 shown includes an interface circuit 801 and a processing circuit 802. The interface circuit 801 is used to receive and / or send data, and the processing circuit 802 is used to process data.
[0262] In an example, the device 800 can be applied to the above receiving end device, and is used to execute the method performed by the receiving end device provided by the above method embodiment.
[0263] In a specific example, the device 800 is used to perform the above Figure 2 The corresponding method, for this case:
[0264] The interface circuit 801 is used to receive a data stream; the processing circuit 802 is used for P counters to respectively record the number of code words with different numbers of bits or symbols corrected in the data stream, where P is greater than or equal to 3.
[0265] In another specific example, the device 800 is used to perform the above Figure 4 The corresponding method, for this case:
[0266] The interface circuit 801 is used to receive a data stream; the processing circuit 802 is used to obtain at least one codeword group according to the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, Q is greater than or equal to 2; and count the number of codeword groups in the at least one codeword group that have different numbers of bits or symbols corrected.
[0267] See also Fig. 9 , which is a structural schematic diagram of a device provided in an embodiment of the present application.
[0268] In one example, Fig. 9 The device 900 shown may correspond to the receiving end device mentioned in the above embodiment, and is used to execute the method performed by the receiving end device provided in the above method embodiment.
[0269] See also Fig. 9 As shown, the device 900 includes: a processor 910 and a communication interface 920. The number of processors 910 in the device 900 can be one or more. Fig. 9 A processor is taken as an example.
[0270] The communication interface 920 is used to receive and / or send data. The processor 910 is used to process data. For example, when the device 900 is used to execute Figure 2 In the corresponding method, the communication interface 920 is used to receive a data stream. The processor 910 is used to use P counters to respectively record the number of code words with different numbers of bits or symbols corrected in the data stream, where P is greater than or equal to 3. When the device 900 is used to perform the same Figure 4In the corresponding method, the communication interface 920 is used to receive a data stream. The processor 910 is used to obtain at least one codeword group according to the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, Q is greater than or equal to 2; and the number of codeword groups with different numbers of bits or symbols corrected in the at least one codeword group is counted. The processor 910 can be a central processing unit (CPU), an NP or a combination of a CPU and an NP. The processor 910 can further include a hardware chip. The above-mentioned hardware chip can be an ASIC, a programmable logic device (PLD) or a combination thereof. The above-mentioned PLD can be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
[0271] In one example, the device 900 further includes a memory 930. The memory 930 may include a volatile memory (English: volatile memory), such as a random-access memory (RAM); the memory 930 may also include a non-volatile memory (English: non-volatile memory), such as a flash memory (English: flash memory), a hard disk drive (HDD) or a solid-state drive (SSD); the memory 930 may also include a combination of the above-mentioned types of memory. The memory 930 may, for example, store the values recorded by the aforementioned P counters and / or R counters.
[0272] Optionally, the memory 930 stores an operating system and a program, an executable module or a data structure, or a subset thereof, or an extended set thereof, wherein the program may include various operating instructions for implementing various operations. The operating system may include various system programs for implementing various basic services and processing hardware-based tasks. The processor 910 may read the program in the memory 930 to implement the method provided in the embodiment of the present application.
[0273] In one example, the processor 910, the communication interface 920, and the memory 930 may be connected via a bus system or other means, wherein: Fig. 9 The connection via bus system 940 is taken as an example.
[0274] The bus system 940 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus system 940 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig. 9 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0275] See also Fig.10 , which is a schematic diagram of the structure of a chip or optical module provided in an embodiment of the present application. Fig.10 The chip or optical module 1000 shown includes an interface circuit 1001 and a processing circuit 1002. The interface circuit 1001 is used to receive and / or send data, and the processing circuit 1002 is used to process data.
[0276] In an example, the chip or optical module 1000 can be applied to the above receiving end device to execute the method performed by the receiving end device provided by the above method embodiment.
[0277] In a specific example, the chip or optical module 1000 is used to perform the above Figure 2 The corresponding method, for this case:
[0278] The interface circuit 1001 is used to receive a data stream; the processing circuit 1002 is used for P counters to respectively record the number of code words with different numbers of bits or symbols corrected in the data stream, where P is greater than or equal to 3.
[0279] In another specific example, the chip or optical module 1000 is used to perform the above Figure 4 The corresponding method, for this case:
[0280] The interface circuit 1001 is used to receive a data stream; the processing circuit 1002 is used to obtain at least one codeword group according to the data stream, each codeword group in the at least one codeword group includes Q codewords obtained by deinterleaving, Q is greater than or equal to 2; and count the number of codeword groups in the at least one codeword group that are corrected with different numbers of bits or symbols.
[0281] An embodiment of the present application provides a computer-readable storage medium, including instructions or computer programs, which, when executed on a computer, enable the computer to execute the method described in the above method embodiments.
[0282] An embodiment of the present application provides a computer program product including instructions or a computer program, which, when executed on a computer, enables the computer to execute the method described in the above method embodiment.
[0283] The terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. 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 that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0284] 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.
[0285] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of units is only a logical business division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
[0286] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0287] In addition, each business unit in each embodiment of the present application can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software business units.
[0288] If the integrated unit is implemented in the form of a software business unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program code.
[0289] Those skilled in the art will appreciate that in one or more of the above examples, the services described in the present invention may be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, the services may be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any media that facilitates the transmission of computer programs from one place to another. Storage media may be any available media that a general or special-purpose computer can access.
[0290] The above specific implementation modes further describe the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above are only specific implementation modes of the present invention.
[0291] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person of ordinary skill in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features thereof may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A data statistics method, characterized in that: The method is performed by an optical module, and the method includes: Receive data stream; The data stream is decoded based on four-level pulse amplitude modulation PAM4, synchronized, pad deleted, and deinterleaved according to 1:8 bit pairs to obtain a processed data stream; Performing forward error correction (FEC) decoding on the processed data stream to obtain 8 FEC code streams; P counters respectively record the number of code words with different numbers of bits corrected in the 8 FEC code streams, P is equal to 3, and the numbers of corrected bits corresponding to the P counters are 1, 2, and more than 2, respectively.
2. The method according to claim 1, characterized in that The P counters correspond to consecutive numbers of corrected bits.
3. The method according to claim 1 or 2, characterized in that: The P counters respectively record the number of code words with different numbers of bits corrected in the 8 FEC code streams, including: Counter P1 is used to record the number of code words corrected by 1 bit, counter P2 is used to record the number of code words corrected by 2 bits, and counter P3 is used to record the number of code words corrected by 3 bits.
4. The method according to claim 1 or 2, characterized in that: The method further comprises: The number of bits included in the data stream is recorded by a bit number counter.
5. The method according to claim 1 or 2, characterized in that: The codeword is an inner codeword in the concatenated code.
6. The method according to claim 1 or 2, characterized in that: The codeword is a BCH (126, 110) code, a BCH (128, 120) code, a Hamming code, or a systematic binary (128, 120) code.
7. The method according to claim 1 or 2, characterized in that: The method further comprises: Detecting burst bit errors according to the values respectively recorded by the P counters; or, Calculate the error rate according to the values recorded by the P counters, or, Whether the data stream has synchronization errors is detected according to the values respectively recorded by the P counters.
8. The method according to claim 7, characterized in that The error rates include: One or more of the bit error rate, codeword error rate, symbol error rate, and frame loss rate.
9. A data statistics device, characterized in that: The device is used to execute the method according to any one of claims 1 to 7.
10. A chip, characterized in that: The chip comprises a processor, and the processor is configured to execute the method according to any one of claims 1 to 7.
11. A computer program product, characterized in that The computer program product comprises program instructions, and when the computer program product is executed, the method according to any one of claims 1 to 7 is performed.
Citation Information
Patent Citations
Techniques for link partner error reporting
US20190215008A1