JP5579930B2 - 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 - Google Patents
事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 Download PDFInfo
- Publication number
- JP5579930B2 JP5579930B2 JP2013516855A JP2013516855A JP5579930B2 JP 5579930 B2 JP5579930 B2 JP 5579930B2 JP 2013516855 A JP2013516855 A JP 2013516855A JP 2013516855 A JP2013516855 A JP 2013516855A JP 5579930 B2 JP5579930 B2 JP 5579930B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- advn
- branch
- indirect 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 91
- 238000005516 engineering process Methods 0.000 title description 4
- 238000012545 processing Methods 0.000 claims description 9
- 238000011010 flushing procedure Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 50
- 230000008859 change Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 10
- 101100015675 Mus musculus Gpr15 gene Proteins 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function 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
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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 (11)
- 命令セットアーキテクチャで定義され、第1の命令によって特定されたレジスタから、
プログラム指定されたターゲットアドレスを取り出すステップと、
間接分岐命令であると動的に決定される第2の命令が見つかった後に、前記プログラム指定されたターゲットアドレスにスペキュレイティブ実行のフローを変更するステップと、
コード部分の実行中に見つかった分岐をトラッキングするために利用される、ハードウェアリソースを有する分岐履歴予測回路を有するプロセッサパイプラインにおいて、前記第1の命令をノーオペレーションとして処理するステップと、
前記分岐履歴予測回路にとって利用可能なハードウェアリソースを超えるコード部分に対する前記第1の命令をイネーブルにするステップと
を含む、プログラムのシーケンシャルフローを変更するための方法。 - 前記間接分岐命令が、前記第1の命令の後の、次に見つかった間接分岐命令である、請求項1に記載の方法。
- 前記間接分岐命令が、前記第1の命令によって特定されたレジスタと一致するターゲットレジスタを指定する、次に見つかった間接分岐命令である、請求項1に記載の方法。
- 前記第1の命令を、コードシーケンスにおいて、前記間接分岐よりも少なくともN個のプログラム命令だけ前に挿入するステップであって、前記N個のプログラム命令が、前記間接分岐を受信するパイプラインステージと、前記第1の命令によって特定された前記レジスタを認識するパイプラインステージとの間のパイプラインステージの数に対応している、ステップをさらに含む、請求項1に記載の方法。
- 前記間接分岐を受信するパイプラインステージがフェッチステージであり、前記第1の命令によって特定されたレジスタを認識するパイプラインステージが実行ステージである、請求項4に記載の方法。
- 複数の事前通知(ADVN)命令を、対応する複数の間接分岐命令を見つける前に受信するステップであって、前記第1の命令がADVN命令である、ステップと、
複数のADVN命令と、見つけられた対応する複数の間接分岐命令との間の対応関係をファーストインファーストアウトスタックを用いてトラッキングするステップと
をさらに含む、請求項1に記載の方法。 - 分岐ターゲットアドレスレジスタに記憶された値が有効命令アドレスであることを決定
するステップと、
フェッチする次の命令アドレスを特定するために間接分岐をデコードする際に、前記分岐ターゲットアドレスレジスタからの値を選択するステップと
をさらに含む、請求項1に記載の方法。 - 分岐ターゲットアドレスを定める間接分岐を実行するステップと、
前記定められた分岐ターゲットアドレスを、前記プログラム指定されたターゲットアドレスと比較するステップと、
前記定められた分岐ターゲットアドレスが、前記プログラム指定されたターゲットアドレスと同じでない場合に、プロセッサパイプラインをフラッシュするステップと
をさらに含む、請求項1に記載の方法。 - 前記第1の命令が見つかった後に分岐予測回路を無効にするステップをさらに含む、請求項1に記載の方法。
- 命令セットアーキテクチャで定義され、第1の命令によって特定されたレジスタから、
プログラム指定されたターゲットアドレスを取り出すステップと、
間接分岐命令であると動的に決定される第2の命令が見つかった後に、前記プログラム指定されたターゲットアドレスにスペキュレイティブ実行のフローを変更するステップと、
複数の事前通知(ADVN)命令を、対応する複数の間接分岐命令を見つける前に受信するステップであって、前記第1の命令がADVN命令である、ステップと、
複数のADVN命令と、見つけられた対応する複数の間接分岐命令との間の対応関係をファーストインファーストアウトスタックを用いてトラッキングするステップと
を含む、プログラムのシーケンシャルフローを変更するための方法。 - 前記第1の命令が見つかった後に分岐予測回路を無効にするステップをさらに含む、請求項10に記載の方法。
Applications Claiming Priority (3)
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 | ||
PCT/US2011/042087 WO2012006046A1 (en) | 2010-06-28 | 2011-06-28 | Methods and apparatus for changing a sequential flow of a program using advance notice techniques |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014098609A Division JP2014194799A (ja) | 2010-06-28 | 2014-05-12 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
JP2014141182A Division JP5917616B2 (ja) | 2010-06-28 | 2014-07-09 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013533549A JP2013533549A (ja) | 2013-08-22 |
JP5579930B2 true JP5579930B2 (ja) | 2014-08-27 |
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 After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 |
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 | 中国科学院声学研究所 | 一种循环缓冲装置以及循环缓冲方法 |
WO2015081268A1 (en) * | 2013-11-27 | 2015-06-04 | Abbott Diabetes Care Inc. | 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 |
US10296350B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences |
US10296346B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences based on pre-monitoring |
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 |
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 |
US10884747B2 (en) * | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
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 |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
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 |
US10534609B2 (en) | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
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 |
US10346144B2 (en) * | 2017-09-29 | 2019-07-09 | Intel Corporation | Methods and apparatus to map single static assignment instructions onto a data flow graph in a data flow architecture |
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 | データ処理装置 |
EP0636256B1 (en) * | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Superscalar risc processor instruction scheduling |
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 |
WO2003003195A1 (en) * | 2001-06-29 | 2003-01-09 | 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 JP JP2013516855A patent/JP5579930B2/ja not_active Expired - Fee Related
- 2011-06-28 CN CN201180028116.0A patent/CN102934075B/zh not_active Expired - Fee Related
- 2011-06-28 EP EP11730820.5A patent/EP2585908A1/en not_active Withdrawn
- 2011-06-28 WO PCT/US2011/042087 patent/WO2012006046A1/en active Application Filing
- 2011-06-28 KR KR1020137002326A patent/KR101459536B1/ko not_active IP Right Cessation
-
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 |
---|---|
EP2585908A1 (en) | 2013-05-01 |
JP5917616B2 (ja) | 2016-05-18 |
CN102934075B (zh) | 2015-12-02 |
KR20130033476A (ko) | 2013-04-03 |
JP2014222529A (ja) | 2014-11-27 |
US20110320787A1 (en) | 2011-12-29 |
KR101459536B1 (ko) | 2014-11-07 |
JP2016146207A (ja) | 2016-08-12 |
JP2014194799A (ja) | 2014-10-09 |
JP2013533549A (ja) | 2013-08-22 |
CN102934075A (zh) | 2013-02-13 |
WO2012006046A1 (en) | 2012-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5579930B2 (ja) | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 | |
EP2864868B1 (en) | Methods and apparatus to extend software branch target hints | |
US7278012B2 (en) | Method and apparatus for efficiently accessing first and second branch history tables to predict branch instructions | |
JP5335946B2 (ja) | 電力的に効率的な命令プリフェッチ機構 | |
US7685410B2 (en) | Redirect recovery cache that receives branch misprediction redirects and caches instructions to be dispatched in response to the redirects | |
JP5198879B2 (ja) | ループ末尾に置かれた分岐により分岐履歴レジスタの更新を抑制すること | |
US6263427B1 (en) | Branch prediction mechanism | |
EP2024820B1 (en) | Sliding-window, block-based branch target address cache | |
JP2001147807A (ja) | 改良された分岐制御命令を利用するためのマイクロプロセッサ、分岐目標命令メモリ、命令ロード制御回路、パイプラインへの命令供給維持方法、分岐制御メモリ、およびプロセッサ | |
JP5745638B2 (ja) | 分岐命令の中に符号化されたバイモーダル分岐予測子 | |
US20100287358A1 (en) | Branch Prediction Path 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 |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140210 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140512 |
|
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: 20140609 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140709 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5579930 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |