(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-24
(54)【発明の名称】記憶されたデータの変更装置及び変更方法
(51)【国際特許分類】
G06F 12/0815 20160101AFI20220117BHJP
G06F 12/084 20160101ALI20220117BHJP
G06F 12/123 20160101ALI20220117BHJP
【FI】
G06F12/0815
G06F12/084
G06F12/123
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021521199
(86)(22)【出願日】2019-08-27
(85)【翻訳文提出日】2021-04-16
(86)【国際出願番号】 GB2019052384
(87)【国際公開番号】W WO2020095018
(87)【国際公開日】2020-05-14
(32)【優先日】2018-11-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】500395107
【氏名又は名称】アーム・リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】特許業務法人浅村特許事務所
(72)【発明者】
【氏名】ランデル、ジョシュア
(72)【発明者】
【氏名】ジョアオ、ホセ アルベルト
(72)【発明者】
【氏名】アーンシャウ、リチャード ウィリアム
(72)【発明者】
【氏名】カッロ、アレハンドロ リコ
(72)【発明者】
【氏名】グラント、アレスデア
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205KK14
5B205MM01
5B205NN45
5B205NN77
5B205PP03
5B205PP21
5B205QQ02
5B205UU32
(57)【要約】
要求マスタ処理デバイス(205)は、要求マスタ処理デバイスによるアクセス用のデータを記憶する関連するプライベートキャッシュ記憶(215)を有する。要求マスタ処理デバイスは、所与のメモリアドレスに関連付けられ、かつ、受信マスタ処理デバイス(210)に関連付けられたプライベートキャッシュ記憶(220)に記憶されているデータを変更する要求を発行するように構成されている。受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶は、受信マスタ処理デバイスによるアクセス用のデータを記憶するように構成されている。受信マスタ処理デバイス及びその関連するプライベートキャッシュ記憶のうちの1つは、データが受信マスタ処理デバイスに関連付けられたキャッシュ記憶に記憶されている間に、データの要求された変更を実行するように構成されている。
【選択図】
図2
【特許請求の範囲】
【請求項1】
装置であって、
要求マスタ処理デバイスによるアクセス用のデータを記憶する関連するプライベートキャッシュ記憶を有する前記要求マスタ処理デバイスであって、所与のメモリアドレスに関連付けられ、かつ、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶に記憶されているデータを変更する要求を発行するように構成されており、前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶が、前記受信マスタ処理デバイスによるアクセス用のデータを記憶するように構成されている、前記要求マスタ処理デバイスと、
前記受信マスタ処理デバイスの前記プライベートキャッシュ記憶を有する前記受信マスタ処理デバイスであって、前記受信マスタ処理デバイス及び前記受信マスタ処理デバイスの関連する前記プライベートキャッシュ記憶のうちの1つが、前記データが前記受信マスタ処理デバイスに関連付けられた前記キャッシュ記憶に記憶されている間に、前記データの前記要求された変更を実行するように構成されている、前記受信マスタ処理デバイスと、を備える、装置。
【請求項2】
前記受信マスタ処理デバイス及び前記受信マスタ処理デバイスに関連する前記プライベートキャッシュ記憶のうちの前記1つが、前記データが前記受信マスタ処理デバイスに関連付けられた前記キャッシュ記憶内にユニークコヒーレンシ状態で記憶されている間に、前記データの前記要求された変更を実行するように構成されている、請求項1に記載の装置。
【請求項3】
前記要求された変更が、前記要求マスタデバイスに関連付けられた前記プライベートキャッシュ記憶に前記データをキャッシュすることなく実行され得る変更である、請求項1又は2に記載の装置。
【請求項4】
前記要求が、前記要求された変更を含む原子的更新動作を実行する要求である、請求項1~3のいずれか一項に記載の装置。
【請求項5】
前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶が、前記要求された原子的動作を実行する論理演算ユニットを備える、請求項4に記載の装置。
【請求項6】
前記要求が、前記要求された変更を含む非一時的記憶動作を実行する要求である、請求項1~3のいずれか一項に記載の装置。
【請求項7】
前記要求を前記要求マスタ処理デバイスから受信し、
前記要求を前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶に転送する、ホームノードデバイスを備える、請求項1~6のいずれか一項に記載の装置。
【請求項8】
前記要求マスタ処理デバイス及び前記受信マスタ処理デバイスによるアクセス用のデータを記憶する、前記ホームノードデバイスに関連付けられた共有キャッシュを備える、請求項7に記載の装置。
【請求項9】
前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶が、前記要求に関連する情報に基づいて、前記データを前記ホームノードデバイスに提供し、前記データを非ユニークコヒーレンシ状態に遷移させるかどうかを判定するように構成されている、請求項7又は8に記載の装置。
【請求項10】
前記データを前記ホームノードデバイスに提供すると判定されると、前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶が、前記プライベートキャッシュ記憶において前記要求された変更を実行することを抑制するように構成されている、請求項9に記載の装置。
【請求項11】
前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶が、前記要求された変更を実行した後に、前記判定を実行するように構成されている、請求項9又は請求項10に記載の装置。
【請求項12】
前記ホームノードデバイスが、前記要求に関連する情報に基づいて、前記受信マスタ処理デバイスの前記プライベートキャッシュ記憶において、又は前記要求マスタ処理デバイスと前記受信記憶装置との間で共有される共有記憶場所において、前記要求された変更の実行をトリガするかどうかを判定するように構成されている、請求項7~11のいずれか一項に記載の装置。
【請求項13】
前記要求に関連する前記情報が、
前記データに関して、前記ホームノードデバイスから受信した変更要求の数のカウントと、
前記ホームノードデバイスから受信したデータの変更用の保留している要求のキューの占有率と、
キャッシュ置換ポリシー情報と、のうちの少なくとも1つを含む、請求項12に記載の装置。
【請求項14】
前記受信マスタデバイスに関連付けられた前記プライベートキャッシュ記憶が、第1のレベルキャッシュ及び第2のレベルキャッシュを含み、
前記要求に関連する前記情報が、前記データが前記第1のレベルキャッシュ又は前記第2のレベルキャッシュ内にあるかどうかの指標を含む、請求項12又は13に記載の装置。
【請求項15】
前記受信マスタ処理デバイスが、前記要求が保留されている間に前記データを含むキャッシュラインが無効化されているときに、
前記無効化をバッファするか、
前記データを中間コヒーレンス状態に置くか、又は
前記要求に関して、前記ホームノードに失敗通知を発行するかのいずれかに構成されている、請求項7~14のいずれか一項に記載の装置。
【請求項16】
前記ホームノードデバイスが、
前記データが、前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶内にユニークコヒーレンシ状態で記憶されていることを判定し、
判定に応じて前記転送を実行する、ように構成されている、請求項7~15のいずれか一項に記載の装置。
【請求項17】
前記受信マスタデバイスに関連付けられた前記プライベートキャッシュ記憶が、前記要求された変更を実行した後、前記変更されたデータを含むキャッシュラインに関連付けられた置換ポリシー情報を更新して、将来のキャッシュ退避における退避用に前記キャッシュラインが選択される確率を増大させるように構成されている、請求項1~16のいずれか一項に記載の装置。
【請求項18】
前記置換ポリシーを前記更新することが、前記キャッシュラインを前記最も最近まで利用されていないキャッシュラインとして示すことを含む、請求項17に記載の装置。
【請求項19】
前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶が、前記要求に応じた戻り値を、前記要求マスタ処理デバイス及びホームノードデバイスのうちの少なくとも1つに提供するように構成されている、請求項1~18のいずれか一項に記載の装置。
【請求項20】
前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶が、前記プライベートキャッシュ記憶のキャッシュラインサイズよりも小さいサイズで送信中に前記戻り値を提供するように構成されている、請求項19に記載の装置。
【請求項21】
ホームノード装置であって、
要求マスタ処理デバイスから、所与のメモリアドレスに関連付けられたデータを変更する要求を受信する受信回路と、
前記データが受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶にユニークコヒーレンシ状態で記憶されている間に、前記データに対して、前記要求された変更を実行するように、前記受信マスタ処理デバイスに関連付けられた前記プライベートキャッシュ記憶に前記要求を転送する転送回路と、を備える、ホームノード装置。
【請求項22】
装置であって、
受信マスタ処理デバイスと、
前記受信マスタ処理デバイスによるアクセス用のデータを記憶するプライベートキャッシュ記憶であって、
ホームノードデバイスから、所与のメモリアドレスに関連付けられたデータを変更する、転送された要求を受信するように構成されており、前記転送された要求が要求マスタ処理デバイスから発信されたものである、プライベートキャッシュ記憶と、を備え、
前記データが前記プライベートキャッシュ記憶にユニークコヒーレンシ状態で記憶されているときに、前記受信マスタ処理デバイス及び前記プライベートキャッシュ記憶のうちの1つが、前記キャッシュ記憶内の前記データの前記要求された変更を実行するように構成されている、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、処理デバイスの分野に関し、より具体的には、複数のそのような処理デバイスを備えるシステムにおけるデータ変更要求の処理に関する。
【0002】
いくつかのデータ処理システム、例えばマルチコアプロセッサは、同じチップ内に実装され得る処理コアなどの複数の処理デバイスを備える。そのような複数の処理デバイスは並行して動作することができ、それによって、処理性能を改善する。
【0003】
少なくともいくつかの実施例は、
要求マスタ処理デバイスによるアクセス用のデータを記憶する関連するプライベートキャッシュ記憶を有する要求マスタ処理デバイスであって、所与のメモリアドレスに関連付けられ、かつ、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶に記憶されているデータを変更する要求を発行するように構成されており、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶が、受信マスタ処理デバイスによるアクセス用のデータを記憶するように構成されている、要求マスタ処理デバイスと、
そのプライベートキャッシュ記憶を有する受信マスタ処理デバイスであって、受信マスタ処理デバイス及びその関連するプライベートキャッシュ記憶のうちの1つが、データが受信マスタ処理デバイスに関連付けられたキャッシュ記憶に記憶されている間に、データの要求された変更を実行するように構成されている、受信マスタ処理デバイスと、を備える、装置を提供する。
【0004】
更なる実施例は、
要求マスタ処理デバイスから、所与のメモリアドレスに関連付けられたデータを変更する要求を受信する受信回路と、
データが受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶にユニークコヒーレンシ状態で記憶されている間に、データに対して、要求された変更を実行するように、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶に要求を転送する転送回路と、を備える、ホームノード装置を提供する。
【0005】
更なる実施例は、
受信マスタ処理デバイスと、
受信マスタ処理デバイスによるアクセス用のデータを記憶するプライベートキャッシュ記憶であって、
ホームノードデバイスから、所与のメモリアドレスに関連付けられたデータを変更する、転送された要求を受信するように構成されており、転送された要求が要求マスタ処理デバイスから発信されたものである、プライベートキャッシュ記憶と、を備え、
データがプライベートキャッシュ記憶にユニークコヒーレンシ状態で記憶されているときに、受信マスタ処理デバイス及びプライベートキャッシュ記憶のうちの1つが、キャッシュ記憶内のデータの要求された変更を実行するように構成されている、装置を提供する。
【0006】
更なる実施例は、ホームノードデバイスにおける方法を提供し、方法は、
要求マスタ処理デバイスから、所与のメモリアドレスに関連付けられたデータを変更する要求を受信することと、
データが受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶にユニークコヒーレンシ状態で記憶されている間に、データに対して、要求された変更を実行するように、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶に要求を転送することと、を含む。
【0007】
本技術の更なる態様、特徴、及び利点は、添付の図面と併せて読まれるべき以下の実施例の説明から明らかとなるであろう。
【図面の簡単な説明】
【0008】
【
図2】本開示の実施例による処理システムを概略的に示す。
【
図3】本開示の実施例による方法のフロー図である。
【
図4】本開示の実施例によるホームノードデバイスにおける方法を示すフロー図である。
【0009】
上述のように、いくつかのデータ処理システムは、並行して動作する複数の処理デバイスを含む。いくつかのこのようなシステムでは、そのような処理デバイスのそれぞれは、その処理デバイスによるアクセス用のデータを記憶する関連するプライベートキャッシュ記憶を有する。プライベートキャッシュ内のデータへのアクセスに関連付けられたレイテンシは、典型的に、他の記憶装置、例えば、全ての処理デバイスにアクセス可能な共有キャッシュ及び/又はメインメモリに記憶されているデータへのアクセスに関連付けられたレイテンシよりも低い。したがって、所与の処理デバイスは、必要となるデータをそのプライベートキャッシュにフェッチし、プライベートキャッシュに記憶されている間にそのデータに対して処理動作を実行することができ、それによって、処理動作の実行中にデータが共有記憶に維持されている場合よりも短いレイテンシを生じる。
【0010】
しかしながら、プライベートキャッシュの使用は、性能の向上を提供する一方で、第1の処理デバイスのプライベートキャッシュに記憶されているデータが第2の処理デバイスによって変更される場合に問題が現れる。第1のデバイスがデータの制御を放棄し、データを共有記憶、又は第2のデバイスのプライベートキャッシュに提供することによって、データが利用可能にされた場合、データは、もはや第1のデバイスに対して直ちに利用できなくなる。これにより、第1のデバイスがその後データを再び変更する場合に、より高いレイテンシをもたらす。更に、これは、データが第1及び第2のデバイスのキャッシュ間を定期的に通過する非効率的な「ピンポン」効果をもたらし得る。
【0011】
加えて、第1のデバイスがデータの制御を放棄するのを待っている時間から、また、共有記憶、又は第2記憶のプライベートキャッシュ内でデータが利用可能となるのを待っている時間からの両方から、性能ペナルティが生じる。この効果は、データが第1及び第2の処理デバイスの両方によって少なくとも断続的に変更される場合、データの制御が変更されるたびに、(キャッシュ間でデータを転送するのに必要となる時間の結果としての、前述の「ピンポン」性能の非効率性を生じながら)プライベートキャッシュ間を通過させなければならないか、又は(プライベートキャッシュの使用を防止し、それによってその付随する利点を提供しないで)共有キャッシュ内に維持されなければならない場合に、拡大される。
【0012】
本開示の一実施例は、要求マスタ処理デバイス及び受信マスタ処理デバイスを備える装置によってこれに対処し、そのそれぞれは、対応するマスタ処理デバイスによるアクセス用のデータを記憶するように構成された関連するプライベートキャッシュ記憶を有する。「要求」及び「受信」は、本明細書に記載される特定の機能に関するラベルであり、両方のデバイスは、一般に、任意の1対のデバイスが所与の時間に「要求」及び「受信」の役割を引き受けることができるように、同様のデバイスのセットの特定のデバイスであってもよい。
【0013】
要求マスタ処理デバイスは、所与のメモリアドレスに関連付けられ、かつ、受信マスタ処理デバイスのプライベートキャッシュ記憶に記憶されているデータを変更する要求を発行するように構成されている。要求は、具体的には、受信マスタ処理デバイスのプライベートキャッシュ記憶に発行され得る。あるいは、要求はブロードキャストされ、次いで受信マスタ処理デバイスによって検出され得る。実施例では、要求された変更は、要求マスタデバイスに関連付けられたプライベートキャッシュ記憶内にデータをキャッシュすることなく実行され得る変更である。
【0014】
受信マスタ処理デバイス及びその関連するプライベートキャッシュ記憶のうちの1つは、データが受信マスタ処理デバイスに関連付けられたキャッシュ記憶に記憶されている間に、データの要求された変更を実行するように構成されている。
【0015】
本開示の態様が実装されない比較のシステムでは、要求された変更は、その中で変更が実行される、要求デバイスのプライベートキャッシュに対象のデータを提供するか、又はその中で変更が実行される、共有キャッシュ若しくはメインメモリなどの共有位置に対象のデータを提供するかのいずれかによって実行される。このデータの移動は、特にオンチップネットワークが輻輳している場合に、比較的時間がかかり得る。このデータの移動はまた、電力要件を増大させる。ここで記載されている装置は、対象のデータを要求マスタ処理デバイスのプライベートキャッシュ又は共有記憶に提供することなく、要求された変更を実行することを可能にすることによって、この時間がかかるデータの移動の必要性を回避する。
【0016】
いくつかのシステムは、異なるコヒーレンシ状態で記憶されるデータを提供する。例えば、所与のデータ項目は、デバイスのプライベートキャッシュ内にユニークコヒーレンシ状態で記憶されてもよく、ここでそのデバイスは、ホームノード、又は同じアドレスからデータをキャッシュし得る他のデバイスに通知することなく、データをローカルで変更することができる。あるいは、所与のデータ項目は、共有コヒーレンシ状態でプライベートキャッシュに記憶されてもよく、ここでプライベートキャッシュ内のデータに対する変更は、同じアドレスからデータをキャッシュし得る他のデバイスにシグナリングされ、それによって他のデバイスは、必要に応じて現在は古いバージョンのデータを無効にすることができる。コヒーレンシ状態は、マスタ処理デバイスと通信可能に結合された更なるデバイスによって管理されてもよい。このようにコヒーレンシ状態を提供することにより、データへのアクセスがデバイス間で共有されるときに、データのコヒーレンシを維持することが可能になる。
【0017】
そのようなコヒーレンシ状態を実装する比較のシステムでは、変更されるデータが受信デバイスのプライベートキャッシュ内に排他的なコヒーレンシ状態である場合、要求デバイスによって要求された変更を実行するために、ユニーク状態が放棄される必要がある。次いで、データは、要求デバイスのプライベートキャッシュ、又は共有位置に移動される必要がある。上述のように、そのような移動には時間がかかり、電力要件を増加させ得る。
【0018】
本開示の一実施例では、受信マスタ処理デバイス及びその関連するプライベートキャッシュ記憶のうちの1つは、データが受信マスタ処理デバイスに関連付けられたキャッシュ記憶内のユニークコヒーレンシ状態で記憶されている間に、データの要求された変更を実行するように構成されている。したがって、変更は、データが受信デバイスのプライベートキャッシュ内に留まることができるように、受信デバイスが排他的なコヒーレンシ状態を放棄する必要なく実行することができる。それによって、例えば、受信デバイスが次にデータにアクセスするときに、性能が改善される。
【0019】
一実施例では、要求は、要求された変更を含む原子的更新動作を実行する要求である。原子的更新は、不可分のアクションのセット、例えば、読み取りとそれに続く書き込みであって、書き込みすべきデータ、及び/又は書き込みが生じるかどうかは、単一の中断されない動作として実行される読み取りデータに依存する。例として、原子的動作は、読み取り値に対する比較及び/又は演算動作を含み得て、その動作に基づいて書き込むべき値が判定される。原子的更新が実行される間は、読み取り及び書き込みを単一の動作として実行する結果として、対象のデータへの他のアクセスが防止されている。単一の要求に基づいてこれらのアクションを実行することにより、受信デバイスのプライベートキャッシュにおいて、複数の要求が使用されなければならない、及び/又はアクションが中央位置で実行される比較のシステムに対して、性能向上を提供することができる。
【0020】
この例では、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶は、要求された原子的動作を実行する論理演算ユニットを備え得る。したがって、動作は、受信デバイス自体によって実行されることとは対照的に、受信デバイスのプライベートキャッシュ内で完全に実行することができる。それによって、処理効率が向上する。あるいは、受信デバイス自体が(その関連するプライベートキャッシュとは対照的に)、要求された原子的動作を実行する論理演算ユニットを含んでもよい。例えば、受信デバイス自体のデータ経路又は処理パイプライン内の演算ユニットを使用して、原子的動作で使用される演算動作を実行して書き込むべき値を計算することができる。
【0021】
代替的な実施例では、要求は、要求された変更を含む非一時的記憶動作を実行する要求である。非一時的記憶動作は、対象のデータが近い将来に要求デバイスによって再び必要とされないことの「ヒント」を含む記憶命令である。受信デバイスのプライベートキャッシュ内のデータのコピーを無効化することによって生じる性能低下は、そのような無効化が実行されない本技術において回避される。
【0022】
いくつかの実施例では、装置は、ホームノードデバイスを備える。ホームノードデバイスは、要求されたマスタ処理デバイスから要求を受信し、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶に要求を転送するように構成されている。したがって、(例えば、キャッシュコヒーレンシを維持する)データアクセスの制御は、中央ホームノードデバイスによって管理することができる。要求デバイスは、それゆえ、受信デバイスを具体的に識別するいかなる必要なく、ホームノードデバイスに対する要求を発行することができる。したがって、要求デバイスは、他のデバイスが所与のデータを実際に記憶する記録を維持する必要はない。例えば、ホームノードデバイスは、データが、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶にユニークコヒーレンシ状態で記憶されているという判定に応じて、転送を実行するように構成されていてもよい。
【0023】
装置は、要求マスタ処理デバイス及び受信マスタ処理デバイスによるアクセス用のデータを記憶するために、ホームノードデバイスに関連付けられた共有キャッシュを備え得る。したがって、変更が受信のキャッシュにおいて実行されることを可能にすることに加えて、システムはまた、共有キャッシュ内で変更が実行されることを可能にし得る。
【0024】
代替的に又は追加的に、受信マスタに関連付けられたプライベートキャッシュ記憶は、要求に関連する情報に基づいて、データをホームノードデバイスに提供し、データを非ユニークコヒーレンシ状態に遷移させるかどうかを判定するように構成されていてもよい。データをホームノードデバイスに提供すると判定されると、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶は、プライベートキャッシュ記憶において要求された変更を実行することを抑制するように構成されていてもよい。次いで、要求された変更は、上述した共有キャッシュ内で実行され得る。
【0025】
あるいは、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶は、要求された変更を実行した後に判定を実行するように構成されていてもよい。
【0026】
同様に、ホームノードデバイスは、要求に関連する情報に基づいて、受信マスタ処理デバイスのプライベートキャッシュ記憶において、又は要求マスタ処理デバイスと受信記憶装置との間で共有される前述の共有キャッシュなどの共有記憶場所において、要求された変更の実行をトリガするかどうかを判定するように構成されていてもよい。
【0027】
これらの判定により、たとえ受信処理デバイスがデータへのアクセスを依然として必要とする場合であっても、そうすることが全体的に有利である状況において、共有キャッシュなどの共有記憶にデータを提供することを可能にする。
【0028】
例示として、受信デバイスのプライベートキャッシュ内で変更を実行するために、要求は、要求デバイスからホームノードに、及びそこから受信デバイスに送信され、次いで変更が実行され、その後、応答が受信から要求デバイスに送信される。受信デバイスの視点から、たとえデータが要求デバイスによって要求されるように変更される場合であっても、データが受信デバイスにおいてユニークコヒーレンシ状態に保持され得ることを意味するため、このアプローチはより効率的である。
【0029】
逆に、本実装形態では、(データが受信デバイスのプライベートキャッシュにユニークコヒーレンシ状態で記憶されていない場合に可能であろう)共有記憶での変更が実行される場合、要求は、要求デバイスからホームノードに送信され、次いで、変更が実行され、その後、応答が要求デバイスに送信される。したがって、受信デバイスのプライベートキャッシュ内で変更が実行される場合よりも、実行される送信が少なくなり、したがって、(要求デバイスの観点から)要求デバイスが要求を発行してから応答を受信するまでの時間遅延がより短くなる。
【0030】
したがって、受信デバイスのプライベートキャッシュ内で(受信デバイスが、要求デバイス又はシステムの他の処理デバイスよりもデータを再度必要とする可能性が高い場合には、全体的な性能のためにより良好な)変更を実行することと、共有記憶において(要求デバイス又は他の処理デバイスが、受信デバイスよりもデータを必要とする可能性が高い場合には、全体的な性能のより良好な)変更を実行することとの間には、トレードオフが存在し得る。以下の実施例では、受信デバイス及び他の処理デバイスによるデータの潜在的な使用に関する情報を使用して、受信デバイスが要求された変更をローカルに実行することが好ましいかどうか、又は制御を放棄して、共有位置で変更を実行することを可能にするかどうかの判定を行うことができる。
【0031】
所与の要求された変更を実行する場所の判定は、様々な方法で実行され得る。例えば、前述の判定がベースである要求に関連する情報は、データに関して、ホームノードデバイスから受信した変更要求の数のカウントを含み得る。カウンタは、そのデータを変更するために、異なる処理デバイスから単一の要求が受信された後に、データが共有キャッシュに戻されるように、単一ビットであってもよい。あるいは、マルチビットカウンタを使用して、変更要求の数を追跡してもよい。同じアドレスを指定する変更要求の数が閾値(例えば、1ビットカウンタの場合は1)に達した場合、変更要求は、(もし必要であれば)ユニークコヒーレンシ状態を受信に放棄させるようにトリガし、共有位置又は要求デバイスのキャッシュに制御を提供して変更を実行することができる。
【0032】
代替的に又は追加的に、要求に関連する情報は、ホームノードデバイスから受信したデータの変更用の保留している要求のキューの占有率を含み得る。受信された要求のカウンタと同様に、閾値を上回るキューの占有率は、共有キャッシュに対象のデータを戻すことによって要求がより効率的に提供されることを示すことができる。
【0033】
代替的に又は追加的に、要求に関連する情報は、対象のデータ項目へのアクセスのリーセンシーなどのキャッシュ置換ポリシー情報を含み得る。例えば、データ項目が受信デバイスによって最近アクセスされた場合、データ項目は受信デバイスのプライベートキャッシュ記憶内に維持されてもよい。逆に、データ項目が受信デバイスによって最近アクセスされなかった場合、データ項目は共有キャッシュに戻されるか、又は要求デバイスのキャッシュに提供されてもよい。これは、受信デバイスによって最近アクセスされたデータが、受信デバイスによって近い将来に再度必要とされる可能性がより高くなり得るという事実を利用し、その結果、たとえこれにより要求デバイスの観点からの変更要求のサービスがより遅くなる場合であっても、受信デバイスが要求された変更をローカルで実行してユニークコヒーレンシ状態を保持できるような場合、全体のシステム性能がより向上し得ることの指標であり得る。
【0034】
別の実施例では、要求デバイスも受信デバイスもいずれも、近い将来にデータ項目を使用することが予期されない場合、データ項目は共有デバイスに戻され得る。
【0035】
実施例では、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶は、第1のレベルキャッシュ及び第2のレベルキャッシュを備え、その結果、より低いアクセスレイテンシが第2のレベルキャッシュでなく第1のレベルキャッシュに関連付けられる。次いで、要求に関連する前述の情報は、データが第一レベルキャッシュ又は第二レベルキャッシュ内にあるかどうかの指標を含んでもよい。例えば、データが第1のレベルキャッシュにあるとき、データは受信デバイスによって再度必要とされる可能性があり、要求された変更は受信デバイスのプライベートキャッシュ内で実行され得ることが想定され得る。逆に、データが第2のレベルキャッシュにあるとき、データは受信デバイスによって再度必要とされる可能性がより低く(例えば、第1のレベルキャッシュから退避されていることにより)、したがって、共有キャッシュ内の変更(及び同様の将来の変更要求)を実行することに関連付けられる要求デバイス用のパフォーマンス利得は、そのプライベートキャッシュ内で変更を実行することに関連付けられる受信デバイスでのパフォーマンス利得を上回ると想定され得る。したがって、データは共有キャッシュに戻され得る。
【0036】
一実施例では、受信マスタ処理デバイスは、要求が保留されている間にデータを含むキャッシュラインが無効化されると、要求が実行された後に実行する無効化要求をバッファするように構成されている。そのような無効化が直ちに受け入れられる場合、いくつかの実施例では、データは、更新及び無効化中であることを示す中間コヒーレンス状態に置かれ、
この要求に関して、ホームノードに失敗通知を発行する。次いで、失敗した要求は、例えば、共有キャッシュ内の変更を実行することによって、又は失敗通知を要求デバイスに転送することによって、適切に処理され得る。
【0037】
別の実施例では、失敗通知は発行されず、その代わりに、要求が実行されるまで無効化がバッファされる。あるいは、受信デバイスは、無効化を使用して、データ項目が要求を実行するために共有キャッシュに戻されるべきであるという判定を行うことができる。
【0038】
一実施例では、受信マスタデバイスに関連付けられたプライベートキャッシュ記憶は、要求された変更を実行した後、変更されたデータを含むキャッシュラインに関連付けられた置換ポリシー情報を更新して、将来のキャッシュ退避における退避用にキャッシュラインが選択される確率を増大させるように構成されている。置換ポリシーを更新することは、キャッシュラインを最も最近まで利用されていないキャッシュラインとして示すことを含み得る。次いで、後続のキャッシュミスは、そのデータをキャッシュから退避させることができ、それによって、受信デバイスによって頻繁に必要とされない場合にデータを共有キャッシュに戻す。
【0039】
一実施例では、受信マスタ処理デバイスに関連付けられたプライベートキャッシュ記憶は、要求に応じた戻り値を、要求マスタ処理デバイス及びホームノードデバイスのうちの少なくとも1つに提供するように構成されている。ホームノードデバイスに送信された場合、ホームノードデバイスは、戻り値を要求マスタ処理デバイスに転送してもよく、及び/又は対応するキャッシュラインをダーティ状態にないとして示すことができる。要求された変更は、例えば、戻り値を必要とする原子的動作などの動作の一部であってもよい。戻り値は、当該プライベートキャッシュ記憶のキャッシュラインサイズよりも小さいサイズで送信中に提供され得る。したがって、データを含むキャッシュラインがデータに対するアクセスを要求するデバイスに提供される比較のシステムに対して、帯域幅が低減される。
【0040】
ここで、本開示の実施例を、図面を参照して説明する。
【0041】
図1は、本開示の上述の実施例を実施しない比較の処理システム100を概略的に示している。システム100は、要求マスタ処理デバイス105及び受信マスタ処理デバイス110を備える。システム100は、例えば、デバイス105、110が処理コアであるマルチコアプロセッサであってもよい。各デバイス105、110は、関連付けられたプライベートキャッシュ記憶115、120を有する。プライベートキャッシュは、第1のレベルキャッシュL1及び第2のレベルキャッシュL2を有するマルチレベルキャッシュである。
【0042】
システム100は、デバイス105、110及びそれらの関連するプライベートキャッシュ115、120と、例えばオンチップネットワークインタフェースなどのインタフェース130を介して通信するホームノードデバイス125を更に備える。ホームノードデバイス125は、関連する共有キャッシュ135を有する。データは、メインメモリ140から取得され、要求デバイス105及び受信デバイス110によるアクセス用に、共有キャッシュ135にキャッシュされ得る。
【0043】
上述したように、デバイス105、110のうちの1つのみが特定のアドレスに対してキャッシュされたデータにアクセスする必要がある場合、そのデバイス105、110が、対象のデータへの排他的なアクセスを許可し、かつ、そのデバイス105、110のプライベートキャッシュ115、120内にデータのコピーを記憶することによって、オーバーヘッドを低減することができる。データが排他的なコヒーレンシ状態でキャッシュされている場合、そのデバイスのプライベートキャッシュからデータが退避されるまで、そのデバイスによるデータに対する変更をホームノード又は他のデバイスに伝達する必要はない。対照的に、共有コヒーレンシ状態でデータがキャッシュされている場合、1つのデバイス105、110による変更は、同じデータをキャッシュして同じアドレスからのデータの任意の(現在は古い)ローカルコピーを無効化することができる他のデバイスをトリガし得るホームノードデバイス125にシグナリングされる。
【0044】
ここで、それによって要求デバイス105は、受信デバイス110が排他的なアクセスを許可されているデータに対して動作が実行されることを要求することができ、そのデータがそのプライベートキャッシュ120に記憶されている、動作フローを説明する。
【0045】
要求デバイス105は、そのプライベートキャッシュ115にその動作に関する要求を発行する。データがそのプライベートキャッシュ115内に存在しないと判定されると、要求は、インタフェース130を介してホームノードデバイス125へ転送される。
【0046】
ホームノードデバイスにおいて、データが受信デバイス110のプライベートキャッシュ120内に記憶されていることが判定される(あるいは、ホームノードがどのキャッシュがどのアドレスを記憶しているかを保持しない場合、ホームノードは、要求されたアドレスからデータをキャッシュすることができる全ての他のデバイスへの無効化要求を単にブロードキャストすることができる)。データに関する無効化要求は、ホームノードデバイス125から受信デバイス110のプライベートキャッシュ120に発行される。次いで、データを含むキャッシュラインはプライベートキャッシュ120内で無効化され、(ダーティである場合)共有キャッシュ135に書き戻される。
【0047】
次に、要求された動作は、ホームノードデバイス125の論理演算ユニット145によって、共有キャッシュ135内のデータに対して実行される。最後に、動作の戻り値が、要求デバイス105に送信される。あるいは、データは、要求デバイス105が動作を実行するために、要求デバイス105のプライベートキャッシュ115に送信されてもよい。
【0048】
上述したように、システム100内の記載された動作フローは、動作を実行することができる前に、データを無効化して、受信デバイス110のプライベートキャッシュ120から書き戻すことによって、性能ペナルティを生じる。これらのペナルティは、受信デバイス110がデータへのアクセスを後で必要とする状況において悪化し、その結果、データは、そのプライベートキャッシュ120に戻されなければならないか、又は共有キャッシュ135内に留まらなければならない(それによって、同じデータが再び必要とされる場合に、受信マスタデバイス110に対するアクセスレイテンシを増大させる)。上述のように、これにより、要求デバイス105のプライベートキャッシュ120と、受信デバイス110のプライベートキャッシュ120との間で、データが前後に渡される非効率的な「ピンポン」効果を引き起こし得る。
【0049】
図2は、上述した性能ペナルティが緩和される、本開示の実施例による例示的なシステム200を概略的に示している。
【0050】
システム200は、要求マスタ処理デバイス205、受信マスタ処理デバイス210、それらと関連付けられたプライベートキャッシュ215、220、共有キャッシュ235に関連付けられたホームノードデバイス225、インタフェース230、及びメインメモリ240を備え、これらのそれぞれが、以下に示されることを除いて、上述のシステム100の同じ名称の構成要素と同様の方法で動作する。
【0051】
ここで、それによって要求デバイス205は、受信デバイス210が排他的なアクセスを許可されているデータに対して動作が実行されることを要求することができ、そのデータがそのプライベートキャッシュ220に記憶されている、動作フローを説明する。図からわかるように、このフローは、システム100に関連付けられた上述の性能ペナルティを緩和する。
【0052】
要求デバイス205は、動作に関して、そのプライベートキャッシュ215に要求を発行する。対象のデータがプライベートキャッシュ215内に記憶されていないと判定されると、
図1に関連して上述したように、要求は、インタフェース230を介してホームノードデバイス225に転送される。
【0053】
ホームノードデバイスは、データが受信デバイスのプライベートキャッシュ220内に記憶されていることを判定する。次いで要求は、要求された動作がプライベートキャッシュ220の論理演算ユニット245によって実行される、そのプライベートキャッシュ220に転送される。転送機能は、ネットワークオンチップ、又はそのような転送をサポートするように構成された相互接続通信プロトコルの使用によって実装され得る。次いで、動作の戻り値は、インタフェース230を介して要求デバイス205に戻される。
【0054】
上述したように、システム200は、受信マスタ処理デバイスのプライベートキャッシュ内に記憶されたデータに関して、動作が要求マスタ処理デバイスによって要求され、次いで、受信マスタ処理デバイスのプライベートキャッシュ内で実行されることを可能にする。それによって、システム100内の対象のデータの無効化及び書き戻しに関連付けられた上述の性能ペナルティが緩和される。具体的には、上述の「ピンポン」非効率性が回避される。ここで説明される構成は、要求マスタデバイス205がデータへの断続的なアクセスを必要とし、かつ、受信マスタデバイス210がデータへのより頻繁なアクセスを必要とする状況において、特に効率的である。
【0055】
更に、ホームノードデバイス225は、要求を転送するだけでよく、要求された動作を実行したり、戻り値の戻しを処理したりする必要はない。それによって、ホームノードデバイス225の性能が改善される。このアプローチは、いつものようにデータが特定のマスタデバイス210のプライベートキャッシュ220内にユニークコヒーレンシ状態でキャッシュされるときには独特であり、そのデータを変更することが許可される唯一のデバイスは、マスタデバイス210自体であるが、
図2に示されるこの動作フローでは、要求マスタデバイス205は、データが受信マスタデバイス210内にユニークコヒーレンシ状態で留まる間に、データの変更をトリガすることができる。このアプローチは、原子的要求のみならず、非一時的な記憶動作、又は要求マスタデバイス205が特定のアドレスに関連付けられたデータの変更を要求するが、データが自身のプライベートキャッシュ215に戻される必要はない他の動作にもまた有用であり得る。
【0056】
図3は、本開示の実施例による方法を示すフロー図である。
【0057】
ブロック305において、データを変更する要求が、要求デバイスからそのプライベートキャッシュに送信される。
【0058】
ブロック310において、データに関してプライベートキャッシュ内にキャッシュヒットがあるかどうかが判定され、もしそうであれば、そのデータがユニークコヒーレンシ状態を有するかどうかが判定される。上述したように、ユニークコヒーレンシ状態は、キャッシュデータを保持するデバイスが、同じアドレス用のキャッシュデータを潜在的に保持することができる、システムのホームノード又は他のデバイスに知らせることなく、データをローカルに変更することができるコヒーレンシ状態である。キャッシュヒットがあり、データがユニークコヒーレンシ状態を有する場合、要求された変更は、ブロック315においてプライベートキャッシュ内で実行される。
【0059】
そうでなければ、フローはブロック320に進み、ここで要求がホームノードデバイスに転送される。
【0060】
ブロック325において、データが、受信デバイスに関連付けられたプライベートキャッシュ内にユニークコヒーレンシ状態で記憶されているかどうかが判定される。もしそうでない場合、フローはブロック330に進み、ここで要求された変更が、ホームノードデバイスに関連付けられた共有キャッシュ内のデータに対して実行される。
【0061】
そうでなければ、フローはブロック335に進み、ここで要求が受信デバイスに転送される。
【0062】
ブロック340において、受信デバイスにおいて変更を実行するか、又は上記のホームノードなどの中央位置にデータを戻すかが判定される。上述のように、この判定は、受信された要求のカウンタの値、及び/又は要求キューの占有率などの様々な要因に基づき得る。
【0063】
中央位置において要求を実行すると判定された場合、フローはブロック345に進み、ここでデータは中央位置に戻される。
【0064】
受信デバイスにおいて変更を実行すると判定された場合、フローはブロック350に進み、ここで要求された変更が受信デバイスのプライベートキャッシュ内で実行される。
【0065】
図4は、本開示の実施例によるホームノードデバイスにおける方法を示すフロー図である。上述のように、ホームノードデバイスは、様々なマスタ処理デバイスと通信可能に結合される。
【0066】
ブロック405において、要求マスタ処理デバイスから転送されていた、データを変更する要求が受信される。
【0067】
ブロック420において、要求に関連付けられた情報が判定される。情報は、データに関して受信された変更要求の数のカウント、データの変更用の保留している要求のキューの占有率、及び対象のデータ項目へのアクセスのリーセンシーなどのキャッシュ置換ポリシー情報のうちの1つ以上を含み得る。
【0068】
ブロック425において、要求に関連付けられた前述の情報に基づいて、共有キャッシュ内、又はデータが記憶されているプライベートキャッシュ内で要求を実行するかどうかが判定される。例えば、上述したように、共有キャッシュ内で要求を実行する判定は、閾値を超える受信された要求のカウントに応答し得る。判定は、代替的に又は追加的に、保留している要求のキューの占有率が閾値を超えることにも応答し得る。判定は、最新ではない対象のデータへの最後のアクセスに応答し得る。判定は、データが記憶される特定のキャッシュレベル、例えば、第1のレベルキャッシュ又は第2のレベルキャッシュに応答し得る。
【0069】
共有キャッシュ内で要求を実行すると判定された場合、フローはブロック430に進み、ここで例えば、データが記憶されたプライベートキャッシュ内のデータを無効化することを含みながら、データが共有キャッシュに運ばれる。次いで、要求が共有キャッシュ内で実行される。
【0070】
プライベートキャッシュ内で要求を実行すると判定された場合、フローはブロック435に進み、ここで要求はプライベートキャッシュ内で実行するために転送される。例えば、要求は、そのプライベートキャッシュにユニキャストされ得る。あるいは、要求は、全てのマスタ処理デバイスのプライベートキャッシュにブロードキャストされてもよく、データが記憶されているデバイス以外の全てのデバイスによって無視されてもよい。
【0071】
本出願において、「~ように構成される(Configured to)」という用語は、装置の要素が、定義された動作を実行することができる構成を有することを意味するために使用される。このコンテキストにおいて、「構成」は、ハードウェア又はソフトウェアの相互接続の構成又は方法を意味する。例えば、装置は、定義された動作を提供する専用ハードウェアを有してもよく、又はプロセッサ若しくは他の処理デバイスは、機能を実行するようにプログラムされてもよい。「構成されている」は、定義された動作を提供するために、装置要素を任意の方法で変更する必要を意味しない。
【0072】
本発明の例示的な実施形態が添付の図面を参照して本明細書で詳細に説明されてきたが、本発明はそれらの正確な実施形態に限定されず、添付の特許請求の範囲によって定義される本発明の範囲及び精神から逸脱することなく、当業者によって様々な変更及び修正を行うことができることを理解されたい。
【国際調査報告】