[发明专利]建立用于子例程返回的分支目标指令高速缓冲存储器(BTIC)条目以减少执行管线泡,以及相关系统、方法和计算机可读媒体在审
申请号: | 201380061574.3 | 申请日: | 2013-11-27 |
公开(公告)号: | CN104854556A | 公开(公告)日: | 2015-08-19 |
发明(设计)人: | 詹姆斯·诺里斯·迪芬德尔费尔;迈克尔·威廉·莫罗;迈克尔·斯科特·麦克勒瓦伊内;达朗·尤金·施特雷特;维马尔·K·雷迪;布莱恩·迈克尔·斯坦普尔 | 申请(专利权)人: | 高通股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京律盟知识产权代理有限责任公司 11287 | 代理人: | 宋献涛 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 建立 用于 例程 返回 分支 目标 指令 高速 缓冲存储器 btic 条目 减少 执行 管线 以及 | ||
优先权申请
本申请案主张2012年11月28日申请且标题为“建立用于子例程返回的分支目标指令高速缓冲存储器(BTIC)条目以减少执行管线暂停,以及相关系统、方法和计算机可读媒体(ESTABLISHING A BRANCH TARGET INSTRUCTION CACHE(BTIC)ENTRY FOR SUBROUTINE RETURNS TO REDUCE EXECUTION PIPELINE STALLS,AND RELATED SYSTEMS,METHODS,AND COMPUTER-READABLE MEDIA)的第61/730,717号美国临时专利申请案的优先权,所述美国临时专利申请案通过引用以其全文结合在此。
技术领域
本发明的技术涉及计算机系统中的分支预测,且更具体地说涉及分支目标缓冲器(BTB)和/或分支目标指令高速缓冲存储器(BTIC)。
背景技术
指令管线化是处理技术,通过所述技术,可通过将每一指令的处置分裂为一系列步骤且在由多个级组成的执行管线中执行所述步骤而增加处理器正执行的计算机指令的处理量。如果执行管线中的所有级能够同时处理指令而当指令重定向发生时不会带来管线“泡”,那么可实现最佳处理器性能。在执行管线内处理的指令可包含分支指令,其通过将程序控制转移到指定分支目标指令而重定向程序的流。如果分支指令是条件性的,(即,直到执行时才知道是否将采取所述分支),那么可采用分支预测硬件来基于先前执行的条件性分支指令的解析而预测是否将采取所述分支。
在常规执行管线中,跟随分支指令的指令与所述分支指令的解码同时地被取入执行管线。因此,当预测将采取分支时,按顺序在分支指令之后获取的指令(即,在不采取所述分支的情况下将执行的指令)被清空。随后获取正确的分支目标指令。此过程通常被称作指令获取重定向。因为指令获取重定向可消耗一或多个时钟循环,所以在其中获取分支目标指令的同时解码级空闲的点处可能将一或多个管线泡引入到执行管线。一旦被引入,管线泡便传播穿过执行管线的后续级。
为了减少管线泡的频率,可利用分支目标指令高速缓冲存储器(BTIC)。BTIC存储一或多个分支目标指令(即,当采取分支时分支指令将程序控制转移到的目标地址处的指令)的副本。BTIC中高速缓冲存储的分支目标指令可经部分或完全解码。BTIC还可高速缓冲存储下一指令获取地址以用于获取在经高速缓冲存储分支目标指令之后的一或多个接着的后续指令。BTIC通常是在执行管线的获取级期间查询,且将分支目标指令提供到执行管线的一或多个后续级以减少或消除由于指令获取重定向而引入的管线泡的发生。
当辨识出分支指令且首先采取所述分支时针对所述分支指令建立BTIC条目。因此,当首次遇到分支指令时,BTIC条目对于所述分支指令并不存在,且BTIC高速缓冲存储器“未中”发生。在子例程返回指令(特定类型的分支指令)的特定情况中,当首先遇到子例程返回指令时,所述子例程返回指令将始终经历BTIC高速缓冲存储器未中。希望当首次遇到子例程返回指令时对应于所述子例程返回指令的BTIC条目提供正确的分支目标指令。
此外,因为子例程可能从程序内的不同点处的多个分支指令调用,所以用于子例程返回指令的BTIC条目可能经常含有不正确的分支目标指令。举例来说,当从第一调用位置调用的子例程返回时,按顺序在所述第一调用位置之后的指令执行且填充于用于子例程返回指令的BTIC条目中作为分支目标指令。如果随后从第二调用位置调用子例程,那么在子例程返回之后应执行按顺序在所述第二调用位置之后的指令。然而,在用于子例程返回指令的BTIC条目中高速缓冲存储的分支目标指令是跟随第一调用位置的指令,而不是跟随第二调用位置的指令。因此,子例程返回指令的BTIC条目不含有用于第二调用位置的正确分支目标指令。希望即使在从不同调用位置调用子例程之后子例程返回指令的BTIC条目也提供正确的分支目标指令。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于高通股份有限公司,未经高通股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380061574.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于实现虚拟机的方法和云管理节点
- 下一篇:一种对象搜索方法及装置