数据处理装置及数据处理方法

文档序号:1904462 发布日期:2021-11-30 浏览:23次 >En<

阅读说明:本技术 数据处理装置及数据处理方法 (Data processing apparatus and data processing method ) 是由 刘明 汪福全 于 2021-11-01 设计创作,主要内容包括:本申请公开了一种数据处理装置及数据处理方法,该数据处理装置包括并行的P个数据产生模块、并行的W个计算模块、并行的N个存储模块、第一选择器、交叉开关以及第二选择器,第一选择器并行连接有P个数据产生模块和W个计算模块;第一选择器用于在进行第一轮数据处理时,选择P个数据产生模块产生的原始数据并发送至交叉开关,以及在进行第二轮以及第二轮之后的轮次的数据处理时,选择W个计算模块的计算结果数据并发送至交叉开关;N个存储模块用于存储交叉开关输出的数据;第二选择器用于将从N个存储模块中读出的待处理数据发送至W个计算模块;W个计算模块,用于对待处理数据进行新一轮次的数据同步计算,可以降低时间消耗以及提升算力。(The application discloses a data processing device and a data processing method, wherein the data processing device comprises P parallel data generation modules, W parallel calculation modules, N parallel storage modules, a first selector, a cross switch and a second selector, wherein the first selector is connected with the P data generation modules and the W calculation modules in parallel; the first selector is used for selecting original data generated by the P data generation modules and sending the original data to the cross switch when data processing is carried out in the first round, and selecting calculation result data of the W calculation modules and sending the calculation result data to the cross switch when data processing is carried out in the second round and the rounds after the second round; the N storage modules are used for storing data output by the crossbar switch; the second selector is used for sending the data to be processed read from the N storage modules to the W calculation modules; and the W calculation modules are used for performing a new round of data synchronous calculation on the data to be processed, so that the time consumption can be reduced and the calculation power can be improved.)

数据处理装置及数据处理方法

技术领域

本申请实施例涉及数据处理技术领域,尤其涉及芯片和区块链技术领域,具体涉及一种数据处理装置及数据处理方法。

背景技术

Equihash是由卢森堡大学的安全、可靠性和信任跨学科中心(SnT)开发的一种以内存为导向的工作证明算法。Equihash算法由Alex Biryukov和Dmitry Khovratovich 联合发明,其理论依据是一个著名的计算法科学及密码学问题——广义生日悖论问题。Equihash是区块链中一种面向内存的工作证明机制,Equihash需要利用Blake 2B算法产生2百万个200比特的原始数据。这些原始数据,经过多轮的一定规则的异或碰撞计算,找到相互异或为0的512个200bit数据。如果这512个数据中不存在重复的数据,则认为找到一组解(solution)。但是每轮计算需要消耗大量的时间。

因此,如何提供一种能够降低时间消耗且能提升算力的方法是本领域技术人员亟需解决的问题。

发明内容

本申请实施例提供一种数据处理装置及数据处理方法,通过提高数据处理的并行度,可以降低时间消耗以及提升算力。

本申请实施例提供一种数据处理装置,包括:并行的P个数据产生模块、并行的W个计算模块、并行的N个存储模块、第一选择器、交叉开关以及第二选择器,所述第一选择器并行连接有所述P个数据产生模块和所述W个计算模块;

所述第一选择器,用于在进行第一轮数据处理时,选择所述P个数据产生模块产生的原始数据并发送至所述交叉开关;以及在进行第二轮以及所述第二轮之后的轮次的数据处理时,选择所述W个计算模块的计算结果数据并发送至所述交叉开关;

所述N个存储模块,用于存储所述交叉开关输出的数据;

所述第二选择器,用于将从所述N个存储模块中读出的待处理数据发送至所述W个计算模块;

所述W个计算模块,用于对所述待处理数据进行新一轮次的数据同步计算。

本申请实施例还提供一种数据处理方法,应用于如上任一实施例所述的数据处理装置,所述数据处理装置包括并行的P个数据产生模块、并行的W个计算模块、并行的N个存储模块、第一选择器、交叉开关以及第二选择器,所述第一选择器并行连接有所述P个数据产生模块和所述W个计算模块,所述方法包括:

在进行第一轮数据处理时,控制所述第一选择器选择所述P个数据产生模块产生的原始数据并发送至所述交叉开关;

将所述交叉开关输出的数据存入所述N个存储模块;

控制所述第二选择器将从所述N个存储模块中读出的待处理数据发送至所述W个计算模块,以通过所述W个计算模块对所述待处理数据进行新一轮次的数据同步计算;

在进行第二轮以及所述第二轮之后的轮次的数据处理时,控制所述第一选择器选择所述W个计算模块的计算结果数据并发送至所述交叉开关,并返回执行所述控制所述交叉开关将接收到的多个输入数据交换输出的步骤。

本申请实施例提供的数据处理装置,包括并行的P个数据产生模块、并行的W个计算模块、并行的N个存储模块、第一选择器、交叉开关以及第二选择器,第一选择器并行连接有所述P个数据产生模块和所述W个计算模块;第一选择器,用于在进行第一轮数据处理时,选择P个数据产生模块产生的原始数据并发送至交叉开关;以及在进行第二轮以及第二轮之后的轮次的数据处理时,选择W个计算模块的计算结果数据并发送至交叉开关;N个存储模块,用于存储交叉开关输出的数据;第二选择器,用于将从N个存储模块中读出的待处理数据发送至W个计算模块;W个计算模块,用于对待处理数据进行新一轮次的数据同步计算。本申请实施例通过并行计算、并行存储的方式,利用选择器和交叉开关实现并行计算模块和并行存储模块之间的数据交换和数据传输,通过提高数据处理的并行度,可以降低时间消耗以及提升算力。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种数据处理装置的结构示意图。

图2为本申请实施例提供的一种数据处理方法的流程示意图。

图3为本申请实施例提供的一种数据处理方法的另一流程示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

在本申请中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。

下文的公开提供了许多不同的实施方式或例子用来实现本申请的不同结构。为了简化本申请的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本申请。此外,本申请可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本申请提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。

请参阅图1,图1为本申请实施例提供的数据处理装置的结构示意图。该数据处理装置100包括并行的P个数据产生模块110、并行的W个计算模块120、并行的N个存储模块130、第一选择器140、交叉开关150以及第二选择器160。其中,第一选择器140并行连接有数据产生模块110与计算模块120。

其中,第一选择器140,用于在进行第一轮数据处理时,选择P个数据产生模块110产生的原始数据并发送至交叉开关150;以及在进行第二轮以及第二轮之后的轮次的数据处理时,选择W个计算模块120的计算结果数据并发送至交叉开关150;

N个存储模块130,用于存储交叉开关输出的数据;

第二选择器160,用于将从N个存储模块130中读出的待处理数据发送至W个计算模块120;

W个计算模块120,用于对从N个存储模块130中读出的待处理数据进行新一轮次的数据同步计算。

其中,并行的P个数据产生模块110可以为相互独立、且能同步产生原始数据的模块。并行的W个计算模块120可以为相互独立、且能同步并行计算的模块。并行的N个存储模块130可以为相互独立、且能同步存储的模块。

其中,交叉开关150具有M个输入端口151和N个输出端口152,第一选择器140连接于交叉开关150的M个输入端口151,交叉开关150的N个输出端口152连接于N个存储模块130,N个存储模块130通过第二选择器160连接于W个计算模块120。其中,P、W、M和N均为正整数。

其中,第一选择器140,用于根据第一选择规则从P个数据产生模块110产生的原始数据或者W个计算模块120的计算结果数据中选择数据并发送至交叉开关150的M个输入端口151。具体的,第一选择器140,用于在进行第一轮数据处理时,选择P个数据产生模块110产生的原始数据并发送至交叉开关150的M个输入端口151;以及在进行第二轮以及第二轮之后的轮次的数据处理时,选择W个计算模块120的计算结果数据并发送至交叉开关150的M个输入端口151。

其中,交叉开关150,用于根据交换规则将M个输入端口151接收到的多个输入数据交换到N个输出端口152。

其中,N个存储模块130,用于存储N个输出端口152输出的数据。

其中,第二选择器160,用于根据第二选择规则将从N个存储模块130中读出的待处理数据发送至W个计算模块120。

如图1所示,数据产生模块110的并行数目是整数P,数据产生模块110可以为利用Blake 2B算法产生原始数据的blake2B数据产生模块,P个并行的数据产生模块110包括第0个数据产生模块至第P-1个数据产生模块,具体如图1中的数据产生模块0、数据产生模块1至数据产生模块P-1。计算模块120的并行数目是整数W,计算模块120可以为可以具备异或碰撞计算能力的异或碰撞计算模块,W个并行的计算模块120包括第0个计算模块至第W-1个计算模块,具体如图1中的计算模块0、计算模块1至计算模块W-1。存储模块130的并行数目是N,N个存储模块130包括第0个存储模块至第N-1个存储模块,具体如图1中的存储模块0、存储模块1至存储模块N-1。交叉开关150的输入端口数目是整数M,M个输入端口151包括第0个输入端口至第M-1个输入端口,具体如图1中的输入端口0、输入端口1至输入端口M-1。输出端口数目是整数N,N个输出端口152包括第0个输出端口至第N-1个输出端口,具体如图1中的输出端口0、输出端口1至输出端口N-1。

其中,第一选择器140将P个数据产生模块110产生的原始数据或者W个计算模块120的计算结果数据,根据第一选择规则选择数据并发送至交叉开关150的M个输入端口151,具体的,第一选择器140在进行第一轮数据处理时,选择P个数据产生模块110产生的原始数据并发送至交叉开关150的M个输入端口151,以及在进行第二轮以及第二轮之后的轮次的数据处理时,选择W个计算模块120的计算结果数据并发送至交叉开关150的M个输入端口151;然后,交叉开关150将M个输入端口151的数据,根据交换规则交换到N个输出端口152;交叉开关150的每个输出端口152,连接一个存储模块130,交叉开关150的每个输出端口152的数据,存储到所连接的存储模块130,例如,输出端口0的数据存储到所连接的存储模块0,输出端口1的数据存储到所连接的存储模块1,输出端口N-1的数据存储到所连接的存储模块N-1。将N个存储模块130中的数据读出后传给第二选择器160,第二选择器160根据第二选择规则将N个存储模块130中读出的待处理数据发送至W个计算模块120,以通过W个计算模块120对从N个存储模块130中读出的待处理数据进行新一轮次的数据同步计算,直到将所述待处理数据经过预设轮次的数据处理后得到最终的计算结果为止。例如,第1轮次是数据产生模块110产生原始数据,计算模块120在第1轮次中暂时不工作;在第2轮次,计算模块120接收到的待处理数据实际上是在第1轮次中存储到存储模块130并被第二选择器160读出的原始数据;在第3轮次,计算模块120接收到的待处理数据实际上是在第2轮次中计算模块120计算得到的中间结果(计算结果数据),需要经过多个轮次的数据处理,例如,直到将P个数据产生模块110产生的第一预设数量的200比特的原始数据经过n轮计算得到相互异或为0的第二预设数量的200bit数据为止,比如直到将P个数据产生模块110产生的两百万个200比特的原始数据经过n轮计算得到相互异或为0的512个200bit数据为止。

可选的,正整数P可以为2的幂次方,或者正整数W可以为2的幂次方,整数M可以为2的幂次方,正整数N可以为2的幂次方。比如2的幂次方可以为128、256、512等。整数M和N可以相等,也可以不相等。

可选的,第一选择规则包括二选一规则;第一选择器140,用于在进行第一轮数据处理时,根据二选一规则选择P个数据产生模块110产生的原始数据并发送至交叉开关150的M个输入端口151;以及在进行第二轮以及第二轮之后的轮次的数据处理时,根据二选一规则选择W个计算模块120的计算结果数据并发送至交叉开关150的M个输入端口151。

例如,第一轮数据处理时,P个数据产生模块110可以同时产生2*P个200比特的原始数据,这2*P个原始数据,第一选择器140按照第一选择规则,将2*P个原始数据输出到M个交叉开关150的输入端口151。例如,第一轮数据处理时,P个数据产生模块110一共产生两百万个原始数据,依次通过第一选择器140、交叉开关150将上述P个数据产生模块110产生的原始数据传给N个存储模块130。从第二轮开始的后续轮次的数据处理过程,N个存储模块130读出的待处理数据,通过第二选择器160传给W个计算模块120,W个计算模块120将对该待处理数据进行新一轮次的数据同步计算后得到的计算结果数据传给第一选择器140,第一选择器140将计算结果数据传给交叉开关150的M个输入端口151。其中,可以根据数据产生模块110、计算模块120以及存储模块130中的每个模块所占用的面积,和资源和算力的目标,灵活配置上述数据产生模块110、计算模块120、存储模块130的个数灵活。本申请实施例中的举例说明不作为对上述模块个数的具体限定。

可选的,交叉开关150的输入端口151的个数M大于或等于计算模块120的个数W,交叉开关150的输入端口151的个数M大于或等于数据产生模块110的个数的2倍。

例如,当M≥W,且M≥2P时,在进行第一轮数据处理时,第一选择器140选择P个数据产生模块110同时产生的2P个原始数据,并传给交叉开关150的2P个输入端口151,通过交叉开关150的输出端口151将2P个原始数据发送至N个存储模块130进行存储;从第二轮开始的后续轮次,第一选择器140选择W个计算模块120同时产生的W个计算结果数据并传给交叉开关150的W个输入端口151。其中,2P也可以表示为2*P。

可选的,当P个数据产生模块110同时产生2P原始数据,且M = W= 2P时,第一选择器140用于在进行第一轮数据处理时,根据二选一规则将第i个数据产生模块产生的第一原始数据发送至交叉开关的第2i个输入端口,且将第i个数据产生模块产生的第二原始数据发送至交叉开关150的第2i+1个输入端口,其中所述i为0至P-1的整数;以及第一选择器140用于在进行第二轮以及所述第二轮之后的轮次的数据处理时,根据二选一规则将第h个计算模块的计算结果数据发送至交叉开关150的第h个输入端口,其中h为0至W-1的整数。

例如,数据产生模块0的第一原始数据和计算模块0的计算结果数据,二选一到交叉开关150的输入端口0;数据产生模块0的第二原始数据和计算模块1的计算结果数据,二选一到交叉开关150的输入端口1;数据产生模块P-1的第一原始数据和计算模块W-2的计算结果数据,二选一到交叉开关150的输入端口M-2;数据产生模块P-1的第二原始数据和计算模块W-1的计算结果数据,二选一到交叉开关150的输入端口M-1。

其中,交叉开关150,用于根据交换规则将M个输入端口151接收到的多个输入数据交换到N个输出端口152。可选的,所述交换规则包括根据所述多个输入数据中的当前需交换数据中某Z比特的值,将所述当前需交换数据交换到相应的输出端口上,其中所述输入数据的比特数大于或等于所述Z,所述某Z比特包括高Z比特、低Z比特或者中间Z比特中的任一种。

可选的,若N等于2的Z次方,则交叉开关150用于将当前需交换数据交换到N个输出端口152中端口编号与某Z比特的值大小相等的输出端口上。

可选的,若2的所述Z次方等于所述N的X整数倍,则控制交叉开关150用于将所述当前需交换数据根据所述Z比特的值,交换到所述N个输出端口152中端口编号等于2的所述Z次方除以所述X的值再向下取整数的输出端口上。

其中,多个输入数据中的每一条输入数据均为独立的数据,交叉开关150需对多个输入数据中的每一条输入数据按照交换规则进行数据交换。其中,将当前需进行数据交换处理的输入数据定义为当前需交换数据。

例如,交叉开关的交换规则是:根据当前需交换数据的某Z比特的值,将该当前需交换数据交换到相应的输出端口上。例如,某Z比特的值,可以理解为这个当前需交换数据(该当前需交换数据的比特数大于Z)中的其中的Z比特数据,例如某Z比特的值可以为低Z比特数据,或者高Z比特数据,或者中间Z比特数据等。比如Z等于20,N等于512,则交叉开关150的交换规则可以是根据该Z比特中的某9比特的值大小,将该当前需交换数据交换到交叉开关的输出端口。例如,若输出端口数目N 等于2Z(2的Z次方),比如Z等于10,N=1024,则交叉开关将该当前需交换数据交换到与该Z比特大小相等的输出端口上。

例如,若输出端口数N正好是2的Z次方,则输出端口的端口编号等于当前需交换数据的某Z比特的值。

例如,如2的Z次方等于输出端口数N的2整数倍,比如Z=10,N = 512,则2的10次方为N的2倍,则Z比特的值等0和1时都交换到输出端口0,Z比特的值等于2和3时都交换到输出端口1,如此类推,Z比特的值等于1022和1023时都交换到输出端口511。

其中,第二选择器160,用于根据第二选择规则将从N个存储模块130中读出的待处理数据发送至W个计算模块120。可选的,所述第二选择规则包括:若所述N等于所述W,则将第j个存储模块中读出的待处理数据发送至第j个所述计算模块,其中所述j为0至N-1的整数;或者若所述N等于所述W的2倍,则将第2k个存储模块和第2k+1个存储模块中读出的待处理数据发送至第k个计算模块,其中所述k为0至W-1的整数。

例如,两百万个200比特的原始数据需要经过n轮计算才能完成整个数据处理流程,即两百万个200比特的原始数据需要经过n轮计算才能找到相互异或为0的512个200bit数据。比如n轮为10轮。其中,第1轮产生了两百万个200比特的原始数据;然后,在第2轮至第n-1轮,由W个计算模块120对待处理数据进行新一轮次的数据同步计算后得到的计算结果数据为中间结果,其中每一轮中W个计算模块120处理的待处理数据为上一轮次处理过的数据;最后,在第n轮由W个计算模块120对待处理数据进行的数据同步计算后得到的计算结果数据为最终的计算结果,该最终的计算结果可以不用再交换存储到存储模块130中,而是由交叉开关150中的其中一个输出端口直接输出至计算结果需求端。

其中,交叉开关150中的其中一个输出端口用于输出最终的计算结果,在经过n轮计算来完成整个数据处理流程后,将计算得到的相互异或为0的512个200bit数据从用于输出最终计算结果的输出端口上进行数据输出。

其中,数据处理的一个循环叫一轮,轮次指某个轮在数据处理过程中信号处理的次序,即轮流的次序。例如,第一轮数据处理为从原始数据从P个数据产生模块110产生后,依次经过第一选择器140、交叉开关150处理后存入N个存储模块130中。第二轮以及第二轮之后的每一轮次的数据处理,通过第二选择器160从N个存储模块130读出待处理数据并传给W个计算模块120,W个计算模块120对该待处理数据进行新一轮次的数据同步计算后得到的计算结果数据,然后依次经过第一选择器140、交叉开关150处理后存入N个存储模块130中,一直循环处理数据,直到最终的计算结果为相互异或为0的512个200bit数据时,将该最终的输出结果进行数据输出。

其中,从第二轮开始,需从N个存储模块130并行读出待处理数据,然后第二选择器160按照第二选择规则,将N个存储模块130读出的待处理数据送给W个计算模块120。例如,若N=W,则将一个存储模块中的待处理数据映射到一个计算模块中,比如第二选择器160将存储模块j的待处理数据传给计算模块j,其中,j为从0到N-1的整数,存储模块j也可以表示为第j个存储模块,计算模块j也可以表示为第j个计算模块。例如,若N=2W,则将两个存储模块中的待处理数据映射到一个计算模块中,比如第二选择器160将存储模块2k和存储模块2k+1中读出的待处理数据发送至计算模块k,其中k为0至W-1的整数,存储模块2k也可以表示为第2k个存储模块,存储模块2k+1也可以表示为第2k+1个存储模块,计算模块k也可以表示为第k个计算模块。

本申请实施例提供的数据处理装置100,包括并行的P个数据产生模块110、并行的W个计算模块120、并行的N个存储模块130、第一选择器140、交叉开关150以及第二选择器160。其中,第一选择器140并行连接有数据产生模块110与计算模块120,第一选择器140连接于交叉开关150的M个输入端口151,交叉开关150的N个输出端口152连接于N个存储模块130,N个存储模块130通过第二选择器160连接于W个计算模块120,其中P、W、M和N均为正整数;第一选择器140,用于在进行第一轮数据处理时,选择P个数据产生模块110产生的原始数据并发送至交叉开关150的M个输入端口151,以及在进行第二轮以及第二轮之后的轮次的数据处理时,选择W个计算模块120的计算结果数据并发送至交叉开关150的M个输入端口151;交叉开关150,用于根据交换规则将M个输入端口151接收到的多个输入数据交换到N个输出端口152;N个存储模块130用于存储N个输出端口152输出的数据;第二选择器160用于根据第二选择规则将从N个存储模块130中读出的待处理数据发送至W个计算模块120。本申请实施例通过并行计算、并行存储的方式,利用选择器和交叉开关实现并行计算模块和并行存储模块之间的数据交换和数据传输,可以提高数据处理的并行度,提升从而大大提高equihash的算力,且有效降低了时间成本。

请参阅图2,图2为本申请实施例提供的一种数据处理方法的流程示意图。所述种数据处理方法应用于本申请任一实施例所述的数据处理装置,所述数据处理装置包括P个数据产生模块、W个计算模块、N个存储模块、第一选择器、交叉开关以及第二选择器,其中所述第一选择器并行连接有所述P个数据产生模块和所述W个计算模块连接于所述第一选择器,所述方法包括:

步骤201,在进行第一轮数据处理时,控制所述第一选择器选择所述P个数据产生模块产生的原始数据并发送至所述交叉开关;

步骤202,将所述交叉开关输出的数据存入所述N个存储模块;

步骤203,控制所述第二选择器将从所述N个存储模块中读出的待处理数据发送至所述W个计算模块,以通过所述W个计算模块对所述待处理数据进行新一轮次的数据同步计算;

步骤204,在进行第二轮以及所述第二轮之后的轮次的数据处理时,控制所述第一选择器选择所述W个计算模块的计算结果数据并发送至所述交叉开关,并返回执行所述控制所述交叉开关将接收到的多个输入数据交换输出的步骤。

可选的,所述交叉开关具有M个输入端口和N个输出端口,所述第一选择器连接于所述交叉开关的M个输入端口,所述交叉开关的N个输出端口连接于所述N个存储模块,所述N个存储模块通过所述第二选择器连接于所述W个计算模块。请参阅图3,图3为本申请实施例提供的一种数据处理方法的另一流程示意图。所述方法包括:

步骤301,在进行第一轮数据处理时,控制所述第一选择器选择所述P个数据产生模块产生的原始数据并发送至所述交叉开关的M个输入端口;

步骤302,控制所述交叉开关根据交换规则将所述M个输入端口接收到的多个输入数据交换到所述N个输出端口;

步骤303,将所述N个输出端口输出的数据存入所述N个存储模块;

步骤304,控制所述第二选择器根据第二选择规则将从所述N个存储模块中读出的待处理数据发送至所述W个计算模块,以通过所述W个计算模块对所述待处理数据进行新一轮次的数据同步计算;

步骤305,在进行第二轮以及所述第二轮之后的轮次的数据处理时,控制所述第一选择器选择所述W个计算模块的计算结果数据并发送至所述交叉开关,并返回执行步骤302。

步骤306,直到将所述待处理数据经过预设轮次的数据处理后得到最终的计算结果为止。

可选的,所述交叉开关的输入端口的个数M大于或等于所述计算模块的个数W,且所述交叉开关的输入端口的个数M大于或等于所述数据产生模块的个数P的2倍。

可选的,当所述P个数据产生模块同时产生2P原始数据,且M = W= 2P时;

所述在进行第一轮数据处理时,控制所述第一选择器选择所述P个数据产生模块产生的原始数据并发送至所述交叉开关的M个输入端口,包括:

在进行第一轮数据处理时,控制所述第一选择器将第i个数据产生模块产生的第一原始数据发送至所述交叉开关的第2i个输入端口,且将所述第i个数据产生模块产生的第二原始数据发送至所述交叉开关的第2i+1个输入端口,其中所述i为0至P-1的整数;

所述在进行第二轮以及所述第二轮之后的轮次的数据处理时,控制所述第一选择器选择所述W个计算模块的计算结果数据并发送至所述交叉开关,包括:

在进行第二轮以及所述第二轮之后的轮次的数据处理时,控制所述第一选择器将第h个计算模块的计算结果数据发送至所述交叉开关的第h个输入端口,其中所述h为0至W-1的整数。

可选的,所述交换规则包括根据所述多个输入数据中的当前需交换数据中某Z比特的值,将所述当前需交换数据交换到相应的输出端口上,其中所述输入数据的比特数大于或等于所述Z,所述某Z比特包括高Z比特、低Z比特或者中间Z比特中的任一种。

可选的,所述控制所述交叉开关根据交换规则将所述M个输入端口接收到的多个输入数据交换到所述N个输出端口,包括:

控制所述交叉开关根据所述多个输入数据中的当前需交换数据中某Z比特的值,将所述当前需交换数据交换到相应的输出端口上。

可选的,所述控制所述交叉开关根据交换规则将所述M个输入端口接收到的多个输入数据交换到所述N个输出端口,包括:

若所述N等于2的Z次方,则控制所述交叉开关将所述当前需交换数据交换到所述N个输出端口中端口编号与所述某Z比特的值大小相等的输出端口上。

可选的,所述控制所述交叉开关根据交换规则将所述M个输入端口接收到的多个输入数据交换到所述N个输出端口,包括:

若2的所述Z次方等于所述N的X整数倍,则控制所述交叉开关用于将所述当前需交换数据根据所述Z比特的值,交换到所述N个输出端口中端口编号等于2的所述Z次方除以所述X的值再向下取整数的输出端口上。

可选的,所所述第二选择规则包括:

若所述N等于所述W,则将第j个存储模块中读出的待处理数据发送至第j个所述计算模块,其中所述j为0至N-1的整数;或者

若所述N等于所述W的2倍,则将第2k个存储模块和第2k+1个存储模块中读出的待处理数据发送至第k个计算模块,其中所述k为0至W-1的整数。

可选的,所述控制所述第二选择器根据第二选择规则将从所述N个存储模块中读出的待处理数据发送至所述W个计算模块,包括:

若所述N等于所述W,则控制所述第二选择器将第j个存储模块中读出的待处理数据发送至第j个所述计算模块,其中所述j为0至N-1的整数;或者

若所述N等于所述W的2倍,则控制所述第二选择器将第2k个存储模块和第2k+1个存储模块中读出的待处理数据发送至第k个计算模块,其中所述k为0至W-1的整数。

本申请实施例提供的数据处理方法的具体实施方式,可以参考上述数据处理装置中具体实施例的描述,在此不再一一赘述。

本申请实施例提供的数据处理方法,应用于本申请任一实施例所述的数据处理装置,所述数据处理装置包括并行的P个数据产生模块、并行的W个计算模块、并行的N个存储模块、第一选择器、交叉开关以及第二选择器,其中所述第一选择器并行连接有所述P个数据产生模块和所述W个计算模块,所述第一选择器连接于所述交叉开关的M个输入端口,所述交叉开关的N个输出端口连接于所述N个存储模块,所述N个存储模块通过所述第二选择器连接于所述W个计算模块,所述方法包括:在进行第一轮数据处理时,控制所述第一选择器选择所述P个数据产生模块产生的原始数据并发送至所述交叉开关的M个输入端口;控制所述交叉开关根据交换规则将所述M个输入端口接收到的多个输入数据交换到所述N个输出端口;将所述N个输出端口输出的数据存入所述N个存储模块;控制所述第二选择器根据第二选择规则将从所述N个存储模块中读出的待处理数据发送至所述W个计算模块,以通过所述W个计算模块对所述待处理数据进行新一轮次的数据同步计算;在进行第二轮以及所述第二轮之后的轮次的数据处理时,控制所述第一选择器选择所述W个计算模块的计算结果数据并发送至所述交叉开关,并返回执行控制所述交叉开关根据交换规则将所述M个输入端口接收到的多个输入数据交换到所述N个输出端口的步骤,直到将所述原始数据经过预设轮次的数据处理后得到最终的计算结果为止。本申请实施例通过并行计算、并行存储的方式,利用选择器和交叉开关实现并行计算模块和并行存储模块之间的数据交换和数据传输,通过提高数据处理的并行度,可以降低时间消耗以及提升算力。

上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。

可选的,本申请还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

本申请还提供了一种计算机可读存储介质,用于存储计算机程序。该计算机可读存储介质可应用于计算机设备,并且该计算机程序使得计算机设备执行本申请实施例中的数据处理方法中的相应流程,为了简洁,在此不再赘述。

本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的数据处理方法中的相应流程,为了简洁,在此不再赘述。

本申请还提供了一种计算机程序,该计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的数据处理方法中的相应流程,为了简洁,在此不再赘述。

应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请实施例所提供的一种数据处理装置及数据处理方法进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于Aurora协议的双路冗余数据交换方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!