JP7232175B2 - キャッシュメモリのデータ置換方法及びプロセッサ - Google Patents

キャッシュメモリのデータ置換方法及びプロセッサ Download PDF

Info

Publication number
JP7232175B2
JP7232175B2 JP2019502753A JP2019502753A JP7232175B2 JP 7232175 B2 JP7232175 B2 JP 7232175B2 JP 2019502753 A JP2019502753 A JP 2019502753A JP 2019502753 A JP2019502753 A JP 2019502753A JP 7232175 B2 JP7232175 B2 JP 7232175B2
Authority
JP
Japan
Prior art keywords
cache
data
region
policy
performance characteristic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019502753A
Other languages
English (en)
Other versions
JP2019525330A (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2019525330A publication Critical patent/JP2019525330A/ja
Application granted granted Critical
Publication of JP7232175B2 publication Critical patent/JP7232175B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/6026Prefetching based on access pattern detection, e.g. stride based prefetch

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)

Description

多くのプロセッサは、メモリアクセス効率を向上させるためにメモリ階層を採用しており、これにより、プロセッサは、メインメモリに記憶されたデータのサブセットを記憶するための1つ以上のキャッシュを含む。メインメモリからのデータのサブセットがキャッシュに記憶される基準は、プロセッサの設計に応じて異なり得るが、通常は、最近アクセスされたデータをキャッシュすることを優先する。また、いくつかのプロセッサは、近い将来にプロセッサによってアクセスされる可能性があるデータを予測し、そのデータをメインメモリから1つ以上のキャッシュにコピーする1つ以上のプリフェッチャを採用している。プロセッサは、新たなデータを1つ以上のキャッシュに移動するために、指定された置換方式に基づいて、以前に記憶されたデータをエビクトするために選択するが、従来の置換方式では、メモリアクセス効率が望まないほど低くなる可能性がある。
添付図面を参照することによって、本開示は当業者により良く理解され、その多数の特徴及び利点が明らかになるであろう。異なる図面での同じ参照記号の使用は、類似又は同一のアイテムを示す。
いくつかの実施形態による、キャッシュの異なるテスト領域に関するアクセスメトリックに基づいて転送ポリシーをキャッシュの一部に適用する処理システムのブロック図である。 いくつかの実施形態による、キャッシュの異なるテスト領域において異なる転送ポリシーを使用する図1の処理システムの一例を示す図である。 いくつかの実施形態による、キャッシュの異なるテスト領域において異なる転送ポリシーを使用する図1の処理システムの一例を示す図である。 いくつかの実施形態による、キャッシュのテスト領域に関するアクセスメトリックに基づいてキャッシュの非テスト領域における転送ポリシーを変更する図1の処理システムの一例を示す図である。 いくつかの実施形態による、キャッシュの異なるテスト領域に関するアクセスメトリックに基づいて転送ポリシーをキャッシュの一部に適用する方法のフロー図である。
図1~図5は、キャッシュの異なるテスト領域に関するアクセスメトリックに基づいて転送ポリシーをキャッシュの一部に適用するための技術であって。各テスト領域は、プリフェッチ要求に応じて記憶されたがデマンド要求の対象ではなかったキャッシュエントリ内のデータ(「未使用のプリフェッチ」又は「未使用のプリフェッチデータ」と呼ばれる)に対して異なる転送ポリシーを適用する技術を示す図である。1つのテスト領域では、未使用のプリフェッチがキャッシュのテスト領域からエビクトされると、キャッシュ階層内の上位レベルのキャッシュに転送されるという転送ポリシーが適用される。他のテスト領域では、未使用のプリフェッチがキャッシュのテスト領域からエビクトされると、上位レベルのキャッシュに転送されることなく置換される(又は、上位レベルのキャッシュに転送されるが無効なデータとして記憶される)という転送ポリシーが適用される。異なるテスト領域に関するアクセスメトリックに基づいてキャッシュの非テスト部分に対するキャッシュ転送ポリシーを選択することによって、キャッシュは、転送ポリシーを、プロセッサで現在実行中の命令のパターンに対してより効率的なポリシーに動的に変更する。
一例を挙げて説明すると、いくつかの実施形態では、キャッシュは、2つのテスト領域と1つの非テスト領域とを有し、プロセッサからのデマンド要求及びプリフェッチャからのプリフェッチ要求に応じてデータを記憶するために、全ての領域がキャッシュによって使用される。キャッシュは、異なるテスト領域に対して異なる転送ポリシーを使用することによって、1つのテスト領域に対して、未使用のプリフェッチを記憶するエビクトされたキャッシュエントリを、上位レベルのキャッシュに転送するようにする。他のテスト領域では、キャッシュは、データを上位レベルのキャッシュに転送することなく、未使用のプリフェッチを記憶するエビクトされたキャッシュエントリを置換し、又は、データを上位レベルのキャッシュに転送するが当該データを無効なデータとして記憶する。プロセッサは、各テスト領域に関するアクセスメトリック(例えば、キャッシュヒット率、キャッシュミス率、又は、これらの組み合わせ等)を監視する。プロセッサは、アクセスメトリックに基づいて、1つのテスト領域に対する転送ポリシーを選択し、それをキャッシュの非テスト領域に適用する。例えば、1つのテスト領域のキャッシュヒット率が高い場合、プロセッサは、そのテスト領域の転送ポリシーをキャッシュの非テスト領域に適用することによって、キャッシュ全体のヒット率を向上させる。
本明細書では、「転送ポリシー」という用語は、キャッシュエントリに記憶されたデータがキャッシュからエビクトされるときにどのように処理されるかを指す。転送ポリシーは、全ての未使用のプリフェッチがキャッシュからエビクトされると、上位レベルのキャッシュに転送され、有効なデータとして記憶されることを要求する場合がある。他の転送ポリシーは、全ての未使用のプリフェッチがキャッシュからエビクトされると、破棄されることを定めている。いくつかの実施形態では、プリフェッチデータは、データを上位レベルのキャッシュに転送することなく、キャッシュにおいてデータを置換することによって破棄される。いくつかの他の実施形態では、プリフェッチデータは、データを上位レベルのキャッシュに提供するが、データが無効であることを示す指標と共にデータを上位レベルのキャッシュに記憶することによって破棄される。これにより、上位レベルのキャッシュにおけるキャッシュエントリの置換中にデータを有効な着信データに置換することができる。
図1は、いくつかの実施形態による、キャッシュの異なるテスト領域に関するアクセスメトリックに基づいて、未使用のプリフェッチに対するキャッシュ転送ポリシーをキャッシュの一部に適用する処理システム100を示す図である。処理システム100は、概して、電子デバイスに代わってタスクを実行するために、コンピュータプログラムの形態で構成された命令のセットを実行するように構成されている。したがって、処理システム100は、例えば、デスクトップ又はラップトップコンピュータ、サーバ、スマートフォン、タブレット、ゲーム機等の様々な電子デバイスの何れにも使用することができる。
処理システム100は、命令の実行を容易にするために、プロセッサ101と、メモリ130と、を含む。プロセッサ101は、プロセッサコア102と、キャッシュコントローラ105と、L2キャッシュ110と、L3キャッシュ120と、を含む。いくつかの実施形態では、プロセッサ101の各モジュールは、プロセッサコア102の少なくとも一部を形成するために同じ半導体ダイ上に形成されており、メモリ130は、異なる半導体ダイ上に形成されており、1つ以上のバス又は信号線を介してプロセッサ101に接続されている。いくつかの実施形態では、メモリ130の少なくとも一部は、プロセッサ101のモジュールと同じ半導体ダイ上に形成されている。
L2キャッシュ110、L3キャッシュ120及びメモリ130の各々は、概して、データを記憶するように構成されたメモリデバイスであり、したがって、ランダムアクセスメモリ(RAM)メモリモジュール、不揮発性メモリデバイス(例えば、フラッシュメモリ)等であってもよい。本明細書でさらに説明するように、L2キャッシュ110、L3キャッシュ120及びメモリ130は、処理システム100のメモリ階層を形成する。また、処理システム100のメモリ階層は、他のメモリモジュール(例えば、図1に示されていない追加のキャッシュ等)を含んでもよい。
プロセッサコア102は、例えば、命令をフェッチするためのフェッチステージと、フェッチされた命令の各々を1つ以上の動作にデコードするためのデコードステージと、動作を実行するための実行ステージと、動作の実行が完了した命令をリタイアさせるためのリタイアステージと、を有する命令パイプラインを含む。命令に基づいて生成された動作のセットは、本明細書においてメモリアクセス命令と呼ばれ、処理システム100のメモリ階層からデータをロードする要求(ロード動作)、及び、処理システム100のメモリ階層にデータを記憶する要求である。プロセッサコア102によって生成されたメモリアクセス要求は、実行中のプログラムによって使用されているデータ又は必要とされることが分かっているデータをロード又は記憶する要求を表しており、本明細書においてデマンド要求と呼ばれる。
キャッシュコントローラ105は、概して、L2キャッシュ110、L3キャッシュ120及びメモリ130の間でデータを移動させることによって、処理システム100のメモリ階層を管理するように構成されたモジュールである。特に、L2キャッシュ110及びL3キャッシュ120の各々は、複数のエントリを含むメモリデバイスであり、各エントリは、メモリ130の1つ以上のアドレスに関連付けられている。キャッシュコントローラ105は、メモリアクセス要求に応じて、L2キャッシュ110の1つ以上のエントリに記憶されたデータをレビューして、何れのエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するデータを記憶しているかどうかを判別する。記憶している場合、キャッシュコントローラ105は、キャッシュヒットを示し、データをエントリに記憶することによって(記憶動作の場合)、又は、識別されたエントリのデータをプロセッサコア102に提供することによって(ロード動作の場合)、識別されたエントリにおけるメモリアクセス要求を満たす。
メモリアドレスに関連するデータがL2キャッシュ110のエントリに記憶されていない場合、キャッシュコントローラ105は、キャッシュミスを示し、L3キャッシュ120に対して要求を発行する。メモリアクセス要求に応じて、キャッシュコントローラ105(又は、いくつかの実施形態では、他のキャッシュコントローラ)は、L3キャッシュ120の1つ以上のエントリに記憶されたデータをレビューして、何れのエントリがメモリアクセス要求の対象となるメモリアドレスに関連するデータを記憶しているかどうかを判別する。記憶している場合、キャッシュコントローラ105は、キャッシュヒットを示し、データをエントリに記憶することによって(記憶動作の場合)、又は、識別されたエントリのデータをL2キャッシュ110に提供し、その後L2キャッシュ110からプロセッサコア102に提供されることによって(ロード動作の場合)、識別されたエントリにおけるメモリアクセス要求を満たす。メモリアドレスに関連するデータがL3キャッシュ120のエントリに記憶されていない場合、キャッシュコントローラ105は、キャッシュミスを示し、メモリアドレスのデータに対する要求をメモリ130に発行する。キャッシュコントローラ105は、メモリ130からデータを受信すると、データをL3キャッシュ120のエントリに記憶し、その後、データがL3キャッシュ120からL2キャッシュ110に転送され、L2キャッシュ110がデータをプロセッサコア102に提供することによって、メモリアクセス要求が満たされる。
プロセッサ101は、メモリアクセス効率の向上をサポートするために、プリフェッチャ106を含む。プリフェッチャ106は、キャッシュコントローラ105に発行されたデマンド要求を監視してパターンを識別し、識別されたパターンに基づいて、近い将来にプロセッサコア102によるデマンド要求の対象となるメモリアドレスを予測する。プリフェッチャ106は、本明細書ではプリフェッチ要求と呼ばれる、識別されたメモリアドレスを対象とするメモリアクセス要求をキャッシュコントローラ105に発行する。キャッシュコントローラ105は、先ず、プリフェッチ要求の対象となるメモリアドレスに関連するデータがL2キャッシュ110のエントリに既に記憶されているか否かを識別し、記憶されていない場合に、L3キャッシュ120又はメモリ130からのデータを要求し、データをL2キャッシュ110のエントリに記憶することによって、プリフェッチ要求をデマンド要求と同様に扱う。
いくつかの実施形態では、L2キャッシュ110及びL3キャッシュ120の各エントリは、メモリアドレスのサブセットに関連付けられており、そのサブセットに関連付けられたデータのみがエントリに記憶されることが許可される。例えば、いくつかの実施形態では、キャッシュは、M個のセットを有し、M個のセットの各々がN個のエントリを含む、Nウェイセットアソシアティブキャッシュである。M個のセットの各々に異なるメモリアドレスのサブセットが割り当てられることによって、データが、エントリの割り当てられたサブセット内のメモリアドレスに関連付けられている場合には、キャッシュコントローラ105は、データをエントリに記憶するのみである。セットの全てのエントリがメモリアクセスの対象となり得るデータ(本明細書では「有効なデータ」と呼ばれる)を記憶している場合、そのセットは、本明細書においてフル(full)と呼ばれる。さらに、キャッシュコントローラ105は、フルのセットに記憶するデータを受信した場合、エビクトされる(すなわち、セットから削除される)セットの1つのエントリを選択して、受信したデータと置換する。エントリがL2キャッシュ110からエビクトされた場合、当該エントリは、L3キャッシュ120に転送されてもよいし、最初にL3キャッシュ120に転送されることなく置換されてもよい。キャッシュコントローラ105が転送するエントリ、又は、転送することなく置換するエントリを選択するために使用するスキームは、L2キャッシュ110の転送ポリシーと呼ばれる。
L2キャッシュ110の転送ポリシーは、エビクトされたキャッシュエントリのより効率的な転送を容易にするために、キャッシュエントリに記憶されたデータがプリフェッチ要求に応じて記憶されたが、デマンド要求の対象ではなかったかどうかに少なくとも部分的に基づくことができる。1つの転送ポリシーの下では、L2キャッシュ110内の未使用のプリフェッチは、L2キャッシュ110からエビクトされると、有効なステータスでL3キャッシュ120に転送される。異なる転送ポリシーの下では、L2キャッシュ110内の未使用のプリフェッチは、データが無効であり、したがって破棄に適格であることを示すステータスでL3キャッシュ120に転送される。さらに他の転送ポリシーでは、L2キャッシュ110内の未使用のプリフェッチは、L2キャッシュ110からエビクトされると、L3キャッシュ120に転送されることなく置換される。通常、プリフェッチ要求に応じてL2キャッシュ110に転送されたデータは、L3キャッシュ120から以前に転送又はコピーされたものである。いくつかの実施形態では、L3キャッシュ120はL2キャッシュ110を含まず、これにより、L2キャッシュ110に記憶されたキャッシュエントリの少なくとも一部がL3キャッシュ120に記憶されない。L3キャッシュ120がL2キャッシュ110を含まない場合に、未使用のプリフェッチデータをL2キャッシュ110からエビクトする際にL3キャッシュ120に転送することは、例えば、未使用のプリフェッチデータが割り当てられたL3キャッシュ120内のセットがフルである場合に、L3キャッシュ120から他の有効なデータをエビクトすることが必要になるので、メモリ要求の処理がより非効率になる。未使用のプリフェッチデータを無効なステータスでL3キャッシュ120に転送するか、未使用のプリフェッチデータをL2キャッシュ110からエビクトするときにL3キャッシュ120に転送することなく置換する転送ポリシーを任意に使用することによって、メモリ要求のより効率的な処理が実現され得る。対照的に、従来のキャッシュ管理システムでは、未使用のプリフェッチデータは、L2キャッシュ110からエビクトされるときに有効なステータスでL3キャッシュ120に転送され、これにより、場合によってはより有用なデータ(例えば、未使用のプリフェッチデータよりもアクセスされる可能性が高いデータ)がエビクトされ、メモリアクセス効率が低下する。
いくつかの実施形態では、キャッシュコントローラ105は、キャッシュ110の異なる領域に異なる転送ポリシーを適用し、各領域は複数のエントリを含む。少なくとも1つの実施形態では、各領域は、その転送ポリシーのみが異なる。したがって、領域のエントリは任意のセットに使用することができ、異なる領域は、同じセットの異なるエントリを含むことができる。
図1に示す例では、キャッシュ110は、3つの領域(テスト領域115,116及び非テスト領域118)を含む。また、キャッシュコントローラ105は、未使用のプリフェッチデータがL2キャッシュ110からエビクトされるときに有効なステータス又は無効なステータスでL3キャッシュ120に転送されるか、又は、L3キャッシュ120に転送されることなく置換されるか等のように少なくとも1つの態様の異なる転送ポリシー111,112を記憶する。したがって、図1の例では、転送ポリシー111は、未使用のプリフェッチデータの全て又は一部が、任意の非プリフェッチ要求データと同様に、L2キャッシュ110からエビクトされるときに有効なステータスでL3キャッシュ120に転送されることを定める。本明細書で使用する場合、非プリフェッチ要求とは、転送ポリシーが適用されるキャッシュレベルを対象とするプリフェッチ要求ではないメモリアクセスを指す。非プリフェッチ要求の例には、デマンド要求、命令キャッシュミスに応じて生成されたメモリアクセス要求、ハードウェアページテーブルウォーク要求、プロセッサコア102によって生成された投機的なメモリアクセス要求(例えば、分岐命令後の命令の投機的な実行中に生成されたメモリアクセス要求)、及び、他のキャッシュレベルにおいて生成されたプリフェッチ要求が挙げられる。
対照的に、転送ポリシー112は、未使用のプリフェッチデータの全て又は一部がL2キャッシュ110からエビクトされるときに無効なステータスでL3キャッシュ120に転送されるか、L3キャッシュ120に転送されることなく置換され、その一方で、非プリフェッチ要求データがL2キャッシュ110からエビクトされるときにL3キャッシュ120に転送されることを定める。したがって、転送ポリシー111は、プリフェッチデータにアクセスする頻度がより高いメモリアクセスパターンに対してより効率的となることができ、転送ポリシー112は、プリフェッチデータにアクセスする頻度がより少ないメモリアクセスパターンに対してより効率的となることができる。しかしながら、プロセッサコア102のメモリアクセスパターンは、異なる時点において異なる転送ポリシーの下でキャッシュ110がより効率的に動作するように、経時的に変化する可能性がある。したがって、キャッシュコントローラ105は、非テスト領域118に対して、テスト領域115,116の性能特性に応じて転送ポリシー111,112の中から選択する。
例示すると、プロセッサ101は、テスト領域115,116の各々について、キャッシュヒット率、キャッシュミス率等の性能特性を監視し記録する性能モニタ104を含む。キャッシュコントローラは、テスト領域115,116の性能特性のうち1つ以上又はこれらの組み合わせに基づいて、転送ポリシー111,112のうち1つの転送ポリシーを選択し、選択した転送ポリシーを非テスト領域118に適用する。例えば、テスト領域115のキャッシュヒット率がテスト領域116のキャッシュヒット率よりも高い場合、キャッシュコントローラ105は、テスト領域115の転送ポリシー(例えば、転送ポリシー111)を選択して、非テスト領域118に適用する。いくつかの実施形態では、非テスト領域118は、キャッシュ110のエントリの大部分を含む。したがって、テスト領域115,116の性能によって示されるように、非テスト領域118の転送ポリシーをより効率的な転送ポリシーとして選択することによって、キャッシュコントローラ105は、キャッシュ110全体の効率を向上させる。さらに、テスト領域115,116の性能特性が経時的に変化すると、キャッシュコントローラは、転送ポリシーを、所定の性能特性のセットに対してより効率的なポリシーに変更する。
図2は、いくつかの実施形態による、図1のL2キャッシュ110のテスト領域115,116に異なる転送ポリシーを適用するキャッシュコントローラ105の一例を示す図である。図示した例では、テスト領域115,116の各々は、テスト領域115のエントリ240,241,242,243、及び、テスト領域116のエントリ246,247,248,249等の複数のエントリを含む。各エントリは、メモリ130から取得されたデータを記憶するためのデータ部分(例えば、エントリ240のデータ部分244)、すなわち、当該エントリにおけるメモリアクセス要求を満たすために使用されるデータを含む。また、各エントリは、テスト領域115に適用された転送ポリシーが、データがL2キャッシュ110のテスト領域115からエビクトされるときに、L3キャッシュ120に転送されるのか、L3キャッシュ120に転送されることなく置換されるのか(或いは、データが破棄されることを示すステータスで転送されるのか)の何れを定めているかについての指標を記憶する転送フィールド(例えば、エントリ240の転送フィールド245)を含む。
図2の例では、キャッシュコントローラ105は、未使用のプリフェッチ要求がL2キャッシュ110のテスト領域115からエビクトされると最初にL3キャッシュ120に転送されることなく置換され、その一方で、デマンド要求がL2キャッシュ110のテスト領域115からエビクトされるとL3キャッシュ120に転送される転送ポリシーをテスト領域115に適用すると仮定する。図2の例では、L2キャッシュ110のテスト領域115には、プリフェッチ要求250,252の各々に関連するデータと、デマンド要求251,253の各々に関連するデータと、が入力されている。
上述したように、キャッシュコントローラ105は、異なる転送ポリシーを異なるテスト領域115,116に適用する。キャッシュコントローラ105は、各テスト領域の性能特性を測定することによって、プロセッサコア102の最近のメモリアクセスパターンに対してより効率的な転送ポリシーを識別し、より効率的な転送ポリシーを非テスト領域118に適用することによって、全体的なキャッシュ効率を向上させる。
いくつかの実施形態では、転送ポリシーは、プリフェッチ要求に関連する全ての未使用のデータについて、L3キャッシュ120に転送することなく置換する(又は、データを破棄されることを示すステータスでL3キャッシュ120に転送する)ように定めるのではなく、プリフェッチ要求に関連する未使用のデータの一部について、L3キャッシュ120に転送することなく置換するように定める。例えば、テスト領域115の場合、キャッシュコントローラ105は、プリフェッチ要求に関連するエントリの或る割合のみが、先にL3キャッシュ120に転送されることなく置換されることを定める転送ポリシーを適用する。
テスト領域115に適用される転送ポリシーとは対照的に、テスト領域116に適用される転送ポリシーは、エントリ毎に、エントリがデマンド要求又はプリフェッチ要求の何れに関連しているかに拘わらず、L2キャッシュ110からエビクトされるときに有効なステータスでL3キャッシュ120に転送されることを定める。図2の例では、テスト領域116には、プリフェッチ要求256,258の各々に関連するデータと、デマンド要求257,259の各々に関連するデータと、が入力されている。キャッシュコントローラ105は、テスト領域116のエントリのエビクトに応じて、データがデマンド要求又はプリフェッチ要求の何れに関連しているかに拘わらず、エントリをL3キャッシュ120に転送することを要求する転送ポリシーを適用する。したがって、異なるテスト領域115,116に適用される異なる転送ポリシーは、プリフェッチ要求に関連するエントリがL2キャッシュ110からエビクトされるときに最初にL3キャッシュ120に転送されることなく置換され、一部置換され、又は、全く置換されないことを含む、いくつかの態様のうち1つ以上において異なる。さらに、いくつかの実施形態では、キャッシュ110は、異なる転送ポリシーが適用された3つ以上のテスト領域を含み、これにより、非テスト領域118に適用する広範囲の可能な転送ポリシーをキャッシュコントローラに与える。
図3は、L2キャッシュ310の異なるテスト領域に異なる転送ポリシーを適用するキャッシュコントローラ305の一例を示す図である。図3の例では、キャッシュコントローラ305は、転送ポリシー311をL2キャッシュ310のテスト領域315に適用し、転送ポリシー312をL2キャッシュ310のテスト領域316に適用する。転送ポリシー311は、全てのエントリが、L2キャッシュ310からエビクトされると、エントリがプリフェッチ要求又はデマンド要求の何れに関連しているかに拘わらず、L3キャッシュ320に転送されることを定める。図3の例では、着信データ341は、L2キャッシュ310のテスト領域315内のプリフェッチデータ345を含むセットに受信され、プリフェッチデータ345のエビクトを必要とする。キャッシュコントローラ305は、転送ポリシー311をテスト領域315に適用しているので、プリフェッチデータ345を、着信データ341に置換する前にL3キャッシュ320に転送する。
対照的に、着信データ342は、L2キャッシュ310のテスト領域316内のプリフェッチデータ346を含むセットに受信され、プリフェッチデータ346のエビクトを必要とする。キャッシュコントローラ305は、転送ポリシー312をテスト領域316に適用しているので、プリフェッチデータ346を、L3キャッシュ320に転送することなく破棄する。
図4は、いくつかの実施形態による、異なるテスト領域115,116の経時的に変化する相対的な性能の一例を示す図400である。図400は、時間を表すX軸450と、キャッシュヒット率を表すY軸451と、を含む。図400は、経時的なテスト領域116のキャッシュヒット率を表す曲線452と、テスト領域115のキャッシュヒット率を表す曲線453と、を示している。
図400に示す例において、時間455の前では、テスト領域115のキャッシュヒット率は、テスト領域116のキャッシュヒット率よりも高い。したがって、時間455の前では、キャッシュコントローラ105は、テスト領域115の転送ポリシーを非テスト領域118に適用する。時間455において、テスト領域115,116間のキャッシュヒット率の関係は、テスト領域116のキャッシュヒット率がテスト領域115のキャッシュヒット率よりも高くなるように変化する。これに応じて、キャッシュコントローラ105は、非テスト領域118の転送ポリシーを、テスト領域116の転送ポリシーと一致するように変更する。後の時間456において、テスト領域115,116間のキャッシュヒット率の関係は、テスト領域115のキャッシュヒット率がテスト領域116のキャッシュヒット率よりも高くなるように再度変化する。これに応じて、キャッシュコントローラ105は、非テスト領域118の転送ポリシーを、テスト領域115の転送ポリシーと一致するように変更する。このように、キャッシュコントローラ105は、テスト領域115,116の相対的な性能の変化に基づいて、非テスト領域118に適用される転送ポリシーを変更する。
図5は、いくつかの実施形態による、キャッシュの異なるテスト領域の性能特性に基づいてキャッシュの非テスト領域の転送ポリシーを選択する方法500のフロー図である。説明目的で、方法500は、図1の処理システム100における例示的な実装に関して説明する。ブロック502において、キャッシュコントローラ105は、異なる転送ポリシー111,112をキャッシュ110の異なるテスト領域115,116に適用する。したがって、例えば、キャッシュコントローラ105は、転送ポリシー111をテスト領域115に適用し、転送ポリシー112をテスト領域116に適用する。ブロック504において、性能モニタ104は、異なるテスト領域115,116の性能特性(例えば、キャッシュヒット率、キャッシュミス率、キャッシュヒット率及びキャッシュミス率の加重和等)を監視し記録する。
ブロック506において、キャッシュコントローラ105は、テスト領域115,116の各々の性能特性を比較し、その比較に基づいて転送ポリシー111,112のうち1つの転送ポリシーを選択する。例えば、キャッシュコントローラ105は、性能特性によって示されるように、より高い性能を有するテスト領域に適用される転送ポリシーを選択する。ブロック508において、キャッシュコントローラ105は、選択された転送ポリシーをキャッシュ110の非テスト領域118に適用する。すなわち、キャッシュコントローラは、選択された転送ポリシーの要件に従って、非テスト領域118でのエビクトの際に転送され又は事前の転送なく置換されるキャッシュエントリを指定する。ブロック510において、キャッシュコントローラ105は、転送指定又は置換指定を使用して、L2キャッシュ110の非テスト領域118の置換ポリシーに従って、L2キャッシュ110の非テスト領域118に記憶されたプリフェッチデータを転送又は破棄する。方法のフローはブロック504に戻り、キャッシュコントローラ105は、テスト領域115,116の性能を監視し続け、その性能に基づいて、非テスト領域118に適用される転送ポリシーを調整することを反映する。
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体、又は、記憶媒体の組み合わせを含むことができる。かかる記憶媒体には、限定されないが、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、キャッシュ)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステム(例えば、システムRAM又はROM)に内蔵されてもよいし、コンピュータシステム(例えば、磁気ハードドライブ)に固定的に取り付けられてもよいし、コンピュータシステム(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)に着脱可能に取り付けられてもよいし、有線又は無線のネットワークを介してコンピュータシステム(例えば、ネットワークアクセス可能なストレージ(NAS))に接続されてもよい。
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。

Claims (15)

  1. プロセッサによって実行される方法であって、
    第1キャッシュ(110)の第1領域(116)の第1キャッシュエントリ(246)の第1データを置換することに応じて、前記第1データが、デマンド要求の対象ではなかったプリフェッチデータであることに応じて、前記第1データを第2キャッシュ(120)に転送することと、
    前記第1キャッシュの第2領域(115)の第2キャッシュエントリ(244)の第2データを置換することに応じて、前記第2データがデマンド要求の対象ではなかったプリフェッチデータであることに応じて、前記第2データを前記第1キャッシュから破棄することと、を含む、
    方法。
  2. 前記第1キャッシュの前記第1領域に関する第1性能特性(504)と、前記第1キャッシュの前記第2領域に関する第2性能特性と、を測定することと、
    第1転送ポリシー(111)が第2転送ポリシーよりも高い性能に関連していることを示す前記第1性能特性及び前記第2性能特性に基づいて、前記第1キャッシュの第3領域(118)に対して前記第1転送ポリシー(111)を選択することと、
    前記第1転送ポリシーに基づいて、前記第1キャッシュの前記第3領域のキャッシュエントリ(510)のデータを置換することに応じて、前記第1キャッシュの前記第3領域のキャッシュエントリのデータを前記第2キャッシュに選択的に転送することと、をさらに含む、
    請求項1の方法。
  3. 前記第1転送ポリシーを選択することは、
    前記第1キャッシュの前記第3領域のキャッシュエントリ(510)のデータが、デマンド要求の対象ではなかったプリフェッチデータであることに応じて、前記第1キャッシュの前記第3領域のキャッシュエントリ(510)のデータを、無効であることを示すステータスで前記第2キャッシュに転送することを含む、
    請求項2の方法。
  4. 前記第1転送ポリシーを選択することは、
    前記第1キャッシュの前記第3領域のキャッシュエントリ(510)のデータが、デマンド要求の対象ではなかったプリフェッチデータであることに応じて、前記第1キャッシュの前記第3領域のキャッシュエントリ(510)のデータを、有効なステータスで前記第2キャッシュに転送することを含む、
    請求項2の方法。
  5. 前記第1転送ポリシーを選択することは、第1時間(455)において前記第1転送ポリシーを選択することを含み、
    前記方法は、
    第2時間(456)において、前記第1性能特性及び前記第2性能特性の間の関係の変化に応じて、前記第1キャッシュの前記第3領域に対して第2転送ポリシーを選択することであって、前記第2転送ポリシーは前記第1転送ポリシーと異なる、ことをさらに含む、
    請求項2の方法。
  6. 前記第1性能特性は、前記第1キャッシュの前記第1領域におけるキャッシュヒット率(452)を含み、
    前記第2性能特性は、前記第1キャッシュの第2領域におけるキャッシュヒット率(453)を含む、
    請求項2の方法。
  7. 前記第1性能特性は、前記第1キャッシュの前記第1領域におけるキャッシュミス率を含み、
    前記第2性能特性は、前記第1キャッシュの第2領域におけるキャッシュミス率を含む、
    請求項2の方法。
  8. 前記第1性能特性は、前記第1キャッシュの前記第1領域におけるキャッシュヒット率と、前記第1キャッシュの前記第1領域におけるキャッシュミス率と、の第1加重和を含み、
    前記第2性能特性は、前記第1キャッシュの第2領域におけるキャッシュヒット率と、前記第1キャッシュの前記第2領域におけるキャッシュミス率と、の第2加重和を含む、
    請求項2の方法。
  9. 前記第1性能特性と前記第2性能特性とは、異なる性能特性タイプである、
    請求項2の方法。
  10. 第1領域(115)及び第2領域(116)を含む第1キャッシュ(110)と、
    第2キャッシュ(120)と、
    キャッシュコントローラ(105)と、を備え、
    前記キャッシュコントローラは、
    前記第1領域において、デマンド要求の対象ではないデータがプリフェッチ要求に応じて第1キャッシュエントリに記憶されているか否かに基づいて、前記第1キャッシュエントリ(240)に対して第1転送ポリシー(111)を選択し、
    第2領域において、デマンド要求の対象ではないデータがプリフェッチ要求に応じて前記第2領域のキャッシュエントリに記憶されているか否かとは無関係に、前記キャッシュエントリに対して第2転送ポリシー(112)を選択し、
    記第1キャッシュからのキャッシュエントリのエビクトを必要とするデータを前記第1キャッシュで受信したことに応じて、選択された第1転送ポリシーに基づいて前記第1領域のデータを、選択された第2転送ポリシーに基づいて前記第2領域のデータを前記第2キャッシュに選択的に転送する、ように構成されている、
    プロセッサ(101)。
  11. 前記第1領域に関する第1性能特性と、前記第2領域に関する第2性能特性と、を測定する性能モニタ(104)をさらに備え、
    前記キャッシュコントローラは、
    前記第1転送ポリシーが第2転送ポリシーよりも高い性能に関連していることを示す前記第1性能特性及び前記第2性能特性に基づいて、前記第1キャッシュの第3領域(118)に対して第1転送ポリシーを選択し、
    選択された第1転送ポリシーに基づいて、前記第1キャッシュからのキャッシュエントリのエビクトを必要とするデータを前記第1キャッシュで受信したことに応じて、前記第1キャッシュの前記第3領域のキャッシュラインのデータを前記第2キャッシュに選択的に転送する、ように構成されている、
    請求項10のプロセッサ。
  12. 前記第1転送ポリシーは、
    デマンド要求の対象ではなかったプリフェッチ要求(250)に応じて、選択された第1キャッシュエントリに記憶されたデータを選択して置換することを、前記選択されたデータが破棄されることを示すステータスで前記選択されたデータを前記第2キャッシュに転送することによって行うように構成されている、
    請求項11のプロセッサ。
  13. 前記第2転送ポリシーは、
    前記受信したデータを第2キャッシュエントリに記憶する前に、前記第2キャッシュエントリのデータを前記第2キャッシュに転送するように構成されている、
    請求項11のプロセッサ。
  14. 前記キャッシュコントローラは、
    第1時間(455)において前記第1転送ポリシーを選択し、
    第2時間(456)において、前記第1転送特性及び前記第2転送特性の間の関係の変化に応じて、前記第3領域に対して第2転送ポリシーを選択する、ように構成されており、
    前記第2転送ポリシーは前記第1転送ポリシーと異なる、
    請求項11のプロセッサ。
  15. 前記第1性能特性は、前記第1領域におけるキャッシュヒット率(453)を含み、
    前記第2性能特性は、前記第2領域におけるキャッシュヒット率(452)を含む、
    請求項11のプロセッサ。
JP2019502753A 2016-07-20 2017-07-19 キャッシュメモリのデータ置換方法及びプロセッサ Active JP7232175B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/215,033 2016-07-20
US15/215,033 US9928176B2 (en) 2016-07-20 2016-07-20 Selecting cache transfer policy for prefetched data based on cache test regions
PCT/US2017/042794 WO2018017671A1 (en) 2016-07-20 2017-07-19 Selecting cache transfer policy for prefetched data based on cache test regions

Publications (2)

Publication Number Publication Date
JP2019525330A JP2019525330A (ja) 2019-09-05
JP7232175B2 true JP7232175B2 (ja) 2023-03-02

Family

ID=60989964

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019502753A Active JP7232175B2 (ja) 2016-07-20 2017-07-19 キャッシュメモリのデータ置換方法及びプロセッサ

Country Status (6)

Country Link
US (1) US9928176B2 (ja)
EP (1) EP3488349B1 (ja)
JP (1) JP7232175B2 (ja)
KR (1) KR20190020825A (ja)
CN (1) CN109478165B (ja)
WO (1) WO2018017671A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11275692B2 (en) 2019-05-24 2022-03-15 Texas Instruments Incorporated Methods and apparatus for multi-banked victim cache with dual datapath
US11500779B1 (en) 2019-07-19 2022-11-15 Marvell Asia Pte, Ltd. Vector prefetching for computing systems
US11561895B2 (en) * 2019-09-05 2023-01-24 Advanced Micro Devices, Inc. Oldest operation wait time indication input into set-dueling
US11210234B2 (en) 2019-10-31 2021-12-28 Advanced Micro Devices, Inc. Cache access measurement deskew
US11379379B1 (en) * 2019-12-05 2022-07-05 Marvell Asia Pte, Ltd. Differential cache block sizing for computing systems
CN111723058B (zh) 2020-05-29 2023-07-14 广东浪潮大数据研究有限公司 一种预读数据缓存方法、装置、设备及存储介质
US11467937B2 (en) * 2020-06-26 2022-10-11 Advanced Micro Devices, Inc. Configuring cache policies for a cache based on combined cache policy testing
CN113760783B (zh) * 2021-09-09 2023-03-24 海光信息技术股份有限公司 联合偏移预取方法、装置、计算设备和可读存储介质
CN114238167B (zh) * 2021-12-14 2022-09-09 海光信息技术股份有限公司 信息预取方法、处理器、电子设备
CN117971728A (zh) * 2024-03-29 2024-05-03 北京象帝先计算技术有限公司 缓存器及缓存控制方法、集成电路系统、电子组件及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280987A (ja) 2002-03-25 2003-10-03 Kawasaki Microelectronics Kk 適応置換制御機能を有するセット・アソシアティブ方式のキャッシュシステム及びキャッシュ制御方法
WO2012095957A1 (ja) 2011-01-12 2012-07-19 富士通株式会社 キャッシュメモリ装置,キャッシュメモリの制御装置,情報処理装置,キャッシュメモリの制御方法,及びキャッシュメモリ装置の閾値決定プログラム
JP2013542511A (ja) 2010-09-27 2013-11-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 積極的プリフェッチングによるプロセッサキャッシュ汚染を低減するための方法及び装置
WO2016097813A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293609A (en) * 1991-04-19 1994-03-08 International Business Machines Corporation Hit-density-based replacement for data cache with prefetching
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
JPH06282487A (ja) * 1993-03-25 1994-10-07 Matsushita Electric Ind Co Ltd キャッシュ装置
US5553276A (en) * 1993-06-30 1996-09-03 International Business Machines Corporation Self-time processor with dynamic clock generator having plurality of tracking elements for outputting sequencing signals to functional units
US5544342A (en) * 1993-06-30 1996-08-06 International Business Machines Corporation System and method for prefetching information in a processing system
KR0146059B1 (ko) * 1995-04-11 1998-09-15 문정환 미참조 선인출 캐쉬를 이용한 명령어 선인출 방법 및 그 회로
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US6272598B1 (en) 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
US6721853B2 (en) 2001-06-29 2004-04-13 International Business Machines Corporation High performance data processing system via cache victimization protocols
US7558920B2 (en) * 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
US20060143256A1 (en) 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US20090006813A1 (en) * 2007-06-28 2009-01-01 Abhishek Singhal Data forwarding from system memory-side prefetcher
US7917702B2 (en) * 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
US7793049B2 (en) 2007-10-30 2010-09-07 International Business Machines Corporation Mechanism for data cache replacement based on region policies
US9009416B1 (en) * 2011-12-30 2015-04-14 Emc Corporation System and method for managing cache system content directories
US9235524B1 (en) * 2011-12-30 2016-01-12 Emc Corporation System and method for improving cache performance
US9779029B2 (en) 2012-11-06 2017-10-03 Facebook, Inc. Cache replacement policy for data with strong temporal locality
US20150286571A1 (en) 2014-04-04 2015-10-08 Qualcomm Incorporated Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution
CN104572502B (zh) * 2015-01-12 2018-06-19 浪潮电子信息产业股份有限公司 一种存储系统缓存策略自适应方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280987A (ja) 2002-03-25 2003-10-03 Kawasaki Microelectronics Kk 適応置換制御機能を有するセット・アソシアティブ方式のキャッシュシステム及びキャッシュ制御方法
JP2013542511A (ja) 2010-09-27 2013-11-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 積極的プリフェッチングによるプロセッサキャッシュ汚染を低減するための方法及び装置
WO2012095957A1 (ja) 2011-01-12 2012-07-19 富士通株式会社 キャッシュメモリ装置,キャッシュメモリの制御装置,情報処理装置,キャッシュメモリの制御方法,及びキャッシュメモリ装置の閾値決定プログラム
WO2016097813A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy

Also Published As

Publication number Publication date
KR20190020825A (ko) 2019-03-04
JP2019525330A (ja) 2019-09-05
US20180024931A1 (en) 2018-01-25
WO2018017671A1 (en) 2018-01-25
EP3488349A1 (en) 2019-05-29
EP3488349B1 (en) 2024-05-15
EP3488349A4 (en) 2020-03-25
CN109478165A (zh) 2019-03-15
US9928176B2 (en) 2018-03-27
CN109478165B (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
JP7232175B2 (ja) キャッシュメモリのデータ置換方法及びプロセッサ
JP6840169B2 (ja) キャッシュテスト領域に基づくプリフェッチのためのキャッシュエージングポリシーの選択
US8935478B2 (en) Variable cache line size management
US11803484B2 (en) Dynamic application of software data caching hints based on cache test regions
US8364904B2 (en) Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer
JP4829191B2 (ja) キャッシュシステム
KR20200088502A (ko) 메모리 대역폭 사용을 제한하기 위한 메모리 요청 스로틀링
KR102453192B1 (ko) 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체
JP6916782B2 (ja) 仮想マシンのページ・テーブル・キャッシュ・ラインをプリロードする方法、コンピューティング・システム、およびコンピュータ・プログラム
JP7453360B2 (ja) キャッシュアクセス測定デスキュー
US8484423B2 (en) Method and apparatus for controlling cache using transaction flags
US20170357585A1 (en) Setting cache entry age based on hints from another cache level
EP3239848A1 (en) Selecting cache aging policy for prefetches based on cache test regions

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220808

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220808

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220819

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220823

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20221021

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20221025

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221108

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221213

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20230104

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20230131

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20230131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230217

R150 Certificate of patent or registration of utility model

Ref document number: 7232175

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150