(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-28
(54)【発明の名称】ラストレベルキャッシュへのL3キャッシュデータ追い出しのためのデータの再フェッチ
(51)【国際特許分類】
G06F 12/0897 20160101AFI20241121BHJP
G06F 12/0804 20160101ALI20241121BHJP
G06F 12/0888 20160101ALI20241121BHJP
【FI】
G06F12/0897 110
G06F12/0804 100
G06F12/0888 102
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024534779
(86)(22)【出願日】2022-12-15
(85)【翻訳文提出日】2024-06-27
(86)【国際出願番号】 US2022052973
(87)【国際公開番号】W WO2023114376
(87)【国際公開日】2023-06-22
(32)【優先日】2021-12-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】タルン ナクラ
(72)【発明者】
【氏名】ジェイ フライシュマン
(72)【発明者】
【氏名】ガウタム タラシン ハザリ
(72)【発明者】
【氏名】アキル アルンクマール
(72)【発明者】
【氏名】ウィリアム エル. ウォーカー
(72)【発明者】
【氏名】ガブリエル エイチ. ロー
(72)【発明者】
【氏名】ジョン カラマティアノス
(72)【発明者】
【氏名】マルコ スクルバック
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205JJ13
5B205MM05
5B205NN45
5B205NN82
5B205NN95
(57)【要約】
処理システム[100]の多重キャッシュ階層[104]内の中間レベルキャッシュ[140]からの第1のクリーンデータブロックの追い出しに応じて、キャッシュコントローラ[150]は、第1のクリーンデータブロックのアドレス[205]にアクセスする。コントローラは、アクセスされたアドレスを使用して、システムメモリ[116]からラストレベルキャッシュ[144]への第1のクリーンデータブロックのフェッチを開始する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
中間レベルキャッシュからの第1のクリーンデータブロックの追い出しに応じて、前記第1のクリーンデータブロックのアドレスにアクセスすることと、
前記アドレスを使用して、システムメモリからラストレベルキャッシュ(LLC)への前記第1のクリーンデータブロックのフェッチを開始することと、を含む、
方法。
【請求項2】
前記第1のクリーンデータブロックの前記アドレスを、前記中間レベルキャッシュから前記LLCに伝搬することを含む、
請求項1の方法。
【請求項3】
前記中間レベルキャッシュからの第1のダーティデータブロックの追い出しに応じて、前記第1のダーティデータブロックを前記中間レベルキャッシュから前記LLCに伝搬することを含む、
請求項1又は2の方法。
【請求項4】
前記第1のダーティデータブロックは、書き込み命令又は変更命令のうち1つ以上を介して前記キャッシュ階層の1つ以上のキャッシュに書き込まれたデータを含む、
請求項1の方法。
【請求項5】
前記中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、前記LLCのヒット率が所定の閾値を下回っているという決定、又は、前記システムメモリと前記LLCとの間のインターフェースが、現在、データをフェッチするための所定の閾値を下回る記憶容量を有するという決定に基づいて、前記第2のクリーンデータブロックを前記LLCに記憶するのをバイパスすることを含む、
請求項1の方法。
【請求項6】
前記中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、前記中間レベルキャッシュと前記LLCとの間のコヒーレント相互接続が、現在、データを伝搬するための所定の閾値を上回る記憶容量を有するという決定、又は、現在の電力使用量レベルが電力使用量の所定の閾値レベルを下回っているという決定に基づいて、前記第2のクリーンデータブロックを前記中間レベルキャッシュから前記LLCに伝搬することを含む、
請求項1の方法。
【請求項7】
前記システムメモリから前記第1のクリーンデータブロックのフェッチを開始することは、メモリコントローラにアクセスすることを含む、
請求項1の方法。
【請求項8】
前記中間レベルキャッシュから前記LLCに前記第1のクリーンデータブロックを伝搬するのをバイパスすることを含む、
請求項1の方法。
【請求項9】
プロセッサと、
システムメモリと、
多重キャッシュ階層と、
キャッシュコントローラと、を備え、
前記キャッシュコントローラは、
前記多重キャッシュ階層内の中間レベルキャッシュからの第1のクリーンデータブロックの追い出しに応じて、前記第1のクリーンデータブロックのアドレスにアクセスし、
前記アドレスを使用して、前記システムメモリからラストレベルキャッシュ(LLC)への前記第1のクリーンデータブロックのフェッチを開始する、
処理システム。
【請求項10】
前記キャッシュコントローラは、
前記第1のクリーンデータブロックの前記アドレスを、前記中間レベルキャッシュから前記LLCに伝搬する、
請求項9の処理システム。
【請求項11】
前記キャッシュコントローラは、
前記中間レベルキャッシュからの第1のダーティデータブロックの追い出しに応じて、前記第1のダーティデータブロックを前記中間レベルキャッシュから前記LLCに伝搬する、
請求項9又は10の処理システム。
【請求項12】
前記第1のダーティデータブロックは、書き込み命令又は変更命令のうち1つ以上を介して前記多重キャッシュ階層の1つ以上のキャッシュに書き込まれたデータを含む、
請求項11の処理システム。
【請求項13】
前記キャッシュコントローラは、
前記中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、前記LLCのヒット率が所定の閾値を下回っているという決定、又は、前記システムメモリと前記LLCとの間のインターフェースが、現在、データをフェッチするための所定の閾値を下回る記憶容量を有するという決定に基づいて、前記第2のクリーンデータブロックを前記LLCに記憶するのをバイパスする、
請求項11の処理システム。
【請求項14】
前記キャッシュコントローラは、
前記中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、前記中間レベルキャッシュと前記LLCとの間のコヒーレント相互接続が、現在、データを伝搬するための所定の閾値を上回る記憶容量を有するという決定、又は、現在の電力使用量レベルが電力使用量の所定の閾値レベルを下回っているという決定に基づいて、前記第2のクリーンデータブロックを前記中間レベルキャッシュから前記LLCに伝搬する、
請求項11の処理システム。
【請求項15】
前記システムメモリから前記第1のクリーンデータブロックの読み取りを開始することは、メモリコントローラにアクセスすることを含む、
請求項9の処理システム。
【請求項16】
前記キャッシュコントローラは、
前記中間レベルキャッシュから前記LLCに前記第1のクリーンデータブロックを伝搬するのバイパスする、
請求項9の処理システム。
【請求項17】
処理システムの多重キャッシュ階層内の中間レベルキャッシュに第1のキャッシュデータを記憶する要求に応じて、前記中間レベルキャッシュの記憶容量が限界を超えていると決定することと、
前記中間レベルキャッシュからの第1のクリーンデータブロックの追い出しを開始することであって、前記追い出しは、前記第1のクリーンデータブロックのアドレスをラストレベルキャッシュ(LLC)に送信することを含む、ことと、
前記LLCにおいて前記アドレスを受信したことに応じて、前記中間レベルキャッシュから送信された前記アドレスを使用して、システムメモリから前記第1のクリーンデータブロックをフェッチすることによって、追い出された前記第1のクリーンデータブロックを前記LLCにキャッシングすることと、を含む、
方法。
【請求項18】
前記中間レベルキャッシュからの第1のダーティデータブロックの追い出しに応じて、前記第1のダーティデータブロックを前記中間レベルキャッシュから前記LLCに送信することを含む、
請求項17の方法。
【請求項19】
前記第1のクリーンデータブロックを前記中間レベルキャッシュから前記LLCに送信するのをバイパスすることを含む、
請求項17又は18の方法。
【請求項20】
前記中間レベルキャッシュに記憶されたシステムプローブ情報から前記第1のクリーンデータブロックの前記アドレスを取得することを含む、
請求項17の方法。
【発明の詳細な説明】
【背景技術】
【0001】
命令の実行をサポートするために、処理システムは、通常、1つ以上の演算複合機(compute complexes)を実装し、各演算複合機は、1つ以上のプロセッサコアと、実行命令によってアクセスされるデータを記憶するためのメモリモジュールを有するメモリ階層と、を有する。各プロセッサコアは、対応するプロセッサコアに対してローカルな1つ以上のレベルのキャッシュと、対応するプロセッサコアにおいて実行命令によってアクセスされ得る大量のデータを記憶するメインメモリと、に関連付けられている。例えば、複数のプロセッサコアを有する多くの処理システムは、様々な記憶容量(storage capacities)及び関連付けられたプロセッサコアへの近接性を有するレベル1(L1)のキャッシュ、レベル2(L2)のキャッシュ及びレベル3(L3)のキャッシュを含む複数のキャッシュレベルの階層を用いる。いくつかの処理システムでは、各プロセッサコアは、レベル1において、個別の命令固有キャッシュ及びデータ固有キャッシュを有する。キャッシュ階層において、各プロセッサコアは、対応するコアに対してプライベートである1つ以上のレベルのキャッシュ(以下、「プライベートキャッシュ」)に関連付けられている。処理システムは、キャッシュ階層の別のレベルにおいて、一般に、L3キャッシュと称される共有キャッシュを更に実装し、L3キャッシュは、演算複合機のプロセッサコア間で共有される(以下、「共有キャッシュ」)。いくつかの処理システムでは、L3キャッシュとは別の最下位レベルキャッシュ又はラストキャッシュ(Lowest Level-Cache(Last Cache)、LLC)も演算複合機のプロセッサコア間で共有される。
【0002】
従来、データは、固定サイズのブロックで、メモリとキャッシュとの間で転送される。このようなブロックは、本明細書ではキャッシュラインと称される、キャッシュに記憶されたデータ及び他の情報を含む。更に、このようなブロックは、複数のキャッシュラインに記憶されたデータを含んでもよい。1つ以上のキャッシュラインがメモリからキャッシュへとコピーされた場合、キャッシュエントリが生成される。キャッシュエントリは、通常、コピーされたデータ及び要求されたメモリ位置を含む。メモリ・コヒーレンシを確実にするために、キャッシュ階層は、通常、コヒーレンシ・プロトコルを実施するように構成されており、階層のキャッシュは、それらのそれぞれのキャッシュラインに関するコヒーレンシ・ステータス情報を維持し、キャッシュプローブを階層の他のキャッシュに通信して、コヒーレンシ・プロトコルの規則に従うことを確実にする。
【0003】
プロセッサコアが、メモリ内の位置から読み取るか、あるいはメモリ内の位置に書き込む場合、プロセッサコアは、最初に、キャッシュ内の対応するエントリをチェックする。キャッシュは、要求されたメモリ位置の内容を、そのアドレスを含む可能性のある任意のキャッシュライン内でチェックする。メモリ位置がキャッシュ内にあることをプロセッサが発見した場合、キャッシュヒットが発生している。しかしながら、メモリ位置がキャッシュ内にあることをプロセッサが発見しない場合、キャッシュミスが発生している。キャッシュヒットの場合、プロセッサは、キャッシュライン内のデータを直ちに読み取りするか又は書き込む。キャッシュミスの場合、キャッシュは新規エントリを割り当て、メインメモリからキャッシュ内の新しく割り当てられたエントリにデータをコピーし(すなわち、キャッシュは、そのメモリ位置にあるメインメモリからキャッシュにデータを「フェッチ」)し、要求は、キャッシュの内容から満たされる。キャッシュミス時に新規エントリのための余地を作るために、キャッシュは、既存のエントリのうち何れかを追い出す(エビクトする)必要がある場合がある。
【0004】
追い出されたデータは、本明細書では「ビクティムデータ」又は「犠牲データ」と称される。メインメモリに直ちにミラー化されないキャッシュへの書き込みは、「ダーティデータ」としてマークされ、キャッシュは、(例えば、書き込み命令又は変更命令を介して)何れの位置が上書きされたかを追跡する。したがって、メインメモリにおいて、もはや最新ではない犠牲データ(すなわち、キャッシュにおいて変更されているが、メインメモリにおいて変更されていないデータ)は、本明細書では「ダーティデータ」と称され、最新の(すなわち、キャッシュにおいて変更されていない)データは、本明細書では「クリーンデータ」と称される。更に、従来の排他的キャッシュは、コヒーレンシ及びキャッシュ排他性を維持するために、クリーンなビクティムデータが(例えば、L3から)追い出されることを必要とするが、これは、構造におけるデータ移動を増加させ、追加の電力及び帯域幅を消費する。
【発明の概要】
【課題を解決するための手段】
【0005】
一例では、本方法は、中間レベルキャッシュからの第1のクリーンデータブロックの追い出しに応じて、第1のクリーンデータブロックのアドレスにアクセスすることを含む。本方法は、アドレスを使用して、システムメモリからラストレベルキャッシュ(Last-Level Cache、LLC)への第1のクリーンデータブロックのフェッチを開始することを更に含む。
【0006】
別の例では、本方法は、第1のクリーンデータブロックのアドレスを、中間レベルキャッシュからLLCに伝搬することを更に含む。本方法は、中間レベルキャッシュからの第1のダーティデータブロックの追い出しに応じて、第1のダーティデータブロックを中間レベルキャッシュからLLCに伝搬することを更に含んでもよい。いくつかの例では、第1のダーティデータブロックは、書き込み命令又は変更命令のうち1つ以上を介して、キャッシュ階層の1つ以上のキャッシュに書き込まれたデータを含む。
【0007】
いくつかの例では、中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、本方法は、LLCのヒット率が所定の閾値を下回っているという決定、又は、システムメモリとLLCとの間のインターフェースが、現在、データをフェッチするための所定の閾値を下回る記憶容量(capacity)を有するという決定に基づいて、第2のクリーンデータブロックをLLCに記憶するのをバイパスすることを含む。いくつかの例では、本方法は、中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、中間レベルキャッシュとLLCとの間のコヒーレント相互接続が、現在、データを伝搬するための所定の閾値を上回る記憶容量を有するという決定、又は、現在の電力使用量レベルが電力使用量の所定の閾値レベルを下回っているという決定に基づいて、第2のクリーンデータブロックを中間レベルキャッシュからLLCに伝搬することを含む。
【0008】
いくつかの例では、本方法は、メモリコントローラにアクセスすることを含む、システムメモリからの第1のクリーンデータブロックのフェッチを開始することを含む。本方法は、いくつかの例では、中間レベルキャッシュからLLCに第1のクリーンデータブロックを伝搬するのをバイパスすることを更に含む。
【0009】
別の例では、処理システムは、プロセッサと、システムメモリと、多重キャッシュ階層と、多重キャッシュ階層内の中間レベルキャッシュからの第1のクリーンデータブロックの追い出しに応じて、第1のクリーンデータブロックのアドレスにアクセスし、アドレスを使用して、システムメモリからラストレベルキャッシュ(LLC)への第1のクリーンデータブロックのフェッチを開始するキャッシュコントローラと、を含む。いくつかの例では、キャッシュコントローラは、更に、第1のクリーンデータブロックのアドレスを、中間レベルキャッシュからLLCに伝搬する。
【0010】
いくつかの例では、キャッシュコントローラは、更に、中間レベルキャッシュからの第1のダーティデータブロックの追い出しに応じて、第1のダーティデータブロックを、中間レベルキャッシュからLLCに伝搬する。いくつかの例では、第1のダーティデータブロックは、書き込み命令又は変更命令のうち1つ以上を介して多重キャッシュ階層の1つ以上のキャッシュに書き込まれたデータを含む。
【0011】
いくつかの例では、キャッシュコントローラは、更に、中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、LLCのヒット率が所定の閾値を下回っているという決定、又は、システムメモリとLLCとの間のインターフェースが、現在、データをフェッチするための所定の閾値を下回る記憶容量を有するという決定に基づいて、第2のクリーンデータブロックをLLCに記憶するのをバイパスする。いくつかの例では、キャッシュコントローラは、更に、中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、中間レベルキャッシュとLLCとの間のコヒーレント相互接続が、現在、データを伝搬するための所定の閾値を上回る記憶容量を有するという決定、又は、現在の電力使用量レベルが電力使用量の所定の閾値レベルを下回っているという決定に基づいて、第2のクリーンデータブロックを中間レベルキャッシュからLLCに伝搬する。
【0012】
いくつかの例では、システムメモリからの第1のクリーンデータブロックの読み取りを開始することは、メモリコントローラにアクセスすることを含む。いくつかの例では、キャッシュコントローラは、更に、第1のクリーンデータブロックを中間レベルキャッシュからLLCに伝搬するのをバイパスする。
【0013】
別の例では、本方法は、処理システムの多重キャッシュ階層内の中間レベルキャッシュに第1のキャッシュデータを記憶する要求に応じて、中間レベルキャッシュの記憶容量(storage capacity)の限界を超えていると決定することを含む。本方法は、中間レベルキャッシュからの第1のクリーンデータブロックの追い出しを開始することを更に含むが、追い出しは、第1のクリーンデータブロックのアドレスをラストレベルキャッシュ(LLC)に送信することと、LLCにおいてアドレスを受信したことに応じて、中間レベルキャッシュから送信されたアドレスを使用して、システムメモリから第1のクリーンデータブロックをフェッチすることによって、追い出された第1のクリーンデータブロックをLLCにキャッシングすることと、を含む。
【0014】
いくつかの例では、本方法は、中間レベルキャッシュからの第1のダーティデータブロックの追い出しに応じて、第1のダーティデータブロックを中間レベルキャッシュからLLCに送信することを更に含む。いくつかの例では、本方法は、第1のクリーンデータブロックを中間レベルキャッシュからLLCに送信するのをバイパスすることを含む。いくつかの例では、本方法は、中間レベルキャッシュに記憶されたシステムプローブ情報から第1のクリーンデータブロックのアドレスを取得することを含む。
【0015】
本開示は、添付の図面を参照することによってより良好に理解され、その数々の特徴及び利点が当業者に明らかになり得る。異なる図面における同じ符号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0016】
【
図1】いくつかの実施形態による、キャッシュ階層の別のレベルから追い出されたクリーンデータをシステムメモリからラストレベルキャッシュに再フェッチするためのデータ追い出しモジュールを含むマルチコア処理システムのブロック図である。
【
図2】いくつかの実施形態による、システムメモリからLLCにクリーンビクティムデータを再フェッチするデータ追い出しモジュールを示す処理システムの一部のブロック図である。
【
図3】いくつかの実施形態による、LLCにおけるシステムメモリからのクリーンビクティムキャッシュデータの再フェッチを使用して、キャッシュデータをL3キャッシュからLLCに追い出す方法を示すフロー図である。
【
図4】いくつかの実施形態による、
図3の方法の続きを示すフロー図である。
【
図5】いくつかの実施形態による、クリーンデータの追い出しをラストレベルキャッシュ(LLC)に再フェッチするための方法を示すフロー図である。
【発明を実施するための形態】
【0017】
いくつかの処理環境では、多重キャッシュ階層のラストレベルキャッシュ(LLC)は、中央演算処理装置(CPU)のためのL3キャッシュよりも実質的に小さい場合があり、したがって、L3キャッシュ内の全てのデータをLLCに複製することを実行不可能にする。従来、L3キャッシュデータがL3キャッシュから追い出される場合、プロセッサは、追い出されたキャッシュデータをL3キャッシュからLLCに送信(例えば、伝搬)することによって、追い出されたキャッシュデータをLLCにキャッシュする。したがって、これらの追い出しは、キャッシュ間の相当量のトラフィックを引き起こし、かなりのシステム資源及び電力を消費する。
【0018】
図1~
図5は、クリーンビクティムアドレスに基づいて、追い出されたデータをシステムメモリから(例えば、ダイナミック・ランダム・アクセス・メモリ(DRAM)から)LLCに再フェッチし、それによって、追い出されたクリーンデータをL3キャッシュからLLCに送信するのをバイパスすることによって、キャッシュ階層の中間レベルから追い出されたクリーンビクティムデータをキャッシングするための技術を示す。本明細書で使用される場合、キャッシュ階層の「中間」レベルは、LLC以外のキャッシュ階層の任意のレベル(すなわち、キャッシュ階層内の最下位レベルよりも高いキャッシュ階層の任意のレベル)を指す。いくつかの実施形態では、クリーンビクティムデータがキャッシュから追い出された場合、1つ以上のプロセッサコアは、システムプローブフィルタを更新し、システムプローブフィルタは、処理システム内のキャッシュラインを追跡して、キャッシュ階層のキャッシュ間の一貫性(コヒーレンシ)を維持する。データ追い出しモジュールは、アドレス(追い出したクリーンデータの全体ではない)をLLCに送信した後、システムプローブフィルタ内のクリーンビクティムデータのアドレスを利用して、ビクティムデータをシステムメモリ(例えば、DRAM)からLLCに再フェッチする。(追い出されたクリーンデータとは対照的に)アドレスのみを送信することは、比較的少ないシステム資源及び電力を消費するので、キャッシング技術は、キャッシュ間のトラフィックを低減し、実質的により少ないシステム資源及び電力を消費し、L3キャッシュからLLCへのキャッシングにおける速度を増加させる。
【0019】
図1は、少なくともいくつかの実施形態による、システムメモリ116からラストレベルキャッシュ(LLC)144にクリーンキャッシュビクティムデータを再フェッチするためのデータ追い出しモジュール145を含む処理システム100を示す。図示された例では、処理システム100は、演算複合機102と、キャッシュ階層104と、ラストレベルキャッシュ(LLC)144と、メモリコントローラ106と、システムメモリ116と、を含む。いくつかの実施形態では、LLC144は、キャッシュ階層104の一部として実装されている。いくつかの実施形態では、LLC144は、メモリ側キャッシュ構造として実装されており、一方で、キャッシュ階層は、プロセッサ側キャッシュ構造として実装されている。いくつかの実施形態では、LLC144及びメモリコントローラ106は、複数のLLC及びメモリコントローラとして実装されており、それぞれのLLCは、それぞれのメモリコントローラに結合される。
【0020】
演算複合機102は、4つのプロセッサコア111、112、113、114等の複数のプロセッサコアを含む。プロセッサコアは、例えば、中央演算処理装置(CPU)コア、画像処理装置(GPU)コア、デジタル信号プロセッサ(DSP)コア、又は、これらの組合せを含む。演算複合機102のプロセッサコアの数は、4つより少なくてもよいし多くてもよいことを理解されたい。
【0021】
メモリコントローラ106は、キャッシュ階層104と、LLC144と、システムメモリ116と、の間のインターフェースとして動作する。したがって、キャッシュ階層104にキャッシュされるデータは、通常、「キャッシュライン」と称されるデータのブロックとして操作され、システムメモリ116の物理アドレスを使用して、メモリ階層にアドレス指定されるか、あるいは別様に配置される。いくつかの実施形態では、データの「ブロック」は、複数のキャッシュライン及び/又は他の情報を含んでもよい。キャッシュラインは、キャッシュ階層104及びLLC114からのメモリ要求に応じて、メモリコントローラ106によってシステムメモリ116からアクセスされる。同様に、変更されたデータ(すなわち、「ダーティデータ」又は「ダーティデータブロック」)を含むキャッシュラインがキャッシュ階層104から追い出され、したがって、システムメモリ116において更新される必要がある場合に、メモリコントローラ106は、このライトバックプロセスを管理する。
【0022】
キャッシュ階層104は、2つ以上のレベルのキャッシュを含む。図示した例では、キャッシュ階層104は、3つのキャッシュレベル、すなわち、レベル1(L1)、レベル2(L2)及びレベル3(L3)を含む。L1の場合、演算複合機102は、それぞれが、プロセッサコア111、112、113、114のうち対応する何れかに関連付けられ、L1キャッシュ121、122、123、124として示されている、各処理コアのための小規模プライベートキャッシュを実装する。上述したように、いくつかの実施形態では、キャッシュ階層104は、LLC144を更に含む。
【0023】
L2の場合、演算複合機102は、プロセッサコア111、112、113、114にそれぞれ対応するL2キャッシュ131、132、133、134として示されている、各プロセッサコアのためのより大規模なプライベートキャッシュを実装する。L2キャッシュ131~134のそれぞれは、その対応するプロセッサコアに対してプライベートであるが、キャッシュ階層104は、L2キャッシュ131~134間のコヒーレンシを維持するように動作する。L2キャッシュ131~134は、いくつかの実施形態では、直接対応キャッシュ(direct mapped caches、ダイレクトマッピング方式)又はn-wayセットアソシアティブ・キャッシュ(n-way set associative caches、n-wayセットアソシアティブ方式)であり得る。
【0024】
L3キャッシングレベルの場合、キャッシュ階層104は、演算複合機102のプロセッサコアによって共有され、したがって、少なくともL2キャッシュ131~134によって共有されるL3キャッシュ140を実装する。L3キャッシュ140は、L3キャッシュ140からのデータの追い出しを制御するために、L3コントローラ142及びデータ追い出しモジュール145を実装する。
【0025】
L3キャッシュ140は、L2キャッシュ131~134のキャッシュラインのアドレス及び状態情報を記憶するためのプローブ情報148を記憶するメモリ(図示せず)を更に含む。この目的のために、プローブ情報148を記憶するメモリは、キャッシュ、アレイ、テーブル、ラッチ、フロップ又は他の記憶構成として実装される。プローブ情報148は、L2キャッシュ131~134のうち何れかに存在する対応するキャッシュラインに関する情報を追跡する。対応するキャッシュラインのためのプローブ情報148として記憶される情報は、例えば、キャッシュラインの物理アドレス(又はその一部分)及びL2キャッシュにおけるキャッシュラインの状態を含む。
【0026】
プローブ情報148は、概して、キャッシュ階層104のキャッシュによって生成されたキャッシュプローブ(図示せず)に応答するために、L3キャッシュ140によって用いられる。特に、L1キャッシュ121~124及びL2キャッシュ131~134は、L3キャッシュ140と共に、メモリ・コヒーレンシ・プロトコル(本明細書では単に「コヒーレンシ・プロトコル」と称する)を実装する。各キャッシュラインは、コヒーレンシ・プロトコルによって管理される対応するコヒーレンシ情報に関連付けられて、キャッシュラインのコヒーレンシ状態、及び、コヒーレンシ・プロトコルの規則の下でキャッシュラインをどのように扱うことができるかを示す。例えば、コヒーレンシ・プロトコルは、キャッシュラインが、対応するキャッシュにおいて変更され得ることを示す「変更済み」、対応するキャッシュラインが他のプロセッサコアに関連付けられたキャッシュにおいて変更され得ないことを示す「排他的」、及び、キャッシュラインがキャッシュ階層104の複数のキャッシュによって共有され、したがって、変更されるべきでないことを示す「共有」等のコヒーレンシ状態を確立してもよい。特定のイベントのために、処理システムによって実装される特定のコヒーレンシ・プロトコルによって定義されるように、キャッシュ階層104のキャッシュは、キャッシュプローブを発行して、他のキャッシュにおける所定のキャッシュラインのコヒーレンシ・ステータスを識別し得る。例えば、キャッシュラインのコヒーレンシ・ステータスを共有から排他的へと変更する前に、キャッシュがキャッシュプローブを発行して、キャッシュラインが任意の他のキャッシュに記憶されているかどうかを識別し、記憶されている場合、キャッシュラインを記憶するキャッシュにおけるキャッシュラインのコヒーレンシ・ステータスを識別し得る。プローブへの応答に基づいて、プローブを発行したキャッシュは、コヒーレンシ・プロトコルの規則の下で必要とされるような適切な動作を取り得る。例えば、他のキャッシュがキャッシュラインを記憶していない場合、キャッシュは、キャッシュラインの状態を「共有」から「排他的」へと変更し得る。
【0027】
上述したように、プローブ情報148を記憶するメモリは、キャッシュ階層104のプライベートキャッシュのそれぞれに記憶されたキャッシュラインを示す情報を記憶する。いくつかの実施形態では、プローブ情報148を記憶するメモリ又は関連するメモリ構造は、対応するキャッシュの代わりに、キャッシュラインのコヒーレンシ情報を記憶し得る。キャッシュプローブに応じて、L3コントローラ142は、プローブ情報148を記憶するメモリにアクセスして、キャッシュ階層104のキャッシュの何れかがキャッシュラインを記憶しているかどうかを決定し、記憶している場合には、対応するコヒーレンシ情報を決定する。L3コントローラ142は、プローブ情報148に基づいて、キャッシュプローブに応答する。
【0028】
いくつかの実施形態では、L1キャッシュ121、122、123、124、L2キャッシュ131、132、133、134、及び、L3キャッシュ140は包括的である。すなわち、外部レベルキャッシュは、内部レベルキャッシュの内容を保持する。内部レベルキャッシュへの全てのフィル(すなわち、データをキャッシングするためのキャッシング書き込み)も、外部レベルに書き込まれる。したがって、L1 121へのフィルは、L2 131及びL3キャッシュ140に書き込まれる。しかしながら、LLC144は、L3キャッシュ140に排他的である。排他性を維持するために、L3キャッシュ140へのフィルは、LLC144に書き込まれない。代わりに、L3キャッシュ140ビクティムデータのみがLLC144に書き込まれ、したがって、L3キャッシュ140及びLLC144内のデータが排他的であることが確実にされる。
【0029】
実行において、プロセッサコア111、112、113又は114のうち1つ以上のための実行パイプラインは、L1 121データキャッシュにアクセスする負荷(ロード)又は記憶を実行する。データが、L1 121データキャッシュ内に存在しない場合(すなわち、L1 121におけるミス)、ミスは、L2キャッシュ131に進む。データが、L2キャッシュ131にも存在しない場合、ミスは、L3キャッシュ140に進む。L3コントローラ142は、L3キャッシュ140もデータを有していないと決定した際に、コヒーレント相互接続160を介して、ミスの指標をLLC144に送信する。LLCコントローラ150は、LLC144におけるミスを決定した際に、システムメモリ116(例えば、DRAM)からデータをフェッチするための要求をメモリコントローラ106に送信する。
【0030】
メモリコントローラ106からのデータは、LLC144をバイパスし、L3キャッシュ140に直接送信される。これにより、L3キャッシュ140、L2キャッシュ131、L1データキャッシュ121にデータが充填される。
【0031】
データが、L1 121データキャッシュに充填された場合に、その付加により、L1 121データキャッシュ内の別のキャッシュラインを変位させる(すなわち、追い出させる)場合がある。追い出されたキャッシュラインがダーティであった場合、キャッシュラインは、L2 131キャッシュに送信される。同様に、データがL2 131キャッシュに充填された場合に、それにより、L3キャッシュ140に書き込まれるダーティなL2 131キャッシュの追い出しを引き起こす可能性がある。また、L3キャッシュ140のフィルは、データ追い出しモジュール145に、L3キャッシュ140追い出しを処理させ得る。従来、L3キャッシュ140から追い出されたクリーンビクティムデータとダーティビクティムデータとの両方が、コヒーレント相互接続160を介して、LLC144に伝搬される。この書き込みが行われるのは、LLC144が排他的であり、L3キャッシュ140から追い出された全てのデータをキャッシュするからである。しかしながら、コヒーレント相互接続160を介して、L3キャッシュ140からLLC144にL3キャッシュ140ビクティムデータを伝搬することは、かなりのシステム資源及び電力を消費する場合がある。
【0032】
コヒーレント相互接続160にわたるデータトラフィックを低減するために、データ追い出しモジュール145は、ダーティビクティムデータを有するキャッシュラインを、コヒーレント相互接続160を介してLLC144に伝搬することによって、ダーティビクティムデータのみをL3キャッシュ140から追い出す。コヒーレント相互接続160に負荷をかけることなく、LLC144においてL3キャッシュ140から追い出されたクリーンデータをキャッシングすることを容易にするために、データ追い出しモジュール145は、クリーンデータがシステムメモリ116内の元のデータのコピーであるので、クリーンデータ自体ではなく、クリーンビクティムデータのビクティムアドレス(すなわち、システムメモリ116内の元のデータのアドレス)のみをLLC144に送信する。したがって、データ追い出しモジュール145は、システムメモリ116からLLC144に対して直接に、クリーンデータを再フェッチすることを開始し、コヒーレント相互接続160を介してL3キャッシュ140からLLC144にクリーンデータを伝搬するのをバイパスする。
【0033】
いくつかの実施形態では、L3コントローラ142は、LLC144が包含的LLCであるか排他的LLCであるかにかかわらず、L3キャッシュ140ビクティムアドレスをシステムプローブフィルタに送信する。L3キャッシュ140ビクティムアドレスは、通常、システムプローブフィルタに送信されて、処理システムにわたってキャッシュコヒーレンスを維持する。したがって、データ追い出しモジュール145は、プローブ情報148にアクセスして、クリーンビクティムデータのL3キャッシュ140ビクティムアドレスを決定し、クリーンビクティムデータのL3キャッシュ140ビクティムアドレスをLLC144に送信する。L3キャッシュ140ビクティムアドレスをLLC144に伝搬することは、クリーンビクティムデータ自体を伝搬することと比較して、帯域幅及び電力の消費が比較的少ない。LLC144においてL3キャッシュ140ビクティムアドレスを受信したことに応じて、LLCコントローラ150は、ビクティムアドレスに関連付けられたデータを再フェッチするために、L3キャッシュ140ビクティムアドレスをシステムメモリ116読み取り要求に変換する。メモリコントローラ106は、要求されたデータをシステムメモリ116から返し、返されたデータをLLC144にキャッシュする。LLC144が満たされた際に、LLCコントローラ150は、メモリコントローラ106を介してダーティビクティムデータをシステムメモリ116に書き戻すことによって、LLC144から任意のダーティビクティムデータを追い出す。このようにして、データ追い出しモジュール145は、クリーンデータの追い出しのために、クリーンビクティムデータをL3キャッシュ140からLLC144に伝搬するのではなく、クリーンビクティムデータのアドレス(複数可)のみをLLC144に伝搬するために、キャッシュ間の通信トラフィックを低減し、実質的により少ないシステム資源及び電力を消費する。
【0034】
図2は、いくつかの実施形態による、システムメモリ116からLLC144へのクリーンビクティムデータ210の再フェッチを開始するデータ追い出しモジュール145を示す
図1の処理システム100の一部200を示す図である。図示した例では、データ追い出しモジュール145は、上述したように、プローブ情報148からクリーン追い出しデータのアドレス205を取得することによるL3キャッシュ140からのクリーンデータ追い出しを示す。データ追い出しモジュール145は、クリーン追い出しデータのアドレス205をLLC144に送信する。いくつかの実施形態では、データ追い出しモジュール145は、コヒーレント相互接続160を介してアドレス205をLLC144に伝搬することによって、クリーン追い出しデータのアドレス205をLLC144に送信する。次に、LLC144は、クリーンビクティムデータ210を読み取るための読み取り要求(図示せず)を生成し、メモリコントローラ106を介して、LLC144に、クリーンビクティムデータ210のシステムメモリ116からの読み取りを要求する。読み取り要求に応じて、クリーンビクティムデータ210が、キャッシュデータとして記憶するために、LLC144に返される。このようにして、LLC144は、L3キャッシュ140からのクリーンビクティムデータ210の伝搬をバイパスして、システムメモリ116(例えば、DRAM)から直接、クリーンビクティムデータ210を再フェッチする。
【0035】
いくつかの実施形態では、メモリインターフェースがビジーであると決定された場合又はLLC144のヒット率が低いと決定された場合、クリーンビクティムデータ210は、LLC144に挿入されない。このような場合、L3キャッシュ140からのクリーンデータブロックの追い出しに応じて、データ追い出しモジュール145は、LLC144のヒット率が所定の閾値を下回っているという決定、又は、システムメモリ116とLLC144との間のインターフェースが、現在、データをフェッチするための所定の閾値を下回る記憶容量を有するという決定に基づいて、クリーンデータブロックをLLC144に記憶するのをバイパスする。
【0036】
いくつかの実施形態では、L3キャッシュ140からのクリーンデータブロックの追い出しに応じて、データ追い出しモジュール145は、L3キャッシュ140とLLC144との間のコヒーレント相互接続160が、現在、データを伝搬するための所定の閾値を上回る記憶容量を有するという決定、又は、現在の電力使用量レベルが電力使用量の所定の閾値レベルを下回っているという決定に基づいて、L3キャッシュ140からLLC144へのクリーンデータブロックの伝搬を開始する。
【0037】
図3及び
図4は、いくつかの実施形態による、L3キャッシュからキャッシュデータを追い出す方法300を示している。ステップ302において、
図1のL3コントローラ142は、第1のキャッシュデータを記憶する要求を受信する。ステップ304において、L3コントローラ142は、第2のキャッシュデータを追い出す必要性が存在するかどうかを決定する。いくつかの実施形態では、L3コントローラ142は、L3キャッシュ140のためのキャッシュ記憶容量の閾値が限界を超えているどうかを決定する。第2のキャッシュデータを追い出す必要がある場合、ステップ306において、データ追い出しモジュール145は、第2のキャッシュデータがクリーンキャッシュデータであるかどうかを決定し、そうでない場合、L3コントローラ142はステップ312に進む。いくつかの実施形態では、データ追い出しモジュール145は、プローブ情報148にアクセスして、第2のキャッシュデータのキャッシュラインが最初にキャッシュされてから変更されたかどうかを決定する。第2のキャッシュデータがクリーンである(例えば、第2のキャッシュデータが、最初にキャッシュされてから変更されていない)場合、ステップ308において、データ追い出しモジュール145は、第2のキャッシュデータのシステムメモリアドレスをLLC144に送信することによって、L3キャッシュ140からの第2のクリーンキャッシュデータの追い出しを示し、そうでない場合、データ追い出しモジュール145は、
図4のステップ314に進む。いくつかの実施形態では、データ追い出しモジュール145は、プローブ情報148にアクセスして第2のキャッシュデータのシステムメモリアドレスを取得し、コヒーレント相互接続160を介して第2のキャッシュデータのシステムメモリアドレスをLLC144に伝搬する。ステップ310において、LLCコントローラ150は、データ追い出しモジュール145から受信された第2のキャッシュデータのシステムメモリアドレスを使用して、システムメモリ116から第2のキャッシュデータをフェッチし(すなわち、LLCコントローラ150は、システムメモリ116から、第2のクリーンキャッシュデータを再フェッチし)、フェッチされた第2のキャッシュデータをLLC144に記憶する。ステップ312において、L3コントローラは、第1のキャッシュデータをL3キャッシュ140に記憶する。
【0038】
図4のステップ314において、データ追い出しモジュール145は、第2のキャッシュデータがダーティであると決定し、そうでない場合、エラーを通知する。ステップ316において、データ追い出しモジュール145は、第2のダーティキャッシュデータのキャッシュラインをLLC144に送信することによって、第2のダーティキャッシュデータをL3キャッシュ140から追い出す。いくつかの実施形態では、データ追い出しモジュール145は、コヒーレントインターフェース160を介して、第2のダーティキャッシュデータのキャッシュラインをLLC144に伝搬する。ステップ318において、LLCコントローラは、伝搬された第2のダーティキャッシュデータを受信し、第2のダーティキャッシュデータのLLC144における記憶を開始する。
【0039】
したがって、クリーンキャッシュデータがL3キャッシュ140から追い出されるために、データ追い出しモジュール145は、システムメモリアドレスのみをLLC144に送信する(すなわち、追い出されたクリーンキャッシュデータの全体ではない)。このようにして、データ追い出しモジュール145は、有利なことに、かなりのシステム資源、時間及び電力を節約する。
【0040】
図5は、いくつかの実施形態による、クリーンデータの追い出しをラストレベルキャッシュ(LLC)に再フェッチするための方法を示すフロー図である。ブロック502において、クリーンデータブロックが、処理システムの多重キャッシュ階層内の中間レベルキャッシュから追い出される。例えば、データ追い出しモジュール145は、L3キャッシュ140に記憶されたデータのクリーンデータ部分を追い出し、LLC144における追い出された部分のキャッシングを開始する。データ追い出しモジュール145は、クリーンデータ部分のアドレスをLLC144に送信する。
【0041】
ブロック504において、LLCは、追い出されたクリーンデータブロックをLLCに伝搬するのをバイパスする。ブロック506において、LLC144は、追い出されたクリーンデータブロックのアドレスにアクセスする。例えば、LLC144は、データ追い出しモジュール145からアドレスを受信する。
【0042】
ブロック508において、LLCは、アクセスされたアドレスに基づいて、システムメモリからの追い出されたクリーンデータブロックのフェッチを開始する。例えば、LLC144は、システムメモリ116からのクリーンデータブロックの読み取りを、開始する。このようにして、データ追い出しモジュール145は、有利なことに、キャッシュ間のトラフィックを低減させ、L3キャッシュ140からLLC144に追い出されたキャッシュデータをキャッシングする際に、システム資源及び電力の消費が実質的に少なくなり、且つ、速度が上がる。
【0043】
いくつかの実施形態では、上記の装置及び技術は、
図1~
図5を参照して上述した処理システム等の1つ以上の集積回路(IC)デバイス(集積回路パッケージ又はマイクロチップとも称される)を含むシステムに実装されている。電子設計自動化(electronic design automation、EDA)及びコンピュータ支援設計(computer aided design、CAD)ソフトウェアツールは、これらのICデバイスの設計及び製造に使用することができる。これらの設計ツールは、典型的には、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計するか又は適応させるためのプロセスの少なくとも一部を実行するために、1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作するための、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含み得る。設計ツール又は製造ツールを表すソフトウェア命令は、典型的には、コンピューティングシステムにアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上の段階を表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶され、そこからアクセスされる。
【0044】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0045】
いくつかの実施形態では、上述した技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装される。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶されるか、別の方法で明確に具体化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、命令及び特定のデータを含んでもよく、当該命令及び特定のデータは、1つ以上のプロセッサによって実行されると、上述した技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する。非一時的なコンピュータ可読記憶媒体は、例えば、磁気又は光ディスク記憶デバイス、フラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス(単数又は複数)等を含み得る。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈され若しくは別の方法で実行可能な他の命令形式で実装可能である。
【0046】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0047】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【手続補正書】
【提出日】2024-08-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
キャッシュ階層の中間レベルキャッシュからの第1のクリーンデータブロックの追い出しに応じて、前記第1のクリーンデータブロックのアドレスにアクセスすることと、
前記アドレスを使用して、システムメモリからラストレベルキャッシュ(LLC)への前記第1のクリーンデータブロックのフェッチを開始することと、を含む、
方法。
【請求項2】
前記第1のクリーンデータブロックの前記アドレスを、前記中間レベルキャッシュから前記LLCに伝搬することを含む、
請求項1の方法。
【請求項3】
前記中間レベルキャッシュからの第1のダーティデータブロックの追い出しに応じて、前記第1のダーティデータブロックを前記中間レベルキャッシュから前記LLCに伝搬することを含む、
請求項1又は2の方法。
【請求項4】
前記第1のダーティデータブロックは、書き込み命令又は変更命令のうち1つ以上を介して前記キャッシュ階層の1つ以上のキャッシュに書き込まれたデータを含む、
請求項1の方法。
【請求項5】
前記中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、前記LLCのヒット率が所定の閾値を下回っているという決定、又は、前記システムメモリと前記LLCとの間のインターフェースが、現在、データをフェッチするための所定の閾値を下回る記憶容量を有するという決定に基づいて、前記第2のクリーンデータブロックを前記LLCに記憶するのをバイパスすることを含む、
請求項1の方法。
【請求項6】
前記中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、前記中間レベルキャッシュと前記LLCとの間のコヒーレント相互接続が、現在、データを伝搬するための所定の閾値を上回る記憶容量を有するという決定、又は、現在の電力使用量レベルが電力使用量の所定の閾値レベルを下回っているという決定に基づいて、前記第2のクリーンデータブロックを前記中間レベルキャッシュから前記LLCに伝搬することを含む、
請求項1の方法。
【請求項7】
前記システムメモリから前記第1のクリーンデータブロックのフェッチを開始することは、メモリコントローラにアクセスすることを含む、
請求項1の方法。
【請求項8】
前記中間レベルキャッシュから前記LLCに前記第1のクリーンデータブロックを伝搬するのをバイパスすることを含む、
請求項1の方法。
【請求項9】
プロセッサと、
システムメモリと、
多重キャッシュ階層と、
キャッシュコントローラと、を備え、
前記キャッシュコントローラは、
前記多重キャッシュ階層内の中間レベルキャッシュからの第1のクリーンデータブロックの追い出しに応じて、前記第1のクリーンデータブロックのアドレスにアクセスし、
前記アドレスを使用して、前記システムメモリからラストレベルキャッシュ(LLC)への前記第1のクリーンデータブロックのフェッチを開始する、
処理システム。
【請求項10】
前記キャッシュコントローラは、
前記第1のクリーンデータブロックの前記アドレスを、前記中間レベルキャッシュから前記LLCに伝搬する、
請求項9の処理システム。
【請求項11】
前記キャッシュコントローラは、
前記中間レベルキャッシュからの第1のダーティデータブロックの追い出しに応じて、前記第1のダーティデータブロックを前記中間レベルキャッシュから前記LLCに伝搬する、
請求項9又は10の処理システム。
【請求項12】
前記第1のダーティデータブロックは、書き込み命令又は変更命令のうち1つ以上を介して前記多重キャッシュ階層の1つ以上のキャッシュに書き込まれたデータを含む、
請求項11の処理システム。
【請求項13】
前記キャッシュコントローラは、
前記中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、前記LLCのヒット率が所定の閾値を下回っているという決定、又は、前記システムメモリと前記LLCとの間のインターフェースが、現在、データをフェッチするための所定の閾値を下回る記憶容量を有するという決定に基づいて、前記第2のクリーンデータブロックを前記LLCに記憶するのをバイパスする、
請求項11の処理システム。
【請求項14】
前記キャッシュコントローラは、
前記中間レベルキャッシュからの第2のクリーンデータブロックの追い出しに応じて、前記中間レベルキャッシュと前記LLCとの間のコヒーレント相互接続が、現在、データを伝搬するための所定の閾値を上回る記憶容量を有するという決定、又は、現在の電力使用量レベルが電力使用量の所定の閾値レベルを下回っているという決定に基づいて、前記第2のクリーンデータブロックを前記中間レベルキャッシュから前記LLCに伝搬する、
請求項11の処理システム。
【請求項15】
前記キャッシュコントローラは、
前記中間レベルキャッシュから前記LLCに前記第1のクリーンデータブロックを伝搬するの
をバイパスする、
請求項9の処理システム。
【国際調査報告】