CN108780399A - 提供有待由处理器执行的近期提供的指令的先前解码的指令的参考 - Google Patents
提供有待由处理器执行的近期提供的指令的先前解码的指令的参考 Download PDFInfo
- Publication number
- CN108780399A CN108780399A CN201780016972.1A CN201780016972A CN108780399A CN 108780399 A CN108780399 A CN 108780399A CN 201780016972 A CN201780016972 A CN 201780016972A CN 108780399 A CN108780399 A CN 108780399A
- Authority
- CN
- China
- Prior art keywords
- instruction
- microoperation
- received
- label
- stored
- 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
- 230000004044 response Effects 0.000 claims abstract description 91
- 238000000605 extraction Methods 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims description 108
- 230000008569 process Effects 0.000 claims description 73
- 239000000284 extract Substances 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 3
- 230000001413 cellular effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 20
- 230000006399 behavior Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000011017 operating method Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- PXUQTDZNOHRWLI-OXUVVOBNSA-O malvidin 3-O-beta-D-glucoside Chemical compound COC1=C(O)C(OC)=CC(C=2C(=CC=3C(O)=CC(O)=CC=3[O+]=2)O[C@H]2[C@@H]([C@@H](O)[C@H](O)[C@@H](CO)O2)O)=C1 PXUQTDZNOHRWLI-OXUVVOBNSA-O 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002245 particle 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/3802—Instruction prefetching
-
- 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/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- 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/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
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
优先权申请
本申请要求2016年3月24日提交且标题为“提供有待由处理器执行的近期提供的指令的先前解码的指令的参考(PROVIDING REFERENCES TO PREVIOUSLY DECODEDINSTRUCTIONS OF RECENTLY-PROVIDED INSTRUCTIONS TO BE EXECUTED BY APROCESSOR)”美国专利申请案第15/079,875号的优先权,所述美国专利申请案通过引用以其全文结合在此。
技术领域
本公开的技术大体上涉及处理器中的指令流水线化,以及更具体地说,涉及重新使用有待由处理器执行的近期提供的指令的先前解码的指令。
背景技术
指令流水线化是一种处理技术,由此可增加正由处理器执行的计算机指令的吞吐量。在此方面,与在处理下一指令之前连续地处理和完整地执行每条指令相反,每条指令的处理被分成一系列步骤。这些步骤以由多个级构成的指令流水线执行。在指令流动通过指令流水线的各种流水线级时,从存储器提取指令时与实际执行指令时之间存在若干循环。
通常,在前一步骤中提取指令之后,指令流水线解码指令。指令被解码成一系列更短操作,被称为微操作(micro-operations/micro-ops)。以此方式解码指令致使指令流水线执行更短微操作而非更复杂的指令,这有助于提高指令流水线性能。如果处理器多次访问特定指令模式,指令流水线可在每次访问相同指令模式时进行相同提取和解码步骤。以此方式处理器可采用专用存储装置,所述专用存储装置被配置成存储当解码指令模式时生成的微操作。如果处理器被指示访问来自给定提取地址的指令模式,处理器可在专用存储装置中搜索对应于提取地址的微操作。如果微操作先前已经被解码和存储在专用存储装置中,那么微操作可从专用存储装置检索且供应给处理器,因此避免了重新提取和重新解码指令模式的需要。以此方式,从专用存储装置供应微操作而非通过获取和解码允许临时禁止提取和解码,因此减小功率消耗。
虽然从专用存储装置供应先前解码的微操作通过临时禁止提取和解码而减小了功率消耗,但是检索和传递微操作致使对应功率消耗。举例来说,从专用存储装置检索微操作且将其传递给处理器,使得微操作根据指令流水线的时序来执行。具体地说,响应于从专用存储装置检索微操作,这些微操作被传递给指令流水线中的对应队列,直到其可被提供给后续级以用于执行为止。因此,将有利的是避免重新提取和重新解码先前解码的指令,同时还减小对应于通过指令流水线检索和传递微操作的功率消耗。
发明内容
详细描述中所公开的方面包含提供有待由处理器执行的近期提供的指令的先前解码的指令的参考。先前解码的指令,也被称为微操作(micro-operations/micro-ops),在指令处理的解码级期间生成。此类微操作存储在解码级的后解码队列中,从而使得微操作可根据指令流水线的时序被提供给后续级以用于执行。在此方面,在本文中所公开的某些方面中,被配置成提供对应于近期提供的指令的先前解码的指令的参考(例如,指针)的低资源微操作控制器设置在处理器中。响应于指令流水线接收到指令地址,在提取对应指令之前,低资源微操作控制器被配置成确定接收到的指令地址是否对应于存储在简短历史表中的指令地址。简短历史表包含具有存储在后解码队列中的微操作的近期提供的指令的指令地址列表。如果接收到的指令地址对应于简短历史表中的指令地址,那么低资源微操作控制器被配置成提供提取级的参考,使得指令流水线不需要提取和解码对应指令。参考对应于其中存储对应于指令地址的微操作的后解码队列中的表项。响应于解码级接收到参考,低资源微操作控制器被配置成从后解码队列提供微操作以用于执行。换句话说,而非重新提取和重新解码近期提供的指令或检索存储在微操作高速缓存中的微操作且将其提供给提取级,提供对应于当前存储在后解码队列中的微操作的参考。参考用于提供对应于指令地址的先前解码的微操作以用于执行。以此方式提供参考可通过减小提取和解码的次数而减小处理器的功率消耗。另外,因为参考比对应微操作消耗更少的存储区域,所以也可通过以下方式减小功率消耗:允许提取和解码级存储和传递参考而非采用专用存储装置来存储和传递更大微操作。
在此方面,在一个方面中,提供一种低资源微操作控制器。低资源微操作控制器包括简短历史控制器。简短历史控制器被配置成将有待提取以供执行的下一指令的指令地址接收到指令处理系统中的指令流水线中。简短历史控制器被进一步配置成确定接收到的指令地址是否对应于简短历史表中存储的指令地址。简短历史控制器被进一步配置成响应于确定接收到的指令地址对应于简短历史表中存储的指令地址而将对应于简短历史表中存储的指令地址的指针提供给指令提取电路。指针对应于其中存储对应于存储的指令地址的微操作的后解码队列中的表项。低资源微操作控制器进一步包括标签控制器。标签控制器被配置成监视后解码队列。标签控制器被进一步配置成响应于后解码队列接收到指针而从后解码队列中的表项提供对应于存储的指令地址的微操作以用于执行。
在另一方面中,提供一种低资源微操作控制器。低资源微操作控制器包括一种装置,所述装置用于将有待提取以供执行的下一指令的指令地址接收到指令处理系统中的指令流水线中。低资源微操作控制器进一步包括一种装置,所述装置用于确定接收到的指令地址是否对应于简短历史表中存储的指令地址。低资源微操作控制器进一步包括一种装置,所述装置用于响应于确定接收到的指令地址对应于简短历史表中存储的指令地址而将对应于简短历史表中存储的指令地址的指针提供给指令提取电路。指针对应于其中存储对应于存储的指令地址的微操作的后解码队列中的表项。低资源微操作控制器进一步包括一种装置,所述装置用于监视后解码队列。低资源微操作控制器进一步包括一种装置,所述装置用于响应于后解码队列接收到指针而从后解码队列中的表项提供对应于存储的指令地址的微操作以用于执行。
在另一方面中,提供一种用于将指针提供给有待由处理器执行的近期提供的指令的先前解码的指令的方法。所述方法包括将有待提取以供执行的下一指令的指令地址接收到指令处理系统中的指令流水线中。所述方法进一步包括确定接收到的指令地址是否对应于简短历史表中存储的指令地址。所述方法进一步包括响应于确定接收到的指令地址对应于简短历史表中存储的指令地址而将对应于简短历史表中存储的指令地址的指针提供给指令提取电路。指针对应于其中存储对应于存储的指令地址的微操作的后解码队列中的表项。所述方法进一步包括监视后解码队列。所述方法进一步包括响应于后解码队列接收到指针而从后解码队列中的表项提供对应于存储的指令地址的微操作以用于执行。
在另一方面中,提供一种用于处理器的指令处理系统。用于处理器的指令处理系统包括一或多个指令流水线,所述一或多个指令流水线各自包括:指令提取电路,其被配置成将指令提取到提取队列中;指令解码电路,其被配置成通过指令提取电路解码提取的指令;和执行电路,其被配置成执行后解码队列中的解码指令的微操作。指令处理系统进一步包括低资源微操作控制器。低资源微操作控制器包括简短历史控制器。简短历史控制器被配置成将有待提取以供执行的下一指令的指令地址接收到一或多个指令流水线中的一个中。简短历史控制器被进一步配置成确定接收到的指令地址是否对应于简短历史表中存储的指令地址。简短历史控制器被进一步配置成响应于确定接收到的指令地址对应于简短历史表中存储的指令地址而将对应于简短历史表中存储的指令地址的指针提供给指令提取电路。指针对应于其中存储对应于存储的指令地址的微操作的后解码队列中的表项。低资源微操作控制器进一步包括标签控制器。标签控制器被配置成监视后解码队列。标签控制器被进一步配置成响应于后解码队列接收到指针而从后解码队列中的表项提供对应于存储的指令地址的微操作以用于执行。
附图说明
图1是中央处理单元(CPU)系统中的示范性指令处理系统的框图,其中指令处理系统包含低资源微操作控制器,所述低资源微操作控制器被配置成将对应于近期提供的指令的先前解码的指令的参考(例如,指针)提供给指令提取电路;
图2A是流程图,其说明由图1中的低资源微操作控制器采用以将对应于近期提供的指令的先前解码的指令的指针提供给指令提取电路的示范性过程;
图2B是流程图,其说明由图1中的低资源微操作控制器采用以提供对应于图2A中的过程中所提供的指针的微操作以用于执行的示范性过程;
图3是示范性简短历史表的图,所述示范性简短历史表被配置成存储对应于接收到的指令地址的指令地址且由图1中的低资源微操作控制器所采用的简短历史控制器访问;
图4A是可由图1中的低资源微操作控制器提供的示范性指针的图,其中指针被配置成存储指令地址;
图4B是示范性标签表的图,所述示范性标签表被配置成存储结合图1中的低资源微操作控制器使用的指令地址和对应标签;
图5A是可由图1中的低资源微操作控制器提供的示范性指针的图,其中指针被配置成存储偏移值;
图5B是示范性标签表的图,所述示范性标签表被配置成存储结合图1中的低资源微操作控制器使用的偏移值和对应标签;
图6A和6B是流程图,其说明由图1中的低资源微操作控制器采用以将对应于近期提供的指令的先前解码的指令的指针提供给指令提取电路的另一示范性过程;
图7A和7B是流程图,其说明由图1中的低资源微操作控制器采用以提供对应于图6A和6B中的过程中所提供的指针的微操作以用于执行的示范性过程;
图8A到8K是说明在示范性操作期间由图1中的低资源微操作控制器控制的简短历史表和标签表的各种状态的图式;且
图9是可包含图1中的低资源微操作控制器的示范性基于处理器的系统的框图。
具体实施方式
现在参考各图,描述本公开的数个示范性方面。词语“示范性”在本文中用于意味着“充当实例、例子或说明”。本文中描述为“示范性”的任何方面不必解释为比其它方面优选或有利。
详细描述中所公开的方面包含提供有待由处理器执行的近期提供的指令的先前解码的指令的参考。先前解码的指令,也被称为微操作(micro-operations/micro-ops),在指令处理的解码级期间生成。此类微操作存储在解码级的后解码队列中,从而使得可根据指令流水线的时序将微操作提供给后续级以用于执行。在此方面,在本文中所公开的某些方面中,被配置成提供对应于近期提供的指令的先前解码的指令的参考(例如,指针)的低资源微操作控制器设置在处理器中。响应于指令流水线接收到指令地址,在提取对应指令之前,低资源微操作控制器被配置成确定接收到的指令地址是否对应于存储在简短历史表中的指令地址。简短历史表包含具有存储在后解码队列中的微操作的近期提供的指令的指令地址列表。如果接收到的指令地址对应于简短历史表中的指令地址,那么低资源微操作控制器被配置成提供提取级的参考,使得指令流水线不需要提取和解码对应指令。参考对应于其中存储对应于指令地址的微操作的后解码队列中的表项。响应于解码级接收到参考,低资源微操作控制器被配置成从后解码队列提供微操作以用于执行。换句话说,而非重新提取和重新解码近期提供的指令或检索存储在微操作高速缓存中的微操作且将其提供给提取级,提供对应于当前存储在后解码队列中的微操作的参考。参考用于提供对应于指令地址的先前解码的微操作以用于执行。以此方式提供参考可通过减小提取和解码的次数而减小处理器的功率消耗。另外,因为参考比对应微操作消耗更少的存储区域,所以也可通过以下方式减小功率消耗:允许提取和解码级存储和传递参考而非采用专用存储装置来存储和传递更大微操作。
在此方面,图1是设置在中央处理单元(CPU)系统102中的示范性指令处理系统100的框图。作为实例,CPU系统102可设置在芯片上系统(SoC)104中。指令处理系统100被配置成处理有待由CPU或其它处理器或处理单元执行的指令。在此方面,下一行生成器106将指令地址108提供给设置在指令处理系统100的前端指令级112中的指令提取电路110。下一行生成器106还将指令地址108提供给指令处理系统100的低资源微操作控制器114。如下文更详细地论述,除非低资源微操作控制器114另外指示,否则指令提取电路110从指令存储器118提取对应于指令地址108的指令116。如果可能的话,指令处理系统100能够使用无序处理(OoP)处理指令116以实现更大吞吐量性能和并行性。然而,其它方面可包含有序处理(IoP)。作为实例,指令存储器118可设置在CPU系统102中的系统存储器中或作为系统存储器的部分。指令高速缓存120还可设置在CPU系统102中,如图1中所示出,以高速缓存来自指令存储器118的指令116,从而减小提取指令116的指令提取电路110中的延时。
在此实例中,指令提取电路110被配置成将提取指令116提供到指令处理系统100中的一或多个指令流水线I0到IN中以在提取指令116到达指令处理系统100中的后端指令级124中的执行电路122以用于执行之前进行预处理。如接下来将论述,指令流水线I0到IN跨越指令处理系统100的不同处理电路或级设置以按一系列步骤同时预处理和处理指令116,从而在执行电路122中执行指令116之前增大吞吐量。
继续参考图1,在此实例中,指令处理系统100的前端指令级112包含指令解码电路126。指令解码电路126被配置成将由指令提取电路110提取的提取指令116解码成微操作128(在本文中也被称为微操作128)。解码指令116用于确定必要指令和动作的类型,这继而用于确定指令116的微操作128应置于哪一个指令流水线I0到IN中。控制流量预测电路130也设置在前端指令级112中以推测或预测例如条件分支指令等控制流量指令116的目标地址。控制流量预测电路130对目标地址的预测由指令提取电路110使用来确定在控制流量指令116之后要提取的下一指令116,从而假设控制流量指令116将被解析为跳到预测的目标地址。
继续参考图1,在此实例中,微操作128置于对应于指令116的指令流水线I0到IN中的一或多个中。指令流水线I0到IN中的每一个包含其中存储对应微操作128的对应后解码队列132。微操作128接下来被提供给指令处理系统100的后端指令级124中的重命名电路134。重命名电路134被配置成确定微操作128中的任何寄存器名是否需要重命名以打破将会妨碍指令116的并行或无序处理(OoP)的任何寄存器依赖性。此外,可限制设置在CPU系统102中的体系结构寄存器的数目。在此方面,设置在后端指令级124中的重命名电路134被配置成调用寄存器映射表(RMT)136以将逻辑源和目的寄存器名重命名为通常比可用体系结构寄存器提供更多寄存器的物理寄存器堆(PRF)138中的可用物理寄存器名。分配电路140在后端指令级124的下一步骤中读取含有来自PRF138的源操作数的物理寄存器以确定负责生产值的指令116是否已经被执行。如果生产指令116仍尚未被执行,那么值将通过生产指令116经由实时转发路径接收。发布电路142(也被称为“调度电路”)可在识别和仲裁指令116当中的已使其所有源操作就绪的指令之后将微操作128无序调度给执行电路122中的执行单元EX0到EXN。提交电路144也设置在后端指令级124中作为最终级,所述提交电路144被配置成将CPU系统102的体系结构和存储器状态更新为执行指令116以及处理由执行指令116所导致的异常。
继续参考图1,指令提取电路110每次从指令存储器118或指令高速缓存120提取指令116时消耗功率。类似地,指令解码电路126每次将提取指令116解码成微操作128时消耗额外功率。换句话说,提取和解码指令116的多个循环导致了指令处理系统100的功率消耗。因此,减小访问指令提取电路110和指令解码电路126的频率可减小指令处理系统100的功率消耗。
为了减小访问指令提取电路110和指令解码电路126的频率,类似于指令处理系统100的其它指令处理系统采用在其中存储先前解码的微操作128的专用存储装置。举例来说,此类指令处理系统被配置成将对应于频繁调用的指令地址108的微操作128存储在微操作高速缓存中。响应于指令调用,如果对应微操作128存储在微操作高速缓存中,那么从微操作高速缓存检索微操作128且将其传递给指令处理系统100的特定区段,例如传递给指令解码电路126或后端指令级124。虽然通过减小的提取和解码采用如上文所描述的微操作高速缓存减小了功率消耗,但是以此方式检索和传递微操作128消耗了对应功率。
在此方面,为了减小和解码,同时也避免检索和传递如上文所论述的微操作128,低资源微操作控制器114被配置成提供对应于近期提供的指令116的微操作128的参考(例如,指针146)。指针146包含参考其中存储此类微操作128的位置的信息。在此实例中,低资源微操作控制器114包含简短历史控制器148。简短历史控制器148被配置成确定接收到的指令地址108是否对应于存储在简短历史表150中的指令地址108。简短历史表150包含先前已经由指令解码电路126解码的近期提供的指令116的指令地址列表108。以此方式,对应于此类指令116的微操作128存储在后解码队列132中。如果接收到的指令地址108对应于存储在简短历史表150中的指令地址108,那么简短历史控制器148被配置成防止指令提取电路110提取对应于接收到的指令地址108的指令116。除防止提取序列之外,简短历史控制器148被配置成将指针146提供给指令提取电路110。如下文更详细地描述,指针146对应于其中存储对应于接收到的指令地址108的微操作128的后解码队列132中的表项。响应于接收到指针146,指令提取电路110将指针146提供给指令解码电路126。
此外,低资源微操作控制器114还包含被配置成监视后解码队列132的标签控制器152。响应于后解码队列132接收到指针146,标签控制器152被配置成从后解码队列132提供对应于指令地址108的微操作128以用于执行。举例来说,标签控制器152可被配置成通过确定指针146是否对应于标签表154中的表项来提供微操作128。标签表154的每个表项存储标签156和对应于指令地址108的数据,例如指令地址108本身。如果标签控制器152确定指针146对应于标签表154中的表项,那么对应于指令地址108的微操作128当前存储在后解码队列132中。如下文所描述,此类微操作128存储在后解码队列132的表项中,以标签表154中的对应标签156作索引。因此,如果存储在标签表154中的表项对应于指针146,那么标签控制器152被配置成将来自后解码队列132中的表项的以对应标签156作索引的微操作128提供给后端指令级124以用于执行。以此方式,由标签控制器152提供的微操作128对应于在接收到的指令地址108的前一例子的提取和解码期间生成的微操作128。
换句话说,而非重新提取和重新解码近期提供的指令116或将存储在微操作高速缓存中的微操作128提供给后端指令级124,简短历史控制器148被配置成在接收到的指令地址108存储在简短历史表150中时提供对应于当前存储在后解码队列132中的微操作128的指针146。另外,如果后解码队列132接收到指针146,那么标签控制器152被配置成提供对应微操作128以用于执行。举例来说,如果指针146对应于标签表154中的表项,那么对应于指针146与其相关的接收到的指令地址108的微操作128被存储在后解码队列132中。因此,标签表154中的命中致使标签控制器152提供先前解码的微操作128以用于执行。因此,使用低资源微操作控制器114提供指针146通过减小提取和解码的次数而减小CPU系统102的功率消耗。另外,因为指针146比对应微操作128消耗更少的存储区域,所以通过允许指令提取电路110和指令解码电路126存储和传递指针146而非采用存储和传递更大微操作128的专用存储装置也减小了功率消耗。值得注意的是在一些方面中,低资源微操作控制器114重新使用指令解码电路126中预先存在的后解码队列132,使得实施如本文中所描述的低资源微操作控制器114不会引起产生新的后解码队列132。
继续参考图1,在此实例中,低资源微操作控制器114设置在指令处理系统100的前端指令级112中。低资源微操作控制器114被配置成进行图2A中的示范性过程200以将对应于有待在指令处理系统100中执行的先前解码的微操作128的指针146提供给指令提取电路110。低资源微操作控制器114被进一步配置成与过程200同时进行图2B中的示范性过程300以提供对应于在过程200中提供的指针146的微操作128以用于执行。现在将结合图1描述过程200和300。
在此方面,简短历史控制器148被配置成将有待提取以供执行的下一指令116的指令地址108接收到指令处理系统100中的指令流水线I0到IN中的一个中(图2A中的框202)。简短历史控制器148被进一步配置成确定接收到的指令地址108是否对应于简短历史表150中存储的指令地址108(图2A中的框204)。响应于确定接收到的指令地址108对应于简短历史表150中存储的指令地址108,简短历史控制器148被配置成将对应于简短历史表150中存储的指令地址108的指针146提供给指令提取电路110(图2A中的框206)。指针146对应于其中存储对应于存储的指令地址108的微操作128的后解码队列132中的表项。
在此方面,指针146可用于提供对应于接收到的指令地址108的微操作128,所述接收到的指令地址108在前一解码级期间生成。参考图2B中的过程300,标签控制器152被配置成监视后解码队列132(图2B中的框302)。此外,响应于后解码队列132接收到指针146,标签控制器152被配置成从后解码队列132中的表项提供对应于存储的指令地址108的微操作128以用于执行(图2B中的框304)。结合过程300采用过程200以提供指针146从而提供微操作128通过减小提取和解码的次数减小了CPU系统102的功率消耗。另外,因为指针146比对应微操作128消耗更少的存储区域,所以过程200也通过允许指令提取电路110和指令解码电路126存储和传递指针146而非采用专用存储装置来存储和传递更大微操作128而减小了功率消耗。
为了提供对应于图1中的低资源微操作控制器114的更多示范性细节,现在将描述与低资源微操作控制器114相关的示范性元件。在此方面,图3说明图1中的简短历史表150的示范性版本,其被配置成将对应于接收到的指令地址108的指令地址108存储在表项E0到EN中。举例来说,表项E0存储指令地址108“A”。此外,简短历史表150的表项E1存储指令地址108“B”。如先前所描述,图1中的简短历史控制器148被配置成当确定是否提供指针146时将接收到的指令地址108与存储在简短历史表150中的指令地址108(例如,“A”和“B”)进行比较。
在此方面,图4A说明示范性指针146,所述示范性指针146对应于接收到的指令地址108且被配置成存储指令地址108。举例来说,图4A中的指针146包含指针指示器(PI),所述指针指示器(PI)用于向图1中的指令处理系统100中的各种元件指示:与例如指令116相反,指针146有待被处理为指针结构。图4A中的指针146还包含指令地址108(INST ADDR)。以此方式,指令处理系统100中的元件经由存储在指针146中的实际指令地址108使指针146与接收到的指令地址108相关。在此方面,图4B说明图1中的标签表154的示范性版本,其被配置成将指令地址108(INSTR ADDR)和对应标签156(TAG)存储在表项ET0到ETM中,使得标签表154可结合图4A中的指针146使用。举例来说,图4B中的标签表154中的表项ET0存储标签156(TAG)“0”和指令地址108“A”。此外,图4B中的标签表154中的表项ET1存储标签156(TAG)“1”和指令地址108“B”。以此方式,图1中的标签控制器152可使用指针146中的指令地址108“A”以根据标签表154确定对应于指令地址108“A”的微操作128被存储在后解码队列132中的对应于标签156(TAG)“0”的表项处。
相比之下,图5A说明示范性指针146',所述示范性指针146'对应于接收到的指令地址108且被配置成存储偏移值(OFFSET),如上文所描述。举例来说,图5A中的指针146'包含类似于图4A中的指针146的指针指示器(PI)。然而,图5A中的指针146'包含偏移值(OFFSET)而非指令地址108。以此方式,指令处理系统100中的元件经由偏移值(OFFSET)使指针146'与接收到的指令地址108相关。偏移值(OFFSET)潜在地比指令地址108消耗更少的空间。因此,采用偏移值(OFFSET)可实现进一步功率减小。在此方面,图5B说明图1中的标签表154'的示范性版本,其被配置成存储对应标签156(TAG)的偏移值(OFFSET),使得标签表154'可结合图5A中的指针146'采用。举例来说,图5B中的标签表154'中的表项ET'0存储标签156(TAG)“0”和偏移值(OFFSET)“-2”。此外,图5B中的标签表154'中的表项ET'1存储标签156(TAG)“1”和偏移值(OFFSET)“-1”。以此方式,图1中的标签控制器152可使用指针146'中的偏移值(OFFSET)“-2”来根据标签表154'确定对应接收到的指令地址108“A”的微操作128被存储在后解码队列132中的对应于标签156(TAG)“0”的表项处。
除上文关于图2中的过程200提供的实例之外,图1中的低资源微操作控制器114可被配置成对额外信息加以考虑且采取与提供对应于近期提供的指令116的微操作128的指针146相关的其它步骤。由低资源微操作控制器114处理的额外信息和步骤可提供更详细的分析,使得更高效地提供指针146和对应微操作128。以此方式,图6A和6B说明示范性过程400,其可由低资源微操作控制器114采用来将对应于近期提供的指令116的先前解码的微操作128的指针146提供给指令提取电路110。此外,图7A和7B说明过程500,其可由低资源微操作控制器114与过程400同时采用来提供对应于在过程400中提供的指针146的微操作128以用于执行。图6A和6B中的过程400以及图7A和7B中的过程500将结合图8A到8K中的图式描述,图8A到8K说明在过程400的各种步骤期间简短历史表150、标签表154和后解码队列132的内容。图8A到8K还包含级表600,所述级表600说明在过程400、500期间与指令提取电路110和指令解码电路126相关联的元件。举例来说,级表600说明指令提取电路110中的第一提取级(F1)、第二提取级(F2)和第一解码级(D1)的内容。此外,级表600说明对应于后解码队列132的第二解码级(D2)的内容。级表600还说明第一后端级(BE1)的内容。图8A到8K中的简短历史表150和标签表154分别类似于图3和4B中提供的简短历史表150和标签表154。尽管简短历史表150和标签表154分别具有相同数目的表项E0到E3和ET0到ET3,但其它方面可采用与标签表154相比具有不同数目的表项的简短历史表150。
在此方面,图8A说明简短历史表150、标签表154和对应于级表600的级在发起过程400之前为空。举例来说,图8A可表示在启动指令处理系统100之后简短历史表150、标签表154和级(F1、F2、D1、D2、BE1)的内容。如图8B中的指令序列602中所说明,低资源微操作控制器114接收有待提取以用于执行的下一指令116的指令地址108“A”(图6A中的框402)。响应于接收到指令地址108“A”,简短历史控制器148确定接收到的指令地址108“A”是否对应于简短历史表150中存储的指令地址108(图6A中的框404)。如果接收到的指令地址108“A”并不存储在简短历史表150中,那么简短历史控制器148指示指令提取电路110提取对应于接收到的指令地址108“A”的指令116“I-A”(图6B中的框406)。参考图8B中的循环0,响应于在框406中进行提取,指令116“I-A”被提供给第一提取级F1。
除指示指令提取电路110在框406中进行提取之外,简短历史控制器148响应于在框404中生成的未命中而更新简短历史表150。为了更新简短历史表150,简短历史控制器148确定简短历史表150中的任何表项E0到E3是否为空闲的(图6B中的框408)。如图8A中所说明,简短历史表150中的每个表项E0到E3为空闲的(例如,空),原因是表项E0到E3都没有存储的指令地址108。因此,如图8B中所说明,简短历史控制器148将接收到的指令地址108“A”存储在简短历史表150的空闲表项E0中(图6B中的框410)。在此实例中,简短历史表150被配置成基于先进先出(FIFO)方案进行更新。因此,如果简短历史控制器148在框408中确定简短历史表150中没有表项E0到E3为空闲的,那么简短历史控制器148将接收到的指令地址108“A”存储在简短历史表150的最近最少使用的表项E0到E3中(图6B中的框412)。在框410或412中的任一个中存储接收到的指令地址108“A”之后,用对应于接收到的指令地址108“A”的迭代完成过程400(图6A中的框414)。
与在如上文所描述的简短历史表150中生成未命中相比,如果简短历史控制器148在框404中确定接收到的指令地址108被存储在简短历史表150中,那么简短历史控制器148将对应于存储的指令地址108的指针146提供给指令提取电路110(图6A中的框416)。在此方面中,如果简短历史控制器148提供如所描述的指针146,那么简短历史控制器148更新简短历史表150的最近最少使用的状态(图6A中的框418)。更新最近最少使用的状态确保存储在简短历史表150中的下一指令地址108在FIFO方案之后被存储在表项E0到E3中。此外,简短历史控制器148防止指令提取电路110提取接收到的指令地址108(图6A中的框420),且还防止指令解码电路126解码接收到的指令地址108(图6A中的框422)。防止分别在框420和422中的提取和解码减小了当指针146被提供给指令提取电路110时指令处理系统100的功率消耗。在防止分别在框420和422中提取和解码之后,用迭代完成过程400(图7A中的框424)。
除简短历史控制器148使用如上文所描述的过程400处理接收到的指令地址108之外,标签控制器152采用过程500来监视后解码队列132(图7A中的框502)。参考图8B,因为在对应于后解码队列132的第二解码级(D2)处未接收到数据,所以过程500不会继续经过框502。
参考图8C,在框402中,低资源微操作控制器114接收指令序列602中的下一指令116的指令地址108“B”。在框404中,简短历史控制器148确定指令地址108“B”并不存储在简短历史表150中。因此,在框406中,简短历史控制器148指示指令提取电路110提取对应于接收到的指令地址108“B”的指令116“I-B”。参考图8C中的循环1,响应于在框406中进行提取,指令116“I-B”被提供给第一提取级F1,而指令116“I-A”进行到第二提取级F2。另外,在框404中,简短历史控制器148响应于生成的未命中而更新简短历史表150。如图8C中所说明,在框408中,简短历史控制器148确定表项E1在简短历史表150中为空闲的且因此在框410中将接收到的指令地址108“B”存储在空闲表项E1中。在存储接收到的指令地址108“B”之后,在框414中用迭代完成过程400。此外,因为在对应于后解码队列132的第二解码级(D2)处未接收到数据,所以过程500不会继续经过框502。
参考图8D,在框402中,低资源微操作控制器114接收指令序列602中的下一指令116的指令地址108“C”。在框404中,简短历史控制器148确定指令地址108“C”并未被存储在简短历史表150中。因此,在框406中,简短历史控制器148指示指令提取电路110提取对应于接收到的指令地址108“C”的指令116“I-C”。参考图8D中的循环2,响应于在框406中进行提取,指令116“I-C”被提供给第一提取级F1,指令116“I-B”进行到第二提取级F2,且指令116“I-A”进行到第一解码级D1。另外,在框404中,简短历史控制器148响应于生成的未命中而更新简短历史表150。如图8D中所说明,在框408中,简短历史控制器148确定表项E2在简短历史表150中为空闲的且因此在框410中将接收到的指令地址108“C”存储在空闲表项E2中。在存储接收到的指令地址108“C”之后,在框414中用迭代完成过程400。此外,因为在对应于后解码队列132的第二解码级(D2)处未接收到数据,所以过程500不会继续经过框502。
参考图8E,在框402中,低资源微操作控制器114接收指令序列602中的下一指令116的指令地址108“A”。在框404中,简短历史控制器148确定指令地址108“A”被存储在简短历史表150中。因此,在框416中,简短历史控制器148将指针146“A*”提供给指令提取电路110。在框418中,简短历史控制器148还更新简短历史表150的最近最少使用的状态,分别在框420、422中防止提取和解码,且在框424中完成过程400。参考图8E中的循环3,响应于提供指针146“A*”,指针146“A*”被提供给第一提取级F1,指令116“I-C”进行到第二提取级F2,且指令116“I-B”进行到第一解码级D1。此外,响应于在前一循环(循环2)中的第一解码级D1处接收到指令116“I-A”,指令解码电路126解码指令116“I-A”且将对应微操作128“M-A”提供给第二解码级D2,因此将微操作128“M-A”存储在后解码队列132的表项P0中。
响应于在框502中在后解码队列132处接收到微操作128“M-A”,标签控制器152确定微操作128“M-A”是指针146还是微操作128(图7A中的框504)。响应于确定微操作128“M-A”对应于微操作128,标签控制器152确定表项ET0到ET3在标签表154中是否为空闲的(图7B中的框506)。标签表154中的每个表项ET0到ET3为空闲的。因此,标签控制器152将对应于微操作128“M-A”的标签156“0”和指令地址108“A”存储在标签表154的空闲表项ET0中(图7B中的框508)。标签156“0”对应于其中存储微操作128“M-A”的后解码队列132的表项P0。在此实例中,标签表154被配置成基于使用FIFO方案进行更新。因此,如果在框506中标签控制器152确定标签表154中没有表项ET0到ET3为空闲的,那么标签控制器152将标签156和指令地址108“A”存储在标签表154的最近最少使用的表项ET0到ET3中(图7B中的框510)。在框508或510中的任一个中存储标签156和指令地址108“A”之后,用对应于接收到的指令地址108“A”的迭代完成过程500(图7B中的框512)。
参考图8F,在框402中,低资源微操作控制器114接收指令序列602中的下一指令116的指令地址108“B”。在框404中,简短历史控制器148确定指令地址108“B”被存储在简短历史表150中。因此,在框416中,简短历史控制器148将指针146“B*”提供给指令提取电路110。在框418中,简短历史控制器148还更新简短历史表150的最近最少使用的状态,防止分别在框420、422中的提取和解码,且在框424中完成过程400。参考图8F中的循环4,响应于提供指针146“B*”,指针146“B*”被提供给第一提取级F1,指针146“A*”进行到第二提取级F2,且指令116“I-C”进行到第一解码级D1。此外,响应于在前一循环(循环3)中在第一解码级D1处接收到指令116“I-B”,指令解码电路126解码指令116“I-B”且将对应微操作128“M-B”提供给第二解码级D2,因此将微操作128“M-B”存储在后解码队列132的表项P1中。将微操作128“M-A”从后解码队列132的表项P0提供给第一后端级BE1以用于执行。
响应于在框502中在后解码队列132处接收到微操作128“M-B”,在框504中标签控制器152确定微操作128“M-B”是微操作128。在框506中,标签控制器152接着确定标签表154具有空闲表项ET1。因此,如图8F中所说明,在框508中,标签控制器152将对应于微操作128“M-B”的标签156“1”、指令地址108“B”存储在标签表154的空闲表项ET1中。标签156“1”对应于其中存储微操作128“M-B”的后解码队列132的表项P1。接着在框512中用对应于接收到的指令地址108“B”的迭代完成过程500。
参考图8G,在框402中,低资源微操作控制器114接收指令序列602中的下一指令116的指令地址108“C”。在框404中,简短历史控制器148确定指令地址108“C”被存储在简短历史表150中。因此,在框416中,简短历史控制器148将指针146“C*”提供给指令提取电路110。在框418中,简短历史控制器148还更新简短历史表150的最近最少使用的状态,防止分别在框420、422中的提取和解码,且在框424中完成过程400。参考图8G中的循环5,响应于提供指针146“C*”,指针146“C*”被提供给第一提取级F1,指针146“B*”进行到第二提取级F2,且指针146“A*”进行到第一解码级D1。此外,响应于在前一循环(循环4)中在第一解码级D1处接收到指令116“I-C”,指令解码电路126解码指令116“I-C”且将对应微操作128“M-C”提供给第二解码级D2,因此将微操作128“M-C”存储在后解码队列132的表项P2中。将微操作128“M-B”从后解码队列132的表项P1提供给第一后端级BE1以用于执行。
响应于在框502中在后解码队列132D2处接收到微操作128“M-C”,在框504中标签控制器152确定微操作128“M-C”是微操作128。在框506中,标签控制器152接着确定标签表154具有空闲表项ET2。因此,如图8G中所说明,在框508中,标签控制器152将对应于微操作128“M-C”的标签156“2”、指令地址108“C”存储在标签表154的空闲表项ET2中。标签156“2”对应于其中存储微操作128“M-C”的后解码队列132的表项P2。接着在框512中用对应于接收到的指令地址108“C”的迭代完成过程500。
参考图8H,在框402中,低资源微操作控制器114接收指令序列602中的下一指令116的指令地址108“A”。在框404中,简短历史控制器148确定指令地址108“A”被存储在简短历史表150中。因此,在框416中,简短历史控制器148将指针146“A*”提供给指令提取电路110。在框418中,简短历史控制器148还更新简短历史表150的最近最少使用的状态,防止分别在框420、422中的提取和解码,且在框424中完成过程400。参考图8H中的循环6,响应于提供指针146“A*”,指针146“A*”被提供给第一提取级F1,指针146“C*”进行到第二提取级F2,指针146“B*”进行到第一解码级D1,且指针146“A*”进行到第二解码级D2。另外,将微操作128“M-C”从后解码队列132的表项P2提供给第一后端级BE1以用于执行。
此外,响应于在框502中在后解码队列132处接收到指针146“A*”,在框504中标签控制器152确定指针146“A*”是指针146。标签控制器152接着确定指针146“A*”对应于存储在标签表154中的表项ET0到ET3中的指令地址108(图7A中的框514)。如果指针146“A*”对应于表项ET0到ET3,那么微操作128“M-A”仍被存储在后解码队列132中。因此,响应于确定指针146“A*”对应于表项ET0,标签控制器152将微操作128“M-A”从后解码队列132的表项P0提供给第一后端级BE1以用于执行(图7A中的框516),如图8I的循环7中所说明。
参考图8I,在框402中,低资源微操作控制器114接收指令序列602中的下一指令116的指令地址108“C”。在框404中,简短历史控制器148确定指令地址108“C”被存储在简短历史表150中。因此,在框416中,简短历史控制器148将指针146“C*”提供给指令提取电路110。在框418中,简短历史控制器148还更新简短历史表150的最近最少使用的状态,防止分别在框420、422中的提取和解码,且在框424中完成过程400。参考图8I中的循环7,响应于提供指针146“C*”,指针146“C*”被提供给第一提取级F1,指针146“A*”进行到第二提取级F2,指针146“C*”进行到第一解码级D1,且指针146“B*”进行到第二解码级D2。另外,如先前所指出,将微操作128“M-A”从后解码队列132的表项P0提供给第一后端级BE1以用于执行。
此外,响应于在框502中在后解码队列132处接收到指针146“B*”,在框504中标签控制器152确定指针146“B*”是指针146。在框514中,标签控制器152接着确定指针146“B*”对应于存储在标签表154中的表项E1中的指令地址108。因此,微操作128“M-B”仍存储在后解码队列132中。响应于确定指针146“B*”对应于表项ET1,在框516中,标签控制器152将微操作128“M-B”从后解码队列132的表项P1提供给第一后端级BE1以用于执行,如图8J的循环8中所说明。
参考图8J,在框402中,低资源微操作控制器114接收指令序列602中的下一指令116的指令地址108“A”。在框404中,简短历史控制器148确定指令地址108“A”被存储在简短历史表150中。因此,在框416中,简短历史控制器148将指针146“A*”提供给指令提取电路110。在框418中,简短历史控制器148还更新简短历史表150的最近最少使用的状态,防止分别在框420、422中的提取和解码,且在框424中完成过程400。参考图8J中的循环8,响应于提供指针146“A*”,指针146“A*”被提供给第一提取级F1,指针146“C*”进行到第二提取级F2,指针146“A*”进行到第一解码队列D1,且指针147“C*”进行到第二解码级D2。另外,如先前所指出,微操作128“M-B”被从后解码队列132的表项P1提供给第一后端级BE1以用于执行。
此外,响应于在框502中在后解码队列132处接收到指针146“C*”,在框504中标签控制器152确定指针146“C*”是指针146。在框514中,标签控制器152接着确定指针146“C*”对应于存储在标签表154中的表项E2中的指令地址108。因此,微操作128“M-C”仍存储在后解码队列132中。响应于确定指针146“C*”对应于表项ET2,在框516中,标签控制器152将微操作128“M-C”从后解码队列132的表项P2提供给第一后端级BE1以用于执行,如图8K的循环9中所说明。
参考图8K,在框402中,低资源微操作控制器114接收指令序列602中的下一指令116的指令地址108“C”。在框404中,简短历史控制器148确定指令地址108“C”被存储在简短历史表150中。因此,在框416中,简短历史控制器148将指针146“C*”提供给指令提取电路110。在框418中,简短历史控制器148还更新简短历史表150的最近最少使用的状态,防止分别在框420、422中的提取和解码,且在框424中完成过程400。参考图8K中的循环9,响应于提供指针146“C*”,指针146“C*”被提供给第一提取级F1,指针146“A*”进行到第二提取级F2,指针146“C*”进行到第一解码队列D1,且指针146“A*”进行到第二解码级D2。另外,如先前所指出,将微操作128“M-C”从后解码队列132的表项P2提供给第一后端级BE1以用于执行。
此外,响应于在框502中在后解码队列132处接收到指针146“A*”,在框504中标签控制器152确定指针146“A*”是指针146。在框514中,标签控制器152接着确定指针146“A*”对应于存储在标签表154中的表项E0中的指令地址108。因此,微操作128“M-A”仍存储在后解码队列132中。响应于确定指针146“A*”对应于表项ET0,在框516(未示出)中,标签控制器152将微操作128“M-A”从后解码队列132的表项P0提供给第一后端级BE1以用于执行。
与在如上文所描述的标签表154中生成命中相比,标签控制器152被配置成在标签控制器152在框514中确定指针146并不对应于标签表154中的表项ET0到ET3时进行替代步骤。在此方面中,响应于在框514中检测到未命中,标签控制器152清除对应于前端指令级112的队列(图7A中的框518)。标签控制器152还清除简短历史表150和标签表154(图7A中的框520)。此外,标签控制器152指示指令提取电路110提取对应于接收到的指令地址108的指令116(图7A中的框522)。在发起提取之后,用迭代完成过程500(图7A中的框524)。另外,响应于框514中的未命中,在其它方面中,标签控制器152可被配置成指示指令解码电路126停止操作,且指示指令提取电路110提取对应于接收到的指令地址108的指令116。
本文中所描述的元件有时被称为用于进行特定功能的装置。在此方面,简短历史控制器148在本文中有时被称为“用于将有待提取以供执行的下一指令的指令地址接收到指令处理系统中的指令流水线中的的装置”。简短历史控制器148在本文中有时还被称为“用于确定接收到的指令地址是否对应于简短历史表中存储的指令地址的装置”。此外,简短历史控制器148在本文中有时被称为“用于响应于确定接收到的指令地址对应于简短历史表中存储的指令地址而将对应于简短历史表中存储的指令地址的指针提供给指令提取电路的装置”,其中指针对应于其中存储对应于存储的指令地址的微操作的后解码队列中的表项。标签控制器在本文中有时被称为“用于监视后解码队列的装置”。另外,标签控制器152在本文中有时被称为“用于响应于后解码队列接收到指针而从后解码队列中的表项提供对应于存储的指令地址的微操作以用于执行的装置”。
根据本文中所公开的各方面提供有待由处理器执行的近期提供的指令的先前解码的指令的参考可设置在任何基于处理器的装置中或集成到任何基于处理器的装置中。实例包含但不限于机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、智能电话、平板电脑、平板手机、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器和机动车。
在此方面,图9说明可采用处理系统的基于处理器的系统700的实例,所述处理系统可包含图1中所说明的低资源微操作控制器114、简短历史表150和标签表154。在此实例中,基于处理器的系统700包含一或多个中央处理单元(CPU)702,所述一或多个中央处理单元702各自包含一或多个处理器704,所述一或多个处理器704可包含低资源微操作控制器114、简短历史表150和标签表154。CPU 702可具有耦合到处理器704以用于快速访问临时存储的数据的高速缓存存储器706。CPU 702耦合到系统总线708且可将包含在基于处理器的系统700中的主装置和从装置互相耦合。众所周知,CPU 702通过经由系统总线708交换地址、控制和数据信息而与这些其它装置通信。举例来说,CPU 702可将总线事务请求传达到作为从属装置的实例的存储器控制器710。尽管图9中未说明,但可提供多个系统总线708,其中每个系统总线708构成不同构造。
其它主控装置和从属装置可连接到系统总线708。如图9中所说明,作为实例,这些装置可包含存储器系统712、一或多个输入装置714、一或多个输出装置716、一或多个网络接口装置718和一或多个显示器控制器720。输入装置714可包含任何类型的输入装置,包含但不限于输入密钥、开关、语音处理器等。输出装置716可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示符等。网络接口装置718可以是被配置成允许数据到网络722和从网络722的交换的任何裝置。网络722可以是任何类型的网络,包含但不限于有线或无线网络、私用或公用网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、BLUETOOTHTM网络或因特网。网络接口装置718可被配置成支持所要的任何类型的通信协议。存储器系统712可包含一或多个存储器单元724(1)到724(Q)。
CPU 702还可被配置成经由系统总线708访问显示器控制器720以控制发送到一或多个显示器726的信息。显示器控制器720将信息发送到显示器726以经由一或多个视频处理器728显示,所述一或多个视频处理器728可包含低资源微操作控制器114、简短历史表150和标签表154,所述一或多个视频处理器728处理所述信息以显示成适合于显示器726的格式。显示器726可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、发光二极管(LED)显示器等。
所属领域的技术人员将进一步了解,结合本文中所公开的各方面所描述的各种说明性逻辑块、模块、电路和算法可被实施为电子硬件、存储在存储器或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或这两者的组合。作为实例,本文中所描述的主控装置和受控装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文中所公开的存储器可以是任何类型和大小的存储器,且可被配置成存储所要的任何类型的信息。为清楚说明此可互换性,上文已大体上关于其功能性描述了各种说明性组件、块、模块、电路和步骤。如何实施此功能性取决于特定应用、设计选项和/或强加于整个系统的设计约束。所属领域的技术人员可针对每个特定应用以不同方式来实施所描述的功能性,但此类实施决策不应被解释为会引起脱离本公开的范围。
结合本文中所公开的各方面所描述的各种说明性逻辑块、模块和电路可用以下各项来实施或进行:处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其被设计成进行本文中所描述的功能的任何组合。处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置)。
本文中所公开的各方面可以硬件和存储在硬件中的指令来体现,且可驻留在例如随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可装卸式磁盘、CD-ROM或所属领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息且将信息写入所述存储媒体。在替代方案中,存储媒体可与处理器成一体。处理器和存储媒体可驻留在ASIC中。ASIC可驻留在远程站中。在替代方案中,处理器和存储媒体可作为离散组件驻留在远端台、基站或服务器中。
还应注意,描述本文中的示范性方面中的任一个中所描述的操作步骤是为了提供实例和论述。可用除了所说明的序列之外的大量不同序列进行所描述的操作。此外,在单个操作步骤中描述的操作实际上可在数个不同步骤中进行。另外,可组合在示范性方面中所论述的一或多个操作步骤。应理解,如所属领域的技术人员将易于显而易见,流程图中所说明的操作步骤可经受大量不同修改。所属领域的技术人员还将理解,可使用多种不同技术和技法中的任一个来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和芯片。
提供本公开的先前描述以使得所属领域的技术人员能够制造或使用本公开。所属领域的技术人员将易于显而易见对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的精神或范围。因此,本公开并不希望限于本文中所描述的实例和设计,而应被赋予与本文中所公开的原理和新颖特征相一致的最广范围。
Claims (30)
1.一种低资源微操作控制器,包括:
简短历史控制器,其被配置成:
将有待提取以供执行的下一指令的指令地址接收到指令处理系统中的指令流水线中;
确定所述接收到的指令地址是否对应于简短历史表中存储的指令地址;和
响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,将对应于所述简短历史表中所述存储的指令地址的指针提供给指令提取电路,其中所述指针对应于其中存储对应于所述存储的指令地址的微操作的后解码队列中的表项;和
标签控制器,其被配置成:
监视所述后解码队列;和
响应于所述后解码队列接收到所述指针,从所述后解码队列中的所述表项提供对应于所述存储的指令地址的所述微操作以用于执行。
2.根据权利要求1所述的低资源微操作控制器,其中所述简短历史控制器被进一步配置成:响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,更新所述简短历史表的最近最少使用的状态。
3.根据权利要求1所述的低资源微操作控制器,其中所述简短历史控制器被进一步配置成:
响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,防止所述指令提取电路提取对应于所述接收到的指令地址的指令;和
响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,防止指令解码电路解码对应于所述接收到的指令地址的指令。
4.根据权利要求1所述的低资源微操作控制器,其中所述简短历史控制器被进一步配置成:响应于确定所述接收到的指令地址并不对应于所述简短历史表中存储的指令地址,指示所述指令提取电路提取对应于所述接收到的指令地址的指令。
5.根据权利要求4所述的低资源微操作控制器,其中所述简短历史控制器被进一步配置成:响应于确定所述接收到的指令地址并不对应于所述简短历史表中存储的指令地址,将所述接收到的指令地址存储在所述简短历史表中。
6.根据权利要求5所述的低资源微操作控制器,其中所述简短历史控制器被配置成通过被配置成进行以下各项而将所述接收到的指令地址存储在所述简短历史表中:
确定所述简短历史表中的表项是否为空闲的;
响应于确定所述简短历史表中的表项为空闲的,将所述接收到的指令地址存储在所述空闲表项中;和
响应于确定所述简短历史表中的表项不为空闲的,将所述接收到的指令地址存储在所述简短历史表的最近最少使用的表项中。
7.根据权利要求1所述的低资源微操作控制器,其中所述标签控制器被配置成通过被配置成进行以下各项而从所述后解码队列中的所述表项提供对应于所述存储的指令地址的所述微操作以用于执行:
响应于所述后解码队列接收到指针,确定所述指针是否对应于存储在标签表中的表项;和
响应于确定所述指针对应于存储在所述标签表中的表项,从所述后解码队列中的表项提供对应于所述标签表中的所述表项的标签的所述微操作。
8.根据权利要求7所述的低资源微操作控制器,其中所述标签控制器被进一步配置成:响应于确定所述指针并不对应于所述标签表中的表项:
清除对应于所述指令流水线的前端指令级的队列;
清除所述简短历史表;
清除所述标签表;和
指示所述指令提取电路提取对应于所述接收到的指令地址的指令。
9.根据权利要求7所述的低资源微操作控制器,其中所述标签控制器被进一步配置成:响应于所述后解码队列接收到所述微操作:
确定所述标签表中的表项是否为空闲;
响应于确定所述标签表中的表项为空闲的,将对应于所述微操作的标签和所述指令地址存储在所述标签表的所述空闲表项中;和
响应于确定所述标签表中的表项不为空闲的,将对应于所述微操作的所述标签和所述指令地址存储在所述标签表的最近最少使用的表项中。
10.根据权利要求7所述的低资源微操作控制器,其中所述标签控制器被进一步配置成:响应于确定所述指针并不对应于存储在所述标签表中的表项:
指示指令解码电路停止操作;和
指示所述指令提取电路提取对应于所述接收到的指令地址的指令。
11.根据权利要求1所述的低资源微操作控制器,其中所述指针包括:
所述接收到的指令地址;和
指示指针结构的指针指示器。
12.根据权利要求1所述的低资源微操作控制器,其中所述指针包括:
偏移值,其指示所述接收到的指令地址与所述接收到的指令地址的最近的前一例子之间的并不对应于由所述低资源微操作控制器接收的所述接收到的指令地址的指令地址的数目;和
指示指针结构的指针指示器。
13.根据权利要求1所述的低资源微操作控制器,其集成到集成电路IC中。
14.根据权利要求1所述的低资源微操作控制器,其集成到选自由以下各项组成的群组的装置中:机顶盒;娱乐单元;导航装置;通信装置;固定位置数据单元;移动位置数据单元;移动电话;蜂窝式电话;智能电话;平板计算机;平板手机;计算机;
便携式计算机;桌上型计算机;个人数字助理PDA;监视器;计算机监视器;电视机;调谐器;无线电;卫星无线电;音乐播放器;数字音乐播放器;便携式音乐播放器;数字视频播放器;视频播放器;数字视频光盘DVD播放器;便携式数字视频播放器;和机动车。
15.一种低资源微操作控制器,包括:
用于将有待提取以供执行的下一指令的指令地址接收到指令处理系统中的指令流水线中的装置;
用于确定所述接收到的指令地址是否对应于简短历史表中存储的指令地址的装置;
用于响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,将对应于所述简短历史表中所述存储的指令地址的指针提供给指令提取电路的装置,其中所述指针对应于其中存储对应于所述存储的指令地址的微操作的后解码队列中的表项;
用于监视所述后解码队列的装置;和
用于响应于所述后解码队列接收到所述指针,从所述后解码队列中的所述表项提供对应于所述存储的指令地址的所述微操作以用于执行的装置。
16.一种用于将指针提供给有待由处理器执行的近期提供的指令的先前解码的指令的方法,包括:
将有待提取以供执行的下一指令的指令地址接收到指令处理系统中的指令流水线中;
确定所述接收到的指令地址是否对应于简短历史表中存储的指令地址;
响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,将对应于所述简短历史表中所述存储的指令地址的指针提供给指令提取电路,其中所述指针对应于其中存储对应于所述存储的指令地址的微操作的后解码队列中的表项;
监视所述后解码队列;和
响应于所述后解码队列接收到所述指针,从所述后解码队列中的所述表项提供对应于所述存储的指令地址的所述微操作以用于执行。
17.根据权利要求16所述的方法,进一步包括:响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,更新所述简短历史表的最近最少使用的状态。
18.根据权利要求16所述的方法,进一步包括:
响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,防止所述指令提取电路提取对应于所述接收到的指令地址的指令;和
响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,防止指令解码电路解码对应于所述接收到的指令地址的指令。
19.根据权利要求16所述的方法,进一步包括:响应于确定所述接收到的指令地址并不对应于所述简短历史表中存储的指令地址,指示所述指令提取电路提取对应于所述接收到的指令地址的指令。
20.根据权利要求19所述的方法,进一步包括:响应于确定所述接收到的指令地址并不对应于所述简短历史表中存储的指令地址,将所述接收到的指令地址存储在所述简短历史表中。
21.根据权利要求20所述的方法,其中将所述接收到的指令地址存储在所述简短历史表中包括:
确定所述简短历史表中的表项是否为空闲的;
响应于确定所述简短历史表中的表项为空闲的,将所述接收到的指令地址存储在所述空闲表项中;和
响应于确定所述简短历史表中的表项不为空闲的,将所述接收到的指令地址存储在所述简短历史表的最近最少使用的表项中。
22.根据权利要求16所述的方法,其中从所述后解码队列中的所述表项提供对应于所述存储的指令地址的所述微操作以用于执行包括:
响应于所述后解码队列接收到指针,确定所述指针是否对应于存储在标签表中的表项;和
响应于确定所述指针对应于存储在所述标签表中的表项,从所述后解码队列中的表项提供对应于所述标签表中的所述表项的标签的所述微操作。
23.根据权利要求22所述的方法,进一步包括:响应于确定所述指针并不对应于存储在所述标签表中的表项:
清除对应于所述指令流水线的前端指令级的队列;
清除所述简短历史表;
清除所述标签表;和
指示所述指令提取电路提取对应于所述接收到的指令地址的指令。
24.根据权利要求23所述的方法,进一步包括:响应于所述后解码队列接收到所述微操作:
确定所述标签表中的表项是否为空闲的;
响应于确定所述标签表中的表项为空闲的,将对应于所述微操作的标签和所述指令地址存储在所述标签表的所述空闲表项中;和
响应于确定所述标签表中的表项不为空闲的,将对应于所述微操作的所述标签和所述指令地址存储在所述标签表的最近最少使用的表项中。
25.根据权利要求22所述的方法,进一步包括:响应于确定所述指针并不对应于存储在所述标签表中的表项:
指示指令解码电路停止操作;和
指示所述指令提取电路提取对应于所述接收到的指令地址的指令。
26.一种用于处理器的指令处理系统,包括:
一或多个指令流水线,各自包括:指令提取电路,其被配置成将指令提取到提取队列中;指令解码电路,其被配置成解码由所述指令提取电路提取的指令;和执行电路,其被配置成执行呈后解码队列的所述解码指令的微操作;和
低资源微操作控制器,包括:
简短历史控制器,其被配置成:
将有待提取以供执行的下一指令的指令地址接收到所述一或多个指令流水线中的一个中;
确定所述接收到的指令地址是否对应于简短历史表中存储的指令地址;和
响应于确定所述接收到的指令地址对应于所述简短历史表中存储的指令地址,将对应于所述简短历史表中所述存储的指令地址的指针提供给所述指令提取电路,其中所述指针对应于其中存储对应于所述存储的指令地址的所述微操作的所述后解码队列中的表项;和
标签控制器,其被配置成:
监视所述后解码队列;和
响应于所述后解码队列接收到所述指针,从所述后解码队列中的所述表项提供对应于所述存储的指令地址的所述微操作以用于执行。
27.根据权利要求26所述的指令处理系统,其中所述简短历史控制器被进一步配置成:响应于确定所述接收到的指令地址并不对应于所述简短历史表中存储的指令地址,指示所述指令提取电路提取对应于所述接收到的指令地址的指令。
28.根据权利要求26所述的指令处理系统,其中所述标签控制器被配置成通过被配置成进行以下各项而从所述后解码队列中的所述表项提供对应于所述存储的指令地址的所述微操作以用于执行:
响应于所述后解码队列接收到指针,确定所述指针是否对应于存储在标签表中的表项;和
响应于确定所述指针对应于存储在所述标签表中的表项,从所述后解码队列中的表项提供对应于所述标签表中的所述表项的标签的所述微操作。
29.根据权利要求28所述的指令处理系统,其中所述标签控制器被进一步配置成:响应于确定所述指针并不对应于存储在所述标签表中的表项:
清除对应于所述一或多个指令流水线的前端指令级的队列;
清除所述简短历史表;
清除所述标签表;和
指示所述指令提取电路提取对应于所述接收到的指令地址的指令。
30.根据权利要求28所述的指令处理系统,其中所述标签控制器被进一步配置成:响应于所述后解码队列接收到所述微操作:
确定所述标签表中的表项是否为空闲的;
响应于确定所述标签表中的表项为空闲的,将对应于所述微操作的标签和所述指令地址存储在所述标签表的所述空闲表项中;和
响应于确定所述标签表中的表项不为空闲的,将对应于所述微操作的所述标签和所述指令地址存储在所述标签表的最近最少使用的表项中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/079,875 US10223118B2 (en) | 2016-03-24 | 2016-03-24 | Providing references to previously decoded instructions of recently-provided instructions to be executed by a processor |
US15/079,875 | 2016-03-24 | ||
PCT/US2017/020605 WO2017165102A1 (en) | 2016-03-24 | 2017-03-03 | Providing references to previously decoded instructions of recently-provided instructions to be executed by a processor |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108780399A true CN108780399A (zh) | 2018-11-09 |
Family
ID=58347981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780016972.1A Pending CN108780399A (zh) | 2016-03-24 | 2017-03-03 | 提供有待由处理器执行的近期提供的指令的先前解码的指令的参考 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10223118B2 (zh) |
EP (1) | EP3433728B1 (zh) |
CN (1) | CN108780399A (zh) |
WO (1) | WO2017165102A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
US10884751B2 (en) * | 2018-07-13 | 2021-01-05 | Advanced Micro Devices, Inc. | Method and apparatus for virtualizing the micro-op cache |
US11520590B2 (en) * | 2020-09-02 | 2022-12-06 | Microsoft Technology Licensing, Llc | Detecting a repetitive pattern in an instruction pipeline of a processor to reduce repeated fetching |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5944818A (en) * | 1996-06-28 | 1999-08-31 | Intel Corporation | Method and apparatus for accelerated instruction restart in a microprocessor |
CN1831757A (zh) * | 2004-12-28 | 2006-09-13 | 英特尔公司 | 中央处理单元中的提前执行 |
CN101201734A (zh) * | 2006-12-13 | 2008-06-18 | 国际商业机器公司 | 预解码用于执行的指令的方法及装置 |
US20090113191A1 (en) * | 2007-10-25 | 2009-04-30 | Ronald Hall | Apparatus and Method for Improving Efficiency of Short Loop Instruction Fetch |
CN101493762A (zh) * | 2008-01-23 | 2009-07-29 | Arm有限公司 | 多指令集的指令预解码 |
CN101872295A (zh) * | 2010-05-28 | 2010-10-27 | 浙江大学 | 基于解码缓冲器的循环指令处理装置 |
US20140208085A1 (en) * | 2012-03-30 | 2014-07-24 | Jaewoong Chung | Instruction and logic to efficiently monitor loop trip count |
CN104603747A (zh) * | 2012-09-12 | 2015-05-06 | 高通股份有限公司 | 响应于分支预测表调换指令而调换分支方向历史及相关的系统和方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3466613A (en) * | 1967-01-13 | 1969-09-09 | Ibm | Instruction buffering system |
US6898699B2 (en) | 2001-12-21 | 2005-05-24 | Intel Corporation | Return address stack including speculative return address buffer with back pointers |
US20050223364A1 (en) | 2004-03-30 | 2005-10-06 | Peri Ramesh V | Method and apparatus to compact trace in a trace buffer |
EP1701249A1 (en) * | 2005-03-11 | 2006-09-13 | Interuniversitair Microelektronica Centrum Vzw | Ultra low power ASIP (Application-Domain specific Instruction-set Processor) microcomputer |
US7587671B2 (en) * | 2005-05-17 | 2009-09-08 | Palm, Inc. | Image repositioning, storage and retrieval |
US7873820B2 (en) | 2005-11-15 | 2011-01-18 | Mips Technologies, Inc. | Processor utilizing a loop buffer to reduce power consumption |
US8782374B2 (en) * | 2008-12-02 | 2014-07-15 | Intel Corporation | Method and apparatus for inclusion of TLB entries in a micro-op cache of a processor |
US9946545B2 (en) | 2010-11-16 | 2018-04-17 | Arm Limited | Buffer store with a main store and and auxiliary store |
JP5573883B2 (ja) * | 2011-04-26 | 2014-08-20 | 住友化学株式会社 | ゴム組成物 |
US9557999B2 (en) | 2012-06-15 | 2017-01-31 | Apple Inc. | Loop buffer learning |
US9710276B2 (en) | 2012-11-09 | 2017-07-18 | Advanced Micro Devices, Inc. | Execution of instruction loops using an instruction buffer |
US9354875B2 (en) | 2012-12-27 | 2016-05-31 | Intel Corporation | Enhanced loop streaming detector to drive logic optimization |
US9459871B2 (en) | 2012-12-31 | 2016-10-04 | Intel Corporation | System of improved loop detection and execution |
US9367317B2 (en) | 2013-07-03 | 2016-06-14 | Intel Corporation | Loop streaming detector for standard and complex instruction types |
US9632791B2 (en) | 2014-01-21 | 2017-04-25 | Apple Inc. | Cache for patterns of instructions with multiple forward control transfers |
EP3650262A1 (en) * | 2014-04-04 | 2020-05-13 | Superpedestrian, Inc. | Systems, methods, and devices for the operation of electrically motorized vehicles |
CN105511838B (zh) * | 2014-09-29 | 2018-06-29 | 上海兆芯集成电路有限公司 | 处理器及其执行方法 |
-
2016
- 2016-03-24 US US15/079,875 patent/US10223118B2/en active Active
-
2017
- 2017-03-03 WO PCT/US2017/020605 patent/WO2017165102A1/en active Application Filing
- 2017-03-03 CN CN201780016972.1A patent/CN108780399A/zh active Pending
- 2017-03-03 EP EP17711492.3A patent/EP3433728B1/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5944818A (en) * | 1996-06-28 | 1999-08-31 | Intel Corporation | Method and apparatus for accelerated instruction restart in a microprocessor |
CN1831757A (zh) * | 2004-12-28 | 2006-09-13 | 英特尔公司 | 中央处理单元中的提前执行 |
CN101201734A (zh) * | 2006-12-13 | 2008-06-18 | 国际商业机器公司 | 预解码用于执行的指令的方法及装置 |
US20090113191A1 (en) * | 2007-10-25 | 2009-04-30 | Ronald Hall | Apparatus and Method for Improving Efficiency of Short Loop Instruction Fetch |
CN101493762A (zh) * | 2008-01-23 | 2009-07-29 | Arm有限公司 | 多指令集的指令预解码 |
CN101872295A (zh) * | 2010-05-28 | 2010-10-27 | 浙江大学 | 基于解码缓冲器的循环指令处理装置 |
US20140208085A1 (en) * | 2012-03-30 | 2014-07-24 | Jaewoong Chung | Instruction and logic to efficiently monitor loop trip count |
CN104603747A (zh) * | 2012-09-12 | 2015-05-06 | 高通股份有限公司 | 响应于分支预测表调换指令而调换分支方向历史及相关的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3433728B1 (en) | 2020-01-01 |
US10223118B2 (en) | 2019-03-05 |
WO2017165102A1 (en) | 2017-09-28 |
US20170277536A1 (en) | 2017-09-28 |
EP3433728A1 (en) | 2019-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108780399A (zh) | 提供有待由处理器执行的近期提供的指令的先前解码的指令的参考 | |
TWI494852B (zh) | 維持與處理器內之屏障相關之指令的次序之方法及處理器 | |
US7873820B2 (en) | Processor utilizing a loop buffer to reduce power consumption | |
CN104756090B (zh) | 提供扩展的缓存替换状态信息 | |
WO2017030692A1 (en) | Storing narrow produced values for instruction operands directly in a register map in an out-of-order processor | |
US9830152B2 (en) | Selective storing of previously decoded instructions of frequently-called instruction sequences in an instruction sequence buffer to be executed by a processor | |
US20180081691A1 (en) | REPLAYING SPECULATIVELY DISPATCHED LOAD-DEPENDENT INSTRUCTIONS IN RESPONSE TO A CACHE MISS FOR A PRODUCING LOAD INSTRUCTION IN AN OUT-OF-ORDER PROCESSOR (OoP) | |
CN108351786A (zh) | 在指令集架构中对数据进行排序并且合并经排序数据 | |
CN108351811A (zh) | 调度高度并行的应用 | |
CN104603747B (zh) | 响应于分支预测表调换指令而调换分支方向历史及相关的系统和方法 | |
CN109791493A (zh) | 用于乱序集群化解码中的负载平衡的系统和方法 | |
CN107925420A (zh) | 用于经优化压缩比的异构压缩架构 | |
CN108369517A (zh) | 聚合分散指令 | |
WO2021045811A1 (en) | Swapping and restoring context-specific branch predictor states on context switches in a processor | |
US11074080B2 (en) | Apparatus and branch prediction circuitry having first and second branch prediction schemes, and method | |
US20160019061A1 (en) | MANAGING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA | |
US11392537B2 (en) | Reach-based explicit dataflow processors, and related computer-readable media and methods | |
US20160170770A1 (en) | Providing early instruction execution in an out-of-order (ooo) processor, and related apparatuses, methods, and computer-readable media | |
WO2016014239A1 (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 | |
US10635446B2 (en) | Reconfiguring execution pipelines of out-of-order (OOO) computer processors based on phase training and prediction | |
CN106104466A (zh) | 在超越控制分支预测器中的推测历史转递以及相关电路、方法和计算机可读媒体 | |
WO2019045940A1 (en) | INSERTING INSTRUCTION BLOCK HEADER DATA CACHING IN SYSTEMS BASED ON BLOCK ARCHITECTURE PROCESSOR | |
US20210318905A1 (en) | Operand pool instruction reservation clustering in a scheduler circuit in a processor | |
CN108628639A (zh) | 处理器和指令调度方法 | |
US20210216327A1 (en) | Reach matrix scheduler circuit for scheduling of instructions to be executed in a processor |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181109 |
|
WD01 | Invention patent application deemed withdrawn after publication |