[发明专利]提供关联关系并执行代码优化的方法和装置有效
申请号: | 201110252353.7 | 申请日: | 2011-08-30 |
公开(公告)号: | CN102955712A | 公开(公告)日: | 2013-03-06 |
发明(设计)人: | 邹嘉;范伟;侯锐;M·沃斯特;王艳琦;孙正雅 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京市中咨律师事务所 11247 | 代理人: | 周良玉;于静 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 提供 关联 关系 执行 代码 优化 方法 装置 | ||
技术领域
本发明涉及计算机执行性能的优化,更具体而言,涉及跨物理平台进行的性能优化。
背景技术
信息技术的发展对计算机的执行性能提出了越来越高的要求。实践中,执行性能不仅依赖于计算机的物理平台,还取决于软件应用在执行时对物理平台的利用效率。如果软件和硬件之间具有良好的协同性(synergy),也就是,软件应用能够充分地利用物理平台的执行能力,才会获得比较高的执行性能。
为了提高执行性能,在开发和运行软件应用时,往往需要对软件应用进行优化,使其更好地适配于硬件平台。具体地,在软件代码执行过程中,处理器会对指令的执行情况进行采样和记录,形成性能采样数据。该性能采样数据可以反映出指令执行时发生的与硬件性能相关的行为和事件。通过分析这样的性能采样数据,可以获知特定指令在特定硬件平台上的执行状况。基于获得的执行状况,就可以对指令代码进行优化,消除引起性能缺陷的事件,从而提高执行性能。
具体而言,现有的多种处理器单元都可以提供硬件信号来指示出硬件性能事件。为了获取这些性能事件,可以在硬件平台上设置性能监视单元,该监视单元包含多种专用的硬件性能计数器,每个计数器通过转换器连接到一个硬件信号。OS内核中运行的采样器可以对这些计数器进行采样,上述采样可以周期性地进行或由性能监视器的溢出异常来触发。采样日志可以存储在内存缓冲之中,最后写入一个文档,由此形成性能采样数据。
典型地,根据不同的硬件结构,在处理器中可能发生几十甚至上千种不同的硬件性能事件。这样的事件例如包括,指令高速缓存不命中(ICacheMiss),数据高速缓存不命中(DCacheMiss),TLB不命中(TLBMiss),指令流水线中止(Stall),流水线等待(Recycle),等等。事件的类型主要依赖于处理器的物理结构。这些事件会改变处理器的状态,是影响执行性能的重要因素。
图1示出一个典型的性能采样数据的例子。在图1的例子中,性能采样数据被安排为一个表格,表格的每个条目,例如每行,示出一个指令的执行情况,包括指令的信息和与该指令相关的性能事件统计。指令的信息包括,例如,指令的模块名称(Mod),指令地址(Addr),(跳转指令的)目标地址(TargetAddr),指令操作码(Opcode),操作数(Operand),采样数(ticks)等;与该指令相关的性能事件统计包括发生如上所述的ICacheMiss,DCacheMiss,TLBMiss,Stall,Recycle等事件的采样信息。可以理解,根据物理平台的结构和性能监视单元的配置,性能采样数据可以包含更多的或不同的性能事件。一般地,所记录的至少一部分性能事件与指令执行时的性能缺陷有关。例如,图1中记录的各种高速缓冲不命中(CacheMiss)事件会使得处理器不能直接从高速缓冲中读取数据,流水线的Stall和Recycle事件会使得指令流的执行暂时地挂起或等待,等等。这些事件的发生都会使得处理器的执行速度和效率降低,引起性能缺陷,因此可以将这类事件称为性能缺陷事件。
因此,通过分析以上的性能采样数据,获得与性能缺陷相关的指令信息,就有可能克服这些缺陷,从而对代码进行优化,提高处理器的执行性能。图2示出现有技术中进行代码优化的示意图。如图所示,在同一物理平台上提供有优化器和执行单元。各种代码,包括软件应用的源代码、中间代码或转化之后的二进制代码,首先被输入到优化器中。如果代码是首次执行,那么优化器直接将代码转送到执行单元。在执行单元执行这些代码的过程中,如上所述,性能监视单元会生成与代码执行相关的性能采样数据。一旦获得这样的性能采样数据,优化器就可以通过分析性能采样数据而获得与性能缺陷相关的事件。基于性能缺陷事件,优化器可以对代码进行调整和优化,来试图消除或减小性能缺陷事件。接着,优化器将经过优化的代码再次传送到执行单元进行执行,从而再次生成性能采样数据。通过再次分析性能采样数据,优化器再次对代码进行优化,进一步去除性能缺陷。于是,经过这样的反复执行和调整,可以使得软件应用的代码更好地适合于执行平台。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110252353.7/2.html,转载请声明来源钻瓜专利网。