使用微分支目标缓冲器的高性能零气泡条件分支预测制造技术

技术编号:14339793 阅读:59 留言:0更新日期:2017-01-04 12:17
提供一种使用微分支目标缓冲器的高性能零气泡条件分支预测。实施例包括一种微BTB,所述微BTB每循环(每一个循环)可预测最多达两个分支,并且跳转或不跳转预测上插入零气泡,从而显著改善处理器的性能并且降低微功耗。一种微处理器的前端可包括具有主BTB的主前端逻辑部分、生成预测信息的微BTB和解耦队列。微BTB可包括具有多个条目的图形以及具有多个项的CAM。图形的各个条目可包括指向跳转方向上的下一分支的链接指针以及指向非跳转方向上的下一分支的链接指针。微BTB可将热分支作为新种子插入图形中。

【技术实现步骤摘要】
本申请要求于2015年9月9日提交的第62/216,352号美国专利申请、于2016年2月18日提交的第15/047,617号美国专利申请、于2015年6月26日提交的第62/185,530号美国专利申请以及于2015年6月26日提交的第62/185,535号美国专利申请的权益,所述美国专利申请通过引用合并于此。
本公开总体上涉及数字电路,更具体地讲,涉及使用微分支目标缓冲器(uBTB)的分支预测。
技术介绍
中央处理单元(CPU)通常在处理流水线中提早预测分支指令的方向和目标以便提升性能。关于分支指令的类型、位置和目标的信息通常被高速缓冲存储器在分支目标缓冲器(BTB)中,BTB使用指令提取地址被访问,并且使用内容可寻址存储器(CAM)来检测BTB是否包括含映射至当前提取窗口的分支。BTB还可使用组关联结构来检测BTB是否包括映射至当前提取窗口的分支。传统BTB通常是大结构,当与分支方向预测器组合时导致针对预测跳转(predicted-tanken)分支的至少一个循环的惩罚(即,气泡(bubble))。在一些情况下,传统BTB甚至可引发针对预测不跳转分支的惩罚。已进行了一些尝试来使用循环缓冲器或者相似的结构隐藏预测跳转分支气泡以解决惩罚,但是这些方法具有限制性。循环缓冲器要求循环中的所有的指令在循环缓冲器内适用,而不仅仅是分支指令。不包括条件分支预测器的较小和较简单的BTB无法准确地预测具有动态结果的分支,并且将导致性能和能量的浪费。另外,没有采用链接的较小和较简单的BTB将在CAM操作上浪费能量。
技术实现思路
实施例可包括一种微处理器的前端,所述前端具有包括主分支目标缓冲器(BTB)的主前端逻辑部分。所述前端可包括微BTB,微BTB与主前端逻辑部分的主BTB分离并且被配置为生成预测信息。该前端可包括解耦队列,解耦队列耦合至微BTB和主前端逻辑部分,并且被配置为接收预测信息并将预测信息排入队列,并且将排入队列的预测信息提供给主前端逻辑部分。所述微BTB可包括:图形,包括一个或更多个条目;内容可寻址存储器(CAM),包括一个或更多个项。主前端逻辑部分被配置为提取程序。微BTB的图形的所述一个或更多个条目中的每个条目表示程序的内部部分内的对应分支。微BTB的图形的所述一个或更多个条目中的每个条目可包括指向跳转方向上的第一下一分支的第一链接指针以及指向非跳转方向上的第二下一分支的第二链接指针。一些实施例包括一种用于使用微分支目标缓冲器(BTB)的微处理器的主前端逻辑部分的用于执行零气泡条件分支预测的计算机实现的方法。该方法可包括由微BTB生成与微处理器的主前端逻辑部分的主BTB所生成的预测信息分离的预测信息。该方法可包括由解耦队列从微BTB接收预测信息。该方法可包括由解耦队列将来自微BTB的预测信息排入队列。该方法可包括由解耦队列将排入队列的预测信息提供给微处理器的主前端逻辑部分。附图说明本专利技术构思的以上和附加特征和优点将从以下结合附图进行的详细描述而变得更显而易见,其中:图1是根据一些实施例的包括具有微BTB和解耦队列的前端的微处理器的示例框图。图2是图1的微处理器的前端的示例框图。图3是根据一些实施例的图1的微BTB的示例框图。图4是根据一些实施例的与图1的微BTB关联的分支指令图形的示例图。图5是根据一些实施例的不同分支预测流水线(包括用于图1的微BTB的分支预测流水线)的示例框图。图6是根据一些实施例的提取流水线队列的示例框图。图7是根据一些实施例的微BTB流水线的示例框图。图8是示出根据一些实施例的从一个预测器分类向另一预测器分类的状态转换的示例实现方式的状态图。图9是示出根据一些实施例的用于使用微BTB的微处理器的主前端逻辑部分的执行零气泡条件分支预测的技术的流程图。图10是包括图1的微处理器的前端的计算系统的框图。具体实施方式现在将详细描述各种实施例,实施例的示例示出于附图中。在以下详细描述中,阐述了众多具体细节以使得能够彻底理解所述设备和方法。然而,应该理解,本领域普通技术人员可在没有这些具体细节的情况下实践实施例。在其它示例中,公知方法、过程、组件、电路和网络没有详细描述,以避免不必要地模糊实施例的方面。将理解,尽管这里可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件相区分。例如,在不脱离各种实施例的范围的情况下,第一逻辑电路可被称为第二逻辑电路,类似地,第二逻辑电路可被称为第一逻辑电路。本文的说明书中所使用的术语仅用于描述特定实施例,并非意在限制。如实施例和所附权利要求书的描述中所用,单数形式意在也包括复数形式,除非上下文清楚地另外指示。还将理解,如这里所用,术语“和/或”表示并且涵盖一个或更多个相关所列项的任何及所有可能的组合。还将理解,术语“包括”和/或“包含”当用在本说明书中时指明存在所提及的特征、整数、步骤、操作、元件和/或组件,但是不排除一个或更多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。附图的组件和特征不必按比例绘制。一些实施例包括一种微BTB,微BTB可使用在跳转(tanken)或不跳转(nottaken)预测上的零气泡(bubble)插入,而每循环(每一个循环)预测最多达两个分支,从而显著改善微处理器的性能并且降低功耗。图1是根据一些实施例的包括具有微BTB110以及关联的解耦队列115的前端105的微处理器100的示例框图。如下面进一步描述的,前端105可包括指令高速缓冲存储器、分支预测逻辑、提取逻辑等。如下面进一步描述的,微BTB110和解耦队列115可生成可被微处理器100的主前端逻辑部分125接收的预测信息120。解耦队列115可将预测信息120提供给主前端逻辑部分125并且将微BTB110与微处理器100的其余部分解耦。微处理器100可执行程序130(也在下面详细描述)。当微BTB110确信预测信息120时,微BTB110可向主前端逻辑部分125的门控主预测结构供电,从而显著减小微处理器100的功耗。图2是图1的微处理器100的前端105的示例框图。图3是根据一些实施例的图1和图2的微BTB110的示例框图。现在参照图1、图2和图3。前端105可包括微BTB110和解耦队列115,微BTB110和解耦队列115可将预测信息120提供给主前端逻辑部分125。主前端逻辑部分125可包括各种选择器或复用器(例如,205)、加法器(例如,250、255、260)、比较器(例如,240、290和296)、返回地址栈275等。另外,主前端逻辑部分125可包括与微BTB110分离的主BTB(例如,mBTB215)和虚拟BTB(例如,vBTB270)。BTB可以是包括关于程序130(图1)中的分支的地址、目标、类和/或特定预测状态信息的信息的结构。主BTB215和虚拟BTB270可包括关于程序130中的分支的信息。微BTB110可捕获程序130的热(hot)内部部分并且允许分支的零气泡跳转预测(否则的话如果由主BTB215或虚拟BTB270预测,则将招致多循环惩罚)。主BTB215可在提取窗口中按照程序顺序保持前一个或两个分支。例如,提取窗口为指令地址空间的32字节对本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610480501.html" title="使用微分支目标缓冲器的高性能零气泡条件分支预测原文来自X技术">使用微分支目标缓冲器的高性能零气泡条件分支预测</a>

【技术保护点】
一种微处理器的前端,包括:主前端逻辑部分,包括主分支目标缓冲器BTB;微BTB,与主前端逻辑部分的主BTB分离,并且被配置为生成预测信息;解耦队列,耦合至微BTB和主前端逻辑部分,并且被配置为接收预测信息并将预测信息排入队列,并且将排入队列的预测信息提供给主前端逻辑部分。

【技术特征摘要】
2015.06.26 US 62/185,530;2015.06.26 US 62/185,535;1.一种微处理器的前端,包括:主前端逻辑部分,包括主分支目标缓冲器BTB;微BTB,与主前端逻辑部分的主BTB分离,并且被配置为生成预测信息;解耦队列,耦合至微BTB和主前端逻辑部分,并且被配置为接收预测信息并将预测信息排入队列,并且将排入队列的预测信息提供给主前端逻辑部分。2.根据权利要求1所述的微处理器的前端,其中,微BTB包括:图形,包括一个或更多个条目;内容可寻址存储器CAM,包括一个或更多个项。3.根据权利要求2所述的微处理器的前端,其中:主前端逻辑部分被配置为提取程序;微BTB的图形的所述一个或更多个条目中的每个条目表示所述程序的内部部分内的对应分支。4.根据权利要求3所述的微处理器的前端,其中:微BTB的图形的所述一个或更多个条目中的每个条目包括:指向跳转方向上的第一下一分支的第一链接指针以及指向非跳转方向上的第二下一分支的第二链接指针。5.根据权利要求4所述的微处理器的前端,其中:微BTB的图形的所述一个或更多个条目中的每个条目包括:与指向跳转方向上的第一下一分支的第一链接指针关联的第一有效位以及与指向非跳转方向上的第二下一分支的第二链接指针关联的第二有效位;微BTB的图形被配置为当第一链接指针有效时设定第一有效位,当第二链接指针有效时设定第二有效位。6.根据权利要求5所述的微处理器的前端,其中:微BTB的图形的所述一个或更多个条目中的每个条目包括:下一预测位,被配置为指示是遵循指向待预测的第一下一分支的第一链接指针还是指向待预测的第二下一分支的第二链接指针。7.根据权利要求3所述的微处理器的前端,其中:微BTB的图形的所述一个或更多个条目中的每个条目包括:成对位,被配置为指示应该并行预测两个分支。8.根据权利要求2所述的微处理器的前端,其中:微BTB的CAM的所述一个或更多个项中的每个项包括:权重,被配置为指示CAM的给定项中的分支是否足够热以保证作为新种子插入微BTB的图形中。9.根据权利要求8所述的微处理器的前端,其中:微BTB的CAM的所述一个或更多个项中的每个项包括:状态位,被配置为指示CAM的所述给定项中的分支是否已经存在于微BTB的图形中。10.根据权利要求9所述的微处理器的前端,其中:微BTB被配置为当状态位指示CAM的所述给定项中的分支还未存在于图形中时,将足够热的分支作为新种子插入图形中;微BTB被配置为当状态位指示CAM的所述给定项中的分支已经存在于图形中时,不将足够热的分支作为新种子插入图形中。11...

【专利技术属性】
技术研发人员:詹姆斯·邓达斯杰拉尔德·大卫·祖拉斯基蒂莫西·拉塞尔·斯奈德
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国;KR

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

1