程序变换装置及程序变换方法制造方法及图纸

技术编号:7164230 阅读:290 留言:0更新日期:2012-04-11 18:40
编译程序(1)能够适应近些年搭载了多线程功能的处理器,实施有效的指令调度以及控制由程序员做出的指令调度,其具备:指令调度指示输入部(2),受理用来指定指令调度方法的程序员指示的输入;指令调度部(41),有关对源程序所对应的中间代码进行排列的指令调度,能够实施基于多种指令调度方法的指令调度;指令调度部(41)根据由指令调度指示输入部(2)所受理的指示从多种指令调度方法之中选择任一个,执行与选择出的指令调度方法相应的指令调度。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种将用C语言等高级语言所描述的源程序变换为机器语言程序的程序变换装置,特别涉及到实施具备并行处理机构的处理器所对应的指令调度的程序变换直O
技术介绍
在处理器具备的指令集中,一般情况下延迟时间也就是1条指令的执行所用的需要周期数根据指令的不同而不同。从而,即便是同一指令串,根据其执行顺序的不同,指令执行开始之前的等待时间也不同,整体的执行周期数一直在变化。具体而言,越是可以在其他指令的执行中隐藏延迟时间长的指令的等待时间,整体的执行周期数变得越短。在生成处理器之可执行代码的编译程序中,鉴于上述特性,一般实施在满足指令间的依赖限制的范围内进行指令的排列,缩短整体的执行周期数的优化。这就是指令调度, 指令调度的能力给所生成的可执行代码的性能带来较大的影响。但是,最佳的指令序列的导出是NP (Non-deterministic Polynomial time)困难的问题,另外由于其他优化功能的影响,可执行代码的性能也不同。因此,作为指令调度功能一般采用启发式的算法,由哪个算法导出更好的结果根据状况的不同而不同。对此,以往例如象专利文献1那样,有一种检查寄存器的使用状况,根据检查结果,来选择并行性优先的指令调度方法和减少寄存器之同时运行数的指令调度方法的任一个,并根据选择出的指令调度方法来执行指令调度的方法。另外,例如像专利文献2那样,还有一种参照在作为优化方法一种的公共表达式删除(common sub-expression elimination)中删除后的公共表达式的信息,根据是否实施了公共表达式删除的信息来选择指令调度方法,并根据选择出的指令调度方法来执行指令调度的方法。现有技术文献专利文献专利文献1 日本专利第3311381号公报专利文献2 日本特开2001-159983号公报
技术实现思路
专利技术的概要专利技术要解决的问题作为近年来处理器的趋势,与指令并行处理有关,具有多个动作模式的处理器,或者适应多线程动作的处理器已经出现。就以往技术而言,虽然可以按照单个动作模式内的输入程序或者中间代码的优化状况,选择指令调度方法,但是对多个动作模式的转换却不适应。另外,还无法根据伴随多线程动作而变化的指令并行度变化或者指令延迟时间变化,来转换动作模式。再者,有关指令调度方法却不能由程序进行控制。因此,在结果上,采用以往技术对于近年来的处理器而言,存在无法生成与状况相应的有效的可执行代码这样的问题。本专利技术是为了解决上述课题而做出的,其目的为提供程序变换装置等,使(i)动作模式的转换、(ii)与多线程动作相伴的动作模式的变动因素或者(iii)适应程序员要求的有效的可执行代码的生成成为可能。为了实现上述目的,本专利技术的某一方面所涉及的程序变换装置用来将用高级语言或者汇编语言所描述的源程序变换为在目标处理器中进行动作的机器语言代码,其特征为,具备存储部,存储上述源程序;程序员指示输入部,受理用来指定指令调度方法的程序员指示的输入;指令调度部,有关对存储在上述存储部中的上述源程序所对应的中间代码进行排列的指令调度,能够实施基于多种指令调度方法的指令调度;上述指令调度部根据由上述程序员指示输入部所受理的上述指示从上述多种指令调度方法之中选择任一个, 执行与选择出的指令调度方法相应的指令调度。据此,能够生成具有多个动作模式的处理器的各动作模式所对应的执行效率高的机器语言代码。优选的是,由上述程序员指示输入部受理的上述指示是与上述目标处理器的动作模式有关的指示。更为优选的是,上述目标处理器是超长指令字VLIW(Very Long Instruction Word)处理器,上述目标处理器的动作模式是VLIW处理器的动作模式。在目标处理器为能够执行按照VLIW方式所描述的指令群的处理器(下面称为 “VLIW处理器”。)的情况下,可以生成与各动作模式的限制相符的机器语言代码。优选的是,由上述程序员指示输入部受理的上述指示是与指令调度方法有关的指示。可以由程序员直接指定指令调度方法,能够实施细致的性能调谐。本专利技术的其他方面所涉及的程序变换装置用来将用高级语言或者汇编语言所描述的源程序变换为在目标处理器中进行动作的机器语言代码,其特征为,具备存储部,存储上述源程序;指令调度部,有关对存储在上述存储部中的上述源程序所对应的中间代码进行排列的指令调度,能够根据多种指令调度方法的各自执行指令调度;代码生成部,将由上述指令调度部根据上述多种指令调度方法进行指令调度后的多种上述中间代码,分别变换为机器语言代码。据此,能够由用户选取具有多个动作模式的处理器的各动作模式所对应的执行效率高的机器语言代码。优选的是,上述指令调度方法按上述目标处理器的动作模式的每种进行了设置。更为优选的是,上述目标处理器是VLIW处理器,上述目标处理器的动作模式是 VLIff处理器的动作模式。在目标处理器为VLIW处理器的情况下,能够由用户选取与各动作模式的限制相符的机器语言代码。还有,本专利技术不仅仅可以作为这种具备特征性处理部的程序变换装置来实现,还可以作为以程序变换装置中包含的特征性处理部为步骤的程序变换方法来实现。另外,也可以作为下述程序来实现,该程序是作为程序变换装置中包含的特征性机构使计算机发挥作用所需的。而且,不言而喻,那种程序可以通过⑶-ROM(Compact Disc-Read Only Memory)等记录介质或因特网等通信网络使之流通。专利技术效果根据本专利技术,通过按照硬件的动作模式转换指令调度方法,就能够生成与动作模式相符的执行效率高的可执行代码(机器语言代码)。在目标处理器为VLIW处理器的情况下,能够生成与动作模式的限制相符的可执行代码。另外,因为由程序员指示的方法提供该指令调度方法的转换,所以能够细致地实施生成的机器语言代码的调谐。附图说明图1是执行本专利技术实施方式1及2所涉及的编译程序的计算机外观图。图2是表示本专利技术实施方式1所涉及的编译程序构成的框图。图3A是表示目标处理器的多线程动作模式(模式1)的附图。图;3B是表示目标处理器的多线程动作模式(模式2)的附图。图3C是表示目标处理器的多线程动作模式(模式3)的附图。图3D是表示目标处理器的多线程动作模式(模式4)的附图。图4是表示指令调度方法设定部411的处理内容的流程图。图5是表示本专利技术实施方式2所涉及的编译程序构成的框图。图6是表示多个代码生成控制部66的处理内容的流程图。图7是表示指令调度指示和指令调度设定之间的对应表的附图。具体实施例方式(实施方式1下面,一边参照附图,一边说明本专利技术实施方式1所涉及的编译程序系统。编译程序系统通过在图1所示的那种包含存储器和CPU的普通计算机上,执行下面说明的编译程序,来实现。图2是表示实施方式1所涉及的编译程序1构成的框图。编译程序1接受程序员用C语言所描述的源程序101来作为输入,将其变换为中间代码并实施优化或资源的分配之后,生成面向目标处理器的可执行代码102。源程序101 及可执行代码102被存储于计算机具备的存储器或者硬盘中。另外,由编译程序得到的处理执行时的中间数据也被存储于计算机具备的存储器或者硬盘中。这里,说明本专利技术所涉及的编译程序为目标的处理器的结构。本处理器是具备每1周期4条指令的指令并行机构的超标量处理器。本处理器还具本文档来自技高网
...

【技术保护点】
1.一种程序变换装置,用来将用高级语言或者汇编语言所描述的源程序变换为在目标处理器中进行动作的机器语言代码,其特征为,具备:存储部,存储上述源程序;程序员指示输入部,受理用来指定指令调度方法的程序员指示的输入;以及指令调度部,有关对存储在上述存储部中的上述源程序所对应的中间代码进行重新排列的指令调度,能够实施基于多种指令调度方法的指令调度;上述指令调度部根据由上述程序员指示输入部所受理的上述指示从上述多种指令调度方法之中选择任一个,执行与选择出的指令调度方法相应的指令调度。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:瓶子岳人
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP

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

1