JP2008521085A - プリフェッチを有するキャッシュ - Google Patents
プリフェッチを有するキャッシュ Download PDFInfo
- Publication number
- JP2008521085A JP2008521085A JP2007540824A JP2007540824A JP2008521085A JP 2008521085 A JP2008521085 A JP 2008521085A JP 2007540824 A JP2007540824 A JP 2007540824A JP 2007540824 A JP2007540824 A JP 2007540824A JP 2008521085 A JP2008521085 A JP 2008521085A
- Authority
- JP
- Japan
- Prior art keywords
- prefetch
- cache
- data
- memory
- block
- 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.)
- Withdrawn
Links
Images
Classifications
-
- 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
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
プリフェッチビット(126)をキャッシュ(120)の各ブロック(125)に関連させ、キャッシュ−プリフェッチ動作の管理(130)は、このビット(126)の状態に基づく。ビデオアプリケーションのフレームメモリのように規則的な繰返しのメモリアクセスが見込まれる記憶領域(115)を各アプリケーションが識別できるようにすることによって、効率が更に向上する。これらの記憶領域(115)の各々に対して、アプリケーションは、フレームメモリ中のデータのライン長のようなあり得るストライド値も識別する。プリフェッチは、識別された領域(115)に制限され、プリフェッチビット(126)は、これらの領域からブロック(125)を識別するとともに繰返しのキャッシュヒット/ミス決定を制限するのに用いられる。
Description
本発明は、処理システムの分野に関し、特に、プリフェッチ機能を持つキャッシュを有するプロセッサに関する。
プロセッサと外部メモリとの間のデータの転送はしばしば大量の時間を消費し、このデータ転送の影響を減少する技術が開発されてきた。そのような技術の二つは、キャッシュメモリの使用及びプリフェッチの使用を含む。
言及及び理解を容易にするために、キャッシュの動作は、以後「読出し」アクセスに関連して規定され、この場合、プロセッサは、メモリアドレスからデータを要求する。当業者は、本発明の原理が「書込み」アクセス動作にも適用できることを認識する。
キャッシュメモリは、外部メモリよりもプロセッサに近接して配置され、しばしばプロセッサと同一の集積回路内に配置される。プロセッサがメモリアドレスからデータ項目を要求するとき、キャッシュは、キャッシュがメモリアドレスに対応するデータを有するか否か決定するためにチェックされる。キャッシュコンテンツがメモリアドレスに対応するときには「キャッシュヒット」(cache-hit)が生じ、そうでないときには「キャッシュミス」(cache-miss)が生じる。
キャッシュヒットが生じると、データ転送が、メモリとプロセッサとの間ではなくキャッシュとプロセッサとの間で行われる。キャッシュがプロセッサに近接しているので、キャッシュ−プロセッサ間の転送に要求される時間は、メモリ−プロセッサ間の転送に要求される時間に比べて著しく小さい。
キャッシュミスが生じると、データが、メモリからキャッシュに転送され、その後、プロセッサに転送される。データがメモリから転送される際に、メモリからのデータに対する将来の要求が空間的又は時間的な位置(locality)を表すという仮定に基づいて、データの「ブロック」又は「ライン」が転送される。空間的な位置は、以前に要求したアドレスに近接するアドレスからのデータに対する要求に対応する。時間的な位置は、データに対する以前の要求の短時間内の同一データに対する要求に対応する。空間的又は時間的な位置がアプリケーションに行き渡っている場合、キャッシュを通じたデータ転送の管理に関連したオーバーヘッドは、キャッシュの同一ブロックからの複数のキャッシュ−プロセッサ間の転送によって達成される時間の節約(saving)によって補償される。
プリフェッチは、メモリからのデータに対する将来の要求を予測することを試みることによってメモリ−キャッシュ間又はメモリ−プロセッサ間の転送の影響を減少するのに用いられる。予測されるメモリアクセスは、予測される要求をプロセッサが実行するときに利用できる予測されるメモリアドレスからのデータを有することを試みる際にプロセッサの動作と平行に実行される。典型的なプリフェッチシステムにおいて、プロセッサのメモリアクセス動作は、メモリアクセスの傾向を決定するためにモニタされる。例えば、プログラム内の実行ループはしばしば、一般的にデータアクセス「ストライド」と称される規則的なパターンを用いてデータをステップスルーする。ループを通じた最初の数サイクルの後、プリフェッチシステムは、ストライドを決定し、その後、データ要求を正確に予測しようとする。典型的なプリフェッチシステムにおいて、決定されたストライド値のテーブルが維持され、繰返しのアクセスが生じるプログラムアドレスによってインデックス化される。プログラムカウンタが、プログラムが再び以前の繰返しのアクセスのアドレスにあることを表すときは、常に、アドレスに対応するテーブルからのストライド値が、メモリからデータをプリフェッチするのに用いられる。将来のメモリアクセスを予測する他の手段は常識である。特定の実施の形態に応じて、予測されるデータは、メモリからよりも迅速にプロセッサに転送するためにプリフェッチバッファ又はキャッシュにロードされる。データをキャッシュに予めロードすることによって、予測が正確である場合にはキャッシュミスの可能性が減少する。
従来のキャッシュ−プリフェッチの組合せは、多大なオーバーヘッドを要求し及び/又は非効率を示す。キャッシュが充填された後、キャッシュブロックがキャッシュにロードされる度に、存在するキャッシュブロックを上書きする必要がある。上書きされたブロックが、メモリに対してデータを書き込むのに用いられる場合、新たなブロックがこのデータを上書きする前に、存在するブロックをメモリにコピーする必要がある。したがって、誤った予測はそれぞれ、上書きされたブロックをキャッシュに有することによって実現される利点を無効にするとともにプロセッサによって用いられないキャッシュにデータを転送するための不要なバス帯域幅及び電力を消費する可能性がある。
一般に、プリフェッチの予測の精度は、予測可能なメモリアクセスパターンを決定するためのリソースの量に関連する。したがって、誤った予測によって生じたあり得るキャッシュの効率の利点の損失を回避するために、典型的には、膨大な量の予測論理が要求され、ストライド予測値のメモリも要求され、回路領域及び電力消費に影響を及ぼす。さらに、プリフェッチプロセスの一部又は全てを行うためにソフトウェアが用いられる場合、このソフトウェアを実行するために更なるプロセッササイクルが用いられる。
また、予測されるメモリアクセスが決定されると、予測されたメモリアドレスが既にキャッシュにロードされたか否かを決定するためにキャッシュをチェックする必要がある。したがって、キャッシュに対する繰返しの予測されるアクセスは、一般的にキャッシュヒット又はキャッシュミスが生じたか否かの二つの決定を必要とする。
本発明の目的は、有効なキャッシュとプリフェッチとの組合せを提供することである。本発明の他の目的は、膨大な量の回路又はソフトウェアプログラミングを必要としないキャッシュとプリフェッチとの組合せを提供することである。本発明の他の目的は、現存のキャッシュ又はプリフェッチアーキテクチャとの互換性があるキャッシュとプリフェッチとの組合せを提供することである。
これら及び他の目的は、プリフェッチビットを各キャッシュブロックに関連させるとともにこのビットの状態の基づいてキャッシュ−プリフェッチ動作を管理することによって達成される。ビデオアプリケーションのフレームメモリのように規則的に繰り返すメモリアクセスが行われうるメモリ領域を各アプリケーションが識別できるようにすることによって、更に効率が上がる。これらのメモリ領域の各々に対して、アプリケーションは、フレームメモリのデータのライン長のようなあり得るストライド値も識別する。プリフェッチは、識別された領域に限定され、プリフェッチビットは、これらの領域からブロックを識別するとともに繰返しのキャッシュヒット/ミスの決定を制限するために用いられる。
本発明を、添付図面を参照して詳細に説明する。
図面中、同一参照番号は、同一の構成要素又はほぼ同一の機能を実行する構成要素を表す。図面は、図示のためのものであり、発明の範囲を限定するためのものではない。
図1は、本発明による処理システムのブロック図である。処理システムは、プロセッサ150及びキャッシュ120を有し、キャッシュ120は、外部メモリ110にデータを送信し及び外部メモリ110からデータを受信するとともに、プロセッサ150からのメモリアクセス要求に応答してデータの少なくとも一部をプロセッサ150に転送する。
本発明の処理システムにはプリフェッチコントローラ130も含まれ、プリフェッチコントローラ130を、キャッシュ120に含め、又は、図1に示すようにキャッシュ120に結合した個別のモジュールとして組み込むことができる。
本発明の一態様によれば、キャッシュメモリ120の各ブロック又はライン125は、ブロック125に対応する他のデータをプリフェッチするか否かを決定するためにプリフェッチコントローラ130によって用いられるプリフェッチパラメータ126を有する。好適な実施の形態において、プリフェッチパラメータ126を単一のビットとするが、プリフェッチオプションの種々の組合せ又は種々のプリフェッチ特性を規定するために多ビットパラメータを用いることもできる。コントローラ130によるパラメータ126の特別な使用を、図2の流れ図に示すが、本発明は、図2に示す方法に限定されるものではない。
本発明は、アクセスされるデータのロケーションがメモリに対する規則的な繰り返しの(すなわち、予測可能な)アクセスが生じるか否かの表示としての役割を果たすという認識に基づく。一般的に、プリフェッチパラメータ126は、キャッシュ120のブロック125に配置されたデータに基づいてプロセッサ150がプリフェッチデータにアクセスしようとしているか否かの表示をコントローラ130に提供するために用いられる。多ビットのプリフェッチパラメータ126の場合、パラメータの値は、可能性の量的な見積りに対応する。単一ビットの場合、パラメータの値は、簡単なあり得る/あり得ない又はあり得る/未知の決定に対応する。既に説明したように、従来のストライド予測テーブルとは異なり、メモリに対する規則的な繰り返しのアクセスの可能性は、実行されたプログラムコードのセクションではなくアクセスされたメモリのブロックに基づく。
プリフェッチパラメータ126を、プリフェッチが既に実行されたブロックを識別するためにも用いることができ、これによって、各データブロック内のデータ項目がアクセスされる際の複数のキャッシュヒット/ミス決定を実行する必要がなくなる。
本発明の他の態様によれば、アプリケーションプログラムは、メモリ110の領域115を識別することによってキャッシュ内のデータのブロック125が他のデータのプリフェッチを行おうとしているか否かの決定を容易にし、この場合、予測可能なアクセスは、Jan-Willen van de Waerdtにより2002年5月1日に出願されるとともに参照することによってここに組み込まれた米国特許出願第2003/0208660号の”MEMORY REGION BASED DATA PRE-FETCHING”に開示された原理に基づいて生じうる。例えば、ビデオ処理アプリケーションにおいて、アプリケーションプログラムは、プリフェッチに適切な領域115としてフレームバッファリング用のメモリ110の領域を識別することができる。従来の技術を用いると、アプリケーションプログラムは、これらプリフェッチ領域115の各々の境界を格納し、プリフェッチコントローラ130は、要求されたメモリアドレスがプリフェッチ領域115内にあるか否かを決定するために、要求されたメモリアドレスをこれらの境界と比較する。
一実施の形態において、先ず、アプリケーションを実行するプロセッサ150が、規定された領域115内のデータにアクセスすると、プリフェッチが実行される。次に領域115からキャッシュ120に転送される各ブロック125は、プリフェッチパラメータ126を用いることによって、プリフェッチが行われたブロックとして識別される。識別されたブロック125の各々にアクセスされると、対応するプリフェッチブロックのプリフェッチが実行される。
本発明の他の態様によれば、アプリケーションプログラムは、プリフェッチストライド値の決定を容易にする。典型的な実施の形態において、アプリケーションプログラムは、予め規定されたレジスタ又はメモリロケーションの各プリフェッチ領域115に関連したストライドを格納することによってプリフェッチストライド値を直接提供する。例えば、ビデオアプリケーションにおいて、隣接する垂直画素に通常アクセスされ、メモリ中のデータが画素の連続的な水平線として記憶される場合、アプリケーションプログラムは、水平線長をプリフェッチストライド値として格納することができる。メモリ中のデータが矩形タイルとして記憶される場合、アプリケーションプログラムは、タイル寸法をプリフェッチストライド値として格納することができる。
予測可能なメモリアクセスを示すメモリの領域115及び/又は各領域115に関連したストライド値を、従来知られている予測技術を用いて、アプリケーションプログラムを実行する際に発見的に決定することもできるが、プログラムコードではなくメモリロケーションに依存して変更することができる。
図2は、図1のプリフェッチコントローラ130によって用いられるような本発明によるプリフェッチコントローラの流れ図の例を示す。210において、アドレスAに配置されたデータ項目に対するメモリ要求を受け取る。215において、キャッシュヒット/ミス決定を行う。要求されたデータ項目がキャッシュに配置されていることを表すキャッシュヒットである場合、220において、対応するデータ項目が戻され、これによって、図1のプロセッサ150は、外部メモリ110からデータをプリフェッチするか否かをプリフェッチコントローラが決定する間に動作を継続することができる。
本発明の一態様によれば、235において、要求されたアドレスAに対するアクセスがアドレスAに関連したプリフェッチメモリロケーションのデータに対する要求に従いそうか否かを決定するために、プリフェッチコントローラが判定を行う。既に説明したように、アドレスAに対応するブロック125に関連したプリフェッチパラメータ126は、この可能性の表示を提供する。好適な実施の形態において、プリフェッチパラメータ126をビットとし、この場合、“0”は、プリフェッチが有効でない見込みを表し、“1”は、プリフェッチが有効である見込み又は可能性が未知であることを表し、プリフェッチが有効でない見込みを決定するための証拠を集めるまで有効であると仮定する。
215において、キャッシュミスが決定されると、225において、アドレスAに対応するデータのブロックが外部メモリから検索され、230において、このキャッシュブロックに対応するプリフェッチパラメータは、プリフェッチのチェックがこのブロックに対して実行されることを表すために設定される。220において、アドレスAに対応するデータ項目は、キャッシュブロックから抽出されるとともにプロセッサに戻され、これによって、図1のプロセッサ150は、235において外部メモリ110からデータをプリフェッチするか否かの決定をプリフェッチコントローラが決定する間に動作を継続することができる。
当業者は、ブロック230を除くブロック215〜235が従来のキャッシュコントローラの動作に対応することを認識し、完全のためにこれらのブロックをここにする。従来のキャッシュコントローラが用いられる場合、キャッシュ120のヒット/ミス出力を用いてミスの報告の際にブロック230を選択的に実行した後にブロック235に進むようプリフェッチコントローラ130を構成することができる。
235において、プリフェッチパラメータが、プリフェッチが有効であるという見込みを表す場合、プリフェッチ制御プロセスは決定ブロック240に進む。プリフェッチパラメータが、プリフェッチが有効でない見込みを表す場合、コントローラは、プロセッサからの他のメモリ要求を待機するために290に戻る。
240において、コントローラは、アドレスAに対応するプリフェッチアドレスが利用できるか否か決定する。既に説明したように、本発明の好適な実施の形態において、アプリケーションプログラムは、外部メモリの領域を識別するように構成され、この場合、プリフェッチが有効であると見込まれる。従来のストライド予測分析と同様な技術を用いてそのような領域を識別/予測するために、従来のメモリアクセスも行われる。アドレスAが関連のプリフェッチデータを有しないことが決定された場合、プロセスは、後に説明するような280に進む。
240においてアドレスAが関連のプリフェッチデータを有することが決定された場合、プリフェッチリソースの利用可能性が245で判定される。245において、プリフェッチがこのときに実行できない場合、プロセスは、他のメモリ要求及び上記プロセスの繰り返しを待機するために290に戻る。
245において、プリフェッチリソースが現在利用できる場合、250において、プリフェッチデータのアドレスPが、好適には、Aが配置される規定されたプリフェッチ領域に関連したストライド値を加えることによって決定される。ストライド値を評価するために上記ストライド予測分析技術を用いることもできる。アプリケーションプログラムがストライド値を規定することができる好適な技術が用いられない場合、アドレスAに対応するプリフェッチアドレスPを決定する他の従来技術を用いることもできる。
255において、プリフェッチアドレスPが既にキャッシュに含まれている(キャッシュヒット)か否かを決定するためにキャッシュにアクセスされる。プリフェッチアドレスが既にキャッシュに含まれている場合、プリフェッチは必要でなく、プロセスは、後に説明する280に進む。そうでない場合、260において、プリフェッチアドレスPに対応するプリフェッチデータのブロックがメモリから検索されるとともにキャッシュに格納される。270において、アドレスPを含むキャッシュブロックに関連したプリフェッチパラメータ(図1の126)は、アドレスPがプロセッサからのメモリ要求によってアクセスされるときにプリフェッチが有効である見込みを表すよう設定される。
280において、要求されたメモリアドレスAに対応するキャッシュブロックに関連したプリフェッチパラメータは、メモリアドレスAからのデータ項目すなわちメモリアドレスAに対応するキャッシュブロック内のメモリアドレスがプロセッサによって要求されるときにプリフェッチが有効でない見込みを表すようリセットされる。プリフェッチが有効でない見込みの理由は、アドレスAが(240を通じて)プロフェッチ用の関連のアドレスを有しないことが決定され又はAの関連のプリフェッチアドレスPが(255又は255〜260を通じて)既にキャッシュにロードされたからである。したがって、これらの決定のうちのいずれかが一旦行われると、アドレスAに対応するキャッシュブロック内のアドレスの全てに対する更なるプリフェッチオーバーヘッドが回避される。
290において、プロセスは、プロセッサによるメモリアクセスに対する他の要求を待機する。
これまでの説明は、本発明の原理を説明しただけである。当業者は、本発明の範囲を逸脱することなく種々の変更を実施することができる。例えば、図1は、プリフェッチパラメータ126がキャッシュ120内に格納される実施の形態を示す。当業者は、これらのパラメータを含むようにプリフェッチコントローラ130を形成できることを理解し、これによって、従来のキャッシュ構造を再設計する必要を回避する。同様に、予測的にアクセスされる見込みがあるメモリ領域を識別するために領域115の境界を識別する他の例として、メモリアドレスの上位ビットによってインデックス化されたビットのテーブルを用いてそのような領域を識別することができる。同様に、(しばしばメモリの上位ビットとなる)従来のキャッシュタグを用いて、予測的にアクセスされる見込みがある領域を識別するビット及び当該ブロックに対してプリフェッチが有効となる見込みがあるか否かを表すプリフェッチパラメータビットを有するテーブルをインデックス化することができる。これら及び他のシステム形態並びに最適化形態は、この開示の観点から当業者に明らかであり、特許請求の範囲に含まれる。
特許請求の範囲を解釈するに際し、a)用語「具える」は、特許請求の範囲に挙げられた構成要素又は動作以外のものの存在を除外せず、b)構成要素は、複数の構成要素を除外するものではなく、c)特許請求の範囲のいずれの参照番号も範囲を制限するものではなく、d)複数の「手段」は、同一アイテム又はハードウェア若しくはソフトウェアで実現される構造又は機能によって表すことができ、e)開示された構成要素の各々は、(例えば、個別の電子回路及び集積された電子回路を含む)ハードウェア部、ソフトウェア部(例えば、コンピュータプログラム)又はその組合せを具え、f)ハードウェア部は、アナログ部とデジタル部の一方又は両方を具え、g)開示された装置又はその一部のいずれも、特に説明しない限り他の部分に統合し又は他の部分から切り離すことができ、h)動作の特定のシーケンスは、特に説明しない限り要求されず、i)用語「複数の構成要素」は、特許請求の範囲に記載された構成要素の二つ以上を含み、特定の範囲の個数の構成要素を含むものではなく、すなわち、複数の構成要素を二つの構成要素とすることができる。
Claims (17)
- メモリ(110)からデータを受け取るよう構成されたプロセッサ(150)と、前記プロセッサ(150)と前記メモリ(110)との間で操作可能に結合され、前記メモリ(110)からデータを受け取るとともに前記データを前記プロセッサ(150)に転送するよう構成されたキャッシュ(120)と、前記キャッシュ(120)に操作可能に結合され、前記メモリ(110)から受け取ったデータに関連したプリフェッチパラメータ(126)の状態に基づいて、前記メモリ(110)から前記キャッシュ(120)に転送するプリフェッチデータを識別するよう構成されたプリフェッチコントローラ(130)とを具える処理システム。
- 請求項1記載の処理システムにおいて、前記メモリ(110)を更に具えることを特徴とする処理システム。
- 請求項1記載の処理システムにおいて、前記プリフェッチパラメータ(126)を、前記プロセッサ(150)が前記プリフェッチデータのデータ項目を要求する見込みがあるか否かを識別するビットとしたことを特徴とする処理システム。
- 請求項3記載の処理システムにおいて、前記プリフェッチパラメータ(126)の状態が、前記メモリ(110)からのデータが前記メモリ(110)の一つ以上の規定されたプリフェッチ領域(115)からのものであるか否かに基づくことを特徴とする処理システム。
- 請求項1記載の処理システムにおいて、前記プリフェッチデータの識別が、前記メモリ(110)から受け取ったデータに関連したストライド値にも基づくことを特徴とする処理システム。
- 請求項5記載の処理システムにおいて、前記ストライド値が、前記メモリ(110)の規定されたプリフェッチ領域(115)に関連したことを特徴とする処理システム。
- 請求項5記載の処理システムにおいて、前記ストライド値が、前記メモリ(110)から受け取ったデータに対する以前のアクセスに基づいて決定されることを特徴とする処理システム。
- 複数のキャッシュブロック(125)を具えるキャッシュメモリと、前記キャッシュメモリと操作可能に結合され、前記複数のキャッシュブロック(125)の各ブロック(125)に関連したプリフェッチパラメータ(126)に基づいて、外部メモリ(110)から前記キャッシュメモリにプリフェッチデータを転送するよう構成されたプリフェッチコントローラ(130)とを具えるキャッシュシステム(120)。
- 請求項8記載のキャッシュシステム(120)において、前記プリフェッチパラメータ(126)を、前記キャッシュシステム(120)に操作可能に結合されたプロセッサ(150)が前記プリフェッチデータのデータ項目を要求する見込みがあるか否かを識別するビットとしたことを特徴とするキャッシュシステム。
- 請求項8記載のキャッシュシステム(120)において、前記プリフェッチパラメータ(126)の状態が、対応するブロック(125)が前記外部メモリ(110)の規定されたプリフェッチ領域(115)から転送されたか否かに基づくことを特徴とするキャッシュシステム。
- 請求項10記載のキャッシュシステム(120)において、前記外部メモリ(110)の規定されたプリフェッチ領域(115)に関連するストライド値に基づいて前記プリフェッチデータを識別することを特徴とするキャッシュシステム。
- プリフェッチデータを外部メモリ(110)からキャッシュ(120)に転送する方法であって、データ項目に対する要求をプロセッサ(150)から受け取り(210)、前記データ項目を含む前記キャッシュ(120)のキャッシュブロック(125)を識別し(215)、前記キャッシュブロック(125)に関連したプリフェッチパラメータ(126)の状態に基づいて前記プリフェッチデータを前記キャッシュ(120)に転送する(260)ことを特徴とする方法。
- 請求項12記載の方法において、前記データ項目が前記キャッシュ(120)に位置しない(215)場合、データのブロックを前記外部メモリ(110)から前記キャッシュブロック(125)に転送する(225)ことを特徴とする方法。
- 請求項12記載の方法において、前記プリフェッチデータの前記キャッシュ(120)への転送(260)が、データのブロックが前記外部メモリ(110)の規定されたプリフェッチ領域(115)に関連するか否か(240)にも基づくことを特徴とする方法。
- 請求項12記載の方法において、前記プリフェッチパラメータ(126)の状態が、データのブロックが前記外部メモリ(110)の規定されたプリフェッチ領域(115)に関連するか否か(240〜280)に基づくことを特徴とする方法。
- 請求項15記載の方法において、前記規定されたプリフェッチ領域(115)に関連したストライド値に基づいて前記プリフェッチデータを識別する(250)ことを特徴とする方法。
- 請求項12記載の方法において、前記外部メモリ(110)からの前記データのブロックに関連したストライド値を決定し、前記プリフェッチデータを前記ストライド値に基づいて識別することを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62787004P | 2004-11-15 | 2004-11-15 | |
PCT/IB2005/053767 WO2006051513A2 (en) | 2004-11-15 | 2005-11-15 | Cache with prefetch |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008521085A true JP2008521085A (ja) | 2008-06-19 |
Family
ID=36336873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007540824A Withdrawn JP2008521085A (ja) | 2004-11-15 | 2005-11-15 | プリフェッチを有するキャッシュ |
Country Status (6)
Country | Link |
---|---|
US (1) | US20090217004A1 (ja) |
EP (1) | EP1815343A2 (ja) |
JP (1) | JP2008521085A (ja) |
KR (1) | KR20070086246A (ja) |
CN (1) | CN101057224A (ja) |
WO (1) | WO2006051513A2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101458029B1 (ko) | 2007-08-16 | 2014-11-04 | 삼성전자 주식회사 | 프레임 캐싱 장치 및 방법 |
US8583894B2 (en) * | 2010-09-09 | 2013-11-12 | Advanced Micro Devices | Hybrid prefetch method and apparatus |
US8850123B2 (en) * | 2010-10-19 | 2014-09-30 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Cache prefetch learning |
US8990435B2 (en) | 2011-01-17 | 2015-03-24 | Mediatek Inc. | Method and apparatus for accessing data of multi-tile encoded picture stored in buffering apparatus |
US9497466B2 (en) * | 2011-01-17 | 2016-11-15 | Mediatek Inc. | Buffering apparatus for buffering multi-partition video/image bitstream and related method thereof |
EP2740270A4 (en) | 2011-10-31 | 2015-04-29 | Mediatek Inc | APPARATUS AND METHOD FOR BUILDING REFERENCED CONTEXT TABLES TO PERFORM AN ENTROPTIC DECODING OF A MULTI-TILE ENCODED IMAGE AND CORRESPONDING ENTROPY DECODER |
US9971694B1 (en) * | 2015-06-24 | 2018-05-15 | Apple Inc. | Prefetch circuit for a processor with pointer optimization |
US10108549B2 (en) * | 2015-09-23 | 2018-10-23 | Intel Corporation | Method and apparatus for pre-fetching data in a system having a multi-level system memory |
US10180905B1 (en) | 2016-04-07 | 2019-01-15 | Apple Inc. | Unified prefetch circuit for multi-level caches |
US9904624B1 (en) | 2016-04-07 | 2018-02-27 | Apple Inc. | Prefetch throttling in a multi-core system |
CN106021128B (zh) * | 2016-05-31 | 2018-10-30 | 东南大学—无锡集成电路技术研究所 | 一种基于步幅和数据相关性的数据预取器及其预取方法 |
US10331567B1 (en) | 2017-02-17 | 2019-06-25 | Apple Inc. | Prefetch circuit with global quality factor to reduce aggressiveness in low power modes |
CN111240581B (zh) | 2018-11-29 | 2023-08-08 | 北京地平线机器人技术研发有限公司 | 存储器访问控制方法、装置和电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US208660A (en) * | 1878-10-01 | Improvement in steam or air brakes | ||
US6760818B2 (en) * | 2002-05-01 | 2004-07-06 | Koninklijke Philips Electronics N.V. | Memory region based data pre-fetching |
US7124262B2 (en) * | 2002-11-20 | 2006-10-17 | Intel Corporation | Selectivity pipelining and prefetching memory data |
-
2005
- 2005-11-15 KR KR1020077013533A patent/KR20070086246A/ko not_active Application Discontinuation
- 2005-11-15 CN CNA2005800388872A patent/CN101057224A/zh active Pending
- 2005-11-15 JP JP2007540824A patent/JP2008521085A/ja not_active Withdrawn
- 2005-11-15 EP EP05804160A patent/EP1815343A2/en not_active Withdrawn
- 2005-11-15 US US11/719,399 patent/US20090217004A1/en not_active Abandoned
- 2005-11-15 WO PCT/IB2005/053767 patent/WO2006051513A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP1815343A2 (en) | 2007-08-08 |
US20090217004A1 (en) | 2009-08-27 |
KR20070086246A (ko) | 2007-08-27 |
CN101057224A (zh) | 2007-10-17 |
WO2006051513A3 (en) | 2007-05-18 |
WO2006051513A2 (en) | 2006-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008521085A (ja) | プリフェッチを有するキャッシュ | |
CN108459877B (zh) | 数据处理 | |
TWI506434B (zh) | 預取單元、資料預取方法、電腦程式產品以及微處理器 | |
US6578130B2 (en) | Programmable data prefetch pacing | |
US5822790A (en) | Voting data prefetch engine | |
EP3066572B1 (en) | Cache memory budgeted by chunks based on memory access type | |
US8225070B2 (en) | Information processing apparatus and cache memory control method | |
EP1769364B1 (en) | Information processing apparatus and information processing method | |
CN108463808B (zh) | 事件触发的可编程预取器 | |
US7472256B1 (en) | Software value prediction using pendency records of predicted prefetch values | |
US20090132750A1 (en) | Cache memory system | |
US20170308468A1 (en) | Performance-driven cache line memory access | |
US8595443B2 (en) | Varying a data prefetch size based upon data usage | |
US10514920B2 (en) | Dynamically updating hardware prefetch trait to exclusive or shared at program detection | |
CN112416437B (zh) | 信息处理方法、信息处理装置和电子设备 | |
JP6701380B2 (ja) | アップ/ダウンプリフェッチャ | |
US9367466B2 (en) | Conditional prefetching | |
KR20210035311A (ko) | 프로세서의 필터링된 분기 예측 구조 | |
US11249762B2 (en) | Apparatus and method for handling incorrect branch direction predictions | |
US20180173535A1 (en) | Determining a predicted behaviour for processing of instructions | |
US20090198903A1 (en) | Data processing system, processor and method that vary an amount of data retrieved from memory based upon a hint | |
US9189432B2 (en) | Apparatus and method for predicting target storage unit | |
JP2013542511A (ja) | 積極的プリフェッチングによるプロセッサキャッシュ汚染を低減するための方法及び装置 | |
US10423510B2 (en) | Apparatus and method for predicting a redundancy period | |
US11086781B2 (en) | Methods and apparatus for monitoring prefetcher accuracy information using a prefetch flag independently accessible from prefetch tag information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080425 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081110 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20081110 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090217 |