JP2012150824A - 電力的に効率的な命令プリフェッチ機構 - Google Patents
電力的に効率的な命令プリフェッチ機構 Download PDFInfo
- Publication number
- JP2012150824A JP2012150824A JP2012045190A JP2012045190A JP2012150824A JP 2012150824 A JP2012150824 A JP 2012150824A JP 2012045190 A JP2012045190 A JP 2012045190A JP 2012045190 A JP2012045190 A JP 2012045190A JP 2012150824 A JP2012150824 A JP 2012150824A
- Authority
- JP
- Japan
- Prior art keywords
- prediction
- branch
- instruction
- weighted
- predicted
- 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
- 230000007246 mechanism Effects 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 claims description 44
- 238000011156 evaluation Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 13
- 230000003068 static effect Effects 0.000 claims description 7
- 230000003111 delayed effect Effects 0.000 claims description 2
- 238000011010 flushing procedure Methods 0.000 abstract 1
- 230000006399 behavior Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000002411 adverse Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000002902 bimodal effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process 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
- 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
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
Abstract
【解決手段】プロセッサは、重み付き分岐予測値を生成する条件付き分岐命令予測機構を含む。強い重み付き予測よりも正確さが低くなる傾向がある弱い重み付き予測に関しては、推測的にキャッシュを満たしてその後にフラッシュすることと関連する電力は、命令プリフェッチを停止させることによって節約される。命令フェッチは、分岐条件がパイプライン内において評価されさらに実際の次のアドレスが知られているときに継続する。代替として、キャッシュからのプリフェッチが継続することができる。適切なキャッシュデータが誤予測された分岐に基づいてプリフェッチされた命令に置き換えられるのを回避するため、キャッシュミスの場合は弱い重み付き予測に応じてプリフェッチを停止させることができる。
【選択図】図2
Description
10−成立が弱く予測される
01−不成立が弱く予測される
00−不成立が強く予測される
前記カウンタは、対応する分岐命令が「成立」と評価するごとに数字が増え、前記命令が「不成立」と評価するごとに数字が減る。この数字の増加/減少は、0b11において増加が停止したときに、及び0b00において減少が停止したときに「飽和する」。従って、分岐予測は、結果(成立又は不成立)だけでなく、前記予測の強度又は信頼度を示す重み付け係数も含む。
110−成立が強く予測される
101−成立が予測される
100−成立が中程度で予測される
011−不成立が中程度で予測される
010−不成立が予測される
001−不成立が強く予測される
000−不成立が非常に強く予測される
当然のことであるが、これらのラベルは参照専用であり、前記カウンタの2進値は、分岐予測信頼度を決定し、範囲のいずれかの端部に向かうほど信頼度が高く、範囲の中央に向かうほど信頼度が低くなる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1] 条件付き分岐命令に関する複数の重み付き分岐予測値のうちの1つを生成する分岐予測機構を有するプロセッサ内における命令プリフェッチ方法であって、
強い重み付き予測に関しては、予測された次のアドレスから命令をプリフェッチすることと、
弱い重み付き予測に関しては、前記分岐条件が評価されるまで命令のプリフェッチを停止させること、とを具備する、方法。
[2] 前記分岐予測機構は、少なくとも1つの飽和カウンタを含む上記[1]に記載の方法。
[3] 前記飽和カウンタの出力を少なくとも1つの静的予測と結合させて前記重み付き分岐予測値を生成することをさらに具備する上記[2]に記載の方法。
[4] 前記飽和カウンタは、nビットを具備し、
強い重み付き予測は、nの全ビットが一致する予測であると定義することと、
弱い重み付き予測は、いずれかのビットが一致しない予測であると定義すること、とをさらに具備する上記[2]に記載の方法。
[5] 前記飽和カウンタは、3つ以上のビットを具備し、
強い重み付き予測は、2つの最上位ビットが一致する予測であると定義することと、 弱い重み付き予測は、2つの最上位ビットが一致しない予測であると定義すること、とをさらに具備する上記[2]に記載の方法。
[6] 前記飽和カウンタは、nビットの2進カウンタを具備し、
強い重み付き予測は、N以下でさらに(2 n −1)−N以上のカウンタ値であると定義することと、
弱い重み付き予測は、Nよりも大きくさらに(2 n −1)−N未満のカウンタ値であると定義すること、とをさらに具備し、Nは、(2 n /2)−2以下の負でない整数である、上記[2]に記載の方法。
[7] 前記分岐条件が評価されるまで命令のプリフェッチを停止させることは、前記プロセッサの外部のメモリからの命令のプリフェッチを停止させることを具備する上記[1]に記載の方法。
[8] 命令実行パイプラインと、
条件付き分岐命令の評価を予測するため及び重み付き分岐予測値を出力するために動作可能な分岐予測機構と、
前記分岐予測機構からの強い重み付き予測に応じて予測された次のアドレスから推測的に命令をフェッチして前記命令を前記パイプライン内にローディングするため、及び前記分岐予測機構からの弱い重み付き予測に応じて命令のプリフェッチを停止させるために動作可能な命令プリフェッチ機構と、を具備するプロセッサ。
[9] 分岐予測機構は、少なくとも1つの飽和カウンタを含む上記[8]に記載のプロセッサ。
[10] 前記分岐予測機構は、前記飽和カウンタの前記出力を少なくとも1つの静的予測と結合させる上記[9]に記載のプロセッサ。
[11] 前記飽和カウンタは、nビットを具備し、nの全ビットが一致する場合は、前記予測は強い重み付きであり、いずれかのビットが一致しない場合は、前記予測は弱い重み付きである上記[9]に記載のプロセッサ。
[12] 前記飽和カウンタは、3つ以上のビットを具備し、2つの最上位ビットが一致する場合は、前記予測は強い重み付きであり、2つの最上位ビットが一致しない場合は、前記予測は弱い重み付きである上記[9]に記載のプロセッサ。
[13] 前記命令プリフェッチ機構は、前記予測された分岐ターゲットアドレスが命令を格納するキャッシュメモリ内において見つからない場合のみに弱い重み付き予測に応じて命令のプリフェッチを停止させる上記[8]に記載のプロセッサ。
[14] パイプライン化されたプロセッサ内における誤予測された分岐に関するキャッシュラインリプレースメントを防止する方法であって、
前記予測及び前記予測の精度の信頼レベルを示す重み付き値を用いて条件付き分岐命令の評価を予測することと、
前記条件付き分岐命令に従って前記予測された次のアドレスに関して推測的にキャッシュメモリにアクセスすることと、
前記アクセスがキャッシュ内においてミスした場合で、前記予測値が低い精度信頼度を示す場合は、前記ミスに応じてキャッシュラインリプレースメントを打ち切ること、とを具備する方法。
[15] 前記条件付き分岐命令を前記パイプライン内において評価することと、その後に前記条件付き分岐命令に従って前記評価された次のアドレスに関して前記キャッシュメモリにアクセスすること、とをさらに具備する上記[14]に記載の方法。
[16] 前記予測及び前記予測の精度の信頼レベルを示す重み付き値を用いて条件付き分岐命令の評価を予測することは、前記条件付き分岐命令が成立と評価したときに飽和カウンタの数を増やすことと、前記条件付き分岐命令が不成立と評価したときに前記飽和カウンタの数を減らすこと、とを具備する上記[14]に記載の方法。
[17] プロセッサ内における命令プリフェッチ方法であって、
各条件付き分岐命令に関して、成立が強く予測されるから成立が弱く予測されるまでの範囲又は不成立から不成立強く予測されるまでの範囲の評定された分岐予測値を決定することと、前記決定された評定された予測値に基づいて条件付きで命令をプリフェッチすること、とを具備する方法。
[18] 前記決定された評定された予測が、成立が強く予想されるか又は不成立が強く予想されるである場合は、予測された次のアドレスにおいて命令をプリフェッチし、前記評定された予測値が、成立が弱く予測されるか又は不成立が弱く予測されるである場合は、前記分岐条件が前記パイプライン内において評価されるまで命令のフェッチを遅らせる上記[17]に記載の方法。
Claims (18)
- 条件付き分岐命令に関する複数の重み付き分岐予測値のうちの1つを生成する分岐予測機構を有するプロセッサ内における命令プリフェッチ方法であって、
強い重み付き予測に関しては、予測された次のアドレスから命令をプリフェッチすることと、
弱い重み付き予測に関しては、前記分岐条件が評価されるまで命令のプリフェッチを停止させること、とを具備する、方法。 - 前記分岐予測機構は、少なくとも1つの飽和カウンタを含む請求項1に記載の方法。
- 前記飽和カウンタの出力を少なくとも1つの静的予測と結合させて前記重み付き分岐予測値を生成することをさらに具備する請求項2に記載の方法。
- 前記飽和カウンタは、nビットを具備し、
強い重み付き予測は、nの全ビットが一致する予測であると定義することと、
弱い重み付き予測は、いずれかのビットが一致しない予測であると定義すること、とをさらに具備する請求項2に記載の方法。 - 前記飽和カウンタは、3つ以上のビットを具備し、
強い重み付き予測は、2つの最上位ビットが一致する予測であると定義することと、
弱い重み付き予測は、2つの最上位ビットが一致しない予測であると定義すること、とをさらに具備する請求項2に記載の方法。 - 前記飽和カウンタは、nビットの2進カウンタを具備し、
強い重み付き予測は、N以下でさらに(2n−1)−N以上のカウンタ値であると定義することと、
弱い重み付き予測は、Nよりも大きくさらに(2n−1)−N未満のカウンタ値であると定義すること、とをさらに具備し、Nは、(2n/2)−2以下の負でない整数である、請求項2に記載の方法。 - 前記分岐条件が評価されるまで命令のプリフェッチを停止させることは、前記プロセッサの外部のメモリからの命令のプリフェッチを停止させることを具備する請求項1に記載の方法。
- 命令実行パイプラインと、
条件付き分岐命令の評価を予測するため及び重み付き分岐予測値を出力するために動作可能な分岐予測機構と、
前記分岐予測機構からの強い重み付き予測に応じて予測された次のアドレスから推測的に命令をフェッチして前記命令を前記パイプライン内にローディングするため、及び前記分岐予測機構からの弱い重み付き予測に応じて命令のプリフェッチを停止させるために動作可能な命令プリフェッチ機構と、を具備するプロセッサ。 - 分岐予測機構は、少なくとも1つの飽和カウンタを含む請求項8に記載のプロセッサ。
- 前記分岐予測機構は、前記飽和カウンタの前記出力を少なくとも1つの静的予測と結合させる請求項9に記載のプロセッサ。
- 前記飽和カウンタは、nビットを具備し、nの全ビットが一致する場合は、前記予測は強い重み付きであり、いずれかのビットが一致しない場合は、前記予測は弱い重み付きである請求項9に記載のプロセッサ。
- 前記飽和カウンタは、3つ以上のビットを具備し、2つの最上位ビットが一致する場合は、前記予測は強い重み付きであり、2つの最上位ビットが一致しない場合は、前記予測は弱い重み付きである請求項9に記載のプロセッサ。
- 前記命令プリフェッチ機構は、前記予測された分岐ターゲットアドレスが命令を格納するキャッシュメモリ内において見つからない場合のみに弱い重み付き予測に応じて命令のプリフェッチを停止させる請求項8に記載のプロセッサ。
- パイプライン化されたプロセッサ内における誤予測された分岐に関するキャッシュラインリプレースメントを防止する方法であって、
前記予測及び前記予測の精度の信頼レベルを示す重み付き値を用いて条件付き分岐命令の評価を予測することと、
前記条件付き分岐命令に従って前記予測された次のアドレスに関して推測的にキャッシュメモリにアクセスすることと、
前記アクセスがキャッシュ内においてミスした場合で、前記予測値が低い精度信頼度を示す場合は、前記ミスに応じてキャッシュラインリプレースメントを打ち切ること、とを具備する方法。 - 前記条件付き分岐命令を前記パイプライン内において評価することと、その後に前記条件付き分岐命令に従って前記評価された次のアドレスに関して前記キャッシュメモリにアクセスすること、とをさらに具備する請求項14に記載の方法。
- 前記予測及び前記予測の精度の信頼レベルを示す重み付き値を用いて条件付き分岐命令の評価を予測することは、前記条件付き分岐命令が成立と評価したときに飽和カウンタの数を増やすことと、前記条件付き分岐命令が不成立と評価したときに前記飽和カウンタの数を減らすこと、とを具備する請求項14に記載の方法。
- プロセッサ内における命令プリフェッチ方法であって、
各条件付き分岐命令に関して、成立が強く予測されるから成立が弱く予測されるまでの範囲又は不成立から不成立強く予測されるまでの範囲の評定された分岐予測値を決定することと、前記決定された評定された予測値に基づいて条件付きで命令をプリフェッチすること、とを具備する方法。 - 前記決定された評定された予測が、成立が強く予想されるか又は不成立が強く予想されるである場合は、予測された次のアドレスにおいて命令をプリフェッチし、前記評定された予測値が、成立が弱く予測されるか又は不成立が弱く予測されるである場合は、前記分岐条件が前記パイプライン内において評価されるまで命令のフェッチを遅らせる請求項17に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/050,932 US7587580B2 (en) | 2005-02-03 | 2005-02-03 | Power efficient instruction prefetch mechanism |
US11/050,932 | 2005-02-03 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007554361A Division JP5059623B2 (ja) | 2005-02-03 | 2006-02-03 | プロセッサ及び命令プリフェッチ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012150824A true JP2012150824A (ja) | 2012-08-09 |
JP5335946B2 JP5335946B2 (ja) | 2013-11-06 |
Family
ID=36480912
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007554361A Expired - Fee Related JP5059623B2 (ja) | 2005-02-03 | 2006-02-03 | プロセッサ及び命令プリフェッチ方法 |
JP2012045190A Expired - Fee Related JP5335946B2 (ja) | 2005-02-03 | 2012-03-01 | 電力的に効率的な命令プリフェッチ機構 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007554361A Expired - Fee Related JP5059623B2 (ja) | 2005-02-03 | 2006-02-03 | プロセッサ及び命令プリフェッチ方法 |
Country Status (9)
Country | Link |
---|---|
US (2) | US7587580B2 (ja) |
EP (2) | EP2431868B1 (ja) |
JP (2) | JP5059623B2 (ja) |
KR (1) | KR100944139B1 (ja) |
CN (1) | CN100547542C (ja) |
CA (1) | CA2596865A1 (ja) |
IL (1) | IL184986A0 (ja) |
RU (1) | RU2375745C2 (ja) |
WO (1) | WO2006084288A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016507836A (ja) * | 2013-01-21 | 2016-03-10 | クアルコム,インコーポレイテッド | ループのデータプリフェッチ要求をキャンセルするための方法および装置 |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587580B2 (en) * | 2005-02-03 | 2009-09-08 | Qualcomm Corporated | Power efficient instruction prefetch mechanism |
US7516304B2 (en) | 2005-03-10 | 2009-04-07 | International Business Machines Corporation | Parsing-enhancement facility |
US20060230236A1 (en) * | 2005-04-08 | 2006-10-12 | Sun Microsystems, Inc. | Method and apparatus for precognitive fetching |
US7917731B2 (en) * | 2006-08-02 | 2011-03-29 | Qualcomm Incorporated | Method and apparatus for prefetching non-sequential instruction addresses |
US8566568B2 (en) * | 2006-08-16 | 2013-10-22 | Qualcomm Incorporated | Method and apparatus for executing processor instructions based on a dynamically alterable delay |
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 |
US7787324B2 (en) * | 2006-10-13 | 2010-08-31 | Marvell World Trade Ltd. | Processor instruction cache with dual-read modes |
US8027218B2 (en) * | 2006-10-13 | 2011-09-27 | Marvell World Trade Ltd. | Processor instruction cache with dual-read modes |
US7627742B2 (en) * | 2007-04-10 | 2009-12-01 | International Business Machines Corporation | Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system |
US8443176B2 (en) * | 2008-02-25 | 2013-05-14 | International Business Machines Corporation | Method, system, and computer program product for reducing cache memory pollution |
JP5195228B2 (ja) * | 2008-09-26 | 2013-05-08 | 富士通株式会社 | 処理プログラム、処理装置及び処理方法 |
JP5387819B2 (ja) * | 2008-12-26 | 2014-01-15 | 日本電気株式会社 | 分岐予測の信頼度見積もり回路及びその方法 |
JP2011028540A (ja) * | 2009-07-27 | 2011-02-10 | Renesas Electronics Corp | 情報処理システム、キャッシュメモリの制御方法、プログラム及びコンパイラ |
US20110047357A1 (en) * | 2009-08-19 | 2011-02-24 | Qualcomm Incorporated | Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions |
CN101887400B (zh) * | 2010-06-24 | 2015-08-12 | 中兴通讯股份有限公司 | 缓存对象老化的方法和装置 |
US9122486B2 (en) | 2010-11-08 | 2015-09-01 | Qualcomm Incorporated | Bimodal branch predictor encoded in a branch instruction |
US9836304B2 (en) * | 2010-11-15 | 2017-12-05 | Advanced Micro Devices, Inc. | Cumulative confidence fetch throttling |
RU2475822C1 (ru) * | 2011-12-08 | 2013-02-20 | Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) | Подсистема памяти ядра микропроцессора |
CN104220980B (zh) * | 2011-12-29 | 2018-01-19 | 英特尔公司 | 经管理的指令缓存预取 |
US9542190B2 (en) | 2012-02-14 | 2017-01-10 | Renesas Electronics Corporation | Processor with fetch control for stoppage |
US9268569B2 (en) * | 2012-02-24 | 2016-02-23 | Apple Inc. | Branch misprediction behavior suppression on zero predicate branch mispredict |
US9389860B2 (en) | 2012-04-02 | 2016-07-12 | Apple Inc. | Prediction optimizations for Macroscalar vector partitioning loops |
US9116686B2 (en) * | 2012-04-02 | 2015-08-25 | Apple Inc. | Selective suppression of branch prediction in vector partitioning loops until dependency vector is available for predicate generating instruction |
US9201796B2 (en) * | 2012-09-27 | 2015-12-01 | Apple Inc. | System cache with speculative read engine |
US9389868B2 (en) * | 2012-11-01 | 2016-07-12 | International Business Machines Corporation | Confidence-driven selective predication of processor instructions |
US9304932B2 (en) * | 2012-12-20 | 2016-04-05 | Qualcomm Incorporated | Instruction cache having a multi-bit way prediction mask |
GB2513042B (en) | 2013-01-15 | 2015-09-30 | Imagination Tech Ltd | Improved control of pre-fetch traffic |
EP2972782A1 (en) * | 2013-03-15 | 2016-01-20 | Intel Corporation | Path profiling using hardware and software combination |
US9817663B2 (en) | 2013-03-19 | 2017-11-14 | Apple Inc. | Enhanced Macroscalar predicate operations |
US9348589B2 (en) | 2013-03-19 | 2016-05-24 | Apple Inc. | Enhanced predicate registers having predicates corresponding to element widths |
GB2515076B (en) * | 2013-06-13 | 2020-07-15 | Advanced Risc Mach Ltd | A data processing apparatus and method for handling retrieval of instructions from an instruction cache |
JP6287650B2 (ja) * | 2014-07-10 | 2018-03-07 | 富士通株式会社 | シミュレーション方法、シミュレーションプログラム |
US10496410B2 (en) * | 2014-12-23 | 2019-12-03 | Intel Corporation | Instruction and logic for suppression of hardware prefetchers |
US10296463B2 (en) * | 2016-01-07 | 2019-05-21 | Samsung Electronics Co., Ltd. | Instruction prefetcher dynamically controlled by readily available prefetcher accuracy |
US10474462B2 (en) | 2016-02-29 | 2019-11-12 | Qualcomm Incorporated | Dynamic pipeline throttling using confidence-based weighting of in-flight branch instructions |
GB2548871B (en) * | 2016-03-31 | 2019-02-06 | Advanced Risc Mach Ltd | Instruction prefetching |
US10613867B1 (en) * | 2017-07-19 | 2020-04-07 | Apple Inc. | Suppressing pipeline redirection indications |
US10474578B2 (en) * | 2017-08-30 | 2019-11-12 | Oracle International Corporation | Utilization-based throttling of hardware prefetchers |
US10657057B2 (en) * | 2018-04-04 | 2020-05-19 | Nxp B.V. | Secure speculative instruction execution in a data processing system |
US10901743B2 (en) | 2018-07-19 | 2021-01-26 | International Business Machines Corporation | Speculative execution of both paths of a weakly predicted branch instruction |
US10489305B1 (en) * | 2018-08-14 | 2019-11-26 | Texas Instruments Incorporated | Prefetch kill and revival in an instruction cache |
CN110688160B (zh) * | 2019-09-04 | 2021-11-19 | 苏州浪潮智能科技有限公司 | 一种指令流水线处理方法、系统、设备及计算机存储介质 |
US11288209B2 (en) * | 2019-09-20 | 2022-03-29 | Arm Limited | Controlling cache entry replacement based on usefulness of cache entry |
US11461101B2 (en) * | 2019-09-27 | 2022-10-04 | Arm Technology (China) Co. LTD | Circuitry and method for selectively controlling prefetching of program instructions |
US20210149676A1 (en) * | 2019-11-14 | 2021-05-20 | Higon Austin R&D Center Corporation | Branch Prediction Method, Branch Prediction Unit and Processor Core |
US11579884B2 (en) | 2020-06-26 | 2023-02-14 | Advanced Micro Devices, Inc. | Instruction address translation and caching for primary and alternate branch prediction paths |
US11567776B2 (en) * | 2020-11-03 | 2023-01-31 | Centaur Technology, Inc. | Branch density detection for prefetcher |
CN114116016B (zh) * | 2022-01-27 | 2022-04-22 | 广东省新一代通信与网络创新研究院 | 基于处理器的指令预取方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5740417A (en) * | 1995-12-05 | 1998-04-14 | Motorola, Inc. | Pipelined processor operating in different power mode based on branch prediction state of branch history bit encoded as taken weakly not taken and strongly not taken states |
JPH10133873A (ja) * | 1996-04-29 | 1998-05-22 | Internatl Business Mach Corp <Ibm> | 複数の分岐予測方式のうちの選択された1つを使用して条件分岐命令を投機的に実行するためのプロセッサおよび方法 |
JP2001154845A (ja) * | 1999-11-30 | 2001-06-08 | Fujitsu Ltd | キャッシュミスした後のメモリバスアクセス制御方式 |
JP2007207240A (ja) * | 2006-02-03 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | データ・ラインのための自己プリフェッチl2キャッシュ機構 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666666A (en) * | 1995-06-07 | 1997-09-16 | Chaffen; Barry | Neckwear |
US5721864A (en) * | 1995-09-18 | 1998-02-24 | International Business Machines Corporation | Prefetching instructions between caches |
US5930159A (en) | 1996-10-17 | 1999-07-27 | Samsung Electronics Co., Ltd | Right-shifting an integer operand and rounding a fractional intermediate result to obtain a rounded integer result |
US6735688B1 (en) * | 1996-11-13 | 2004-05-11 | Intel Corporation | Processor having replay architecture with fast and slow replay paths |
US6092187A (en) * | 1997-09-19 | 2000-07-18 | Mips Technologies, Inc. | Instruction prediction based on filtering |
US6134633A (en) | 1997-10-31 | 2000-10-17 | U.S. Philips Corporation | Prefetch management in cache memory |
US6353883B1 (en) * | 1998-08-04 | 2002-03-05 | Intel Corporation | Method and apparatus for performing predicate prediction |
KR20010051885A (ko) | 1999-11-24 | 2001-06-25 | 메리 이. 보울러 | 피복시 박리 강도가 개선된 폴리이미드 조성물 |
US6681322B1 (en) * | 1999-11-26 | 2004-01-20 | Hewlett-Packard Development Company L.P. | Method and apparatus for emulating an instruction set extension in a digital computer system |
US6357016B1 (en) | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
US6633970B1 (en) * | 1999-12-28 | 2003-10-14 | Intel Corporation | Processor with registers storing committed/speculative data and a RAT state history recovery mechanism with retire pointer |
US6615340B1 (en) * | 2000-03-22 | 2003-09-02 | Wilmot, Ii Richard Byron | Extended operand management indicator structure and method |
RU2189623C2 (ru) | 2000-06-27 | 2002-09-20 | Тюрин Сергей Феофентович | Система для программного управления технологическим оборудованием |
US6766441B2 (en) * | 2001-01-19 | 2004-07-20 | International Business Machines Corporation | Prefetching instructions in mis-predicted path for low confidence branches |
RU2238584C2 (ru) | 2002-07-31 | 2004-10-20 | Муратшин Борис Фрилевич | Способ организации персистентной кэш памяти для многозадачных, в том числе симметричных многопроцессорных компьютерных систем и устройство для его осуществления |
US7587580B2 (en) * | 2005-02-03 | 2009-09-08 | Qualcomm Corporated | Power efficient instruction prefetch mechanism |
US7337272B2 (en) * | 2006-05-01 | 2008-02-26 | Qualcomm Incorporated | Method and apparatus for caching variable length instructions |
US8341383B2 (en) * | 2007-11-02 | 2012-12-25 | Qualcomm Incorporated | Method and a system for accelerating procedure return sequences |
US8874884B2 (en) * | 2011-11-04 | 2014-10-28 | Qualcomm Incorporated | Selective writing of branch target buffer when number of instructions in cache line containing branch instruction is less than threshold |
-
2005
- 2005-02-03 US US11/050,932 patent/US7587580B2/en not_active Expired - Fee Related
-
2006
- 2006-02-03 EP EP11194058.1A patent/EP2431868B1/en not_active Not-in-force
- 2006-02-03 RU RU2007132861/09A patent/RU2375745C2/ru not_active IP Right Cessation
- 2006-02-03 CN CNB2006800089926A patent/CN100547542C/zh not_active Expired - Fee Related
- 2006-02-03 CA CA002596865A patent/CA2596865A1/en not_active Abandoned
- 2006-02-03 KR KR1020077019940A patent/KR100944139B1/ko not_active IP Right Cessation
- 2006-02-03 WO PCT/US2006/006993 patent/WO2006084288A2/en active Application Filing
- 2006-02-03 EP EP06736335A patent/EP1851621B1/en not_active Not-in-force
- 2006-02-03 JP JP2007554361A patent/JP5059623B2/ja not_active Expired - Fee Related
-
2007
- 2007-08-01 IL IL184986A patent/IL184986A0/en unknown
-
2009
- 2009-05-04 US US12/434,804 patent/US8661229B2/en not_active Expired - Fee Related
-
2012
- 2012-03-01 JP JP2012045190A patent/JP5335946B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5740417A (en) * | 1995-12-05 | 1998-04-14 | Motorola, Inc. | Pipelined processor operating in different power mode based on branch prediction state of branch history bit encoded as taken weakly not taken and strongly not taken states |
JPH10133873A (ja) * | 1996-04-29 | 1998-05-22 | Internatl Business Mach Corp <Ibm> | 複数の分岐予測方式のうちの選択された1つを使用して条件分岐命令を投機的に実行するためのプロセッサおよび方法 |
JP2001154845A (ja) * | 1999-11-30 | 2001-06-08 | Fujitsu Ltd | キャッシュミスした後のメモリバスアクセス制御方式 |
JP2007207240A (ja) * | 2006-02-03 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | データ・ラインのための自己プリフェッチl2キャッシュ機構 |
Non-Patent Citations (1)
Title |
---|
JPN7010002757; S.Manne et al.: '"Pipeline gating: speculation control for energy reduction"' Proceedings of the 25th annual international symposium on Computer architecture (ISCA '98) Volume 26 , Issue 3, 1998, Pages: 132 - 141, ACM * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016507836A (ja) * | 2013-01-21 | 2016-03-10 | クアルコム,インコーポレイテッド | ループのデータプリフェッチ要求をキャンセルするための方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5059623B2 (ja) | 2012-10-24 |
EP2431868A2 (en) | 2012-03-21 |
US20090210663A1 (en) | 2009-08-20 |
EP1851621A2 (en) | 2007-11-07 |
JP5335946B2 (ja) | 2013-11-06 |
RU2375745C2 (ru) | 2009-12-10 |
CN100547542C (zh) | 2009-10-07 |
RU2007132861A (ru) | 2009-03-10 |
CN101147127A (zh) | 2008-03-19 |
KR100944139B1 (ko) | 2010-02-24 |
US20060174090A1 (en) | 2006-08-03 |
WO2006084288A3 (en) | 2007-01-11 |
EP2431868A3 (en) | 2013-01-02 |
EP2431868B1 (en) | 2018-10-03 |
WO2006084288A2 (en) | 2006-08-10 |
CA2596865A1 (en) | 2006-08-10 |
US7587580B2 (en) | 2009-09-08 |
EP1851621B1 (en) | 2013-04-03 |
US8661229B2 (en) | 2014-02-25 |
JP2008529191A (ja) | 2008-07-31 |
IL184986A0 (en) | 2007-12-03 |
KR20070108209A (ko) | 2007-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5335946B2 (ja) | 電力的に効率的な命令プリフェッチ機構 | |
JP5313279B2 (ja) | 非アラインドメモリアクセス予測 | |
KR100930199B1 (ko) | 루프―종료 브랜치들에 의한 브랜치 히스토리 레지스터의업데이트 억제 | |
KR101074621B1 (ko) | 프로액티브 브랜치 타겟 어드레스 캐시 관리를 위한 방법들 및 장치 | |
JP4585005B2 (ja) | 分岐訂正によるプリデコードのエラー処理 | |
JP2011100466A5 (ja) | ||
EP2585908A1 (en) | Methods and apparatus for changing a sequential flow of a program using advance notice techniques | |
JP2008532142A5 (ja) | ||
JP5745638B2 (ja) | 分岐命令の中に符号化されたバイモーダル分岐予測子 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20130702 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130731 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5335946 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
LAPS | Cancellation because of no payment of annual fees |