[发明专利]用于跨距剖析软件应用的方法和设备有效
申请号: | 201210021110.7 | 申请日: | 2004-05-12 |
公开(公告)号: | CN102681947A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | G·罗尼;C·-K·卢 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 朱海煜 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 跨距 剖析 软件 应用 方法 设备 | ||
本申请是申请日为2004年5月12日、申请号为200480014782.9、发明名称为“用于跨距剖析软件应用的方法和设备”的申请的分案申请。
技术领域
本发明涉及软件编译器,并且尤其涉及用于跨距剖析(profiling)软件应用的方法和设备。
背景技术
在处理器和存储器速度之间的距离继续加大。结果,计算机性能逐渐地用高速缓存器分级结构的有效性来确定。然而,处理器工作量典型地会招致显著的高速缓存未命中。
预取是用于改进高速缓存器分级结构有效性的公知且有效的技术。用于改进预取准确性的一种编译器技术在于统计地发现具有恒定“跨距(stride)”的存储器访问指令(例如,加载、存储等)。例如,加载每第十六个字节的加载指令易于被预取,这是因为编译器提前知道将需要什么字节。然而,由于直到运行时才被解析的间接数组引用和指针废弃,导致编译器不能统计地发现具有恒定跨距的许多存储器访问指令。
为了解决此问题,可以把“工具”代码(即,测试码)添加到软件应用以便直接监视由一个或多个存储器访问指令所访问的实际数据地址。然而,工具代码给软件应用增加了显著的开销,这使所述应用慢了下来(例如,慢了10倍)。
发明内容
根据本发明的第一方面,提供了一种方法,所述方法包括:
基于由第一指令地址的第一指令访问的第一和第二数据地址之间的第一差确定第一跨距积;
基于由位于所述第一指令地址的第一指令访问的第三和第四数据地址之间的第二差确定第二跨距积;以及
计算所述第一跨距积和第二跨距积的最大公约数。
根据本发明的第二方面,提供了一种设备,所述设备,包括:
用于基于由第一指令地址的第一指令访问的第一和第二数据地址之间的第一差确定第一跨距积的部件;
用于基于由位于所述第一指令地址的第一指令访问的第三和第四数据地址之间的第二差确定第二跨距积的部件;以及
用于计算所述第一跨距积和第二跨距积的最大公约数的部件。
根据本发明的第三方面,提供了一种装置,所述装置包括:
确定模块,用于基于由第一指令地址的第一指令访问的第一和第二数据地址之间的第一差确定第一跨距积,以及基于由位于所述第一指令地址的第一指令访问的第三和第四数据地址之间的第二差确定第二跨距积;以及
最大公约数模块,用于计算所述第一跨距积和第二跨距积的最大公约数。
附图说明
图1是图示用于所公开系统环境的示例性计算机系统的框图。
图2是图示用于所公开系统环境的另一示例性计算机系统的框图。
图3是包括加载指令的代码部分的例子。
图4是示例性的阶段图。
图5是表示示例性机器可读指令的流程图,所述机器可读指令可以由一设备执行来实现用于跨距剖析软件应用的示例性方法。
具体实施方式
在总体上,所公开的系统使用硬件性能计数器来报告与由某个事件(诸如数据高速缓存器未命中)所触发的存储器访问指令相关联的数据地址和指令地址。当相同的指令地址被与一个以上的数据地址相关联时,记录在两个数据地址之间的差异。当对于相同的指令记录了这些数据地址差异中的两个或更多时,该系统确定与所述指令相关联的跨距是所述两个或更多差异的最大公约数。此跨距可以由编译器用来优化数据高速缓存器预取。另外,通过在审查阶段和跳跃阶段之间循环可以降低与监视数据高速缓存器未命中的地址相关联的任何开销。在审查阶段期间比在跳跃阶段期间监视更多的数据高速缓存器未命中。
在图1中图示了示例性计算机系统100的框图。计算机系统100可以是个人计算机(PC),也可以是任何其它计算装置。在一个例子中,计算机系统100包括由电源103供电的主处理单元102。主处理单元102可以包括处理器104,所述处理器104由系统互连106电耦合到主存储设备108和一个或多个接口电路110。在一个例子中,系统互连106是地址/数据总线。当然,本领域内普通技术人员应当容易地理解到:可以使用不同于总线的互连来把处理器104连接到主存储设备108。例如,一个或多个专用线路和/或交叉开关可以用来把处理器104连接到主存储设备108。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210021110.7/2.html,转载请声明来源钻瓜专利网。