CN1209706C - 具有不训练的存储至加载转送预测器 - Google Patents

具有不训练的存储至加载转送预测器 Download PDF

Info

Publication number
CN1209706C
CN1209706C CNB008181551A CN00818155A CN1209706C CN 1209706 C CN1209706 C CN 1209706C CN B008181551 A CNB008181551 A CN B008181551A CN 00818155 A CN00818155 A CN 00818155A CN 1209706 C CN1209706 C CN 1209706C
Authority
CN
China
Prior art keywords
load
store
memory operation
dependency
predictor
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
CNB008181551A
Other languages
English (en)
Chinese (zh)
Other versions
CN1415088A (zh
Inventor
J·B·凯勒
T·S·格林
W-H·利恩
R·W·哈达德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN1415088A publication Critical patent/CN1415088A/zh
Application granted granted Critical
Publication of CN1209706C publication Critical patent/CN1209706C/zh
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)
CNB008181551A 2000-01-03 2000-08-08 具有不训练的存储至加载转送预测器 Expired - Lifetime CN1209706C (zh)

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
CN1415088A CN1415088A (zh) 2003-04-30
CN1209706C true CN1209706C (zh) 2005-07-06

Family

ID=23893860

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008181551A Expired - Lifetime CN1209706C (zh) 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727313B (zh) * 2006-03-07 2013-05-01 英特尔公司 执行存储器消歧的方法
TWI552069B (zh) * 2012-05-30 2016-10-01 蘋果公司 載入-儲存相依性預測器、用於在載入-儲存相依性預測器中處理操作的處理器與方法
TWI616814B (zh) * 2014-12-14 2018-03-01 上海兆芯集成電路有限公司 用以改善在處理器中重新執行載入之裝置與方法
TWI616815B (zh) * 2014-12-14 2018-03-01 上海兆芯集成電路有限公司 用以改善在處理器中重新執行載入之裝置與方法

Families Citing this family (26)

* 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
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
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
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

Family Cites Families (28)

* 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
US5666506A (en) 1994-10-24 1997-09-09 International Business Machines Corporation Apparatus to dynamically control the out-of-order execution of load/store instructions in a processor capable of dispatchng, issuing and executing multiple instructions in a single processor cycle
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
US5781752A (en) 1996-12-26 1998-07-14 Wisconsin Alumni Research Foundation Table based data speculation circuit for parallel processing computer
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727313B (zh) * 2006-03-07 2013-05-01 英特尔公司 执行存储器消歧的方法
TWI552069B (zh) * 2012-05-30 2016-10-01 蘋果公司 載入-儲存相依性預測器、用於在載入-儲存相依性預測器中處理操作的處理器與方法
TWI616814B (zh) * 2014-12-14 2018-03-01 上海兆芯集成電路有限公司 用以改善在處理器中重新執行載入之裝置與方法
TWI616815B (zh) * 2014-12-14 2018-03-01 上海兆芯集成電路有限公司 用以改善在處理器中重新執行載入之裝置與方法

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
KR100764920B1 (ko) 2007-10-09
EP1244961A1 (en) 2002-10-02
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
CN1209706C (zh) 具有不训练的存储至加载转送预测器
CN1095117C (zh) 存数指令结果的前送的方法和处理器
US6622237B1 (en) Store to load forward predictor training using delta tag
US6694424B1 (en) Store load forward predictor training
US8219787B2 (en) Early release of resources by proceeding to retire store operations from exception reporting stage but keeping in load/store queue
EP2674856B1 (en) Zero cycle load instruction
CN1199099C (zh) 紧密耦合式多处理器的快速多线程执行
US6481251B1 (en) Store queue number assignment and tracking
US7376817B2 (en) Partial load/store forward prediction
US5751983A (en) Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations
EP1228426B1 (en) Store buffer which forwards data based on index and optional way match
CN1210649C (zh) 能够发送及重新发送附属链接的排程器、包括该排程器的处理器以及排程方法
CN1304962C (zh) 转译后备缓冲器清除滤波器
CN1864131A (zh) 处置在基于跟踪缓存的处理器中的异常指令的系统及方法
US10713172B2 (en) Processor cache with independent pipeline to expedite prefetch request
JP2002525742A (ja) 記憶からロードへの転送のための機構
CN1625732A (zh) 使用猜测来源操作数以绕过装载/储存操作的系统与方法
CN1625733A (zh) 将装载操作的猜测结果与寄存器值相连接的系统与方法
CN1890631A (zh) 于卷标边界自指令缓存至追踪缓存的转换
US9542332B2 (en) System and method for performing hardware prefetch tablewalks having lowest tablewalk priority
US20090198981A1 (en) Data processing system, processor and method of data processing having branch target address cache storing direct predictions
US6704854B1 (en) Determination of execution resource allocation based on concurrently executable misaligned memory operations

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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20050706