Data transmission method, system and device, medium and computer program product
By performing verification code encoding, error correction code encoding and information symbol position rearrangement in the data transmission system, the problem of insufficient data error correction capability in the prior art is solved, and more efficient data transmission error correction capability is achieved without increasing calculation cost.
Patent Information
- Application Number
- CN202510638850.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-19
- Publication Date
- 2025-06-20
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
In the prior art, the data error correction ability in data transmission is low, and it is impossible to effectively deal with various errors in large-scale data transmission, resulting in interruption of computing tasks and errors in calculation results.
In the sender device, a plurality of first data transmission units are formed into a transmission group, and the verification code encoding and error correction code encoding are performed, and the information symbols in different first data transmission units in the transmission group are positionally rearranged by using a preset rearrangement function to obtain a plurality of second data transmission units. The receiver device uses the same verification code and error correction code algorithm and a preset rearrangement function to verify, correct and restore the received data transmission unit.
By distributing continuous transmission errors to multiple data transmission units, the data transmission system's ability to resist continuous errors is improved, the data error correction ability in data transmission is improved, and there is no need to increase the error correction calculation cost.
Smart Images

Figure CN120185774A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technologies, and in particular, to a data transmission method, system, device, medium, and computer program product. Background Art
[0002] With the continuous increase in the amount of data transmitted in network communication and the continuous improvement of the transmission rate, the problems of bit errors and burst errors in transmission have become increasingly serious. The occurrence of transmission errors will seriously affect the accurate transmission of information, especially bit flip errors, codeword loss, or byte loss errors in codewords. In related technologies, error correction codes, such as Forward Error Correction (FEC), can correct errors to a certain extent. However, the tolerance ability of the current error correction methods is relatively low and can no longer adapt to various errors that occur in large-scale data transmission. Uncorrected errors will cause a series of subsequent problems, such as interruption of computing tasks and incorrect computing results.
[0003] How to improve the data error correction ability in data transmission is a technical problem that needs to be solved by those skilled in the art. Summary of the Invention
[0004] The present invention provides a data transmission method, system, device, medium, and computer program product to at least solve the problem of low data error correction ability in data transmission in related technologies.
[0005] The present invention provides a data transmission method applied to a sender device, including: Obtaining a first data transmission unit to be sent; Including a first preset number of the first data transmission units in a transmission group; Performing checksum coding and error correction coding on the first data transmission unit, and using a preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group to obtain a plurality of second data transmission units, where the information symbols in the second data transmission units come from at least two of the first data transmission units in the transmission group; Sending the second data transmission unit to a receiver device so that the receiver device uses the preset rearrangement function to restore the symbol positions of the received data transmission unit.
[0006] The present invention provides a data transmission method applied to a receiver device, including: Receiving a first preset number of data transmission units sent by a sender device; Perform checksum and error correction on the data transmission unit by using the checksum encoding algorithm and error correction code encoding algorithm agreed upon with the sender device, and perform position rearrangement on the information symbols in different data transmission units by using the preset rearrangement function agreed upon with the sender device to obtain the original information symbols of the sender device; Among them, the preset rearrangement function is used to perform position rearrangement on the information symbols in different first data transmission units among the first preset number of first data transmission units to obtain a plurality of second data transmission units, and the information symbols in the second data transmission units come from at least two of the first data transmission units in the transmission group.
[0007] The present invention provides a data transmission system, including: a sender device and a receiver device; The sender device is used to perform checksum encoding and error correction code encoding on the first data transmission units among the first preset number of first data transmission units, and perform position rearrangement on the information symbols in different first data transmission units by using the preset rearrangement function to obtain a plurality of second data transmission units, and the information symbols in the second data transmission units come from at least two of the first data transmission units; send the second data transmission units to the receiver device; The receiver device is used to perform checksum and error correction on the received data transmission unit by using the checksum encoding algorithm and error correction code encoding algorithm agreed upon with the sender device, and perform position rearrangement on the information symbols in different data transmission units by using the preset rearrangement function to obtain the original information symbols of the sender device.
[0008] The present invention also provides an electronic device, including: a memory for storing a computer program; a processor for implementing the steps of any of the above data transmission methods when executing the computer program.
[0009] The present invention also provides a computer-readable storage medium, in which a computer program is stored, and when the computer program is executed by a processor, the steps of any of the above data transmission methods are implemented.
[0010] The present invention also provides a computer program product, including a computer program, and when the computer program is executed by a processor, the steps of any of the above data transmission methods are implemented.
[0011] Through the present invention, since before the sending device transmits data, taking a plurality of first data transmission units as a transmission group, performing check code encoding and error correction code encoding on the first data transmission units, and using a preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group, a plurality of second data transmission units are obtained. The information symbols in the second data transmission units come from at least two first data transmission units in the transmission group, so that after the receiving device receives the data transmission unit, it can perform verification and error correction on the data transmission unit through the check code and the error correction code, and use the preset rearrangement function to restore the symbol positions of the information symbols in the data transmission unit. Since in a data transmission system, when a device failure occurs, it is easy to cause continuous data transmission errors. At this time, if the data is transmitted according to the original data, it is very easy to cause an error amount exceeding the upper limit of the error correction ability. However, in the present invention, by permuting the information symbols in different data transmission units, the continuous transmission errors are dispersed to multiple data transmission units, thereby improving the ability of the data transmission system to resist continuous error data transmission errors, and the data error correction ability in data transmission can be improved without increasing the error correction calculation cost. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] In order to more clearly illustrate the embodiments of the present invention, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.
[0013] Figure 1 It is a format schematic diagram of a flow control unit of PCIe 6.0; Figure 2 It is a flowchart of a data transmission method provided by an embodiment of the present invention; Figure 3 It is a schematic diagram of data rearrangement provided by an embodiment of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0014] The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, rather than all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the protection scope of the present invention.
[0015] It should be noted that in the description of the present invention, the terms "include", "comprise" or any other variant thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements not only includes those elements, but also includes other elements not expressly listed, or elements inherent to such process, method, article or device. The terms "first", "second", etc. in the present invention are used to distinguish similar objects, rather than to describe a specific order or sequence.
[0016] In order to enable those skilled in the art of the present technology to better understand the solution of the present invention, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0017] Some key terms used in the embodiments of the present invention will be explained here first.
[0018] During data transmission, data may be in error for various reasons (such as signal interference, hardware failure, etc.). In order to ensure the correctness of the data, a method is needed to detect these errors, which is the function of the error detection code.
[0019] A simple error detection method is parity check. Suppose the original data to be transmitted is 1011, then the number of 1s in this group of data can be calculated. If the number of 1s is odd, a 0 is added after the data; if it is even, a 1 is added. In this way, after the receiving party receives the data, it can recalculate the number of 1s and check whether it conforms to the parity. If not, it means the data may be in error. However, parity check can only detect single errors. If two errors occur simultaneously in the data, parity check cannot detect them.
[0020] To detect errors more effectively, Cyclic Redundancy Check (CRC) is introduced. In cyclic redundancy check, data is regarded as a binary polynomial. 1011 can be represented as the polynomial , where 1 corresponds to the coefficient of the polynomial and the position corresponds to the exponent of the polynomial. The highest 1 (i.e., the highest-degree term) is usually not explicitly written. Similarly, a predefined generator polynomial is also used in cyclic redundancy check. For example, the generator polynomial used by CRC-16-CCITT is , where represents a variable.
[0021] When generating a cyclic redundancy check (CRC) code, first shift the data polynomial to be checked to the left by a certain number of bits (the number of bits is equal to the highest power of the generating polynomial). For example, if the generating polynomial is of degree 16, shift the data polynomial 16 bits to the left. This is equivalent to adding 16 zeros after the data, providing space for subsequent division operations. Then, divide the left-shifted data polynomial by the generating polynomial. This division is based on modulo-2 division in binary, which is different from ordinary decimal division. In modulo-2 division, there is no concept of borrowing or carrying, and addition and subtraction are equivalent to exclusive OR (XOR) operations. For example, when dividing the polynomial by the polynomial , in modulo-2 division, divide the highest-degree terms to get the highest-degree term of the quotient, then multiply the quotient by the divisor, and subtract this product (actually an XOR operation) from the dividend to get the remainder.
[0022] The remainder obtained through the above division operation is the cyclic redundancy check code. The number of bits of this remainder is equal to the highest power of the generating polynomial. Appending this check code to the original data forms the complete transmitted data.
[0023] When the receiving end receives the data, it performs a division operation on the received data (including the data and the check code) using the same generating polynomial. If there are no errors in the data during transmission, the remainder obtained should be 0.
[0024] Cyclic redundancy check codes are widely used in the fields of data communication and storage systems. In network communication, such as Ethernet, serial communication protocols (such as RS-232), etc., cyclic redundancy check codes are widely used to detect whether errors occur in data frames during transmission. It can effectively ensure the integrity of data and prevent incorrect data from being received and processed incorrectly. In storage devices such as disk storage and solid-state drives, cyclic redundancy check codes are used to detect whether stored data has errors due to hardware failures, etc. For example, when a hard disk reads data, it checks the cyclic redundancy check code of the data. If an error is found, it can try to reread the data or take other error correction measures.
[0025] Reed-Solomon (RS) code is a more advanced error detection and correction code, which further improves the error correction ability based on cyclic redundancy check code. Reed-Solomon code belongs to a type of linear block code, which realizes error detection and correction by adding redundant symbols to the data. Reed-Solomon code operates on symbols rather than individual bits. For example, a symbol can be a byte (8 bits). Reed-Solomon is a type of Maximum Distance Separable (MDS) code, that is, it has the maximum error correction and detection ability under the given redundancy. Specifically, Reed-Solomon code performs operations in a finite field (Galois field), which is a special mathematical structure where the operations (addition, multiplication) have specific rules. If the initial data is divided into blocks, after being encoded by the maximum distance separable code, the data is stored in data blocks, and finally the sender will send data blocks. At this time, the system can detect any data block errors and correct any errors. For example, if , , then the data block with 1 error can be corrected.
[0026] Let represent the set of assignment points. The Reed-Solomon code of dimension over the finite field is denoted as , and the Reed-Solomon code is defined as follows: .
[0027] Among them, represents the Reed-Solomon code, where is a set of different elements in the finite field , and is the dimension of the code. represents a finite field containing elements, where is a power of a prime number. represents the set of all -dimensional vectors, and each component of each vector is an element in . represents the polynomial ring over the finite field , that is, the set of all polynomials with coefficients in . represents a polynomial in , that is, 。 Denotes the degree of the polynomial , that is, the exponent of the highest-degree term in the polynomial. Denotes the maximum degree of the polynomial , that is 。 Denotes the set in which distinct elements, which are elements in the finite field 。 、 、 Denote the values of the polynomial at the element , the value of the polynomial at the element , and the value of the polynomial at the element respectively, and so on. Denotes a codeword of length , which is generated by taking the values of the polynomial at distinct points .
[0028] In summary, the Reed-Solomon code is the set of codewords consisting of the values of all polynomials at distinct points. These codewords have specific structures and properties, enabling them to be used for error detection and correction.
[0029] The definition of the Generalized Reed-Solomon Codes (GRS) is as follows: 。
[0030] Among them, denotes the Generalized Reed-Solomon code, where is a set of distinct elements in the finite field , is a set of non-zero elements in the finite field , is the dimension of the code. Denotes a finite field containing elements, where is a power of a prime number. Denotes the polynomial ring over the finite field , that is, the set of all polynomials with coefficients in . Denotes a polynomial in, that is . denotes the degree of the polynomial , that is, the exponent of the highest-degree term in the polynomial. denotes the maximum degree of the polynomial , that is . denotes the set in distinct elements, which are elements in the finite field . , , respectively denote the values of the polynomial at the element , the value of the polynomial at the element , and the value of the polynomial at the element , and so on.
[0031] For any , call the column multiplier, where denotes the set of integers from 1 to , denotes the set of all non-zero elements in the finite field . denotes a codeword of length , which is generated by taking the values of the polynomial at distinct points and multiplying each value by the corresponding column multiplier .
[0032] In summary, the generalized Reed-Solomon code is the set of codewords composed of all polynomials that satisfy at distinct points , and multiplying each value by the corresponding column multiplier . These codewords have specific structures and properties, making them suitable for error detection and correction. The introduction of column multipliers makes the generalized Reed-Solomon code perform better in some cases.
[0033] A codeword refers to a complete binary sequence containing both original information symbols and redundant information symbols obtained after encoding with a check code and / or an error-correcting code for the original data.
[0034] Compute Express Link (CXL) is a high-speed serial protocol that allows for fast and reliable data transfer between different components within a computer system. It is designed to address bottlenecks in high-performance computing, including issues such as memory capacity, memory bandwidth, and I / O latency. Compute Express Link also enables memory expansion and memory sharing, and can communicate with peripheral devices such as computing accelerators (e.g., GPUs, FPGAs), providing a faster and more flexible way of data exchange and processing.
[0035] A burst error refers to the situation where errors occur in a continuous or clustered manner during data transmission or storage, rather than being randomly distributed. Such errors are usually caused by external interference (such as electromagnetic interference, channel noise) or hardware failures. These errors are concentrated in a continuous block of bits or symbols. The length of the error (i.e., the number of consecutive error bits or symbols) is called the "burst length".
[0036] With the continuous progress of technology, the interconnection communication in data centers has achieved a qualitative leap in terms of data transfer volume and speed. For example, the Peripheral Component Interconnect Express (PCIe) 6.0 protocol uses four-level pulse amplitude modulation (PAM-4) signals, maintaining the same power and channel range as the previous generation, and the transmission rate has reached as high as 64 GT / s. However, high-speed transmission also brings many challenges. On the one hand, PAM-4 signals can cause a significant increase in the bit error rate; on the other hand, load-store interconnections with coherence and memory semantics based on the physical layer (PCIe PHY), such as Compute Express Link and Ultra Path Interconnect (UPI), have very strict latency requirements. For example, Compute Express Link stipulates that the memory access latency from pin to pin is 80 nanoseconds (ns), and the snoop response latency is 40 nanoseconds (ns). Against this background, in-depth research on fault-tolerant mechanisms to enhance the reliability of data center interconnection communication plays a crucial role in ensuring the stability and reliability of data transmission.
[0037] Figure 1 It is a schematic diagram of the format of a flow control unit for PCIe 6.0.
[0038] Taking PCIe 6.0 as an example, PCIe 6.0 uses a flow control unit (Flit, also known as a data slice) as the data transmission unit. As Figure 1As shown, in PCIe 6.0, a flow control unit contains 256 bytes, including 236 bytes of transaction layer data (Transaction Layer Packet, TLP, i.e., Figure 1 shown as 0 to 235), 6 bytes of data link layer payload (Data Link Layer Payload, DLP, i.e., Figure 1 shown as dlp0 to dlp5), 8 bytes of cyclic redundancy check code ( Figure 1 shown as crc0 to crc7), and 6 bytes of error-correcting code (Error-Correcting Code, ECC, i.e., Figure 1 shown as ecc0, ecc1). Here, the error-correcting code usually adopts forward error correction (Forward Error Correction, FEC).
[0039] The cyclic redundancy check code in a flow control unit can ensure the detection of (after the error-correcting code) up to 8 error symbols, each symbol being 1 byte. The generating polynomial adopted by the cyclic redundancy check code is , is the root of the primitive polynomial on where represents a finite field containing
[0040] The forward error correction code is a single-byte error-correcting code. Three groups of forward error correction codes are interleaved among consecutive bytes of each channel (the three channels are Figure 1 the three colored blocks shown). Different groups of forward error correction codes contain 85 bytes, 85 bytes, and 84 bytes respectively. Due to the interleaving, if the burst length is less than or equal to 16 bit positions and there are no related errors between channels, an error in the first bit error rate (FBER) in the data slice can be corrected.
[0041] In addition to the flow control unit format of PCIe 6.0, there are also CXL 3.0 256B flow control units and CXL 3.0 256B latency-optimized flow control units in the related art.
[0042] Applying the above several flow control unit formats, the receiver can correct up to 6 consecutive errors (burst errors) of symbols.
[0043] After the memory is expanded, the data transmission link becomes more complex, increasing the possibility of being interfered with and making continuous errors more likely to occur. Once the burst error exceeds 6 symbols, it will be difficult for the system to recover the lost data, which will not only damage the data integrity but may also trigger a series of subsequent problems, such as model training interruption, calculation result errors, etc. In large-scale model training, the integrity and accuracy of data have a decisive impact on the training results. Any data loss or error may lead to a decline in the quality of the trained model or even make it unusable.
[0044] To improve the data error correction ability in data transmission, an embodiment of the present invention provides a data transmission scheme. Before the sender device sends data, taking multiple first data transmission units as a transmission group, performing checksum encoding and error correction code encoding on the first data transmission units, and using a preset rearrangement function to rearrange the positions of the information symbols in different first data transmission units in the transmission group to obtain multiple second data transmission units. The information symbols in the second data transmission units come from at least two first data transmission units in the transmission group, so that after the receiver device receives the data transmission unit, it can perform verification and error correction on the data transmission unit through the checksum and error correction code, and use the preset rearrangement function to restore the symbol positions of the information symbols in the data transmission unit. Since in the data transmission system, when a device failure occurs, it is easy to cause continuous data transmission errors. At this time, if the data is transmitted according to the original data, it is very likely to cause an error amount exceeding the upper limit of the error correction ability. However, in the present invention, by permuting the information symbols in different data transmission units, the continuous transmission errors are dispersed to multiple data transmission units, thereby improving the ability of the data transmission system to resist continuous error data transmission errors, and the data error correction ability in data transmission can be improved without increasing the error correction calculation cost.
[0045] Figure 2 It is a flowchart of a data transmission method provided by an embodiment of the present invention; Figure 3 It is a schematic diagram of data rearrangement provided by an embodiment of the present invention.
[0046] As Figure 2 shown, applied to the sender device, the data transmission method provided by an embodiment of the present invention may include: S201: Obtain the first data transmission unit to be sent.
[0047] S202: Include the first preset number of first data transmission units in a transmission group.
[0048] S203: Perform checksum encoding and error correction code encoding on the first data transmission unit, and use a preset rearrangement function to rearrange the positions of the information symbols in different first data transmission units in the transmission group, obtaining a plurality of second data transmission units. The information symbols in the second data transmission units come from at least two first data transmission units in the transmission group.
[0049] S204: Send the second data transmission unit to the receiving device so that the receiving device uses the preset rearrangement function to restore the symbol positions of the received data transmission unit.
[0050] The embodiments of the present invention describe the data transmission method from the perspective of the sending device. This method can be applied to a data transmission system including a sending device and a receiving device. The sending device and the receiving device can communicate based on a bus or the Internet. Taking communication based on PCIe 6.0 as an example, both the sending device and the receiving device include a transaction layer, a data link layer, and a physical layer.
[0051] In specific implementation, for S201, the first data transmission unit is a data transmission unit containing a plurality of consecutive original information symbols, specifically, it can be the original information symbols corresponding to a data packet or a flow control unit. The original information symbol refers to the data that originally needs to be transmitted in the data transmission unit, such as Figure 1 the transaction layer data and the data link layer payload in. In contrast, the newly added information symbols after checksum encoding and error correction code encoding are called redundant information symbols. An information symbol (abbreviated as symbol) refers to a data unit in the data transmission unit, which can be 1 bit or 1 byte or other division methods.
[0052] For S202, the embodiments of the present invention adopt a packet transmission method, and include the first preset number of first data transmission units in a transmission group.
[0053] For S203, checksum encoding and error correction code encoding can be performed on each first data transmission unit respectively, and then symbol rearrangement is performed on the information symbols of the entire transmission group.
[0054] In the embodiments of the present invention, the step of performing symbol rearrangement on the information symbols of the entire transmission group can be performed before encoding the first data transmission unit, that is, data rearrangement is performed on the original information symbols; or it can be performed after encoding the first data transmission unit, that is, symbol rearrangement is performed on the codewords containing the original information symbols and redundant information symbols in units of the transmission group.
[0055] When performing position rearrangement on the information symbols, all the information symbols in the transmission group can be rearranged, or only some of the information symbols can be rearranged.
[0056] In an embodiment of the present invention, the preset rearrangement function is a preset function for calculating the rearrangement position information of information symbols in a transmission group. The preset rearrangement function can be a permutation function for permuting information symbols belonging to two of the first data transmission units, or a calculation function for calculating the positions where information symbols in the first data transmission unit are arranged into the second data transmission unit, or can also be designed in other forms.
[0057] Figure 3 Illustrates a rearrangement method of rearranging information symbols in first data transmission units to second data transmission units, where represents the information symbols included in the 1st first data transmission unit, represents the information symbols included in the 2nd first data transmission unit, represents the information symbols included in the th first data transmission unit.
[0058] According to the traditional sending method, the sending device will send the Figure 3 first data transmission units on the left in the order of . After symbol rearrangement, it is sent in the order of second data transmission units on the right. Assuming the error correction algorithm adopted in the data transmission system, if the transmission method on the left is adopted, the upper limit of the error correction ability for burst errors is Figure 3 ( is the redundancy of the error correction code, that is, errors not exceeding symbols can be corrected), then if there are consecutive Figure 3 errors, the receiving device will be unable to recover the received data transmission unit and thus needs to retransmit. However, through the rearranged transmission method shown on the ( right, the upper limit of the error correction ability of the data transmission system can be increased to (that is, errors not exceeding symbols can be corrected). Figure 3 It can be understood that by applying the embodiment of the present invention, if other symbol rearrangement methods are adopted, as long as the information symbols in the second data transmission unit come from at least two first data transmission units, the upper limit of the error correction ability of the data transmission system can be improved. (that is, errors not exceeding symbols can be corrected).
[0059] It can be understood that by applying the embodiment of the present invention, if other symbol rearrangement methods are adopted, as long as the information symbols in the second data transmission unit come from at least two first data transmission units, the upper limit of the error correction ability of the data transmission system can be improved.
[0060] For S204, multiple second data transmission units that will perform check code encoding, error correction code encoding, and symbol rearrangement are sent to the receiving device in units of transmission groups. According to the check code generation method agreed upon by the sending device and the receiving device, the error correction algorithm of the error correction code, and a preset rearrangement function indicating the symbol rearrangement rule, the receiving device can use the preset rearrangement function to restore the symbol positions of the received data transmission units (here used to distinguish the second data transmission units sent by the sending device because the second data transmission units may be in error during transmission), calculate the check code, and check the original information symbols in the received data transmission units to determine the integrity and whether there are errors in the original information symbols, and use the error correction code to correct the errors.
[0061] Applying the data transmission method provided by the embodiments of the present invention, since before the sending device sends data, while performing check code encoding and error correction code encoding on the first data transmission unit, it also rearranges the positions of symbols of the first preset number of first data transmission units in units of transmission groups, so that in the multiple second data transmission units obtained after rearrangement, the information symbols of each data transmission unit come from at least two first data transmission units. Thus, when a device failure occurs in the data transmission system and a burst error is caused, the burst error will be dispersed to different second data transmission units. Compared with the traditional method of directly transmitting the codewords after encoding the original information symbols in sequence, when a burst error of the same burst length occurs, it is less likely to exceed the upper limit of the system error correction ability, thereby increasing the ability of the data transmission system to resist continuous error data transmission, and without increasing the error correction calculation cost.
[0062] On the basis of the above embodiments, the embodiments of the present invention further describe the step of rearranging the positions of information symbols in different first data transmission units in the transmission group by using a preset rearrangement function.
[0063] In some optional embodiments of the embodiments of the present invention, performing check code encoding and error correction code encoding on the first data transmission unit, and using a preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group to obtain multiple second data transmission units may include: after performing check code encoding and error correction code encoding on the first data transmission unit, obtaining a first codeword; in units of transmission groups, using the preset rearrangement function to rearrange the positions of information symbols in different first codewords to obtain multiple second data transmission units, and the information symbols in the second data transmission units come from at least two first codewords in the transmission group.
[0064] That is to say, the first data transmission unit can be encoded with a check code and an error correction code first. At this time, the complete binary sequence containing the original information symbols, check code, and error correction code is called the first codeword. It can be understood that there is a one-to-one correspondence between the first codeword and the first data transmission unit. Then, taking the transmission group as a unit, the information symbols in different codewords are rearranged using a preset rearrangement function to obtain multiple second data transmission units, such that the information symbols in the second data transmission unit come from at least two first codewords in the transmission group.
[0065] As described in the above embodiments, the positions of all the information symbols in the transmission group can be rearranged, or only some of the information symbols can be rearranged. Taking the rearrangement of all the information symbols as an example, taking the transmission group as a unit, the information symbols in different first codewords are rearranged using a preset rearrangement function to obtain multiple second data transmission units, which may include: extracting one information symbol from each first codeword in the transmission group to obtain a second data transmission unit until all the information symbols in each first codeword are taken out.
[0066] Furthermore, a symbol rearrangement method as shown in Figure 3 can be adopted, that is, extracting one information symbol from each first codeword in the transmission group to obtain a second data transmission unit, which may include: including the information symbols at the corresponding arranged positions in each first codeword in the same second data transmission unit.
[0067] Taking Figure 3 as an example, since the communication bandwidth of the current channel has increased significantly, for example, the transmission rate of the PCIe 6.0 protocol has reached 64 GT / s, therefore, in the process of information transmission in the interconnection network system, the number of codewords that can be transmitted at one time is denoted as , and is much larger than , because the information carried by one codeword is only bytes, and according to the existing data transmission system, generally does not exceed 256 bytes. The first codewords that can be transmitted at one time can be included in a transmission group and packed for transmission according to the transmission capacity of the data transmission system.
[0068] Let the first codeword be , , represents the information symbols included in the first codeword . If the codewords are transmitted in the default order ( Figure 3 the vertical order on the left), that is, in the order of the following codeword vector arrangement: .
[0069] Then, if a burst error of consecutive symbols occurs, there will be a risk that the received information cannot be recovered and retransmission is required. For example, for the burst error of consecutive symbols in the first codeword ... taking the first codeword as an example of Reed-Solomon code, since any components of the first codeword are linearly independent, the remaining components in the first codeword are not sufficient to recover the lost information.
[0070] If the codewords are transmitted in the horizontal order on the right side, i.e., Figure 3 ..., then it can correct up to any burst errors of symbols. This is because any consecutive symbols of the above information symbols exactly belong to different first codewords. For example, a consecutive symbols ... respectively belong to the first codewords ... Therefore, for any consecutive symbols in the above information symbol sequence, they are exactly composed of symbols provided by each of these first codewords. If a burst error of consecutive symbols occurs (it can be in any consecutive position), the number of errors on each second data transmission unit is exactly ... Then, according to the maximum distance separable property of Reed-Solomon code, as long as the number of errors on a single codeword does not exceed ..., the lost information can be repaired. There is another situation that needs to be considered, that is, the consecutive errors occur between two groups. At this time, the number of errors in each group is less than ..., and the number of errors averaged to a single codeword will not exceed ... either. Therefore, such burst errors can also be repaired.
[0071] For the convenience of the above position permutation, taking the transmission group as a unit, use a preset rearrangement function to rearrange the positions of the information symbols in different first codewords to obtain multiple second data transmission units, which may include: arranging the first codewords in the transmission group side by side as a first matrix; inputting the position identifier of the first information symbol of a first codeword in the transmission group into the preset rearrangement function, and outputting the position identifier of the second information symbol of another first codeword in the transmission group in the first matrix; performing a position permutation of the first information symbol and the second information symbol in the first matrix.
[0072] That is to say, the first codeword can be arranged in Figure 3 a matrix form on the left side, where the subscripts of each information symbol represent its position in the matrix. Then, the position identifier of the first information symbol of one of the first codewords in the first matrix can be input into a preset rearrangement function, and the position identifier of the second information symbol of another first codeword in the first matrix in the transmission group can be output, so as to perform a position permutation on these two information symbols.
[0073] To illustrate the calculation principle of the above preset rearrangement function, the concept of the "permutation" tool in algebra will be briefly introduced here.
[0074] In algebra, a permutation is a bijective (one-to-one correspondence) mapping from a finite set to itself. Let the set , a permutation is just a rearrangement of the elements in the set . For example, for , the set , a permutation can be mapping 1 to 2, 2 to 3, and 3 to 1, usually denoted as , or simply denoted as .
[0075] Then, for the symbol rearrangement method as shown in Figure 3 , the following permutation algorithm can be designed based on the preset rearrangement function:
[0076] Input: A sequence composed of codewords of code length : . .
[0077] Output: A sequence that can resist any consecutive consecutive errors: .
[0078] 1: for do: 2: Initialization: ; 3: Definition: ; 4: ; 5: end for.
[0079] Then, before information transmission, the sender device uses the above permutation algorithm for the first codeword to be sent, so that any consecutive components in the obtained second data transmission unit come from A different first codeword can correct any consecutive symbols of burst errors to improve the ability to correct consecutive errors during information transmission. After receiving the information sequence through the permutation algorithm, the receiving device only needs to apply the same permutation function to the sequence once to restore the original order of the information sequence because the order of the permutation function is equal to 2, that is .
[0080] The effectiveness of this step is illustrated by a simple example below.
[0081] Example 1: Consider a Reed - Solomon code with parameters . The system's information transmission capacity , that is, the code length , and the redundancy . Let the first codeword transmitted at one time be , .
[0082] According to the transmission method adopted in the related art, at this time, the data transmission system can resist at most 3 consecutive errors at one time. Suppose there are 4 consecutive errors in a certain first codeword , then the remaining two information bits cannot recover any information about the error positions because the information between any less than or equal to 3 information bits is linearly independent.
[0083] However, when using the above - mentioned permutation algorithm and implementing the permutation method as shown in Figure 3 , that is, performing a cross - operation on the codeword components of 6 first codewords, then the new information symbol sequence (the second data transmission unit) obtained is: . It can be seen that any consecutive 6 data bits in this sequence come from different 6 first codewords. At this time, if there are 18 consecutive symbol errors, they can be recovered because the average number of errors per first codeword does not exceed 3, and the maximum - distance - separable property of the Reed - Solomon code can be used for data recovery.
[0084] In some other alternative embodiments of the present invention, parity - check code encoding and error - correcting code encoding are performed on the first data transmission unit, and the positions of the information symbols in different first data transmission units in the transmission group are rearranged using a preset rearrangement function to obtain a plurality of second data transmission units. It may further include: taking the transmission group as a unit, performing permutation on the information symbols in each first data transmission unit to obtain a third data transmission unit, and the information symbols in the third data transmission unit come from at least two first data transmission units; performing parity - check code encoding and error - correcting code encoding on the third data transmission unit to obtain the second data transmission unit.
[0085] That is to say, it is also possible to first rearrange the positions of the information symbols in the first preset number of first data transmission units in units of transmission groups to obtain a plurality of third data transmission units, and make the information symbols in the third data transmission units come from at least two first data transmission units. Then, perform check code encoding and error correction code encoding operations on each third data transmission unit respectively to correspondingly obtain second data transmission units.
[0086] At this time, it is possible to rearrange the positions of all the information symbols in the transmission group, or only rearrange the positions of some information symbols. Taking the rearrangement of the positions of all the information symbols as an example, in units of transmission groups, the information symbols in each first data transmission unit are permuted to obtain third data transmission units, which may include: extracting one information symbol from each first data transmission unit in the transmission group to obtain a third data transmission unit until all the information symbols in each first data transmission unit are taken out.
[0087] Furthermore, it is possible to adopt, for example, Figure 3 the symbol rearrangement method shown, that is, extracting one information symbol from each first data transmission unit in the transmission group to obtain a third data transmission unit, which may include: including the information symbols at the corresponding arranged positions in each first data transmission unit in the same third data transmission unit.
[0088] For specific implementation manners, reference may be made to the description above Figure 3 .
[0089] For the convenience of the above-mentioned position permutation, in units of transmission groups, the information symbols in each first data transmission unit are permuted to obtain third data transmission units, which may include: arranging the first data transmission units in the transmission group side by side as a first matrix; inputting the position identifier of the first information symbol of a first data transmission unit in the transmission group in the first matrix into a preset rearrangement function, and outputting the position identifier of the second information symbol of another first data transmission unit in the transmission group in the first matrix; and permuting the positions of the first information symbol and the second information symbol in the first matrix.
[0090] In the above two types of schemes of first encoding and then performing symbol position permutation, or first performing symbol position permutation and then encoding, in addition to the position rearrangement method such as Figure 3 shown in the above embodiments of changing the longitudinal transmission to transverse transmission, it is also possible to adopt the method of performing diagonal symbol position permutation on the symbol arrangement method on the Figure 3 left side to obtain a plurality of second data transmission units. In addition, other symbol position rearrangement methods may also be adopted.
[0091] To further enhance the reliability of data transmission, in the embodiments of the present invention, including a first preset number of first data transmission units in a transmission group may include: determining the number of first symbols allowed to be transmitted according to the current data transmission capacity of the data transmission system, and determining the first preset number according to the number of first symbols, so as to include the first preset number of first data transmission units in a transmission group. Performing checksum encoding and error correction encoding on the first data transmission units, and using a preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group to obtain a plurality of second data transmission units may include: calling a corresponding preset rearrangement function according to the number of first symbols or the first preset number, so as to use the preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group to obtain a plurality of second data transmission units. The receiving device uses the preset rearrangement function to restore the symbol positions of the received data transmission units, which may include: the receiving device determines the preset rearrangement function according to the number of received data transmission units, so as to use the preset rearrangement function to restore the symbol positions of the received data transmission units. Thus, the symbol position rearrangement method can be dynamically adjusted according to the current state of the data transmission system.
[0092] In addition, performing checksum encoding and error correction encoding on the first data transmission units, and using a preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group to obtain a plurality of second data transmission units may further include: determining a corresponding preset rearrangement function according to the current moment, so as to use the preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group to obtain a plurality of second data transmission units. The receiving device uses the preset rearrangement function to restore the symbol positions of the received data transmission units, which may include: the receiving device determines the corresponding preset rearrangement function according to the transmission timestamp of the data transmission unit, so as to use the preset rearrangement function to restore the symbol positions of the received data transmission units. That is to say, different preset rearrangement functions can also be used in different time periods to enhance the confidentiality of data transmission on the basis of improving the system error correction ability.
[0093] On the basis of the above embodiments, the embodiments of the present invention further illustrate the encoding method of the first data transmission unit.
[0094] In the traditional cyclic redundancy check method introduced in the above embodiments, there are limitations in the error detection ability and it is difficult to comprehensively detect various errors. For example, it may only be able to detect an odd number of bit errors, or only be able to detect errors in a specific number of components in the codeword. In actual application scenarios, the data storage units in the data center are usually in bytes. For example, the data storage units in the data center are usually in bytes and are defined in a finite field , Given that the larger the finite field is, the more complex and diverse the types of errors that may occur on the codewords. Therefore, to effectively ensure data integrity, there is an urgent need for a more efficient and accurate error detection mechanism to address this situation.
[0095] Taking Figure 1 the format of the flow control unit shown as an example, in each flow control unit, the current error detection mechanism can at most identify 16-bit errors. In the scenario of memory expansion, a large amount of data needs to be transmitted between different devices, and the existing error detection capabilities are insufficient. As the memory expands, the data transmission volume increases significantly, and the probability of errors also rises. When the data error exceeds 16 bits, the current error detection mechanism may not be able to detect it in time, resulting in the possible reception of incorrect data by subsequent processing links, thereby affecting the accuracy and stability of the entire system. In addition, especially in high-speed transmission scenarios such as computer fast interconnection, stronger and more comprehensive error detection capabilities are required, which is of great significance for the stable operation of memory expansion and new data centers.
[0096] In Figure 1 the format of a type of flow control unit shown, the cyclic redundancy check code is usually bits (in the existing protocol, it is generally 6 or 8), and it uses a generalized Reed-Solomon code to generate the cyclic redundancy check code, and the generating polynomial is . Using this cyclic redundancy check code, it can at most detect 16-bit errors.
[0097] In this regard, in the embodiments of the present invention, encoding the check code for the first data transmission unit may include: obtaining the original information symbols of the first data transmission unit; using the first generating polynomial to add bits of cyclic redundancy check code to each bit of the original information symbol to obtain a second codeword with a length of bits; wherein, the first generating polynomial is the product of linear factors, and the root of one of the linear factors is 1; wherein the roots of linear factors are the exponents of the first elements in the finite field, and the powers of the first elements are respectively one of them and the powers of different first elements are different.
[0098] In some alternative embodiments of the embodiments of the present invention, the first generating polynomial may be: among the linear factors whose roots are the exponents of the first elements, the powers of the first elements are respectively one of them and the powers of different first elements are different. That is, the first generating polynomial can be expressed as .
[0099] Compared with the generating polynomial in the related art In contrast, although only one root of the generating polynomial is changed, that is , the error detection ability of the cyclic redundancy check code can be significantly improved. Specifically, the generated codeword of length can not only detect any bit errors of the codeword, but also detect any odd number of bit errors and some even number of bit errors. Compared with the cyclic redundancy check code in the related technology, this cyclic redundancy check code increases the ability to detect any odd number of bits. This is because the parity check matrix of the cyclic redundancy check code generated by the first generating polynomial is in the following form: .
[0100] Then the cyclic redundancy check code generated by the first generating polynomial is a generalized Reed-Solomon code. On the one hand, according to its maximum distance separable property, any errors can be detected. This is because any columns of the parity check matrix are linearly independent. If a codeword has errors (for example , where represents codeword component positions; is the corresponding non-zero error vector) and still passes the check, satisfying , where is the column vector at the corresponding position of the parity check matrix and the error component , while , which contradicts the property that any columns of the parity check matrix are linearly independent. On the other hand, observing the first row of the parity check matrix , it can be obtained that any codeword in this cyclic redundancy check code satisfies , and each can be represented as an 8-ary bit vector on (that is, each bit takes a value of 0 or 1) or can be represented as . Further, it can be obtained that , where . Among them, , both represent codeword component positions, the subscript represents the th symbol, the subscript represents the th bit; represents the The primitive element corresponding to a single bit. When verifying at the receiving device, multiply the received codeword by the calculated parity-check matrix. If the product is 0, the verification passes. Then use the above first generating polynomial The cyclic redundancy check code generated, if the number of error bits exceeds It cannot be detected.
[0101] Because is The primitive element over, that is, the degree of its minimal polynomial over is 8, it can be obtained that For any , then the types of errors that this CRC code can also detect are: Because the correct codeword satisfies that for any there is , then obviously there is . If an odd number of bit errors occur (that is, a certain ), it will cause the obtained codeword to fail the verification formula , so any odd number of bit errors can be detected.
[0102] For , assume that the number of bit errors in each group is . Then as long as there exists a satisfying that the number of bit errors is odd, it cannot pass this verification formula, even if the total number of bit errors finally occurring is even. Therefore, some even-numbered errors can be detected.
[0103] In summary, the cyclic check code encoding method provided by the embodiments of the present invention can not only detect any bit errors of the codeword, but also detect any odd number of bit errors and even number of bit errors in some cases, that is, as long as the number of bit errors occurring in a certain group is odd.
[0104] It should be noted that the number of error detections mentioned in the embodiments of the present invention represents the upper limit of the error detection ability, that is, the number of errors less than this upper limit can also be detected. In addition, replacing the finite field with any finite field with a characteristic of 2, , the cyclic check code encoding method provided by the embodiments of the present invention is feasible.
[0105] In addition to replacing In addition, the first generating polynomial may also be: among the linear factors whose roots are the exponents of the first elements, the powers of the first elements are respectively one of those in .
[0106] In addition, other roots in may also be set to 1, but the continuity is not as good as setting or to 1.
[0107] In an embodiment of the present invention, performing error correction code encoding on the first data transmission unit may include: performing error correction code encoding on the second codeword to obtain the first codeword.
[0108] In a specific implementation, performing error correction code encoding on the second codeword to obtain the first codeword may include: multiplying the second codeword by a Reed - Solomon encoding generation matrix to obtain the first codeword.
[0109] That is to say, after adding the cyclic redundancy check code through the above steps, the code length changes from . This step multiplies the second codeword generated in the above steps by the following Reed - Solomon code generation matrix : .
[0110] That is , and a first codeword of a Reed - Solomon code with an error - correcting code length of can be obtained. Just perform an invertible linear transformation on the matrix so that its first columns form an identity matrix to meet the systematic form.
[0111] An embodiment of the present invention also provides a data transmission method, which is applied to a receiving - end device and may include: receiving first - preset - quantity data transmission units sent by a sending - end device; using a check - code encoding algorithm and an error - correction code encoding algorithm agreed upon with the sending - end device to perform check and error correction on the data transmission units, and using a preset rearrangement function agreed upon with the sending - end device to rearrange the positions of information symbols in different data transmission units to obtain the original information symbols of the sending - end device; wherein, the preset rearrangement function is used to rearrange the positions of information symbols in different first data transmission units among the first - preset - quantity first data transmission units to obtain a plurality of second data transmission units, and the information symbols in the second data transmission units come from at least two first data transmission units in the transmission group.
[0112] The specific implementation manner of the embodiment of the present invention may refer to the embodiment of the data transmission method applied to the sending - end device above.
[0113] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by means of software plus a necessary general hardware platform. Of course, it can also be implemented by hardware, but in many cases, the former is a better implementation method.
[0114] An embodiment of the present invention further provides a data transmission system, which may include: a sender device and a receiver device; the sender device is configured to perform checksum encoding and error correction code encoding on a first data transmission unit in a first preset number of first data transmission units, and use a preset rearrangement function to rearrange the positions of information symbols in different first data transmission units to obtain a plurality of second data transmission units, and the information symbols in the second data transmission units come from at least two first data transmission units; send the second data transmission units to the receiver device; the receiver device is configured to perform verification and error correction on the received data transmission units by using a checksum encoding algorithm and an error correction code encoding algorithm agreed with the sender device, and use a preset rearrangement function to rearrange the positions of information symbols in different data transmission units to obtain the original information symbols of the sender device.
[0115] The specific implementation manners of the embodiments of the present invention may refer to the embodiments of the data transmission method applied to the sender device above.
[0116] An embodiment of the present invention further provides a data transmission device, which is applied to a sender device and may include: an acquisition module, configured to acquire a first data transmission unit to be sent; a grouping module, configured to include a first preset number of first data transmission units in a transmission group; a first data processing module, configured to perform checksum encoding and error correction code encoding on the first data transmission units, and use a preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group to obtain a plurality of second data transmission units, and the information symbols in the second data transmission units come from at least two first data transmission units in the transmission group; a sending module, configured to send the second data transmission units to the receiver device so that the receiver device uses a preset rearrangement function to restore the symbol positions of the received data transmission units.
[0117] In an embodiment of the present invention, the first data processing module performs check code encoding and error correction code encoding on the first data transmission unit, and uses a preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group, obtaining a plurality of second data transmission units, which may include: after performing check code encoding and error correction code encoding on the first data transmission unit, obtaining a first codeword; taking the transmission group as a unit, using the preset rearrangement function to rearrange the positions of information symbols in different first codewords, obtaining a plurality of second data transmission units, and the information symbols in the second data transmission unit come from at least two first codewords in the transmission group.
[0118] In an embodiment of the present invention, the first data processing module takes the transmission group as a unit, uses the preset rearrangement function to rearrange the positions of information symbols in different first codewords, obtaining a plurality of second data transmission units, which may include: arranging the first codewords in the transmission group side by side as a first matrix; inputting the position identifier of the first information symbol of a first codeword in the transmission group in the first matrix into the preset rearrangement function, and outputting the position identifier of the second information symbol of another first codeword in the transmission group in the first matrix; performing position replacement on the first information symbol and the second information symbol in the first matrix.
[0119] In an embodiment of the present invention, the first data processing module takes the transmission group as a unit, uses the preset rearrangement function to rearrange the positions of information symbols in different first codewords, obtaining a plurality of second data transmission units, which may include: respectively extracting one information symbol from each first codeword in the transmission group, obtaining a second data transmission unit until all the information symbols in each first codeword are taken out.
[0120] In an embodiment of the present invention, the first data processing module respectively extracts one information symbol from each first codeword in the transmission group, obtaining a second data transmission unit, which may include: including the information symbols at the corresponding arranged positions in each first codeword in the same second data transmission unit.
[0121] In an embodiment of the present invention, the first data processing module performs check code encoding and error correction code encoding on the first data transmission unit, and uses a preset rearrangement function to rearrange the positions of information symbols in different first data transmission units in the transmission group, obtaining a plurality of second data transmission units, which may further include: taking the transmission group as a unit, performing permutation on the information symbols in each first data transmission unit, obtaining a third data transmission unit, and the information symbols in the third data transmission unit come from at least two first data transmission units; performing check code encoding and error correction code encoding on the third data transmission unit, obtaining the second data transmission unit.
[0122] In an embodiment of the present invention, the first data processing module performs checksum encoding on the first data transmission unit, which may include: obtaining the original information symbols of the first data transmission unit; using the first generating polynomial to add bits of cyclic redundancy check code to each bit of the original information symbol to obtain a second codeword with a length of bits; wherein, the first generating polynomial is the product of linear factors, and the root of 1 of one of the linear factors; wherein the roots of the linear factors are the exponents of the first elements in the finite field, and the powers of the first elements are respectively one of them and the powers of different first elements are different.
[0123] In an embodiment of the present invention, in the first generating polynomial, among the linear factors whose roots are the exponents of the first elements, the powers of the first elements are respectively one of them and the powers of different first elements are different.
[0124] In an embodiment of the present invention, in the first generating polynomial, among the linear factors whose roots are the exponents of the first elements, the powers of the first elements are respectively one of them and the powers of different first elements are different.
[0125] In an embodiment of the present invention, the first data processing module performs error correction code encoding on the first data transmission unit, which may include: performing error correction code encoding on the second codeword to obtain the first codeword.
[0126] In an embodiment of the present invention, the first data processing module performs error correction code encoding on the second codeword to obtain the first codeword, which may include: multiplying the second codeword by the Reed-Solomon encoding generation matrix to obtain the first codeword.
[0127] An embodiment of the present invention further provides a data transmission device, which is applied to a receiving device and may include: a receiving module, configured to receive the first preset number of data transmission units sent by the sending device; a second data processing module, configured to perform checksum and error correction on the data transmission unit by using the checksum encoding algorithm and error correction code encoding algorithm agreed with the sending device, and perform position rearrangement on the information symbols in different data transmission units by using the preset rearrangement function agreed with the sending device to obtain the original information symbols of the sending device. Wherein, the preset rearrangement function is used to perform position rearrangement on the information symbols in different first data transmission units among the first preset number of first data transmission units to obtain a plurality of second data transmission units, and the information symbols in the second data transmission units come from at least two first data transmission units in the transmission group.
[0128] For the description of the features in the corresponding embodiments of the data transmission device, reference may be made to the relevant descriptions in the corresponding embodiments of the data transmission method, which will not be elaborated here.
[0129] An embodiment of the present invention further provides an electronic device, including a memory and a processor. A computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any one of the above embodiments of the data transmission method.
[0130] An embodiment of the present invention further provides a computer-readable storage medium, in which a computer program is stored. The computer program is configured to execute the steps in any one of the above embodiments of the data transmission method when running.
[0131] In an exemplary embodiment, the above computer-readable storage medium may include, but is not limited to: various media such as USB flash drives, read-only memories (ROM for short), random access memories (RAM for short), mobile hard disks, magnetic disks, or optical discs that can store computer programs.
[0132] An embodiment of the present invention further provides a computer program product. The above computer program product includes a computer program, and the steps in any one of the above embodiments of the data transmission method are implemented when the computer program is executed by a processor.
[0133] An embodiment of the present invention further provides another computer program product, including a non-volatile computer-readable storage medium. The non-volatile computer-readable storage medium stores a computer program, and the steps in any one of the above embodiments of the data transmission method are implemented when the computer program is executed by a processor.
[0134] Those skilled in the art can further realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of the two. To clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described according to functions in the above description. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present invention.
[0135] The above has introduced in detail a data transmission method, system, device, medium and computer program product provided by the present invention. Specific examples are used in this article to elaborate on the principle and implementation manner of the present invention. The description of the above embodiments is only used to help understand the method and its core idea of the present invention. It should be noted that for those of ordinary skill in the art, without departing from the principle of the present invention, several improvements and modifications can be made to the present invention, and these improvements and modifications also fall within the protection scope of the present invention.
Claims
1. A data transmission method, characterized in that: Applied to the sender device, including: Acquire a first data transmission unit to be sent; putting a first preset number of the first data transmission units into a transmission group; Performing check code encoding and error correction code encoding on the first data transmission unit, and rearranging the positions of information symbols in different first data transmission units in the transmission group using a preset rearrangement function to obtain a plurality of second data transmission units, wherein the information symbols in the second data transmission units come from at least two of the first data transmission units in the transmission group; The second data transmission unit is sent to a receiving device, so that the receiving device uses the preset rearrangement function to perform symbol position recovery on the received data transmission unit.
2. The data transmission method according to claim 1, characterized in that: The first data transmission unit is encoded with a check code and an error correction code, and the information symbols in different first data transmission units in the transmission group are rearranged using a preset rearrangement function to obtain a plurality of second data transmission units, including: After performing check code encoding and error correction code encoding on the first data transmission unit, a first code word is obtained; Taking the transmission group as a unit, the preset rearrangement function is used to rearrange the positions of information symbols in different first code words to obtain multiple second data transmission units, and the information symbols in the second data transmission units come from at least two first code words in the transmission group.
3. The data transmission method according to claim 2, characterized in that: Taking the transmission group as a unit, using the preset rearrangement function to rearrange the positions of information symbols in different first codewords to obtain a plurality of second data transmission units, including: Arranging the first codewords in the transmission group in parallel into a first matrix; Inputting a position identifier of a first information symbol of one of the first codewords in the transmission group in the first matrix into the preset rearrangement function, and outputting a position identifier of a second information symbol of another of the first codewords in the transmission group in the first matrix; The first information symbol and the second information symbol are permuted in the first matrix.
4. The data transmission method according to claim 2, characterized in that: Taking the transmission group as a unit, using the preset rearrangement function to rearrange the positions of information symbols in different first codewords to obtain a plurality of second data transmission units, including: An information symbol is respectively extracted from each of the first code words in the transmission group to obtain a second data transmission unit until all the information symbols in the first code words are extracted.
5. The data transmission method according to claim 4, characterized in that: Extracting one information symbol from each of the first code words in the transmission group to obtain one of the second data transmission units comprises: The information symbols at corresponding arrangement positions in the first code words are included in the same second data transmission unit.
6. The data transmission method according to claim 1, characterized in that: The first data transmission unit is encoded with a check code and an error correction code, and the information symbols in different first data transmission units in the transmission group are rearranged using a preset rearrangement function to obtain a plurality of second data transmission units, including: Taking the transmission group as a unit, permuting the information symbols in each of the first data transmission units to obtain a third data transmission unit, wherein the information symbols in the third data transmission unit come from at least two of the first data transmission units; Perform check code encoding and error correction code encoding on the third data transmission unit to obtain the second data transmission unit.
7. The data transmission method according to claim 1, characterized in that: Encoding the first data transmission unit with a check code includes: Acquire the original information symbol of the first data transmission unit; Using the first generating polynomial in each Add the original information symbol The cyclic redundancy check code is The second codeword of bits; Wherein, the first generating polynomial is The product of linear factors, one of which has a root of 1; The roots of the linear factors are the exponents of the first elements in the finite field, and the powers of the first elements are and different ones of the first elements have different powers.
8. The data transmission method according to claim 7, characterized in that: In the first generating polynomial, in the linear factors whose roots are the exponents of the first elements, the powers of the first elements are respectively and different ones of the first elements have different powers.
9. The data transmission method according to claim 7, characterized in that: The step of encoding the first data transmission unit with an error correction code includes: The second codeword is encoded with an error correction code to obtain a first codeword.
10. The data transmission method according to claim 9, characterized in that: Performing error correction coding on the second codeword to obtain a first codeword includes: The second codeword is multiplied by a Reed-Solomon coding generation matrix to obtain the first codeword.
11. A data transmission method, characterized in that: Applied to the receiving device, including: Receiving a first preset number of data transmission units sent by a sending device; Using the check code encoding algorithm and the error correction code encoding algorithm agreed upon with the sending device to check and correct the data transmission unit, and using the preset rearrangement function agreed upon with the sending device to rearrange the positions of the information symbols in different data transmission units to obtain the original information symbols of the sending device; Among them, the preset rearrangement function is used to rearrange the positions of information symbols in different first data transmission units in the first preset number of first data transmission units to obtain multiple second data transmission units, and the information symbols in the second data transmission units come from at least two of the first data transmission units in the transmission group.
12. A data transmission system, characterized in that: include: a sender device and a receiver device; The sending device is used to perform check code encoding and error correction code encoding on the first data transmission units in a first preset number of first data transmission units, and rearrange the positions of information symbols in different first data transmission units using a preset rearrangement function to obtain multiple second data transmission units, wherein the information symbols in the second data transmission units come from at least two of the first data transmission units; and send the second data transmission units to the receiving device; The receiving device is used to use the check code encoding algorithm and error correction code encoding algorithm agreed with the sending device to check and correct the received data transmission unit, and use the preset rearrangement function to rearrange the positions of information symbols in different data transmission units to obtain the original information symbols of the sending device.
13. An electronic device, characterized in that: include: Memory for storing computer programs; A processor, configured to implement the steps of the data transmission method according to any one of claims 1 to 10 or the steps of the data transmission method according to claim 11 when executing the computer program.
14. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the data transmission method according to any one of claims 1 to 10 or the steps of the data transmission method according to claim 11.
15. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the data transmission method according to any one of claims 1 to 10 or the steps of the data transmission method according to claim 11 are implemented.
Citation Information
Patent Citations
Wavelet based image compression transmission method
CN101583031A
Data packet processing method and device in OFDMA system
CN105812107A
Cascade compiling method, cascade compiling device, storage medium and computer equipment thereof
CN108111256A
Method for building covert channel with network flow watermarking of forward error correction code and interleaved code
CN108650054A
Self-decodable retransmission for LDPC code based HARQ systems
CN111034056A
Cited By
Data processing device, data processing method and electronic equipment
CN120743620A