一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多项式可配的并行CRC硬件实现方法、装置和计算机设备与流程

2022-08-17 11:03:19 来源:中国专利 TAG:

多项式可配的并行crc硬件实现方法、装置和计算机设备
技术领域
1.本发明涉及固态硬盘技术领域,特别是涉及一种多项式可配的并行crc硬件实现方法、装置、计算机设备和存储介质。


背景技术:

2.循环冗余校验(cyclic redundancy check,crc)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。crc算法校验的检错能力极强,且检测成本较低,成为固态存储、计算机信息通信等领域中最为普遍的校验方式。
3.目前,现有的并行crc在硬件电路中的实现,是根据每个crc生成多项式不同分类实现的。对于同一种crc的生成多项式,实现一种硬件电路,不同生成多项式的crc,使用不同的数字电路实现。这种方法在单一的通信协议中,基本能够满足应用的需求。但当产品复杂化,适配的通信协议种类增加时,需要硬件根据协议里的crc生成多项式再次定制生成并行的crc硬件电路。这种方式导致实现的crc硬件电路在不同应用场景中的适应性不好,使得产品在应用中受到限制。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种可以实现提高ssd读性能的的多项式可配的并行crc硬件实现方法、装置、计算机设备和存储介质。
5.一种多项式可配的并行crc硬件实现方法,所述方法包括:
6.获取多项式可配的并行crc硬件实现请求;
7.根据协议里的crc生成多项式和硬件处理数据的并行度的要求生成crc校验矩阵参数;
8.将生成好的所述crc校验矩阵参数通过软硬件交互接口适配至硬件电路中crc计算单元的校验矩阵缓存区;
9.所述硬件电路中的crc计算单元根据输入的数据与校验矩阵参数进行迭代计算生成crc结果。
10.在其中一个实施例中,所述根据协议里的crc生成多项式和硬件处理数据的并行度的要求生成crc校验矩阵参数的步骤还包括:
11.确定crc生成多项式g(x)和并行度n;
12.通过crc系数矩阵生成器和crc数据矩阵生成器分别生成对应的crc系数矩阵和crc数据矩阵;
13.将所述crc系数矩阵和crc数据矩阵进行合并得到crc校验矩阵。
14.在其中一个实施例中,所述通过crc系数矩阵生成器和crc数据矩阵生成器分别生成对应的crc系数矩阵和crc数据矩阵的步骤还包括:
15.根据所述crc生成多项式g(x)构建稀疏矩阵,将所述稀疏矩阵进行n-1次线性变换
后生成crc系数矩阵。
16.在其中一个实施例中,所述硬件电路中的crc计算单元根据输入的数据与校验矩阵参数进行迭代计算生成crc结果的步骤还包括:
17.将数据缓存区中的kbit数据与crc校验矩阵缓存区按照校验矩阵的行方向处理,分别生成m个中间值;
18.所述行方向处理为将数据缓存区的kbit数据与crc校验矩阵中的单行kbit数据进行按位与运算生成中间值;
19.对所述m个中间值分别进行按位异或运算生成m bit的crc更新值;
20.当输入的nbit数据为最后一组时,对应生成的crc更新值经mbit的d触发器稳定后作为crc的输出结果。
21.一种多项式可配的并行crc硬件实现装置,所述装置包括:
22.获取模块,所述获取模块用于获取多项式可配的并行crc硬件实现请求;
23.生成模块,所述生成模块用于根据协议里的crc生成多项式和硬件处理数据的并行度的要求生成crc校验矩阵参数;
24.适配模块,所述适配模块用于将生成好的所述crc校验矩阵参数通过软硬件交互接口适配至硬件电路中crc计算单元的校验矩阵缓存区;
25.计算模块,计算模块用于通过所述硬件电路中的crc计算单元根据输入的数据与校验矩阵参数进行迭代计算生成crc结果。
26.在其中一个实施例中,所述生成模块还用于:
27.确定crc生成多项式g(x)和并行度n;
28.通过crc系数矩阵生成器和crc数据矩阵生成器分别生成对应的crc系数矩阵和crc数据矩阵;
29.将所述crc系数矩阵和crc数据矩阵进行合并得到crc校验矩阵。
30.在其中一个实施例中,所述生成模块还用于:
31.根据所述crc生成多项式g(x)构建稀疏矩阵,将所述稀疏矩阵进行n-1次线性变换后生成crc系数矩阵。
32.在其中一个实施例中,所述计算模块还用于:
33.将数据缓存区中的kbit数据与crc校验矩阵缓存区按照校验矩阵的行方向处理,分别生成m个中间值;
34.所述行方向处理为将数据缓存区的kbit数据与crc校验矩阵中的单行kbit数据进行按位与运算生成中间值;
35.对所述m个中间值分别进行按位异或运算生成m bit的crc更新值;
36.当输入的nbit数据为最后一组时,对应生成的crc更新值经mbit的d触发器稳定后作为crc的输出结果。
37.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
38.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
39.上述多项式可配的并行crc硬件实现方法、装置、计算机设备和存储介质,通过软
件将适配生成的校验矩阵参数传递至硬件crc计算单元的校验矩阵中,再与输入的数据通过硬件crc计算单元经过迭代计算生成校验冗余码,通过多套校验阵参数对应多组crc生成多项式和输入的数据并行度,从而有效地提升了crc硬件的灵活性,解除了并行crc硬件电路中对单一多项式的局限性。
附图说明
40.图1为一个实施例中多项式可配的并行crc硬件实现方法的流程示意图;
41.图2为一个实施例中多项式可配的并行crc软硬件适配结构框图;
42.图3为另一个实施例中多项式可配的并行crc硬件实现方法的流程示意图;
43.图4为一个实施例中crc校验矩阵与crc系数矩阵、crc数据矩阵关系的示意图;
44.图5为再一个实施例中多项式可配的并行crc硬件实现方法的流程示意图;
45.图6为一个实施例中多项式可配的并行crc硬件电路中crc计算单元的电路图;
46.图7为一个实施例中多项式可配的并行crc硬件实现装置的结构框图;
47.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
48.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
49.目前,现有的并行crc在硬件电路中的实现,是根据每个crc生成多项式不同分类实现的。对于同一种crc的生成多项式,实现一种硬件电路,不同生成多项式的crc,使用不同的数字电路实现。这种方法在单一的通信协议中,基本能够满足应用的需求。但当产品复杂化,适配的通信协议种类增加时,需要硬件根据协议里的crc生成多项式再次定制生成并行的crc硬件电路。这种方式导致实现的crc硬件电路在不同应用场景中的适应性不好,使得产品在应用中受到限制。
50.基于此,本发明提出了一种多项式可配的并行crc硬件实现方法及装置,旨在能够解除并行crc硬件电路中对单一多项式的局限性。
51.在一个实施例中,如图1所示,提供了一种多项式可配的并行crc硬件实现方法,该方法包括:
52.步骤102,获取多项式可配的并行crc硬件实现请求;
53.步骤104,根据协议里的crc生成多项式和硬件处理数据的并行度的要求生成crc校验矩阵参数;
54.步骤106,将生成好的crc校验矩阵参数通过软硬件交互接口适配至硬件电路中crc计算单元的校验矩阵缓存区;
55.步骤108,硬件电路中的crc计算单元根据输入的数据与校验矩阵参数进行迭代计算生成crc结果。
56.本发明提供了一种多项式可配的并行crc硬件实现方法,该方法可以应用于如图2所示的多项式可配的并行crc软硬件适配结构中。
57.具体地,在多项式可配的并行crc软硬件适配结构中主要由生成校验矩阵单元、配
置单元和crc计算单元构成。其中,生成校验矩阵单元由软件根据多项式和输入的数据并行度的要求生成待适配的校验矩阵参数。配置单元由软件将待适配的校验矩阵参数通过接口适配至crc计算单元的校验矩阵中。crc计算单元由硬件根据校验矩阵与输入的数据经过迭代计算生成crc结果。该硬件装置中在保证并行处理的基础上提升了灵活性,可适配多套生成多项式。
58.例如:以crc-5,生成多项式g(x)=x5 x2 1,硬件处理数据的并行度n=13,输入数据13’h1f为例,操作步骤如下:
59.首先,软件根据crc生成多项式和并行度的要求生成crc校验矩阵,结果如下:
[0060][0061]
然后,软件将待适配的校验阵参数通过软硬件交互接口适配至硬件电路中crc计算单元中校验矩阵缓存区。
[0062]
最后,硬件电路对输入数据运算,生成crc结果:5’h14。
[0063]
在本实施例中,通过软件将适配生成的校验矩阵参数传递至硬件crc计算单元的校验矩阵中,再与输入的数据通过硬件crc计算单元经过迭代计算生成校验冗余码。多套校验阵参数对应多组crc生成多项式和输入的数据并行度,从而有效地提升了crc硬件的灵活性,解除了并行crc硬件电路中对单一多项式的局限性。
[0064]
在一个实施例中,如图3所示,提供了一种多项式可配的并行crc硬件实现方法,该方法中根据协议里的crc生成多项式和硬件处理数据的并行度的要求生成crc校验矩阵参数的步骤还包括:
[0065]
步骤302,确定crc生成多项式g(x)和并行度n;
[0066]
步骤304,通过crc系数矩阵生成器和crc数据矩阵生成器分别生成对应的crc系数矩阵和crc数据矩阵;
[0067]
步骤306,将crc系数矩阵和crc数据矩阵进行合并得到crc校验矩阵。
[0068]
在一个实施例中,通过crc系数矩阵生成器和crc数据矩阵生成器分别生成对应的crc系数矩阵和crc数据矩阵的步骤还包括:根据crc生成多项式g(x)构建稀疏矩阵,将所述稀疏矩阵进行n-1次线性变换后生成crc系数矩阵。
[0069]
具体地,可参考图2所示的多项式可配的并行crc软硬件适配结构,其中crc校验矩阵生成器的组成主要包含:crc系数矩阵生成器和crc数据矩阵生成器。当确定了crc生成多项式g(x)和并行度n,经过上述两个生成器分别生成对应的crc系数矩阵和crc数据矩阵;二者在经过合并,从而得到crc校验矩阵。
[0070]
crc系数矩阵生成器主要是根据crc生成多项式g(x)和硬件处理数据的并行度n经过运算处理后生成crc系数矩阵。处理过程主要包含两步:1、根据生成多项式g(x),构建稀疏矩阵;2、将稀疏矩阵进行n-1次变换后生成crc系数矩阵。
[0071]
例如,选取crc生成多项式g(x)的形式同公式1所示:
[0072][0073]
其中ck=1表示电路连接,否则表示断开;xk表示第k处寄存器dk的值;c0=cm=1。
[0074]
第1步:构建稀疏矩阵t
(1)
,参考形式见公式2;
[0075][0076]
其中t
(1)
中的“1”表示第1次移位;cm=c0=1;e为m
×
m的单位矩阵;为零向量;
[0077]
第2步:n-1次变换后,生成crc系数矩阵,每次变换均遵循l2线性变换——t
(n)
=l2(t
(n-1)
)
[0078]
记t
(n)
中第i行,第j列,n次变换对应的状态矩阵中的元素为等同于crc系数矩阵中的元素。
[0079]
l2操作如下:t
(n)
第1至m-1行的行向量中的元素按照公式3更新;第m行的行向量中元素按照公式4更新;
[0080][0081][0082]
crc数据矩阵生成器主要是从n个状态矩阵{t(1)、t(2)、

、t(n)}中分别取出第一列元素,进而生成crc数据矩阵(cd,其中行数为m,列数为n),如公式5所示。
[0083][0084]
最后,将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。
[0085]
值得说明的是,图4中crc系数矩阵与crc数据矩阵的关系支持对换、交叉等变形方案,该方案同样适用于其他的变形方案。
[0086]
在一个实施例中,如图5所示,提供了一种多项式可配的并行crc硬件实现方法,该方法中硬件电路中的crc计算单元根据输入的数据与校验矩阵参数进行迭代计算生成crc结果的步骤还包括:
[0087]
步骤502,将数据缓存区中的kbit数据与crc校验矩阵缓存区按照校验矩阵的行方向处理,分别生成m个中间值;
[0088]
步骤504,行方向处理为将数据缓存区的kbit数据与crc校验矩阵中的单行kbit数据进行按位与运算生成中间值;
[0089]
步骤506,对m个中间值分别进行按位异或运算生成m bit的crc更新值;
[0090]
步骤508,当输入的nbit数据为最后一组时,对应生成的crc更新值经m bit的d触发器稳定后作为crc的输出结果。
[0091]
参考图6所示的多项式可配的并行crc硬件电路中crc计算单元电路图,在本实施例中,crc计算单元主要是将输入接口处接收到的数据转换生成m bit的crc结果。
[0092]
主要操作过程描述如下:将数据缓存区中的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的输出结果。
[0093]
数据缓冲区中crc更新值的数据来源有两处:当数据刚开始传输,对应第一组数据时,其来源于d触发器中的初始值(di,一般设置为全
‘1’
);否则,其来源于经d触发器稳定后的crc更新值。
[0094]
值得说明的是,图6中crc计算单元中的数据缓存区的数据与crc校验阵缓存区的数据进行按位与计算时,需要满足位对齐的关系,在此基础上的变形该方案同样适用。此外,图6中crc计算单元中的crc校验阵缓存区的某一列与crc更新值中的某一位成对应关系,在此基础上的变形该方案同样适用。
[0095]
应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0096]
在一个实施例中,如图7所示,提供了一种多项式可配的并行crc硬件实现装置700,该装置包括:
[0097]
获取模块701,所述获取模块用于获取多项式可配的并行crc硬件实现请求;
[0098]
生成模块702,所述生成模块用于根据协议里的crc生成多项式和硬件处理数据的并行度的要求生成crc校验矩阵参数;
[0099]
适配模块703,所述适配模块用于将生成好的所述crc校验矩阵参数通过软硬件交互接口适配至硬件电路中crc计算单元的校验矩阵缓存区;
[0100]
计算模块704,计算模块用于通过所述硬件电路中的crc计算单元根据输入的数据与校验矩阵参数进行迭代计算生成crc结果。
[0101]
在一个实施例中,生成模块702还用于:
[0102]
确定crc生成多项式g(x)和并行度n;
[0103]
通过crc系数矩阵生成器和crc数据矩阵生成器分别生成对应的crc系数矩阵和crc数据矩阵;
[0104]
将所述crc系数矩阵和crc数据矩阵进行合并得到crc校验矩阵。
[0105]
在一个实施例中,生成模块702还用于:
[0106]
根据所述crc生成多项式g(x)构建稀疏矩阵,将所述稀疏矩阵进行n-1次线性变换后生成crc系数矩阵。
[0107]
在一个实施例中,计算模块704还用于:
[0108]
将数据缓存区中的kbit数据与crc校验矩阵缓存区按照校验矩阵的行方向处理,分别生成m个中间值;
[0109]
所述行方向处理为将数据缓存区的kbit数据与crc校验矩阵中的单行kbit数据进行按位与运算生成中间值;
[0110]
对所述m个中间值分别进行按位异或运算生成m bit的crc更新值;
[0111]
当输入的nbit数据为最后一组时,对应生成的crc更新值经mbit的d触发器稳定后作为crc的输出结果。
[0112]
关于多项式可配的并行crc硬件实现装置的具体限定可以参见上文中对于多项式可配的并行crc硬件实现方法的限定,在此不再赘述。
[0113]
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多项式可配的并行crc硬件实现方法。
[0114]
本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0115]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
[0116]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
[0117]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
[0118]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0119]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献