一种基于单指令多数据流结构的数据处理方法及装置制造方法及图纸

技术编号:16837013 阅读:31 留言:0更新日期:2017-12-19 19:40
本发明专利技术提供一种基于单指令多数据流结构的数据处理方法及装置。所述方法包括:接收待执行if‑else语句的多个输入数据;调用预设的数据处理表,其中,所述数据处理表用于存储所述if‑else语句的各个条件表达式和所述各个条件表达式的第一编码和第二编码;利用所述预设的数据处理表,直接得到对所述多个输入数据执行所述if‑else语句的执行结果。本发明专利技术能够提高含有if‑else语句的SIMD架构的数据并行处理能力。

A data processing method and device based on the structure of single instruction and multi data flow

The present invention provides a data processing method and device based on a single instruction multi data stream structure. The method includes: receiving a plurality of input data if else statement; call the preset data table, wherein, the data table for each condition to store the if else statement and the conditional expression of the first and second encoding encoding; using the preset data processing table, directly from the plurality of input data to execute the if else statement execution results. The invention can improve the parallel processing capability of if containing the else statement SIMD data structure.

【技术实现步骤摘要】
一种基于单指令多数据流结构的数据处理方法及装置
本专利技术涉及数据处理
,尤其涉及一种基于单指令多数据流结构的数据处理方法及装置。
技术介绍
当今的计算机应用程序大部分是多媒体应用,包括音频处理、图像处理、3D绘图、语音识别等,这就对处理器提出了更加严格的实时性要求。因此,越来越多的处理器增加SIMD(SingleInstructionMultipleData,单指令多数据流)架构及其扩展指令集,SIMD技术采用数据并行处理技术,不仅能够提供处理器的运算速度,而且能够满足数字信号处理领域应用的实时性要求。SIMD技术的关键是在于1条单独的指令中同时执行多个运算操作,即SIMD通过一个控制器来控制多个处理部件,同时对一组数据中的每个数据分别执行相同的操作。在实现本专利技术的过程中,专利技术人发现现有技术中至少存在如下技术问题:在SIMD架构中,如果一个循环结构中遇到多条件分支if-else语句时,由于针对一个数据需要从if-else语句的第1个条件表达式进行判断,直至满足相应的条件表达式,并执行所述相应的条件表达式的执行语句,然后在对下一个数据执行上述同样的过程,可见,if-else语句的存在影响了SIMD架构的数据并行处理能力。
技术实现思路
本专利技术提供的基于单指令多数据流结构的数据处理方法及装置,其通过对预设的数据处理表进行查表操作来替代现有的if-else语句的执行过程,从而提高了含有if-else语句的SIMD架构的数据并行处理能力。第一方面,本专利技术提供一种基于单指令多数据流结构的数据处理方法,所述方法包括以下步骤:接收待执行if-else语句的多个输入数据;调用预设的数据处理表,其中,所述数据处理表用于存储所述if-else语句的各个条件表达式和所述各个条件表达式的第一编码和第二编码;利用所述预设的数据处理表,直接得到对所述多个输入数据执行所述if-else语句的执行结果;其中,所述第一编码和第二编码分别对应于条件表达式成立和不成立的情况,所述各个条件表达式不包括所述if-else语句的最后一个条件表达式。第二方面,本专利技术提供一种基于单指令多数据流结构的数据处理装置,所述装置包括接收模块、调用模块和处理模块;所述接收模块,用于接收待执行if-else语句的多个输入数据;所述调用模块,用于调用预设的数据处理表;其中,所述数据处理表用于存储所述if-else语句的各个条件表达式和所述各个条件表达式的第一编码和第二编码;所述处理模块,用于利用所述预设的数据处理表,直接得到对所述多个输入数据执行所述if-else语句的执行结果;其中,所述第一编码和第二编码分别对应于条件表达式成立和不成立的情况,所述各个条件表达式不包括所述if-else语句的最后一个条件表达式。本专利技术实施例提供的基于单指令多数据流结构的数据处理方法及装置,接收待执行if-else语句的多个输入数据;调用预设的数据处理表;利用所述预设的数据处理表,直接得到对所述多个输入数据执行所述if-else语句的执行结果。与现有技术相比,通过对预设的数据处理表进行查表操作来替代现有的if-else语句的执行过程,使得对于多个输入数据可以并行处理得到相应的多个输出数据,其中,所述多个输出数据就是对所述多个输入数据顺序执行if-else语句的执行结果,可见,本专利技术的技术方案能够提高含有if-else语句的SIMD架构的数据并行处理能力。附图说明图1为本专利技术一实施例基于单指令多数据流结构的数据处理方法的流程图;图2为本专利技术另一实施例基于单指令多数据流结构的数据处理方法的流程图;图3为本专利技术一实施例基于单指令多数据流结构的数据处理装置的结构示意图;图4为本专利技术另一实施例基于单指令多数据流结构的数据处理装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供一种基于单指令多数据流结构的数据处理方法,如图1所示,所述方法包括:S11、接收待执行if-else语句的多个输入数据。S12、调用预设的数据处理表。其中,所述数据处理表用于存储所述if-else语句的各个条件表达式和所述各个条件表达式的第一编码和第二编码。其中,所述第一编码和第二编码分别对应于条件表达式成立和不成立的情况,所述各个条件表达式不包括所述if-else语句的最后一个条件表达式。S13、利用所述预设的数据处理表,直接得到对所述多个输入数据执行所述if-else语句的执行结果。本专利技术实施例提供的基于单指令多数据流结构的数据处理方法,与现有技术相比,通过对预设的数据处理表进行查表操作来替代现有的if-else语句的执行过程,使得对于多个输入数据可以并行处理得到相应的多个输出数据,其中,所述多个输出数据就是对所述多个输入数据顺序执行if-else语句的执行结果,可见,本专利技术的技术方案能够提高含有if-else语句的SIMD架构的数据并行处理能力。进一步地,如图2所示,所述步骤S13具体包括:S131、确定输入数据能够满足的第一条件表达式具体地,针对其中一个输入数据,按照自上而下的顺序在所述预设的数据处理表进行查找,得到所述其中一个输入数据能够满足的第一个条件表达式。S132、计算输入数据对应的输出编码具体地,对所述其中一个输入数据能够满足的第一个条件表达式所在位置以下的各个条件表达式的第一编码和所述其中一个输入数据能够满足的第一个条件表达式所在位置上面的各个条件表达式的第二编码进行异或运算,得到所述其中一个输入数据对应的输出编码。其中,通过所述预设的数据处理表没有查找到所述其中一个输入数据时,对所述预设的数据处理表中所有第二编码进行异或运算,得到所述其中一个输入数据对应的输出编码。S133、将所述其中一个输入数据对应的输出编码由二进制转换为十进制,得到所述其中一个输入数据执行所述if-else语句的执行结果。具体地,第1个条件表达式的第一编码为所述if-else语句的第1个语句执行结果对应的二进制编码;除了所述第1个条件表达式以外的各个条件表达式的第一编码均为0000。具体地,所述各个条件表达式的第二编码的计算原则为:当前条件表达式的第二编码为所述当前条件表达式的第一编码、当前语句执行结果对应的二进制编码、相邻下一个条件表达式的第一编码和相邻下一个语句执行结果对应的二进制编码进行异或运算得到的结果;其中,当所述当前条件表达式没有相邻下一个条件表达式时,所述当前条件表达式的第二编码为所述当前条件表达式的第一编码、当前语句执行结果对应的二进制编码和所述if-else语句的最后一个语句执行结果对应的二进制编码进行异或运算得到的结果。这里以一个包含7个条件分支的if-else语句为例,来说明上述实施例的具体过程:所述包含7个条件分支ifelse语句如下:其中,A在SIMD架构中为数组形式,A=NUM中的右操作数是具体的数,X和Y均为大于等于0的自然数,针对上述具体的包含7个条件分支ifelse语句,本专利技术实施例中的预本文档来自技高网...
一种基于单指令多数据流结构的数据处理方法及装置

【技术保护点】
一种基于单指令多数据流结构的数据处理方法,其特征在于,所述方法包括以下步骤:接收待执行if‑else语句的多个输入数据;调用预设的数据处理表,其中,所述数据处理表用于存储所述if‑else语句的各个条件表达式和所述各个条件表达式的第一编码和第二编码;利用所述预设的数据处理表,直接得到对所述多个输入数据执行所述if‑else语句的执行结果;其中,所述第一编码和第二编码分别对应于条件表达式成立和不成立的情况,所述各个条件表达式不包括所述if‑else语句的最后一个条件表达式。

【技术特征摘要】
1.一种基于单指令多数据流结构的数据处理方法,其特征在于,所述方法包括以下步骤:接收待执行if-else语句的多个输入数据;调用预设的数据处理表,其中,所述数据处理表用于存储所述if-else语句的各个条件表达式和所述各个条件表达式的第一编码和第二编码;利用所述预设的数据处理表,直接得到对所述多个输入数据执行所述if-else语句的执行结果;其中,所述第一编码和第二编码分别对应于条件表达式成立和不成立的情况,所述各个条件表达式不包括所述if-else语句的最后一个条件表达式。2.根据权利要求1所述的方法,其特征在于,所述利用所述预设的数据处理表,直接得到对所述多个输入数据执行所述if-else语句的执行结果包括:针对其中一个输入数据,按照自上而下的顺序在所述预设的数据处理表进行查找,得到所述某一输入数据能够满足的第一个条件表达式;对所述其中一个输入数据能够满足的第一个条件表达式所在位置以下的各个条件表达式的第一编码和所述其中一个输入数据能够满足的第一个条件表达式所在位置上面的各个条件表达式的第二编码进行异或运算,得到所述其中一个输入数据对应的输出编码;将所述其中一个输入数据对应的输出编码由二进制转换为十进制,得到所述其中一个输入数据执行所述if-else语句的执行结果;其中,通过所述预设的数据处理表没有查找到所述其中一个输入数据时,对所述预设的数据处理表中所有第二编码进行异或运算,得到所述其中一个输入数据对应的输出编码。3.根据权利要求2所述的方法,其特征在于,第1个条件表达式的第一编码为所述if-else语句的第1个语句执行结果对应的二进制编码;除了所述第1个条件表达式以外的各个条件表达式的第一编码均为0000。4.根据权利要求3所述的方法,其特征在于,所述各个条件表达式的第二编码的计算原则为:当前条件表达式的第二编码为所述当前条件表达式的第一编码、当前语句执行结果对应的二进制编码、相邻下一个条件表达式的第一编码和相邻下一个语句执行结果对应的二进制编码进行异或运算得到的结果;其中,当所述当前条件表达式没有相邻下一个条件表达式时,所述当前条件表达式的第二编码为所述当前条件表达式的第一编码、当前语句执行结果对应的二进制编码和所述if-else语句的最后一个语句执行结果对应的二进制编码进行异或运算得到的结果。5.一种基于单指令多数据流结构的数据处理装置,其特征在于,所述装置...

【专利技术属性】
技术研发人员:王荔枝
申请(专利权)人:合肥君正科技有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1