当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于跨距剖析软件应用的方法和设备技术

技术编号:2852139 阅读:182 留言:0更新日期:2012-04-11 18:40
公开了一种用于跨距剖析软件应用的方法和设备。示例性的系统使用硬件性能计数器来报告与由某个事件(诸如数据高速缓存器未命中)所触发的存储器访问指令相关联的数据地址和指令地址。当相同的指令地址被与一个以上的数据地址相关联时,记录在两个数据地址之间的差异。当对于相同的指令记录了这些数据地址差异中的两个或更多时,该系统确定与所述指令相关联的跨距是所述两个或更多差异的最大公约数。此跨距可以由编译器用来优化数据高速缓存器预取。另外,通过在审查阶段和跳跃阶段之间循环可以降低与监视数据高速缓存器未命中的地址相关联的任何开销。在审查阶段期间比在跳跃阶段期间监视更多的数据高速缓存器未命中。(*该技术在2024年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及软件编译器,并且尤其涉及用于跨距剖析(profiling)软件应用的方法和设备。
技术介绍
在处理器和存储器速度之间的距离继续加大。结果,计算机性能逐渐地用高速缓存器分级结构的有效性来确定。然而,处理器工作量典型地会招致显著的高速缓存未命中。预取是用于改进高速缓存器分级结构有效性的公知且有效的技术。用于改进预取准确性的一种编译器技术在于统计地发现具有恒定“跨距(stride)”的存储器访问指令(例如,加载、存储等)。例如,加载每第十六个字节的加载指令易于被预取,这是因为编译器提前知道将需要什么字节。然而,由于直到运行时才被解析的间接数组引用和指针废弃,导致编译器不能统计地发现具有恒定跨距的许多存储器访问指令。为了解决此问题,可以把“工具”代码(即,测试码)添加到软件应用以便直接监视由一个或多个存储器访问指令所访问的实际数据地址。然而,工具代码给软件应用增加了显著的开销,这使所述应用慢了下来(例如,慢了10倍)。附图说明图1是图示用于所公开系统环境的示例性计算机系统的框图。图2是图示用于所公开系统环境的另一示例性计算机系统的框图。图3是包括加载指令的代码部分的例子。图本文档来自技高网...

【技术保护点】
一种用于跨距剖析软件应用的方法,所述方法包括:    从硬件性能计数器接收用于表示第一指令地址和第一数据地址的数据;    从所述硬件性能计数器接收用于表示第二指令地址和第二数据地址的数据;    如果所述第一指令地址等于所述第二指令地址,那么通过从所述第二数据地址减去中所述第一数据地址来确定第一跨距积;并且    根据所述第一跨距积来确定跨距。

【技术特征摘要】
【国外来华专利技术】US 2003-5-27 10/446,0041.一种用于跨距剖析软件应用的方法,所述方法包括从硬件性能计数器接收用于表示第一指令地址和第一数据地址的数据;从所述硬件性能计数器接收用于表示第二指令地址和第二数据地址的数据;如果所述第一指令地址等于所述第二指令地址,那么通过从所述第二数据地址减去中所述第一数据地址来确定第一跨距积;并且根据所述第一跨距积来确定跨距。2.如权利要求1所述的方法,其中根据所述第一跨距积确定跨距包括确定所述跨距等于所述第一跨距积。3.如权利要求1所述的方法,还包括从所述硬件性能计数器接收用于表示第三指令地址和第三数据地址的数据;如果所述第二指令地址等于所述第三指令地址,那么通过从所述第三数据地址中减去所述第二数据地址来确定第二跨距积。4.如权利要求3所述的方法,其中根据所述第一跨距积确定所述跨距包括确定所述第一跨距积和所述第二跨距积的最大公约数。5.如权利要求3所述的方法,其中从硬件性能计数器接收表示第一指令地址和第一数据地址的数据包括接收所述第一指令地址和所述第一数据地址作为表示第一多个连续的数据高速缓存器未命中的第一数据集的一部分。6.如权利要求5所述的方法,还包括接收用于表示第一多个连续的数据高速缓存器未命中的第一数据集;并且接收用于表示第二多个连续的数据高速缓存器未命中的第二数据集,其中接收第一数据集和接收第二数据集按预定的周期分隔开,在所述预定的周期期间,不接收用于表示连续的数据高速缓存器未命中的数据。7.如权利要求1所述的方法,还包括从所述硬件性能计数器接收用于表示第三指令地址和第三数据地址的数据;从所述硬件性能计数器接收用于表示第四指令地址和第四数据地址的数据;如果所述第一指令地址等于所述第三指令地址和所述第四指令地址,那么通过从所述第四数据地址中减去所述第三数据地址来确定第二跨距积。8.如权利要求7所述的方法,其中根据所述第一跨距积确定所述跨距包括确定所述第一跨距积和所述第二跨距积的最大公约数。9.如权利要求1所述的方法,其中从硬件性能计数器接收用于表示第一指令地址和第一数据地址的数据包括接收所述第一指令地址和所述第一数据地址作为用于表示多个连续的数据高速缓存器未命中的数据集的一部分。10.如权利要求1所述的方法,还包括以周期性的脉冲串系列采样硬件性能计数器。11.一种用于剖析软件应用的设备,所述设备包括用于执行软件应用和剖析工具的处理器;硬件性能计数器,可操作地耦合到所述处理器,所述硬件性能计数器用于向剖析工具提供数据,所述数据用于表示第一指令地址、与所述第一指令地址相关联的第一数据地址、第二指令地址和与所述第二指令地址相关联的第二数据地址,其中如果所述第一指令地址等于所述第二指令地址,那么所述剖析工具根据在所述第一数据地址和所述第二数据地址之间的差异来确定跨距。12.如权利要求11所述的设备,其中由硬件性能计数器向所述剖析工具所提供的数据还包括第三指令地址和与所述第三指令地址相关联的第三数据地址,如果所述第一指令地址等于所述第二指令地址,那么所述剖析工具通过从所述第二数据地址中减去所述第一数据地址来确定第一跨距积,如果所述第二指令地址等...

【专利技术属性】
技术研发人员:G罗尼CK卢
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利