CN106569778A - 一种数据处理的方法及电子设备 - Google Patents
一种数据处理的方法及电子设备 Download PDFInfo
- Publication number
- CN106569778A CN106569778A CN201510669919.4A CN201510669919A CN106569778A CN 106569778 A CN106569778 A CN 106569778A CN 201510669919 A CN201510669919 A CN 201510669919A CN 106569778 A CN106569778 A CN 106569778A
- Authority
- CN
- China
- Prior art keywords
- play amount
- data
- electronic equipment
- memory space
- operational data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及数据处理领域,特别涉及一种数据处理的方法及电子设备,用以解决目前二进制数据进行平方运算处理速度较低的问题。其中,该方法包括:电子设备通过执行引擎调用至少两个处理单元分别执行:确定第一偏移量,并获得第二偏移量;根据第二偏移量从第二存储空间中获取待运算数据;根据待运算数据和第一偏移量确定第三偏移量;根据第三偏移量从第三存储空间获取与待运算数据对应的运算结果,第三存储空间中预先存储有与待运算数据长度相同的数据的所有平方运算结果。这种技术方案由于对于不同的第一偏移量,数据处理的过程是相互独立的,因此,能够通过执行引擎调用多个处理单元同时进行处理,从而提高了二进制数据平方运算的处理的速度。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据处理的方法及电子设备。
背景技术
目前,二进制域上元素的加、减、乘、模、平方、求逆等基本运算是基于二进制域构造的椭圆曲线密码体制的运算基础。一次椭圆曲线上的典型运算的实现,需要调用多至几十次的有限域元素运算。因此,提高二进制域运算的执行速度,对于提高椭圆曲线密码体制的执行效率具有非常重要的意义。
目前的二进制域元素平方计算的方法中,大部分是基于串行算法的,每次只能处理一个比特位,并且每次处理的比特位不是相互独立的。而在Android平台上采用这些方法时,利用的是CPU(Central Processing Unit,中央处理器)的计算资源,现有技术中大部分电子设备的处理单元不仅包括CPU,还包括GPU(Graphics Processing Unit,图形处理器)等,当利用具有多个处理单元的电子设备,通过现有的串行算法进行二进制域元素的平方计算时,只能利用其中一个处理单元进行处理,无法通过多个处理单元同时进行处理。
发明内容
本发明提供一种数据处理的方法及电子设备,用以解决在进行二进制域元素的平方运算时,能够使用多个处理单元同时对二进制域元素进行处理得到运算结果,从而提升处理效率。
第一方面,提供了一种数据处理的方法,包括:
电子设备通过执行引擎调用至少两个处理单元分别执行:
确定第一偏移量,所述第一偏移量用于指向第一存储空间中的一个第一数据存储单元,所述第一存储空间中包括至少两个第一数据存储单元,所述第一数据存储单元与所述第一偏移量一一对应,其中,所述电子设备通过每个处理单元确定的第一偏移量不同;
根据预设算法对所述第一偏移量进行运算,以获得第二偏移量;
根据所述第二偏移量从所述第二存储空间中获取待运算数据,所述待运算数据为二进制数据;
根据所述待运算数据和所述第一偏移量确定第三偏移量;
根据所述第三偏移量从第三存储空间获取与所述待运算数据对应的运算结果,所述第三存储空间中预先存储有与所述待运算数据长度相同的数据的所有平方运算结果。
结合第一方面,在第一方面的第一种可能的实现方式中,所述电子设备根据所述待运算数据和所述第一偏移量确定第三偏移量,包括:
所述电子设备在确定所述第一偏移量为奇数时,将所述待运算数据乘以2得到中间结果,将所述中间结果加1作为所述第三偏移量;
所述电子设备在确定所述第一偏移量为偶数时,将所述待运算数据乘以2得到中间结果,将所述中间结果作为所述第三偏移量。
结合第一方面第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述电子设备根据所述待运算数据和所述第一偏移量确定第三偏移量之前,还包括:
所述电子设备根据预设算法对所述第一偏移量进行运算以获得标志位,所述标识位用于标识所述第一偏移量的奇偶性。
结合第一方面或第一方面第一种可能的实现方式或第一方面第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述电子设备根据根据第二偏移量从所述第二存储空间中获取待运算数据,包括:
所述电子设备确定所述第二偏移量在第二存储空间中指向的第二数据存储单元;
所述电子设备读取所述第二数据存储单元中存储的待运算数据。
结合第一方面或第一方面第一种可能的实现方式或第一方面第二种可能的实现方式或第一方面第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述电子设备根据所述第三偏移量从第三存储空间获取与所述待运算数据对应的运算结果,包括:
所述电子设备确定所述第三偏移量在第三存储空间中指向的第三数据存储单元;
所述电子设备获取所述第三数据存储单元中存储的与所述待运算数据对应的部分或全部运算结果。
结合第一方面或第一方面第一种可能的实现方式或第一方面第二种可能的实现方式或第一方面第三种可能的实现方式或第一方面第四种可能的实现方式,在第一方面的第五种可能的实现方式中,该方法还包括:
所述电子设备将获取的所述运算结果存储到第一偏移量指向的第一数据存储单元中。
结合第一方面或第一方面第一种可能的实现方式或第一方面第二种可能的实现方式或第一方面第三种可能的实现方式或第一方面第四种可能的实现方式或第一方面第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所有满足与所述待运算数据长度相同的数据的平方的运算结果是所述电子设备根据所述第三偏移量,通过隔项插零的方法确定的。
结合第一方面或第一方面第一种可能的实现方式或第一方面第二种可能的实现方式或第一方面第三种可能的实现方式或第一方面第四种可能的实现方式或第一方面第五种可能的实现方式或第一方面第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述执行引擎为RenderScript执行引擎。
第二方面,提供了一种数据处理的电子设备,包括:
执行单元,用于调用至少两个处理单元;
处理单元,用于确定第一偏移量,所述第一偏移量用于指向第一存储空间中的一个第一数据存储单元,所述第一存储空间中包括至少两个第一数据存储单元,所述第一数据存储单元与所述第一偏移量一一对应,其中,所述电子设备通过每个处理单元确定的第一偏移量不同;根据预设算法对所述第一偏移量进行运算,以获得第二偏移量;根据所述第二偏移量从所述第二存储空间中获取待运算数据,所述待运算数据为二进制数据;根据所述待运算数据和所述第一偏移量确定第三偏移量;根据所述第三偏移量从第三存储空间获取与所述待运算数据对应的运算结果,所述第三存储空间中预先存储有与所述待运算数据长度相同的数据的所有平方运算结果。
结合第二方面,在第二方面的第一种可能的实现方式中,所述处理单元,具体用于:
在确定所述第一偏移量为奇数时,将所述待运算数据乘以2得到中间结果,将所述中间结果加1作为所述第三偏移量;在确定所述第一偏移量为偶数时,将所述待运算数据乘以2得到中间结果,将所述中间结果作为所述第三偏移量。
结合第二方面第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述处理单元,具体用于:
根据所述待运算数据和所述第一偏移量确定第三偏移量之前,根据预设算法对所述第一偏移量进行运算以获得标志位,所述标识位用于标识所述第一偏移量的奇偶性。
结合第二方面或第二方面第一种可能的实现方式或第二方面第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述处理单元,具体用于:
确定所述第二偏移量在第二存储空间中指向的第二数据存储单元;并读取所述第二数据存储单元中存储的待运算数据。
结合第二方面或第二方面第一种可能的实现方式或第二方面第二种可能的实现方式或第二方面第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述处理单元,具体用于:
确定所述第三偏移量在第三存储空间中指向的第三数据存储单元;并获取所述第三数据存储单元中存储的与所述待运算数据对应的部分或全部运算结果。
结合第二方面或第二方面第一种可能的实现方式或第二方面第二种可能的实现方式或第二方面第三种可能的实现方式或第二方面第四种可能的实现方式,在第二方面的第五种可能的实现方式中,,所述处理单元,还用于:
将获取的所述运算结果存储到第一偏移量指向的第一数据存储单元中。
结合第二方面或第二方面第一种可能的实现方式或第二方面第二种可能的实现方式或第二方面第三种可能的实现方式或第二方面第四种可能的实现方式或第二方面第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所有满足与所述待运算数据长度相同的数据的平方的运算结果是所述电子设备根据所述第三偏移量,通过隔项插零的方法确定的。
本发明实施例的技术方案中,由于电子设备对于不同的第一偏移量,数据处理的过程是相互独立的,因此,能够通过执行引擎调用多个处理单元同时进行处理,从而发挥了具有多个处理单元的电子设备并行处理的优势,提高了处理的速度。
附图说明
图1为本发明实施例数据处理的方法的流程示意图;
图2为本发明实施例数据处理的方法的原理示意图;
图3为本发明实施例数据处理的电子设备的示意图;
图4为本发明实施例数据处理的电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据处理的方法及电子设备,用以实现能够使用多个处理单元并行处理得到二进制数据平方运算的结果。其中,方法和电子设备是基于同一发明构思的,由于方法及电子设备解决问题的原理相似,因此电子设备与方法的实施可以相互参见,重复之处不再赘述。
本发明实施例中程序的设计需要符合执行引擎的软件框架的定义,其中,以执行引擎为RenderScript执行引擎为例,RenderScript执行引擎的软件框架的定义包括:一系列完成运算的模块,如用于完成计算的RenderScript执行引擎、处理器、存储器,以及这些模块之间的关系和交互机制,例如RenderScript执行引擎通过函数接口调用存储器中的数据,其中,函数接口是通过对象实现的,在框架中规定了对象所具有属性信息。此外,该软件框架还包括该框架的调整机制,通过适当的调整,可根据实际情况的需要,从而设计出所需要的软件。当执行引擎为其他执行引擎时,其执行引擎的软件框架的定义与此类似,在此不再赘述。
需要说明的是,通过该执行引擎的框架设计的程序能够运行在支持Android操作系统的电子设备中,即该执行引擎能够运行在支持Android操作系统的电子设备。
本发明实施例的电子设备可以为支持Android操作系统的终端,如手机、平板、电脑或是支持Android操作系统的服务器等。
具体的,如图1所示,本发明实施例数据处理的方法,包括:
步骤100,电子设备通过执行引擎调用至少两个处理单元分别执行步骤101:
其中,步骤101具体包括:
步骤1011,确定第一偏移量,第一偏移量用于指向第一存储空间中的一个第一数据存储单元,第一存储空间中包括至少两个第一数据存储单元,第一数据存储单元与第一偏移量一一对应,其中,电子设备通过每个处理单元确定的第一偏移量不同;
步骤1012,根据预设算法对第一偏移量进行运算,以获得第二偏移量;
步骤1013,根据第二偏移量从第二存储空间中获取待运算数据,待运算数据为二进制数据;
步骤1014,根据待运算数据和第一偏移量确定第三偏移量;
步骤1015,根据第三偏移量从第三存储空间获取与待运算数据对应的运算结果,第三存储空间中预先存储有与待运算数据长度相同的数据的所有平方运算结果。
以执行引擎为RenderScript执行引擎为例进行具体说明,当执行引擎为其他能够运行在Android操作系统的执行引擎时,其数据处理的过程与此类似,在此不再赘述。
需要说明的是,当执行引擎为RenderScript执行引擎时,其程序的设计需要符合RenderScript执行引擎的软件框架的定义,其中,特别指出的是,在RenderScript执行引擎的软件框架中,所有的存储单元的大小相同,当当执行引擎为其他能够运行在Android操作系统的执行引擎时,所有的存储单元的大小不一定必须相同,只要符合该执行引擎的软件框架的定义即可。
具体的,电子设备包括执行引擎和多个处理单元,其中,电子设备通过执行引擎调用的处理单元为正处于空闲状态的处理单元,特别的,当前正处于空闲的处理单元只有一个时,执行引擎可以只调用一个处理单元执行本发明实施例数据处理的过程,但是,当前正处于空闲状态的处理单元至少为两个时,例如,正处于空闲状态的处理单元为4个,可以通过执行引擎调用4个处理单元,分别针对不同的第一偏移量,分别执行数据处理的过程,从而提高了数据处理的效率。
在电子设备调用执行引擎之前,输入需要计算的二进制数据,并验证输入的二进制数据中是否存在不合法的字符,例如输入的二级制数据中存在字符“a”,则为不合法字符,需要重新输入,在确定数据的二进制数据合法后,将二进制数据划分为多个待运算数据依次分别存储到不同第二数据存储单元中。
此外,还可以通过预定义的私有成员变量记录第二存储空间占用的情况。
其中,需要计算的二进制数据的划分的方式,根据第二数据存储单元能够存储的大小和预先设定的划分规则确定的,例如第二数据存储单元最大能够存储8比特的二进制数据,则预先设定的划分规则,划分后的二进制数据的大小不能够大于8比特。
为简化计算方式,通常情况下,将需要计算的二进制数据划分为大小相同的待运算数据,例如需要计算的二进制数据为100011010011001110,将按照从低到高每8比特的方式划分得到待运算数据11001110,待运算数据000110100,以及待运算数据1,由于最后得到的但运算数据的比特数为1,可以在1的左面补零,使其满足8比特,得到00000001,存储到第二数据单元中。
可选的,电子设备在确定第一偏移量为奇数时,将待运算数据乘以2得到中间结果,将中间结果加1作为第三偏移量;
电子设备在确定第一偏移量为偶数时,将待运算数据乘以2得到中间结果,将中间结果作为第三偏移量。
例如:第一偏移量为00101001,是奇数,则将2×[00101001]+1作为第三偏移量,其中,中间结果为2×[00101001];第一偏移量为00000010,是偶数,则将2×[00000010]作为第三偏移量,其中,中间结果为2×[00000010]。
通过上述方法确定第三偏移量,不但简化了计算的方式,而且针对不同的第一偏移量,确定第三偏移量的过程是相互独立的,因此,可以通过多个处理器分别针对不同的第一偏移量并行运算得到对应的第三偏移量,提高了运算的效率。
可选的,电子设备根据待运算数据和第一偏移量确定第三偏移量之前,根据预设算法对第一偏移量进行运算以获得标志位,标识位用于标识第一偏移量的奇偶性。
其中,一种可选的预设算法为对第一偏移量进行模2运算,其中商为第二偏移量,余数为标志位,还可以为任何能够得到第二偏移量和标识位的预设算法,其中得到第二偏移量的预设算法与得到标识位的预设算法可以为同一算法,也可以为不同的算法。
通过预设算法确定的标识位确定第一偏移量的奇偶性,简化了运算方式。
可选的,电子设备确定第二偏移量在第二存储空间中指向的第二数据存储单元,并读取第二数据存储单元中存储的待运算数据。
例如,如图2所示,第二偏移量指向第二存储空间202中的第二数据存储单元A[3],则读取A[3]中存储的待运算数据。
可选的,电子设备确定第三偏移量在第三存储空间中指向的第三数据存储单元,并获取第三数据存储单元中存储的与待运算数据对应的部分或全部运算结果。
例如,如图2所示,假设所有数据存储单元的大小都为8比特时,第三偏移量指向第三存储空间201中的第三数据存储单元T[3],T[3]中存储的是待运算数据00000001平方运算高8位的运算结果,则获取待运算数据00000001平方运算高8位的运算结果。
当数据存储单元的大小设置的较大时,如16比特,可以在数据存储单元中存储待运算数据的全部运算结果。
通常情况下,将数据存储单元的大小设置为8比特,设置的较大浪费存储空间,设置的较小计算量较大。
可选的,电子设备将获取的运算结果存储到第一偏移量指向的第一数据存储单元中。
例如,以图2为例,处理器确定的第一偏移量为指向第一数据存储单元B[3]的偏移量,则将运算结果存储在B[3]中,便于输出或是根据该运算结果进行下一步的计算。
可选的,所有满足与待运算数据长度相同的数据的平方的运算结果是根据第三偏移量,通过隔项插零的方法确定的。
若第一存储空间中存储的待运算数据为8比特的二进制数据,则第三存储空间中存储的为所有8比特二进制数据平方的运算结果。
具体的,若第三偏移量模2余0,则将第三偏移量的二进制表示{a7,a6,a5,a4,a3,a2,a1,a0}右移1位后得到{0,a7,a6,a5,a4,a3,a2,a1},从右向左取4位得到比特串{a4,a3,a2,a1},在每个比特的右侧插入0比特,得到新的比特串{0,a4,0,a3,0,a2,0,a1);如果第三偏移量模2余1,则将第三偏移量的二进制表示{a7,a6,a5,a4,a3,a2,a1,a0}右移5位后得到{0,0,0,0,0,a7,a6,a5},从右向左取4位得到比特串{0,a7,a6,a5},在每个比特的右侧插入0比特,得到新的比特串{0,0,0,a7,0,a6,0,a5},将得到的新的比特串存储到该第三偏移量指向的第三数据存储单元中,其中第三偏移量模2余0时,对应得到新的比特串为第三偏移量模2的商进行平方运算结果中低8位,第三偏移量模2余1时,对应得到新的比特串为第三偏移量模2的商进行平方运算结果中高8位。
以第三偏移量为101100010为例进行对隔项插零法进行说明,对第三偏移量进行模2运算,余0,则将偏移量向右移1位后得到010110001,从右向左取4位得到比特串0001,然后在比特串的右侧插入比特0,得到新的比特串00000001,将00000001存储到第三偏移量101100010指向的第三数据存储单元,其中00000001为101100010模2的商进行平方运算得到的结果中的低第8位二进制数的部分。
例如:第三偏移量(2n+1)和2n指向的第三数据存储单元中分别存储的为二进制数据n进行平方运算得到结果的高8位部分和第8位部分。
由于第三数据存储单元中每个存储的数据的计算过程是独立的,因此该计算过程可以进行并行计算。
可选的,将第三数据存储单元中存储的数据设置为静态类成员类型。
具体的,若第二数据存储单元中存储的待运算数据为8比特的数据,则第三存储空间中存储的为所有8比特的二进制数据即从00000000到11111111平方运算的结果,或者第三存储空间中存储的为所有8比特的二进制数据即从0000000到11111111平方运算的结果,则将需要计算的二进制数据划分为8比特的待运算数据。
以此类推,若第二数据存储单元中存储的待运算数据为4比特的数据,则第三存储空间中存储的为所有4比特的二进制数据即从0000到1111平方运算的结果,或者第三存储空间中存储的为所有4比特的二进制数据即从0000到1111平方运算的结果,则将需要计算的二进制数据划分为4比特的待运算数据。
具体的,以其中一个处理单元数据处理的过程为例进行说明,其它处理单元数据处理的过程与此相同,在此不再赘述。
如图2所示,第一存储空间200中包括多个第一数据存储单元B[0]~B[2n-1],第二存储空间202中包括多个第二存储单元A[0]~A[k-1],根据需要设置n和k的取值范围,通常情况下,将n的取值为k的取值的2倍,第三存储空间201中第三数据存储单元T[0]~T[511],其中第三存储空间中存储的为所有8比特二进制数据的平方的运算结果。
以电子设备确定第一偏移量为0和1为例进行具体说明。
第一偏移量执行预设算法得到第二偏移量和标志位,通常情况下,预设算法为模2运算,当第一偏移量为0时,模2得到第二偏移量0和标识位0,由于标识位为0,则第一偏移量为偶数,将第二偏移量指向的第二数据存储单元A[0],若A[0]中存储的待运算数据为00000001,则将2倍的待运算数据00000010作为第三偏移量,然后读取第三偏移量指向的第三数据存储单元中存储的数据,并将该数据存储到第一偏移量为0的第一数据存储单元中。
当第一偏移量为1时,模2得到第二偏移量0和标识位1,由于标识位为1,则第一偏移量为奇数,将第二偏移量指向的第二数据存储单元A[0],若A[0]中存储的待运算数据为00000001,则将2倍的待运算数据00000010加1得到的00000011作为第三偏移量,然后读取第三偏移量指向的第三数据存储单元中存储的数据,并将该数据存储到第一偏移量为1的第一数据存储单元中。
由于针对每个第一偏移量执行数据处理的过程是独立的,因此可以使用多个处理单元进行并行运算,当前时刻,执行引擎确定可用的处理单元为4个时,可以实现通过4个处理单元分别完成针对一个第一偏移量执行数据存储的运算,因此,发挥了多个处理单元电子设备并行处理的优势,提高了处理的速度。
基于同一发明构思,本发明实施例中还提供了一种数据处理的电子设备,由于本发明实施例数据处理的电子设备对应的方法为一种数据处理的方法,因此本发明实施例电子设备的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,本发明实施例数据处理的电子设备,包括:
执行单元300,用于调用至少两个处理单元;
处理单元301,用于确定第一偏移量,第一偏移量用于指向第一存储空间中的一个第一数据存储单元,第一存储空间中包括至少两个第一数据存储单元,第一数据存储单元与第一偏移量一一对应,其中,电子设备通过每个处理单元确定的第一偏移量不同;根据预设算法对第一偏移量进行运算,以获得第二偏移量;根据第二偏移量从第二存储空间中获取待运算数据,待运算数据为二进制数据;根据待运算数据和第一偏移量确定第三偏移量;根据第三偏移量从第三存储空间获取与待运算数据对应的运算结果,第三存储空间中预先存储有与待运算数据长度相同的数据的所有平方运算结果。
可选的,处理单元301,具体用于:
在确定第一偏移量为奇数时,将待运算数据乘以2得到中间结果,将中间结果加1作为第三偏移量;在确定第一偏移量为偶数时,将待运算数据乘以2得到中间结果,将中间结果作为第三偏移量。
可选的,处理单元301,具体用于:
根据待运算数据和第一偏移量确定第三偏移量之前,根据预设算法对第一偏移量进行运算以获得标志位,标识位用于标识第一偏移量的奇偶性。
可选的,处理单元301,具体用于:
确定第二偏移量在第二存储空间中指向的第二数据存储单元;并读取第二数据存储单元中存储的待运算数据。
可选的,处理单元301,具体用于:
确定第三偏移量在第三存储空间中指向的第三数据存储单元;并获取第三数据存储单元中存储的与待运算数据对应的部分或全部运算结果。
可选的,处理单元301,还用于:
将获取的运算结果存储到第一偏移量指向的第一数据存储单元中。
可选的,所有满足与待运算数据长度相同的数据的平方的运算结果是电子设备根据第三偏移量,通过隔项插零的方法确定的。
可选的,执行引擎为RenderScript执行引擎。
需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种数据处理的电子设备40,如图4所示,该电子设备包括执行引擎41,处理器42,存储器43,输入/输出接口45,通信接口46和总线44,其中处理器42可以为多核处理器,包括处理器01、处理器10…,处理器42,也可以包括CPU、GPU或是DSP。其中,处理器42、存储器43、输入/输出接口45和通信接口46通过总线44实现彼此之间的通信连接,总线在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器42可以包括通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案,其中,执行引擎41为专用的处理器。
存储器43可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器43可以存储操作系统、其他应用程序和运算数据。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器43中,并由处理器42来执行。
执行引擎和处理器用于执行本发明实施例数据处理的方法,从而获取到运算的结果。
综上所述,本发明实施例的电子设备通过执行引擎调用至少两个处理单元分别执行:确定第一偏移量,第一偏移量用于指向第一存储空间中的一个第一数据存储单元,第一存储空间中包括至少两个第一数据存储单元,第一数据存储单元与第一偏移量一一对应,其中,电子设备通过每个处理单元确定的第一偏移量不同;根据预设算法对第一偏移量进行运算,以获得第二偏移量;根据第二偏移量从第二存储空间中获取待运算数据,待运算数据为二进制数据;根据待运算数据和第一偏移量确定第三偏移量;根据第三偏移量从第三存储空间获取与待运算数据对应的运算结果,第三存储空间中预先存储有与待运算数据长度相同的数据的所有平方运算结果。这种技术方案由于电子设备对于不同的第一偏移量,数据处理的过程是相互独立的,因此,能够通过执行引擎调用多个处理单元同时进行处理,从而发挥了具有多个处理单元的电子设备并行处理的优势,提高了处理的速度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种数据处理的方法,其特征在于,包括:
电子设备通过执行引擎调用至少两个处理单元分别执行:
确定第一偏移量,所述第一偏移量用于指向第一存储空间中的一个第一数据存储单元,所述第一存储空间中包括至少两个第一数据存储单元,所述第一数据存储单元与所述第一偏移量一一对应,其中,所述电子设备通过每个处理单元确定的第一偏移量不同;
根据预设算法对所述第一偏移量进行运算,以获得第二偏移量;
根据所述第二偏移量从所述第二存储空间中获取待运算数据,所述待运算数据为二进制数据;
根据所述待运算数据和所述第一偏移量确定第三偏移量;
根据所述第三偏移量从第三存储空间获取与所述待运算数据对应的运算结果,所述第三存储空间中预先存储有与所述待运算数据长度相同的数据的所有平方运算结果。
2.如权利要求1所述的方法,其特征在于,所述电子设备根据所述待运算数据和所述第一偏移量确定第三偏移量,包括:
所述电子设备在确定所述第一偏移量为奇数时,将所述待运算数据乘以2得到中间结果,将所述中间结果加1作为所述第三偏移量;
所述电子设备在确定所述第一偏移量为偶数时,将所述待运算数据乘以2得到中间结果,将所述中间结果作为所述第三偏移量。
3.如权利要求2所述的方法,其特征在于,所述电子设备根据所述待运算数据和所述第一偏移量确定第三偏移量之前,还包括:
所述电子设备根据预设算法对所述第一偏移量进行运算以获得标志位,所述标识位用于标识所述第一偏移量的奇偶性。
4.如权利要求1至3任一所述的方法,其特征在于,所述电子设备根据根据第二偏移量从所述第二存储空间中获取待运算数据,包括:
所述电子设备确定所述第二偏移量在第二存储空间中指向的第二数据存储单元;
所述电子设备读取所述第二数据存储单元中存储的待运算数据。
5.如权利要求1至4任一所述的方法,其特征在于,所述电子设备根据所述第三偏移量从第三存储空间获取与所述待运算数据对应的运算结果,包括:
所述电子设备确定所述第三偏移量在第三存储空间中指向的第三数据存储单元;
所述电子设备获取所述第三数据存储单元中存储的与所述待运算数据对应的部分或全部运算结果。
6.如权利要求1至5任一所述的方法,其特征在于,该方法还包括:
所述电子设备将获取的所述运算结果存储到第一偏移量指向的第一数据存储单元中。
7.如权利要求1至6任一所述的方法,其特征在于,所有满足与所述待运算数据长度相同的数据的平方的运算结果是所述电子设备根据所述第三偏移量,通过隔项插零的方法确定的。
8.一种数据处理的电子设备,其特征在于,包括:
执行单元,用于调用至少两个处理单元;
处理单元,用于确定第一偏移量,所述第一偏移量用于指向第一存储空间中的一个第一数据存储单元,所述第一存储空间中包括至少两个第一数据存储单元,所述第一数据存储单元与所述第一偏移量一一对应,其中,所述电子设备通过每个处理单元确定的第一偏移量不同;根据预设算法对所述第一偏移量进行运算,以获得第二偏移量;根据所述第二偏移量从所述第二存储空间中获取待运算数据,所述待运算数据为二进制数据;根据所述待运算数据和所述第一偏移量确定第三偏移量;根据所述第三偏移量从第三存储空间获取与所述待运算数据对应的运算结果,所述第三存储空间中预先存储有与所述待运算数据长度相同的数据的所有平方运算结果。
9.如权利要求8所述的电子设备,其特征在于,所述处理单元,具体用于:
在确定所述第一偏移量为奇数时,将所述待运算数据乘以2得到中间结果,将所述中间结果加1作为所述第三偏移量;在确定所述第一偏移量为偶数时,将所述待运算数据乘以2得到中间结果,将所述中间结果作为所述第三偏移量。
10.如权利要求9所述的电子设备,其特征在于,所述处理单元,具体用于:
根据所述待运算数据和所述第一偏移量确定第三偏移量之前,根据预设算法对所述第一偏移量进行运算以获得标志位,所述标识位用于标识所述第一偏移量的奇偶性。
11.如权利要求8至10任一所述的电子设备,其特征在于,所述处理单元,具体用于:
确定所述第二偏移量在第二存储空间中指向的第二数据存储单元;并读取所述第二数据存储单元中存储的待运算数据。
12.如权利要求8至11任一所述的电子设备,其特征在于,所述处理单元,具体用于:
确定所述第三偏移量在第三存储空间中指向的第三数据存储单元;并获取所述第三数据存储单元中存储的与所述待运算数据对应的部分或全部运算结果。
13.如权利要求8至12任一所述的电子设备,其特征在于,所述处理单元,还用于:
将获取的所述运算结果存储到第一偏移量指向的第一数据存储单元中。
14.如权利要求8至13任一所述的电子设备,其特征在于,所有满足与所述待运算数据长度相同的数据的平方的运算结果是所述电子设备根据所述第三偏移量,通过隔项插零的方法确定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510669919.4A CN106569778B (zh) | 2015-10-13 | 2015-10-13 | 一种数据处理的方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510669919.4A CN106569778B (zh) | 2015-10-13 | 2015-10-13 | 一种数据处理的方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106569778A true CN106569778A (zh) | 2017-04-19 |
CN106569778B CN106569778B (zh) | 2019-06-07 |
Family
ID=58508425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510669919.4A Active CN106569778B (zh) | 2015-10-13 | 2015-10-13 | 一种数据处理的方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106569778B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107589909A (zh) * | 2017-08-24 | 2018-01-16 | 阿里巴巴集团控股有限公司 | 数据处理方法和装置、电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397241B1 (en) * | 1998-12-18 | 2002-05-28 | Motorola, Inc. | Multiplier cell and method of computing |
CN1573682A (zh) * | 2003-06-16 | 2005-02-02 | 三星电子株式会社 | 在有限域中实现平方运算的方法和装置 |
US20060210068A1 (en) * | 2005-03-15 | 2006-09-21 | Microsoft Corporation | Elliptic curve point octupling using single instruction multiple data processing |
CN200990078Y (zh) * | 2006-07-03 | 2007-12-12 | 赵惠溥 | 快速rsa密码和大数模指数运算的电路 |
CN101320417A (zh) * | 2008-07-22 | 2008-12-10 | 深圳华为通信技术有限公司 | 一种平方器电路及实现方法 |
CN101432755A (zh) * | 2006-04-28 | 2009-05-13 | 松下电器产业株式会社 | 程序难破解化系统、程序难破解化装置及程序难破解化方法 |
CN101630244A (zh) * | 2009-07-28 | 2010-01-20 | 哈尔滨工业大学深圳研究生院 | 一种流水线型椭圆曲线双标量乘法系统及方法 |
US20120311007A1 (en) * | 2011-06-06 | 2012-12-06 | Certicom Corp. | Squaring binary finite field elements |
CN103138770A (zh) * | 2010-01-12 | 2013-06-05 | 北京忆恒创源科技有限公司 | 有限域平方计算电路 |
CN103605494A (zh) * | 2013-10-17 | 2014-02-26 | 陕西万达信息工程有限公司 | 一种平方运算电路 |
-
2015
- 2015-10-13 CN CN201510669919.4A patent/CN106569778B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397241B1 (en) * | 1998-12-18 | 2002-05-28 | Motorola, Inc. | Multiplier cell and method of computing |
CN1573682A (zh) * | 2003-06-16 | 2005-02-02 | 三星电子株式会社 | 在有限域中实现平方运算的方法和装置 |
US20060210068A1 (en) * | 2005-03-15 | 2006-09-21 | Microsoft Corporation | Elliptic curve point octupling using single instruction multiple data processing |
CN101432755A (zh) * | 2006-04-28 | 2009-05-13 | 松下电器产业株式会社 | 程序难破解化系统、程序难破解化装置及程序难破解化方法 |
CN200990078Y (zh) * | 2006-07-03 | 2007-12-12 | 赵惠溥 | 快速rsa密码和大数模指数运算的电路 |
CN101320417A (zh) * | 2008-07-22 | 2008-12-10 | 深圳华为通信技术有限公司 | 一种平方器电路及实现方法 |
CN101630244A (zh) * | 2009-07-28 | 2010-01-20 | 哈尔滨工业大学深圳研究生院 | 一种流水线型椭圆曲线双标量乘法系统及方法 |
CN103138770A (zh) * | 2010-01-12 | 2013-06-05 | 北京忆恒创源科技有限公司 | 有限域平方计算电路 |
US20120311007A1 (en) * | 2011-06-06 | 2012-12-06 | Certicom Corp. | Squaring binary finite field elements |
CN103605494A (zh) * | 2013-10-17 | 2014-02-26 | 陕西万达信息工程有限公司 | 一种平方运算电路 |
Non-Patent Citations (1)
Title |
---|
何王全: ""F2m 上并行Pollard rho算法的优化实现"", 《计算机应用与软件》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107589909A (zh) * | 2017-08-24 | 2018-01-16 | 阿里巴巴集团控股有限公司 | 数据处理方法和装置、电子设备 |
CN107589909B (zh) * | 2017-08-24 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 数据处理方法和装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106569778B (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107797962B (zh) | 基于神经网络的计算阵列 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
CN111831254A (zh) | 图像处理加速方法、图像处理模型存储方法及对应装置 | |
CN110427256A (zh) | 基于优先级的作业调度优化方法、设备、存储介质及装置 | |
CN109542713A (zh) | 一种验证方法及验证装置 | |
CN105955706A (zh) | 一种除法器及除法运算方法 | |
CN104298680A (zh) | 数据统计方法及数据统计装置 | |
CN107886164A (zh) | 一种卷积神经网络训练、测试方法及训练、测试装置 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
CN110390075A (zh) | 矩阵预处理方法、装置、终端及可读存储介质 | |
CN110415160B (zh) | 一种gpu拓扑分区方法与装置 | |
CN106295670A (zh) | 数据处理方法及数据处理装置 | |
CN107341054A (zh) | 任务执行方法、装置及计算机可读存储介质 | |
CN107909537A (zh) | 一种基于卷积神经网络的图像处理方法及移动终端 | |
CN104935523A (zh) | 一种负载均衡的处理方法和设备 | |
CN107402905A (zh) | 基于神经网络的计算方法及装置 | |
CN106371808B (zh) | 一种并行计算的方法及终端 | |
CN103207770A (zh) | 一种在嵌入式系统中实现大数预计算的方法 | |
CN102930004B (zh) | 哈希值存储方法、装置及芯片 | |
CN106569778A (zh) | 一种数据处理的方法及电子设备 | |
CN107357206A (zh) | 一种基于fpga板卡的运算优化的方法、装置及系统 | |
CN103493039A (zh) | 数据处理方法和相关装置 | |
CN110109913B (zh) | 一种zerocash挖矿算法的硬件实现方法及装置 | |
CN110336658A (zh) | 基于aes算法的加密方法、用户设备、存储介质及装置 | |
CN105068850A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210428 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Device Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |