JP6345623B2 - 条件付き非ブランチング命令の非実行を予測するための方法および機器 - Google Patents
条件付き非ブランチング命令の非実行を予測するための方法および機器 Download PDFInfo
- Publication number
- JP6345623B2 JP6345623B2 JP2015083212A JP2015083212A JP6345623B2 JP 6345623 B2 JP6345623 B2 JP 6345623B2 JP 2015083212 A JP2015083212 A JP 2015083212A JP 2015083212 A JP2015083212 A JP 2015083212A JP 6345623 B2 JP6345623 B2 JP 6345623B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- ecnb
- prediction
- execution
- ecnb instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 98
- 238000011156 evaluation Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000011010 flushing procedure Methods 0.000 claims description 2
- 230000001419 dependent effect Effects 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
- 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
- 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
- 229920006395 saturated elastomer Polymers 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 or 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 or 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 or 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 or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
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)
- Devices For Executing Special Programs (AREA)
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 (23)
- 無演算(NOP)命令を実行するための方法であって、前記方法は、
プロセッサコードの実行の監視中、プロセッササイクル数を判断するステップであって、前記プロセッササイクル数は、適格な条件付き非分岐(ECNB)命令の第1の発見と前記ECNB命令の第2の発見の間に発生するプロセッササイクル数に対応する、ステップと、
前記プロセッササイクル数がしきい値未満であるときに、前記ECNB命令がソフトウェアループ中に置かれていると判断した後、前記NOP命令を実行するとの予測を生成するステップであって、前記予測が前記ECNB命令の実行の履歴に基づく、ステップと、
前記予測に応じて、前記NOP命令を実行するステップと
を含む方法。 - 前記ECNB命令の特定の発見の実行の代わりに、前記NOP命令を実行するとの予測を生成するステップをさらに含み、
前記履歴は、前記ECNB命令に対応付けられる実行状況カウンタの値を含み、
前記実行状況カウンタの値は、前記ECNB命令の第1組の発見の条件付き実行により一方向に更新される一方で、前記ECNB命令の第2組の発見の条件付き非実行により反対方向に更新されるものであり、
前記予測を生成するステップは、前記実行状況カウンタの値が、前記反対方向に飽和する値となったときに、前記NOP命令を実行するとの予測を生成するステップである、請求項1に記載の方法。 - 前記プロセッサコードのループ中でECNB命令のシーケンスを識別するステップであって、ECNB命令の前記シーケンスの各ECNB命令がECNB命令の前記シーケンスの別のECNB命令の条件の評価に依存する、ステップと、
条件履歴テーブル(CHT)から、ECNB命令の前記シーケンスの少なくとも1つのECNB命令の実行の第2の履歴を読み出すステップと、
第2のNOP命令を実行するとの第2の予測に基づいて前記第2のNOP命令を実行するステップであって、前記第2の予測が前記第2の履歴に基づき、前記第2のNOP命令を実行するステップが、前記プロセッサコードの実行中にプロセッサの消費パワーを削減する、ステップとを含む、請求項1に記載の方法。 - 前記ECNB命令の1つまたは複数の発見の条件付き非実行を示すために、実行状況カウンタの値を条件履歴テーブル(CHT)中に記録するステップをさらに含み、
前記予測を生成するステップは、前記実行状況カウンタの値が、前記ECNB命令の発見の条件付き非実行による方向に飽和する値となったときに、前記NOP命令を実行するとの予測を生成するステップである、請求項1に記載の方法。 - 前記方法が前記ECNB命令のアドレスを記録するステップをさらに含む請求項1に記載の方法。
- 条件付き実行が、前記ECNB命令の前記第1組の発見の条件を評価することと、該条件を評価することによって生成された第1の結果に基づいて前記ECNB命令を実行することとに関連付けられ、前記条件付き非実行が、前記ECNB命令の前記第2組の発見の条件を評価することと、該条件を評価することによって生成された第2の結果に基づいて前記ECNB命令を実行しないこととに関連付けられる請求項2に記載の方法。
- 前記ECNB命令の実行の履歴を生成するステップをさらに含み、前記履歴を生成するステップは、
前記ECNB命令の条件付き実行のインスタンス毎にカウンタを増分するステップと
前記ECNB命令の条件付き非実行のインスタンス毎に前記カウンタを減分するステップと
を含む請求項1に記載の方法。 - 前記方法が、
前記予測が正しくないかどうかを判断するステップと、
前記予測が正しくないことに応じて、
命令パイプラインをフラッシュするステップと、
前記予測が正しくないことを考慮して予測基準を更新するステップと
をさらに含む請求項1に記載の方法。 - プロセッサのプロセッササイクル数を判断するように構成された第1の回路であって、前記プロセッササイクル数は、適格な条件付き非分岐(ECNB)命令の第1の発見と前記ECNB命令の第2の発見の間に発生するプロセッササイクル数に対応する、第1の回路と、
前記プロセッササイクル数がしきい値未満であるときに、前記ECNB命令がソフトウェアループ中に置かれていると判断した後、無演算(NOP)命令を実行するとの予測を生成するように構成された第2の回路であって、前記予測が前記ECNB命令の実行の履歴に基づく、第2の回路と
を備える装置。 - 前記ソフトウェアループに対応する命令を実行するように構成されたプロセッサをさらに備える、請求項9に記載の装置。
- 命令パイプラインをさらに備え、前記命令パイプラインは、
前記ECNB命令を含む命令を取り出すように構成された取出しステージと、
解読ステージであって、前記第1の回路が前記解読ステージ中、ECNB命令として命令を識別するように構成される、解読ステージとを含む、請求項9に記載の装置。 - 前記第1の回路が、条件履歴テーブル(CHT)を格納するようにさらに構成され、前記CHTが、索引アドレス指定可能なエントリを含み、前記装置が、前記ECNB命令の第2の発見の条件付き実行の第2の予測に応じて、前記ECNB命令の前記第2の発見の条件付き実行に必要であるオペランドを取り出すように構成されたオペランド取出し回路をさらに備える請求項9に記載の装置。
- 前記CHTの各エントリが、前記ECNB命令の発見に対する条件付き非実行を示すか、または条件付き実行を示す、対応する値を含む請求項12に記載の装置。
- 予測情報を格納するように構成された複数のレジスタをさらに備え、前記第2の回路は前記予測を追跡するための予測情報を生成するようにさらに構成される請求項9に記載の装置。
- 無演算(NOP)命令を実行すると予測するための方法であって、前記方法が、
予め指定されたアドレス範囲から取り出されたコードを識別するためにプロセッサコードの実行を監視するステップと、
前記予め指定されたアドレス範囲から取り出された前記コード内の適格な条件付き非分岐(ECNB)命令を識別するステップと、
前記ECNB命令の少なくとも2つのインスタンスの条件付き非実行を識別するステップであって、前記ECNB命令の第1のインスタンスの前記条件付き非実行が前記ECNB命令の前記第1のインスタンスの第1の条件が満たされないことに対応し、前記ECNB命令の第2のインスタンスの前記条件付き非実行が前記ECNB命令の前記第2のインスタンスの第2の条件が満たされないことに対応する、ステップと、
前記ECNB命令の前記少なくとも2つのインスタンスの前記条件付き非実行を識別した後に、前記ECNB命令が前記予め指定されたアドレス範囲に関連する評価基準を満たすとの判断に応じて前記NOP命令を実行すると予測するステップと
を含む方法。 - 前記NOP命令を実行すると予測するステップの後に、前記ECNB命令の第3のインスタンスに関連付けられた第3の条件を評価して値を生成するステップと、
前記値に基づいて、前記NOP命令を実行するとの予測が正しい予測であるかどうかを判断するステップと、
前記予測が正しいことに応じて、第2のECNB命令を取り出すステップと
をさらに含む請求項15に記載の方法。 - 前記第2のECNB命令を取り出すステップの後に、前記第2のECNB命令の少なくとも2つのインスタンスの条件付き非実行を判断するステップと、
前記第2のECNB命令に対応する第2のNOP命令を実行すると予測するステップと、
前記第2のECNB命令に関連付けられた第4の条件を評価して、前記第2のNOP命令を実行するとの予測が正しいかどうかを判断するステップと
をさらに含む請求項16に記載の方法。 - 前記NOP命令を実行するステップをさらに含む請求項15に記載の方法。
- 正しくない予測に応じて、前記第2の回路が、エントリに関連付けられた前記ECNB命令が将来の予測に適格でないことを示すように、前記CHTのエントリをマーキングするようにさらに構成される請求項12に記載の装置。
- 前記プロセッササイクル数を判断するステップの前に、前記プロセッサコードに関連付けられたECNB命令を識別するステップをさらに含む請求項1に記載の方法。
- 前記プロセッササイクル数を判断するステップの後に、前記ECNB命令の第2の発見と前記ECNB命令の第3の発見の間の第2のプロセッササイクル数を判断するステップをさらに含み、
前記予測を生成するステップは、前記プロセッササイクル数がしきい値未満であるときに、前記ECNB命令がソフトウェアループ中に置かれていると判断することに代えて、前記プロセッササイクル数および前記第2のプロセッササイクル数がしきい値未満であるときに、前記ECNB命令がソフトウェアループ中に置かれていると判断した後に、前記予測を生成するステップである、
請求項1に記載の方法。 - マイクロコードで実装された取り出された条件付き非分岐命令が条件付き非分岐予測実行に適格でないことを判断するステップをさらに含む請求項1に記載の方法。
- 前記予測を生成するステップが基地局中で実行される請求項1に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/543,847 | 2009-08-19 | ||
US12/543,847 US20110047357A1 (en) | 2009-08-19 | 2009-08-19 | Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012525670A Division JP5734980B2 (ja) | 2009-08-19 | 2010-08-18 | 条件付き非ブランチング命令の非実行を予測するための方法および機器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015130206A JP2015130206A (ja) | 2015-07-16 |
JP6345623B2 true JP6345623B2 (ja) | 2018-06-20 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012525670A Active JP5734980B2 (ja) | 2009-08-19 | 2010-08-18 | 条件付き非ブランチング命令の非実行を予測するための方法および機器 |
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) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110047357A1 (en) * | 2009-08-19 | 2011-02-24 | Qualcomm Incorporated | Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions |
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 |
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 |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | 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 |
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 |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
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 |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
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) |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
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 |
CN107832083B (zh) * | 2011-04-07 | 2020-06-12 | 威盛电子股份有限公司 | 具有条件指令的微处理器及其处理方法 |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
EP2631787A3 (en) * | 2011-04-07 | 2016-04-06 | VIA Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
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 |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
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 |
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 |
US20140281391A1 (en) * | 2013-03-14 | 2014-09-18 | Qualcomm Incorporated | Method and apparatus for forwarding literal generated data to dependent instructions more efficiently using a constant cache |
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 |
Family Cites Families (31)
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 | データ処理装置 |
CA2060555A1 (en) * | 1991-04-24 | 1992-10-25 | Robert J. Bullions, Iii | System and method for draining an instruction pipeline |
JPH0675769A (ja) * | 1992-05-26 | 1994-03-18 | Nec Corp | 分岐予測機構 |
JP3683968B2 (ja) * | 1996-02-09 | 2005-08-17 | 富士通株式会社 | 情報処理装置 |
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 |
JPH1185515A (ja) * | 1997-09-10 | 1999-03-30 | Ricoh Co Ltd | マイクロプロセッサ |
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 |
JP2000305795A (ja) * | 1999-04-20 | 2000-11-02 | Nec Corp | 並列処理装置 |
JP2000322257A (ja) * | 1999-05-10 | 2000-11-24 | Nec Corp | 条件分岐命令の投機的実行制御方法 |
US6442679B1 (en) * | 1999-08-17 | 2002-08-27 | Compaq Computer Technologies Group, L.P. | Apparatus and method for guard outcome prediction |
US6513109B1 (en) * | 1999-08-31 | 2003-01-28 | International Business Machines Corporation | Method and apparatus for implementing execution predicates in a computer processing system |
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 |
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 |
US7114059B2 (en) * | 2001-11-05 | 2006-09-26 | Intel Corporation | System and method to bypass execution of instructions involving unreliable data during speculative execution |
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 |
US7587580B2 (en) * | 2005-02-03 | 2009-09-08 | Qualcomm Corporated | Power efficient instruction prefetch mechanism |
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 |
US20060200654A1 (en) * | 2005-03-04 | 2006-09-07 | Dieffenderfer James N | Stop waiting for source operand when conditional instruction will not execute |
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 |
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 |
US7925868B2 (en) * | 2007-01-24 | 2011-04-12 | Arm Limited | Suppressing register renaming for conditional instructions predicted as not executed |
US9946550B2 (en) * | 2007-09-17 | 2018-04-17 | International Business Machines Corporation | Techniques for predicated execution in an out-of-order processor |
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 HU HUE10750200 patent/HUE044310T2/hu unknown
- 2010-08-18 ES ES10750200T patent/ES2741998T3/es active Active
- 2010-08-18 WO PCT/US2010/045910 patent/WO2011022493A1/en active Application Filing
- 2010-08-18 JP JP2012525670A patent/JP5734980B2/ja active Active
- 2010-08-18 CN CN201080036831.4A patent/CN102483696B/zh active Active
- 2010-08-18 KR KR1020127007089A patent/KR101513953B1/ko active IP Right Grant
- 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
Also Published As
Publication number | Publication date |
---|---|
US20110047357A1 (en) | 2011-02-24 |
KR101513953B1 (ko) | 2015-04-21 |
EP2467776B1 (en) | 2019-05-15 |
JP2013502657A (ja) | 2013-01-24 |
CN102483696B (zh) | 2016-10-26 |
HUE044310T2 (hu) | 2019-10-28 |
WO2011022493A1 (en) | 2011-02-24 |
EP2467776A1 (en) | 2012-06-27 |
TWI436273B (zh) | 2014-05-01 |
JP2015130206A (ja) | 2015-07-16 |
KR20120058555A (ko) | 2012-06-07 |
ES2741998T3 (es) | 2020-02-12 |
TW201118726A (en) | 2011-06-01 |
JP5734980B2 (ja) | 2015-06-17 |
CN102483696A (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6345623B2 (ja) | 条件付き非ブランチング命令の非実行を予測するための方法および機器 | |
KR101788683B1 (ko) | 루프에 대한 데이터 프리페치 요청들을 취소하기 위한 방법들 및 장치 | |
JP5917616B2 (ja) | 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置 | |
EP1889152B1 (en) | A method and apparatus for predicting branch instructions | |
RU2375745C2 (ru) | Энергоэффективный механизм упреждающей выборки инструкций | |
US6263427B1 (en) | Branch prediction mechanism | |
US20070130450A1 (en) | Unnecessary dynamic branch prediction elimination method for low-power | |
WO2019005458A1 (en) | BRANCH PREDICTION FOR FIXED STEERING BRANCH INSTRUCTIONS | |
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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150415 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160408 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161212 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170922 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20171002 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180213 |
|
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: 20180423 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180523 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6345623 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 |