CN104156197B - 微处理器以及微处理器操作方法 - Google Patents

微处理器以及微处理器操作方法 Download PDF

Info

Publication number
CN104156197B
CN104156197B CN201410251303.0A CN201410251303A CN104156197B CN 104156197 B CN104156197 B CN 104156197B CN 201410251303 A CN201410251303 A CN 201410251303A CN 104156197 B CN104156197 B CN 104156197B
Authority
CN
China
Prior art keywords
mentioned
thread
microprocessor
historical record
prediction
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
Application number
CN201410251303.0A
Other languages
English (en)
Other versions
CN104156197A (zh
Inventor
R.E.虎克
T.派克斯
J.M.吉尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority to CN201410718882.5A priority Critical patent/CN104461470B/zh
Priority to CN201410718900.XA priority patent/CN104484158B/zh
Publication of CN104156197A publication Critical patent/CN104156197A/zh
Application granted granted Critical
Publication of CN104156197B publication Critical patent/CN104156197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3848Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Advance Control (AREA)

Abstract

一种微处理器以及微处理器操作方法。该微处理器包括一预测单元以及一控制单元。控制单元用以控制预测单元累计已执行的指令的特性的历史记录。控制单元还检测自运行第一线程至运行第二线程之间的转变,以及控制预测单元于运行第二线程时选择性地暂停累计历史记录并利用历史记录进行预测。在运行第二线程时,预测单元作静态预测。在线程的前一执行实例期间,无论是否因系统调用而进行转换,以及无论第二线程是否为中断处理程序,可根据第二线程的特权等级、识别码或者长度、静态预测效果(static prediction effectiveness)进行选择。

Description

微处理器以及微处理器操作方法
技术领域
本发明涉及一种微处理器以及其操作方法,特别涉及根据微处理器中所累计已执行的指令的特性的历史记录进行预测的微处理器以及其操作方法。
背景技术
现今微处理器利用不同的预测技术以改进执行效能。举例来说,分支预测器(branch predictor)用以预测是否会执行分支指令,若执行分支指令,则预测分支指令的目标地址。动态分支预测累计不同分支指令执行所输出的历史记录,以及根据历史记录进行预测。动态分支预测的预测精准度很大程度与可累计的历史记录的数量有关。只要在既定时间内通过程序执行小到可以包含在预测历史记录中的一组分支指令,则精准度可能非常高。
然而,预测精准度会因某些事件而大幅降低。上述事件之一为当其他程序运行时,目前正在运行的程序暂时中断的状况。举例来说,通过网络接口控制器接收分组,将发出一中断信号至处理器。处理器将操作系统的控制转换为提供中断,这将造成目前所运行的程序A暂时中断,直到操作系统将控制恢复以运行程序A为止。当处理器执行操作系统的分支指令时,将影响程序A的分支预测的历史记录。对程序A的预测分支而言,很有可能会降低的分支预测器的精准度。
发明内容
本发明一实施例提供一种微处理器。微处理器包括一预测单元以及一控制单元。控制单元用以控制预测单元累计由微处理器所执行的指令的特性的历史记录,以及在微处理器运行第一线程时根据历史记录预测后续指令。控制单元还检测自运行第一线程至运行与第一线程不同的第二线程(thread)之间的转变。控制单元还控制预测单元在运行第二线程时选择性地暂停累计历史记录并利用历史记录进行预测。
本发明另一实施例提供一种执行微处理器的方法。方法包括累计由微处理器所执行的指令的特性的历史记录,以及于微处理器运行第一线程时根据历史记录预测后续指令。方法还包括检测自运行第一线程至运行第二线程之间的转变。方法还包括于运行第二线程时选择性地暂停累计历史记录并利用历史记录进行预测。
附图说明
图1是显示一微处理器的方块图。
图2是描述图1所示的微处理器的操作流程图。
图3是根据一替代实施例描述图1所示的微处理器的操作流程图。
图4是根据另一替代实施例描述图1所示的微处理器的操作流程图。
【符号说明】
100~微处理器
102~分支预测单元
104~数据预取单元
106~存储冲突预测单元
108~历史记录存储器
109~预测单元
111~现有特权等级寄存器
112~保存最佳化信息的存储器
113~引退指令计数器
114~效能计数器
124~控制单元
132A、132B、132C~预测历史记录
202、212、222、232、242、311、313、315、333、335、413、433、435~流程方块
具体实施方式
以下所述的实施例藉由选择性暂停预测历史记录的累计,以及当暂停动态预测时,通过预测单元(例如分支预测器、数据预取器(data prefetcher)以及存储冲突检测预测器(store collision detection predictor))利用利于静态预测的预测历史记录进行预测,以改进微处理器的效能。更具体地,当微处理器运行一些线程(thread,又称之为“执行绪”)但非其他时,可能暂停预测历史记录累计(prediction history accumulation)以及使用。举例来说,根据运行线程(thread,又称之为“执行绪”)的特权等级选择暂停,更具体地,线程是否运行于管理者特权等级,例如于x86架构处理器下的目前特权等级(currentprivilege level,CPL)的第0级(亦被称为ring 0)。举另一例来说,根据线程的类型选择暂停,例如线程是否为中断处理程序(interrupt handler)。举另一例来说,暂停的选择可根据是否此转换到一新的线程的动作回应一系统调用(system call)指令而设定。举另一例来说,微处理器搜集有关线程的前一执行实例的信息,以及根据上述信息选择暂停,例如指令长度以及效能信息。举另一例来说,根据线程的识别码选择暂停。线程的识别码(identity)可根据,例如,造成转变的事件的类型、当事件发生时处理器的架构状态、以及前述两者的结合而决定。事件的类型可包括,例如,系统调用的执行、软件中断指令的执行、内部特权(inter-privilege)或者任务切换程序调用(task switch procedure call)的执行、以及例外情况的检测。此外,微处理器可在暂停预测历史记录累计以及使用期间将预测历史存储以及还原至局部存储器(local storage)。
注释:
预测单元为微处理器的硬件、软件、或者硬件以及软件的结合,用以预测有关运行在处理器的指令流所将采取的动作。预测可包括(但非以此为限)预测分支指令是否指示微处理器进行分支;预测分支指令的目标地址;预测藉由指令流(instructions of thestream)所存取的数据;预测是否会发生存储冲突(store collision)。预测单元根据由微处理器所执行的指令的特性的历史记录进行预测,又可称为动态预测(dynamicprediction)。当微处理器执行指令流时,预测单元累计历史记录。历史记录可包括(但非以此为限)无论分支指令是否指示微处理器进行分支的执行结果(outcome);作用分支指令(taken buanch instruction)的目标地址;藉由指令流所读取或者存储的数据的地址;与指定快取存储器位置的存储指令有关的信息,例如存储指令的地址、用以计算存储地址的来源的识别符(identifier)、存储数据所依赖的指令的重排序缓冲器索引(reorderbuffer index)、先前与存储指令冲突的载入指令的地址以及重排序缓冲器索引、冲突载入以及存储指令之间的重排序缓冲器索引差量(delta)、冲突载入指令重复的次数的指标(indicator)。预测单元也可不根据历史记录进行预测,又可称为静态预测(staticprediction)。
微处理器的特权等级由微处理器的指令集架构(instruction setarchitecture)所定义,以及控制目前所运行的程序对于系统资源的存取,例如存储器区域、I/O端口以及指令集的特定指令(certain instruction)。
线程为由微处理器所执行的指令的序列。
程序为线程,以及其相关的状态系其他程序共同由操作系统所管理。操作系统将处理识别符分配至程序。
请参阅图1,图1是显示微处理器100的方块图。微处理器100包括预测单元109。预测单元109耦接至控制单元124以及预测历史记录存储器108。控制单元124耦接至引退指令计数器(retired instruction counter)113、效能计数器114、现有特权等级寄存器(current privilege level register)111、以及保存最佳化信息的存储器(storage forholding optimization information)112。在一实施例中,微处理器100包括一个或多个功能单元的管线(未显示),具有指令快取(instruction cache)、指令转换单元或者指令解码器、寄存器重命名单元(register renaming unit)、保留站(reservation station)、数据快取、执行单元、存储器子系统(memory subsystem)以及具有重排序缓冲器的引退单元。优选地,微处理器100包括超标量(superscalar)、无序执行微架构(out-of-order executionmicroarchitecture)。预测单元109可并入微处理器100的各种功能单元中或者作为功能单元。
预测单元109包括硬件、软件或者硬件以及软件的结合。预测单元109具有分支预测单元102、数据预取单元104以及存储冲突预测单元106,分支预测单元102包括用以存储预测历史记录132A的存储阵列,数据预取单元104包括用以存储预测历史记录132B的存储阵列,以及存储冲突预测单元106包括用以存储预测历史记录132C的存储阵列。预测历史记录单独参考预测历史记录132A~C中的一个或者集体性参考多个预测历史记录132A~C。预测单元109分别使用预测历史记录132A~C中的一个以作出与指令或者数据处理有关的预测,以通过各别的操作尝试改进效能和(或)减少微处理器100的功率消耗。更具体地,分支预测单元102累计指令地址的历史记录、方位(执行(taken)或者未执行)、以及由微处理器100所执行的分支指令的目标地址,以致能分支预测单元102动态预测分支指令之后续执行状况的方向以及目标地址。动态分支预测技术为本技术领域所已知的分支预测技术。数据预取单元104藉由程序指令将存取的历史记录累计至快取存储器区域以检测存储器存取模式(pattern),以预测未来哪个来自快取存储器区域的数据会通过程序进行存取,并在程序请求数据之前将预测的数据自系统存储器预取至微处理器100的快取存储器以减少存储器的存取时间(因为系统存储器的延迟大于快取存储器的延迟)。动态数据预取技术为本技术领域所已知的数据预取技术。存储冲突预测单元106累计指令快取存储器位置的存储指令的历史记录,以预测存储冲突何时会发生。存储冲突发生在当较新的载入指令指定数据以覆盖较旧的存储指令时。存储冲突的预测可致能微处理器100预测性地将数据自存储指令转移(forward)至载入指令,和(或)避免执行抵触(colliding)载入指令使较旧的存储指令失序。值得注意的是,上述实施例并非用以限制预测单元的上述特定型式,但可能包括藉由微处理器100执行以累计指令的特性的历史记录的其他型式的预测单元,可有效地致能预测单元进行有关后续执行指令的预测或者执行其他预测操作以尝试增加处理器100的效能和(或)降低其功率消耗。
此外由各个预测单元109进行动态预测,即为利用预测历史记录132A~C中的一个进行预测,各个预测单元109也可用以进行静态预测,即为不通过利用预测历史记录进行预测。举例来说,在一实施例中,分支预测单元102对所有目标地址为反向(backward)的分支指令(举例来说,偏移为负值的相关分支)进行静态预测,因为并不需要任何先前所执行指令的历史记录,以及并不会对所有目标地址为前向(forward)的分支指令进行静态预测。举另一例来说,在一实施例中,当数据预取单元104检测到程序存取快取存储器时,需要下一时序(sequential)的数据的快取线以进行预测,因此数据预取单元104预取下一时序的数据的快取线。静态预测方法为中央处理单元的已知技术。
在一实施例中,预测单元109利用预测历史记录存储器108存储预测历史记录132A~C以响应导致微处理器100自运行一线程转换至运行另一线程的事件,举例来说,自使用者特权等级转换至管理者特权等级,以及还原预测历史记录132A~C以响应导致微处理器100自管理者特权等级转换回使用者特权等级的事件,优选地为当在执行转换至管理者特权等级时,恢复至一不同的使用者程序而非先前所运行处理,下列将提出更详细的描述。
现有特权等级寄存器111存储微处理器100的现有特权等级。在一实施例中,微处理器100基本上符合x86的架构,其他为Intel IA-32架构和(或)Intel64架构(上述的架构详述于“Intel 64 and IA-32 Architectures Software Developer’s Manual,CombinedVolumes:1,2A,2B,2C,3B and 3C,Order Number 325464-043US,May 2012,by the IntelCorporation of Santa Clara,California”中)。特别的是,在x86的实施例中,现有特权等级寄存器111用以指示微处理器100是否运行在现有特权等级0、1、2或者3,即为在第0级、第1级、第2级或者第3级。第0级为最优先的特权等级,以及第3级为最小的特权等级(使用者特权等级)。第0级、第1级以及第2级为管理者特权等级。
在一指令引退时,引退指令计数器113递增。将微处理器100开始运行另一不同的线程(例如离开第0级)的引退指令计数器的值减去当微处理器100开始运行线程时(例如进入第0级)的引退指令计数器113的值,使控制单元124可根据上述的值决定有多少指令藉由线程引退,下列将提出更详细的叙述。在一实施例中,指令计数器113计算微指令引退的数量(即为架构指令,例如x86指令),然而在另一实施例中,指令计数器113计算微指令引退的数量(即为由微处理器100的指令转换器(instruction translator)自微指令转换为由微处理器100的微架构指令集所定义的非架构指令,以及上述非架构指令由微处理器100的执行单元所执行)。
效能计数器114包括多个计数器,用以计算微处理器100有关效能和(或)功率消耗的情况。在一实施例中,效能计数器114计算预测分支指令;正确地预测分支指令;非正确地预测分支指令;由数据预取所分配的快取线;由非预取机制所分配的快取线,例如需求载入/存储或者直接存储器存取(direct memory access,DMA)请求;程序存取至由数据预取所分配的快取线;在使用前被驱除(evict)的由数据预取所分配的快取线;存储冲突预测;实际存储冲突检测。
最佳化信息112用以选择性地暂停累计,以及选择性地使用预测历史记录132A~C,举例来说,在管理者等级操作期间,将详述于与图3的相关的实施例中。
控制单元124包括硬件、软件、或者硬件以及软件的结合。根据其输入(主要为现有特权等级111、最佳化信息112、引退指令计数器113、效能计数器114、线程转换事件类型、以及架构状态),控制单元124控制预测单元109继续或者暂停累计其所对应的预测历史记录132A~C中的一个,以及利用预测历史记录132A~C和(或)自预测历史记录存储器108存储/还原的预测历史记录132A~C进行预测。在一实施例中,控制单元124包括硬件状态机器、微编码或者硬件状态机器与微编码的结合。在一实施例中,微编码包括由微处理器100的执行单元所执行的指令。
在一实施例中,用以控制微编码的读取的微编码单元(未显示)包括其读取单元、或者定序器(sequencer)、以及未执行分支预测单元102,以仅预测使用者程序分支指令。
请参阅图2,图2是描述图1所示的微处理器100的操作流程图。流程起始于方块202。
在方块202,当在使用者特权等级运行线程操作时(举例来说第3级),各个预测单元109累计所对应的预测历史记录132A~C中的一个,并在微处理器100处理线程的指令时利用预测历史记录132A~C进行动态预测。流程进入方块212。
在方块212,控制单元124检测指示微处理器100操作管理者特权等级的事件,举例来说,第0级。上述事件亦导致微处理器100自正在运行的线程的控制转换至不同的线程。上述事件的例子包括,但并非限制于指令的操作,例如系统调用指令(例如x86 SYSENTER/SYSCALL指令)、软件中断(例如x86 INT指令)、或者内部特权等级或者任务切换程序调用指令(例如x86 CALL指令);以及例外情况的检测,例如硬件中断(例如计时器刻度(timertick)、I/O装置)或者页面错误。在一实施例中,在转换控制至第0级线程或者子程序(routine)之前,事件将造成微处理器100将控制转换至操作系统的微编码以执行各种操作(例如权限检查)。流程进入方块222。
在方块222,响应于方块212的事件检测,当微处理器100在管理者特权等级运行新的线程时,控制单元124控制预测单元暂停累计所对应的预测历史记录132A~C,以及暂停利用历史记录进行预测。然而,预测单元109持续进行不需使用预测历史记录132A~C的静态预测。在一实施例中,控制单元124可暂停累计预测历史记录132A~C,以及暂停针对部分预测单元109的预测,但针对其他单元不暂停累计以及不暂停进行预测。除此之外,暂停以及不暂停预测单元109的决定由微处理器100动态操作。举例来说,编程暂停以及非暂停预测单元109的子集可藉由例如操作系统或者BIOS进行编程。举另一例子来说,可在微处理器100的制造过程中通过熔丝,甚至通过使用者或者服务人员将子集配置或者设置于一区域中。举另一例子来说,可根据将运行的特定第0级决定子集,接下来将于图3所述的实施例进行更详细的叙述。流程进入方块232。
在方块232,控制单元124检测指示微处理器100操作使用者特权等级(例如第3级)的事件。上述事件亦造成微处理器100将控制自正在运行的线程转换至不同的线程。上述事件的例子包括,但并非限制于指令的执行,例如系统调用返回指令(例如x86 SYSEXIT/SYSRET指令)、来自中断或者例外的返回(例如x86 IRET指令)、或者来自程序指令的内部特权等级返回(例如x86 RET指令)。在一实施例中,造成微处理器100将控制转换至微编码的事件,将于将控制转换至第3级处理之前执行各种操作。流程进入方块242。
在方块242,预测单元109恢复累计个别的预测历史记录,以及于微处理器100处理指令时利用历史记录132进行预测。流程结束于方块242。
如前所述,若方块242所返回的控制的第3级处理与方块212的事件所中断的第3级处理相同时,则预测历史记录132A~C应与先前的第0级的转变相同,即为当第3级处理被中断时,预测历史记录132A~C并不会因此而改变,因为其并未被第0级线程所影响。因此,很可能预测单元109将可有利于事件发生后一如往常地持续对第3级处理的线程进行正确的动态预测。也可能在执行第0级线程时的预测效能将低于执行第3级处理的预测效能,因为第0级线程预测仅使用静态预测。无论如何,根据第0级线程和(或)第3级处理的特性,其可能希望在执行第0级线程时,藉由牺牲效能以有利地改进第3级的效能-由于第3级处理预测历史记录的影响较少或者没有-将支配第0级效能的损失,特别为当第0级线程为短的和(或)不经常运行。
请参阅图3。图3是根据一替代实施例描述图1所示的微处理器的操作流程图。图3中部分方块与图2相同,以及编号亦相同。优选地,在重新设定时,控制单元124初始化信息112数据架构将于以下做详细的叙述。流程起始于方块202。
在方块202,当线程操作于使用者特权等级时,例如第3级,各个预测单元109累计所对应的预测历史记录132A~C,以及当微处理器100处理指令时利用预测历史记录132A~C进行预测。流程进入方块212。
在方块212,控制单元124检测指示微处理器100操作管理者特权等级(例如第0级)的事件,以及造成微处理器100将控制自正在运行的线程转换至不同的线程。流程进入方块311。
在方块311,控制单元24尝试识别运行在第0级的线程,以及产生识别符给第0级线程。在一实施例中,以下所述的最佳化信息112数据架构包括由控制单元124保存在微处理器100的私密存储器中的表格。表格中每个登录与不同的第0级线程识别符有关。功能用以在检测到线程转换时,产生第0级识别符以接收各种输入,例如微处理器100的事件类型以及状态值。事件类型可为前述图2的方块212中各种事件类型中的一个,但并非以此为限。状态值可为通用目的寄存器的值(general purpose register value)、模块特定寄存器的值(model specific register value)、指令指针(instruction pointer,IP),或者第3级处理的程序计数器(PC)的值,用以进行系统调用、软件中断、内部特权或者任务切换程序调用、以及与中断或者例外有关的中断向量数字,但并非以此为限。举例来说,当第3级处理对操作系统进行系统调用时(例如通过x86 SYSENTER指令),Windows根据x86 EAX寄存器中的值以及在某些情况下其他寄存器的值运行不同的线程。因此,在一实施例中,当事件类型为系统调用指令时,控制单元124检查EAX寄存器值,以及产生不同的第0级识别符给不同的EAX值。其他实施例可用于其他的系统。在另一例子中,控制单元124可产生不同的第0级识别符值给不同的中断向量值。流程进入方块313。
方块313,控制单元124查找在方块311的最佳化信息112数据架构中所产生的第0级识别符,以取得有关于藉由第0级识别符所识别的第0级线程的最佳化信息112。在一实施例中,假设第0级识别符不存在于最佳化信息112数据架构中,控制单元124执行预设第0级登录动作(即为相对于进入第0级的预设动作有关于无论是否累计预测历史记录132A~C以及利用预测历史记录132A~C进行动态预测),以及在最佳化信息112数据架构中分配进入给第0级识别符。在一实施例中,预设第0级登录动作用以暂停累计预测历史记录132A~C,以及利用其进行预测。若第0级识别符存在,控制单元124决定是否根据相关的最佳化信息112置换预设第0级登录动作。在一实施例中,最佳化信息112包括与第0级线程有关的长度,以及若第0级线程的长度小于既定长度,控制单元124决定暂停累计并暂停使用预测历史记录132A~C,以及反之则继续累计以及使用预测历史记录132A~C。在一实施例中,表示为指令的数字的长度引退于第0级线程的前一次运行期间,利用引退指令计数器113取得。在一实施例中,最佳化信息112包括在第0级线程的前一次执行实例期间,和(或)于第3级处理的前一次运行之后至第0级线程的前一次执行实例期间,有关于根据预测历史记录132A~C所进行预测的有效性的信息。在一实施例中,利用效能计数器114取得有效性。流程进入决策块315。
在决策块315,控制单元124决定是否暂停累计预测历史记录132A~C,以及是否暂停使用预测历史记录132A~C进行预测。若是如此,流程进入方块222;反之,流程进入方块321。尽管在此所述的实施例决定是否累计预测历史记录132A~C,以及利用根据与线程识别符有关的最佳化讯息112所作的预测历史记录132A~C进行动态预测,但可藉由准则(criteria)作出决定。举例来说,控制单元124可根据新的线程的特性、或者特征而不参考最佳化讯息112作出运行转换的决定(利用任何前述的各种输入的结合)。也就是说,新的线程的特征(例如事件类型和(或)与转换至新的线程的架构状态;特权等级,举例来说如相对于图2的叙述;或者新的线程是否为中断处理程序(handler))足以作出是否累计预测历史记录132A~C的决定,以及执行动态预测,即为是否选择性地暂停累计预测历史记录132A~C以及利用预测历史记录132A~C进行动态预测。一般而言,暂停累计预测历史记录132A~C以及利用预测历史记录132A~C进行动态预测的方法用于明显较短和(或)很少运行的线程,因为很可能包括上述特征的线程具有较差的预测精准度以作为不影响其他明显较长和(或)较常运行的线程的预测历史记录132A~C的交换,将使得其他线程具有较高的预测精准度以微处理器100整体效率较高。
在方块222,响应于方块212的事件检测,当微处理器100运行在管理者特权等级时,控制单元124控制预测单元109暂停累计其所对应的预测历史记录132A~C,以及暂停利用预测历史记录进行预测。然而,预测单元109持续进行不需要使用预测历史记录132A~C的静态预测。流程进入方块321。
在方块321,当第0级线程运行时,控制单元124持续搜集有关第0级线程的最佳化信息,例如通过效能计数器的预测有效性以及自引退指令计数器113的线程长度。在一实施例中,控制单元124搜集除了由预测单元109所进行的动态预测之外有关于静态预测的预测有效性。在一实施例中,控制单元124亦搜集预测有效性信息给第3级线程。较佳地,若静态预测线程的效能为可接受的,则当线程运行时,控制单元124将持续暂停预测历史记录的累计以及使用,尤其是若其他线程的效能明显改善时;反之,当线程运行时,控制单元124将累计以及使用预测历史记录。流程进入方块232。
在方块232,控制单元124检测指示微处理器100操作于使用者特权等级的事件(例如第3级),以及将控制自正在运行的线程转换至不同的线程。流程进入方块333。
在方块333,控制单元124利用于方块321所搜集的最佳化信息更新与第0级线程有关最佳化信息112数据架构登录。在一实施例中,更新包括藉由较新的搜集最佳化讯息的登录简单地取代最佳化讯息112。在另一实施例中,更新包括利用所搜集的最佳化讯息进行计算,以及利用计算更新最佳化信息112。举例来说,控制单元124计算引退指令的数量的平均和(或)根据第0级线程最后的执行过程的预测有效性。除此之外,平均可为权重或者移动平均数(rolling average)。另外,控制单元124可过滤出极限值并自最佳化信息112排除。除此之外,可考虑维持最佳化信息112数据架构的各种方法。举例来说,在一实施例中,控制单元124仅在最佳化讯息112数据架构保存控制单元124预置换预设第0级登录动作的登录给第0级线程;即为若控制单元124在方块313查找第0级线程识别符,以及在最佳化信息112数据架构中找到第0级线程识别符,则控制单元124在决策块315作决定以置换预设动作。流程进入决策块335。
在决策块335,控制单元124决定是否累计以及使用于方块222所暂停的预测历史记录132A~C。若是如此,流程进入方块242;反之,则累计预测单元109以及持续累计预测历史记录132A~C以及使用预测历史记录132A~C以进行预测,以及流程结束。
在方块242,预测单元109恢复累计所对应的预测历史记录132A~C,以及当微处理器100处理指令时,利用预测历史记录132A~C进行动态预测。流程结束于方块242。
请参阅图4。图4是根据一替代实施例描述图1所示的微处理器100的操作流程图。图4的一些方块与图2的方块相同,以及具有相同的标号。流程起始于方块202。
在方块202,当线程操作于使用者特权等级,例如第3级,每个预测单元109累计所对应的预测历史记录132A~C,以及当微处理器100处理指令时,利用预测历史记录132A~C进行动态预测。流程进入方块212。
在方块212,控制单元124检测指示微处理器100操作于管理者特权等级(例如第0级)的事件,以及造成微处理器100将控制自正在运行的线程转换至不同的线程。流程进入方块222。
在方块222,响应至方块212的事件检测,当微处理器100在管理者特权等级运行新的线程时,控制单元124控制预测单元暂停累计所对应的预测历史记录132A~C者,以及暂停利用预测历史记录进行预测。然而,预测单元109持续进行静态预测而不需利用预测历史记录132A~C。流程进入方块413。
在方块413,控制单元124将预测历史记录132A~C的目前实例存储至预测历史记录存储器108。在一实施例中,控制单元124仅存储部分的特定预测历史记录132A~C以减少执行存储所需的时间。举例来说,若分支预测单元102的预测历史记录132A相对较大(例如8KB),控制单元124可仅存储大部分最近的存取登录(例如512位)而非全部的预测历史记录132A。在一实施例中,控制单元124将失效未存储的部分预测历史记录132A~C。除此之外,在一实施例中,控制单元124仅存储一些而非所有的预测单元109的预测历史记录132A~C。举例来说,相较于预测单元109的第二子集,若控制单元124认为由第0级线程所产生的中断对预测单元109的第一子集的预测有效性造成极大的不利影响,则控制单元124将存储第一子集而非第二子集。优选地,控制单元124在预测历史记录存储器108中保留对应于不同藉由唯一的第3级识别码所识别的第3级处理的多数登录。在一实施例中,第3级处理藉由其x86处理内容(process-context)识别符所识别的第3级处理,例如“Intel 64 and IA-32Architectures Software Developer’s Manual”第3A册第4-46至4-62页第4.10节所述的内容。在另一实施例中,第3级处理藉由位于x86CR3控制寄存器中的第3级处理所使用的页面目录的地址所识别。在一实施例中,控制单元124保留预测历史记录存储器108以作为先入先出缓冲器(first-in-first-out buffer)。在另一实施例中,控制单元124执行更复杂的替代方案,例如最近最少使用(least-recently-used)或者至少频繁使用(least-frequently-used)。优选地,当微处理器100的功能性单元持续处理第0级线程的指令时,将预测历史记录132A~C存储至预测历史记录存储器108,以及第0级线程执行时间很可能比预测历史记录存储时间还长。然而,有利的是,因为预测历史记录132A~C阵列并未被存取(即写入)以累计预测历史记录或者进行预测(即读取),使得不用于预测历史记录存储以及第0级指令处理之间争用存储预测历史记录132A~C的存储阵列的存取的读取端口以及写入端口,以处理仅进行读取以写入预测历史记录的第0级指令。此为有利的,因为用以累计存储的预测历史记录的额外硬件的数量将被最小化,原因为不需要包括存储阵列的额外的读取端口。流程进入方块232。
在方块232,控制单元124检测指示微处理器100操作在使用者特权等级(例如第3级)的事件,以及将控制自目前所运行的线程转换置不同的线程。流程进入方块433。
在决策块433,控制单元124决定转换的新的第3级线程以及控制被转换的旧的第3级线程的处理是否部分相同。相对于前述的方块413,控制单元124将藉由比较两个线程的处理识别码以进行决定,例如x86 PCID。若新的第3级线程处理不同于旧的第3级线程处理,流程进入方块435;反之,流程进入方块242。
在方块435,控制单元124自预测历史记录存储器108将预测历史记录132A~C恢复给新的第3级处理。即为控制单元124使用新的第3级处理识别码以在预测历史记录存储器108中寻找预测历史记录,以及根据第3级处理识别码自预测历史记录存储器108载入预测单元109的预测历史记录132A~C。优选地,当微处理器100的功能性单元持续处理自执行第0级至第3级的微编码的指令时,执行恢复预测历史记录存储器108的预测历史记录132A~C。微编码的执行时间可为明显的时间周期,以及可能较执行预测历史记录132A~C的恢复所需的时间还长,此为有利的,因为预测历史记录132A~C阵列并未被存取(即写入)以累计预测历史记录或者进行预测(即读取),使得不用于预测历史记录存储以及第0级指令处理之间争用存储预测历史记录132A~C的存储阵列的存取的读取端口以及写入端口,以处理仅进行恢复预测历史记录的第0级指令。举例来说,在一实施例中,微编码单元并未处理分支预测单元102,即为分支预测单元102并未对微编码指令进行预测。举另一例来说,在一实施例中,环过渡(ring transition)微编码并未存取系统存储器;因此,数据预取单元104并不需要对环过渡微编码进行数据预取,以及存储冲突预测单元106并不需要对环过渡微编码进行预测。有利的是,因为用以累计预测历史记录的恢复所需的额外硬件的数量可被最小化,原因为不需要在存储阵列上包括额外的写入端口。流程进入方块242。
在方块242,预测单元109恢复累计所对应的预测历史记录132A~C,以及当微处理器100处理指令时,利用预测历史记录132A~C进行动态预测。流程结束于方块242。
有利的是,新的第3级线程的指令的处理并未影响与旧的第3级线程有关的预测历史记录132A~C,将使得两个第3级线程具有较佳的预测准确度。
其他实施例可为图3以及图4的实施例的有效结合,使得控制单元124存储以及恢复与第0级线程有关的预测历史记录132A~C,使控制单元124决定不暂停累计以及使用预测历史记录132A~C,举例来说,对相对长的第0级线程和(或)根据在第0级线程和(或)第3级处理的前一执行实例期间的预测有效性以累计以及使用预测历史记录132A~C的第0级线程。如上所述,当不需要累计历史记录132以及使用历史记录132进行预测的期间,微处理器100自第3级转换至第0级(以及反之亦然)可能需要大量的时间周期;因此,在这段期间控制单元124可有效但不明显地自预测历史记录存储器124存储/恢复相关的预测历史记录132A~C,如果有的话,将降低效能。在上述的实施例中,这可能是特别有利的,可限制于自第0级转换至第3级以及自第3级转换自第0级所存储以及恢复的预测历史记录132A~C的数量,以避免在完成存储和恢复之前停止微处理器100的指令的执行。
此外,尽管所述的实施例中微处理器100选择性地暂停预测历史记录的累计,以及暂停利用预测历史记录进行预测以响应自一特权等级转换至不同的特权等级的线程,在其他实施例中微处理器100也可选择性地暂停或者恢复预测历史记录的累计,以及使用预测历史记录进行预测以响应线程在相同特权等级之间的转换。举例来说,微处理器100可藉由检测不包括特权等级的改变的事件以检测线程转换,以及决定暂停或者恢复预测历史记录的累计,并响应使用预测历史记录进行预测。举例来说,微处理器100可利用一特定IP值以及在一些具有其他架构状态的特定值的情况下简单地检测指令的执行(例如子程序调用(subroutine call)或者恢复指令),例如通用目的寄存器值。举另一例子来说,微处理器100可检测一序列的指令和(或)IP值。
必须了解的是,在此所述有关本发明的实施例仅用以作为示范,并非以此为限。在计算机相关领域的技术人员,在不脱离本发明的精神和范围内,可以广义的方式作适当的更动和替换。举例来说,可致能软件,举例来说,装置的功能、制作、模块、模拟、叙述和(或)测试,以及在此所述的方法。可藉由通用的程序语言(例如C、C++)、硬件描述语言(HDL)(包括Verilog HDL、VHDL等)、或者其他可用的程序实现本发明。上述的软件可执行在任意已知的计算机可执行媒体,例如磁带、半导体、磁碟或者光盘(例如CD-ROM、DVD-ROM等),网际网络、有线网络、无线网络、或者其他通信媒介。在此所述的装置以及方法的实施例可包括在半导体知识产权内核中,例如微处理器内核(例如在HDL中实施或指定),以及在集成电路的产品中转换为硬件。此外,在此所述的装置以及方法可通过硬件以及软件的结合实现。因此,本发明并不能限制于此所述的任意实施例,本发明的范围以及精神根据后附的权利要求书所定义以及限制。特别的是,本发明可通过通用目的计算机的微处理器装置实现。最后,上述的实施例以足够的细节叙述使所属技术领域的技术人员能藉由上述的描述,在不脱离本发明的精神以及范围内,可做些许结构上以及逻辑上的改变,以实施本发明所揭露的系统以及方法。

Claims (31)

1.一种微处理器,包括:
预测单元;以及
控制单元,用以:
控制上述预测单元累计由上述微处理器所执行的指令的特性的一历史记录,以及当上述微处理器运行一第一线程时,根据上述历史记录进行与后续指令有关的预测;
检测从运行上述第一线程至运行与上述第一线程相异的一第二线程之间的转变;以及
当运行上述第二线程时,控制上述预测单元选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,而进行不需使用上述历史记录的静态预测,其中上述第二线程与上述第一线程相比不经常运行。
2.如权利要求1所述的微处理器,其中当运行在上述第二线程时,上述预测单元在不使用上述历史记录的状况下进行预测。
3.如权利要求1所述的微处理器,其中上述控制单元控制上述预测单元选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述第二线程所对应的一特权等级进行。
4.如权利要求3所述的微处理器,其中上述控制单元用以控制上述预测单元选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述第二线程是否运行于管理者特权等级。
5.如权利要求1所述的微处理器,其中上述控制单元用以控制上述预测单元选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述第二线程是否运行于一中断处理程序。
6.如权利要求5所述的微处理器,其中上述控制单元用以控制上述预测单元选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述第二线程是否为系统管理中断处理程序。
7.如权利要求1所述的微处理器,其中上述控制单元用以控制上述预测单元选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述转变是否响应于由上述第一线程造成上述微处理器运行上述第二线程的一系统调用指令的执行。
8.如权利要求1所述的微处理器,其中上述控制单元用以控制上述预测单元选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据搜集给上述第二线程的前一执行实例的信息。
9.如权利要求8所述的微处理器,其中搜集给上述第二线程的上述前一执行实例的上述信息包括在上述第二线程的上述前一执行实例期间由上述微处理器所引退的指令数量。
10.如权利要求8所述的微处理器,其中搜集给上述第二线程的上述前一执行实例的上述信息指示在上述第二线程的上述前一执行实例期间由上述预测单元所进行的静态预测的效果。
11.如权利要求10所述的微处理器,其中搜集给上述第二线程的上述前一执行实例的上述信息指示在上述第二线程的上述前一执行实例期间由上述预测单元所进行的上述静态预测以及在上述第一线程的前一执行实例期间由上述预测单元所进行的上述预测的效果。
12.如权利要求1所述的微处理器,其中上述控制单元用以控制上述预测单元选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述第二线程的识别码。
13.如权利要求12所述的微处理器,其中上述控制单元还用以根据下列清单的一个或以上以决定上述第二线程的上述识别码:造成上述转变的事件的类型、当检测到上述事件时上述微处理器的架构状态、以及上述两者的结合。
14.如权利要求13所述的微处理器,其中造成上述转变的上述事件的上述类型来自下列清单:系统调用指令的执行、软件中断指令的执行、内部特权或者任务切换程序调用的执行、以及特殊状况的检测。
15.如权利要求13所述的微处理器,其中当检测到上述事件时,上述微处理器的上述架构状态来自下列清单:一个或以上的上述微处理器的通用目的寄存器的值、一个或以上的上述微处理器的模块特定寄存器的值、上述微处理器的指令指针寄存器的值、上述微处理器的中断向量的值、以及上述的结合。
16.如权利要求1所述的微处理器,其中上述微处理器还包括:
存储器,用以存储上述预测单元的上述历史记录的状况;以及
其中,上述控制单元还用以:
控制上述预测单元将响应于第一转变的上述预测单元的上述历史记录的第一状况存储至上述存储器;
检测从运行上述第二线程至运行第三线程的第二转变;
控制上述预测单元将响应于第二转变的上述存储器的上述历史记录的第二状况载入至上述预测单元;以及
控制上述预测单元恢复累计上述历史记录,以及当运行上述第三线程时,利用上述历史记录的上述第二状况进行上述预测。
17.如权利要求16所述的微处理器,其中当上述第一线程以及上述第三线程为藉由上述第一转变而自运行中断的相同处理的部分时,上述控制单元用以控制上述预测单元不要自上述存储器载入上述历史记录的上述第二状况至上述预测单元。
18.如权利要求17所述的微处理器,其中上述控制单元决定上述第一线程的处理识别符以及上述第三线程的处理识别符是否相同以决定上述第一线程以及上述第三线程是否为上述相同处理的部分。
19.如权利要求18所述的微处理器,其中上述处理识别符包括x86处理内容识别符PCID。
20.如权利要求17所述的微处理器,其中上述控制单元决定上述第一线程的页面目录地址以及上述第三线程的页面目录地址是否相同以决定上述第一线程以及上述第三线程是否为上述相同处理的部分。
21.一种操作方法,适用于微处理器,包括:
累计由上述微处理器所执行的指令的特性的历史记录,以及当上述微处理器运行第一线程时,根据上述历史记录进行与后续指令有关的预测;
检测从运行上述第一线程至运行与上述第一线程相异的第二线程之间的转变;以及
当运行上述第二线程时,选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,而进行不需使用上述历史记录的静态预测,其中上述第二线程与上述第一线程相比不经常运行。
22.如权利要求21所述的操作方法,其中当运行在上述第二线程时,不使用上述历史记录进行预测。
23.如权利要求21所述的操作方法,其中选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述第二线程所对应的特权等级进行。
24.如权利要求21所述的操作方法,其中选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述第二线程是否运行于中断处理程序。
25.如权利要求21所述的操作方法,其中选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述转变是否响应于由上述第一线程造成上述微处理器运行上述第二线程的一系统调用指令的执行。
26.如权利要求21所述的操作方法,其中选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据搜集给上述第二线程的前一执行实例的信息进行上述预测。
27.如权利要求26所述的操作方法,其中搜集给上述第二线程的上述前一执行实例的上述信息包括在上述第二线程的上述前一执行实例期间由上述微处理器所引退的指令数量。
28.如权利要求26所述的操作方法,其中搜集给上述第二线程的上述前一执行实例的上述信息指示在上述第二线程的上述前一执行实例期间由上述预测单元所进行的静态预测的效果。
29.如权利要求21所述的操作方法,其中选择性地暂停累计上述历史记录,以及选择性地暂停利用上述历史记录进行上述预测,当运行上述第二线程时,是根据上述第二线程的识别码。
30.如权利要求21所述的操作方法,还包括:
存储响应于第一转变的上述历史记录的第一状况至存储器;
检测从运行上述第二线程至运行第三线程的第二转变;
载入上述存储器中响应于上述第二转变的上述历史记录的第二状况,以及当执行上述第三线程时,利用上述历史记录的上述第二状况进行预测;
恢复累计上述历史记录,以及当运行上述第三线程时,利用上述历史记录的上述第二状况进行上述预测。
31.如权利要求30所述的操作方法,还包括:
当上述第一线程以及上述第三线程为藉由上述第一状况而自运行中断的相同处理的部分时,不载入上述存储器中上述历史记录的上述第二状况。
CN201410251303.0A 2013-06-10 2014-06-06 微处理器以及微处理器操作方法 Active CN104156197B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410718882.5A CN104461470B (zh) 2013-06-10 2014-06-06 微处理器以及微处理器操作方法
CN201410718900.XA CN104484158B (zh) 2013-06-10 2014-06-06 微处理器以及微处理器操作方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361833044P 2013-06-10 2013-06-10
US61/833,044 2013-06-10
US14/165,354 2014-01-27
US14/165,354 US9507597B2 (en) 2013-06-10 2014-01-27 Selective accumulation and use of predicting unit history

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN201410718882.5A Division CN104461470B (zh) 2013-06-10 2014-06-06 微处理器以及微处理器操作方法
CN201410718900.XA Division CN104484158B (zh) 2013-06-10 2014-06-06 微处理器以及微处理器操作方法

Publications (2)

Publication Number Publication Date
CN104156197A CN104156197A (zh) 2014-11-19
CN104156197B true CN104156197B (zh) 2017-10-13

Family

ID=50513669

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201410718882.5A Active CN104461470B (zh) 2013-06-10 2014-06-06 微处理器以及微处理器操作方法
CN201410718900.XA Active CN104484158B (zh) 2013-06-10 2014-06-06 微处理器以及微处理器操作方法
CN201410251303.0A Active CN104156197B (zh) 2013-06-10 2014-06-06 微处理器以及微处理器操作方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201410718882.5A Active CN104461470B (zh) 2013-06-10 2014-06-06 微处理器以及微处理器操作方法
CN201410718900.XA Active CN104484158B (zh) 2013-06-10 2014-06-06 微处理器以及微处理器操作方法

Country Status (3)

Country Link
US (1) US9507597B2 (zh)
EP (1) EP2813943B1 (zh)
CN (3) CN104461470B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9891918B2 (en) 2014-01-27 2018-02-13 Via Alliance Semiconductor Co., Ltd. Fractional use of prediction history storage for operating system routines
WO2015110862A1 (en) * 2014-01-27 2015-07-30 Via Alliance Semiconductor Co., Ltd. Fractional use of prediction history storage for operating system routines
US9996390B2 (en) * 2014-06-10 2018-06-12 Samsung Electronics Co., Ltd. Method and system for performing adaptive context switching
CN105993004B (zh) 2014-07-21 2019-04-02 上海兆芯集成电路有限公司 转译后备缓冲器、操作其的方法以及包含其的处理器
US10366242B2 (en) * 2014-12-23 2019-07-30 Hewlett Packard Enterprise Development Lp Prevention of a predetermined action regarding data
US9996354B2 (en) * 2015-01-09 2018-06-12 International Business Machines Corporation Instruction stream tracing of multi-threaded processors
US10908909B2 (en) 2015-06-09 2021-02-02 Optimum Semiconductor Technologies Inc. Processor with mode support
US10896130B2 (en) * 2016-10-19 2021-01-19 International Business Machines Corporation Response times in asynchronous I/O-based software using thread pairing and co-execution
CN108096837A (zh) * 2016-11-25 2018-06-01 盛趣信息技术(上海)有限公司 游戏机器人动态识别方法
CN107273098B (zh) * 2017-05-03 2020-07-31 北京中科睿芯科技有限公司 一种优化数据流架构数据传输延迟的方法及其系统
US10540181B2 (en) * 2018-01-19 2020-01-21 Marvell World Trade Ltd. Managing branch prediction information for different contexts
US10599437B2 (en) 2018-01-19 2020-03-24 Marvell World Trade Ltd. Managing obscured branch prediction information
US11275686B1 (en) * 2020-11-09 2022-03-15 Centaur Technology, Inc. Adjustable write policies controlled by feature control registers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0855646A2 (en) * 1996-12-30 1998-07-29 Texas Instruments Incorporated Conditional branch prediction apparatus and method
CN101763249A (zh) * 2008-12-25 2010-06-30 世意法(北京)半导体研发有限责任公司 对非控制流指令减少分支检验

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4679141A (en) 1985-04-29 1987-07-07 International Business Machines Corporation Pageable branch history table
US6981083B2 (en) 2002-12-05 2005-12-27 International Business Machines Corporation Processor virtualization mechanism via an enhanced restoration of hard architected states
US7120784B2 (en) 2003-04-28 2006-10-10 International Business Machines Corporation Thread-specific branch prediction by logically splitting branch history tables and predicted target address cache in a simultaneous multithreading processing environment
CN101866280B (zh) * 2009-05-29 2014-10-29 威盛电子股份有限公司 微处理器及其执行方法
US8745362B2 (en) * 2010-06-25 2014-06-03 International Business Machines Corporation Operating system aware branch predictor using a dynamically reconfigurable branch history table
US9891918B2 (en) 2014-01-27 2018-02-13 Via Alliance Semiconductor Co., Ltd. Fractional use of prediction history storage for operating system routines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0855646A2 (en) * 1996-12-30 1998-07-29 Texas Instruments Incorporated Conditional branch prediction apparatus and method
CN101763249A (zh) * 2008-12-25 2010-06-30 世意法(北京)半导体研发有限责任公司 对非控制流指令减少分支检验

Also Published As

Publication number Publication date
US9507597B2 (en) 2016-11-29
EP2813943B1 (en) 2019-05-08
CN104156197A (zh) 2014-11-19
CN104484158B (zh) 2017-07-07
CN104484158A (zh) 2015-04-01
CN104461470A (zh) 2015-03-25
EP2813943A1 (en) 2014-12-17
US20140365753A1 (en) 2014-12-11
CN104461470B (zh) 2017-07-07

Similar Documents

Publication Publication Date Title
CN104156197B (zh) 微处理器以及微处理器操作方法
JP5278624B2 (ja) シミュレーション装置,方法,およびプログラム
US11966785B2 (en) Hardware resource configuration for processing system
CN100397347C (zh) 用于smt处理器上的cpi调度的系统和方法
CN104461463B (zh) 用于微处理器的动态重设方法
EP2917840B1 (en) Prefetching to a cache based on buffer fullness
CN108463826A (zh) 用于在环转变期间保护栈的处理器扩展
CN1340760A (zh) 分区的发送队列和分配策略
CN106557303B (zh) 微处理器和用于一微处理器的检测方法
JP2013084178A (ja) シミュレーション装置,方法,およびプログラム
US20070106845A1 (en) Stack caching systems and methods
CN104169888A (zh) 运行时间仪表定向采样
CN101901133B (zh) 信息处理设备和分支预测方法
CN103838539A (zh) 性能测量单元、包括该单元的处理器核心和处理剖析方法
Adiga et al. The ibm z15 high frequency mainframe branch predictor industrial product
CN109964207A (zh) 用于时间行程调试和分析的基于高速缓存的跟踪
US20140316761A1 (en) Simulation apparatus and storage medium
CN104169886A (zh) 通过地址的运行时间检测间接采样
CN102163139A (zh) 微处理器融合载入算术/逻辑运算及跳跃宏指令
WO2024021475A1 (zh) 一种容器调度方法及装置
CN105706049B (zh) 操作系统例行程序的预测历程储存器的部分使用
Sazeides Modeling value speculation
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
Castro et al. Load-store queue management: an energy-efficient design based on a state-filtering mechanism
Lee et al. On table bandwidth and its update delay for value prediction on wide-issue ILP processors

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160121

Address after: 201203 Shanghai City Jinke road Zhangjiang hi tech Park No. 2537 Room 301

Applicant after: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.

Address before: Chinese Taiwan New Taipei City

Applicant before: VIA TECHNOLOGIES, Inc.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203

Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.