KR101057163B1 - 마이크로프로세서에서 데이터-추론 연산들을 식별하는 추론포인터들 - Google Patents
마이크로프로세서에서 데이터-추론 연산들을 식별하는 추론포인터들 Download PDFInfo
- Publication number
- KR101057163B1 KR101057163B1 KR1020057020786A KR20057020786A KR101057163B1 KR 101057163 B1 KR101057163 B1 KR 101057163B1 KR 1020057020786 A KR1020057020786 A KR 1020057020786A KR 20057020786 A KR20057020786 A KR 20057020786A KR 101057163 B1 KR101057163 B1 KR 101057163B1
- Authority
- KR
- South Korea
- Prior art keywords
- inference
- data
- operations
- data inference
- verification
- 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
- 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
-
- 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
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- 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
-
- 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/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
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)
- Test And Diagnosis Of Digital Computers (AREA)
- Investigating Or Analysing Biological Materials (AREA)
- Multi Processors (AREA)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/429,159 US7266673B2 (en) | 2003-05-02 | 2003-05-02 | Speculation pointers to identify data-speculative operations in microprocessor |
| US10/429,159 | 2003-05-02 | ||
| PCT/US2004/000483 WO2004099978A2 (en) | 2003-05-02 | 2004-01-09 | Apparatus and method to identify data-speculative operations in microprocessor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20060004974A KR20060004974A (ko) | 2006-01-16 |
| KR101057163B1 true KR101057163B1 (ko) | 2011-08-17 |
Family
ID=33310560
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020057020786A Expired - Fee Related KR101057163B1 (ko) | 2003-05-02 | 2004-01-09 | 마이크로프로세서에서 데이터-추론 연산들을 식별하는 추론포인터들 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US7266673B2 (enExample) |
| JP (1) | JP4745960B2 (enExample) |
| KR (1) | KR101057163B1 (enExample) |
| CN (1) | CN100373330C (enExample) |
| DE (1) | DE112004000741B4 (enExample) |
| GB (1) | GB2418045B (enExample) |
| TW (1) | TWI318371B (enExample) |
| WO (1) | WO2004099978A2 (enExample) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7721054B2 (en) * | 2005-01-18 | 2010-05-18 | Texas Instruments Incorporated | Speculative data loading using circular addressing or simulated circular addressing |
| US8595557B2 (en) * | 2005-02-23 | 2013-11-26 | International Business Machines Corporation | Method and apparatus for verifying memory testing software |
| US7921280B2 (en) * | 2008-06-27 | 2011-04-05 | Intel Corporation | Selectively powered retirement unit using a partitioned allocation array and a partitioned writeback array |
| US8880854B2 (en) * | 2009-02-11 | 2014-11-04 | Via Technologies, Inc. | Out-of-order execution microprocessor that speculatively executes dependent memory access instructions by predicting no value change by older instructions that load a segment register |
| US8707015B2 (en) | 2010-07-01 | 2014-04-22 | Advanced Micro Devices, Inc. | Reclaiming physical registers renamed as microcode architectural registers to be available for renaming as instruction set architectural registers based on an active status indicator |
| US8589892B2 (en) | 2010-11-21 | 2013-11-19 | International Business Machines Corporation | Verification of speculative execution |
| US8745599B2 (en) * | 2012-01-19 | 2014-06-03 | National Tsing Hua University | Probabilistic pointer analysis method using SSA form |
| US10776123B2 (en) | 2018-12-03 | 2020-09-15 | Advanced Micro Devices, Inc. | Faster sparse flush recovery by creating groups that are marked based on an instruction type |
| CN112559048B (zh) * | 2019-09-25 | 2023-12-12 | 阿里巴巴集团控股有限公司 | 一种指令处理装置、处理器及其处理方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5781752A (en) | 1996-12-26 | 1998-07-14 | Wisconsin Alumni Research Foundation | Table based data speculation circuit for parallel processing computer |
| WO2001061480A1 (en) * | 2000-02-14 | 2001-08-23 | Intel Corporation | Processor having replay architecture with fast and slow replay paths |
| WO2002042902A2 (en) * | 2000-11-02 | 2002-05-30 | Intel Corporation | Method and apparatus for scheduling multiple micro-operations in a processor |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5740393A (en) * | 1993-10-15 | 1998-04-14 | Intel Corporation | Instruction pointer limits in processor that performs speculative out-of-order instruction execution |
| US5903741A (en) * | 1995-01-25 | 1999-05-11 | Advanced Micro Devices, Inc. | Method of allocating a fixed reorder buffer storage line for execution results regardless of a number of concurrently dispatched instructions |
| US6665792B1 (en) * | 1996-11-13 | 2003-12-16 | Intel Corporation | Interface to a memory system for a processor having a replay system |
| US6212626B1 (en) | 1996-11-13 | 2001-04-03 | Intel Corporation | Computer processor having a checker |
| US5966544A (en) | 1996-11-13 | 1999-10-12 | Intel Corporation | Data speculatable processor having reply architecture |
| US6735688B1 (en) | 1996-11-13 | 2004-05-11 | Intel Corporation | Processor having replay architecture with fast and slow replay paths |
| US6381691B1 (en) * | 1999-08-13 | 2002-04-30 | International Business Machines Corporation | Method and apparatus for reordering memory operations along multiple execution paths in a processor |
| US6718839B2 (en) | 2001-06-26 | 2004-04-13 | Sun Microsystems, Inc. | Method and apparatus for facilitating speculative loads in a multiprocessor system |
| EP1402349A2 (en) | 2001-06-26 | 2004-03-31 | Sun Microsystems, Inc. | Method and apparatus for facilitating speculative stores in a multiprocessor system |
| US6952764B2 (en) | 2001-12-31 | 2005-10-04 | Intel Corporation | Stopping replay tornadoes |
| US7363470B2 (en) | 2003-05-02 | 2008-04-22 | Advanced Micro Devices, Inc. | System and method to prevent in-flight instances of operations from disrupting operation replay within a data-speculative microprocessor |
-
2003
- 2003-05-02 US US10/429,159 patent/US7266673B2/en not_active Expired - Lifetime
-
2004
- 2004-01-09 KR KR1020057020786A patent/KR101057163B1/ko not_active Expired - Fee Related
- 2004-01-09 WO PCT/US2004/000483 patent/WO2004099978A2/en not_active Ceased
- 2004-01-09 JP JP2006508587A patent/JP4745960B2/ja not_active Expired - Fee Related
- 2004-01-09 GB GB0521335A patent/GB2418045B/en not_active Expired - Fee Related
- 2004-01-09 CN CNB2004800119458A patent/CN100373330C/zh not_active Expired - Fee Related
- 2004-01-09 DE DE112004000741T patent/DE112004000741B4/de not_active Expired - Fee Related
- 2004-03-05 TW TW093105848A patent/TWI318371B/zh not_active IP Right Cessation
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5781752A (en) | 1996-12-26 | 1998-07-14 | Wisconsin Alumni Research Foundation | Table based data speculation circuit for parallel processing computer |
| WO2001061480A1 (en) * | 2000-02-14 | 2001-08-23 | Intel Corporation | Processor having replay architecture with fast and slow replay paths |
| WO2002042902A2 (en) * | 2000-11-02 | 2002-05-30 | Intel Corporation | Method and apparatus for scheduling multiple micro-operations in a processor |
Also Published As
| Publication number | Publication date |
|---|---|
| CN100373330C (zh) | 2008-03-05 |
| DE112004000741B4 (de) | 2008-02-14 |
| TW200502849A (en) | 2005-01-16 |
| TWI318371B (en) | 2009-12-11 |
| US20040221140A1 (en) | 2004-11-04 |
| CN1784654A (zh) | 2006-06-07 |
| KR20060004974A (ko) | 2006-01-16 |
| WO2004099978A3 (en) | 2005-12-08 |
| DE112004000741T5 (de) | 2006-05-11 |
| GB0521335D0 (en) | 2005-11-30 |
| JP4745960B2 (ja) | 2011-08-10 |
| GB2418045B (en) | 2007-02-28 |
| GB2418045A (en) | 2006-03-15 |
| JP2006525595A (ja) | 2006-11-09 |
| US7266673B2 (en) | 2007-09-04 |
| WO2004099978A2 (en) | 2004-11-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101192814B1 (ko) | 로드가 선행하는 스토어에 의존적인지를 예측하는 의존성 매커니즘을 구비한 프로세서 | |
| KR100958705B1 (ko) | 로드 동작들의 추론적 결과들을 레지스터 값들에링크시키는 시스템 및 방법 | |
| US6950925B1 (en) | Scheduler for use in a microprocessor that supports data-speculative execution | |
| KR100953207B1 (ko) | 로드/저장 오퍼레이션들을 바이패스하기 위하여 추론적 소스 오퍼랜드를 사용하는 시스템 및 방법 | |
| US7263600B2 (en) | System and method for validating a memory file that links speculative results of load operations to register values | |
| KR101019224B1 (ko) | 이중 용도 레지스터를 식별하는 어드레스 지정 패턴에기반한 데이터 추측 | |
| KR101093784B1 (ko) | 리플레이 메커니즘을 구비한 로드 저장 유닛 | |
| KR101056820B1 (ko) | 연산들의 인-플라이트 인스턴스들이 데이터-추론마이크로프로세서 내에서 연산 재실행을 중단하는 것을방지하기 위한 시스템 및 방법 | |
| KR101057163B1 (ko) | 마이크로프로세서에서 데이터-추론 연산들을 식별하는 추론포인터들 | |
| US7222226B1 (en) | System and method for modifying a load operation to include a register-to-register move operation in order to forward speculative load results to a dependent operation | |
| US7937569B1 (en) | System and method for scheduling operations using speculative data operands | |
| KR20070019750A (ko) | 로드 동작의 투기적인 결과들을 레지스터 값들에 연결하는메모리 파일을 유효화하기 위한 시스템 및 그 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| A201 | Request for examination | ||
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| N231 | Notification of change of applicant | ||
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R11-asn-PN2301 St.27 status event code: A-3-3-R10-R13-asn-PN2301 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
Fee payment year number: 1 St.27 status event code: A-2-2-U10-U12-oth-PR1002 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| FPAY | Annual fee payment |
Payment date: 20140722 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 4 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| FPAY | Annual fee payment |
Payment date: 20150716 Year of fee payment: 5 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 5 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| FPAY | Annual fee payment |
Payment date: 20160720 Year of fee payment: 6 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 6 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
Not in force date: 20170810 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE St.27 status event code: A-4-4-U10-U13-oth-PC1903 |
|
| PC1903 | Unpaid annual fee |
Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20170810 St.27 status event code: N-4-6-H10-H13-oth-PC1903 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |