JP2013502657A - 条件付き非ブランチング命令の非実行を予測するための方法および機器 - Google Patents
条件付き非ブランチング命令の非実行を予測するための方法および機器 Download PDFInfo
- Publication number
- JP2013502657A JP2013502657A JP2012525670A JP2012525670A JP2013502657A JP 2013502657 A JP2013502657 A JP 2013502657A JP 2012525670 A JP2012525670 A JP 2012525670A JP 2012525670 A JP2012525670 A JP 2012525670A JP 2013502657 A JP2013502657 A JP 2013502657A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- ecnb
- executed
- prediction
- execution
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000011156 evaluation Methods 0.000 claims description 37
- 229920006395 saturated elastomer Polymers 0.000 claims description 3
- 238000009738 saturating Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 66
- 238000012937 correction Methods 0.000 description 16
- 238000001514 detection method Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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, look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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, look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Abstract
Description
120、130、150 遠隔ユニット
140 基地局
180、190 リンク信号
200 プロセッサシステム
210 プロセッサ
212 キャッシュシステム
214 システムメモリ
216 入出力(I/O)システム
220 命令パイプライン
222 条件付き非分岐予測論理回路
224 命令キャッシュ(Icache)
226 メモリコントローラ
228 データキャッシュ(Dcache)
230 取出しステージ
231 解読ステージ
232 発行ステージ
233 実行ステージ
234 完了ステージ
235 オペランド取出し回路
240、242 I/O装置
246 検出論理回路
248 監視論理回路
250 フィルタ
252 条件履歴テーブル(CHT)
254 予測および修正論理回路
262 レジスタ発行追跡(TrI)
263 レジスタ実行追跡(TrE)
264 レジスタ完了追跡(TrC)
300 適格な条件付き非分岐(ECNB)命令予測回路
304 検出回路
306 モニタ回路
308 予測および修正回路
310 フィルタ回路
312 条件履歴テーブル(CHT)回路
314 予測回路
316 追跡回路
318 訂正回路
Claims (22)
- 発行された条件付き非分岐命令を実行しない方法であって、
条件付き非分岐命令を予測に適格であると識別するステップであって、前記予測が、前記適格な条件付き非分岐(ECNB)命令が実行されないことを示すステップと、
前記ECNB命令が実行されないという前記予測に応じて、前記ECNB命令を無演算(NOP)命令として実行するステップとを含む方法。 - 前記予測に応じて、前記ECNB命令が実行されるのに必要とされるソースオペランドが取り出されない、請求項1に記載の方法。
- 前記予測に応じて、汎用レジスタファイル中のレジスタが、前記ECNB命令の結果を含めるように予約されない、請求項1に記載の方法。
- 前記予測が基づいた適格期間中に前記ECNB命令の先行成功実行が起きていないことを示す無効予測フラグに応じて、前記ECNB命令が実行されないことを予測するステップをさらに含む、請求項1に記載の方法。
- 前記ECNB命令が実行されたか、それとも実行されなかったかを、履歴レジスタに記録するステップと、
前記ECNB命令の少なくとも1回の先行試行済み実行が実行されなかったことを示す前記履歴レジスタに応じて、次のECNB命令が実行されないことを予測するステップとをさらに含む、請求項1に記載の方法。 - 前記ECNB命令の前記少なくとも1回の先行試行済み実行が、ソフトウェアループ中で発見された、請求項5に記載の方法。
- 前記ECNB命令の前記少なくとも1回の先行試行済み実行が、予め指定されたアドレス範囲内で発見された、請求項5に記載の方法。
- 前記ECNB命令の前記少なくとも1回の先行試行済み実行が、識別された数のプロセッササイクル中で発見された、請求項5に記載の方法。
- 評価基準を、ECNB命令実行状況カウンタのカウント値出力と比較して、前記予測を生成するステップであって、前記ECNB命令実行状況カウンタが、強非実行である、前記ECNB命令の先行試行済み実行の履歴を示す第1のカウント値で飽和するステップをさらに含む、請求項1に記載の方法。
- 前記ECNB命令実行状況カウンタを、前記ECNB命令の先行試行済み実行が条件付きで実行されたことを示すように第1の方向に更新するステップと、
前記ECNB命令実行状況カウンタを、前記ECNB命令の先行試行済み実行が条件付きで実行されなかったことを示すように、前記第1の方向とは反対の第2の方向に更新するステップとをさらに含む、請求項9に記載の方法。 - 前記評価基準が前記第1のカウント値である、請求項9に記載の方法。
- 前記ECNB命令の前記先行試行済み実行が、ソフトウェアループ中で発見された、請求項9に記載の方法。
- 条件付き非分岐命令が実行されないことを予測する機器であって、
条件付き非分岐命令を、予測に適格であると識別する第1の回路と、
評価基準を満たすことに応じて、前記適格な条件付き非分岐(ECNB)命令が実行されないかどうかを予測する第2の回路とを備える機器。 - 実行されないという前記予測に応じて、前記ECNB命令が実行されるのに必要とされるオペランドを取り出さないオペランド取出し回路をさらに備える、請求項13に記載の機器。
- 予測のためのパイプラインステージに続くパイプラインステージで、前記予測を追跡するためのパイプライン追跡回路と、
実行されないという前記予測に応じて、前記ECNB命令を実行しないECNB命令実行ステージ回路とをさらに備える、請求項13に記載の機器。 - 前記評価基準と比較されるカウント値出力を有するECNB命令実行状況カウンタであって、前記カウント値が、ECNB命令が条件付きで実行されたことを示すように第1の方向に更新され、強実行履歴を示す第1のカウント値で飽和し、ECNB命令が実行されなかったことを示すように第2の方向に更新され、強非実行履歴を示す第2のカウント値で飽和するECNB命令実行状況カウンタをさらに備える、請求項13に記載の機器。
- 前記評価基準が前記第2のカウント値である、請求項16に記載の機器。
- 前記評価基準が、非アクティブ状態における無効予測フラグであり、前記無効予測フラグの前記非アクティブ状態が、予測が有効にされることを示し、前記ECNB命令が前記ECNB命令に関連づけられたソフトウェアループ中において条件付きで実行されたと判断されたことがある場合は前記無効予測フラグが無効状態にセットされる、請求項13に記載の機器。
- 条件付き非分岐命令が実行されないことを予測する方法であって、
実行されるか、それとも実行されないかの予測に適格な条件付き非分岐命令を識別するステップと、
評価基準を満たすことに応じて、前記適格な条件付き非分岐(ECNB)命令が実行されないことを予測するステップとを含む方法。 - 前記評価基準を満たすことに応じて、前記ECNB命令が実行されるのに必要とされるソースオペランドが取り出されない、請求項19に記載の方法。
- 前記評価基準を満たすことに応じて、前記ECNB命令が無演算(NOP)命令として実行される、請求項19に記載の方法。
- 前記評価基準を満たすことが、
ソフトウェアループ内で発見された前記ECNB命令の以前の試行済み実行の実行状況の履歴を記録すること、および
前記履歴を、前記評価基準が満たされているかどうかを示すための前記評価基準と比較することを含む、請求項19に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/543,847 US20110047357A1 (en) | 2009-08-19 | 2009-08-19 | Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions |
US12/543,847 | 2009-08-19 | ||
PCT/US2010/045910 WO2011022493A1 (en) | 2009-08-19 | 2010-08-18 | Methods and apparatus to predict non-execution of conditional non-branching instructions |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015083212A Division JP6345623B2 (ja) | 2009-08-19 | 2015-04-15 | 条件付き非ブランチング命令の非実行を予測するための方法および機器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013502657A true JP2013502657A (ja) | 2013-01-24 |
JP5734980B2 JP5734980B2 (ja) | 2015-06-17 |
Family
ID=42835737
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012525670A Active JP5734980B2 (ja) | 2009-08-19 | 2010-08-18 | 条件付き非ブランチング命令の非実行を予測するための方法および機器 |
JP2015083212A Active JP6345623B2 (ja) | 2009-08-19 | 2015-04-15 | 条件付き非ブランチング命令の非実行を予測するための方法および機器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015083212A Active JP6345623B2 (ja) | 2009-08-19 | 2015-04-15 | 条件付き非ブランチング命令の非実行を予測するための方法および機器 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20110047357A1 (ja) |
EP (1) | EP2467776B1 (ja) |
JP (2) | JP5734980B2 (ja) |
KR (1) | KR101513953B1 (ja) |
CN (1) | CN102483696B (ja) |
ES (1) | ES2741998T3 (ja) |
HU (1) | HUE044310T2 (ja) |
TW (1) | TWI436273B (ja) |
WO (1) | WO2011022493A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015130206A (ja) * | 2009-08-19 | 2015-07-16 | クアルコム,インコーポレイテッド | 条件付き非ブランチング命令の非実行を予測するための方法および機器 |
JP2016512366A (ja) * | 2013-03-14 | 2016-04-25 | クアルコム,インコーポレイテッド | 定数キャッシュを使用してより効率的にリテラル生成データを従属命令に転送するための方法および装置 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102707988B (zh) * | 2011-04-07 | 2015-09-09 | 威盛电子股份有限公司 | 微处理器及其操作方法 |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9146742B2 (en) | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US8924695B2 (en) | 2011-04-07 | 2014-12-30 | Via Technologies, Inc. | Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor |
US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
EP2631787A3 (en) * | 2011-04-07 | 2016-04-06 | VIA Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
US8880857B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US20120311308A1 (en) * | 2011-06-01 | 2012-12-06 | Polychronis Xekalakis | Branch Predictor with Jump Ahead Logic to Jump Over Portions of Program Code Lacking Branches |
US9268569B2 (en) | 2012-02-24 | 2016-02-23 | Apple Inc. | Branch misprediction behavior suppression on zero predicate branch mispredict |
US9552032B2 (en) * | 2012-04-27 | 2017-01-24 | Nvidia Corporation | Branch prediction power reduction |
US9891922B2 (en) | 2012-06-15 | 2018-02-13 | International Business Machines Corporation | Selectively blocking branch prediction for a predetermined number of instructions |
US9317293B2 (en) * | 2012-11-28 | 2016-04-19 | Qualcomm Incorporated | Establishing a branch target instruction cache (BTIC) entry for subroutine returns to reduce execution pipeline bubbles, and related systems, methods, and computer-readable media |
US9348599B2 (en) * | 2013-01-15 | 2016-05-24 | International Business Machines Corporation | Confidence threshold-based opposing branch path execution for branch prediction |
US20140258635A1 (en) * | 2013-03-08 | 2014-09-11 | Oracle International Corporation | Invalidating entries in a non-coherent cache |
US10509725B2 (en) | 2013-03-08 | 2019-12-17 | Oracle International Corporation | Flushing by copying entries in a non-coherent cache to main memory |
KR20140134421A (ko) * | 2013-05-14 | 2014-11-24 | 한국전자통신연구원 | 이중 명령어 페치 장치 및 방법 |
GB2528676B (en) * | 2014-07-25 | 2016-10-26 | Imagination Tech Ltd | Conditional Branch Prediction Using A Long History |
CN107179935B (zh) * | 2016-03-11 | 2021-01-29 | 华为技术有限公司 | 一种指令执行方法及虚拟机 |
CN108334337B (zh) * | 2018-01-30 | 2022-02-01 | 江苏华存电子科技有限公司 | 含自动管理功能的低延迟指令调度器及过滤猜测访问方法 |
GB2577502B (en) * | 2018-09-26 | 2021-09-08 | Advanced Risc Mach Ltd | An apparatus and method for processing instructions |
US11099852B2 (en) * | 2018-10-25 | 2021-08-24 | Arm Limitied | Apparatus and method for maintaining prediction performance metrics for prediction components for each of a plurality of execution regions and implementing a prediction adjustment action based thereon |
CN112540796B (zh) * | 2019-09-23 | 2024-05-07 | 阿里巴巴集团控股有限公司 | 一种指令处理装置、处理器及其处理方法 |
US11243766B2 (en) * | 2019-09-25 | 2022-02-08 | Intel Corporation | Flexible instruction set disabling |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01205340A (ja) * | 1988-02-12 | 1989-08-17 | Nec Corp | データ処理装置 |
JPH01258031A (ja) * | 1988-04-06 | 1989-10-16 | Mitsubishi Electric Corp | データ処理装置 |
JPH0675769A (ja) * | 1992-05-26 | 1994-03-18 | Nec Corp | 分岐予測機構 |
JPH09218786A (ja) * | 1996-02-09 | 1997-08-19 | Fujitsu Ltd | 情報処理装置 |
JPH1185515A (ja) * | 1997-09-10 | 1999-03-30 | Ricoh Co Ltd | マイクロプロセッサ |
WO2000041072A1 (en) * | 1998-12-31 | 2000-07-13 | Intel Corporation | A method and apparatus for improved predicate prediction |
JP2000305795A (ja) * | 1999-04-20 | 2000-11-02 | Nec Corp | 並列処理装置 |
JP2000322257A (ja) * | 1999-05-10 | 2000-11-24 | Nec Corp | 条件分岐命令の投機的実行制御方法 |
JP2001175473A (ja) * | 1999-08-31 | 2001-06-29 | Internatl Business Mach Corp <Ibm> | コンピュータ処理システムにおいて実行述語を実現する方法及び装置 |
US20010032308A1 (en) * | 1998-08-04 | 2001-10-18 | Grochowski Edward T. | Method and apparatus for performing predicate prediction |
US6629238B1 (en) * | 1999-12-29 | 2003-09-30 | Intel Corporation | Predicate controlled software pipelined loop processing with prediction of predicate writing and value prediction for use in subsequent iteration |
JP2005508546A (ja) * | 2001-11-05 | 2005-03-31 | インテル コーポレイション | 推測式プロセッサにおいて信頼性のないデータを含む命令の実行を削減するシステム及び方法 |
WO2008029450A1 (fr) * | 2006-09-05 | 2008-03-13 | Fujitsu Limited | Dispositif de traitement d'informations comprenant un mécanisme de correction d'erreur de prédiction d'embranchement |
US20080177984A1 (en) * | 2007-01-24 | 2008-07-24 | Arm Limited | Suppressing register renaming for conditional instructions predicted as not executed |
JP2008529191A (ja) * | 2005-02-03 | 2008-07-31 | クゥアルコム・インコーポレイテッド | 電力的に効率的な命令プリフェッチ機構 |
JP2008537208A (ja) * | 2005-03-04 | 2008-09-11 | クゥアルコム・インコーポレイテッド | 条件付命令を実行しない時のソース・オペランドの停止待機 |
JP2009070378A (ja) * | 2007-09-17 | 2009-04-02 | Internatl Business Mach Corp <Ibm> | アウト・オブ・オーダ・プロセッサにおける述語型実行のための方法および装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2060555A1 (en) * | 1991-04-24 | 1992-10-25 | Robert J. Bullions, Iii | System and method for draining an instruction pipeline |
US5860017A (en) * | 1996-06-28 | 1999-01-12 | Intel Corporation | Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction |
US6442679B1 (en) * | 1999-08-17 | 2002-08-27 | Compaq Computer Technologies Group, L.P. | Apparatus and method for guard outcome prediction |
US6804770B2 (en) * | 2001-03-22 | 2004-10-12 | International Business Machines Corporation | Method and apparatus for using past history to avoid flush conditions in a microprocessor |
TW503997U (en) | 2001-12-14 | 2002-09-21 | Hon Hai Prec Ind Co Ltd | Optical switch device |
US20040230781A1 (en) * | 2003-05-16 | 2004-11-18 | Via-Cyrix, Inc. | Method and system for predicting the execution of conditional instructions in a processor |
US20040255103A1 (en) * | 2003-06-11 | 2004-12-16 | Via-Cyrix, Inc. | Method and system for terminating unnecessary processing of a conditional instruction in a processor |
US20050015578A1 (en) * | 2003-07-14 | 2005-01-20 | Kimming So | Two-bit branch prediction scheme using reduced memory size |
US20060190710A1 (en) * | 2005-02-24 | 2006-08-24 | Bohuslav Rychlik | Suppressing update of a branch history register by loop-ending branches |
US7263577B2 (en) * | 2005-03-03 | 2007-08-28 | Qualcomm Incorporated | Power saving methods and apparatus to selectively enable comparators in a CAM renaming register file based on known processor state |
US7278012B2 (en) * | 2005-06-02 | 2007-10-02 | Qualcomm Incorporated | Method and apparatus for efficiently accessing first and second branch history tables to predict branch instructions |
US8078852B2 (en) * | 2009-05-28 | 2011-12-13 | International Business Machines Corporation | Predictors with adaptive prediction threshold |
US20110047357A1 (en) * | 2009-08-19 | 2011-02-24 | Qualcomm Incorporated | Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions |
US9274795B2 (en) * | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
-
2009
- 2009-08-19 US US12/543,847 patent/US20110047357A1/en not_active Abandoned
-
2010
- 2010-08-18 ES ES10750200T patent/ES2741998T3/es active Active
- 2010-08-18 KR KR1020127007089A patent/KR101513953B1/ko active IP Right Grant
- 2010-08-18 WO PCT/US2010/045910 patent/WO2011022493A1/en active Application Filing
- 2010-08-18 CN CN201080036831.4A patent/CN102483696B/zh active Active
- 2010-08-18 HU HUE10750200 patent/HUE044310T2/hu unknown
- 2010-08-18 JP JP2012525670A patent/JP5734980B2/ja active Active
- 2010-08-18 EP EP10750200.7A patent/EP2467776B1/en active Active
- 2010-08-19 TW TW099127797A patent/TWI436273B/zh active
-
2015
- 2015-04-15 JP JP2015083212A patent/JP6345623B2/ja active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01205340A (ja) * | 1988-02-12 | 1989-08-17 | Nec Corp | データ処理装置 |
JPH01258031A (ja) * | 1988-04-06 | 1989-10-16 | Mitsubishi Electric Corp | データ処理装置 |
JPH0675769A (ja) * | 1992-05-26 | 1994-03-18 | Nec Corp | 分岐予測機構 |
JPH09218786A (ja) * | 1996-02-09 | 1997-08-19 | Fujitsu Ltd | 情報処理装置 |
JPH1185515A (ja) * | 1997-09-10 | 1999-03-30 | Ricoh Co Ltd | マイクロプロセッサ |
US20010032308A1 (en) * | 1998-08-04 | 2001-10-18 | Grochowski Edward T. | Method and apparatus for performing predicate prediction |
WO2000041072A1 (en) * | 1998-12-31 | 2000-07-13 | Intel Corporation | A method and apparatus for improved predicate prediction |
JP2000305795A (ja) * | 1999-04-20 | 2000-11-02 | Nec Corp | 並列処理装置 |
JP2000322257A (ja) * | 1999-05-10 | 2000-11-24 | Nec Corp | 条件分岐命令の投機的実行制御方法 |
JP2001175473A (ja) * | 1999-08-31 | 2001-06-29 | Internatl Business Mach Corp <Ibm> | コンピュータ処理システムにおいて実行述語を実現する方法及び装置 |
US6629238B1 (en) * | 1999-12-29 | 2003-09-30 | Intel Corporation | Predicate controlled software pipelined loop processing with prediction of predicate writing and value prediction for use in subsequent iteration |
JP2005508546A (ja) * | 2001-11-05 | 2005-03-31 | インテル コーポレイション | 推測式プロセッサにおいて信頼性のないデータを含む命令の実行を削減するシステム及び方法 |
JP2008529191A (ja) * | 2005-02-03 | 2008-07-31 | クゥアルコム・インコーポレイテッド | 電力的に効率的な命令プリフェッチ機構 |
JP2008537208A (ja) * | 2005-03-04 | 2008-09-11 | クゥアルコム・インコーポレイテッド | 条件付命令を実行しない時のソース・オペランドの停止待機 |
WO2008029450A1 (fr) * | 2006-09-05 | 2008-03-13 | Fujitsu Limited | Dispositif de traitement d'informations comprenant un mécanisme de correction d'erreur de prédiction d'embranchement |
US20080177984A1 (en) * | 2007-01-24 | 2008-07-24 | Arm Limited | Suppressing register renaming for conditional instructions predicted as not executed |
JP2009070378A (ja) * | 2007-09-17 | 2009-04-02 | Internatl Business Mach Corp <Ibm> | アウト・オブ・オーダ・プロセッサにおける述語型実行のための方法および装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015130206A (ja) * | 2009-08-19 | 2015-07-16 | クアルコム,インコーポレイテッド | 条件付き非ブランチング命令の非実行を予測するための方法および機器 |
JP2016512366A (ja) * | 2013-03-14 | 2016-04-25 | クアルコム,インコーポレイテッド | 定数キャッシュを使用してより効率的にリテラル生成データを従属命令に転送するための方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5734980B2 (ja) | 2015-06-17 |
CN102483696A (zh) | 2012-05-30 |
TW201118726A (en) | 2011-06-01 |
EP2467776A1 (en) | 2012-06-27 |
JP2015130206A (ja) | 2015-07-16 |
US20110047357A1 (en) | 2011-02-24 |
JP6345623B2 (ja) | 2018-06-20 |
WO2011022493A1 (en) | 2011-02-24 |
KR20120058555A (ko) | 2012-06-07 |
EP2467776B1 (en) | 2019-05-15 |
CN102483696B (zh) | 2016-10-26 |
KR101513953B1 (ko) | 2015-04-21 |
TWI436273B (zh) | 2014-05-01 |
HUE044310T2 (hu) | 2019-10-28 |
ES2741998T3 (es) | 2020-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6345623B2 (ja) | 条件付き非ブランチング命令の非実行を予測するための方法および機器 | |
KR101788683B1 (ko) | 루프에 대한 데이터 프리페치 요청들을 취소하기 위한 방법들 및 장치 | |
JP5917616B2 (ja) | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 | |
US7278012B2 (en) | Method and apparatus for efficiently accessing first and second branch history tables to predict branch instructions | |
US20070130450A1 (en) | Unnecessary dynamic branch prediction elimination method for low-power | |
US8943298B2 (en) | Meta predictor restoration upon detecting misprediction | |
US8028180B2 (en) | Method and system for power conservation in a hierarchical branch predictor | |
EP3646172A1 (en) | Multi-tagged branch prediction table | |
US9489204B2 (en) | Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process | |
KR20180126518A (ko) | 벡터 명령 처리 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131008 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140108 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140408 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140512 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140806 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150302 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150316 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150415 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5734980 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |