JP2009530753A - 命令プリフェッチバッファ深さの動的制御を有するデータプロセッサとその方法 - Google Patents

命令プリフェッチバッファ深さの動的制御を有するデータプロセッサとその方法 Download PDF

Info

Publication number
JP2009530753A
JP2009530753A JP2009501622A JP2009501622A JP2009530753A JP 2009530753 A JP2009530753 A JP 2009530753A JP 2009501622 A JP2009501622 A JP 2009501622A JP 2009501622 A JP2009501622 A JP 2009501622A JP 2009530753 A JP2009530753 A JP 2009530753A
Authority
JP
Japan
Prior art keywords
prefetch buffer
instruction
data processor
control unit
maximum depth
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
Application number
JP2009501622A
Other languages
English (en)
Other versions
JP5279701B2 (ja
JP2009530753A5 (ja
Inventor
ジェフリー ダブリュ スコット
ウィリアム シー モイヤー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
NXP USA Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NXP USA Inc filed Critical NXP USA Inc
Publication of JP2009530753A publication Critical patent/JP2009530753A/ja
Publication of JP2009530753A5 publication Critical patent/JP2009530753A5/ja
Application granted granted Critical
Publication of JP5279701B2 publication Critical patent/JP5279701B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

データプロセッサ(102)は、プリフェッチバッファ(112)とフェッチコントロールユニット(116)とを有する。プリフェッチバッファ(112)は、複数のラインを有する。プリフェッチバッファ(112)は、命令を格納可能な複数のラインのライン数を規定する可変的な最大深さを有する。フェッチコントロールユニット(116)は、プリフェッチバッファに接続され、プリフェッチバッファ(112)の複数のラインの少なくとも1つをモニタし、データプロセッサ(102)の状態に応じてプリフェッチバッファ(112)の可変的な最大深さを調整する。

Description

発明の詳細な説明
[開示分野]
本開示は、一般にデータプロセッサに関し、より詳細にはデータプロセッサの命令プリフェッチバッファを管理するシステム及び方法に関する。
[背景]
一般に、パーソナルコンピュータ、携帯情報端末、携帯及びデジタル電話並びに他のプロセッサベース装置などの計算システムは、コンピュータ可読命令を処理するためマイクロプロセッサの形式によるデータプロセッサを含む。マイクロプロセッサは、コンピュータ可読命令を復号化する命令デコーダと、復号化された命令を実行する1以上の命令ユニットとを有するシングルチップデータプロセッサである。実行ユニットは、アプリケーションプログラムが機能するためのアクションの大部分を実行する。
現在のマイクロプロセッサは、典型的には、パフォーマンスを向上させるための複数の特徴を有している。これらの特徴の1つは、オンチップキャッシュメモリである。キャッシュメモリは、命令フェッチ処理(命令キャッシュの場合)又はデータ参照(データキャッシュの場合)の局所性又はロカリティ(locality)を利用して、メインメモリの相対的に遅いアクセス時間によるパイプラインストーリングを回避する高速ローカルメモリである。
命令キャッシュの使用は特にマイクロプロセッサパフォーマンスを大きく向上させるが、いくつかのパフォーマンスの障害が残っている。これらの1つは、命令フェッチがキャッシュにおいてヒットする場合でさえ、キャッシュアクセス自体がある時間を必要とするという事実である。一般的であるように、マイクロプロセッサがメモリ管理を利用し、キャッシュが物理的なアドレスに対応するデータを格納する物理キャッシュである場合、キャッシュアクセスはアドレス変換ステップを必要とする。他の障害は、マイクロプロセッサがサイクル毎に複数の命令を発行し、これにより、命令がキャッシュから返されることの要求を増大させるスーパースカラーデザインである。これらの状態の結果として、命令フェッチがキャッシュにおいてミスとなる場合、キャッシュが相対的に低速なメインメモリからリクエストされた命令をフェッチしている間、命令パイプラインは、命令スタベーション(instruction starvation)によりストールされるかもしれない。
従って、いくつかのハイエンドマイクロプロセッサは、初期のメインフレームコンピュータに一般的であった特徴を利用することをスタートした。この特徴は、命令をフェッチするためのプリフェッチバッファの利用である。プリフェッチバッファは、FIFO(First−In First−Out)形式によりキャッシュ又はメインメモリから予めロードされた命令を格納するレジスタ群である。プリフェッチバッファは、キャッシュ若しくはメインメモリアクセス中に発生する可能性がある命令スタベーションを防ぐが、それ自体の制約を有する。1つの制約は、いくつかのマイクロプロセッサは可変長命令をサポートするが、それはプリフェッチバッファの非効率な利用を生じさせる可能性があるということである。
他の制約は、ブランチ命令などの特定タイプの命令はデータプロセッサのためのフローの変化を生じさせる可能性があるということである。このような命令が命令デコーダによって復号化され、ブランチ命令であると認識される時点まで、ブランチ命令に続く複数の命令が、ブランチが選択される場合には必要とされないプリフェッチバッファにフェッチ及びロードされているかもしれない。このため、命令はプリフェッチバッファから以降に破棄されるためにだけ、メモリからロードされるかもしれない。破棄された命令は、不要なフェッチ処理の形式により浪費される電力を表す。
[発明の詳細な説明]
本発明の一特徴によると、データプロセッサはプリフェッチバッファとフェッチコントロールユニットとを有する、プリフェッチバッファは、複数のラインを有し、命令を格納可能な複数のラインのライン数を規定する可変的な最大深さを有する。フェッチコントロールユニットは、プリフェッチバッファの複数のラインの少なくとも1つをモニタし、データプロセッサの状態に応じてプリフェッチバッファの可変的な最大深さを調整するため、プリフェッチバッファに接続される。
上記特徴によると、フェッチコントロールユニットは、可変的な最大深さにより決定されるプリフェッチバッファの第1ラインをモニタし、第1ラインがエンプティであるとき、命令フェッチを開始するかもしれない。
フェッチコントロールユニットはまた、プリフェッチバッファの可変的な最大深さを第1の所定の深さ又は第2の所定の深さにセットするよう調整されるかもしれない。
フェッチコントロールユニットはさらに、命令タイプに応じてプリフェッチバッファの可変的な最大深さを設定するかもしれない。この場合、フェッチコントロールユニットは、命令タイプに応じてプリフェッチバッファの可変的な最大深さを第1の所定の深さ又は第2の所定の深さに設定するかもしれない。命令タイプは、32ビット命令と16ビット命令の何れかとすることが可能であり、あるいは32ビット命令と可変長命令の何れかとすることが可能である。
フェッチコントロールユニットはさらに、プリフェッチバッファの可変的な最大深さを動的に調整するかもしれない。この場合、フェッチコントロールユニットは、プリフェッチバッファのスタベーション状態に応じて、可変的な最大深さを増加させるかもしれない。スタベーション状態は、命令スタベーションの頻度が閾値を超えるということであるかもしれず、この場合、フェッチコントロールユニットは、スタベーション状態に応じて可変的な最大深さを増加させる。スタベーション状態はまた、プリフェッチバッファがスタベーションの近傍に平均的にない否かということであるかもしれず、この場合、フェッチコントロールユニットは、スタベーション状態に応じて可変的な最大深さを減少させる。この後者のケースでは、フェッチコントロールユニットは、プリフェッチバッファがプリフェッチバッファの複数のラインの状態をモニタリングすることによって、スタベーションの近傍に平均的にあるか判断するかもしれない。
他の特徴によると、データプロセッサは、レジスタ、プリフェッチバッファ及びフェッチコントロールユニットを有する。レジスタは、データプロセッサが複数のモードの選択されたモードにより動作していることを示す命令プリフェッチコントロール値を格納する。プリフェッチバッファは複数のラインを含み、さらに命令を格納可能な複数のラインのライン数を規定する可変的な最大深さを有する。プリフェッチコントロールユニットは、プリフェッチバッファとレジスタに接続され、命令プリフェッチコントロール値に応じて可変的な最大深さを制御する。
上記特徴によると、フェッチコントロールユニットは、命令プリフェッチコントロール値が第1の値又は第2の値になることに応答して、それぞれプリフェッチバッファの可変的な最大深さを第1の所定の深さ又は第2の所定の深さに設定するかもしれない。あるいは、フェッチコントロールユニットは、命令プリフェッチコントロール値が所定の値になることに応答して、プリフェッチバッファの可変的な最大深さを現在の命令タイプにより少なくとも部分的に決定される第1の所定の深さと第2の所定の深さの何れかに設定するかもしれない。同様に、プリフェッチコントロールユニットは、命令プリフェッチコントロール値が所定の値になることに応答して、プリフェッチバッファの可変的な最大深さを動的に設定するかもしれない。この場合、フェッチコントロールユニットは、プリフェッチバッファのスタベーション状態に応じて、プリフェッチバッファの可変的な最大深さを動的に増減するかもしれない。
さらなる特徴によると、命令を格納可能な複数のラインのライン数を規定する可変的な最大深さと複数のラインとを備えたプリフェッチバッファを有するデータプロセッサにおいて使用される方法が構成される。プリフェッチバッファのスタベーション状態がモニタされる。プリフェッチバッファのスタベーションレートが閾値を超える場合、可変的な最大深さが増加される。プリフェッチバッファがスタベーションの近傍に平均的にない場合、可変的な最大深さが減少される。
上記特徴によると、命令は可変的な最大深さに従って構成されたプリフェッチバッファにフェッチされるかもしれない。さらに、命令はプリフェッチバッファから出力され、データプロセッサによって実行のため復号化されるかもしれない。
図面を参照するに、図1は、本発明の実施例によるフェッチコントロールユニット116を有するデータプロセッサ102を含むデータ処理システム100の一部を示すブロック図である。データ処理システム100は、一般にデータプロセッサ102とメモリ104を有する。データプロセッサ102はマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、インテリジェントDMA(Direct Memory Access)コントローラなどとして各種実現可能であることに留意されたい。データプロセッサ102は、アドレス、データ及びコントロール信号を伝送する双方向バスを介しメモリ104に接続され、DDR(Double Data Rate)シンクロナスダイナミックランダムアクセスメモリ(SDRAM)などの何れかの従来のメモリバスアーキテクチャを利用するかもしれない。
データプロセッサ102は、メモリマネージメントユニット(MMU)/キャッシュ106、バスインタフェースユニット(BIU)108、マルチプレクサ(MUX)110、プリフェッチバッファ112、デコーダ114、フェッチコントロールユニット116及びレジスタ118を有する。一般に、MMU/キャッシュ106は、“VIRTUAL ADDRESS”とラベル付けされたバーチャルアドレスを受け付ける入力と、“PHYSICAL ADDRESS”とラベル付けされた物理アドレスを提供する第1出力と、データを提供する第2出力と、“ATTRIBUTES”とラベル付けされた変換されたVIRTUAL ADDRESSに関する属性を提供する第3出力とを有する。BIU108は、MMU/キャッシュ106の第1出力に接続される入力と、メモリ104に接続される双方向ターミナルと、データ出力ターミナルとを有する。MUX110は、BIU108の出力ターミナルに接続される第1入力ターミナルと、MMU/キャッシュ106の第2出力ターミナルに接続される第2入力ターミナルと、出力ターミナルとを有する。プリフェッチバッファ112は、MUX110の出力ターミナルに接続される入力ターミナルと、出力命令を提供する第1出力ターミナルと、格納されている命令に関する情報を提供する第2出力ターミナルと、“IR_EMPTY”とラベル付けされた信号を提供する第3出力ターミナルとを有する。デコーダ114は、プリフェッチバッファ112の第1出力ターミナルに接続される入力ターミナルと、復号化された出力信号をデータプロセッサ102の実行ユニット(図1には図示せず)に直接的に又は間接的に提供する出力ターミナルとを有する。フェッチコントロールユニット116は、以下で詳細に説明されるような方法によりプリフェッチバッファ112の第2及び第3出力ターミナルに接続される入力ターミナルと、第1コントロール入力ターミナルと、ATTRIBUTESを受け付けるためMMU/キャッシュ106の第3出力ターミナルに接続される第2コントロール入力ターミナルと、VIRTUAL ADDRESSを提供するMMU/キャッシュ106の入力ターミナルに接続される出力ターミナルとを有する。レジスタ118は、フェッチコントロールユニット116の第1コントロール入力ターミナルに接続される出力ターミナルを有する。
全体的な処理において、データプロセッサ102は、命令スタベーションを回避するためのプロフェッチバッファ112を使用するハイパフォーマンスマイクロプロセッサである。フェッチコントロールユニット116は、プリフェッチバッファ112の状態をモニタし、命令フェッチを開始するためバーチャルアドレスを生成する。VIRTUAL ADDRESSを受け付けることに応答して、MMU/キャッシュ106はまず、MMU/キャッシュ106に含まれるTLB(Translation Look−aside Buffer)から格納されている変換にアクセスすることによって、バーチャルアドレスから物理アドレスへの変換を実行する。変換がTLBにない場合、MMU/キャッシュ106はメモリ104に格納されているページテーブルから対応する変換をロードするため、テーブル探索手順を開始する。MMU/キャッシュ106は、TLBの変換を利用してアドレス変換と共に属性チェックを実行し、選択されたページの属性をATTRIBUTES信号としてフェッチコントロールユニット116に提供する。MMU/キャッシュ106がアドレス変換を実行した後、MMU/キャッシュ106のキャッシュ部分が、アクセスされた命令が存在するか確認するためチェックされる。命令がキャッシュにあり、キャッシュヒットとして知られる状態にある場合、MMU/キャッシュ106は、MUX110の第2入力にアクセスされるデータを提供し、プリフェッチバッファ112への入力のためそれが選択される。データがMMU/キャッシュ106に存在せず、キャッしミスとして知られる状態にある場合、MMU/キャッシュ106はPHYSICAL ADDRESSをBIU108に提供することによってメモリ104にアクセスする。BIU108は、PHYSICAL ADDRESSと適切なコントロール信号をメモリ104に提供することによってバスアクセスを実行する。これに応答して、メモリ104は、データバスを介しリクエストされた命令をMUX110の第1入力に提供し、これにより、リクエストされた命令はプリフェッチバッファ112に提供される。命令はまた以降の利用のためMMU/キャッシュ106のキャッシュに格納されるが、この処理は従来技術によるものであり、さらには説明されないことに留意されたい。
プリフェッチバッファ112は、図1に示される代表的なライン122,124,126,128,130などのライン又はレジスタ120群を有する。実現形態に応じて、ライン120の本数は可変的なものであるが、図示された実施例ではプリフェッチバッファ112は10本のラインを有する。プリフェッチバッファ112の最後のラインであるライン122は、デコーダ114に提示するための次の命令(又は命令長が1ラインを超える場合、次の命令の一部)を含み、“INSTRUCTION REGISTER”と呼ばれる。ライン群120の各ラインは、命令長が1ラインを超える場合、命令又はその一部を格納することが可能である。命令は、FIFO形式によりプリフェッチバッファ112を介しシフトされ、デコーダ114により読まれる各命令に対して1命令だけ進捗される。
プリフェッチバッファ112はまた、バッファがフルであるとみなされると、命令を格納可能なプリフェッチバッファ112のライン122,124,126,130の本数を表す可変的な最大深さを有する。命令レジスタ122が最後の(又は最も古い)位置であるため、可変的な最大長は、命令を格納可能なライン群120の最初の(又は最も新しい)位置を決定する。後述されるように、最大バッファ深さは、効果的にはプリフェッチバッファ112のすべてのラインより少なくすることが可能である。
プリフェッチコントロールユニット116は、以下でより詳細に説明されるようなプログラムカウンタ、インクリメントロジック、各種デコーダ及びバッファ状態マシーンを含む。フェッチコントロールユニット116は、プリフェッチバッファ112の第1ライン(フェッチコントロールユニット116により設定される可変的な最大深さにより決定される)をモニタし、当該ラインがエンプティであるとき命令フェッチを開始する。フェッチコントロールユニット116は、VIRTUAL ADDRESSを生成し、リクエスト信号をMMU/キャッシュ106に提供することによって命令フェッチを開始し、最終的には、次の命令をプリフェッチバッファ112の利用可能なラインのうち最も古いラインにロードする。
レジスタ118は、フェッチコントロールユニット116とプリフェッチバッファ112の処理を規定する命令プリフェッチコントロール値を格納する命令プリフェッチコントロール(IPC)フィールドとして知られる2ビットのフィールド120を含む。フィールド120の符号化がテーブル1に示される。
Figure 2009530753
最初の2つのモード(それぞれIPC[1:0]=00又は01)は、フェッチコントロールユニット116にそれぞれ10ライン及び4ラインにより最大バッファ深さを設定させる。最大バッファ深さを10ラインに設定することによって、オペレーティングシステムは、命令スタベーションの可能性を最小にするが、不必要な命令フェッチにより電力消費のコストを増大させる。あるいは、最大バッファ深さを4ラインに設定することによって、オペレーティングシステムは、電力消費を低減するが、ときにはスタベーションを生じさせ、パフォーマンスを低下させる。
第3モード(IPC[1:0]=10)では、最大バッファ深さは現在の命令サイズにより設定される。従って、現在の命令サイズが32ビットである場合、フェッチコントロールユニット116は、最大バッファ深さを10バッファに設定する。しかしながら、現在の命令サイズが可変長である場合、フェッチコントロールユニット116は、最大バッファ長を5バッファに設定する。フェッチコントロールユニット106は、最後の命令フェッチによりアクセスされたメモリページの命令フォーマットを示すため、MMU/キャッシュ106のMMUからATTRIBUTE信号を受け取ることによって、現在の命令サイズを決定する。
特定の例では、データプロセッサ102は、Freescale Corporationにより販売されているマイクロプロセッサのPowerPCファミリの“BookE”命令セットからの32ビット命令か、可変長符号化(VLE)を有する命令を実行するマイクロプロセッサである。他の実施例では、フェッチコントロールユニット116は、いわゆる“ARM”命令セットの32ビット命令を実行する際には10バッファ、又はAdvanced RISC Machines,Ltd.により設計されたマイクロプロセッサにおいて使用されるいわゆる“Thumb”命令セットの16ビット命令を実行する際には5バッファを提供することが可能である。しかしながら、これら2つの命令セットは単なる一例に過ぎないことは明らかである。
さらに、何れのタイプの命令が実装されているかを決定する方法はまた様々である。図示されたプロセッサでは、MMU/キャッシュ106は、ページテーブルにおける対応する属性により命令タイプを特定し、フェッチコントロールユニット116は、ATTRIBUTESの対応する1つに応じてプリフェッチバッファ112の深さを制御する。他のARM/Thumbの実施例では、フェッチコントロールユニット116は、最後の命令フェッチによりアクセスされるメモリページの属性を調べることによってでなく、ブランチ及びエクスチェンジ命令として知られるARM命令群とThumb命令群との間をスイッチする特別な命令を復号化することに基づき、上記2つの最大プリフェッチバッファ深さの間のスイッチする行うことが可能である。この場合、デコーダ114は、ブランチ及びエクスチェンジ命令の復号化に応答して、ARM/THUMBコントロール信号をフェッチコントロールユニット116に提供する。
ハードウェアダイナミックモードとして知られる第4モード(IPC[1:0]=11)では、フェッチコントロールユニット116は、最大プリフェッチバッファ深さを動的に設定する。ハードウェアダイナミックモードでは、可変的な最大深さは以下のように設定される。フェッチコントロールユニット116は、エンプティであることを示すIR_EMPTY信号を命令レジスタ122から受け付け、それの内部バッファ状態マシーンをモニタすることによって、命令スタベーション状態を検出する。フェッチコントロールユニット116は、スタベーションを許容レベルまで低下させるため、最大プリフェッチバッファ深さを動的に調整する。スタベーションレートが閾値を超える場合、フェッチコントロールユニット116は、最大バッファ深さを1ラインだけ増加する。フェッチコントロールユニット116は、スタベーションレートがもはや閾値を超えないと判断されるまで、この処理を繰り返す。
他方、ハードウェアダイナミックモードでは、フェッチコントロールユニット116はまた、プリフェッチバッファ112がスタベーションの近くで動作していないと判断したことに基づき、可変的な最大深さを選択的に減少する。この状態を判断する1つの方法は、フェッチコントロールユニット116がプリフェッチバッファ112の最後のステージにおけるすべてのライン又は少なくとも複数のラインをモニタすることである。その後、それは経時的に平均化されたバッファの充填度を閾値を比較することによって、“スタベーションに近くない”としてプリフェッチバッファ112を判定する。フェッチコントロールユニット116がプリフェッチバッファ112が“スタベーションに近くない”状態にあると判断した場合、フェッチコントロールユニット116は可変的な最大深さを減少させる。
これらのモードの利用性は、パフォーマンスに悪影響を与えることなく電力消費を低減するためのフレキシビリティをユーザに提供する。最初の2つのモードは、明示的なオペレーティングシステム又はソフトウェアが最大プリフェッチバッファ深さを制御することを可能にする。第3モードは、最大プリフェッチバッファ深さが命令タイプにより決定されるのを可能にする。第4モードは、データプロセッサ102上で実行されるソフトウェアが変化するに従って変換するプリフェッチバッファ112など、プロセッサの状態に応じてハードウェアが最大プリフェッチバッファ深さを動的に調整することを可能にする。最大プリフェッチバッファ深さの明示的なソフトウェア制御とハードウェア制御の両方の利用性は、パフォーマンスと電力消費との間の最適なバランスを達成するフレキシビリティの向上をユーザに提供する。
図2は、図1のデータプロセッサ102の命令プリフェッチバッファ深さのハードウェア動的制御に利用可能な一例となる方法を示すフロー図200である。スローはボックス202からスタートする。判定ボックス204において、フェッチコントロールユニット116は、プリフェッチバッファ112がプリフェッチバッファ112のライン122からのIR_EMPTY信号をサンプリングすることによってエンプティであるか判断する。プリフェッチバッファ112がエンプティである場合(IR_EMPTYが真である場合)、フローは判定ボックス206に移行する。判定ボックス206において、計算されたスタベーションレートが閾値を超えない場合、フローは判定ボックス204に戻る。しかしながら、計算されたスタベーションレートが閾値を超える場合、フローはステップ208に移行する。ステップ208において、フェッチコントロールユニット116は、1だけインクリメントすることなどによって最大バッファ長を増加させ(それがすでにステップ120における最大ライン数に等しくなっていないと仮定する)、判定ボックス204に戻る。
プリフェッチバッファ112がエンプティでない場合(IR_EMPTYが偽である場合)、フローは判定ボックス210に移行する。判定ボックス210は、プリフェッチバッファ112が“スタベーションに近くない”か判断する。例えば、フェッチコントロールユニット116は、プリフェッチバッファ112の最後の数エントリをモニタし、それらのすべてが有効な命令を含んでいるか判断する。特定の例では、フェッチコントロールユニット116は、すべてのライン122,124,126,128が有効である場合、プリフェッチバッファ112はスタベーションに近くないと判断する。この“スタベーションに近くない”という状態は、現在実行されているソフトウェアが現在割り当てられているのと同数のスタベーションを回避するためのプリフェッチバッファを必要としないことを示し、フロー命令の変更頻度、メモリアクセスなどの特性の結果となるであろう。“スタベーションに近くない”という質問への回答がNOである場合、すなわち、プリフェッチバッファ112がスタベーションの近くで動作している場合、フローは判定ボックス204に戻る。しかしながら、回答がYESである場合、フローはボックス212に移行し、当該時点で、フェッチコントロールユニット116は可変的な最大深さを減少させ、判定ボックス204に戻る。
図2の方法を実現するため、フェッチコントロールユニット116は、各種カウンタ、状態マシーンなどを維持する必要がある。これらの構成の実現は、当業者には明らかであろう。さらに、フェッチコントロールユニット116は、モード間の切り替え時に、プリフェッチバッファ112の状態と共に、それの内部状態マシーンをモニタする必要がある。例えば、フェッチコントロールユニットは、“スタベーションに近くない”状態が存在すると判断すると、可変的な最大バッファ深さを即座に減少させることはできず、新たな深さ内にプリフェッチバッファ112がドレインするようにそれを減少させることしかできないかもしれない。
上記開示された構成は、限定的なものでなく例示的なものとみなされるべきであり、添付した請求項は、本発明の真の趣旨及び範囲内に属するすべての変更、改良及び他の実施例をカバーすることが意図される。従って、法律により可能とされる最大範囲まで、本発明の範囲は以下の請求項の最も広い許容される解釈とそれらの均等により決定されるべきであり、上述された記載により限定されるものでない。
図1は、本発明の実施例によるフェッチコントロールユニットを有するプロセッサを含むデータ処理システムの一部を示すブロック図である。 図2は、図1のプロセッサの命令プリフェッチバッファ深さのハードウェア動的制御を示すフロー図である。

Claims (23)

  1. 複数のラインから構成されるプリフェッチバッファであって、命令を格納可能な前記複数のラインのライン数を規定する可変的な最大深さを有するプリフェッチバッファと、
    前記プリフェッチバッファに接続され、前記プリフェッチバッファの前記複数のラインの少なくとも1つをモニタし、データプロセッサの状態に応じて前記プリフェッチバッファの可変的な最大深さを調整するフェッチコントロールユニットと、
    を有するデータプロセッサ。
  2. 前記フェッチコントロールユニットは、前記可変的な最大深さにより決定される前記プリフェッチバッファの第1ラインをモニタし、前記第1ラインがエンプティであるとき命令フェッチを開始する、請求項1記載のデータプロセッサ。
  3. 前記フェッチコントロールユニットは、前記プリフェッチバッファの可変的な最大深さを第1の所定の深さ又は第2の所定の深さに設定するよう構成される、請求項1記載のデータプロセッサ。
  4. 前記フェチコントロールユニットは、命令タイプに応じて前記プリフェッチバッファの可変的な最大深さを設定する、請求項1記載のデータプロセッサ。
  5. 前記フェッチコントロールユニットは、命令タイプに応じて前記プリフェッチバッファの可変的な最大深さを第1の所定の深さ又は第2の所定の深さに設定する、請求項1記載のデータプロセッサ。
  6. 前記命令タイプは、32ビット命令と16ビット命令の1つから構成される、請求項5記載のデータプロセッサ。
  7. 前記命令タイプは、32ビット命令と可変長命令の1つから構成される、請求項5記載のデータプロセッサ。
  8. 前記フェッチコントロールユニットは、前記プリフェッチバッファの可変的な最大深さを動的に調整する、請求項1記載のデータプロセッサ。
  9. 前記フェッチコントロールユニットは、前記プリフェッチバッファのスタベーション状態に応答して前記可変的な最大深さを増加させる、請求項8記載のデータプロセッサ。
  10. 前記スタベーション状態は、閾値を超える命令スタベーションの頻度から構成され、
    前記フェッチコントロールユニットは、前記スタベーション状態に応じて前記可変的な最大深さを増加させる、請求項9記載のデータプロセッサ。
  11. 前記スタベーション状態は、前記プリフェッチバッファがスタベーションの近傍に平均的にないか否かから構成され、
    前記フェッチコントロールユニットは、前記スタベーション状態に応じて前記可変的な最大深さを減少させる、請求項9記載のデータプロセッサ。
  12. 前記フェッチコントロールユニットは、前記プリフェッチバッファの複数のラインの状態をモニタすることによって、前記プリフェッチバッファがスタベーションの近傍に平均的にあるか判断する、請求項11記載のデータプロセッサ。
  13. データプロセッサが複数のモードの選択されたモードにより動作していることを示す命令プリフェッチコントロール値を格納するレジスタと、
    複数のラインから構成されるプリフェッチバッファであって、命令を格納可能な前記複数のラインのライン数を規定する可変的な最大深さを有するプリフェッチバッファと、
    前記プリフェッチバッファと前記レジスタとに接続されるフェッチコントロールユニットであって、前記命令プリフェッチコントロール値に応じて前記可変的な最大深さを制御するフェッチコントロールユニットと、
    を有するデータプロセッサ。
  14. 前記命令プリフェッチコントロール値が第1の値又は第2の値であることに応じて、前記フェッチコントロールユニットは、前記プリフェッチバッファの可変的な最大深さを第1の所定の深さ又は第2の所定の深さにそれぞれ設定する、請求項13記載のデータプロセッサ。
  15. 前記命令プリフェッチコントロール値が所定の値であることに応じて、前記フェッチコントロールユニットは、前記プリフェッチバッファの可変的な最大深さを、現在の命令タイプにより少なくとも部分的に決定される第1の所定の深さと第2の所定の深さの1つに設定する、請求項13記載のデータプロセッサ。
  16. 前記命令プリフェッチコントロール値が所定の値であることに応じて、前記フェッチコントロールユニットは、前記プリフェッチバッファの可変的な最大深さを動的に設定する、請求項13記載のデータプロセッサ。
  17. 前記プリフェッチバッファのスタベーション状態に応じて、前記フェッチコントロールユニットは、前記プリフェッチバッファの可変的な最大深さを動的に増減する、請求項16記載のデータプロセッサ。
  18. 複数のラインを備えたプリフェッチバッファを有するデータプロセッサにおいて使用される方法であって、
    前記プリフェッチバッファの可変的な最大深さを命令を格納可能な前記複数のラインのライン数として設定するステップと、
    前記可変的な最大深さを用いて命令を前記プリフェッチバッファにフェッチするステップと、
    前記データプロセッサの状態に応じて前記可変的な最大深さを動的に調整するステップと、
    を有する方法。
  19. 前記動的に調整するステップは、
    前記プリフェッチバッファのスタベーション状態をモニタし、
    前記プリフェッチバッファのスタベーションレートが閾値を超える場合、前記可変的な最大深さを増加させ、
    前記プリフェッチバッファがスタベーションの近傍に平均的にない場合、前記可変的な最大深さを減少させる、
    ことから構成される、請求項18記載の方法。
  20. 前記プリフェッチバッファから命令を出力するステップと、
    前記データプロセッサによる実行用に出力される命令を復号化するステップと、
    をさらに有する、請求項19記載の方法。
  21. 複数のラインを備えるプリフェッチバッファを有するデータプロセッサにおいて使用される方法であって、
    前記プリフェッチバッファの可変的な最大深さを第1の所定の深さに設定するステップと、
    第1命令タイプの命令を前記プリフェッチバッファにフェッチするステップと、
    その後、第2命令タイプの命令を前記プリフェッチバッファにフェッチするステップと、
    前記第2命令タイプの命令をフェッチすることに応じて、前記プリフェッチバッファの可変的な最大深さを前記第1の所定の深さから第2の所定の深さに変更するステップと、
    を有する方法。
  22. 前記第1命令タイプの命令をフェッチするステップは、32ビット命令をフェッチすることから構成され、
    前記第2命令タイプの命令をフェッチするステップは、16ビット命令をフェッチすることから構成される、請求項21記載の方法。
  23. 前記第1命令タイプの命令をフェッチするステップは、32ビット命令をフェッチすることから構成され、
    前記第2命令タイプの命令をフェッチするステップは、可変長命令をフェッチすることから構成される、請求項21記載の方法。
JP2009501622A 2006-03-21 2007-02-23 命令プリフェッチバッファ深さの動的制御を有するデータプロセッサとその方法 Active JP5279701B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/385,463 2006-03-21
US11/385,463 US9304773B2 (en) 2006-03-21 2006-03-21 Data processor having dynamic control of instruction prefetch buffer depth and method therefor
PCT/US2007/062651 WO2007109395A2 (en) 2006-03-21 2007-02-23 Data processor having dynamic control of instruction prefetch buffer depth and method therefor

Publications (3)

Publication Number Publication Date
JP2009530753A true JP2009530753A (ja) 2009-08-27
JP2009530753A5 JP2009530753A5 (ja) 2010-04-08
JP5279701B2 JP5279701B2 (ja) 2013-09-04

Family

ID=38523133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009501622A Active JP5279701B2 (ja) 2006-03-21 2007-02-23 命令プリフェッチバッファ深さの動的制御を有するデータプロセッサとその方法

Country Status (5)

Country Link
US (1) US9304773B2 (ja)
EP (1) EP1999574B1 (ja)
JP (1) JP5279701B2 (ja)
KR (1) KR20080102213A (ja)
WO (1) WO2007109395A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015032265A (ja) * 2013-08-06 2015-02-16 株式会社デンソー 電子制御装置
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996689B2 (en) * 2006-06-12 2011-08-09 Semiconductor Manufacturing International (Shanghai) Corporation System and method for power control for ASIC device
CN100483305C (zh) * 2006-06-12 2009-04-29 中芯国际集成电路制造(上海)有限公司 用于asic器件功率控制的系统和方法
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US10346173B2 (en) * 2011-03-07 2019-07-09 Oracle International Corporation Multi-threaded instruction buffer design
CN103460183B (zh) 2011-03-30 2016-11-23 飞思卡尔半导体公司 控制vles处理器架构内的提前提取的方法和装置
US9104532B2 (en) * 2012-12-14 2015-08-11 International Business Machines Corporation Sequential location accesses in an active memory device
US10628163B2 (en) 2014-04-17 2020-04-21 Texas Instruments Incorporated Processor with variable pre-fetch threshold
US9256541B2 (en) * 2014-06-04 2016-02-09 Oracle International Corporation Dynamically adjusting the hardware stream prefetcher prefetch ahead distance
US9639396B2 (en) 2014-09-16 2017-05-02 Nxp Usa, Inc. Starvation control in a data processing system
US9541988B2 (en) 2014-09-22 2017-01-10 Western Digital Technologies, Inc. Data storage devices with performance-aware power capping
US10146293B2 (en) * 2014-09-22 2018-12-04 Western Digital Technologies, Inc. Performance-aware power capping control of data storage devices
EP3047380B1 (en) * 2014-12-13 2019-04-24 VIA Alliance Semiconductor Co., Ltd. Pattern detector for detecting hangs
WO2016092347A1 (en) * 2014-12-13 2016-06-16 Via Alliance Semiconductor Co., Ltd. Distributed hang recovery logic
US10067871B2 (en) 2014-12-13 2018-09-04 Via Alliance Semiconductor Co., Ltd Logic analyzer for detecting hangs
GB2546465B (en) * 2015-06-05 2018-02-28 Advanced Risc Mach Ltd Modal processing of program instructions
US9965206B2 (en) 2015-10-23 2018-05-08 Western Digital Technologies, Inc. Enhanced queue management for power control of data storage device
US20180004512A1 (en) * 2016-06-30 2018-01-04 Intel Corporation System and Method for Out-of-Order Clustered Decoding
US10467141B1 (en) 2018-06-18 2019-11-05 International Business Machines Corporation Process data caching through iterative feedback
US10963249B2 (en) 2018-11-02 2021-03-30 International Business Machines Corporation Processor prefetcher mode governor for switching between prefetch modes
US11163683B2 (en) 2019-08-01 2021-11-02 International Business Machines Corporation Dynamically adjusting prefetch depth
US11301386B2 (en) 2019-08-01 2022-04-12 International Business Machines Corporation Dynamically adjusting prefetch depth
US11327891B2 (en) 2019-09-20 2022-05-10 Samsung Electronics Co., Ltd. Prefetching operations in storage devices

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6349938A (ja) * 1986-08-20 1988-03-02 Fujitsu Ltd 命令先取り制御装置
JPS6349937A (ja) * 1986-08-20 1988-03-02 Fujitsu Ltd 命令先取り制御装置
JPH0218620A (ja) * 1988-07-07 1990-01-22 Toshiba Corp 情報処理装置
JPH02157938A (ja) * 1988-12-09 1990-06-18 Matsushita Electric Ind Co Ltd 命令先読み制御装置
JPH02163828A (ja) * 1988-12-16 1990-06-25 Mitsubishi Electric Corp データ処理装置
JPH0497463A (ja) * 1990-08-15 1992-03-30 Nec Corp メッセージバッファに対する実メモリ補給方式
JPH0728751A (ja) * 1993-06-24 1995-01-31 Nec Corp 転送制御装置
JPH07182164A (ja) * 1993-12-22 1995-07-21 Nec Ic Microcomput Syst Ltd 中央処理装置
JPH08339289A (ja) * 1995-06-13 1996-12-24 Nec Corp 可変容量バッファメモリ
JP2007524904A (ja) * 2003-06-20 2007-08-30 フリースケール セミコンダクター インコーポレイテッド 動的プリフェッチ・バッファ構成および置換のための方法および装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US632280A (en) * 1899-04-19 1899-09-05 Llewellyn Emerson Pulsifer Ash-sifter.
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
JP2834289B2 (ja) * 1990-07-20 1998-12-09 株式会社日立製作所 マイクロプロセッサ
JP2682264B2 (ja) * 1991-05-21 1997-11-26 日本電気株式会社 プログラムカウンタ装置
IE940855A1 (en) 1993-12-20 1995-06-28 Motorola Inc Data processor with speculative instruction fetching and¹method of operation
US5623615A (en) 1994-08-04 1997-04-22 International Business Machines Corporation Circuit and method for reducing prefetch cycles on microprocessors
US5805876A (en) 1996-09-30 1998-09-08 International Business Machines Corporation Method and system for reducing average branch resolution time and effective misprediction penalty in a processor
US6092187A (en) 1997-09-19 2000-07-18 Mips Technologies, Inc. Instruction prediction based on filtering
US6205537B1 (en) * 1998-07-16 2001-03-20 University Of Rochester Mechanism for dynamically adapting the complexity of a microprocessor
US6314494B1 (en) * 1999-04-15 2001-11-06 Agilent Technologies, Inc. Dynamically size configurable data buffer for data cache and prefetch cache memory
EP1050802B1 (en) * 1999-05-03 2007-02-07 STMicroelectronics S.A. Instruction prefetch unit
US6490716B1 (en) * 1999-08-20 2002-12-03 Hewlett-Packard Company Automated design of processor instruction units
US6574727B1 (en) 1999-11-04 2003-06-03 International Business Machines Corporation Method and apparatus for instruction sampling for performance monitoring and debug
US6775765B1 (en) 2000-02-07 2004-08-10 Freescale Semiconductor, Inc. Data processing system having instruction folding and method thereof
US6751724B1 (en) 2000-04-19 2004-06-15 Motorola, Inc. Method and apparatus for instruction fetching
US6728873B1 (en) 2000-06-06 2004-04-27 International Business Machines Corporation System and method for providing multiprocessor speculation within a speculative branch path
US6691220B1 (en) 2000-06-06 2004-02-10 International Business Machines Corporation Multiprocessor speculation mechanism via a barrier speculation flag
US7865747B2 (en) * 2000-10-31 2011-01-04 International Business Machines Corporation Adaptive issue queue for reduced power at high performance
US6748522B1 (en) 2000-10-31 2004-06-08 International Business Machines Corporation Performance monitoring based on instruction sampling in a microprocessor
US6832280B2 (en) 2001-08-10 2004-12-14 Freescale Semiconductor, Inc. Data processing system having an adaptive priority controller
US20030105926A1 (en) * 2001-12-03 2003-06-05 International Business Machies Corporation Variable size prefetch cache
US7167954B2 (en) * 2002-09-09 2007-01-23 Broadcom Corporation System and method for caching
US6895530B2 (en) 2003-01-24 2005-05-17 Freescale Semiconductor, Inc. Method and apparatus for controlling a data processing system during debug
US6925542B2 (en) 2003-03-21 2005-08-02 Freescale Semiconductor, Inc. Memory management in a data processing system
US6963963B2 (en) 2003-03-25 2005-11-08 Freescale Semiconductor, Inc. Multiprocessor system having a shared main memory accessible by all processor units
US7146467B2 (en) * 2003-04-14 2006-12-05 Hewlett-Packard Development Company, L.P. Method of adaptive read cache pre-fetching to increase host read throughput
US6871246B2 (en) 2003-05-07 2005-03-22 Freescale Semiconductor, Inc. Prefetch control in a data processing system
US7610466B2 (en) 2003-09-05 2009-10-27 Freescale Semiconductor, Inc. Data processing system using independent memory and register operand size specifiers and method thereof
US7096348B2 (en) 2003-12-15 2006-08-22 Freescale Semiconductor, Inc. Method and apparatus for allocating entries in a branch target buffer
US6976110B2 (en) 2003-12-18 2005-12-13 Freescale Semiconductor, Inc. Method and apparatus for reducing interrupt latency by dynamic buffer sizing
US20050273310A1 (en) 2004-06-03 2005-12-08 Newburn Chris J Enhancements to performance monitoring architecture for critical path-based analysis
US7249223B2 (en) 2004-08-11 2007-07-24 Freescale Semiconductor, Inc. Prefetching in a data processing system
US8001363B2 (en) 2005-04-04 2011-08-16 Globalfoundries Inc. System for speculative branch prediction optimization and method thereof

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6349938A (ja) * 1986-08-20 1988-03-02 Fujitsu Ltd 命令先取り制御装置
JPS6349937A (ja) * 1986-08-20 1988-03-02 Fujitsu Ltd 命令先取り制御装置
JPH0218620A (ja) * 1988-07-07 1990-01-22 Toshiba Corp 情報処理装置
JPH02157938A (ja) * 1988-12-09 1990-06-18 Matsushita Electric Ind Co Ltd 命令先読み制御装置
JPH02163828A (ja) * 1988-12-16 1990-06-25 Mitsubishi Electric Corp データ処理装置
JPH0497463A (ja) * 1990-08-15 1992-03-30 Nec Corp メッセージバッファに対する実メモリ補給方式
JPH0728751A (ja) * 1993-06-24 1995-01-31 Nec Corp 転送制御装置
JPH07182164A (ja) * 1993-12-22 1995-07-21 Nec Ic Microcomput Syst Ltd 中央処理装置
JPH08339289A (ja) * 1995-06-13 1996-12-24 Nec Corp 可変容量バッファメモリ
JP2007524904A (ja) * 2003-06-20 2007-08-30 フリースケール セミコンダクター インコーポレイテッド 動的プリフェッチ・バッファ構成および置換のための方法および装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015032265A (ja) * 2013-08-06 2015-02-16 株式会社デンソー 電子制御装置
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging

Also Published As

Publication number Publication date
JP5279701B2 (ja) 2013-09-04
WO2007109395A3 (en) 2008-10-30
EP1999574A4 (en) 2009-06-03
EP1999574B1 (en) 2012-04-11
US20070226462A1 (en) 2007-09-27
EP1999574A2 (en) 2008-12-10
US9304773B2 (en) 2016-04-05
WO2007109395A2 (en) 2007-09-27
KR20080102213A (ko) 2008-11-24

Similar Documents

Publication Publication Date Title
JP5279701B2 (ja) 命令プリフェッチバッファ深さの動的制御を有するデータプロセッサとその方法
US8683136B2 (en) Apparatus and method for improving data prefetching efficiency using history based prefetching
US7493451B2 (en) Prefetch unit
US6105111A (en) Method and apparatus for providing a cache management technique
US7930485B2 (en) Speculative memory prefetch
US7937573B2 (en) Metric for selective branch target buffer (BTB) allocation
US8156287B2 (en) Adaptive data prefetch
KR101456860B1 (ko) 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템
US9886385B1 (en) Content-directed prefetch circuit with quality filtering
US11954044B2 (en) Translation lookaside buffer prewarming
US8060701B2 (en) Apparatus and methods for low-complexity instruction prefetch system
JP2012150529A (ja) メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム
KR100234647B1 (ko) 인스트럭션 프리페치 방법 및 데이터 처리 시스템
US6772326B2 (en) Interruptible and re-entrant cache clean range instruction
JP5730973B2 (ja) バスアクセス要求の選択的除外
US20090222648A1 (en) Selective postponement of branch target buffer (btb) allocation
US8429383B2 (en) Multi-processor computing system having a JAVA stack machine and a RISC-based processor
CN111198827B (zh) 页表预取方法及装置
JP2001273137A (ja) マイクロプロセッサ
JP3735373B2 (ja) マイクロコンピュータ
CN116521578A (zh) 一种提高指令缓存预取执行效率的芯片系统及方法
JPS63163532A (ja) マイクロプロセツサ

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121218

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: 20130423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130521

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5279701

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

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

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