[发明专利]用于促进计算环境内的处理的系统和方法有效
申请号: | 201880053566.7 | 申请日: | 2018-08-07 |
公开(公告)号: | CN111033467B | 公开(公告)日: | 2023-08-01 |
发明(设计)人: | M.K.格施温德;V.萨拉普拉 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 邸万奎 |
地址: | 美国纽*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 促进 计算 环境 处理 系统 方法 | ||
预测将在寄存器间接分支中使用的值,且将其同时存储在一个或多个指令可存取的所选择位置中。所述值可以是由间接分支使用的目标地址,并且所选择位置可以是硬件寄存器,提供分支地址的预测和寄存器内容的更新的同时进行。
背景技术
一个或多个方面一般涉及计算环境内的处理,尤其涉及促进这样的处理。
许多计算系统使用寄存器间接分支,其中在分支指令中指定下一个要执行的指令的地址的位置,而不是地址本身。例如,指定包括该地址的寄存器的位置。
此外,根据通用的应用二进制接口(ABI),分支地址首先被加载到通用寄存器(GPR),然后在实现寄存器间接分支之前被传送到专用控制寄存器(SPR)。例如,在纽约阿芒克的国际商业机器公司提供的Power指令集架构(ISA)中,分支指令分支到计数器(CTR)专用寄存器。然而,专用寄存器不是直接加载的,而是经由通用寄存器加载的。
计数器寄存器的读出往往是昂贵的。因此,当执行到子例程的分支(BCTR)时,至少一个ABI指示CTR的值要存储在另一寄存器、例如R12中,使得另一寄存器能够由被调用的函数用作基址寄存器。然而,当进行分支预测时,会在已加载R12值之前预测分支地址,从而使所调用的子例程响应于数据访问而停止,且限制性能。
发明内容
通过提供一种用于促进计算环境内的处理的计算机程序产品,克服了现有技术的缺点,并提供了附加的优点。该计算机程序产品包括可由处理电路读取并且存储用于执行方法的指令的存储介质。该方法包括例如使用计算环境的处理器来预测要在寄存器间接分支中使用的预测值。预测值被存储在计算环境的一个或多个指令可访问的所选择位置中,并且该存储与处理寄存器间接分支同时地执行。该所选择位置是除了用于存储指令地址的另一位置之外的位置。预测值被用在包括寄存器间接分支的推测(speculative)处理中。
通过同时地处理寄存器间接分支且将从所述处理产生的预测值存储在其他指令可访问的位置中(除程序计数器之外),促进处理且可增强性能,尤其是在预测值正确的情况下。
作为一个或多个示例,所述预测值包含将由指令提取使用的目标地址,且所述所选择位置包含硬件寄存器。此外,在一个示例中,所述使用包含将指令提取重定向到目标地址。
在另一方面,作出关于预测值是否准确的确定。基于确定预测值不准确,执行恢复。
恢复包括例如清洗(flush)在使用之后执行的一个或多个指令,以及用非预测值替换预测值。在一个示例中,替换包括使用一个或多个重命名寄存器来提供非预测值。
在一个实施例中,存储包括分配寄存器以保存预测值,以及将预测值复制到被分配以保存预测值的寄存器。
作为一个示例,寄存器是为被指派以保存预测值的逻辑寄存器分配的重命名寄存器。此外,在一个实施例中,重命名寄存器被标记为可用。
本文还描述并要求保护与一个或多个方面相关的计算机实现的方法和系统。此外,本文还描述并要求保护与一个或多个方面相关的服务。
根据一个方面,提供了一种用于促进计算环境内的处理的计算机程序产品,所述计算机程序产品包括:一种计算机可读存储介质,其可由处理电路读取并且存储用于执行方法的指令,所述方法包括:使用所述计算环境的处理器预测将在寄存器间接分支中使用的预测值;将所述预测值存储在所述计算环境的一个或多个指令可访问的所选择位置中,所述存储与寄存器间接分支的处理同时执行,并且所述所选择位置是除了用于存储指令地址的另一位置之外的位置;以及在包括寄存器间接分支的推测处理中使用预测值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880053566.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:锂二次电池用负极和包含其的锂二次电池
- 下一篇:喷气发动机