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

技术编号:7141408 阅读:190 留言:0更新日期:2012-04-11 18:40
本发明专利技术的程序变换装置(1)具备:线程制作部(130),根据与程序中的程序部分的执行路径有关的路径信息,制作与上述程序部分等价的多个线程,且各个线程与上述程序部分的多个执行路径中的至少一个执行路径等价;置换部(140),置换上述多个线程的变量,以免在上述多个线程间引起变量的写入冲突,并使得只有单一的线程执行在上述多个线程间共享的变量的值的写入;以及线程并行化部(102),生成在置换变量之后使多个线程推测性地并行执行的程序。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及,特别涉及为了缩短程序执行时间而 将程序的指定部分的执行路径变换为能够推测性地执行的多个线程的程序变换技术。
技术介绍
由于近来的数字电视、蓝光刻录机、便携电话等多媒体处理的量和质的扩大、通信 速度的扩大、以游戏机为代表的接口处理量的扩大等,对搭载于民用组装设备的处理器的 性能提高的期待是没有止境的。此外,由于近来的半导体技术的进步,在搭载于民用组装设备的处理器中也准备 了能够廉价地使用通过多处理器结构能够并行执行程序部分(线程)的处理器、或具有能 够用单一处理器并行执行多个线程的线程并行执行功能的处理器的环境。另一方面,在有效利用这些处理器的编译器等程序变换装置中,重要的是将处理 器的计算资源有效地利用,并更高速地执行程序。作为这样的具有线程并行化功能的处理器的程序变换方法,有专利文献1。该专利文献1的方法,将程序的指定部分按每个执行路径进行线程化,并且,按每 个线程实施最优化,并将多个线程并行执行,由此在短时间内执行程序的指定部分。能够在 短时间内执行的主要原因是实施特殊化为指定的执行路径的最优化、以及将生成的线程并 行执行。通常,程序的指定部分的执行路径是在执行时被选择唯一的执行路径来执行。另 一方面,专利文献1提供的程序变换装置进行将按每个执行路径生成的线程并行执行、将 原来不被选择的执行路径也并行执行的“推测性”的线程执行。即,专利文献1提供进行将 程序的指定部分的执行路径变换为推测性地执行的线程的“软件·线程推测变换”的程序变换装置。例如,如图38(专利文献1的图3)所示,首先,从作为变换前的程序部分的线程 300生成线程301、线程302、线程303。这里,线程301中的I、J、K、Q、S、L、U、T以及X表 示基本块。这里,基本块是指在线程中不包含分支及合流而被连续处理的部分,基本块中的 指令从基本块的入口向出口依次被执行。从基本块画出的箭头表示执行的转移,例如,表示 从基本块I的出口分支为基本块J、基本块X。另外,也可以在基本块的开头包含合流,也可 以在最后包含分支。此外,线程301中的基本块I、J及Q表示进行与执行转移在线程300中按照基本 块I、基本块J、基本块Q的顺序移动时的执行路径等价的动作的基本块。线程302的基本 块I、J、K、S及T、线程303的基本块I、J、K及L也同样。接着,按取出的每个线程进行最优化,缩短每一个线程的执行时间,并且,将线程 300、线程301、线程302以及线程303并行执行,由此与单独执行变换前的程序部分即线程 300的情况相比,有实现执行时间的缩短的效果。现有技术文献专利文献专利文献1 日本特开2006-154971号公报
技术实现思路
专利技术要解决的课题在本专利技术中,基本思想基于专利文献1,目的是以共享存储器型的多处理结构的计 算机系统为对象,提供一种更实际且功能进一步扩展的程序变换装置。具体而言,目的在于 以能够并行执行指令的处理器的共有存储器型的多处理器结构的计算机系统为对象,提供 包括不引起向共享存储器的写入冲突的线程生成、利用了执行路径上的变量所保持的值的 线程生成、线程的执行控制指令生成及线程内部的指令调度的程序变换装置。另外,存储器在程序上表现为变量,因此共享存储器也表现为共享变量。解决课题的手段为了达到上述目的,本专利技术的程序变换装置具备线程制作部,根据与程序中的程 序部分的执行路径有关的路径信息,制作与上述程序部分等价的多个线程、即各个线程与 上述程序部分的多个执行路径中的至少一个执行路径等价的线程;置换部,置换上述多个 线程的变量,以免在上述多个线程间引起向变量的写入冲突,并使得只有单一的线程执行 在上述多个线程间共享的变量的值的写入;以及线程并行化部,生成在置换变量之后使多 个线程推测性地并行执行的程序。根据该结构,通过以多个线程并行执行指定的程序部分,由此能够在短时间内执 行指定的程序部分。此外,上述线程制作部还可以具备线程主体块生成部,将构成上述程序部分的多 个执行路径中的一个执行路径的指令复制,由此生成作为线程的主体的线程主体块;以及 其他线程停止块生成部,生成由使其他线程的执行停止的指令构成的其他线程停止块,并 配置在上述线程主体块之后;上述置换部具备出入口生存变量检测部,检测出入口生存 变量,该出入口生存变量是在上述线程主体块的入口及出口生存的变量;出入口变量置换 部,按每个上述出入口生存变量生成变量,并将上述线程主体块的上述出入口生存变量置 换为新生成的变量;入口块生成部,生成入口块,并配置在上述线程主体块之前,上述入口 块由将上述出入口生存变量中的在入口生存的变量所保持的值代入到由上述出入口变量 置换部置换后的变量中的指令构成;出口块生成部,生成出口块,并配置在上述其他线程停 止块之后,上述出口块由将上述出入口变量置换部置换的变量所保持的值代入到上述出入 口生存变量中在出口生存的变量中的指令构成;线程内生存变量检测部,检测线程内生存 变量,该线程内生存变量是不被上述出入口生存变量检测部检测、且在上述线程主体块中 出现的变量;以及线程内生存变量置换部,按检测出的每个上述线程内生存变量,生成新的 变量,并将上述线程主体块中的上述线程内生存变量置换为新生成的变量。根据该结构,在线程间共享的变量的写入能够设为单一的线程。即,在线程主体块 内实施了写入的变量被置换为新生成的变量,并且,在其他线程被停止之后,实施向在线程 间共享的变量的写入。此外,向共享的变量的写入仅对在线程的出口生存的变量实施,因此 能够避免引起无用的变量的写入。此外,上述线程制作部还可以具备本线程停止指令生成部,该本线程停止指令生成部在上述线程主体块中的条件分支指令的分支目标的指令不存在于该线程主体块的执 行路径上的情况下,生成使该线程停止的本线程停止指令作为该分支目标的指令,并配置 在该线程主体块内。根据该结构,在判明线程的执行本身为原来不应执行的线程的时刻,能够使线程 停止,能够将处理器的使用权让给其他线程。此外,上述本线程停止指令生成部还可以在上述线程主体块中的条件分支指令的 判断条件不成立时的分支目标的指令不存在于该线程主体块的执行路径上的情况下,使该 条件分支指令的判断条件反转,并生成使自身的线程停止的本线程停止指令作为反转的判 断条件成立时的分支目标的指令,配置在该线程主体块内。根据该结构,在线程的条件分支指令的判断条件不成立时的分支目标的指令在该 线程中不存在的情况下,能够使该线程停止,能够将处理器的使用权让给其他线程。此外,也可以是,上述程序变换装置还具备线程内最优化部,该线程内最优化部将 由上述置换部置换变量后的线程中的指令最优化为更高效的指令;上述线程并行化部生成 使由上述线程内最优化部最优化的线程推测性地并行执行的程序。根据该结构,通过将线程最优化,能够在短时间内执行线程。此外,上述线程内最优化部还可以具备入口块内指令复制传播最优化部,该入口 块内指令复制传播最优化部对于由上述置换部置换变量后的线程中的上述入口块的指令, 实施向上述线程主体块以及上述出口块中的复制传播以及无用代码最优化。根据该结构,能够删除在变换为由单一的线程进行向线程间共享的变量的写入时 产生的无用的指令。此外,上述线程内最优化部还可以具备一本文档来自技高网
...

【技术保护点】
1.一种程序变换装置,具备:线程制作部,根据与程序中的程序部分的执行路径有关的路径信息,制作与上述程序部分等价的多个线程,且各个线程与上述程序部分的多个执行路径中的至少一个执行路径等价;置换部,置换上述多个线程的变量,以使在上述多个线程间不引起变量的写入冲突,并使在上述多个线程间共享的变量的值的写入仅由单一的线程执行;以及线程并行化部,生成在置换变量之后推测性地使多个线程并行执行的程序。

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

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

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

1