(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6776482
(24)【登録日】2020年10月9日
(45)【発行日】2020年10月28日
(54)【発明の名称】少なくとも3つのキャッシングレベルを有するキャッシュ階層のハイブリッド低レベルキャッシュインクルージョンポリシー
(51)【国際特許分類】
G06F 12/121 20160101AFI20201019BHJP
G06F 12/0897 20160101ALI20201019BHJP
【FI】
G06F12/121
G06F12/0897 105
【請求項の数】19
【全頁数】17
(21)【出願番号】特願2020-521504(P2020-521504)
(86)(22)【出願日】2018年8月24日
(86)【国際出願番号】US2018047992
(87)【国際公開番号】WO2019083599
(87)【国際公開日】20190502
【審査請求日】2020年6月16日
(31)【優先権主張番号】15/790,743
(32)【優先日】2017年10月23日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ポール モイヤー
【審査官】
後藤 彰
(56)【参考文献】
【文献】
特開2015−158798(JP,A)
【文献】
米国特許出願公開第2016/0085677(US,A1)
【文献】
米国特許出願公開第2013/0111139(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/121
G06F 12/0897
(57)【特許請求の範囲】
【請求項1】
データ処理システムであって、
1つ以上のプロセッサコアと、
キャッシュ階層と、を備え、
前記キャッシュ階層は、
第1レベルキャッシュと、
第2レベルキャッシュと、
第3レベルキャッシュと、
キャッシュ階層制御ロジックと、を備え、
前記キャッシュ階層制御ロジックは、
前記第1レベルキャッシュにキャッシュされたキャッシュラインの各々が、前記第2レベルキャッシュ及び前記第3レベルキャッシュのうち少なくとも一方にキャッシュされた前記キャッシュラインのコピーを有するキャッシングポリシーであって、前記第3レベルキャッシュからのキャッシュラインのエビクションが、前記キャッシュラインが前記第2レベルキャッシュに存在しない場合に、前記キャッシュラインのコピーを前記第1レベルキャッシュからエビクトするように前記キャッシュ階層制御ロジックをトリガするキャッシングポリシーを実施するように構成されている、
データ処理システム。
【請求項2】
前記キャッシングポリシーは、前記第2レベルキャッシュからのキャッシュラインのエビクションが、前記第1レベルキャッシュからの前記キャッシュラインのコピーのエビクションをトリガしないことをさらに提供する、
請求項1のデータ処理システム。
【請求項3】
前記キャッシングポリシーは、
前記第3レベルキャッシュからのキャッシュラインのエビクションが、
前記キャッシュラインのコピーが前記第2レベルキャッシュに存在する場合に、前記キャッシュラインのコピーを前記第1レベルキャッシュ内に維持する、ように前記キャッシュ階層ロジックをトリガすることをさらに提供する、
請求項1のデータ処理システム。
【請求項4】
前記第3レベルキャッシュは、プレゼンスフィールドの第1セットにアクセスして、前記第3レベルキャッシュの何れのキャッシュラインが前記第1レベルキャッシュ又は前記第2レベルキャッシュにも記憶されているのかを識別する第1プレゼンス情報を記憶する、
請求項3のデータ処理システム。
【請求項5】
前記第1プレゼンス情報は、対応するキャッシュラインが前記第1レベルキャッシュ又は前記第2レベルキャッシュの何れに存在するかどうかのみを識別する、
請求項4のデータ処理システム。
【請求項6】
前記第1プレゼンス情報は、対応するキャッシュラインが前記第1レベルキャッシュに存在するかどうかと、前記対応するキャッシュラインが前記第2レベルキャッシュに存在するかどうかと、を識別する、
請求項4のデータ処理システム。
【請求項7】
前記キャッシュ階層は、複数の第1レベルキャッシュと、複数の第2レベルキャッシュと、を含み、
前記第1プレゼンス情報は、対応するキャッシュラインが前記複数の第1レベルキャッシュのうち何れの第1レベルキャッシュに記憶されているか、又は、対応するキャッシュラインが前記複数の第2レベルキャッシュのうち何れの第2レベルキャッシュに記憶されているかを識別する、
請求項4のデータ処理システム。
【請求項8】
前記プレゼンスフィールドの第1セットは、前記第3レベルキャッシュのタグアレイの一部である、
請求項4のデータ処理システム。
【請求項9】
前記第1レベルキャッシュは、プレゼンスフィールドの第2セットにアクセスして、前記第1レベルキャッシュ内の何れのキャッシュラインが前記第2レベルキャッシュ又は前記第3レベルキャッシュにも記憶されているかを識別する第2プレゼンス情報を記憶する、
請求項4のデータ処理システム。
【請求項10】
前記第2プレゼンス情報は、対応するキャッシュラインが前記第2レベルキャッシュ又は前記第3レベルキャッシュの何れに存在するかどうかのみを識別する、
請求項9のデータ処理システム。
【請求項11】
前記第2プレゼンス情報は、対応するキャッシュラインが前記第2レベルキャッシュに存在するかどうかと、前記対応するキャッシュラインが前記第3レベルキャッシュに存在するかどうかと、を識別する、
請求項9のデータ処理システム。
【請求項12】
前記キャッシュ階層は、複数の第2レベルキャッシュを含み、
前記第2プレゼンス情報は、対応するキャッシュラインが前記複数の第2レベルキャッシュのうち何れの第2レベルキャッシュに記憶されているかを識別する、
請求項9のデータ処理システム。
【請求項13】
前記プレゼンスフィールドの第2セットは、前記第1レベルキャッシュのタグアレイの一部である、
請求項9のデータ処理システム。
【請求項14】
キャッシュラインをメモリからフェッチすることと、
キャッシュ階層のキャッシュ階層制御ロジックによって、前記キャッシュラインを前記キャッシュ階層の第1レベルキャッシュに記憶することと、
前記キャッシュ階層制御ロジックによって、前記第1レベルキャッシュ内のキャッシュラインの各々が前記キャッシュ階層の第2レベルキャッシュ又は第3レベルキャッシュのうち少なくとも一方にも記憶されるキャッシングポリシーに応じて、前記キャッシュラインを前記第2レベルキャッシュに記憶することと、
前記キャッシュ階層制御ロジックによって、前記キャッシュラインを前記第1レベルキャッシュ内に維持しながら、前記キャッシュラインを前記第2レベルキャッシュからエビクトすることと、
前記キャッシュ階層制御ロジックによって、前記キャッシュラインを前記第3レベルキャッシュからエビクトすることと、
前記キャッシュ階層制御ロジックによって、前記キャッシュラインが前記第2レベルキャッシュ内に存在するかどうかを判別することと、
前記キャッシングポリシーに従う前記キャッシュ階層制御ロジックによって、前記第3レベルキャッシュからの前記キャッシュラインのエビクションに応じて、及び、前記キャッシュラインが前記第2レベルキャッシュ内に存在しないことを判別したことに応じて、前記キャッシュラインを前記第1レベルキャッシュからエビクトすることと、を含み、
前記キャッシュラインを前記第2レベルキャッシュからエビクトすることは、
前記キャッシュラインを前記第3レベルキャッシュに記憶すること、又は、前記キャッシュラインの変更された値で前記メモリを更新すること、の何れかを含む、
方法。
【請求項15】
前記キャッシュ階層制御ロジックによって、前記キャッシュラインを前記第2レベルキャッシュに記憶することは、
前記キャッシュ階層制御ロジックによって、前記第1レベルキャッシュに記憶されたプレゼンス情報に基づいて、前記第1レベルキャッシュ及び前記第2レベルキャッシュの何れも前記キャッシュラインを現在記憶していないことを判別することであって、前記プレゼンス情報は、前記第1レベルキャッシュに記憶されたキャッシュライン毎に、前記キャッシュラインが前記第2レベルキャッシュ又は前記第3レベルキャッシュのうち少なくとも一方にも記憶されているかどうかを識別する、ことを含む、
請求項14の方法。
【請求項16】
前記プレゼンス情報は、前記キャッシュラインが前記第2レベルキャッシュに記憶されるか、又は、前記第3レベルキャッシュに記憶されているかどうかを識別する、
請求項15の方法。
【請求項17】
前記キャッシュ階層は、複数の第2レベルキャッシュを含み、
前記プレゼンス情報は、前記複数の第2レベルキャッシュのうち、前記キャッシュラインを記憶する特定の第2レベルキャッシュを識別する、
請求項16の方法。
【請求項18】
前記キャッシュラインが前記第2レベルキャッシュ内に存在するかどうかを判別することは、前記第3レベルキャッシュに記憶されたプレゼンス情報に基づいて行われ、前記プレゼンス情報は、前記第3レベルキャッシュに記憶されたキャッシュライン毎に、前記キャッシュラインが前記第2レベルキャッシュ内にも存在するかどうかを示している、
請求項14の方法。
【請求項19】
前記キャッシュ階層は、複数の第2レベルキャッシュを含み、
前記プレゼンス情報は、前記複数の第2レベルキャッシュのうち、前記キャッシュラインを記憶する特定の第2レベルキャッシュを識別する、
請求項18の方法。
【発明の詳細な説明】
【背景技術】
【0001】
処理システムは、多くの場合、1つ以上のプロセッサコアによるアクセスに利用可能な複数のレベルのキャッシュを有するキャッシュ階層を利用する。3つの以上のキャッシュレベルを有するキャッシュ階層に関して、従来の処理システムでは、最高レベルのキャッシュ(例えば、L1キャッシュ)でキャッシュされたアドレスのデータに対して、3つのキャッシュポリシー((1)データは、他のキャッシュにコピー又は含まれることが必要とされない、(2)データのコピーは、常に、2番目に高いレベルのキャッシュ(例えば、L2キャッシュ)に含まれることが必要とされ、2番目に高いレベルのキャッシュからキャッシュされたデータのコピーをエビクトすると、同様に、キャッシュされたデータを最高レベルのキャッシュからエビクトするために無効メッセージが送信される、又は、(3)データのコピーは、常に、3番目に高いレベルのキャッシュ(例えば、L3キャッシュ)に含まれることが必要とされ、3番目に高いレベルのキャッシュからエビクトすると、同様に、キャッシュされたデータを最高レベルのキャッシュからエビクトするために無効メッセージが送信される)のうち1つが必要とされる。第1ポリシーは、他のキャッシュレベルでキャッシュされたデータのコピーを必要としないことによって、キャッシュされたデータは、当該最高レベルのキャッシュにアクセスしないコンポーネントにアクセスできない可能性があり、又は、低レベルキャッシュからキャッシュされたデータが存在しないことによって、キャッシュされたデータが見つけられ及びアクセスされる前に過剰なキャッシュミスが発生し、これにより、システムパフォーマンスに影響を及ぼす可能性があるという点で問題になる。後の2つのポリシーは、過剰な無効メッセージング及びキャッシュラインのエビクトにつながり、システムパフォーマンスに悪影響を及ぼすという点で問題になる。
【0002】
本開示は、より良好に理解することができ、その多くの特徴及び利点は、添付の図面を参照することによって当業者に明らかになる。異なる図面における同じ符号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態による、ハイブリッド低レベルキャッシュインクルージョンポリシーを有するキャッシュ階層を使用するデータ処理システムのブロック図である。
【
図2】いくつかの実施形態による、
図1のデータ処理システムのキャッシュ階層を示すブロック図である。
【
図3】いくつかの実施形態による、データ処理システムのキャッシュ階層の第1レベルキャッシュ内にキャッシュラインをインストールするためのハイブリッド低レベルキャッシュインクルージョンポリシーの態様を示すフロー図である。
【
図4】いくつかの実施形態による、データ処理システムのキャッシュ階層の第2レベルキャッシュからキャッシュラインをエビクトするためのハイブリッド低レベルキャッシュインクルージョンポリシーの態様を示すフロー図である。
【
図5】いくつかの実施形態による、データ処理システムのキャッシュ階層の第3レベルキャッシュからキャッシュラインをエビクトするためのハイブリッド低レベルキャッシュインクルージョンポリシーの態様を示すフロー図である。
【発明を実施するための形態】
【0004】
図1〜
図5は、3つの以上のキャッシュレベルを有するキャッシュ階層における効率的なデータキャッシングのシステム及び方法を示す図である。いくつかの実施形態では、キャッシュ階層の様々なキャッシュの制御ロジックは、最高レベルのキャッシュでキャッシュされたキャッシュラインが、従来のキャッシングポリシーよりも少ないキャッシュ間メッセージング及びエビクションを提供しながら、キャッシュ階層の他の場所に少なくとも1つのコピーを有することを確実にする、ハイブリッド低位レベルキャッシュインクルージョンポリシーを実施するために一緒に動作する。本明細書でより詳細に説明するように、本明細書で「ハイブリッド低位レベルキャッシュインクルージョンポリシー」と呼ばれるこのキャッシングポリシーは、以下の少なくとも3つのガイドラインを実施する。第1に、第1レベルキャッシュ(例えば、レベル1(L1)キャッシュ)に存在するキャッシュラインは、第2レベルキャッシュ(例えば、レベル2(L2)キャッシュ)、又は、第3レベルキャッシュ(例えば、レベル3(L3)のキャッシュ)のうち少なくとも一方に存在する必要がある。第2に、第2レベルキャッシュからエビクトされたキャッシュラインは、第1レベルキャッシュから同じキャッシュラインのエビクションを必要としない。第3に、第3レベルキャッシュからのキャッシュラインのエビクションは、当該キャッシュラインが第2レベルキャッシュ内にも存在しない場合に、第1レベルキャッシュからの当該キャッシュラインのエビクションを必要とする。これは、システムが、キャッシュラインにアクセスするために、第2レベルキャッシュ及び第3レベルキャッシュにおいて既に検索を行っている場合に、上記のキャッシングポリシーによって、システムが、求められるキャッシュラインが第1レベルキャッシュ内にあるかどうかを知ることが保証されるという点で有利になり得る。本明細書に見られるように、キャッシュ内に「存在する」キャッシュラインは、キャッシュに記憶されることと、当該キャッシュ内で有効な状態を有することとの両方が行われるコピーを指すことに留意されたい。したがって、キャッシュで「無効」又は同様の状態がマークされているキャッシュラインのコピーは、当該キャッシュに「存在する」とはみなされない。
【0005】
図1は、少なくともいくつかの実施形態による、ハイブリッド低レベルキャッシュインクルージョンポリシーを使用する処理システム100を示す図である。処理システム100は、計算複合体(compute complex)102と、キャッシュ階層104と、メモリコントローラ(MC)106と、サウスブリッジ108と、を含む。計算複合体102は、4つのプロセッサコア111,112,113,114等の1つ以上のプロセッサコアを含む。プロセッサコアは、例えば、中央処理装置(CPU)コア、グラフィックス処理ユニット(GPU)コア、デジタル信号プロセッサ(DSP)コア、又は、これらの組み合わせを含む。計算複合体102のプロセッサコアの数は、4つより少なくてもよいし、4つより多くてもよいことを理解されたい。
【0006】
メモリコントローラ106は、キャッシュ階層104とシステムメモリ116との間のインタフェースとして動作する。したがって、キャッシュ階層104にキャッシュされたデータは、通常、「キャッシュライン」と呼ばれるデータのブロックとして扱われ、システムメモリ116の物理アドレスを使用してメモリ階層にアドレス指定されるか、メモリ階層に配置される。キャッシュラインは、キャッシュ階層104からのメモリ要求に応じて、メモリコントローラ106によってシステムメモリ116からアクセスされ、キャッシュ階層104の1つ以上のキャッシュにインストール又はキャッシュされる。同様に、変更データを含むキャッシュラインがキャッシュ階層104からエビクトされ、システムメモリ116内で更新される必要がある場合、メモリコントローラ106は、このライトバック処理を管理する。サウスブリッジ108は、キャッシュ階層104と、メモリコントローラ106と、処理システム100の1つ以上の周辺機器118(例えば、ネットワークインタフェース、キーボード、マウス、ディスプレイ及び他の入出力デバイス)と、の間のインタフェースとして動作する。
【0007】
キャッシュ階層104は、第1レベル(L1)、第2レベル(L2)及び第3レベル(L3)のキャッシュを含む、3つ以上のレベルのキャッシュを含む。
図1の例示的な実施形態では3つのレベルのみを含むが、他の実施形態では、キャッシュ階層104は、4つ以上のキャッシングレベルを含む。各キャッシングレベルは、当該レベルにおいて1つ以上のキャッシュを含む。システム100では、計算複合体102は、プロセッサコア111〜114の対応する1つにそれぞれ関連付けられ、L1キャッシュ121,122,123,124として実装される、L1のプロセッサコア毎の小型のプライベートキャッシュを実装する。さらに、L2について、計算複合体102は、プロセッサコア111〜114にそれぞれ対応するL2キャッシュ131,132,133,134として実装される、プロセッサコア毎の大型のプライベートキャッシュを実装する。L2キャッシュ131〜134の各々は、対応するプロセッサコア専用であるが、キャッシュ階層104は、L2キャッシュ131〜134間のコヒーレンシを維持するように動作する。L2キャッシュ131〜134は、いくつかの実施形態では、ダイレクトマッピングされてもよいし、Nウェイセットアソシアティブキャッシュであってもよい。他の実施形態では、2つ以上のL1キャッシュが、単一のL2キャッシュを共有してもよい。L3キャッシングレベルについて、キャッシュ階層104は、計算複合体102のプロセッサコアによって共有され、ひいては、少なくともL2キャッシュ131〜134によって共有される、L3キャッシュ140を実装する。他の実施形態では、L3キャッシングレベルは、様々な組み合わせでL2キャッシュ131〜134によって共有される2つ以上のL3キャッシュを含むことができる。
【0008】
キャッシュ階層104のキャッシュは、プロセッサコア111〜114によるアクセス及び操作のためのデータをキャッシュするのに使用される。通常に、低レベル(例えば、L1)キャッシュは、小さい記憶容量及び短いアクセスレイテンシを有する傾向がある一方で、高レベル(例えば、L3)キャッシュは、大きい記憶容量及び長いアクセスレイテンシを有する傾向がある。したがって、キャッシュ階層104のキャッシュ階層制御ロジック142によって管理されるキャッシュラインエビクションプロセス及びキャッシュラインインストールプロセスによって、キャッシュの記憶容量及びアクセスレイテンシを考慮して、キャッシュデータの利用を良好に最適化するように、キャッシュレベルの異なるキャッシュ間でデータのキャッシュラインが転送される。
図1では、説明し易くするために、キャッシュ階層104の様々なキャッシュの外部の単一のブロックを使用して示されているが、典型的な実装では、キャッシュ階層制御ロジック142の個々のコンポーネントは、当該キャッシュのキャッシュ制御ロジックとして各キャッシュに実装され、ひいては、キャッシュ階層制御ロジック142は、キャッシュ階層104の各キャッシュに実装された個々のキャッシュ制御ロジックコンポーネントの集合を表すことを理解されたい。いくつかの実施形態では、キャッシュ階層制御ロジック142のロジックコンポーネントは、処理システム100を実装する1つ以上の集積回路(IC)チップ上にハードコードされたロジックとして実装される。他の実施形態では、キャッシュ階層制御ロジック142のロジックコンポーネントの一部又は全ては、プログラマブルロジックとして、構成可能ロジック(例えば、ヒューズ構成可能ロジック)として、命令のプログラムを実行する1つ以上のプロセッサとして、又は、これらの組み合わせとして実装される。
【0009】
動作において、キャッシュ階層制御ロジック142は、ハードコードされたロジック、プログラマブル要素(例えば、ヒューズ)、レジスタセット、又は、これらの組み合わせを介してキャッシュ階層制御ロジック142に対して定義された1つ以上のキャッシングポリシーに従って、システムメモリ116からフェッチされたデータのキャッシュラインをインストール及びエビクト(すなわち、除去)する。これらのキャッシングポリシーの1つは、他のキャッシングレベルにおけるキャッシュラインの存在状態に応じてキャッシュラインを選択的にエビクションするためのキャッシングポリシー144(本明細書では「ハイブリッド低レベルキャッシュインクルージョンポリシー144」と呼ばれる)を含む。ハイブリッド低レベルキャッシュインクルージョンポリシー144のガイドラインは、以下のように簡潔に要約される。(1)第1レベルキャッシュ(例えば、L1キャッシュ121〜124の何れか)に存在するキャッシュラインは、第2レベルキャッシュ(例えば、L2キャッシュ131〜134の何れか)又は第3レベルキャッシュ(例えば、L3キャッシュ140)のうち少なくとも1つにも存在する必要がある。(2)キャッシュラインが第2レベルキャッシュからエビクトされる場合、第1レベルキャッシュからのキャッシュラインのエビクションは必要ない(すなわち、キャッシュラインがL1キャッシュに存在する場合、キャッシュラインは、L2キャッシュからキャッシュラインがエビクトされた後でも、L1キャッシュ内に維持される)。(3)キャッシュラインが第3レベルキャッシュからエビクトされ、当該キャッシュラインがエビクトされた時点で第2レベルキャッシュ内に存在しない場合、キャッシュラインは、第1レベルキャッシュからもエビクトされる。この特定のキャッシングポリシーは、第2レベルキャッシュが第1レベルのキャッシュラインをエビクトする場合に、当該キャッシュラインをエビクトする必要がないので、パフォーマンスが向上する。包括的な第3レベル(L3)ポリシーでもこれを達成し得るが、キャッシュラインが重複するため、第3レベルキャッシュの容量が減少するであろう。
【0010】
図2は、いくつかの実施形態による、キャッシュ階層制御ロジック142と、キャッシュ階層104からのキャッシュと、の実施例より詳細に示す図である。上述したように、各キャッシュレベルは、そのレベル内に1つ以上のキャッシュを有する。しかしながら、説明を容易にするために、各キャッシュレベルからの単一のキャッシュ(すなわち、L1キャッシュ121、L2キャッシュ131及びL3キャッシュ140)のみが
図2に示されている。キャッシュ階層104の他のキャッシュも、以下に説明する方法で同様に構成されることが理解されるであろう。
【0011】
L1キャッシュ121は、タグアレイ202と、データアレイ204と、L1制御ロジック206と、を含む。データアレイ204は、複数のデータエントリ208又はラインを含み、これらの各々は、システムメモリ116からの対応するデータセット(すなわち、「キャッシュライン」)を記憶するように構成されている。タグアレイ202は、同様に、複数のタグエントリ209を含み、複数のタグエントリ209の各々は、データアレイ204の対応するデータエントリ208に関連付けられており、対応するエントリ208に記憶されたキャッシュラインに関する様々な情報(例えば、アドレスフィールド210内のキャッシュラインに関連するアドレス(又はその一部)及びステータスフィールド211内に記憶された1つ以上のステータスビット等)を記憶するように構成されている。L2キャッシュ131及びL3キャッシュ140は、同様に構成される。このように、L2キャッシュ131は、タグアレイ232と、データアレイ234と、L2制御ロジック236と、を含み、L3キャッシュ140は、タグアレイ242と、データアレイ244と、L3制御ロジック246と、を含む。データアレイ234,244の各々は、データのキャッシュラインを記憶するために、複数のデータエントリ238,248を含み、タグアレイ232,242の各々は、データエントリ238,248に対応する複数のタグエントリ239,249を含む。タグエントリ239は、タグエントリ209と同様に、対応するキャッシュラインのアドレスを記憶するためのアドレスフィールド240と、対応するキャッシュラインのステータスビットを記憶するためのステータスフィールド241等を有する。同様に、タグエントリ249は、データエントリ248内に記憶された対応するキャッシュラインに関するアドレスフィールド250及びステータスフィールド251を有する。
【0012】
L1制御ロジック206、L2制御ロジック236及びL3制御ロジック246は、キャッシュ階層制御ロジック142の少なくとも一部を共に構成する。上述したように、キャッシュ階層制御ロジック142は、キャッシングポリシー144(
図1)を含むキャッシュ階層の1つ以上のキャッシングポリシーを実施するように動作する。そのため、制御ロジック206,236,246の各々は、
図3〜
図5を参照して以下により詳細に説明するように、ハイブリッド低レベルキャッシュインクルージョンポリシー144の対応する態様を実施するコヒーレンシロジック254,256,258を含む。この動作を容易にするために、いくつかの実施形態では、キャッシュ121,131,140のうち1つ以上は、キャッシュに記憶された各キャッシュラインがキャッシュ階層104の他の1つ以上のキャッシュにも記憶されているかどうかを識別するプレゼンス情報を記憶する。一実施形態では、このプレゼンス情報は、キャッシュのタグアレイ内に、又は、これに関連して記憶される。例示すると、L1キャッシュ121のタグアレイ202のタグエントリ209の各々は、他のキャッシュ内のキャッシュラインのストレージに関するキャッシュラインの共存(co-presence)情報を記憶するプレゼンス(又は、位置「LOC」)フィールド262を含む。
【0013】
例示すると、一実施形態では、プレゼンスフィールド262は、対応するキャッシュラインがL2キャッシュ又はL3キャッシュの何れかで見つかるかどうかを示す単一ビットフィールド263として構成される。したがって、単一ビットフィールド263が0に設定されている場合、L1キャッシュ121の対応するデータエントリ208内のキャッシュラインがL2キャッシュに存在することを示し、一方、単一ビットフィールド263が1に設定されている場合、キャッシュラインがL3キャッシュに存在することを示す。他の実施形態では、プレゼンスフィールド262は、対応するキャッシュラインがL2キャッシュ又はL3キャッシュのうち何れで見つかるかどうかを示し、及び、キャッシュラインのコピーを記憶する特定のキャッシュレベルを識別する、2ビットフィールド265として構成されている。例示すると、値10は、キャッシュラインのコピーがL2キャッシュに存在するが、L3キャッシュに存在しないことを示し、値01は、キャッシュラインのコピーがL2キャッシュに存在しないが、L3キャッシュに存在することを示し、値11は、L2キャッシュ及びL3キャッシュの両方がキャッシュラインのコピーを記憶することを示している。さらに他の実施形態では、プレゼンスフィールド262は、キャッシュラインのコピーが見つかる可能性のある下位キャッシュレベルと、キャッシュラインを記憶する下位キャッシュレベルの各々における特定のキャッシュウェイとの両方を識別する、複数のビットフィールド267として実装される。
【0014】
いくつかの実施形態では、L3キャッシュ140は、対応するタグエントリ239のキャッシュラインが高キャッシュレベルに存在するかどうかを示すのに使用されるプレゼンスフィールド264を有するタグアレイ242のタグエントリ249で同様に構成される。いくつかの実施形態では、プレゼンスフィールド264は、プレゼンスフィールド262と同様に、単一ビットフィールド273として構成されている。単一ビットフィールド273は、キャッシュラインのコピーがL1キャッシュ又はL2キャッシュの何れに存在するかを単純に識別するが、2つのより高いキャッシュレベルの何れか又はキャッシュラインを記憶する特定のキャッシュを識別しない。他の実施形態では、プレゼンスフィールド264は、2ビットフィールド275として構成されている。2ビットフィールド275は、キャッシュラインのコピーが高キャッシュレベルに存在するかどうかを識別するとともに、キャッシュラインのコピーを含む高キャッシュレベルを識別する。さらに他の実施形態では、プレゼンスフィールド264は、何れの高キャッシュレベルがキャッシュラインのコピーを記憶しているかを識別するだけでなく、特定のキャッシュも同様に識別するマルチビットフィールド277として実装される。同様に、L2キャッシュ131は、L1キャッシュレベル及びL3キャッシュレベルの一方又は両方の対応するキャッシュラインの存在を識別するために、タグエントリ239内のプレゼンスフィールド266、又は、単一ビットフィールド283、2ビットフィールド285若しくはマルチビットフィールド287のうちの1つとして構成されたL2キャッシュ131内の他の場所で構成されてもよい。
【0015】
プレゼンスフィールド262,264,266によって表されるプレゼンス情報は、特定のキャッシュへのキャッシュラインのインストールに応じて、又は、キャッシュからのキャッシュラインのエビクトに応じて、ハイブリッド低レベルキャッシュインクルージョンポリシー144をまとめて実施する、各々のコヒーレンシロジック254,256,258によって使用される。このため、コヒーレンシロジック254,256,258は、キャッシングポリシー144によって指定されたキャッシングガイドラインに従ってキャッシュラインのコピーをターゲットキャッシュにインストールするように又はキャッシュラインのコピーをターゲットキャッシュからエビクトするように、様々なキャッシュ間でインストールメッセージ及びエビクションメッセージを通信するために、メッセージングインターコネクト290を利用する。
図3〜
図5の各々は、コヒーレンシロジック254,256,258の動作の例示的な方法を示している。
【0016】
図3は、いくつかの実施形態による、L1キャッシュ121等のL1キャッシュにおけるキャッシングポリシー144の対応する態様を実施する方法300を示す図である。方法300は、ブロック302において開始し、システムメモリ116からデータのキャッシュラインをフェッチし、キャッシュラインをキャッシュ階層104にインストールする。キャッシュラインは、キャッシュラインに含まれるデータを参照する命令の最初の実行に応じたデマンドフェッチとしてフェッチされるか、投機的プリフェッチ(speculative prefetch)動作の一部としてシステムメモリ116からフェッチされる。通常、システムメモリ116からフェッチされたキャッシュラインは、先ず、L2キャッシュ131又はL3キャッシュ140等の低レベルキャッシュにインストールされる。ある時点で、システムメモリ116からのキャッシュラインの最初のフェッチとして、又は、その後、プロセッサコアによってキャッシュラインに記憶されたデータに関する要求の一部として、キャッシュラインのコピーが、ブロック304においてL1キャッシュ(例えば、L1キャッシュ121)にインストールされる。
【0017】
ブロック305において、最初のキャッシュラインのインストールの一部として、及び、L1キャッシュへのキャッシュラインのインストールの一部として、キャッシュ階層104のキャッシュは、キャッシュ階層104の1つ以上のキャッシュ内のキャッシュラインの存在を反映するように、各々のプレゼンス情報フィールドを更新する。一実施形態では、位置ステータスの更新は、メッセージングインターコネクト290を介して様々なキャッシュのコヒーレンシロジック間で送信されるコヒーレンシメッセージに応じて行われる。例えば、キャッシュラインをL1キャッシュ121にインストールすると、L1制御ロジック206のコヒーレンシロジック254をトリガし、L1キャッシュ121におけるキャッシュラインのインストールをキャッシュ階層104に通知するように、当該キャッシュラインのコヒーレンシメッセージをキャッシュ階層104の他のキャッシュにブロードキャストする。このコヒーレンシメッセージを受信したことに応じて、L2制御ロジック236のコヒーレンシロジック256は、(L2キャッシュ131に記憶される場合に)当該キャッシュラインのタグエントリ239にアクセスし、キャッシュラインのコピーがL1キャッシュレベルに記憶されたことを反映するようにプレゼンスフィールド266を更新し、このように構成されている場合、特定のL1キャッシュが現在キャッシュラインを記憶している。コヒーレンシロジック258は、L3キャッシュ140においてコヒーレンシメッセージを受信すると、同様の方法で、対応するプレゼンスフィールド264を更新する。
【0018】
ハイブリッド低レベルキャッシュインクルージョンポリシー144の態様又はガイドラインの1つは、キャッシュラインがL1キャッシュに記憶される場合、当該キャッシュラインのコピーもL2キャッシュ又はL3キャッシュのうち少なくとも1つに記憶される必要があることを想起されたい。したがって、ブロック306において、キャッシュラインを記憶するL1キャッシュのコヒーレンシロジック(例えば、コヒーレンシロジック254)は、当該キャッシュラインのプレゼンスフィールド262をチェックして、キャッシュラインがL2又はL3キャッシングレベルでキャッシュに存在するかどうかを判別する。存在する場合、方法300は、次のキャッシュラインがキャッシュ階層104にインストールされるまで、ブロック308において終了する。そうでなく、キャッシュラインがL2キャッシュ又はL3キャッシュに存在しない場合、ブロック310において、L1キャッシュのコヒーレンシロジックは、L1キャッシュによってアクセス可能な低レベルキャッシュにインストールメッセージを送信して、キャッシュラインのコピーをインストールするように当該低レベルキャッシュに指示することによって、低レベルキャッシュにおけるキャッシュラインのコピーのインストールをトリガする。概して、次の低レベルが使用され、したがって、例えば、L1キャッシュ121は、ブロック310において、キャッシュラインのコピーをインストールするようにL2キャッシュ131に指示する。キャッシュラインのコピーをインストールした結果、ブロック312において、キャッシュラインのコピーを受信して記憶する低レベルキャッシュは、コヒーレンシメッセージを他のキャッシュにブロードキャストし、これにより、他のキャッシュは、ローカルプレゼンス情報ストアを適宜更新する。
【0019】
図4は、いくつかの実施形態による、L2キャッシュ131等のL2キャッシュにおいてハイブリッド低レベルキャッシュインクルージョンポリシー144の対応する態様を実施する方法400を示す図である。方法400は、ブロック402において開始し、L2キャッシュからのキャッシュラインのエビクションを行う。キャッシュラインのエビクションは、通常、L2キャッシュのデータアレイ234がオーバーサブスクライブしたことに応じてトリガされる。従来のキャッシングポリシーでは、L2キャッシュからのキャッシュラインのエビクションは、L2キャッシュに関連する全てのL1キャッシュからの同じキャッシュラインのエビクションを必要とする。しかしながら、上述したように、ハイブリッド低レベルキャッシュインクルージョンポリシー144の1つのガイドラインは、L2キャッシングレベルからのキャッシュラインエビクションが、結果として、L1キャッシングレベルからの同じキャッシュラインのエビクションを必要としないことである。したがって、ブロック404で表されるように、ブロック402においてL2キャッシュからエビクトされたキャッシュラインは、ハイブリッド低レベルキャッシュインクルージョンポリシー144に従って、L1キャッシュ内に維持される。さらに、L2キャッシュにおけるキャッシュラインエビクションの結果として、L2キャッシュは、ブロック406において、コヒーレンシメッセージを他のキャッシュにブロードキャストして、キャッシュラインのエビクションを反映し、他のキャッシュがローカルプレゼンス情報ストアを適宜更新するようにする。
【0020】
図5は、いくつかの実施形態による、L3キャッシュ140等のL3キャッシュにおいてハイブリッド低レベルキャッシュインクルージョンポリシー144の対応する態様を実施する方法500を示す図である。方法500は、ブロック502において開始し、キャッシュラインがエビクトされることをL3キャッシュが判別する。したがって、L3制御ロジック(例えば、L3制御ロジック246)は、キャッシュラインを、キャッシュラインに対応するタグエントリのステータスフィールドにおいて無効としてマークし、L3キャッシュがキャッシュラインをエビクトしたことを示すコヒーレンシメッセージを、キャッシュ階層104の他のキャッシュに送信する。いくつかの実施態様では、L3キャッシュからのキャッシュラインのエビクションは、キャッシュラインが変更されると、当該キャッシュラインが元のデータを上書きするようにシステムメモリ116に提供されることをもたらす。さらに、ブロック503において、キャッシュ階層104の他のキャッシュは、L3キャッシュによって送信されるコヒーレンシメッセージに応じて、そのローカル位置ストアを更新する。
【0021】
上述したように、ハイブリッド低レベルキャッシュインクルージョンポリシー144の一態様又はガイドラインは、L3キャッシュレベルからのキャッシュラインのエビクションは、当該キャッシュラインがL2キャッシュにも存在しない場合、結果として、L1キャッシュレベルからのキャッシュラインのエビクションを必要とする。このガイドラインは、キャッシュ階層104が、L2キャッシュ及びL3キャッシュを検索することによって、L1キャッシュの検索を必要とすることなく、キャッシュラインがL1キャッシュに厳密に存在しないことを当該キャッシュラインへ後続のアクセスで判別することを可能にし、これにより、電力を節約し、パフォーマンスを向上させる。したがって、ブロック504において、キャッシュ階層104は、L3キャッシュからエビクトされたキャッシュラインがL2キャッシュに存在するかどうかを判別する。いくつかの実施態様では、これは、L3キャッシュ内の対応するタグエントリ249のプレゼンスフィールド264を使用して、キャッシュラインをエビクトしたL3キャッシュのL3制御ロジック246のコヒーレンシロジック258によって判別される。他の実施形態では、L2キャッシュ内のエビクトされたキャッシュラインの存在は、L2キャッシュの対応するタグエントリ239のプレゼンスフィールド266を使用して、キャッシュ階層の1つ以上のL2キャッシュのL2制御ロジック236のコヒーレンシロジック256によってまとめて判別される。さらに他の実施形態では、L2キャッシュ内のエビクトされたキャッシュラインの存在は、キャッシュ階層104の1つ以上のL1キャッシュのL1制御ロジック206のコヒーレンシロジック254によってまとめて判別される。
【0022】
キャッシュラインがL2キャッシュ内に存在すると識別された場合、ブロック506において、キャッシュラインがL2キャッシュ内に維持され、方法500の進行中の反復が終了する。そうではなく、エビクトされたキャッシュラインのコピーがL2キャッシュレベルで見つからない場合、ブロック508において、キャッシュ階層104は、同様に、キャッシュラインをL1キャッシュレベルからエビクトする。L2キャッシュレベルでのエビクトされたキャッシュラインの存在が、ブロック504においてL1キャッシュによって行われたものである場合、ブロック508において、L1キャッシュのコヒーレンシロジック254は、各々のデータアレイ204からのキャッシュラインのエビクションをトリガする。そうではなく、L2キャッシュレベルでのエビクトされたキャッシュラインの存在が、L2キャッシュレベル又はL3キャッシュレベルで行われたものである場合、当該低キャッシュレベルのキャッシュは、メッセージングインターコネクト290を介して、エビクションメッセージをキャッシュ階層104の1つ以上のL1キャッシュに送信し、これに応じて、L1キャッシュは、識別されたキャッシュラインをエビクトする。さらに、ブロック510において、キャッシュ階層104のキャッシュは、キャッシュラインが既にL1キャッシュレベルに存在しないことを反映するように、1つ以上のL1キャッシュからのキャッシュラインのコピーのエビクションに応じて送信されたエビクションメッセージに応じて、ローカルプレゼンス情報ストアを更新する。
【0023】
一態様によれば、データ処理システムは、1つ以上のプロセッサコアと、キャッシュ階層と、を含む。キャッシュ階層は、第1レベルキャッシュと、第2レベルキャッシュと、第3レベルキャッシュと、キャッシュ階層制御ロジックと、を有する。キャッシュ階層制御ロジックは、第1レベルキャッシュにキャッシュされたキャッシュラインの各々が、第2レベルキャッシュ及び第3レベルキャッシュのうち少なくとも一方にキャッシュされたキャッシュラインのコピーを有するキャッシングポリシーを実施するように構成されている。いくつかの実施形態では、キャッシングポリシーは、第2レベルキャッシュからのキャッシュラインのエビクションが、第1レベルキャッシュからのキャッシュラインのコピーのエビクションをトリガしないことをさらに提供する。いくつかの実施形態では、キャッシングポリシーは、第3レベルキャッシュからのキャッシュラインのエビクションが、当該キャッシュラインが第2レベルキャッシュに存在しない場合に、当該キャッシュシュラインのコピーを第1レベルキャッシュからエビクトするようにキャッシュ階層制御ロジックをトリガすることをさらに提供する。キャッシングポリシーは、第3レベルキャッシュからのキャッシュラインのエビクションが、当該キャッシュラインのコピーが第2レベルキャッシュに存在しない場合に、当該キャッシュラインのコピーを第1レベルキャッシュからエビクトし、当該キャッシュラインのコピーが第2レベルキャッシュに存在する場合に、当該キャッシュラインのコピーを第1レベルキャッシュ内に維持するようにキャッシュ階層ロジックをトリガすることをさらに提供する。
【0024】
いくつかの実施形態では、第3レベルキャッシュは、プレゼンスフィールドの第1セットにアクセスして、第3レベルキャッシュの何れのキャッシュラインが第1レベルキャッシュ又は第2レベルキャッシュにも記憶されているのかを識別する第1プレゼンス情報を記憶する。いくつかの実施形態では、第1プレゼンス情報は、対応するキャッシュラインが第1レベルキャッシュ又は第2レベルキャッシュの何れに存在するかどうかのみを識別する。他の実施形態では、第1プレゼンス情報は、対応するキャッシュラインが第1レベルキャッシュに存在するかどうかと、対応するキャッシュラインが第2レベルキャッシュに存在するかどうかと、を識別する。いくつかの実施形態では、キャッシュ階層は、複数の第1レベルキャッシュと、複数の第2レベルキャッシュと、を含み、第1プレゼンス情報は、対応するキャッシュラインが複数の第1レベルキャッシュのうち何れの第1レベルキャッシュに記憶されているか、又は、対応するキャッシュラインが複数の第2レベルキャッシュのうち何れの第2レベルキャッシュに記憶されているかを識別する。プレゼンスフィールドの第1セットは、第3レベルキャッシュのタグアレイの一部とすることができる。いくつかの実施形態では、第1レベルキャッシュは、プレゼンスフィールドの第2セットにアクセスして、第1レベルキャッシュ内の何れのキャッシュラインが第2レベルキャッシュ又は第3レベルキャッシュにも記憶されているかを識別する第2プレゼンス情報を記憶する。いくつかの実施形態では、第2プレゼンス情報は、対応するキャッシュラインが第2レベルキャッシュ又は第3レベルキャッシュの何れに存在するかどうかのみを識別する。他の実施形態では、第2プレゼンス情報は、対応するキャッシュラインが第2レベルキャッシュにあるかどうかと、対応するキャッシュラインが第3レベルキャッシュにあるかどうかと、を識別する。キャッシュ階層は、複数の第2レベルキャッシュを含むことができ、第2プレゼンス情報は、対応するキャッシュラインが複数の第2レベルキャッシュのうち何れの第2レベルキャッシュに記憶されているかを識別することができる。
【0025】
別の態様によれば、方法は、キャッシュラインをメモリからフェッチすることと、キャッシュ階層のキャッシュ階層制御ロジックによって、キャッシュラインをキャッシュ階層の第1レベルキャッシュに記憶することと、キャッシュ階層制御ロジックによって、第1レベルキャッシュ内のキャッシュラインの各々がキャッシュ階層の第2レベルキャッシュ又は第3レベルキャッシュのうち少なくとも一方にも記憶されるキャッシングポリシーに応じて、キャッシュラインを第2レベルキャッシュに記憶することと、キャッシュ階層制御ロジックによって、キャッシュラインを第1レベルキャッシュ内に維持しながら、キャッシュラインを第2レベルキャッシュからエビクトすることと、を含む。いくつかの実施形態では、キャッシュ階層制御ロジックによって、キャッシュラインを第2レベルキャッシュに記憶することは、キャッシュ階層制御ロジックによって、第1レベルキャッシュに記憶されたプレゼンス情報に基づいて、第1レベルキャッシュ及び第2レベルキャッシュの何れもキャッシュラインを現在記憶していないことを判別することを含み、プレゼンス情報は、第1レベルキャッシュに記憶されたキャッシュライン毎に、キャッシュラインが第2レベルキャッシュ又は第3レベルキャッシュのうち少なくとも一方にも記憶されているかどうかを識別する。いくつかの実施形態では、プレゼンス情報は、キャッシュラインが第2レベルキャッシュに記憶されているか、又は、第3レベルキャッシュに記憶されているかどうかを識別する。他の実施形態では、キャッシュ階層は、複数の第2レベルキャッシュを含み、プレゼンス情報は、複数の第2レベルキャッシュのうち、キャッシュラインを記憶する特定の第2レベルキャッシュを識別する。
【0026】
いくつかの実施形態では、キャッシュラインを第2レベルキャッシュからエビクトすることは、キャッシュラインを第3レベルキャッシュに記憶すること、又は、キャッシュラインの変更された値でメモリを更新すること、の何れかを含む。したがって、方法は、キャッシュ階層制御ロジックによって、キャッシュラインを第3レベルキャッシュからエビクトすることと、キャッシュ階層制御ロジックによって、キャッシュラインが第2レベルキャッシュ内に存在するかどうかを判別することと、キャッシングポリシーに従うキャッシュ階層制御ロジックによって、第3レベルキャッシュからのキャッシュラインのエビクションに応じて、及び、キャッシュラインが第2レベルキャッシュ内に存在しないことを判別したことに応答して、キャッシュラインを第1レベルキャッシュからエビクトすることと、を含むことができる。いくつかの実施形態では、キャッシュラインが第2レベルキャッシュ内に存在するかどうかを判別することは、第3レベルキャッシュに記憶されたプレゼンス情報に基づいて行われ、プレゼンス情報は、第3レベルキャッシュに記憶されたキャッシュライン毎に、キャッシュラインが第2レベルキャッシュ内にも存在するかどうかを示している。他の実施形態では、キャッシュ階層は、複数の第2レベルキャッシュを含み、プレゼンス情報は、複数の第2レベルキャッシュのうち、キャッシュラインを記憶する特定の第2レベルキャッシュを識別する。
【0027】
別の態様によれば、方法は、キャッシュラインをメモリからフェッチすることと、キャッシングポリシーに従って、キャッシュラインをキャッシュ階層にキャッシュすることであって、キャッシュ階層は、第1レベルキャッシュと、第2レベルキャッシュと、第3レベルキャッシュと、を有する、ことと、を含む。キャッシングポリシーは、第1レベルキャッシュにキャッシュされたキャッシュラインが、第2レベルキャッシュ又は第3レベルキャッシュのうち少なくとも一方にも記憶されていることと、第2レベルキャッシュからのキャッシュラインのエビクションが、第1レベルキャッシュからの当該キャッシュラインのエビクションを必要としないことと、キャッシュラインが第2レベルキャッシュにもキャッシュされない場合、第3レベルキャッシュからのキャッシュラインのエビクションが、当該キャッシュラインを第1レベルキャッシュからもエビクトすることと、を提供する。いくつかの実施形態では、キャッシュ階層制御ロジックは、第1レベルキャッシュ、第2レベルキャッシュ又は第3レベルキャッシュのうち1つ以上に記憶されたプレゼンス情報を使用してキャッシングポリシーを実施し、所定のキャッシュレベルのキャッシュのプレゼンス情報は、所定のキャッシュレベルのキャッシュに記憶されたキャッシュラインが他の1つ以上のキャッシュレベルのキャッシュに記憶されているかどうかを示している。
【0028】
いくつかの実施形態では、上述した装置及び技術は、
図1〜
図5を参照して上述したシステム100等のように、1つ以上の集積回路(IC)デバイス(集積回路パッケージ又はマイクロチップとも呼ばれる)を備えるシステムにおいて実装される。これらのICデバイスの設計及び製造には、電子設計自動化(EDA)及びコンピュータ支援設計(CAD)ソフトウェアツールが使用される。これらの設計ツールは、通常、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計又は適合するための処理の少なくとも一部を実行するように1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムがアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよいし、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体からアクセスされてもよい。
【0029】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。かかる記憶媒体には、限定されないが、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、キャッシュ)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステムに内蔵されてもよいし(例えば、システムRAM又はROM)、コンピュータシステムに固定的に取り付けられてもよいし(例えば、磁気ハードドライブ)、コンピュータシステムに着脱可能に取り付けられてもよいし(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)、有線又は無線のネットワークを介してコンピュータシステムに接続されてもよい(例えば、ネットワークアクセス可能なストレージ(NAS))。
【0030】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【0031】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0032】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【要約】
システム(100)は、1つ以上のプロセッサコア(111〜114)と、キャッシュ階層(104)と、を含む。キャッシュ階層は、第1レベルキャッシュ(121〜124)と、第2レベルキャッシュ(131〜134)と、第3レベルキャッシュ(140)と、を含む。キャッシュ階層は、キャッシングポリシー(144)を実施するように構成されたキャッシュ階層制御ロジック(142)を含む。キャッシングポリシー(144)では、第1レベルキャッシュにキャッシュされたキャッシュラインの各々が、第2レベルキャッシュ及び第3レベルキャッシュのうち少なくとも一方にキャッシュされたキャッシュラインのコピーを有する。キャッシングポリシーは、第2レベルキャッシュからのキャッシュラインのエビクションが、第1レベルキャッシュからの当該キャッシュラインのコピーのエビクションをトリガしないことと、第3レベルキャッシュからのキャッシュラインのエビクションが、キャッシュラインが第2レベルキャッシュ内に存在しない場合に、当該キャッシュラインのコピーを第1レベルキャッシュからエビクトするようにキャッシュ階層制御ロジックをトリガすることと、を提供する。
【選択図】
図1