CN106104466B - 在超越控制分支预测器中的推测历史转递以及相关电路、方法和计算机可读媒体 - Google Patents
在超越控制分支预测器中的推测历史转递以及相关电路、方法和计算机可读媒体 Download PDFInfo
- Publication number
- CN106104466B CN106104466B CN201580014711.7A CN201580014711A CN106104466B CN 106104466 B CN106104466 B CN 106104466B CN 201580014711 A CN201580014711 A CN 201580014711A CN 106104466 B CN106104466 B CN 106104466B
- Authority
- CN
- China
- Prior art keywords
- branch
- branch prediction
- prediction
- history
- predictor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000005540 biological transmission Effects 0.000 title abstract description 40
- 238000012545 processing Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 3
- 230000001413 cellular effect Effects 0.000 claims description 2
- 230000005611 electricity Effects 0.000 claims description 2
- 230000004087 circulation Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明揭示在超越控制分支预测器中的推测历史转递以及相关电路、方法和计算机可读媒体。在一个实施例中,提供一种包含第一分支预测器和第二分支预测器的分支预测电路。所述第一分支预测器产生针对条件分支指令的第一分支预测,且将所述第一分支预测存储于第一分支预测历史中。还将所述第一分支预测推测地转递到第二分支预测历史。所述第二分支预测器随后基于包含所述经推测转递的第一分支预测的所述第二分支预测历史来产生第二分支预测。通过使所述第二分支预测器能够使其分支预测基于所述经推测转递的第一分支预测,可改善所述第二分支预测器的准确性。
Description
优先权要求
本申请案要求2014年3月24日申请的且标题为“在超越控制分支预测器中的推测历史转递以及其相关电路、方法和计算机可读媒体(SPECULATIVE HISTORY FORWARDING INOVERRIDING BRANCH PREDICTORS,AND RELATED CIRCUITS,METHODS,AND COMPUTERREADABLE MEDIA)”的美国专利申请案第14/223,091号的优先权,所述申请案以其全文引用的方式并入本文中。
技术领域
本发明的技术大体上涉及计算机系统中的分支预测。
背景技术
指令流水线操作(instruction pipelining)为借以可通过将每一指令的处置分裂成一系列步骤来增加由处理器执行的计算机指令的吞吐量的处理技术。这些步骤执行于由多个级(stage)构成的执行流水线中。如果执行流水线中的所有级能够同时地处理指令,那么可达成最佳处理器性能。然而,执行流水线中的指令的同时执行可受到条件分支指令(conditional branch instruction)的存在妨碍。条件分支指令可基于在执行条件分支指令时评估的条件来重新定向程序的流程。结果,处理器可必须暂停提取额外指令直到已执行条件分支指令为止,从而引起缩减处理器性能且增加功率消耗。
一种用于最大化处理器性能的途径涉及利用分支预测电路以预测是否将采取条件分支指令。是否将采取条件分支指令的预测可基于先前条件分支指令的分支预测历史。可接着由处理器提取和推测地执行对应于经预测分支的指令。在经错误预测分支的情况下,处理器可招致延迟,同时从执行流水线清空对应于经错误预测分支的经提取指令,且提取对应于经采取分支的指令。因此,需要准确分支预测器以最小化分支错误预测的损失(在减低的处理器性能和不必要的功率消耗两者方面)。
习知分支预测器的准确性通常可对应于产生分支预测所需要的处理器时钟循环的数目。举例来说,相对简单的分支预测器可需要仅单一处理器时钟循环以提供分支预测,但所得分支预测可较不准确。相反地,较复杂的分支预测器可提供较高程度的准确性,但可经受多循环时延(即,可需要多个处理器时钟循环以产生分支预测)。
为了缓解准确性与速度之间的取舍,“超越控制分支预测器”可结合较慢的较准确的第二分支预测器而使用较快的较不准确的第一分支预测器。两个分支预测器皆提供针对每一条件分支指令的预测,其中第二分支预测器相比于第一分支预测器在几个处理器时钟循环以后提供其预测。处理器最初基于第一分支预测器的分支预测来提取指令。当产生第二分支预测器的分支预测时,处理器比较所述分支预测与第一分支预测。如果所述预测不同,那么使用第二预测以覆写用于第一分支预测器的分支预测历史中的第一预测,且基于第二分支预测来重新提取适当指令。即使重新提取指令可招致性能损失,但与由在重新提取之前等待直到指令到达执行级为止招致的损失相比较,处理器仍达成净性能改善。在处理器于指令提取与指令执行之间具有大数目个流水线级的情况下特别为此状况。
然而,由于超越控制分支预测器的第二分支预测器的多循环时延,第二分支预测器必须使其分支预测基于为“陈旧(stale)”(即,不含有针对最近遇到的条件分支指令的分支预测)的分支预测历史。结果,第二分支预测器的准确性和性能可并非最佳。
发明内容
本发明的实施例提供在超越控制分支预测器中的推测历史转递。还公开相关电路、方法和计算机可读媒体。就此来说,在一个实施例中,提供一种包含第一分支预测器和第二分支预测器的分支预测电路。所述第一分支预测器产生针对条件分支指令的第一分支预测,且将所述第一分支预测存储于第一分支预测历史中。还将所述第一分支预测推测地转递到第二分支预测历史。所述第二分支预测器随后基于包含所述经推测转递的第一分支预测的所述第二分支预测历史来产生第二分支预测。通过使所述第二分支预测器能够使其分支预测基于所述经推测转递的第一分支预测,可改善所述第二分支预测器的准确性。
在另一实施例中,提供一种用于在处理器中执行经提取指令的分支预测的分支预测电路。所述分支预测电路包括第一分支预测器、转递电路和第二分支预测器。所述第一分支预测器经配置以预测指令队列中的条件分支指令的第一分支预测,且基于针对所述条件分支指令的所述第一分支预测来更新第一分支预测历史寄存器。所述转递电路经配置以将针对所述条件分支指令的所述第一分支预测作为一推测预测而转递到第二分支预测历史寄存器。所述第二分支预测器经配置以基于包含所述推测预测的所述第二分支预测历史寄存器来预测所述指令队列中的所述条件分支指令的第二分支预测。以此方式,可通过使分支预测基于所述经推测转递的分支预测来改善所述第二分支预测器的准确性。
在另一实施例中,提供一种用于在处理器中执行经提取指令的分支预测的分支预测电路。所述分支预测电路包括第一分支预测器装置,其用于预测指令队列中的条件分支指令的第一分支预测,且基于针对所述条件分支指令的所述第一分支预测来更新第一分支预测历史寄存器。所述分支预测电路进一步包括转递装置,其用于将针对所述条件分支指令的所述第一分支预测作为一推测预测而转递到第二分支预测历史寄存器。所述分支预测电路还包括第二分支预测器装置,其用于基于包含所述推测预测的所述第二分支预测历史寄存器来预测所述指令队列中的所述条件分支指令的第二分支预测。
在另一实施例中,提供一种用于在处理器中执行经提取指令的分支预测的方法。所述方法包括由第一分支预测器基于第一分支预测历史来预测指令队列中的条件分支指令的第一分支预测。所述方法进一步包括基于针对所述条件分支指令的所述第一分支预测来更新所述第一分支预测历史。所述方法还包括将针对所述条件分支指令的所述第一分支预测作为一推测预测而转递到第二分支预测历史。所述方法另外包括由第二分支预测器基于包含所述推测预测的所述第二分支预测历史来预测所述指令队列中的所述条件分支指令的第二分支预测。
在另一实施例中,提供一种非暂时性计算机可读媒体,其上存储有用以致使处理器实施用于在所述处理器中执行经提取指令的分支预测的方法的计算机可执行指令。由所述计算机可执行指令实施的所述方法包括由第一分支预测器基于第一分支预测历史来预测指令队列中的条件分支指令的第一分支预测。由所述计算机可执行指令实施的所述方法进一步包括基于针对所述条件分支指令的所述第一分支预测来更新所述第一分支预测历史。由所述计算机可执行指令实施的所述方法还包括将针对所述条件分支指令的所述第一分支预测作为一推测预测而转递到一第二分支预测历史。由所述计算机可执行指令实施的所述方法另外包括由第二分支预测器基于包含所述推测预测的所述第二分支预测历史来预测所述指令队列中的所述条件分支指令的第二分支预测。
附图说明
图1是示范性处理器的框图,所述处理器包含提供较快但较不准确的第一分支预测器和较慢但较准确的第二分支预测器的分支预测电路,且经配置以执行推测历史转递;
图2是说明在无推测历史转递的情况下使用超越控制分支预测器来处理示范性条件分支指令的时序图;
图3是说明由图1的分支预测电路在示范性条件分支指令的处理期间使用推测历史转递以改善分支预测准确性的时序图;
图4是用于执行推测历史转递的示范性操作的流程图;
图5是说明用于存储多个分支预测历史的示范性单一历史寄存器的图式;以及
图6是可包含图1的分支预测电路的示范性基于处理器的系统的框图。
具体实施方式
现在参考图式,描述本发明的若干示范性实施例。词语“示范性”在本文中用以意指“充当实例、例项或说明”。本文中被描述为“示范性”的任何实施例未必被认作比其它实施例较佳或有利。
本发明的实施例提供在超越控制分支预测器中的推测历史转递。还公开相关电路、方法和计算机可读媒体。就此来说,在一个实施例中,提供一种包含第一分支预测器和第二分支预测器的分支预测电路。所述第一分支预测器产生针对条件分支指令的第一分支预测,且将所述第一分支预测存储于第一分支预测历史中。还将所述第一分支预测推测地转递到第二分支预测历史。所述第二分支预测器随后基于包含所述经推测转递的第一分支预测的所述第二分支预测历史来产生第二分支预测。通过使所述第二分支预测器能够使其分支预测基于所述经推测转递的第一分支预测,可改善所述第二分支预测器的准确性。
在另一实施例中,提供一种用于在处理器中执行经提取指令的分支预测的分支预测电路。所述分支预测电路包括第一分支预测器、转递电路和第二分支预测器。所述第一分支预测器经配置以预测指令队列中的条件分支指令的第一分支预测,且基于针对所述条件分支指令的所述第一分支预测来更新第一分支预测历史寄存器。所述转递电路经配置以将针对所述条件分支指令的所述第一分支预测作为一推测预测而转递到第二分支预测历史寄存器。所述第二分支预测器经配置以基于包含所述推测预测的所述第二分支预测历史寄存器来预测所述指令队列中的所述条件分支指令的第二分支预测。以此方式,可通过使分支预测基于所述经推测转递的分支预测来改善所述第二分支预测器的准确性。
就此来说,图1是示范性处理器10的框图。处理器10包含经配置以提供推测历史转递以改善预测准确性的分支预测电路12,如本文中所公开。“推测历史转递”是指用于利用由第一分支预测器产生的分支预测以补充针对第二分支预测器的分支预测历史的操作,第二分支预测器归因于时延问题而原本将使其分支预测基于陈旧分支预测历史。在论述图1的处理器10的示范性推测历史转递特征之前,提供图1的简要介绍。接下来,关于图2中对不使用推测历史转递的分支预测的说明来论述不使用推测历史转递的分支预测的实例。接着,在图3中描述由图1的分支预测电路12使用推测历史转递以改善分支预测准确性。
就此来说,在图1中,处理器10可涵盖已知数字逻辑元件、半导体电路、处理核心和/或存储器结构等等中的任一者,或其组合。本文中描述的实施例并不限于任何特定布置的元件,且所公开技术可容易地延伸到半导体裸片或封装上的各种结构和布局。处理器10包含输入/输出电路14、指令高速缓冲存储器16和数据高速缓冲存储器18。处理器10进一步包括执行流水线20,其包含前端电路22、执行单元24和完成单元26。处理器10另外包含链接栈28和寄存器30,所述寄存器包括一或多个通用寄存器(GPR)32、程序计数器34和链接寄存器36。在一些实施例(例如,使用ARM7TM架构的实施例)中,链接寄存器36为GPR 32中的一者,如图1所展示。替代地,一些实施例(例如,利用架构的实施例)可规定链接寄存器36与GPR 32分离(未图示)。
作为一非限制性实例,在示范性操作中,执行流水线20的前端电路22从指令高速缓冲存储器16提取指令(未图示),所述指令高速缓冲存储器在一些实施例中可为芯片上层级1(L1)高速缓冲存储器。由前端电路22解码经提取指令且将其发出到执行单元24。执行单元24执行经发出指令,且完成单元26引退经执行指令。在一些实施例中,完成单元26可包括将执行结果存储于寄存器30中的一或多者中的写回机构。应理解,执行单元24和/或完成单元26可各自包括一或多个循序流水线级。应进一步理解,可以一个以上指令的群组提取和/或解码指令。
为了改善性能,处理器10可使用分支预测,现在描述分支预测的示范性操作。前端电路22包括一或多个提取/解码流水线级38,所述提取/解码流水线级使能够同时地提取和解码多个指令。用于将经提取指令未决分派保存到执行单元24的指令队列40以通信方式耦合到提取/解码流水线级38中的一或多者。指令队列40还以通信方式耦合到分支预测电路12,所述分支预测电路经配置以产生针对指令队列40中遇到的条件分支指令的分支预测(未图示)。在图1的实例中,分支预测电路12包含第一分支预测器42、第二分支预测器44和转递电路45。在一些实施例中,相比于第二分支预测器44,第一分支预测器42可经配置成以较低时延进行操作。举例来说,第一分支预测器42可运用仅单一处理器时钟循环的时延来产生分支预测,而第二分支预测器44可需要多个处理器时钟循环(即,多循环时延)以产生较准确分支预测。在此些实施例中,相比于第二分支预测器44,第一分支预测器42通常以较低准确性进行操作。因此,第一分支预测器42的实施例可较快但较不准确,而第二分支预测器44的实施例可较慢(即,可经受多循环时延)但较准确。分支预测电路12的转递电路45经配置以进行用于推测历史转递的操作,如下文更详细地所论述。
由第一分支预测器42和第二分支预测器44产生的一或多个分支预测可分别存储于寄存器30的第一分支预测历史寄存器46和第二分支预测历史寄存器48中。在一些实施例中,第一分支预测历史寄存器46和/或第二分支预测历史寄存器48可包含于寄存器30的GPR32当中,或可与寄存器30分开实施。一些实施例可规定可使用单一历史寄存器(未图示)来实施第一分支预测历史寄存器46和第二分支预测历史寄存器48,其中第一指针和第二指针(未图示)分别指示对应于第一分支预测历史寄存器46和第二分支预测历史寄存器48中的每一者的最近条目。下文关于图5来更详细地论述此实施例。
应理解,第一分支预测历史寄存器46和第二分支预测历史寄存器48可经配置以存储本领域中已知有用于分支预测的任何类型的历史数据。作为非限制性实例,历史数据可包含本地历史、全局历史和/或路径历史。本地历史可包括包含针对特定条件分支指令的分支预测的分支预测历史,而全局历史可包括包含针对所有条件分支指令的分支预测的共用分支预测历史。路径历史可包括包含例如分支目标、是否采取特定分支的确定和/或通向条件分支指令的路径的上下文的数据的分支预测历史。
在图1的实例中,处理器10的分支预测电路12作为超越控制分支预测器进行操作。因此,当在指令队列40中遇到条件分支指令时,第一分支预测器42和第二分支预测器44两者开始操作以确定分支预测。第一分支预测器42产生第一分支预测(未图示),其存储于第一分支预测历史寄存器46中。处理器10继续进行以推测地提取和执行对应于分支预测的指令。取决于第二分支预测器44的额外时延,第二分支预测器44在数个处理器时钟循环以后产生第二较准确分支预测(未图示)。将第二分支预测存储于第二分支预测历史寄存器48中。接着比较第二分支预测与第一分支预测。如果存在失配,那么使用第二分支预测以通过超越控制第一分支预测来更新第一分支预测历史寄存器46。因为第二分支预测可被假定为相比于第一分支预测较准确,所以可通过运用第二分支预测来更新第一分支预测历史寄存器46而改善第一分支预测器42的准确性。处理器10接着重新提取对应于第二分支预测的指令。
虽然第二分支预测器44相比于第一分支预测器42可达成较高准确性,但在不存在推测历史转递的情况下,第二分支预测器44归因于其多循环时延对第二分支预测历史寄存器48的效应而仍可不达成最佳准确性。确切地说,由于第二分支预测器44的多循环时延,第二分支预测历史寄存器48可在第二分支预测器44产生新分支预测时缺乏针对最近遇到的条件分支指令的分支预测。结果,第二分支预测器44必须使其分支预测基于陈旧分支预测历史,此情形可引起次最优准确性水平。
为了说明在不存在推测历史转递的情况下的多循环时延的效应,提供图2。图2是说明由在无推测历史转递的情况下处理示范性条件分支指令54(0)至54(3)引起的第一分支预测历史50和第二分支预测历史52的内容的时序图。图2的时序图的列表示执行流水线级,在此实例中被称作F0、F1、F2和F3。时序图的行表示处理器时钟循环0至3,且说明在每一处理器时钟循环期间的执行流水线级的内容。每一行还展示在对应处理器时钟循环期间的第一分支预测历史50和第二分支预测历史52的内容。应理解,第一分支预测历史50是与较快的较不准确分支预测器(例如,图1的第一分支预测器42)相关联。同样地,第二分支预测历史52对应于较慢的较准确分支预测器,例如,图1的第二分支预测器44。出于说明的目的,假定与第一分支预测历史50相关联的第一分支预测器42具有一个处理器时钟循环的时延56,而与第二分支预测历史52相关联的第二分支预测器44具有三个处理器时钟循环的多循环时延58。应进一步理解,第一分支预测历史50和第二分支预测历史52可分别表示存储于图1的第一分支预测历史寄存器46和第二分支预测历史寄存器48中的内容。
参考图2,处理从处理器时钟循环0开始。此时,条件分支指令54(0)(被称作分支指令A)进入执行流水线级F0。在处理器时钟循环0期间,第一分支预测器42和第二分支预测器44两者开始产生针对分支指令A的分支预测(未图示)。此时,第一分支预测历史50和第二分支预测历史52皆空白。
在处理器时钟循环1时,第一分支预测器42已完成其针对分支指令A的分支预测60(0)的产生。更新第一分支预测历史50以含有针对分支指令A的分支预测60(0)。然而,第二分支预测器44尚未产生针对分支指令A的预测。因此,第二分支预测历史52仍空白。分支指令A继续到执行流水线级F1,而条件分支指令54(1)(分支指令B)进入执行流水线级F0。此时,第一分支预测器42和第二分支预测器44两者开始产生针对分支指令B的分支预测(未图示)。因为第一分支预测历史50包含针对分支指令A的分支预测60(0),所以第一分支预测器42在产生针对分支指令B的预测时具有较早分支预测的好处。第二分支预测44仍不具有可作为其分支预测的所本的分支预测历史。
在处理器时钟循环2中,第一分支预测器42已产生针对分支指令B的分支预测60(1),其现在存储于第一分支预测历史50中。第二分支预测历史52保持空白,这是因为第二分支预测器44仍尚未完成产生针对分支指令A和B中的任一者的分支预测。在分支指令A和B分别继续进行到执行流水线级F2和F1时,条件分支指令54(2)(分支指令C)进入执行流水线级F0。第一分支预测器42和第二分支预测器44开始产生针对分支指令C的分支预测(未图示)。第一分支预测器42在产生其分支预测时分别具有针对分支指令A和B的分支预测60(0)和60(1)的好处,而第二分支预测器44不具有任何好处。
在处理器时钟循环3时,分支指令A、B和C已分别继续到执行流水线级F3、F2和F1上,且条件分支指令54(3)(分支指令D)进入执行流水线级F0。到这时,第一分支预测器42已产生针对分支指令C的分支预测60(2),其现在存储于第一分支预测历史50中。因此,当第一分支预测器42开始产生针对分支指令D的分支预测(未图示)时,其可使那个分支预测分别基于针对分支指令A、B和C的先前分支预测60(0)、60(1)和60(2)。在处理器时钟循环3中,第二分支预测器44终于完成产生针对分支指令A的分支预测62。结果,更新第二分支预测历史52以包括针对分支指令A的分支预测62。比较分支预测62与在处理器时钟循环1中存储于第一分支预测历史50中的分支预测60(0)。如果分支预测62不同于分支预测60(0),那么超越控制第一分支预测历史50(即,运用分支预测62进行更新)。通过超越控制第一分支预测历史50,可改善第一分支预测器42的准确性。然而,应注意,在第二分支预测器44开始产生针对分支指令D的分支预测(未图示)时,其仍仅具有供使其分支预测所基于的针对分支指令A的先前分支预测62。
为了缓解图2所描述的多循环时延对第二分支预测器44的效应,在图1中的处理器10中提供分支预测电路12的转递电路45。转递电路45经配置以提供推测历史转递以补充由第二分支预测器44使用的分支预测历史,以便改善第二分支预测器44的准确性。就此来说,提供图3以说明由使用由转递电路45提供的推测历史转递来处理示范性条件分支指令68(0)至68(3)引起的第一分支预测历史64和第二分支预测历史66的内容。
就此来说,如同图2一样,图3的时序图的列表示执行流水线级F0、F1、F2和F3,而时序图的行说明在处理器时钟循环0至3期间的第一分支预测历史64和第二分支预测历史66的内容。在此实例中,第一分支预测历史64对应于图1的较快的较不准确的第一分支预测器42,而第二分支预测历史66对应于图1的较慢的较准确的第二分支预测器44。出于说明的目的,假定第一分支预测器42具有一个处理器时钟循环的时延70,而第二分支预测器44具有三个处理器时钟循环的多循环时延72。应进一步理解,第一分支预测历史64和第二分支预测历史66可分别表示存储于图1的第一分支预测历史寄存器46和第二分支预测历史寄存器48中的内容。
在处理器时钟循环0时,处理从条件分支指令68(0)(被称作分支指令A)进入执行流水线级F0而开始。第一分支预测器42和第二分支预测器44两者开始产生针对分支指令A的分支预测。在处理器时钟循环0期间,第一分支预测历史64和第二分支预测历史66两者空白。
在处理器时钟循环1期间,由第一分支预测器42产生针对分支指令A的分支预测74(0)且将其存储于第一分支预测历史64中。这时,分支预测电路12的转递电路45也将由第一分支预测器42针对分支指令A所产生的分支预测74(0)作为推测预测76(0)而转递到第二分支预测历史66。在分支指令A继续到执行流水线级F1上时,条件分支指令68(1)(分支指令B)进入执行流水线级F0。这时,第一分支预测器42和第二分支预测器44两者开始产生针对分支指令B的分支预测。因为第一分支预测历史64包含针对分支指令A的分支预测74(0),所以第一分支预测器42在产生针对分支指令B的分支预测时具有较早分支预测的好处。另外,因为第二分支预测历史66现在含有针对分支指令A的推测预测76(0),所以第二分支预测器44现在可使其针对分支指令B的下一分支预测基于推测预测76(0)。与使分支预测基于陈旧分支预测历史相比较,此情形可引起由第二分支预测器44针对分支指令B产生较准确分支预测。
处理在处理器时钟循环2中以类似方式而继续。此处,第一分支预测器42完成其针对分支指令B的分支预测74(1)的产生,且更新第一分支预测历史64以存储分支预测74(1)。同样由转递电路45将分支预测74(1)作为推测预测76(1)而转递到第二分支预测历史66。在分支指令A和B分别继续进行到执行流水线级F2和F1时,条件分支指令68(2)(分支指令C)进入执行流水线级F0。第一分支预测器42和第二分支预测器44开始产生针对分支指令C的分支预测,其中第一分支预测器42和第二分支预测器44两者具有由第一分支预测器42作出的针对分支指令A和B的较早分支预测的好处。
在处理器时钟循环3时,分支指令A、B和C已分别继续到执行流水线级F3、F2和F1上,且条件分支指令68(3)(分支指令D)进入执行流水线级F0。这时,第一分支预测器42已产生针对分支指令C的分支预测74(2),其现在存储于第一分支预测历史64中,且其作为推测预测76(2)而转递到第二分支预测历史66。因此,当第一分支预测器42开始产生针对分支指令D的分支预测(未图示)时,其使那个分支预测分别基于针对分支指令A、B和C的先前分支预测74(0)、74(1)和74(2)。在处理器时钟循环3期间,第二分支预测器44最后完成产生针对分支指令A的分支预测78。比较分支预测78与在处理器时钟循环1中转递到第二分支预测历史66的推测预测76(0)。如果分支预测78不同于推测预测76(0),那么超越控制第二分支预测历史66(即,运用分支预测78进行更新),如图3所展示。也可基于分支预测78来超越控制第一分支预测历史64中的分支预测74(0)。第二分支预测器44接着继续进行基于第二分支预测历史66的内容来产生针对分支指令D的分支预测(未图示)。
图4是用于(以实例方式)在图1中的处理器10中执行上文所描述的推测历史转递的示范性操作的流程图。出于清楚起见,在描述图4时参考图1和图3的元件。在图4中,操作以分支预测电路12的第一分支预测器42基于第一分支预测历史64来预测指令队列40中的条件分支指令68的第一分支预测74(框80)而开始。第一分支预测历史64对应于图1的第一分支预测历史寄存器46的内容。
继续参考图4,分支预测电路12接下来基于针对条件分支指令68的第一分支预测74来更新第一分支预测历史64(框82)。分支预测电路12的转递电路45接着将针对条件分支指令68的第一分支预测74作为推测预测76而转递到第二分支预测历史66(框84)。第二分支预测器44接着基于包含推测预测76的第二分支预测历史66来预测指令队列40中的条件分支指令68的第二分支预测78(框86)。以此方式,与使用陈旧分支预测历史来产生分支预测相比,使最初由第一分支预测器42产生的推测预测76可用于第二分支预测器44以改善其准确性。
在一些实施例中,可由图1的分支预测电路12进行额外任选步骤。分支预测电路12可比较第二分支预测78与推测预测76(框88)。基于所述比较,分支预测电路12可确定第二分支预测78是否不同于推测预测76(框90)。如果否,那么将推测预测76假定为正确的(框92)。如果分支预测电路12在框90处确定第二分支预测78不同于推测预测76,那么分支预测电路12通过基于第二分支预测78来更新第一分支预测历史64中的第一分支预测78和第二分支预测历史66中的推测预测76而超越控制推测预测76(框94)。
如上文所提到,在一些实施例中,第一分支预测历史寄存器46和第二分支预测历史寄存器48可被实施为单一历史寄存器。就此来说,图5说明用于存储多个分支预测历史的示范性单一历史寄存器96。单一历史寄存器96可被实施为图1的寄存器30中的一者,或可被实施为单独结构。
如在图5中所见,单一历史寄存器96存储由图1的第一分支预测器42和第二分支预测器44两者产生的分支预测。两个指针98和100分别指示由第一分支预测器42和第二分支预测器44存储于单一历史寄存器96中的最近分支预测。在初始化后,指针98和100两者就指向单一历史寄存器96内的相同位置。在第一分支预测器42和第二分支预测器44中的每一者产生分支预测时,运用最近分支预测来更新由每一指针98、100指向的位置,且推进指针98、100。因为第一分支预测器42相比于第二分支预测器44具有较低时延,所以对应于第一分支预测器42的指针98将推进对应于时延差的位置数目。一旦第二分支预测器44开始产生其分支预测,指针98和100就步调一致地移动。
第一分支预测器42和第二分支预测器44两者经配置以访问存储于单一历史寄存器96中的分支预测历史(未图示)。根据第二分支预测器44的观点,指针100与指针98之间的分支预测为推测预测。在第二分支预测器44产生分支预测时,其可在必要时更新由指针100指向的位置处的分支预测以超越控制由第一分支预测器42产生的任何推测错误预测。
根据本文中公开的实施例的分支预测电路12可提供于或集成到任何基于处理器的装置中。在无限制的情况下,实例包含机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器,和便携式数字视频播放器。
就此来说,图6说明可使用图1所说明的分支预测电路12的基于处理器的系统102的实例。在此实例中,基于处理器的系统102包含一或多个中央处理单元(CPU)104,每一CPU包含可包括图1的分支预测电路(BPC)12的一或多个处理器106。CPU 104可具有耦合到处理器106以用于快速地访问暂时存储的数据的高速缓冲存储器108。CPU 104耦合到系统总线110,且可相互耦合包含于基于处理器的系统102中的主控器装置与受控器装置。如所熟知,CPU 104通过经由系统总线110来交换地址、控制和数据信息而与这些其它装置通信。举例来说,CPU 104可将总线事务请求传达到提供存储器单元114(0)至114(N)的存储器系统112。
其它主控器装置和受控器装置可连接到系统总线110。作为实例,如图6所说明,这些装置可包含存储器控制器116、一或多个输入装置118、一或多个输出装置120、一或多个网络接口装置122,和一或多个显示控制器124。输入装置118可包含任何类型的输入装置,包含但不限于输入按键、开关、语音处理器等等。输出装置120可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示器等等。网络接口装置122可为经配置以允许向和从网络126交换数据的任何装置。网络126可为任何类型的网络,包含但不限于有线或无线网络、私用或公用网络、局域网(LAN)、广泛局域网(WLAN),和因特网。网络接口装置122可经配置以支持任何类型的所要通信协议。
CPU 104也可经配置以经由系统总线110而访问显示控制器124以控制被发送到一或多个显示器128的信息。显示控制器124经由一或多个视频处理器130而将待显示信息发送到显示器128,所述一或多个视频处理器将待显示信息处理成适合于显示器128的格式。显示器128可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等等。
本领域技术人员将进一步了解,结合本文中公开的实施例所描述的各种说明性逻辑块、模块、电路和算法可被实施为电子硬件、存储于存储器或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或这两者的组合。作为实例,本文中描述的主控器装置和受控器装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文中公开的存储器可为任何类型和大小的存储器,且可经配置以存储任何类型的所要信息。为了清楚地说明此可互换性,上文已大体上在功能性方面描述各种说明性组件、块、模块、电路和步骤。如何实施此功能性取决于特定应用、设计选择和/或强加于整个系统的设计约束。本领域技术人员可针对每一特定应用而以变化方式来实施所描述功能性,但此些实施决策不应被解译为导致脱离本发明的范围。
可运用经设计成执行本文所描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行结合本文所公开的实施例所描述的各种说明性逻辑块、模块和电路。处理器可为微处理器,但在替代例中,处理器可为任何习知处理器、控制器、微控制器或状态机。处理器也可被实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置。
本文中公开的实施例可体现于硬件中和体现于存储于硬件中的指令中,且可驻留于(例如)随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可装卸式磁盘、CD-ROM或本领域中所知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代例中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留于ASIC中。ASIC可驻留于远程站中。在替代例中,处理器和存储媒体可作为离散组件而驻留于远程站、基站或服务器中。
还应注意,描述本文中的示范性实施例中的任一者中描述的操作步骤以提供实例和论述。可以不同于所说明序列的众多不同序列来执行所描述操作。此外,实际上可以数个不同步骤来执行单一操作步骤中描述的操作。另外,可组合示范性实施例中论述的一或多个操作步骤。应理解,如本领域技术人员将容易地显而易见,流程图图式中说明的操作步骤可经受众多不同修改。本领域技术人员还将理解,可使用多种不同技术中的任一者来表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合表示在整个上文描述中可参考的数据、指令、命令、信息、信号、位、符号和芯片。
提供本发明的先前描述以使任何本领域技术人员能够进行或使用本发明。在不脱离本发明的精神或范围的情况下,对本发明的各种修改对于本领域技术人员来说将容易地显而易见,且本文中定义的一般原理可应用于其它变化。因此,本发明并不意图限于本文中描述的实例和设计,而应符合与本文中公开的原理和新颖特征相一致的最广范围。
Claims (14)
1.一种用于在处理器中执行经提取指令的分支预测的分支预测电路,其包括:
第一分支预测器,其经配置以:
预测指令队列中的条件分支指令的第一分支预测;及
基于针对所述条件分支指令的所述第一分支预测来更新第一分支预测历史寄存器;
转递电路,其经配置以将针对所述条件分支指令的所述第一分支预测作为推测预测而转递到第二分支预测历史寄存器;及
第二分支预测器,其经配置以基于包含所述推测预测的所述第二分支预测历史寄存器来预测所述指令队列中的所述条件分支指令的第二分支预测;
所述分支预测电路经配置以:
比较所述第二分支预测与所述推测预测;及
响应于所述第二分支预测不同于所述推测预测,通过基于所述第二分支预测来更新所述第一分支预测历史寄存器中的所述第一分支预测和所述第二分支预测历史寄存器中的所述推测预测而覆写所述推测预测;
其中所述第一分支预测器经配置成以第一时延和第一准确性进行操作,且所述第二分支预测器经配置成以高于所述第一时延的第二时延和高于所述第一准确性的第二准确性进行操作。
2.根据权利要求1所述的分支预测电路,其中:
所述第一分支预测历史寄存器包括第一全局历史、第一本地历史或第一路径历史,或其组合;且
所述第二分支预测历史寄存器包括第二全局历史、第二本地历史或第二路径历史,或其组合。
3.根据权利要求1所述的分支预测电路,其进一步包括单一历史寄存器,所述单一历史寄存器包括所述第一分支预测历史寄存器和所述第二分支预测历史寄存器。
4.根据权利要求3所述的分支预测电路,其中所述单一历史寄存器包括:
第一指针,其指示所述第一分支预测历史寄存器中的最近分支预测;及
第二指针,其指示所述第二分支预测历史寄存器中的最近分支预测。
5.根据权利要求1所述的分支预测电路,其集成到集成电路中。
6.根据权利要求1所述的分支预测电路,其集成到选自由以下各者组成的群组的装置中:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理PDA、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘DVD播放器,和便携式数字视频播放器。
7.一种用于在处理器中执行经提取指令的分支预测的分支预测电路,其包括:
第一分支预测器装置,其用于:
预测指令队列中的条件分支指令的第一分支预测;
基于针对所述条件分支指令的所述第一分支预测来更新第一分支预测历史寄存器;
转递装置,其用于将针对所述条件分支指令的所述第一分支预测作为推测预测而转递到第二分支预测历史寄存器;
第二分支预测器装置,其用于:
基于包含所述推测预测的所述第二分支预测历史寄存器来预测所述指令队列中的所述条件分支指令的第二分支预测;
所述分支预测电路经配置以:
比较所述第二分支预测与所述推测预测;及
响应于所述第二分支预测不同于所述推测预测而通过基于所述第二分支预测来更新所述第一分支预测历史寄存器中的所述第一分支预测和所述第二分支预测历史寄存器中的所述推测预测而覆写所述推测预测;
其中所述第一分支预测器装置经配置成以第一时延和第一准确性进行操作,且所述第二分支预测器装置经配置成以高于所述第一时延的第二时延和高于所述第一准确性的第二准确性进行操作。
8.一种用于在处理器中执行经提取指令的分支预测的方法,其包括:
由第一分支预测器基于第一分支预测历史来预测指令队列中的条件分支指令的第一分支预测;
基于针对所述条件分支指令的所述第一分支预测来更新所述第一分支预测历史;
将针对所述条件分支指令的所述第一分支预测作为推测预测而转递到第二分支预测历史;
由第二分支预测器基于包含所述推测预测的所述第二分支预测历史来预测所述指令队列中的所述条件分支指令的第二分支预测;
比较所述第二分支预测与所述推测预测;及
响应于所述第二分支预测不同于所述推测预测,通过基于所述第二分支预测来更新所述第一分支预测历史中的所述第一分支预测和所述第二分支预测历史中的所述推测预测而覆写所述推测预测;
其中所述第一分支预测器经配置成以第一时延和第一准确性进行操作,且所述第二分支预测器经配置成以高于所述第一时延的第二时延和高于所述第一准确性的第二准确性进行操作。
9.根据权利要求8所述的方法,其中:
所述第一分支预测历史包括第一全局历史、第一本地历史或第一路径历史,或其组合;且
所述第二分支预测历史包括第二全局历史、第二本地历史或第二路径历史,或其组合。
10.根据权利要求8所述的方法,其进一步包括将所述第一分支预测历史和所述第二分支预测历史存储于单一历史寄存器中。
11.根据权利要求10所述的方法,其进一步包括:
由第一指针指示所述单一历史寄存器中的所述第一分支预测历史中的最近分支预测;及
由第二指针指示所述单一历史寄存器中的所述第二分支预测历史中的最近分支预测。
12.一种非暂时性计算机可读媒体,其上存储有用以致使处理器实施用于在所述处理器中执行经提取指令的分支预测的方法的计算机可执行指令,所述方法包括:
由第一分支预测器基于第一分支预测历史来预测指令队列中的条件分支指令的第一分支预测;
基于针对所述条件分支指令的所述第一分支预测来更新所述第一分支预测历史;
将针对所述条件分支指令的所述第一分支预测作为推测预测而转递到第二分支预测历史;
由第二分支预测器基于包含所述推测预测的所述第二分支预测历史来预测所述指令队列中的所述条件分支指令的第二分支预测;
比较所述第二分支预测与所述推测预测;及
响应于所述第二分支预测不同于所述推测预测,通过基于所述第二分支预测来更新所述第一分支预测历史中的所述第一分支预测和所述第二分支预测历史中的所述推测预测而覆写所述推测预测;
其中所述第一分支预测器经配置成以第一时延和第一准确性进行操作,且所述第二分支预测器经配置成以高于所述第一时延的第二时延和高于所述第一准确性的第二准确性进行操作。
13.根据权利要求12所述的非暂时性计算机可读媒体,其上存储有用以致使所述处理器实施所述方法的所述计算机可执行指令,所述方法进一步包括将所述第一分支预测历史和所述第二分支预测历史存储于单一历史寄存器中。
14.根据权利要求13所述的非暂时性计算机可读媒体,其上存储有用以致使所述处理器实施所述方法的所述计算机可执行指令,所述方法进一步包括:
由第一指针指示所述单一历史寄存器中的所述第一分支预测历史中的最近分支预测;及
由第二指针指示所述单一历史寄存器中的所述第二分支预测历史中的最近分支预测。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/223,091 US9582285B2 (en) | 2014-03-24 | 2014-03-24 | Speculative history forwarding in overriding branch predictors, and related circuits, methods, and computer-readable media |
US14/223,091 | 2014-03-24 | ||
PCT/US2015/021997 WO2015148372A1 (en) | 2014-03-24 | 2015-03-23 | Speculative history forwarding in overriding branch predictors, and related circuits, methods, and computer-readable media |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106104466A CN106104466A (zh) | 2016-11-09 |
CN106104466B true CN106104466B (zh) | 2019-05-28 |
Family
ID=52829348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580014711.7A Active CN106104466B (zh) | 2014-03-24 | 2015-03-23 | 在超越控制分支预测器中的推测历史转递以及相关电路、方法和计算机可读媒体 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9582285B2 (zh) |
EP (1) | EP3123305A1 (zh) |
JP (1) | JP6370918B2 (zh) |
KR (1) | KR101829369B1 (zh) |
CN (1) | CN106104466B (zh) |
CA (1) | CA2939834C (zh) |
TW (1) | TWI588739B (zh) |
WO (1) | WO2015148372A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11995447B2 (en) * | 2020-10-15 | 2024-05-28 | Centaur Technology, Inc. | Quick predictor override and update by a BTAC |
JP2022094507A (ja) | 2020-12-15 | 2022-06-27 | 富士通株式会社 | 演算処理回路及び演算処理方法 |
US11868773B2 (en) | 2022-01-06 | 2024-01-09 | International Business Machines Corporation | Inferring future value for speculative branch resolution in a microprocessor |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134654A (en) * | 1998-09-16 | 2000-10-17 | Sun Microsystems, Inc. | Bi-level branch target prediction scheme with fetch address prediction |
CN1397876A (zh) * | 2001-05-04 | 2003-02-19 | 智慧第一公司 | 假想分支目标地址高速缓存中置换目标地址的装置及方法 |
CN103150142A (zh) * | 2011-12-07 | 2013-06-12 | 苹果公司 | 具有滞后的下一获取预测器训练 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6374349B2 (en) | 1998-03-19 | 2002-04-16 | Mcfarling Scott | Branch predictor with serially connected predictor stages for improving branch prediction accuracy |
KR100317240B1 (ko) * | 1999-10-21 | 2001-12-22 | 윤종용 | 분기 예측 정확도 히스토리를 이용한 분기 예측기 |
US6886093B2 (en) * | 2001-05-04 | 2005-04-26 | Ip-First, Llc | Speculative hybrid branch direction predictor |
US20060036837A1 (en) * | 2004-08-13 | 2006-02-16 | Stark Jared W | Prophet/critic hybrid predictor |
US7836288B2 (en) | 2004-09-14 | 2010-11-16 | Arm Limited | Branch prediction mechanism including a branch prediction memory and a branch prediction cache |
US7877584B2 (en) * | 2005-08-29 | 2011-01-25 | The Invention Science Fund I, Llc | Predictive processor resource management |
US7673122B1 (en) | 2005-09-29 | 2010-03-02 | Sun Microsystems, Inc. | Software hint to specify the preferred branch prediction to use for a branch instruction |
US7707398B2 (en) | 2007-11-13 | 2010-04-27 | Applied Micro Circuits Corporation | System and method for speculative global history prediction updating |
US8832418B2 (en) * | 2009-08-28 | 2014-09-09 | Via Technologies, Inc. | Efficient branch target address cache entry replacement |
US8788797B2 (en) | 2010-12-22 | 2014-07-22 | Advanced Micro Devices, Inc. | Combined level 1 and level 2 branch predictor |
JPWO2012127666A1 (ja) * | 2011-03-23 | 2014-07-24 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理方法 |
US9201654B2 (en) | 2011-06-28 | 2015-12-01 | International Business Machines Corporation | Processor and data processing method incorporating an instruction pipeline with conditional branch direction prediction for fast access to branch target instructions |
-
2014
- 2014-03-24 US US14/223,091 patent/US9582285B2/en active Active
-
2015
- 2015-03-23 TW TW104109240A patent/TWI588739B/zh active
- 2015-03-23 EP EP15716237.1A patent/EP3123305A1/en not_active Withdrawn
- 2015-03-23 KR KR1020167025917A patent/KR101829369B1/ko active IP Right Grant
- 2015-03-23 WO PCT/US2015/021997 patent/WO2015148372A1/en active Application Filing
- 2015-03-23 CA CA2939834A patent/CA2939834C/en active Active
- 2015-03-23 JP JP2016557109A patent/JP6370918B2/ja active Active
- 2015-03-23 CN CN201580014711.7A patent/CN106104466B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134654A (en) * | 1998-09-16 | 2000-10-17 | Sun Microsystems, Inc. | Bi-level branch target prediction scheme with fetch address prediction |
CN1397876A (zh) * | 2001-05-04 | 2003-02-19 | 智慧第一公司 | 假想分支目标地址高速缓存中置换目标地址的装置及方法 |
CN103150142A (zh) * | 2011-12-07 | 2013-06-12 | 苹果公司 | 具有滞后的下一获取预测器训练 |
Also Published As
Publication number | Publication date |
---|---|
US20150268958A1 (en) | 2015-09-24 |
EP3123305A1 (en) | 2017-02-01 |
KR101829369B1 (ko) | 2018-02-19 |
US9582285B2 (en) | 2017-02-28 |
WO2015148372A1 (en) | 2015-10-01 |
JP2017509995A (ja) | 2017-04-06 |
CN106104466A (zh) | 2016-11-09 |
CA2939834C (en) | 2019-09-17 |
TWI588739B (zh) | 2017-06-21 |
CA2939834A1 (en) | 2015-10-01 |
KR20160135726A (ko) | 2016-11-28 |
TW201602907A (zh) | 2016-01-16 |
JP6370918B2 (ja) | 2018-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3436930B1 (en) | Providing load address predictions using address prediction tables based on load path history in processor-based systems | |
US10255074B2 (en) | Selective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt | |
CN108027806A (zh) | 在基于块的数据流指令集架构(isa)中配置粗粒度可配置阵列(cgra)以用于数据流指令块执行 | |
US9830152B2 (en) | Selective storing of previously decoded instructions of frequently-called instruction sequences in an instruction sequence buffer to be executed by a processor | |
CN106104466B (zh) | 在超越控制分支预测器中的推测历史转递以及相关电路、方法和计算机可读媒体 | |
US10223118B2 (en) | Providing references to previously decoded instructions of recently-provided instructions to be executed by a processor | |
WO2018057222A1 (en) | Performing distributed branch prediction using fused processor cores in processor-based systems | |
US20140075166A1 (en) | Swapping Branch Direction History(ies) in Response to a Branch Prediction Table Swap Instruction(s), and Related Systems and Methods | |
US20160019061A1 (en) | MANAGING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA | |
US20160170770A1 (en) | Providing early instruction execution in an out-of-order (ooo) processor, and related apparatuses, methods, and computer-readable media | |
JP2015535634A (ja) | 実行パイプラインバブルを低減するためにサブルーチンリターンのための分岐ターゲット命令キャッシュ(btic)エントリを確立すること、ならびに関連するシステム、方法、およびコンピュータ可読媒体 | |
US20160019060A1 (en) | ENFORCING LOOP-CARRIED DEPENDENCY (LCD) DURING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA | |
US20160077836A1 (en) | Predicting literal load values using a literal load prediction table, and related circuits, methods, and computer-readable media | |
US20190065060A1 (en) | Caching instruction block header data in block architecture processor-based systems | |
US20190294443A1 (en) | Providing early pipeline optimization of conditional instructions in processor-based systems | |
US20160092232A1 (en) | Propagating constant values using a computed constants table, and related apparatuses and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |