可调整分支预测方法和微处理器技术

技术编号:29984316 阅读:15 留言:0更新日期:2021-09-08 10:22
本申请涉及可调整分支预测方法和微处理器。在一个实施例中,一种微处理器包括:预测逻辑,其包括分支预测器,所述分支预测器包括一组多集关联表,各个表与不同长度的分支模式历史相对应;以及控制逻辑,其被配置为提供针对所述预测逻辑的可调整写入策略。所述预测逻辑的可调整写入策略。所述预测逻辑的可调整写入策略。

【技术实现步骤摘要】
可调整分支预测方法和微处理器


[0001]本专利技术通常涉及微处理器,并且具体地涉及微处理器中的分支预测。

技术介绍

[0002]微处理器如今使用流水线处理方案来操作,由此编程指令被分解为在流水线的多个级中并发执行的步骤。指令通常(例如,编程代码的10

20%)包括分支指令或简单的分支,其中包括无条件分支(例如,始终采取的分支)和条件分支(例如,根据对指定条件的评估而采取或不采取)。直到计算出条件并且条件跳转经过指令流水线中的执行级之前,通常不确定地知道采取还是不采取条件跳转,这可能导致获取下一条指令的延迟。已经开发了分支预测器以试图在流水线的前端猜测条件分支将去向哪个方向(采取、不采取)以及到达哪个目标地址,并且这样改善了整个流水线中的指令流。
[0003]在微处理器中常用的一个分支预测器被称为分支目标地址高速缓存(BTAC)。BTAC包括硬件逻辑,该硬件逻辑可以包括使用过去的分支指令行为的全局历史模式来实现对所拾取的分支指令的目标地址的预测。一般而言,用于BTAC的分支预测器可以包括与多个经常用字母表示的、多集关联的高速缓存存储器或边(诸如在BTAC的两个高速缓存存储器的情况下,边A和边B等)相结合使用的多个预测器表。各边可以包括多个路(例如2路、4路等)。用于一些示例BTAC阵列的信息可以在美国专利No.8,832,418和No.7,707,397中找到。对于给定的高速缓存取指(例如,指令高速缓存中的高速缓存行的十六(16)字节取指),可能存在多于单个的分支指令。对于具有边A和边B的BTAC以及包括两个分支指令的高速缓存取指,可以分别在边A和边B中找到针对这两个分支指令的信息(例如,目标地址、方向等)。
[0004]对于条件分支预测,BTAC可以使用标签几何(TAGE)预测器,其包括各自具有不同长度的全局分支历史模式的多个表。学术上对TAGE预测器、并且具体地对基于表的错误预测的更新要采取的推荐动作(例如,写入策略或分配)已经有广泛的著作。然而,由于一些微处理器使用TAGE预测器的硬件实现,因此声称改善性能的推荐在给定的芯片流片(tape

out)之后不容易实现。

技术实现思路

[0005]在一个实施例中,一种微处理器,包括:预测逻辑,其包括分支预测器,所述分支预测器至少包括第一边和第二边,所述第一边和所述第二边各自包括一组多集关联表,所述一组多集关联表中的各表与不同长度的分支模式历史相对应;以及控制逻辑,其被配置为针对预测逻辑提供可调整写入策略。
[0006]在检查以下附图和详细描述时,本专利技术的其它系统、方法、特征和优点对于本领域的技术人员将是明显的或变得明显。所有这样的附加系统、方法、特征和优点旨在被包括在本说明书内、本专利技术的范围内,并且受所附权利要求的保护。
附图说明
[0007]参考以下附图,可以更好地理解本专利技术的各个方面。不必按比例绘制附图中的组件,而是将重点放在清楚地例示本专利技术的原理上。此外,在附图中,相同的附图标记在多个视图中表示相应部件。
[0008]图1A是示出实现可调整分支预测系统的实施例的微处理器的示例分支单元流水线的框图。
[0009]图1B是示出图1A中所示的分支单元流水线的示例前端的示意图。
[0010]图2A是示出示例可调整分支预测系统的实施例的示意图。
[0011]图2B是示出在图2A的可调整分支预测系统中使用的示例控制逻辑的实施例的示意图。
[0012]图2C是示出在图2A的可调整分支预测系统中使用的示例伪随机生成器的实施例的示意图。
[0013]图3是示出示例可调整分支预测方法的实施例的流程图。
[0014]图4是示出另一示例可调整分支预测方法的实施例的流程图。
具体实施方式
[0015]公开了可调整分支预测系统和方法的某些实施例,该可调整分支预测系统和方法被配置为针对在微处理器的分支预测流水线中使用的预测逻辑提供可调整写入策略。在一个实施例中,可调整分支预测系统包括可编程特征控制寄存器,该可编程特征控制寄存器可由微代码配置(如可以经由补丁代码调整)以使得即使在微处理器芯片流片之后也能够针对多个预测表选择多个写入策略其中之一。因此,与对分配方案的最新研究一致,针对错误预测的多个写入策略各自的分配方案可以针对微处理器的分支预测器的特定硬件实现来定制和/或针对微处理器旨在用于的特定应用来定制。
[0016]另外,经常使用软件来进行对一些分支预测方案(如TAGE)的研究,在软件中可以更容易地实现调整。在分支预测的硬件实现中,改变特别是如果在流片之后发生改变可能是昂贵的。相反,可调整分支预测系统的某些实施例实现了预测器表的写入策略的微代码驱动的调整,从而实现了基于硬件的分支预测的更大灵活性。
[0017]已经总结了本专利技术的可调整分支预测系统的某些特征,现在将详细参考如附图中所示的可调整分支预测系统的描述。虽然将结合这些附图描述可调整分支预测系统,但是不旨在将其限制为本文所公开的一个或多个实施例。即,虽然本专利技术容许修改和替代形式,但是其具体实施例在附图中以示例的方式示出并且本文将详细描述为足以使本领域技术人员理解。然而,应当理解,附图及其详细描述不旨在将本专利技术限制为所公开的特定形式。相反,本专利技术将覆盖落在由所附权利要求限定的本专利技术的精神和范围内的所有修改、等同物和替代物。如贯穿本申请所使用的,词语“可以”是以许可的意义(即,意味着具有潜在性)而不是强制的意义(即,意味着必须)来使用的。类似地,词语“包括”意味着包括但不限于。
[0018]各种单元、模块、电路、逻辑或其它组件可以被描述为“被配置为”进行一个或多个任务。在这样的背景下,“被配置为”是结构的广泛叙述,该结构通常意味着“具有电路或其它物理结构”,该电路或其它物理结构在操作期间进行或能够进行一个或多个任务。电路可以是专用电路,或者是在编码指令的控制下操作的更通用的处理电路。即,在描述本专利技术的
各种实现的某些方面或特征时,本文可以使用如“单元”、“模块”、“电路”、“逻辑”和“组件”的术语。本领域技术人员将理解,利用电路来实现相应的特征,无论该电路是专用电路还是在微编码指令控制下操作的更通用的电路。
[0019]此外,单元/模块/电路/逻辑/组件可以被配置为即使在该单元/模块/电路/逻辑/组件当前不在操作中时也进行任务。叙述被配置为进行一个或多个任务的单元/模块/电路/逻辑/组件明确地不旨在针对该单元/模块/电路/逻辑/组件进行功能性限定。对此,本领域技术人员将了解,电路元件的具体结构或互连将通常由设计自动化工具的编译器(诸如寄存器传送语言(RTL)编译器等)来确定。RTL编译器对非常类似于汇编语言代码的脚本进行操作,以将脚本编译成用于最终电路的布局或制造的形式。
[0020]即,使用更高级软件工具来设计集成电路(诸如本专利技术的集成电路等),以对电路的期望功能操作进行建模。如众所周知的,“电子设计自动化”(或EDA)是用于设计电子系统(诸如集成电路等)的软本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微处理器,包括:预测逻辑,其包括分支预测器,所述分支预测器包括一组多集关联表,所述一组多集关联表中的各表与不同长度的分支模式历史相对应;以及控制逻辑,其被配置为针对所述预测逻辑提供可调整写入策略。2.根据权利要求1所述的微处理器,其中,所述控制逻辑被配置为在流片之后实现所述可调整写入策略。3.根据权利要求1所述的微处理器,其中,所述可调整写入策略包括从涉及所述一组多集关联表中的一个或多个表的多个分配方案中选择的分配方案。4.根据权利要求3所述的微处理器,其中,由所述预测逻辑基于所选择的分配方案而做出的条件分支预测是基于错误预测来进行的。5.根据权利要求3所述的微处理器,其中,所述控制逻辑包括伪随机生成器,所述控制逻辑被配置为根据对各个多集关联表的百分比分配来实现所述分配方案。6.根据权利要求1所述的微处理器,其中,所述控制逻辑包括特征控制寄存器和多路复用选择逻辑,所述多路复用选择逻辑被配置为基于所述特征控制寄存器的位设置来选择多个写入策略其中之一。7.根据权利要求6所述的微处理器,其中,所述控制逻辑包括熔丝库和微代码存储器,所述微代码存储器被配置为对所述熔丝库进行读取并且基于所述读取来提供所述特征控制寄存器的位设置的改变。8.根据权利要求7所述的微处理器,其中,所述熔丝库包括能够经由特权微代码单独选择的多个熔丝设置。9.根据权利要求8所述的微处理器,其中,所述控制逻辑还包括补丁存储器,所述补丁存储器被配置为替换所述特权微代码的选择部分。10.根据权利要求1所述的微处理器,其中,所述分支预测器包括TAGE条件分支预测器。11...

【专利技术属性】
技术研发人员:汤玛斯
申请(专利权)人:圣图尔科技公司
类型:发明
国别省市:

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

1