(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-18
(54)【発明の名称】動的共有キャッシュラインコピー保持ポリシー選択を有するコンピュータ処理装置
(51)【国際特許分類】
G06F 12/084 20160101AFI20241010BHJP
G06F 12/0895 20160101ALI20241010BHJP
【FI】
G06F12/084
G06F12/0895 120
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024526591
(86)(22)【出願日】2022-11-07
(85)【翻訳文提出日】2024-06-14
(86)【国際出願番号】 US2022049096
(87)【国際公開番号】W WO2023081444
(87)【国際公開日】2023-05-11
(32)【優先日】2021-11-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ジョン ケリー
(72)【発明者】
【氏名】ポール モイヤー
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205KK14
5B205MM03
5B205NN33
5B205UU31
5B205VV02
(57)【要約】
プロセッサコア複合体内の共有キャッシュラインのコピーがプロセッサコア複合体のレベル3(L3)キャッシュ内に記憶及び維持されるべきかどうかを判定するポリシーの動的選択のためのシステム及び技術は、様々な実施形態によれば、1つ以上のキャッシュライン共有パラメータに基づくか、又は、プロセッサコア複合体内のL3キャッシュミス及びキャッシュ間(C2C)転送を追跡するカウンタに基づく。共有キャッシュラインは、プロセッサコア間又はスレッド間で共有される。キャッシュライン共有パラメータ又はカウンタの何れかを対応する閾値と比較することによって、そのようなインデックスにある共有キャッシュラインのコピーがL3キャッシュに保持されるべきかどうかを定義するポリシーが設定される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
方法であって、
コンピュータ処理装置の複数のキャッシュにおける共有キャッシュラインの量を示すキャッシュライン共有パラメータを判定することと、
前記キャッシュライン共有パラメータに基づいて、前記複数のキャッシュに結合されたキャッシュの共有キャッシュラインコピー保持ポリシーを設定することと、を含む、
方法。
【請求項2】
前記キャッシュライン共有パラメータを判定することは、
前記コンピュータ処理装置のコアによって発行されたメモリアクセス要求に基づいて、2つ以上のコアによって要求されたキャッシュラインを第1の共有キャッシュラインとして識別することと、
前記第1の共有キャッシュラインに少なくとも部分的に基づいて、前記キャッシュライン共有パラメータを判定することと、を含む、
請求項1の方法。
【請求項3】
前記キャッシュライン共有パラメータを判定することは、
外部コア複合体のコアによって発行されたキャッシュプローブに基づいて、前記キャッシュプローブにおいて要求された前記複数のキャッシュのキャッシュラインを第2の共有キャッシュラインとして識別することであって、前記キャッシュライン共有パラメータは、前記第2の共有キャッシュラインに基づいて判定される、ことと、を含む、
請求項2の方法。
【請求項4】
前記キャッシュライン共有パラメータを判定することは、
前記キャッシュに記憶されたシャドウタグに示された共有キャッシュラインの数に基づいて前記キャッシュライン共有パラメータを判定することであって、前記シャドウタグは、前記複数のキャッシュ内の全てのキャッシュラインのリストを提供する、ことを含む、
請求項1の方法。
【請求項5】
前記キャッシュライン共有パラメータを判定することは、
前記コンピュータ処理装置のコアによって発行されたメモリアクセス要求に基づいて、2つ以上のコアによって要求されたキャッシュラインを第1の共有キャッシュラインとして識別することと、
前記第1の共有キャッシュラインに少なくとも部分的に基づいて、第1のキャッシュライン共有パラメータを判定することと、
前記キャッシュに記憶されたシャドウタグに示された共有キャッシュラインの数に基づいて第2のキャッシュライン共有パラメータを判定することであって、前記シャドウタグは、前記複数のキャッシュ内の全てのキャッシュラインのリストを提供する、ことと、
前記キャッシュライン共有パラメータを、前記第1のキャッシュライン共有パラメータと前記第2のキャッシュライン共有パラメータとの平均として判定することと、を含む、
請求項1の方法。
【請求項6】
前記キャッシュの共有キャッシュラインコピー保持ポリシーは、前記複数のキャッシュの共有キャッシュラインのコピーが前記キャッシュに保持されるかどうかを判定する、
請求項1~5の何れかの方法。
【請求項7】
方法であって、
第1のレベルのキャッシュのセット及び第2のレベルのキャッシュのための共有キャッシュラインコピー保持ポリシーを選択するために、コンピュータ処理装置のコア複合体においてセットデュリングを実行することを含む、
方法。
【請求項8】
前記セットデュリングを実行することは、
第1の共有キャッシュラインコピー保持ポリシーと併せて使用するために、キャッシュラインインデックスの第1の専用セットを割り当てることと、
第2の共有キャッシュラインコピー保持ポリシーと併せて使用するために、キャッシュラインインデックスの第2の専用セットを割り当てることと、
前記第2のレベルのキャッシュに関連付けられたキャッシュミスと、前記第1の専用セット及び前記第2の専用セットの各々に関連付けられたキャッシュ間(C2C)転送とを、カウンタを使用して別々に追跡することと、
前記カウンタに基づいて、前記第2のレベルのキャッシュを、キャッシュラインインデックスの1つ以上のフォロワセットのために前記第1の共有キャッシュラインコピー保持ポリシー及び第2の第1の共有キャッシュラインコピー保持ポリシーのうち何れかを使用するように構成することと、を含む、
請求項7の方法。
【請求項9】
前記キャッシュラインインデックスの第1の専用セット、前記キャッシュラインインデックスの第2の専用セット、及び、前記キャッシュラインインデックスの1つ以上のフォロワセットは、前記コア複合体の前記第1のレベルのキャッシュのセットのキャッシュラインインデックスである、
請求項8の方法。
【請求項10】
前記キャッシュラインインデックスの第1の専用セット、前記キャッシュラインインデックスの第2の専用セット、及び、前記キャッシュラインインデックスの1つ以上のフォロワセットは、前記第2のレベルのキャッシュのキャッシュラインインデックスである、
請求項8の方法。
【請求項11】
前記第1の共有キャッシュラインコピー保持ポリシーは、前記第2のレベルのキャッシュに、前記コア複合体の第1のレベルのキャッシュのセットの共有キャッシュラインのコピーを保持させ、前記第2の共有キャッシュラインコピー保持ポリシーは、前記第2のレベルのキャッシュに、前記第1のレベルのキャッシュのセットの共有キャッシュラインのコピーを保持させない、
請求項8の方法。
【請求項12】
コンピュータ処理装置であって、
第1のレベルのキャッシュのセットと、
前記第1のレベルのキャッシュのセットに結合された第2のレベルのキャッシュであって、前記コンピュータ処理装置は、前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュの共有キャッシュラインが前記第2のレベルのキャッシュ内に保持されるかどうかを判定する共有キャッシュラインコピー保持ポリシーを動的に選択するように構成されている、第2のレベルのキャッシュと、を備える、
コンピュータ処理装置。
【請求項13】
前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュ内の共有キャッシュラインの量を示すキャッシュライン共有パラメータを判定するように構成された共有検出ロジックであって、前記第2のレベルのキャッシュは、前記キャッシュライン共有パラメータに基づいて前記共有キャッシュラインコピー保持ポリシーを動的に選択するように構成されている、共有検出ロジックを備える、
請求項12のコンピュータ処理装置。
【請求項14】
前記第1のレベルのキャッシュのセットに結合された複数のプロセッサコアを備え、
前記共有検出ロジックは、
前記複数のプロセッサコアの何れかによって発行されたメモリアクセス要求に基づいて、2つ以上のコアによって要求される前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュのキャッシュラインを、第1の共有キャッシュラインであるとして識別することと、
前記第1の共有キャッシュラインの量に少なくとも部分的に基づいて、前記キャッシュライン共有パラメータを判定することと、
を行うように構成されている、
請求項13のコンピュータ処理装置。
【請求項15】
前記共有検出ロジックは、前記第2のレベルのキャッシュに記憶されたシャドウタグに示される共有キャッシュラインの数に基づいて前記キャッシュライン共有パラメータを判定するように構成されており、
前記シャドウタグは、前記第1のレベルのキャッシュのセット内の全てのキャッシュラインのリストを提供する、
請求項13のコンピュータ処理装置。
【請求項16】
前記コンピュータ処理装置にセットデュリング機構を実装するように構成されたセットデュリングモジュールであって、前記第2のレベルのキャッシュは、前記セットデュリング機構に関連付けられたカウンタに基づいて前記共有キャッシュラインコピー保持ポリシーを動的に選択するように構成されている、セットデュリングモジュールを備える、
請求項12のコンピュータ処理装置。
【請求項17】
前記セットデュリングモジュールは、
第1の共有キャッシュラインコピー保持ポリシーと併せて使用するために、キャッシュラインインデックスの第1の専用セットを割り当てることと、
第2の共有キャッシュラインコピー保持ポリシーと併せて使用するために、キャッシュラインインデックスの第2の専用セットを割り当てることと、
前記カウンタを使用して、前記第2のレベルのキャッシュに関連付けられたキャッシュミスと、前記第1の専用セット及び前記第2の専用セットの各々に関連するキャッシュ間(C2C)転送と、を別々に追跡することであって、前記第2のレベルのキャッシュは、前記カウンタに基づいて、前記第1の共有キャッシュラインコピー保持ポリシー及び第2の第1の共有キャッシュラインコピー保持ポリシーのうち何れかを、キャッシュラインインデックスの1つ以上のフォロワセットに使用するために選択するように構成されている、ことと、
を行うように構成されている、
請求項16のコンピュータ処理装置。
【請求項18】
前記キャッシュラインインデックスの第1の専用セット、前記キャッシュラインインデックスの第2の専用セット、及び、前記キャッシュラインインデックスの1つ以上のフォロワセットは、前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュのキャッシュラインインデックスである、
請求項17のコンピュータ処理装置。
【請求項19】
前記キャッシュラインインデックスの第1の専用セット、前記キャッシュラインインデックスの第2の専用セット、及び、前記キャッシュラインインデックスの1つ以上のフォロワセットは、前記第2のレベルのキャッシュのキャッシュラインインデックスである、
請求項17のコンピュータ処理装置。
【請求項20】
前記第1の共有キャッシュラインコピー保持ポリシーは、前記第2のレベルのキャッシュに、前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュの共有キャッシュラインのコピーを保持させ、前記第2の共有キャッシュラインコピー保持ポリシーは、前記第2のレベルのキャッシュに、前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュの共有キャッシュラインのコピーを保持させない、
請求項17のコンピュータ処理装置。
【発明の詳細な説明】
【背景技術】
【0001】
中央処理装置(CPU)又は画像処理装置(GPU)等のコンピュータ処理装置は、典型的には、複数のプロセッサコアを含み、各々が、そのようなコンピュータ処理装置によって実行されているコンピュータアプリケーションによる潜在的な使用のためにデータを一時的に記憶するためのキャッシュの階層に結合されている。所定のコンピュータ処理装置のキャッシュに記憶されたデータは、従来、キャッシュラインに編成され、そのうちいくつかは、コンピュータ処理装置の2つ以上の処理コア又はスレッド間で共有される。
【0002】
本開示は、添付の図面を参照することによってより良好に理解され、その数々の特徴及び利点が当業者に明らかになり得る。異なる図面における同じ符号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態による、レベル3(L3)キャッシュ内に共有キャッシュラインのコピーを記憶するための1つ以上のポリシーを選択的に有効にするように構成されたコンピュータ処理装置のブロック図である。
【
図2】いくつかの実施形態による、L3キャッシュ内に共有キャッシュラインのコピーを記憶するための1つ以上のポリシーを選択的に有効にするためのセットデュリング機構を実装するように構成されたコンピュータ処理装置のブロック図である。
【
図3】いくつかの実施形態による、コンピュータ処理装置の所定のコア複合体の1つ以上のキャッシュライン共有パラメータに基づいて共有キャッシュラインコピー保持ポリシー(shared cache line copy retention policy)を選択するための方法を示すフロー図である。
【
図4】いくつかの実施形態による、コンピュータ処理装置のコア複合体のレベル2(L2)キャッシュに実装されたセットデュリング機構に従って共有キャッシュラインコピー保持ポリシーを選択するための方法を示すフロー図である。
【
図5】いくつかの実施形態による、コンピュータ処理装置のコア複合体のL3キャッシュに実装されたセットデュリング機構に従って共有キャッシュラインコピー保持ポリシーを選択するための方法を示すフロー図である。
【発明を実施するための形態】
【0004】
中央処理装置(CPU)又は画像処理装置(GPU)等のコンピュータ処理装置は、典型的には、複数の処理コア(本明細書では「コア」と呼ばれることもある)を含み、それぞれが、例えば、レベル1(L1)、レベル2(L2)及びレベル3(L3)のキャッシュを含む階層キャッシュアーキテクチャに結合される。キャッシュアーキテクチャでは、各コアに少なくとも1つのL1キャッシュ及びL2キャッシュが割り当てられ、L3キャッシュは複数のコア間で共有される。場合によっては、キャッシュアーキテクチャに記憶されたデータは、複数のコア又は複数のスレッド間で共有され、このように2つ以上のコア又はキャッシュライン間で共有されるデータの各キャッシュラインは、「共有キャッシュライン」と呼ばれる。共有キャッシュラインを共有するコア又はスレッドに関連付けられたL2キャッシュ間で共有キャッシュラインを転送する必要性を低減するために、そのような共有キャッシュラインのコピーをL3キャッシュ内に保持することが望ましい場合がある。例えば、異なるコアのL2キャッシュ間でキャッシュ間(C2C)転送を実行するよりもL3キャッシュからキャッシュラインを取得する方が、時間がかからないため、コンピュータ処理装置の性能を有利に改善することができ、場合によっては、共有キャッシュラインのコピーをL3キャッシュに保持することによってその消費電力を有利に削減することができる。しかしながら、共有キャッシュラインのコピーをL3キャッシュに記憶することは、そうでなければL3キャッシュの固有のキャッシュライン記憶能力を高めるために使用され得る空間を占有し、L3キャッシュのキャッシュヒット率に影響を及ぼす。従って、本明細書に記載のシステム及び技術は、共有キャッシュラインコピーがL3キャッシュに保持されるべきかどうかの動的ポリシー選択に関する。
【0005】
例えば、様々な実施形態によれば、第1のポリシーは、共有キャッシュラインコピーをL3キャッシュ内に保持させ(例えば、記憶及び維持)、第2のポリシーは、共有キャッシュラインコピーがL3キャッシュ内に保持されるのを防止し、第1のポリシー又は第2のポリシーの何れかは、1つ以上のキャッシュライン共有パラメータに基づいて又はセットデュリング機構と共にカウンタ値に基づいて選択される。いくつかの実施形態では、そのようなキャッシュライン共有パラメータは、L3キャッシュによって維持されるL2シャドウタグに示される共有キャッシュラインの量(本明細書では「シャドウタグベースのキャッシュライン共有パラメータ」と呼ばれることもある)及び同じキャッシュラインに対して複数のコアによって発行されたメモリアクセス要求に基づいて示される共有キャッシュラインの量(本明細書では「メモリアクセス要求ベースのキャッシュライン共有パラメータ」と呼ばれることもある)を含む。いくつかの実施形態では、セットデュリング機構は、第1のポリシーを使用するために、L2キャッシュ又はL3キャッシュのキャッシュラインインデックスの第1の専用セットが割り当てられ、第2のポリシーを使用するために、L2キャッシュ又はL3キャッシュのキャッシュラインインデックスの第2の専用セットが割り当てられるようにする。カウンタの値は、例えば、観察されたL3キャッシュミス及びキャッシュラインインデックスの第1の専用セット又はキャッシュラインインデックスの第2の専用セットの何れかに関連して発生するC2C転送に基づいて更新される。次いで、コンピュータ処理装置は、所定の閾値に対するカウンタの値に基づいて、L2キャッシュ又はL3キャッシュの他のキャッシュラインインデックスのセット(「フォロワセット」と呼ばれることもある)に対して第1のポリシー又は第2のポリシーの何れかを選択する。
【0006】
図1は、L3キャッシュ内に共有キャッシュラインコピーを保持するためのポリシーを動的に選択するためのコンピュータ処理装置100を示す。コンピュータ処理装置100は、概して、電子デバイスに代わってタスクを実行するために、コンピュータプログラムの形態で編成された命令セットを実行するように構成される。従って、処理システム100は、デスクトップ又はラップトップコンピュータ、サーバ、スマートフォン、タブレット、ゲームコンソール等の種々の電子デバイスの何れかで使用され得る。
【0007】
図示したように、コンピュータ処理装置100は、複数のコア102、L1キャッシュ104、L2キャッシュ106及び共有L3キャッシュ108を有するコア複合体122を含む。L1キャッシュ104、L2キャッシュ106、L3キャッシュ108及びメインメモリ110の各々は、概して、データを記憶するように構成されたメモリデバイスであり、従って、様々な実施形態によるランダムアクセスメモリ(RAM)メモリモジュール、不揮発性メモリデバイス(例えば、フラッシュメモリ)等であり得る。コア複合体122は、メインメモリ110に結合されている。各コア102は、L1キャッシュ104及びL2キャッシュ106に関連付けられている。例えば、コア102-1は、L1キャッシュ104-1に結合され、L1キャッシュ104-1を介してL2キャッシュ106-1に結合され、L1キャッシュ104-1及びL2キャッシュ106-1を介してL3キャッシュ108に結合される。引き続き例を続けると、L1キャッシュ104-1及びL2キャッシュ106-1は、コア102-1のみのデータを一時的に記憶するように構成され、L3キャッシュ108は、コア102の何れかのデータを一時的に記憶するように構成される。
【0008】
コア102は、メモリアクセス要求を生成するように構成され、メモリアクセス要求は、1つ以上のコア102によって実行されているプログラムによって使用されている又は必要とされることが知られているデータをロード又は記憶する要求を表す。L1キャッシュ104、L2キャッシュ106及びL3キャッシュ108の各々は、データを記憶するためのメモリセルのそれぞれのセット(すなわち、「キャッシュメモリ」)を含み、メインメモリ110又は他のキャッシュからキャッシュメモリにデータをコピーし、そのようなメモリアクセス要求で要求されたデータをキャッシュメモリにおいて検索することによってコア102によって発行されたメモリアクセス要求を実行しようと試みる等のタスクを実行するように構成された個々のキャッシュコントローラを含む。
【0009】
いくつかの実施形態では、コンピュータ処理装置100は、それぞれがメインメモリ110に結合されたコア複合体122と構造的に類似したいくつかのコア複合体を含み、必要に応じて、スケーラブル入出力(I/O)ファブリックを介して異なるコア複合体間でデータを転送することができる。いくつかの実施形態では、各コア102は、(例えば、2、4、8等である)複数のスレッドを同時に実施することができ、これは「同時マルチスレッディング」と呼ばれることもある。
【0010】
いくつかの実施形態では、L3キャッシュ108は、L2キャッシュ106から追い出されるキャッシュラインを記憶するビクティムキャッシュの機能を実行するように構成される。L3キャッシュ108は、L2キャッシュ106の何れかにおけるL2キャッシュミスに応じてメモリアクセス要求を満たすことを試みる。概して、L3キャッシュは、メモリアクセス要求をメインメモリ110のメモリコントローラに渡す前に、メモリアクセス要求を満たそうと試みる。いくつかの実施形態では、L3キャッシュ108は、L2キャッシュ106の各々における全てのキャッシュラインインデックスについてL2状態及びタグエントリを複製するL2シャドウタグ112のリストを維持する。L2ミス又は外部コア複合体からのキャッシュプローブに応じて、L3キャッシュコントローラは、典型的にはL3キャッシュ108自体に記憶されたキャッシュラインのチェックと並行して、L2シャドウタグ112をチェックして、対応するメモリアクセス要求で要求されたデータがL2キャッシュ106の何れかに存在するかどうかを判定する。各L2キャッシュ106内でチェックを実行するのではなく、L3キャッシュ108を用いてL2シャドウタグ112をチェックすることによって、L2キャッシュ帯域幅に対する負担が軽減される。例えば、コア102-1からのメモリアクセス要求がL2キャッシュ106-1及びL3キャッシュ108内でミスし、L2シャドウタグ112のチェックがL2キャッシュ106-2内のヒットを示す場合、L2キャッシュ106-2及びL3キャッシュ108の何れか又は両方に関連付けられたキャッシュコントローラは、L2キャッシュ106-2からL2キャッシュ106-1への要求されたキャッシュラインのキャッシュ間(C2C)転送を開始する。そのようなC2C転送は、典型的には、要求されたキャッシュラインが共有キャッシュライン(この例ではコア102-1とコア102-2との間で共有されている)であることを示す。いくつかの実施形態では、L2シャドウタグ112に含まれるL2キャッシュラインインデックス状態情報は、何れかのL2キャッシュの特定のL2キャッシュラインインデックスに記憶されたキャッシュラインが共有状態にあるかどうかを示す。
【0011】
いくつかの実施形態では、コア複合体122は、共有検出ロジック114、セットデュリングモジュール116又は性能モニタ120の何れかを含む、共有キャッシュラインコピーを格納及び維持するためのポリシー(本明細書では「共有キャッシュラインコピー保持ポリシー」と呼ばれることもある)を選択する際に使用するためのロジック、カウンタ又はその両方を含む。
【0012】
第1の例では、共有検出ロジック114は、1つ以上のキャッシュライン共有パラメータ115を監視し、所定のキャッシュライン共有パラメータ115が対応する閾値を超えるかどうかに基づいて共有キャッシュライン保持ポリシーを設定する。様々な実施形態によれば、共有検出ロジック114は、L2キャッシュ106の各々、L3キャッシュ108のみ、又は、L2キャッシュ106及びL3キャッシュ108の各々に実装される。いくつかの実施形態では、キャッシュライン共有パラメータ115は、シャドウタグベースのキャッシュライン共有パラメータ(すなわち、L3キャッシュ108によって維持されるL2シャドウタグ112に示される共有キャッシュラインの数)及びメモリアクセス要求ベースのキャッシュライン共有パラメータ(すなわち、同じキャッシュラインに対して複数のコア102によって発行されたメモリアクセス要求に基づいて示される共有キャッシュラインの数)の何れか又は両方を含む。いくつかの実施形態では、各キャッシュライン共有パラメータ115は、所定の期間にわたって、その期間中に収集された関連データに基づいて計算される。いくつかの実施形態では、期間はローリングウィンドウによって定義され、各キャッシュライン共有パラメータは、ウィンドウ内に含まれる関連データが変化するにつれて連続的又は定期的に更新される。
【0013】
キャッシュライン共有パラメータ115がシャドウタグベースのキャッシュライン共有パラメータのみを含むいくつかの実施形態では、このパラメータの値は、所定の期間(例えば、ローリングウィンドウによって画定される)にわたってL2シャドウタグ112に基づいて決定され、共有キャッシュラインコピー保持ポリシーを選択するために所定のキャッシュライン共有閾値と比較される。いくつかの実施形態では、共有検出ロジック114は、共有状態にあるL2キャッシュ106の各々におけるキャッシュラインの数を、L2シャドウタグ112に含まれるL2キャッシュラインインデックス状態情報に基づいて判定し、シャドウタグベースのキャッシュライン共有パラメータを判定された数に等しく設定することによって、シャドウタグベースのキャッシュライン共有パラメータを計算する。いくつかの実施形態では、共有検出ロジック114は、2つ以上のL2キャッシュ106に記憶されている個々のキャッシュラインの数(そのようなキャッシュラインが複数のコア間で共有されていることを示す)を判定するためにL2シャドウタグ112を解析し、シャドウタグベースのキャッシュライン共有パラメータを判定された数に等しく設定することによって、シャドウタグベースのキャッシュライン共有パラメータを計算する。シャドウタグベースのキャッシュライン共有パラメータ値が所定のキャッシュライン共有閾値を超え、コア複合体122におけるキャッシュライン共有の量が比較的多いことを示す場合、共有検出ロジック114は、L2キャッシュ106及びL3キャッシュ108の何れか又は両方に関連付けられたキャッシュコントローラに、L2キャッシュ106からの共有キャッシュラインのコピーをL3キャッシュ108に保持させるための第1の共有キャッシュラインコピー保持ポリシーを設定させる。そうではなく、シャドウタグベースのキャッシュライン共有パラメータ値が所定のキャッシュライン共有閾値を超えず、コア複合体122におけるキャッシュライン共有の量が比較的少ないことを示す場合、共有検出ロジック114は、キャッシュコントローラに、共有キャッシュラインコピーがL3キャッシュ108に保持されるのを防止するために第2の共有キャッシュラインコピー保持ポリシーを設定させる(場合によっては、これにより、L3キャッシュ108に既に記憶されているそのようなコピーがL3キャッシュ108から追い出される)。
【0014】
いくつかの実施形態では、第1の共有キャッシュラインコピー保持ポリシーは、あるL2キャッシュ106から別のL2キャッシュ106(すなわち、C2C転送中)に共有キャッシュラインを転送する場合に、又は、何れかのL2キャッシュ106から追い出され、別のL2キャッシュ106にもコピーを有するビクティムキャッシュラインを処理する場合に、L3キャッシュ108に共有キャッシュラインのコピーを保持するように構成させる。対照的に、第2の共有キャッシュラインコピー保持ポリシーは、そのようなシナリオでL3キャッシュ108内の共有キャッシュラインのコピーの保持を防止するようにL3キャッシュ108を構成させる。第1の共有キャッシュラインコピー保持ポリシーは、典型的には、L3キャッシュ108に記憶されている共有キャッシュラインのコピーがコア複合体122内の別のコア102(すなわち、共有キャッシュラインがコピーされたL2キャッシュ106に関連付けられていないコア102)又は外部コア複合体のコアによって要求された場合に、コンピュータ処理装置100の性能を向上させる。これは、L3キャッシュ108が、元の共有キャッシュラインをそのL2キャッシュ106から取得しなければならなかった場合よりも、共有キャッシュラインのコピーからのそのような要求をより迅速に満たすことができるためである。第2の共有キャッシュラインコピー保持ポリシーは、典型的には、コア間のキャッシュライン共有の頻度が低い場合(例えば、キャッシュライン共有を必要としない単一のコアワークロード又は独立したワークロードが処理されている場合)、コンピュータ処理装置100の性能を改善するが、それは、そうでなければ共有キャッシュラインコピーを記憶するために割り当てられるはずのL3キャッシュ108内の記憶容量が代わりにより多くの固有のキャッシュラインを記憶するために利用可能にされ、概して、L2キャッシュ106及びL3キャッシュ108にわたってより高いキャッシュヒット率をもたらすからである。
【0015】
キャッシュライン共有パラメータ115がメモリアクセス要求ベースのキャッシュライン共有パラメータのみを含むいくつかの実施形態では、このパラメータの値は、所定の期間(例えば、ローリングウィンドウによって画定される)中にメモリアクセス要求、キャッシュプローブ又はその両方に基づいて判定され、次いで、共有キャッシュラインコピー保持ポリシーを選択するために所定のキャッシュライン共有閾値と比較される。いくつかの実施形態では、共有検出ロジック114は、コア102によって発行されたメモリアクセス要求を監視し、コア102の2つ以上のコア(例えば、所定の期間内に、)によって要求されたL2キャッシュ106の各キャッシュラインについてメモリアクセス要求ベースのキャッシュライン共有パラメータ値を増分することによって、メモリアクセス要求ベースのキャッシュライン共有パラメータ値を判定する。いくつかの実施形態では、共有検出ロジック114は、外部コア複合体からのキャッシュプローブが何れかのL2キャッシュ106に記憶されているキャッシュラインを要求していると判定したことに応じて、メモリアクセス要求ベースのキャッシュライン共有パラメータ値を増分するように構成され、これは、そのキャッシュラインを効果的に共有キャッシュラインに(この場合、異なるコア複合体のコア間で共有される)するためである。いくつかの実施形態では、メモリアクセス要求ベースのキャッシュライン共有パラメータを計算する場合に、非無効化であり、コア複合体120にキャッシュラインの共有コピーを残すキャッシュプローブのみが考慮される。メモリアクセス要求ベースのキャッシュライン共有パラメータ値が所定のキャッシュライン共有閾値を超え、コア複合体122におけるキャッシュライン共有の量が比較的多いことを示す場合、共有検出ロジック114は、上述したように、キャッシュコントローラに第1の共有キャッシュラインコピー保持ポリシーを設定させる。そうではなく、メモリアクセス要求ベースのキャッシュライン共有パラメータ値が所定のキャッシュライン共有閾値を超えず、コア複合体122におけるキャッシュライン共有の量が比較的少ないことを示す場合、共有検出ロジック114は、上述したように、キャッシュコントローラに第2の共有キャッシュラインコピー保持ポリシーを設定させる。
【0016】
共有キャッシュラインコピー保持ポリシーを選択するための基礎として使用されるキャッシュライン共有パラメータ115が複数のキャッシュライン共有パラメータの集合であるいくつかの実施形態では、共有検出ロジック114は、シャドウタグベースのキャッシュライン共有パラメータ値及びメモリアクセス要求ベースのキャッシュライン共有パラメータ値の平均(場合によっては、加重平均)を計算し、次いで、その平均を所定のキャッシュライン共有閾値と比較する。平均が所定のキャッシュライン共有閾値を超え、コア複合体122におけるキャッシュライン共有量が比較的高いことを示す場合、共有検出ロジック114は、キャッシュコントローラに、上述した第1の共有キャッシュラインコピー保持ポリシーを設定させる。そうではなく、平均が所定のキャッシュライン共有閾値を超えず、コア複合体122におけるキャッシュライン共有量が比較的少ないことを示す場合、共有検出ロジック114は、キャッシュコントローラに、上述した第2の共有キャッシュラインコピー保持ポリシーを設定させる。
【0017】
いくつかの実施形態では、コア複合体122全体のキャッシュライン共有パラメータ115を判定し、キャッシュコントローラにL3キャッシュ108及びL2キャッシュ106の全ての共有キャッシュラインコピー保持ポリシーを設定させるのではなく、共有検出ロジック114は、コア102の各々又はコア102の各々で実行されているスレッドの各々について異なるキャッシュライン共有パラメータ115を判定し、キャッシュコントローラに、所定の閾値と対応するコア102又は対応するスレッドのキャッシュライン共有パラメータ115との比較に基づいて、共有キャッシュラインの共有キャッシュラインコピーをL3キャッシュ108内の所定のL2キャッシュ106に保持するための共有キャッシュラインコピー保持ポリシーを選択的に設定させるように構成される。例えば、コア102-1についての第1のキャッシュライン共有パラメータ115及びコア102-2についての第2のキャッシュライン共有パラメータ115の各々が、それらのそれぞれのキャッシュライン共有閾値を超え、コア102-3についての第3のキャッシュライン共有パラメータ115及びコア102-4についての第4のキャッシュライン共有パラメータ115の各々が、それらのそれぞれのキャッシュライン共有閾値を超えない場合、共有検出ロジック114は、それに応じて、キャッシュコントローラに、第1の共有キャッシュラインコピー保持ポリシーを使用するようにL2キャッシュ106-1及び106-2を設定させ(L2キャッシュ106-1及び106-2内の共有キャッシュラインをL3キャッシュ108内に保持させる)、及び、キャッシュコントローラに、第2の共有キャッシュラインコピー保持ポリシーを使用するようにL2キャッシュ106-3及び106-4を設定させる(L2キャッシュ106-3及び106-4内の共有キャッシュラインのコピーがL3キャッシュ108に保持されるのを防止し、場合によっては、そのような共有キャッシュラインの既存のコピーをL3キャッシュ108から追い出す)。いくつかの実施形態では、第1の共有キャッシュラインコピー保持ポリシーは、ポリシーの選択及び実施時に、L2キャッシュ106内の全ての共有キャッシュラインをL3キャッシュ108にコピー(例えば、バルクで)させる。いくつかの実施形態では、第1の共有キャッシュラインコピー保持ポリシーは、そのような共有キャッシュラインが別のプロセスの一部としてL3キャッシュ108に導入される場合(例えば、C2C転送中に共有キャッシュラインがL3キャッシュ108を通過する場合、又は、共有キャッシュラインがL2キャッシュ106の1つからL3キャッシュ108に追い出される場合)、第1の共有キャッシュラインのコピー保存ポリシーにより、L3キャッシュ108は、L2キャッシュ106の共有キャッシュラインのコピーを保存する。
【0018】
第2の例では、コンピュータ処理装置は、共有キャッシュラインコピー保持ポリシーの動的選択のために、セットデュリングモジュール116と共にセットデュリング機構を実装する。様々な実施形態によれば、セットデュリング機構は、L3キャッシュ108又はL2キャッシュ106のうち1つ以上の何れかのためのセットデュリングモジュール116によって実装される。本明細書では、「セットデュリング」は、キャッシュコントローラ(例えば、L2キャッシュ106及びL3キャッシュ108の何れか又は両方に関連付けられる)が、第1のポリシーと共に使用される第1のキャッシュラインインデックスのセット(「第1の専用セット」と呼ばれることもある)を割り当て、第2のポリシーと共に使用される第2のキャッシュラインインデックスのセット(本明細書では「第2の専用セット」と呼ばれることもある)を割り当て、1つ以上のカウンタ(本例ではカウンタ118)に基づいて、第1のポリシー又は第2のポリシーの一方と共に使用される第1及び第2の専用セットに含まれない他の全てのキャッシュラインインデックスのセット(本明細書では「フォロワセット」と呼ばれることもある)を割り当てる技術を指す。
【0019】
いくつかの実施形態では、性能モニタ120は、第1の専用セット及び第2の専用セットのそれぞれについて、L3キャッシュミス又はC2C転送のそれぞれの発生を別々に検出及び追跡するように構成される。いくつかの実施形態では、セットデュリングモジュール116は、第1の専用セット内の任意のキャッシュラインインデックスについて性能モニタ120によってL3キャッシュミス又はC2C転送が検出される毎に増分され、第2の専用セット内の任意のキャッシュラインインデックスについて性能モニタ120によってL3キャッシュミス又はC2C転送が検出される毎に減分される単一のカウンタ118を維持する。本明細書では、「L3キャッシュミス」は、メモリアクセス要求を実行しようとするキャッシュコントローラが、L3キャッシュ内の要求されたデータ(例えば、対応するキャッシュラインにおいて、)を見つけることができないインスタンスを指す。様々な実施形態によれば、カウンタが増分又は減分される量は、C2C転送の量と比較してL3キャッシュミスについて異なり、L3キャッシュミス及びC2C転送に効果的に重み付けが異なる。次に、セットデュリングモジュール116は、カウンタ118の値をカウンタ閾値と比較する。カウンタ118の値がカウンタ閾値を超えていると判定したことに応じて、セットデュリングモジュール116は、L3キャッシュ108にフォロワセットと共に第1のポリシーを使用させるようにキャッシュコントローラを構成する。カウンタ118の値がカウンタ閾値を超えていないと判定したことに応じて、セットデュリングモジュール116は、L3キャッシュ108にフォロワセットと共に第2のポリシーを使用させるようにキャッシュコントローラを構成する。いくつかの実施形態では、第1のポリシーは、上述した第1の共有キャッシュラインコピー保持ポリシーであり、第2のポリシーは、上述した第2の共有キャッシュラインコピー保持ポリシーである。
【0020】
セットデュリング機構がL2キャッシュ106に実装される実施形態の場合、1つ以上のキャッシュコントローラは、共有キャッシュラインコピー(ポリシーを使用したL2キャッシュ106の共有キャッシュラインに対応する)をL3キャッシュ108に保持させる第1の共有キャッシュラインコピー保持ポリシーと組み合わせて使用するために、L2キャッシュ106のL2キャッシュラインの第1の専用セットを割り当て、共有キャッシュラインコピー(ポリシーを使用したL2キャッシュ106の共有キャッシュラインに対応する)のL3キャッシュ108への保持を防止する第2の共有キャッシュラインコピー保持ポリシーと組み合わせて使用するために、L2キャッシュ106のL2キャッシュラインインデックスの第2の専用セットを割り当てる。いくつかの実施形態では、L2キャッシュ106の各々にそれぞれ別のセットデュリング機構が実装されるが、他の実施形態では、L2キャッシュ106のいくつか又は全てにわたって第1及び第2の専用セット及びフォロワセットを割り当てるために単一のセットデュリング機構が実装される。
【0021】
カウンタ118は、第1の専用セットの共有キャッシュラインに対するメモリアクセス要求から、又は、第2の専用セットの共有キャッシュラインに対するメモリアクセス要求からそれぞれ生じる、性能モニタ120によって検出されたL3キャッシュミス及びC2C転送に基づいて、セットデュリングモジュール116によって増減される。セットデュリングモジュール116は、カウンタ118の値をカウンタ閾値と定期的に比較する。カウンタ118の値がカウンタ閾値を超えていると判定したことに応じて、セットデュリングモジュール116は、L3キャッシュ108に、L2キャッシュ106のフォロワセットのための第1の共有キャッシュラインコピー保持ポリシーを使用させるように、1つ以上のキャッシュコントローラを構成する。カウンタ118の値がカウンタ閾値を超えていないと判定したことに応じて、セットデュリングモジュール116は、L3キャッシュ108に、L2キャッシュ106のフォロワセットのための第2の共有キャッシュラインコピー保持ポリシーを使用させるように、1つ以上のキャッシュコントローラを構成する。
【0022】
セットデュリング機構がL3キャッシュ108に実装される実施形態の場合、1つ以上のキャッシュコントローラは、共有キャッシュラインコピーをL3キャッシュ108に保持させる第1の共有キャッシュラインコピー保持ポリシーと併せて使用するために、L3キャッシュ108のL3キャッシュラインインデックスの第1の専用セットを割り当て、共有キャッシュラインコピーのL3キャッシュ108への保持を防止する第2の共有キャッシュラインコピー保持ポリシーと併せて使用するために、L3キャッシュ108のL3キャッシュラインインデックスの第2の専用セットを割り当てる。例えば、第1の共有キャッシュラインコピー保持ポリシーは、L3キャッシュラインインデックスの第1の専用セットに、L2キャッシュ106内又はL1キャッシュ104内に記憶されている共有キャッシュラインのコピーを保持させ、第2の共有キャッシュラインコピー保持ポリシーは、L3キャッシュラインインデックスの第2の専用セットが、L2キャッシュ106内又はL1キャッシュ104内に記憶されている共有キャッシュラインのコピーを保持することを防止する。
【0023】
カウンタ118は、第1の専用セット又は第2の専用セットのそれぞれについてセットデュリングモジュール116によって検出されたL3キャッシュミス及びC2C転送に基づいて増分又は減分される。セットデュリングモジュール116は、カウンタ118の値をカウンタ閾値と定期的に比較する。カウンタ118の値がカウンタ閾値を超えていると判定したことに応じて、セットデュリングモジュール116は、L3キャッシュ108に、L3キャッシュ108のフォロワセットのための第1の共有キャッシュラインコピー保持ポリシーを使用させるように、1つ以上のキャッシュコントローラを構成する。カウンタ118の値がカウンタ閾値を超えていないと判定したことに応じて、セットデュリングモジュール116は、L3キャッシュ108に、L3キャッシュ108のフォロワセットのための第2の共有キャッシュラインコピー保持ポリシーを使用させるように、1つ以上のキャッシュコントローラを構成する。
【0024】
図2は、いくつかの実施形態による、セットデュリング機構を使用してL3キャッシュのための共有キャッシュラインコピーポリシーを動的に選択するコンピュータ処理装置200(例えば、
図1のコンピュータ処理装置100の一実施形態)を示している。コンピュータ処理装置200は、概して、電子デバイスに代わってタスクを実行するために、コンピュータプログラムの形態で編成された命令セットを実行するように構成される。従って、コンピュータ処理装置200は、デスクトップ又はラップトップコンピュータ、サーバ、スマートフォン、タブレット、ゲームコンソール等の種々の電子デバイスの何れかで使用され得る。
【0025】
コンピュータ処理装置200は、コア202(すなわち、プロセッサコア)と、キャッシュコントローラ205と、L2キャッシュ206と、L3キャッシュ208と、を備える。いくつかの実施形態では、コンピュータ処理装置200は、複数のコア202、キャッシュコントローラ205及びL2キャッシュ206を含むが、これらの構成要素の各々のうち何れかのみが本例に示されていることを理解されたい。いくつかの実施形態では、コンピュータ処理装置200の各モジュールは同じ半導体ダイ上に形成され、メインメモリ210は異なる半導体ダイ上に形成され、1つ以上のバス又は信号線を介してコンピュータ処理装置200に接続される。いくつかの実施形態では、メインメモリ210の少なくとも一部は、コンピュータ処理装置200のモジュールと同じ半導体ダイ上に形成される。
【0026】
キャッシュコントローラ205は、概して、L2キャッシュ206、L3キャッシュ208及びメインメモリ210の間でデータを移動することによって、コンピュータ処理装置200のメモリ階層を管理するように構成されたモジュールである。特に、L2キャッシュ206及びL3キャッシュ208は、各々が複数のエントリを含むメモリデバイスであり、各エントリは、メインメモリ210の1つ以上のアドレスに関連付けられる。メモリアクセス要求に応じて、キャッシュコントローラ205は、L2キャッシュ206の1つ以上のエントリに記憶されたデータをレビューして、エントリの何れかがメモリアクセス要求の対象のメモリアドレスに関連するデータを記憶しているかどうかを判定する。そうである場合、キャッシュコントローラ105は、キャッシュヒットを示し、(ストア動作の場合)エントリにデータを記憶することによって、又は、(ロード動作の場合)識別されたエントリにおけるデータをプロセッサコア202に提供することの何れかによって、識別されたエントリにおけるメモリアクセス要求を満たす。
【0027】
L2キャッシュ206のエントリにメモリアドレスに関連付けられたデータが記憶されていない場合、キャッシュコントローラ205は、キャッシュミスを示し、L3キャッシュ208に対して要求を発行する。メモリアクセス要求に応じて、キャッシュコントローラ205(又は、いくつかの実施形態では、L3キャッシュ208に関連付けられた別のキャッシュコントローラ)は、L3キャッシュ208の1つ以上のエントリに記憶されたデータをレビューして、エントリの何れかがメモリアクセス要求の対象のメモリアドレスに関連付けられたデータを記憶しているかどうかを判定する。そうである場合、キャッシュコントローラ205は、キャッシュヒットを示し、エントリにデータを記憶することによって(ストア動作の場合)、又は、識別されたエントリのデータをL2キャッシュ206に提供することの何れかによって、識別されたエントリにおけるメモリアクセス要求を満たし、その後、データはそこからプロセッサコア202に提供される(ロード動作の場合)。メモリアドレスに関連付けられたデータがL3キャッシュ208のエントリに記憶されていない場合、キャッシュコントローラ205は、キャッシュミスを示し、メモリアドレスのデータをメインメモリ210に要求する。メインメモリ210からデータを受信すると、キャッシュコントローラ205は、L3キャッシュ208のエントリにデータを記憶し、そこからデータはL2キャッシュ206に転送され、次にプロセッサコア202にデータを提供し、メモリアクセス要求を満たす。
【0028】
図2の例では、L2キャッシュ206は、3つの領域、すなわち専用セット224及び226(それぞれのテスト領域に対応する)、並びに、フォロワセット228(非テスト領域に対応する)を含む。また、キャッシュコントローラ205は、L2キャッシュ206内の共有キャッシュラインのコピーをL3キャッシュ208に保持させるか否か等のように、少なくとも一態様が異なる第1及び第2の共有キャッシュラインコピー保持ポリシー211、213を記憶する。従って、
図2の例では、第1の共有キャッシュラインコピー保持ポリシー211は、L2キャッシュ206からの共有キャッシュラインコピーがL3キャッシュ208に保持されることを義務付ける。対照的に、第2の共有キャッシュラインコピー保持ポリシー213は、L2キャッシュ206からの共有キャッシュラインコピーがL3キャッシュ208に保持されないことを義務付ける。第1の共有キャッシュラインコピー保持ポリシー211は、概して、L2キャッシュ206の共有キャッシュラインが他のL2キャッシュに関連付けられたコア又は外部コア複合体内のコアによってより頻繁に要求される場合、L3キャッシュ208は、要求されたキャッシュラインのコピーがその中に記憶されている場合、そのような要求をより迅速に処理することができるので、コンピュータ処理装置200の性能を改善する。第2の共有キャッシュラインコピー保持ポリシー212は、固有のキャッシュラインを記憶するためにL3キャッシュ208内により多くの空間を提供し、これは典型的には、L3キャッシュ208を含むキャッシュ階層のキャッシュヒット率を改善する。L2キャッシュ206の共有キャッシュラインが他のコアによって要求される速度は、典型的には、経時的に変化し、その結果、キャッシュ110は、異なる時間に異なる転送ポリシーの下でより効率的に動作する。第1の専用セット224は、第1の共有キャッシュラインコピー保持ポリシー211と組み合わせて使用するために割り当てられ、第2の専用セット226は、第2の共有キャッシュラインコピー保持ポリシー213と組み合わせて使用するために割り当てられる。フォロワセット228については、キャッシュコントローラ205は、第1の専用セット224及び第2の専用セット226の性能特性(例えば、各セットに関連付けられたメモリアクセス要求に対応するL3キャッシュミス率及びC2C転送数)に応じて、共有キャッシュラインコピー保持ポリシー211、213を選択する。
【0029】
例示すると、コンピュータ処理装置200は、第1の専用セット224及び第2の専用セット226の各々について、L3キャッシュミス率及びC2C転送数等の性能特性を監視及び記録する性能モニタ220(例えば、
図1のセットデュリングモジュール120の一実施形態)を含む。キャッシュコントローラ205は、第1の専用セット224及び第2の専用セット226の性能特性のうち1つ以上又はそれらの組み合わせに基づいて、共有キャッシュラインコピー保持ポリシー211及び213のうち一方を選択し、これをフォロワセット228に適用する。例えば、第1の専用セット224の性能モニタ220によってL3キャッシュミスが検出される毎に、セットデュリングモジュール216は、カウンタ218の値を第1の量だけ増加させ、第2の専用セット226の性能モニタ220によってL3キャッシュミスが検出される毎に、セットデュリングモジュール216は、カウンタ218の値を第1の量だけ減少させ、第1の専用セット224の性能モニタ220によってC2C転送が検出される毎に、セットデュリングモジュール216は、カウンタ218の値を第2の量だけ増加させ、第2の専用セット226の性能モニタ220によってC2C転送が検出される毎に、セットデュリングモジュール216は、カウンタ218の値を第2の量だけ減少させる。いくつかの実施形態では、フォロワセット228は、L2キャッシュ206のエントリの大部分を含む。このように、キャッシュコントローラ205は、性能モニタ220によって検出された性能特性に基づいて、最も効率的であることが示されたポリシーとして、L2キャッシュ206及びL3キャッシュ208に対する共有キャッシュラインコピー保持ポリシーを選択することにより、L2キャッシュ206及びL3キャッシュ208の全体効率を向上させる。更に、第1及び第2の専用セット224及び226の性能特性が経時的に変化するにつれて、キャッシュコントローラは、共有キャッシュラインコピーポリシーを、性能特性の所定のセットに対してより効率的なポリシー(例えば、第1の共有キャッシュラインコピー保持ポリシー211及び第2の共有キャッシュラインコピー保持ポリシー213)に変更する。
【0030】
図2の例では、実装されたセットデュリング機構は、L2キャッシュ206内に第1及び第2の専用セット224及び226並びにフォロワセット228を割り当てるが、様々な他の実施形態によれば、セットデュリング機構は、代わりにL3キャッシュ208内又は複数のL2キャッシュ(例えば、
図1のL2キャッシュ106の実施形態)にわたって実装され得ることを理解されたい。
【0031】
図3は、コンピュータ処理装置の所定のコア複合体の1つ以上のキャッシュライン共有パラメータに基づいて共有キャッシュラインコピー保持ポリシーを動的に選択する方法300を示す。例示を容易にするために、方法300は、
図1のコンピュータ処理装置100及びその構成コンポーネントの例示的な実施形態に関して説明される。いくつかの実施形態では、コンピュータ処理装置100の一実施形態は、少なくとも部分的に、L2キャッシュ106及びL3キャッシュ108のコア102及びキャッシュコントローラのうち1つ以上でコンピュータ可読命令を遂行することによって、方法300を実行する。
【0032】
ブロック302において、共有検出ロジック114は、コンピュータ処理装置100の動作中に1つ以上のキャッシュライン共有パラメータ値(例えば、キャッシュライン共有パラメータ115のいくつかの実施形態に対応する値)を判定する。いくつかの実施形態において、共有検出ロジック114は、メモリアクセス要求ベースのキャッシュライン共有パラメータ値を判定するために、コア102によって発行されたメモリアクセス要求を監視する。例えば、共有検出ロジック114が、所定のキャッシュラインが所定の期間中に2つ以上のコア102によって発行されたメモリアクセス要求内で要求されていると判定した場合、所定のキャッシュラインが共有キャッシュラインとして識別され、共有検出ロジック114は、それに応じてメモリアクセス要求ベースのキャッシュライン共有パラメータ値を増分する。いくつかの実施形態では、共有検出ロジック114は、別のコア複合体に由来するキャッシュプローブが何れかのL2キャッシュ106に記憶されたキャッシュラインを要求していると判定したことに応じて、メモリアクセス要求ベースのキャッシュライン共有パラメータ値を増分する。これは、要求されたキャッシュラインが共有キャッシュラインであり、共有キャッシュラインのコピーがL3キャッシュ108に記憶されている場合、そのような要求をより迅速に満たすことができることを示すためである。いくつかの実施形態では、共有検出ロジック114は、シャドウタグベースのキャッシュライン共有パラメータ値を判定するために、L2シャドウタグ112をチェックする。例えば、共有検出ロジック114は、シャドウタグベースのキャッシュライン共有パラメータ値を、L2シャドウタグ112に含まれる状態又はタグ情報に基づいて、複数のコア102によって共有されることが示されているL2キャッシュラインの数に等しく設定する。様々な実施形態によれば、判定されたキャッシュライン共有パラメータ値は、シャドウタグベースのキャッシュライン共有パラメータ、メモリアクセス要求ベースのキャッシュライン共有パラメータ、又は、集約キャッシュライン共有パラメータ(例えば、シャドウタグベースのキャッシュライン共有パラメータ値及びメモリアクセス要求ベースのキャッシュライン共有パラメータ値の平均)の何れかである。
【0033】
ブロック304において、共有検出ロジック114は、判定されたキャッシュライン共有パラメータ値をキャッシュライン共有閾値と比較する。いくつかの実施形態では、キャッシュライン共有パラメータ値は、コア複合体120内の共有キャッシュラインをターゲットとするメモリアクセス要求、キャッシュプローブ、又は、その両方の量に基づいて判定された共有キャッシュラインの数を表すメモリアクセス要求ベースのキャッシュライン共有パラメータ値に対応し、キャッシュライン共有閾値は、そのようなメモリアクセス要求、キャッシュプローブ、又は、その両方の閾値数に対応する。いくつかの実施形態では、キャッシュライン共有パラメータ値は、L3キャッシュ108のL2シャドウタグ112に示される共有キャッシュラインの量を示すシャドウタグベースのキャッシュライン共有パラメータ値に対応し、キャッシュライン共有閾値は、そのような共有キャッシュラインの閾値数に対応する。キャッシュライン共有閾値がキャッシュライン共有パラメータ値を超えるという判定は、コア複合体120の複数のコア102間のキャッシュライン共有の発生率が高い(又は、場合によっては、コア複合体120の外側のコア)ことを示し、その結果、L3キャッシュ108内に共有キャッシュラインコピーを保持するポリシー(例えば、第1の共有キャッシュラインコピー保持ポリシー)の実装は、コンピュータ処理装置100の性能を改善する。共有検出ロジック114が、キャッシュライン共有パラメータ値がキャッシュライン共有閾値を超えていると判定した場合、方法300はブロック306に進む。共有検出ロジック114が、キャッシュライン共有パラメータ値がキャッシュライン共有閾値を超えないと判定した場合、方法300はブロック308に進む。
【0034】
ブロック306において、キャッシュライン共有パラメータ値がキャッシュライン共有閾値を超えているという判定に応じて、共有検出ロジック114は、L3キャッシュ108が共有キャッシュラインのコピー(L2キャッシュ106の共有キャッシュラインに対応する)をL3キャッシュ108内に保持する第1のポリシー(例えば、第1の共有キャッシュライン保持ポリシー)にL3キャッシュ108を従わせる。いくつかの実施形態では、L3キャッシュ108に関連付けられたキャッシュコントローラは、キャッシュ共有閾値がキャッシュライン共有パラメータ値によって超過されたという指標を共有検出ロジック114から受信したことに応じて、第1のポリシーを設定する。
【0035】
ブロック308において、キャッシュライン共有閾値がキャッシュライン共有パラメータ値によって超過されていないという判定に応じて、共有検出ロジック114は、L3キャッシュ108に、L3キャッシュ108がL3キャッシュ108内の共有キャッシュラインコピー(L2キャッシュ106の共有キャッシュラインに対応する)の保持を防止する第2のポリシー(例えば、第2の共有キャッシュライン保持ポリシー)に従わせる。いくつかの実施形態では、L3キャッシュ108に関連付けられたキャッシュコントローラは、キャッシュ共有閾値がキャッシュライン共有パラメータ値によって超過されていないという指標を共有検出ロジック114から受信したことに応じて、第2のポリシーを設定する。第2のポリシーは、例えばC2C転送をサービスする場合にL3キャッシュ108が共有キャッシュラインのコピーを一時的に記憶することを妨げず、代わりにL3キャッシュ108がL2キャッシュ106又はL1キャッシュ104のうち1つ以上に既に記憶されている共有キャッシュラインのコピーを記憶することを妨げることに留意されたい。
【0036】
図4は、コンピュータ処理装置のコア複合体の1つ以上のL2キャッシュ内に実装されたセットデュリング機構に従って共有キャッシュラインコピー保持ポリシーを動的に選択する方法400を示す。例示を容易にするために、方法400は、
図1のコンピュータ処理装置100及びその構成コンポーネントの例示的な実施形態に関して説明される。しかしながら、方法400は、いくつかの実施形態では、
図2のコンピュータ処理装置200の1つ以上の実施形態を使用して実行されることを理解されたい。いくつかの実施形態では、コンピュータ処理装置100の一実施形態は、少なくとも部分的に、L2キャッシュ106及びL3キャッシュ108のコア102及びキャッシュコントローラのうち1つ以上でコンピュータ可読命令を実行することによって、方法400を実行する。
【0037】
ブロック402において、セットデュリングモジュール116は、L2キャッシュ106に関連付けられた1つ以上のキャッシュコントローラに、第1の専用セットから生じる共有キャッシュラインコピーがL3キャッシュ108に保持されることに従って、第1のポリシー(例えば、第1の共有キャッシュライン保持ポリシー)と併せて使用するための第1の専用セットのL2キャッシュラインインデックスを割り当てさせる。
【0038】
ブロック404において、セットデュリングモジュール116は、第2の専用セットから生じる共有キャッシュラインコピーがL3キャッシュ108内に保持されていないことに従って、第2のポリシー(例えば、第2の共有キャッシュライン保持ポリシー)と併せて使用するために、L2キャッシュラインインデックスの第2の専用セットを1つ以上のキャッシュコントローラに割り当てさせる。
【0039】
ブロック406において、性能モニタ120は、L2キャッシュラインインデックスの第1の専用セットに関連付けられたL3キャッシュミス及びC2C転送を検出し、L2キャッシュラインインデックスの第1の専用セットに関連付けられたL3キャッシュミス及びC2C転送を別々に検出し、セットデュリングモジュール116は、カウンタ118を使用してこれらのイベントを追跡する。例えば、セットデュリングモジュール116は、第1の専用セットのキャッシュラインに対するメモリアクセス要求に関連する検出されたL3キャッシュミス毎にカウンタを第1の量だけ増分し、第1の専用セットのキャッシュラインに対するメモリアクセス要求に関連する検出されたC2C転送毎にカウンタを第2の量だけ増分し、第2の専用セットのキャッシュラインに対するメモリアクセス要求に関連する検出されたL3キャッシュミス毎にカウンタを第1の量だけ減分し、第2の専用セットのキャッシュラインに対するメモリアクセス要求に関連する検出されたC2C転送毎にカウンタを第2の量だけ減分する。いくつかの実施形態では、第1の量と第2の量は同じである。いくつかの実施形態では、第2の量は第1の量よりも大きく、これは、カウンタの値に対するそれぞれの影響に関して、L3キャッシュミスよりも高いC2C転送に効果的に重み付けする。いくつかの代替の実施形態では、セットデュリングロジックは、カウンタ118の第1のカウンタを使用して、第1の専用セットに関連付けられたL3キャッシュミス及びC2C転送を追跡し、カウンタ118の第2のカウンタを使用して、第2の専用セットに関連付けられたL3キャッシュミス及びC2C転送を追跡する。
【0040】
ブロック408において、セットデュリングモジュール116は、カウンタ値をカウンタ閾値と比較する。カウンタ閾値をカウンタ値が超えた場合、方法400はブロック410に進む。カウンタ閾値をカウンタ値が超えていない場合、方法400はブロック412に進む。
【0041】
ブロック410において、セットデュリングモジュール116は、L2キャッシュラインインデックスのフォロワセットのための第1のポリシーをL3キャッシュ108に使用させ、第1のポリシーは、フォロワセットから生じる共有キャッシュラインコピーをL3キャッシュ108に保持させる。いくつかの実施形態では、L3キャッシュ108に関連付けられたキャッシュコントローラは、カウンタ閾値がカウンタ値によって超えられているという指標を設定されたセットデュリングモジュール116から受信したことに応じて、フォロワセットの第1のポリシーを設定する。
【0042】
ブロック412において、セットデュリングモジュール116は、L2キャッシュラインインデックスのフォロワセットのための第2のポリシーをL3キャッシュ108に使用させ、第2のポリシーは、フォロワセットから生じる共有キャッシュラインコピーがL3キャッシュ108に保持されることを防止する。いくつかの実施形態では、L3キャッシュ108に関連付けられたキャッシュコントローラは、カウンタ閾値がカウンタ値によって超過されていないという指標を設定されたセットデュリングモジュール116から受信したことに応じて、フォロワセットの第2のポリシーを設定する。
【0043】
図5は、コンピュータ処理装置のコア複合体の1つ以上のL2キャッシュ内に実装されたセットデュリング機構に従って共有キャッシュラインコピー保持ポリシーを動的に選択する方法500を示す。例示を容易にするために、方法500は、
図1のコンピュータ処理装置100及びその構成コンポーネントの例示的な実施形態に関して説明される。しかしながら、方法500は、いくつかの実施形態では、
図2のコンピュータ処理装置200の1つ以上の実施形態を使用して実行されることを理解されたい。いくつかの実施形態では、コンピュータ処理装置100の一実施形態は、少なくとも部分的に、L2キャッシュ106及びL3キャッシュ108のコア102及びキャッシュコントローラのうち1つ以上でコンピュータ可読命令を実行することによって、方法500を実行する。
【0044】
ブロック502において、セットデュリングモジュール116は、L3キャッシュ108に関連付けられたキャッシュコントローラに、L2キャッシュ106から生じる共有キャッシュラインコピーがL3キャッシュ108のL3キャッシュラインインデックスの第1の専用セットに保持されるようにする第1のポリシー(例えば、第1の共有キャッシュライン保持ポリシー)と併せて使用するために、L3キャッシュラインインデックスの第1の専用セットを割り当てさせる。
【0045】
ブロック504において、セットデュリングモジュール116は、キャッシュコントローラに、L2キャッシュ106から生じる共有キャッシュラインコピーがL3キャッシュ108のL3キャッシュラインインデックスの第2の専用セットに保持されないという第2のポリシー(例えば、第2の共有キャッシュライン保持ポリシー)と併せて使用するために、L3キャッシュラインインデックスの第2の専用セットを割り当てさせる。
【0046】
ブロック506において、性能モニタ120は、L3キャッシュラインインデックスの第1の専用セットに関連付けられたL3キャッシュミス及びC2C転送を検出し、L3キャッシュラインインデックスの第1の専用セットに関連付けられたL3キャッシュミス及びC2C転送を別々に検出し、セットデュリングモジュールは、カウンタ118を使用してこれらのイベントを追跡する。例えば、セットデュリングモジュール116は、第1の専用セットのキャッシュラインに対するメモリアクセス要求に関連する検出されたL3キャッシュミス毎にカウンタを第1の量だけ増分し、第1の専用セットのキャッシュラインに対するメモリアクセス要求に関連する検出されたC2C転送毎にカウンタを第2の量だけ増分し、第2の専用セットのキャッシュラインに対するメモリアクセス要求に関連する検出されたL3キャッシュミス毎にカウンタを第1の量だけ減分し、第2の専用セットのキャッシュラインに対するメモリアクセス要求に関連する検出されたC2C転送毎にカウンタを第2の量だけ減分する。いくつかの実施形態では、第1の量と第2の量は同じである。いくつかの実施形態では、第2の量は第1の量よりも大きく、これは、カウンタの値に対するそれぞれの影響に関して、L3キャッシュミスよりも高いC2C転送に効果的に重み付けする。いくつかの代替の実施形態では、セットデュリングロジックは、カウンタ118の第1のカウンタを使用して、第1の専用セットに関連付けられたL3キャッシュミス及びC2C転送を追跡し、カウンタ118の第2のカウンタを使用して、第2の専用セットに関連付けられたL3キャッシュミス及びC2C転送を追跡する。
【0047】
ブロック508において、セットデュリングモジュール116は、カウンタ値をカウンタ閾値と比較する。カウンタ閾値をカウンタ値が超えた場合、方法500はブロック510に進む。カウンタ閾値をカウンタ値が超えていない場合、方法500はブロック512に進む。
【0048】
ブロック510において、セットデュリングモジュール116は、L3キャッシュ108に、L3キャッシュラインインデックスのフォロワセットのための第1のポリシーを使用させ、第1のポリシーは、L2キャッシュ106から生じる共有キャッシュラインコピーをL3キャッシュ108のL3キャッシュラインインデックスのフォロワセットに保持させる。いくつかの実施形態では、L3キャッシュ108に関連付けられたキャッシュコントローラは、カウンタ閾値がカウンタ値によって超えられているという指標を設定されたセットデュリングモジュール116から受信したことに応じて、フォロワセットの第1のポリシーを設定する。
【0049】
ブロック512において、セットデュリングモジュール116は、L3キャッシュ108に、L3キャッシュラインインデックスのフォロワセットのための第2のポリシーを使用させ、第2のポリシーは、L2キャッシュ106から生じる共有キャッシュラインコピーがL3キャッシュ108のL3キャッシュラインインデックスのフォロワセットに保持されることを防止する。いくつかの実施形態では、L3キャッシュ108に関連付けられたキャッシュコントローラは、カウンタ閾値がカウンタ値によって超過されていないという指標を設定されたセットデュリングモジュール116から受信したことに応じて、フォロワセットの第2のポリシーを設定する。
【0050】
本明細書で開示されるように、いくつかの実施形態では、方法は、コンピュータ処理装置の複数のキャッシュ内の共有キャッシュラインの量を示すキャッシュライン共有パラメータを判定することと、キャッシュライン共有パラメータに基づいて、複数のキャッシュに結合されたキャッシュのための共有キャッシュラインコピー保持ポリシーを設定することと、を含む。一態様では、キャッシュライン共有パラメータを判定することは、コンピュータ処理装置のコアによって発行されたメモリアクセス要求に基づいて、2つ以上のコアによって要求されたキャッシュラインを第1の共有キャッシュラインとして識別すること、及び、第1の共有キャッシュラインに少なくとも部分的に基づいてキャッシュライン共有パラメータを判定することを含む。別の態様では、キャッシュライン共有パラメータを判定することは、外部コア複合体のコアによって発行されたキャッシュプローブに基づいて、キャッシュプローブで要求された複数のキャッシュのキャッシュラインを第2の共有キャッシュラインとして識別することであって、キャッシュライン共有パラメータは、第2の共有キャッシュラインに更に基づいて判定される、ことを更に含む。更に別の態様では、キャッシュライン共有パラメータを判定することは、キャッシュ内に記憶されたシャドウタグに示された共有キャッシュラインの数に基づいてキャッシュライン共有パラメータを判定することであって、シャドウタグが複数のキャッシュ内の全てのキャッシュラインのリストを提供する、ことを含む。
【0051】
一態様では、本方法は、コンピュータ処理装置のコアによって発行されたメモリアクセス要求に基づいて、2つ以上のコアによって要求されたキャッシュラインを第1の共有キャッシュラインとして識別することと、第1の共有キャッシュラインに少なくとも部分的に基づいて、第1のキャッシュライン共有パラメータを判定することと、キャッシュ内に記憶されたシャドウタグに示された共有キャッシュラインの数に基づいて第2のキャッシュライン共有パラメータを判定することであって、シャドウタグは、複数のキャッシュ内の全てのキャッシュラインのリストを提供する、ことと、キャッシュライン共有パラメータを、第1のキャッシュライン共有パラメータと第2のキャッシュライン共有パラメータとの平均として判定することと、を含む、キャッシュライン共有パラメータを判定することを含む。別の態様では、キャッシュのための共有キャッシュラインコピー保持ポリシーは、複数のキャッシュの共有キャッシュラインのコピーがキャッシュに保持されているかどうかを判定する。
【0052】
いくつかの実施形態では、方法は、第1のレベルのキャッシュのセット及び第2のレベルのキャッシュのための共有キャッシュラインコピー保持ポリシーを選択するために、コンピュータ処理装置のコア複合体内でセットデュリングを実装することを含む。一態様では、セットデュリングを実装することは、第1の共有キャッシュラインコピー保持ポリシーと併せて使用するための第1の専用セットのキャッシュラインインデックスを割り当てることと、第2の共有キャッシュラインコピー保持ポリシーと併せて使用するためのキャッシュラインインデックスの第2の専用セットを割り当てることと、カウンタを使用して、第2のレベルのキャッシュに関連付けられたキャッシュミスと、第1の専用セット及び第2の専用セットのそれぞれに関連付けられたキャッシュ間(C2C)転送とを別々に追跡することと、カウンタに基づいて、キャッシュラインインデックスの1つ以上のフォロワセットのための第1の共有キャッシュラインコピー保持ポリシー及び第2の第1の共有キャッシュラインコピー保持ポリシーのうち何れかを使用するように第2のレベルのキャッシュを構成することと、を含む。別の態様では、キャッシュラインインデックスの第1の専用セット、キャッシュラインインデックスの第2の専用セット、及び、キャッシュラインインデックスの1つ以上のフォロワセットは、コア複合体の第1のレベルのキャッシュのセットのキャッシュラインインデックスである。更に別の態様では、キャッシュラインインデックスの第1の専用セット、キャッシュラインインデックスの第2の専用セット、及び、キャッシュラインインデックスの1つ以上のフォロワセットは、第2のレベルのキャッシュのキャッシュラインインデックスである。更に別の態様では、第1の共有キャッシュラインコピー保持ポリシーは、第2のレベルのキャッシュに、コア複合体の第1のレベルのキャッシュのセットの共有キャッシュラインのコピーを保持させ、第2の共有キャッシュラインコピー保持ポリシーは、第2のレベルのキャッシュに、第1のレベルのキャッシュのセットの共有キャッシュラインのコピーを保持させない。
【0053】
いくつかの実施形態では、コンピュータ処理装置は、第1のレベルのキャッシュのセット、及び、第1のレベルのキャッシュのセットに結合された第2のレベルのキャッシュを含み、コンピュータ処理装置は、第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュの共有キャッシュラインが第2のレベルのキャッシュに保持されているかどうかを判定する共有キャッシュラインコピー保持ポリシーを動的に選択するように構成されている。一態様では、コンピュータ処理装置は、第1のレベルのキャッシュのセットの少なくとも1つのキャッシュ内の共有キャッシュラインの量を示すキャッシュライン共有パラメータを判定するように構成された共有検出ロジックを含み、第2のレベルのキャッシュは、キャッシュライン共有パラメータに基づいて共有キャッシュラインコピー保持ポリシーを動的に選択するように構成されている。別の態様では、請求項に記載のコンピュータ処理装置は、第1のレベルのキャッシュのセットに結合された複数のプロセッサコアを含み、共有検出ロジックは、複数のプロセッサコアの何れかによって発行されたメモリアクセス要求に基づいて、第1の共有キャッシュラインであるとして2つ以上のコアによって要求された第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュのキャッシュラインを識別し、第1の共有キャッシュラインの量に少なくとも部分的に基づいてキャッシュライン共有パラメータを判定するように構成されている。
【0054】
一態様では、共有検出ロジックは、第2のレベルのキャッシュに記憶されたシャドウタグに示される共有キャッシュラインの数に基づいてキャッシュライン共有パラメータを判定するように構成され、シャドウタグは、第1のレベルのキャッシュのセット内の全てのキャッシュラインのリストを提供する。別の態様では、コンピュータ処理装置は、コンピュータ処理装置内にセットデュリング機構を実装するように構成されたセットデュリングモジュールを含み、第2のレベルのキャッシュは、セットデュリング機構に関連付けられたカウンタに基づいて共有キャッシュラインコピー保持ポリシーを動的に選択するように構成される。
【0055】
一態様では、セットデュリングモジュールは、第1の共有キャッシュラインコピー保持ポリシーと併せて使用するためのキャッシュラインインデックスの第1の専用セットを割り当て、第2の共有キャッシュラインコピー保持インデックスポリシーと併せて使用するために、キャッシュラインインデックスの第2の専用セットを割り当て、カウンタを使用して、第2のレベルのキャッシュに関連するキャッシュミスと、第1の専用セット及び第2の専用セットの各々に関連するキャッシュ間(C2C)転送とを別々に追跡するように構成され、第2のレベルのキャッシュは、カウンタに基づいて、キャッシュラインインデックスの1つ以上のフォロワセットに使用される第1の共有キャッシュラインコピー保持ポリシー及び第2の第1の共有キャッシュラインコピー保持ポリシーのうち何れかを選択するように構成される。別の態様では、キャッシュラインインデックスの第1の専用セット、キャッシュラインインデックスの第2の専用セット、及び、キャッシュラインインデックスの1つ以上のフォロワセットは、第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュのキャッシュラインインデックスである。更に別の態様では、キャッシュラインインデックスの第1の専用セット、キャッシュラインインデックスの第2の専用セット、及び、キャッシュラインインデックスの1つ以上のフォロワセットは、第2のレベルのキャッシュのキャッシュラインインデックスである。更に別の態様では、第1の共有キャッシュラインコピー保持ポリシーは、第2のレベルのキャッシュに、第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュの共有キャッシュラインのコピーを保持させ、第2の共有キャッシュラインコピー保持ポリシーは、第2のレベルのキャッシュに、第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュの共有キャッシュラインのコピーを保持させないようにする。
【0056】
いくつかの実施形態では、上述した装置及び技術は、
図1を参照して上述したコンピュータ処理装置100等の1つ以上の集積回路(IC)装置(集積回路パッケージ又はマイクロチップとも称される)を含むシステムに実装される。電子設計自動化(electronic design automation、EDA)及びコンピュータ支援設計(computer aided design、CAD)ソフトウェアツールは、これらのICデバイスの設計及び製造に使用することができる。これらの設計ツールは、典型的には、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計するか又は適応させるためのプロセスの少なくとも一部を実行するために、1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作するための、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含み得る。設計ツール又は製造ツールを表すソフトウェア命令は、典型的には、コンピューティングシステムにアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上の段階を表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶され、そこからアクセスされる。
【0057】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0058】
いくつかの実施形態では、上述した技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装される。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶されるか、別の方法で明確に具体化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、命令及び特定のデータを含んでもよく、当該命令及び特定のデータは、1つ以上のプロセッサによって実行されると、上述した技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する。非一時的なコンピュータ可読記憶媒体は、例えば、磁気又は光ディスク記憶デバイス、フラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス(単数又は複数)等を含み得る。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈され若しくは別の方法で実行可能な他の命令形式で実装可能である。
【0059】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0060】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【手続補正書】
【提出日】2024-07-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
コンピュータ処理装置の複数のキャッシュにおける共有キャッシュラインの量を示すキャッシュライン共有パラメータを判定することと、
前記キャッシュライン共有パラメータに基づいて、前記複数のキャッシュに結合されたキャッシュの共有キャッシュラインコピー保持ポリシーを設定することと、を含む、
方法。
【請求項2】
前記キャッシュライン共有パラメータを判定することは、
前記コンピュータ処理装置のコアによって発行されたメモリアクセス要求に基づいて、2つ以上のコアによって要求されたキャッシュラインを第1の共有キャッシュラインとして識別することと、
前記第1の共有キャッシュラインに少なくとも部分的に基づいて、前記キャッシュライン共有パラメータを判定することと、を含む、
請求項1の方法。
【請求項3】
前記キャッシュライン共有パラメータを判定することは、
外部コア複合体のコアによって発行されたキャッシュプローブに基づいて、前記キャッシュプローブにおいて要求された前記複数のキャッシュのキャッシュラインを第2の共有キャッシュラインとして識別することであって、前記キャッシュライン共有パラメータは、前記第2の共有キャッシュラインに基づいて判定される、ことと、を含む、
請求項2の方法。
【請求項4】
前記キャッシュライン共有パラメータを判定することは、
前記キャッシュに記憶されたシャドウタグに示された共有キャッシュラインの数に基づいて前記キャッシュライン共有パラメータを判定することであって、前記シャドウタグは、前記複数のキャッシュ内の全てのキャッシュラインのリストを提供する、ことを含む、
請求項1の方法。
【請求項5】
前記キャッシュライン共有パラメータを判定することは、
前記コンピュータ処理装置のコアによって発行されたメモリアクセス要求に基づいて、2つ以上のコアによって要求されたキャッシュラインを第1の共有キャッシュラインとして識別することと、
前記第1の共有キャッシュラインに少なくとも部分的に基づいて、第1のキャッシュライン共有パラメータを判定することと、
前記キャッシュに記憶されたシャドウタグに示された共有キャッシュラインの数に基づいて第2のキャッシュライン共有パラメータを判定することであって、前記シャドウタグは、前記複数のキャッシュ内の全てのキャッシュラインのリストを提供する、ことと、
前記キャッシュライン共有パラメータを、前記第1のキャッシュライン共有パラメータと前記第2のキャッシュライン共有パラメータとの平均として判定することと、を含む、
請求項1の方法。
【請求項6】
前記キャッシュの共有キャッシュラインコピー保持ポリシーは、前記複数のキャッシュの共有キャッシュラインのコピーが前記キャッシュに保持されるかどうかを判定する、
請求項1~5の何れかの方法。
【請求項7】
コンピュータ処理装置であって、
第1のレベルのキャッシュのセットと、
前記第1のレベルのキャッシュのセットに結合された第2のレベルのキャッシュであって、前記コンピュータ処理装置は、前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュの共有キャッシュラインが前記第2のレベルのキャッシュ内に保持されるかどうかを判定する共有キャッシュラインコピー保持ポリシーを動的に選択するように構成されている、第2のレベルのキャッシュと、を備える、
コンピュータ処理装置。
【請求項8】
前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュ内の共有キャッシュラインの量を示すキャッシュライン共有パラメータを判定するように構成された共有検出ロジックであって、前記第2のレベルのキャッシュは、前記キャッシュライン共有パラメータに基づいて前記共有キャッシュラインコピー保持ポリシーを動的に選択するように構成されている、共有検出ロジックを備える、
請求項
7のコンピュータ処理装置。
【請求項9】
前記第1のレベルのキャッシュのセットに結合された複数のプロセッサコアを備え、
前記共有検出ロジックは、
前記複数のプロセッサコアの何れかによって発行されたメモリアクセス要求に基づいて、2つ以上のコアによって要求される前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュのキャッシュラインを、第1の共有キャッシュラインであるとして識別することと、
前記第1の共有キャッシュラインの量に少なくとも部分的に基づいて、前記キャッシュライン共有パラメータを判定することと、
を行うように構成されている、
請求項
8のコンピュータ処理装置。
【請求項10】
前記共有検出ロジックは、前記第2のレベルのキャッシュに記憶されたシャドウタグに示される共有キャッシュラインの数に基づいて前記キャッシュライン共有パラメータを判定するように構成されており、
前記シャドウタグは、前記第1のレベルのキャッシュのセット内の全てのキャッシュラインのリストを提供する、
請求項
9のコンピュータ処理装置。
【請求項11】
前記コンピュータ処理装置にセットデュリング機構を実装するように構成されたセットデュリングモジュールであって、前記第2のレベルのキャッシュは、前記セットデュリング機構に関連付けられたカウンタに基づいて前記共有キャッシュラインコピー保持ポリシーを動的に選択するように構成されている、セットデュリングモジュールを備える、
請求項
7のコンピュータ処理装置。
【請求項12】
前記セットデュリングモジュールは、
第1の共有キャッシュラインコピー保持ポリシーと併せて使用するために、キャッシュラインインデックスの第1の専用セットを割り当てることと、
第2の共有キャッシュラインコピー保持ポリシーと併せて使用するために、キャッシュラインインデックスの第2の専用セットを割り当てることと、
前記カウンタを使用して、前記第2のレベルのキャッシュに関連付けられたキャッシュミスと、前記第1の専用セット及び前記第2の専用セットの各々に関連するキャッシュ間(C2C)転送と、を別々に追跡することであって、前記第2のレベルのキャッシュは、前記カウンタに基づいて、前記第1の共有キャッシュラインコピー保持ポリシー及び第2の第1の共有キャッシュラインコピー保持ポリシーのうち何れかを、キャッシュラインインデックスの1つ以上のフォロワセットに使用するために選択するように構成されている、ことと、
を行うように構成されている、
請求項
11のコンピュータ処理装置。
【請求項13】
前記キャッシュラインインデックスの第1の専用セット、前記キャッシュラインインデックスの第2の専用セット、及び、前記キャッシュラインインデックスの1つ以上のフォロワセットは、前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュのキャッシュラインインデックスである、
請求項
12のコンピュータ処理装置。
【請求項14】
前記キャッシュラインインデックスの第1の専用セット、前記キャッシュラインインデックスの第2の専用セット、及び、前記キャッシュラインインデックスの1つ以上のフォロワセットは、前記第2のレベルのキャッシュのキャッシュラインインデックスである、
請求項
12のコンピュータ処理装置。
【請求項15】
前記第1の共有キャッシュラインコピー保持ポリシーは、前記第2のレベルのキャッシュに、前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュの共有キャッシュラインのコピーを保持させ、前記第2の共有キャッシュラインコピー保持ポリシーは、前記第2のレベルのキャッシュに、前記第1のレベルのキャッシュのセットのうち少なくとも1つのキャッシュの共有キャッシュラインのコピーを保持させない、
請求項
12のコンピュータ処理装置。
【国際調査報告】