CN100342349C - 错误推测之后的指令再执行的流水线外部跟踪缓冲器 - Google Patents
错误推测之后的指令再执行的流水线外部跟踪缓冲器 Download PDFInfo
- Publication number
- CN100342349C CN100342349C CNB988136562A CN98813656A CN100342349C CN 100342349 C CN100342349 C CN 100342349C CN B988136562 A CNB988136562 A CN B988136562A CN 98813656 A CN98813656 A CN 98813656A CN 100342349 C CN100342349 C CN 100342349C
- Authority
- CN
- China
- Prior art keywords
- instruction
- trace buffer
- thread
- processor
- instructions
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/991,269 | 1997-12-16 | ||
| US08/991,269 US6240509B1 (en) | 1997-12-16 | 1997-12-16 | Out-of-pipeline trace buffer for holding instructions that may be re-executed following misspeculation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1286771A CN1286771A (zh) | 2001-03-07 |
| CN100342349C true CN100342349C (zh) | 2007-10-10 |
Family
ID=25537042
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB988136562A Expired - Fee Related CN100342349C (zh) | 1997-12-16 | 1998-12-11 | 错误推测之后的指令再执行的流水线外部跟踪缓冲器 |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US6240509B1 (enExample) |
| EP (1) | EP1040421B1 (enExample) |
| JP (1) | JP3971893B2 (enExample) |
| KR (1) | KR100382126B1 (enExample) |
| CN (1) | CN100342349C (enExample) |
| AU (1) | AU1911099A (enExample) |
| BR (1) | BR9814290A (enExample) |
| DE (1) | DE69829778T2 (enExample) |
| TW (1) | TW388811B (enExample) |
| WO (1) | WO1999031589A1 (enExample) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110688160A (zh) * | 2019-09-04 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种指令流水线处理方法、系统、设备及计算机存储介质 |
Families Citing this family (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6212626B1 (en) | 1996-11-13 | 2001-04-03 | Intel Corporation | Computer processor having a checker |
| US6463522B1 (en) * | 1997-12-16 | 2002-10-08 | Intel Corporation | Memory system for ordering load and store instructions in a processor that performs multithread execution |
| US6772324B2 (en) | 1997-12-17 | 2004-08-03 | Intel Corporation | Processor having multiple program counters and trace buffers outside an execution pipeline |
| US6412067B1 (en) | 1998-08-11 | 2002-06-25 | Intel Corporation | Backing out of a processor architectural state |
| SE9901146D0 (sv) * | 1998-11-16 | 1999-03-29 | Ericsson Telefon Ab L M | A processing system and method |
| SE9901145D0 (sv) | 1998-11-16 | 1999-03-29 | Ericsson Telefon Ab L M | A processing system and method |
| SE9803901D0 (sv) * | 1998-11-16 | 1998-11-16 | Ericsson Telefon Ab L M | a device for a service network |
| AU1437300A (en) * | 1998-11-16 | 2000-06-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Concurrent processing for event-based systems |
| SE9902373D0 (sv) * | 1998-11-16 | 1999-06-22 | Ericsson Telefon Ab L M | A processing system and method |
| US6571359B1 (en) * | 1999-12-13 | 2003-05-27 | Intel Corporation | Systems and methods for testing processors |
| US6658554B1 (en) * | 1999-03-09 | 2003-12-02 | Wisconsin Alumni Res Found | Electronic processor providing direct data transfer between linked data consuming instructions |
| EP1050807A1 (en) * | 1999-05-03 | 2000-11-08 | Sgs Thomson Microelectronics Sa | Memory access in a computer memory |
| US6463526B1 (en) * | 1999-06-07 | 2002-10-08 | Sun Microsystems, Inc. | Supporting multi-dimensional space-time computing through object versioning |
| US7100027B1 (en) * | 1999-12-13 | 2006-08-29 | Intel Corporation | System and method for reproducing system executions using a replay handler |
| US6892380B2 (en) * | 1999-12-30 | 2005-05-10 | Texas Instruments Incorporated | Method for software pipelining of irregular conditional control loops |
| JP2001209535A (ja) * | 2000-01-27 | 2001-08-03 | Toshiba Corp | プロセッサの命令スケジューリング装置 |
| US6609247B1 (en) * | 2000-02-18 | 2003-08-19 | Hewlett-Packard Development Company | Method and apparatus for re-creating the trace of an emulated instruction set when executed on hardware native to a different instruction set field |
| US6931641B1 (en) | 2000-04-04 | 2005-08-16 | International Business Machines Corporation | Controller for multiple instruction thread processors |
| US6880069B1 (en) * | 2000-06-30 | 2005-04-12 | Intel Corporation | Replay instruction morphing |
| US6981129B1 (en) * | 2000-11-02 | 2005-12-27 | Intel Corporation | Breaking replay dependency loops in a processor using a rescheduled replay queue |
| US6877086B1 (en) * | 2000-11-02 | 2005-04-05 | Intel Corporation | Method and apparatus for rescheduling multiple micro-operations in a processor using a replay queue and a counter |
| US7207035B2 (en) * | 2001-08-23 | 2007-04-17 | International Business Machines Corporation | Apparatus and method for converting an instruction and data trace to an executable program |
| US7047395B2 (en) * | 2001-11-13 | 2006-05-16 | Intel Corporation | Reordering serial data in a system with parallel processing flows |
| US6950924B2 (en) * | 2002-01-02 | 2005-09-27 | Intel Corporation | Passing decoded instructions to both trace cache building engine and allocation module operating in trace cache or decoder reading state |
| CN100449478C (zh) * | 2002-05-31 | 2009-01-07 | 德拉华州大学 | 用于实时多线程处理的方法和装置 |
| US7941651B1 (en) | 2002-06-27 | 2011-05-10 | Intel Corporation | Method and apparatus for combining micro-operations to process immediate data |
| US7103751B1 (en) | 2002-06-27 | 2006-09-05 | Intel Corporation | Method and apparatus for representation of an address in canonical form |
| US7111148B1 (en) | 2002-06-27 | 2006-09-19 | Intel Corporation | Method and apparatus for compressing relative addresses |
| US7010665B1 (en) | 2002-06-27 | 2006-03-07 | Intel Corporation | Method and apparatus for decompressing relative addresses |
| US7194603B2 (en) * | 2003-04-23 | 2007-03-20 | International Business Machines Corporation | SMT flush arbitration |
| US20040225870A1 (en) * | 2003-05-07 | 2004-11-11 | Srinivasan Srikanth T. | Method and apparatus for reducing wrong path execution in a speculative multi-threaded processor |
| US20040255104A1 (en) * | 2003-06-12 | 2004-12-16 | Intel Corporation | Method and apparatus for recycling candidate branch outcomes after a wrong-path execution in a superscalar processor |
| CN100442244C (zh) * | 2004-05-12 | 2008-12-10 | Nxp股份有限公司 | 具有跟踪协处理器的数据处理设备、系统和方法 |
| US7496735B2 (en) * | 2004-11-22 | 2009-02-24 | Strandera Corporation | Method and apparatus for incremental commitment to architectural state in a microprocessor |
| US7508396B2 (en) | 2005-09-28 | 2009-03-24 | Silicon Integrated Systems Corp. | Register-collecting mechanism, method for performing the same and pixel processing system employing the same |
| US8219885B2 (en) * | 2006-05-12 | 2012-07-10 | Arm Limited | Error detecting and correcting mechanism for a register file |
| US20100306509A1 (en) * | 2009-05-29 | 2010-12-02 | Via Technologies, Inc. | Out-of-order execution microprocessor with reduced store collision load replay reduction |
| CN102567137B (zh) * | 2010-12-27 | 2013-09-25 | 北京国睿中数科技股份有限公司 | 在分支预测失败时使用rob恢复rat内容的系统和方法 |
| US9612934B2 (en) * | 2011-10-28 | 2017-04-04 | Cavium, Inc. | Network processor with distributed trace buffers |
| WO2013188701A1 (en) * | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization |
| US9830224B2 (en) * | 2013-03-15 | 2017-11-28 | Nvidia Corporation | Selective fault stalling for a GPU memory pipeline in a unified virtual memory system |
| US9710272B2 (en) | 2014-04-25 | 2017-07-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Computer processor with generation renaming |
| US10209992B2 (en) | 2014-04-25 | 2019-02-19 | Avago Technologies International Sales Pte. Limited | System and method for branch prediction using two branch history tables and presetting a global branch history register |
| US9996354B2 (en) | 2015-01-09 | 2018-06-12 | International Business Machines Corporation | Instruction stream tracing of multi-threaded processors |
| CN104657145B (zh) * | 2015-03-09 | 2017-12-15 | 上海兆芯集成电路有限公司 | 用于微处理器的重发停靠的系统和方法 |
| GB2572968B (en) * | 2018-04-17 | 2020-09-02 | Advanced Risc Mach Ltd | Tracking speculative data caching |
| US11294828B2 (en) * | 2019-05-15 | 2022-04-05 | Arm Limited | Apparatus and method for controlling allocation of information into a cache storage |
| US20250217288A1 (en) * | 2023-12-29 | 2025-07-03 | Intel Corporation | Register renaming caching |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5524262A (en) * | 1993-09-30 | 1996-06-04 | Intel Corporation | Apparatus and method for renaming registers in a processor and resolving data dependencies thereof |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5153848A (en) | 1988-06-17 | 1992-10-06 | Bipolar Integrated Technology, Inc. | Floating point processor with internal free-running clock |
| US5134693A (en) | 1989-01-18 | 1992-07-28 | Intel Corporation | System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel |
| US5142634A (en) | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Branch prediction |
| US5309561A (en) | 1990-09-28 | 1994-05-03 | Tandem Computers Incorporated | Synchronous processor unit with interconnected, separately clocked processor sections which are automatically synchronized for data transfer operations |
| US5524250A (en) | 1991-08-23 | 1996-06-04 | Silicon Graphics, Inc. | Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers |
| US5546593A (en) | 1992-05-18 | 1996-08-13 | Matsushita Electric Industrial Co., Ltd. | Multistream instruction processor able to reduce interlocks by having a wait state for an instruction stream |
| US5313634A (en) | 1992-07-28 | 1994-05-17 | International Business Machines Corporation | Computer system branch prediction of subroutine returns |
| US5420990A (en) * | 1993-06-17 | 1995-05-30 | Digital Equipment Corporation | Mechanism for enforcing the correct order of instruction execution |
| US5588126A (en) | 1993-12-30 | 1996-12-24 | Intel Corporation | Methods and apparatus for fordwarding buffered store data on an out-of-order execution computer system |
| US5664137A (en) | 1994-01-04 | 1997-09-02 | Intel Corporation | Method and apparatus for executing and dispatching store operations in a computer system |
| US5564028A (en) * | 1994-01-11 | 1996-10-08 | Texas Instruments Incorporated | Pipelined data processing including instruction trace |
| US5586278A (en) | 1994-03-01 | 1996-12-17 | Intel Corporation | Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor |
| JP3547482B2 (ja) * | 1994-04-15 | 2004-07-28 | 株式会社日立製作所 | 情報処理装置 |
| US5613083A (en) * | 1994-09-30 | 1997-03-18 | Intel Corporation | Translation lookaside buffer that is non-blocking in response to a miss for use within a microprocessor capable of processing speculative instructions |
| US5802272A (en) * | 1994-12-19 | 1998-09-01 | Digital Equipment Corporation | Method and apparatus for tracing unpredictable execution flows in a trace buffer of a high-speed computer system |
| US5812811A (en) * | 1995-02-03 | 1998-09-22 | International Business Machines Corporation | Executing speculative parallel instructions threads with forking and inter-thread communication |
| US5724565A (en) | 1995-02-03 | 1998-03-03 | International Business Machines Corporation | Method and system for processing first and second sets of instructions by first and second types of processing systems |
| US5832260A (en) * | 1995-12-29 | 1998-11-03 | Intel Corporation | Processor microarchitecture for efficient processing of instructions in a program including a conditional program flow control instruction |
| US5778210A (en) * | 1996-01-11 | 1998-07-07 | Intel Corporation | Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time |
| US5754818A (en) * | 1996-03-22 | 1998-05-19 | Sun Microsystems, Inc. | Architecture and method for sharing TLB entries through process IDS |
| US5933627A (en) | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
| US5961639A (en) | 1996-12-16 | 1999-10-05 | International Business Machines Corporation | Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution |
| US5887166A (en) | 1996-12-16 | 1999-03-23 | International Business Machines Corporation | Method and system for constructing a program including a navigation instruction |
| US5881280A (en) * | 1997-07-25 | 1999-03-09 | Hewlett-Packard Company | Method and system for selecting instructions for re-execution for in-line exception recovery in a speculative execution processor |
-
1997
- 1997-12-16 US US08/991,269 patent/US6240509B1/en not_active Expired - Lifetime
-
1998
- 1998-12-11 DE DE69829778T patent/DE69829778T2/de not_active Expired - Lifetime
- 1998-12-11 BR BR9814290-9A patent/BR9814290A/pt not_active Application Discontinuation
- 1998-12-11 WO PCT/US1998/026408 patent/WO1999031589A1/en not_active Ceased
- 1998-12-11 AU AU19110/99A patent/AU1911099A/en not_active Abandoned
- 1998-12-11 JP JP2000539419A patent/JP3971893B2/ja not_active Expired - Fee Related
- 1998-12-11 KR KR10-2000-7006657A patent/KR100382126B1/ko not_active Expired - Fee Related
- 1998-12-11 EP EP98963873A patent/EP1040421B1/en not_active Expired - Lifetime
- 1998-12-11 CN CNB988136562A patent/CN100342349C/zh not_active Expired - Fee Related
- 1998-12-16 TW TW087120952A patent/TW388811B/zh not_active IP Right Cessation
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5524262A (en) * | 1993-09-30 | 1996-06-04 | Intel Corporation | Apparatus and method for renaming registers in a processor and resolving data dependencies thereof |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110688160A (zh) * | 2019-09-04 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种指令流水线处理方法、系统、设备及计算机存储介质 |
| CN110688160B (zh) * | 2019-09-04 | 2021-11-19 | 苏州浪潮智能科技有限公司 | 一种指令流水线处理方法、系统、设备及计算机存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW388811B (en) | 2000-05-01 |
| JP3971893B2 (ja) | 2007-09-05 |
| DE69829778T2 (de) | 2006-01-26 |
| AU1911099A (en) | 1999-07-05 |
| KR20010024750A (ko) | 2001-03-26 |
| HK1029194A1 (en) | 2001-03-23 |
| KR100382126B1 (ko) | 2003-05-09 |
| EP1040421B1 (en) | 2005-04-13 |
| US6240509B1 (en) | 2001-05-29 |
| JP2002508567A (ja) | 2002-03-19 |
| DE69829778D1 (de) | 2005-05-19 |
| WO1999031589A1 (en) | 1999-06-24 |
| EP1040421A1 (en) | 2000-10-04 |
| EP1040421A4 (en) | 2002-07-17 |
| BR9814290A (pt) | 2001-10-30 |
| CN1286771A (zh) | 2001-03-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN100342349C (zh) | 错误推测之后的指令再执行的流水线外部跟踪缓冲器 | |
| CN100392622C (zh) | 具有存储器顺序缓冲器的处理器 | |
| CN1245681C (zh) | 进入和退出多线程处理器中多线程的方法和装置 | |
| CN1127016C (zh) | 计算机处理装置和方法 | |
| CN1183446C (zh) | 处理多线程处理器中事件发生的方法和装置 | |
| CN100390727C (zh) | 具有多程序计数器和在执行流水线外面的追踪缓冲区的处理器 | |
| CN1095117C (zh) | 存数指令结果的前送的方法和处理器 | |
| CN1222878C (zh) | 在一个多线程处理器内停用时钟信号的方法和装置 | |
| CN1210649C (zh) | 能够发送及重新发送附属链接的排程器、包括该排程器的处理器以及排程方法 | |
| CN1209706C (zh) | 具有不训练的存储至加载转送预测器 | |
| CN1296818C (zh) | 用于多线程并行处理器的指令 | |
| CN1099632C (zh) | 处理系统和操作方法 | |
| CN1177772A (zh) | 独立处理多个指令流、软式控制各指令流的处理功能的多程序流程同时处理器 | |
| CN1678988A (zh) | 数据处理设备中的流水线之间的同步化 | |
| CN1399739A (zh) | 并行处理器结构的sram控制器 | |
| CN1387649A (zh) | 并行处理器结构 | |
| CN1864131A (zh) | 处置在基于跟踪缓存的处理器中的异常指令的系统及方法 | |
| CN1742257A (zh) | 基于识别寻址模式的双目的寄存器的数据预测机制 | |
| CN1846194A (zh) | 一种在处理器中执行的计算线程的暂停与解除分配的整合机制 | |
| CN1746842A (zh) | 用于乱序执行条件指令的硬件装置及其执行方法 | |
| CN1506809A (zh) | 模拟装置、模拟方法及程序 | |
| CN1185609A (zh) | 多处理器计算机系统中共享结果数据的方法和系统 | |
| CN1099082C (zh) | 处理系统及其操作方法 | |
| CN1604044A (zh) | 用于指令和数据访问的选择性计数的方法和装置 | |
| CN1758213A (zh) | 带有共享内容的异构型并行多线程处理器(hpmt) |
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: 20071010 Termination date: 20111211 |