TWI352311B - Microprocessors, computer systems and methods for - Google Patents

Microprocessors, computer systems and methods for Download PDF

Info

Publication number
TWI352311B
TWI352311B TW093116092A TW93116092A TWI352311B TW I352311 B TWI352311 B TW I352311B TW 093116092 A TW093116092 A TW 093116092A TW 93116092 A TW93116092 A TW 93116092A TW I352311 B TWI352311 B TW I352311B
Authority
TW
Taiwan
Prior art keywords
storage unit
address
memory
data
prediction
Prior art date
Application number
TW093116092A
Other languages
English (en)
Chinese (zh)
Other versions
TW200508964A (en
Inventor
Michael A Filippo
James K Pickett
Benjamin T Sander
Rama S Gopal
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 TW200508964A publication Critical patent/TW200508964A/zh
Application granted granted Critical
Publication of TWI352311B publication Critical patent/TWI352311B/zh

Links

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/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/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling

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)
  • Investigating Or Analysing Biological Materials (AREA)
TW093116092A 2003-06-10 2004-06-04 Microprocessors, computer systems and methods for TWI352311B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/458,457 US7165167B2 (en) 2003-06-10 2003-06-10 Load store unit with replay mechanism

Publications (2)

Publication Number Publication Date
TW200508964A TW200508964A (en) 2005-03-01
TWI352311B true TWI352311B (en) 2011-11-11

Family

ID=33510583

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093116092A TWI352311B (en) 2003-06-10 2004-06-04 Microprocessors, computer systems and methods for

Country Status (8)

Country Link
US (1) US7165167B2 (enExample)
EP (1) EP1644823B1 (enExample)
JP (1) JP5091481B2 (enExample)
KR (1) KR101093784B1 (enExample)
CN (1) CN100367196C (enExample)
DE (1) DE602004010265T2 (enExample)
TW (1) TWI352311B (enExample)
WO (1) WO2004111839A1 (enExample)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050228971A1 (en) * 2004-04-08 2005-10-13 Samra Nicholas G Buffer virtualization
US7415597B2 (en) * 2004-09-08 2008-08-19 Advanced Micro Devices, Inc. Processor with dependence mechanism to predict whether a load is dependent on older store
US20100070730A1 (en) * 2008-09-17 2010-03-18 Sebastian Pop Minimizing memory access conflicts of process communication channels
US9996348B2 (en) * 2012-06-14 2018-06-12 Apple Inc. Zero cycle load
CN103744800B (zh) * 2013-12-30 2016-09-14 龙芯中科技术有限公司 面向重放机制的缓存操作方法及装置
US11068271B2 (en) 2014-07-28 2021-07-20 Apple Inc. Zero cycle move using free list counts
WO2016097791A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Apparatus and method for programmable load replay preclusion
US9645827B2 (en) * 2014-12-14 2017-05-09 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude load replays dependent on page walks in an out-of-order processor
US10387320B2 (en) * 2017-05-12 2019-08-20 Samsung Electronics Co., Ltd. Integrated confirmation queues
US10606603B1 (en) * 2019-04-08 2020-03-31 Ye Tao Methods and apparatus for facilitating a memory mis-speculation recovery
US11200062B2 (en) 2019-08-26 2021-12-14 Apple Inc. History file for previous register mapping storage and last reference indication
US10983801B2 (en) * 2019-09-06 2021-04-20 Apple Inc. Load/store ordering violation management
US11416254B2 (en) 2019-12-05 2022-08-16 Apple Inc. Zero cycle load bypass in a decode group
US11615043B2 (en) 2020-01-02 2023-03-28 Texas Instruments Incorporated Systems, methods, and apparatus to enable data aggregation and adaptation in hardware acceleration subsystems
US11360773B2 (en) 2020-06-22 2022-06-14 Microsoft Technology Licensing, Llc Reusing fetched, flushed instructions after an instruction pipeline flush in response to a hazard in a processor to reduce instruction re-fetching
US11074077B1 (en) * 2020-06-25 2021-07-27 Microsoft Technology Licensing, Llc Reusing executed, flushed instructions after an instruction pipeline flush in response to a hazard in a processor to reduce instruction re-execution
US11175917B1 (en) 2020-09-11 2021-11-16 Apple Inc. Buffer for replayed loads in parallel with reservation station for rapid rescheduling
US11983538B2 (en) * 2022-04-18 2024-05-14 Cadence Design Systems, Inc. Load-store unit dual tags and replays

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581719A (en) * 1992-11-12 1996-12-03 Digital Equipment Corporation Multiple block line prediction
US5828868A (en) * 1996-11-13 1998-10-27 Intel Corporation Processor having execution core sections operating at different clock rates
US6385715B1 (en) * 1996-11-13 2002-05-07 Intel Corporation Multi-threading for a processor utilizing a replay queue
US5966544A (en) * 1996-11-13 1999-10-12 Intel Corporation Data speculatable processor having reply architecture
US6163839A (en) * 1998-09-30 2000-12-19 Intel Corporation Non-stalling circular counterflow pipeline processor with reorder buffer
US6484254B1 (en) * 1999-12-30 2002-11-19 Intel Corporation Method, apparatus, and system for maintaining processor ordering by checking load addresses of unretired load instructions against snooping store addresses
CN1210649C (zh) 2000-01-03 2005-07-13 先进微装置公司 能够发送及重新发送附属链接的排程器、包括该排程器的处理器以及排程方法
US6651161B1 (en) * 2000-01-03 2003-11-18 Advanced Micro Devices, Inc. Store load forward predictor untraining
DE10085438B4 (de) * 2000-02-14 2006-01-05 Intel Corporation, Santa Clara Prozessor mit Wiederholarchitektur mit schnellen und langsamen Wiederholpfaden
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
JP3729064B2 (ja) * 2000-11-29 2005-12-21 日本電気株式会社 データ依存関係検出装置

Also Published As

Publication number Publication date
US7165167B2 (en) 2007-01-16
EP1644823B1 (en) 2007-11-21
JP5091481B2 (ja) 2012-12-05
EP1644823A1 (en) 2006-04-12
US20040255101A1 (en) 2004-12-16
TW200508964A (en) 2005-03-01
KR101093784B1 (ko) 2011-12-19
WO2004111839A1 (en) 2004-12-23
DE602004010265T2 (de) 2009-05-07
JP2007503661A (ja) 2007-02-22
CN1806226A (zh) 2006-07-19
CN100367196C (zh) 2008-02-06
DE602004010265D1 (de) 2008-01-03
KR20060021281A (ko) 2006-03-07

Similar Documents

Publication Publication Date Title
TWI352311B (en) Microprocessors, computer systems and methods for
TWI260541B (en) System and method for linking speculative results of load operations to register values
TWI383320B (zh) 具有相關機制以預測是否載入與較舊儲存相關之處理器及相關方法和電腦系統
JP4170292B2 (ja) データの投機的実行をサポートするマイクロプロセッサで用いるスケジューラ
TW388811B (en) Out-of-pipeline trace buffer for instruction replay following misspeculation
TW479198B (en) Method and apparatus for implementing execution predicates in a computer processing system
US7263600B2 (en) System and method for validating a memory file that links speculative results of load operations to register values
TW425528B (en) Memory system for ordering load and store instructions in a processor that performs out-of-order multithread execution
TWI352927B (en) System and method for handling exceptional instruc
US5870582A (en) Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched
JPH08505725A (ja) 命令実行を制御するため命令にタグを割り当てるシステム及び方法
US7624253B2 (en) Determining register availability for register renaming
TW567435B (en) Scalable processor
CN102087591A (zh) 非循序执行的微处理器及其操作方法
JPS59132044A (ja) デ−タ処理システムにおいて複合デイスクリプタを発生する方法および装置
TWI338249B (en) System and method to prevent in-flight instances of operations from disrupting operation replay within a data-speculative microprocessor
US20030126409A1 (en) Store sets poison propagation
US6934903B1 (en) Using microcode to correct ECC errors in a processor
TW444179B (en) A data processing system having an apparatus for exception tracking during out-of-order operation and method therefor
TW493140B (en) Distributed instruction completion logic
CN100373330C (zh) 识别微处理器中的数据推测操作的推测指针
US7069411B1 (en) Mapper circuit with backup capability
US7937569B1 (en) System and method for scheduling operations using speculative data operands
TW296442B (enExample)
TW399176B (en) Microprocessor access control unit upon fetching address queue

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent