CN105183449B - 提供分布式判定预测的方法和系统 - Google Patents

提供分布式判定预测的方法和系统 Download PDF

Info

Publication number
CN105183449B
CN105183449B CN201510449244.2A CN201510449244A CN105183449B CN 105183449 B CN105183449 B CN 105183449B CN 201510449244 A CN201510449244 A CN 201510449244A CN 105183449 B CN105183449 B CN 105183449B
Authority
CN
China
Prior art keywords
core
processor
decision
instruction
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.)
Active
Application number
CN201510449244.2A
Other languages
English (en)
Chinese (zh)
Other versions
CN105183449A (zh
Inventor
道格·伯格
斯蒂芬·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.)
University of Texas System
Original Assignee
University of Texas System
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 University of Texas System filed Critical University of Texas System
Publication of CN105183449A publication Critical patent/CN105183449A/zh
Application granted granted Critical
Publication of CN105183449B publication Critical patent/CN105183449B/zh
Active 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/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
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • G06F8/4451Avoiding pipeline stalls
    • 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
    • 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/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/3854Instruction completion, e.g. retiring, committing or graduating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
CN201510449244.2A 2009-09-09 2010-06-11 提供分布式判定预测的方法和系统 Active CN105183449B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/556,440 2009-09-09
US12/556,440 US8433885B2 (en) 2009-09-09 2009-09-09 Method, system and computer-accessible medium for providing a distributed predicate prediction
CN201080035509.XA CN102473086B (zh) 2009-09-09 2010-06-11 提供分布式判定预测的方法、系统和计算机可访问介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201080035509.XA Division CN102473086B (zh) 2009-09-09 2010-06-11 提供分布式判定预测的方法、系统和计算机可访问介质

Publications (2)

Publication Number Publication Date
CN105183449A CN105183449A (zh) 2015-12-23
CN105183449B true CN105183449B (zh) 2018-12-18

Family

ID=43648555

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510449244.2A Active CN105183449B (zh) 2009-09-09 2010-06-11 提供分布式判定预测的方法和系统
CN201080035509.XA Active CN102473086B (zh) 2009-09-09 2010-06-11 提供分布式判定预测的方法、系统和计算机可访问介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201080035509.XA Active CN102473086B (zh) 2009-09-09 2010-06-11 提供分布式判定预测的方法、系统和计算机可访问介质

Country Status (6)

Country Link
US (1) US8433885B2 (https=)
JP (3) JP2013500539A (https=)
KR (1) KR101364314B1 (https=)
CN (2) CN105183449B (https=)
DE (1) DE112010003595B4 (https=)
WO (1) WO2011031361A1 (https=)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698859B2 (en) 2009-09-18 2020-06-30 The Board Of Regents Of The University Of Texas System Data multicasting with router replication and target instruction identification in a distributed multi-core processing architecture
US9021241B2 (en) 2010-06-18 2015-04-28 The Board Of Regents Of The University Of Texas System Combined branch target and predicate prediction for instruction blocks
EP2645254A4 (en) * 2010-11-25 2014-01-15 Toyota Motor Co Ltd PROCESSOR, ELECTRONIC CONTROL DEVICE, CREATION PROGRAM
WO2012127589A1 (ja) * 2011-03-18 2012-09-27 富士通株式会社 マルチコアプロセッサシステム、および分岐予測方法
US9182991B2 (en) 2012-02-06 2015-11-10 International Business Machines Corporation Multi-threaded processor instruction balancing through instruction uncertainty
US9268569B2 (en) 2012-02-24 2016-02-23 Apple Inc. Branch misprediction behavior suppression on zero predicate branch mispredict
US9792252B2 (en) 2013-05-31 2017-10-17 Microsoft Technology Licensing, Llc Incorporating a spatial array into one or more programmable processor cores
US9507594B2 (en) * 2013-07-02 2016-11-29 Intel Corporation Method and system of compiling program code into predicated instructions for execution on a processor without a program counter
US20160232346A1 (en) * 2015-02-05 2016-08-11 Qualcomm Incorporated Mechanism for tracking tainted data
US9946549B2 (en) 2015-03-04 2018-04-17 Qualcomm Incorporated Register renaming in block-based instruction set architecture
US9916164B2 (en) * 2015-06-11 2018-03-13 Intel Corporation Methods and apparatus to optimize instructions for execution by a processor
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US9720693B2 (en) 2015-06-26 2017-08-01 Microsoft Technology Licensing, Llc Bulk allocation of instruction blocks to a processor instruction window
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US9940136B2 (en) 2015-06-26 2018-04-10 Microsoft Technology Licensing, Llc Reuse of decoded instructions
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US20160378491A1 (en) * 2015-06-26 2016-12-29 Microsoft Technology Licensing, Llc Determination of target location for transfer of processor control
US10719321B2 (en) 2015-09-19 2020-07-21 Microsoft Technology Licensing, Llc Prefetching instruction blocks
US10095519B2 (en) 2015-09-19 2018-10-09 Microsoft Technology Licensing, Llc Instruction block address register
US10678544B2 (en) 2015-09-19 2020-06-09 Microsoft Technology Licensing, Llc Initiating instruction block execution using a register access instruction
US10871967B2 (en) 2015-09-19 2020-12-22 Microsoft Technology Licensing, Llc Register read/write ordering
US10198263B2 (en) 2015-09-19 2019-02-05 Microsoft Technology Licensing, Llc Write nullification
US10180840B2 (en) 2015-09-19 2019-01-15 Microsoft Technology Licensing, Llc Dynamic generation of null instructions
US11977891B2 (en) 2015-09-19 2024-05-07 Microsoft Technology Licensing, Llc Implicit program order
US10061584B2 (en) 2015-09-19 2018-08-28 Microsoft Technology Licensing, Llc Store nullification in the target field
US20170083319A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Generation and use of block branch metadata
US10452399B2 (en) 2015-09-19 2019-10-22 Microsoft Technology Licensing, Llc Broadcast channel architectures for block-based processors
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US11681531B2 (en) 2015-09-19 2023-06-20 Microsoft Technology Licensing, Llc Generation and use of memory access instruction order encodings
US20170083341A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Segmented instruction block
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
US10031756B2 (en) 2015-09-19 2018-07-24 Microsoft Technology Licensing, Llc Multi-nullification
US10936316B2 (en) 2015-09-19 2021-03-02 Microsoft Technology Licensing, Llc Dense read encoding for dataflow ISA
US10776115B2 (en) 2015-09-19 2020-09-15 Microsoft Technology Licensing, Llc Debug support for block-based processor
US20170315812A1 (en) 2016-04-28 2017-11-02 Microsoft Technology Licensing, Llc Parallel instruction scheduler for block isa processor
US20180081690A1 (en) * 2016-09-21 2018-03-22 Qualcomm Incorporated Performing distributed branch prediction using fused processor cores in processor-based systems
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
US10963379B2 (en) 2018-01-30 2021-03-30 Microsoft Technology Licensing, Llc Coupling wide memory interface to wide write back paths
US10824429B2 (en) 2018-09-19 2020-11-03 Microsoft Technology Licensing, Llc Commit logic and precise exceptions in explicit dataflow graph execution architectures

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3499252B2 (ja) * 1993-03-19 2004-02-23 株式会社ルネサステクノロジ コンパイル装置及びデータ処理装置
US6178498B1 (en) * 1997-12-18 2001-01-23 Idea Corporation Storing predicted branch target address in different storage according to importance hint in branch prediction instruction
US20010042195A1 (en) * 1998-08-04 2001-11-15 Ralph M. Kling Method and apparatus for performing predicate prediction
US6353883B1 (en) * 1998-08-04 2002-03-05 Intel Corporation Method and apparatus for performing predicate prediction
US6367004B1 (en) * 1998-12-31 2002-04-02 Intel Corporation Method and apparatus for predicting a predicate based on historical information and the least significant bits of operands to be compared
US6513109B1 (en) * 1999-08-31 2003-01-28 International Business Machines Corporation Method and apparatus for implementing execution predicates in a computer processing system
US6662294B1 (en) * 2000-09-28 2003-12-09 International Business Machines Corporation Converting short branches to predicated instructions
US20030023959A1 (en) * 2001-02-07 2003-01-30 Park Joseph C.H. General and efficient method for transforming predicated execution to static speculation
US7114059B2 (en) * 2001-11-05 2006-09-26 Intel Corporation System and method to bypass execution of instructions involving unreliable data during speculative execution
KR100528479B1 (ko) * 2003-09-24 2005-11-15 삼성전자주식회사 전력 소모를 감소시키기 위한 분기 예측기 및 구현방법
US8607209B2 (en) * 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20050216714A1 (en) * 2004-03-25 2005-09-29 Intel Corporation Method and apparatus for predicting confidence and value
WO2006112045A1 (ja) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. 演算処理装置
US8904155B2 (en) * 2006-03-17 2014-12-02 Qualcomm Incorporated Representing loop branches in a branch history register with multiple bits
US7487340B2 (en) * 2006-06-08 2009-02-03 International Business Machines Corporation Local and global branch prediction information storage
US20070288733A1 (en) * 2006-06-08 2007-12-13 Luick David A Early Conditional Branch Resolution
US9946550B2 (en) * 2007-09-17 2018-04-17 International Business Machines Corporation Techniques for predicated execution in an out-of-order processor
US7870371B2 (en) * 2007-12-17 2011-01-11 Microsoft Corporation Target-frequency based indirect jump prediction for high-performance processors
US7818551B2 (en) * 2007-12-31 2010-10-19 Microsoft Corporation Feedback mechanism for dynamic predication of indirect jumps

Also Published As

Publication number Publication date
CN102473086A (zh) 2012-05-23
KR101364314B1 (ko) 2014-02-18
DE112010003595T5 (de) 2012-11-22
DE112010003595B4 (de) 2024-06-06
CN102473086B (zh) 2015-08-19
US20110060889A1 (en) 2011-03-10
CN105183449A (zh) 2015-12-23
WO2011031361A1 (en) 2011-03-17
JP5747104B2 (ja) 2015-07-08
KR20120068855A (ko) 2012-06-27
JP2013500539A (ja) 2013-01-07
JP2015164068A (ja) 2015-09-10
JP2014142969A (ja) 2014-08-07
US8433885B2 (en) 2013-04-30

Similar Documents

Publication Publication Date Title
CN105183449B (zh) 提供分布式判定预测的方法和系统
JP6006247B2 (ja) 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム
JP5961971B2 (ja) シミュレーション装置,方法,およびプログラム
CN108804141A (zh) 支持所学习的分支预测器
CN112241288A (zh) 在硬件中检测条件分支的动态控制流重汇聚点
US10564992B2 (en) Simulation apparatus and storage medium
ITVI20100208A1 (it) Metodo¿e sistema di simulazione atti alla simulazione di una piattaforma hardware a componenti multipli
Scotti et al. A fresh view on the microarchitectural design of fpga-based risc cpus in the iot era
JP5817324B2 (ja) 補正装置、補正方法、および補正プログラム
Jin et al. Towards dataflow based graph processing
Nasr-Esfahany et al. Concorde: Fast and accurate cpu performance modeling with compositional analytical-ml fusion
US20230315453A1 (en) Forward conditional branch event for profile-guided-optimization (pgo)
TW200409024A (en) Processor including branch prediction mechanism for far jump and far call instructions
CN112579555B (zh) 一种在微体系结构层面表征区块链系统的方法和装置
Desmet et al. Enlarging instruction streams
Sathe et al. Techniques for performing highly accurate data value prediction
Lu et al. Design of instruction analyzer with semantic-based loop unrolling mechanism in the hyperscalar architecture
Gonzalez et al. Data value speculation in superscalar processors
Pasha et al. A simulation framework for code-level energy estimation of embedded soft-core processors
CN110750856A (zh) 一种基于机器学习的有效指令窗口大小评估方法
Barhak The Reference Model for Disease Progression.
Pilla RST: Reuse through Speculation on Traces
Jin et al. Research and Implementation of Performance Optimization Methods for RISC-V Level-5 Processors
Mohamed et al. Improving compiler support for SIMD offload using Arm Streaming SVE
de Alba et al. Exposing instruction level parallelism in the presence of loops

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant