CN106605207A - 使用文字加载预测表预测文字加载值,以及相关电路、方法和计算机可读媒体 - Google Patents
使用文字加载预测表预测文字加载值,以及相关电路、方法和计算机可读媒体 Download PDFInfo
- Publication number
- CN106605207A CN106605207A CN201580047406.8A CN201580047406A CN106605207A CN 106605207 A CN106605207 A CN 106605207A CN 201580047406 A CN201580047406 A CN 201580047406A CN 106605207 A CN106605207 A CN 106605207A
- Authority
- CN
- China
- Prior art keywords
- word
- instruction
- list item
- loaded value
- loading
- 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 36
- 230000001419 dependent effect Effects 0.000 claims abstract description 57
- 238000011084 recovery Methods 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 36
- 238000003860 storage Methods 0.000 claims description 18
- 230000005611 electricity Effects 0.000 claims description 3
- 230000001413 cellular effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 16
- 230000006854 communication Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000007689 inspection Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000011017 operating method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000011324 bead Substances 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000006249 magnetic 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
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)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明揭示使用文字加载预测表预测文字加载值,以及相关电路、方法和计算机可读媒体。在一个方面中,一种指令处理电路提供含有一或多个表项的文字加载预测表,每一表项包括地址和文字加载值。在检测到指令流中的文字加载指令之后,所述指令处理电路即刻确定所述文字加载预测表是否含有具有所述文字加载指令的地址的表项。如果含有,则所述指令处理电路将存储在所述表项中的预测文字加载值提供给至少一个相依指令。所述指令处理电路随后确定所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值。如果存在失配,则所述指令处理电路启动误预测恢复。所述至少一个相依指令通过使用所述实际文字加载值予以重新执行。
Description
优先权申请
本申请案主张颁予2014年9月12日申请的标题为“使用文字加载预测表预测文字加载值,以及相关电路、方法和计算机可读媒体(PREDICTING LITERAL LOAD VALUES USINGA LITERAL LOAD PREDICTION TABLE,AND RELATED CIRCUITS,METHODS,AND COMPUTER-READABLE MEDIA)”的美国专利申请案第14/484,659号的优先权,所述申请案的内容以全文引用的方式并入本文中。
技术领域
本发明的技术大体上涉及由计算机处理器提供的文字加载指令。
背景技术
由现代计算机处理器执行的计算机程序可频繁使用文字值。如本文所使用,“文字值”是在计算机程序的源代码中表达为自身(例如,数字25或字串“Hello World”)的值。文字值可向计算机程序提供便利的方式来表示和利用在所述计算机程序执行期间并不改变或仅罕见地改变的值。在计算机程序执行期间将被存取的多个文字值可一起作为称作“常数存储库”的数据块存储在存储器中。
加载指令可由计算机程序用来存取位于指定地址处的文字值(即,“文字加载值”),并将所述文字加载值放置在寄存器中以供在处理管线中后随所述加载指令的一或多个后续指令使用。此类加载指令在本文中称为“文字加载指令”,而利用所述文字加载值作为输入的后续指令称为“相依指令”。在一些计算机架构中,文字加载指令可将所述文字加载值在常数存储库中的位置指定为与所述文字加载指令自身的地址有关的地址。举例来说,以下指令说明可由ARM架构使用的文字加载指令和后续相依指令:
LDR R0,[PC,#0x40];检索存储在程序计数器(PC)+0x40+8处的文字加载值到寄存器R0中
ADD R1,R0,R0;通过将寄存器R0中的所述值增加到自身并将结果存储在寄存器R1中来使用所述文字加载值。
然而,归因于许多常规处理器中固有的数据高速缓冲存储器时延,加载指令可能在加载文字加载值到寄存器中时引发“加载:使用损失(load:use penalty)”。“加载:使用损失”是指在调度加载指令与调度后续相依指令之间归因于数据高速缓冲存储器时延而可能发生的最小处理器周期数。举例来说,在上文的示例性代码中,ADD指令直到由LDR指令引发的“加载:使用损失”发生后才能够调度。因为相依指令直到加载指令返回数据后才能调度,所以“加载:使用损失”可能产生发生在处理管线内的未充分利用的处理器周期“泡”。
发明内容
在详细描述中所揭示的方面包含使用文字加载预测表来预测文字加载值。还揭示相关电路、方法和计算机可读媒体。在这点上,在一个方面,一种指令处理电路提供文字加载预测表,所述文字加载预测表用于产生对文字加载值的预测以及用于检测文字加载值误预测。所述文字加载预测表含有一或多个表项,每一表项包括地址和预测文字加载值。在检测到指令流中的文字加载指令之后,所述指令处理电路即刻确定所述文字加载预测表是否含有具有对应于所述文字加载指令的地址的表项。如果含有,则所述指令处理电路将存储在所述表项中的所述预测文字加载值提供给至少一个相依指令。当所述文字加载指令实际上执行时,所述指令处理电路确定先前提供给所述至少一个相依指令的所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值。如果所述预测文字加载值和所述实际文字加载值并不匹配,则所述指令处理电路启动误预测恢复。在一些方面,所述误预测恢复可包含利用实际文字加载值来更新所述表项、从所述文字加载预测表清空所述表项和/或在所述表项中设置不预测指示符。可接着使用所述实际文字加载值重新执行所述至少一个相依指令。以这种方式,所述指令处理电路可使相依指令能够存取文字加载值而不引发“加载:使用损失”,因此提供改善的处理器利用。
在另一方面,提供一种指令处理电路。所述指令处理电路经配置以在指令流中检测文字加载指令的第一发生。所述指令处理电路进一步经配置以确定所述文字加载指令的地址是否存在于文字加载预测表的表项中。所述指令处理电路还经配置以响应于确定所述文字加载指令的地址存在于所述表项中而提供存储在所述表项中的预测文字加载值以供与所述文字加载指令有关的至少一个相依指令的执行。所述指令处理电路另外经配置以进一步响应于确定所述文字加载指令的地址存在于所述表项中而在执行所述文字加载指令之后即刻确定所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值。所述指令处理电路进一步经配置以响应于确定所述预测文字加载值不匹配所述实际文字加载值而启动误预测恢复,并且使用所述实际文字加载值重新执行所述至少一个相依指令。
在另一方面,提供一种指令处理电路。所述指令处理电路包括用于在指令流中检测文字加载指令的第一发生的装置。所述指令处理电路进一步包括用于确定所述文字加载指令的地址是否存在于文字加载预测表的表项中的装置。所述指令处理电路还包括用于响应于确定所述文字加载指令的地址存在于所述表项中而提供存储在所述表项中的预测文字加载值以供与所述文字加载指令有关的至少一个相依指令的执行的装置。所述指令处理电路另外包括用于进一步响应于确定所述文字加载指令的地址存在于所述表项中而在执行所述文字加载指令之后即刻确定所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值的装置。所述指令处理电路进一步包括用于响应于确定所述预测文字加载值不匹配所述实际文字加载值而启动误预测恢复的装置。所述指令处理电路还包括用于进一步响应于确定所述预测文字加载值不匹配所述实际文字加载值而使用所述实际文字加载值重新执行所述至少一个相依指令的装置。
在另一方面,提供一种用于预测文字加载值的方法。所述方法包括在指令流中检测文字加载指令的第一发生。所述方法进一步包括确定所述文字加载指令的地址是否存在于文字加载预测表的表项中。所述方法还包括响应于确定所述文字加载指令的地址存在于所述表项中而提供存储在所述表项中的预测文字加载值以供与所述文字加载指令有关的至少一个相依指令的执行。所述方法另外包括进一步响应于确定所述文字加载指令的地址存在于所述表项中而在执行所述文字加载指令之后即刻确定所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值。所述方法进一步包括响应于确定所述预测文字加载值不匹配所述实际文字加载值而启动误预测恢复,并且使用所述实际文字加载值重新执行所述至少一个相依指令。
在另一方面,提供一种非暂时性计算机可读媒体,其具有存储其上、使处理器在指令流中检测文字加载指令的第一发生的计算机可执行指令。存储其上的所述计算机可执行指令进一步使处理器确定所述文字加载指令的地址是否存在于文字加载预测表的表项中。存储其上的所述计算机可执行指令还使处理器响应于确定所述文字加载指令的地址存在于所述表项中而提供存储在所述表项中的预测文字加载值以供与所述文字加载指令有关的至少一个相依指令的执行。存储其上的所述计算机可执行指令另外使处理器进一步响应于确定所述文字加载指令的地址存在于所述表项中而在执行所述文字加载指令之后即刻确定所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值。存储其上的所述计算机可执行指令进一步使处理器响应于确定所述预测文字加载值不匹配所述实际文字加载值而启动误预测恢复,并且使用所述实际文字加载值重新执行所述至少一个相依指令。
附图说明
图1是包含指令处理电路的示例性计算机处理器的框图,所述指令处理电路用于使用文字加载预测表预测文字加载值以及检测文字加载值误预测;
图2A到2C说明建立图1的文字加载预测表的表项、将表项的预测文字加载值提供给相依指令、并且处置图1的指令处理电路的文字加载值误预测的示例性通信流程;
图3是说明用于使用图1的指令处理电路的文字加载预测表预测文字加载值和检测误预测的示例性操作的流程图;
图4说明用于在图1的指令处理电路的一些方面中启动误预测恢复的示例性操作的图表;
图5是说明用于在图1的指令处理电路的一些方面中使用文字加载预测表的不预测指示符的操作的流程图;以及
图6是可包含图1的指令处理电路的示例性基于处理器的系统的框图。
具体实施方式
现参考各图,描述本发明的若干示例性方面。词语“示例性”在本文中用以意指“充当实例、例子或说明”。本文中描述为“示例性”的任何方面不必解释为比其它方面优选或有利。
在详细描述中所揭示的方面包含使用文字加载预测表来预测文字加载值。还揭示相关电路、方法和计算机可读媒体。在这点上,在一个方面,一种指令处理电路提供文字加载预测表,所述文字加载预测表用于产生对文字加载值的预测以及用于检测文字加载值误预测。所述文字加载预测表含有一或多个表项,每一表项包括地址和预测文字加载值。在检测到指令流中的文字加载指令之后,所述指令处理电路即刻确定所述文字加载预测表是否含有具有对应于所述文字加载指令的地址的表项。如果含有,则所述指令处理电路将存储在所述表项中的所述预测文字加载值提供给至少一个相依指令。当所述文字加载指令实际上执行时,所述指令处理电路确定先前提供给所述至少一个相依指令的所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值。如果所述预测文字加载值和所述实际文字加载值并不匹配,则所述指令处理电路启动误预测恢复。在一些方面,所述误预测恢复可包含利用实际文字加载值来更新所述表项、从所述文字加载预测表清空所述表项和/或在所述表项中设置不预测指示符。可接着使用所述实际文字加载值重新执行所述至少一个相依指令。以这种方式,所述指令处理电路可使相依指令能够存取文字加载值而不引发“加载:使用损失”,因此提供改善的处理器利用。
在这点上,图1是示例性计算机处理器100的框图。计算机处理器100包含指令处理电路102,所述指令处理电路提供文字加载预测表104以供预测文字加载值并且检测文字加载值误预测,如本文所揭示。计算机处理器100可涵盖已知数字逻辑元件、半导体电路、处理核心和/或存储器结构以及其它元件中的任一者,或其组合。本文中所描述的各方面并不限于任何特定元件布置,且所揭示的技术可容易地扩展到半导体裸片或封装上的各种结构和布局。
计算机处理器100包含输入/输出电路106、指令高速缓冲存储器108和数据高速缓冲存储器110。计算机处理器100进一步包括执行管线112,所述执行管线包含前端电路114、执行单元116和完成单元118。计算机处理器100另外包含寄存器120,所述寄存器包括一或多个通用寄存器(GPR)122、程序计数器124和链接寄存器126。在(例如)使用ARM7TM架构的一些方面中,链接寄存器126是GPR 122中的一个,如图1中所展示。替代地,例如利用架构的一些方面可提供以下情形:链接寄存器126与GPR 122分开(未展示)。
在示例性操作中,执行管线112的前端电路114从指令高速缓冲存储器108提取指令(未展示);在一些方面中,所述指令高速缓冲存储器可以是片上1级(L1)高速缓冲存储器(作为非限制性实例)。所提取的指令由前端电路114解码并发布到执行单元116。执行单元116执行所发布的指令,且完成单元118收回已执行的指令。在一些方面中,完成单元118可包括将执行结果存储在寄存器120中的一或多者中的写回机制(未展示)。应理解,执行单元116和/或完成单元118可各自包括一或多个依序管线级。在图1的实例中,前端电路114包括能使多个指令同时被提取和解码的一或多个提取/解码管线级128。用于保存等待分派到执行单元116的所提取指令的指令队列130以通信方式耦合到提取/解码管线级128中的一或多者。
图1的计算机处理器100进一步提供以通信方式耦合到执行管线112的一或多个元件的常数高速缓冲存储器132。常数高速缓冲存储器132提供快速存取机制,通过所述快速存取机制,先前存储在寄存器120中的一者中的值可提供给将所述值用作输入操作数的指令。常数高速缓冲存储器132可因此通过比寄存器120更快速提供对存储的值的存取而提高计算机处理器100的性能。
虽然在执行管线112中处理指令,但指令处理电路102可提取和执行文字加载指令(未展示)以供将文字加载值加载寄存器120中的一者中。处理文字加载指令因此可包含从数据高速缓冲存储器110检索文字加载值。然而,在这样做时,所述文字加载指令可能引发由存取数据高速缓冲存储器110的固有时延导致的“加载:使用损失”。举例来说,在一些计算机架构中,存取数据高速缓冲存储器110可能需要两个到三个处理器周期来完成。因此,指令处理电路102可能直到由所述文字加载指令引发的“加载:使用损失”发生后才能够分派后续相依指令(未展示)。这可能导致执行管线112内的计算机处理器100未充分利用。
在这点上,图1的指令处理电路102提供文字加载预测表104以供通过预测文字加载指令的文字加载值而最小化“加载:使用损失”、将所预测的文字加载值提供给相依指令并且检测文字加载值误预测。指令处理电路102经配置以检测在执行管线112内处理的指令流(未展示)中的文字加载指令(未展示)。在一些方面,指令处理电路102可经配置以基于计算机处理器100所使用的惯用形式的加载指令来检测文字加载指令。作为非限制性实例,在利用ARM架构的计算机处理器中,文字加载指令可通过确定所述文字加载指令使用程序计数器相关的寻址模式(其中程序计数器偏置通过常数指定)而予以检测。
随着所述文字加载指令被指令处理电路102的前端电路114提取到,指令处理电路102查看文字加载预测表104。文字加载预测表104含有一或多个表项(未展示)。每一表项可包含先前检测到的文字加载指令的地址以及先前由所述文字加载指令加载的对应于所述地址的预测文字加载值。
指令处理电路102确定被提取的所述文字加载指令的地址是否存在于文字加载预测表104的表项中。如果找到所述文字加载指令的地址(即,“命中”)则指令处理电路102将来自所述表项的文字加载值提供给至少一个相依指令作为预测的文字加载值。在一些方面,所述预测文字加载值可经由常数高速缓冲存储器132提供给所述至少一个相依指令。以这种方式,所述至少一个相依指令可获得所述文字加载指令的所述预测文字加载值而不引发对应的“加载:使用损失”。
在“命中”之后,所述文字加载指令可最终由指令处理电路102的执行单元116执行。当所述文字加载指令被执行时,指令处理电路102将提供给所述至少一个相依指令的预测文字加载值与所述文字加载指令在执行时加载的实际文字加载值进行比较。如果所述预测文字加载值不匹配所述实际文字加载值,则已发生文字加载值误预测。作为响应,指令处理电路102启动误预测恢复。一些方面可提供:所述误预测恢复的操作包含更新文字加载预测表104中的表项、从文字加载预测表104清空所述表项和/或在文字加载预测表104的所述表项中设置不预测标志(未展示)。可接着使用所述实际文字加载值重新执行所述至少一个相依指令。
根据本文所揭示的一些方面,如果指令处理电路102检测到文字加载指令但在文字加载预测表104的表项中未找到所述文字加载指令的地址,则发生“未命中”。在这种情况下,指令处理电路102可在执行所述文字加载指令之后即刻在文字加载预测表104中产生对应于所述文字加载指令的表项。所产生的表项包含所述文字加载指令的地址,并且将所述文字加载指令所加载的实际文字加载值存储为所述表项的预测文字加载值。因此,如果并且当所述文字加载指令被指令处理电路102再次检测到时,文字加载预测表104中的“命中”可发生,且所预测的文字加载值可提供给相依指令。
如上文所指出,在一些方面,指令处理电路102可在文字加载预测表104的表项中设置不预测指示符(未展示)作为误预测恢复的部分。所述不预测指示符可由指令处理电路102用以识别显现为文字加载指令、但已知或确定在执行计算机程序期间在不同点处加载不同值的加载指令。因此,在检测到明显的文字加载指令并确定所述文字加载指令的地址存在于文字加载预测表104的表项中之后,指令处理电路102可检查所述表项的不预测指示符。如果所述不预测指示符已设置,则指令处理电路102可继续执行所述文字加载指令而不向相依指令提供预测的文字加载值。这可确保所述相依指令始终接收到由所述文字加载指令加载的实际文字加载值,并可避免重复误预测和相关联的计算机处理器100性能下降的可能性。
为了更好说明在图1的指令处理电路102、数据高速缓冲存储器110和常数高速缓冲存储器132之间的示例性通信流程,提供图2A到2C。图2A说明建立文字加载预测表104中的表项的示例性通信流程,而图2B展示向相依指令提供所述表项的预测文字加载值的示例性通信流程。图2C说明用于处置文字加载值误预测的示例性通信流程。
在图2A到2C中,指令处理电路102处理指令流200,所述指令流包括两个指令:文字加载指令202和相依指令204。文字加载指令202与地址206相关联,所述地址在本实例中是十六进制值0x400。应理解,在一些方面,地址206可从(例如)图1的程序计数器124检索到。应进一步理解,虽然图2A到2C的指令流200仅包含一个相依指令204,但在一些方面,相依指令204可包括多个相依指令。
本实例中的文字加载指令202是LDR指令,所述LDR指令指导计算机处理器100从由程序计数器124(PC)的当前值加上十六进制值0x40所指定的地址加载文字加载值。所述文字加载值接着存储在寄存器R0中,所述寄存器可以是图1的寄存器120中的一者(作为非限制性实例)。相依指令204在指令流200中跟随文字加载指令202,所述相依指令在本实例中是ADD指令。相依指令204将存储在寄存器R0中的文字加载值作为输入接收,并求其与寄存器R1(例如,图1的寄存器120中的另一者)的值的和。所得结果接着存储在寄存器R1中。
图2A到2C中所说明的文字加载预测表104包含多个表项208(0)到208(X)。为了促进文字加载值的预测,文字加载预测表104中的每一表项208(0)到208(X)包含程序计数器(PC)字段210、值字段212和任选的不预测字段214。每一表项208(0)到208(X)的程序计数器字段210可用于存储由指令处理电路102检测到的文字加载指令202的地址206。值字段212可存储基于由与程序计数器字段210中的地址206相关联的文字加载指令202所加载的文字加载值的预测文字加载值。在一些方面中,每一表项208(0)到208(X)还可包含不预测字段214。
如图2A到2C中所见,数据高速缓冲存储器110由表项216(0)到216(Z)组成,每一表项包括地址字段218和值字段220。表项216(0)到216(Z)中的每一者对应于在加载指令的先前执行期间所检索到的值。在这点上,地址字段218存储先前检索到的值的地址,而值字段220存储所述值的副本。
展示于图2A到2C中的常数高速缓冲存储器132包括表项222(0)到222(Y)。表项222(0)到222(Y)中的每一者包含寄存器字段224和值字段226。每一表项222(0)到222(Y)的寄存器字段224指示图1中与表项222(0)到222(Y)相关联的寄存器120中的一者,而值字段226指示最近存储在对应的寄存器120中的值。如上文所论述,常数高速缓冲存储器132可提供快速存取机制,所述快速存取机制提供比直接从寄存器120加载值更快的高速缓冲存储器值存取。
现参考图2A,说明在一些方面中用于建立文字加载预测表104中的表项208(X)的通信流程。随着指令处理电路102首次处理指令流200,检测到第一例文字加载指令202。如箭头228所指示,指令处理电路102检查文字加载预测表104以确定文字加载指令202的地址206(即,十六进制值0x400)是否可在表项208(0)到208(X)中的任一项中找到。指令处理电路102在表项208(0)到208(X)中未找到地址206,且因此响应于所述“未命中”而继续进行对文字加载指令202的常规处理。
在执行文字加载指令202时,数据高速缓冲存储器110的表项216(0)填入由文字加载指令202所加载的实际文字加载值230(在这里是十六进制值0x1234)。如箭头232所指示,指令处理电路102存取数据高速缓冲存储器110的表项216(0)并获取实际文字加载值230。指令处理电路102接下来基于实际文字加载值230在文字加载预测表104中产生表项208(X),如箭头234所指示。文字加载指令202的地址206将存储在表项208(X)的程序计数器字段210中,而实际文字加载值230将作为预测的文字加载值存储在表项208(X)的值字段212中。由文字加载指令202加载寄存器R0中的实际文字加载值230接着通过使用常规机制转发到相依指令204,如箭头236所指示。
图2B说明使用文字加载预测表104的表项208(X)以供将预测文字加载值238提供给相依指令204。如图2B中所见,文字加载指令202的地址206已存储在表项208(X)的程序计数器字段210中,而图2A中的实际文字加载值230已作为预测文字加载值238存储在表项208(X)的值字段212中。在图2B的实例中,不预测指示符239也存储在表项208(X)中,且不预测指示符239未经设置(因此指示表项208(X)可用于预测文字加载值)。指令处理电路102现在再次处理指令流200,并检测到第二例文字加载指令202。如箭头240所指示,指令处理电路102检查文字加载预测表104以确定是否在表项208(0)到208(X)中的任一项中找到地址206,并且此次对表项208(X)进行定位。
作为响应,指令处理电路102将表项208(X)所提供的预测文字加载值238分配给常数高速缓冲存储器132中对应于寄存器R0的表项222(0),如箭头242所指示。预测文字加载值238接着通过常数高速缓冲存储器132提供给相依指令204,如箭头244所指示。以这种方式,相依指令204能够接收预测文字加载值238而不引发“加载:使用损失”。
为了校验没有误预测发生,指令处理电路102在执行文字加载指令202之后即刻存取数据高速缓冲存储器110的表项216(0),并获取实际文字加载值230,如箭头246所指示。指令处理电路102可接着确定文字加载预测表104所提供的预测文字加载值238是否匹配文字加载指令202所加载的实际文字加载值230。在图2B的实例中,实际文字加载值230和预测文字加载值238匹配,且因此预测是成功的。
为了说明处置指令处理电路102在一些方面中的误预测,提供图2C。在图2C中,假定数据高速缓冲存储器110中的表项216(0)已经过更新以反映0x5678的新的实际文字加载值230。随着指令处理电路102再次处理指令流200,检测到文字加载指令202。指令处理电路102检查文字加载预测表104以确定是否在表项208(0)到208(X)中的任一项中找到地址206,并对表项208(X)进行定位,如箭头248所指示。如同图2B,指令处理电路102将表项208(X)所提供的预测文字加载值238分配给常数高速缓冲存储器132中对应于寄存器R0的表项222(0),如箭头250所指示。预测文字加载值238接着通过常数高速缓冲存储器132提供给相依指令204,如箭头252所指示。
在执行文字加载指令202之后,指令处理电路102即刻存取数据高速缓冲存储器110的表项216(0),并获取实际文字加载值230,如箭头254所指示。指令处理电路102接着确定文字加载预测表104所提供的预测文字加载值238不匹配文字加载指令202所加载的实际文字加载值230。因此检测到误预测。
响应于所述误预测,指令处理电路102启动误预测恢复。在图2C的实例中,用于启动所述误预测恢复的操作包含更新文字加载预测表104的表项208(X)中的预测文字加载值238,从而存储由执行文字加载指令202所产生的实际文字加载值230(如箭头256所指示)。以这种方式,实际文字加载值230可提供给指令处理电路102所检测到的未来多例文字加载指令202。应注意,在一些方面,不同和/或另外的操作可作为所述误预测恢复的部分予以执行,所述操作在下文相对于图4更详细地论述。
图3是说明用于使用图1的文字加载预测表104预测文字加载值并检测误预测的示例性操作的流程图。为清楚起见,在描述图3时引用图1和图2A到2C的元件。图3中的操作开始于图1的指令处理电路102在指令流200中检测文字加载指令202的第一发生(框300)。检测文字加载指令202可通过(例如)识别指令流200中的惯用形式的加载指令来完成。
指令处理电路102接下来确定文字加载指令202的地址206是否存在于文字加载预测表104的表项208(X)中(框302)。如果存在,则指令处理电路102提供存储在表项208(X)中的预测文字加载值238以供与文字加载指令202有关的至少一个相依指令204的执行(框304)。相依指令204因此可接收预测文字加载值238而不引发“加载:使用损失”。
为了检查误预测的文字加载值,指令处理电路102接着在执行文字加载指令202之后即刻确定预测文字加载值238是否匹配由文字加载指令202加载的实际文字加载值230(框306)。如果预测文字加载值238和实际文字加载值230匹配,则指令处理电路102继续处理指令流200(框308)。然而,如果检测到预测文字加载值238与实际文字加载值230之间的失配,则指令处理电路102启动误预测恢复(框310)。至少一个相依指令204可接着使用实际文字加载值230予以重新执行(框312),且处理在框308处继续。
在决策框302处,如果指令处理电路102确定文字加载指令202的地址206并不存在于文字加载预测表104的表项208(X)中,则指令处理电路102在执行文字加载指令202之后即刻在文字加载预测表104中产生表项208(X)(框314)。表项208(X)包括文字加载指令202的地址206,和存储为预测文字加载值238的实际文字加载值230。处理接着在框308处继续。
为了说明用于在图1的指令处理电路102的一些方面中启动误预测恢复的示例性操作,提供图4。为清楚起见,在描述图4时引用图1和图2A到2C的元件。如图3中所见,指令处理电路102可响应于检测到误预测的文字加载值而启动误预测恢复(图3的框310)。在一些方面,启动所述误预测恢复可包括通过将实际文字加载值230存储为预测文字加载值238来更新表项208(X)(框400)。这可使指令处理电路102能够响应于检测到文字加载指令202的后续个例而提供经校正的预测文字加载值238。
一些方面可提供:启动误预测恢复包含从文字加载预测表104清空表项208(X)(框402)。作为非限制性实例,清空表项208(X)可包括从文字加载预测表104删除或解除分配表项208(X),或以其它方式指示表项208(X)可供写入。清空表项208(X)可因此在文字加载预测表104中形成可用空间以用于较频繁遇到的文字加载指令202。
根据指令处理电路102的一些方面,启动误预测恢复可包含在表项208(X)中设置不预测指示符239(框404)。在此类方面中,不预测指示符239经设置以指示文字加载值预测不应针对文字加载指令202的后续个例而执行。这可适用于其中(例如)特定加载指令可能反复地被检测为文字加载指令202、但已知会在执行计算机程序期间在不同点处加载不同值的情形。通过使用不预测指示符239,指令处理电路102可避免在进行不大可能正确的文字加载值预测时不必要的处理周期消耗。
在这点上,图5说明使用图1的文字加载预测表104的不预测指示符239的操作。为清楚起见,在描述图5时引用图1和图2A到2C的元件。在图5中,操作开始于图1的指令处理电路102在指令流200中检测文字加载指令202的第二发生(框500)。作为响应,指令处理电路102确定文字加载指令202的地址206是否存在于文字加载预测表104的表项208(X)中(框502)。如果未找到地址206,处理在图3的框314处继续。
如果指令处理电路102在框502处确定在表项208(X)中找到了地址206,则指令处理电路102接下来确定表项208(X)中的不预测指示符239是否已设置(框504)。如果没有设置,则处理在图3的框304处继续。然而,如果不预测指示符239已设置,则指令处理电路102执行文字加载指令202而不提供存储在表项208(X)中的预测文字加载值238以供至少一个相依指令204的执行(框506)。处理接着在图3的框308处继续。
使用根据本文所揭示的各方面的文字加载预测表来预测文字加载值可提供于或集成到任何基于处理器的装置中。实例包含(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器和便携式数字视频播放器。
在这点上,图6说明可使用图1和图2A到2C中所说明的指令处理电路102的基于处理器的系统600的实例。在本实例中,基于处理器的系统600包含一或多个中央处理单元(CPU)602,每一中央处理单元包含一或多个处理器604。一或多个处理器604可包含图1和图2A到2C的指令处理电路(IPC)102。CPU 602可以是主控装置。CPU 602可具有耦合到处理器604以用于快速存取临时存储的数据的高速缓冲存储器606。CPU 602耦合到系统总线608,且可将基于处理器的系统600中所包含的主控装置与受控装置互相耦合。众所周知,CPU602通过在系统总线608上交换地址、控制和数据信息而与这些其它装置通信。举例来说,CPU 602可将总线事务请求传输给作为受控装置的实例的存储器控制器610。
其它主控及受控装置可连接到系统总线608。如图6中所说明,作为实例,这些装置可包含存储器系统612、一或多个输入装置614、一或多个输出装置616、一或多个网络接口装置618和一或多个显示器控制器620。输入装置614可包含任何类型的输入装置,包含但不限于输入按键、开关、语音处理器等。输出装置616可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示器等。网络接口装置618可以是经配置以允许将数据交换到网络622并交换来自所述网络的数据的任何装置。网络622可以是任何类型的网络,包含(但不限于)有线或无线网络、私用或公共网络、局域网(LAN)、广域网(WLAN)及因特网。网络接口装置618可经配置以支持所要的任何类型的通信协议。存储器系统612可包含一或多个存储器单元624(0-N)。
CPU 602还可经配置以通过系统总线608存取显示器控制器620以控制发送到一或多个显示器626的信息。显示器控制器620经由一或多个视频处理器628来将信息发送到显示器626以进行显示,所述一或多个视频处理器将待显示的信息处理成适合于显示器626的格式。显示器626可包含任何类型的显示器,包含(但不限于)阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
所属领域的技术人员将进一步了解,结合本文中所揭示的方面所描述的各种说明性逻辑块、模块、电路及算法可实施为电子硬件、存储在存储器或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或这两者的组合。作为实例,本文中所描述的主控装置和受控装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文所揭示的存储器可以是任何类型和大小的存储器,且可经配置以存储所要的任何类型的信息。为清楚说明这个可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路和步骤。如何实施此类功能性取决于特定应用、设计选项和/或外加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同的方式实施所描述的功能性,但此类实施决策不应被解释为会导致偏离本发明的范围。
结合本文中所揭示的各方面所描述的各种说明性逻辑块、模块和电路可用以下各项来实施或执行:处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其经设计以执行本文中所描述的功能的任何组合。处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP和微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器或任何其它此类配置。
本文中所揭示的各方面可以硬件和存储于硬件中的指令来体现,且可驻留于(例如)随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可装卸式磁盘、CD-ROM或所属领域中已知的任何其它形式的计算机可读媒体中。示例性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留于ASIC中。ASIC可驻留于远程站中。在替代方案中,处理器和存储媒体可作为离散组件驻留于远程站、基站或服务器中。
还应注意,本文中的示范性方面中的任一者中所描述的操作步骤经描述以提供实例和论述。所描述的操作可按除所说明的序列之外的大量不同序列予以执行。此外,以单个操作步骤描述的操作可实际上按数个不同步骤执行。另外,可组合例示性方面中所论述的一或多个操作步骤。应理解,所属领域的技术人员将容易明白,流程图中所说明的操作步骤可经受大量不同修改。所属领域的技术人员还应理解,可使用多种不同技术和技法中的任一者来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示贯穿以上描述可能提及的数据、指令、命令、信息、信号、位、符号和码片。
提供本发明的先前描述以使所属领域的技术人员能够进行或使用本发明。对本发明的各种修改对于所属领域的技术人员而言将显而易见,且本文中所定义的一般原理可应用于其它变体而不脱离本发明的精神或范围。因此,本发明并非意图限于本文中所描述的实例和设计,而应被赋予与本文中所揭示的原理和新颖特征相一致的最广范围。
Claims (21)
1.一种指令处理电路,其经配置以:
在指令流中检测文字加载指令的第一发生;
确定所述文字加载指令的地址是否存在于文字加载预测表的表项中;以及
响应于确定所述文字加载指令的所述地址存在于所述表项中:
提供存储在所述表项中的预测文字加载值以供与所述文字加载指令有关的至少一个相依指令的执行;
在执行所述文字加载指令之后即刻确定所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值;以及
响应于确定所述预测文字加载值不匹配所述实际文字加载值:
启动误预测恢复;以及
使用所述实际文字加载值重新执行所述至少一个相依指令。
2.根据权利要求1所述的指令处理电路,其进一步经配置以:
响应于确定所述文字加载指令的所述地址并不存在于所述文字加载预测表的所述表项中,在执行所述文字加载指令之后即刻在所述文字加载预测表中产生所述表项,所述表项包括所述文字加载指令的所述地址和存储为所述预测文字加载值的所述实际文字加载值。
3.根据权利要求1所述的指令处理电路,其经配置以通过利用存储为所述预测文字加载值的所述实际文字加载值来更新所述表项而启动所述误预测恢复。
4.根据权利要求1所述的指令处理电路,其经配置以通过从所述文字加载预测表清空所述表项而启动所述误预测恢复。
5.根据权利要求1所述的指令处理电路,其经配置以通过在所述表项中设置不预测指示符而启动所述误预测恢复。
6.根据权利要求5所述的指令处理电路,其进一步经配置以:
在所述指令流中检测所述文字加载指令的第二发生;
确定所述文字加载指令的所述地址是否存在于所述文字加载预测表的所述表项中;以及
响应于确定所述文字加载指令的所述地址存在于所述表项中:
确定所述表项中的所述不预测指示符是否已设置;以及
响应于确定所述表项中的所述不预测指示符已设置,执行所述文字加载指令而不提供存储在所述表项中的所述预测文字加载值以供所述至少一个相依指令的执行。
7.根据权利要求1所述的指令处理电路,其集成到集成电路IC中。
8.根据权利要求1所述的指令处理电路,其集成到选自由以下各者组成的群组的装置中:机顶盒;娱乐单元;导航装置;通信装置;固定位置数据单元;移动位置数据单元;移动电话;蜂窝式电话;计算机;便携式计算机;桌上型计算机;个人数字助理PDA;监视器;计算机监视器;电视机;调谐器;无线电;卫星无线电;音乐播放器;数字音乐播放器;便携式音乐播放器;数字视频播放器;视频播放器;数字视频光盘DVD播放器,和便携式数字视频播放器。
9.一种指令处理电路,其包括:
用于在指令流中检测文字加载指令的第一发生的装置;
用于确定所述文字加载指令的地址是否存在于文字加载预测表的表项中的装置;
用于响应于确定所述文字加载指令的所述地址存在于所述表项中,提供存储在所述表项中的预测文字加载值以供与所述文字加载指令有关的至少一个相依指令的执行的装置;
用于进一步响应于确定所述文字加载指令的所述地址存在于所述表项中,在执行所述文字加载指令之后即刻确定所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值的装置;
用于响应于确定所述预测文字加载值不匹配所述实际文字加载值而启动误预测恢复的装置;以及
用于进一步响应于确定所述预测文字加载值不匹配所述实际文字加载值,使用所述实际文字加载值重新执行所述至少一个相依指令的装置。
10.一种用于预测文字加载值的方法,其包括:
在指令流中检测文字加载指令的第一发生;
确定所述文字加载指令的地址是否存在于文字加载预测表的表项中;以及
响应于确定所述文字加载指令的所述地址存在于所述表项中:
提供存储在所述表项中的预测文字加载值以供与所述文字加载指令有关的至少一个相依指令的执行;
在执行所述文字加载指令之后即刻确定所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值;以及
响应于确定所述预测文字加载值不匹配所述实际文字加载值:
启动误预测恢复;以及
使用所述实际文字加载值重新执行所述至少一个相依指令。
11.根据权利要求10所述的方法,其进一步包括:
响应于确定所述文字加载指令的所述地址并不存在于所述文字加载预测表的所述表项中,在执行所述文字加载指令之后即刻在所述文字加载预测表中产生所述表项,所述表项包括所述文字加载指令的所述地址和存储为所述预测文字加载值的所述实际文字加载值。
12.根据权利要求10所述的方法,其中启动所述误预测恢复包括利用存储为所述预测文字加载值的所述实际文字加载值来更新所述表项。
13.根据权利要求10所述的方法,其中启动所述误预测恢复包括从所述文字加载预测表清空所述表项。
14.根据权利要求10所述的方法,其中启动所述误预测恢复包括在所述表项中设置不预测指示符。
15.根据权利要求14所述的方法,其进一步包括:
在所述指令流中检测所述文字加载指令的第二发生;
确定所述文字加载指令的所述地址是否存在于所述文字加载预测表的所述表项中;以及
响应于确定所述文字加载指令的所述地址存在于所述表项中:
确定所述表项中的所述不预测指示符是否已设置;以及
响应于确定所述表项中的所述不预测指示符已设置,执行所述文字加载指令而不提供存储在所述表项中的所述预测文字加载值以供所述至少一个相依指令的执行。
16.一种非暂时性计算机可读存储媒体,其具有存储于其上的计算机可执行指令,所述计算机可执行指令使处理器进行以下操作:
在指令流中检测文字加载指令的第一发生;
确定所述文字加载指令的地址是否存在于文字加载预测表的表项中;以及
响应于确定所述文字加载指令的所述地址存在于所述表项中:
提供存储在所述表项中的预测文字加载值以供与所述文字加载指令有关的至少一个相依指令的执行;
在执行所述文字加载指令之后即刻确定所述预测文字加载值是否匹配由所述文字加载指令加载的实际文字加载值;以及
响应于确定所述预测文字加载值不匹配所述实际文字加载值:
启动误预测恢复;以及
使用所述实际文字加载值重新执行所述至少一个相依指令。
17.根据权利要求16所述的非暂时性计算机可读媒体,其具有存储于其上的计算机可执行指令,所述计算机可执行指令进一步使所述处理器进行以下操作:
响应于确定所述文字加载指令的所述地址并不存在于所述文字加载预测表的所述表项中,在执行所述文字加载指令之后即刻在所述文字加载预测表中产生所述表项,所述表项包括所述文字加载指令的所述地址和存储为所述预测文字加载值的所述实际文字加载值。
18.根据权利要求16所述的非暂时性计算机可读媒体,其具有存储于其上的计算机可执行指令,所述计算机可执行指令使所述处理器通过利用存储为所述预测文字加载值的所述实际文字加载值来更新所述表项而启动所述误预测恢复。
19.根据权利要求16所述的非暂时性计算机可读媒体,其具有存储于其上的计算机可执行指令,所述计算机可执行指令使所述处理器通过从所述文字加载预测表清空所述表项而启动所述误预测恢复。
20.根据权利要求16所述的非暂时性计算机可读媒体,其具有存储于其上的计算机可执行指令,所述计算机可执行指令使所述处理器通过在所述表项中设置不预测指示符而启动所述误预测恢复。
21.根据权利要求20所述的非暂时性计算机可读媒体,其具有存储于其上的计算机可执行指令,所述计算机可执行指令进一步使所述处理器进行以下操作:
在所述指令流中检测所述文字加载指令的第二发生;
确定所述文字加载指令的所述地址是否存在于所述文字加载预测表的所述表项中;以及
响应于确定所述文字加载指令的所述地址存在于所述表项中:
确定所述表项中的所述不预测指示符是否已设置;以及
响应于确定所述表项中的所述不预测指示符已设置,执行所述文字加载指令而不提供存储在所述表项中的所述预测文字加载值以供所述至少一个相依指令的执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/484,659 US20160077836A1 (en) | 2014-09-12 | 2014-09-12 | Predicting literal load values using a literal load prediction table, and related circuits, methods, and computer-readable media |
US14/484,659 | 2014-09-12 | ||
PCT/US2015/046517 WO2016039967A1 (en) | 2014-09-12 | 2015-08-24 | Predicting literal load values using a literal load prediction table, and related circuits, methods, and computer-readable media |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106605207A true CN106605207A (zh) | 2017-04-26 |
Family
ID=54066204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580047406.8A Pending CN106605207A (zh) | 2014-09-12 | 2015-08-24 | 使用文字加载预测表预测文字加载值,以及相关电路、方法和计算机可读媒体 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20160077836A1 (zh) |
EP (1) | EP3191938A1 (zh) |
JP (1) | JP2017527916A (zh) |
CN (1) | CN106605207A (zh) |
WO (1) | WO2016039967A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9921833B2 (en) * | 2015-12-15 | 2018-03-20 | International Business Machines Corporation | Determining of validity of speculative load data after a predetermined period of time in a multi-slice processor |
US11416251B2 (en) * | 2017-11-16 | 2022-08-16 | Arm Limited | Apparatus for storing, reading and modifying constant values |
US11366668B1 (en) * | 2020-12-08 | 2022-06-21 | Arm Limited | Method and apparatus for comparing predicated load value with masked load value |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080022080A1 (en) * | 2006-07-20 | 2008-01-24 | Arm Limited | Data access handling in a data processing system |
CN101187862A (zh) * | 2006-11-13 | 2008-05-28 | 英特尔公司 | 用于硬件锁定取消的临界区检测和预测机制 |
CN101901132A (zh) * | 2009-08-12 | 2010-12-01 | 威盛电子股份有限公司 | 微处理器以及相关储存方法 |
US7856548B1 (en) * | 2006-12-26 | 2010-12-21 | Oracle America, Inc. | Prediction of data values read from memory by a microprocessor using a dynamic confidence threshold |
US20110154116A1 (en) * | 2009-12-22 | 2011-06-23 | International Business Machines Corporation | Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150254078A1 (en) * | 2014-03-07 | 2015-09-10 | Analog Devices, Inc. | Pre-fetch unit for microprocessors using wide, slow memory |
-
2014
- 2014-09-12 US US14/484,659 patent/US20160077836A1/en not_active Abandoned
-
2015
- 2015-08-24 WO PCT/US2015/046517 patent/WO2016039967A1/en active Application Filing
- 2015-08-24 CN CN201580047406.8A patent/CN106605207A/zh active Pending
- 2015-08-24 EP EP15760558.5A patent/EP3191938A1/en not_active Withdrawn
- 2015-08-24 JP JP2017512912A patent/JP2017527916A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080022080A1 (en) * | 2006-07-20 | 2008-01-24 | Arm Limited | Data access handling in a data processing system |
CN101187862A (zh) * | 2006-11-13 | 2008-05-28 | 英特尔公司 | 用于硬件锁定取消的临界区检测和预测机制 |
US7856548B1 (en) * | 2006-12-26 | 2010-12-21 | Oracle America, Inc. | Prediction of data values read from memory by a microprocessor using a dynamic confidence threshold |
CN101901132A (zh) * | 2009-08-12 | 2010-12-01 | 威盛电子股份有限公司 | 微处理器以及相关储存方法 |
US20110154116A1 (en) * | 2009-12-22 | 2011-06-23 | International Business Machines Corporation | Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors |
Non-Patent Citations (1)
Title |
---|
MIKKO H.LIPASTI: "Value locality and load value prediction", 《ASPLOS VII PROCEEDING OF SEVENTH INTERNATIONAL CONFERENCE ON ARCHITECTURE SUPPORT FOR PROGRAMMING LANGUAGE AND OPERATION SYSTEMS》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2016039967A1 (en) | 2016-03-17 |
EP3191938A1 (en) | 2017-07-19 |
JP2017527916A (ja) | 2017-09-21 |
US20160077836A1 (en) | 2016-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108780398B (zh) | 在基于处理器系统中基于负载路径历史使用地址预测表以提供负载地址预测 | |
CN102483696B (zh) | 用以预测有条件非分支指令的不执行的方法和设备 | |
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 | |
US20160055003A1 (en) | Branch prediction using least-recently-used (lru)-class linked list branch predictors, and related circuits, methods, and computer-readable media | |
CN107851028A (zh) | 将指令操作数的窄生成值直接存储在乱序处理器中的寄存器映射中 | |
CN104871144B (zh) | 使用虚拟地址到物理地址跨页缓冲器的推测性寻址 | |
EP2972787B1 (en) | Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
US9830152B2 (en) | Selective storing of previously decoded instructions of frequently-called instruction sequences in an instruction sequence buffer to be executed by a processor | |
CN104603747B (zh) | 响应于分支预测表调换指令而调换分支方向历史及相关的系统和方法 | |
CN104854556B (zh) | 建立分支目标指令高速缓冲存储器条目的方法和系统 | |
CN106605207A (zh) | 使用文字加载预测表预测文字加载值,以及相关电路、方法和计算机可读媒体 | |
EP3221784B1 (en) | Providing loop-invariant value prediction using a predicted values table, and related apparatuses, methods, and computer-readable media | |
US20150100762A1 (en) | Instruction cache with way prediction | |
TWI789421B (zh) | 用於預執行資料相依之負載的薄片結構 | |
US20160170770A1 (en) | Providing early instruction execution in an out-of-order (ooo) processor, and related apparatuses, methods, and computer-readable media | |
CN106104466B (zh) | 在超越控制分支预测器中的推测历史转递以及相关电路、方法和计算机可读媒体 | |
EP2856304B1 (en) | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media | |
CN107924310A (zh) | 使用避免转出表(pat)预测计算机处理器中的存储器指令转出 | |
US20160291981A1 (en) | Removing invalid literal load values, and related circuits, methods, and computer-readable media | |
US20160092219A1 (en) | Accelerating constant value generation using a computed constants table, and related circuits, methods, and computer-readable media |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170426 |