CN1831757A - 中央处理单元中的提前执行 - Google Patents

中央处理单元中的提前执行 Download PDF

Info

Publication number
CN1831757A
CN1831757A CNA2005101217613A CN200510121761A CN1831757A CN 1831757 A CN1831757 A CN 1831757A CN A2005101217613 A CNA2005101217613 A CN A2005101217613A CN 200510121761 A CN200510121761 A CN 200510121761A CN 1831757 A CN1831757 A CN 1831757A
Authority
CN
China
Prior art keywords
rob
register
instruction
cpu
stops
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.)
Granted
Application number
CNA2005101217613A
Other languages
English (en)
Other versions
CN100485607C (zh
Inventor
A·海萨姆
D·奥伦斯坦恩
R·拉吉瓦
S·斯利尼瓦萨恩
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1831757A publication Critical patent/CN1831757A/zh
Application granted granted Critical
Publication of CN100485607C publication Critical patent/CN100485607C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3824Operand accessing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

根据一个实施例,公开了一种方法。该方法包括检测中央处理单元(CPU)中的加载遗漏,停止只读缓冲器(ROB),推理性地撤回使ROB停止的指令以及后面的指令,当撤回时保持ROB中还没有被重命名的寄存器,以及当从加载遗漏接收数据时清除CPU的通路。

Description

中央处理单元中的提前执行
发明领域
本发明涉及计算机系统;更特别地,本发明涉及中央处理单元(CPUs)。
背景技术
计算机系统CPUs中提前执行(runahead execution)的实现,是为了容许必须由主存储器提供服务的CPU高速缓存中的长等待时间加载遗漏。特别地,当从存储器读取数据时,由于长等待时间加载遗漏阻塞依次撤回(in-orderretirement)长达数百个周期导致缓存器全停止,提前执行使用这些由于对上述缓存器重新排序而产生的空闲时钟周期。。
建议的提前执行模型包括检查寄存器状态,推理地执行位于加载遗漏的阴影区中(例如,遗漏的负载之后)的指令,直到遗漏的数据被读取,确保推理性的提前执行不会导致存储器状态的更新,使用坏位(poison bits)以确保调度程序不受阻,当遗漏数据返回时放弃推理性的提前执行状态,恢复被检查的寄存器状态,并且重新开始执行。
建议的提前方案存在的问题是,检查寄存器状态以及使用坏位以确保推理性提前执行不停止调度程序的步骤需要附加的硬件,这增加了CPU设计的复杂性和成本。
附图简述
本发明通过实例方式加以说明,并且不限于附图中的各幅图,其中相同的参考指示类似的部件,其中:
图1是计算机系统的一个实施例的方块图;
图2描绘了CPU的一个实施例的方块图;
图3描绘了读取/解码单元的一个实施例的方块图;
图4描绘了撤回单元的一个实施例;
图5描绘了提前执行的实施例的流程图;
图6描绘了重新排序缓冲器的一个实施例;以及
图7描绘了重新排序缓冲器的另一个实施例。
详细说明
下文描述了CPU中的提前执行。该提前执行过程包括当加载遗漏到达重新排序缓冲器的头部时停止寄存器文件更新。然后,继续加载遗漏的推理性提前和撤回,以及遗漏之后的指令而不更新寄存器文件或者发布存储到存储器。当未重命名的寄存器被撤回时,它们被保留在重新排序缓冲器中。这是通过重新排序缓冲器的头部和尾部的指针调整将未重命名的寄存器从重新排序缓冲器的头部复制到尾部而实现的。接着,当数据遗漏返回时,通路被清除(flushed)。最后,使用寄存器文件中加载遗漏的冻结状态重新开始执行。
在以下本发明的详细说明中,为了提供对本发明的全面理解而阐明了多个具体的细节。然而,对于本领域中的技术人员来说,显而易见的是,没有这些具体的细节本发明也可以实现。在其他的例子中,为了避免使本发明难以理解,公知的结构和设备以方框图的形式示出,而不示出细节。
说明书中引用的“一个(one)实施例”或“一(an)实施例”意味着,实施例中描述的特殊的特征,结构,或特性包括在本发明的至少一个实施例中。说明书中不同位置中出现的短语“在一个实施例中”并不需要全部都指向同一个实施例。
图1是计算机系统100的一个实施例的方块图。计算机系统100包括连接到总线105的中央处理单元(CPU)102。芯片组107也连接到总线105。芯片组107包括存储器控制集线器(MCH)110。MCH110可以包括连接到一主系统存储器115的一存储器控制器112。主系统存储器115存储由CPU102或者系统100中包含的任意其他设备执行的数据和指令序列。
在一个实施例中,主系统存储器115包括动态随机存取存储器(DRAM);然而,主系统存储器115也可以使用其他类型的存储器实现。附加的设备也可以连接到总线105,诸如多个CPUs和/或多个系统存储器。MCH110通过集线器接口连接到输入/输出控制集线器(ICH)140。ICH140为计算机系统100中的输入/输出(I/O)设备提供接口。
图2描绘了CPU102的一个实施例的方块图。CPU102包括读取/解码单元210,发送/执行单元220,撤回单元230以及重新排序缓冲器(ROB)240。读取/解码单元210是一个有序的单元,它从指令高速缓存(未示出)取出一用户程序指令流作为输入并且将该流解码为一系列体现该流的数据流的微操作(uops)。
图3描绘了读取/解码单元210的一个实施例的方块图。读取/解码单元210包括指令高速缓存(Icache)310,指令解码器320,分支目标缓冲器330,指令序列发生器340以及注册别名表(RAT)350。Icache310是一个本地指令高速缓存,它根据分支目标缓冲器330提供的索引来读取超高速缓冲存储器线的指令。
指令被送到解码器320,它将该指令转换成uops。使用由序列发生器340提供的微代码将一些指令解码成一到四个uops。该uops被排列并被转发到RAT350,在这里,寄存器引用被转换成物理寄存器引用。然后这些uops被传送到ROB240。
返回参考图2,发送/执行单元220是一个无序单元,它接收数据流,调度执行依赖于数据和资源有效性的uops并且暂时地存储推理性执行的结果。撤回单元230是一个有序单元,它将暂时的、推理性的结果指定(撤回)为永久状态。
图4描绘了撤回单元230的一个实施例的方块图。撤回单元230包括一寄存器文件(RF)410。撤回单元230从ROB240中读取潜在的候选者用于撤回并且确定这些候选者中的哪些是原程序序列中的下一个。撤回的结果被写入到RF410。
ROB240是一个重新排序机构,它通过有效地保持暂时的指令结果直到得知前面的指令结果,从而维持一结构状态。根据一个实施例,ROB240的实施用于简化CPU102中的提前执行,正如下面将要更加详细讨论的。
如上所述,提前执行使用由于重新排序缓冲器全停止而遇到的空闲时钟周期。这些停止是由于从主存储器读取数据时阻塞有序撤回达数百个周期的长等待时间加载遗漏的结果。图5描绘了提前执行的实施例的流程图。在处理模块510中,检测到了一加载遗漏。在处理模块520中,当一加载遗漏到达ROB240的头部时,RF410的更新被停止。
在处理模块530中,继续执行加载遗漏的推理性提前和撤回以及遗漏之后的指令。根据一个实施例,执行推理性提前和撤回而不更新RF410或者发布存储到存储器115。在处理模块540中,当那些还没有被重命名的RF410中的该寄存器被撤回时,它们被保存在ROB240中。在一个实施例中,这是通过头部和尾部的指针调整,将未重新命名的寄存器从ROB410的头部复制到尾部实现的。
在处理模块550中,当从存储器115返回加载遗漏的数据时,CPU102的流水线被清除。在处理模块560中,使用RF410中加载遗漏的冻结状态重新开始执行。在一个实施例中,将寄存器数据从发生器转发到消费者uops以便实施提前执行。由于提前模式中的RF410更新被冻结以避免执行检测寄存器状态,ROB240和一转回数据旁路,被用于转发寄存器的值。其结果是,撤回过程被修改。
在一个实施例中,每当uop具有已经被重命名的逻辑寄存器目的地,则该uop被安全地撤回,而它的值被放弃。此外,由于寄存器已经被重命名,新读取的uops不需要该寄存器,而发送/执行引擎220中等待预定位置的读取器已经从ROB240或转回数据旁路中获取了该值。图6描绘了当ROB240满时,撤回ROB240中重命名的寄存器的动作的一个实施例。如图6中所示,条目被释放而值被放弃。
在进一步的实施例中,当一uop具有一个没有被重命名的逻辑寄存器时,则终止撤回直到它被重命名,或者直到ROB240装满为止。如果当ROB240装满时寄存器没有被重命名,通过提前ROB240的头部指针而不停止撤回,不需要放弃uop的目的地寄存器的值。在一个实施例中,这是通过提前ROB240的头部指针和尾部指针来实现的。
提前两个指针有效地将uop和它的值从ROB240头部移动到尾部,而不需要实际地读写ROB240条目。由于不改变ROB240中的位置将uop从ROB240的头部移动到尾部,一RAT350重命名表为该逻辑寄存器保持正确的位置。图7描绘了当ROB240装满时,撤回ROB240中没有重新命名的寄存器的动作的一个实施例。如图7中所示,与头部指针一起提前尾部指针,留下uop和它在ROB240和RAT350中的输出用于以后的读取器。
还执行了其他的修改以使在CPU102中的提前执行能够实现。在一个实施例中,ROB240寄存器转发机构中具有重命名目的地址的uops被识别。在该实施例中,为了避免必须增加RAT350端口的数量,以半重命名带宽执行提前并且变得可用的读取端口被用于为所有资源以及重命名的uops的目的地读取RAT350。由逻辑目的地索引的RAT350中的ROB240条目是重命名的uopROB240条目。该ROB240条目中一重命名的位可以被设置为将条目标记为重命名的。应当注意到,其他实施例中,可以简单地增加RAT端口的数量。
在一个进一步的实施例中,从推理性存储器推理性加载的数据在提前执行中被转发。在该实施例中,推理性存储被存储在存储缓冲器中,甚至在它们在ROB240中的“伪撤回”之后,以允许转发到可能需要存储数据的任意加载。
然而,当存储器缓冲器装满时,最旧的提前存储被放弃而不将这些存储发布到存储器113,从而为新的提前存储提供空间。作为该机构的结果,用于从废弃的存储中接收数据的提前加载将改为从高速缓冲存储器中读取旧数据。此外,由于RF240的状态在加载遗漏点被冻结,当在提前模式中时,跳转执行清除(JEClear)被禁止。
上述的机构可以实现提前执行,同时为了提前执行而避免检查和恢复寄存器文件。此外,提供了一种快速,费用低的机构,用于通过ROB将寄存器的值从生产者传送到消费者uops而不必在撤回时更新寄存器文件。
然而,在阅读了以上的说明书之后,本发明的各种改变和修饰对于本领域的普通技术人员来说将无疑是显而易见的,应当理解的是,通过图解显示和描述的所有特定的实施例并不用于限定。因此,不同实施例的参考细节不用于限定权利要求的范围,在权利要求中只引用被认为对发明必要的那些特征。

Claims (23)

1、一种方法,包括:
检测中央处理单元(CPU)中的加载遗漏;
停止重新排序缓冲器(ROB);
推理性地撤回使ROB停止的指令以及后面的指令;
当撤回时保留ROB中还没有被重命名的寄存器;以及
当从加载遗漏接收数据时,清除CPU的流水线。
2、根据权利要求1所述的方法,其中,在停止ROB的步骤中包括:当加载遗漏到达ROB的头部时在一寄存器文件中停止寄存器文件更新。
3、根据权利要求1所述的方法,其中,导致ROB停止的指令的推理性提前和撤回以及随后的指令被执行,而不更新寄存器文件。
4、根据权利要求3所述的方法,其中,导致ROB停止的指令以及随后的指令的推理性提前和撤回被进一步执行,而不发布存储到存储设备。
5、根据权利要求3所述的方法,进一步包括:使用在寄存器文件中导致ROB停止的指令的被停止状态重新开始执行。
6、根据权利要求1所述的方法,其中,在撤回时保留ROB中的寄存器的步骤包括:通过头部和尾部的指针调整将没有被重命名的寄存器从ROB的头部复制到尾部。
7、根据权利要求1所述的方法,其中,推理性地运行导致ROB停止的指令和随后指令的撤回的步骤中,进一步包括将寄存器数据从生产者微操作(uops)转发到消费者uops。
8、根据权利要求7所述的方法,进一步包括:每当uop具有一被重命名的逻辑寄存器目的地时,就撤回该uop。。
9、根据权利要求7所述的方法,进一步包括:每当uop具有一未被重命名的逻辑寄存器时,就回收该uop的ROB条目。
10、根据权利要求9所述的方法,进一步包括停止uop撤回直到ROB被装满。
11、根据权利要求10所述的方法,进一步包括通过提前ROB的头部指针,如果ROB被装满,则不停止uop的撤回。
12、根据权利要求11所述的方法,进一步包括提前ROB的头部指针而不放弃uop目的地寄存器的值。
13、一种计算机系统,包括:
主存储器设备,以及
与主存储器设备连接的中央处理单元(CPU),包括:
一只读缓冲器(ROB);
一寄存器文件;以及
一通过停止ROB而执行推理性提前执行的与执行单元。
14、根据权利要求13所述的计算机系统,其中,所述CPU进一步包括撤回单元,在推理性提前执行期间推理性撤回使ROB停止的指令以及后面的指令。
15、根据权利要求14所述的计算机系统,其中,使ROB停止的指令和后面指令的推理性提前执行以及撤回被执行而不更新寄存器文件或者存储到主存储器设备。
16、根据权利要求15所述的计算机系统,其中,ROB通过头部和尾部的指针调整,将还没有被重命名的寄存器从ROB的头部复制到尾部,通过这种方法,ROB保持在撤回时还没有被重命名的寄存器。
17、根据权利要求13所述的计算机系统,其中,所述执行通过使用导致ROB在寄存器文件中停止的指令的停止状态来重新开始执行。
18、根据权利要求13所述的计算机系统,其中,所述执行单元通过将寄存器数据从生产者微操作(uops)转发到消费者uops以执行推理性提前执行。
19、一种中央处理单元(CPU),包括:
一只读缓冲器(ROB);和
一寄存器文件;和
一通过停止ROB以执行推理性提前执行的与执行单元。
20、根据权利要求19所述的CPU,其中,当加载遗漏到达ROB的头部时,所述执行单元通过在寄存器文件中停止寄存器文件更新从而停止ROB。
21、根据权利要求19所述的CPU,进一步包括一撤回单元,用于在推理性提前执行期间撤回使ROB停止的指令以及后面的指令。
22、根据权利要求21所述的CPU,其中,使ROB停止的指令和后续指令的所述推理性提前执行和撤回被执行,而不更新寄存器文件或存储到主存储器设备。
23、根据权利要求19所述的CPU,其中的ROB通过头部和尾部的指针调整,将还没有被重命名的寄存器从ROB的头部复制到尾部,通过这种方法,保持还没有被重命名的寄存器。
CNB2005101217613A 2004-12-28 2005-12-28 中央处理单元中的提前执行的方法和系统 Expired - Fee Related CN100485607C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/024,164 US20060149931A1 (en) 2004-12-28 2004-12-28 Runahead execution in a central processing unit
US11/024,164 2004-12-28

Publications (2)

Publication Number Publication Date
CN1831757A true CN1831757A (zh) 2006-09-13
CN100485607C CN100485607C (zh) 2009-05-06

Family

ID=36642031

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101217613A Expired - Fee Related CN100485607C (zh) 2004-12-28 2005-12-28 中央处理单元中的提前执行的方法和系统

Country Status (2)

Country Link
US (1) US20060149931A1 (zh)
CN (1) CN100485607C (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103809935A (zh) * 2012-11-14 2014-05-21 辉达公司 在超前运行期间管理潜在无效结果
CN103870240A (zh) * 2012-12-07 2014-06-18 辉达公司 用于超前运行操作的指令分类
US9547602B2 (en) 2013-03-14 2017-01-17 Nvidia Corporation Translation lookaside buffer entry systems and methods
US9569214B2 (en) 2012-12-27 2017-02-14 Nvidia Corporation Execution pipeline data forwarding
US9582280B2 (en) 2013-07-18 2017-02-28 Nvidia Corporation Branching to alternate code based on runahead determination
US9632976B2 (en) 2012-12-07 2017-04-25 Nvidia Corporation Lazy runahead operation for a microprocessor
US9875105B2 (en) 2012-05-03 2018-01-23 Nvidia Corporation Checkpointed buffer for re-entry from runahead
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10001996B2 (en) 2012-10-26 2018-06-19 Nvidia Corporation Selective poisoning of data during runahead
CN108780399A (zh) * 2016-03-24 2018-11-09 高通股份有限公司 提供有待由处理器执行的近期提供的指令的先前解码的指令的参考
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US10324725B2 (en) 2012-12-27 2019-06-18 Nvidia Corporation Fault detection in instruction translations

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747841B2 (en) * 2005-09-26 2010-06-29 Cornell Research Foundation, Inc. Method and apparatus for early load retirement in a processor system
US8035648B1 (en) * 2006-05-19 2011-10-11 Nvidia Corporation Runahead execution for graphics processing units
WO2008057557A2 (en) * 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
US8639886B2 (en) * 2009-02-03 2014-01-28 International Business Machines Corporation Store-to-load forwarding mechanism for processor runahead mode operation
US9645929B2 (en) 2012-09-14 2017-05-09 Nvidia Corporation Speculative permission acquisition for shared memory
US9003225B2 (en) * 2012-10-17 2015-04-07 Advanced Micro Devices, Inc. Confirming store-to-load forwards
US9823931B2 (en) * 2012-12-28 2017-11-21 Nvidia Corporation Queued instruction re-dispatch after runahead
US9182986B2 (en) 2012-12-29 2015-11-10 Intel Corporation Copy-on-write buffer for restoring program code from a speculative region to a non-speculative region
KR102010317B1 (ko) * 2013-03-14 2019-08-13 삼성전자주식회사 재명명 테이블 재구성을 위한 리오더-버퍼를 기초로 하는 동적 체크포인팅
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9448800B2 (en) 2013-03-14 2016-09-20 Samsung Electronics Co., Ltd. Reorder-buffer-based static checkpointing for rename table rebuilding
US10970183B1 (en) * 2013-08-16 2021-04-06 The Mathworks, Inc. System and method for improving model performance
WO2016097790A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude non-core cache-dependent load replays in out-of-order processor
US10095637B2 (en) * 2016-09-15 2018-10-09 Advanced Micro Devices, Inc. Speculative retirement of post-lock instructions

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345569A (en) * 1991-09-20 1994-09-06 Advanced Micro Devices, Inc. Apparatus and method for resolving dependencies among a plurality of instructions within a storage device
US5524263A (en) * 1994-02-25 1996-06-04 Intel Corporation Method and apparatus for partial and full stall handling in allocation
US5778245A (en) * 1994-03-01 1998-07-07 Intel Corporation Method and apparatus for dynamic allocation of multiple buffers in a processor
GB2287111B (en) * 1994-03-01 1998-08-05 Intel Corp Method for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US20040128448A1 (en) * 2002-12-31 2004-07-01 Intel Corporation Apparatus for memory communication during runahead execution
US7496732B2 (en) * 2003-12-17 2009-02-24 Intel Corporation Method and apparatus for results speculation under run-ahead execution

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US9875105B2 (en) 2012-05-03 2018-01-23 Nvidia Corporation Checkpointed buffer for re-entry from runahead
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US10001996B2 (en) 2012-10-26 2018-06-19 Nvidia Corporation Selective poisoning of data during runahead
US10628160B2 (en) 2012-10-26 2020-04-21 Nvidia Corporation Selective poisoning of data during runahead
US9740553B2 (en) 2012-11-14 2017-08-22 Nvidia Corporation Managing potentially invalid results during runahead
CN103809935A (zh) * 2012-11-14 2014-05-21 辉达公司 在超前运行期间管理潜在无效结果
US9632976B2 (en) 2012-12-07 2017-04-25 Nvidia Corporation Lazy runahead operation for a microprocessor
US9891972B2 (en) 2012-12-07 2018-02-13 Nvidia Corporation Lazy runahead operation for a microprocessor
CN103870240A (zh) * 2012-12-07 2014-06-18 辉达公司 用于超前运行操作的指令分类
US9569214B2 (en) 2012-12-27 2017-02-14 Nvidia Corporation Execution pipeline data forwarding
US10324725B2 (en) 2012-12-27 2019-06-18 Nvidia Corporation Fault detection in instruction translations
US9547602B2 (en) 2013-03-14 2017-01-17 Nvidia Corporation Translation lookaside buffer entry systems and methods
US9582280B2 (en) 2013-07-18 2017-02-28 Nvidia Corporation Branching to alternate code based on runahead determination
US9804854B2 (en) 2013-07-18 2017-10-31 Nvidia Corporation Branching to alternate code based on runahead determination
CN108780399A (zh) * 2016-03-24 2018-11-09 高通股份有限公司 提供有待由处理器执行的近期提供的指令的先前解码的指令的参考

Also Published As

Publication number Publication date
CN100485607C (zh) 2009-05-06
US20060149931A1 (en) 2006-07-06

Similar Documents

Publication Publication Date Title
CN1831757A (zh) 中央处理单元中的提前执行
KR101148495B1 (ko) 파이프라인 프로세서에서 조건 명령 실행을 촉진시키기 위해 로컬 조건 코드 레지스터를 이용하기 위한 방법 및 장치
JP3548132B2 (ja) マルチスレッド・プロセッサ内でのパイプライン・ステージのフラッシュ方法および装置
CN103699362B (zh) 微处理器及其执行的方法
US20040128448A1 (en) Apparatus for memory communication during runahead execution
JP2005521924A (ja) シングルスレッドプログラムのマルチスレッドでのインプリシットな実行を可能にするマルチスレッドプロセッサ
US7603543B2 (en) Method, apparatus and program product for enhancing performance of an in-order processor with long stalls
KR20180036490A (ko) 로컬 브랜치 디코더를 구비한 멀티이슈 마이크로코드 유닛을 포함하는 파이프라인형 프로세서
US20100262781A1 (en) Loading Data to Vector Renamed Register From Across Multiple Cache Lines
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
US11249764B2 (en) Flushing in a microprocessor with multi-step ahead branch predictor and a fetch target queue
GB2518289A (en) A modified return stack buffer
CN1494677A (zh) 数字信号处理装置
US7343478B2 (en) Register window system and method that stores the next register window in a temporary buffer
US20060095678A1 (en) Address generation interlock resolution under runahead execution
US6542988B1 (en) Sending both a load instruction and retrieved data from a load buffer to an annex prior to forwarding the load data to register file
US6970996B1 (en) Operand queue for use in a floating point unit to reduce read-after-write latency and method of operation
JP3723020B2 (ja) 分岐履歴情報の書き込み制御装置及びその方法
JP2023527758A (ja) フラッシュされた命令のレジスタマッピング状態の、他のレジスタマッピング状態のスナップショットを用い、プロセッサ内のリオーダバッファ(rob)エントリをトラバースしての復元
KR20010043091A (ko) 문맥 스위칭 능력을 가지는 장치
CN1481527A (zh) 节省资源的硬件环路
US20100100709A1 (en) Instruction control apparatus and instruction control method
US7565511B2 (en) Working register file entries with instruction based lifetime
US7793086B2 (en) Link stack misprediction resolution
WO2004023314A2 (en) Method and apparatus for handling nested interrupts

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090506

Termination date: 20131228