JP2009545820A - 非シーケンシャル命令アドレスをプリフェッチするための方法および装置 - Google Patents
非シーケンシャル命令アドレスをプリフェッチするための方法および装置 Download PDFInfo
- Publication number
- JP2009545820A JP2009545820A JP2009522975A JP2009522975A JP2009545820A JP 2009545820 A JP2009545820 A JP 2009545820A JP 2009522975 A JP2009522975 A JP 2009522975A JP 2009522975 A JP2009522975 A JP 2009522975A JP 2009545820 A JP2009545820 A JP 2009545820A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- cache
- branch
- fetch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 23
- 230000004044 response Effects 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002123 temporal 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
Description
本発明は、一般にプロセッサの命令のプリフェッチ(prefetching)に関し、具体的には非シーケンシャル命令(non-sequential instruction)のプリフェッチに関する。
マイクロプロセッサは、ポータブル電子デバイス(portable electronic devices)を含んでいる、多種多様なアプリケーションにおいて、計算のタスク(computational tasks)を実行する。多くのケースにおいて、追加の機能および特徴がポータブル電子デバイスおよび他のアプリケーションにおいてインプリメントされる(implemented)ことを可能にするために、プロセッサのパフォーマンス(performance)を最大限にすることが、主な設計目的である。さらに、電力消費量(power consumption)は、制限されたバッテリー容量を有しているポータブル電子デバイスにおける特有の懸念である。したがって、パフォーマンスを増やし、電力消費量を削減する、プロセッサの設計が望ましい。
11−強く予測される成立(Strongly predicted taken)
10−弱く予測される成立(Weakly predicted taken)
01−弱く予測される不成立(Weakly predicted not taken)
00−強く予測される不成立(Strongly predicted not taken)
BHT40は、BTAC40と平行して、命令アドレスの一部によってインデクス付けされる。正確さを向上し、BHT40をより効率的に利用するために、当技術分野において知られているように、命令アドレスは、BHT40をインデクス付けする前に、最新のグローバル分岐評価履歴(gselectあるいはgshare)と論理的に組み合わせられることができる。
Claims (26)
- キャッシュミスを引き起こす第1の命令アクセスを用いて、命令キャッシュにアクセスすることと、
予測された成立分岐命令の分岐ターゲットアドレスである第2の命令アドレスを得ることと、
前記第1の命令アドレスに関連づけられる1つまたは複数の命令を検索するために、より高いレベルのメモリトランザクションを開始することと、
前記命令キャッシュからいずれの命令も検索することなく、前記第2の命令アドレスに関連づけられる1つまたは複数の命令が前記命令キャッシュにおいて保存されているかどうかを、前記より高いレベルのメモリトランザクションの間に、確かめることと、
を備える命令をフェッチする方法。 - 第2の命令アドレスを得ることは、前記第1の命令アドレスあるいは前記第1の命令アドレスに続くアドレスを用いて、分岐ターゲットアドレスキャッシュにアクセスすることを備える、請求項1に記載の方法。
- 前記分岐ターゲットアドレスキャッシュにおける各エントリは、1つまたは複数の命令のフェッチグループに関連付けられており、そのうちの少なくとも1つは前に成立と評価された分岐命令である、請求項2に記載の方法。
- 前に成立と評価された前記分岐命令の前記評価を予測すること、をさらに備える請求項3に記載の方法。
- 前記分岐命令の前記評価を予測することは、前記第1の命令アドレスあるいは前記第1の命令アドレスに続くアドレスを使用して、前記分岐命令の過去の評価のインジケーションを保存している分岐履歴テーブルにアクセスすることをさらに備える、請求項4に記載の方法。
- 属性を前記第2の命令アドレスに関連づけること、をさらに備え、前記属性は、前記第2の命令アドレスに関連付けられる1つまたは複数の命令が前記命令キャッシュにおいて保存されているかどうかを確かめるとき、前記命令キャッシュからいずれの命令も検索されるべきではないということを示している、請求項1に記載の方法。
- もし前記第2の命令アドレスに関連づけられる命令が前記命令キャッシュにおいて保存されていない場合には、前記第2の命令アドレスに関連づけられる1つまたは複数の命令を検索するためにより高いレベルのメモリトランザクションを開始すること、をさらに備える請求項1に記載の方法。
- 前記命令キャッシュにアクセスするために前記第2の命令アドレスが命令フェッチパイプラインを通して流れる間に、前記第1の命令アドレスを保存することと、そして、引き続いて前記命令フェッチパイプラインへと前記第1の命令アドレスをリロードすることと、をさらに備える請求項7に記載の方法。
- 前記予測された成立分岐命令は、前記第1の命令アドレスあるいは前記第1の命令アドレスに続くアドレスに関連づけられる、請求項1に記載の方法。
- 第1の命令アドレスを用いて1つまたは複数の命令をフェッチすることと、
もし前記第1の命令アドレスが第1レベル命令キャッシュにおいてミスし、高次メモリアクセスと予測された成立分岐命令とを開始する場合には、前記第1の命令アドレスの前記高次メモリアクセスの間に、前記の分岐命令の予測される分岐ターゲットアドレスである第2の命令アドレスを用いて命令をプリフェッチすることと、
を備える命令をフェッチする方法。 - 前記予測される分岐ターゲットアドレスは、前記第1の命令アドレスあるいは前記第1の命令アドレスに続くアドレスによってインデクス付けされる分岐ターゲットアドレスキャッシュから検索される、請求項10に記載の方法。
- もし前記第2の命令アドレスが第1レベル命令キャッシュにおいてミスする場合には、前記第1の命令アドレスの前記高次メモリアクセスの間に、前記第2の命令アドレスを使用して高次メモリアクセスを開始すること、をさらに備える請求項10に記載の方法。
- フェッチあるいはプリフェッチオペレーションが実行されるかどうかは、プリフェッチレジスタにおいて命令アドレスに関連づけられる属性によって決定される、請求項10に記載の方法。
- 前記予測される分岐ターゲットアドレスは、命令フェッチパイプラインにおいて前記予測される分岐ターゲットアドレスに関連づけられる分岐ターゲットアドレスフラグに応じて、前記プリフェッチレジスタへとロードされる、請求項13に記載の方法。
- 前記予測された成立分岐命令は、前記第1の命令アドレスに関連づけられ、あるいは前記第1の命令アドレスに続くアドレスは成立と予測される、請求項9に記載の方法。
- フェッチあるいはプリフェッチのオペレーションにおいて、適用される命令アドレスについてヒットあるいはミスのインジケーションを提供するように、そして、フェッチオペレーションにおいて命令をさらに提供するように、動作する命令キャッシュメモリと、
もし適用される命令アドレスがフェッチオペレーションにおいて前記の命令キャッシュをミスする場合には、命令を提供するように動作する高次メモリと、
フェッチステージパイプラインを含んでいる命令実行パイプラインと、
第1の命令アドレスあるいは前記第1の命令アドレスに続くアドレスに関連付けられる分岐命令を検出するように、また、分岐評価予測と予測される分岐ターゲットアドレスとを供給するように、動作する分岐予測回路と、
前記第1の命令アドレスが、前記命令キャッシュをミスし、前記高次メモリにアクセスし、そして前記分岐予測回路が、前記第1の命令アドレスあるいは前記第1の命令アドレスに続くアドレスを使用して、前記フェッチステージパイプラインにおけるフェッチオペレーションにおいて成立分岐を予測するときに、前記予測される分岐ターゲットアドレスを使用して前記フェッチステージパイプラインにおけるプリフェッチオペレーションを起動するように動作する制御回路と、
を備えているプロセッサ。 - さらに、前記高次メモリは、第2レベル(L2)キャッシュメモリを備えている、請求項16に記載のプロセッサ。
- もし前記予測される分岐ターゲットアドレスが前記プリフェッチオペレーションの間に前記命令キャッシュにおいてミスする場合は、前記制御回路は、前記予測される分岐ターゲットアドレスについてのL2キャッシュアクセスを起動するようにさらに動作する、請求項17に記載のプロセッサ。
- 前記予測される分岐ターゲットアドレスについての前記L2キャッシュアクセスは、前記第1の命令アドレスについての前記L2キャッシュアクセスが未定の間起動される、請求項18に記載のプロセッサ。
- さらに、前記高次メモリは、メインメモリを備えている、請求項16に記載のプロセッサ。
- 前記フェッチステージパイプラインにおいて分岐ターゲットアドレス(BTA)フラグ、をさらに備えており、前記分岐予測回路が第1の命令アドレスあるいは前記第1の命令アドレスに続くアドレスに関連付けられる分岐命令を検出するときに、前記制御回路は、前記予測される分岐ターゲットアドレスを使用し、前記BTAフラグをセットして、前記フェッチステージパイプラインにおけるフェッチオペレーションを起動するように動作する、請求項16に記載のプロセッサ。
- 前記BTAフラグと、高次メモリアクセスを起動する前記第1の命令アドレスと、に応じて、前記フェッチステージパイプラインから前記予測される分岐ターゲットアドレスを保存するように動作するプリフェッチレジスタ、をさらに備え、前記プリフェッチレジスタにおいて保存される前記命令アドレスが前記フェッチステージパイプラインへと起動されるときに、前記プリフェッチレジスタは、さらに、プリフェッチオペレーションを示している属性を含んでいる、請求項21に記載のプロセッサ。
- 前記プリフェッチレジスタは、前記フェッチステージパイプラインにおいてBTAフラグがないことと高次メモリアクセスを起動する前記第1の命令アドレスとに応じて、前記第1の命令アドレスから計算される次のシーケンシャルキャッシュラインの前記のアドレスを保存するように動作する、請求項22に記載のプロセッサ。
- 前記第1の命令アドレスを保存するように、そして、前記プリフェッチオペレーションに続いて前記フェッチステージパイプラインへと前記第1の命令アドレスをリロードするように、動作する、リフェッチレジスタ、をさらに備えている請求項16に記載のプロセッサ。
- 第1レベル命令キャッシュにおいてミスし、高次メモリアクセスを開始する第1の命令アドレスを用いて1つまたは複数の命令をフェッチすることと、
もし前記第1の命令アドレスあるいは前記第1の命令アドレスに続くアドレスに関連づけられる分岐命令が成立と予測される場合には、前記分岐命令の予測される分岐ターゲットアドレスである第2の命令アドレスを用いて命令をプリフェッチすることと、
もしどんな予測される成立分岐命令も前記第1の命令アドレスあるいは前記第1の命令アドレスに続くアドレスに関連づけられない場合には、前記第1の命令アドレスによってアドレス指定された前記キャッシュラインに続いて次のシーケンシャル命令キャッシュラインの前記アドレスである第2の命令アドレスを用いて命令をプリフェッチすることと、
を備え、
いずれの場合においても、前記第2の命令アドレスを用いた前記のプリフェッチオペレーションは、前記第1の命令アドレスについての前記高次メモリアクセスの間に、発生する、
命令をフェッチする方法。 - 前記第2の命令アドレスを用いた前記のプリフェッチオペレーションに続いて前記第1の命令アドレスをリフェッチすること、をさらに備える請求項25に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/461,883 US7917731B2 (en) | 2006-08-02 | 2006-08-02 | Method and apparatus for prefetching non-sequential instruction addresses |
US11/461,883 | 2006-08-02 | ||
PCT/US2007/074598 WO2008016849A2 (en) | 2006-08-02 | 2007-07-27 | Method and apparatus for prefetching non-sequential instruction addresses |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009545820A true JP2009545820A (ja) | 2009-12-24 |
JP5410281B2 JP5410281B2 (ja) | 2014-02-05 |
Family
ID=38792015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009522975A Expired - Fee Related JP5410281B2 (ja) | 2006-08-02 | 2007-07-27 | 非シーケンシャル命令アドレスをプリフェッチするための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7917731B2 (ja) |
EP (1) | EP2069914A2 (ja) |
JP (1) | JP5410281B2 (ja) |
KR (1) | KR101081662B1 (ja) |
CN (1) | CN101495962B (ja) |
WO (1) | WO2008016849A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012132214A1 (ja) * | 2011-03-31 | 2012-10-04 | ルネサスエレクトロニクス株式会社 | プロセッサ及びその命令処理方法 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7404042B2 (en) * | 2005-05-18 | 2008-07-22 | Qualcomm Incorporated | Handling cache miss in an instruction crossing a cache line boundary |
US7702888B2 (en) | 2007-02-28 | 2010-04-20 | Globalfoundries Inc. | Branch predictor directed prefetch |
JP2008257508A (ja) * | 2007-04-05 | 2008-10-23 | Nec Electronics Corp | キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ |
US20090150653A1 (en) * | 2007-12-07 | 2009-06-11 | Pedro Chaparro Monferrer | Mechanism for soft error detection and recovery in issue queues |
JP2010020432A (ja) * | 2008-07-09 | 2010-01-28 | Nec Electronics Corp | キャッシュメモリ装置 |
US8667225B2 (en) * | 2009-09-11 | 2014-03-04 | Advanced Micro Devices, Inc. | Store aware prefetching for a datastream |
US8533422B2 (en) * | 2010-09-30 | 2013-09-10 | Intel Corporation | Instruction prefetching using cache line history |
KR101260967B1 (ko) * | 2011-01-14 | 2013-05-07 | 서울대학교산학협력단 | 프로세싱 요소를 통해 명령어를 처리하는 방법 및 프로세싱 장치 |
US9262328B2 (en) * | 2012-11-27 | 2016-02-16 | Nvidia Corporation | Using cache hit information to manage prefetches |
US9639471B2 (en) | 2012-11-27 | 2017-05-02 | Nvidia Corporation | Prefetching according to attributes of access requests |
US9563562B2 (en) | 2012-11-27 | 2017-02-07 | Nvidia Corporation | Page crossing prefetches |
CN103984637A (zh) * | 2013-02-07 | 2014-08-13 | 上海芯豪微电子有限公司 | 一种指令处理系统及方法 |
CN104133780B (zh) * | 2013-05-02 | 2017-04-05 | 华为技术有限公司 | 一种跨页预取方法、装置及系统 |
US9965391B2 (en) | 2014-06-30 | 2018-05-08 | Hewlett Packard Enterprise Development Lp | Access cache line from lower level cache |
US9910776B2 (en) * | 2014-11-14 | 2018-03-06 | Cavium, Inc. | Instruction ordering for in-progress operations |
US10296463B2 (en) * | 2016-01-07 | 2019-05-21 | Samsung Electronics Co., Ltd. | Instruction prefetcher dynamically controlled by readily available prefetcher accuracy |
US10175987B2 (en) | 2016-03-17 | 2019-01-08 | International Business Machines Corporation | Instruction prefetching in a computer processor using a prefetch prediction vector |
US11709679B2 (en) | 2016-03-31 | 2023-07-25 | Qualcomm Incorporated | Providing load address predictions using address prediction tables based on load path history in processor-based systems |
CN107479860B (zh) * | 2016-06-07 | 2020-10-09 | 华为技术有限公司 | 一种处理器芯片以及指令缓存的预取方法 |
US10642502B2 (en) | 2018-06-29 | 2020-05-05 | Western Digital Technologies, Inc. | System and method for prediction of read commands to non-sequential data |
US10649776B2 (en) * | 2018-06-29 | 2020-05-12 | Western Digital Technologies, Inc. | System and method for prediction of multiple read commands directed to non-sequential data |
CN112130897A (zh) * | 2020-09-23 | 2020-12-25 | 上海兆芯集成电路有限公司 | 微处理器 |
US11561796B2 (en) * | 2020-07-15 | 2023-01-24 | International Business Machines Corporation | Linked miss-to-miss instruction prefetcher |
CN112579175B (zh) * | 2020-12-14 | 2023-03-31 | 成都海光微电子技术有限公司 | 分支预测方法、分支预测装置和处理器核 |
US11416263B1 (en) | 2021-02-12 | 2022-08-16 | Western Digital Technologies, Inc. | Boosted boot procedure by background re-arrangement of read patterns |
US11822922B2 (en) | 2021-12-31 | 2023-11-21 | International Business Machines Corporation | Miss-driven instruction prefetching |
CN116521578A (zh) * | 2023-07-03 | 2023-08-01 | 太初(无锡)电子科技有限公司 | 一种提高指令缓存预取执行效率的芯片系统及方法 |
CN117093271B (zh) * | 2023-09-06 | 2024-10-08 | 上海耀芯电子科技有限公司 | 一种分支指令的预取方法及装置 |
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 |
JP2000181711A (ja) * | 1998-12-18 | 2000-06-30 | Hitachi Ltd | 命令フェッチのキャンセル方式 |
US6651162B1 (en) * | 1999-11-04 | 2003-11-18 | International Business Machines Corporation | Recursively accessing a branch target address cache using a target address previously accessed from the branch target address cache |
US20060174090A1 (en) * | 2005-02-03 | 2006-08-03 | Sartorius Thomas A | Power efficient instruction prefetch mechanism |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4984151A (en) * | 1985-03-01 | 1991-01-08 | Advanced Micro Devices, Inc. | Flexible, next-address generation microprogram sequencer |
JPS6224366A (ja) * | 1985-07-03 | 1987-02-02 | Hitachi Ltd | ベクトル処理装置 |
US4943908A (en) * | 1987-12-02 | 1990-07-24 | International Business Machines Corporation | Multiple branch analyzer for prefetching cache lines |
EP0449369B1 (en) * | 1990-03-27 | 1998-07-29 | Koninklijke Philips Electronics N.V. | A data processing system provided with a performance enhancing instruction cache |
JP2801135B2 (ja) * | 1993-11-26 | 1998-09-21 | 富士通株式会社 | パイプラインプロセッサの命令読み出し方法及び命令読み出し装置 |
EP0681236B1 (en) * | 1994-05-05 | 2000-11-22 | Conexant Systems, Inc. | Space vector data path |
US6119222A (en) * | 1996-12-23 | 2000-09-12 | Texas Instruments Incorporated | Combined branch prediction and cache prefetch in a microprocessor |
US5987599A (en) * | 1997-03-28 | 1999-11-16 | Intel Corporation | Target instructions prefetch cache |
US6658534B1 (en) * | 1998-03-31 | 2003-12-02 | International Business Machines Corporation | Mechanism to reduce instruction cache miss penalties and methods therefor |
US6012134A (en) * | 1998-04-09 | 2000-01-04 | Institute For The Development Of Emerging Architectures, L.L.C. | High-performance processor with streaming buffer that facilitates prefetching of instructions |
US6212603B1 (en) * | 1998-04-09 | 2001-04-03 | Institute For The Development Of Emerging Architectures, L.L.C. | Processor with apparatus for tracking prefetch and demand fetch instructions serviced by cache memory |
US6728839B1 (en) * | 1998-10-28 | 2004-04-27 | Cisco Technology, Inc. | Attribute based memory pre-fetching technique |
US6381678B2 (en) * | 1998-10-30 | 2002-04-30 | Intel Corporation | Processing ordered data requests to a memory |
US6912650B2 (en) * | 2000-03-21 | 2005-06-28 | Fujitsu Limited | Pre-prefetching target of following branch instruction based on past history |
US6324643B1 (en) * | 1999-10-01 | 2001-11-27 | Hitachi, Ltd. | Branch prediction and target instruction control for processor |
US6665776B2 (en) * | 2001-01-04 | 2003-12-16 | Hewlett-Packard Development Company L.P. | Apparatus and method for speculative prefetching after data cache misses |
US6886093B2 (en) * | 2001-05-04 | 2005-04-26 | Ip-First, Llc | Speculative hybrid branch direction predictor |
US20030204705A1 (en) * | 2002-04-30 | 2003-10-30 | Oldfield William H. | Prediction of branch instructions in a data processing apparatus |
US7447877B2 (en) * | 2002-06-13 | 2008-11-04 | Intel Corporation | Method and apparatus for converting memory instructions to prefetch operations during a thread switch window |
JP2006518053A (ja) * | 2002-12-24 | 2006-08-03 | サン・マイクロシステムズ・インコーポレイテッド | ハードウェア・スカウト・スレッディングを通してコードを推測で実行することによるプリフェッチの生成 |
US7096348B2 (en) * | 2003-12-15 | 2006-08-22 | Freescale Semiconductor, Inc. | Method and apparatus for allocating entries in a branch target buffer |
US20050251644A1 (en) * | 2004-05-06 | 2005-11-10 | Monier Maher | Physics processing unit instruction set architecture |
US7647477B2 (en) * | 2004-05-11 | 2010-01-12 | Sun Microsystems, Inc. | Branch target aware instruction prefetching technique |
US20060200655A1 (en) * | 2005-03-04 | 2006-09-07 | Smith Rodney W | Forward looking branch target address caching |
US20060224871A1 (en) * | 2005-03-31 | 2006-10-05 | Texas Instruments Incorporated | Wide branch target buffer |
US8060701B2 (en) * | 2006-12-08 | 2011-11-15 | Qualcomm Incorporated | Apparatus and methods for low-complexity instruction prefetch system |
US7702888B2 (en) * | 2007-02-28 | 2010-04-20 | Globalfoundries Inc. | Branch predictor directed prefetch |
-
2006
- 2006-08-02 US US11/461,883 patent/US7917731B2/en active Active
-
2007
- 2007-07-27 CN CN2007800283583A patent/CN101495962B/zh not_active Expired - Fee Related
- 2007-07-27 EP EP07813479A patent/EP2069914A2/en not_active Withdrawn
- 2007-07-27 KR KR1020097004413A patent/KR101081662B1/ko not_active IP Right Cessation
- 2007-07-27 WO PCT/US2007/074598 patent/WO2008016849A2/en active Application Filing
- 2007-07-27 JP JP2009522975A patent/JP5410281B2/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 |
JP2000181711A (ja) * | 1998-12-18 | 2000-06-30 | Hitachi Ltd | 命令フェッチのキャンセル方式 |
US6651162B1 (en) * | 1999-11-04 | 2003-11-18 | International Business Machines Corporation | Recursively accessing a branch target address cache using a target address previously accessed from the branch target address cache |
US20060174090A1 (en) * | 2005-02-03 | 2006-08-03 | Sartorius Thomas A | Power efficient instruction prefetch mechanism |
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012132214A1 (ja) * | 2011-03-31 | 2012-10-04 | ルネサスエレクトロニクス株式会社 | プロセッサ及びその命令処理方法 |
JP5696210B2 (ja) * | 2011-03-31 | 2015-04-08 | ルネサスエレクトロニクス株式会社 | プロセッサ及びその命令処理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5410281B2 (ja) | 2014-02-05 |
WO2008016849A2 (en) | 2008-02-07 |
WO2008016849A3 (en) | 2008-04-10 |
KR20090042292A (ko) | 2009-04-29 |
US20080034187A1 (en) | 2008-02-07 |
EP2069914A2 (en) | 2009-06-17 |
CN101495962A (zh) | 2009-07-29 |
CN101495962B (zh) | 2012-11-28 |
KR101081662B1 (ko) | 2011-11-09 |
US7917731B2 (en) | 2011-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5410281B2 (ja) | 非シーケンシャル命令アドレスをプリフェッチするための方法および装置 | |
EP1889152B1 (en) | A method and apparatus for predicting branch instructions | |
US7702888B2 (en) | Branch predictor directed prefetch | |
US7769983B2 (en) | Caching instructions for a multiple-state processor | |
US10067875B2 (en) | Processor with instruction cache that performs zero clock retires | |
JP2009536770A (ja) | ブロックに基づく分岐先アドレスキャッシュ | |
US20080040576A1 (en) | Associate Cached Branch Information with the Last Granularity of Branch instruction in Variable Length instruction Set | |
US8943301B2 (en) | Storing branch information in an address table of a processor | |
CA2659310C (en) | Methods and apparatus for reducing lookups in a branch target address cache | |
US8219756B2 (en) | Systems and methods for lookahead instruction fetching for processors utilizing tagless hit instruction caches | |
US9395985B2 (en) | Efficient central processing unit (CPU) return address and instruction cache | |
TWI768547B (zh) | 管線式電腦系統與指令處理方法 | |
US10078581B2 (en) | Processor with instruction cache that performs zero clock retires |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120327 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120625 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120702 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120827 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120903 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130312 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130529 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130912 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131008 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131106 |
|
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 |