[发明专利]利用剖分信息生成超级块的方法无效
申请号: | 200810201939.9 | 申请日: | 2008-10-30 |
公开(公告)号: | CN101387970A | 公开(公告)日: | 2009-03-18 |
发明(设计)人: | 管海兵;梁阿磊;杨吟冬;孙廷韬 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 上海交达专利事务所 | 代理人: | 毛翠莹 |
地址: | 200240*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 信息 生成 超级 方法 | ||
技术领域
本发明涉及一种利用剖分信息生成超级块的方法,用于解决动态二进制翻译器中程序优化问题。本发明属于二进制翻译技术领域。
背景技术
Profiling(剖分)信息通过剖分过程来收集,剖分过程就是对正在运行程序收集特定的指令和数据,然后统计成剖分信息,这些统计好的剖分信息输入给程序作为代码优化之用。总的来说,优化工作之所以可以依赖剖分过程工作,是因为程序的运行是具有可预测性的,程序的特点就决定了它过去的运行行为往往能影响程序将来运行的行为,所以可以指导程序的优化。
传统上,代码的剖分过程被用作是提供反馈信息给编译程序的一种方法。编译器首先分解源程序得到控制流图,分析程序的各个方面然后插入探测器收集剖分信息。所谓探测器就是在内存中把程序执行的信息记录到剖分日志中的一段短代码序列,比如探测器可以安置在一些跳转指令(如BRANCH指令)处记录下跳转指令的输出结果。剖分日志可以离线分析后结果返回给编译器,编译器使用这些信息产生优化代码。
当使用这种传统的方式时,程序可以被完整的分析,剖分探测器也可以根据程序的结构放置到最佳的位置,但这种剖分收集方法并不适合于动态优化过程,和这种传统的静态优化方法不同,程序动态优化开始时程序结构自身的结构并不清楚,因为不可能在程序中到处插入探测器,这就意味着优化工作必须以部分已经执行的程序的统计信息为基础。
在收集剖分信息的时候,也要权衡由此带来的开销。剖分的开销主要来自时间上,因为首先要分析程序的结构才能决定探测器的放置点,然后才能真正的收集剖分信息,由此带来的好处是优化后的代码执行时间的缩短可以弥补剖 分的开销。对于使用传统的静态离线优化方法,只需要一次开销。但对于使用动态优化方法来说,每运行一次就需要一次开销,因为剖分信息是在程序的执行过程中收集的。
在动态优化过程中主要有以下几种类型的剖分信息:
第一种是能简单的指出哪些代码区域是经常被执行的;这种信息可以决定特定代码区域优化的等级。
第二种是基于控制流(如BRANCH和JUMP等)的可预测性,收集的控制流的统计信息可以用来重新安排一些基本块到一个经常执行的代码块,如超级块等,这些大的代码块可以提供相比较一些单独的小基本块更大的优化机会。
第三种是可以指导一些特定的优化,这种剖分信息集中在数据值和地址值方面,如一个程序的变量在大部分时间内它的值都保持不变的话,就可以把这个变量简单的当作一个常量来处理。
收集剖分信息有多种方法,但常用下面两种方法来收集剖分信息:
第一种是通过实现(instrumentation)的方式,基于实现的剖分信息收集主要是针对特定的和程序有关的活动或者计算该活动中所有的比例,比如一个基本块执行的次数或一个条件跳转指令执行和没有执行次数之间的对比,而且这些活动是可以同时被记录的,记录的实行可以通过在代码中插入探测指令或者使用底层的支持剖分技术的硬件来收集数据。当然也可以使用软件来进行,使用软件进行一定程度上会减慢程序的剖分过程,因为软件自身的执行需要时间,但是使用软件的好处是可以在任何硬件平台上实行,而使用硬件实现开销相对较少,但是必须要有当前硬件平台很好的支持,对于不支持硬件实现的平台则不能使用该方法。。
第二种是通过样本收集,使用这种方式收集剖分信息的程序在运行中可以不需要对程序进行任何修改,只需要在固定的或任意的时间间隔中,通过中断的方式来捕捉和程序有关的活动,比如程序的跳转指令执行时程序计数器的值,这样收集到的程序信息可以发现程序中存在的热区。
因为这两种方法各有特点和使用场合,因此使用这两种方法收集剖分信息时,常常要权衡一下两者的利弊。使用实现(instrumentation)方法可以在一个相对较短的时间内收集到一定数量的剖分信息,但由于通常借助于软件实行,所以当收集剖分信息时会减慢程序的运行速度;样本收集不会减慢程序的运行,但由于收集剖分信息是在程序的中断间隙,所以通常需要更长的时间。总的来说,动态优化系统常常使用实现(instrumentation)方法来收集剖分,因为它可以使得整个优化过程由慢到快,把轻度优化的代码优化成高度优化的代码;样本收集方法对那些需要运行较长时间程序,或者已经有过初步优化但仍需要进一步优化的程序非常有效。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810201939.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用作DPP-IV抑制剂的稠合杂环化合物
- 下一篇:空调智能节电器
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置