[go: up one dir, main page]

CN114911647A - Polynomial configurable parallel CRC hardware implementation method, device and computer equipment - Google Patents

Polynomial configurable parallel CRC hardware implementation method, device and computer equipment Download PDF

Info

Publication number
CN114911647A
CN114911647A CN202210333785.9A CN202210333785A CN114911647A CN 114911647 A CN114911647 A CN 114911647A CN 202210333785 A CN202210333785 A CN 202210333785A CN 114911647 A CN114911647 A CN 114911647A
Authority
CN
China
Prior art keywords
crc
data
matrix
check matrix
hardware
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.)
Pending
Application number
CN202210333785.9A
Other languages
Chinese (zh)
Inventor
莫雄
汤晓东
余桉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN202210333785.9A priority Critical patent/CN114911647A/en
Publication of CN114911647A publication Critical patent/CN114911647A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

The application relates to a polynomial configurable parallel CRC hardware implementation method, a device, computer equipment and a storage medium, wherein the method comprises the following steps: acquiring a parallel CRC hardware implementation request with a configurable polynomial; generating a CRC check matrix parameter according to a CRC generator polynomial in a protocol and the requirement of parallelism of hardware processing data; the generated CRC check matrix parameters are adapted to a check matrix cache region of a CRC calculation unit in a hardware circuit through a software and hardware interaction interface; and a CRC calculation unit in the hardware circuit performs iterative calculation according to the input data and the check matrix parameters to generate a CRC result. The invention effectively improves the flexibility of CRC hardware and removes the limitation of a single polynomial in a parallel CRC hardware circuit.

Description

多项式可配的并行CRC硬件实现方法、装置和计算机设备Polynomial configurable parallel CRC hardware implementation method, device and computer equipment

技术领域technical field

本发明涉及固态硬盘技术领域,特别是涉及一种多项式可配的并行CRC硬件实现方法、装置、计算机设备和存储介质。The present invention relates to the technical field of solid-state hard disks, and in particular, to a method, device, computer equipment and storage medium for implementing a polynomially configurable parallel CRC hardware.

背景技术Background technique

循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。CRC算法校验的检错能力极强,且检测成本较低,成为固态存储、计算机信息通信等领域中最为普遍的校验方式。Cyclic Redundancy Check (CRC) is a channel coding technology that generates a short, fixed-digit check code based on data such as network packets or computer files. It is mainly used to detect or verify data transmission or storage. possible errors later. The CRC algorithm has strong error detection ability and low detection cost, and has become the most common verification method in the fields of solid-state storage and computer information communication.

目前,现有的并行CRC在硬件电路中的实现,是根据每个CRC生成多项式不同分类实现的。对于同一种CRC的生成多项式,实现一种硬件电路,不同生成多项式的CRC,使用不同的数字电路实现。这种方法在单一的通信协议中,基本能够满足应用的需求。但当产品复杂化,适配的通信协议种类增加时,需要硬件根据协议里的CRC生成多项式再次定制生成并行的CRC硬件电路。这种方式导致实现的CRC硬件电路在不同应用场景中的适应性不好,使得产品在应用中受到限制。At present, the realization of the existing parallel CRC in the hardware circuit is realized according to different classifications of each CRC generator polynomial. For the generator polynomial of the same CRC, a hardware circuit is implemented, and the CRC of different generator polynomials is implemented using different digital circuits. This method can basically meet the needs of the application in a single communication protocol. However, when the product becomes complicated and the types of the adapted communication protocols increase, the hardware needs to be customized again to generate a parallel CRC hardware circuit according to the CRC generator polynomial in the protocol. This method leads to poor adaptability of the implemented CRC hardware circuit in different application scenarios, which limits the application of the product.

发明内容SUMMARY OF THE INVENTION

基于此,有必要针对上述技术问题,提供一种可以实现提高SSD读性能的的多项式可配的并行CRC硬件实现方法、装置、计算机设备和存储介质。Based on this, it is necessary to provide a polynomially configurable parallel CRC hardware implementation method, apparatus, computer device and storage medium that can improve the read performance of the SSD, aiming at the above technical problems.

一种多项式可配的并行CRC硬件实现方法,所述方法包括:A polynomial configurable parallel CRC hardware implementation method, the method comprising:

获取多项式可配的并行CRC硬件实现请求;Get a polynomial configurable parallel CRC hardware implementation request;

根据协议里的CRC生成多项式和硬件处理数据的并行度的要求生成CRC校验矩阵参数;Generate CRC check matrix parameters according to the requirements of the CRC generation polynomial in the protocol and the parallelism of the hardware processing data;

将生成好的所述CRC校验矩阵参数通过软硬件交互接口适配至硬件电路中CRC计算单元的校验矩阵缓存区;The generated described CRC check matrix parameter is adapted to the check matrix buffer area of the CRC calculation unit in the hardware circuit through the software-hardware interactive interface;

所述硬件电路中的CRC计算单元根据输入的数据与校验矩阵参数进行迭代计算生成CRC结果。The CRC calculation unit in the hardware circuit performs iterative calculation according to the input data and the check matrix parameters to generate a CRC result.

在其中一个实施例中,所述根据协议里的CRC生成多项式和硬件处理数据的并行度的要求生成CRC校验矩阵参数的步骤还包括:In one of the embodiments, the step of generating the CRC check matrix parameter according to the CRC generator polynomial in the protocol and the parallelism of the hardware processing data further includes:

确定CRC生成多项式g(x)和并行度n;Determine the CRC generator polynomial g(x) and the degree of parallelism n;

通过CRC系数矩阵生成器和CRC数据矩阵生成器分别生成对应的CRC系数矩阵和CRC数据矩阵;The corresponding CRC coefficient matrix and CRC data matrix are respectively generated by the CRC coefficient matrix generator and the CRC data matrix generator;

将所述CRC系数矩阵和CRC数据矩阵进行合并得到CRC校验矩阵。The CRC coefficient matrix and the CRC data matrix are combined to obtain a CRC check matrix.

在其中一个实施例中,所述通过CRC系数矩阵生成器和CRC数据矩阵生成器分别生成对应的CRC系数矩阵和CRC数据矩阵的步骤还包括:In one of the embodiments, the step of generating the corresponding CRC coefficient matrix and the CRC data matrix by the CRC coefficient matrix generator and the CRC data matrix generator, respectively, further comprises:

根据所述CRC生成多项式g(x)构建稀疏矩阵,将所述稀疏矩阵进行n-1次线性变换后生成CRC系数矩阵。A sparse matrix is constructed according to the CRC generator polynomial g(x), and the CRC coefficient matrix is generated by performing n-1 linear transformations on the sparse matrix.

在其中一个实施例中,所述硬件电路中的CRC计算单元根据输入的数据与校验矩阵参数进行迭代计算生成CRC结果的步骤还包括:In one of the embodiments, the step of the CRC calculation unit in the hardware circuit performing iterative calculation according to the input data and the check matrix parameters to generate the CRC result further includes:

将数据缓存区中的kbit数据与CRC校验矩阵缓存区按照校验矩阵的行方向处理,分别生成m个中间值;The kbit data in the data buffer area and the CRC check matrix buffer area are processed according to the row direction of the check matrix to generate m intermediate values respectively;

所述行方向处理为将数据缓存区的kbit数据与CRC校验矩阵中的单行kbit数据进行按位与运算生成中间值;The row direction processing is to perform a bitwise AND operation on the kbit data in the data buffer area and the single row kbit data in the CRC check matrix to generate an intermediate value;

对所述m个中间值分别进行按位异或运算生成m bit的CRC更新值;The m intermediate values are respectively carried out bitwise XOR operation to generate the CRC update value of m bit;

当输入的nbit数据为最后一组时,对应生成的CRC更新值经mbit的D触发器稳定后作为CRC的输出结果。When the input nbit data is the last group, the corresponding generated CRC update value is stabilized by the mbit D flip-flop as the output result of the CRC.

一种多项式可配的并行CRC硬件实现装置,所述装置包括:A polynomial configurable parallel CRC hardware implementation device, the device comprising:

获取模块,所述获取模块用于获取多项式可配的并行CRC硬件实现请求;an acquisition module, which is used to acquire a polynomial configurable parallel CRC hardware implementation request;

生成模块,所述生成模块用于根据协议里的CRC生成多项式和硬件处理数据的并行度的要求生成CRC校验矩阵参数;A generation module, the generation module is used to generate a CRC check matrix parameter according to the requirement of the parallelism of the CRC generator polynomial in the protocol and the hardware processing data;

适配模块,所述适配模块用于将生成好的所述CRC校验矩阵参数通过软硬件交互接口适配至硬件电路中CRC计算单元的校验矩阵缓存区;an adaptation module, the adaptation module is used to adapt the generated described CRC check matrix parameters to the check matrix buffer area of the CRC calculation unit in the hardware circuit through a software-hardware interactive interface;

计算模块,计算模块用于通过所述硬件电路中的CRC计算单元根据输入的数据与校验矩阵参数进行迭代计算生成CRC结果。A calculation module, the calculation module is configured to generate a CRC result by iterative calculation according to the input data and the check matrix parameters by the CRC calculation unit in the hardware circuit.

在其中一个实施例中,所述生成模块还用于:In one of the embodiments, the generating module is further used for:

确定CRC生成多项式g(x)和并行度n;Determine the CRC generator polynomial g(x) and the degree of parallelism n;

通过CRC系数矩阵生成器和CRC数据矩阵生成器分别生成对应的CRC系数矩阵和CRC数据矩阵;The corresponding CRC coefficient matrix and CRC data matrix are respectively generated by the CRC coefficient matrix generator and the CRC data matrix generator;

将所述CRC系数矩阵和CRC数据矩阵进行合并得到CRC校验矩阵。The CRC coefficient matrix and the CRC data matrix are combined to obtain a CRC check matrix.

在其中一个实施例中,所述生成模块还用于:In one of the embodiments, the generating module is further used for:

根据所述CRC生成多项式g(x)构建稀疏矩阵,将所述稀疏矩阵进行n-1次线性变换后生成CRC系数矩阵。A sparse matrix is constructed according to the CRC generator polynomial g(x), and the CRC coefficient matrix is generated by performing n-1 linear transformations on the sparse matrix.

在其中一个实施例中,所述计算模块还用于:In one embodiment, the computing module is further used for:

将数据缓存区中的kbit数据与CRC校验矩阵缓存区按照校验矩阵的行方向处理,分别生成m个中间值;The kbit data in the data buffer area and the CRC check matrix buffer area are processed according to the row direction of the check matrix to generate m intermediate values respectively;

所述行方向处理为将数据缓存区的kbit数据与CRC校验矩阵中的单行kbit数据进行按位与运算生成中间值;The row direction processing is to perform a bitwise AND operation on the kbit data in the data buffer area and the single row kbit data in the CRC check matrix to generate an intermediate value;

对所述m个中间值分别进行按位异或运算生成m bit的CRC更新值;The m intermediate values are respectively carried out bitwise XOR operation to generate the CRC update value of m bit;

当输入的nbit数据为最后一组时,对应生成的CRC更新值经mbit的D触发器稳定后作为CRC的输出结果。When the input nbit data is the last group, the corresponding generated CRC update value is stabilized by the mbit D flip-flop as the output result of the CRC.

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。A computer device includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and the processor implements the steps of any one of the above methods when the processor executes the computer program.

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。A computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, implements the steps of any one of the above-mentioned methods.

上述多项式可配的并行CRC硬件实现方法、装置、计算机设备和存储介质,通过软件将适配生成的校验矩阵参数传递至硬件CRC计算单元的校验矩阵中,再与输入的数据通过硬件CRC计算单元经过迭代计算生成校验冗余码,通过多套校验阵参数对应多组CRC生成多项式和输入的数据并行度,从而有效地提升了CRC硬件的灵活性,解除了并行CRC硬件电路中对单一多项式的局限性。The above-mentioned polynomial configurable parallel CRC hardware implementation method, device, computer equipment and storage medium, through the software, the check matrix parameters generated by the adaptation are transferred to the check matrix of the hardware CRC calculation unit, and then passed the hardware CRC with the input data. The calculation unit generates check redundancy codes through iterative calculation, and uses multiple sets of check array parameters to correspond to multiple sets of CRC generator polynomials and the parallelism of the input data, thereby effectively improving the flexibility of the CRC hardware and eliminating the need for parallel CRC hardware circuits. Limitations to single polynomials.

附图说明Description of drawings

图1为一个实施例中多项式可配的并行CRC硬件实现方法的流程示意图;1 is a schematic flowchart of a polynomial-configurable parallel CRC hardware implementation method in one embodiment;

图2为一个实施例中多项式可配的并行CRC软硬件适配结构框图;Fig. 2 is a structural block diagram of a parallel CRC software and hardware adaptation that polynomials can be configured to in one embodiment;

图3为另一个实施例中多项式可配的并行CRC硬件实现方法的流程示意图;3 is a schematic flowchart of a polynomial-configurable parallel CRC hardware implementation method in another embodiment;

图4为一个实施例中CRC校验矩阵与CRC系数矩阵、CRC数据矩阵关系的示意图;4 is a schematic diagram of the relationship between a CRC check matrix, a CRC coefficient matrix, and a CRC data matrix in one embodiment;

图5为再一个实施例中多项式可配的并行CRC硬件实现方法的流程示意图;5 is a schematic flowchart of a method for implementing a parallel CRC hardware with a polynomial configurable in another embodiment;

图6为一个实施例中多项式可配的并行CRC硬件电路中CRC计算单元的电路图;6 is a circuit diagram of a CRC calculation unit in a parallel CRC hardware circuit with a polynomial configurable in one embodiment;

图7为一个实施例中多项式可配的并行CRC硬件实现装置的结构框图;7 is a structural block diagram of a polynomial-configurable parallel CRC hardware implementation device in one embodiment;

图8为一个实施例中计算机设备的内部结构图。FIG. 8 is a diagram of the internal structure of a computer device in one embodiment.

具体实施方式Detailed ways

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。In order to make the purpose, technical solutions and advantages of the present application more clearly understood, the present application will be described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application, but not to limit the present application.

目前,现有的并行CRC在硬件电路中的实现,是根据每个CRC生成多项式不同分类实现的。对于同一种CRC的生成多项式,实现一种硬件电路,不同生成多项式的CRC,使用不同的数字电路实现。这种方法在单一的通信协议中,基本能够满足应用的需求。但当产品复杂化,适配的通信协议种类增加时,需要硬件根据协议里的CRC生成多项式再次定制生成并行的CRC硬件电路。这种方式导致实现的CRC硬件电路在不同应用场景中的适应性不好,使得产品在应用中受到限制。At present, the realization of the existing parallel CRC in the hardware circuit is realized according to different classifications of each CRC generator polynomial. For the generator polynomial of the same CRC, a hardware circuit is implemented, and the CRC of different generator polynomials is implemented using different digital circuits. This method can basically meet the needs of the application in a single communication protocol. However, when the product becomes complicated and the types of the adapted communication protocols increase, the hardware needs to be customized again to generate a parallel CRC hardware circuit according to the CRC generator polynomial in the protocol. This method leads to poor adaptability of the implemented CRC hardware circuit in different application scenarios, which limits the application of the product.

基于此,本发明提出了一种多项式可配的并行CRC硬件实现方法及装置,旨在能够解除并行CRC硬件电路中对单一多项式的局限性。Based on this, the present invention proposes a polynomial-configurable parallel CRC hardware implementation method and device, which aims to relieve the limitation of a single polynomial in the parallel CRC hardware circuit.

在一个实施例中,如图1所示,提供了一种多项式可配的并行CRC硬件实现方法,该方法包括:In one embodiment, as shown in FIG. 1, a polynomial configurable parallel CRC hardware implementation method is provided, and the method includes:

步骤102,获取多项式可配的并行CRC硬件实现请求;Step 102, obtain a polynomial configurable parallel CRC hardware implementation request;

步骤104,根据协议里的CRC生成多项式和硬件处理数据的并行度的要求生成CRC校验矩阵参数;Step 104, generate the CRC check matrix parameter according to the requirement of the parallelism of the CRC generator polynomial in the protocol and the hardware processing data;

步骤106,将生成好的CRC校验矩阵参数通过软硬件交互接口适配至硬件电路中CRC计算单元的校验矩阵缓存区;Step 106, the generated CRC check matrix parameter is adapted to the check matrix buffer area of the CRC calculation unit in the hardware circuit through the software-hardware interactive interface;

步骤108,硬件电路中的CRC计算单元根据输入的数据与校验矩阵参数进行迭代计算生成CRC结果。Step 108, the CRC calculation unit in the hardware circuit performs iterative calculation according to the input data and the check matrix parameters to generate a CRC result.

本发明提供了一种多项式可配的并行CRC硬件实现方法,该方法可以应用于如图2所示的多项式可配的并行CRC软硬件适配结构中。The present invention provides a polynomial configurable parallel CRC hardware implementation method, which can be applied to the polynomial configurable parallel CRC hardware and software adaptation structure as shown in FIG. 2 .

具体地,在多项式可配的并行CRC软硬件适配结构中主要由生成校验矩阵单元、配置单元和CRC计算单元构成。其中,生成校验矩阵单元由软件根据多项式和输入的数据并行度的要求生成待适配的校验矩阵参数。配置单元由软件将待适配的校验矩阵参数通过接口适配至CRC计算单元的校验矩阵中。CRC计算单元由硬件根据校验矩阵与输入的数据经过迭代计算生成CRC结果。该硬件装置中在保证并行处理的基础上提升了灵活性,可适配多套生成多项式。Specifically, the polynomial configurable parallel CRC software and hardware adaptation structure is mainly composed of a generation check matrix unit, a configuration unit and a CRC calculation unit. Wherein, the check matrix generating unit generates the check matrix parameters to be adapted by the software according to the requirements of the polynomial and the input data parallelism. The configuration unit adapts the parity check matrix parameters to be adapted into the parity check matrix of the CRC calculation unit through the software. The CRC calculation unit generates the CRC result by iterative calculation according to the check matrix and the input data by hardware. The hardware device improves flexibility on the basis of ensuring parallel processing, and can adapt to multiple sets of generator polynomials.

例如:以CRC-5,生成多项式g(x)=x5+x2+1,硬件处理数据的并行度n=13,输入数据13’h1F为例,操作步骤如下:For example: take CRC-5, the generator polynomial g(x)=x5+x2+1, the parallelism of the hardware processing data n=13, and the input data 13'h1F as an example, the operation steps are as follows:

首先,软件根据CRC生成多项式和并行度的要求生成CRC校验矩阵,结果如下:First, the software generates a CRC check matrix according to the requirements of the CRC generator polynomial and parallelism. The results are as follows:

Figure BDA0003573857250000051
Figure BDA0003573857250000051

然后,软件将待适配的校验阵参数通过软硬件交互接口适配至硬件电路中CRC计算单元中校验矩阵缓存区。Then, the software adapts the check matrix parameters to be adapted to the check matrix buffer area in the CRC calculation unit in the hardware circuit through the software-hardware interactive interface.

最后,硬件电路对输入数据运算,生成CRC结果:5’h14。Finally, the hardware circuit operates on the input data to generate a CRC result: 5'h14.

在本实施例中,通过软件将适配生成的校验矩阵参数传递至硬件CRC计算单元的校验矩阵中,再与输入的数据通过硬件CRC计算单元经过迭代计算生成校验冗余码。多套校验阵参数对应多组CRC生成多项式和输入的数据并行度,从而有效地提升了CRC硬件的灵活性,解除了并行CRC硬件电路中对单一多项式的局限性。In this embodiment, the check matrix parameters generated by adaptation are transferred to the check matrix of the hardware CRC calculation unit through software, and then the check redundancy code is generated by iterative calculation with the input data through the hardware CRC calculation unit. Multiple sets of check array parameters correspond to multiple sets of CRC generator polynomials and input data parallelism, which effectively improves the flexibility of CRC hardware and relieves the limitation of a single polynomial in parallel CRC hardware circuits.

在一个实施例中,如图3所示,提供了一种多项式可配的并行CRC硬件实现方法,该方法中根据协议里的CRC生成多项式和硬件处理数据的并行度的要求生成CRC校验矩阵参数的步骤还包括:In one embodiment, as shown in FIG. 3 , a polynomial-configurable parallel CRC hardware implementation method is provided. In the method, a CRC check matrix is generated according to the CRC generator polynomial in the protocol and the parallelism of hardware processing data. The parameter steps also include:

步骤302,确定CRC生成多项式g(x)和并行度n;Step 302, determine the CRC generator polynomial g(x) and the degree of parallelism n;

步骤304,通过CRC系数矩阵生成器和CRC数据矩阵生成器分别生成对应的CRC系数矩阵和CRC数据矩阵;Step 304, generate corresponding CRC coefficient matrix and CRC data matrix respectively by CRC coefficient matrix generator and CRC data matrix generator;

步骤306,将CRC系数矩阵和CRC数据矩阵进行合并得到CRC校验矩阵。Step 306, combining the CRC coefficient matrix and the CRC data matrix to obtain a CRC check matrix.

在一个实施例中,通过CRC系数矩阵生成器和CRC数据矩阵生成器分别生成对应的CRC系数矩阵和CRC数据矩阵的步骤还包括:根据CRC生成多项式g(x)构建稀疏矩阵,将所述稀疏矩阵进行n-1次线性变换后生成CRC系数矩阵。In one embodiment, the step of generating the corresponding CRC coefficient matrix and the CRC data matrix by the CRC coefficient matrix generator and the CRC data matrix generator, respectively, further includes: constructing a sparse matrix according to the CRC generator polynomial g(x), After the matrix is linearly transformed for n-1 times, the CRC coefficient matrix is generated.

具体地,可参考图2所示的多项式可配的并行CRC软硬件适配结构,其中CRC校验矩阵生成器的组成主要包含:CRC系数矩阵生成器和CRC数据矩阵生成器。当确定了CRC生成多项式g(x)和并行度n,经过上述两个生成器分别生成对应的CRC系数矩阵和CRC数据矩阵;二者在经过合并,从而得到CRC校验矩阵。Specifically, reference may be made to the polynomially configurable parallel CRC software and hardware adaptation structure shown in FIG. 2 , where the CRC check matrix generator mainly includes: a CRC coefficient matrix generator and a CRC data matrix generator. When the CRC generating polynomial g(x) and the degree of parallelism n are determined, the corresponding CRC coefficient matrix and CRC data matrix are respectively generated by the above two generators; the two are combined to obtain the CRC check matrix.

CRC系数矩阵生成器主要是根据CRC生成多项式g(x)和硬件处理数据的并行度n经过运算处理后生成CRC系数矩阵。处理过程主要包含两步:1、根据生成多项式g(x),构建稀疏矩阵;2、将稀疏矩阵进行n-1次变换后生成CRC系数矩阵。The CRC coefficient matrix generator mainly generates the CRC coefficient matrix according to the CRC generating polynomial g(x) and the parallelism n of the hardware processing data after operation processing. The processing process mainly includes two steps: 1. Constructing a sparse matrix according to the generator polynomial g(x); 2. Converting the sparse matrix n-1 times to generate a CRC coefficient matrix.

例如,选取CRC生成多项式g(x)的形式同公式1所示:For example, the form of selecting the CRC generator polynomial g(x) is as shown in Equation 1:

Figure BDA0003573857250000071
Figure BDA0003573857250000071

其中ck=1表示电路连接,否则表示断开;xk表示第k处寄存器Dk的值;c0=cm=1。Wherein c k =1 indicates that the circuit is connected, otherwise it indicates disconnection; x k indicates the value of the kth register D k ; c 0 = cm =1.

第1步:构建稀疏矩阵T(1),参考形式见公式2;Step 1: Construct a sparse matrix T (1) , see formula 2 for the reference form;

Figure BDA0003573857250000072
Figure BDA0003573857250000072

其中T(1)中的“1”表示第1次移位;

Figure BDA0003573857250000073
cm=c0=1;E为m×m的单位矩阵;
Figure BDA0003573857250000074
为零向量;Wherein "1" in T (1) represents the first shift;
Figure BDA0003573857250000073
c m =c 0 =1; E is the identity matrix of m×m;
Figure BDA0003573857250000074
zero vector;

第2步:n-1次变换后,生成CRC系数矩阵,每次变换均遵循L2线性变换——T(n)=L2(T(n-1))Step 2: After n-1 transformations, generate a CRC coefficient matrix, and each transformation follows L 2 linear transformation - T (n) = L 2 (T (n-1) )

记T(n)中第i行,第j列,n次变换对应的状态矩阵中的元素为

Figure BDA0003573857250000075
等同于CRC系数矩阵中的元素。Denote the i-th row, j-th column, and the elements in the state matrix corresponding to the n transformations in T (n) as
Figure BDA0003573857250000075
Equivalent to the elements in the CRC coefficient matrix.

L2操作如下:T(n)第1至m-1行的行向量中的元素按照公式3更新;第m行的行向量中元素按照公式4更新;L2 operates as follows: the elements in the row vector of the 1st to m-1 rows of T (n) are updated according to formula 3; the elements in the row vector of the mth row are updated according to formula 4;

Figure BDA0003573857250000076
Figure BDA0003573857250000076

Figure BDA0003573857250000077
Figure BDA0003573857250000077

CRC数据矩阵生成器主要是从n个状态矩阵{T(1)、T(2)、…、T(n)}中分别取出第一列元素,进而生成CRC数据矩阵(CD,其中行数为m,列数为n),如公式5所示。The CRC data matrix generator mainly takes the first column elements from the n state matrices {T(1), T(2), ..., T(n)}, and then generates the CRC data matrix (CD, where the number of rows is m, the number of columns is n), as shown in Equation 5.

Figure BDA0003573857250000081
Figure BDA0003573857250000081

最后,将CRC系数矩阵和CRC数据矩阵进行合并得到CRC校验矩阵。具体地,参考图4所示,图4中m表示CRC生成多项式g(x)的级数,例如CRC-16,对应m为16;CRC-32,对应m为32。n表示输入数据并行度,主要参考硬件电路中输入数据的位宽(bit级),例如,当输入数据的位宽为32bit时,对应n为32;输入数据的位宽为128bit时,对应n为128。Finally, the CRC coefficient matrix and the CRC data matrix are combined to obtain a CRC check matrix. Specifically, referring to FIG. 4 , m in FIG. 4 represents the number of stages of the CRC generator polynomial g(x), for example, CRC-16, corresponding to m is 16; CRC-32, corresponding to m is 32. n represents the parallelism of the input data, which mainly refers to the bit width (bit level) of the input data in the hardware circuit. For example, when the bit width of the input data is 32 bits, the corresponding n is 32; when the bit width of the input data is 128 bits, the corresponding n is 128.

值得说明的是,图4中CRC系数矩阵与CRC数据矩阵的关系支持对换、交叉等变形方案,该方案同样适用于其他的变形方案。It should be noted that the relationship between the CRC coefficient matrix and the CRC data matrix in FIG. 4 supports modification schemes such as swapping and crossover, and this scheme is also applicable to other modification schemes.

在一个实施例中,如图5所示,提供了一种多项式可配的并行CRC硬件实现方法,该方法中硬件电路中的CRC计算单元根据输入的数据与校验矩阵参数进行迭代计算生成CRC结果的步骤还包括:In one embodiment, as shown in FIG. 5 , a polynomial configurable parallel CRC hardware implementation method is provided, in which the CRC calculation unit in the hardware circuit performs iterative calculation according to the input data and the check matrix parameters to generate the CRC The resulting steps also include:

步骤502,将数据缓存区中的kbit数据与CRC校验矩阵缓存区按照校验矩阵的行方向处理,分别生成m个中间值;Step 502, processing the kbit data in the data buffer area and the CRC check matrix buffer area according to the row direction of the check matrix to generate m intermediate values respectively;

步骤504,行方向处理为将数据缓存区的kbit数据与CRC校验矩阵中的单行kbit数据进行按位与运算生成中间值;Step 504, the row direction processing is to perform bitwise AND operation on the kbit data in the data buffer area and the single row kbit data in the CRC check matrix to generate an intermediate value;

步骤506,对m个中间值分别进行按位异或运算生成m bit的CRC更新值;Step 506, respectively carry out bitwise XOR operation to m intermediate values to generate the CRC update value of m bit;

步骤508,当输入的nbit数据为最后一组时,对应生成的CRC更新值经m bit的D触发器稳定后作为CRC的输出结果。Step 508, when the input n-bit data is the last group, the corresponding generated CRC update value is stabilized by the m-bit D flip-flop as the output result of the CRC.

参考图6所示的多项式可配的并行CRC硬件电路中CRC计算单元电路图,在本实施例中,CRC计算单元主要是将输入接口处接收到的数据转换生成m bit的CRC结果。Referring to the circuit diagram of the CRC calculation unit in the polynomially configurable parallel CRC hardware circuit shown in FIG. 6 , in this embodiment, the CRC calculation unit mainly converts the data received at the input interface to generate an m-bit CRC result.

主要操作过程描述如下:将数据缓存区中的kbit数据(由mbit的CRC更新值和nbit的输入数据组成,k=m+n)与CRC校验矩阵缓存区按照校验矩阵的行方向处理,分别生成m个中间值(tmp0、tmp1…tmpm-1);每行处理的方式是将数据缓存区的kbit数据与CRC校验矩阵中的单行kbit数据进行按位与“&”运算生成中间值;再对m个中间值分别进行按位异或“XOR”运算生成m bit的CRC更新值(由{CNm-1、…、CN1、CN0}组成);当输入的nbit数据为最后一组时,对应生成的CRC更新值,经m bit的D触发器(Dm)稳定后,作为CRC的输出结果。The main operation process is described as follows: the kbit data in the data buffer area (composed of mbit CRC update value and nbit input data, k=m+n) and the CRC check matrix buffer area are processed according to the row direction of the check matrix, Generate m intermediate values (tmp0, tmp1...tmpm-1) respectively; each row is processed by performing a bitwise AND "&" operation between the kbit data in the data buffer and the single row of kbit data in the CRC check matrix to generate an intermediate value ; Then perform bitwise exclusive-OR "XOR" operation on m intermediate values to generate m-bit CRC update value (composed of {CNm-1, ..., CN1, CN0}); when the input nbit data is the last group , corresponding to the generated CRC update value, after the m bit D flip-flop (Dm) is stabilized, it is used as the output result of the CRC.

数据缓冲区中CRC更新值的数据来源有两处:当数据刚开始传输,对应第一组数据时,其来源于D触发器中的初始值(DI,一般设置为全‘1’);否则,其来源于经D触发器稳定后的CRC更新值。There are two data sources for the CRC update value in the data buffer: when the data just starts to transmit, corresponding to the first group of data, it comes from the initial value (DI, generally set to all '1') in the D flip-flop; otherwise , which is derived from the CRC update value stabilized by the D flip-flop.

值得说明的是,图6中CRC计算单元中的数据缓存区的数据与CRC校验阵缓存区的数据进行按位与计算时,需要满足位对齐的关系,在此基础上的变形该方案同样适用。此外,图6中CRC计算单元中的CRC校验阵缓存区的某一列与CRC更新值中的某一位成对应关系,在此基础上的变形该方案同样适用。It is worth noting that when the data in the data buffer area in the CRC calculation unit in Figure 6 and the data in the CRC check array buffer area perform bitwise AND calculation, the relationship of bit alignment needs to be satisfied, and the modification on this basis is the same. Be applicable. In addition, a certain column of the CRC check array buffer area in the CRC calculation unit in FIG. 6 has a corresponding relationship with a certain bit in the CRC update value, and the modification on this basis is also applicable to the scheme.

应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。It should be understood that although the steps in the flowcharts of FIGS. 1-6 are shown in sequence according to the arrows, these steps are not necessarily executed in the sequence shown by the arrows. Unless explicitly stated herein, the execution of these steps is not strictly limited to the order, and these steps may be performed in other orders. Moreover, at least a part of the steps in FIGS. 1-6 may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed and completed at the same time, but may be executed at different times. These sub-steps or stages are not necessarily completed at the same time. The order of execution of the steps is not necessarily sequential, but may be performed alternately or alternately with other steps or at least a part of sub-steps or stages of other steps.

在一个实施例中,如图7所示,提供了一种多项式可配的并行CRC硬件实现装置700,该装置包括:In one embodiment, as shown in FIG. 7 , a polynomial-configurable parallel CRC hardware implementation apparatus 700 is provided, and the apparatus includes:

获取模块701,所述获取模块用于获取多项式可配的并行CRC硬件实现请求;Obtaining module 701, the obtaining module is used to obtain a polynomial configurable parallel CRC hardware implementation request;

生成模块702,所述生成模块用于根据协议里的CRC生成多项式和硬件处理数据的并行度的要求生成CRC校验矩阵参数;Generation module 702, the generation module is used to generate a CRC check matrix parameter according to the requirements of the CRC generator polynomial in the protocol and the parallelism of the hardware processing data;

适配模块703,所述适配模块用于将生成好的所述CRC校验矩阵参数通过软硬件交互接口适配至硬件电路中CRC计算单元的校验矩阵缓存区;Adaptation module 703, the adaptation module is used to adapt the generated CRC check matrix parameters to the check matrix buffer area of the CRC calculation unit in the hardware circuit through the software-hardware interactive interface;

计算模块704,计算模块用于通过所述硬件电路中的CRC计算单元根据输入的数据与校验矩阵参数进行迭代计算生成CRC结果。Calculation module 704, the calculation module is configured to generate a CRC result by iterative calculation according to the input data and the check matrix parameter by the CRC calculation unit in the hardware circuit.

在一个实施例中,生成模块702还用于:In one embodiment, the generation module 702 is also used to:

确定CRC生成多项式g(x)和并行度n;Determine the CRC generator polynomial g(x) and the degree of parallelism n;

通过CRC系数矩阵生成器和CRC数据矩阵生成器分别生成对应的CRC系数矩阵和CRC数据矩阵;The corresponding CRC coefficient matrix and CRC data matrix are respectively generated by the CRC coefficient matrix generator and the CRC data matrix generator;

将所述CRC系数矩阵和CRC数据矩阵进行合并得到CRC校验矩阵。The CRC coefficient matrix and the CRC data matrix are combined to obtain a CRC check matrix.

在一个实施例中,生成模块702还用于:In one embodiment, the generation module 702 is also used to:

根据所述CRC生成多项式g(x)构建稀疏矩阵,将所述稀疏矩阵进行n-1次线性变换后生成CRC系数矩阵。A sparse matrix is constructed according to the CRC generator polynomial g(x), and the CRC coefficient matrix is generated by performing n-1 linear transformations on the sparse matrix.

在一个实施例中,计算模块704还用于:In one embodiment, the computing module 704 is also used to:

将数据缓存区中的kbit数据与CRC校验矩阵缓存区按照校验矩阵的行方向处理,分别生成m个中间值;The kbit data in the data buffer area and the CRC check matrix buffer area are processed according to the row direction of the check matrix to generate m intermediate values respectively;

所述行方向处理为将数据缓存区的kbit数据与CRC校验矩阵中的单行kbit数据进行按位与运算生成中间值;The row direction processing is to perform a bitwise AND operation on the kbit data in the data buffer area and the single row kbit data in the CRC check matrix to generate an intermediate value;

对所述m个中间值分别进行按位异或运算生成m bit的CRC更新值;The m intermediate values are respectively carried out bitwise XOR operation to generate the CRC update value of m bit;

当输入的nbit数据为最后一组时,对应生成的CRC更新值经mbit的D触发器稳定后作为CRC的输出结果。When the input nbit data is the last group, the corresponding generated CRC update value is stabilized by the mbit D flip-flop as the output result of the CRC.

关于多项式可配的并行CRC硬件实现装置的具体限定可以参见上文中对于多项式可配的并行CRC硬件实现方法的限定,在此不再赘述。For the specific limitation of the polynomially configurable parallel CRC hardware implementation device, reference may be made to the foregoing limitations on the polynomially configurable parallel CRC hardware implementation method, which will not be repeated here.

在一个实施例中,提供了一种计算机设备,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多项式可配的并行CRC硬件实现方法。In one embodiment, a computer device is provided, the internal structure of which can be shown in FIG. 8 . The computer device includes a processor, memory, and a network interface connected by a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium, an internal memory. The nonvolatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the execution of the operating system and computer programs in the non-volatile storage medium. The network interface of the computer device is used to communicate with an external terminal through a network connection. The computer program implements a polynomially configurable parallel CRC hardware implementation method when executed by the processor.

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。Those skilled in the art can understand that the structure shown in FIG. 8 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer equipment to which the solution of the present application is applied. Include more or fewer components than shown in the figures, or combine certain components, or have a different arrangement of components.

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, and the processor implements the steps in the above method embodiments when the processor executes the computer program.

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, implements the steps in each of the above method embodiments.

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be implemented by instructing relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage In the medium, when the computer program is executed, it may include the processes of the above-mentioned method embodiments. Wherein, any reference to memory, storage, database or other medium used in the various embodiments provided in this application may include non-volatile and/or volatile memory. Nonvolatile memory may include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory may include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in various forms such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous chain Road (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。The technical features of the above embodiments can be combined arbitrarily. In order to make the description simple, all possible combinations of the technical features in the above embodiments are not described. However, as long as there is no contradiction in the combination of these technical features It is considered to be the range described in this specification.

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。The above-mentioned embodiments only represent several embodiments of the present application, and the descriptions thereof are specific and detailed, but should not be construed as a limitation on the scope of the invention patent. It should be pointed out that for those skilled in the art, without departing from the concept of the present application, several modifications and improvements can be made, which all belong to the protection scope of the present application. Therefore, the scope of protection of the patent of the present application shall be subject to the appended claims.

Claims (10)

1. A polynomial-configurable parallel CRC hardware implementation method, the method comprising:
acquiring a parallel CRC hardware implementation request with a configurable polynomial;
generating a CRC check matrix parameter according to a CRC generator polynomial in a protocol and the requirement of parallelism of hardware processing data;
the generated CRC check matrix parameters are adapted to a check matrix cache region of a CRC calculation unit in a hardware circuit through a software and hardware interaction interface;
and a CRC calculation unit in the hardware circuit performs iterative calculation according to the input data and the check matrix parameters to generate a CRC result.
2. The hardware implementation method of parallel CRC polynomial of claim 1, wherein the step of generating CRC check matrix parameters according to the CRC generator polynomial in the protocol and the parallelism requirement of the hardware processing data further comprises:
determining a CRC generator polynomial g (x) and a parallelism n;
respectively generating a corresponding CRC coefficient matrix and a corresponding CRC data matrix through a CRC coefficient matrix generator and a CRC data matrix generator;
and combining the CRC coefficient matrix and the CRC data matrix to obtain a CRC check matrix.
3. The method of claim 2, wherein the step of generating corresponding CRC coefficient matrices and CRC data matrices by a CRC coefficient matrix generator and a CRC data matrix generator, respectively, further comprises:
and constructing a sparse matrix according to the CRC generator polynomial g (x), and performing linear transformation on the sparse matrix for n-1 times to generate a CRC coefficient matrix.
4. The hardware implementation method of claim 3, wherein the step of generating the CRC result by the CRC calculation unit in the hardware circuit performing iterative computation according to the input data and the check matrix parameters further comprises:
processing kbit data in the data cache region and a CRC (cyclic redundancy check) check matrix cache region according to the row direction of a check matrix, and respectively generating m intermediate values;
the row direction processing is to perform bitwise AND operation on the kbit data in the data cache region and the single-row kbit data in the CRC check matrix to generate an intermediate value;
performing bitwise XOR operation on the m intermediate values to generate a CRC update value of m bits;
and when the input nbit data is the last group, stabilizing the correspondingly generated CRC updating value by an mbit D trigger to be used as the output result of the CRC.
5. An apparatus for parallel hardware implementation of a polynomial configurable CRC, the apparatus comprising:
the acquisition module is used for acquiring a parallel CRC hardware implementation request with configurable polynomial;
the generating module is used for generating CRC check matrix parameters according to the CRC generator polynomial in the protocol and the requirement of the parallelism of hardware processing data;
the adaptation module is used for adapting the generated CRC check matrix parameters to a check matrix cache region of a CRC calculation unit in a hardware circuit through a software and hardware interaction interface;
and the calculation module is used for performing iterative calculation on the CRC calculation unit in the hardware circuit according to the input data and the check matrix parameters to generate a CRC result.
6. The apparatus of claim 5, wherein the generating module is further configured to:
determining a CRC generator polynomial g (x) and a parallelism n;
respectively generating a corresponding CRC coefficient matrix and a corresponding CRC data matrix through a CRC coefficient matrix generator and a CRC data matrix generator;
and combining the CRC coefficient matrix and the CRC data matrix to obtain a CRC check matrix.
7. The apparatus of claim 6, wherein the generating module is further configured to:
and constructing a sparse matrix according to the CRC generator polynomial g (x), and performing linear transformation on the sparse matrix for n-1 times to generate a CRC coefficient matrix.
8. The apparatus of claim 5, wherein the computing module is further configured to:
processing kbit data in the data cache region and a CRC (cyclic redundancy check) check matrix cache region according to the row direction of a check matrix, and respectively generating m intermediate values;
the row direction processing is to perform bitwise AND operation on the kbit data in the data cache region and the single-row kbit data in the CRC check matrix to generate an intermediate value;
performing bitwise XOR operation on the m intermediate values to generate a CRC update value of m bits;
when the input n-bit data is the last group, the corresponding generated CRC update value is stabilized by the m-bit D trigger and then used as the output result of the CRC.
9. A computer device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, characterized in that the steps of the method of any of claims 1 to 4 are implemented when the computer program is executed by the processor.
10. A computer-readable storage medium, on which a computer program is stored which, when being executed by a processor, carries out the steps of the method according to any one of claims 1 to 4.
CN202210333785.9A 2022-03-30 2022-03-30 Polynomial configurable parallel CRC hardware implementation method, device and computer equipment Pending CN114911647A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210333785.9A CN114911647A (en) 2022-03-30 2022-03-30 Polynomial configurable parallel CRC hardware implementation method, device and computer equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210333785.9A CN114911647A (en) 2022-03-30 2022-03-30 Polynomial configurable parallel CRC hardware implementation method, device and computer equipment

Publications (1)

Publication Number Publication Date
CN114911647A true CN114911647A (en) 2022-08-16

Family

ID=82763555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210333785.9A Pending CN114911647A (en) 2022-03-30 2022-03-30 Polynomial configurable parallel CRC hardware implementation method, device and computer equipment

Country Status (1)

Country Link
CN (1) CN114911647A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115577225A (en) * 2022-12-07 2023-01-06 通号万全信号设备有限公司 Two-out-of-two voting processing method, device and storage medium
CN119154991A (en) * 2023-06-15 2024-12-17 上海玄戒技术有限公司 CRC checking method, CRC checking device, communication equipment and storage medium
CN119356938A (en) * 2024-12-24 2025-01-24 南湖实验室 Parallel CRC circuit and CRC implementation method thereof, hardware description code automatic generator and generation method thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7278085B1 (en) * 2003-03-06 2007-10-02 Maxtor Corporation Simple error-correction codes for data buffers
CN101478369A (en) * 2009-01-05 2009-07-08 深圳华为通信技术有限公司 CRC checking method and system, CRC initial value affecting matrix
CN107239362A (en) * 2017-02-20 2017-10-10 中国科学院微电子研究所 Calculation method and system of a parallel CRC check code
CN113110954A (en) * 2021-04-23 2021-07-13 合肥恒烁半导体有限公司 CRC (Cyclic redundancy check) code parallel computing method and device and application thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7278085B1 (en) * 2003-03-06 2007-10-02 Maxtor Corporation Simple error-correction codes for data buffers
CN101478369A (en) * 2009-01-05 2009-07-08 深圳华为通信技术有限公司 CRC checking method and system, CRC initial value affecting matrix
CN107239362A (en) * 2017-02-20 2017-10-10 中国科学院微电子研究所 Calculation method and system of a parallel CRC check code
CN113110954A (en) * 2021-04-23 2021-07-13 合肥恒烁半导体有限公司 CRC (Cyclic redundancy check) code parallel computing method and device and application thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115577225A (en) * 2022-12-07 2023-01-06 通号万全信号设备有限公司 Two-out-of-two voting processing method, device and storage medium
CN119154991A (en) * 2023-06-15 2024-12-17 上海玄戒技术有限公司 CRC checking method, CRC checking device, communication equipment and storage medium
CN119356938A (en) * 2024-12-24 2025-01-24 南湖实验室 Parallel CRC circuit and CRC implementation method thereof, hardware description code automatic generator and generation method thereof

Similar Documents

Publication Publication Date Title
JP5231218B2 (en) In-place transform with application to encoding and decoding of various code classes
CN114911647A (en) Polynomial configurable parallel CRC hardware implementation method, device and computer equipment
CN101814922B (en) Multi-bit error correcting method and device based on BCH (Broadcast Channel) code and memory system
US8843810B2 (en) Method and apparatus for performing a CRC check
CN111143107B (en) FPGA single event reversal verification circuit and method
CN109257049B (en) A construction method and repair method for repairing binary array code parity check matrix
US20190158119A1 (en) One-sub-symbol linear repair schemes
KR102740719B1 (en) Turbo multiplication code decoding method, device, decoder and computer recording medium
CN115858230A (en) Construction, repair method and related device of maximum distance separable code
US10171109B2 (en) Fast encoding method and device for Reed-Solomon codes with a small number of redundancies
CN114303320B (en) Cyclic Redundancy Check (CRC) using inverse CRC generator polynomials for decoding
US8977936B2 (en) Strong single and multiple error correcting WOM codes, coding methods and devices
CN116722954B (en) Encoding and decoding verification system, method, equipment and storage medium
CN110708077B (en) LDPC code large number logic decoding method, device and decoder
Han et al. Progressive data retrieval for distributed networked storage
CN111863106B (en) Flash memory error correction method and device
US12218688B2 (en) Error correction with fast syndrome calculation
US12255668B2 (en) Error correction with fast syndrome calculation
CN119602907B (en) Encoder, encoding method and chip
CN118473431B (en) A very low bit rate Turbo coding structure and design method
CN117632577B (en) A fast ECC error correction circuit based on BCH coding
CN111966524B (en) Flash data writing method and device
CN114978497A (en) Additional frozen bit information coordination method and device for quantum key distribution
Li et al. Parallel Heuristic Methods to Accelerate Best Equivocation Code Generation
CN118573210A (en) Method, device and system for acquiring array code and readable storage medium

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