KR100764920B1 - 언트레이닝을 구비하는 저장 로드 전송 예측기 - Google Patents
언트레이닝을 구비하는 저장 로드 전송 예측기 Download PDFInfo
- Publication number
- KR100764920B1 KR100764920B1 KR1020027008671A KR20027008671A KR100764920B1 KR 100764920 B1 KR100764920 B1 KR 100764920B1 KR 1020027008671 A KR1020027008671 A KR 1020027008671A KR 20027008671 A KR20027008671 A KR 20027008671A KR 100764920 B1 KR100764920 B1 KR 100764920B1
- Authority
- KR
- South Korea
- Prior art keywords
- load
- memory operation
- storage
- dependency
- execution
- 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 - Lifetime
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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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/3834—Maintaining memory consistency
-
- 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/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
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)
- Memory System Of A Hierarchy Structure (AREA)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/476,937 US6651161B1 (en) | 2000-01-03 | 2000-01-03 | Store load forward predictor untraining |
| US09/476,937 | 2000-01-03 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20020097148A KR20020097148A (ko) | 2002-12-31 |
| KR100764920B1 true KR100764920B1 (ko) | 2007-10-09 |
Family
ID=23893860
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020027008671A Expired - Lifetime KR100764920B1 (ko) | 2000-01-03 | 2000-08-08 | 언트레이닝을 구비하는 저장 로드 전송 예측기 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US6651161B1 (enExample) |
| EP (1) | EP1244961B1 (enExample) |
| JP (1) | JP4920156B2 (enExample) |
| KR (1) | KR100764920B1 (enExample) |
| CN (1) | CN1209706C (enExample) |
| DE (1) | DE60009151T2 (enExample) |
| WO (1) | WO2001050252A1 (enExample) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7739483B2 (en) * | 2001-09-28 | 2010-06-15 | Intel Corporation | Method and apparatus for increasing load bandwidth |
| US7165167B2 (en) * | 2003-06-10 | 2007-01-16 | Advanced Micro Devices, Inc. | Load store unit with replay mechanism |
| US7321964B2 (en) * | 2003-07-08 | 2008-01-22 | Advanced Micro Devices, Inc. | Store-to-load forwarding buffer using indexed lookup |
| US7376817B2 (en) * | 2005-08-10 | 2008-05-20 | P.A. Semi, Inc. | Partial load/store forward prediction |
| US7590825B2 (en) * | 2006-03-07 | 2009-09-15 | Intel Corporation | Counter-based memory disambiguation techniques for selectively predicting load/store conflicts |
| US8099582B2 (en) * | 2009-03-24 | 2012-01-17 | International Business Machines Corporation | Tracking deallocated load instructions using a dependence matrix |
| US20100306509A1 (en) * | 2009-05-29 | 2010-12-02 | Via Technologies, Inc. | Out-of-order execution microprocessor with reduced store collision load replay reduction |
| US9405542B1 (en) * | 2012-04-05 | 2016-08-02 | Marvell International Ltd. | Method and apparatus for updating a speculative rename table in a microprocessor |
| US9128725B2 (en) * | 2012-05-04 | 2015-09-08 | Apple Inc. | Load-store dependency predictor content management |
| US9600289B2 (en) | 2012-05-30 | 2017-03-21 | Apple Inc. | Load-store dependency predictor PC hashing |
| KR101825585B1 (ko) | 2012-06-15 | 2018-02-05 | 인텔 코포레이션 | 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 |
| KR101826080B1 (ko) | 2012-06-15 | 2018-02-06 | 인텔 코포레이션 | 통합된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 |
| EP2862062B1 (en) | 2012-06-15 | 2024-03-06 | Intel Corporation | A virtual load store queue having a dynamic dispatch window with a distributed structure |
| TWI646422B (zh) | 2012-06-15 | 2019-01-01 | 英特爾股份有限公司 | 在處理器中之免消歧義失序載入/儲存佇列方法、微處理器、和非暫態性電腦可讀取儲存媒體 |
| 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 |
| KR101993562B1 (ko) | 2012-06-15 | 2019-09-30 | 인텔 코포레이션 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
| US9158691B2 (en) | 2012-12-14 | 2015-10-13 | Apple Inc. | Cross dependency checking logic |
| US9710268B2 (en) | 2014-04-29 | 2017-07-18 | Apple Inc. | Reducing latency for pointer chasing loads |
| KR101822726B1 (ko) * | 2014-12-14 | 2018-01-26 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 로드 리플레이를 억제하는 메커니즘 |
| WO2016097804A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Programmable load replay precluding mechanism |
| US9606805B1 (en) * | 2015-10-19 | 2017-03-28 | International Business Machines Corporation | Accuracy of operand store compare prediction using confidence counter |
| US9996356B2 (en) * | 2015-12-26 | 2018-06-12 | Intel Corporation | Method and apparatus for recovering from bad store-to-load forwarding in an out-of-order processor |
| US10514925B1 (en) | 2016-01-28 | 2019-12-24 | Apple Inc. | Load speculation recovery |
| US10437595B1 (en) | 2016-03-15 | 2019-10-08 | Apple Inc. | Load/store dependency predictor optimization for replayed loads |
| US11048506B2 (en) | 2016-08-19 | 2021-06-29 | Advanced Micro Devices, Inc. | Tracking stores and loads by bypassing load store units |
| US10331357B2 (en) * | 2016-08-19 | 2019-06-25 | Advanced Micro Devices, Inc. | Tracking stores and loads by bypassing load store units |
| US10684859B2 (en) * | 2016-09-19 | 2020-06-16 | Qualcomm Incorporated | Providing memory dependence prediction in block-atomic dataflow architectures |
| US10929142B2 (en) * | 2019-03-20 | 2021-02-23 | International Business Machines Corporation | Making precise operand-store-compare predictions to avoid false dependencies |
| US11243774B2 (en) | 2019-03-20 | 2022-02-08 | International Business Machines Corporation | Dynamic selection of OSC hazard avoidance mechanism |
| US11113056B2 (en) * | 2019-11-27 | 2021-09-07 | Advanced Micro Devices, Inc. | Techniques for performing store-to-load forwarding |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0709770A2 (en) | 1994-10-24 | 1996-05-01 | International Business Machines Corporation | Apparatus to control load/store instructions |
| US5781752A (en) * | 1996-12-26 | 1998-07-14 | Wisconsin Alumni Research Foundation | Table based data speculation circuit for parallel processing computer |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4521851A (en) | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
| US4594660A (en) | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Collector |
| US5488729A (en) | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
| JPH0820949B2 (ja) | 1991-11-26 | 1996-03-04 | 松下電器産業株式会社 | 情報処理装置 |
| US5619662A (en) | 1992-11-12 | 1997-04-08 | Digital Equipment Corporation | Memory reference tagging |
| US5467473A (en) | 1993-01-08 | 1995-11-14 | International Business Machines Corporation | Out of order instruction load and store comparison |
| EP0651321B1 (en) | 1993-10-29 | 2001-11-14 | Advanced Micro Devices, Inc. | Superscalar microprocessors |
| US5465336A (en) | 1994-06-30 | 1995-11-07 | International Business Machines Corporation | Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system |
| US5625789A (en) | 1994-10-24 | 1997-04-29 | International Business Machines Corporation | Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle |
| US5717883A (en) | 1995-06-28 | 1998-02-10 | Digital Equipment Corporation | Method and apparatus for parallel execution of computer programs using information providing for reconstruction of a logical sequential program |
| US5710902A (en) | 1995-09-06 | 1998-01-20 | Intel Corporation | Instruction dependency chain indentifier |
| US5835747A (en) | 1996-01-26 | 1998-11-10 | Advanced Micro Devices, Inc. | Hierarchical scan logic for out-of-order load/store execution control |
| US5799165A (en) | 1996-01-26 | 1998-08-25 | Advanced Micro Devices, Inc. | Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay |
| US5748978A (en) | 1996-05-17 | 1998-05-05 | Advanced Micro Devices, Inc. | Byte queue divided into multiple subqueues for optimizing instruction selection logic |
| US6016540A (en) | 1997-01-08 | 2000-01-18 | Intel Corporation | Method and apparatus for scheduling instructions in waves |
| US5923862A (en) | 1997-01-28 | 1999-07-13 | Samsung Electronics Co., Ltd. | Processor that decodes a multi-cycle instruction into single-cycle micro-instructions and schedules execution of the micro-instructions |
| US5996068A (en) | 1997-03-26 | 1999-11-30 | Lucent Technologies Inc. | Method and apparatus for renaming registers corresponding to multiple thread identifications |
| US5850533A (en) | 1997-06-25 | 1998-12-15 | Sun Microsystems, Inc. | Method for enforcing true dependencies in an out-of-order processor |
| US6108770A (en) * | 1998-06-24 | 2000-08-22 | Digital Equipment Corporation | Method and apparatus for predicting memory dependence using store sets |
| US6212622B1 (en) | 1998-08-24 | 2001-04-03 | Advanced Micro Devices, Inc. | Mechanism for load block on store address generation |
| US6212623B1 (en) | 1998-08-24 | 2001-04-03 | Advanced Micro Devices, Inc. | Universal dependency vector/queue entry |
| US6122727A (en) | 1998-08-24 | 2000-09-19 | Advanced Micro Devices, Inc. | Symmetrical instructions queue for high clock frequency scheduling |
| US6266744B1 (en) * | 1999-05-18 | 2001-07-24 | Advanced Micro Devices, Inc. | Store to load forwarding using a dependency link file |
| US6393536B1 (en) * | 1999-05-18 | 2002-05-21 | Advanced Micro Devices, Inc. | Load/store unit employing last-in-buffer indication for rapid load-hit-store |
| US6542984B1 (en) * | 2000-01-03 | 2003-04-01 | Advanced Micro Devices, Inc. | Scheduler capable of issuing and reissuing dependency chains |
| US6502185B1 (en) * | 2000-01-03 | 2002-12-31 | Advanced Micro Devices, Inc. | Pipeline elements which verify predecode information |
-
2000
- 2000-01-03 US US09/476,937 patent/US6651161B1/en not_active Expired - Lifetime
- 2000-08-08 WO PCT/US2000/021752 patent/WO2001050252A1/en not_active Ceased
- 2000-08-08 EP EP00951015A patent/EP1244961B1/en not_active Expired - Lifetime
- 2000-08-08 CN CNB008181551A patent/CN1209706C/zh not_active Expired - Lifetime
- 2000-08-08 KR KR1020027008671A patent/KR100764920B1/ko not_active Expired - Lifetime
- 2000-08-08 DE DE60009151T patent/DE60009151T2/de not_active Expired - Lifetime
- 2000-08-08 JP JP2001550545A patent/JP4920156B2/ja not_active Expired - Lifetime
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0709770A2 (en) | 1994-10-24 | 1996-05-01 | International Business Machines Corporation | Apparatus to control load/store instructions |
| US5781752A (en) * | 1996-12-26 | 1998-07-14 | Wisconsin Alumni Research Foundation | Table based data speculation circuit for parallel processing computer |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20020097148A (ko) | 2002-12-31 |
| CN1415088A (zh) | 2003-04-30 |
| EP1244961B1 (en) | 2004-03-17 |
| WO2001050252A1 (en) | 2001-07-12 |
| EP1244961A1 (en) | 2002-10-02 |
| CN1209706C (zh) | 2005-07-06 |
| DE60009151D1 (de) | 2004-04-22 |
| DE60009151T2 (de) | 2004-11-11 |
| JP4920156B2 (ja) | 2012-04-18 |
| US6651161B1 (en) | 2003-11-18 |
| JP2003519832A (ja) | 2003-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100764920B1 (ko) | 언트레이닝을 구비하는 저장 로드 전송 예측기 | |
| US6622237B1 (en) | Store to load forward predictor training using delta tag | |
| US6694424B1 (en) | Store load forward predictor training | |
| US6481251B1 (en) | Store queue number assignment and tracking | |
| KR100708010B1 (ko) | 인덱스와 선택적 경로 정합에 기반하여 데이터를 포워딩하는 저장 버퍼 | |
| US6523109B1 (en) | Store queue multimatch detection | |
| US6542984B1 (en) | Scheduler capable of issuing and reissuing dependency chains | |
| US6502185B1 (en) | Pipeline elements which verify predecode information | |
| US7213126B1 (en) | Method and processor including logic for storing traces within a trace cache | |
| US6425075B1 (en) | Branch prediction device with two levels of branch prediction cache | |
| US5511175A (en) | Method an apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency | |
| KR100747128B1 (ko) | 발행 후에 명령의 비투기적 성질을 발견하고 상기 명령을 재발행하는 스케줄러 | |
| US6564315B1 (en) | Scheduler which discovers non-speculative nature of an instruction after issuing and reissues the instruction | |
| US6622235B1 (en) | Scheduler which retries load/store hit situations | |
| US20060179236A1 (en) | System and method to improve hardware pre-fetching using translation hints | |
| US6721877B1 (en) | Branch predictor that selects between predictions based on stored prediction selector and branch predictor index generation | |
| KR20070068351A (ko) | 로드가 더 오래된 스토어에 의존적인지를 예측하는 의존성매커니즘을 구비한 프로세서 | |
| US20070050592A1 (en) | Method and apparatus for accessing misaligned data streams | |
| US20030126409A1 (en) | Store sets poison propagation | |
| US5649137A (en) | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency | |
| US20210011729A1 (en) | Managing Commit Order for an External Instruction Relative to Queued Instructions | |
| KR19990072272A (ko) | 로드/로드검출및재정렬방법 | |
| US6363471B1 (en) | Mechanism for handling 16-bit addressing in a processor | |
| US10223266B2 (en) | Extended store forwarding for store misses without cache allocate | |
| US7321964B2 (en) | Store-to-load forwarding buffer using indexed lookup |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
Patent event date: 20020703 Patent event code: PA01051R01D Comment text: International Patent Application |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20050804 Comment text: Request for Examination of Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20060930 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20070630 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20071001 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20071002 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration | ||
| G170 | Re-publication after modification of scope of protection [patent] | ||
| PG1701 | Publication of correction | ||
| PR1001 | Payment of annual fee |
Payment date: 20100930 Start annual number: 4 End annual number: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20110929 Start annual number: 5 End annual number: 5 |
|
| FPAY | Annual fee payment |
Payment date: 20120927 Year of fee payment: 6 |
|
| PR1001 | Payment of annual fee |
Payment date: 20120927 Start annual number: 6 End annual number: 6 |
|
| FPAY | Annual fee payment |
Payment date: 20130926 Year of fee payment: 7 |
|
| PR1001 | Payment of annual fee |
Payment date: 20130926 Start annual number: 7 End annual number: 7 |
|
| FPAY | Annual fee payment |
Payment date: 20140923 Year of fee payment: 8 |
|
| PR1001 | Payment of annual fee |
Payment date: 20140923 Start annual number: 8 End annual number: 8 |
|
| FPAY | Annual fee payment |
Payment date: 20150918 Year of fee payment: 9 |
|
| PR1001 | Payment of annual fee |
Payment date: 20150918 Start annual number: 9 End annual number: 9 |
|
| FPAY | Annual fee payment |
Payment date: 20160921 Year of fee payment: 10 |
|
| PR1001 | Payment of annual fee |
Payment date: 20160921 Start annual number: 10 End annual number: 10 |
|
| FPAY | Annual fee payment |
Payment date: 20170919 Year of fee payment: 11 |
|
| PR1001 | Payment of annual fee |
Payment date: 20170919 Start annual number: 11 End annual number: 11 |
|
| FPAY | Annual fee payment |
Payment date: 20180918 Year of fee payment: 12 |
|
| PR1001 | Payment of annual fee |
Payment date: 20180918 Start annual number: 12 End annual number: 12 |
|
| PC1801 | Expiration of term |
Termination date: 20210208 Termination category: Expiration of duration |