(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-08-20
(45)【発行日】2025-08-28
(54)【発明の名称】階層キャッシュ回路内でデータを転送するための方法及び装置
(51)【国際特許分類】
G06F 12/0897 20160101AFI20250821BHJP
G06F 12/0895 20160101ALI20250821BHJP
G06F 12/126 20160101ALI20250821BHJP
【FI】
G06F12/0897 105
G06F12/0895 112
G06F12/126 100
(21)【出願番号】P 2023530929
(86)(22)【出願日】2021-11-18
(86)【国際出願番号】 EP2021082196
(87)【国際公開番号】W WO2022112099
(87)【国際公開日】2022-06-02
【審査請求日】2024-11-11
(32)【優先日】2020-11-25
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500395107
【氏名又は名称】アーム・リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】プスデスリス、ジョセフ マイケル
(72)【発明者】
【氏名】ブルース、クラス マグヌス
(72)【発明者】
【氏名】ジャラール、ジャムシェド
(72)【発明者】
【氏名】カセリディス、ディミトリオス
(72)【発明者】
【氏名】ラマギリ、グルナート
(72)【発明者】
【氏名】キム、ホソプ
(72)【発明者】
【氏名】ターナー、アンドリュー ジョン
(72)【発明者】
【氏名】マミーシュ、ラニア フセイン ハッサン
【審査官】後藤 彰
(56)【参考文献】
【文献】特開2001-34533(JP,A)
【文献】特開平5-127997(JP,A)
【文献】国際公開第2007/096572(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/0897
G06F 12/0895
G06F 12/126
(57)【特許請求の範囲】
【請求項1】
装置であって、
データに関するアクセス要求を発行するように構成された、処理回路と、
対応するアクセス要求に応じて前記処理回路に提供するために、メモリからのデータの一時的コピーを記憶するための、第1のキャッシュ回路と、
対応するアクセス要求に応じて前記第1のキャッシュ回路に提供するために、前記メモリからのデータの一時的コピーを記憶するための、第2のキャッシュ回路であって、前記第1のキャッシュ回路のアクセスレイテンシよりも高いアクセスレイテンシを有する、第2のキャッシュ回路と、を備え、
前記第2のキャッシュ回路は、前記第2のキャッシュ回路内に記憶されたデータに対する要求を受信したのに応じて、
前記データを擬似無効データとして識別し、
前記データを前記第1のキャッシュ回路に提供し、
前記第2のキャッシュ回路は、前記第1のキャッシュ回路が前記データを追い出すことを示す、追い出し指示を受信したのに応じて、
前記データが前記第1のキャッシュ回路に提供されてから前記データが変更されていないと判定したのに応じて、前記擬似無効データを有効データとして識別する、装置。
【請求項2】
前記第2のキャッシュ回路が、追い出すデータを選択するように構成されており、前記選択することが、有効データよりも擬似無効データを優先的に選択することを含む、請求項1に記載の装置。
【請求項3】
前記選択することが、擬似無効データよりも無効データを優先的に選択することを含む、請求項2に記載の装置。
【請求項4】
前記第2のキャッシュ回路が、前記データに関する擬似無効性インジケータを設定することによって、前記データを擬似無効データとして識別するように構成された、請求項1~3のいずれか一項に記載の装置。
【請求項5】
前記第2のキャッシュ回路が、
前記データに関する優先度インジケータを維持することと、
最小優先度インジケータ値を前記データに割り当てることと、によって、前記データを擬似無効データとして識別するように構成された、請求項1~3のいずれか一項に記載の装置。
【請求項6】
前記第2のキャッシュ回路が、前記追い出し指示を受信したのに応じて、前記データが前記第1のキャッシュ回路に提供されてから前記データが変更されたと判定したのに応じて、前記データに対する返却要求を前記第1のキャッシュ回路に送信し、
前記第1のキャッシュ回路が、前記返却要求を受信したのに応じて、前記擬似無効データを元に戻すために、前記データを前記第2のキャッシュ回路に提供する、請求項1~5のいずれか一項に記載の装置。
【請求項7】
前記第2のキャッシュ回路が、前記データを、関連付けられた変更インジケータとともに、前記第1のキャッシュ回路に提供するように構成されており、
前記第1のキャッシュ回路が、
前記データを変更したのに応じて、前記変更を示すように前記変更インジケータを設定し、
前記第2のキャッシュ回路に、前記変更インジケータを含む前記追い出し指示を送信するように構成されており、
前記第2のキャッシュ回路が、前記変更インジケータに基づいて、前記データが変更されたと前記判定することを実行するように構成された、請求項6に記載の装置。
【請求項8】
前記第2のキャッシュ回路が、前記データを含むキャッシュラインがダーティなキャッシュラインであると判定したのに応じて、前記変更インジケータを前記第1のキャッシュ回路に提供するように構成された、請求項7に記載の装置。
【請求項9】
前記第1のキャッシュ回路が、前記第2のキャッシュ回路において擬似無効データとして識別された前記データを追い出すとき、前記第2のキャッシュ回路からのデータ要求がない場合、前記データを前記第2のキャッシュ回路に提供しないように構成された、請求項1~8のいずれか一項に記載の装置。
【請求項10】
前記第1のキャッシュ回路及び前記第2のキャッシュ回路が、非包括的なキャッシュ階層を実現するように構成された、請求項1~9のいずれか一項に記載の装置。
【請求項11】
前記第2のキャッシュ回路が、前記処理回路及び第2の処理回路に対して共有キャッシュとして動作するように構成された、請求項1~10のいずれか一項に記載の装置。
【請求項12】
前記第1のキャッシュ回路及び前記第2のキャッシュ回路が、前記データを含むキャッシュラインを提供することによって、前記データを提供するように構成された、請求項1~11のいずれか一項に記載の装置。
【請求項13】
方法であって、
対応するアクセス要求に応じて処理回路に提供するために、メモリからのデータの一時的コピーを第1のキャッシュ回路に記憶することと、
対応するアクセス要求に応じて前記第1のキャッシュ回路に提供するために、前記メモリからのデータの一時的なコピーを第2のキャッシュ回路であって、前記第2のキャッシュ回路は、前記第1のキャッシュ回路のアクセスレイテンシよりも高いアクセスレイテンシを有する、第2のキャッシュ回路に記憶することと、
前記第2のキャッシュ回路内に記憶されたデータに対する要求を、前記第1のキャッシュ回路から前記第2のキャッシュ回路に送信することと、
前記第2のキャッシュ回路が前記データについての前記要求を受信したのに応じて、
前記第2のキャッシュ回路によって、前記データを擬似無効データとして識別することと、
前記第2のキャッシュ回路から前記第1のキャッシュ回路に前記データを提供することと、
前記第1のキャッシュ回路が前記データを追い出すことを示す追い出し通知を、前記第1のキャッシュ回路から前記第2のキャッシュ回路に送信することと、
前記第2のキャッシュ回路が前記追い出し通知を受信したのに応じて、かつ前記データが前記第1のキャッシュ回路に提供されてから前記データが変更されていないと判定したのに応じて、前記第2のキャッシュ回路によって、前記擬似無効データを有効データとして識別することと、を含む、方法。
【請求項14】
システムであって、
メモリ回路と、
前記メモリ回路に記憶されたデータに関するアクセス要求を発行するように構成された、処理回路と、
対応するアクセス要求に応じて前記処理回路に提供するために、前記メモリ回路からのデータの一時的コピーを記憶するための、第1のキャッシュ回路と、
対応するアクセス要求に応じて前記第1のキャッシュ回路に提供するために、前記メモリ回路からのデータの一時的コピーを記憶するための、第2のキャッシュ回路であって、前記第1のキャッシュ回路のアクセスレイテンシよりも高いアクセスレイテンシを有する、第2のキャッシュ回路と、を備え、
前記第2のキャッシュ回路は、前記第2のキャッシュ回路内に記憶されたデータに対する要求を受信したのに応じて、
前記データを擬似無効データとして識別し、
前記データを前記第1のキャッシュ回路に提供し、
前記第2のキャッシュ回路は、前記第1のキャッシュ回路が前記データを追い出すことを示す、追い出し指示を受信したのに応じて、
前記データが前記第1のキャッシュ回路に提供されてから前記データが変更されていないと判定したのに応じて、前記擬似無効データを有効データとして識別する、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、データ記憶の分野に関し、より具体的には、キャッシュ記憶回路に関する。
【0002】
いくつかの処理システムでは、プロセッサはメモリに結合されている。メモリは、プロセッサによってアクセスされるデータを記憶する。例えば、メモリは、ダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)であってもよい。このメモリに記憶されたデータにアクセスすることに関連付けられたレイテンシは、比較的長い場合がある。したがって、いくつかのそのようなシステムでは、概念的にプロセッサとメモリとの「間にある」キャッシュ回路が提供される。キャッシュは、処理回路に提供するために、メモリからのデータの一時的コピーを記憶する。キャッシュは、メモリよりも容量が小さいが、トレードオフとして、キャッシュへのアクセスに関連付けられたレイテンシは、メモリに関連付けられたレイテンシよりも少ない。したがって、キャッシュに記憶されているデータに対しては、プロセッサからのデータアクセス要求は、キャッシュに記憶されていないデータに対する要求よりも、迅速に処理され得る。
【0003】
いくつかのシステムでは、複数のキャッシュが提供される。これらは、複数レベルのキャッシュを有する、階層構造を有してもよい。各レベルは、徐々にプロセッサに「より近く」なり、より近いレベルはより低いアクセスレイテンシを有するが、より低い容量も有する。データは、キャッシング方式に従って、メモリと、キャッシュのレベルと、プロセッサとの間で行き来する。例えば、プロセッサがデータ要求を発行したのに応じて、要求は、データが見つかるまで、最初にキャッシュレベルを通して伝搬され、次いでメモリに伝搬され得る。データは、次いで、プロセッサに提供され、例えば、プロセッサに最も近いキャッシュレベルに記憶され得る。後に、そのデータは、プロセッサから更に離れたキャッシュレベルに追い出され得るか、又はメモリに戻され得る。
【0004】
このように階層キャッシュ構造を用いることで、電力及び伝送帯域幅が消費される。そのような階層キャッシュ構造の動作の効率を改善することが望ましいであろう。
【発明の概要】
【0005】
少なくともいくつかの実施例は、相互接続装置であって、
データに関するアクセス要求を発行するように構成された、処理回路と、
対応するアクセス要求に応じて処理回路に提供するために、メモリからのデータの一時的コピーを記憶するための、第1のキャッシュ回路と、
対応するアクセス要求に応じて第1のキャッシュ回路に提供するために、メモリからのデータの一時的コピーを記憶するための、第2のキャッシュ回路であって、第1のキャッシュ回路のアクセスレイテンシよりも高いアクセスレイテンシを有する、第2のキャッシュ回路と、を備え、
第2のキャッシュ回路は、第2のキャッシュ回路内に記憶されたデータに対する要求を受信したのに応じて、
当該データを擬似無効データとして識別し、
当該データを第1のキャッシュ回路に提供し、
第2のキャッシュ回路は、第1のキャッシュ回路が当該データを追い出すことを示す、追い出し指示を受信したのに応じて、
当該データが第1のキャッシュ回路に提供されてから当該データが変更されていないと判定したのに応じて、当該擬似無効データを有効データとして識別する、相互接続装置を提供する。
【0006】
更なる実施例は、方法であって、
対応するアクセス要求に応じて処理回路に提供するために、メモリからのデータの一時的コピーを第1のキャッシュ回路に記憶することと、
対応するアクセス要求に応じて第1のキャッシュ回路に提供するために、メモリからのデータの一時的なコピーを第2のキャッシュ回路であって、第2のキャッシュ回路は、第1のキャッシュ回路のアクセスレイテンシよりも高いアクセスレイテンシを有する、第2のキャッシュ回路に記憶することと、
第2のキャッシュ回路内に記憶されたデータに対する要求を、第1のキャッシュ回路から第2のキャッシュ回路に送信することと、
第2のキャッシュ回路が当該データについての要求を受信したのに応じて、
第2のキャッシュ回路によって、当該データを擬似無効データとして識別することと、
第2のキャッシュ回路から第1のキャッシュ回路に当該データを提供することと、
第1のキャッシュ回路が当該データを追い出すことを示す追い出し通知を、第1のキャッシュ回路から第2のキャッシュ回路に送信することと、
第2のキャッシュ回路が追い出し通知を受信したのに応じて、かつ当該データが第1のキャッシュ回路に提供されてから当該データが変更されていないと判定したのに応じて、第2のキャッシュ回路によって、当該擬似無効データを有効データとして識別することと、を含む、方法を提供する。
【0007】
更なる実施例は、システムであって、
メモリ回路と、
メモリ回路に記憶されたデータに関するアクセス要求を発行するように構成された、処理回路と、
対応するアクセス要求に応じて処理回路に提供するために、メモリ回路からのデータの一時的コピーを記憶するための、第1のキャッシュ回路と、
対応するアクセス要求に応じて第1のキャッシュ回路に提供するために、メモリ回路からのデータの一時的コピーを記憶するための、第2のキャッシュ回路であって、第1のキャッシュ回路のアクセスレイテンシよりも高いアクセスレイテンシを有する、第2のキャッシュ回路と、を備え、
第2のキャッシュ回路は、第2のキャッシュ回路内に記憶されたデータに対する要求を受信したのに応じて、
当該データを擬似無効データとして識別し、
当該データを第1のキャッシュ回路に提供し、
第2のキャッシュ回路は、第1のキャッシュ回路が当該データを追い出すことを示す、追い出し指示を受信したのに応じて、
当該データが第1のキャッシュ回路に提供されてから当該データが変更されていないと判定したのに応じて、当該擬似無効データを有効データとして識別する、システムを提供する。
【0008】
本技法の更なる態様、特徴、及び利点は、添付の図面とともに読まれる以下の例の説明から明らかになる。
【図面の簡単な説明】
【0009】
【
図2】
図1の装置によってデータ要求が処理され得る、動作フローを示す。
【
図3A】比較例による、キャッシュ間のデータの移動を概略的に示す。
【
図3B】比較例による、キャッシュ間のデータの移動を概略的に示す。
【
図3C】比較例による、キャッシュ間のデータの移動を概略的に示す。
【
図4A】キャッシュ間でデータを記憶し移動させる、例示的な方法を示す。
【
図4B】キャッシュ間でデータを記憶し移動させる、例示的な方法を示す。
【
図4C】キャッシュ間でデータを記憶し移動させる、例示的な方法を示す。
【
図4D】キャッシュ間でデータを記憶し移動させる、例示的な方法を示す。
【
図4E】キャッシュ間でデータを記憶し移動させる、例示的な方法を示す。
【
図5A】追い出しプロセスに関連付けられた、例示的な動作フローを示す。
【
図5B】追い出しプロセスに関連付けられた、例示的な動作フローを示す。
【発明を実施するための形態】
【0010】
上記で説明したように、処理装置は、処理回路と、キャッシュ階層を提供するキャッシュ回路と、を備え得る。階層は、処理回路に最も近い、第1のキャッシュ回路と、第1のキャッシュ回路よりも高いアクセスレイテンシを有する、第2のキャッシュ回路と、を含み得る。
【0011】
比較例によるそのような装置では、(例えば、処理回路からの要求に応じて)第2のキャッシュ回路から第1のキャッシュ回路にデータが転送され得る。データは、次いで、第2のキャッシュ回路(非包括的なキャッシュ階層システム)において「無効」としてマークされる。後に、(変更されている可能性がある)データは、第1のキャッシュ回路から追い出され、第2のキャッシュ回路に返送される。いくつかの動作状況では、例えば、(プロセッサがデータ処理動作を実行しており、したがって、繰り返しアクセスしている)作業用データセットが、第1のキャッシュ回路の容量よりも大きいが、第2のキャッシュ回路の容量よりも小さい場合、第1のキャッシュ回路と第2のキャッシュ回路との間で所与のデータが繰り返し送信される、「ピンポン」効果が生じ得る。これにより、電力及び伝送帯域幅が消費される。
【0012】
このピンポン効果が低減される本開示の一例では、装置は、データに関するアクセス要求を発行するように構成された、処理回路を備える。本装置はまた、対応するアクセス要求に応じて処理回路に提供するために、メモリからのデータの一時的コピーを記憶するための、第1のキャッシュ回路も備える。本装置は、対応するアクセス要求に応じて第1のキャッシュ回路に提供するために、メモリからのデータの一時的コピーを記憶するための、第2のキャッシュ回路であって、第1のキャッシュ回路のアクセスレイテンシよりも高いアクセスレイテンシを有する、第2のキャッシュ回路を更に備える。したがって、第1のキャッシュ回路及び第2のキャッシュ回路は、例えば、所与のデータが、第1のキャッシュ回路及び第2のキャッシュ回路において有効なものとして同時に保持されない、非包括的なキャッシュ階層であり得る、階層構造を形成する。第1のキャッシュ回路と第2のキャッシュ回路との間の所与のデータの提供は、所与のデータを含むキャッシュラインを送信することによって、実行され得る。
【0013】
第2のキャッシュ回路は、第2のキャッシュ回路内に記憶されたデータに対する要求を受信したのに応じて、当該データを第1のキャッシュ回路に提供し、また、データを擬似無効データとして識別する。これは、事実上、データが無効になる場合があるという、暫定的な指標である。
【0014】
後に、第1のキャッシュ回路は、例えば、第1のキャッシュ回路に新たに含まれるデータ用のスペースを設けるために、データを追い出す。第2のキャッシュ回路は、第1のキャッシュ回路がデータを追い出すことを示す、追い出し指示を受信する。例えば、第1のキャッシュ回路は、追い出し指示を第2のキャッシュ回路に送信し得る。
【0015】
この指示を受信したのに応じて、第2のキャッシュ回路は、データが第1のキャッシュ回路に提供されてから変更されたかどうかを判定する。変更されていない場合、第2のキャッシュ回路は、擬似無効データを有効データとして識別する。したがって、データは、第2のキャッシュ回路に返送されることなく、第1のキャッシュ回路から削除することができ、データが変更されていないので、第2のキャッシュ回路内のデータの擬似無効コピーは、依然として正しい値を有し、したがって、有効としてマークされ得る。
【0016】
このように、第1キャッシュ回路から第2キャッシュ回路へのデータの伝送が実行されず、したがって、擬似無効化が実施されない上述の比較例と比べて、電力及び帯域幅が節約される。
【0017】
第1のキャッシュ回路からの追い出しは、既に述べたとおりである。しかしながら、第2のキャッシュ回路はまた、そこから追い出すデータを判定するために、追い出し論理も適用し得る。一例では、第2のキャッシュ回路が、追い出すデータを選択するように構成されており、当該選択することは、有効データよりも擬似無効データを優先的に選択することを含む。当該選択することは、擬似無効データよりも無効データを優先的に選択することを更に含み得る。したがって、第2のキャッシュ回路は、追い出し対象として無効データが最も高い優先順位を有し、その後に擬似無効データが続き、最後に有効データが最も低い追い出し優先順位を有する、追い出し優先順位を適用し得る。これにより、無効データの代わりに、擬似無効データを第2のキャッシュ回路に優先的に保持することができるが、有効データを追い出すことを犠牲にしない。
【0018】
第2のキャッシュ回路は、有効データに関連付けられた優先度インジケータを維持するように構成され得、優先度の低いデータは、優先度の高いデータよりも優先的に追い出される。第2のキャッシュ回路は、最小優先度インジケータ値を当該データに割り当てることによって、データを擬似無効として識別するように構成され得る。これにより、システムを大幅に変更することなく、擬似無効性の識別をシステム内で構成することができる。しかしながら、これはまた、そうでなければ有効なデータに割り当てられた可能性のある、潜在的な優先度レベルも除去する。
【0019】
代替的に、第2のキャッシュ回路は、当該データに関する擬似無効性インジケータを設定することによって、当該データを擬似無効データとして識別するように構成され得る。このことは、有効データに割り当てることができる優先度レベルの数の観点から機能を低下させない、擬似無効としてデータを識別する有効な方法を提供する。
【0020】
上記では、第2のキャッシュ回路から提供されてからデータが変更されていない、第1のキャッシュ回路からの追い出しに関連付けられた機能について説明した。一例では、当該データが第1のキャッシュ回路に提供されてから当該データが変更されたと判定したのに応じて、第2のキャッシュ回路が、当該データに対する返却要求を第1のキャッシュ回路に送信する。次いで、当該返却要求を受信したのに応じて、第1のキャッシュ回路が、当該擬似無効データを元に戻すために、当該(変更された)データを第2のキャッシュ回路に提供する。本例は、したがって、変更されていないデータだけでなく、変更されたデータも処理することができる。データは、変更されている場合、第1のキャッシュ回路から第2のキャッシュ回路に依然として送信されるが、データが変更されていない場合が多く、したがって、本開示が実現されていない比較システムと比べて、依然として電力及び帯域幅の大幅な節約がある。
【0021】
その一例では、第2のキャッシュ回路が、データを、関連付けられた変更インジケータとともに、第1のキャッシュ回路に提供するように構成される。第1のキャッシュ回路は、次いで、当該データを変更したのに応じて、当該変更を示すように変更インジケータを設定するように構成される。例えば、変更インジケータは、第1のキャッシュ回路によって反転されるビットであり得る。データを追い出すとき、第1のキャッシュ回路は、第2のキャッシュ回路に、変更インジケータを含む当該追い出し指示を送信する。次いで、第2のキャッシュ回路が、変更インジケータに基づいて、データが変更されたと判定することができる。
【0022】
変更インジケータは、例えば、第2のキャッシュ回路による、当該データを含むキャッシュラインがダーティなキャッシュラインであるという判定に応じて、提供され得る。キャッシュラインがクリーンなキャッシュラインである場合、クリーンなキャッシュラインとしてのステータスが、キャッシュラインが変更されていないことを示すので、変更インジケータは、任意選択的に、提供されなくてもよい。したがって、第2のキャッシュ回路は、データが送信されることなく、データをメモリに書き戻すことなく、第1のキャッシュ回路からの当該データの複数のダーティな追い出しを、吸収することができる。したがって、発生する電力及び帯域幅が削減される。
【0023】
一例では、第1のキャッシュ回路が、第2のキャッシュ回路において擬似無効データとして識別された当該データを追い出すとき、当該第2のキャッシュ回路からのデータ要求がない場合、当該データを第2のキャッシュ回路に提供しないように構成される。したがって、第2のキャッシュ回路によって要求されない限り、第1のキャッシュ回路から第2のキャッシュ回路へのデータの伝送を許可しないことによって、電力及び帯域幅の節約を実施することができる。
【0024】
一例では、第2のキャッシュ回路は、当該処理回路及び第2の処理回路に対して共有キャッシュとして動作するように構成される。このことは、本開示が、各々が、それぞれの第1のキャッシュ回路を有するが、単一の第2のキャッシュ回路を共有する複数のプロセッサを備える、システム内で実現されることを可能にする。
【0025】
ここで、本開示の実施例を、図面を参照して説明する。
【0026】
図1は、本開示の実施例による装置100を概略的に示す。装置100は、装置100に接続されたメモリ110に記憶されたデータに関するアクセス要求を発行する、プロセッサ105を備える。装置100は、第1のキャッシュ115及び第2のキャッシュ120を備える。第1のキャッシュ115及び第2のキャッシュ120の各々は、プロセッサ105によるより高速なアクセスのために、メモリからのデータの一時的コピーを記憶するように構成される。具体的には、第1のキャッシュ115は、サイズが比較的小さく、メモリ110よりも著しく小さいアクセスレイテンシを有する。第2のキャッシュ120は、第1のキャッシュよりも大きい容量と、第1のキャッシュ115よりも長いがメモリ110よりも短い、アクセスレイテンシと、を有する。したがって、具体的には、プロセッサ105が同じデータ項目に繰り返しアクセスする場合に、データアクセス要求の処理速度を大幅に改善することができる。
【0027】
第1のキャッシュ115及び第2のキャッシュ120は、非包括的なキャッシュ階層を形成する。本階層では、所与のデータ項目は、典型的には、第1のキャッシュ115及び第2のキャッシュ120に同時には有効に記憶されない。例えば、第2のキャッシュ120内の所与のデータ項目が第1のキャッシュ115に提供される場合、第2のキャッシュは、そのデータのコピーを無効にする。このことは、重複キャッシングを回避し、第2のキャッシュ120がより小さくなることを可能にする。
【0028】
図2は、
図1の装置によってデータ要求が処理され得る、動作フローを示す。
【0029】
プロセッサ105は、所与のデータ項目に対する要求を発行する。本要求は、第1のキャッシュ115で受信され、要求されたデータがそこに記憶されているかどうかを判定する。データが第1のキャッシュ115に記憶されている場合、データはプロセッサ105に提供される。
【0030】
データが第1のキャッシュ115に記憶されていない場合、要求は第2のキャッシュ120に転送され、同様に、要求されたデータがそこに記憶されているかどうかを判定する。データが第2のキャッシュ120に記憶されている場合、データは、第1のキャッシュ115を介して、プロセッサ105に提供される。追加的に、データは、第1のキャッシュ115に転送され得、第2のキャッシュ120で無効にされ得る。
【0031】
データが第1のキャッシュ115又は第2のキャッシュ120に記憶されていない場合、要求はメモリ110に転送される。メモリ110は、第1のキャッシュ115及び第2のキャッシュ120を介して、プロセッサ105にデータを提供する。追加的に、データは、第1のキャッシュ115にキャッシュされてもよい。いくつかの実施例では、データは第2のキャッシュ120にキャッシュされない。
【0032】
図3A~
図3Cは、比較例による、
図1のキャッシュ115、120などのキャッシュ間のデータの移動を概略的に示す。
【0033】
図3Aで示された初期構成では、データ項目は第2のキャッシュに記憶されている。データは、データの有効コピーを示す、有効ビットVとともに記憶されている。一例では、本構成の前に、第1のキャッシュが、データ項目の有効コピーを有し、第2のキャッシュは有さなかった。この後、データ項目は第1のキャッシュから追い出され、
図3Aの初期構成をもたらす。
【0034】
データ項目は、第1のキャッシュから受信された、データ要求の対象である。
図3Bに示すように、データは、関連付けられた有効ビットVとともに、第1のキャッシュに送信され、第1のキャッシュに記憶される。同時に、第2のキャッシュ内のデータは、無効性Iを示すように有効ビットを反転することによって、無効にされる(例えば、1のビット値は「有効」を示し得、0のビット値は「無効」を示し得る)。後に、新たに追加されたデータ項目用のスペースを設けるために、データ項目が第2のキャッシュから追い出される場合、無効なデータ項目が優先的に追い出される。
【0035】
後に、データ項目は、新しいデータ項目用のスペースを設けるために、第1のキャッシュから追い出される。
図3Cに示すように、データは、関連付けられた有効ビットVとともに、第2のキャッシュに送信され、第2のキャッシュに記憶される。
【0036】
このように、高い優先度(例えば、より頻繁に使用されるデータ)は第1のキャッシュに移動され得、次いで、他のデータが高い優先度を有するときに、第2のキャッシュに戻され得る。しかしながら、プロセッサが動作を実行している作業用データセットのサイズが、第1のキャッシュのサイズと第2のキャッシュのサイズとの間にある場合、第1のキャッシュと第2のキャッシュとの間でデータが繰り返し転送される、以下のような「ピンポン」効果をもたらす可能性がある:第2のキャッシュ内の所与のデータ項目が要求され、したがって、第1のキャッシュ内に充填され、その後、新しいデータ用のスペースを設けるために追い出され、第2のキャッシュに戻され、その後、再び要求され、したがって、第1のキャッシュ内に再充填されるなどである。これらのステップの各々で、データは、第1のキャッシュと第2のキャッシュとの間で送信され、電力及び帯域幅が消費される。
【0037】
ここで、このピンポン効果が低減又は排除される、本開示による、キャッシュ間でデータを記憶し移動させる、例示的な方法について、
図4A~
図4Eを参照して説明する。これは、
図1に示すように、装置100のキャッシュ115、120を用いて実現され得る。
【0038】
図4Aで示された初期構成では、データ項目は第2のキャッシュ120に記憶されている。データは、データの有効コピーを示す、有効性インジケータVとともに記憶されている。
【0039】
データ項目は、第1のキャッシュ115から受信された、データ要求の対象である。
図4Bに示すように、データは、
図3Bに示すのと同じように、関連付けられた有効性インジケータVとともに、第1のキャッシュ115に送信され、第1のキャッシュ115に記憶される。変更インジケータUもまた、第1のキャッシュ内のデータ項目に関連付けられ、それが(まだ)変更されていないことを示す。しかしながら、第2のキャッシュ120内のデータを無効にする代わりに、第2のキャッシュ内のデータは、有効性インジケータを更新して擬似無効性PIを示すことによって、擬似無効としてマークされる。したがって、有効性インジケータは少なくとも3つの値をとることができ、例えば、2ビット値であってもよい。後に、データ項目が第2のキャッシュから追い出される場合、無効データ項目が優先的に追い出され、その後に擬似無効データ項目が追い出され、次に有効データ項目が追い出される。すなわち、擬似無効データ項目は、無効データ項目をキャッシュに残すための高い優先度を有するが、有効データ項目よりも低い優先度を有する。
【0040】
後に、データ項目は、第1のキャッシュ115から追い出される。
【0041】
図4Cは、データ項目が第1のキャッシュ115内に充填されてから変更されていない場合の、追い出しを示す。第1のキャッシュ115は、データ項目を追い出すことを示す追い出し通知を、第2のキャッシュ120に発行する。追い出し通知は、変更インジケータの現在の状態(すなわち、「無変更」を示す「U」)を含む。追い出し通知を受信したのに応じて、第2のキャッシュ120は、データ項目の擬似無効コピーを依然として含んでいると判定し、有効性インジケータを「V」に更新することによって、データ項目を有効にする。このように、データ項目自体が第2のキャッシュに送信されることなく、データ項目の有効コピーが第2のキャッシュ115に設けられる。したがって、前述のピンポン効果が回避され、それに対応して電力及び帯域幅が節約される。
【0042】
図4C及び
図4Eは、データ項目が第1のキャッシュ115内に充填されてから変更された場合の、追い出しを示す。
図4Dでは、データ項目は、それが有効であり、変更されていることを示す、有効性インジケータ「V」及び変更インジケータ「M」とともに記憶される。第1のキャッシュ115は、変更インジケータ「M」を含む追い出し通知を、第2のキャッシュ120に送信する。これに応じて、第2キャッシュ120は、第1キャッシュ115にデータを要求する。
【0043】
次に、
図4Eに示すように、第1のキャッシュ115は、データ項目を追い出し、データ項目を第2のキャッシュ120に送信し、第2のキャッシュ120は、有効性インジケータ「V」とともにデータ項目を記憶する。したがって、この状況では、データ項目は、依然として第1のキャッシュ115から第2のキャッシュ120に送信される。しかしながら、データ項目が変更されていない状況における電力及び帯域幅の節約は、全体的な節約をもたらす。
【0044】
図5A及び
図5Bは、上述の追い出しプロセスに関連付けられた、例示的な動作フローを示す。
【0045】
図5Aは、
図4A~
図4Cに対応する、第1のキャッシュ115と第2のキャッシュ120との間の動作フローを示す。第1のキャッシュ115は、第2のキャッシュ120にデータを要求する。第2のキャッシュ120は、それに応じて、要求されたデータを第1のキャッシュ115に提供する。次に、第2のキャッシュ120は、データを擬似無効としてマークする。
【0046】
後に、第1のキャッシュ115は、データを追い出し、データが変更されていないことを示す、追い出し通知を第2のキャッシュに発行する。第2のキャッシュ120は、データの擬似無効コピーを依然として有し、データが変更されていないと判定する。これに応じて、第2のキャッシュ120は、そのデータコピーを有効としてマークする。
【0047】
図5Aは、
図4D及び
図4Eに対応する、第1のキャッシュ115と第2のキャッシュ120との間の動作フローを示す(この前に、フローは
図5Aの第1の部分として進められる)。
【0048】
第1キャッシュ115は、第2キャッシュに追い出し通知を発行する。
図5Aとは異なり、この追い出し通知は、データが、第1のキャッシュ115に提供された後に変更されたことを示す。これを受信すると、第2のキャッシュ120は、データが変更されており、したがって、そのコピーが(たとえそのコピーが追い出されていなくても)正しい値を有していないと判定する。したがって、第2のキャッシュ120は、データ要求を第1のキャッシュ115に送信し、第1のキャッシュ115は、それに応じて、変更されたデータを第2のキャッシュ120に送信する。第2のキャッシュ120には、したがって、データの最新のコピーが提供される。
【0049】
したがって、キャッシュ階層内の電力消費及び帯域幅消費を削減するための装置及び方法が提供される。
【0050】
本出願において、「~ように構成された(configured to...)」という用語は、装置の要素が、定義された動作を実施することが可能である構成を有することを意味するために使用される。この文脈において、「構成」とは、ハードウェア又はソフトウェアの配設又は相互接続の方法を意味する。例えば、装置は、定義された動作を提供する専用ハードウェアを有し得るか、又はプロセッサ若しくは他の処理デバイスが、機能を実行するようにプログラムされ得る。「ように構成された」は、装置要素が、定義された動作を提供するために何らかの変更がなされる必要があることを意味しない。
【0051】
本発明の例示的な実施形態が添付の図面を参照して本明細書で詳細に説明されているが、本発明はこれらの正確な実施形態に限定されないこと、及び様々な変更及び修正が、当業者によって、添付の特許請求の範囲によって定義されている本発明の範囲から逸脱することなく、実施形態に行われ得ることが理解されよう。