CN116861493A - 一种校验码生成方法、处理器及电子设备 - Google Patents
一种校验码生成方法、处理器及电子设备 Download PDFInfo
- Publication number
- CN116861493A CN116861493A CN202311108686.1A CN202311108686A CN116861493A CN 116861493 A CN116861493 A CN 116861493A CN 202311108686 A CN202311108686 A CN 202311108686A CN 116861493 A CN116861493 A CN 116861493A
- Authority
- CN
- China
- Prior art keywords
- check code
- data
- check
- calculation
- output
- 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
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000012795 verification Methods 0.000 title claims description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 218
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 117
- 230000000873 masking effect Effects 0.000 claims description 4
- 230000001502 supplementing effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 239000013589 supplement Substances 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本申请提供一种校验码生成方法、处理器及电子设备,该方法包括:获取校验码计算指令;校验码计算指令包括校验码算法指示信息;校验码计算指令属于处理器CPU指令集中的指令;根据校验码算法指示信息,确定校验码多项式;通过计算电路中的各计算分支,得到每个计算分支输出的校验码;其中,通过对第i‑1计算分支输出的校验码和校验码多项式进行计算得到第i计算分支输出的校验码;i为正整数;第0计算分支输出的校验码是根据输入校验码和待校验数据生成的;根据校验码算法指示信息,从各计算分支输出的校验码中确定待校验数据对应的校验码。该方案,能够从硬件的角度实现对不同数据长度的校验数据的处理以及能够实现不同的校验算法类型。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种校验码生成方法、处理器及电子设备。
背景技术
为了保证通信数据的正确性,通常在数据通信中会加入校验算法,其中CRC(循环冗余校验)是最常见的校验算法。CRC一般采用硬件方式或者软件方式实现,硬件方式实现方法简单、执行效率高,但是硬件方式集成后只能实现一种CRC算法,也只能接收一种数据长度的校验数据,功能比较单一;软件方式能够实现不同的CRC算法,但是执行步骤较多,执行效率较低。
发明内容
本申请提供一种校验码生成方法、处理器及电子设备,能够从硬件的角度实现对不同数据长度的校验数据的处理以及能够实现不同的校验算法类型。
第一方面,本申请实施例提供一种校验码生成方法,应用于通过硬编码方式实现的计算电路,该计算电路集成于处理器中,该方法可以由处理器或处理器的模块执行,本申请对该方法的执行主体不做限定。该方法包括:获取校验码计算指令;校验码计算指令包括校验码算法指示信息;校验码计算指令属于处理器CPU指令集中的指令;根据校验码算法指示信息,确定校验码多项式;通过计算电路中的各计算分支,得到每个计算分支输出的校验码;其中,通过对第i-1计算分支输出的校验码和校验码多项式进行计算得到第i计算分支输出的校验码;i为正整数;第0计算分支输出的校验码是根据输入校验码和待校验数据生成的;根据校验码算法指示信息,从各计算分支输出的校验码中确定待校验数据对应的校验码。
上述方案,一方面,根据校验码算法指示信息,确定校验码多项式,因为不同的校验码算法对应的校验码多项式不同,且上述方法通过硬编码的方式集成于计算电路中,因而能够从硬件的角度实现不同的校验算法类型,且通过硬件的实现,能够提高校验码确定的速率;另一方面,通过计算电路中的各计算分支,得到每个计算分支输出的校验码,也即通过一次计算电路的计算能够得到多个计算分支的校验码,提高了校验码确定的速率;再一方面,根据校验码算法指示信息,从各计算分支输出的校验码中确定待校验数据对应的校验码,由于待校验数据的长度不同,每种数据长度对应一个计算分支的校验码,因而能够实现对不同数据长度的校验数据的处理。
一种可能的实现方法中,所述通过所述计算电路中的各计算分支,得到每个计算分支输出的校验码之前,还包括:根据所述校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据,并确定所述多组校验数据中的每组校验数据对应的待校验数据;所述根据所述校验码算法指示信息,从所述各计算分支输出的校验码中确定所述待校验数据对应的校验码,包括:将与所述数据长度对应的计算分支输出的校验码中确定所述待校验数据对应的校验码。
上述方案,将原始数据划分为多组校验数据,对每组校验数据依序进行处理,得到的校验码包含原始数据的信息,提高了校验码的复杂度和可靠性;根据校验码算法指示信息,从各计算分支输出的校验码中确定待校验数据对应的校验码,由于待校验数据的长度不同,每种数据长度对应一个计算分支的校验码,因而能够实现对不同数据长度的校验数据的处理。
一种可能的实现方法中,所述输入校验码为初始校验码或上一组待校验数据对应的校验码;所述原始数据的校验码为所述多组校验数据中的最后一组校验数据对应的校验码。
上述方案,能够提高校验码的复杂度,且使用上一组校验数据对应的校验码作为输入校验码,能够使当前组的校验码包含上一组校验数据的信息,进一步地,能够使最终的校验码包含原始数据的信息,提高了校验码的复杂度和可靠性。
一种可能的实现方法中,针对任一组校验数据,若所述校验数据的数据长度小于计算分支的数量,则将所述校验数据的高位补0,得到所述校验数据对应的待校验数据,其中,待校验数据的数据长度等于所述计算分支的数量。
上述方案,将数据对齐,能够减少硬件电路设计的复杂度,同时提高数据处理效率。
一种可能的实现方法中,将第i-1计算分支输出的校验码右移一位,并将最高位补齐,确定更新校验码;若第i-1计算分支输出的校验码的第0位的数值为1,则将更新校验码与校验码多项式异或后,确定第i计算分支输出的校验码;若第i-1计算分支输出的校验码的第0位的数值为0,则将更新校验码确定为第i计算分支输出的校验码。
上述方案,能够实现准确确定校验码。
一种可能的实现方法中,所述校验码计算指令还包括校验码标识、待校验数据指示信息或校验码存储指示信息中的一种或多种;所述校验码标识用于指示CPU通过计算电路生成校验码;所述待校验数据指示信息用于指示每组校验数据的存储位置;所述校验码存储指示信息用于指示上一组校验数据对应的校验码的存储位置和/或待校验数据对应的校验码的存储位置。
上述方案,校验码标识能够标识校验码计算指令的功能类型,待校验数据指示信息能够获取待校验数据,校验码存储指示信息指示了校验码的存储信息,通过上述信息,能够实现准确、快速确定校验码的信息。
一种可能的实现方法中,从预先存储有不同数据长度及不同校验码算法对应的校验码多项式,获取与所述校验码算法指示信息对应的校验码多项式。
上述方案,预先存储有不同校验码算法对应的校验码多项式,能够实现准确、快速确定校验码的信息。
第二方面,本申请实施例提供一种处理器,处理器中集成有通过硬编码方式实现的计算电路;处理器计算电路包括计算单元和输出单元;处理器,用于获取校验码计算指令;校验码计算指令包括校验码算法指示信息;校验码计算指令属于处理器CPU指令集中的指令;根据校验码算法指示信息,确定校验码多项式;计算单元,用于通过计算电路中的各计算分支,得到每个计算分支输出的校验码;其中,通过对第i-1计算分支输出的校验码和校验码多项式进行计算得到第i计算分支输出的校验码;i为正整数;第0计算分支输出的校验码是根据输入校验码和待校验数据生成的;输出单元,用于根据校验码算法指示信息,从各计算分支输出的校验码中确定待校验数据对应的校验码。
一种可能的实现方法中,所述计算单元还包括掩码单元;所述处理器,还用根据所述校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据;所述掩码单元,用于将每组校验数据的高位补0,得到所述校验数据对应的待校验数据,其中,待校验数据的数据长度等于所述计算分支的数量;所述输出单元,具体用于将与所述数据长度对应的计算分支输出的校验码中确定所述待校验数据对应的校验码。
一种可能的实现方法中,所述输入校验码为初始校验码或上一组待校验数据对应的校验码;所述原始数据的校验码为所述多组校验数据中的最后一组校验数据对应的校验码。
一种可能的实现方法中,所述掩码单元,用于针对任一组校验数据,若所述校验数据的数据长度小于计算分支的数量,则将所述校验数据的高位补0,得到所述校验数据对应的待校验数据,其中,待校验数据的数据长度等于所述计算分支的数量。
一种可能的实现方法中,所述计算单元,用于将第i-1计算分支输出的校验码右移一位,并将最高位补齐,确定更新校验码;若第i-1计算分支输出的校验码的第0位的数值为1,则将更新校验码与校验码多项式异或后,确定第i计算分支输出的校验码;若第i-1计算分支输出的校验码的第0位的数值为0,则将更新校验码确定为第i计算分支输出的校验码。
一种可能的实现方法中,所述校验码计算指令还包括校验码标识、待校验数据指示信息或校验码存储指示信息中的一种或多种;所述校验码标识用于指示CPU通过计算电路生成校验码;所述待校验数据指示信息用于指示每组校验数据的存储位置;所述校验码存储指示信息用于指示上一组校验数据对应的校验码的存储位置和/或待校验数据对应的校验码的存储位置。
一种可能的实现方法中,所述处理器,用于从预先存储有不同数据长度及不同校验码算法对应的校验码多项式,获取与所述校验码算法指示信息对应的校验码多项式。
第三方面,本申请实施例提供一种电子设备,包括上述第二方面的任意处理器。
附图说明
图1为本申请实施例提供的一个完整的数据的结构示意图;
图2为本申请实施例提供的一种校验码生成方法的流程示意图;
图3为本申请实施例提供的一种校验码计算指令的格式示意图;
图4为本申请实施例提供的一种校验码生成方法的流程示意图;
图5为本申请实施例提供的一种处理器的结构示意图;
图6为本申请实施例提供的一种校验码生成方法的流程示意图;
图7为本申请实施例提供的一种处理器的结构示意图。
具体实施方式
为了保证通信数据的正确性,一个完整的数据帧如图1所示,通常由帧头、原始数据、校验码和帧尾组成,校验码是为了保证数据在传输过程中的完整性,采用一种指定的算法对原始数据进行计算,得出的一个校验值。接收方接收到数据时,采用同样的校验算法对原始数据进行计算,如果计算结果和接收到的校验值一致,说明数据校验正确,这一帧数据可以使用,如果不一致,说明传输过程中出现了差错,这一帧数据丢弃,请求重发。
循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。CRC校验计算速度快,检错能力强,易于用编码器等硬件电路实现。但是集成后的硬件电路只能实现一种CRC算法,功能比较单一,且集成后的硬件电路只能处理一种数据长度的校验数据,比如,如果集成后的硬件电路用于处理8比特的数据,那么只能将原始数据按照8比特进行划分,确定多组校验数据,并不能将原始数据按照16比特或者32比特进行划分;如果集成后的硬件电路用于处理16比特的数据,那么只能将原始数据按照16比特进行划分,确定多组校验数据,不能将原始数据按照8比特或者32比特进行划分。
当然,也可以通过软件方式实现CRC算法,软件的方式可以实现不同类型的CRC算法,能够对不同的数据长度进行处理,但是软件方式的执行步骤较多,耗时较长,执行效率较低,一个完整的数据帧的确定时间较长,进一步地,会影响整个网络通讯的效率。
图2为本申请实施例提供的一种校验码生成方法的流程示意图,应用于通过硬编码方式实现的计算电路,该计算电路集成于处理器中,该方法可以由处理器或处理器的模块执行,本申请对该方法的执行主体不做限定。
该方法包括以下步骤:
步骤201,获取校验码计算指令。
其中,校验码计算指令包括校验码算法指示信息;校验码计算指令属于处理器CPU指令集中的指令。
一种可能的实现方法中,在中央处理器(Central Processing Unit,CPU)指令集中新增指令,该指令称为校验码计算指令。校验码计算指令包括校验码算法指示信息,校验码算法指示信息用于指示检验码算法的类型和数据长度。本申请对检验码算法的类型和数据长度不做限定。示例性地,校验码算法指示信息为0001,则表示采用CRC32B算法确定校验码,其中,CRC32B表示采用0xEDB88320校验码多项式进行CRC计算,且处理的数据长度为1字节(Byte),也即8比特。
步骤202,根据校验码算法指示信息,确定校验码多项式。
一种可能的实现方法中,根据校验码算法指示信息中的检验码算法的类型确定校验码多项式。不同的检验码算法的类型对应不同的校验码多项式。
一种可能的实现方法中,相同检验码算法的类型,不同数据长度对应相同的校验码多项式。
一种可能的实现方法中,从预先存储有不同数据长度及不同校验码算法对应的校验码多项式,获取与校验码算法指示信息对应的校验码多项式,也就是说CPU预先存储有不同校验码算法对应的校验码多项式。该方案,能够实现准确、快速确定校验码的信息。
步骤203,通过计算电路中的各计算分支,得到每个计算分支输出的校验码。
其中,通过对第i-1计算分支输出的校验码和校验码多项式进行计算得到第i计算分支输出的校验码;i为正整数;第0计算分支输出的校验码是根据输入校验码和待校验数据生成的。
一种可能的实现方法中,根据校验码算法指示信息中的检验码算法的类型确定计算电路中的各计算分支,比如采用CRC32算法,则计算电路中共有32个计算分支,每个计算分支均会输出一个校验码。
一种可能的实现方法中,第0计算分支输出的校验码是根据输入校验码和待校验数据异或得到的,当然也可以为其他方式,本申请对此不做限定。其中,输入校验码为初始校验码或上一组校验数据对应的校验码。 上一组校验数据指的是将原始数据按照数据长度分为多组,每组校验数据均进行CRC计算,确定每组输出的校验码,当前组的输入校验码可以为上一组校验数据对应的校验码。该方案,能够提高校验码的复杂度,且使用上一组校验数据对应的校验码作为输入校验码,能够使当前组的校验码包含上一组校验数据的信息,进一步地,能够使最终的校验码包含原始数据的信息,提高了校验码的复杂度和可靠性。
一种可能的实现方法中,第i计算分支输出的校验码是根据第i-1计算分支输出的校验码和校验码多项式异或得到的,当然也可以为其他方式,本申请对此不做限定。
步骤204,根据校验码算法指示信息,从各计算分支输出的校验码中确定待校验数据对应的校验码。
一种可能的实现方法中,根据校验码算法指示信息中的数据长度,将与数据长度对应的计算分支输出的校验码中确定待校验数据对应的校验码,也即每种数据长度对应一个计算分支的校验码,比如采用CRC32算法,则计算电路中共有32个计算分支,如果处理的数据长度为8比特,则将第8个计算分支的输出校验码作为待校验数据对应的校验码;如果处理的数据长度为16比特,则将第16个计算分支的输出校验码作为待校验数据对应的校验码;如果处理的数据长度为32比特,则将第32个计算分支的输出校验码作为待校验数据对应的校验码。因此,本申请不仅能够实现对不同数据长度的校验数据进行处理,而且一次计算得到32个校验码,提高了校验码执行效率。
上述方案,一方面,根据校验码算法指示信息,确定校验码多项式,因为不同的校验码算法对应的校验码多项式不同,且上述方法通过硬编码的方式集成于计算电路中,因而能够从硬件的角度实现不同的校验算法类型,且通过硬件的实现,能够提高校验码确定的速率;另一方面,通过计算电路中的各计算分支,得到每个计算分支输出的校验码,也即通过一次计算电路的计算能够得到多个计算分支的校验码,提高了校验码确定的速率;再一方面,根据校验码算法指示信息,从各计算分支输出的校验码中确定待校验数据对应的校验码,由于待校验数据的长度不同,每种数据长度对应一个计算分支的校验码,因而能够实现对不同数据长度的校验数据的处理。
一种可能的实现方法中,通过计算电路中的各计算分支,得到每个计算分支输出的校验码之前,还包括:根据校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据,并确定多组校验数据中的每组校验数据对应的待校验数据。将与数据长度对应的计算分支输出的校验码中确定待校验数据对应的校验码。该方案,将原始数据划分为多组校验数据,对每组校验数据依序进行处理,得到的校验码包含原始数据的信息,提高了校验码的复杂度和可靠性。
一种可能的实现方法中,根据校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据。其中,数据长度为8比特、16比特或32比特中的一种或多种,本申请对数据长度不做限定。比如,原始数据为64比特,若校验码算法指示信息中指示数据长度为8比特,那么将原始数据划分为8组,每组校验数据的长度为8比特;若校验码算法指示信息中指示数据长度为16比特,那么将原始数据划分为4组,每组校验数据的长度为16比特;若校验码算法指示信息中指示数据长度为32比特,那么将原始数据划分为2组,每组校验数据的长度为32比特。该方案,根据校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据,能够实现对不同数据长度的校验数据的处理。
一种可能的实现方法中,检验码算法的类型可以如表1所示,但是不限于表1中所列的算法类型,本申请对检验码算法的类型不做限定。其中,宽度即生成的CRC校验码的位宽,如CRC-8,生成的CRC为8位。校验码多项式即十六进制多项式,省略最高位1,如CRC-8中的多项式公式为 x8 + x2 + x + 1,对应的二进制为1 0000 0111,省略最高位1,转换为十六进制为0x07。当然,除了宽度和校验码多项式外,针对某一CRC算法,还包括INIT表示CRC初始值;REFIN,表示在进行CRC计算之前,原始数据是否翻转,如原始数据:0x34 = 00110100,如果REFIN为true,进行翻转之后为0010 1100 = 0x2c;TRFOUT表示CRC运算完成之后,得到的CRC值是否进行翻转,如计算得到的CRC值为0x97 = 1001 0111,如果REFOUT为true,进行翻转之后为11101001 = 0xE9。XOROUT表示将CRC计算结果与异或参数进行异或运算后得到的值为最终的CRC值,如计算得到的CRC值为0x97 = 1001 0111,异或参数为0x00,异或结果为1001 0111=0x97。
表1
一种可能的实现方法中,校验码计算指令的格式如图3所示,校验码计算指令除了包括校验码算法指示信息,还可以包括校验码标识、待校验数据指示信息或校验码存储指示信息中的一种或多种。其中,校验码标识用于指示CPU通过计算电路生成校验码;示例性地,校验码计算指令是32比特的数据,其中,31至26位是校验码标识,比如校验码标识为001000,则认为该校验码计算指令用于CRC计算,如果是其它数值,则认为是CPU指令集中的其它指令;25至21位为校验码存储指示信息,用于指示上一组校验数据对应的校验码的存储位置和/或待校验数据对应的校验码的存储位置,比如校验码存储指示信息为某一寄存器的地址,该寄存器为之前CRC计算的累计结果计算器,同时是本次CRC计算结果的目的寄存器;20至16位为待校验数据指示信息,待校验数据指示信息用于指示每组校验数据的存储位置,比如待校验数据指示信息为另一寄存器的地址,该寄存器用于存储本次进行CRC计算的校验数据;15至8位是校验码算法指示信息;7至0位暂未使用。本申请对校验码计算指令包含的内容不做限定,对验码计算指令中各内容在校验码计算指令中的位置不做限定,图3仅为本申请的一种实现方式。该方案,校验码标识能够标识校验码计算指令的功能类型,待校验数据指示信息能够获取待校验数据,校验码存储指示信息指示了校验码的存储信息,通过上述信息,能够实现准确、快速确定校验码的信息。
一种可能的实现方法中,校验码计算指令中的校验码算法指示信息用于指示检验码算法的类型和数据长度。示例性地,校验码算法指示信息为0001,则表示采用CRC32B算法确定校验码,其中,CRC32表示采用CRC32算法,B表示字节(Byte),CRC32B表示采用0xEDB88320校验码多项式进行CRC计算,且处理的数据长度为1字节,也即8比特;校验码算法指示信息为0010,则表示采用CRC32H算法确定校验码,其中,CRC32表示采用CRC32算法,H表示半字(Half Word),CRC32H表示采用0xEDB88320校验码多项式进行CRC计算,且处理的数据长度为2字节,也即16比特;校验码算法指示信息为0011,则表示采用CRC32W算法确定校验码,其中,CRC32表示采用CRC32算法,W表示字(Word),CRC32W表示采用0xEDB88320校验码多项式进行CRC计算,且处理的数据长度为2字节,也即32比特。从上述例子可以看到,虽然数据长度不同,但是检验码算法的类型相同,则对应相同的校验码多项式。
一种可能的实现方法中,上述步骤203具体实现过程如图4所示,该过程包括以下步骤:
步骤401,确定待校验数据。
一种可能的实现方法中,根据校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据,依次对每组校验数据进行CRC计算,其中,待校验数据是多组校验数据中的任一组。
一种可能的实现方法中,针对任一组校验数据,若校验数据的数据长度小于计算分支的数量,则将校验数据的高位补0,得到校验数据对应的待校验数据,其中,待校验数据的数据长度等于计算分支的数量。该方案,将数据对齐,能够减少硬件电路设计的复杂度,同时提高数据处理效率。
一种可能的实现方法中,对任一组校验数据进行数据补充或数据截取后,确定待校验数据。示例性地,校验码算法指示信息为0001,则表示采用CRC32B算法进行计算,也即将原始数据按照8比特进行划分,每组校验数据为8比特,由于校验码的位数为32,因此将每组校验数据补齐至32位后,作为待校验数据。其中,补齐方式为将每组校验数据的其它24位进行补0操作;校验码算法指示信息为0010,则表示采用CRC32H算法进行计算,也即将原始数据按照16比特进行划分,每组校验数据为16比特,由于校验码的位数为32,因此将每组校验数据补齐至32位后,作为待校验数据。其中,补齐方式为将每组校验数据的其它16位进行补0操作;校验码算法指示信息为0011,则表示采用CRC32W算法进行计算,也即将原始数据按照32比特进行划分,每组校验数据为32比特,由于校验码的位数为32,因此无需补齐,直接将任一组校验数据作为待校验数据。
一种可能的实现方法中,待校验数据可以通过如下公式(1)得到:
data_mask = dsize==010? data[31:0]:
dsize==001?{16’h0,data[15:0]}:
dsize==000?{24’h0,data[7:0]}:
32’h0 ……(1)
其中,data_mask指的是待校验数据,dsize表示数据长度,如果是010,则从待校验数据指示信息中也即数据寄存器中获取32位数据(即data[31:0])作为待校验数据;如果是001,则从数据寄存器中获取16位数据(即data[15:0]),并将其它16位进行补0操作,16’h0表示将高位的16位补0;如果是000,则从数据寄存器中获取8位数据(即data[7:0]),并将其它24位进行补0操作,24’h0表示将高位的24位补0;如果不是010或001或000,则data_mask为32位全0数据,即32’h0。
步骤402,确定第0计算分支输出的校验码。
一种可能的实现方法中,第0计算分支输出的校验码是根据输入校验码和待校验数据异或得到的,当然也可以为其他方式,本申请对此不做限定。其中,输入校验码为初始校验码或上一组校验数据对应的校验码。 初始校验码指的是在进行CRC计算之前的校验码初始值;上一组校验数据指的是将原始数据按照数据长度分为多组,每组校验数据均进行CRC计算,确定每组输出的校验码,当前组的输入校验码可以为上一组校验数据对应的校验码。
一种可能的实现方法中,确定第0计算分支输出的校验码,如下公式(2)所示。
CRC0=CRCIN^data_mask …… (2)
其中,CRC0为第0计算分支输出的校验码,CRCIN为输入校验码,data_mask指的是待校验数据,^为异或函数。
步骤403,确定第i计算分支输出的校验码。
一种可能的实现方法中,第i计算分支输出的校验码是根据第i-1计算分支输出的校验码和校验码多项式异或得到的,当然也可以为其他方式,本申请对此不做限定。具体地,将第i-1计算分支输出的校验码右移一位,并将最高位补齐,确定更新校验码;若第i-1计算分支输出的校验码的第0位的数值为1,则将更新校验码与校验码多项式异或后,确定第i计算分支输出的校验码;若第i-1计算分支输出的校验码的第0位的数值为0,则将更新校验码确定为第i计算分支输出的校验码。
一种可能的实现方法中,若校验码为32位,则确定第i计算分支输出的校验码,如下公式(3)所示。
CRCi={1’b0,CRCi-1[31:1]}^{ CRCi-1[0]?poly:32’h0}…… (3)
其中,CRCi表示i计算分支输出的校验码,CRCi-1表示i-1计算分支输出的校验码,{1’b0,CRCi-1[31:1]}为更新校验码,即将第i-1计算分支输出的校验码右移一位,并将最高位补齐,CRCi-1[31:1]取第i-1计算分支输出的校验码的1-31位,1’b0表示1比特的二进制0,也即将最高位补1比特的0;CRCi-1[0]表示第i-1计算分支输出的校验码的第0位的数值; CRCi-1[0]?poly:32’h0表示选择函数,若CRCi-1[0]的值为1,则选择poly,也即CRCi={1’b0,CRCi-1[31:1]}^poly,将更新校验码与校验码多项式异或;若CRCi-1[0]的值为0,则选择32’h0,也即CRCi={1’b0,CRCi-1[31:1]}^ 32’h0,将更新校验码与32’h0异或,32’h0表示32位全0数据。
一种可能的实现方法中,若校验码为32位,则i取值为1至32,也即共有32个计算分支输出的校验码。
上述方案,能够实现准确确定校验码。
步骤404,确定校验码。
一种可能的实现方法中,根据校验码算法指示信息中的数据长度,从各计算分支输出的校验码中确定待校验数据对应的校验码。
一种可能的实现方法中,校验码可以通过如下公式(4)得到:
CRC32_ALL = dsize==010? CRC32 [31:0]:
dsize==001? CRC16[31:0]:
dsize==000? CRC8[31:0]:
32’h0 ……(4)
其中,CRC32_ALL表示校验码,dsize表示数据长度,如果是010,则表示将第32计算分支输出的32位校验码作为校验码;如果是001,则表示将第16计算分支输出的32位校验码作为校验码;如果是000,则表示将第8计算分支输出的32位校验码作为校验码;如果不是010或001或000,则CRC32_ALL为32位全0数据,即32’h0。
一种可能的实现方法中,原始数据的校验码为多组校验数据中的最后一组校验数据对应的校验码。该方案,能够使最终的校验码包含原始数据的信息,提高了校验码的复杂度和可靠性。
一种可能的实现方法中,上述步骤401至步骤404的实现方法,通过硬件电路的方式实现,并将集成后的硬件计算电路集成于CPU中。
基于相同的技术构思,图5示例性地示出了本申请实施例提供的一种处理器。如图5所示,包括处理器和计算电路,计算电路集成于处理器中,计算电路包括计算单元和输出单元。其中,通过该处理器确定校验码的过程如图6所示,该过程包括以下步骤:
步骤601,CPU接收校验码计算指令。
一种可能的实现方法中,CPU获取的原始数据,校验码计算指令包括校验码算法指示信息,CPU根据校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据,并将每组校验数据发送给计算电路,计算电路依次对每组校验数据进行CRC计算,其中,待校验数据是多组校验数据中的任一组。
又一种可能的实现方法中,CPU获取的不是原始数据,而是一组校验数据。该组校验数据存储位置可通过校验码计算指令中的校验码存储指示信息获取。
一种可能的实现方法中,CPU接收校验码计算指令,读取校验码计算指令的校验码标识,确定该校验码标识为001000,则认为CPU将进行CRC计算,因此,从待校验数据指示信息中获取校验数据,从校验码存储指示信息获取输入校验码。如果校验码算法指示信息中的数据长度为8比特,则从待校验数据指示信息中获取8比特的数据作为校验数据;如果校验码算法指示信息中的数据长度为16比特,则从待校验数据指示信息中获取16比特的数据作为校验数据;如果校验码算法指示信息中的数据长度为32比特,则从待校验数据指示信息中获取32比特的数据作为校验数据。
一种可能的实现方法中,待校验数据指示信息指的是存储校验数据的寄存器地址。
步骤602,CPU确定校验码多项式。
一种可能的实现方法中,根据校验码算法指示信息中的检验码算法的类型确定校验码多项式。
步骤603,CPU将校验数据、输入校验码和多项式发送给计算电路。
步骤604,输入单元确定待校验数据。
一种可能的实现方法中,计算电路还包括掩码单元,掩码单元,用于针对任一组校验数据,若校验数据的数据长度小于计算分支的数量,则将校验数据的高位补0,得到校验数据对应的待校验数据,其中,待校验数据的数据长度等于计算分支的数量。示例性地,校验数据为8比特,将校验数据的其它24位补0,形成32位的待校验数据。
步骤605,计算单元确定第0计算分支输出的校验码。
步骤606,计算单元确定第i计算分支输出的校验码。
步骤607,输出单元确定校验码。
一种可能的实现方法中,输出单元根据校验码存储指示信息存储校验码,校验码存储指示信息指的是存储校验码的寄存器地址。
步骤608,CPU接收输出单元发送的校验码。
一种可能的实现方法中,CPU将原始数据划分为多组校验数据后,根据第一组校验数据确定校验码后,将第一组校验码作为输入校验码,重复上述步骤601至步骤608进行第二组校验码的确定,以此类推,直至多组校验数据均处理完成后,得到最终校验码。示例性地,原始数据为72比特,将原始数据按照32比特进行划分,确定三组校验数据,第一组校验数据为32比特,第二组校验数据为32比特,第三组数据为8比特,则第一组校验数据使用采用CRC32W算法进行计算,得到第一组32位的校验码;将第一校验码作为第二组数据的输入校验码,第二组校验数据使用采用CRC32W算法进行计算,得到第二组32位的校验码;将第二校验码作为第三组数据的输入校验码,第三组校验数据使用采用CRC32B算法进行计算,得到第三组32位的校验码,则第三组32位的校验码为最终校验码,该最终校验码用于对原始数据进行校验。该最终校验码加上原始数据,帧头,帧尾组成一个完整的数据帧。
基于相同的技术构思,图7示例性地示出了本申请实施例提供的一种处理器700。如图7所示,处理器700中集成有通过硬编码方式实现的计算电路701;计算电路701包括计算单元7011和输出单元7012;处理器700,用于获取校验码计算指令;校验码计算指令包括校验码算法指示信息;校验码计算指令属于处理器CPU指令集中的指令;根据校验码算法指示信息,确定校验码多项式;计算单元7011,用于通过计算电路中的各计算分支,得到每个计算分支输出的校验码;其中,通过对第i-1计算分支输出的校验码和校验码多项式进行计算得到第i计算分支输出的校验码;i为正整数;第0计算分支输出的校验码是根据输入校验码和待校验数据生成的;输出单元7012,用于根据校验码算法指示信息,从各计算分支输出的校验码中确定待校验数据对应的校验码。
一种可能的实现方法中,所述计算单元还包括掩码单元7013;所述处理器700,还用根据所述校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据;所述掩码单元7013,用于将每组校验数据的高位补0,得到所述校验数据对应的待校验数据,其中,待校验数据的数据长度等于所述计算分支的数量;所述输出单元7012,具体用于将与所述数据长度对应的计算分支输出的校验码中确定所述待校验数据对应的校验码。
一种可能的实现方法中,所述输入校验码为初始校验码或上一组待校验数据对应的校验码;所述原始数据的校验码为所述多组校验数据中的最后一组校验数据对应的校验码。
一种可能的实现方法中,所述掩码单元7013,用于针对任一组校验数据,若所述校验数据的数据长度小于计算分支的数量,则将所述校验数据的高位补0,得到所述校验数据对应的待校验数据,其中,待校验数据的数据长度等于所述计算分支的数量。
一种可能的实现方法中,所述计算单元7011,用于将第i-1计算分支输出的校验码右移一位,并将最高位补齐,确定更新校验码;若第i-1计算分支输出的校验码的第0位的数值为1,则将更新校验码与校验码多项式异或后,确定第i计算分支输出的校验码;若第i-1计算分支输出的校验码的第0位的数值为0,则将更新校验码确定为第i计算分支输出的校验码。
一种可能的实现方法中,所述校验码计算指令还包括校验码标识、待校验数据指示信息或校验码存储指示信息中的一种或多种;所述校验码标识用于指示CPU通过计算电路生成校验码;所述待校验数据指示信息用于指示每组校验数据的存储位置;所述校验码存储指示信息用于指示上一组校验数据对应的校验码的存储位置和/或待校验数据对应的校验码的存储位置。
一种可能的实现方法中,所述处理器700,用于从预先存储有不同数据长度及不同校验码算法对应的校验码多项式,获取与所述校验码算法指示信息对应的校验码多项式。
第三方面,本申请实施例提供一种电子设备,包括上述任意处理器。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种校验码生成方法,其特征在于,应用于通过硬编码方式实现的计算电路;所述方法包括:
获取校验码计算指令;所述校验码计算指令包括校验码算法指示信息;所述校验码计算指令属于处理器CPU指令集中的指令;
根据所述校验码算法指示信息,确定校验码多项式;
通过所述计算电路中的各计算分支,得到每个计算分支输出的校验码;其中,通过对第i-1计算分支输出的校验码和所述校验码多项式进行计算得到第i计算分支输出的校验码;i为正整数;第0计算分支输出的校验码是根据输入校验码和待校验数据生成的;
根据所述校验码算法指示信息,从所述各计算分支输出的校验码中确定所述待校验数据对应的校验码。
2.如权利要求1所述的方法,其特征在于,所述通过所述计算电路中的各计算分支,得到每个计算分支输出的校验码之前,还包括:
根据所述校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据,并确定所述多组校验数据中的每组校验数据对应的待校验数据;
所述根据所述校验码算法指示信息,从所述各计算分支输出的校验码中确定所述待校验数据对应的校验码,包括:
将与所述数据长度对应的计算分支输出的校验码中确定所述待校验数据对应的校验码。
3.如权利要求2所述的方法,其特征在于,所述输入校验码为初始校验码或上一组待校验数据对应的校验码;
所述原始数据的校验码为所述多组校验数据中的最后一组校验数据对应的校验码。
4.如权利要求2所述的方法,其特征在于,所述确定所述多组校验数据中的每组校验数据对应的待校验数据,包括:
针对任一组校验数据,若所述校验数据的数据长度小于计算分支的数量,则将所述校验数据的高位补0,得到所述校验数据对应的待校验数据,其中,待校验数据的数据长度等于所述计算分支的数量。
5.如权利要求1至4任一项所述的方法,其特征在于,所述通过对第i-1计算分支输出的校验码和所述校验码多项式进行计算得到第i计算分支输出的校验码,包括:
将所述第i-1计算分支输出的校验码右移一位,并将最高位补齐,确定更新校验码;
若所述第i-1计算分支输出的校验码的第0位的数值为1,则将所述更新校验码与所述校验码多项式异或后,确定所述第i计算分支输出的校验码;若所述第i-1计算分支输出的校验码的第0位的数值为0,则将所述更新校验码确定为所述第i计算分支输出的校验码。
6.如权利要求1至4任一项所述的方法,其特征在于,所述校验码计算指令还包括校验码标识、待校验数据指示信息或校验码存储指示信息中的一种或多种;所述校验码标识用于指示CPU通过计算电路生成校验码;所述待校验数据指示信息用于指示每组校验数据的存储位置;所述校验码存储指示信息用于指示上一组校验数据对应的校验码的存储位置和/或待校验数据对应的校验码的存储位置。
7.如权利要求1至4任一项所述的方法,其特征在于,根据所述校验码算法指示信息,确定校验码多项式,包括:
从预先存储有不同数据长度及不同校验码算法对应的校验码多项式,获取与所述校验码算法指示信息对应的校验码多项式。
8.一种处理器,其特征在于,所述处理器中集成有通过硬编码方式实现的计算电路;所述计算电路包括计算单元和输出单元;
所述处理器,用于获取校验码计算指令;所述校验码计算指令包括校验码算法指示信息;所述校验码计算指令属于处理器CPU指令集中的指令;根据所述校验码算法指示信息,确定校验码多项式;
所述计算单元,用于通过所述计算电路中的各计算分支,得到每个计算分支输出的校验码;其中,通过对第i-1计算分支输出的校验码和所述校验码多项式进行计算得到第i计算分支输出的校验码;i为正整数;第0计算分支输出的校验码是根据输入校验码和待校验数据生成的;
所述输出单元,用于根据所述校验码算法指示信息,从所述各计算分支输出的校验码中确定所述待校验数据对应的校验码。
9.如权利要求8所述的处理器,其特征在于,所述计算单元还包括掩码单元;
所述处理器,还用根据所述校验码算法指示信息中的数据长度,将原始数据划分为多组校验数据;
所述掩码单元,用于将每组校验数据的高位补0,得到所述校验数据对应的待校验数据,其中,待校验数据的数据长度等于所述计算分支的数量;
所述输出单元,具体用于将与所述数据长度对应的计算分支输出的校验码中确定所述待校验数据对应的校验码。
10.一种电子设备,其特征在于,包括如权利要求8或9所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311108686.1A CN116861493B (zh) | 2023-08-31 | 2023-08-31 | 一种校验码生成方法、处理器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311108686.1A CN116861493B (zh) | 2023-08-31 | 2023-08-31 | 一种校验码生成方法、处理器及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116861493A true CN116861493A (zh) | 2023-10-10 |
CN116861493B CN116861493B (zh) | 2024-03-29 |
Family
ID=88228954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311108686.1A Active CN116861493B (zh) | 2023-08-31 | 2023-08-31 | 一种校验码生成方法、处理器及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116861493B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827527A (zh) * | 2023-12-11 | 2024-04-05 | 天翼云科技有限公司 | 一种用于分布式存储系统中的数据完整性校验方法及系统 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005086272A (ja) * | 2003-09-04 | 2005-03-31 | Matsushita Electric Ind Co Ltd | Crc符号演算回路及びfcs生成回路並びにmac回路 |
CN101527615A (zh) * | 2009-04-07 | 2009-09-09 | 华为技术有限公司 | 一种循环冗余校验crc码的实现方法和装置 |
CN102708022A (zh) * | 2005-12-23 | 2012-10-03 | 英特尔公司 | 响应于用户级指令进行循环冗余校验和运算 |
CN107154836A (zh) * | 2017-06-28 | 2017-09-12 | 西安空间无线电技术研究所 | 一种基于fpga的并行循环冗余crc校验方法 |
CN107239362A (zh) * | 2017-02-20 | 2017-10-10 | 中国科学院微电子研究所 | 一种并行crc校验码的计算方法及系统 |
US20180131388A1 (en) * | 2015-05-20 | 2018-05-10 | Akribis Systems Pte Ltd | Method of arrangement of an algorithm in cyclic redundancy check |
CN109947368A (zh) * | 2019-03-21 | 2019-06-28 | 记忆科技(深圳)有限公司 | 数据可靠性检测方法、装置、计算机设备及存储介质 |
CN111247516A (zh) * | 2019-03-11 | 2020-06-05 | 深圳市大疆创新科技有限公司 | 一种电路结构、系统级芯片SoC、处理数据的方法 |
CN112214349A (zh) * | 2020-12-09 | 2021-01-12 | 上海灵动微电子股份有限公司 | 一种数据循环冗余校验装置和方法 |
CN112306741A (zh) * | 2020-11-19 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种crc校验方法及相关装置 |
CN113110954A (zh) * | 2021-04-23 | 2021-07-13 | 合肥恒烁半导体有限公司 | 一种crc码并行计算方法、装置及其应用 |
CN113972990A (zh) * | 2020-07-06 | 2022-01-25 | 宇龙计算机通信科技(深圳)有限公司 | 数据校验方法、装置、存储介质及电子设备 |
CN114124107A (zh) * | 2021-11-03 | 2022-03-01 | 天津兆讯电子技术有限公司 | 一种循环冗余校验的计算方法和装置 |
CN116048868A (zh) * | 2021-12-23 | 2023-05-02 | 海光信息技术股份有限公司 | 代码生成方法、装置、设备和存储介质 |
CN116107800A (zh) * | 2023-04-12 | 2023-05-12 | 浙江恒业电子股份有限公司 | 一种校验码生成方法、数据恢复方法、介质、电子设备 |
-
2023
- 2023-08-31 CN CN202311108686.1A patent/CN116861493B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005086272A (ja) * | 2003-09-04 | 2005-03-31 | Matsushita Electric Ind Co Ltd | Crc符号演算回路及びfcs生成回路並びにmac回路 |
CN102708022A (zh) * | 2005-12-23 | 2012-10-03 | 英特尔公司 | 响应于用户级指令进行循环冗余校验和运算 |
CN101527615A (zh) * | 2009-04-07 | 2009-09-09 | 华为技术有限公司 | 一种循环冗余校验crc码的实现方法和装置 |
US20180131388A1 (en) * | 2015-05-20 | 2018-05-10 | Akribis Systems Pte Ltd | Method of arrangement of an algorithm in cyclic redundancy check |
CN107239362A (zh) * | 2017-02-20 | 2017-10-10 | 中国科学院微电子研究所 | 一种并行crc校验码的计算方法及系统 |
CN107154836A (zh) * | 2017-06-28 | 2017-09-12 | 西安空间无线电技术研究所 | 一种基于fpga的并行循环冗余crc校验方法 |
CN111247516A (zh) * | 2019-03-11 | 2020-06-05 | 深圳市大疆创新科技有限公司 | 一种电路结构、系统级芯片SoC、处理数据的方法 |
CN109947368A (zh) * | 2019-03-21 | 2019-06-28 | 记忆科技(深圳)有限公司 | 数据可靠性检测方法、装置、计算机设备及存储介质 |
CN113972990A (zh) * | 2020-07-06 | 2022-01-25 | 宇龙计算机通信科技(深圳)有限公司 | 数据校验方法、装置、存储介质及电子设备 |
CN112306741A (zh) * | 2020-11-19 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种crc校验方法及相关装置 |
CN112214349A (zh) * | 2020-12-09 | 2021-01-12 | 上海灵动微电子股份有限公司 | 一种数据循环冗余校验装置和方法 |
CN113110954A (zh) * | 2021-04-23 | 2021-07-13 | 合肥恒烁半导体有限公司 | 一种crc码并行计算方法、装置及其应用 |
CN114124107A (zh) * | 2021-11-03 | 2022-03-01 | 天津兆讯电子技术有限公司 | 一种循环冗余校验的计算方法和装置 |
CN116048868A (zh) * | 2021-12-23 | 2023-05-02 | 海光信息技术股份有限公司 | 代码生成方法、装置、设备和存储介质 |
CN116107800A (zh) * | 2023-04-12 | 2023-05-12 | 浙江恒业电子股份有限公司 | 一种校验码生成方法、数据恢复方法、介质、电子设备 |
Non-Patent Citations (4)
Title |
---|
朱正鹏;朱旭锋;李宾;刘益华;王超;: "一种位宽可变的CRC校验算法及硬件实现", 航天控制, no. 02 * |
杨卫平: "CRC计算实现方法", 《电子技术与软件工程》 * |
第五柯鹏;: "多功能车辆总线控制器中CRC编码器的设计", 黑龙江科技信息, no. 29 * |
陈容等: "基于公式递推法的可变计算位宽的循环冗余校验设计与实现", 《电子与信息学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827527A (zh) * | 2023-12-11 | 2024-04-05 | 天翼云科技有限公司 | 一种用于分布式存储系统中的数据完整性校验方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116861493B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102096609A (zh) | 可编程循环冗余校验(crc)计算的指令集架构 | |
CA2466080C (en) | Obtaining cyclic redundancy code | |
WO2018205633A1 (zh) | 循环冗余校验电路及其方法、装置以及芯片、电子设备 | |
CN112306741B (zh) | 一种crc校验方法及相关装置 | |
CN101814922A (zh) | 基于bch码的多位错纠错方法和装置以及存储系统 | |
CN116861493B (zh) | 一种校验码生成方法、处理器及电子设备 | |
CN112702065B (zh) | Fpga码流数据校验方法及装置 | |
CN113110954A (zh) | 一种crc码并行计算方法、装置及其应用 | |
CN108809506A (zh) | 一种编码方法及装置 | |
CN113300716A (zh) | 循环冗余校验码的生成方法、设备以及计算机可读介质 | |
US7168024B2 (en) | Data processing system and method | |
CN111953354A (zh) | 校验算法的测试方法、芯片、存储介质和家用电器 | |
CN101296053A (zh) | 计算循环冗余校验码之方法及系统 | |
CN101207467B (zh) | 循环冗余校验码的生成和数据序列发送、校验方法及装置 | |
US7266760B1 (en) | Method and apparatus for calculating cyclic redundancy checks for variable length packets | |
CN111247516A (zh) | 一种电路结构、系统级芯片SoC、处理数据的方法 | |
CN116566399B (zh) | 基于向量多项式乘和指令的crc32c数据检错方法、系统、终端及介质 | |
US20080104492A1 (en) | Data Processing | |
CN114513285B (zh) | 传输数据检测与校正的方法、装置、设备及可读存储介质 | |
CN112671511B (zh) | 基于部分重传的并行crc校验方法及系统 | |
JP2810397B2 (ja) | 誤り訂正装置 | |
CN114443348B (zh) | 一种可配置crc码的计算系统 | |
CN108574490A (zh) | 计算循环冗余校验crc编码的方法及装置 | |
CN116048868A (zh) | 代码生成方法、装置、设备和存储介质 | |
CN111431541B (zh) | 一种获得crc码的方法及装置 |
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 |