本发明专利技术公开了一种提前取出分支目标缓冲器。提前取出分支目标缓冲器由分支预测器使用以基于用于前一取出束、即在包括分支指令的取出束之前取出的取出束的取出指针来确定分支指令的目标地址。在提前取出分支目标缓冲器中的条目相应于一个分支指令,并包括识别那个分支指令的目标地址的数据部分。在各种例子中,条目还包括存储识别取出指针的数据的标签部分,该条目由该取出指针编索引。通过将使用所接收的取出指针生成的索引与标签部分匹配来识别匹配条目并接着从匹配条目的数据部分确定用于分支指令的目的地址来执行分支预测。定用于分支指令的目的地址来执行分支预测。定用于分支指令的目的地址来执行分支预测。
【技术实现步骤摘要】
提前取出分支目标缓冲器
[0001]本申请是申请日为2016年11月07日,申请号为201610977366.3,专利技术名称为“提前取出分支目标缓冲器”的申请的分案申请。
[0002]本申请总体上涉及提前取出分支目标缓冲器。
技术介绍
[0003]分支目标缓冲器(BTB)是与处理器中的管线相关联并存储关于计算机程序的以前执行的分支指令的信息的存储元件。分支预测器使用存储在BTB中的数据来预测在已知引起可能的流变化的指令(诸如分支指令)的情况下程序流将采用的方向。BTB因此使用关于在过去的程序流的信息来预测当前程序流。分支预测是有用的,因为它在预测的结果是已知的之前使指令能够由处理器推测地执行。
[0004]下面所述的实施方式仅作为例子被提供且不是解决已知分支预测器和BTB的任何或所有缺点的实现的限制。
技术实现思路
[0005]这个概述被提供来以简化的形式介绍一系列概念,其在下面在详细描述中被进一步描述。这个概述并不打算识别所要求保护的主题的关键特征或必要特征,也不打算被用作帮助确定所要求保护的主题的范围。
[0006]提前取出分支目标缓冲器由分支预测器使用以基于用于前一取出束(即,在包括分支指令的取出束之前取出的取出束)的取出指针来确定用于分支指令的目标地址。在提前取出分支目标缓冲器中的条目相应于一个分支指令,并包括识别那个分支指令的目标地址的数据部分。在各种例子中,条目还包括存储识别取出指针的数据的标签部分,该条目由该取出指针编索引。通过将使用所接收的取出指针生成的索引与标签部分匹配以识别匹配条目并接着从匹配条目的数据部分确定用于分支指令的目的地址来执行分支预测。
[0007]第一方面提供分支预测器,其包括:提前取出分支目标缓冲器,其包括使用取出指针编索引的多个数据条目,每个条目相应于分支指令并包括被布置成存储识别条目所相应于的分支指令的目标地址的数据的数据部分,其中条目由取出束的取出指针编索引,该取出束在包括条目所相应于的分支指令的取出束之前被取出;输入端,其被配置成接收来自处理器中的取出级的取出指针;分支预测逻辑,其被配置成使用提前取出分支目标缓冲器和所接收的取出指针来确定用于分支指令的目标地址;以及输出端,其被配置成向取出级提供用于分支指令的目标地址,其中分支指令是在由所接收的取出指针识别的取出束之后取出的取出束的部分。
[0008]第二方面提供在硬件逻辑中实现的分支预测的方法,该方法包括:在分支预测器的输入端处接收来自处理器中的取出级的取出指针;使用提前取出分支目标缓冲器和所接收的取出指针来确定用于分支指令的目标地址,提前取出分支目标缓冲器包括使用取出指
针来编索引的多个数据条目,每个条目相应于分支指令并包括布置成存储识别分支指令的目标地址的数据的数据部分,其中条目由取出束的取出指针编索引,该取出束在包括条目所相应于的分支指令的取出束之前被取出;以及经由分支预测器的输出端向取出级输出用于分支指令的目标地址,其中分支指令是在由所接收的取出指针识别的取出束之后取出的取出束的部分。
[0009]第三部分提供非临时计算机可读存储介质,其具有存储在其上的计算机可读指令,所述指令当在用于生成集成电路的表现形式的计算机系统处被执行时使计算机系统生成集成电路的表现形式,该集成电路包括分支预测器,分支预测器包括:提前取出分支目标缓冲器,其包括使用取出指针编索引的多个数据条目,每个条目相应于分支指令并包括布置成存储识别条目所相应于的分支指令的目标地址的数据的数据部分,其中条目由取出束的取出指针编索引,该取出束在包括条目所相应于的分支指令的取出束之前被取出;输入端,其被配置成接收来自处理器中的取出级的取出指针;分支预测逻辑,其被配置成使用提前取出分支目标缓冲器和所接收的取出指针来确定用于分支指令的目标地址;以及输出端,其被配置成向取出级提供用于分支指令的目标地址,其中分支指令是在由所接收的取出指针识别的取出束之后取出的取出束的部分。
[0010]优选特征可在适当时被组合,如对技术人员明显的,并可与本专利技术的任何方面组合。
附图说明
[0011]本专利技术的实施方式将参考下面的附图通过示例的方式来描述,其中:
[0012]图1A
‑
1C示出说明提前取出分支目标缓冲器的操作的示意图;
[0013]图2示出包括提前取出分支目标缓冲器的示例处理器的示意图;
[0014]图3是示例提前取出分支目标缓冲器的示意图;
[0015]图4是更详细示出图2的分支预测器的示意图;
[0016]图5是预测分支指令的目标地址的示例方法的流程图;以及
[0017]图6是更新提前取出分支目标缓冲器的示例方法的流程图。
[0018]共同的参考数字在全部附图中用于指示类似的特征。
具体实施方式
[0019]下面仅作为例子描述本专利技术的实施方式。这些例子代表申请人当前已知的实施本专利技术的最佳方式,但是它们不是这可被实现的唯一方式。该描述阐述了例子的功能和用于构造并操作例子的步骤的顺序。然而,相同或等效的功能和顺序可由不同的例子实现。
[0020]指令以可包括一个或多个指令(例如,取决于被支持的每循环取指令的数量)的被称为“取出束”或“取出块”的束的形式由处理器取出。在示例实现中,取出束可包括多达4个指令。
[0021]分支预测器使用索引来在存储对于分支指令的最近目标地址的分支目标缓冲器(BTB)中执行查找。在BTB中的索引和条目之间的匹配(这可被称为“命中”)的情况下,分支预测器使用在匹配条目中的数据来确定(例如,预测)对于分支指令的目标地址。在各种例子中,用于访问BTB的索引可以是用于包含分支指令的取出束的取出指针(其中取出指针是
在取出束中的开始指令的地址)或它可从取出指针中生成。在开始指令是分支指令的情况下(例如,在分支指令是在取出束中的唯一指令或在取出束中的第一指令的情况下),用于访问BTB的索引可以是分支指令的地址,或它可使用分支指令的地址来生成。分支预测器(和因而的BTB)可用以生成命中的频率直接影响指令可被执行的速度,且所以性能可通过增加在BTB中的条目的数量来提高。增加BTB中的条目的数量一般暗示增加BTB的尺寸,这需要更多的存储器且可增加查找过程的时延(即,可能花费两个时钟周期来执行在BTB中的查找而不是仅仅一个周期)。如果未被寻址到,则时延可导致在指令取出管线中的暂停(也被称为“气泡”)。
[0022]BTB可在分支指令的每次执行之后被更新。例如,在分支指令被执行之后,执行管线可以给分支预测器提供跟随分支指令的指令的地址(其也可被称为程序计数器)。分支预测器可接着用所接收的地址代替在BTB中的预测目标值。可选地,BTB可包括用于每个分支指令的计数器(例如,2位计数器)并跟踪对于分支指令的误预测的数量。在这些情况下,预测目标地址可以只在两个连续误预测之后被更新。
[0023]在本文描述了提前取出分支目标缓冲器,其可用于补偿在BTB中执行查找时的任何时延且因此减少或消本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种分支预测器,包括:提前取出分支目标缓冲器,其具有使用取出指针X、Y编索引的多个数据条目,每个条目相应于分支指令X
BR
、Y
BR
并包括数据部分,所述数据部分被布置成存储识别所述条目所相应于的分支指令X
BR
、Y
BR
的目标地址Y、Z的数据,其中用于第二分支指令Y
BR
的条目由取出束的起始指令的取出指针X编索引,所述取出束包括多个指令,所述多个指令包括第一分支指令X
BR
,所述取出束在包括所述条目所相应于的第二分支指令Y
BR
的另一个取出束之前被取出;输入端,其被配置成接收来自处理器中的取出级的用于所述取出束中的起始指令的取出指针X,所述取出束包括多个指令,所述多个指令包括所述第一分支指令X
BR
;分支预测逻辑,其被配置成使用所述提前取出分支目标缓冲器和所接收的取出指针X来确定用于所述第二分支指令Y
BR
的目标地址Z,所述第二分支指令Y
BR
包括在所述另一个取出束中;以及输出端,其被配置成向所述取出级提供用于所述第二分支指令Y
BR
的所述目标地址Z,其中所述第二分支指令Y
BR
是在由所述接收的取出指针X识别的取出束之后取出的另一个取出束的部分。2.如权利要求1所述的分支预测器,其中,每个条目还包括被布置成存储识别所述取出指针的数据的标签部分,所述条目通过所述取出指针被编索引。3.如权利要求2所述的分支预测器,其中,所述分支预测逻辑包括:索引生成器逻辑,其被配置成使用与所述接收的取出指针X有关的信息来生成索引;以及目标地址预测逻辑,其被配置成通过使所述索引与标签部分匹配来识别在所述提前取出分支目标缓冲器中的匹配条目并使用所述匹配条目的所述数据部分来确定用于所述第二分支指令Y
BR
的所述目标地址Z。4.如权利要求3所述的分支预测器,其中,所述索引是所述接收的取出指针X的至少部分。5.如权利要求3所述的分支预测器,其中,所述索引是所述接收的取出指针X的全部。6.如权利要求3所述的分支预测器,其中,与所述分支指令有关的信息包括历史数据。7.如权利要求1所述的分支预测器,还包括:更新逻辑,其被配置成基于与所述接收的取出指针X有关的所缓存的信息、由所述分支预测逻辑确定的用于所述第二分支指令Y
BR
的所述目标地址Z和与从在所述处理器中的执行级接收的所述第二分支指...
【专利技术属性】
技术研发人员:帕蒂弗,
申请(专利权)人:美普思技术有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。