面向异种多处理器的全局编译程序制造技术

技术编号:2835811 阅读:289 留言:0更新日期:2012-04-11 18:40
本发明专利技术的目的是无需意识到与异种多处理器的结构一致的并行化,而在短时间内最大限度发挥HCMP1的性能。在异种多处理器系统中,通过用编译程序自动地抽出具有并行性的任务,同时进行从成为处理对象的输入程序抽出能够用专用处理器高效率地处理的部分和处理时间的估计,由此,通过按照PU的特性配置该任务,实施使该多个PU并行、高效率运行的调度。

【技术实现步骤摘要】

本专利技术涉及在由多个异种处理器单元构成的多处理器系统中、生成能够使该多个处理器单元高效动作的执行程序的编译方法以及编译程序。
技术介绍
由于通过半导体制造技术的进步引起的元件的微小化,能够集成庞大数目的晶体管。与此同时处理器的高频化也正在发展,但是由于动作时电力的增加、另外由泄漏电流引起的待机时的电力的增加,在通过现有技术的处理器一路走来的动作频率的提高和逻辑方式的改善所实现的性能提高上开始出现界限。另一方面,汽车的导航系统、便携电话、数字电视等,同时处理图像、声音、数据库信息等多种数据的数字民用设备面市,强烈要求在短的时间而且以低的电力处理特性不同的庞大的数据。因此现在,作为实现性能改善和低电力化的手段,通过把多个用现有技术的单一芯片提供的通用处理器(CPU)集成在多个单一芯片上、并行进行处理,即使不提高动作频率也能得到高运算性能的多处理器系统前景广阔。将来,通过微小化的进一步发展,预测可能在单芯片上集成100~1000个PU。另外,特别在面向嵌入设备的系统中,大多要处理无线或者图像、声音等定型的数字信号处理、作为性能改善和低电力化并存的方法,现在提出了在集成多个同一通用处理器(CPU)、亦即用同一命令集构成以及运算性能相同的通用处理器的同种的多处理器系统外,除多个CPU外、在多个单一芯片上搭载能够以非常高的效率(高速而且低的电力)处理某特定处理的专用处理器、加速器这些命令集不同的、各种各样种类的PU,特别以一定的应用作为对象,目标为高运算效率的异种多处理器系统(HCMP)。作为专用处理器的一例,有非专利文献1那样的可动态再构成的处理器(DRP)。在这样的多处理器系统中,为得到与PU数成比例的运算性能,需要使装载的PU同时运行来处理程序。但是,因为通常的输入程序其处理以时间序列逐次记述的,所以尽管装载多个PU,也不能得到与该多个PU成比例的期待的运算性能。作为为解决该问题的一种方法,需要程序开发者自己考虑程序的并行性,根据使该程序执行的多处理器系统的结构,附加为使用多个PU执行该程序的并行化代码。但是,本方法在PU是几个的系统中有效,但是在将来的集成数十~数千数目的PU的系统中,另外特别是PU是异种构成的HCMP的场合,在开发时间、有效性能方面是不实用的。<公知例多粒度并行化编译程序> 因此,提出了在同种多处理器中,自动抽出程序的并行性,向多个PU分散处理,提高处理性能的自动并行化编译程序。亦即,已经在研究能够解析输入程序,从该程序中抽出可并行动作的部分,把该部分分配给多个PU同时执行的、自动并行化编译程序。例如,在专利文献1中公开了通过解析输入源程序,把该程序分割为子程序或者循环等各种粒度的块(任务),解析该多个任务之间的并行性,同时,把任务和它们访问的数据分割为适合超高速缓冲存储器或者本地存储器的大小,对于各PU使其最佳分配相应任务,这样来生成高效运行多处理器系统的目标程序的编译方式。另外,在专利文献2中公开了支持多粒度并行处理的功能的芯片多处理器的体系结构。<公知例非对称多处理器、电力调度> 另外,在专利文献3中公开了在异种多处理器(HCMP)中,作为为发挥该异种结构的处理器群的性能的任务分配方法,在图像处理等预处理的过程判明的应用中,通过按照各处理的特性组合CPU或者DSP等种类不同的多个处理器,预先测定给出在相应处理器上的处理时间或者消费电力信息,通过该信息动态给相应各处理器分配一系列处理的方法。<公知例自动矢量编译程序> 另外,在HCMP中需要对于每一种处理器生成专用的执行程序,但是作为其生成方法,例如在专用处理器是矢量运算器的场合,在非专利文献2以及非专利文献3中公开了通过数据依存解析抽出通过程序可进行矢量运算的部分(循环),生成矢量运算命令的自动矢量编译程序。专利文献1特开2004-252728专利文献2特开2001-175619 专利文献3特开2004-252900非专利文献1津野田等“面向数字媒体的再构成型处理器FE-GA的概要”,电气电子信息通信学会技术报告,RECONF-非专利文献2田中、岩澤“用于矢量计算机的编译技术”,信息处理,第31卷,第6号,平成2年6月5日发行非专利文献3Kuck,D.J.,等人,Dependence Graphs and CompilerOptimizations,Proc.8thAnnual ACM Symposium on Principles of ProgrammingLanguages,pp.177-189(1981)
技术实现思路
现在,在产生诸如汽车的导航系统、便携电话、数字电视等,同时处理图像、声音、数据库信息等多种数据的新的应用中,为以对于各数据最适合的方法同时处理各种各样种类的输入数据,认为处理器装载多种PU的HCMP是最有前途的。在现有技术的多处理器系统中,如专利文献2中公开的那样,是装载多个相同结构的PU的同种处理器系统。但是,这样在多种应用同时在多种PU上被处理的将来的异种多处理器系统中,为与装载的PU的种类和数目成比例得到处理性能,专利技术人注意到必须进行考虑了PU的种类的程序的并行化和配置。另外,在现有技术中,为在多个PU上高效执行程序,为得到为对于小规模的程序或者处理序列经常能够固定决定的应用进行调度的执行时间等的调度信息,需要在该系统上一次执行程序进行测定,需要以该测定值作为基础开发者预先手动生成相应调度信息。在这种场合,在事前处理内容或者顺序不明的一般的程序的场合,特别是规模大的场合,事前手动生成该信息困难。另外,在PU的种类或者数量增加的场合手动生成该信息也同样困难。因此,专利技术人注意到通过在编译程序时,根据PU的结构编译程序预先估计预处理时间,关于在编译时能够静态决定处理顺序的部分决定预处理过程,另外,关于不到执行时不能决定处理顺序的部分,编译程序生成动态进行根据包含执行时间的处理信息的调度的程序,这样,就能够在用多种PU构成的多处理器系统上高效处理一般的程序。因此,本专利技术的目的在于,通过提供编译程序和可使其最优化的面向异种多处理器的并行编译系统,用户能够不意识到与HCMP一致的并行化,在短时期内最大限度发挥HCMP的性能,所述编译程序,在装载多种PU的HCMP中,通过从成为处理对象的输入程序中根据用户的指定,抽出用该HCMP具有的专用处理器(或者加速器)能够处理的程序部分,或者生成面向该专用处理器的执行代码的编译程序在该专用处理器上可高效执行的部分,以包含该指定以及该抽出的任务的形式,并行化编译程序自动抽出具有并行性的任务,按照各PU的特性配置相应任务,由此,使相应PU高效运行,进一步估计该PU的处理量,这样来生成使动作频率和电源电压优化的代码,附加在目标程序上。本专利技术提供一种全局编译程序,其为在异种多处理器上把程序分割为与相应处理器装载的各种处理器单元的处理特性一致的程序分割单元。另外,还提供一种全局编译程序,其为这样的单元即为使分割后的程序能够有效利用各种处理器的性能,使该多个处理器单元同时并行动作,这样来调度所述分割程序,以使能高效进行处理。作为其具体的方法,在具有多个单一或者多种处理器单元的异种多处理器本文档来自技高网
...

【技术保护点】
一种面向异种多处理器的全局编译程序,其在具有单一或者多种处理器单元的系统中,从输入程序抽出并行性,生成与所述多个处理器单元对应的目标程序,其特征在于,    使计算机执行如下处理:    把所述输入程序,在对于所述系统具有的每一种处理器单元预先准备的所述处理器单元专用的代码生成编译程序中,通过解析所述输入程序,抽出在所述每一处理器单元中可执行的程序的部分,生成指示该程序部分的处理处理器信息的处理;    进行所述输入程序的解析后抽出该输入程序的并行性,根据所述处理处理器信息,进行对于所述处理器单元的程序部分的分配的处理;和    把所述分配的程序部分,作为所述每一处理器单元的输出代码输出的处理。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:笠原博德木村启二鹿野裕明
申请(专利权)人:学校法人早稻田大学
类型:发明
国别省市:JP[日本]

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

1