GB2486155B - Predicting and avoiding operand-store-compare hazards in out- of-order microprocessors - Google Patents
Predicting and avoiding operand-store-compare hazards in out- of-order microprocessorsInfo
- Publication number
- GB2486155B GB2486155B GB1206367.3A GB201206367A GB2486155B GB 2486155 B GB2486155 B GB 2486155B GB 201206367 A GB201206367 A GB 201206367A GB 2486155 B GB2486155 B GB 2486155B
- Authority
- GB
- United Kingdom
- Prior art keywords
- operand
- predicting
- avoiding
- store
- hazards
- 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.)
- Active
Links
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/383—Operand prefetching
-
- 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/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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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
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)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| 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 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 (3)
| Publication Number | Publication Date |
|---|---|
| GB201206367D0 GB201206367D0 (en) | 2012-05-23 |
| GB2486155A GB2486155A (en) | 2012-06-06 |
| GB2486155B true GB2486155B (en) | 2017-04-19 |
Family
ID=43416544
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| GB1206367.3A Active GB2486155B (en) | 2009-12-22 | 2010-12-13 | Predicting and avoiding operand-store-compare hazards in out- of-order microprocessors |
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)
| 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 |
| 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 |
| 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 |
| US11175924B2 (en) | 2017-10-06 | 2021-11-16 | International Business Machines Corporation | Load-store unit with partitioned reorder queues with single cam port |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| US10564979B2 (en) * | 2017-11-30 | 2020-02-18 | International Business Machines Corporation | Coalescing global completion table entries in an out-of-order processor |
| US10922087B2 (en) | 2017-11-30 | 2021-02-16 | International Business Machines Corporation | Block based allocation and deallocation of issue queue entries |
| US10884753B2 (en) | 2017-11-30 | 2021-01-05 | International Business Machines Corporation | Issue queue with dynamic shifting between ports |
| 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 |
| US10572264B2 (en) | 2017-11-30 | 2020-02-25 | International Business Machines Corporation | Completing coalesced global completion table entries 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 |
| 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 |
| 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 |
| 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 (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| WO2001035212A1 (en) * | 1999-11-10 | 2001-05-17 | Advanced Micro Devices, Inc. | Store buffer which forwards data based on index and optional way match |
| 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 |
| US20090210679A1 (en) * | 2008-02-15 | 2009-08-20 | International Business Machines Corporation | Processor and method for store data forwarding in a system with no memory model restrictions |
Family Cites Families (11)
| 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 |
| US5619662A (en) | 1992-11-12 | 1997-04-08 | Digital Equipment Corporation | Memory reference tagging |
| 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 |
| 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 |
| 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 |
-
2010
- 2010-06-24 US US12/822,960 patent/US8521992B2/en not_active Expired - Fee Related
- 2010-12-13 DE DE112010004322T patent/DE112010004322T5/de not_active Ceased
- 2010-12-13 CN CN201080056309.2A patent/CN102652304B/zh not_active Expired - Fee Related
- 2010-12-13 WO PCT/EP2010/069496 patent/WO2011076602A1/en not_active Ceased
- 2010-12-13 JP JP2012545216A patent/JP5850532B2/ja active Active
- 2010-12-13 GB GB1206367.3A patent/GB2486155B/en active Active
-
2013
- 2013-07-29 US US13/953,303 patent/US9430235B2/en not_active Expired - Fee Related
-
2015
- 2015-07-23 JP JP2015146076A patent/JP6143306B2/ja active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US6463523B1 (en) * | 1999-02-01 | 2002-10-08 | Compaq Information Technologies Group, L.P. | Method and apparatus for delaying the execution of dependent loads |
| WO2001035212A1 (en) * | 1999-11-10 | 2001-05-17 | Advanced Micro Devices, Inc. | Store buffer which forwards data based on index and optional way match |
| 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 |
| US20090210679A1 (en) * | 2008-02-15 | 2009-08-20 | International Business Machines Corporation | Processor and method for store data forwarding in a system with no memory model restrictions |
Non-Patent Citations (1)
| Title |
|---|
| MOSHOVOS A ET AL - "Streamlining inter-operation memory communication via data dependence prediction" - Proceedings of 30th Annual IEEE/ACM International Symposium on Microarchitecture, Micro-30, Triangle Park, NC, Dec 1-3 1997 - ISBN 978-0-8186-7977-3 - Pages 235-245. * |
Also Published As
| Publication number | Publication date |
|---|---|
| US9430235B2 (en) | 2016-08-30 |
| US20130318330A1 (en) | 2013-11-28 |
| WO2011076602A1 (en) | 2011-06-30 |
| DE112010004322T5 (de) | 2012-08-23 |
| JP5850532B2 (ja) | 2016-02-03 |
| JP6143306B2 (ja) | 2017-06-07 |
| CN102652304A (zh) | 2012-08-29 |
| GB201206367D0 (en) | 2012-05-23 |
| CN102652304B (zh) | 2015-04-15 |
| US20110153986A1 (en) | 2011-06-23 |
| US8521992B2 (en) | 2013-08-27 |
| GB2486155A (en) | 2012-06-06 |
| JP2013515306A (ja) | 2013-05-02 |
| JP2015228237A (ja) | 2015-12-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| GB2486155B (en) | Predicting and avoiding operand-store-compare hazards in out- of-order microprocessors | |
| PT2268401T (pt) | Ensaios | |
| ZA201204700B (en) | Optimized endonucleases and uses thereof | |
| GB2540074B (en) | Prolapse detection and tool dislodgement detection | |
| EP2419872A4 (en) | MEASUREMENT OF VEGETABLE STATES AND THEIR EXPRESSION IN TONE | |
| IL214403A0 (en) | Novelcell lines and methods | |
| IL210340A0 (en) | Assay device and methods | |
| IL210804A (en) | Benzylidenehydrazides and their uses | |
| GB0905519D0 (en) | Assay method and device | |
| GB2488085B (en) | Roulette performance and analysis | |
| SI2425076T1 (sl) | Izboljšave v sestavih šarnirja | |
| GB0903299D0 (en) | Composition and methods | |
| GB0814877D0 (en) | Clearance and wear determination apparatus | |
| IL212364A0 (en) | Neuropeptide-2-receptor (y-2r) agonists and uses thereof | |
| PL2886132T3 (pl) | Reagenty funkcjonalizujące tiole oraz ich zastosowania | |
| ZA201103456B (en) | Leukolectins and uses thereof | |
| PL2414333T3 (pl) | Reagenty i sposoby radioznakowania | |
| GB2469847B (en) | Improvements in hinge assemblies | |
| EP2247601A4 (en) | THIAZOPYRIMIDINONE AND APPLICATIONS THEREOF | |
| IL215416A0 (en) | Shared job scheduling in electronic notebook | |
| GB0903151D0 (en) | Antibody uses and methods | |
| GB0912744D0 (en) | Methods and uses | |
| GB0909380D0 (en) | Method and use | |
| GB0822140D0 (en) | Methods and reagents | |
| IL217565A0 (en) | Methods and kits used in assessing cancer risk |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 746 | Register noted 'licences of right' (sect. 46/1977) |
Effective date: 20170426 |