CN102652304B - 预测并避免乱序微处理器中的操作数-存储-比较冒险 - Google Patents

预测并避免乱序微处理器中的操作数-存储-比较冒险 Download PDF

Info

Publication number
CN102652304B
CN102652304B CN201080056309.2A CN201080056309A CN102652304B CN 102652304 B CN102652304 B CN 102652304B CN 201080056309 A CN201080056309 A CN 201080056309A CN 102652304 B CN102652304 B CN 102652304B
Authority
CN
China
Prior art keywords
instruction
storage
risk
load instructions
entry
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
Application number
CN201080056309.2A
Other languages
English (en)
Chinese (zh)
Other versions
CN102652304A (zh
Inventor
C.雅各比
B.W.汤姆托
G.W.亚历山大
K.J.亚历山大
B.W.柯伦
J.R.米切尔
J.T.塞
B.R.普拉斯基
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US12/644,923 external-priority patent/US8468325B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102652304A publication Critical patent/CN102652304A/zh
Application granted granted Critical
Publication of CN102652304B publication Critical patent/CN102652304B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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
    • 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/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
    • 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

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)
  • Executing Machine-Instructions (AREA)
CN201080056309.2A 2009-12-22 2010-12-13 预测并避免乱序微处理器中的操作数-存储-比较冒险 Expired - Fee Related CN102652304B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12/644,923 2009-12-22
US12/644,923 US8468325B2 (en) 2009-12-22 2009-12-22 Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors
US12/822,960 2010-06-24
US12/822,960 US8521992B2 (en) 2009-12-22 2010-06-24 Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors
PCT/EP2010/069496 WO2011076602A1 (en) 2009-12-22 2010-12-13 Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors

Publications (2)

Publication Number Publication Date
CN102652304A CN102652304A (zh) 2012-08-29
CN102652304B true CN102652304B (zh) 2015-04-15

Family

ID=43416544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080056309.2A Expired - Fee Related CN102652304B (zh) 2009-12-22 2010-12-13 预测并避免乱序微处理器中的操作数-存储-比较冒险

Country Status (6)

Country Link
US (2) US8521992B2 (enExample)
JP (2) JP5850532B2 (enExample)
CN (1) CN102652304B (enExample)
DE (1) DE112010004322T5 (enExample)
GB (1) GB2486155B (enExample)
WO (1) WO2011076602A1 (enExample)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069563B2 (en) * 2011-09-16 2015-06-30 International Business Machines Corporation Reducing store-hit-loads in an out-of-order processor
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
US9158691B2 (en) 2012-12-14 2015-10-13 Apple Inc. Cross dependency checking logic
US9880849B2 (en) * 2013-12-09 2018-01-30 Macom Connectivity Solutions, Llc Allocation of load instruction(s) to a queue buffer in a processor system based on prediction of an instruction pipeline hazard
US9274970B2 (en) 2013-12-31 2016-03-01 Samsung Electronics Co., Ltd. Method and apparatus for handling processor read-after-write hazards with cache misses
US11093401B2 (en) 2014-03-11 2021-08-17 Ampere Computing Llc Hazard prediction for a group of memory access instructions using a buffer associated with branch prediction
US9710268B2 (en) 2014-04-29 2017-07-18 Apple Inc. Reducing latency for pointer chasing loads
CN104063329B (zh) * 2014-06-30 2017-04-12 龙芯中科技术有限公司 64位立即数处理方法及装置
US10209995B2 (en) 2014-10-24 2019-02-19 International Business Machines Corporation Processor core including pre-issue load-hit-store (LHS) hazard prediction to reduce rejection of load instructions
US9483409B2 (en) 2015-02-05 2016-11-01 International Business Machines Corporation Store forwarding cache
US9928075B2 (en) 2015-02-13 2018-03-27 International Business Machines Corporation Load queue entry reuse for operand store compare history table update
WO2017019008A1 (en) * 2015-07-27 2017-02-02 Applied Micro Circuits Corporation Hazard prediction for a group of memory access instructions using a buffer associated with branch prediction
US9710281B2 (en) * 2015-07-30 2017-07-18 International Business Machines Corporation Register comparison for operand store compare (OSC) prediction
US20170046167A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Predicting memory instruction punts in a computer processor using a punt avoidance table (pat)
US9606805B1 (en) 2015-10-19 2017-03-28 International Business Machines Corporation Accuracy of operand store compare prediction using confidence counter
US10514925B1 (en) 2016-01-28 2019-12-24 Apple Inc. Load speculation recovery
US9983875B2 (en) 2016-03-04 2018-05-29 International Business Machines Corporation Operation of a multi-slice processor preventing early dependent instruction wakeup
US10437595B1 (en) 2016-03-15 2019-10-08 Apple Inc. Load/store dependency predictor optimization for replayed loads
US10037211B2 (en) 2016-03-22 2018-07-31 International Business Machines Corporation Operation of a multi-slice processor with an expanded merge fetching queue
US10346174B2 (en) 2016-03-24 2019-07-09 International Business Machines Corporation Operation of a multi-slice processor with dynamic canceling of partial loads
US10761854B2 (en) 2016-04-19 2020-09-01 International Business Machines Corporation Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor
US10037229B2 (en) 2016-05-11 2018-07-31 International Business Machines Corporation Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions
US10740107B2 (en) * 2016-06-01 2020-08-11 International Business Machines Corporation Operation of a multi-slice processor implementing load-hit-store handling
US9934033B2 (en) 2016-06-13 2018-04-03 International Business Machines Corporation Operation of a multi-slice processor implementing simultaneous two-target loads and stores
US10042647B2 (en) 2016-06-27 2018-08-07 International Business Machines Corporation Managing a divided load reorder queue
US10318419B2 (en) 2016-08-08 2019-06-11 International Business Machines Corporation Flush avoidance in a load store unit
US10684859B2 (en) * 2016-09-19 2020-06-16 Qualcomm Incorporated Providing memory dependence prediction in block-atomic dataflow architectures
GB2563582B (en) 2017-06-16 2020-01-01 Imagination Tech Ltd Methods and systems for inter-pipeline data hazard avoidance
US10417002B2 (en) * 2017-10-06 2019-09-17 International Business Machines Corporation Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses
US10606591B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US11175924B2 (en) 2017-10-06 2021-11-16 International Business Machines Corporation Load-store unit with partitioned reorder queues with single cam port
US10394558B2 (en) 2017-10-06 2019-08-27 International Business Machines Corporation Executing load-store operations without address translation hardware per load-store unit port
US10606590B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Effective address based load store unit in out of order processors
US10572256B2 (en) 2017-10-06 2020-02-25 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US10564979B2 (en) * 2017-11-30 2020-02-18 International Business Machines Corporation Coalescing global completion table entries in an out-of-order processor
US10572264B2 (en) 2017-11-30 2020-02-25 International Business Machines Corporation Completing coalesced global completion table entries in an out-of-order processor
US10564976B2 (en) 2017-11-30 2020-02-18 International Business Machines Corporation Scalable dependency matrix with multiple summary bits in an out-of-order processor
US10942747B2 (en) 2017-11-30 2021-03-09 International Business Machines Corporation Head and tail pointer manipulation in a first-in-first-out issue queue
US10884753B2 (en) 2017-11-30 2021-01-05 International Business Machines Corporation Issue queue with dynamic shifting between ports
US10922087B2 (en) 2017-11-30 2021-02-16 International Business Machines Corporation Block based allocation and deallocation of issue queue entries
US10929140B2 (en) 2017-11-30 2021-02-23 International Business Machines Corporation Scalable dependency matrix with a single summary bit in an out-of-order processor
US10901744B2 (en) 2017-11-30 2021-01-26 International Business Machines Corporation Buffered instruction dispatching to an issue queue
US10802829B2 (en) 2017-11-30 2020-10-13 International Business Machines Corporation Scalable dependency matrix with wake-up columns for long latency instructions in an out-of-order processor
CN108519906B (zh) * 2018-03-20 2022-03-22 东南大学 超标量乱序处理器稳定状态指令吞吐率建模方法
US10725783B2 (en) 2018-11-02 2020-07-28 International Business Machines Corporation Splitting load hit store table for out-of-order processor
CN111221579B (zh) * 2018-11-27 2022-04-26 展讯通信(上海)有限公司 预测Load指令执行延迟的方法及系统
JP7151439B2 (ja) * 2018-12-06 2022-10-12 富士通株式会社 演算処理装置および演算処理装置の制御方法
US10977040B2 (en) 2019-02-19 2021-04-13 International Business Machines Corporation Heuristic invalidation of non-useful entries in an array
US10802830B2 (en) * 2019-03-05 2020-10-13 International Business Machines Corporation Imprecise register dependency tracking
US11099989B2 (en) 2019-03-12 2021-08-24 International Business Machines Corporation Coherency maintenance via physical cache coordinate comparison
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
US10831661B2 (en) 2019-04-10 2020-11-10 International Business Machines Corporation Coherent cache with simultaneous data requests in same addressable index
US10824430B1 (en) * 2019-04-25 2020-11-03 International Business Machines Corporation Resolving operand store compare conflicts
EP3812891A1 (en) * 2019-10-21 2021-04-28 ARM Limited Decoupled access-execute processing
US11803637B2 (en) 2020-07-23 2023-10-31 Ventana Micro Systems Inc. Microprocessor that prevents store-to-load forwarding between different translation contexts
US11755731B2 (en) 2020-07-23 2023-09-12 Ventana Micro Systems Inc. Processor that prevents speculative execution across translation context change boundaries to mitigate side channel attacks
US11803638B2 (en) 2020-07-23 2023-10-31 Ventana Micro Systems Inc. Microprocessor core with a store dependence predictor accessed using a translation context
US11755732B2 (en) * 2020-07-23 2023-09-12 Ventana Micro Systems Inc. Microprocessor that conditions store-to-load forwarding on circumstances associated with a translation context update
CN115543442B (zh) * 2022-10-10 2025-11-07 上海壁仞科技股份有限公司 计算装置及其内存依赖管理方法和机器可读存储介质
CN115576610B (zh) * 2022-11-18 2023-03-10 北京数渡信息科技有限公司 一种适用于通用顺序发射处理器的指令分发处理方法及装置
US12379932B2 (en) * 2023-12-22 2025-08-05 Arm Limited Execution of instructions requiring access to an array register

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619662A (en) * 1992-11-12 1997-04-08 Digital Equipment Corporation Memory reference tagging
US6463523B1 (en) * 1999-02-01 2002-10-08 Compaq Information Technologies Group, L.P. Method and apparatus for delaying the execution of dependent loads
WO2005111794A1 (en) * 2004-05-05 2005-11-24 Advanced Micro Devices, Inc. System and method for validating a memory file that links speculative results of load operations to register values

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US5781752A (en) * 1996-12-26 1998-07-14 Wisconsin Alumni Research Foundation Table based data speculation circuit for parallel processing computer
US5913048A (en) * 1997-03-31 1999-06-15 International Business Machines Corporation Dispatching instructions in a processor supporting out-of-order execution
US5999727A (en) * 1997-06-25 1999-12-07 Sun Microsystems, Inc. Method for restraining over-eager load boosting using a dependency color indicator stored in cache with both the load and store instructions
US6219742B1 (en) * 1998-04-29 2001-04-17 Compaq Computer Corporation Method and apparatus for artificially generating general purpose events in an ACPI environment
US6662280B1 (en) 1999-11-10 2003-12-09 Advanced Micro Devices, Inc. Store buffer which forwards data based on index and optional way match
US6999952B1 (en) * 2001-04-18 2006-02-14 Cisco Technology, Inc. Linear associative memory-based hardware architecture for fault tolerant ASIC/FPGA work-around
US20030126409A1 (en) * 2001-12-28 2003-07-03 Toni Juan Store sets poison propagation
US7028166B2 (en) * 2002-04-30 2006-04-11 Advanced Micro Devices, Inc. System and method for linking speculative results of load operations to register values
US20050223292A1 (en) * 2004-02-17 2005-10-06 Lee Chee S Single instruction type based hardware patch controller
US7716528B2 (en) * 2004-09-07 2010-05-11 Broadcom Corporation Method and system for configurable trigger logic for hardware bug workaround in integrated circuits
US8443227B2 (en) * 2008-02-15 2013-05-14 International Business Machines Corporation Processor and method for workaround trigger activated exceptions
US8627047B2 (en) * 2008-02-15 2014-01-07 International Business Machines Corporation Store data forwarding with no memory model restrictions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619662A (en) * 1992-11-12 1997-04-08 Digital Equipment Corporation Memory reference tagging
US6463523B1 (en) * 1999-02-01 2002-10-08 Compaq Information Technologies Group, L.P. Method and apparatus for delaying the execution of dependent loads
WO2005111794A1 (en) * 2004-05-05 2005-11-24 Advanced Micro Devices, Inc. System and method for validating a memory file that links speculative results of load operations to register values

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Streamlining inter-operation memory communication via data dependence prediction;Andreas Moshovos et al;《PROCEEDING OF THE 30TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE》;19971203;第4,4.1,4.2,7.1部分 *

Also Published As

Publication number Publication date
US20110153986A1 (en) 2011-06-23
GB201206367D0 (en) 2012-05-23
US9430235B2 (en) 2016-08-30
GB2486155A (en) 2012-06-06
CN102652304A (zh) 2012-08-29
JP5850532B2 (ja) 2016-02-03
DE112010004322T5 (de) 2012-08-23
JP6143306B2 (ja) 2017-06-07
US20130318330A1 (en) 2013-11-28
JP2015228237A (ja) 2015-12-17
GB2486155B (en) 2017-04-19
JP2013515306A (ja) 2013-05-02
US8521992B2 (en) 2013-08-27
WO2011076602A1 (en) 2011-06-30

Similar Documents

Publication Publication Date Title
CN102652304B (zh) 预测并避免乱序微处理器中的操作数-存储-比较冒险
JP2013515306A5 (enExample)
US10534616B2 (en) Load-hit-load detection in an out-of-order processor
US10963248B2 (en) Handling effective address synonyms in a load-store unit that operates without address translation
US10977047B2 (en) Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses
US8131976B2 (en) Tracking effective addresses in an out-of-order processor
CN100424635C (zh) 验证将加载作业的推测结果连结到缓存器值的存储档案的系统及方法
US5913048A (en) Dispatching instructions in a processor supporting out-of-order execution
US20080177988A1 (en) Partial Load/Store Forward Prediction
US9594566B1 (en) Accuracy of operand store compare prediction using confidence counter
US10437599B2 (en) System and method of reducing processor pipeline stall caused by full load queue
JP2007504575A (ja) 二重用途レジスタを識別しているアドレス指定パターンに基づいたデータ投機
JPH10283181A (ja) プロセッサ内で命令を発行するための方法および装置
WO2006028555A2 (en) Processor with dependence mechanism to predict whether a load is dependent on older store
JPH07325716A (ja) パイプラインプロセッサおよびその動作方法
WO2003093982A1 (en) System and method for linking speculative results of load operations to register values
CN103620555A (zh) 抑制不正确的推测性执行路径上的控制转移指令
EP1499958A1 (en) System and method of using speculative source operands in order to bypass load/store operations
US8468325B2 (en) Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors
US20190108133A1 (en) Address translation for sending real address to memory subsystem in effective address based load-store unit
KR101093784B1 (ko) 리플레이 메커니즘을 구비한 로드 저장 유닛
CN111133421A (zh) 在无地址转换的情况下操作的加载存储单元中处理有效地址同义词
JP2002521762A (ja) 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ
WO2005098613A2 (en) Facilitating rapid progress while speculatively executing code in scout mode
EP3321810A1 (en) Processor with instruction cache that performs zero clock retires

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150415

CF01 Termination of patent right due to non-payment of annual fee