建立分支目标指令高速缓冲存储器条目的方法和系统技术方案

技术编号:11908769 阅读:101 留言:0更新日期:2015-08-19 23:58
本发明专利技术揭示建立用于子例程返回的分支目标指令高速缓冲存储器BTIC条目以减少管线泡,以及相关的系统、方法和计算机可读媒体。在一个实施例中,建立BTIC条目的方法包含检测执行管线中的子例程调用。作为响应,将按顺序在所述子例程调用之后获取的至少一个指令写入作为用于子例程返回的BTIC条目中的分支目标指令。计算下一指令获取地址,且将其写入到所述BTIC条目中的下一指令获取地址字段中。以此方式,即使首次遇到所述子例程返回或从不同调用位置调用所述子例程,所述BTIC也可提供用于所述子例程返回的正确分支目标指令和下一指令获取地址数据。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】建立用于子例程返回的分支目标指令高速缓冲存储器(BTIC)条目以减少执行管线泡,以及相关系统、方法和计算机可读媒体优先权申请本申请案主张2012年11月28日申请且标题为“建立用于子例程返回的分支目标指令高速缓冲存储器(BTIC)条目以减少执行管线暂停,以及相关系统、方法和计算机可读媒体(ESTABLISHING A BRANCH TARGET INSTRUCT1N CACHE (BTIC) ENTRY FOR SUBROUTINERETURNS TO REDUCE EXECUT1N PIPELINE STALLS, AND RELATED SYSTEMS, METHODS, ANDCOMPUTER-READABLE MEDIA)的第61/730,717号美国临时专利申请案的优先权,所述美国临时专利申请案通过引用以其全文结合在此。
本专利技术的技术涉及计算机系统中的分支预测,且更具体地说涉及分支目标缓冲器(BTB)和/或分支目标指令高速缓冲存储器(BTIC)。
技术介绍
指令管线化是处理技术,通过所述技术,可通过将每一指令的处置分裂为一系列步骤且在由多个级组成的执行管线中执行所述步骤而增加处理器正执行的计算机指令的处理量。如果执行管线中的所有级能够同时处理指令而当指令重定向发生时不会带来管线“泡”,那么可实现最佳处理器性能。在执行管线内处理的指令可包含分支指令,其通过将程序控制转移到指定分支目标指令而重定向程序的流。如果分支指令是条件性的,(即,直到执行时才知道是否将采取所述分支),那么可采用分支预测硬件来基于先前执行的条件性分支指令的解析而预测是否将采取所述分支。在常规执行管线中,跟随分支指令的指令与所述分支指令的解码同时地被取入执行管线。因此,当预测将采取分支时,按顺序在分支指令之后获取的指令(即,在不采取所述分支的情况下将执行的指令)被清空。随后获取正确的分支目标指令。此过程通常被称作指令获取重定向。因为指令获取重定向可消耗一或多个时钟循环,所以在其中获取分支目标指令的同时解码级空闲的点处可能将一或多个管线泡引入到执行管线。一旦被引入,管线泡便传播穿过执行管线的后续级。为了减少管线泡的频率,可利用分支目标指令高速缓冲存储器(BTIC)。BTIC存储一或多个分支目标指令(即,当采取分支时分支指令将程序控制转移到的目标地址处的指令)的副本。BTIC中高速缓冲存储的分支目标指令可经部分或完全解码。BTIC还可高速缓冲存储下一指令获取地址以用于获取在经高速缓冲存储分支目标指令之后的一或多个接着的后续指令。BTIC通常是在执行管线的获取级期间查询,且将分支目标指令提供到执行管线的一或多个后续级以减少或消除由于指令获取重定向而引入的管线泡的发生。当辨识出分支指令且首先采取所述分支时针对所述分支指令建立BTIC条目。因此,当首次遇到分支指令时,BTIC条目对于所述分支指令并不存在,且BTIC高速缓冲存储器“未中”发生。在子例程返回指令(特定类型的分支指令)的特定情况中,当首先遇到子例程返回指令时,所述子例程返回指令将始终经历BTIC高速缓冲存储器未中。希望当首次遇到子例程返回指令时对应于所述子例程返回指令的BTIC条目提供正确的分支目标指令。此外,因为子例程可能从程序内的不同点处的多个分支指令调用,所以用于子例程返回指令的BTIC条目可能经常含有不正确的分支目标指令。举例来说,当从第一调用位置调用的子例程返回时,按顺序在所述第一调用位置之后的指令执行且填充于用于子例程返回指令的BTIC条目中作为分支目标指令。如果随后从第二调用位置调用子例程,那么在子例程返回之后应执行按顺序在所述第二调用位置之后的指令。然而,在用于子例程返回指令的BTIC条目中高速缓冲存储的分支目标指令是跟随第一调用位置的指令,而不是跟随第二调用位置的指令。因此,子例程返回指令的BTIC条目不含有用于第二调用位置的正确分支目标指令。希望即使在从不同调用位置调用子例程之后子例程返回指令的BTIC条目也提供正确的分支目标指令。
技术实现思路
本专利技术的实施例提供建立用于子例程返回指令的分支目标指令高速缓冲存储器(BTIC)条目以减少执行管线泡。还揭示相关系统、方法及计算机可读媒体。常规地,响应于检测到预测将采取的分支指令,将已经获取的按顺序在所述分支指令之后(按编程次序)的指令从执行管线清空。然而,当分支指令是子例程调用指令时,那些清空的顺序指令很可能是将从由子例程调用指令调用的子例程转移回程序控制的用于所述子例程返回指令的分支目标指令。因此,本文所揭示的实施例提供响应于检测到子例程调用指令而建立用于子例程返回指令的BTIC条目。以此方式,BTIC可当首先遇到子例程返回指令时提供用于子例程返回指令的有效BTIC条目。此外,即使当从不同于先前调用位置的调用位置调用子例程时,BTIC条目也可提供用于子例程返回指令的正确分支目标指令。在此方面,在一个实施例中,提供建立在执行管线中用于子例程返回指令的BTIC条目以减少执行管线泡的发生的方法。所述方法包括检测执行管线中的子例程调用指令。响应于检测到子例程调用指令,所述方法进一步包括通过将按顺序在子例程调用指令之后获取的至少一个顺序指令写入作为用于子例程返回指令的BTIC条目中的分支目标指令,来建立用于子例程返回指令的BTIC条目。所述方法还包括计算下一指令获取地址。所述方法另外包括将下一指令获取地址写入到用于子例程返回指令的BTIC条目中的下一指令获取地址字段中。以此方式,即使首次遇到子例程返回指令或从不同于先前调用位置的调用位置调用子例程,BTIC也可提供正确分支目标指令和用于子例程返回指令的下一指令获取地址数据。 在另一实施例中,提供管线泡减少电路。所述管线泡减少电路包括子例程调用检测电路,其经配置以检测执行管线中的子例程调用指令。所述管线泡减少电路进一步包括BTIC条目建立电路,其经配置以响应于所述子例程调用检测电路检测到所述子例程调用指令而将按顺序在所述子例程调用指令之后获取的至少一个顺序指令写入作为用于子例程返回指令的BTIC条目中的分支目标指令。所述BTIC条目建立电路进一步经配置以计算下一指令获取地址。所述BTIC建立电路还经配置以将所述下一指令获取地址写入到用于所述子例程返回指令的所述BTIC条目中的下一指令获取地址字段中。在另一实施例中,提供管线泡减少电路。所述管线泡减少电路包括用于检测执行管线中的子例程调用指令的装置。所述管线泡减少电路进一步包括用于响应于检测到所述子例程调用指令而建立用于子例程返回指令的BTIC条目的装置。所述用于建立BTIC条目的装置包括用于响应于检测到所述子例程调用指令而将按顺序在所述子例程调用指令之后获取的至少一个顺序指令写入作为用于所述子例程返回指令的所述BTIC条目中的分支目标指令的装置。所述用于建立BTIC条目的装置还包括用于响应于检测到所述子例程调用指令而计算下一指令获取地址的装置。所述用于建立BTIC条目的装置另外包括用于响应于检测到所述子例程调用指令而将所述下一指令获取地址写入到用于所述子例程返回指令的所述BTIC条目中的下一指令获取地址字段中的装置。在另一实施例中,提供非暂时性计算机可读媒体,其具有存储于其上的计算机可执行指本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN104854556.html" title="建立分支目标指令高速缓冲存储器条目的方法和系统原文来自X技术">建立分支目标指令高速缓冲存储器条目的方法和系统</a>

【技术保护点】
一种建立用于执行管线中的子例程返回指令的分支目标指令高速缓冲存储器BTIC条目以减少管线泡的发生的方法,其包括:检测执行管线中的子例程调用指令;以及响应于检测到所述子例程调用指令,通过以下操作建立用于子例程返回指令的BTIC条目:将按顺序在所述子例程调用指令之后获取的至少一个顺序指令写入作为用于所述子例程返回指令的所述BTIC条目中的分支目标指令;计算下一指令获取地址;以及将所述下一指令获取地址写入到用于所述子例程返回指令的所述BTIC条目中的下一指令获取地址字段中。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:詹姆斯·诺里斯·迪芬德尔费尔迈克尔·威廉·莫罗迈克尔·斯科特·麦克勒瓦伊内达朗·尤金·施特雷特维马尔·K·雷迪布莱恩·迈克尔·斯坦普尔
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国;US

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

1