CN1831757A - 中央处理单元中的提前执行 - Google Patents
中央处理单元中的提前执行 Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 19
- 239000000872 buffer Substances 0.000 claims abstract description 11
- 238000011010 flushing procedure Methods 0.000 abstract 1
- 230000008707 rearrangement Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 201000006549 dyspepsia Diseases 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000002574 poison Substances 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative 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的头部复制到尾部,通过这种方法,保持还没有被重命名的寄存器。
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)
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)
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)
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 |
-
2004
- 2004-12-28 US US11/024,164 patent/US20060149931A1/en not_active Abandoned
-
2005
- 2005-12-28 CN CNB2005101217613A patent/CN100485607C/zh not_active Expired - Fee Related
Cited By (17)
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 |