CN111124493A - 一种cpu中用于减少程序跳转开销的方法及电路 - Google Patents
一种cpu中用于减少程序跳转开销的方法及电路 Download PDFInfo
- Publication number
- CN111124493A CN111124493A CN201911301013.1A CN201911301013A CN111124493A CN 111124493 A CN111124493 A CN 111124493A CN 201911301013 A CN201911301013 A CN 201911301013A CN 111124493 A CN111124493 A CN 111124493A
- Authority
- CN
- China
- Prior art keywords
- jump
- cpu
- value
- score
- lookup table
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000002829 reductive effect Effects 0.000 claims abstract description 10
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 230000009191 jumping Effects 0.000 abstract description 5
- 230000000875 corresponding effect Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30069—Instruction skipping instructions, e.g. SKIP
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
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
本发明提供了一种使用在嵌入式CPU中的,用于减少程序跳转开销的方法及其电路实现。该方法通过在跳转地址查找表项中,加入历史计分值,将表项进行分值比较,从而将最常发生的跳转目的地址保留在查找表项中,从而有效减少跳转的延迟开销。该方法在硬件实现上,采用CPU经典缓存(Cache)结构,并以计分值大小作为表项替换依据。
Description
技术领域
本发明属于集成电路中的嵌入式处理器技术领域,尤其是涉及一种CPU中用于减少程序跳转开销的方法及电路。
背景技术
CPU(中央处理器)的核心功能是读取并执行软件程序指令。读取并执行指令的第一步就是取指,即CPU向总线或存储设备发出目标指令的地址,总线或存储设备根据CPU发出的地址,返回目标指令给CPU的过程。程序一般是顺序读取并执行的,直到发生程序的跳转。也就是说,取指时目标指令的地址是顺序递增的,直到遇到跳转指令。
从CPU发出地址,到总线或存储设备返回目标指令,是有一定延迟时间的。为了整体上在一定时间内尽量多的取指,CPU通常采用流水线的方式发出地址和接受指令,如图1所示。CPU在时间t0发出目标地址0,在下一个cycle(时钟周期)不等指令0返回,就继续顺序发出地址1,如此下去。当总线或存储设备返回目标地址0所对应的指令0时,CPU已流水线化地发出了d个地址,即CPU的取指延迟是d。
如果指令0经过CPU译码,发现正好是一条跳转指令,它的执行会将CPU的下一条指令的目标地址跳转到了一个新的地址n,那么时间t(d+j)之前发出的地址和已经取得的指令,就都作废了。CPU重新流水线化地发出地址n及其后续地址。当指令n进入CPU时,时间已经过去了t(d+j+d)了。
总结起来,一条跳转指令,使得CPU相对浪费了d+j个cycle,其中d是取指延迟时间,j是跳转指令译码和目标地址的计算时间。程序的跳转打断了原有的取指流水线,不仅使CPU陷入等待而不能全速运行,而且取到的很多作废的指令数据,白白浪费了宝贵的总线带宽资源。可以说,程序跳转是CPU性能的主要影响因素之一。
应对跳转影响的方法可以分为软件和硬件两个方面。在软件上着重减少程序跳转的次数,比如优化编译器,将软件程序中体量较小的子函数,合并入上一级主函数等。在硬件上,着重减少跳转产生的延迟开销,对跳转的预测技术就是CPU硬件架构上最主要的应对手段。
所谓跳转预测,就是在取指时,通过当前指令地址,预测到跳转将要发生,并直接预测出跳转后的新目标地址。如果预测成功,则理想情况下程序跳转不会带来任何延迟开销;如果预测失败,则相当于带来一次额外的跳转开销,如图2所示。
图2中CPU在t0时刻预测程序将发生跳转,新的指令地址为n,因此在t1时刻CPU直接向总线发出地址n。CPU在t1时刻预测程序还将发生跳转,新的指令地址为e,并在t2时刻直接发出地址e。经过td延迟后,总线依次流水化地返回指令0,指令n,指令e等。指令0在译码执行时发现确实需要跳转至地址n,即t0时刻的跳转预测正确,节省了d+j个cycle。指令n在译码执行时发现不需要跳转至地址e,即t1时刻的跳转预测失败,导致在t(d+j+2)时刻CPU重新发出地址n+1,并等待至t(2d+j+2)时刻才取得指令n+1,浪费了d+j个cycle。
综上,只有在平均预测准确率较大时(应明显大于50%),跳转预测技术才能给CPU带来加速效果。目前业界将CPU的跳转预测技术,按照预测方式分为两大类:静态跳转预测和动态跳转预测。
所谓静态跳转预测,就是在程序进入CPU实际运行前,就通过人工指定或按照某种规则,预测好每个跳转是否发生。当程序每次运行到该跳转指令时,就按照既定的预测结果,进行指令预取。所谓动态跳转预测,就是CPU在程序实际运行过程中,通过累加经验学习的方式,动态地预测跳转的发生概率,并预取高概率的跳转目标地址对应的指令。
程序跳转,按照类型,可以分为无条件跳转和条件跳转两大类。无条件跳转是指程序会无条件地跳转到另一个确定的指令地址。在软件上通常对应着子函数的调用和退出。这种跳转其实是不需要进行预测的,但由于无条件跳转的目标地址需要等到跳转指令被取回,并通过译码和计算才能得到,因此也会产生额外延迟开销。条件跳转是指程序会根据某个变量的值,来判断是否跳转到另一个确定的指令地址。在软件上通常对应着if,case等分支判断语句,以及for,while等循环语句。下表总结了各种跳转及预测手段的对应效果等。
静态跳转预测,通常采用固定的预测规则,例如最常用的就是:如果是向前跳转,则预测为跳;如果向后跳转则预测为不跳。其对于循环类等大概率发生的条件分支跳转,一般有较高的准确率。但对于以实时变量作为条件跳转判断依据的分支跳转,则往往没有什么明显效果。动态跳转预测,多采用历史计分表来进行历史累计学习,其对于循环类的分支跳转和有规律的条件分支跳转,和静态分支预测有接近的较好的效果。
但无论是静态预测还是动态预测,都不能解决由于取指延迟和指令译码等带来的时间开销。因此都需要配合跳转地址查找表来减小时间开销。所谓跳转地址查找表,其基本结构与CPU中常用的缓存(Cache)基本一致,如图3所示。
CPU中的取指单元,流水线化地向总线发出指令的目的地址,每条地址除了送至总线外,还送入跳转地址查找表中,与各表项中存储的源地址进行逐一比较。如果与某个源地址一致(即所谓的命中),该源地址对应的目的地址,就被路选出来,作为下一条取指地址。上述过程使得取指流水线无缝地跳转到了新的程序段继续运行,避免了跳转的延迟开销。
在实际使用上,虽然跳转地址查找表大多是与跳转预测(动态或静态)配合使用,但在物理电路上二者往往是互相独立的,在逻辑关系上,二者也是先后关系。即先由跳转预测电路给出是否会发生跳转的预测,如果预测会发生跳转,再由跳转地址查找表电路给出跳转的目的地址。这个过程在实际使用上往往会耗时数个cycle,并不能达到理想的无缝无开销跳转的效果。
发明内容
有鉴于此,本发明旨在提出一种CPU中用于减少程序跳转开销的方法及电路,以有效减少跳转延时。
本发明的核心思想是:通过在跳转地址查找表项中,加入历史计分值,将表项进行分值比较,从而将最常发生的跳转目的地址保留在查找表项中,从而有效减少跳转的延迟开销。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明提供一种CPU中用于减少程序跳转开销的方法,包括如下步骤:
1)在CPU的跳转地址查找表中为每个表项加入历史计分值,并将表项根据计分值进行分值排序;
2)当跳转地址查找表发生命中时,则命中的对应表项其计分值增加,其余表项计分值减少;当发生命中的跳转在执行阶段确认跳转确实发生,则其对应的计分值再次增加,反之确认跳转并未发生,则其对应的计分值加倍减少;
其中,当确认是一次跳转地址查找表中未记录的跳转确实发生后,判断跳转地址查找表中排序在最后的表项的计分值是否小于第一判断阈值,若小于则其内容被该新的确实发生的跳转的内容替换,其对应计分值也被重置为第一判断阈值;若不小于则跳转地址查找表的计分值均不变。
进一步的,如果计分值发生上溢,则计分值保持上限值不变;如果计分值发生下溢,则计分值保持下限值不变。
第二方面,本发明提供一种CPU中用于减少程序跳转开销的的电路,在CPU跳转地址查找表结构中,为每个表项加入一个独立的计分器,当跳转地址查找表发生命中,对应表项的计分器增加计分值,其余表项的计分器减少计分值;当发生命中的跳转在执行阶段确认跳转确实发生,则对应表项的计分器再次增加计分值,反之确认跳转并未发生,则对应的计分器加倍减少计分值;
当确认是一次跳转地址查找表中未记录的跳转确实发生后,并且跳转地址查找表中排序在最后的表项的计分值小于第一判断阈值,则其内容被该新的确实发生的跳转的内容替换,其对应计分器的计分值也被重置为第一判断阈值;其中,如果计分值达到计分器的上限值,则计分值保持不变;如果计分值达到计分器的下限值,则计分值保持不变
所有表项的计分器的计分值都会汇总进比较更新电路,并在其中将表项根据计分值进行由大至小的排序。
第三方面,本发明提供一种实现上述的CPU中用于减少程序跳转开销的方法的CPU模块。
相对于现有技术,本发明所述的方法及电路具有以下优势:
本发明通过在跳转地址查找表项中,加入历史计分值,将表项进行分值排序,从而将最常发生的跳转目的地址保留在查找表项中,从而有效减少跳转的延迟开销。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为现有的无跳转加速的CPU进行跳转取指时的流水线示意图;
图2为现有的带有跳转预测的CPU进行跳转取指时的流水线示意图;
图3为现有的CPU跳转地址查找表的结构示意图;
图4为本发明创造的CPU跳转地址查找表的结构示意图;
图5为本发明创造的表项对应的计分值变动规则示意图;
图6为本发明创造的比较更新电路的内部结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。下面将参考附图并结合实施例来详细说明本发明。
本发明提出了一种使用在嵌入式CPU中的,用于减少程序跳转开销的方法及其电路实现。
该方法通过在跳转地址查找表项中,加入历史计分值,将表项进行分值排序,从而将最常发生的跳转目的地址保留在查找表项中,从而有效减少跳转的延迟开销。
本方法在硬件实现上,采用CPU经典缓存(Cache)结构,并以计分值大小作为表项替换依据。
本方法在传统的CPU跳转地址查找表中,为每个表项加入一个独立的计分器,如图4所示。每个计分器包含3bit,其数值从3’b000至3’b111。所有表项的计分值都会汇总进比较更新电路,并在其中按照数值进行由大至小的排序。
每当一个新的‘当前取指目标地址’进入跳转地址查找表,并发生命中时;或者,一次表中未记录的跳转确实发生时,每个表项的计分值会进行递增或递减。
当一次表中未记录的跳转确实发生后,跳转地址查找表中排序在最后的表项,也就是计分值最小的表项,如果其计分值小于3’b010,则其内容被未记录的该新的确实发生的跳转的一对跳转源地址和目的地址替换,其对应计分值也被重置为3’b010。
如果发生替换时,比较得到的最小计分表项为并列多个,则表项序号最小的被替换。
如果跳转地址查找表发生命中,则命中的对应表项其计分值+1,其余表项计分值-1。发生命中的跳转在执行阶段,如果确认跳转确实应该发生,则其对应的计分值+1;反之确认跳转不该发生,则其对应的计分值-3。
如果计分值发生上溢,则计分值保持3’b111不变;如果计分值发生下溢,则计分值保持3’b000不变。表项对应的计分值变动规则,如图5所示。
本实施例的比较更新电路为一个典型的8表项比较更新电路,其内部结构如图6所示。8个表项的计分值两两进行大小比较,并将较小的表项传至下一级。如果两个表项计分值相等,则输出表项号较小的表项。经过三级比较,筛选出计分值最小的表项,并与固定值3’b010再进行一次比较。如果该表项的计分值小于3’b010,则该表项即为被替换的目标表项。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种CPU中用于减少程序跳转开销的方法,其特征在于,包括如下步骤:
1)在CPU的跳转地址查找表中为每个表项加入历史计分值,并将表项根据计分值进行分值排序;
2)当跳转地址查找表发生命中时,则命中的对应表项其计分值增加,其余表项计分值减少;当发生命中的跳转在执行阶段确认跳转确实发生,则其对应的计分值再次增加,反之确认跳转并未发生,则其对应的计分值加倍减少;
其中,当确认是一次跳转地址查找表中未记录的跳转确实发生后,判断跳转地址查找表中排序在最后的表项的计分值是否小于第一判断阈值,若小于则其内容被该新的确实发生的跳转的内容替换,其对应计分值也被重置为第一判断阈值;若不小于则跳转地址查找表的计分值均不变。
2.根据权利要求1所述的一种CPU中用于减少程序跳转开销的方法,其特征在于:如果计分值发生上溢,则计分值保持上限值不变;如果计分值发生下溢,则计分值保持下限值不变。
3.一种CPU中用于减少程序跳转开销的的电路,其特征在于,在CPU跳转地址查找表结构中,为每个表项加入一个独立的计分器;
当跳转地址查找表发生命中,对应表项的计分器增加计分值,其余表项的计分器减少计分值;当发生命中的跳转在执行阶段确认跳转确实发生,则对应表项的计分器再次增加计分值,反之确认跳转并未发生,则对应的计分器加倍减少计分值;
当确认是一次跳转地址查找表中未记录的跳转确实发生后,并且跳转地址查找表中排序在最后的表项的计分值小于第一判断阈值,则其内容被该新的确实发生的跳转的内容替换,其对应计分器的计分值也被重置为第一判断阈值;
其中,如果计分值达到计分器的上限值,则计分值保持不变;如果计分值达到计分器的下限值,则计分值保持不变
所有表项的计分器的计分值都会汇总进比较更新电路,并在其中将表项根据计分值进行由大至小的排序。
4.一种实现权利要求1或2所述的CPU中用于减少程序跳转开销的方法的CPU模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911301013.1A CN111124493A (zh) | 2019-12-17 | 2019-12-17 | 一种cpu中用于减少程序跳转开销的方法及电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911301013.1A CN111124493A (zh) | 2019-12-17 | 2019-12-17 | 一种cpu中用于减少程序跳转开销的方法及电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111124493A true CN111124493A (zh) | 2020-05-08 |
Family
ID=70499125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911301013.1A Pending CN111124493A (zh) | 2019-12-17 | 2019-12-17 | 一种cpu中用于减少程序跳转开销的方法及电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124493A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632424A (zh) * | 2021-03-10 | 2021-04-09 | 深圳市智信新信息技术有限公司 | 页面打开的方法及电子设备 |
CN114461174A (zh) * | 2022-04-13 | 2022-05-10 | 深圳云豹智能有限公司 | 查找表电路、芯片及电子设备 |
CN117093271A (zh) * | 2023-09-06 | 2023-11-21 | 上海耀芯电子科技有限公司 | 一种分支指令的预取方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394529A (en) * | 1990-06-29 | 1995-02-28 | Digital Equipment Corporation | Branch prediction unit for high-performance processor |
US6205535B1 (en) * | 1991-06-24 | 2001-03-20 | Hitachi, Ltd. | Branch instruction having different field lengths for unconditional and conditional displacements |
US6327704B1 (en) * | 1998-08-06 | 2001-12-04 | Hewlett-Packard Company | System, method, and product for multi-branch backpatching in a dynamic translator |
US20050201402A1 (en) * | 2004-03-01 | 2005-09-15 | Avici Systems, Inc. | Priority sorting |
US7870371B2 (en) * | 2007-12-17 | 2011-01-11 | Microsoft Corporation | Target-frequency based indirect jump prediction for high-performance processors |
CN103488461A (zh) * | 2012-06-12 | 2014-01-01 | 国际商业机器公司 | 使用快速索引树实现加速分支预测的系统和方法 |
CN103744642A (zh) * | 2013-12-31 | 2014-04-23 | 天津国芯科技有限公司 | 用于改进处理器中直接跳转的方法及系统 |
CN105718241A (zh) * | 2016-01-18 | 2016-06-29 | 北京时代民芯科技有限公司 | 一种基于sparc v8体系结构的分类式混合分支预测系统 |
CN107810483A (zh) * | 2015-06-26 | 2018-03-16 | 微软技术许可有限责任公司 | 验证基于块的处理器中的跳转目标 |
CN110069285A (zh) * | 2019-04-30 | 2019-07-30 | 海光信息技术有限公司 | 一种检测分支预测的方法及处理器 |
-
2019
- 2019-12-17 CN CN201911301013.1A patent/CN111124493A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394529A (en) * | 1990-06-29 | 1995-02-28 | Digital Equipment Corporation | Branch prediction unit for high-performance processor |
US6205535B1 (en) * | 1991-06-24 | 2001-03-20 | Hitachi, Ltd. | Branch instruction having different field lengths for unconditional and conditional displacements |
US6327704B1 (en) * | 1998-08-06 | 2001-12-04 | Hewlett-Packard Company | System, method, and product for multi-branch backpatching in a dynamic translator |
US20050201402A1 (en) * | 2004-03-01 | 2005-09-15 | Avici Systems, Inc. | Priority sorting |
US7870371B2 (en) * | 2007-12-17 | 2011-01-11 | Microsoft Corporation | Target-frequency based indirect jump prediction for high-performance processors |
CN103488461A (zh) * | 2012-06-12 | 2014-01-01 | 国际商业机器公司 | 使用快速索引树实现加速分支预测的系统和方法 |
CN103744642A (zh) * | 2013-12-31 | 2014-04-23 | 天津国芯科技有限公司 | 用于改进处理器中直接跳转的方法及系统 |
CN107810483A (zh) * | 2015-06-26 | 2018-03-16 | 微软技术许可有限责任公司 | 验证基于块的处理器中的跳转目标 |
CN105718241A (zh) * | 2016-01-18 | 2016-06-29 | 北京时代民芯科技有限公司 | 一种基于sparc v8体系结构的分类式混合分支预测系统 |
CN110069285A (zh) * | 2019-04-30 | 2019-07-30 | 海光信息技术有限公司 | 一种检测分支预测的方法及处理器 |
Non-Patent Citations (1)
Title |
---|
PO-YUNG CHANG等: ""using hybrid branch predictors to improve branch prediction accuracy in the presence of context switches"", 《IEEE》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632424A (zh) * | 2021-03-10 | 2021-04-09 | 深圳市智信新信息技术有限公司 | 页面打开的方法及电子设备 |
CN112632424B (zh) * | 2021-03-10 | 2021-06-04 | 深圳市智信新信息技术有限公司 | 页面打开的方法及电子设备 |
CN114461174A (zh) * | 2022-04-13 | 2022-05-10 | 深圳云豹智能有限公司 | 查找表电路、芯片及电子设备 |
CN114461174B (zh) * | 2022-04-13 | 2022-06-07 | 深圳云豹智能有限公司 | 查找表电路、芯片及电子设备 |
CN117093271A (zh) * | 2023-09-06 | 2023-11-21 | 上海耀芯电子科技有限公司 | 一种分支指令的预取方法及装置 |
CN117093271B (zh) * | 2023-09-06 | 2024-10-08 | 上海耀芯电子科技有限公司 | 一种分支指令的预取方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7366877B2 (en) | Speculative instruction issue in a simultaneously multithreaded processor | |
CN1265286C (zh) | 预测间接分支目标地址的方法、装置和编译器 | |
EP2330500B1 (en) | System and method for using a branch mis-prediction buffer | |
US5758142A (en) | Trainable apparatus for predicting instruction outcomes in pipelined processors | |
CN111124493A (zh) | 一种cpu中用于减少程序跳转开销的方法及电路 | |
US7644236B2 (en) | Memory cache bank prediction | |
US11579885B2 (en) | Method for replenishing a thread queue with a target instruction of a jump instruction | |
US20070288736A1 (en) | Local and Global Branch Prediction Information Storage | |
CN1300006A (zh) | 利用从分支预测得出的未来分支路径信息进行预取 | |
CN112230992B (zh) | 一种包含分支预测循环的指令处理装置、处理器及其处理方法 | |
US20230350683A1 (en) | Branch prediction method, branch prediction apparatus, processor, medium, and device | |
WO2002006959A1 (en) | Instruction fetch and dispatch in multithreaded system | |
WO2022066559A1 (en) | Processor with multiple fetch and decode pipelines | |
US9778934B2 (en) | Power efficient pattern history table fetch in branch predictor | |
JPWO2005103886A1 (ja) | 分岐予測装置、その方法、及びプロセサ | |
JP3811140B2 (ja) | 情報処理装置 | |
US20200159538A1 (en) | Adaptive Utilization Mechanism for a First-Line Defense Branch Predictor | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
JP2007193433A (ja) | 情報処理装置 | |
WO2012132214A1 (ja) | プロセッサ及びその命令処理方法 | |
JP4002288B2 (ja) | 情報処理装置 | |
CN111124494A (zh) | 一种cpu中加速无条件跳转的方法及电路 | |
US11687342B2 (en) | Way predictor and enable logic for instruction tightly-coupled memory and instruction cache | |
US20220075624A1 (en) | Alternate path for branch prediction redirect | |
Shimomura et al. | BTB Energy Reduction by Focusing on Useless Accesses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200508 |
|
RJ01 | Rejection of invention patent application after publication |