CN115412204B - 一种循环冗余校验的实现方法、装置和存储介质 - Google Patents
一种循环冗余校验的实现方法、装置和存储介质 Download PDFInfo
- Publication number
- CN115412204B CN115412204B CN202211054324.4A CN202211054324A CN115412204B CN 115412204 B CN115412204 B CN 115412204B CN 202211054324 A CN202211054324 A CN 202211054324A CN 115412204 B CN115412204 B CN 115412204B
- Authority
- CN
- China
- Prior art keywords
- input data
- bit width
- crc
- data
- maximum bit
- 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.)
- Active
Links
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/0041—Arrangements at the transmitter end
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
本申请实施例公开了一种循环冗余校验的实现方法、装置和存储介质。本申请可以在获取多个输入数据以及每一输入数据的数据位宽时,确定所述多个输入数据中的最大位宽,然后通过对位宽小于最大位宽的输入数据进行预处理,得到位宽与所述最大位宽相同的处理后的输入数据,进而依据输入数据确定对应的第二CRC系数,将所述处理后的输入数据和第二CRC系数输入所述CRC运算单元中获得对应的计算结果,使得位宽小于最大位宽的输入数据可以和位宽等于最大位宽的输入数据一样,利用同样的CRC运算单元计算,而不需要针对不同位宽的输入数据实例化不同的CRC运算单元,极大的节省了芯片资源。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种循环冗余校验的实现方法、装置和存储介质。
背景技术
循环冗余校验(Cyclic Redundancy Check,CRC)是通信***中常用的差错控制方式,其目的是为了保证数据传输的正确性。CRC校验是发送端在发送数据时,会将待发送的数据输入至CRC运算单元以生成CRC码(即监督码),然后将CRC码附加在待发送的数据后面并发送,以使接收端接收到包含CRC码的数据时,可以根据CRC码校验数据在传输过程中是否发生错误。
其中,CRC运算单元在针对输入数据做CRC运算以生成CRC码时,不同位宽的输入数据做CRC运算的运算逻辑是不同的。因此,为了针对不同位宽的输入数据做CRC运算,需要将不同位宽的输入数据对应的CRC运算的子程序分别实例化,实例化的过程中需要的运算逻辑比较多,且占用了较多的芯片面积,造成了资源的浪费。例如,一个芯片上需要执行32bit、64bit、96bit、128bit、160bit、192bit、224bit、256bit这8个不同位宽的输入数据的CRC运算时,需要在芯片上产生8个不同的运算单元,十分耗费芯片资源。
发明内容
本申请公开了一种循环冗余校验的实现方法、装置和存储介质,针对不同位宽的输入数据,可以采用通用的一套运算逻辑进行CRC运算,简化了针对不同位宽的输入数据进行CRC运算的运算逻辑,节省了芯片资源。
根据本申请实施例的第一方面,提供一种循环冗余校验的实现方法,其特征在于,所述方法包括:
获取多个输入数据以及每一输入数据的数据位宽,确定所述多个输入数据中的最大位宽;
针对每一输入数据,在所述输入数据的位宽等于所述最大位宽的情况下,根据所述最大位宽确定所述最大位宽的输入数据对应的第一CRC系数,将所述最大位宽的输入数据和所述第一CRC系数输入至CRC运算单元,得到所述最大位宽的输入数据对应的计算结果;
在所述输入数据的位宽小于所述最大位宽的情况下,将数据位宽小于所述最大位宽的输入数据进行预处理得到处理后的输入数据,所述处理后的输入数据的数据位宽等于所述最大数据位宽,并确定所述输入数据对应的第二CRC系数,将所述处理后的输入数据和所述第二CRC系数输入所述CRC运算单元中获得对应的计算结果。
可选地,所述在所述输入数据的位宽小于所述最大位宽的情况下,将数据位宽小于所述最大位宽的输入数据进行预处理得到处理后的输入数据包括:
对所述数据位宽小于所述最大位宽的输入数据进行高位补0处理,使得处理后的输入数据的数据位宽等于所述最大位宽。
可选地,所述确定所述输入数据对应的第二CRC系数具体包括:
根据所述输入数据的有效位宽选择所述输入数据对应的第二CRC系数,其中所述第二CRC系数的数据位宽与所述输入数据的有效位宽相等。
可选地,所述方法还包括:
获取多个CRC标准下的CRC系数;
其中,所述确定所述输入数据对应的第二CRC系数具体包括:
根据确定的CRC标准,在所述确定的CRC标准对应的CRC系数中根据所述输入数据的有效位宽选择第二CRC系数。
可选地,所述方法还包括:
对于每一输入数据,在得到所述输入数据对应的所述计算结果后,采用所述输入数据对应计算结果更新所述输入数据。
根据本申请实施例的第二方面,提供一种循环冗余校验的实现装置,所述装置包括:
最大位宽确定单元,用于获取多个输入数据以及每一输入数据的数据位宽,确定所述多个输入数据中的最大位宽;
CRC系数确定单元,用于在所述输入数据的位宽等于所述最大位宽的情况下,根据所述最大位宽确定所述最大位宽的输入数据对应的第一CRC系数;
输入数据处理单元,用于在所述输入数据的位宽小于所述最大位宽的情况下,将数据位宽小于所述最大位宽的输入数据进行预处理得到处理后的输入数据,所述处理后的输入数据的数据位宽等于所述最大数据位宽;
所述CRC系数确定单元,还用于确定所述处理后的输入数据对应的第二CRC系数;
CRC运算单元,用于对最大位宽的输入数据和对应的第一CRC系数进行CRC运算获得对应的计算结果,还用于对所述处理后的输入数据和对应的第二CRC系数进行CRC计算获得对应的计算结果。
可选地,所述输入数据处理单元具体用于:
对所述数据位宽小于所述最大位宽的输入数据进行高位补0处理,使得处理后的输入数据的数据位宽等于所述最大位宽。
可选地,所述CRC系数确定单元具体用于:
根据所述输入数据的有效位宽选择所述输入数据对应的第二CRC系数,其中所述第二CRC系数的数据位宽与所述输入数据的有效位宽相等。
可选地,所述装置还包括:
更新单元,用于对于每一输入数据,在得到所述输入数据对应的所述计算结果后,采用所述输入数据对应计算结果更新所述输入数据。
根据本申请实施例的第三方面,提供一种电子设备,所述电子设备包括:存储器和处理器;
其中,所述存储器,用于存储机器可执行指令;
所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上所述的方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
由以上技术方案可知,本申请提供的方案可以在获取多个输入数据以及每一输入数据的数据位宽时,确定所述多个输入数据中的最大位宽,然后通过对位宽小于最大位宽的输入数据进行预处理,得到位宽与所述最大位宽相同的处理后的输入数据,进而依据输入数据确定对应的第二CRC系数,将所述处理后的输入数据和第二CRC系数输入所述CRC运算单元中获得对应的计算结果,使得位宽小于最大位宽的输入数据可以和位宽等于最大位宽的输入数据一样,利用同样的CRC运算单元计算,而不需要针对不同位宽的输入数据实例化不同的CRC运算单元,极大的节省了芯片资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1为本申请实施例提供的一种循环冗余校验的实现方法的流程图;
图2为本申请实施例提供的一种循环冗余校验的实现方法的应用示意图;
图3为本申请实施例提供的一种循环冗余校验的实现装置的示意框图;
图4为本申请实施例提供的另一种循环冗余校验的实现装置的示意框图;
图5为本申请实施例提供的一种电子设备的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例提供的方法实施例进行描述。
请参见图1,图1提供了一种循环冗余校验的实现方法的方法流程图。作为一个实施例,该方法可以用于如PC、服务器等的电子设备。
如图1所示,该方法包括以下步骤:
步骤101,获取多个输入数据以及每一输入数据的数据位宽,确定所述多个输入数据中的最大位宽。
作为一个实施例,为了保证数据传输的正确性,电子设备在发送数据时,会先将待发送的数据输入至用于CRC运算的芯片中,以计算该数据对应的CRC码。因此,可选地,本实施例可以在监测到数据输入用于CRC运算的芯片时,将获取多个输入数据,并确定监测到输入数据需要执行CRC计算。
在本实施例中,获取多个输入数据,即监测到输入数据需要执行CRC计算时,可以进一步获取每一输入数据的数据位宽。获取每一输入数据的数据位宽具体可以通过以下步骤:统计各输入数据在传输时的峰值带宽和对应的传输频率,然后根据峰值带宽和对应的传输频率,确定各输入数据对应的位宽。在确定各输入数据对应的位宽之后,可以对已得到的各输入数据对应的位宽进行排序,确定其中的最大位宽。
作为一个实施例,可以在用于CRC运算的芯片中预先存储多个不同位宽对应的CRC计算的运算逻辑,比如,存储32bit、64bit、96bit、128bit、160bit、192bit、224bit、256bit这8个不同位宽对应的CRC计算的运算逻辑。
在上述实施例中确定了最大位宽之后,本实施例将查找最大位宽对应的CRC计算的运算逻辑,然后在用于CRC运算的芯片中将最大位宽对应的CRC计算的运算逻辑实例化,得到最大位宽对应的CRC运算单元。比如在确定了最大位宽为256bit之后,本实施例会在用于CRC运算的芯片中实例化256bit对应的CRC运算单元。
作为一个实施例,在确定多个输入数据中的最大位宽,以及将最大位宽对应的CRC计算的运算逻辑实例化得到CRC运算单元之后,计算输入数据的CRC码将分为两种情况,针对位宽等于上述最大位宽的输入数据,将通过如步骤102所示的方法计算该输入数据的CRC码,针对位宽小于上述最大位宽的输入数据,将通过如步骤103和104所示的方法计算该输入数据的CRC码。下面分别对以上两种计算输入数据的CRC码的情况进行详述。
步骤102,在所述输入数据的位宽等于所述最大位宽的情况下,根据所述最大位宽确定所述最大位宽的输入数据对应的第一CRC系数,将所述最大位宽的输入数据和第一CRC系数输入至CRC运算单元,得到所述最大位宽的输入数据对应的计算结果。
可选地,在本实施例执行之前,可以按照预先选择的CRC标准,设置不同位宽的数据进行CRC运算时使用的CRC系数。CRC标准为相关技术中规定的,包括CRC标准1、CRC标准2、CRC标准3等。
基于上述预设的多个CRC标准下的CRC系数,作为一个实施例,如果确定计算输入数据时采用的CRC系数存在多个标准下的CRC系数,确定输入数据对应的第一CRC系数,可以通过以下步骤:先获取多个CRC标准下的CRC系数,进而可以根据预先设置的CRC选择规则确定的CRC标准,在所述确定的CRC标准对应的CRC系数中根据所述输入数据的位宽选择第一CRC系数。
比如若本实施例中计算出的CRC码是采用CRC-32算法计算出的,最终计算出的CRC码位宽为32bit,本实施例可以针对位宽如32bit、64bit、96bit、128bit、160bit、192bit、224bit、256bit的输入数据,设置32bit对应的CRC系数为CRC32_D32,设置64bit对应的CRC系数为CRC32_D64,设置96bit对应的CRC系数为CRC32_D96,设置128bit对应的CRC系数为CRC32_D128,设置160bit对应的CRC系数为CRC32_D160,设置192bit对应的CRC系数为CRC32_D192,设置224bit对应的CRC系数为CRC32_D224,设置256bit对应的CRC系数为CRC32_D256。其中,不同位宽的输入数据对应的CRC系数可以为多个,比如上述CRC32_D32包括:CRC标准1对应的CRC32_D32_1、CRC标准2对应的CRC32_D32_2、CRC标准3对应的CRC32_D32_3。
作为一个实施例,上述CRC运算单元可以是通过对步骤101确定的最大位宽对应的CRC计算的运算逻辑实例化得到的,则针对位宽等于上述最大位宽的输入数据,可以直接查找最大位宽对应的CRC系数,然后将该输入数据和最大位宽对应的CRC系数输入到上述CRC运算单元,以由CRC运算单元计算出该输入数据对应的CRC码。
步骤103,在所述输入数据的位宽小于所述最大位宽的情况下,将数据位宽小于所述最大位宽的输入数据进行预处理得到处理后的输入数据,所述处理后的输入数据的数据位宽等于所述最大数据位宽,并确定所述输入数据对应的第二CRC系数,将所述处理后的输入数据和对应的第二CRC系数输入所述CRC运算单元中获得对应的计算结果。
在本实施例中,对该输入数据进行预处理得到处理后的输入数据具体可以通过以下步骤:对数据位宽小于上述最大位宽的输入数据进行高位补0处理,使得处理后的输入数据的数据位宽等于最大位宽。本实施例中得到的处理后的输入数据中补0的高位对应的位宽为无效位宽,该处理后的输入数据中与该输入数据相同的数据对应的位宽为有效位宽。
比如输入数据为11111101,最大位宽为16bit,则将在该输入数据的最高位之前的高数位进行补0,直至补0后的输入数据的位宽为16bit,最终得到的处理后的输入数据为00000000 11111101,其中前8位补0得到的位宽为无效位宽,后8位与该输入数据相同的数据的位宽为有效位宽。
基于CRC运算实际上是两个二进制数据进行异或运算,而0与0或者1做异或处理,仍旧是数据本身,所以对输入数据的高数位补零,不会影响对输入数据进行CRC计算的结果,因此本实施例中对输入数据进行预处理,使得处理后的输入数据适用最大位宽对应的CRC运算单元进行CRC计算。
可选的,基于处理后的输入数据的有效位宽与该输入数据的位宽相同,所以在进行CRC计算时,有效位宽对应的CRC系数与该输入数据对应的CRC系数是相同的,而采用同样的CRC系数对处理后的输入数据进行CRC计算得到的计算结果,与对该输入数据进行CRC计算得到的计算结果也是相同的。因此,本步骤103确定所述输入数据对应的第二CRC系数具体可以通过以下步骤:根据所述输入数据的有效位宽选择所述输入数据对应的第二CRC系数,其中所述第二CRC系数对应数据位宽与所述输入数据的有效位宽相等。可选地,根据输入数据的有效位宽选择所述输入数据对应的第二CRC系数,可以参照上述步骤102中确定输入数据对应的CRC系数的方法,这里不再赘述。
进一步的,在本实施例中,将处理后的输入数据和对应的CRC系数输入至CRC运算单元,最后可以得到的该输入数据对应的CRC码。在计算该位宽小于最大位宽的输入数据的CRC系数时,也不需要将该输入数据的位宽对应的CRC计算的运算逻辑进行实例化,节省了芯片资源。
通过图1所示的方法实施例可以看出,本申请实施例可以在获取多个输入数据以及每一输入数据的数据位宽时,确定所述多个输入数据中的最大位宽,然后通过对位宽小于最大位宽的输入数据进行预处理,得到位宽与所述最大位宽相同的处理后的输入数据,进而依据输入数据确定对应的第二CRC系数,将所述处理后的输入数据和第二CRC系数输入所述CRC运算单元中获得对应的计算结果,使得位宽小于最大位宽的输入数据可以和位宽等于最大位宽的输入数据一样,利用同样的CRC运算单元计算,而不需要针对不同位宽的输入数据实例化不同的CRC运算单元,极大的节省了芯片资源。
可选地,对于每一输入数据,在得到所述输入数据对应的所述计算结果后,可以进一步采用所述输入数据对应计算结果更新所述输入数据。在本实施例中,输入数据对应计算结果可以为CRC码,本实施例中采用所述输入数据对应计算结果更新所述输入数据是指,CRC码会根据输入数据的位宽,形成新的CRC码参与输入数据运算。
作为一个实施例,需要说明的是,在本实施例中,为了预先设置不同数据位宽的输入数据对应的CRC系数,需要设置多个CRC寄存器,CRC寄存器中存储的数据即CRC系数,不同CRC寄存器存储的CRC系数不同,将输入数据对应的CRC系数输入至CRC运算单元,是通过切换CRC运算单元所连通的CRC寄存器实现的,因此,为了将输入数据对应的CRC系数输入至CRC运算单元,在确定了输入数据对应的CRC系数之后,还要进一步更新待输入至所述CRC运算单元的CRC系数为输入数据对应的CRC系数。
下面结合图2对上述图1所示的实施例进行描述。作为一个实施例,在具体实现时,可以通过在电子设备中安装承载了用于实现本实施例的程序的芯片,实现上述图1所示的实施例。如图2所示,在对输入数据进行CRC计算时,该芯片至少包括:CRC寄存器、CRC系数计算单元、输入数据预处理单元和CRC运算单元。
作为一个实施例,CRC寄存器可以选用CRC_8寄存器、CRC_16寄存器、CRC_32寄存器等CRC寄存器中的任一种,且本实施例中可以设置多个CRC寄存器。在针对输入数据进行CRC运算时,可以先将CRC_32寄存器初始化,设置CRC_32寄存器中的初始值为32’hFFFF_FFFF。
在具体实现时,当存在多个输入数据输入至进行CRC计算的芯片时,可以根据输入数据中的最大位宽,将最大位宽对应的CRC计算的运算逻辑实例化得到如图2所示的CRC运算单元。比如输入数据的位宽包括32bit、64bit、96bit、128bit……512bit,则可以将最大位宽确定为512bit,然后将512bit对应的CRC计算的运算逻辑实例化。
作为一个实施例,针对每一输入数据依次输入至输入数据预处理单元,如果该输入数据的位宽等于最大位宽,则输入数据预处理单元不对该输入数据进行处理,直接通知CRC系数计算单元根据预设的位宽与CRC系数之间的对应关系,将最大位宽对应的CRC系数确定为该输入数据对应的第一CRC系数。可选地,在具体实现时,CRC系数计算单元,可以通过函数data_word_vld[7:0]将CRC系数计算单元实例化为一个多路选择器,使得CRC系数计算单元可以根据位宽确定该输入数据的位宽对应的第一CRC系数。同时,数据预处理单元可以直接将该输入数据输入至CRC运算单元。
进而,在确定最大位宽的输入数据对应的第一CRC系数之后,可以根据最大位宽的输入数据对应的第一CRC系数更新CRC运算单元连通的CRC寄存器,通过保存最大位宽的输入数据对应的CRC系数的CRC寄存器输出第一CRC系数至CRC运算单元,CRC运算单元在接收到输入数据和第一CRC系数之后,可以计算出最大位宽的输入数据对应的CRC码。
作为另一个实施例,针对每一输入数据依次输入至输入数据预处理单元,如果该输入数据的位宽小于最大位宽,则输入数据预处理单元需要对该输入数据进行处理。基于CRC运算单元是最大位宽对应的CRC计算的运算逻辑实例化得到,利用该CRC运算单元对位宽小于最大位宽的输入数据进行处理,必须先扩展该输入数据的位宽。
可选地,本实施例中输入数据预处理单元可以对位宽小于最大位宽的输入数据的最高数位之前的高数位补0,使得处理后的输入数据的数据位宽等于上述最大位宽。
在对该位宽小于最大位宽的输入数据进行预处理时,输入数据预处理单元可以通知CRC系数计算单元从预设的位宽与CRC系数之间的对应关系,将处理后的输入数据的有效位宽(即该输入数据的位宽)对应的CRC系数确定为该输入数据对应的第二CRC系数。
本实施例中,由于处理后的输入数据的有效位宽和处理前的输入数据的位宽是相同的,因此,在具体实现时,确定了输入数据的位宽之后,对输入数据进行预处理和确定输入数据对应的第二CRC系数的执行顺序可以采用多种顺序,本申请对此并不限定。
可选地,在具体实现时,CRC系数计算单元可以通过函数data_word_vld[7:0]将CRC系数计算单元实例化为一个多路选择器,使得CRC系数计算单元可以根据位宽确定该位宽小于最大位宽的输入数据的位宽对应的第二CRC系数。进而,在确定处理后的输入数据的位宽对应的第二CRC系数之后,可以采用该输入数据对应的第二CRC系数更新CRC运算单元连通的CRC寄存器,通过保存该输入数据对应的第二CRC系数的CRC寄存器输出第二CRC系数至CRC运算单元,CRC运算单元在接收到处理后的输入数据和第二CRC系数之后,可以计算出处理后的输入数据(相当于该位宽小于最大位宽的输入数据)对应的CRC码。
通过本实施例,可以有效的简化CRC运算逻辑,减少芯片进行CRC运算时需要实例化的运算逻辑,减少芯片面积和功耗。
在本实施例中,可以在CRC系数计算单元中预先设置多个标准下的位宽与CRC系数的对应关系,即根据一个数据的位宽可能会确定出多个CRC系数,则在将CRC系数输入至CRC运算单元之前,可以先获取多个CRC标准下的CRC系数,进而可以根据预先设置的CRC选择规则确定的CRC标准,在所述确定的CRC标准对应的CRC系数中根据所述输入数据的有效位宽选择CRC系数。
以上对本申请实施例提供的方法进行了描述。下面对本申请实施例提供的装置进行描述:
参见图3,图3为本申请实施例提供的循环冗余校验的实现装置。作为一个实施例,该装置可以用于如PC、服务器等的电子设备。该装置包括:
最大位宽确定单元301,用于获取多个输入数据以及每一输入数据的数据位宽,确定所述多个输入数据中的最大位宽;
CRC系数确定单元302,用于在所述输入数据的位宽等于所述最大位宽的情况下,根据所述最大位宽确定所述最大位宽的输入数据对应的第一CRC系数;
输入数据处理单元303,用于在所述输入数据的位宽小于所述最大位宽的情况下,将数据位宽小于所述最大位宽的输入数据进行预处理得到处理后的输入数据,所述处理后的输入数据的数据位宽等于所述最大数据位宽;
所述CRC系数确定单元302,还用于确定所述处理后的输入数据对应的第二CRC系数;
CRC运算单元304,用于对最大位宽的输入数据和对应的第一CRC系数进行CRC运算获得对应的计算结果,还用于对所述处理后的输入数据和对应的第二CRC系数进行CRC计算获得对应的计算结果。
可选地,所述输入数据处理单元303具体用于:
对所述数据位宽小于所述最大位宽的输入数据进行高位补0处理,使得处理后的输入数据的数据位宽等于所述最大位宽。
可选地,所述CRC系数确定单元302具体用于:
根据所述输入数据的有效位宽选择所述输入数据对应的第二CRC系数,其中所述第二CRC系数的数据位宽与所述输入数据的有效位宽相等。
可选地,
获取多个CRC标准下的CRC系数;
其中,所述CRC系数确定单元302确定所述输入数据对应的第二CRC系数具体包括:
根据确定的CRC标准,在所述确定的CRC标准对应的CRC系数中根据所述输入数据的有效位宽选择第二CRC系数。
可选地,如图4所示,所述装置还包括:
更新单元305,用于对于每一输入数据,在得到所述输入数据对应的所述计算结果后,采用所述输入数据对应计算结果更新所述输入数据。
对应地,本申请实施例还提供了一种电子设备的硬件结构图,具体如图5所示,该电子设备可以为上述实施循环冗余校验的实现方法的设备。如图5所示,该硬件结构包括:处理器和存储器。
其中,所述存储器,用于存储机器可执行指令;
所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上所示的所对应的循环冗余校验的实现方法的方法实施例。
作为一个实施例,存储器可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,存储器可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (6)
1.一种循环冗余校验码的实现方法,其特征在于,所述方法包括:
获取多个输入数据以及每一输入数据的数据位宽,确定所述多个输入数据中的最大位宽;
针对每一输入数据,在所述输入数据的位宽等于所述最大位宽的情况下,根据所述最大位宽确定所述最大位宽的输入数据对应的第一CRC系数,将所述最大位宽的输入数据和所述第一CRC系数输入至CRC运算单元,得到所述最大位宽的输入数据对应的计算结果;
在所述输入数据的位宽小于所述最大位宽的情况下,将数据位宽小于所述最大位宽的输入数据进行预处理得到处理后的输入数据,所述处理后的输入数据的数据位宽等于所述最大数据位宽,并确定所述输入数据对应的第二CRC系数,将所述处理后的输入数据和所述第二CRC系数输入所述CRC运算单元中获得对应的计算结果;
所述在所述输入数据的位宽小于所述最大位宽的情况下,将数据位宽小于所述最大位宽的输入数据进行预处理得到处理后的输入数据包括:
对所述数据位宽小于所述最大位宽的输入数据进行高位补0处理,使得处理后的输入数据的数据位宽等于所述最大位宽;
所述确定所述输入数据对应的第二CRC系数具体包括:
根据所述输入数据的有效位宽选择所述输入数据对应的第二CRC系数,其中所述第二CRC系数的数据位宽与所述输入数据的有效位宽相等。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取多个CRC标准下的CRC系数;
其中,所述确定所述输入数据对应的第二CRC系数具体包括:
根据确定的CRC标准,在所述确定的CRC标准对应的CRC系数中根据所述输入数据的有效位宽选择第二CRC系数。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
对于每一输入数据,在得到所述输入数据对应的所述计算结果后,采用所述输入数据对应的计算结果更新所述输入数据。
4.一种循环冗余校验码的处理装置,其特征在于,所述装置包括:
最大位宽确定单元,用于获取多个输入数据以及每一输入数据的数据位宽,确定所述多个输入数据中的最大位宽;
CRC系数确定单元,用于在所述输入数据的位宽等于所述最大位宽的情况下,根据所述最大位宽确定所述最大位宽的输入数据对应的第一CRC系数;
输入数据处理单元,用于在所述输入数据的位宽小于所述最大位宽的情况下,将数据位宽小于所述最大位宽的输入数据进行预处理得到处理后的输入数据,所述处理后的输入数据的数据位宽等于所述最大数据位宽;
所述CRC系数确定单元,还用于确定所述处理后的输入数据对应的第二CRC系数;
CRC运算单元,用于对最大位宽的输入数据和对应的第一CRC系数进行CRC运算获得对应的计算结果,还用于对所述处理后的输入数据和对应的第二CRC系数进行CRC计算获得对应的计算结果;
所述输入数据处理单元具体用于:
对所述数据位宽小于所述最大位宽的输入数据进行高位补0处理,使得处理后的输入数据的数据位宽等于所述最大位宽;
所述CRC系数确定单元具体用于:
根据所述输入数据的有效位宽选择所述输入数据对应的第二CRC系数,其中所述第二CRC系数的数据位宽与所述输入数据的有效位宽相等。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
更新单元,用于对于每一输入数据,在得到所述输入数据对应的所述计算结果后,采用所述输入数据对应计算结果更新所述输入数据。
6.一种电子设备,其特征在于,所述电子设备包括:存储器和处理器;
其中,所述存储器,用于存储机器可执行指令;
所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211054324.4A CN115412204B (zh) | 2022-08-31 | 2022-08-31 | 一种循环冗余校验的实现方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211054324.4A CN115412204B (zh) | 2022-08-31 | 2022-08-31 | 一种循环冗余校验的实现方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115412204A CN115412204A (zh) | 2022-11-29 |
CN115412204B true CN115412204B (zh) | 2023-09-08 |
Family
ID=84163660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211054324.4A Active CN115412204B (zh) | 2022-08-31 | 2022-08-31 | 一种循环冗余校验的实现方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115412204B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101057474A (zh) * | 2004-11-16 | 2007-10-17 | 三星电子株式会社 | 在正交频分多址无线通信***中处理数字信号的装置和方法 |
CN101702639A (zh) * | 2009-11-23 | 2010-05-05 | 成都市华为赛门铁克科技有限公司 | 循环冗余校验的校验值计算方法及装置 |
CN102546089A (zh) * | 2011-01-04 | 2012-07-04 | 中兴通讯股份有限公司 | 循环冗余校验crc码的实现方法及装置 |
CN106778536A (zh) * | 2016-11-28 | 2017-05-31 | 北京化工大学 | 一种基于fpga的实时高光谱显微图像细胞分类方法 |
CN114666038A (zh) * | 2022-05-12 | 2022-06-24 | 广州万协通信息技术有限公司 | 一种大位宽数据处理方法、装置、设备及存储介质 |
-
2022
- 2022-08-31 CN CN202211054324.4A patent/CN115412204B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101057474A (zh) * | 2004-11-16 | 2007-10-17 | 三星电子株式会社 | 在正交频分多址无线通信***中处理数字信号的装置和方法 |
CN101702639A (zh) * | 2009-11-23 | 2010-05-05 | 成都市华为赛门铁克科技有限公司 | 循环冗余校验的校验值计算方法及装置 |
CN102546089A (zh) * | 2011-01-04 | 2012-07-04 | 中兴通讯股份有限公司 | 循环冗余校验crc码的实现方法及装置 |
CN106778536A (zh) * | 2016-11-28 | 2017-05-31 | 北京化工大学 | 一种基于fpga的实时高光谱显微图像细胞分类方法 |
CN114666038A (zh) * | 2022-05-12 | 2022-06-24 | 广州万协通信息技术有限公司 | 一种大位宽数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115412204A (zh) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108681565B (zh) | 区块链数据并行处理方法、装置、设备和存储介质 | |
US5687360A (en) | Branch predictor using multiple prediction heuristics and a heuristic identifier in the branch instruction | |
KR101306645B1 (ko) | 시행착오에 의한 에러 보정 디코딩 | |
CN110737806B (zh) | 面向业务实体的全局id生成方法及装置 | |
CN108334419B (zh) | 一种数据恢复的方法和装置 | |
CN1950775B (zh) | 用于程序执行期间的入侵检测的方法,设备和计算机*** | |
CN112328306B (zh) | 一种分支预测器的隔离方法、预测方法及分支预测器 | |
CN112579462A (zh) | 测试用例获取方法、***、设备及计算机可读存储介质 | |
CN112748862B (zh) | 用于管理盘的方法、电子设备和计算机程序产品 | |
CN112181307A (zh) | 基于区块链的分布式数据冗余存储方法和电子设备 | |
CN115412204B (zh) | 一种循环冗余校验的实现方法、装置和存储介质 | |
KR20210002817A (ko) | 패리티 검사 연접 극 부호의 설계 방법 및 그 장치 | |
CN100551066C (zh) | 编码器及自适应算术编码的实现方法及装置 | |
US7698693B2 (en) | System and method for run-time value tracking during execution | |
CN111597093A (zh) | 一种异常处理方法、装置及其设备 | |
CN115827308A (zh) | 一种固态硬盘数据纠错方法及一种固态硬盘 | |
US7783691B2 (en) | Sharing of a logic operator having a work register | |
CN116681138B (zh) | 一种数据大小比较任务的处理方法、装置、存储介质及电子装置 | |
CN112506651A (zh) | 一种大数据量环境中数据运算的方法和设备 | |
CN112288060A (zh) | 用于识别标签的方法和装置 | |
CA2337190C (en) | Fast metric calculation for viterbi decoder implementation | |
US20030046672A1 (en) | Development system of microprocessor for application program including integer division or integer remainder operations | |
CN116720818B (zh) | 基于区块链的仓储处理方法、装置、计算机设备 | |
CN115473717B (zh) | 基于互质幂余的储能***时序数据校验方法 | |
CN117194462B (zh) | 鉴权数据库的更新方法、装置、设备及介质 |
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 |