KR100764920B1 - 언트레이닝을 구비하는 저장 로드 전송 예측기 - Google Patents

언트레이닝을 구비하는 저장 로드 전송 예측기 Download PDF

Info

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
Application number
KR1020027008671A
Other languages
English (en)
Korean (ko)
Other versions
KR20020097148A (ko
Inventor
켈러제임스비.
그린토마스에스.
리엔웨이-한
하다드램세이더블유.
Original Assignee
어드밴스드 마이크로 디바이시즈, 인코포레이티드
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 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20020097148A publication Critical patent/KR20020097148A/ko
Application granted granted Critical
Publication of KR100764920B1 publication Critical patent/KR100764920B1/ko
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering 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)
KR1020027008671A 2000-01-03 2000-08-08 언트레이닝을 구비하는 저장 로드 전송 예측기 Expired - Lifetime KR100764920B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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