一种循环冗余校验数据的处理方法、循环冗余校验电路及存储介质与流程

文档序号:18985483发布日期:2019-10-29 04:20阅读:366来源:国知局
一种循环冗余校验数据的处理方法、循环冗余校验电路及存储介质与流程

本发明涉及循环冗余校验领域,尤其涉及一种循环冗余校验数据的处理方法、循环冗余校验电路及存储介质。



背景技术:

循环冗余校验(cyclicredundancycheck,crc)是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查可以对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

本申请发明人在实现本发明的过程中研究发现:当crc电路校验的数据位宽比较大时,crc电路需要很多的循环冗余校验计算单元,这无疑增加了硬件面积开销,同时为数字电路的绕线提出了极大的考验。

图1为现有的一种校验数据位宽为1024位的crc电路校验示意图。如图1所示,crc校验过程可以分为两个部分:初步校验和最终校验。该crc电路共需要33个32位的循环冗余校验计算单元(简称为crc-32计算单元)。其中有32个crc-32计算单元用于并行1024位数据的crc-32运算,运算结果会存储到对应的内存中,此部分的运算过程为初步校验。这32个crc-32计算单元可被称为循环冗余初步校验计算单元。循环冗余初步校验计算单元的计算结果放到内存中后,计算结果会按照固定的数据以分时复用的原理进入最后一级crc-32计算单元(可被称为循环冗余最终校验计算单元)被串行处理。循环冗余最终校验计算单元最终输出32位的crc-32运算结果。

从图1可以看出,现有的crc电路需要的循环冗余初步校验计算单元较多,极大了增加了数据计算单元的面积和芯片设计的复杂度。



技术实现要素:

鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种循环冗余校验数据的处理方法、循环冗余校验电路及存储介质,方案如下:

一种循环冗余校验数据的处理方法,包括:

从待校验的数据中获得第一数据;

使用多个时间区间对所述第一数据进行循环冗余初步校验,其中,在每个时间区间对所述第一数据的一部分数据进行循环冗余初步校验,不同时间区间所校验的数据不同,所述多个时间区间中各时间区间校验的数据构成所述第一数据,所述多个时间区间中各时间区间均使用相同的n个循环冗余初步校验计算单元进行循环冗余初步校验。

可选的,在从待校验的数据中获得第一数据后,所述方法还包括:

将所述第一数据平均划分为n个数据段,将每个数据块平均划分为m个数据块;

所述使用多个时间区间对所述第一数据进行循环冗余初步校验,包括:

使用m个时间区间对所述第一数据进行循环冗余初步校验,在每个时间区间内,对每个数据段:使用所述n个循环冗余初步校验计算单元中的一个循环冗余初步校验计算单元对该数据段中的一个数据块进行循环冗余初步校验,其中,在同一时间区间内校验各数据块的循环冗余初步校验计算单元不同,所述m个时间区间中的不同时间区间内所校验的数据块不同。

可选的,对任一时间区间:该时间区间所校验的各数据块在数据段内的位置相同或不同。

可选的,所述第一数据的数据量s=c×n×m,其中,c为所述循环冗余初步校验计算单元的位数。

一种循环冗余校验电路,包括:处理器、内存和n个循环冗余初步校验计算单元,

所述处理器从待校验的数据中获得第一数据;

所述处理器使用多个时间区间对所述第一数据进行循环冗余初步校验并将初步校验结果放入内存中,其中,在每个时间区间对所述第一数据的一部分数据进行循环冗余初步校验,不同时间区间所校验的数据不同,所述多个时间区间中各时间区间校验的数据构成所述第一数据,所述多个时间区间中各时间区间均使用相同的所述n个循环冗余初步校验计算单元进行循环冗余初步校验。

可选的,所述处理器在从待校验的数据中获得第一数据后,还将所述第一数据平均划分为n个数据段,将每个数据块平均划分为m个数据块;

所述处理器使用m个时间区间对所述第一数据进行循环冗余初步校验,在每个时间区间内,对每个数据段:使用所述n个循环冗余初步校验计算单元中的一个循环冗余初步校验计算单元对该数据段中的一个数据块进行循环冗余初步校验,其中,在同一时间区间内校验各数据块的循环冗余初步校验计算单元不同,所述m个时间区间中的不同时间区间内所校验的数据块不同。

可选的,对任一时间区间:该时间区间所校验的各数据块在数据段内的位置相同或不同。

可选的,所述第一数据的数据量s=c×n×m,其中,c为所述循环冗余初步校验计算单元的位数。

可选的,还包括:循环冗余最终校验计算单元,

所述处理器将所述内存中保存的、与所述第一数据对应的初步校验结果输入所述循环冗余最终校验计算单元中进行校验,获得最终校验结果。

一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现上述的任一种循环冗余校验数据的处理方法。

借由上述技术方案,本发明提供的一种循环冗余校验数据的处理方法、循环冗余校验电路及存储介质,从待校验的数据中获得第一数据;使用多个时间区间对所述第一数据进行循环冗余初步校验,其中,在每个时间区间对所述第一数据的一部分数据进行循环冗余初步校验,不同时间区间所校验的数据不同,所述多个时间区间中各时间区间校验的数据构成所述第一数据,所述多个时间区间中各时间区间均使用相同的n个循环冗余初步校验计算单元进行循环冗余初步校验。本发明可以通过多个时间区间来分别计算第一数据的一个部分,这样,每个时间区间内需要计算的数据量就比较少,因此也就不需要大量的crc计算单元,减小了数据计算单元的面积和芯片设计的复杂度。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了现有的循环冗余校验示意图;

图2示出了本发明实施例提供的一种循环冗余校验数据的处理方法的流程图;

图3示出了本发明实施例提供的另一种循环冗余校验数据的处理方法的流程图;

图4示出了本发明实施例提供的数据划分示意图;

图5至图8示出了本发明实施例提供的循环冗余初步校验过程示意图;

图9示出了本发明实施例提供的循环冗余初步校验过程中数据块的选择方式的示意图;

图10示出了本发明实施例提供的一种循环冗余校验电路的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

如图2所示,本发明实施例提供的一种循环冗余校验数据的处理方法,包括:

s100、从待校验的数据中获得第一数据;

其中,待校验的数据的数据量一般较多,如1024位,2048位,4096位等。本发明可以将循环冗余校验过程分为两个部分:初步校验和最终校验。其中,初步校验为使用多个循环冗余校验计算单元并行对待校验的数据进行校验并将结果存入内存的过程。该过程中所使用的循环冗余校验计算单元在本发明中可被称为循环冗余初步校验计算单元。最终校验为使用一个循环冗余校验计算单元对内存中的结果进行循环冗余校验并获得循环冗余校验的最终结果的过程。最终校验所使用的一个循环冗余校验计算单元在本发明中可被称为循环冗余最终校验计算单元。

可以理解的是,循环冗余最终校验计算单元和循环冗余初步校验计算单元的芯片型号和参数可以相同,也可以不同。本发明中的循环冗余最终校验计算单元和循环冗余初步校验计算单元可以为实际存在的实物芯片,也可以为虚拟的逻辑芯片。

s200、使用多个时间区间对所述第一数据进行循环冗余初步校验,其中,在每个时间区间对所述第一数据的一部分数据进行循环冗余初步校验,不同时间区间所校验的数据不同,所述多个时间区间中各时间区间校验的数据构成所述第一数据,所述多个时间区间中各时间区间均使用相同的n个循环冗余初步校验计算单元进行循环冗余初步校验。

需要说明的是,本发明可以根据进行循环冗余校验的循环冗余初步校验计算单元的位数c和数量n来确定每个时间区间内所述n个循环冗余初步校验计算单元可以校验的数据量。例如:假设本发明使用8个crc-32计算单元作为循环冗余初步校验计算单元,则每个时间区间内这8个crc-32计算单元可以校验的数据量为32×8=256位。当需要校验1024位数据时,现有技术会使用如图1所示的crc计算过程来进行校验。而本发明可以使用多个时间区间来分别对这1024位的一部分来进行校验,由于每个时间区间进行校验的数据较少,因此可以采用较少的crc-32计算单元。

具体的,第一数据可以为待校验的数据的部分或全部。

本发明可以通过时间来换取空间,即:牺牲一定的计算速度,来减少crc计算单元的数量。本发明可以通过多个时间区间来分别计算第一数据的一个部分,这样,每个时间区间内需要计算的数据量就比较少,因此也就不需要大量的crc计算单元,减小了数据计算单元的面积和芯片设计的复杂度。

具体的,每个时间区间可以为一个时钟周期。可以理解的是,由于时钟周期很短,因此本发明通过多个时间区间对数据进行校验也可以满足校验时限的要求。

如图3所示,本发明实施例提供的另一种循环冗余校验数据的处理方法,可以包括:

s100、从待校验的数据中获得第一数据;

s110、将所述第一数据平均划分为n个数据段,将每个数据块平均划分为m个数据块;

其中,本发明中的数据划分并非数据切割,而是逻辑上的划分。

s210、使用m个时间区间对所述第一数据进行循环冗余初步校验,在每个时间区间内,对每个数据段:使用所述n个循环冗余初步校验计算单元中的一个循环冗余初步校验计算单元对该数据段中的一个数据块进行循环冗余初步校验,其中,在同一时间区间内校验各数据块的循环冗余初步校验计算单元不同,所述m个时间区间中的不同时间区间内所校验的数据块不同。其中,每个数据块的数据量与循环冗余初步校验计算单元的位数匹配,如循环冗余初步校验计算单元的位数为32时,每个数据块的数据量为32位。

其中,步骤s210为图2所示步骤s200的一种具体执行方式。

具体的,对任一时间区间:该时间区间所校验的各数据块在数据段内的位置相同或不同。

其中,所述第一数据的数据量s=c×n×m,其中,c为所述循环冗余初步校验计算单元的位数。

为方便理解,下面举例说明:

假设第一数据的数据量为1024位,本发明使用8个crc-32计算单元进行初步校验,则如图4所示,本发明可以将1024位数据平均划分为8个数据段,每个数据段128位,同时,本发明可以将每个128位的数据段平均划分为4个数据块,每个数据块为32位,则每个数据块均可输入一个crc-32计算单元进行初步校验。由于一共有8个crc-32计算单元进行初步校验,因此每个时钟周期本发明都可以分别从8个数据段中各取一个数据块并放入一个crc-32计算单元进行初步校验。这样每个时钟周期本发明都可以初步校验的数据量为256位。这样,只需要四个时钟周期,本发明就可以将1024位的数据进行初步校验完毕。

由于每个时钟周期均需从数据段中选择一个数据块,因此本发明可以每次选择的各数据块在数据段中的位置可以完全相同或不完全相同或完全不相同。如图5至图8所示,为选择不完全相同的位置的数据块的示意图。图5至图9中使用四个大小相同且依次相连的矩形代表一个数据段,每个矩形均为一个数据块,在当前时钟周期被选择的数据块为黑色,未被选择的为白色。从图5至图8可以看出,在时钟周期i至时钟周期i+3,本发明尽量选择不同位置的数据块。

当然,如图9所示,本发明也可以在每个时钟周期选择相同位置的数据块。

与上述方法实施例相对应,本发明还提供了一种循环冗余校验电路。

如图10所示,本发明实施例提供的一种循环冗余校验电路,可以包括:处理器001、内存002和n个循环冗余初步校验计算单元003,

所述处理器001从待校验的数据中获得第一数据;

所述处理器001使用多个时间区间对所述第一数据进行循环冗余初步校验并将初步校验结果放入内存中,其中,在每个时间区间对所述第一数据的一部分数据进行循环冗余初步校验,不同时间区间所校验的数据不同,所述多个时间区间中各时间区间校验的数据构成所述第一数据,所述多个时间区间中各时间区间均使用相同的所述n个循环冗余初步校验计算单元003进行循环冗余初步校验。

可选的,所述处理器001在从待校验的数据中获得第一数据后,还将所述第一数据平均划分为n个数据段,将每个数据块平均划分为m个数据块;

所述处理器001使用m个时间区间对所述第一数据进行循环冗余初步校验,在每个时间区间内,对每个数据段:使用所述n个循环冗余初步校验计算单元003中的一个循环冗余初步校验计算单元003对该数据段中的一个数据块进行循环冗余初步校验,其中,在同一时间区间内校验各数据块的循环冗余初步校验计算单元003不同,所述m个时间区间中的不同时间区间内所校验的数据块不同。

可选的,对任一时间区间:该时间区间所校验的各数据块在数据段内的位置相同或不同。

可选的,所述第一数据的数据量s=c×n×m,其中,c为所述循环冗余初步校验计算单元003的位数。

可选的,图10所示循环冗余校验电路还可以包括:循环冗余最终校验计算单元004,

所述处理器001将所述内存中保存的、与所述第一数据对应的初步校验结果输入所述循环冗余最终校验计算单元004中进行校验,获得最终校验结果。

本发明实施例提供的一种循环冗余校验电路,从待校验的数据中获得第一数据;使用多个时间区间对所述第一数据进行循环冗余初步校验,其中,在每个时间区间对所述第一数据的一部分数据进行循环冗余初步校验,不同时间区间所校验的数据不同,所述多个时间区间中各时间区间校验的数据构成所述第一数据,所述多个时间区间中各时间区间均使用相同的n个循环冗余初步校验计算单元进行循环冗余初步校验。本发明可以通过多个时间区间来分别计算第一数据的一个部分,这样,每个时间区间内需要计算的数据量就比较少,因此也就不需要大量的crc计算单元,减小了数据计算单元的面积和芯片设计的复杂度。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来进行循环冗余校验。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述一种循环冗余校验数据的处理方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述一种循环冗余校验数据的处理方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:

从待校验的数据中获得第一数据;

使用多个时间区间对所述第一数据进行循环冗余初步校验,其中,在每个时间区间对所述第一数据的一部分数据进行循环冗余初步校验,不同时间区间所校验的数据不同,所述多个时间区间中各时间区间校验的数据构成所述第一数据,所述多个时间区间中各时间区间均使用相同的n个循环冗余初步校验计算单元进行循环冗余初步校验。

可选的,在从待校验的数据中获得第一数据后,所述方法还包括:

将所述第一数据平均划分为n个数据段,将每个数据块平均划分为m个数据块;

所述使用多个时间区间对所述第一数据进行循环冗余初步校验,包括:

使用m个时间区间对所述第一数据进行循环冗余初步校验,在每个时间区间内,对每个数据段:使用所述n个循环冗余初步校验计算单元中的一个循环冗余初步校验计算单元对该数据段中的一个数据块进行循环冗余初步校验,其中,在同一时间区间内校验各数据块的循环冗余初步校验计算单元不同,所述m个时间区间中的不同时间区间内所校验的数据块不同。

可选的,对任一时间区间:该时间区间所校验的各数据块在数据段内的位置相同或不同。

可选的,所述第一数据的数据量s=c×n×m,其中,c为所述循环冗余初步校验计算单元的位数。

本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:

从待校验的数据中获得第一数据;

使用多个时间区间对所述第一数据进行循环冗余初步校验,其中,在每个时间区间对所述第一数据的一部分数据进行循环冗余初步校验,不同时间区间所校验的数据不同,所述多个时间区间中各时间区间校验的数据构成所述第一数据,所述多个时间区间中各时间区间均使用相同的n个循环冗余初步校验计算单元进行循环冗余初步校验。

可选的,在从待校验的数据中获得第一数据后,所述方法还包括:

将所述第一数据平均划分为n个数据段,将每个数据块平均划分为m个数据块;

所述使用多个时间区间对所述第一数据进行循环冗余初步校验,包括:

使用m个时间区间对所述第一数据进行循环冗余初步校验,在每个时间区间内,对每个数据段:使用所述n个循环冗余初步校验计算单元中的一个循环冗余初步校验计算单元对该数据段中的一个数据块进行循环冗余初步校验,其中,在同一时间区间内校验各数据块的循环冗余初步校验计算单元不同,所述m个时间区间中的不同时间区间内所校验的数据块不同。

可选的,对任一时间区间:该时间区间所校验的各数据块在数据段内的位置相同或不同。

可选的,所述第一数据的数据量s=c×n×m,其中,c为所述循环冗余初步校验计算单元的位数。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1