[发明专利]响应于到子例程的分支而预测内容表指针值有效
申请号: | 201880058318.1 | 申请日: | 2018-09-18 |
公开(公告)号: | CN111095201B | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | M.K.格施温德;V.萨拉普拉 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/32 | 分类号: | G06F9/32 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 邸万奎 |
地址: | 美国纽*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 响应 例程 分支 预测 内容 指针 | ||
1.一种用于促进计算环境内的处理的计算机可读存储介质,其可由处理电路读取并且存储用于执行方法的指令,所述方法包括:
从在处理器上执行的调用模块调用子例程;
基于调用所述子例程,预测指向参考数据结构的指针的值,所述预测是在执行所述子例程中的用于计算所述值的一个或多个指令的序列之前执行;
确定所述子例程中的当前指令是否对应于用于计算所述值的所述一个或多个指令的序列;
基于确定所述当前指令对应于用于计算所述值的所述一个或多个指令的序列,在代码中插入用于检查所述值的所述预测的检查指令,
所述插入替换所述一个或多个指令的序列;以及
使用被预测的所述值来访问所述参考数据结构,以获得所述子例程的变量的变量值。
2.根据权利要求1所述的计算机可读存储介质,其中所述方法进一步包括:
在所述预测之前获得所述指针的当前值;以及
将所述当前值存储在恢复位置中。
3.根据权利要求2所述的计算机可读存储介质,其中所述方法进一步包括:
确定为所述指针预测的所述值不正确;以及
基于确定为所述指针预测的所述值不正确,从所述恢复位置获得所述当前值。
4.根据权利要求1所述的计算机可读存储介质,其中所述方法进一步包括将
为所述指针预测的所述值加载在限定位置中。
5.根据权利要求1所述的计算机可读存储介质,其中所述方法进一步包括:
确定是否设置了检查指示符;以及
基于确定设置了所述检查指示符,确定所述当前指令是否对应于用于计算所述值的所述一个或多个指令的序列。
6.根据权利要求1所述的计算机可读存储介质,其中所述方法进一步包括:
基于确定所述当前指令不对应于用于计算所述值的所述一个或多个指令的序列,确定所述当前指令是否对应于用于使用所述值的一个或多个指令的序列;以及
至少基于确定所述当前指令对应于用于使用所述值的所述一个或多个指令的序列,执行恢复。
7.根据权利要求1所述的计算机可读存储介质,其中所述一个或多个指令的序列包括加载指令。
8.根据权利要求1所述的计算机可读存储介质,其中所述方法进一步包括:
在所述预测之前获得所述指针的当前值;以及
将所述当前值存储在重命名寄存器中以供在恢复中使用。
9.根据权利要求1所述的计算机可读存储介质,其中所述预测包括使用参考数据结构指针高速缓存来获得所述值。
10.一种用于促进计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;以及
与所述存储器通信的处理器,其中所述计算机系统被配置为执行方法,所述方法包括:
从在处理器上执行的调用模块调用子例程;
基于调用所述子例程,预测指向参考数据结构的指针的值,所述预测是在执行所述子例程中的用于计算所述值的一个或多个指令的序列之前执行;
确定所述子例程中的当前指令是否对应于用于计算所述值的所述一个或多个指令的序列;
基于确定所述当前指令对应于用于计算所述值的所述一个或多个指令的序列,在代码中插入用于检查所述值的所述预测的检查指令,
所述插入替换所述一个或多个指令的序列;以及
使用被预测的所述值来访问所述参考数据结构,以获得所述子例程的变量的变量值。
11.根据权利要求10所述的计算机系统,其中所述方法进一步包括:
在所述预测之前获得所述指针的当前值;以及
将所述当前值存储在恢复位置中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880058318.1/1.html,转载请声明来源钻瓜专利网。