JP5917616B2 - 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 - Google Patents
事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 Download PDFInfo
- Publication number
- JP5917616B2 JP5917616B2 JP2014141182A JP2014141182A JP5917616B2 JP 5917616 B2 JP5917616 B2 JP 5917616B2 JP 2014141182 A JP2014141182 A JP 2014141182A JP 2014141182 A JP2014141182 A JP 2014141182A JP 5917616 B2 JP5917616 B2 JP 5917616B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- advn
- branch
- target address
- 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
Links
- 238000000034 method Methods 0.000 title claims description 86
- 238000005516 engineering process Methods 0.000 title description 4
- 230000008859 change Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 9
- 238000011010 flushing procedure Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 50
- 238000010586 diagram Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual 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/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/30003—Arrangements for executing specific machine instructions
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
-
- 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
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
-
- 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 or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
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)
Description
202 プロセッサパイプライン
204 汎用レジスタファイル
206 制御回路
208 L1命令キャッシュ
210 L1データキャッシュ
212 メモリ階層
214 命令フェッチステージ
215 プログラムカウンタ
216 デコードおよび事前通知(ADVN)ステージ
218 ディスパッチステージ
219 分岐ターゲットアドレスレジスタ
220 リードレジスタステージ
222 実行ステージ
224 ライトバックステージ
226 フォワーディングネットワーク
300 32ビットのADVN命令
307 分岐ターゲットアドレスレジスタフィールド
350 16ビットのADVN命令
357 分岐ターゲットアドレスレジスタフィールド
500 第1の間接分岐ターゲットアドレス(BTA)事前通知(ADVN)回路
504 ADVN実行回路
508 分岐ターゲットアドレスレジスタ(BTAR)回路
512 BXデコード回路
516 選択回路
520 ネクストプログラムカウンタ回路
800 ターゲットトラッキング(TTT)テーブル
802 ターゲットトラッキング(TTT)エントリ
804 エントリ有効ビット
805 タグフィールド
806 レジスタアドレス
807 データ有効ビット
808 アップ/ダウンカウンタ値
809 Rmデータフィールド
900 第2の間接分岐ターゲットアドレス(BTA)事前通知(ADVN)回路
902 デコード回路
904 検出回路
906 事前通知(ADVN)回路
908 訂正回路
910 決定回路
912 トラック1回路
914 最新BTA回路
920 トラック2回路
922 訂正パイプ回路
950 第3の間接分岐ターゲットアドレス(BTA)事前通知(ADVN)回路
952 ネクストプログラムカウンタ回路
954 デコード回路
956 実行回路
958 トラッキングテーブル(TTT)回路
Claims (7)
- 第1の命令によってターゲットレジスタとして特定されたレジスタからプログラムによって指定されたターゲットアドレスの現在の値を取り出すステップであって、前記ターゲットレジスタは、命令セットアーキテクチャにおいて指定された複数の異なる命令によってアクセス可能なレジスタであるとともに、前記ターゲットアドレスの現在の値は、前記ターゲットレジスタへ書き込んだ現在の実行サイクル以前の実行ステータスの履歴に基づいて第2の命令が分岐されると判定された際に予測される間接分岐ターゲットアドレスの値である、ステップと、
前記第2の命令が見つかった後に、前記ターゲットレジスタから受信された前記プログラム指定されたターゲットアドレスへスペキュレイティブ実行のフローを変更するステップであって、前記第2の命令は、間接分岐命令であると動的に決定される、ステップと、
コード部分の実行中に見つかった分岐をトラッキングするために利用される、ハードウェアリソースを有する分岐履歴予測回路を有するプロセッサパイプラインにおいて、前記第1の命令をノーオペレーションとして処理するステップと、
前記分岐履歴予測回路にとって利用可能な前記ハードウェアリソースを超えるコード部分に対する前記第1の命令をイネーブルにするステップと
を含む、
プログラムのシーケンシャルフローを変更する方法。 - 前記第1の命令の前記ターゲットレジスタは、次の間接分岐命令において特定される前記ターゲットレジスタであるとともに、前記ターゲットレジスタは、汎用レジスタファイル内の複数のレジスタから選択されたレジスタである、請求項1に記載の方法。
- コードシーケンスにおいて、間接分岐より少なくともN個のプログラム命令だけ前に、第1の命令を挿入するステップであって、前記N個のプログラム命令が、プロセッサパイプラインにおける、前記間接分岐命令を受信するパイプラインステージと前記第1の命令によって特定された前記レジスタを承認するパイプラインステージとの間のパイプラインステージの数に対応している、ステップをさらに含む、請求項1に記載の方法。
- 前記ターゲットアドレスは、前記第1の命令の実行結果として、分岐ターゲットアドレスレジスタに記憶される、請求項1に記載の方法。
- 前記分岐ターゲットアドレスレジスタに記憶された前記値が有効命令アドレスであることを決定するステップと、
フェッチする次のアドレスを特定するために間接分岐をデコードする際に、前記分岐ターゲットアドレスレジスタからの前記値を選択するステップと、
をさらに含む、本願請求項4に記載の方法。 - 分岐ターゲットアドレスを決定するために前記間接分岐命令を実行するステップと、
前記決定された分岐ターゲットアドレスを前記プログラム指定されたターゲットアドレスと比較するステップと、
前記決定された分岐ターゲットアドレスが前記プログラム指定されたターゲットアドレスと同じでない場合に、プロセッサパイプラインをフラッシュするステップと、
をさらに含む請求項1に記載の方法。 - 前記第1の命令が見つかった後に分岐予測回路を無効にするステップをさらに含む、請求項1に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/824,599 US20110320787A1 (en) | 2010-06-28 | 2010-06-28 | Indirect Branch Hint |
US12/824,599 | 2010-06-28 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013516855A Division JP5579930B2 (ja) | 2010-06-28 | 2011-06-28 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016076575A Division JP2016146207A (ja) | 2010-06-28 | 2016-04-06 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014222529A JP2014222529A (ja) | 2014-11-27 |
JP5917616B2 true JP5917616B2 (ja) | 2016-05-18 |
Family
ID=44352092
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013516855A Expired - Fee Related JP5579930B2 (ja) | 2010-06-28 | 2011-06-28 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
JP2014098609A Pending JP2014194799A (ja) | 2010-06-28 | 2014-05-12 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
JP2014141182A Expired - Fee Related JP5917616B2 (ja) | 2010-06-28 | 2014-07-09 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
JP2016076575A Pending JP2016146207A (ja) | 2010-06-28 | 2016-04-06 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013516855A Expired - Fee Related JP5579930B2 (ja) | 2010-06-28 | 2011-06-28 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
JP2014098609A Pending JP2014194799A (ja) | 2010-06-28 | 2014-05-12 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016076575A Pending JP2016146207A (ja) | 2010-06-28 | 2016-04-06 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20110320787A1 (ja) |
EP (1) | EP2585908A1 (ja) |
JP (4) | JP5579930B2 (ja) |
KR (1) | KR101459536B1 (ja) |
CN (1) | CN102934075B (ja) |
WO (1) | WO2012006046A1 (ja) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320787A1 (en) * | 2010-06-28 | 2011-12-29 | Qualcomm Incorporated | Indirect Branch Hint |
WO2013015835A1 (en) | 2011-07-22 | 2013-01-31 | Seven Networks, Inc. | Mobile application traffic optimization |
WO2013147879A1 (en) * | 2012-03-30 | 2013-10-03 | Intel Corporation | Dynamic branch hints using branches-to-nowhere conditional branch |
US20130346727A1 (en) * | 2012-06-25 | 2013-12-26 | Qualcomm Incorporated | Methods and Apparatus to Extend Software Branch Target Hints |
CN103513957B (zh) * | 2012-06-27 | 2017-07-11 | 上海芯豪微电子有限公司 | 高性能缓存方法 |
US9652245B2 (en) | 2012-07-16 | 2017-05-16 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Branch prediction for indirect jumps by hashing current and previous branch instruction addresses |
GB201300608D0 (en) * | 2013-01-14 | 2013-02-27 | Imagination Tech Ltd | Indirect branch prediction |
CN103984637A (zh) * | 2013-02-07 | 2014-08-13 | 上海芯豪微电子有限公司 | 一种指令处理系统及方法 |
GB2506462B (en) | 2013-03-13 | 2014-08-13 | Imagination Tech Ltd | Indirect branch prediction |
CN103218205B (zh) * | 2013-03-26 | 2015-09-09 | 中国科学院声学研究所 | 一种循环缓冲装置以及循环缓冲方法 |
CA2926198A1 (en) | 2013-11-27 | 2015-06-04 | David HUA | Systems and methods for revising permanent rom-based programming |
US9286073B2 (en) * | 2014-01-07 | 2016-03-15 | Samsung Electronics Co., Ltd. | Read-after-write hazard predictor employing confidence and sampling |
CA2967396A1 (en) | 2014-11-19 | 2016-05-26 | Abbott Diabetes Care Inc. | Systems, devices, and methods for revising or supplementing rom-based rf commands |
US9830162B2 (en) * | 2014-12-15 | 2017-11-28 | Intel Corporation | Technologies for indirect branch target security |
US9348595B1 (en) | 2014-12-22 | 2016-05-24 | Centipede Semi Ltd. | Run-time code parallelization with continuous monitoring of repetitive instruction sequences |
US9569613B2 (en) * | 2014-12-23 | 2017-02-14 | Intel Corporation | Techniques for enforcing control flow integrity using binary translation |
US9135015B1 (en) | 2014-12-25 | 2015-09-15 | Centipede Semi Ltd. | Run-time code parallelization with monitoring of repetitive instruction sequences during branch mis-prediction |
US9208066B1 (en) * | 2015-03-04 | 2015-12-08 | Centipede Semi Ltd. | Run-time code parallelization with approximate monitoring of instruction sequences |
US10296346B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences based on pre-monitoring |
US10296350B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences |
US9715390B2 (en) | 2015-04-19 | 2017-07-25 | Centipede Semi Ltd. | Run-time parallelization of code execution based on an approximate register-access specification |
US20160313995A1 (en) | 2015-04-24 | 2016-10-27 | Optimum Semiconductor Technologies, Inc. | Computer processor with indirect only branching |
US9916164B2 (en) * | 2015-06-11 | 2018-03-13 | Intel Corporation | Methods and apparatus to optimize instructions for execution by a processor |
GB2548604B (en) * | 2016-03-23 | 2018-03-21 | Advanced Risc Mach Ltd | Branch instruction |
GB2551548B (en) * | 2016-06-22 | 2019-05-08 | Advanced Risc Mach Ltd | Register restoring branch instruction |
US20180081690A1 (en) * | 2016-09-21 | 2018-03-22 | Qualcomm Incorporated | Performing distributed branch prediction using fused processor cores in processor-based systems |
US10534609B2 (en) | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
US10908911B2 (en) * | 2017-08-18 | 2021-02-02 | International Business Machines Corporation | Predicting and storing a predicted target address in a plurality of selected locations |
US10884745B2 (en) * | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Providing a predicted target address to multiple locations based on detecting an affiliated relationship |
US11150904B2 (en) * | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Concurrent prediction of branch addresses and update of register contents |
US10884746B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Determining and predicting affiliated registers based on dynamic runtime control flow analysis |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
US11150908B2 (en) * | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence |
US10884747B2 (en) * | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
GB2573119A (en) * | 2018-04-24 | 2019-10-30 | Advanced Risc Mach Ltd | Maintaining state of speculation |
JP7158208B2 (ja) | 2018-08-22 | 2022-10-21 | エルジー ディスプレイ カンパニー リミテッド | 電気流体ディスプレイ装置及び複合ディスプレイ装置 |
US10846097B2 (en) * | 2018-12-20 | 2020-11-24 | Samsung Electronics Co., Ltd. | Mispredict recovery apparatus and method for branch and fetch pipelines |
CN110347432B (zh) * | 2019-06-17 | 2021-09-14 | 海光信息技术股份有限公司 | 处理器、分支预测器及其数据处理方法、分支预测方法 |
CN110764823B (zh) * | 2019-09-02 | 2021-11-16 | 芯创智(北京)微电子有限公司 | 一种指令流水线的回路控制系统及方法 |
CN112540794A (zh) * | 2019-09-20 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 处理器核、处理器、装置和指令处理方法 |
CN111008625B (zh) * | 2019-12-06 | 2023-07-18 | 建信金融科技有限责任公司 | 一种地址校正方法、装置、设备及存储介质 |
US11379240B2 (en) | 2020-01-31 | 2022-07-05 | Apple Inc. | Indirect branch predictor based on register operands |
US11294684B2 (en) | 2020-01-31 | 2022-04-05 | Apple Inc. | Indirect branch predictor for dynamic indirect branches |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04225429A (ja) * | 1990-12-26 | 1992-08-14 | Nec Corp | データ処理装置 |
JP3730252B2 (ja) * | 1992-03-31 | 2005-12-21 | トランスメタ コーポレイション | レジスタ名称変更方法及び名称変更システム |
TW455814B (en) * | 1998-08-06 | 2001-09-21 | Intel Corp | Software directed target address cache and target address register |
US6611910B2 (en) * | 1998-10-12 | 2003-08-26 | Idea Corporation | Method for processing branch operations |
US7752423B2 (en) * | 2001-06-28 | 2010-07-06 | Intel Corporation | Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor |
EP1405174A1 (en) * | 2001-06-29 | 2004-04-07 | Koninklijke Philips Electronics N.V. | Method, apparatus and compiler for predicting indirect branch target addresses |
US7065640B2 (en) * | 2001-10-11 | 2006-06-20 | International Business Machines Corporation | System for implementing a diagnostic or correction boot image over a network connection |
US7624254B2 (en) * | 2007-01-24 | 2009-11-24 | Qualcomm Incorporated | Segmented pipeline flushing for mispredicted branches |
US7809933B2 (en) * | 2007-06-07 | 2010-10-05 | International Business Machines Corporation | System and method for optimizing branch logic for handling hard to predict indirect branches |
US8555040B2 (en) * | 2010-05-24 | 2013-10-08 | Apple Inc. | Indirect branch target predictor that prevents speculation if mispredict is expected |
US20110320787A1 (en) * | 2010-06-28 | 2011-12-29 | Qualcomm Incorporated | Indirect Branch Hint |
-
2010
- 2010-06-28 US US12/824,599 patent/US20110320787A1/en not_active Abandoned
-
2011
- 2011-06-28 EP EP11730820.5A patent/EP2585908A1/en not_active Withdrawn
- 2011-06-28 KR KR1020137002326A patent/KR101459536B1/ko not_active IP Right Cessation
- 2011-06-28 CN CN201180028116.0A patent/CN102934075B/zh not_active Expired - Fee Related
- 2011-06-28 WO PCT/US2011/042087 patent/WO2012006046A1/en active Application Filing
- 2011-06-28 JP JP2013516855A patent/JP5579930B2/ja not_active Expired - Fee Related
-
2014
- 2014-05-12 JP JP2014098609A patent/JP2014194799A/ja active Pending
- 2014-07-09 JP JP2014141182A patent/JP5917616B2/ja not_active Expired - Fee Related
-
2016
- 2016-04-06 JP JP2016076575A patent/JP2016146207A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2012006046A1 (en) | 2012-01-12 |
JP5579930B2 (ja) | 2014-08-27 |
JP2014194799A (ja) | 2014-10-09 |
EP2585908A1 (en) | 2013-05-01 |
JP2014222529A (ja) | 2014-11-27 |
KR101459536B1 (ko) | 2014-11-07 |
US20110320787A1 (en) | 2011-12-29 |
JP2016146207A (ja) | 2016-08-12 |
CN102934075A (zh) | 2013-02-13 |
CN102934075B (zh) | 2015-12-02 |
JP2013533549A (ja) | 2013-08-22 |
KR20130033476A (ko) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5917616B2 (ja) | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 | |
EP2864868B1 (en) | Methods and apparatus to extend software branch target hints | |
JP5335946B2 (ja) | 電力的に効率的な命令プリフェッチ機構 | |
US7278012B2 (en) | Method and apparatus for efficiently accessing first and second branch history tables to predict branch instructions | |
US20180107485A1 (en) | Energy-focused compiler-assisted branch prediction | |
US7685410B2 (en) | Redirect recovery cache that receives branch misprediction redirects and caches instructions to be dispatched in response to the redirects | |
KR100667120B1 (ko) | 이중 모드 시스템에서 혼합 명령 스트림 내의 상이한 명령세트의 분기 명령 에뮬레이팅 | |
JP2001147807A (ja) | 改良された分岐制御命令を利用するためのマイクロプロセッサ、分岐目標命令メモリ、命令ロード制御回路、パイプラインへの命令供給維持方法、分岐制御メモリ、およびプロセッサ | |
JPH10133873A (ja) | 複数の分岐予測方式のうちの選択された1つを使用して条件分岐命令を投機的に実行するためのプロセッサおよび方法 | |
JPH1069385A (ja) | 命令ループを推論的に実行するプロセッサ及び方法 | |
EP2024820B1 (en) | Sliding-window, block-based branch target address cache | |
JP5745638B2 (ja) | 分岐命令の中に符号化されたバイモーダル分岐予測子 | |
US10338923B2 (en) | Branch prediction path wrong guess instruction | |
KR100986375B1 (ko) | 피연산자의 빠른 조건부 선택 | |
US20040225866A1 (en) | Branch prediction in a data processing system | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
US7343481B2 (en) | Branch prediction in a data processing system utilizing a cache of previous static predictions | |
JP2001142707A (ja) | プロセッサおよびそれを用いて実行されるプログラム分岐に対する例外チェックの実行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150617 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150717 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160209 |
|
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: 20160307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160406 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5917616 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |