CN115280696A - Verifying data integrity in a receiver - Google Patents
Verifying data integrity in a receiver Download PDFInfo
- Publication number
- CN115280696A CN115280696A CN202180023737.3A CN202180023737A CN115280696A CN 115280696 A CN115280696 A CN 115280696A CN 202180023737 A CN202180023737 A CN 202180023737A CN 115280696 A CN115280696 A CN 115280696A
- Authority
- CN
- China
- Prior art keywords
- data message
- elements
- vector
- check matrix
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000013598 vector Substances 0.000 claims abstract description 179
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 148
- 239000011159 matrix material Substances 0.000 claims abstract description 127
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000004891 communication Methods 0.000 claims abstract description 22
- 238000004590 computer program Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 61
- 238000000638 solvent extraction Methods 0.000 claims description 10
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 22
- 238000004364 calculation method Methods 0.000 description 6
- 206010009944 Colon cancer Diseases 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1154—Low-density parity-check convolutional codes [LDPC-CC]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
技术领域technical field
本公开一般涉及数据完整性的领域。它更特别涉及在无线通信网络中的接收器中验证数据完整性。The present disclosure relates generally to the field of data integrity. It relates more particularly to verifying data integrity in receivers in wireless communication networks.
背景技术Background technique
为了在接收器中验证数据完整性,常使用循环冗余校验CRC来检测通过无线通信网络中潜在不可靠的信道(诸如无线电信道)传送的消息中的错误。To verify data integrity in a receiver, a cyclic redundancy check (CRC) is often used to detect errors in messages transmitted over potentially unreliable channels, such as radio channels, in wireless communication networks.
CRC常在专用硬件中实现,但是也可在处理器上的软件中实现。CRCs are often implemented in dedicated hardware, but can also be implemented in software on the processor.
硬件和/或软件实现的CRC的缺陷是处理量随着消息长度而增加,并且就处理时间和招致的开销而言致使处理低效。A drawback of a hardware and/or software implemented CRC is that the amount of processing increases with message length and renders processing inefficient in terms of processing time and incurred overhead.
因此,需要用于在接收器中验证数据完整性的备选办法。Therefore, alternatives for verifying data integrity in the receiver are needed.
发明内容Contents of the invention
应该强调,术语“包括/包含”当在本说明书中使用时,用来指定所陈述特征、整数、步骤或组件的存在,但是并不排除一个或多个其它特征、整数、步骤、组件或其组的存在或添加。如本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”、“某一”和“该”意在也包含复数形式。It should be emphasized that the term "comprising/comprising", when used in this specification, is used to designate the presence of stated features, integers, steps or components, but does not exclude one or more other features, integers, steps, components or The presence or addition of groups. As used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise.
一般而言,当在本文中提及布置时,要将布置理解为物理产品;例如,设备。物理产品可包括一个或多个部分,诸如采取一个或多个控制器、一个或多个处理器等等的形式的控制电路。In general, when an arrangement is referred to herein, the arrangement is to be understood as a physical article; for example, a device. A physical product may include one or more parts, such as control circuitry in the form of one or more controllers, one or more processors, and the like.
一些实施例的目的是解决或减轻、缓和、或者消除上述或其它缺陷中的至少一些缺陷。It is an object of some embodiments to address or mitigate, alleviate, or eliminate at least some of the above or other disadvantages.
根据第一方面,这通过用于在无线通信网络中的接收器中验证数据完整性的方法来实现。According to a first aspect, this is achieved by a method for verifying data integrity in a receiver in a wireless communication network.
该方法包括:接收数据消息,其中,数据消息包括数据元素组和校验和;以及基于部分校验子向量计算完整校验子向量,其中,通过将奇偶校验矩阵的部分与接收的数据消息的对应部分相乘来并行计算部分校验子向量。The method includes: receiving a data message, wherein the data message includes a set of data elements and a checksum; and calculating a complete syndrome vector based on a partial syndrome vector, wherein, by combining a portion of a parity check matrix with the received data message Multiplies the corresponding parts of , to compute partial syndrome vectors in parallel.
该方法进一步包括:确定完整校验子向量的所有向量元素都是零;以及验证接收的数据消息当完整校验子向量的所有向量元素都是零时是正确的,否则是不正确的。The method further includes: determining that all vector elements of the full syndrome vector are zero; and verifying that the received data message is correct when all vector elements of the full syndrome vector are zero and incorrect otherwise.
在一些实施例中,该方法进一步包括:将奇偶校验矩阵划分成列组,并且将每个列组与数据消息的对应部分相关联;通过将每个列组与其数据消息的对应部分相乘来并行计算部分校验子向量;以及将计算的部分校验子向量求和得到完整校验子向量。In some embodiments, the method further comprises: partitioning the parity-check matrix into column groups, and associating each column group with a corresponding portion of the data message; by multiplying each column group with its corresponding portion of the data message to calculate the partial syndrome vectors in parallel; and sum the calculated partial syndrome vectors to obtain the complete syndrome vector.
在一些实施例中,该方法进一步包括:将奇偶校验矩阵划分成非重叠矩阵元素组,并且将每个非重叠矩阵元素组与数据消息的对应部分相关联;通过将每个非重叠矩阵元素组与其数据消息的对应部分相乘来并行计算部分校验子向量;以及将计算的部分校验子向量求和得到完整校验子向量。In some embodiments, the method further comprises: partitioning the parity-check matrix into non-overlapping matrix element groups, and associating each non-overlapping matrix element group with a corresponding portion of the data message; calculating the partial syndrome vectors in parallel by multiplying the group with its corresponding portion of the data message; and summing the calculated partial syndrome vectors to obtain the full syndrome vector.
在一些实施例中,该方法进一步包括:将奇偶校验矩阵划分成来自列组的非重叠矩阵元素组,并且将每个非重叠矩阵元素组与数据消息的对应部分相关联;通过将来自列组的每个非重叠矩阵元素组与其数据消息的对应部分相乘来并行计算部分校验子向量;以及将计算的部分校验子向量求和得到完整校验子向量。In some embodiments, the method further comprises: partitioning the parity-check matrix into non-overlapping matrix element groups from column groups, and associating each non-overlapping matrix element group with a corresponding portion of the data message; multiplying each non-overlapping matrix element group of the group with its corresponding portion of the data message to compute partial syndrome vectors in parallel; and summing the computed partial syndrome vectors to obtain a full syndrome vector.
在一些实施例中,奇偶校验矩阵与校验和多项式相关联,从校验和多项式计算奇偶校验矩阵。In some embodiments, the parity check matrix is associated with a checksum polynomial from which the parity check matrix is computed.
在一些实施例中,校验和是基于数据元素组并且被附加到数据消息中的数据元素组以形成码字。In some embodiments, the checksum is based on a group of data elements and is appended to the group of data elements in the data message to form a codeword.
在一些实施例中,接收的数据消息已经被传送器计算并传送到接收器。In some embodiments, the received data message has already been computed by the transmitter and transmitted to the receiver.
在一些实施例中,校验和是以下的一项或多项:循环冗余校验CRC和块码校验和。In some embodiments, the checksum is one or more of: a cyclic redundancy check (CRC) and a block code checksum.
在一些实施例中,包括全零向量元素的完整校验子向量指示匹配的校验和和/或无错误的数据元素组。In some embodiments, a full syndrome vector comprising all zero vector elements indicates a matching checksum and/or error-free set of data elements.
在一些实施例中,奇偶校验矩阵被预先计算并且被存储在接收器的存储器中和/或接收器可访问的远程存储器中。In some embodiments, the parity check matrix is pre-computed and stored in a memory of the receiver and/or in a remote memory accessible to the receiver.
在一些实施例中,奇偶校验矩阵是二元矩阵。In some embodiments, the parity check matrix is a binary matrix.
在一些实施例中,奇偶校验矩阵包括行,这些行是彼此的移位版本。In some embodiments, the parity check matrix includes rows that are shifted versions of each other.
在一些实施例中,给定数据消息的部分,通过首先从存储器中读取奇偶校验矩阵的预先计算的部分并且初始化部分校验子向量来计算对应的部分校验子。In some embodiments, given a portion of a data message, the corresponding partial syndrome is computed by first reading a pre-computed portion of the parity check matrix from memory and initializing the partial syndrome vector.
在一些实施例中,逐一访问数据消息的部分的位,并且当遇到一时,将奇偶校验矩阵的位的第一集合添加到部分校验子向量。In some embodiments, the bits of the portion of the data message are accessed one by one, and when a one is encountered, a first set of bits of the parity check matrix is added to the partial syndrome vector.
在一些实施例中,逐一访问数据消息的部分的位,并且当遇到零时,将部分校验子向量保持不变。In some embodiments, the bits of a portion of a data message are accessed one by one, and when a zero is encountered, the partial syndrome vector is left unchanged.
在一些实施例中,其中,奇偶校验矩阵中的每个被访问的列是前一列的移位版本,其中,当已访问数据消息的部分和奇偶校验矩阵的部分的每个位时,仅移入一个新的位。In some embodiments wherein each accessed column in the parity-check matrix is a shifted version of the previous column, wherein when each bit of the portion of the data message and the portion of the parity-check matrix has been accessed, Just shift in a new bit.
在一些实施例中,将一个或多个用于执行的软件线程和/或处理元件指配给奇偶校验矩阵的一个或多个部分与数据消息的对应部分,以并行计算部分校验子向量。In some embodiments, one or more software threads of execution and/or processing elements are assigned to one or more portions of a parity check matrix and corresponding portions of a data message to compute partial syndrome vectors in parallel.
第二方面是包括非暂时性计算机可读介质的计算机程序产品,非暂时性计算机可读介质上具有包括程序指令的计算机程序。计算机程序可加载到数据处理单元中并且被配置为:当计算机程序由数据处理单元运行时,导致根据第一方面的方法的执行。A second aspect is a computer program product comprising a non-transitory computer readable medium having thereon a computer program comprising program instructions. The computer program is loadable into the data processing unit and is configured to cause performance of the method according to the first aspect when the computer program is run by the data processing unit.
第三方面是用于在无线通信网络中的接收器中验证数据完整性的设备。A third aspect is an apparatus for verifying data integrity in a receiver in a wireless communication network.
该设备包括控制器,控制器被配置为导致:接收数据消息,其中,数据消息包括数据元素组和校验和;以及基于部分校验子向量计算完整校验子向量,其中,通过将奇偶校验矩阵的部分与接收的数据消息的对应部分相乘来并行计算部分校验子向量。The device includes a controller configured to cause: receiving a data message, wherein the data message includes a set of data elements and a checksum; and computing a full syndrome vector based on the partial syndrome vector, wherein the parity Partial syndrome vectors are computed in parallel by multiplying parts of the syndrome matrix with corresponding parts of the received data message.
控制器被进一步配置为导致:确定完整校验子向量的所有向量元素都是零;以及验证接收的数据消息当完整校验子向量的所有向量元素都是零时是正确的,否则是不正确的。The controller is further configured to cause: determining that all vector elements of the full syndrome vector are zero; and verifying that the received data message is correct when all vector elements of the full syndrome vector are zero and incorrect otherwise of.
在一些实施例中,控制器被进一步配置为导致:将奇偶校验矩阵划分成列组,并且将每个列组与数据消息的对应部分相关联;通过将每个列组与其数据消息的对应部分相乘来并行计算部分校验子向量;以及将计算的部分校验子向量求和得到完整校验子向量。In some embodiments, the controller is further configured to cause: partitioning the parity-check matrix into column groups and associating each column group with a corresponding portion of the data message; by associating each column group with its corresponding portion of the data message calculating the partial syndrome vectors in parallel by multiplying the parts; and summing the calculated partial syndrome vectors to obtain the complete syndrome vector.
在一些实施例中,控制器被进一步配置为导致:将奇偶校验矩阵划分成非重叠矩阵元素组,并且将每个非重叠矩阵元素组与数据消息的对应部分相关联;通过将每个非重叠矩阵元素组与其数据消息的对应部分相乘来并行计算部分校验子向量;以及将计算的部分校验子向量求和得到完整校验子向量。In some embodiments, the controller is further configured to cause: partitioning the parity-check matrix into non-overlapping groups of matrix elements and associating each non-overlapping group of matrix elements with a corresponding portion of the data message; multiplying sets of overlapping matrix elements with corresponding parts of their data messages to compute partial syndrome vectors in parallel; and summing the computed partial syndrome vectors to obtain a complete syndrome vector.
在一些实施例中,控制器被进一步配置为导致:将奇偶校验矩阵划分成来自列组的非重叠矩阵元素组,并且将每个非重叠矩阵元素组与数据消息的对应部分相关联;通过将来自列组的每个非重叠矩阵元素组与其数据消息的对应部分相乘来并行计算部分校验子向量;以及将计算的部分校验子向量求和得到完整校验子向量。In some embodiments, the controller is further configured to cause: partitioning the parity-check matrix into non-overlapping groups of matrix elements from column groups, and associating each non-overlapping group of matrix elements with a corresponding portion of the data message; by computing partial syndrome vectors in parallel by multiplying each non-overlapping matrix element group from the column group with its corresponding portion of the data message; and summing the computed partial syndrome vectors to obtain the full syndrome vector.
在一些实施例中,奇偶校验矩阵与校验和多项式相关联,从校验和多项式计算奇偶校验矩阵。In some embodiments, the parity check matrix is associated with a checksum polynomial from which the parity check matrix is computed.
在一些实施例中,校验和是基于数据元素组并且被附加到数据消息中的数据元素组以形成码字。In some embodiments, the checksum is based on a group of data elements and is appended to the group of data elements in the data message to form a codeword.
在一些实施例中,接收的数据消息已经被传送器计算并传送到接收器。In some embodiments, the received data message has already been computed by the transmitter and transmitted to the receiver.
在一些实施例中,校验和是以下的一项或多项:循环冗余校验CRC和块码校验和。In some embodiments, the checksum is one or more of: a cyclic redundancy check (CRC) and a block code checksum.
在一些实施例中,包括全零向量元素的完整校验子向量指示匹配的校验和和/或无错误的数据元素组。In some embodiments, a full syndrome vector comprising all zero vector elements indicates a matching checksum and/or error-free set of data elements.
在一些实施例中,奇偶校验矩阵被预先计算并且被存储在接收器的存储器中和/或接收器可访问的远程存储器中。In some embodiments, the parity check matrix is pre-computed and stored in a memory of the receiver and/or in a remote memory accessible to the receiver.
在一些实施例中,奇偶校验矩阵是二元矩阵。In some embodiments, the parity check matrix is a binary matrix.
在一些实施例中,奇偶校验矩阵包括行,这些行是彼此的移位版本。In some embodiments, the parity check matrix includes rows that are shifted versions of each other.
在一些实施例中,控制器被进一步配置为导致:给定数据消息的部分,通过从存储器中读取奇偶校验矩阵的预先计算的部分并且初始化部分校验子向量来计算对应的部分校验子。In some embodiments, the controller is further configured to cause: given a portion of a data message, to compute a corresponding partial check by reading a precomputed portion of a parity check matrix from memory and initializing a partial syndrome vector son.
在一些实施例中,控制器被进一步配置为导致:逐一访问数据消息的部分的位,并且当遇到一时,将奇偶校验矩阵的位的第一集合添加到部分校验子向量。In some embodiments, the controller is further configured to cause the bits of the portion of the data message to be accessed one by one, and when a one is encountered, to add the first set of bits of the parity check matrix to the partial syndrome vector.
在一些实施例中,控制器被进一步配置为导致:逐一访问数据消息的部分的位,并且当遇到零时,将部分校验子向量保持不变。In some embodiments, the controller is further configured to cause the bits of the portion of the data message to be accessed one by one, and when a zero is encountered, to leave the partial syndrome vector unchanged.
在一些实施例中,控制器被进一步配置为导致:当已访问数据消息的部分的每个位时,将奇偶校验矩阵的行移位。In some embodiments, the controller is further configured to cause a row of the parity check matrix to be shifted when each bit of the portion of the data message has been accessed.
在一些实施例中,将一个或多个用于执行的软件线程和/或处理元件指配给奇偶校验矩阵的一个或多个部分与数据消息的对应部分,以并行计算部分校验子向量。In some embodiments, one or more software threads of execution and/or processing elements are assigned to one or more portions of a parity check matrix and corresponding portions of a data message to compute partial syndrome vectors in parallel.
在一些实施例中,设备在操作上能连接到具有一个或多个并行处理元件的通用硬件,并行处理元件被配置为处理并行化的计算。In some embodiments, a device is operatively connectable to general-purpose hardware having one or more parallel processing elements configured to process parallelized computations.
在一些实施例中,一个或多个并行处理元件中的每个并行处理元件被配置为:通过将奇偶校验矩阵的部分与数据消息的对应部分相乘来并行计算部分校验子向量中的相应一个或多个部分校验子向量。In some embodiments, each of the one or more parallel processing elements is configured to: compute in parallel the partial syndrome vectors by multiplying portions of the parity check matrix with corresponding portions of the data message Corresponding to one or more partial syndrome vectors.
在一些实施例中,在接收器中和/或在云环境中包括具有一个或多个并行处理元件的通用硬件。In some embodiments, general-purpose hardware with one or more parallel processing elements is included in the receiver and/or in the cloud environment.
在一些实施例中,通用硬件包括图形处理单元GPU。In some embodiments, the general-purpose hardware includes a graphics processing unit (GPU).
第四方面是无线通信网络中的接收器,所述接收器包括根据第三方面的设备。A fourth aspect is a receiver in a wireless communication network, the receiver comprising the device according to the third aspect.
在一些实施例中,接收器被配置为接收数据并且验证数据的完整性。In some embodiments, the receiver is configured to receive data and verify the integrity of the data.
上述方面中的任一个可附加地具有与如上文针对其它方面中的任一个所说明的各种特征中的任何特征相同或对应的特征。Any of the above aspects may additionally have features identical to or corresponding to any of the various features as described above for any of the other aspects.
一些实施例的优点是:提供了用于在接收器中验证数据完整性的备选办法。An advantage of some embodiments is that alternatives are provided for verifying data integrity in the receiver.
一些实施例的另一优点是:与根据现有技术办法可能的情况相比,操作的并行化就处理时间和招致的开销而言提高了处理效率。Another advantage of some embodiments is that parallelization of operations increases processing efficiency in terms of processing time and incurred overhead than is possible according to prior art approaches.
一些实施例的又一优点是:操作的并行化使硬件中的处理元件能够独立地且以彼此不同的时序来处理操作。Yet another advantage of some embodiments is that parallelization of operations enables processing elements in hardware to process operations independently and in different timings from each other.
一些实施例的又一优点是:与根据现有技术办法可能的情况相比,操作的并行化就利用硬件中的可用资源而言使得能够更高效实现。A further advantage of some embodiments is that parallelization of operations enables a more efficient implementation in terms of utilizing available resources in hardware than is possible according to prior art approaches.
应该注意,即使本文在接收器中验证数据完整性的上下文中描述实施例,一些实施例也可在其它上下文中同样适用和/或有益。It should be noted that even though embodiments are described herein in the context of verifying data integrity in a receiver, some embodiments may be equally applicable and/or beneficial in other contexts.
附图说明Description of drawings
进一步的目的、特征和优点将从以下参考附图对实施例的详细描述中呈现。附图不一定按比例绘制,而是重点放在示出示例实施例。Further objects, features and advantages will emerge from the following detailed description of embodiments with reference to the accompanying drawings. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating example embodiments.
图1是示出根据一些实施例的示例方法步骤的流程图;Figure 1 is a flowchart illustrating example method steps according to some embodiments;
图2a是示出根据一些实施例的示例操作的示意框图;Figure 2a is a schematic block diagram illustrating example operations according to some embodiments;
图2b是示出根据一些实施例的示例操作的示意框图;Figure 2b is a schematic block diagram illustrating example operations according to some embodiments;
图2c是示出根据一些实施例的示例操作的示意框图;Figure 2c is a schematic block diagram illustrating example operations according to some embodiments;
图3a是示出根据一些实施例的示例操作的示意框图;Figure 3a is a schematic block diagram illustrating example operations according to some embodiments;
图3b是示出根据一些实施例的奇偶校验矩阵的示例部分的示意图;Figure 3b is a schematic diagram illustrating an example portion of a parity check matrix according to some embodiments;
图3c是示出根据一些实施例的数据消息的示例部分和奇偶校验矩阵的示例部分的示意图;Figure 3c is a schematic diagram illustrating an example portion of a data message and an example portion of a parity check matrix, according to some embodiments;
图4是示出根据一些实施例的示例设备的示意框图;以及Figure 4 is a schematic block diagram illustrating an example device according to some embodiments; and
图5是示出根据一些实施例的示例计算机可读介质的示意图。Figure 5 is a schematic diagram illustrating an example computer readable medium according to some embodiments.
具体实施方式Detailed ways
如上文已提及,应该强调,术语“包括/包含”当在本说明书中使用时,用来指定所陈述特征、整数、步骤或组件的存在,但是并不排除一个或多个其它特征、整数、步骤、组件或其组的存在或添加。如本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”、“某一”和“该”意在也包含复数形式。As already mentioned above, it should be emphasized that the term "comprising/comprising", when used in this specification, is used to designate the presence of stated features, integers, steps or components, but not to exclude one or more other features, integers , the presence or addition of a step, component, or group thereof. As used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise.
下面将参考附图更全面地描述和举例说明本公开的实施例。然而,本文中公开的解决方案能够以许多不同的形式来实现,并且不应被解释为仅限于本文中阐述的实施例。Embodiments of the present disclosure will be more fully described and illustrated below with reference to the accompanying drawings. However, the solutions disclosed herein can be implemented in many different forms and should not be construed as limited to only the embodiments set forth herein.
如上文所提及,硬件和/或软件实现的CRC的缺陷是处理量随着消息长度而增加,并且就处理时间和招致的开销而言致使处理低效。As mentioned above, a drawback of hardware and/or software implemented CRCs is that the amount of processing increases with message length and renders processing inefficient in terms of processing time and incurred overhead.
在下文中,将提出实施例,其中描述了用于在接收器中验证数据完整性的备选办法。In the following, embodiments will be presented in which alternatives for verifying data integrity in the receiver are described.
如本文中所描述,通用硬件通常包括包含一个或多个并行处理元件的硬件,一个或多个并行处理元件被配置为处理并行化的操作,其中,一个或多个处理元件进一步包括用于处理这些操作的本地数据存储器。As described herein, general-purpose hardware typically includes hardware that includes one or more parallel processing elements configured to process parallelized operations, where the one or more processing elements further include Local data storage for these operations.
如本文中所描述,操作通常包括矩阵和向量操作,其中,操作可包括矩阵相乘和矩阵积的计算,并且向量操作可包括矩阵积的求和。As described herein, operations generally include matrix and vector operations, where operations may include matrix multiplication and computation of matrix products, and vector operations may include summation of matrix products.
如本文中所描述,校验和通常包括循环冗余校验CRC和/或块码校验和。As described herein, the checksum typically includes a cyclic redundancy check (CRC) and/or a block code checksum.
通常使用某种移位寄存器技术,通常以串行方式来实现CRC。在更新移位寄存器的同时分段地处理数据消息。最后,移位寄存器状态形成要被附加的校验和。按其最基本的形式,数据消息一次被处理一位,但是也可一起处理若干相继位,例如8位或32位。The CRC is usually implemented using some sort of shift register technique, usually in a serial fashion. Data messages are processed in pieces while the shift register is being updated. Finally, the shift register state forms the checksum to be appended. In its most basic form, a data message is processed one bit at a time, but several consecutive bits, such as 8 or 32 bits, may also be processed together.
也可通过将数据消息拆分成多个子序列并且为每个子序列计算临时CRC来使CRC计算并行化。然后,对每个临时CRC应用相对复杂的线性函数,并且通过使用XOR加法将结果相加来得到最终的CRC。CRC computation can also be parallelized by splitting the data message into multiple subsequences and computing a temporary CRC for each subsequence. Then, a relatively complex linear function is applied to each temporary CRC, and the final CRC is obtained by adding the results using XOR addition.
因为处理量随着消息长度而增加,所以处理时间对于长消息就会长。这对于软件实现尤其如此。因此,这使得在通用处理器上实现CRC是成问题的。Since the amount of processing increases with message length, the processing time is longer for long messages. This is especially true for software implementations. Therefore, this makes implementing CRC on general-purpose processors problematic.
因为并行化是基于针对每个子序列的串行计算,所以最后对于所有子序列需要执行的复杂功能增加了额外的计算负担,并且因此难以在包括一个或多个处理元件的现代硬件上高效地计算CRC。Because parallelization is based on serial computation for each subsequence, in the end the complex function that needs to be performed for all subsequences adds an additional computational burden and is therefore difficult to compute efficiently on modern hardware including one or more processing elements CRC.
应该注意,即使本文在无线通信网络中的接收器中验证数据完整性的上下文中描述实施例,其中接收器可在操作上能连接到具有被配置为处理并行化的计算的一个或多个并行处理元件的通用硬件,一些实施例也可在其中用校验和来验证所接收消息的数据完整性的其它上下文中同样适用和/或有益。It should be noted that even though the embodiments are described herein in the context of verifying data integrity in a receiver in a wireless communication network, where the receiver is operatively connectable to one or more parallel servers with computations configured to process parallelization General-purpose hardware for processing elements, some embodiments may also be equally applicable and/or beneficial in other contexts where checksums are used to verify the data integrity of received messages.
还应该注意,即使本文在具有被配置为处理并行化的计算的一个或多个并行处理元件的通用硬件的上下文中描述实施例,一些实施例也可在其中一个或多个处理元件中的每个处理元件被配置为串行处理一组计算的其它上下文中同样适用和/或有益。It should also be noted that even though embodiments are described herein in the context of general-purpose hardware having one or more parallel processing elements configured to handle parallelized computations, some embodiments may also be implemented in each of the one or more processing elements It is also applicable and/or beneficial in other contexts where each processing element is configured to process a set of calculations serially.
此外应该注意,即使本文在将计算的部分校验子向量求和得到完整校验子向量的上下文中描述实施例,一些实施例也可在其它上下文(其中,在一个或多个并行处理元件中的一个并行处理元件中所计算的计算的部分校验子向量中的两个或更多个部分校验子向量也在该一个并行处理元件中被求和,并且其中,求和的两个或更多个计算的部分校验子向量形成求和得到完整校验子向量的那些计算的部分校验子向量的子集)中同样适用和/或有益。Furthermore, it should be noted that even though embodiments are described herein in the context of summing computed partial syndrome vectors to obtain a complete syndrome vector, some embodiments may also be used in other contexts (wherein one or more parallel processing elements Two or more partial syndrome vectors of the calculated partial syndrome vectors computed in one parallel processing element of are also summed in the one parallel processing element, and wherein the summed two or It is equally applicable and/or beneficial in that more calculated partial syndrome vectors form a subset of those calculated partial syndrome vectors which are summed to obtain the full syndrome vector.
图1是示出根据一些实施例的示例方法100的方法步骤的流程图。方法100用于在无线通信网络中的接收器中验证数据完整性。因此,方法100可例如由图4的设备400和/或控制器410来执行;所有这些稍后将在本文中描述。FIG. 1 is a flowchart illustrating method steps of an
方法100包括以下步骤。
在步骤101中,接收数据消息,其中,数据消息包括数据元素组和校验和(参考图2a至2c)。In step 101 a data message is received, wherein the data message comprises a set of data elements and a checksum (cf. Figures 2a to 2c).
备选地或附加地,数据元素组可包括数据元素的序列。Alternatively or additionally, a group of data elements may comprise a sequence of data elements.
在一些实施例中,接收的数据消息已经被传送器计算并传送到接收器。In some embodiments, the received data message has already been computed by the transmitter and transmitted to the receiver.
例如,接收该消息的接收器可被包括在移动通信装置中并且在无线通信网络中操作。For example, a receiver receiving the message may be included in a mobile communication device and operate in a wireless communication network.
在一些实施例中,校验和是基于数据元素组并且被附加到数据消息中的数据元素组以形成码字(参考图2a)。In some embodiments, the checksum is based on groups of data elements and is appended to the groups of data elements in the data message to form a codeword (cf. Fig. 2a).
在一些实施例中,校验和是以下的一项或多项:循环冗余校验CRC和块码校验和。In some embodiments, the checksum is one or more of: a cyclic redundancy check (CRC) and a block code checksum.
如上文所提及,校验和(例如CRC)通常用于检测通过潜在不可靠的信道(诸如无线电信道)传送的消息中的错误。例如,5G NR标准在空中接口中使用若干不同的CRC;在3GPPTS 38.212第5.1节中描述了这些内容。As mentioned above, checksums (eg, CRC) are often used to detect errors in messages transmitted over potentially unreliable channels, such as radio channels. For example, the 5G NR standard uses several different CRCs in the air interface; these are described in 3GPPTS 38.212 section 5.1.
如上文所提及,CRC是一种校验和,其中,校验和的原理是:对传送器来说,基于数据元素组计算序列、即校验和,并且将它附加到包括该数据元素组的数据消息(参考图2a)。As mentioned above, a CRC is a checksum, where the principle of a checksum is that for the transmitter, a sequence, the checksum, is calculated based on a group of data elements and appended to the group of data messages (refer to Figure 2a).
接收器则执行相同的计算,并且校验(即验证)该校验和匹配,在该情况下,数据消息被宣告无错误。如果该校验和不匹配,则非匹配的校验和指示了数据消息包含错误并且通常被丢弃。The receiver then performs the same calculation and checks (ie verifies) that the checksum matches, in which case the data message is declared error-free. If the checksums do not match, a non-matching checksum indicates that the data message contains errors and is typically discarded.
接收器能够通过基于接收的数据消息计算CRC来模仿传送器,然后将该CRC与所附加的CRC序列比较。校验CRC的另一种方式是在(包括CRC的)整个数据消息上运行相同的CRC计算算法。在这种情况下,计算的值应该是零。The receiver can mimic the transmitter by calculating a CRC based on the received data message, and then compare this CRC to the appended CRC sequence. Another way to check the CRC is to run the same CRC calculation algorithm on the entire data message (including the CRC). In this case, the calculated value should be zero.
CRC是一种线性块码,其中,所传送的包括校验和的数据消息被视为码字。另外,CRC通常被应用于二元序列,并且因此成为二元线性块码。CRC也可用在基于较大字符表的数据消息上。CRC is a linear block code in which a transmitted data message including a checksum is treated as a codeword. In addition, CRC is usually applied to binary sequences, and thus becomes a binary linear block code. CRCs can also be used on data messages based on larger character tables.
在数学上用长多项式除法来定义CRC。除数多项式是基于数据消息,并且被除数是固定的多项式(CRC多项式)。丢弃商,并且从余数得出作为结果的CRC序列。The CRC is defined mathematically by long polynomial division. The divisor polynomial is based on the data message and the dividend is a fixed polynomial (CRC polynomial). The quotient is discarded, and the resulting CRC sequence is derived from the remainder.
在步骤102中,基于部分校验子向量计算完整校验子向量,其中,通过将奇偶校验矩阵的部分与接收的数据消息的对应部分相乘来并行计算部分校验子向量(参考图3a至3c)。In
在一些实施例中,奇偶校验矩阵与校验和多项式(例如CRC多项式)相关联,从校验和多项式计算奇偶校验矩阵。In some embodiments, the parity check matrix is associated with a checksum polynomial (eg, a CRC polynomial) from which the parity check matrix is computed.
在一些实施例中,奇偶校验矩阵是二元矩阵。In some embodiments, the parity check matrix is a binary matrix.
在一些实施例中,奇偶校验矩阵包括行,这些行是彼此的移位版本。In some embodiments, the parity check matrix includes rows that are shifted versions of each other.
备选地或附加地,这种形式的奇偶校验矩阵(即,行是彼此的移位版本)仅需要将一行存储在存储器中,因此减小了所需要的存储器大小以及读取操作的数量。Alternatively or additionally, this form of the parity check matrix (i.e. the rows are shifted versions of each other) requires only one row to be stored in memory, thus reducing the required memory size as well as the number of read operations .
在一些实施例中,其中,奇偶校验矩阵中的每个被访问的列是前一列的移位版本,其中,当已访问数据消息的部分和奇偶校验矩阵的部分的每个位时,仅移入一个新的位。In some embodiments wherein each accessed column in the parity-check matrix is a shifted version of the previous column, wherein when each bit of the portion of the data message and the portion of the parity-check matrix has been accessed, Just shift in a new bit.
备选地或附加地,可从线性反馈移位寄存器生成奇偶校验矩阵的行,线性反馈移位寄存器的反馈多项式与定义CRC的多项式相同(或者相反)。Alternatively or additionally, the rows of the parity check matrix may be generated from a linear feedback shift register whose feedback polynomial is the same (or inverse) as the polynomial defining the CRC.
在一些实施例中,逐一访问数据消息的部分的位,并且当遇到一时,将奇偶校验矩阵的位的第一集合添加到部分校验子向量。In some embodiments, the bits of the portion of the data message are accessed one by one, and when a one is encountered, a first set of bits of the parity check matrix is added to the partial syndrome vector.
在一些实施例中,逐一访问数据消息的部分的位,并且当遇到零时,将部分校验子向量保持不变。In some embodiments, the bits of a portion of a data message are accessed one by one, and when a zero is encountered, the partial syndrome vector is left unchanged.
备选地或附加地,完整校验子向量被计算为所计算的部分校验子向量的总和(参考图3a至3c)。Alternatively or additionally, the full syndrome vector is calculated as the sum of the calculated partial syndrome vectors (cf. Figs. 3a to 3c).
备选地或附加地,完整校验子向量指示接收的数据消息的数据完整性。Alternatively or additionally, the integrity syndrome vector indicates the data integrity of the received data message.
在一些实施例中,包括全零向量元素的完整校验子向量指示匹配的校验和和/或无错误的数据元素组。In some embodiments, a full syndrome vector comprising all zero vector elements indicates a matching checksum and/or error-free set of data elements.
在一些实施例中,奇偶校验矩阵被预先计算并且被存储在接收器的存储器中和/或接收器可访问的远程存储器中。In some embodiments, the parity check matrix is pre-computed and stored in a memory of the receiver and/or in a remote memory accessible to the receiver.
在一些实施例中,给定数据消息的部分,通过首先从存储器中读取奇偶校验矩阵的预先计算的部分并且初始化部分校验子向量来计算对应的部分校验子。In some embodiments, given a portion of a data message, the corresponding partial syndrome is computed by first reading a pre-computed portion of the parity check matrix from memory and initializing the partial syndrome vector.
在一些实施例中,将一个或多个用于执行的软件线程和/或处理元件指配给奇偶校验矩阵的一个或多个部分与数据消息的对应部分,以并行计算部分校验子向量。In some embodiments, one or more software threads of execution and/or processing elements are assigned to one or more portions of a parity check matrix and corresponding portions of a data message to compute partial syndrome vectors in parallel.
在可选的步骤102a-1中,在一些实施例中,将奇偶校验矩阵划分成列组,并且将每个列组与数据消息的对应部分相关联(参考图3a至3c)。In
在可选的步骤102b-1中,在一些实施例中,通过将每个列组与其数据消息的对应部分相乘来并行计算部分校验子向量(参考图3a至3c)。In
在可选的步骤102a-2中,在一些实施例中,将奇偶校验矩阵划分成非重叠矩阵元素组,并且将每个非重叠矩阵元素组与数据消息的对应部分相关联(参考图3a至3c)。In
备选地或附加地,可丢弃全零矩阵元素组,因为它们的部分校验子向量将是零,并且不会对总和有贡献(参考步骤102c)。Alternatively or additionally, groups of all-zero matrix elements may be discarded as their partial syndrome vectors will be zero and will not contribute to the sum (cf.
在可选的步骤102b-2中,在一些实施例中,通过将每个非重叠矩阵元素组与其数据消息的对应部分相乘来并行计算部分校验子向量(参考图3a至3c)。In
在可选的步骤102a-3中,在一些实施例中,将奇偶校验矩阵划分成来自列组的非重叠矩阵元素组,并且将每个非重叠矩阵元素组与数据消息的对应部分相关联(参考图3a至3c)。In
备选地或附加地,可丢弃全零矩阵元素组,因为它们的部分校验子向量将是零并且不会对总和有贡献(参考步骤102c)。Alternatively or additionally, groups of all-zero matrix elements may be discarded, since their partial syndrome vectors will be zero and will not contribute to the sum (cf.
在可选的步骤102b-3中,在一些实施例中,通过将来自列组的每个非重叠矩阵元素组与其数据消息的对应部分相乘来并行计算部分校验子向量(参考图3a至3c)。In
在可选的步骤102c中,在一些实施例中,将计算的部分校验子向量求和得到完整校验子向量(参考图3a)。In
例如,通过让每个并行处理元件接连计算10个部分校验子向量,实现可以使用仅100个并行处理元件来计算1000个部分校验子向量。每个并行处理元件可以接着计算其10个部分校验子向量的总和。因此,可认为是由100个并行处理元件并行计算100个部分校验子向量,每个并行处理元件通过在一些部分上迭代来计算其部分校验子向量。For example, by having each parallel processing element compute 10 partial syndrome vectors in succession, an implementation can compute 1000 partial syndrome vectors using only 100 parallel processing elements. Each parallel processing element may then compute the sum of its 10 partial syndrome vectors. Therefore, it can be considered that 100 partial syndrome vectors are calculated in parallel by 100 parallel processing elements, and each parallel processing element calculates its partial syndrome vector by iterating on some parts.
备选地或附加地,或者通过在一个或多个并行处理元件中计算部分校验子向量的子集的总和、然后将子集的总和求和得到完整校验子向量,或者通过计算由一个或多个并行处理元件所计算的部分校验子向量的总和而得到完整校验子向量,可计算部分校验子向量的总和。Alternatively or additionally, the full syndrome vector is obtained either by computing the sum of subsets of the partial syndrome vectors in one or more parallel processing elements and then summing the sums of the subsets, or by computing a Or the sum of the partial syndrome vectors calculated by multiple parallel processing elements to obtain the complete syndrome vector, and the sum of the partial syndrome vectors can be calculated.
在步骤103中,第一种可能性是,完整校验子向量的所有向量元素被确定是零,即,完整校验子向量是零向量(出自步骤103的“是”路径)。In
在步骤103中,第二种可能性是,完整校验子向量的向量元素中的一个或多个向量元素被确定是非零,即,完整校验子向量是非零向量(出自步骤103的“否”路径)。In
在步骤104(未示出)中,验证接收的数据消息是正确的还是不正确的。In step 104 (not shown), it is verified whether the received data message is correct or incorrect.
在步骤104a中,当完整校验子向量的所有向量元素都是零(即,零向量)时,验证接收的数据消息是正确的(出自步骤103的“是”路径)。In
在步骤104b中,当完整校验子向量的向量元素中的一个或多个向量元素是非零(即,非零向量)时,验证接收的数据消息是不正确的(出自步骤103的“否”路径)。In
图1的上述步骤中的任何步骤可附加地具有与下文针对图2至5所说明的各种特征中的任何特征相同或对应的特征。Any of the above-described steps of FIG. 1 may additionally have features that are the same as or correspond to any of the various features described below with respect to FIGS. 2 to 5 .
图2a是示出根据一些实施例的示例操作的示意框图。在传送器中执行图200a的操作,其中,这些操作使得能够在无线通信网络中的接收器中验证数据完整性。因此,图200a的操作可例如被配置为执行图1的方法步骤中的一个或多个方法步骤。Figure 2a is a schematic block diagram illustrating example operations according to some embodiments. The operations of Figure 200a are performed in the transmitter, wherein the operations enable verification of data integrity in the receiver in the wireless communication network. Accordingly, the operations of diagram 200a may, for example, be configured to perform one or more of the method steps of FIG. 1 .
图2a示出包括校验和序列(CRC(L位))的数据消息,校验和序列是基于数据元素组,即,数据序列(消息(K位)),被附加到进一步包括该数据元素组的数据消息。Figure 2a shows a data message including a checksum sequence (CRC (L bits)), the checksum sequence is based on the data element group, i.e., the data sequence (message (K bits)), is appended to further comprising the data elements Set of data messages.
图2a进一步示出CRC计算,其中,提供数据元素组的逐块或逐位输入,并且将计算的CRC输出并附加到数据消息。Figure 2a further illustrates a CRC calculation, where a block-wise or bit-wise input of groups of data elements is provided and the calculated CRC is output and appended to the data message.
图2b是示出根据一些实施例的示例操作的示意框图。图200b的操作用于在无线通信网络中的接收器中验证数据完整性。因此,图200b的操作可例如被配置为执行图1的方法步骤中的一个或多个方法步骤。Figure 2b is a schematic block diagram illustrating example operations according to some embodiments. The operations of diagram 200b are used to verify data integrity in a receiver in a wireless communication network. Accordingly, the operations of diagram 200b may, for example, be configured to perform one or more of the method steps of FIG. 1 .
图2b示出包括CRC的接收的数据消息(N=K+L位),其中,计算CRC以用于验证数据完整性,并且其中,提供包括CRC的接收的数据消息的逐块或逐位输入作为给计算的输入,并且输出向量(L位)以验证该向量包括全零向量元素。Figure 2b shows a received data message including CRC (N=K+L bits), where the CRC is calculated for verifying data integrity, and where a block-by-block or bit-by-bit input of the received data message including CRC is provided as input to the computation, and an output vector (L bits) to verify that the vector contains all zero vector elements.
图2c是示出根据一些实施例的示例操作的示意框图。图200c的操作用于在无线通信网络中的接收器中验证数据完整性。因此,图200c的操作可例如被配置为执行图1的方法步骤中的一个或多个方法步骤。Figure 2c is a schematic block diagram illustrating example operations according to some embodiments. The operations of diagram 200c are used to verify data integrity in a receiver in a wireless communication network. Accordingly, the operations of diagram 200c may, for example, be configured to perform one or more of the method steps of FIG. 1 .
图2c示出包括CRC的接收的数据消息(N位)和校验和相关联的奇偶校验矩阵(L×N),其中,接收的数据消息和校验和相关联的奇偶校验矩阵以矩阵-向量乘法相乘,并且输出向量(L位)以验证该向量包括全零向量元素。Figure 2c shows a received data message (N bits) including a CRC and a checksum associated parity check matrix (L x N), where the received data message and checksum associated parity check matrix is given by Matrix-vector multiplication multiplies and outputs a vector (L bits) to verify that the vector includes all zero vector elements.
图3a是示出根据一些实施例的示例操作的示意框图。图300a的操作用于在无线通信网络中的接收器中验证数据完整性。因此,图300a的操作可例如被配置为执行图1的方法步骤中的一个或多个方法步骤。Figure 3a is a schematic block diagram illustrating example operations according to some embodiments. The operations of diagram 300a are used to verify data integrity in a receiver in a wireless communication network. Accordingly, the operations of diagram 300a may, for example, be configured to perform one or more of the method steps of FIG. 1 .
图3a示出基于部分校验子向量计算完整校验子向量,其中,通过将奇偶校验矩阵的部分与接收的数据消息的对应部分(即,接收的序列的部分)相乘(MULT)来并行计算部分校验子向量,并且将计算的部分校验子向量求和(SUM)得到完整校验子向量。Figure 3a shows the computation of the full syndrome vector based on the partial syndrome vectors, where parts of the parity-check matrix are multiplied (MULT) by the corresponding parts of the received data message (i.e. parts of the received sequence) The partial syndrome vectors are calculated in parallel, and the calculated partial syndrome vectors are summed (SUM) to obtain the complete syndrome vector.
图3a进一步示出:确定完整校验子向量的所有向量元素都是零(校验是否为零),并且验证接收的数据消息当完整校验子向量的所有向量元素都是零时是正确的,否则是不正确的。Figure 3a further shows: determining that all vector elements of the complete syndrome vector are zero (check whether it is zero), and verifying that the received data message is correct when all vector elements of the complete syndrome vector are zero , otherwise it is incorrect.
如本文中所描述,矩阵操作可被应用在任意大小的矩阵上,该任意大小仅被关联到一个或多个处理元件的本地数据存储器的大小所限制。为了使处理更高效和尽可能高地利用一个或多个处理元件,将矩阵拆分成若干部分来处理。As described herein, matrix operations may be applied on matrices of any size limited only by the size of the local data store associated with one or more processing elements. In order to make processing more efficient and utilize one or more processing elements as high as possible, the matrix is split into several parts for processing.
任何二元线性块码都能够由奇偶校验矩阵(通常表示为H)来定义。H是L×N二元矩阵,其中L是所添加的冗余位的数量,N是码字的长度,并且K=N-L是数据消息的长度。长度为N的二元序列当且仅当它满足矩阵方程时是码字(指示CRC是正确的)。CRC是其中冗余位是所计算的CRC的二元线性块码的特例。因此,L是CRC的长度。Any binary linear block code can be defined by a parity check matrix (usually denoted H). H is an LxN binary matrix, where L is the number of redundant bits added, N is the length of the codeword, and K=NL is the length of the data message. A binary sequence of length N iff it satisfies the matrix equation is the codeword (indicating that the CRC is correct). A CRC is a special case of a binary linear block code where the redundant bits are the computed CRC. Therefore, L is the length of the CRC.
奇偶校验矩阵不是唯一的:如果A是非奇异L×L矩阵,则AH和H是用于相同代码的奇偶校验矩阵。Parity check matrices are not unique: if A is a non-singular L×L matrix, then AH and H are parity check matrices for the same code.
因此,可以通过计算长度为L的校验子向量并且校验它是全零来执行校验CRC。因为所有元素都是二元的,所以矩阵乘法可通过逻辑AND(即,二元乘法)和逻辑XOR(即,二元加法)来实现。这使软件实现和硬件实现都成为可能。Therefore, the syndrome vector of length L can be calculated by And check it is all zeros to perform a check CRC. Since all elements are binary, matrix multiplication can be implemented by logical AND (ie, binary multiplication) and logical XOR (ie, binary addition). This enables both software and hardware implementations.
可采取不同方式使计算并行化,以下第1至3项描述不同的计算:Computations can be parallelized in different ways, and
1. 并行计算的不同部分,校验每个部分是零。这提供最多L路并行化。1. Parallel Computing The different parts of , verify that each part is zero. This provides up to L-way parallelization.
2. 将序列分成M部分(M≤N)并且计算对应部分总和,然后将这些部分总和一起求和得到。这提供最多N路并行化。求和可以在树中部分并行完成,在校验之前,需要logM个最终步骤。每个部分可以是的子序列,或者它可以是来自的任意分段的元素集合。2. Convert the sequence Divide into M parts (M≤N) and calculate the sum of the corresponding parts, and then sum the sums of these parts together to get . This provides up to N-way parallelization. The summation can be done partially in parallel in the tree, after the check Before, logM final steps are required. Each part can be A subsequence of , or it can be a subsequence from An arbitrary segmented collection of elements of .
3. 第1项和第2项的组合,提供最多L×N路并行化。3. The combination of
因为L通常是固定的小的数(通常L≤32),而N可以在几千的数量级,所以上面第2项本身常可以提供足够的并行化。Because L is usually a fixed small number (usually L≤32), and N can be on the order of several thousand,
然后假设H的元素是,使得每行是上面行向左移位一步。这意味着,对于长度为N的序列,它需要仅存储N+L-1个预先计算的奇偶校验位(或者,通过不存储第一行中L-1个起始零而仅存储N个所述奇偶校验位)。Then suppose the elements of H are , such that each row is the row above shifted one step to the left. This means that, for a sequence of length N, it needs to store only N+L-1 precomputed parity bits (or, by not storing L-1 starting zeros in the first row, only N the parity bit).
校验子向量可写为(模-2)总和,其中是H的第j列。给定这里的假设,会得到 。注意,这个总和的每一项或者是全零向量(当cj=0时),或者是q序列的子序列(当cj=1时)。syndrome vector can be written as the (modulo-2) sum of ,in is the jth column of H. Given the assumptions here, one gets . Note that each term of this sum is either an all-zero vector (when cj = 0), or a subsequence of the q-sequence (when cj = 1).
给定子序列,可通过首先从存储器中读取预先计算的奇偶校验序列并且将初始化成全零向量来计算对应的部分校验子 。然后,逐一访问位cb、cb+1等:当遇到“一”时,将奇偶校验序列的前L位添加到;当遇到“零”时,保持不变。在访问每一位之后,奇偶校验序列向左移位一步。given subsequence , which can be obtained by first reading the precomputed parity sequence from memory and will Initialize to an all-zero vector to calculate the corresponding partial syndrome . Then, access bits c b , c b+1 , etc. one by one: when a "one" is encountered, the first L bits of the parity sequence are added to ; when "zero" is encountered, constant. After each bit is accessed, the parity sequence is shifted one step to the left.
给定一些处理元件,即一个或多个核,可以为每个核指配的一个或几个子序列以计算出部分校验子总和。对于每个这样的子序列,可以使用上述方法。如果核被指配多个子序列,则它可以简单地在那些子序列上迭代,并且将部分校验子加起来。当这些核已经完成它们的计算时,它们的结果可以被加在一起而得到最终的总和,该总和是整体校验子。Given some processing elements, i.e. one or more cores, each core can be assigned One or several subsequences of , to calculate the partial syndrome sum. For each such subsequence, the method described above can be used. If the core is assigned multiple subsequences, it can simply iterate over those subsequences and add up the partial syndromes. When the cores have completed their calculations, their results can be added together to get the final sum, which is the overall syndrome.
图3b是示出根据一些实施例的奇偶校验矩阵的示例部分的示意图。Figure 3b is a schematic diagram illustrating an example portion of a parity check matrix according to some embodiments.
图3b示出划分的奇偶校验矩阵,该矩阵包括对应于其部分的元素,矩阵的这些部分可与数据消息的对应部分(例如数据序列元素的子集)相乘。Figure 3b shows a partitioned parity-check matrix comprising elements corresponding to its parts which can be multiplied with corresponding parts of a data message (eg a subset of data sequence elements).
图3b进一步示出划分的奇偶校验矩阵的部分,包括以下的一项或多项:非连续部分、跨行列子集的部分、非矩形部分、以及仅有零元素的部分(其可被跳过)。Figure 3b further shows parts of the divided parity-check matrix, including one or more of the following: non-contiguous parts, parts across row and column subsets, non-rectangular parts, and parts with only zero elements (which can be skipped Pass).
图3c是示出根据一些实施例的数据消息的示例部分和奇偶校验矩阵的示例部分的示意图。Figure 3c is a schematic diagram illustrating an example portion of a data message and an example portion of a parity check matrix, according to some embodiments.
图3c示出奇偶校验矩阵,其中,奇偶校验矩阵被划分,并且其中,划分的矩阵部分对应于数据消息的部分,即包括与划分的矩阵部分相关联的元素的数据序列的子集。Fig. 3c shows a parity check matrix, wherein the parity check matrix is partitioned, and wherein the partitioned matrix parts correspond to parts of a data message, ie a subset of the data sequence comprising elements associated with the partitioned matrix parts.
图3c进一步示出部分校验子向量,即部分校验子,其中,通过将划分的矩阵部分与数据消息的对应部分(即,包括与划分的矩阵部分相关联的元素的数据序列的子集)相乘来计算部分校验子向量。Fig. 3c further shows a partial syndrome vector, i.e. a partial syndrome, wherein, by combining the divided matrix part with the corresponding part of the data message (i.e., a subset of the data sequence comprising elements associated with the divided matrix part ) to calculate the partial syndrome vector.
应该注意,部分校验子向量的计算是并行执行的,并且可由包括一个或多个处理元件的硬件(例如GPU)执行,其中,一个或多个处理元件被配置为并行执行计算。It should be noted that the calculation of the partial syndrome vectors is performed in parallel and may be performed by hardware (eg GPU) comprising one or more processing elements configured to perform the calculations in parallel.
包括一个或多个处理元件的硬件因而被配置为使处理时间最小化,并且通过将一个或多个处理元件用于并行计算,这些计算将是时序独立的。Hardware comprising one or more processing elements is thus configured to minimize processing time, and by using one or more processing elements for parallel computations, these computations will be time-series independent.
图4是示出根据一些实施例的示例设备400的示意框图。设备400用于在无线通信网络中的接收器中验证数据完整性。因此,设备400和/或控制器410可例如被配置为执行图1的方法步骤中的一个或多个方法步骤,和/或本文中另外描述的任何步骤中的一个或多个步骤。Fig. 4 is a schematic block diagram illustrating an
设备400包括控制器410(例如装置控制电路),控制器410被配置为导致:接收数据消息,其中,数据消息包括数据元素组和校验和;以及基于部分校验子向量计算完整校验子向量,其中,通过将奇偶校验矩阵的部分与接收的数据消息的对应部分相乘来并行计算部分校验子向量。
控制器410被进一步配置为导致:确定完整校验子向量的所有向量元素都是零;以及验证接收的数据消息当完整校验子向量的所有向量元素都是零时是正确的,否则是不正确的。The
如上文所提及,设备400包括控制器(CNTR;例如,控制电路或控制模块)410,控制器410又可包括(或者以其它方式关联;例如,连接或能连接到)接收器401,例如接收电路或接收模块,接收器401被配置为接收数据消息,其中,数据消息包括数据元素组和校验和(与图1的步骤101相比)。As mentioned above, the
控制器410进一步包括(或者以其它方式关联;例如,连接或能连接到)计算机402,例如计算电路或计算模块,计算机402被配置为基于部分校验子向量计算完整校验子向量,其中,通过将奇偶校验矩阵的部分与接收的数据消息的对应部分相乘来并行计算部分校验子向量(与图1的步骤102相比)。The
控制器410进一步包括(或者以其它方式关联;例如,连接或能连接到)确定器403,例如确定电路或确定模块,确定器403被配置为确定完整校验子向量的所有向量元素都是零(与图1的步骤103相比)。The
控制器410进一步包括(或者以其它方式关联;例如,连接或能连接到)验证器404a和404b,例如验证电路或验证模块,验证器404a和404b被配置为验证接收的数据消息当完整校验子向量的所有向量元素都是零时是正确的(与图1的步骤104a相比),否则是不正确的(与图1的步骤104b相比)。
在一些实施例中,控制器410进一步包括(或者以其它方式关联;例如,连接或能连接到):划分器402a-1,例如划分电路或划分模块,划分器402a-1被配置为将奇偶校验矩阵划分成列组,并且将每个列组与数据消息的对应部分相关联(与图1的步骤102a-1相比);以及计算机402b-1,例如计算电路或计算模块,计算机402b-1被配置为通过将每个列组与其数据消息的对应部分相乘来并行计算部分校验子向量(与图1的步骤102b-1相比)。In some embodiments, the
在一些实施例中,控制器410进一步包括(或者以其它方式关联;例如,连接或能连接到):划分器402a-2,例如划分电路或划分模块,划分器402a-2被配置为将奇偶校验矩阵划分成非重叠矩阵元素组,并且将每个非重叠矩阵元素组与数据消息的对应部分相关联(与图1的步骤102a-2相比);以及计算机402b-2,例如计算电路或计算模块,计算机402b-2被配置为通过将每个非重叠矩阵元素组与其数据消息的对应部分相乘来并行计算部分校验子向量(与图1的步骤102b-2相比)。In some embodiments, the
在一些实施例中,控制器410进一步包括(或者以其它方式关联;例如,连接或能连接到):划分器402a-3,例如划分电路或划分模块,划分器402a-3被配置为将奇偶校验矩阵划分成来自列组的非重叠矩阵元素组,并且将每个非重叠矩阵元素组与数据消息的对应部分相关联(与图1的步骤102a-3相比);以及计算机402b-3,例如计算电路或计算模块,计算机402b-3被配置为通过将来自列组的每个非重叠矩阵元素组与其数据消息的对应部分相乘来并行计算部分校验子向量(与图1的步骤102b-3相比)。In some embodiments, the
在一些实施例中,控制器410进一步包括(或者以其它方式关联;例如,连接或能连接到)求和器402c,例如求和电路或求和模块,求和器402c被配置为将计算的部分校验子向量求和得到完整校验子向量(与图1的步骤102c相比)。In some embodiments, the
在一些实施例中,该设备在操作上能连接到具有一个或多个并行处理元件的通用硬件,并行处理元件被配置为处理并行化的计算。In some embodiments, the device is operatively connectable to general-purpose hardware having one or more parallel processing elements configured to process parallelized computations.
在一些实施例中,一个或多个并行处理元件中的每个并行处理元件被配置为:通过将奇偶校验矩阵的部分与数据消息的对应部分相乘来并行计算部分校验子向量中的相应一个或多个部分校验子向量。In some embodiments, each of the one or more parallel processing elements is configured to: compute in parallel the partial syndrome vectors by multiplying portions of the parity check matrix with corresponding portions of the data message Corresponding to one or more partial syndrome vectors.
在一些实施例中,在接收器中和/或在云环境中包括具有一个或多个并行处理元件的通用硬件。In some embodiments, general-purpose hardware with one or more parallel processing elements is included in the receiver and/or in the cloud environment.
在一些实施例中,通用硬件包括图形处理单元GPU。In some embodiments, the general-purpose hardware includes a graphics processing unit (GPU).
在一些实施例中,设备400可进一步可选地包括(或者以其它方式关联;例如,连接或能连接到)收发器TX/RX 420,例如收发电路或收发模块,收发器TX/RX 420被配置为例如根据在无线通信网络中的接收器中数据完整性的验证来发送和接收无线电信号。In some embodiments, the
一般而言,当在本文中提及布置时,要将布置理解为物理产品;例如,设备。物理产品可包括一个或多个部分,诸如采取一个或多个控制器、一个或多个处理器等等的形式的控制电路。In general, when an arrangement is referred to herein, the arrangement is to be understood as a physical article; for example, a device. A physical product may include one or more parts, such as control circuitry in the form of one or more controllers, one or more processors, and the like.
所描述的实施例及其等效物可在软件或硬件或其组合中实现。这些实施例可由通用电路来执行。通用电路的示例包括:数字信号处理器(DSP)、中央处理单元(CPU)、图形处理单元(GPU)、协处理器单元、现场可编程门阵列(FPGA)和其它可编程硬件。备选地或附加地,实施例可由诸如专用集成电路(ASIC)之类的专用电路来执行。通用电路和/或专用电路可例如与诸如无线通信装置之类的设备相关联或者被包括在该设备中。The described embodiments and their equivalents may be implemented in software or hardware or a combination thereof. These embodiments may be implemented by general-purpose circuits. Examples of general-purpose circuits include: digital signal processors (DSPs), central processing units (CPUs), graphics processing units (GPUs), coprocessor units, field programmable gate arrays (FPGAs), and other programmable hardware. Alternatively or additionally, embodiments may be performed by a dedicated circuit, such as an Application Specific Integrated Circuit (ASIC). General purpose circuitry and/or special purpose circuitry may, for example, be associated with or included in a device such as a wireless communication device.
实施例可出现在电子设备(诸如无线通信装置)内,电子设备包括根据本文中所描述的实施例中的任何实施例的布置、电路和/或逻辑。备选地或附加地,电子设备(诸如无线通信装置)可被配置为执行根据本文中所描述的实施例中的任何实施例的方法。Embodiments may be found within an electronic device, such as a wireless communication device, comprising an arrangement, circuitry and/or logic according to any of the embodiments described herein. Alternatively or additionally, an electronic device, such as a wireless communication device, may be configured to perform a method according to any of the embodiments described herein.
根据一些实施例,计算机程序产品包括计算机可读介质,诸如例如通用串行总线(USB)存储器、插入卡、嵌入式驱动器或者只读存储器(ROM)。According to some embodiments, a computer program product comprises a computer readable medium such as eg a Universal Serial Bus (USB) memory, a plug-in card, an embedded drive or a read only memory (ROM).
图5示出采取致密盘(CD)ROM 500的形式的示例计算机可读介质。计算机可读介质具有存储在其上的计算机程序,计算机程序包括程序指令。计算机程序可加载到数据处理器(PROC)520中,数据处理器(PROC)520可例如被包括在无线通信装置510中。当被加载到数据处理器中时,计算机程序可被存储在与数据处理器相关联或包含于其中的存储器(MEM)530中。FIG. 5 shows an example computer readable medium in the form of a compact disc (CD)
在一些实施例中,计算机程序可在被加载到数据处理单元中并由其运行时,导致根据例如图1的方法步骤和/或本文中另外描述的任何步骤中的一个或多个步骤的执行。In some embodiments, the computer program may, when loaded into and run by a data processing unit, cause the execution of one or more of the method steps according to, for example, FIG. 1 and/or any of the steps otherwise described herein .
在一些实施例中,计算机程序可在被加载到数据处理单元中并由其运行时,导致根据例如图2a至2c和/或图3a的操作和/或本文中另外描述的任何操作中的一个或多个操作的执行。In some embodiments, the computer program may, when loaded into and run by the data processing unit, cause one of the operations according to, for example, FIGS. 2a to 2c and/or FIG. 3a and/or any of the operations otherwise described herein or the execution of multiple operations.
一般而言,除非清楚地给出和/或从使用术语的上下文中暗示了不同含义,否则本文中所使用的所有术语要根据它们在相关技术领域中的普通含义来解释。Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and/or implied from the context in which the term is used.
本文中已经参考了各种实施例。然而,本领域技术人员会认识到对所描述的实施例的许多变更,这些变更仍会落入权利要求的范围内。Reference has been made herein to various embodiments. However, those skilled in the art will recognize many changes to the described embodiments which would still fall within the scope of the claims.
例如,本文中所描述的方法实施例通过以某种顺序执行的步骤公开了示例方法。然而,要认识到,这些事件序列可能以另一种顺序发生而不背离权利要求的范围。此外,即使一些方法步骤已经被描述为按顺序执行,它们也可被并行执行。因此,除非一步骤被明确地描述为在另一步骤之后或之前和/或在暗示了一步骤必须在另一步骤之后或之前的情况下,否则本文中公开的任何方法的步骤不一定要以所公开的确切顺序来执行。For example, method embodiments described herein disclose example methods with steps performed in a certain order. However, it is to be appreciated that these sequences of events may occur in another order without departing from the scope of the claims. Furthermore, even though some method steps have been described as being performed sequentially, they may also be performed in parallel. Thus, unless a step is explicitly described as being after or before another step and/or where it is implied that one step must be after or before another step, the steps of any method disclosed herein do not necessarily have to be preceded by another step. Execute in the exact order disclosed.
同样地,应该注意,在实施例的描述中,将功能块划分成特定单元决不是意在限制。相反,这些划分仅仅是示例。本文中描述为一个单元的功能块可被拆分成两个或更多个单元。此外,本文中描述为被实现为两个或更多个单元的功能块可被合并成更少的(例如单个)单元。Also, it should be noted that in the description of the embodiments, the division of functional blocks into specific units is by no means intended to be limiting. Rather, these divisions are merely examples. A functional block described herein as one unit may be split into two or more units. Furthermore, functional blocks described herein as being implemented as two or more units may be combined into fewer (eg, a single) unit.
在任何适当之处,本文中所公开的实施例中的任何实施例的任何特征可被应用于任何其它实施例。同样,这些实施例中的任何实施例的任何优点可适用于任何其它实施例,反之亦然。Wherever appropriate, any feature of any of the embodiments disclosed herein can be applied to any other embodiment. Likewise, any advantage of any of these embodiments may be applied to any other embodiment, and vice versa.
因此,应该理解,所描述的实施例的细节仅仅是为了说明性目的而提出的示例,并且意在将落入权利要求的范围内的所有变更都涵盖于其中。It is, therefore, to be understood that the details of the described embodiments are presented for illustrative purposes only and all changes which come within the scope of the claims are intended to be embraced therein.
Claims (25)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062993152P | 2020-03-23 | 2020-03-23 | |
US62/993152 | 2020-03-23 | ||
PCT/EP2021/055684 WO2021190906A1 (en) | 2020-03-23 | 2021-03-05 | Verifying data integrity in a receiver |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115280696A true CN115280696A (en) | 2022-11-01 |
CN115280696B CN115280696B (en) | 2024-11-12 |
Family
ID=74870800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180023737.3A Active CN115280696B (en) | 2020-03-23 | 2021-03-05 | Verify data integrity in the receiver |
Country Status (4)
Country | Link |
---|---|
US (1) | US12034454B2 (en) |
EP (1) | EP4128594A1 (en) |
CN (1) | CN115280696B (en) |
WO (1) | WO2021190906A1 (en) |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657331A (en) * | 1995-03-13 | 1997-08-12 | Samsung Electronics Co., Ltd. | Method and apparatus for the generation of simple burst error correcting cyclic codes for use in burst error trapping decoders |
US20020188906A1 (en) * | 2001-06-06 | 2002-12-12 | Kurtas Erozan M. | Method and coding apparatus using low density parity check codes for data storage or data transmission |
WO2003065591A2 (en) * | 2002-01-29 | 2003-08-07 | Seagate Technology Llc | A method and decoding apparatus using linear code with parity check matrices composed from circulants |
US20050166040A1 (en) * | 2002-12-02 | 2005-07-28 | Walmsley Simon R. | Embedding data and information related to function with which data is associated into a payload |
CN101217337A (en) * | 2007-01-01 | 2008-07-09 | 中兴通讯股份有限公司 | A low density parity code encoding device and method supporting incremental redundancy hybrid automatic repeat |
US20080168323A1 (en) * | 2007-01-09 | 2008-07-10 | Scott Douglas Clark | Pipelined Cyclic Redundancy Check for High Bandwith Interfaces |
US20120054585A1 (en) * | 2010-08-26 | 2012-03-01 | Qualcomm Incorporated | Parity check matrix optimization and selection for iterative decoding |
US20130031440A1 (en) * | 2011-07-29 | 2013-01-31 | Sandisk Technologies Inc. | Checksum using sums of permutation sub-matrices |
US20130055050A1 (en) * | 2011-08-24 | 2013-02-28 | Kabushiki Kaisha Toshiba | Error correction encoding apparatus, error correction decoding apparatus, nonvolatile semiconductor memory system, and parity check matrix generation method |
US20150089282A1 (en) * | 2013-09-25 | 2015-03-26 | Xyratex Technology Limited | Method of, and apparatus for, layout rectification of erasure encoded storage systems |
US20160026527A1 (en) * | 2014-07-23 | 2016-01-28 | Raidix Corporation | Systems and methods for error correction coding |
US20160043829A1 (en) * | 2014-08-11 | 2016-02-11 | Qualcomm Incorporated | Devices and methods for data recovery of control channels in wireless communications |
WO2016050323A1 (en) * | 2014-10-03 | 2016-04-07 | Telefonaktiebolaget L M Ericsson (Publ) | Method and device for calculating a crc code in parallel |
US20170019211A1 (en) * | 2014-03-17 | 2017-01-19 | Lg Electronics Inc. | Method and device for decoding low density parity check code for forward error correction in wireless communication system |
US20180367162A1 (en) * | 2017-06-16 | 2018-12-20 | Western Digital Technologies, Inc. | CPU Error Remediation During Erasure Code Encoding |
US20190097654A1 (en) * | 2017-09-28 | 2019-03-28 | SK Hynix Inc. | Memory system with on-the-fly error detection and termination and operating method thereof |
US20190102569A1 (en) * | 2017-10-04 | 2019-04-04 | Amir Keyvan Khandani | Methods for secure data storage |
US20190108093A1 (en) * | 2017-10-09 | 2019-04-11 | Tsofun Algorithms Ltd. | Encoding and decoding of permuted cyclic codes |
US20190312593A1 (en) * | 2018-04-10 | 2019-10-10 | Shenzhen Epostar Electronics Limited Co. | Decoding method and storage controller |
EP3577767A1 (en) * | 2017-02-06 | 2019-12-11 | Telefonaktiebolaget LM Ericsson (PUBL) | Alteration of successive cancellation order in decoding of polar codes |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039854B1 (en) | 2002-02-21 | 2006-05-02 | Ciena Corporation | Method and apparatus for performing syndrome computation in a decoder of a forward error correction (FEC) system |
WO2008021930A2 (en) | 2006-08-11 | 2008-02-21 | Distribution Control Systems | Method of correcting message errors using cyclic redundancy checks |
-
2021
- 2021-03-05 WO PCT/EP2021/055684 patent/WO2021190906A1/en unknown
- 2021-03-05 EP EP21711192.1A patent/EP4128594A1/en active Pending
- 2021-03-05 US US17/909,931 patent/US12034454B2/en active Active
- 2021-03-05 CN CN202180023737.3A patent/CN115280696B/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657331A (en) * | 1995-03-13 | 1997-08-12 | Samsung Electronics Co., Ltd. | Method and apparatus for the generation of simple burst error correcting cyclic codes for use in burst error trapping decoders |
US20020188906A1 (en) * | 2001-06-06 | 2002-12-12 | Kurtas Erozan M. | Method and coding apparatus using low density parity check codes for data storage or data transmission |
WO2003065591A2 (en) * | 2002-01-29 | 2003-08-07 | Seagate Technology Llc | A method and decoding apparatus using linear code with parity check matrices composed from circulants |
US20050166040A1 (en) * | 2002-12-02 | 2005-07-28 | Walmsley Simon R. | Embedding data and information related to function with which data is associated into a payload |
CN101217337A (en) * | 2007-01-01 | 2008-07-09 | 中兴通讯股份有限公司 | A low density parity code encoding device and method supporting incremental redundancy hybrid automatic repeat |
US20080168323A1 (en) * | 2007-01-09 | 2008-07-10 | Scott Douglas Clark | Pipelined Cyclic Redundancy Check for High Bandwith Interfaces |
US20120054585A1 (en) * | 2010-08-26 | 2012-03-01 | Qualcomm Incorporated | Parity check matrix optimization and selection for iterative decoding |
US20130031440A1 (en) * | 2011-07-29 | 2013-01-31 | Sandisk Technologies Inc. | Checksum using sums of permutation sub-matrices |
US20130055050A1 (en) * | 2011-08-24 | 2013-02-28 | Kabushiki Kaisha Toshiba | Error correction encoding apparatus, error correction decoding apparatus, nonvolatile semiconductor memory system, and parity check matrix generation method |
US20150089282A1 (en) * | 2013-09-25 | 2015-03-26 | Xyratex Technology Limited | Method of, and apparatus for, layout rectification of erasure encoded storage systems |
US20170019211A1 (en) * | 2014-03-17 | 2017-01-19 | Lg Electronics Inc. | Method and device for decoding low density parity check code for forward error correction in wireless communication system |
US20160026527A1 (en) * | 2014-07-23 | 2016-01-28 | Raidix Corporation | Systems and methods for error correction coding |
US20160043829A1 (en) * | 2014-08-11 | 2016-02-11 | Qualcomm Incorporated | Devices and methods for data recovery of control channels in wireless communications |
WO2016050323A1 (en) * | 2014-10-03 | 2016-04-07 | Telefonaktiebolaget L M Ericsson (Publ) | Method and device for calculating a crc code in parallel |
EP3577767A1 (en) * | 2017-02-06 | 2019-12-11 | Telefonaktiebolaget LM Ericsson (PUBL) | Alteration of successive cancellation order in decoding of polar codes |
US20180367162A1 (en) * | 2017-06-16 | 2018-12-20 | Western Digital Technologies, Inc. | CPU Error Remediation During Erasure Code Encoding |
US20190097654A1 (en) * | 2017-09-28 | 2019-03-28 | SK Hynix Inc. | Memory system with on-the-fly error detection and termination and operating method thereof |
US20190102569A1 (en) * | 2017-10-04 | 2019-04-04 | Amir Keyvan Khandani | Methods for secure data storage |
US20190108093A1 (en) * | 2017-10-09 | 2019-04-11 | Tsofun Algorithms Ltd. | Encoding and decoding of permuted cyclic codes |
US20190312593A1 (en) * | 2018-04-10 | 2019-10-10 | Shenzhen Epostar Electronics Limited Co. | Decoding method and storage controller |
Non-Patent Citations (6)
Title |
---|
AVI ZANKO,ET AL: ""Robust Turbo Analog Error Correcting Codes Based on Analog CRC Verification"", 《IEEE》, 31 December 2016 (2016-12-31) * |
INTEL CORPORATION: "R1-1704770 "Data channel encoding chain"", 3GPP TSG_RAN\\WG1_RL1, no. 1, 25 March 2017 (2017-03-25) * |
MAXIM KURKOV,ET AL: ""Gravitational parity anomaly with and without boundaries"", 《JOURNAL OF HIGH ENERGY PHYSICS 》, 31 December 2018 (2018-12-31) * |
SEYED FARHAD AGHILI,ET AL: ""Tracking and impersonating tags in a CRC-based ultralightweight RFID authentication protocol"", 《PEER-TO-PEER NETWORKING AND APPLICATIONS》, 31 December 2019 (2019-12-31) * |
张建斌;: "LDPC码校验矩阵的缩短RS码构造方法研究", 南京理工大学学报, no. 05, 30 October 2013 (2013-10-30) * |
张笑铭;梁利平;王志君;: "基于系数运算的并行CRC算法", 电子设计工程, no. 07, 5 April 2018 (2018-04-05) * |
Also Published As
Publication number | Publication date |
---|---|
US20230104186A1 (en) | 2023-04-06 |
CN115280696B (en) | 2024-11-12 |
EP4128594A1 (en) | 2023-02-08 |
WO2021190906A1 (en) | 2021-09-30 |
US12034454B2 (en) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8352847B2 (en) | Matrix vector multiplication for error-correction encoding and the like | |
JP5199463B2 (en) | Turbo LDPC decoding | |
CN109787639B (en) | System and method for decoding error correction codes | |
US7870468B1 (en) | Reed-solomon decoder using a configurable arithmetic processor | |
US20170250710A1 (en) | Method and device for calculating a crc code in parallel | |
US8261176B2 (en) | Polynomial division | |
JPH07202715A (en) | Time domain algebra encoder / decoder | |
CN113300716A (en) | Method and device for generating cyclic redundancy check code and computer readable medium | |
JP2004032737A (en) | Reed solomon decoder | |
US20120324319A1 (en) | High throughput frame check sequence module architecture | |
CN114389752B (en) | Cyclic redundancy check code generation method, device, equipment, medium and program product | |
JP7116374B2 (en) | Reduced Latency Error Correction Decoding | |
CN115280696B (en) | Verify data integrity in the receiver | |
US9608668B2 (en) | Error correcting apparatus, error correcting method, and program | |
WO2012109872A1 (en) | Method, apparatus and lte terminals for cyclic redundancy checking in communication system | |
CN108847851B (en) | Method for realizing binary BCH code adjoint matrix | |
US20030041300A1 (en) | Universal device for processing Reed-Solomon forward error-correction encoded messages | |
CN117014017A (en) | CRC (cyclic redundancy check) calculation method for calculating remainder of polynomial division based on high-bit-width data | |
US20180212622A1 (en) | Fast encoding method and device for reed-solomon codes with a small number of redundancies | |
CN114942861A (en) | CRC calculation method, device, computer equipment and storage medium | |
US10067821B2 (en) | Apparatus and method for cyclic redundancy check | |
CN114124107A (en) | Method and device for calculating cyclic redundancy check | |
CN116048868A (en) | Code generation method, device, device and storage medium | |
Lee et al. | Implementation of parallel BCH encoder employing tree-type systolic array architecture | |
Subbiah et al. | Fast BCH syndrome generator using parallel polynomial division algorithm for GPGPUs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |