掌桥专利:专业的专利平台
掌桥专利
首页

一种大位宽数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 15:44:42



技术领域

本申请实施例涉及计算机集成电路技术领域,尤其涉及一种大位宽数据处理方法、装置、设备及存储介质。

背景技术

随着人工智能、云计算和物联网的飞速发展,各类处理器的性能要求越来越高。乘法器作为处理器的核心组成部分,由于其延迟时间长,在很大程度上决定了整个系统的工作效率。传统的乘法器有由乘数和被乘数按位生成积,再将生成的积相加,但是当乘数和被乘数的位宽越大,芯片需要的消耗与占用面积也会随之增加。特别是在比较复杂的算法中,需要处理的数据可能是512位甚至是1024位,但是如果使用1024*1024位的乘法器会导致芯片面积巨大,电路实现技术难度高。因此,提出了通过多个小位宽的乘法器进行大位宽数据处理。

传统的采用小位宽乘法器实现大位宽数据处理时只能通过串行的方式进行,处理过程需要耗费的时间较长,导致数据处理效率较低。

发明内容

本申请实施例提供一种大位宽数据处理方法、装置、设备及存储介质,能够解决大位宽数据处理效率低的问题,提升大位宽数据处理工作效率。

在第一方面,本申请实施例提供了一种大位宽数据处理方法,用于密钥的加密或解密过程,包括:

确定多个乘法器的输入端口位宽;

根据所述乘法器的输入端口位宽,确定位差宽度;

获取待相乘数据,所述待相乘数据包括密文数据或明文数据,将所述待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的数据位宽范围和对应的每个乘法器运算系数,其中所述待相乘数据的位宽大于所述乘法器的输入端口位宽;

根据所述每个乘法器对应处理的数据位宽范围,将所述待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算,输出子运算结果;

根据所述子运算结果和所述运算系数,进行数据整合,输出最终运算结果。

进一步的,所述将待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的数据位宽范围和对应的每个乘法器运算系数,包括:

获取第一待相乘数据和第二待相乘数据,其中第一待相乘数据的位宽和第二待相乘数据的位宽均大于所述乘法器的输入端口位宽;

将所述第一待相乘数据、所述第二待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一待相乘数据对应的分段数据、第二待相乘数据对应的分段数据和对应的每个乘法器运算系数。

进一步的,所述将所述第一待相乘数据、所述第二待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一待相乘数据对应的分段数据、第二待相乘数据对应的分段数据和对应的每个乘法器运算系数,包括:

将所述第一待相乘数据、所述第二待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一待相乘数据位宽范围和第二待相乘数据位宽范围;

根据所述第一待相乘数据位宽范围,将所述第一待相乘数据进行分割,得到第一分段数据,根据所述第二待相乘数据位宽范围,将所述第二待相乘数据进行分割,得到第二分段数据,将第一分段数据和第二分段数据输入到对应的所述乘法器中进行并行运算,输出子运算结果。

进一步的,所述根据所述子运算结果和所述运算系数,进行数据整合,输出最终运算结果,包括:

将所述子运算结果和对应的运算系数相乘,得到子乘积结果;

将所述子乘积结果通过加法器进行相加整合,输出最终运算结果。

进一步的,所述预设的降幂模型,包括:

其中,

进一步的,所述将所述待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算,输出子运算结果,包括:

根据每个乘法器对应处理的数据位宽范围获取乘法器的需求数量,并获取所述乘法器的实际数量;

根据所述需求数量和所述实际数量,得到复用数量,并根据所述实际数量和所述复用数量,确定复用乘法器;

根据所述乘法器的实际数量将所述待相乘数据对应数量的分段数据输入至所述乘法器中,进行并行运算,输出第一子运算结果;

根据复用数量将所述待相乘数据剩余的分段数据输入至对应的复用乘法器中,进行并行运算,输出第二子运算结果;

根据所述第一子运算结果和第二子运算结果,得到所述子运算结果。

进一步的,所述将所述待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算,输出子运算结果,包括:

根据时钟选择器选择输出预设第一时刻的所述乘法器运算得到的子运算结果,得到所述第一子运算结果;

根据时钟选择器选择输出预设第二时刻的所述乘法器运算得到的子运算结果,得到所述第二子运算结果。

在第二方面,本申请实施例提供了一种大位宽数据处理装置,用于密钥的加密或解密过程,包括:

第一位宽确定模块,用于确定多个乘法器的输入端口位宽;

第二位宽确定模块,用于根据所述乘法器的输入端口位宽,确定位差宽度;

第一运算模块,用于获取待相乘数据,所述待相乘数据包括密文数据或明文数据,将所述待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的数据位宽范围和对应的每个乘法器运算系数,其中所述待相乘数据的位宽大于所述乘法器的输入端口位宽;

第二运算模块,用于根据所述每个乘法器对应处理的数据位宽范围,将所述待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算,输出子运算结果;

第三运算模块,用于根据所述子运算结果和所述运算系数,进行数据整合,输出最终运算结果。

进一步的,所述第一运算模块,还用于获取第一待相乘数据和第二待相乘数据,其中第一待相乘数据的位宽和第二待相乘数据的位宽均大于所述乘法器的输入端口位宽;

将所述第一待相乘数据、所述第二待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一待相乘数据对应的分段数据、第二待相乘数据对应的分段数据和对应的每个乘法器运算系数。

进一步的,所述第一运算模块,还用于将所述第一待相乘数据、所述第二待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一待相乘数据位宽范围和第二待相乘数据位宽范围;

根据所述第一待相乘数据位宽范围,将所述第一待相乘数据进行分割,得到第一分段数据,根据所述第二待相乘数据位宽范围,将所述第二待相乘数据进行分割,得到第二分段数据,将第一分段数据和第二分段数据输入到对应的所述乘法器中进行并行运算,输出子运算结果。

进一步的,所述第三运算模块,还用于将所述子运算结果和对应的运算系数相乘,得到子乘积结果;

将所述子乘积结果通过加法器进行相加整合,输出最终运算结果。

进一步的,所述预设的降幂模型,包括:

其中,

进一步的,所述第二运算模块,还用于根据每个乘法器对应处理的数据位宽范围获取乘法器的需求数量,并获取所述乘法器的实际数量;

根据所述需求数量和所述实际数量,得到复用数量,并根据所述实际数量和所述复用数量,确定复用乘法器;

根据所述乘法器的实际数量将所述待相乘数据对应数量的分段数据输入至所述乘法器中,进行并行运算,输出第一子运算结果;

根据复用数量将所述待相乘数据剩余的分段数据输入至对应的复用乘法器中,进行并行运算,输出第二子运算结果;

根据所述第一子运算结果和第二子运算结果,得到所述子运算结果。

进一步的,所述第二运算模块,还用于根据时钟选择器选择输出预设第一时刻的所述乘法器运算得到的子运算结果,得到所述第一子运算结果;

根据时钟选择器选择输出预设第二时刻的所述乘法器运算得到的子运算结果,得到所述第二子运算结果。

在第三方面,本申请实施例提供了一种大位宽数据处理设备,包括:

存储器以及一个或多个处理器;

所述存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的大位宽数据处理方法。

在第四方面,本申请实施例提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的大位宽数据处理方法。

本申请实施例通过根据多个乘法器的输入端口位宽确定位差宽度,将待相乘数据和位差宽度输入预设的降幂模型中,确定每个乘法器对应处理的数据位宽范围和对应的每个乘法器运算系数,根据每个乘法器对应处理的数据位宽范围将待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算输出子运算结果,根据子运算结果和运算系数进行数据整合,输出最终运算结果。采用上述技术手段,可以通过多个小位宽的乘法器处理大位宽数据相乘,可以降低芯片占用面积和运算功耗,提升大位宽数据处理工作效率。此外,通过多个乘法器进行并行运算输出运算结果,减少了运算时间,进而提升了大位宽数据处理的工作效率。

附图说明

图1是本申请实施例提供的一种大位宽数据处理方法的流程图;

图2是本申请实施例提供的降幂过程示意图;

图3是本申请实施例提供的乘法器运行过程示意图;

图4是本申请实施例提供的一种大位宽数据处理装置的结构示意图;

图5是本申请实施例提供的一种大位宽数据处理设备的结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

本申请提供的大位宽数据处理方法、装置、设备及存储介质,旨在处理大位宽数据时,通过多个小位宽的乘法器处理大位宽数据相乘,以降低芯片占用面积和运算功耗,提升大位宽数据处理工作效率。并且,通过多个乘法器进行并行运算输出运算结果,以减少运算时间,提升大位宽数据处理的工作效率。相对于传统的大位宽数据处理方式,其通常使用与大位宽数据的位宽相同位宽的输入端口的乘法器进行处理,使用大位宽的乘法器进行数据处理会导致芯片面积巨大,且电路是实现技术难度高。此外,在进行大位宽数据处理时,使用小位宽乘法器实现大位宽数据处理时只能通过串行的方式进行,处理过程需要耗费的时间比较长,导致数据处理效率较低。基于此,提供本申请实施例的大位宽数据处理方法,以解决现有大位宽数据处理过程中的数据处理效率低问题。

图1给出了本申请实施例提供的一种大位宽数据处理方法的流程图,本实施例中提供的大位宽数据处理方法可以由大位宽数据处理设备执行,该大位宽数据处理设备可以通过软件和/或硬件的方式实现,该大位宽数据处理设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该大位宽数据处理设备可以是终端设备,如计算机设备等。

下述以计算机设备为执行大位宽数据处理方法的主体为例,进行描述。参照图1,该大位宽数据处理方法,用于密钥的加密或解密过程,具体包括:

S101、确定多个乘法器的输入端口位宽。

在芯片出厂时就已经设定好了存在多少个乘法器,每个乘法器对应的输入端口的位宽是多少位。因此,在进行大位宽数据处理时,需要首先确定芯片中存在的乘法器的输入端口位宽。为了方便生产和运算处理过程,一般最好是将芯片中的乘法器均设置为相同的乘法器,即芯片中的乘法器均为输入端口位宽均为相同数量的。在实际应用中,芯片的乘法器的输入端口位宽可以是相同的,也可以是是不相同的,可以根据实际情况进行设定。

在一实施例中,大位宽的待相乘数据一般为1024*1024位或者512*512位,而在芯片中的多个乘法器为小位宽的乘法器,可以是64*64位也可以是8*8位。

S102、根据所述乘法器的输入端口位宽,确定位差宽度。

根据芯片中的多个乘法器的输入端口位宽确定位差宽度。例如确定芯片中的乘法器的输入端口位宽为64位,则确定位差宽度为64位,若确定芯片中的乘法器的输入端口位宽为8位,则确定位差宽度为8位。

S103、获取待相乘数据,所述待相乘数据包括密文数据或明文数据,将所述待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的数据位宽范围和对应的每个乘法器运算系数,其中所述待相乘数据的位宽大于所述乘法器的输入端口位宽。

获取第一待相乘数据和第二待相乘数据,其中第一待相乘数据的位宽和第二待相乘数据的位宽均大于所述乘法器的输入端口位宽。将所述第一待相乘数据、所述第二待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一待相乘数据对应的分段数据、第二待相乘数据对应的分段数据和对应的每个乘法器运算系数。

在一实施例中,密钥的加密过程是将明文数据加密得到密文数据,因此获取的待相乘数据为明文数据。获取第一明文数据和第二明文数据,其中,第一明文数据为第一待相乘数据,第二明文数据为第二待相乘数据,其中,第一明文数据的位宽和第二明文数据的位宽均大于所述乘法器的输入端口位宽。将所述第一明文数据、所述第二明文数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一明文数据对应的分段数据、第二明文数据对应的分段数据和对应的每个乘法器运算系数。

在一实施例中,密钥的解密过程是将密文数据解密得到明文数据,因此获取的待相乘数据为密文数据。获取第一密文数据和第二密文数据,其中,第一密文数据为第一待相乘数据,第二密文数据为第二待相乘数据,其中,第一密文数据的位宽和第二密文数据的位宽均大于所述乘法器的输入端口位宽。将所述第一密文数据、所述第二密文数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一密文数据对应的分段数据、第二密文数据对应的分段数据和对应的每个乘法器运算系数。

在一实施例中,获取第一待相乘数据和第二待相乘数据,将第一待相乘数据、第二待相乘数据和位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一待相乘数据位宽范围和第二待相乘数据位宽范围,根据所述第一待相乘数据位宽范围,将所述第一待相乘数据进行分割,得到第一分段数据,根据所述第二待相乘数据位宽范围,将所述第二待相乘数据进行分割,得到第二分段数据,将第一分段数据和第二分段数据输入到对应的所述乘法器中进行并行运算,输出子运算结果。

示例性的,假设第一待相乘数据为1024位的数据

在一实施例中,预设的降幂模型为:

其中,

在一实施例中,假设第一待相乘数据为1024位的数据

由此得到每个乘法器对应处理的数据位宽范围,例如第一个128位的乘法器处理第一待相乘数据第896位到第1023位的数据段

S104、根据所述每个乘法器对应处理的数据位宽范围,将所述待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算,输出子运算结果。

在一实施例中,根据步骤S103得到的每个乘法器需要处理的数据位宽范围,得到第一待相乘数据和第二待相乘数据对应位宽范围的分段数据输入到对应的乘法器中,进行并行运算,输出子运算结果。由上述步骤S103得到,假设第一待相乘数据为1024位的数据

S105、根据所述子运算结果和所述运算系数,进行数据整合,输出最终运算结果。

在一实施例中,将子运算结果和对应的运算系数相乘,得到子乘积结果。将子乘积结果通过加法器进行相加整合,输出最终运算结果。由上述步骤S103得到,假设第一待相乘数据为1024位的数据

在一实施例中,根据每个乘法器对应处理的数据位宽范围获取乘法器的需求数量,并获取所述乘法器的实际数量。根据所述需求数量和所述实际数量,得到复用数量,并根据所述实际数量和所述复用数量,确定复用乘法器。根据所述乘法器的实际数量将所述待相乘数据对应数量的分段数据输入至所述乘法器中,进行并行运算,输出第一子运算结果。根据复用数量将所述待相乘数据剩余的分段数据输入至对应的复用乘法器中,进行并行运算,输出第二子运算结果。根据所述第一子运算结果和第二子运算结果,得到所述子运算结果。

在一实施例中,在实际应用中,由于芯片面积有限,在处理数据时可能存在需要的乘法器的数量比芯片中实际存在的乘法器的数量少的情况,因此需要选择芯片中的部分乘法器进行重复使用,才能处理完所有的数据。假设根据每个乘法器对应处理的数据位宽范围获取乘法器的需求数量是128个,并获取所述乘法器的实际数量只有120个。根据所述需求数量128个和所述实际数量120个,得到复用数量是8个,从而需要确定复用乘法器为8个,假设确定第1-8个乘法器为复用乘法器。首先将待相乘数据对应数量的分段数据输入至120个乘法器中,进行并行运算,输出第一子运算结果。之后,将待相乘数据剩余未处理的分段数据输入至对应的复用乘法器第1-8个乘法器中,进行并行运算,输出第二子运算结果。根据第一子运算结果和第二子运算结果,得到子运算结果。将子运算结果和对应的运算系数相乘得到乘积结果,将所有子乘积结果通过加法器进行相加整合,输出最终运算结果。

在一实施例中,在需要使用复用乘法器时,可以用过时钟选择器进行选择输出,从而可以获取到首先处理的第一子运算结果和复用处理的第二子运算结果。根据时钟选择器选择输出预设第一时刻的所述乘法器运算得到的子运算结果,得到所述第一子运算结果。根据时钟选择器选择输出预设第二时刻的所述乘法器运算得到的子运算结果,得到所述第二子运算结果。根据第一子运算结果和第二子运算结果,得到子运算结果。将子运算结果和对应的运算系数相乘得到乘积结果,将所有子乘积结果通过加法器进行相加整合,输出最终运算结果。其中,第一时刻和第二时刻可以根据实际情况进行设定,在本实施例中不作限定。

在一实施例中,图2是本申请实施例提供的降幂过程示意图,参照图2,根据降幂变换,可以把待相乘数据为1024*1024位的大位宽数据转换成128位宽与128位宽的数据相乘。通过多个128位乘法器的复用与并行运算,再加若干加法器即可实现1024*1024位的大位宽数据的计算。由时钟选择器在不同时刻选择不同数据组合并在乘法器中相乘,然后把相乘的结果按规律移位,并在加法器中进行相加,最终将所有坐标中的128*128位数据计算完成,并且通过拼接整合,即可完成最终的1024*1024位数据的运算。在涉及银行卡或通信卡芯片中的密钥的加密或者解密过程,其通常都需要处理大位宽数据的相乘过程,可以通过本实施例的方式进行大位宽数据的处理,使得在较小的芯片面积中运用小位宽的乘法器完成大位宽数据相乘处理,通过小位宽乘法器进行并行运算,提高了运行速度,从而提高运算效率。

在一实施例中,图3是本申请实施例提供的乘法器运行过程示意图,参照图3,以64*64位乘法器计算128bit数据相乘为例,待相乘数据a和待相乘数据b均为128bit数据。因此,由于是64*64位的乘法器,因此确定乘法器的输入端口位宽为64位,则确定位差宽度为64位。将待相乘数据a和待相乘数据b均为128bit数据以及位差宽度64位输入预设的降幂模型中,得到降幂变换为:

因此,上式可以表示为:

由此,两个128bit数据的乘积可以用4个64位乘法器并行运算得到运算结果。参照图3,将

在一实施例中,考虑到降幂过程存在溢位的影响,因而,将大位宽待相乘数据输入到对应的预设降幂模型中时,会将所述待相乘数据适当增加位宽,以适应小位宽乘法器处理时的溢位影响。在预设的降幂模型中进行增加位宽时,根据对应的乘法器的位宽,对大位宽乘法器的数据按照位宽差值进行穿插增加的位宽,一般穿插增加的位宽值可以是2bit。因此,得到预设的降幂模型设置为:

其中,

若第一待相乘数据位宽和第二待相乘数据的位宽不相等时,则将小位宽的待相乘数据进行高位补0后,转换成第一待相乘数据位宽和第二待相乘数据的位宽相等。其中,

在一实施例中,假设第一待相乘数据为256位的数据

由此得到每个乘法器对应处理的数据位宽范围,例如第一个66位的乘法器处理第一待相乘数据第192位到第255位的数据段

上述,通过根据多个乘法器的输入端口位宽确定位差宽度,将待相乘数据和位差宽度输入预设的降幂模型中,确定每个乘法器对应处理的数据位宽范围和对应的每个乘法器运算系数,根据每个乘法器对应处理的数据位宽范围将待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算输出子运算结果,根据子运算结果和运算系数进行数据整合,输出最终运算结果。采用上述技术手段,可以通过多个小位宽的乘法器处理大位宽数据相乘,可以降低芯片占用面积和运算功耗,提升大位宽数据处理工作效率。此外,通过多个乘法器进行并行运算输出运算结果,减少了运算时间,进而提升了大位宽数据处理的工作效率。

在上述实施例的基础上,图4为本申请实施例提供的一种大位宽数据处理装置的结构示意图。参考图4,本实施例提供的大位宽数据处理装置,用于密钥的加密或解密过程,具体包括:第一位宽确定模块21、第二位宽确定模块22、第一运算模块23、第二运算模块24和第三运算模块25。

其中,第一位宽确定模块21,用于确定多个乘法器的输入端口位宽;

第二位宽确定模块22,用于根据所述乘法器的输入端口位宽,确定位差宽度;

第一运算模块23,用于获取待相乘数据,所述待相乘数据包括密文数据或明文数据,将所述待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的数据位宽范围和对应的每个乘法器运算系数,其中所述待相乘数据的位宽大于所述乘法器的输入端口位宽;

第二运算模块24,用于根据所述每个乘法器对应处理的数据位宽范围,将所述待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算,输出子运算结果;

第三运算模块25,用于根据所述子运算结果和所述运算系数,进行数据整合,输出最终运算结果。

进一步的,所述第一运算模块23,还用于获取第一待相乘数据和第二待相乘数据,其中第一待相乘数据的位宽和第二待相乘数据的位宽均大于所述乘法器的输入端口位宽;

将所述第一待相乘数据、所述第二待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一待相乘数据对应的分段数据、第二待相乘数据对应的分段数据和对应的每个乘法器运算系数。

进一步的,所述第一运算模块23,还用于将所述第一待相乘数据、所述第二待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的第一待相乘数据位宽范围和第二待相乘数据位宽范围;

根据所述第一待相乘数据位宽范围,将所述第一待相乘数据进行分割,得到第一分段数据,根据所述第二待相乘数据位宽范围,将所述第二待相乘数据进行分割,得到第二分段数据,将第一分段数据和第二分段数据输入到对应的所述乘法器中进行并行运算,输出子运算结果。

进一步的,所述第三运算模块25,还用于将所述子运算结果和对应的运算系数相乘,得到子乘积结果;

将所述子乘积结果通过加法器进行相加整合,输出最终运算结果。

进一步的,所述预设的降幂模型,包括:

其中,

进一步的,所述第二运算模块24,还用于根据每个乘法器对应处理的数据位宽范围获取乘法器的需求数量,并获取所述乘法器的实际数量;

根据所述需求数量和所述实际数量,得到复用数量,并根据所述实际数量和所述复用数量,确定复用乘法器;

根据所述乘法器的实际数量将所述待相乘数据对应数量的分段数据输入至所述乘法器中,进行并行运算,输出第一子运算结果;

根据复用数量将所述待相乘数据剩余的分段数据输入至对应的复用乘法器中,进行并行运算,输出第二子运算结果;

根据所述第一子运算结果和第二子运算结果,得到所述子运算结果。

进一步的,所述第二运算模块24,还用于根据时钟选择器选择输出预设第一时刻的所述乘法器运算得到的子运算结果,得到所述第一子运算结果;

根据时钟选择器选择输出预设第二时刻的所述乘法器运算得到的子运算结果,得到所述第二子运算结果。

上述,通过根据多个乘法器的输入端口位宽确定位差宽度,将待相乘数据和位差宽度输入预设的降幂模型中,确定每个乘法器对应处理的数据位宽范围和对应的每个乘法器运算系数,根据每个乘法器对应处理的数据位宽范围将待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算输出子运算结果,根据子运算结果和运算系数进行数据整合,输出最终运算结果。采用上述技术手段,可以通过多个小位宽的乘法器处理大位宽数据相乘,可以降低芯片占用面积和运算功耗,提升大位宽数据处理工作效率。此外,通过多个乘法器进行并行运算输出运算结果,减少了运算时间,进而提升了大位宽数据处理的工作效率。

本申请实施例提供的大位宽数据处理装置可以用于执行上述实施例提供的大位宽数据处理方法,具备相应的功能和有益效果。

本申请实施例提供了一种大位宽数据处理设备,参照图5,该大位宽数据处理设备包括:处理器31、存储器32、通信模块33、输入装置34及输出装置35。该大位宽数据处理设备中处理器的数量可以是一个或者多个,该大位宽数据处理设备中的存储器的数量可以是一个或者多个。该大位宽数据处理设备的处理器、存储器、通信模块、输入装置及输出装置可以通过总线或者其他方式连接。

存储器32作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的大位宽数据处理方法对应的程序指令/模块(例如,大位宽数据处理装置中的第一位宽确定模块、第二位宽确定模块、第一运算模块、第二运算模块和第三运算模块)。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

通信模块33用于进行数据传输。

处理器31通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的大位宽数据处理方法。

输入装置34可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置35可包括显示屏等显示设备。

上述提供的大位宽数据处理设备可用于执行上述实施例提供的大位宽数据处理方法,具备相应的功能和有益效果。

本申请实施例还提供一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种大位宽数据处理方法,该大位宽数据处理方法,用于密钥的加密或解密过程,包括:确定多个乘法器的输入端口位宽;根据所述乘法器的输入端口位宽,确定位差宽度;获取待相乘数据,所述待相乘数据包括密文数据或明文数据,将所述待相乘数据和所述位差宽度,输入预设的降幂模型中,确定每个乘法器对应处理的数据位宽范围和对应的每个乘法器运算系数,其中所述待相乘数据的位宽大于所述乘法器的输入端口位宽;根据所述每个乘法器对应处理的数据位宽范围,将所述待相乘数据对应位宽范围的分段数据输入至对应的乘法器中,进行并行运算,输出子运算结果;根据所述子运算结果和所述运算系数,进行数据整合,输出最终运算结果。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本申请实施例所提供的一种存储计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的大位宽数据处理方法,还可以执行本申请任意实施例所提供的大位宽数据处理方法中的相关操作。

上述实施例中提供的大位宽数据处理装置、存储介质及大位宽数据处理设备可执行本申请任意实施例所提供的大位宽数据处理方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的大位宽数据处理方法。

上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。

相关技术
  • 一种数据库数据处理方法、装置、设备及存储介质
  • 一种数据仓库数据处理方法、装置、电子设备及存储介质
技术分类

06120114565425