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

编译的方法、装置、设备及介质与流程

2022-02-19 12:45:18 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种编译的方法、编译的装置、电子设备及计算机可读存储介质。


背景技术:

2.当前硬件平台,如微处理器、粗粒度可重构架构(coarse

grained reconfigurable architecture,简称cgra)等,普遍采用流水线技术来提高指令级并行的并行度,然而指令流中典型的控制流

分支指令会影响流水线效率。用于静态调度、动态执行的cgra的传统分支处理方法是谓词技术。其中,静态调度、动态执行即cgra中每一个可重构运算单元(processing element,简称pe)在每一个时刻会执行何种操作由静态生成的配置包指定,cgra中的pe在该时刻是否会真正执行该配置包指定的操作由动态的控制信号或使能信号确定。
3.谓词技术是一种适用于多种硬件平台的编译技术,是显式并行技术的重要组成部分。谓词技术为每条指令增加一个源操作数(即谓词)作为指令执行条件,当谓词为真时执行指令中操作,否则将其转化为空操作处理。谓词执行的优点是将控制流转化为数据流,可使原本组成分支的各个基本块合并为一个超块,增大了编译调度的粒度,从而增加了基本块中的指令级并行性,同时可有效提高软件流水线或模调度的性能。现有的谓词技术笼统地对各种分支指令进行统一转换处理,并未依据分支结构的特征而作定制优化。因而,在某些应用场景下采用单一的现有谓词技术所能加速的效果有限,尤其在处理不规则分支时,现有谓词技术保守地以整个分支结构的最大ii(initial interval,简称ii,即初始间隔,初始间隔为连续两次迭代启动时间间隔)进行软件流水,未能对分支中的短路径进行加速。


技术实现要素:

4.(一)要解决的技术问题
5.为解决现有采用谓词技术进行编译过程中所存在的上述问题至少之一,本发明实施例提供了一种编译的方法、编译的装置、电子设备及计算机可读存储介质。
6.(二)技术方案
7.本发明的一个方面提供了一种编译的方法,其中,包括:对源程序数据进行分析,确定目标不规则分支;根据目标不规则分支生成更新数据流图;以及将更新数据流图映射至目标硬件上,以完成编译。
8.根据本发明的实施例,对源程序数据进行分析,确定目标不规则分支,包括:对源程序数据进行分析,以确定对应的原始转化数据;基于原始转化数据生成的初始间隔集合,确定目标不规则分支。
9.根据本发明的实施例,对源程序数据进行分析,以确定对应的原始转化数据,包括:通过编译前端对源程序数据进行解析,以生成中间表达式;采用图生成技术将中间表达式转化为原始数据流图和原始控制流图;其中,原始数据流图和原始控制流图为原始转化
数据。
10.根据本发明的实施例,基于原始转化数据生成的初始间隔集合,确定目标不规则分支,包括:根据目标硬件的计算单元数量,确定对应原始数据流图和原始控制流图的初始间隔集合,其中所述初始间隔集合包括:长路径初始间隔和短路径初始间隔;根据长路径初始间隔和所述短路径初始间隔之间的大小关系确定目标不规则分支。
11.根据本发明的实施例,根据目标硬件的计算单元数量,确定对应原始数据流图和原始控制流图的初始间隔集合,包括:分别统计属于原始控制流图中的第一基本块中的操作数量和第二基本块中的操作数量,以确定分支结构的路径长度和初始间隔集合。
12.根据本发明的实施例,根据目标不规则分支生成更新数据流图,包括:确定目标不规则分支的目标结点;根据目标结点的数据依赖关系、目标结点与原始数据流图对应的操作控制关系,生成更新数据流图。
13.根据本发明的实施例,确定目标不规则分支的目标结点,包括:根据输出的分支整体流水线内核,结合不规则分支的路径初始间隔关系,确定目标不规则分支的结点复制次数,其中,路径初始间隔关系为结点复制次数与对应目标不规则分支的长路径流水线内核初始间隔、以及分支整体流水线内核之间的预设关系;对不规则分支包含的结点执行结点复制次数的复制,以确定目标不规则分支的目标结点。
14.根据本发明的实施例,根据目标结点的数据依赖关系、目标结点与原始数据流图对应的操作控制关系,生成更新数据流图,包括:根据原始数据流图的数据依赖关系与原始路径切换的控制依赖关系,在原始数据流图中为目标结点增加相应的数据边和控制边、并为原始数据流图中的目标不规则分支中的结点增加相应的控制边,以生成更新数据流图。
15.根据本发明的实施例,将更新数据流图映射至目标硬件上,以完成编译,包括:将更新数据流图映射到目标硬件的时间扩展的抽象图上,以生成映射结果;对映射结果执行翻译转化,得到在目标硬件上执行的二进制配置文件,以完成编译。
16.根据本发明的实施例,将更新数据流图映射到目标硬件的时间扩展的抽象图上,以生成映射结果,包括:确定更新数据流图中至少一个操作的执行时间;根据执行时间建立至少一个操作与目标硬件的至少一个计算单元之间的映射对应关系;以及根据映射对应关系,将更新数据流图中至少一个边对应到抽象图的互连线中的对应边上,生成映射结果。
17.根据本发明的实施例,根据执行时间建立至少一个操作与目标硬件的至少一个计算单元之间的映射对应关系,包括:查询在执行时间中尚未被占用的至少一个计算单元;查询在执行时间中尚未被占用的硬件互连资源;将至少一个操作与至少一个计算单元的单元标号一一对应以及将所述至少一条边与所述硬件互连资源一一对应,以建立映射对应关系。
18.根据本发明的实施例,对映射结果执行翻译转化,得到在目标硬件上执行的二进制配置文件,以完成编译,包括:根据目标硬件的配置包格式对映射结果执行信息提取和转换,以生成二进制配置文件;通过目标硬件执行二进制配置文件。
19.根据本发明的实施例,在根据所述目标不规则分支生成更新数据流图之前,还包括:分析源程序数据对应的多个流水线方案的最小初始间隔之间的大小关系;根据最小初始间隔之间的大小关系,从多个流水线方案中选出最小初始间隔最小的一个流水线方案作为目标流水线方案,其中,多个流水线方案包括基于部分谓词技术的第一流水线方案、基于
全谓词技术的第二流水线方案和基于上述的第三流水线方案;其中,根据目标不规则分支生成更新数据流图包括:当目标流水线方案为第三流水线方案时,根据目标不规则分支生成更新数据流图。
20.根据本发明的实施例,分析源程序数据对应的多个流水线方案之间的最小初始间隔关系,包括:解析源程序数据,以确定原始转化数据;根据目标硬件的计算单元数量,分别确定对原始转化数据分别采用第一流水线方案、第二流水线方案以及第三流水线方案处理分支时所能实现的第一最小初始间隔、第二最小初始间隔以及第三最小初始间隔,以确定第一流水线方案、第二流水线方案以及第三流水线方案之间的最小初始间隔之间的大小关系。
21.根据本发明的实施例,根据最小初始间隔之间的大小关系,从多个流水线方案中选出最小初始间隔最小的一个流水线方案作为目标流水线方案,包括:通过对比第一最小初始间隔、所述第二最小初始间隔以及所述第三最小初始间隔,确定第一流水线方案、第二流水线方案以及第三流水线方案中之一作为所述目标流水线方案;其中,当所述第一最小初始间隔、所述第二最小初始间隔以及所述第三最小初始间隔相同时,根据目标硬件的承载力,确定第一流水线方案、第二流水线方案以及第三流水线方案中之一作为所述目标流水线方案。
22.根据本发明的实施例,还包括:当一个流水线方案为第一流水线方案时,根据选择操作在原始转化数据的原始数据流图中增加细粒度选择信号;当一个流水线方案为第二流水线方案时,在原始转化数据的原始数据流图中增加细粒度使能控制边;当一个流水线方案为第三流水线方案时,在原始转化数据的原始数据流图中增加结点、粗粒度数据边、细粒度使能控制边。
23.本发明的另一个方面提供了一种编译的装置,其中,包括分析确定模块、流图生成模块以及流图映射模块。分析确定模块用于对源程序数据进行分析,确定目标不规则分支;流图生成模块用于根据目标不规则分支生成更新数据流图;以及流图映射模块用于将更新数据流图映射至目标硬件上,以完成编译。
24.本发明的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述编译的方法。
25.本发明的另一个方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述编译的方法。
26.本发明的另一个方面提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述编译的方法。
27.(三)有益效果
28.本发明提供了一种编译的方法、装置、设备及可读存储介质。其中,该编译的方法包括:对源程序数据进行分析,确定目标不规则分支;根据目标不规则分支生成更新数据流图;以及将更新数据流图映射至目标硬件上,以完成编译。因此,可以充分挖掘源程序中分支结构的特征,解决现有谓词技术在处理不规则分支时性能较差的问题,使得编译过程的性能收益最大化。
附图说明
29.图1示意性示出了根据本发明实施例的编译的方法的流程图;
30.图2示意性示出了根据本发明实施例的编译的方法中关于dip方法及dip_dfg生成的原理图;
31.图3示意性示出了根据本发明实施例的编译的方法的更新数据流图dip_dfg的组成图;
32.图4示意性示出了根据本发明实施例的编译的方法的应用场景图;
33.图5示意性示出了根据本发明实施例的编译的装置的组成图;
34.图6示意性示出了根据本发明实施例的电子设备的架构图。
具体实施方式
35.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
36.需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
37.还需要说明的是,实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向,并非用来限制本发明的保护范围。贯穿附图,相同的元素由相同或相近的附图标记来表示。在可能导致对本发明的理解造成混淆时,将省略常规结构或构造。
38.并且图中各部件的形状和尺寸不反映真实大小和比例,而仅示意本发明实施例的内容。另外,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。
39.再者,单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。
40.说明书与权利要求中所使用的序数例如“第一”、“第二”、“第三”等的用词,以修饰相应的元件,其本身并不意味着该元件有任何的序数,也不代表某一元件与另一元件的顺序或是制造方法上的顺序,这些序数的使用仅用来使具有某命名的一元件得以和另一具有相同命名的元件能做出清楚区分。
41.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把他们没置在与该实施例不同的一个或多个没备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把他们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的代替特征来代替。并且,在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。
42.类似地,应当理解,为了精简本发明并帮助理解各个公开方面的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,公开方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
43.现有谓词技术主要分为部分谓词(partial predication,简称pp)和全谓词(full predication,简称fp)这两类方案。
44.在pp方案中,分支结构两条路径中的操作映射到不同的计算单元上,可以同时执行。所有被分支结构更新的变量在使用之前需要通过一个选择操作,依据条件执行结果来获取该变量经过分支后正确的值,以便后续使用。当分支中操作数量较多时,需要构建一个谓词网络,把条件计算结果路由到每一个可能被分支修改的变量所对应的选择操作上。在最坏情况下,为了映射在每个路径上具有n个运算的分支结构(if

then

else,简称ite),一共需要3n个结点。因此,pp方案的显著缺点是:
①‑
需要增加额外的选择操作,增大了dfg规模,影响编译时间;
②‑
这些附加的选择操作在执行时消耗额外的时间、计算资源以及能耗;
③‑
当对不规则分支进行软件流水时,pp方案处理分支得到的ii受限于分支中的长路径,未能探索短路径执行时潜在的性能优化空间。
45.此外,fp方案静态映射所有分支操作,并将分支中更新相同变量的操作映射到同一个计算单元的不同时间步上,运行时只执行依据条件选出的操作。由于变量的最终值来自于固定的计算单元,因此不需要额外的选择操作。映射在任一路径上具有n个运算的ite结构,在最坏情况下全谓词数据流图(data flow graph,简称dfg)的操作节点数为2n,同时需要增加对这2n个节点的布局约束。其中,fp方案的主要缺点是:
①‑
布局约束使得初始间隔(initial interval,简称ii)至少是2;
②‑
当程序对被两个分支都更新的变量存在迭代间依赖时,由于该变量在两个分支操作的调度时间之后才能获得,导致ii较大;
③‑
fp的ii受长路径ii制约,不能优化不规则分支的执行。
46.因此,为解决现有谓词技术中所存在的上述问题至少之一,本发明实施例提供了一种编译的方法、编译的装置、电子设备及计算机可读存储介质,以充分挖掘程序中分支结构的特征,并为其选择合适的分支处理机制,从而使得性能收益最大化,同时解决现有谓词技术在处理不规则分支时性能较差的问题。
47.如图1

图4所示,本发明的一个方面提供了一种编译的方法,其中,包括步骤s101

s103。
48.在步骤s101中,对源程序数据进行分析,确定目标不规则分支;
49.在步骤s102中,根据目标不规则分支生成更新数据流图;以及
50.在步骤s103中,将更新数据流图映射至目标硬件上,以完成编译。
51.应理解的是,本发明实施例可用于优化所有的不规则分支,也可根据需要选择并优化其中的一部分不规则分支。相应地,本发明实施例确定要进行优化的分支即称为目标不规则分支。
52.在一个示例中,源程序数据为待编译的源程序所提供的原始编译数据,具体可以
是c、c 等语言源程序所对应的基础编译数据。目标不规则分支为针对上述原始编译数据进行分析处理之后所获取的源程序数据对应的分支结构,该分支结构为本发明实施例的方法进行优化处理以完成编译目的的目标分支。更新数据流图为根据原始编译数据生成的数据流图的更新数据。具体地,该更新数据至少包含对目标不规则分支进行复制处理而新增的数据。
53.目标硬件用于执行上述更新数据流图的具体内容,其具有扩展的硬件抽象图像,可以根据更新数据流图的映射过程生成对应的硬件结果,以用于完成编译。例如,可以将目标硬件理解为嵌入式控制器。
54.因此,相对于现有技术中fp、pp方案无法针对不规则分支进行优化处理的情况,上述本发明实施例的方法可以充分挖掘源程序中分支结构的特征(包括不规则分支结构),解决现有谓词技术在处理不规则分支时性能较差的问题,使得编译过程的性能收益最大化。
55.一般地,分支结构包括true

path和false

path两条典型路径,这两条路径的ii因其各自包含的结点个数的不同而不同。上述本发明实施例的方法为这两条路径分别构建了流水线,使得整个分支结构可以拥有两个ii。在运行分支结构时,依据条件计算结果动态选择一条流水线执行。为尽可能缩减dfg的结点个数,同时考虑到两条流水线切换时的控制依赖关系,长、短路径的部分条件计算结点可实现共用。由此可见,本发明实施例中的上述方法可以用于处理不规则分支,以提高编译效率。如图2和图3所示,本发明实施例的一个具体实现过程是:
56.1)根据各自路径的ii、整个分支的内核长度以及条件结点共用时对时序的要求,确定dfg中长、短路径各自的实例个数n
true

path
、n
false

path
,即需要复制的路径个数,并在图中添加相应的长路径和短路径实例。
57.对于图2

(a)所示的含ite的循环的源程序,假设计算单元个数为4,由下文提到的ii计算公式(1)至(3)可知,本发明实施例的方法可实现的路径ii分别为ii
t
=2,ii
f
=1(此例中长路径为true

path,短路径为false

path,因此ii_long=ii
t
、ii_short=ii
f
)。其中,由于ii
t
可整除ii
f
,因此true

path的条件计算结点可与false

path共用。false

path的实例为2、true

path的实例为1。整个分支的流水线内核kernel(如图2

(e)所示的整个分支流水示意图中的方框)长度为2,包含了1次长路径(true

path)和2次短路径(false

path)迭代。长短路径各自的流水线如图2

(f)所示true

path软件流水示意图和图2

(g)所示false

path软件流水示意图。此外,与之对应,图2

(b)所示为pp方案转换示意图,图2

(c)所示为pp方案对应的pp_dfg,图2

(d)所示为fp方案对应的fp_dfg。
58.其中,如图3所示为本发明实施例的方法中所涉及的dfg(即更新数据流图),依据条件使能关系增加不同实例中条件计算结点之间相互控制的边(如图3所示p

p1的虚线)、条件计算结点与其他结点的直接使能边(如图3所示p

i、p

b
t
、p

b
f
、p1‑
i1、p1‑
b
f1
的虚线),以及计算结点之间的使能传递边(如图3所示p

b
t
、b
t

c的虚线)。需要注意的是,需正确分析长短路径切换时的细粒度使能信号传递过程,从而保证程序的正确性,尤其是切换的条件结点仅属于短路径时。
59.基于上述内容,假设分支的执行过程是f、f、t、f、f、f,将该源程序映射到目标硬件平台,使用本发明实施例的技术方案的总执行时间为10个周期,pp方案或fp方案的总执行时间可以依据length (n

1)
×
ii来计算(length为循环一次执行的时间,n为迭代次数),可
得分别为13周期和14周期。可见,对于不规则分支,使用本发明实施例的方法可以获得比fp方案和pp方案更短的总执行时间。
60.综上,本发明实施例的方法通过允许ii在不同迭代间动态可变,进而有效缩短整个程序的总执行时间和平均ii,其加速效果与不规则分支路径的执行概率有关。从而,本发明实施例可以针对不规则分支进行优化处理,充分挖掘源程序中包括不规则分支结构的分支结构的特征,以解决现有谓词技术在处理不规则分支时性能较差的问题,使得编译过程的性能收益最大化。
61.相对于现有技术中无法有效针对不规则分支进行优化处理的fp和pp方案,本发明实施例的上述编译的方法针对不规则应用的特点,可以视为一种新的谓词技术,即动态初始间隔流水线(dynamic

ii pipeline,简称dip)方案。为简洁起见,下文将使用dip方案代指本发明实施例的技术方案。
62.该新的dip方案在一套静态配置中实现具有不同ii的两条流水线。在实际程序运行过程中,会根据条件计算结果选择执行的分支路径,进而选择使能(enable)相应的流水线,未被选择的流水线将被不使能(disable)。对于不同的迭代,其条件计算结果不同,导致选择的流水线也不同。因此,在该程序的执行过程中,ii是根据迭代条件的计算结果动态变化的。
63.在本发明实施例的dip方案中,能够针对不规则应用的特点(在不规则应用中经常出现分支结构中两条路径的长度不同的情况),优化程序中每个分支结构的ii值,进而优化整个程序的静态调度结果。当源程序数据转化为dfg表示时,软件流水所能实现的ii下限为:
64.mii=max(resmii,recmii)
ꢀꢀꢀꢀ
(1)
65.其中,第一项resmii表示受资源限制的最小循环启动间隔,具体为:
[0066][0067]
其中,分子n
op
表示dfg中操作结点的个数(也可表示操作数量),n
pe
表示硬件计算单元个数。
[0068]
第二项recmii表示受循环迭代间数据依赖限制的最小启动间隔,具体为:
[0069][0070]
其中,分子delay
θ
表示dfg中环路上所有操作的总延时周期数,difference
θ
表示该环所跨越的迭代距离。
[0071]
可见,ii值与dfg中的操作个数正相关。当一分支中的true

path和false

path路径长度不同时,即构成了本发明实施例中所称的不规则分支。其中,使用长、短路径所包含的操作个数分别计算得到的resmiit(即长路径的resmii)和resmiif(即,短路径的resmii)。一般,resmiit≠resmiitf。因为n
optotal
≥n
optrue
,n
optotal
≥n
opfalse
,所以这比使用整个分支(包含true

path和false

path)所有操作结点来计算得到的resmii小。这是同理,同时考虑true

path和false

path的recmii会比单独考虑一条路径的recmii要大。
[0072]
在本发明实施例的dip方案中,为true

path和false

path这两条路径分别构建流水线,使得整个分支结构能够拥有两个ii值。这样,在运行时依据条件计算结果动态选择一
条流水线执行。为了尽量缩减dip方案中涉及的dfg的结点个数,以及考虑到两条流水线切换时的控制依赖关系,长、短路径的部分条件计算结点可共用。综上,dip方案能够利用不规则分支中短路径ii值较小的特征来优化整个分支结构的总执行时间,进而实现对包含不规则分支的循环执行结构的映射优化。
[0073]
如图1

图4所示,根据本发明的实施例,步骤s101对源程序数据进行分析,确定目标不规则分支,包括:
[0074]
对源程序数据进行分析,以确定对应的原始转化数据;
[0075]
基于原始转化数据生成的初始间隔集合,确定该目标不规则分支。
[0076]
在一个示例中,源程序数据可以为未经编译的且按照一定程序设计语言规范形成的文本文件,由一系列人类可读的原始计算机语言指令构成。原始转化数据是根据源程序数据的分析处理过程生成的转化数据,该转化数据可以用于确定目标不规则分支。其中,该原始转化数据通过其自身的分支结构的对应的各个路径的ii值的集合,该集合中各个ii值之间的大小关系可以用来确定不规则分支。其中,该ii值集合可以理解为上述的初始间隔集合。
[0077]
因此,相对于现有技术中fp方案和pp方案处理不规则分支时性能较差的情况,通过对源程序数据的分析,可以用于判断源程序数据是否对应含有不规则分支,进一步地,以判断分支结构是否存在可以优化ii的短路径。
[0078]
如图1

图4所示,根据本发明的一个实施例,对源程序数据进行分析,以确定对应的原始转化数据,包括:
[0079]
通过编译前端对源程序数据进行解析,以生成中间表达式;
[0080]
采用图生成技术将中间表达式转化为原始数据流图和原始控制流图;
[0081]
其中,原始数据流图和原始控制流图为原始转化数据。
[0082]
如图4所示,采用编译前端(如clang前端420)将用户采用高级语言(如c,c )描述的应用程序(即源程序数据,对应于源程序410)解析为中间表达式llvm ir(low level virtual machine,简称llvm,即底层虚拟机;intermediate representation简称ir,即中间表示)430。其中llvm ir是一种通用的表示形式,用于表征该应用程序的每一步的具体操作。
[0083]
之后,使用llvm自带的图生成技术将中间表达式转化为初始的数据流图init_dfg和初始的控制流图init_cfg(对应于图4中的440),即原始数据流图和原始控制流图。其中,图生成技术为应用于llvm数据的基础的流图生成方法,在此不作赘述。因此,本发明实施例可以直接地生成原始转化数据,源程序数据解析更快,对数据准确性的影响更小。
[0084]
如图1

图4所示,根据本发明的一个实施例,基于原始转化数据生成的初始间隔集合,确定目标不规则分支,包括:
[0085]
根据目标硬件的计算单元数量,确定对应原始数据流图和原始控制流图的初始间隔集合,其中所述初始间隔集合包括:长路径初始间隔和短路径初始间隔;
[0086]
根据长路径初始间隔和短路径初始间隔之间的大小关系确定不规则分支。
[0087]
目标硬件可以包含多个计算单元,其中计算单元的数量可以用于决定其对原始转化数据的处理能力。如图4所示,性能评估模块450可以根据输入该模块的原始数据流图init_dfg、原始控制流图init_cfg(即原始转化数据)以及目标硬件的计算单元的数量
(npe),获取dip方案所能实现的路径ii的集合(即初始间隔集合),其中包括长路径ii值ii_long和短路径ii值ii_short以及整体分支的ii值ii_total。对长路径ii值、短路径ii值以及整体分支ii值进行大小比较,可以确认该原始转化数据的分支结构是否为可以被dip优化的不规则分支。当该原始转化数据中存在可以被dip方案进行优化的不规则分支时,则该不规则分支即可以被确定为目标不规则分支。
[0088]
因此,与现有技术中fp方案和pp方案对不规则分支处理能力较差的情况相比,使用dip方案可以实现对不规则分支的快速分析和确定,从而提高不规则分支优化的效率和精度。
[0089]
如图1

图4所示,根据本发明的一个实施例,根据目标硬件的计算单元数量,确定对应原始数据流图和原始控制流图的初始间隔集合,包括:
[0090]
分别统计属于原始控制流图中的第一基本块的操作数量和第二基本块中的操作数量,以确定分支结构的路径长度和初始间隔集合。
[0091]
对原始转化数据进行分析处理,统计原始数据流图init_dfg中分别隶属于原始控制流图init_cfg中的基本块中操作的个数,以用于判断ite结构的两条路径长度是否相等、ii值是否相同。其中,基本块包括至少两类基本块,如第一基本块可以是ture基本块,第二基本块可以是false基本块。每类基本块中的操作个数并不一定相同。具体地,根据输入的原始数据流图init_dfg、原始控制流图init_cfg以及硬件平台中计算单元的数量,使用上文提到的mii计算公式来计算对源程序分别采用pp方案、fp方案和dip方案处理分支时所能实现的最小ii。具体地,可以通过统计各个方案对应的数据流图中操作的个数来计算占用的计算单元个数。
[0092]
与现有技术中pp方案和fp方案均考虑整个分支所有操作结点以及迭代间数据依赖关系来计算ii的方法相比,本发明实施例提出的dip方案可以利用短路径ii与分支整体ii的差异来进行ii优化,使得ii值的获取过程更为快速准确。
[0093]
如图1

图4所示,根据本发明的一个实施例,根据长路径初始间隔和所述短路径初始间隔之间的大小关系,确定目标不规则分支,包括:当短路径初始间隔小于长路径初始间隔时,该分支结构为目标不规则分支。
[0094]
一般地,若路径长度不等,极端情况下甚至仅单独存在一条路径(如仅存在if分支,即可视为其中一条路径长度为0),则该ite结构可以理解为一个不规则分支。但并非所有不规则分支使用上述dip方案都能有性能收益,需要进一步判断不规则分支的“路径ii”(即上述ii_short和ii_long)是否相等。当短路径的ii值ii_short比长路径的ii值ii_long小时,则可以确定存在可以优化ii的短路径,也即可以确定该分支结构为待优化的目标不规则分支。此时,该分支结构可以使用dip方案进行更好地加速。
[0095]
如图1

图4所示,根据本发明的实施例,步骤s102根据目标不规则分支生成更新数据流图,包括:
[0096]
确定目标不规则分支的目标结点;
[0097]
根据目标结点的数据依赖关系、目标结点与原始数据流图对应的操作控制关系,生成更新数据流图。
[0098]
如图4所示,根据性能评估模型450输出的目标不规则分支的ii_long、ii_short和ii_total,复制长路径和短路径的结点、增加数据边和控制边,然后输出dip方案的数据流
图dip_dfg(即更新数据流图)。一般地,目标不规则分支的ii_long是ii_short的整数倍,因而只需要复制短路径结点。其中,长路径和短路径的结点可以理解为上述目标不规则分支的目标结点。控制边包括条件计算结点与其所支配的结点之间的边,以及原始条件计算结点和针对目标不规则分支进行复制处理而新增的条件结点之间的边。其中,控制边的源操作结点生成的信号决定了控制边目标结点在运行时是否执行。
[0099]
如图1

图4所示,根据本发明的一个实施例,确定目标不规则分支的目标结点,包括:
[0100]
根据输出的分支整体流水线内核,结合目标不规则分支的路径初始间隔关系,确定目标不规则分支的结点复制次数,其中,所述路径初始间隔关系为所述结点复制次数与对应所述目标不规则分支的长路径流水线内核初始间隔、以及分支整体流水线内核之间的预设关系;
[0101]
对目标不规则分支包含的结点执行结点复制次数的复制,以确定目标不规则分支的目标结点。
[0102]
由于是一套静态配置,整个分支结构具有一个分支整体流水线内核(流水线分为序言、内核和尾声三部分,优化的部分主要是分支整体流水线内核部分),其ii值记为ii_total。该分支整体流水线内核的ii值是长路径流水线内核的ii值ii_long和短路径流水线内核的ii值ii_short的最小公倍数。一般地,ii_long可以整除ii_short,又因为ii_long通常大于ii_short,所以ii_total通常等于ii_long,因此只需要复制(ii_total/ii_short)

1份短路径所包含的结点。
[0103]
dip方案通过复制若干短路径的实例,实现了运行过程中ii值在不同的迭代间动态可变的功能,充分利用了短路径执行时间短、资源依赖限制的ii较小、可快速进行迭代的特点。而且,现有技术中pp和fp方案的ii在整个程序的运行过程中保持恒定,且ii由整个分支结构的操作个数和迭代依赖确定,不区分路径ii;因此,执行短路径时,仍需要等待与执行长路径相同的时间才能获得结果,性能较差。
[0104]
其中,dip方案通过增加短路径的实例,允许不同迭代的长短路径并行执行,而且当执行多个连续的短路径时,短路径的执行时间可被长路径隐藏。即第i次迭代选择执行长路径,计算结束的时间可能同第i 1、i 2次执行短路径的结束时间相同,这样在一次长路径执行时间里,执行了三次迭代。因此,dip方案可以进一步缩短不规则分支的总执行时间和平均ii。
[0105]
如图1

图4所示,根据本发明的一个实施例,根据目标结点的数据依赖关系、目标结点与原始数据流图对应的操作控制关系,生成更新数据流图,包括:
[0106]
根据原始数据流图的数据依赖关系与原始路径切换的控制依赖关系,在原始数据流图中为目标结点增加相应的数据边和控制边、并为原始数据流图中的目标不规则分支中的结点增加相应的控制边,以生成更新数据流图。
[0107]
在一个示例中,复制完结点后,需要依据原始数据流图init_dfg的数据依赖关系、原始短路径和新增短路径副本之间在路径切换时的控制依赖关系增加相应的数据边和控制边。其中,目标结点指的是新增的结点,需要为其增加数据边和控制边。同时,也需要为原始结点增加控制边。
[0108]
如图4所示,新图生成模块460在原始数据流图init_dfg中为结点增加相应的粗粒
度(32

bit)的数据边和细粒度(1

bit)的控制边,从而生成更新数据流图dip_dfg。其中,由于有两条流水线,两条流水线会共用一些共同结点(即公共结点),而且流水线的选择是动态的,所以需要动态切换。短路径ii较小,会频繁执行;而长路径ii较大,两次长路径的迭代间隔时间大。当进行“长

短”或“短

长”的切换时,则需要将原本不工作/工作的结点使能、不使能,因此存在控制依赖(即上述的控制依赖关系)。
[0109]
可见,本发明实施例根据性能评估模块450输出的ii_long、ii_short和ii_total来复制短路径结点,然后对原始转化数据增加数据边和控制边的输出数据,进而得到更新数据流图。与现有技术中的fp方案和pp方案相比,本发明实施例实现了更高效快捷的数据处理流程。
[0110]
如图1

图4所示,根据本发明的实施例,步骤s103将更新数据流图映射至目标硬件上,以完成编译,包括:
[0111]
将更新数据流图映射到目标硬件的时间扩展的抽象图上,以生成映射结果;
[0112]
对映射结果执行翻译转化,得到在目标硬件上执行的二进制配置文件,完成编译。
[0113]
如图4所示,映射模块470将该更新数据流图dip_dfg静态映射到目标硬件上执行。具体地,将更新数据流图dip_dfg静态映射到目标硬件的时间扩展的抽象图上,生成映射结果,并依据目标硬件的配置包格式,对该映射结果进行进一步的翻译和转化,最终生成可在硬件上执行的二进制配置文件。
[0114]
其中,映射是将更新数据流图dip_dfg中的结点(即操作)和边(即操作之间的数据和控制依赖关系)与时间扩展的硬件抽象图中的结点(即计算单元)和边(即计算单元之间的互连通道)对应起来的过程,具体可以分为调度、布局和布线三个连续的方面。
[0115]
如图1

图4所示,根据本发明的一个实施例,将更新数据流图映射到目标硬件的时间扩展的抽象图上,以生成映射结果,包括:
[0116]
确定更新数据流图中至少一个操作的执行时间;
[0117]
根据执行时间建立至少一个操作与目标硬件的至少一个计算单元之间的映射对应关系;以及
[0118]
根据映射对应关系,将更新数据流图中至少一个边对应到抽象图的互连线中的对应边上,生成映射结果。
[0119]
其中,调度是通过拓扑排序的方式确定更新数据流图dip_dfg中各个操作的执行时间;布局则负责将具有时间属性的操作放置在对应的目标硬件的计算单元上,实现上述映射对应关系的建立;布线依据上述布局的映射对应关系将dip_dfg中的边对应到时间扩展的目标硬件的资源抽象图中的互连线上,从而完成映射。其中,需要保证dip_dfg中相应边两端的操作与时间扩展的硬件资源抽象图互连两端的计算单元是在布局中一一对应,即映射对应关系。
[0120]
如图4所示,映射模块470将包含数据依赖和控制依赖关系的更新数据流图dip_dfg映射到时间扩展的硬件抽象模型图上。其中,更新数据流图dip_dfg表示源程序包含的操作以及操作之间的数据和控制依赖关系。时间扩展的硬件抽象模型图则表示目标硬件计算单元数量、空间分布及互连关系。每一个计算单元由一个二元组表示(t,num),其中t表示时间,num表示计算单元标号。
[0121]
如图1

图4所示,根据本发明的一个实施例,根据执行时间建立至少一个操作与目
标硬件的至少一个计算单元之间的映射对应关系,包括:
[0122]
查询在执行时间中尚未被占用的至少一个计算单元;
[0123]
查询在执行时间中尚未被占用的硬件互连资源;
[0124]
将至少一个操作与至少一个计算单元的单元标号一一对应,以及将所述至少一条边与所述硬件互连资源一一对应,以建立映射对应关系。
[0125]
一方面,在通过调度确定了更新数据流图dip_dfg中各个操作op的执行时间t(op)后,依据t(op)寻找在该时间尚未被占用的计算单元。通过查询该更新数据流图的至少一条边对应的执行时间内尚未被占用的硬件互连资源,随机选取其中一个放置该操作。即将操作op与对应的计算单元的单元标号num对应起来,以及将至少一条边与至少一个硬件互连资源实现一一对应,以完成布局。其中,硬件互连资源是可以用作硬件通信或数据传递的资源,如mux多路选择器、各类寄存器、io端口以及总线等。
[0126]
总结地说,可以根据与执行时间对应的未被占用的计算单元和/或对应执行时间内没有被占用的硬件互连资源,建立上述映射对应关系。
[0127]
进一步地,依据更新数据流图dip_dfg中操作之间的边(eg.op1

>op2),在时间扩展的硬件抽象模型图的互连线中找到相应的边(num1

>num2,其中op1在布局中对应于num1,op2在布局中对应于num2),同时要保证在相应的时间段该硬件抽象模型图边不会被更新数据流图的其他边占用,以完成布线。
[0128]
与现有技术中pp方案和fp方案的简单映射过程相比,应用dip方案的映射算法可以很好地实现上述调度、布局和布线的映射过程。对于dip方案,由于其显式传递复杂的控制流,映射除了常规的调度、结点布局、边布线之外,还需要确定各个细粒度控制信号的计算方式,因此在“调度、布局、布线”的映射模块470中还为dip方案单独增加了细粒度控制信号计算这一功能。通过对控制边的类型进行分析,使得映射过程更加准确有效。映射完成后,映射结果可以明确指出更新数据流图dip_dfg中的操作和边与时间扩展的硬件资源抽象图的对应关系。
[0129]
根据本发明的一个实施例,对映射结果执行翻译转化,得到在目标硬件上执行的二进制配置文件,以完成编译,包括:
[0130]
根据目标硬件的配置包格式对映射结果执行信息提取和转换,以生成二进制配置文件;
[0131]
通过目标硬件执行二进制配置文件。
[0132]
配置包格式为对应于目标硬件的预设数据翻译格式,可以用于配置包生成模块480以将映射结果进行定制翻译,从而形成目标硬件可以识别的二进制配置文件490。其中,不同的硬件支持的配置包格式是不同的,映射结果只是直观地给出对应关系,因此定制翻译的过程涉及对映射结果表示的执行信息的提取和转换。上述二进制配置文件主要用于表示每个计算单元执行什么操作、该操作数据的来源和去向是什么以及该操作受控于哪些信号等信息,这些信息都可以从映射结果中进行提取。其中,生成的二进制配置文件可以直接在目标硬件上执行。
[0133]
因此,与现有技术中fp方案、pp方案无法针对不规则分支进行优化处理相比,本发明实施例的方法可以充分挖掘源程序中分支结构的特征(包括不规则分支结构),解决现有谓词技术在处理不规则分支时性能较差的问题,使得编译过程的性能收益最大化。
[0134]
根据本发明的一个实施例,在根据所述目标不规则分支生成更新数据流图之前,还包括:
[0135]
分析源程序数据对应的多个流水线方案的最小初始间隔之间的大小关系;
[0136]
根据最小初始间隔之间的大小关系,从多个流水线方案中选出最小初始间隔最小的一个流水线方案作为目标流水线方案,其中,多个流水线方案包括基于部分谓词技术的第一流水线方案、基于全谓词技术的第二流水线方案和基于本发明实施例的第三流水线方案;
[0137]
这种情况下,根据目标不规则分支生成更新数据流图包括:
[0138]
当目标流水线方案为第三流水线方案时,根据目标不规则分支生成更新数据流图。
[0139]
可以理解的是,上述第一流水线方案为基于部分谓词技术的pp方案的编译的方法,第二流水线方案则为基于全谓词技术的fp方案的编译的方法,第三流水线方案则是上述动态初始间隔流水线的dip方案的编译的方法。其中,多个流水线方案中的每个流水线方案均可以针对不同的分支结构处理得到不同的初始间隔。因此,最小初始间隔之间的大小关系为各个流水线方案的最小初始间隔之间的大小关系。
[0140]
因此,相对于现有的传统编译的方法仅能实现一种分支处理技术,且在某些应用中实现最佳性能而在一些不适用该分支处理技术的应用中表现较差的情况,上述集成了pp方案、fp方案和dip方案三种分支处理方案的混合分支处理编译的方法可以适用于不同特征的分支结构。也即由于该方法实际上是三种分支处理方法的混合,则可以为每一个特定的待处理的源程序从三种方法中选择出一个最合适的方法。因此,该混合分支处理编译的方法可以对各种形式的分支结构进行定制处理优化,实现较好的性能,使得该编译系统适用的目标代码更广。
[0141]
根据本发明的实施例,分析源程序数据对应的多个流水线方案最小初始间隔之间的大小关系,包括:
[0142]
解析源程序数据,以确定原始转化数据;
[0143]
根据目标硬件的计算单元数量,分别确定对原始转化数据采用第一流水线方案、第二流水线方案以及第三流水线方案处理分支时所能实现的第一最小初始间隔、第二最小初始间隔以及第三最小初始间隔,以确定第一流水线方案、第二流水线方案以及第三流水线方案之间的所述最小初始间隔之间的大小关系。
[0144]
如前文所述,性能评估模块可以根据从中间表达式生成的原始数据流图(init_dfg)和控制流图(cfg)(即原始转化数据)以及目标硬件计算单元的数量(npe),并使用上文提到的mii计算公式来计算对源程序分别采用pp方案、fp方案和dip方案处理其分支结构时所能实现的最小ii,即pp方案对应处理分支结构实现的第一最小初始间隔,fp方案对应处理分支结构实现的第二最小初始间隔,dip方案对应处理分支结构实现的第一最小初始间隔。其中,可以通过统计各个方案对应的数据流图中操作的个数、边的数量,来计算占用的计算单元个数和硬件互连资源数量。
[0145]
因此,可以依据ii值、结点的数量和边的数量,以及其它一些指标进行综合评估,并从上述fp方案、pp方案和dip方案中选出合适的分支处理方式。
[0146]
根据本发明的一个实施例,根据最小初始间隔之间的大小关系,从多个流水线方
案中选出最小初始间隔最小的一个流水线方案作为目标流水线方案,包括:
[0147]
通过对比第一最小初始间隔、所述第二最小初始间隔以及所述第三最小初始间隔,确定第一流水线方案、第二流水线方案以及第三流水线方案中之一作为所述目标流水线方案;
[0148]
其中,当所述第一最小初始间隔、所述第二最小初始间隔以及所述第三最小初始间隔相同时,根据目标硬件的承载力,确定第一流水线方案、第二流水线方案以及第三流水线方案中之一作为所述目标流水线方案。
[0149]
ii是选择目标流水线方案的第一标准,ii较小的方案被优选为处理该源程序的方法,即目标流水线方案。ii相同时,依据功耗、实现复杂度等目标硬件的承载力方面的考虑,依次选择fp方案、pp方案、dip方案。其中,优先选择fp是因为fp对应的fp_dfg包含的操作个数最少,因而功耗开销和编译时间(与dfg的规模正相关)开销最小,也不需要复制短路径,实现复杂度低。性能评估模块确定了对当前源程序要采用的分支处理方法以及该方法对应的ii值。其中,通过dip方案可以实现对分支结构的不规则分支进行处理。
[0150]
因此,本发明实施例根据不同的原始转化数据的对应的ii值来确定不同分支结构的源程序的处理,适用范围更广,且能够减少不利因素对数据处理的影响,提高了数据处理的准确性和有效性。
[0151]
根据本发明的一个实施例,该方法还包括:
[0152]
当一个流水线方案为第一流水线方案时,根据选择操作在原始转化数据的原始数据流图中增加细粒度选择信号;
[0153]
当一个流水线方案为第二流水线方案时,在原始转化数据的原始数据流图中增加细粒度使能控制边;
[0154]
当一个流水线方案为第三流水线方案时,在原始转化数据的原始数据流图中增加结点、粗粒度数据边、细粒度使能控制边。
[0155]
通过图生成算法依据所选的处理方法,生成对应的更新数据流图new_dfg,new_dfg可能是pp_dfg、fp_dfg以及dip_dfg中至少之一,且新生成的new_dfg包含了粗粒度和细粒度两种边。
[0156]
其中,对于pp_dfg,存在选择操作(即select操作,即用于执行选择的操作),比原有的原始转化数据的原始数据流图init_dfg新增加了条件计算结点到select的细粒度选择信号;对于fp_dfg,比原有的原始转化数据的原始数据流图init_dfg新增加了条件计算结点到分支结构中各个操作的细粒度使能控制边;对于dip_dfg,比原有的原始转化数据的原始数据流图init_dfg新增加了结点和粗粒度数据边(即复制了原始dfg中短路径的副本)以及条件计算结点之间的细粒度使能控制边、条件计算结点到分支结构中各个操作的细粒度使能控制边等。
[0157]
相对于现有的传统编译的方法仅能实现一种分支处理技术的情况,上述集成了pp方案、fp方案和dip方案三种分支处理方案的混合分支处理编译的方法可以适用于不同特征的分支结构处理,即该混合分支处理编译的方法可以对各种形式的分支结构进行定制处理优化,实现较好的性能,使得该编译系统适用的目标代码更广。
[0158]
上述混合分支处理编译的方法可以用于构建具有混合分支处理编译的框架,该框架可以完成整个编译过程,将用户用高级语言描述的应用程序转化为功能等价、可在目标
硬件上执行的二进制配置文件。其中,该编译优化框架集成处理分支的三种技术,即pp方案、fp方案以及上文所述的dip方案。
[0159]
可见,混合分支处理编译框架是一种通用的编译器,可以对各种包含分支的循环进行编译,完成从源程序到硬件可识别的机器语言的转换。相比于其他仅包含单一分支处理机制的编译器,该混合分支处理编译框架对不同类型的分支都能实现较好的性能。
[0160]
如图5所示,本发明的另一个方面提供了一种编译的装置500,其中,包括分析确定模块510、流图生成模块520以及流图映射模块530。
[0161]
分析确定模块510用于对源程序数据进行分析,确定目标不规则分支;
[0162]
流图生成模块520用于根据目标不规则分支生成更新数据流图;以及
[0163]
流图映射模块530用于将更新数据流图映射至目标硬件上,以完成编译。
[0164]
上述装置500可以包括具体的编译器,对包含各种分支的循环结构进行编译,完成从源程序到硬件可识别的机器语言的转换。相比于其他仅包含单一分支处理机制的编译器,该装置500对不同类型的分支都能实现较好的性能。
[0165]
需要说明的是,上述装置500部分的实施例方式与上述dip方案的编译的方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。
[0166]
如图6所示,本发明的另一个方面提供了一种电子设备600,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述编译的方法。
[0167]
如图6所示,根据本发明实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0168]
在ram 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、rom 602以及ram 603通过总线604彼此相连。处理器601通过执行rom 602和/或ram 603中的程序来执行根据本发明实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 602和ram 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本发明实施例的方法流程的各种操作。
[0169]
根据本发明的实施例,电子设备600还可以包括输入/输出(i/o)接口605,输入/输出(i/o)接口605也连接至总线604。电子设备600还可以包括连接至i/o接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0170]
本发明的另一个方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述编译的方法。
[0171]
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。
[0172]
根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本发明的实施例,计算机可读存储介质可以包括上文描述的rom 602和/或ram 603和/或rom 602和ram 603以外的一个或多个存储器。
[0173]
本发明的另一个方面提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述编译的方法。
[0174]
本发明的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本发明实施例的方法。
[0175]
在该计算机程序被处理器601执行时执行本发明实施例的系统/装置中限定的上述功能。根据本发明的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
[0176]
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分609被下载和安装,和/或从可拆卸介质611被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0177]
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本发明实施例的系统中限定的上述功能。根据本发明的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
[0178]
根据本发明的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c ,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0179]
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际
上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0180]
本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
[0181]
以上对本发明的实施例进行了描述。但是,这些具体的实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本发明的范围由所附权利要求及其等同物限定。不脱离本发明的精神和原则,本领域技术人员可以做出多种替代和等同替换,这些替代和修改都应落在本发明的范围之内。
再多了解一些

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

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

相关文献