程序转换装置以及编译程序制造方法及图纸

技术编号:2819651 阅读:229 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种更彻底地实现指令执行的高速化的程序转换装置和编译程序。本发明专利技术的程序转换装置以及编译程序,对程序源代码进行转换,并生成包含多个指令的中间代码,从该中间代码,抽出由两个并行化候补指令构成的至少一个组合,并且对每个该并行化候补指令,抽出具有依赖关系的依赖关系指令。而且,对每个该并行化候补指令,基于对于该并行化候补指令所抽出的依赖关系指令的执行位置,判别该并行化候补指令的可移动范围,且通过将该两个并行化候补指令移动到在该两个并行化候补指令的共同可移动范围中所包含的一个执行位置上,来修改该中间代码,生成指令代码。

【技术实现步骤摘要】

本专利技术涉及一种程序转换装置以及编译程序,其将用c语言等程序语言所记载的源代码转换为用电子计算机可执行的指令代码。
技术介绍
近年来,逐渐发展为,在电子计算机的处理器中,使用独立地具有地 址生成单元和运算执行单元的体系结构。在这样的体系结构中,例如,可 以并行执行转送指令和运算指令。当设一个指令的执行周期数为一个周期 时,以往执行转送指令和运算指令需要两个周期,然而通过独立地具有地 址生成单元和运算执行单元,将转送指令和运算指令置换为同时即并行执 行指令,由此可以将执行时间缩短为一个周期。然而,对于将用c语言所记载的源代码转换为转送指令和运算指令等 指令代码时,通过使用作为软件的c编译器,以该源代码为基础生成暂时中间代码,以所生成的中间代码为基础,进一步进行各种优化,生成最终的指令代码。此时,对于如上所述的并行执行指令,c编译器以中间代码为基础,将两个指令转换为一个并行执行指令。对于用于在这样的中间代 码层次中的并行化的程序转换技术,参照专利文献l。专利文献l:日本特开2001-282549号/〉才艮然而,在以往的方法中,存在如下的缺点当存在成为并行化的候补 的两个指令,而要将它们移动到同时执行位置时,在它们之间存在具有依 赖关系的其他指令的情况下,判别为不能统一地ii行指令移动,不能进行 并行化。在此,所谓依赖关系是指,由于后续指令参照由在先执行的指令 更新的数据和标记等,导致某个指令的执行条件为先行指令的执行结果, 或者,某个指令的执行结果为后行指令的执行条件的关系,在存在这样的 关系的情况下,执行指令的指令顺序受到制约。图l表示,由于存在依赖关系而不进行指令移动的具体例。在此,为 了说明使用下述的伪中间指令。即,INSTPn(n为按指令顺序分配的编号) 为可以成为并行化的对象的指令,例如,INSTP1及INSTP2意味着彼此之间可并行化。INSTNn表示不是并行化的对象的指令。在各指令后面的 括弧内记载有其他指令的情况,是表示在该指令与本身之间有依赖关系。 按图面的向下方向按指令顺序执行各指令。参照图1中(a),分别地,INSTN1和INSTP5、 INSTP2和INSTN4、 INSTN3和INSTP5、INSTN4和INSTP2 、 INSTP5和INSTN1及INSTN3, 在指令间有依赖关系。另外,INSTP2和INSTP5的两个指令为可并行化 的指令。在该情况下,可以尝试将INSTP2和INSTP5移动到同时执行位置。 然而,由于INSTP2和INSTN4之间的依赖关系,不能移动到INSTP5的 位置,另外,INSTP5,由于与INSTN3之间的依赖关系,而被判别为不能 移动到INSTP2的位置。其结果,导致不能ii行INSTP2和INSTP5的并 行化,不能实现指令执行的高速化。参照图1中(b),分别地,INSTN1和INSTP5、 INSTP2和INSTN3 、 INSTN3和INSTP2、INSTN4和INSTP5 、 INSTP5和INSTN1及INSTN4, 在指令间有依赖关系。另外,INSTP2和INSTP3的两个指令为可并行化 的指令。这种情况下,尝试将INSTP2和INSTP5移动到同时执行位置。然而, INSTP2,由于和INSTN3之间的依赖关系,而被判别为不能移动到INSTP5 的位置,另外,INSTP5,由于和INSTN4之间的依赖关系,而净皮判别为不 能移动到INSTP2的位置。其结果,这种情况下,也导致不能进行INSTP2 和INSTP5的并行化。如以上的具体例,在以往的方法中,基于执行位置 并行化的高速化是不充分的。
技术实现思路
本专利技术的目的在于,提供一种更彻底地实现指令执行的高速化的程序 转换装置和编i^序。本专利技术的程序转换装置,其特征在于,是一种将程序源代码转换为指 令代码的程序转换装置,包含中间代码生成单元,其将该源代码进行转 换,并生成包含多个指令的中间代码;并行化候补指令抽出单元,其从该 中间代码中,抽出由两个并行化候补指令构成的至少一个组合;依赖关系 指令抽出单元,其对每个该并行化候补指令,从该中间代码中抽出与该并行化候补指令具有依赖关系的依赖关系指令;可移动范围判别单元,其对 每个该并行化候补指令,基于对于该并行化候补指令所抽出的依赖关系指 令的执行位置,判别该并行化候补指令的可移动范围;指令代码生成单元, 其通过将该两个并行化候补指令移动到在该两个并行化候补指令的共同 可移动范围中所包含的一个执行位置上,来修改该中间代码,通过对修改 后的中间代码进行转换,来生成该指令代码。本专利技术的编译程序,其特征在于,是一种用于使计算机作为将程序源 代码转换为指令代码的单元而发挥功能的编译程序,使如下单元发挥功能中间代码生成单元,其对该源代码进行转换,并生成包含多个指令的 中间代码;并行化候补指令抽出单元,其从该中间代码中,抽出由两个并 行化候补指令构成的至少一个组合;依赖关系指令抽出单元,其对每个该 并行化候补指令,从该中间代码中抽出与该并行化候补指令具有依赖关系 的依赖关系指令;可移动范围判别单元,其对每个该并行化候补指令,基 于关于该并行化候补指令的所抽出的依赖关系指令的执行位置,判别该并 行化候补指令的可移动范围;指令代码生成单元,其通过将该两个并行化 候补指令移动到在该两个并行化候补指令的共同可移动范围中所包含的 一个执行位置上,来修改该中间代码,通过对修改后的中间代码进行转换, 来生成该指令代码。根据本专利技术的程序转换装置及编译程序,能够完成更细致的指令代码 的执行位置并行化,并使指令执行的高速化更加彻底。附图说明图1为表示以往的方法中的指令执行顺序的并行化的具体例的图。图2表示第一实施例,是表示包含程序转换装置的整体的构成的框图。图3为表示图2所示的可并行化指令表的i殳定例的图。图4为表示第一实施例中的并行化的处理过程的流程图。图5为说明在图3所示的处理过程中移动指令的情况的说明图。图6为表示第二实施例中的并行化的处理过程的流程图。图7A为说明在图6所示的处理过程中成为前提的指令排列的说明图。图7B为说明在图6所示的处理过程中以组为单位进行指令移动的情 况的说明图。图8为表示通过执行图6所示的处理过程而得到的并行化的实际例的图。图中10-源代码;20-程序转换装置;21-中间代码生成部;22-依赖关 系指令抽出部;23-并行化候补指令抽出部;24-并行化执行部;25-指令代 码生成部;26-可并行化指令表;30-编i^f呈序;40-指令代码。具体实施例方式参照附图,对于本专利技术的实施例进行详细说明。(第一实施例)图2表示第一实施例,且表示包^序转换装置的整体的构成。程序 转换装置20为,将源代码10作为输入而读入,并将该源代码转换为指令 代码40而输出的装置。源代码IO,是用C语言等程序语言记载的源代码 的数据,并通过通讯网络和存储^^质等多种单元读入到程序转换装置20。 指令代码40,是作为目的的可由电子计算机执行的指令代码的数据,并通 过通讯网络和存储介质等多种方法向电子计算机输出。在本实施例中,作 为执行指令代码40的电子计算机,是以具备并行体系结构的处理器的电子 计算机为前提的,且该并行体系结构的处理器,通过独立地具有地址生本文档来自技高网
...

【技术保护点】
一种程序转换装置,其特征在于,是将程序源代码转换为指令代码的程序转换装置,包含: 中间代码生成单元,其将上述程序源代码进行转换,并生成包含多个指令的中间代码; 并行化候补指令抽出单元,其从上述中间代码,抽出由两个并行化候补指令构成的至少一个组合; 依赖关系指令抽出单元,其对上述每个并行化候补指令,从上述中间代码中抽出与该并行化候补指令具有依赖关系的依赖关系指令; 可移动范围判别单元,其对上述每个并行化候补指令,基于对于该并行化候补指令所抽出的依赖关系指令的执行位置,判别该并行化候补指令的可移动范围; 指令代码生成单元,其通过将上述两个并行化候补指令移动到在上述两个并行化候补指令的共同可移动范围中所包含的一个执行位置上,来修改上述中间代码,并通过对修改后的中间代码进行转换,来生成上述指令代码。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:河野研二郎
申请(专利权)人:冲电气工业株式会社
类型:发明
国别省市:JP[日本]

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

1