(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-30
(54)【発明の名称】プロセッサ作業負荷に基づくキャッシュサイズ変更
(51)【国際特許分類】
G06F 12/0864 20160101AFI20240920BHJP
G06F 12/0897 20160101ALI20240920BHJP
【FI】
G06F12/0864
G06F12/0897 110
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024518306
(86)(22)【出願日】2022-09-27
(85)【翻訳文提出日】2024-05-02
(86)【国際出願番号】 US2022044842
(87)【国際公開番号】W WO2023055718
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ディリップ ジャー
(72)【発明者】
【氏名】ウィリアム ウォーカー
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205JJ05
5B205MM01
5B205TT02
5B205UU43
(57)【要約】
プロセッサ[100]は、プロセッサで実行される識別された作業負荷[109]に基づいて、プロセッサキャッシュ[110]のサイズを設定する。キャッシュサイズは、プロセッサが低電力モードを終了することに応じて設定される[502]。プロセッサは、作業負荷に基づいてキャッシュのサイズを設定することによって、特定の作業負荷の特性に合わせてキャッシュのサイズを調整することができ、一方で、少なくともいくつかの作業負荷について、低電力モードに入ること又は出ることに関連するオーバーヘッドも低減する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
方法であって、
プロセッサにおいて第1の作業負荷を識別することと、
前記プロセッサにおいて低電力状態を終了することに応じて、識別された前記第1の作業負荷に基づいて、第1のキャッシュのサイズを設定することと、を含む、
方法。
【請求項2】
前記第1の作業負荷を識別することは、第2のキャッシュのアクセス特性に基づいて、前記第1の作業負荷を識別することを含む、
請求項1の方法。
【請求項3】
前記第2のキャッシュのアクセス特性は、前記第2のキャッシュにおけるキャッシュビクティムの数を含む、
請求項2の方法。
【請求項4】
前記キャッシュビクティムの数は、前記プロセッサにおいて前記低電力状態を最後に終了してからのキャッシュビクティムの数を含む、
請求項3の方法。
【請求項5】
前記アクセス特性は、前記第2のキャッシュにおけるキャッシュビクティムレートを含む、
請求項2の方法。
【請求項6】
前記第1の作業負荷を識別することは、前記プロセッサにおいて前記低電力状態に移行する要求に応じて、前記第1の作業負荷を識別することを含む、
請求項1の方法。
【請求項7】
前記第1の作業負荷を識別することは、前記プロセッサにおけるアクティブなプロセッサコアの数に基づいて、前記第1の作業負荷を識別することを含む、
請求項1の方法。
【請求項8】
前記第1のキャッシュのサイズを設定することは、前記第1の作業負荷に基づいて、事前定義された複数のキャッシュサイズから選択することを含む、
請求項1の方法。
【請求項9】
前記第1のキャッシュのサイズを設定することは、カウンタにおける値に基づいて前記第1のキャッシュのサイズを設定することを含み、前記値は、前記第1の作業負荷が識別された回数を示す、
請求項1の方法。
【請求項10】
方法であって、
プロセッサの第1のキャッシュにおけるアクセス特性を識別することと、
低電力モードを終了することに応じて、識別された前記アクセス特性に基づいて、前記プロセッサの第2のキャッシュのサイズを設定することと、を含む、
方法。
【請求項11】
前記第2のキャッシュのサイズを設定することは、前記プロセッサにおけるアクティブなプロセッサコアの数に基づいて、前記第2のキャッシュのサイズを設定することを含む、
請求項10の方法。
【請求項12】
プロセッサであって、
第1のキャッシュと、
キャッシュコントローラと、を備え、
前記キャッシュコントローラは、
前記プロセッサにおける第1の作業負荷を識別することと、
前記プロセッサが低電力状態を終了することに応じて、識別された前記第1の作業負荷に基づいて、第1のキャッシュのサイズを設定することと、
を行うように構成されている、
プロセッサ。
【請求項13】
第2のキャッシュを備え、
前記キャッシュコントローラは、前記第2のキャッシュのアクセス特性に基づいて、前記第1の作業負荷を識別する、
請求項12のプロセッサ。
【請求項14】
前記第2のキャッシュのアクセス特性は、前記第2のキャッシュにおけるキャッシュビクティムの数を含む、
請求項13のプロセッサ。
【請求項15】
前記キャッシュビクティムの数は、前記プロセッサにおいて前記低電力状態を最後に終了してからのキャッシュビクティムの数を含む、
請求項14のプロセッサ。
【請求項16】
前記アクセス特性は、前記第2のキャッシュにおけるキャッシュビクティムレートを含む、
請求項13のプロセッサ。
【請求項17】
前記キャッシュコントローラは、前記プロセッサにおいて前記低電力状態に移行する要求に応じて、前記第1の作業負荷を識別するように構成されている、
請求項12のプロセッサ。
【請求項18】
前記キャッシュコントローラは、前記プロセッサにおけるアクティブなプロセッサコアの数に基づいて、前記第1の作業負荷を識別するように構成されている、
請求項12のプロセッサ。
【請求項19】
前記キャッシュコントローラは、前記第1の作業負荷に基づいて、事前定義された複数のキャッシュサイズから選択することによって、前記第1のキャッシュのサイズを設定するように構成されている、
請求項12のプロセッサ。
【請求項20】
前記キャッシュコントローラは、カウンタにおける値に基づいて前記第1のキャッシュのサイズを設定するように構成されており、前記値は、前記第1の作業負荷が識別された回数を示す、
請求項12のプロセッサ。
【発明の詳細な説明】
【背景技術】
【0001】
いくつかの処理システムは、性能を維持しながら全体的な電力消費を低減するために、複数の電力モードを採用し、各電力モードは、異なるレベルの電力を種々のシステム構成要素に適用し、それによって、種々の構成要素の各々を対応する性能レベルに設定するようにしている。例えば、いくつかの処理システムは、低い処理アクティビティの予想される期間中に又は他のシステム条件に応じて、システムの1つ以上のプロセッサコア及び関連するキャッシュを低電力モードにすることによって、電力を節約する。しかしながら、多くの場合、プロセッサコア及び関連する回路を低電力状態に遷移させることに関連する比較的大量のオーバーヘッドが存在する。例えば、多くの場合、低電力状態への遷移は、1つ以上のキャッシュからシステムメモリにデータをフラッシュすることを必要とする。更に、低電力モードからの遷移は、キャッシュを初期化することを必要とする。遷移のためのオーバーヘッドによって必要とされる電力消費は、低電力モードから得られる全体的な電力節約量を減らしてしまう。
【0002】
本開示は、添付の図面を参照することによってより良好に理解され、その数々の特徴及び利点が当業者に明らかになり得る。異なる図面における同じ符号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態による、識別した作業負荷に基づいてキャッシュのサイズを設定するように構成されたプロセッサのブロック図である。
【
図2】いくつかの実施形態による、識別された作業負荷に基づいてキャッシュのサイズを設定するように構成された
図1のプロセッサのキャッシュコントローラのブロック図である。
【
図3】いくつかの実施形態による、作業負荷の特性を識別する
図1のプロセッサのタイミングの一例を示す図である。
【
図4】いくつかの実施形態による、プロセッサでの作業負荷を識別することに基づいて、キャッシュのサイズを設定する方法のフロー図である。
【
図5】いくつかの実施形態による、プロセッサでの作業負荷を識別することに基づいて、キャッシュのサイズを決定する方法のフロー図である。
【発明を実施するための形態】
【0004】
図1~
図5は、プロセッサにおいて実行される識別された作業負荷に基づいて、プロセッサキャッシュのサイズを設定するための技術を示し、キャッシュサイズは、プロセッサが低電力モードを終了することに応じて設定される。作業負荷に基づいてキャッシュのサイズを設定することによって、プロセッサは、特定の作業負荷の特性に合わせてキャッシュのサイズを調整することができ、一方で、少なくともいくつかの作業負荷について、低電力モードに入ること又はそれから出ることに関連するオーバーヘッドも低減する。したがって、プロセッサは、異なるタイプの作業負荷を実行する場合に性能を維持しながら、全体的な電力消費を低減することができる。
【0005】
例示すると、いくつかの実施形態では、プロセッサが低電力モードに遷移している場合には、プロセッサキャッシュを準備することに関連するオーバーヘッドがあり、このオーバーヘッドは、少なくとも部分的に、プロセッサキャッシュのサイズに依存する。例えば、場合によっては、プロセッサが低電力モードに遷移している場合、所定のキャッシュ(例えば、レベル3(L3)キャッシュ)の変更されたキャッシュラインが識別され、次いで、システムメモリにコピーされる(すなわち、フラッシュされる)。これらの変更されたキャッシュラインを識別してフラッシュすることは、電力を消費し、消費される電力の量は、見直されなければならないキャッシュラインの数に依存する。更に、低電力モードから移行する場合、各キャッシュラインは初期化プロセスを受ける。更に、場合によっては、未使用のキャッシュラインが電力ゲートされるために利用可能であり、その結果、未使用のキャッシュラインは、比較的少ない電力を消費する。したがって、少なくともこれらの理由で、消費される電力の量は、キャッシュのサイズに依存し、キャッシュのサイズを減らすことによって、低電力モードへの移行に関連するオーバーヘッドが低減される。
【0006】
更に、使用されるキャッシュの量は、プロセッサによって実行される作業負荷に基づいて変化する。したがって、いくつかの作業負荷について、プロセッサは、作業負荷実行に性能ペナルティを課すことなく、比較的小さいキャッシュを使用することができる。本明細書で説明される技術を使用して、プロセッサは、サイズが低減されたキャッシュから性能ペナルティを被らない(又は比較的小さいペナルティしか被らない)作業負荷を識別することができる。そのような作業負荷の場合、プロセッサは、キャッシュのサイズをより小さいサイズに設定し、それによって、性能を維持しながら、低電力モードへの移行に関連するオーバーヘッドを低減する。
【0007】
異なる実施形態では、プロセッサは、下位レベルキャッシュのアクセス特性を調べることによる等の異なる方法で作業負荷を識別する。例えば、いくつかの実施形態では、プロセッサは、下位レベルキャッシュにおけるキャッシュビクティムの数(すなわち、追い出されたキャッシュラインの数)を監視することによって作業負荷を識別する。キャッシュビクティムの数が多いほど、キャッシュサイズが大きければ大きいほど、性能が改善される可能性が高いということを示し、キャッシュビクティムの数が少ないほど、キャッシュサイズが小さければ小さいほど、作業負荷の実行に影響を与える可能性が低いことを示す。他の実施形態では、プロセッサは、下位レベルキャッシュにおけるキャッシュビクティムレート(すなわち、指定された時間量において追い出されたキャッシュラインの数)に基づいて、作業負荷を識別する。更に他の実施形態では、プロセッサは、作業負荷を実行するためにアクティブモードにあるプロセッサコアの数に基づいて、作業負荷を識別する。更に他の実施形態では、プロセッサは、キャッシュビクティムの数、キャッシュビクティムレート及びアクティブプロセッサコアの数のうち1つ以上の組み合わせ等の要因の組み合わせに基づいて、作業負荷を識別する。
【0008】
場合によっては、キャッシュのサイズを変更することは、キャッシュウェイの数若しくはキャッシュセットの数又はそれらの組み合わせ等のキャッシュのサイズを示す、キャッシュコントローラにおけるデータ構造を変更すること等のある量のオーバーヘッドを要求する。このオーバーヘッドの影響を低減するために、いくつかの実施形態では、プロセッサは、プロセッサが低電力モードを終了している場合等の指定された時点でのみキャッシュのサイズを変更する。更に、いくつかの実施形態では、プロセッサは、バイモーダルカウンタ又は他の構造を採用して、キャッシュのサイズにヒステリシスを提供する。例えば、いくつかの実施形態では、プロセッサは、プロセッサがプロセッサにおいて特定の作業負荷を検出する毎にバイモーダルカウンタを調整し、低電力モードから出ることに応じてバイモーダルカウンタをリセットする。プロセッサは、キャッシュのサイズを、バイモーダルカウンタが指定された閾値を超えていることに応じて調整するだけである。それによって、プロセッサは、プロセッサ作業負荷の比較的一時的な変化が、キャッシュのサイズの頻繁な変化をトリガすることを防止する。
【0009】
図1は、いくつかの実施形態による処理システム100を示すブロック図である。処理システム100は、概して、電子デバイスの代わりにタスクを実行するために、命令(例えばプログラム)又はコマンド(例えば、描画コマンド)のセットを実行するように構成されている。したがって、異なる実施形態では、処理システム100は、例えばデスクトップコンピュータ、ラップトップコンピュータ、サーバ、スマートフォン、タブレット、ゲーム機等の様々な電子デバイスのうち何れかに組み込まれる。命令の実行をサポートするために、処理システム100は、GPU102及びPIMデバイス104を含む。いくつかの実施形態では、処理システム100は、追加の処理ユニット(例えば、1つ以上の中央処理ユニット(CPU))、メモリデバイス若しくは他のサポートデバイス(例えば、1つ以上の入力/出力(I/O)コントローラ)等、又は、それらの任意の組み合わせを含む。
【0010】
GPU102は、概して、例えばCPUから受信したコマンド等の受信したコマンドに応じて、指定された動作を実行するように構成された処理ユニットである。GPU102によって実行される動作のタイプの例は、グラフィックス動作(例えば、描画コマンド及び他のグラフィックスコマンドの実行)、ベクトル動作、マトリックス動作、機械学習、ニューラルネットワーク、人工知能等に関連する動作、又は、それらの任意の組み合わせを含む。他の実施形態では、GPU102は、例えば、並列プロセッサ、単一命令複数データ(SIMD:single instruction multiple data)アーキテクチャプロセッサ、単一命令複数スレッド(SIMT:single instruction multiple thread)アーキテクチャプロセッサ、例えばグラフィックス、機械知能又は演算処理のタスク等のタスクを実行するための別のプロセッサ等の異なるタイプの処理ユニット又はプロセッサである。
【0011】
命令又はコマンドのセットを実行するために、プロセッサ100は、複数のプロセッサコアを含み、それらの複数のプロセッサコアには、プロセッサコア102及びプロセッサコア103が含まれる。プロセッサコア102及び103の各々は、1つ以上の命令パイプラインを含み、各命令パイプラインは複数のステージを含み、複数のステージは、パイプライン方式で命令を実行するように集合的に配置及び構成される。いくつかの実施形態では、プロセッサ100は、マルチスレッドプロセッサであり、プロセッサ100によって実行される各プログラムは、1つ以上のスレッドを含み、その1つ以上のスレッドは、実行のために、異なるプロセッサコア及び異なる対応するパイプラインに割り当てられる。所定の時間量にわたってプロセッサコアによって実行される命令又はコマンドのパターン、及び、プロセッサコアによって生成される動作の対応するパターンは、プロセッサコアの作業負荷(例えば、作業負荷109)と呼ばれる。
【0012】
作業負荷を実行する過程で、プロセッサコア102及び103は、プロセッサ100のメモリ階層と対話して、データを記憶し、取り出す。メモリ階層は、異なるレベルのキャッシュ(例えば、キャッシュ105、106、110)と、メモリ階層の最上部にあるシステムメモリ(図示せず)と、を含む。メモリアクセス速度及び効率を改善するために、プロセッサ100は、概して、指定されたメモリ管理方式に従ってメモリ階層を管理するように構成されている。例えば、いくつかの実施形態では、プロセッサ100は、最近アクセスされたデータ、及び、すぐにアクセスされることが予想されるデータをメモリ階層の下に移動させて、データがプロセッサコア102及び103のうち1つ以上により近くなり、より容易にアクセス可能になるように構成される。メモリ階層の所定のレベルで着信データのための余地を作るために、プロセッサ100は、概して、より最近使用されていないデータを、メモリ階層のより高いレベルに移動又は追い出すように構成されている。
【0013】
図示された実施形態では、メモリ階層は、レベル2(L2)キャッシュ105及び106と、L3キャッシュ110と、を含む。L2キャッシュ105及び106は、それぞれプロセッサコア102及び103に専用であり、L3キャッシュ110は、プロセッサコア102及び103の間で共有される。いくつかの実施形態では、メモリ階層は、プロセッサコア102及び103の各々に専用のレベル1(L1)キャッシュを含む追加のキャッシュを含む。メモリ階層にアクセスするために、プロセッサコア102及び103は、メモリ階層からデータを読み取るための読取り動作と、メモリ階層にデータを書き込むための書込み動作と、を含むメモリアクセス動作を生成する。各メモリアクセス動作に応じて、プロセッサ100は、1つ以上のメモリ又はキャッシュコントローラを介して、メモリアクセスによってターゲットにされたキャッシュラインがメモリ階層の最下位レベル(例えば、対応するL1キャッシュ)に記憶されているかどうかを判断する。そうである場合、プロセッサ100は、最も低いメモリ階層レベルでメモリ動作を実行する。キャッシュラインが最も低いメモリ階層レベルに記憶されていない場合、プロセッサ100は、キャッシュラインが見つかるまでメモリ階層をトラバースし、次いで、メモリアクセス動作の実行に進む。更に、メモリ管理方式に基づいて、プロセッサ100は、キャッシュラインをメモリ階層の1つ以上のレベルに移動する。例えば、いくつかの実施形態では、プロセッサ100は、キャッシュラインを、L2キャッシュ105及び106のうち1つ以上又はL3キャッシュ110に移動する。
【0014】
場合によっては、キャッシュラインがキャッシュに移動される場合、選択されたキャッシュラインは、入ってくるキャッシュラインのための空間を生成するためにキャッシュから追い出されなければならない。追い出されたキャッシュラインは、メモリ階層内のより高いレベルに移動される。例えば、キャッシュラインがL2キャッシュ105及び106のうち何れかから追い出される場合、キャッシュラインは、L3キャッシュ110に移動される。L2キャッシュ105及び106のうち何れかから追い出されたキャッシュラインは、本明細書では「ビクティムキャッシュライン」と呼ばれる。
【0015】
キャッシュラインの記憶を容易にするために、L3キャッシュ110は、キャッシュコントローラ115及びストレージアレイ116を含む。キャッシュコントローラ110は、概して、L3キャッシュ110において実行される動作を制御するように構成されており、そのような動作には、メモリアクセス要求の処理と、例えば、データコヒーレンシ動作、セキュリティ動作等の関連する動作と、が挙げられる。ストレージアレイ116は、キャッシュコントローラ115からの制御信号伝達に基づいてキャッシュラインを記憶し、取り出すように編成され、集合的に構成されたメモリセル(例えば、ビットセル)のセットである。
【0016】
いくつかの実施形態では、キャッシュコントローラ115は、低電力モードを開始するプロセッサ100に関連付けられた、L3キャッシュ110におけるオーバーヘッドを処理するように構成されている。例示のために、プロセッサ100は、1つ以上の指定された条件に基づいて、プロセッサ100の電力モードを設定するように構成された電力制御モジュール112を含む。例えば、いくつかの実施形態では、電力制御モジュール112は、プロセッサコア102及び103、L2キャッシュ105及び106、並びに、L3キャッシュ110のうち1つ以上の性能特性を測定して、プロセッサ100の予想アクティビティレベルを決定し、予想アクティビティレベルに基づいて、プロセッサ100の電力モードを設定する。
【0017】
指定された条件に基づいて、電力制御モジュール112は、プロセッサ100の電力モードを2つの電力モード、すなわちアクティブモード及び低電力モードのうち何れかに設定する。アクティブモードでは、プロセッサコア102及び103には、命令を実行するのに十分な電力が供給され、キャッシュ105、106、110には、それぞれのストレージアレイに記憶されたデータを維持するのに十分な電力がそれぞれ供給される。低電力モードでは、プロセッサコア102及び103は、より少ない電力を供給され、その結果、コアは命令を実行することができない。更に、低電力モードでは、キャッシュ105、106、110には、対応するストレージアレイに記憶されたデータを維持するのに十分な電力が供給されない。
【0018】
プロセッサ100が低電力モードにある間にストレージアレイ116に記憶されたデータが維持されることを保証するために、キャッシュコントローラ115は、データをシステムメモリ(図示せず)にフラッシュするように構成されている。特に、プロセッサ100が低電力モードを開始すべきであるという電力制御モジュール112からのインジケーションに応じて、キャッシュコントローラ115は、L3キャッシュ110の何れのエントリ(すなわち、ストレージアレイ116に記憶された何れのキャッシュライン)が、それらのキャッシュラインが最後にシステムメモリに記憶されてから変更されたかを識別する。次いで、キャッシュコントローラ115は、変更されたキャッシュラインをシステムメモリに書き込むための書込み動作のセットを発行する。プロセッサ100が低電力モードを終了すると、キャッシュコントローラ115は、例えば、事前定義された初期データを各エントリに書き込むこと、各エントリのコヒーレンシ状態情報を設定すること等によって、使用されるために利用可能な各エントリを初期化する。
【0019】
キャッシュラインの記憶及び検索を制御し、フラッシュ動作を実行することに加えて、キャッシュコントローラ115は、作業負荷の実行中に、プロセッサコア102及び103によって使用されるストレージアレイ116の量を設定することによって、キャッシュ110のサイズを設定するように構成されている。例えば、いくつかの実施形態において、キャッシュコントローラ115は、L3キャッシュをセットアソシエイティブキャッシュとして編成し、ストレージアレイは指定された数のセットに分割され、各セットは指定された数のキャッシュウェイを有する。キャッシュラインがL3キャッシュ110に移動される場合、キャッシュコントローラ115は、キャッシュラインのメモリアドレスに対応するセットを識別し、指定されたウェイ選択ポリシーに基づいて、キャッシュラインを記憶するウェイを選択する。キャッシュコントローラ115は、1つ以上のデータ構造のセットと、指定されたサイズ118と、を維持して、L3キャッシュ110のセット及びウェイの数、並びに、異なるセットに割り当てられたメモリアドレスを識別する。したがって、これらのデータ構造を変更することによって、キャッシュコントローラ115は、L3キャッシュ110のサイズを変更する。
【0020】
例を介して説明するために、いくつかの実施形態において、ストレージアレイ116は、最大数のP個のキャッシュラインを記憶することができる。最大サイズでのこれらのP個のキャッシュラインについて、キャッシュコントローラ115は、L3キャッシュ110をN個のセットに編成し、各セットはM個のウェイを有し、それに応じてサイズ118を設定する。キャッシュのサイズを半分に低減するために、キャッシュコントローラ115は、L3キャッシュ110がN個のセットに編成され、各セットがM/2個のウェイを有するように、サイズ118を変更する。したがって、サイズ118を半分に縮小することによって、最大数のウェイの半分のみが、L3キャッシュ110によって使用されるために利用可能である。他の実施形態では、キャッシュコントローラ115は、L3キャッシュ110がN/2個のセットに編成され、各セットがM個のウェイを有するように、サイズ118を変更する。更に他の実施形態では、キャッシュコントローラ115は、セットの数及びウェイの数の両方を変更するように、サイズ118を変更する。したがって、異なる実施形態では、キャッシュコントローラ115は、ウェイの数、セットの数又はそれらの任意の組み合わせを変更することによって、サイズ118を変更する。
【0021】
上述したように、フラッシュ動作中、キャッシュコントローラ115は、ストレージアレイ116において変更されたキャッシュラインを識別し、識別されたキャッシュラインをシステムメモリに移動する。フラッシュ動作に関連するこのオーバーヘッドは、電力及び他のリソースを消費し、消費されるリソースの量は、L3キャッシュ110のサイズに少なくとも部分的に依存する。例えば、L3キャッシュ110のサイズが小さいほど、何れのエントリが変更されたかを決定するために、フラッシュ動作中にキャッシュコントローラ115によって見直される必要があるキャッシュエントリの数が少なくなる。更に、プロセッサ100が低電力モードから移行する場合、キャッシュコントローラ115は、各利用可能なキャッシュラインを初期化する。したがって、L3キャッシュ110のサイズが小さいほど、キャッシュコントローラ115によって初期化される必要があるキャッシュエントリの数が少なくなる。更に、いくつかの実施形態において、キャッシュコントローラ115は、使用されるために利用可能でないストレージアレイ116におけるエントリを電力ゲートして、ストレージアレイ116が、アクティブモードにおいて、全体的により少ない電力を消費するようにする。
【0022】
更に、プロセッサコア102及び103において実行するいくつかの作業負荷は、比較的少ないメモリアクセスを引き起こし、したがって、ストレージアレイ116において利用可能な全ストレージよりも少ないストレージを使用する。したがって、オーバーヘッドを低減し(したがって、対応するリソースの消費を低減し)、電力消費を低減するために、キャッシュコントローラ115は、プロセッサコア102及び103のうち1つ以上において実行する作業負荷109を識別することによってサイズ118を設定し、識別された作業負荷に基づいて、L3キャッシュ110のサイズ118を設定する。したがって、キャッシュコントローラ115は、キャッシュ110のサイズを、作業負荷109によって使用されることが予想されるストレージアレイ116の量に合わせることができ、したがって、オーバーヘッド及び電力消費のそのような低減が作業負荷109の実行に性能ペナルティを課すことが予想されない場合に、フラッシュ動作及び初期化動作に関連するオーバーヘッド等のオーバーヘッドを低減し、ストレージアレイ116による電力消費を低減することができる。
【0023】
例えば、識別された作業負荷109が、キャッシュコントローラ115によって、ストレージアレイ116の比較的小さい部分を使用することが予想される作業負荷であると判定された場合、キャッシュコントローラ115は、サイズ118を比較的小さいサイズに設定し、それによって、任意のフラッシュ動作に関連するオーバーヘッドを低減する。対照的に、キャッシュコントローラ115が、作業負荷109を、ストレージアレイ116のより大きな部分を使用する作業負荷として識別する場合、キャッシュコントローラ115は、サイズ118を比較的大きなサイズに設定し、作業負荷109の実行が性能ペナルティを被らないことを保証する。
【0024】
異なる実施形態では、キャッシュコントローラ115は、いくつかの異なる方法の何れかで作業負荷109を識別する。例えば、いくつかの実施形態では、キャッシュコントローラ115は、L2キャッシュ105のうち1つ以上において、アクセス特性107を監視し、アクセス特性は、監視されるキャッシュにおけるアクセス及びアクティビティのパターンを示すものである。説明のために、アクセス特性107は、L2キャッシュ105のみのアクセス特性を反映すると仮定する。他の実施形態では、アクセス特性は、例えば、L2キャッシュ105及びL2キャッシュ106の両方等の2つ以上のL2キャッシュの組み合わされたアクセス特性を表す。アクセス特性107に基づいて、キャッシュコントローラ115は、L3キャッシュ110のサイズ118を設定する。例えば、いくつかの実施形態において、キャッシュコントローラ115は、アクセス特性107を1つ以上の閾値と比較し、比較の結果に基づいてサイズ118を設定する。
【0025】
いくつかの実施形態において、アクセス特性107は、L2キャッシュ105におけるキャッシュビクティムの数を含む。例えば、いくつかの実施形態では、キャッシュコントローラ115は、キャッシュラインがL2キャッシュ105から追い出される毎にインクリメントされるカウンタを含み、カウンタは、プロセッサ100のリセット又はプロセッサ102における新しいスレッドの実行の開始等の指定された条件に応じてリセットされる。したがって、カウンタは、作業負荷109について、カウンタの最後のリセット以降のL2キャッシュ105におけるキャッシュビクティムの数(すなわち、追い出されたキャッシュラインの数)を反映する。キャッシュコントローラ115は、キャッシュビクティムの数を1つ以上の閾値と比較し、比較に基づいてサイズ118を設定する。
【0026】
他の実施形態では、キャッシュビクティムの数に加えて又はその代わりに、アクセス特性107は、L2キャッシュ105におけるキャッシュビクティムレートを含む。言い換えれば、アクセス特性107は、L2キャッシュ105がキャッシュビクティムを生成しているレートを示す。例えば、いくつかの実施形態において、キャッシュコントローラ115は、キャッシュラインがL2キャッシュ105から追い出される毎にインクリメントされるカウンタを含み、カウンタは、繰り返しタイマの満了に応じて周期的にリセットされる。したがって、カウンタは、作業負荷109について、L2キャッシュ105におけるキャッシュビクティムレート(すなわち、タイマによって反映された時間量当たりの追い出されたキャッシュラインの数)を反映する。キャッシュコントローラ115は、キャッシュビクティムレートを1つ以上の閾値と比較し、比較に基づいてサイズ118を設定する。
【0027】
更に他の実施形態では、アクセス特性107に基づいて作業負荷109を識別することに加えて又はその代わりに、キャッシュコントローラ115は、アクティブプロセッサコアの数(例えば、アクティブ電力モードにあるプロセッサコアの数)等のような、プロセッサ100におけるアクティビティの他のインジケータに基づいて、作業負荷109を識別する。例えば、いくつかの実施形態において、キャッシュコントローラ115は、アクティブなプロセッサコアの数を閾値と比較し、比較に基づいてL3キャッシュ110のサイズ118を設定する。
【0028】
場合によっては、L3キャッシュ110のサイズ118を変更することは、新しいキャッシュサイズに基づいてストレージアレイ116に記憶されたデータを編成すること等の管理動作をキャッシュコントローラ115に要求する。したがって、これらの管理動作に関連するオーバーヘッドの影響を低減するために、いくつかの実施形態では、キャッシュコントローラ115は、オーバーヘッドの影響が小さいと予想される場合に、指定された時点でのみ又は指定された条件下でのみ、L3キャッシュ110のサイズを変更する。例えば、いくつかの実施形態では、キャッシュコントローラ115が既にL3キャッシュ110を編成している場合、キャッシュコントローラ115は、低電力モードを終了することに応じてのみサイズ118を変更する。
【0029】
更に例示すると、プロセッサ100が低電力モードを開始するという指標を電力制御モジュール112から受信したことに応じて、キャッシュコントローラ115は、アクセス特性107を識別し、識別された特性を1つ以上の閾値と比較すること等によって、作業負荷109に基づいてサイズ118を決定する。電力制御モジュール112がプロセッサ100をアクティブ状態に戻すことに応じて、キャッシュコントローラ115は、キャッシュのサイズをサイズ118に設定する。
【0030】
いくつかの実施形態において、キャッシュコントローラ115は、事前定義されたサイズのセットから或るサイズを選択することによって、サイズ118を設定する。例えば、いくつかの実施形態では、キャッシュコントローラは、バイパスサイズ、ハーフサイズ及びフルサイズを含む事前定義されたサイズのセットを記憶し、サイズ118を設定する場合に、この事前定義されたサイズのセットの中から選択する。バイパスサイズが選択されるとL3キャッシュ110がバイパスされ、バイバスされなければL3キャッシュ110に記憶されるデータが、代わりにシステムメモリに移動される。
【0031】
いくつかの実施形態において、L3キャッシュ110は、スタックダイ集積回路に組み込まれ、ストレージアレイ116の異なる部分は、異なる個々のダイ上に配置される。これは、キャッシュコントローラ115が、ストレージアレイ116のサイズを設定する場合に、特定のダイ上に位置するストレージアレイ116の部分が使用されないようにサイズを設定することを可能にする。これは、次に、電力制御モジュール112が、対応するダイを電力ゲートすることを可能にし、それによって、プロセッサ100における電力消費を節約する。
【0032】
したがって、例を介して説明すると、いくつかの実施形態では、キャッシュコントローラ115は、サイズ118を3つの事前定義されたサイズ、すなわち、L3キャッシュ110がバイパスされるバイパスサイズ、ストレージアレイ116におけるエントリの半分のみが使用されるために利用可能であるハーフサイズ、及び、指定されたダイにおけるストレージアレイ116におけるエントリの全てが使用されるが、他のダイ上のストレージアレイ116の部分は使用されないフルサイズ、のうち何れかに設定するように構成されている。バイパスサイズ構成の場合、ストレージアレイ116を(例えば、0動作電圧で)電力ゲートされた状態に保つことによって、キャッシュ初期化を回避することによって、及び、キャッシュフラッシュに関連するオーバーヘッドを回避することによって、電力が節約される。ハーフサイズ構成の場合、ストレージアレイ116の半分のみを初期化することによって、アクティブモード中のオーバーヘッドを低減することによって(例えば、比較をハーフウェイ又はハーフインデックスに低減することによって)、ストレージアレイ116の半分に対するフラッシュ動作を回避することによって、及び、使用されないストレージアレイ116の半分を電力ゲートすることによって(そのような部分が積層ダイ配列内の別のダイ上に位置する場合を含む)、電力が節約される。フルサイズモードでは、ダイスタッキングが存在する場合、(ダイスタッキングが存在する場合)無効化されたダイスタックドキャッシュの電力ゲートを維持し、ダイスタックドキャッシュの初期化を回避し、ダイスタックドキャッシュのフラッシュを回避することによって、電力が節約される。
【0033】
図1の実施形態及び本明細書で説明される他の実施形態は、L3キャッシュのサイズを設定することに関して説明されたが、他の実施形態では、同様の技術が、メモリ階層の異なるレベルでキャッシュのサイズを設定するために採用されることを理解されたい。例えば、いくつかの実施形態において、L2キャッシュのサイズは、L1キャッシュに関連付けられたアクセス特性(例えば、キャッシュビクティムの数)に基づいて設定される。
【0034】
図2は、いくつかの実施形態によるキャッシュコントローラ115の一例を示している。図示された例では、キャッシュコントローラ115は、アレイサイズ制御モジュール220、バイモーダルカウンタ222、閾値レジスタ224、及び、サイズレジスタ225を含む。アレイサイズ制御モジュール220は、アクセス特性107に基づいて、且つ、バイモーダルカウンタ222、閾値レジスタ224及びサイズレジスタ225に記憶された情報を使用して、L3キャッシュ110のサイズ118を一緒に設定する、状態機械又は他の決定論理を実装する回路のセット等の回路のセットである。
【0035】
サイズレジスタ225は、サイズ118のための事前定義されたサイズ設定(例えば、サイズ234及びサイズ235)を記憶するように構成されたレジスタのセットである。いくつかの実施形態では、サイズレジスタ225は、サイズ設定が、例えば、プロセッサ100で実行するプログラムによって変更可能であるように、プログラム可能レジスタである。閾値レジスタ224は、サイズレジスタ225に記憶された異なるサイズ設定に対応する作業負荷閾値を格納するように構成されたレジスタのセットである。例えば、図示した実施形態では、閾値レジスタ224は、アクティブプロセッサカウント閾値233及びL2ビクティムカウント閾値232を記憶する。他の実施形態では、閾値レジスタ224は、1つ以上のL2ビクティムレート閾値等のように、他のアクセス特性に関連する追加の閾値を記憶する。更に、いくつかの実施形態では、閾値レジスタ224は、サイズ118の選択において更なる粒度を提供するために、所定のアクセス特性について2つ以上の閾値を記憶する。例えば、いくつかの実施形態において、閾値レジスタ224は、複数のL2ビクティムカウント閾値を記憶し、各L2ビクティムカウント閾値は、サイズレジスタ225のうち異なる何れかに対応する。更に、いくつかの実施形態では、閾値レジスタ224はプログラム可能であり、プロセッサ100で実行される異なるプログラムが異なる閾値を設定することを可能にする。
【0036】
バイモーダルカウンタ222は、以下で更に説明するように、サイズ118にヒステリシスを与えるためにアレイサイズ制御モジュール220によって使用されるカウンタである。いくつかの実施形態では、バイモーダルカウンタ222は、2ビット飽和カウンタである。
【0037】
動作中、電力制御モジュール112が、プロセッサ100が低電力モードを開始することを示すのに応じて、アレイサイズ制御モジュール220は、(アクセス特性107によって示されるような)L2キャッシュ105におけるキャッシュビクティムの数をL2ビクティムカウント閾値232と比較する。キャッシュビクティムの数が閾値232未満であり、L3キャッシュ110におけるアクティビティの量が比較的少ないことを示す場合、アレイサイズ制御モジュール220は、バイモーダルカウンタ222をインクリメントする。キャッシュビクティムの数が閾値232と一致するか又はそれを超え、L3キャッシュ110におけるアクティビティの量が比較的多いことを示す場合、アレイサイズ制御モジュール220は、バイモーダルカウンタ222をデクリメントする。
【0038】
プロセッサ100が低電力モードを終了していることを電力制御モジュール112が示すことに応じて、アレイサイズ制御モジュール220は、先ず、電力制御モジュール112によって示されるように、アクティブモードにされるプロセッサコアの数(アクティブプロセッサコアの数と呼ばれる)を決定する。アクティブプロセッサコアの数が、アクティブプロセッサカウント閾値233に一致するか又はそれを超える場合、アレイサイズ制御モジュール220は、サイズ234及びサイズ235のうち大きい方を選択し、サイズ118を選択されたサイズに設定する。
【0039】
アクティブプロセッサコアの数がアクティブプロセッサカウント閾値233未満である場合、アレイサイズ制御モジュール220は、バイモーダルカウンタ222における値(バイモーダルカウントと呼ばれる)を閾値(例えば、バイナリ値10)と比較する。バイモーダルカウントが閾値を満たすか又は超える場合、この条件は、L2キャッシュ105におけるビクティムの数が、指定された数の連続する低電力モード期間にわたってL2ビクティムカウント閾値232を下回ったことを示し、したがって、作業負荷109がL3キャッシュ110の全容量を使用していないことを示す。したがって、バイモーダルカウントが閾値を満たすか又は超えることに応じて、アレイサイズ制御モジュール220は、サイズ234及びサイズ235のうち大きい方を選択する。そうでない場合、アレイサイズ制御モジュール220は、サイズ234及びサイズ235のうち小さい方を選択する。次に、アレイサイズ制御モジュールは、サイズ118を、選択されたサイズに設定する。
【0040】
図3は、いくつかの実施形態によるプロセッサ100における異なる電力モードに関連付けられた動作を示す
図340である。特に、
図340は、時間を表すX軸と、プロセッサ100の電力モードを表すY軸と、を有するチャートである。
図3の例では、Y軸は、プロセッサ100のアクティブモード及び低電力モードを表す。
【0041】
図示されるように、時間341より以前に、プロセッサ100は低電力モードにある。時間341において、プロセッサ100はアクティブモードに遷移する。それに応じて、キャッシュコントローラ115は、L2キャッシュ105におけるキャッシュビクティムの数を測定する任意のカウンタ等のように、L2キャッシュ105のアクセス特性107を識別することに関連する任意のカウンタをリセットする。プロセッサ100は、時間341と時間342との間でアクティブモードにある。プロセッサ100がアクティブモードにある間(すなわち、時間341と時間342との間)、キャッシュコントローラ115は、L2キャッシュ105のアクセス特性107を測定する。例えば、時間341と時間342との間で、L2キャッシュ105がキャッシュラインを追い出す毎に、キャッシュコントローラ115は、カウンタをインクリメントする。したがって、時間342において、カウンタは、プロセッサ100がアクティブモードにある間、時間341以降のL2キャッシュにおけるキャッシュビクティムの数を示す値を記憶する。
【0042】
時間342又はその付近で、電力制御モジュール112は、プロセッサ100が低電力モードを開始することを示す。これに応じて、キャッシュコントローラ115は、時間341と時間342との間に測定されたアクセス特性107に基づいて、L3キャッシュ110のサイズ108を決定する。例えば、いくつかの実施形態では、キャッシュコントローラ115は、アクセス特性107(例えば、キャッシュビクティムカウント)を1つ以上の閾値と比較し、1つ以上の比較に基づいて、事前定義されたサイズ234及びサイズ235のうち何れかを選択する。
【0043】
プロセッサ100は、時間342と時間343との間で低電力モードにある。時間343又はその付近で、電力制御モジュール112は、プロセッサ100が低電力モードを終了するはずであることを示す。低電力モード終了プロセスの一部として、キャッシュコントローラ115は、L3キャッシュ110のサイズ108を、時間342において又はその近くで識別されたサイズに設定する。L3キャッシュ110は、時間343又はその付近で始まる次のアクティブモード期間の間、サイズ108のままである。したがって、
図1の例では、プロセッサ100は、一つ前のアクティブ期間中に測定されたアクセス特性に基づいて、各アクティブ期間(プロセッサ100がアクティブモードにある期間)についてL3キャッシュ110のサイズを設定する。アクティブ期間中に実行される作業負荷は、前のアクティブ期間中に実行された作業負荷と実質的に同一又は同様である可能性が高いので、プロセッサ100は、L3キャッシュ110のサイズを、実行されることが予想される作業負荷に合わせて調整することができ、それによって、プロセッサ性能を維持しながらプロセッサリソースを節約する。
【0044】
図4は、いくつかの実施形態による、異なるキャッシュの性能特性に基づいて、キャッシュのサイズを識別する方法のフロー図である。説明のため、
図4の方法は、プロセッサ100における例示的な実施形態に関して記述されている。しかしながら、他の実施形態では、本方法は、異なる構成を有するプロセッサにおいて実装されることが理解されるであろう。更に、
図4の方法は、キャッシュコントローラ115がL3キャッシュ110に対して、以下の3つのサイズのうち何れかを選択するという仮定の下で説明される。1)L3キャッシュ110がバイパスされるバイパスサイズ、2)ストレージアレイ116の記憶容量の半分のみが使用されるように、L3キャッシュ110のウェイ数が設定されるハーフサイズ、3)ストレージアレイ116の記憶容量の全てが使用されるようにL3キャッシュ110のウェイ数が設定されるフルサイズ。しかしながら、他の実施形態では、より多くの、より少ない若しくは異なるキャッシュサイズ、又は、それらの任意の組み合わせが使用されるということが理解されるであろう。
【0045】
ブロック402において、電力制御モジュール112は、プロセッサ100が低電力モードを開始する準備をしていることを示す。それに応じて、ブロック404において、キャッシュコントローラ115は、閾値レジスタ224においてL2ビクティムカウント閾値232を読み取り、サイズレジスタ225から利用可能なサイズ(例えば、サイズ234及びサイズ235)を読み取る。ブロック406において、キャッシュコントローラ115は、L2キャッシュ105についてのL2ビクティムカウントを、L3キャッシュ110のバイパスに関連付けられた閾値と比較する。閾値が満たされず、バイパスが有効化されている場合、方法のフローはブロック408に移動し、キャッシュコントローラ115は、L3キャッシュ110のサイズ108をバイパスサイズに設定し、バイモーダルカウンタ222をインクリメントする。方法のフローはブロック410に進み、キャッシュコントローラ115は、低電力モードへのエントリ中にサイズ108及びバイモーダルカウント(バイモーダルカウンタ222に記憶された値)を保存する。
【0046】
ブロック406に戻ると、バイパス閾値が満たされている場合、又は、L3キャッシュ110のバイパスが有効化されていない場合、方法のフローはブロック412に進み、キャッシュコントローラ115は、L2キャッシュ105のL2ビクティムカウントを、L3キャッシュ110のハーフサイズに関連する閾値と比較する。閾値が満たされず、ハーフサイズが有効化されている場合、方法のフローはブロック414に移動し、キャッシュコントローラ115は、L3キャッシュ110のサイズ108をハーフサイズに設定し、バイモーダルカウンタ222をインクリメントする。方法のフローは、上述したブロック410に進む。
【0047】
ブロック412に戻ると、ハーフサイズの閾値が満たされている場合、又は、L3キャッシュ110のハーフサイズが有効化されていない場合、方法のフローはブロック416に進み、キャッシュコントローラ115は、L2キャッシュ105のL2ビクティムカウントを、L3キャッシュ110のフルサイズに関連付けられた閾値と比較する。閾値が満たされず、フルサイズが有効化されている場合、方法のフローはブロック418に進み、キャッシュコントローラ115は、スタックされたL3キャッシュがサポートされているかどうかを判定する。サポートされている場合、方法のフローはブロック420に移動し、キャッシュコントローラ115は、L3キャッシュ110のサイズ108をフルサイズに設定し、バイモーダルカウンタ222をインクリメントする。方法のフローはブロック410に進む。ブロック418において、スタックされたL3キャッシュがサポートされていないとキャッシュコントローラ115が判定した場合、方法のフローはブロック422に進み、キャッシュコントローラ115は、L3キャッシュ110のサイズ108をフルサイズに設定し、バイモーダルカウンタ222をデクリメントする。方法のフローはブロック410に進む。ブロック416に戻ると、フルサイズ閾値が満たされている場合、又は、L3キャッシュ110のフルサイズが有効化されていない場合、方法のフローはブロック424に進み、キャッシュコントローラ115は、L3キャッシュ110をその現在のサイズに維持し、バイモーダルカウンタ222をデクリメントする。方法のフローは、上述したブロック410に進む。
【0048】
図5は、いくつかの実施形態による、アクティブプロセッサコアの数と別のキャッシュのアクセス特性との組み合わせに基づいてキャッシュのサイズを設定する方法のフロー図を示す。説明のため、
図4の方法は、プロセッサ100における例示的な実施形態に関して記述されている。しかしながら、他の実施形態では、本方法は、異なる構成を有するプロセッサにおいて実施されることが理解されるであろう。
【0049】
ブロック502において、電力制御モジュール112は、プロセッサ100が、低電力モードを終了して、アクティブモードを開始しているということを、キャッシュコントローラ115に示す。それに応じて、ブロック504において、キャッシュコントローラ115は、低電力モードを開始している最中に記憶された、サイズ118及びバイモーダルカウント値を復元する。ブロック506において、キャッシュコントローラ115は、構成ビットのセットを読み取って、L3キャッシュ110のサイズ108が、L2キャッシュ105におけるキャッシュビクティムの数に基づいて、L2キャッシュ105におけるキャッシュビクティムレートに基づいて、又は、キャッシュビクティムの数及びキャッシュビクティムレートの両方の組み合わせに基づいて設定されるべきかどうかを決定する。
【0050】
ブロック508において、キャッシュコントローラ115は、サイズ108がキャッシュビクティムレートに基づいて設定されるべきであることを構成ビットが示すかどうかを判定する。示していない場合、方法のフローはブロック510に移動し、キャッシュコントローラ115は、サイズ108の決定をL2キャッシュ105におけるキャッシュビクティムの総数に基づくように設定する。ブロック512において、キャッシュコントローラ115は、L2キャッシュ105におけるキャッシュビクティムの数が、L2キャッシュビクティムについてのプログラムされた閾値に一致するか又はそれを超えるかどうかを判定する。一致又は超えている場合、方法のフローはブロック514に移動し、キャッシュコントローラ115は、L2ビクティム閾値が、現在のL3サイズモードで満たされていると判定する。一致せず超えてもいない場合、キャッシュコントローラ115は、L2ビクティム閾値が、現在のL3サイズモードで満たされていないと判定する。
【0051】
ブロック508に戻ると、キャッシュコントローラ115は、サイズ108がキャッシュビクティムレートに基づいて設定されるべきであることを構成ビットが示すと決定した場合、方法のフローはブロック516に移動する。ブロック516において、キャッシュコントローラ115は、L2キャッシュ105におけるキャッシュビクティムの総数にも基づいて、サイズ108が設定されるべきであることを構成ビットが示すかどうかを決定する。そうでない場合、方法のフローはブロック518に移動し、キャッシュコントローラ115は、サイズ108の決定を、L2キャッシュ105におけるキャッシュビクティムレートに基づくように設定する。ブロック520において、キャッシュコントローラ115は、キャッシュビクティムレートがL2キャッシュビクティムレートのためのプログラムされた閾値に一致するか又はそれを超えるかどうかを決定する。一致又は超えている場合、方法のフローはブロック514に移動し、キャッシュコントローラ115は、L2ビクティム閾値が、現在のL3サイズモードで満たされていると判定する。一致せず超えてもいない場合、キャッシュコントローラ115は、L2ビクティム閾値が、現在のL3サイズモードで満たされていないと判定する。
【0052】
ブロック516に戻ると、キャッシュコントローラ115が、キャッシュビクティムの総数に基づいてサイズ108が設定されるべきであることを構成ビットが示すと決定した場合、方法のフローはブロック522に移動し、キャッシュコントローラ115は、キャッシュビクティムの総数とL2キャッシュ105におけるキャッシュビクティムレートとの両方に基づくようにサイズ108の決定を設定する。ブロック524において、キャッシュコントローラ115は、キャッシュビクティムレートがL2キャッシュビクティムレートのためのプログラムされた閾値に一致するか又はそれを超えるかどうか、及び、L2キャッシュ105におけるキャッシュビクティムの総数に一致するか又はそれを超えるかどうかを決定する。両方の条件が満たされる場合、方法のフローはブロック514に移動し、キャッシュコントローラ115は、L2ビクティム閾値が現在のL3サイズモードで満たされていると判定する。一致せず超えてもいない場合、キャッシュコントローラ115は、L2ビクティム閾値が、現在のL3サイズモードで満たされていないと判定する。
【0053】
本明細書に開示されるように、いくつかの実施形態では、方法は、プロセッサにおける第1の作業負荷を識別することと、プロセッサにおいて低電力状態を終了させることに応じて、識別された第1の作業負荷に基づいて、第1のキャッシュのサイズを設定することと、を含む。一態様では、第1の作業負荷を識別することは、第2のキャッシュのアクセス特性に基づいて第1の作業負荷を識別することを含む。別の一態様では、第2のキャッシュのアクセス特性は、第2のキャッシュにおけるキャッシュビクティムの数を含む。更に別の一態様では、キャッシュビクティムの数は、プロセッサにおいて低電力状態を最後に終了してからのキャッシュビクティムの数を含む。更に別の一態様では、アクセス特性は、第2のキャッシュにおけるキャッシュビクティムレートを含む。
【0054】
一態様では、第1の作業負荷を識別することは、プロセッサにおいて低電力状態を開始する要求に応じて、第1の作業負荷を識別することを含む。別の一態様では、第1の作業負荷を識別することは、プロセッサにおけるアクティブプロセッサコアの数に基づいて、第1の作業負荷を識別することを含む。更に別の一態様では、第1のキャッシュのサイズを設定することは、第1の作業負荷に基づいて、複数の事前定義されたキャッシュサイズから選択することを含む。更に別の一態様では、第1のキャッシュのサイズを設定することは、カウンタにおける値、具体的には、第1の作業負荷が識別された回数を示す値に基づいて、第1のキャッシュのサイズを設定することを含む。
【0055】
いくつかの実施形態では、方法は、プロセッサの第1のキャッシュにおけるアクセス特性を識別することと、低電力モードを終了することに応じて、識別されたアクセス特性に基づいて、プロセッサの第2のキャッシュのサイズを設定することと、を含む。一態様では、第2のキャッシュのサイズを設定することは、プロセッサにおけるアクティブなプロセッサコアの数に基づいて、第2のキャッシュのサイズを設定することを含む。
【0056】
いくつかの実施形態では、プロセッサは、第1のキャッシュと、プロセッサにおける第1の作業負荷を識別し、プロセッサが低電力状態を終了させることに応じて、識別された第1の作業負荷に基づいて、第1のキャッシュのサイズを設定するように構成されたキャッシュコントローラと、を含む。一態様では、プロセッサは、第2のキャッシュを含み、キャッシュコントローラは、第2のキャッシュのアクセス特性に基づいて第1の作業負荷を識別する。別の一態様では、第2のキャッシュのアクセス特性は、第2のキャッシュにおけるキャッシュビクティムの数を含む。更に別の一態様では、キャッシュビクティムの数は、プロセッサにおいて低電力状態を最後に終了してからのキャッシュビクティムの数を含む。
【0057】
一態様では、アクセス特性は、第2のキャッシュにおけるキャッシュビクティムレートを含む。別の一態様では、キャッシュコントローラは、プロセッサにおいて低電力状態に入る要求に応じて、第1の作業負荷を識別するように構成されている。更に別の一態様では、キャッシュコントローラは、プロセッサにおけるアクティブなプロセッサコアの数に基づいて、第1の作業負荷を識別するように構成されている。また更に別の一態様では、キャッシュコントローラは、第1の作業負荷に基づいて、複数の事前定義されたキャッシュサイズから選択し、それによって、第1のキャッシュのサイズを設定するように構成されている。更に別の一態様では、キャッシュコントローラは、カウンタにおける値、具体的には、第1の作業負荷が識別された回数を示す値に基づいて、第1のキャッシュのサイズを設定するように構成されている。
【0058】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0059】
いくつかの実施形態では、上述した技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装される。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶されるか、別の方法で明確に具体化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、命令及び特定のデータを含んでもよく、当該命令及び特定のデータは、1つ以上のプロセッサによって実行されると、上述した技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する。非一時的なコンピュータ可読記憶媒体は、例えば、磁気又は光ディスク記憶デバイス、フラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス(単数又は複数)等を含み得る。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈され若しくは別の方法で実行可能な他の命令形式で実装可能である。
【0060】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0061】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【手続補正書】
【提出日】2024-05-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
プロセッサにおいて第1の作業負荷を識別することと、
前記プロセッサにおいて低電力状態を終了することに応じて、識別された前記第1の作業負荷に基づいて、第1のキャッシュのサイズを設定することと、を含む、
方法。
【請求項2】
前記第1の作業負荷を識別することは、第2のキャッシュのアクセス特性に基づいて、前記第1の作業負荷を識別することを含む、
請求項1の方法。
【請求項3】
前記第2のキャッシュのアクセス特性は、前記第2のキャッシュにおけるキャッシュビクティムの数を含む、
請求項2の方法。
【請求項4】
前記キャッシュビクティムの数は、前記プロセッサにおいて前記低電力状態を最後に終了してからのキャッシュビクティムの数を含む、
請求項3の方法。
【請求項5】
前記アクセス特性は、前記第2のキャッシュにおけるキャッシュビクティムレートを含む、
請求項2の方法。
【請求項6】
前記第1の作業負荷を識別することは、前記プロセッサにおいて前記低電力状態に移行する要求に応じて、前記第1の作業負荷を識別することを含む、
請求項1の方法。
【請求項7】
前記第1の作業負荷を識別することは、前記プロセッサにおけるアクティブなプロセッサコアの数に基づいて、前記第1の作業負荷を識別することを含む、
請求項1の方法。
【請求項8】
前記第1のキャッシュのサイズを設定することは、前記第1の作業負荷に基づいて、事前定義された複数のキャッシュサイズから選択することを含む、
請求項1の方法。
【請求項9】
前記第1のキャッシュのサイズを設定することは、カウンタにおける値に基づいて前記第1のキャッシュのサイズを設定することを含み、前記値は、前記第1の作業負荷が識別された回数を示す、
請求項1の方法。
【請求項10】
プロセッサであって、
第1のキャッシュと、
キャッシュコントローラと、を備え、
前記キャッシュコントローラは、
前記プロセッサにおける第1の作業負荷を識別することと、
前記プロセッサが低電力状態を終了することに応じて、識別された前記第1の作業負荷に基づいて、第1のキャッシュのサイズを設定することと、
を行うように構成されている、
プロセッサ。
【請求項11】
第2のキャッシュを備え、
前記キャッシュコントローラは、前記第2のキャッシュのアクセス特性に基づいて、前記第1の作業負荷を識別する、
請求項
10のプロセッサ。
【請求項12】
前記第2のキャッシュのアクセス特性は、前記第2のキャッシュにおけるキャッシュビクティムの数を含む、
請求項
11のプロセッサ。
【請求項13】
前記キャッシュビクティムの数は、前記プロセッサにおいて前記低電力状態を最後に終了してからのキャッシュビクティムの数を含む、
請求項
12のプロセッサ。
【請求項14】
前記アクセス特性は、前記第2のキャッシュにおけるキャッシュビクティムレートを含む、
請求項
11のプロセッサ。
【請求項15】
前記キャッシュコントローラは、前記プロセッサにおいて前記低電力状態に移行する要求に応じて、前記第1の作業負荷を識別するように構成されている、
請求項
10のプロセッサ。
【国際調査報告】