(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-03
(54)【発明の名称】プロセッサベースのデバイスにおけるドメイン状態未所有(DSN)を含むドメインコヒーレンス状態の維持
(51)【国際特許分類】
G06F 12/0831 20160101AFI20230926BHJP
G06F 12/0895 20160101ALI20230926BHJP
【FI】
G06F12/0831
G06F12/0895 110
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023517949
(86)(22)【出願日】2021-05-31
(85)【翻訳文提出日】2023-03-17
(86)【国際出願番号】 US2021035061
(87)【国際公開番号】W WO2022060435
(87)【国際公開日】2022-03-24
(32)【優先日】2020-09-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ロビンソン,エリック フランシス
(72)【発明者】
【氏名】マギル,ケヴィン ニール
(72)【発明者】
【氏名】パナヴィッチ,ジェイソン
(72)【発明者】
【氏名】バシャン,デレク
(72)【発明者】
【氏名】ミッチェル,マイケル ビー.
(72)【発明者】
【氏名】ウィルソン,マイケル ピー.
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205JJ11
5B205KK14
5B205MM03
5B205NN42
(57)【要約】
プロセッサベースのデバイスにおいてドメイン状態未所有(DSN)を含むドメインコヒーレンス状態の維持が開示される。この点に関して、プロセッサベースのデバイスは、複数のドメインに編成された複数の処理要素(PE)を提供し、各ドメインは1つ以上のPE及びローカル順序付けポイント回路(LOP)を含む。プロセッサベースのデバイスは、所与のドメイン内のPEによってキャッシュされた各コヒーレンス粒度のドメインコヒーレンス状態をサポートする。ドメインコヒーレンス状態は、DSNドメインコヒーレンス状態を含み、これは、コヒーレンス粒度がいずれのドメイン内でも共有された修正状態でキャッシュされていないことを示す。いくつかの実施形態では、コヒーレンス粒度への読み取りアクセスの要求を受信すると、システム順序付けポイント回路(SOP)は、コヒーレンス粒度が複数のドメインのうち或るドメイン内でDSNドメインコヒーレンス状態でキャッシュされていると決定し、必要に応じて読み取りアクセスを満たすためにシステムメモリからコヒーレンス粒度を安全に読み取ることができる。
【特許請求の範囲】
【請求項1】
プロセッサベースのデバイスであって、
システム順序付けポイント回路(SOP)と、
システムメモリと、
複数の処理要素(PE)と、
前記複数のPEのうち1つ以上のPEと、前記1つ以上のPEに通信可能に結合されたローカル順序付けポイント回路(LOP)とをそれぞれ含む複数のドメインと
を含み、
前記複数のドメインのうち第1のドメインの第1のLOPは、
第1のキャッシュされたコピーとして前記第1のドメインの前記1つ以上のPEのうち第1のPEのローカルキャッシュ内にキャッシュされたコヒーレンス粒度が、前記複数のドメインのうちいずれのドメイン内でも所有(O)キャッシュコヒーレンス状態でキャッシュされていないと決定し、
前記コヒーレンス粒度のドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度がドメイン状態未所有(DSN)ドメインコヒーレンス状態でキャッシュされていることを示す
ように構成される、プロセッサベースのデバイス。
【請求項2】
前記SOPは、
前記複数のドメインのうち第2のドメインから、前記コヒーレンス粒度への読み取りアクセスの要求を受信し、
前記コヒーレンス粒度が前記第1のドメイン内で前記DSNドメインコヒーレンス状態でキャッシュされていると決定し、
前記システムメモリから前記コヒーレンス粒度を読み取り、前記読み取りアクセスを満たす
ように構成される、請求項1に記載のプロセッサベースのデバイス。
【請求項3】
前記第1のLOPは、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度が前記第1のドメイン内でドメイン状態共有(DSS)ドメインコヒーレンス状態でキャッシュされていることを示すように更に構成され、
前記第1のLOPは、前記複数のドメインのうちどのドメインもドメイン状態所有(DSO)ドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしていないと決定するように構成されることによって、前記コヒーレンス粒度が前記複数のドメインのうちいずれのドメイン内でも前記Oキャッシュコヒーレンス状態でキャッシュされていないと決定するように構成され、
前記第1のLOPは、前記ドメインコヒーレンス状態インジケータを前記DSSドメインコヒーレンス状態から前記DSNドメインコヒーレンス状態に更新するように構成されることによって、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新するように構成される、請求項1に記載のプロセッサベースのデバイス。
【請求項4】
前記第1のLOPは、前記第1のLOPによって観察された、前記複数のPEのうち第2のPEによって送信された前記コヒーレンス粒度への読み取りアクセスの要求に応じて送信された1つ以上のスヌープ応答に基づいて、前記複数のドメインのうちどのドメインもDSOドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしていないと決定するように構成される、請求項3に記載のプロセッサベースのデバイス。
【請求項5】
前記SOPは、
前記複数のPEのうち第2のPEによって送信された前記コヒーレンス粒度への読み取りアクセスの要求に応じて送信された1つ以上のスヌープ応答を観察し、
前記1つ以上のスヌープ応答に基づいて、前記複数のドメインのうちどのドメインもDSOドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしていないと決定し、
前記複数のドメインのうちどのドメインもDSOドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしていないという指示を前記第1のLOPに送信するように構成され、
前記第1のLOPは、前記指示に基づいて、前記複数のドメインのうちどのドメインもDSOドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしていないと決定するように構成される、請求項3に記載のプロセッサベースのデバイス。
【請求項6】
前記第1のLOPは、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度が前記第1のドメイン内でDSSドメインコヒーレンス状態でキャッシュされていることを示すように更に構成され、
前記第1のLOPは、前記複数のドメインのうち少なくとも1つのドメインが前記DSNドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしていると決定するように構成されることによって、前記コヒーレンス粒度が前記複数のドメインのうちいずれのドメイン内でも前記Oキャッシュコヒーレンス状態でキャッシュされていないと決定するように構成され、
前記第1のLOPは、前記ドメインコヒーレンス状態インジケータを前記DSSドメインコヒーレンス状態から前記DSNドメインコヒーレンス状態に更新するように構成されることによって、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新するように構成される、請求項1に記載のプロセッサベースのデバイス。
【請求項7】
前記第1のLOPは、前記第1のLOPによって観察された、前記複数のPEのうち第2のPEによって送信された前記コヒーレンス粒度への読み取りアクセスの要求に応じて送信された1つ以上のスヌープ応答に基づいて、前記複数のドメインのうちどのドメインもDSNドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしていないと決定するように構成される、請求項6に記載のプロセッサベースのデバイス。
【請求項8】
前記SOPは、
前記複数のPEのうち第2のPEによって送信された前記コヒーレンス粒度への読み取りアクセスの要求に応じて送信された1つ以上のスヌープ応答を観察し、
前記1つ以上のスヌープ応答に基づいて、前記複数のドメインのうち少なくとも1つのドメインが前記DSNドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしていると決定し、
前記複数のドメインのうち少なくとも1つのドメインが前記DSNドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしているという指示を前記第1のLOPに送信するように構成され、
前記第1のLOPは、前記指示に基づいて、前記複数のドメインのうちどのドメインもDSOドメインコヒーレンス状態で前記コヒーレンス粒度をキャッシュしていないと決定するように構成される、請求項6に記載のプロセッサベースのデバイス。
【請求項9】
前記第1のLOPは、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度が前記第1のドメイン内でDSSドメインコヒーレンス状態でキャッシュされていることを示すように更に構成され、
前記第1のLOPは、前記複数のドメインのうち第3のドメインから、前記第3のドメイン内でドメイン状態所有(DSO)ドメインコヒーレンス状態を有する前記コヒーレンス粒度が前記DSNドメインコヒーレンス状態に遷移したことを示すDSO_NOW_CLEANメッセージを受信するように構成されることによって、前記コヒーレンス粒度が前記複数のドメインのうちいずれのドメイン内でも前記Oキャッシュコヒーレンス状態でキャッシュされていないと決定するように構成され、
前記第1のLOPは、前記ドメインコヒーレンス状態インジケータを前記DSSドメインコヒーレンス状態から前記DSNドメインコヒーレンス状態に更新するように構成されることによって、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新するように構成される、請求項1に記載のプロセッサベースのデバイス。
【請求項10】
前記第1のLOPは、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度が前記第1のドメイン内でDSOドメインコヒーレンス状態でキャッシュされていることを示すように更に構成され、
前記第1のLOPは、前記第1のキャッシュされたコピーを前記システムメモリ内の前記コヒーレンス粒度に書き込むように構成されることによって、前記コヒーレンス粒度が前記複数のドメインのうちいずれのドメイン内でも前記Oキャッシュコヒーレンス状態でキャッシュされていないと決定するように構成され、
前記第1のLOPは、前記ドメインコヒーレンス状態インジケータを前記DSOドメインコヒーレンス状態から前記DSNドメインコヒーレンス状態に更新するように構成されることによって、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新するように構成される、請求項1に記載のプロセッサベースのデバイス。
【請求項11】
前記第1のLOPは、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度が前記第1のドメイン内でドメイン状態排他(DSE)ドメインコヒーレンス状態でキャッシュされていることを示すように更に構成され、
前記第1のLOPは、前記第1のPEが前記コヒーレンス粒度の未修正のコピーを保持し、前記コヒーレンス粒度の共有コピーを前記複数のドメインのうち第3のドメインに提供したと決定するように構成されることによって、前記コヒーレンス粒度が前記複数のドメインのうちいずれのドメイン内でも前記Oキャッシュコヒーレンス状態でキャッシュされていないと決定するように構成され、
前記第1のLOPは、前記ドメインコヒーレンス状態インジケータを前記DSEドメインコヒーレンス状態から前記DSNドメインコヒーレンス状態に更新するように構成されることによって、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新するように構成される、請求項1に記載のプロセッサベースのデバイス。
【請求項12】
前記第1のLOPは、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度が前記第1のドメイン内でドメイン状態無効(DSI)ドメインコヒーレンス状態を有することを示すように更に構成され、
前記第1のLOPは、前記第1のPEによる前記コヒーレンス粒度の要求に応じて、前記複数のドメインのうちどのドメインも前記コヒーレンス粒度の修正コピーをキャッシュしていないと決定するように構成されることによって、前記コヒーレンス粒度が前記複数のドメインのうちいずれのドメイン内でも前記Oキャッシュコヒーレンス状態でキャッシュされていないと決定するように構成され、
前記第1のLOPは、前記ドメインコヒーレンス状態インジケータを前記DSIドメインコヒーレンス状態から前記DSNドメインコヒーレンス状態に更新するように構成されることによって、前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新するように構成される、請求項1に記載のプロセッサベースのデバイス。
【請求項13】
前記第1のLOPは、
前記第1のPEから、前記コヒーレンス粒度の前記第1のキャッシュされたコピーのキャッシュコヒーレンス状態を共有(S)キャッシュコヒーレンス状態から排他(E)キャッシュコヒーレンス状態に更新するための要求を受信し、
前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度が前記第1のドメイン内でDSEドメインコヒーレンス状態でキャッシュされていることを示すように更に構成される、請求項1に記載のプロセッサベースのデバイス。
【請求項14】
前記第1のLOPは、
前記第1のPEによって保持される前記コヒーレンス粒度の前記第1のキャッシュされたコピーが、前記第1のドメイン内で前記コヒーレンス粒度の最後の残りのコピーであると決定し、
前記第1のPEが前記第1のキャッシュされたコピーを追い出したと決定し、
前記コヒーレンス粒度の前記ドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度が前記第1のドメイン内でDSIドメインコヒーレンス状態でキャッシュされていることを示すように更に構成される、請求項1に記載のプロセッサベースのデバイス。
【請求項15】
複数の処理要素(PE)のうち1つ以上のPEをそれぞれ含む複数のドメインの第1のドメイン内にあるプロセッサベースのデバイスの第1のローカル順序付けポイント回路(LOP)によって、第1のキャッシュされたコピーとして前記第1のドメインの前記1つ以上のPEのうち第1のPEのローカルキャッシュ内にキャッシュされたコヒーレンス粒度が、前記複数のドメインのうちいずれのドメイン内でも所有(O)キャッシュコヒーレンス状態でキャッシュされていないと決定するステップと、
前記コヒーレンス粒度のドメインコヒーレンス状態インジケータを更新して、前記コヒーレンス粒度が前記第1のドメイン内でドメイン状態未所有(DSN)ドメインコヒーレンス状態でキャッシュされていることを示すステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の技術は、プロセッサベースのデバイスにおけるキャッシュコヒーレンス(cache coherence)プロトコルに関し、特に、ドメインコヒーレンス(domain coherence)状態の維持に関する。
【背景技術】
【0002】
プロセッサベースのデバイスは、頻繁にアクセスされるデータを格納するための1つ以上のローカルキャッシュをそれぞれ提供する複数の処理要素(PE, processing element)(例えば、非限定的な例としてプロセッサコア)を含むことがある。プロセッサベースのデバイスの複数のPEは、システムメモリのようなメモリリソースを共有することがあるので、所与のメモリアドレスから読み取られた共有データの複数のコピーが、システムメモリ及びPEのローカルキャッシュ内に同時に存在することがある。したがって、PEの全てが共有データの一貫したビューを有することを確保するために、プロセッサベースのデバイスはキャッシュコヒーレンス(キャッシュの一貫性)を維持するためのメカニズムを提供する。これは、共有データのローカルコピーの間の不整合によってPEの間で発生する可能性のある競合が回避されることを可能にする。
【0003】
プロセッサベースのデバイス内のPEが共有データの一貫したビューを観察することを保証するための1つのこのようなメカニズムは、システム順序付けポイント回路(SOP, system ordering point circuit)である。SOPを使用するプロセッサベースのデバイスでは、システムメモリからコヒーレンス粒度(coherence granule)(すなわち、典型的にはキャッシュラインに対応する、コヒーレンスが維持される最小のメモリブロック)のコピーを求めるPEが、コヒーレンス粒度の読み取り要求をSOPに送信する。次いで、SOPはプロセッサベースのデバイス内の他のPEにスヌープ(snoop)を送信し、他のPEのいずれかがそのコヒーレンス粒度のコヒーレントコピーを所有しているか否かを決定する。コヒーレンス粒度のコヒーレントコピーを有するPEは、スヌープ応答で応答し、読み取り要求を満たすために、コヒーレンス粒度のコピーを要求側PEに提供する。SOPを使用するプロセッサベースのデバイスの性能は、プロセッサベースのデバイスのPEを複数のドメインに細分化し、各ドメインが、ドメイン内のPEがメモリアクセス要求を送信するローカル順序付けポイント回路(LOP, local ordering point circuit)を有することによって更に改善され得る。SOPと組み合わせてLOPを使用することは、例えば、要求側PEと、要求されたコヒーレンス粒度のコヒーレントコピーを保持するPEとが同じドメイン内にある場合、要求がより迅速に満されることを可能にし得る。
【0004】
しかし、第1のPEがコヒーレンス粒度のコピーを求めた結果としてスヌープが送信されるが、コヒーレンス粒度のコヒーレントコピーを保持する第2のPEが適時にスヌープにサービス提供できない状況が発生する可能性がある(例えば、第2のPE又はそのドメインのLOPのスヌープ処理リソースが、以前の操作のためにビジー状態であるため)。SOPはシステムメモリ内のコヒーレンス粒度が古いか否か(すなわち、PEによって保持されているコヒーレンス粒度のキャッシュされたコピーが修正されているが、システムメモリに書き戻されていないか否か)を決定できないので、SOPは単に第1のPEの代わりに要求されたコヒーレンス粒度をシステムメモリから読み取ることができない。その結果、SOP124は、第2のPE104(0)がスヌープにサービス提供するまで、スヌープを継続的に再送しなければならない。或いは、第2のPE104(0)がスヌープにサービス提供できるようになるまで、第2のPE104(0)がスヌープチャネルを停止させる可能性がある。これらの手法の双方は、コヒーレンス粒度にアクセスするための許容できないほど長い待機時間を生じる可能性があり、プロセッサベースのデバイスの全体的なシステム性能を低下させる可能性がある。
【0005】
したがって、未応答のドメインと通信する必要性を低減するためのメカニズムが望まれる。
【発明の概要】
【0006】
ここに開示される例示的な実施形態は、プロセッサベースのデバイスにおいてドメイン状態未所有(DSN, Domain State No-Owned)を含むドメインコヒーレンス状態を維持することを含む。この点に関して、1つの例示的な実施形態では、プロセッサベースのデバイスは、複数のドメインに編成された複数の処理要素(PE)を提供し、各ドメインは1つ以上のPEを含む。各ドメインは、ドメイン内のPEに通信可能に結合されたローカル順序付けポイント回路(LOP, local ordering point circuit)を含み、プロセッサベースのデバイスのシステム順序付けポイント回路(SOP, system ordering point circuit)にも通信可能に結合される。プロセッサベースのデバイスは、所与のドメイン内のPEによってキャッシュされた各コヒーレンス粒度のドメインレベルのコヒーレンス状態を示す従来のキャッシュコヒーレンス状態のスーパーセットである、ドメインコヒーレンス状態をサポートするように構成される。プロセッサベースのデバイスによってサポートされるドメインコヒーレンス状態は、DSNドメインコヒーレンス状態を含み、これは、コヒーレンス粒度がいずれのドメイン内でも所有(O, Owned)キャッシュコヒーレンス状態でキャッシュされていないことを示す(すなわち、コヒーレンス粒度は共有された修正状態でキャッシュされていない)。いくつかの実施形態では、プロセッサベースのデバイスのシステム順序付けポイント回路(SOP)が、その後、コヒーレンス粒度への読み取りアクセスの要求を受信し、コヒーレンス粒度が複数のドメインのうち或るドメイン内でDSNドメインコヒーレンス状態でキャッシュされていると決定した場合、SOPは、必要に応じて(例えば、スヌープ応答がLOPから適時に受信されない場合)読み取りアクセスを満たすためにシステムメモリからコヒーレンス粒度を安全に読み取ることができる。このように、SOPが未応答のLOPからのスヌープ応答を待機する必要がないので、読み取り要求がより迅速に満たされることができ、SOPは、DSNドメインコヒーレンス状態で保持されているコヒーレンス粒度がシステムメモリ内で古くないことを保証できる。
【0007】
他の例示的な実施形態では、プロセッサベースのデバイスが提供される。プロセッサベースのデバイスは、複数のPEと、複数のドメインとを含む。各ドメインは、複数のPEのうち1つ以上のPEと、1つ以上のPEに通信可能に結合されたLOPとを含む。複数のドメインのうち第1のドメインの第1のLOPは、第1のキャッシュされたコピーとして第1のドメインの1つ以上のPEのうち第1のPEのローカルキャッシュ内にキャッシュされたコヒーレンス粒度が、複数のドメインのうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定するように構成される。第1のLOPは、コヒーレンス粒度のドメインコヒーレンス状態インジケータを更新して、コヒーレンス粒度がDSNドメインコヒーレンス状態でキャッシュされていることを示すように更に構成される。
【0008】
他の例示的な実施形態では、方法が提供される。当該方法は、複数のPEのうち1つ以上のPEをそれぞれ含む複数のドメインの第1のドメイン内にあるプロセッサベースのデバイスのLOPによって、第1のキャッシュされたコピーとして第1のドメインの1つ以上のPEのうち第1のPEのローカルキャッシュ内にキャッシュされたコヒーレンス粒度が、複数のドメインのうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定するステップを含む。当該方法は、コヒーレンス粒度のドメインコヒーレンス状態インジケータを更新して、コヒーレンス粒度が第1のドメイン内でDSNドメインコヒーレンス状態でキャッシュされていることを示すステップを更に含む。
【0009】
他の例示的な実施形態では、コンピュータ実行可能命令を格納した非一時的なコンピュータ読み取り可能媒体が提供される。コンピュータ実行可能命令は、プロセッサデバイスによって実行されると、プロセッサデバイスに、第1のキャッシュされたコピーとして複数のドメインのうち第1のドメインの1つ以上のPEのうち第1のPEのローカルキャッシュ内にキャッシュされたコヒーレンス粒度が、複数のドメインのうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定させる。さらに、コンピュータ実行可能命令は、プロセッサデバイスに、コヒーレンス粒度のドメインコヒーレンス状態インジケータを更新させて、コヒーレンス粒度が第1のドメイン内でDSNドメインコヒーレンス状態でキャッシュされていることを示すようにさせる。
【0010】
当業者は、本開示の範囲を認識し、添付の図面と関連付けて好ましい実施形態の以下の詳細な説明を読んだ後に、その更なる実施形態を実現する。
【図面の簡単な説明】
【0011】
本明細書に組み込まれてその一部を形成する添付の図面は、本開示のいくつかの実施形態を示しており、詳細な説明とともに本開示の原理を説明する役割を果たす。
【
図1】いくつかの実施形態に従って、プロセッサベースのデバイスにおいて、ドメイン状態未所有(DSN)ドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持するように構成された、例示的なプロセッサベースのデバイスを示すブロック図である。
【
図2】いくつかの実施形態による、ドメインコヒーレンス状態及びドメインコヒーレンス状態の間の遷移を示すコヒーレンス状態遷移図である。
【
図3A】いくつかの実施形態に従って、DSNドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図3B】いくつかの実施形態に従って、DSNドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図3C】いくつかの実施形態に従って、DSNドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図3D】いくつかの実施形態に従って、DSNドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図4A】いくつかの実施形態に従って、ドメイン状態共有(DSS)ドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図4B】いくつかの実施形態に従って、ドメイン状態共有(DSS)ドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図4C】いくつかの実施形態に従って、ドメイン状態共有(DSS)ドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローを示すメッセージフロー図である。
【
図5】いくつかの実施形態に従って、DSO_NOW_CLEANメッセージの受信に基づいて、DSSドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図6】いくつかの実施形態に従って、ドメイン状態所有(DSO, Domain State Owned)ドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図7】いくつかの実施形態に従って、ドメイン状態排他(DSE, Domain State Exclusive)ドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図8】いくつかの実施形態に従って、ドメイン状態無効(DSI, Domain State Invalid)ドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー図である。
【
図9A】いくつかの実施形態に従って、DSNドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持し、DSNドメインコヒーレンス状態からDSE又はDSIドメインコヒーレンス状態に遷移するための例示的な動作を示すフローチャートである。
【
図9B】いくつかの実施形態に従って、DSNドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持し、DSNドメインコヒーレンス状態からDSE又はDSIドメインコヒーレンス状態に遷移するための例示的な動作を示すフローチャートである。
【
図10】いくつかの実施形態に従って、DSSドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するための例示的な動作を示すフローチャートである。
【
図11】いくつかの実施形態に従って、DSSドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するための更なる例示的な動作を示すフローチャートである。
【
図12】いくつかの実施形態に従って、DSO_NOW_CLEANメッセージの受信に基づいて、DSSドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するための例示的な動作を示すフローチャートである。
【
図13】いくつかの実施形態に従って、DSOドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するための例示的な動作を示すフローチャートである。
【
図14】いくつかの実施形態に従って、DSEドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するための例示的な動作を示すフローチャートである。
【
図15】いくつかの実施形態に従って、DSIドメインコヒーレンス状態からDSNドメインコヒーレンス状態に遷移するための例示的な動作を示すフローチャートである。
【
図16】いくつかの実施形態に従って、DSNドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持するように構成された、
図1のプロセッサベースのデバイスのような、例示的なプロセッサベースのデバイスのブロック図である。
【発明を実施するための形態】
【0012】
ここに開示される例示的な実施形態は、プロセッサベースのデバイスにおいてドメイン状態未所有(DSN, Domain State No-Owned)を含むドメインコヒーレンス状態を維持することを含む。この点に関して、1つの例示的な実施形態では、プロセッサベースのデバイスは、複数のドメインに編成された複数の処理要素(PE)を提供し、各ドメインは1つ以上のPEを含む。各ドメインは、ドメイン内のPEに通信可能に結合されたローカル順序付けポイント回路(LOP, local ordering point circuit)を含み、プロセッサベースのデバイスのシステム順序付けポイント回路(SOP, system ordering point circuit)にも通信可能に結合される。プロセッサベースのデバイスは、所与のドメイン内のPEによってキャッシュされた各コヒーレンス粒度のドメインレベルのコヒーレンス状態を示す従来のキャッシュコヒーレンス状態のスーパーセットである、ドメインコヒーレンス状態をサポートするように構成される。プロセッサベースのデバイスによってサポートされるドメインコヒーレンス状態は、DSNドメインコヒーレンス状態を含み、これは、コヒーレンス粒度がいずれのドメイン内でも所有(O, Owned)キャッシュコヒーレンス状態でキャッシュされていないことを示す(すなわち、コヒーレンス粒度は共有された修正状態でキャッシュされていない)。SOPがコヒーレンス粒度への読み取りアクセスの要求を受信し、コヒーレンス粒度が複数のドメインのうち或るドメイン内でDSNドメインコヒーレンス状態でキャッシュされていると決定した場合、SOPは、必要に応じて(例えば、スヌープ応答がLOPから適時に受信されない場合)読み取りアクセスを満たすためにシステムメモリからコヒーレンス粒度を安全に読み取ることができる。このように、SOPが未応答のLOPからのスヌープ応答を待機する必要がないので、読み取り要求がより迅速に満たされることができ、SOPは、DSNドメインコヒーレンス状態で保持されているコヒーレンス粒度がシステムメモリ内で古くないことを保証できる。
【0013】
これに関して、
図1は、実行可能命令を処理するための複数の処理要素(PE)102(0)-102(P)、104(0)-104(Z)を提供する例示的なプロセッサベースのデバイス100を示す。PE102(0)-102(P)、104(0)-104(Z)のそれぞれは、例えば、論理実行ユニット並びに関連するキャッシュ及び機能ユニットを含む個々のプロセッサコアを含んでもよい。PE102(0)-102(P)、104(0)-104(Z)は、複数のドメイン106(0)-106(D)に編成され、複数のドメイン106(0)-106(D)のうち各ドメインは、複数のPE102(0)-102(P)、104(0)-104(Z)のうち1つ以上のPEを含む。したがって、
図1の例では、ドメイン106(0)はPE102(0)-102(P)を含み、ドメイン106(D)はPE104(0)-104(Z)を含む。
【0014】
図1のプロセッサベースのデバイス100のPE102(0)-102(P)、104(0)-104(Z)は、相互接続バス110によって相互に接続され、システムメモリ108に接続される。
図1に示すように、システムメモリ108は複数のコヒーレンス粒度112(0)-112(G)に細分化され、それぞれがプロセッサベースのデバイス100によってキャッシュコヒーレンスが維持されるメモリの最小単位(例えば、非限定的な例として64バイト)を表す。
図1の例では、PE102(0)は、ローカルキャッシュ114へのアクセスを制御するためのロジックを具体化するキャッシュコントローラ回路118と共に、キャッシュライン116(0)-116(C)を含むローカルキャッシュ114を含む。PE102(0)は、
図1に示すローカルキャッシュ114に加えて、他のキャッシュを含んでもよいことが理解されるべきである。ローカルキャッシュ114は、より迅速なアクセスのためにシステムメモリ108からロードされたデータをローカルに格納するためにPE102(0)によって使用される。例えば、
図1から分かるように、ローカルキャッシュ114のキャッシュライン116(0)は、コヒーレンス粒度112(0)-112(G)のうち1つ(例えば、非限定的な例としてコヒーレンス粒度112(0))のキャッシュされたコピー120を格納する。
図1に図示しないが、PE102(0)-102(P)、104(0)-104(Z)のそれぞれは、PE102(0)のローカルキャッシュ114及びキャッシュコントローラ回路118に機能的に対応するローカルキャッシュ及びキャッシュコントローラ回路を含むことが理解されるべきである。
【0015】
プロセッサベースのデバイス100の各ドメイン106(0)-106(D)は、対応するローカル順序付けポイント回路(LOP, local ordering point circuit)122(0)-122(D)を含み、これは、ドメイン106(0)-106(D)内のPE102(0)-102(P)、104(0)-104(Z)から受信したキャッシュコヒーレンスバスコマンドの間を仲裁するように構成される。プロセッサベースのデバイス100は、LOP122(0)-122(D)と通信して、PE102(0)-102(P)、104(0)-104(Z)の中のマスターPEから受信したキャッシュコヒーレンスバスコマンドの間を仲裁し、スヌープをPE102(0)-102(P)、104(0)124(Z)の中のスヌーパーPEに送信し且つスヌーパーPEからスヌープ応答を受信し、PE102(0)-102(P)、104(0)-104(Z)の中のマスターPE及びスヌーパーPEの双方に応答メッセージを送信するように構成されたシステム順序付けポイント回路(SOP)124を更に含む。SOP124は、相互接続バス110上のトラフィックを監視してキャッシュライン116(0)-116(C)のようなキャッシュラインのコヒーレンス状態を追跡するように構成されたスヌープフィルタ(図示せず)と連携して動作してもよい。
【0016】
図1のプロセッサベースのデバイス100及びその構成要素は、他の要素の中でも、既知のデジタル論理要素、半導体回路、処理コア及び/又はメモリ構造のうちいずれか1つ、又はこれらの組み合わせを含んでもよい。ここに記載される実施形態は、要素の特定の配置に限定されず、開示の技術は、半導体ソケット又はパッケージ上の様々な構造及びレイアウトに容易に拡張され得る。プロセッサベースのデバイス100のいくつかの実施形態は、
図1に示す要素に加えて要素を含んでもよいことが理解されるべきである。例えば、PE102(0)-102(P)のそれぞれは、1つ以上の機能ユニット、命令キャッシュ、ユニファイドキャッシュ、メモリコントローラ、相互接続バス及び/又は更なるメモリデバイス、キャッシュ、及び/又はコントローラ回路を更に含んでもよいが、これらは明確にするために
図1から省略されている。
【0017】
上記のように、第1のPE(例えば、非限定的な例としてPE102(0))がコヒーレンス粒度(コヒーレンス粒度112(0)等)のコピーを求めた結果としてスヌープが送信されるが、コヒーレンス粒度112(0)のコヒーレントコピーを保持する第2のPE(例えば、非限定的な例としてPE104(0))が適時にスヌープにサービス提供できないという状況が発生する可能性がある。このような状況では、SOP124はシステムメモリ108内のコヒーレンス粒度112(0)が古いか否か(すなわち、コヒーレンス粒度112(0)のキャッシュされたコピーがPE102(0)-102(P)、104(0)-104(Z)のうち他のものによって修正されているか否か)を決定できないので、SOP124は単に第1のPE102(0)の代わりにシステムメモリ108から要求されたコヒーレンス粒度112(0)を読み取ることができない。その結果、SOP124は、第2のPE104(0)がスヌープにサービス提供するまで、スヌープを継続的に再送しなければならない。或いは、第2のPE104(0)がスヌープにサービス提供できるようになるまで、第2のPEがスヌープチャネルを停止させる可能性がある。これらの手法の双方は、コヒーレンス粒度112(0)にアクセスするための許容できないほど長い待機時間を生じる可能性があり、プロセッサベースのデバイス100の全体的なシステム性能を低下させる可能性がある。
【0018】
この点に関して、プロセッサベースのデバイス100のLOP122(0)-122(D)は、それぞれのドメイン106(0)-106(D)内でキャッシュされたコヒーレンス粒度のドメインコヒーレンス状態を示すドメインコヒーレンス状態インジケータ126(0)-126(N)、128(0)-128(N)を提供するように構成される。ドメインコヒーレンス状態インジケータ126(0)-126(N)、128(0)-128(N)は、スヌープフィルタ(図示せず)、ディレクトリ(図示せず)、又はLOP122(0)-122(D)内の他の適切なデータ構造若しくは回路の一部として格納又は具現化されてもよい。
図2に関して以下により詳細に説明するように、ドメインコヒーレンス状態は従来のキャッシュコヒーレンス状態のスーパーセットであり、ドメインレベルでのコヒーレンス粒度のコヒーレンス状態を示す。特に、LOP122(0)-122(D)は、DSNドメインコヒーレンス状態をサポートするように構成され、これは、対応するコヒーレンス粒度がドメイン106(0)-106(D)のいずれのドメイン内でもOキャッシュコヒーレンス状態(すなわち、共有された修正状態)でキャッシュされていないことを示す。
【0019】
コヒーレンス粒度(例えば、非限定的な例としてコヒーレンス粒度112(0))がドメイン106(0)-106(D)のいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定すると、LOP122(0)のようなLOPは、ドメインコヒーレンス状態インジケータ(例えば、非限定的な例としてドメインコヒーレンス状態インジケータ126(0))を更新して、コヒーレンス粒度112(0)がドメイン106(0)内でDSNドメインコヒーレンス状態でキャッシュされていることを示す。その後、SOP124がコヒーレンス粒度112(0)への読み取りアクセスの要求を受信した場合、SOP124は、コヒーレンス粒度112(0)がDSNコヒーレンス状態を有していることをドメイン106(0)によって認識されていると(例えば、LOP122(0)からドメインコヒーレンス状態インジケータ126(0)を受信することによって)決定できる。次いで、SOP124は、システムメモリ108からコヒーレンス粒度を読み取り、読み取り要求を満たすことができる(すなわち、ドメイン106(0)-106(D)の中で未応答のドメインからのスヌープ応答を待機する必要がない)。
【0020】
いくつかの実施形態による例示的なドメインコヒーレンス状態とドメインコヒーレンス状態の間の遷移とを示すために、
図2はコヒーレンス状態遷移
図200を提供する。上記のように、ドメインコヒーレンス状態は従来のキャッシュコヒーレンス状態のスーパーセットであり、ドメイン状態排他(DSE, Domain State Exclusive)ドメインコヒーレンス状態202、ドメイン状態共有(DSS, Domain State Shared)ドメインコヒーレンス状態204、ドメイン状態所有(DSO, Domain State Owned)ドメインコヒーレンス状態206、ドメイン状態無効(DSI, Domain State Invalid)ドメインコヒーレンス状態208及びドメイン状態未所有(DSN, Domain State No-Owned)ドメインコヒーレンス状態210を含む。各ドメインコヒーレンス状態の説明が以下の表1に提供される。
【0021】
【表1】
異なるドメインコヒーレンス状態の間の遷移について、以下の表2で更に詳細に説明する。
【0022】
【表2】
図3A~3D、
図4A~4C及び
図5~8は、いくつかの実施形態に従って、DSNドメインコヒーレンス状態210への遷移及びDSNドメインコヒーレンス状態210からの遷移についての通信フロー及び動作を示すメッセージフロー図を提供する。
図3A~3Dは、
図1のコヒーレンス粒度112(0)のようなコヒーレンス粒度のドメインコヒーレンス状態を決定及び更新し、DSNドメインコヒーレンス状態210からDSEドメインコヒーレンス状態202又はDSIドメインコヒーレンス状態208に遷移するために、
図1の要素によって実行される例示的な通信フロー及び動作を示す。
図4A~4C及び
図5は、DSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に遷移するための例示的な通信フロー及び動作を示し、
図6~8は、DSOドメインコヒーレンス状態206、DSEドメインコヒーレンス状態202及びDSIドメインコヒーレンス状態208からDSNドメインコヒーレンス状態210に遷移するための例示的な通信フロー及び動作をそれぞれ示す。
【0023】
まず
図3A~3Dを参照すると、メッセージフロー
図300は、いくつかの実施形態に従って、DSNドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示す。明確にするために、
図3A~
図3Dの説明において
図1及び
図2の要素が参照される。
図3A~3Dにおいて分かるように、メッセージフロー
図300は、縦線で表されるPE102(0)、LOP122(0)、SOP124、LOP122(D)、PE104(0)及びシステムメモリ108(「SYSTEM MEM」)を示しており、これらの要素の間の通信がキャプション付き矢印で示され、これらの要素によって実行される動作がキャプション付きブロックで表される。
図3A~3Dに示す動作の全てが全ての実施形態によって実行されなくてもよいこと、及び/又は
図3A~3Dに示すいくつかの動作がここに示す以外の順序で実行されてもよいことが理解されるべきである。
【0024】
図3Aにおいて、動作は、LOP122(0)が、キャッシュされたコピー120としてドメイン106(0)の1つ以上のPE102(0)-102(P)のうちPE102(0)のローカルキャッシュ114内にキャッシュされたコヒーレンス粒度112(0)が、複数のドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定することで始まる(ブロック302)。LOP122(0)は、コヒーレンス粒度112(0)について、ドメインコヒーレンス状態インジケータ126(0)のようなドメインコヒーレンス状態インジケータを更新して、コヒーレンス粒度112(0)がドメイン106(0)内でDSNドメインコヒーレンス状態210でキャッシュされていることを示す(ブロック304)。その後、PE104(0)は、コヒーレンス粒度112(0)への読み取りアクセスの要求306をLOP122(D)に送信し、次いで、LOP122(D)は、コヒーレンス粒度112(0)への読み取りアクセスの要求308をSOP124に転送する。次いで、動作が
図3Bにおいて続行する。
【0025】
次に
図3Bを参照すると、SOP124は、コヒーレンス粒度112(0)がドメイン106(0)内でDSNドメインコヒーレンス状態210でキャッシュされていると決定する(ブロック310)。SOP124は、DSNドメインコヒーレンス状態210から、ドメイン106(0)にキャッシュされたコピーに関してシステムメモリ108内のコヒーレンス粒度112(0)が古くないことを認識するので、SOP124は、システムメモリ108からコヒーレンス粒度112(0)を読み取り、(例えば、LOP122(0)-122(D)のいくつかスヌープに適時に応答できない状況において)読み取りアクセスを満たすことができる。したがって、SOP124は、コヒーレンス粒度112(0)を読み取る要求312をシステムメモリ108に送信し、矢印314で示すように、要求312に応じてコヒーレンス粒度112(0)を受信する。次いで、SOP124は、矢印316で示すように、コヒーレンス粒度112(0)をPE104(0)に提供する。次いで、動作が
図3Cにおいて続行する。
【0026】
次に
図3Cを参照すると、いくつかの実施形態では、PE102(0)のようなドメイン106(0)内のPEは、要求318をLOP122(0)に送信して、コヒーレンス粒度112(0)のキャッシュコヒーレンス状態をSキャッシュコヒーレンス状態からEキャッシュコヒーレンス状態に更新してもよい。次いで、このような実施形態におけるLOP122(0)は、要求320をSOP124に転送して、ドメイン106(0)のドメインコヒーレンス状態をアップグレードする許可を取得する。SOP124が、(必要に応じて)複数のドメイン106(0)-106(D)のうち他のドメインへのスヌープを完了して、コヒーレンス粒度112(0)のコピーを放棄するように命令し、複数のドメイン106(0)-106(D)のうち他のドメインに他のキャッシュされたコピーが存在しないと決定した後に、SOP124は要求320を許可する応答322を送信する。応答322を受信すると、このような実施形態におけるLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)がドメイン106(0)内でDSEドメインコヒーレンス状態202でキャッシュされていることを示す(ブロック324)。次いで、動作が
図3Dにおいて続行する。次に
図3Dを参照すると、いくつかの実施形態は、LOP122(0)が、PE102(0)によって保持されるコヒーレンス粒度112(0)の第1のキャッシュされたコピー120がドメイン106(0)内でコヒーレンス粒度112(0)の最後の残りのコピーであると決定することを提供してもよい(ブロック326)。その後、PE102(0)は第1のキャッシュされたコピー120を追い出す(ブロック328)。PE102(0)が第1のキャッシュされたコピー120を追い出したと決定すると、LOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)がDSIドメインコヒーレンス状態208でキャッシュされていることを示す(ブロック330)。
【0027】
いくつかの実施形態に従って、DSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すために、
図4A~4Cはメッセージフロー
図400を提供する。明確にするために、
図4A~
図4Cの説明において
図1及び
図2の要素が参照される。
図4A~4Cのメッセージフロー
図400は、縦線で表されるPE102(0)、PE102(P)、SOP124、LOP122(D)及びPE104(0)を示しており、これらの要素の間の通信がキャプション付き矢印で示され、これらの要素によって実行される動作がキャプション付きブロックで表される。
図4A~4Cに示す動作の全てが全ての実施形態によって実行されなくてもよいこと、及び/又は
図4A~4Cに示すいくつかの動作がここに示す以外の順序で実行されてもよいことが理解されるべきである。
【0028】
図4Aにおいて、動作は、LOP122(0)が、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)がドメイン106(0)内でDSSドメインコヒーレンス状態204でキャッシュされていることを示すことで始まる(ブロック402)。ドメイン106(0)内のPE102(P)は、コヒーレンス粒度112(0)への読み取りアクセスの要求404をLOP122(0)に送信し、次に、LOP122(0)は要求406をSOP124に転送する。SOP124は、ドメイン106(0)及び106(D)がスヌープされる必要があると決定した後に、スヌープ408及び410をそれぞれLOP122(0)及び122(D)に送信する。
図4Aの例では、LOP122(0)は、ドメイン106(0)が要求されたデータを有していないことを既に認識しているので(要求406をSOP124に転送したため)、LOP122(0)は、スヌープ応答412をSOP124に提供して、その状態がデータなしで修正されていないことを示す。LOP122(D)は、スヌープ414をPE104(0)に転送し、PE104(0)は、その状態が修正されていないこと、及び読み取り要求を満たすことができることを示すスヌープ応答416をLOP122(D)に送信する。次いで、LOP122(D)は、スヌープ応答418をSOP124に提供して、そのドメイン状態が修正されていないことを示す。
【0029】
SOP124は、要求404に応じて送信されたスヌープ応答412及び418(ここでは「1つ以上のスヌープ応答412、418」と呼ばれる)を集約し、要求側ドメイン106(0)内のLOP122(0)に応答420を送信して、ドメイン106(0)-106(D)のうちどのドメインも修正状態でコヒーレンス粒度112(0)を保持していないこと(又はドメイン106(0)-106(D)のうち1つが、コヒーレンス粒度112(0)がDSNドメインコヒーレンス状態で保持されていることを認識していること)を示す。ここで、LOP122(0)は、DSNドメインコヒーレンス状態に遷移できる。LOP122(0)は、コヒーレンス粒度112(0)の未修正のコピーを受信するという応答422を要求側PE102(P)に転送する。次いで、動作が
図4Bにおいて続行する。
【0030】
次に
図4Bを参照すると、いくつかの実施形態におけるSOP124は、1つ以上のスヌープ応答412、418に基づいて、複数のドメイン106(0)-106(D)のうちどのドメインもDSOドメインコヒーレンス状態206でコヒーレンス粒度112(0)をキャッシュしていないと決定してもよい(ブロック424)。或いは、SOP124は、1つ以上のスヌープ応答412、418に基づいて、複数のドメイン106(0)-106(D)のうち少なくとも1つのドメインがDSNドメインコヒーレンス状態210でコヒーレンス粒度112(0)をキャッシュしていると決定してもよい(ブロック426)。次いで、動作が
図4Cにおいて続行する。
【0031】
次に
図4Cを参照すると、SOP124が、複数のドメイン106(0)-106(D)のうちどのドメインもDSOドメインコヒーレンス状態206でコヒーレンス粒度112(0)をキャッシュしていないこと、又は複数のドメイン106(0)-106(D)のうち少なくとも1つのドメインがDSNドメインコヒーレンス状態210でコヒーレンス粒度112(0)をキャッシュしていることを決定した場合、SOP124はその旨の指示428をLOP122(0)に送信する。指示428に基づいて、LOP122(0)は、DSNドメインコヒーレンス状態210がドメイン106(0)のコヒーレンス粒度112(0)に適用できると安全に結論付けることができる。したがって、LOP122(0)は、ドメインコヒーレンス状態インジケータ126(0)をDSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に更新する(ブロック430)。いくつかの実施形態では、LOP122(0)自体が1つ以上のスヌープ応答412、418を観察してもよく、独自の観察に基づいて、複数のドメイン106(0)-106(D)のうちどのドメインもDSOドメインコヒーレンス状態206でコヒーレンス粒度112(0)をキャッシュしていないこと、又は複数のドメイン106(0)-106(D)のうち少なくとも1つのドメインがDSNドメインコヒーレンス状態210でコヒーレンス粒度112(0)をキャッシュしていることを決定してもよいことが理解されるべきである。
【0032】
図5は、いくつかの実施形態に従って、DSO_NOW_CLEANメッセージの受信に基づいて、DSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー
図500を提供する。明確にするために、
図5の説明において
図1及び
図2の要素が参照される。
図5において分かるように、メッセージフロー
図500は、縦線で表されるLOP122(0)、SOP124及びLOP122(D)を示しており、これらの要素の間の通信がキャプション付き矢印で示され、これらの要素によって実行される動作がキャプション付きブロックで表される。
図5に示す動作の全てが全ての実施形態によって実行されなくてもよいこと、及び/又は
図5に示すいくつかの動作がここに示す以外の順序で実行されてもよいことが理解されるべきである。
【0033】
図5において、動作は、LOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)がドメイン106(0)内でDSSドメインコヒーレンス状態204でキャッシュされていることを示すことで始まる(ブロック502)。次いで、LOP122(0)は、SOP124を介してドメイン106(D)のLOP122(D)から、以前にドメイン106(D)内でDSOドメインコヒーレンス状態206でキャッシュされたコヒーレンス粒度112がDSNドメインコヒーレンス状態210に遷移したことを示すDSO_NOW_CLEANメッセージ504を受信する。次いで、LOP122(D)は、ドメインコヒーレンス状態インジケータ126(0)をDSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に更新する(ブロック506)。
【0034】
いくつかの実施形態に従って、DSOドメインコヒーレンス状態206からDSNドメインコヒーレンス状態210に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すために、
図6はメッセージフロー
図600を提供する。明確にするために、
図6の説明において
図1及び
図2の要素が参照される。
図6のメッセージフロー
図600は、縦線で表されるPE102(0)、システムメモリ108(「SYSTEM MEM」)及びLOP122(D)を示しており、これらの要素の間の通信がキャプション付き矢印で示され、これらの要素によって実行される動作がキャプション付きブロックで表される。
図6に示す動作の全てが全ての実施形態によって実行されなくてもよいこと、及び/又は
図6に示すいくつかの動作がここに示す以外の順序で実行されてもよいことが理解されるべきである。
【0035】
図6における動作は、LOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)がドメイン106(0)内でDSOドメインコヒーレンス状態206でキャッシュされていることを示すことで始まる(ブロック602)。その後、LOP122(0)は、第1のキャッシュされたコピー120をシステムメモリ108内のコヒーレンス粒度112(0)に書き込む。LOP122(0)は、第1のキャッシュされたコピー120がOキャッシュコヒーレンス状態(すなわち、共有された修正)にあり、システムメモリ108に書き込まれたことを認識しているので、LOP122(0)は、複数のドメイン106(0)-106(D)の中で他のドメインがOコヒーレンス状態でコヒーレンス粒度112(0)のコピーを保持していないと結論付けることができる。したがって、LOP122(0)は、ドメインコヒーレンス状態インジケータ126(0)をDSOドメインコヒーレンス状態206からDSNドメインコヒーレンス状態210に更新する(ブロック604)。いくつかの実施形態では、LOP122(0)はまた、コヒーレンス粒度112(0)がDSNドメインコヒーレンス状態210に遷移したことを示すDSO_NOW_CLEANメッセージ606をLOP122(D)のような他のLOPに送信してもよい。次に、LOP122(D)は、DSO_NOW_CLEANメッセージ606の受信に応じて、コヒーレンス粒度112(0)についてDSNドメインコヒーレンス状態210に遷移してもよい。いくつかの実施形態では、
図1のSOP124は、SOP124がDSOドメインコヒーレンス状態206でコヒーレンス粒度112(0)を保持するドメイン106(0)-106(D)のうち1つからの書き戻しを受け入れたとき、DSO_NOW_CLEANメッセージをLOP122(0)-122(D)に送信してもよいことが理解されるべきである。
【0036】
図7は、いくつかの実施形態に従って、DSEドメインコヒーレンス状態202からDSNドメインコヒーレンス状態210に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すメッセージフロー
図700を提供する。明確にするために、
図7の説明において
図1及び
図2の要素が参照される。
図7において、メッセージフロー
図700は、縦線で表されるPE102(0)、LOP122(0)及びPE104(0)を示しており、これらの要素の間の通信がキャプション付き矢印で示され、これらの要素によって実行される動作がキャプション付きブロックで表される。
図7に示す動作の全てが全ての実施形態によって実行されなくてもよいこと、及び/又は
図7に示すいくつかの動作がここに示す以外の順序で実行されてもよいことが理解されるべきである。
【0037】
図7における動作は、LOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)がドメイン106(0)内でDSEドメインコヒーレンス状態202でキャッシュされていることを示すことで始まる(ブロック702)。次いで、PE102(0)は、コヒーレンス粒度112(0)の共有コピー704をドメイン106(D)内のPE104(0)に提供する。
図7の例では、PE102(0)は、共有コピー704をPE104(0)に提供することを示すスヌープ応答(図示せず)を送信している。この例におけるLOP122(0)は、スヌープ応答に基づいて、PE102(0)により保持される第1のキャッシュコピー120が修正されていないと結論付ける。したがって、LOP122(0)は、ドメインコヒーレンス状態インジケータ126(0)をDSEドメインコヒーレンス状態202からDSNドメインコヒーレンス状態210に更新する(ブロック706)。
【0038】
いくつかの実施形態に従って、DSIドメインコヒーレンス状態208からDSNドメインコヒーレンス状態210に遷移するために、
図1の要素によって実行される動作と、要素の間の例示的な通信フローとを示すために、
図8はメッセージフロー
図800を提供する。明確にするために、
図8の説明において
図1及び
図2の要素が参照される。
図8のメッセージフロー
図800は、縦線で表されるPE102(0)、LOP122(0)及びSDP124を示しており、これらの要素の間の通信がキャプション付き矢印で示され、これらの要素によって実行される動作がキャプション付きブロックで表される。
図8に示す動作の全てが全ての実施形態によって実行されなくてもよいこと、及び/又は
図8に示すいくつかの動作がここに示す以外の順序で実行されてもよいことが理解されるべきである。
【0039】
図8において、動作は、LOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)がドメイン106(0)内でDSIドメインコヒーレンス状態208を有することを示すことで始まる(ブロック802)。次いで、LOP122(0)は、第1のPE102(0)によるコヒーレンス粒度112(0)の要求804を受信し、対応する要求806をSOP124に転送する。その後、LOP122(0)は、ドメイン106(0)-106(D)のうちどのドメインもコヒーレンス粒度112(0)の修正コピーを保持していないこと(すなわち、どのドメイン106(0)-106(D)も、O又はMキャッシュコヒーレンス状態でコヒーレンス粒度112(0)のコピーを保持してないこと)を示すSOP124からの応答808を受信する。次いで、LOP122(0)は、ドメインコヒーレンス状態インジケータ126(0)をDSIドメインコヒーレンス状態208からDSNドメインコヒーレンス状態210に更新することによって、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新する(ブロック810)。
【0040】
図9A及び9Bは、いくつかの実施形態に従って、DSNドメインコヒーレンス状態210を含むドメインコヒーレンス状態を維持し、DSNドメインコヒーレンス状態210からDSEコヒーレンス状態202又はDSIドメインコヒーレンス状態208に遷移するための例示的な動作を示すフローチャート900を提供する。明確にするために、
図9A及び9Bの説明において
図1、2及び3A~3Dの要素が参照される。
図9A及び9Bの説明は、
図1のLOP122を「第1のLOP122(0)」として示し、
図1のドメイン106(0)を「第1のドメイン106(0)」として示し、
図1のPE102(0)を「第1のPE102(0)」として示し、
図1のキャッシュされたコピー120を「第1のキャッシュされたコピー120」として示す。
【0041】
図9Aにおいて、動作は、複数のPE102(0)-102(P)、104(0)-104(Z)のうち1つ以上のPE102(0)-102(P)をそれぞれ含む複数のドメイン106(0)-106(D)のうち
図1の第1のドメイン106(0)の第1のLOP122(0)が、第1のキャッシュされたコピー120として第1のドメイン106(0)の1つ以上のPE102(0)-102(P)のうち第1のPE102(0)のローカルキャッシュ114内にキャッシュされたコヒーレンス粒度112(0)が、複数のドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定することで始まる(ブロック902)。第1のLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)が第1のドメイン106(0)内でDSNドメインコヒーレンス状態210でキャッシュされていることを示す(ブロック904)。いくつかの実施形態においてブロック902及び904に記載の機能を実行するための動作について、
図10~15に関して以下により詳細に説明する。
【0042】
その後、SOP124は、
図1のドメイン106(1)のような第2のドメインから、コヒーレンス粒度112(0)への読み取りアクセスの要求308を受信する(ブロック906)。SOP124は、コヒーレンス粒度112(0)が第1のドメイン106(0)内でDSNドメインコヒーレンス状態210でキャッシュされていると決定する(ブロック908)。次いで、SOP124は、システムメモリ108からコヒーレンス粒度112(0)を読み取り、読み取りアクセスを満たす(すなわち、未応答のドメインからのスヌープ応答を待機しない)(ブロック910)。次いで、いくつかの実施形態における処理が、
図9Bのブロック912において続行する。
【0043】
次に
図9Bを参照すると、いくつかの実施形態に従って、第1のLOP122(0)は、第1のPE102(0)から、コヒーレンス粒度112(0)の第1のキャッシュされたコピー120のキャッシュコヒーレンス状態をSキャッシュコヒーレンス状態からEキャッシュコヒーレンス状態に更新するための要求318を受信してもよい(ブロック912)。次いで(すなわち、LOP122(0)が要求320をSOP124に転送し、その後に要求320を許可する応答322を受信した後に)、第1のLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)が第1のドメイン106(0)内でDSEドメインコヒーレンス状態202でキャッシュされていることを示す(ブロック914)。
【0044】
いくつかの実施形態では、第1のLOP122(0)が、第1のPE102(0)によって保持されるコヒーレンス粒度112(0)の第1のキャッシュされたコピー120が、第1のドメイン106(0)内でコヒーレンス粒度112(0)の最後の残りのコピーであると決定することを提供してもよい(ブロック916)。その後、第1のLOP122(0)は、第1のPE102(0)が第1のキャッシュされたコピー120を追い出したと決定する(ブロック918)。これに応じて、第1のLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)がDSIドメインコヒーレンス状態208でキャッシュされていることを示す(ブロック920)。
【0045】
いくつかの実施形態に従って、DSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に遷移するための例示的な動作を示すために、
図10はフローチャート1000を提供する。明確にするために、
図10の説明において
図1、2及び4A~4Cの要素が参照される。以下の
図10の説明は、
図1のLOP122(0)を「第1のLOP122(0)」として示し、
図1のドメイン106(0)を「第1のドメイン106(0)」として示し、
図1のPE102(P)を「第2のPE102(P)」として示す。
【0046】
図10における動作は、第1のLOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)が第1のドメイン106(0)内でDSSドメインコヒーレンス状態204でキャッシュされていることを示す(ブロック1002)。
図9Aのブロック902に関して上記に説明したように、第1のLOP122(0)は、コヒーレンス粒度112(0)が複数のドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定する(ブロック1004)。
図10の例では、コヒーレンス粒度112(0)がドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定するためのブロック1004の動作は、第1のLOP122(0)が、複数のドメイン106(0)-106(D)のうちどのドメインもDSOドメインコヒーレンス状態206でコヒーレンス粒度112(0)をキャッシュしていないと決定することを含む(ブロック1006)。
【0047】
いくつかの実施形態では、複数のドメイン106(0)-106(D)のうちどのドメインもDSOドメインコヒーレンス状態206でコヒーレンス粒度112(0)をキャッシュしていないと決定するためのブロック1006の動作は、LOP122(0)が、複数のPE102(0)-102(P)、104(0)-104(P)のうち第2のPE102(P)によって送信されたコヒーレンス粒度112(0)への読み取りアクセスの要求404に応じて送信された1つ以上のスヌープ応答412、418を観察したことに基づいてもよい。いくつかの実施形態は、SOP124が要求404に応じて送信された1つ以上のスヌープ応答412、418を観察し、1つ以上のスヌープ応答412、418に基づいて、複数のドメイン106(0)-106(D)のうちどのドメインも、DSOドメインコヒーレンス状態206でコヒーレンス粒度112(0)をキャッシュしていないと決定することを提供してもよい。次いで、SOP124は、指示428を第1のLOP122(0)に送信してもよく、第1のLOP122(0)はその決定を指示428に基づくものとしてもよい。
【0048】
図9Aのブロック904に関して上記に説明したように、次いで、第1のLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新する(ブロック1008)。
図10の例では、ドメインコヒーレンス状態インジケータ126(0)を更新するためのブロック1010の動作は、ドメインコヒーレンス状態インジケータ126(0)をDSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に更新することを含む(ブロック1010)。
【0049】
図11は、いくつかの実施形態に従って、DSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に遷移するための更なる例示的な動作を示すフローチャート1100を提供する。明確にするために、
図11の説明において
図1、2及び4A~4Cの要素が参照される。以下の
図11の説明は、
図1のLOP122(0)を「第1のLOP122(0)」として示し、
図1のドメイン106(0)を「第1のドメイン106(0)」として示し、
図1のPE102(P)を「第2のPE102(P)」として示す。
【0050】
図11において、動作は、第1のLOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)が第1のドメイン106(0)内でDSSドメインコヒーレンス状態204でキャッシュされていることを示すことで始まる(ブロック1102)。
図9Aのブロック902に関して上記に説明したように、第1のLOP122(0)は、コヒーレンス粒度112(0)が複数のドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定する(ブロック1104)。
図11の例では、コヒーレンス粒度112(0)がドメイン106(0)-106(D)のいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定するためのブロック1104の動作は、第1のLOP122(0)が、複数のドメイン106(0)-106(D)のうち少なくとも1つのドメインがDSNドメインコヒーレンス状態210でコヒーレンス粒度112(0)をキャッシュしていると決定することを含む(ブロック1106)。
【0051】
いくつかの実施形態によれば、複数のドメイン106(0)-106(D)のうち少なくとも1つのドメインがDSNドメインコヒーレンス状態210でコヒーレンス粒度112(0)をキャッシュすると決定するためのブロック1106の動作は、LOP122(0)が、複数のPE102(0)-102(P)、104(0)-104(P)のうち第2のPE102(P)によって送信されたコヒーレンス粒度112(0)への読み取りアクセスの要求404に応じて送信された1つ以上のスヌープ応答412、418を観察することに基づいてもよい。いくつかの実施形態では、SOP124は、要求404に応じて送信された1つ以上のスヌープ応答412、418を観察し、1つ以上のスヌープ応答412、418に基づいて、複数のドメイン106(0)-106(D)のうち少なくとも1つのドメインがDSNドメインコヒーレンス状態210でコヒーレンス粒度112(0)をキャッシュしていると決定してもよい。次いで、SOP124は、指示428を第1のLOP122(0)に送信してもよく、第1のLOP122(0)はその決定を指示428に基づくものとしてもよい。
【0052】
図9Aのブロック904に関して上記に説明したように、次いで、第1のLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新する(ブロック1108)。
図11の例では、ドメインコヒーレンス状態インジケータ126(0)を更新するためのブロック1110の動作は、ドメインコヒーレンス状態インジケータ126(0)をDSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に更新することを含む(ブロック1110)。
【0053】
いくつかの実施形態に従って、DSO_NOW_CLEANメッセージ504の受信に基づいて、DSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に遷移するための例示的な動作を示すために、
図12はフローチャート1200を提供する。明確にするために、
図12の説明において
図1、2及び5の要素が参照される。以下の
図12説明は、
図1のLOP122(0)を「第1のLOP122(0)」として示し、
図1のドメイン106(0)を「第1のドメイン106(0)」として示し、
図1のドメイン106(D)を「第3のドメイン106(D)」として示す。
【0054】
図12における動作は、第1のLOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)が第1のドメイン106(0)内でDSSドメインコヒーレンス状態204でキャッシュされていることを示すことで始まる(ブロック1202)。
図9Aのブロック902に関して上記に説明したように、第1のLOP122(0)は、コヒーレンス粒度112(0)が複数のドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定する(ブロック1204)。
図12の例では、コヒーレンス粒度112(0)がドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定するためのブロック1204の動作は、LOP122(0)が、複数のドメイン106(0)-106(D)のうち第3のドメイン106(D)から、第3のドメイン106(D)内でDSOドメインコヒーレンス状態206を有するコヒーレンス粒度112(0)がDSNドメインコヒーレンス状態210に遷移したことを示すDSO_NOW_CLEANメッセージ504を受信することを含む(ブロック1206)。いくつかの実施形態では、LOP122(0)は、第3のドメイン106(D)から直接DSO_NOW_CLEANメッセージ504を受信してもよいが、いくつかの実施形態は、LOP122(0)が、SOP124を介して第3のドメイン106(D)から間接的にDSO_NOW_CLEANメッセージ504を受信してもよい(例えば、第3のドメイン106(D)がDSO_NOW_CLEANメッセージ504をSOPに送信してもよく、次いで、SOP124はそれをLOP122(0)に転送する)ことを提供してもよい。
【0055】
図9Aのブロック904に関して上記に説明したように、第1のLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新する(ブロック1208)。
図12の例では、ドメインコヒーレンス状態インジケータ126(0)を更新するためのブロック1208の動作は、ドメインコヒーレンス状態インジケータ126(0)をDSSドメインコヒーレンス状態204からDSNドメインコヒーレンス状態210に更新することを含む(ブロック1210)。
【0056】
図13は、いくつかの実施形態に従って、DSOドメインコヒーレンス状態206からDSNドメインコヒーレンス状態210に遷移するための例示的な動作を示すフローチャート1300を提供する。明確にするために、
図13の説明において
図1、2及び6の要素が参照される。以下の
図13の説明は、
図1のLOP122(0)を「第1のLOP122(0)」として示し、
図1のキャッシュされたコピー120を「第1のキャッシュされたコピー120」として示し、
図1のドメイン106(0)を「第1のドメイン106(0)」として示す。
【0057】
図13において、動作は、第1のLOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)が第1のドメイン106(0)内でDSOドメインコヒーレンス状態206でキャッシュされていることを示すことで始まる(ブロック1302)。
図9Aのブロック902に関して上記に説明したように、第1のLOP122(0)は、コヒーレンス粒度112(0)が複数のドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定する(ブロック1304)。
図13の例では、コヒーレンス粒度112(0)がドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定するためのブロック1304の動作は、第1のLOP122(0)が第1のキャッシュされたコピー120をシステムメモリ108内のコヒーレンス粒度112(0)に書き込むことを含む(ブロック1308)。
【0058】
図9Aのブロック904に関して上記に説明したように、第1のLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新する(ブロック1308)。
図13の例では、ドメインコヒーレンス状態インジケータ126(0)を更新するためのブロック1308の動作は、ドメインコヒーレンス状態インジケータ126(0)をDSOドメインコヒーレンス状態206からDSNドメインコヒーレンス状態210に更新することを含む(ブロック1310)。いくつかの実施形態では、第1のLOP122(0)はまた、コヒーレンス粒度112(0)がDSNドメインコヒーレンス状態210に遷移したことを示すDSO_NOW_CLEANメッセージ606を、複数のLOP122(0)-122(L)のうち他のLOPに送信してもよい(ブロック1312)。DSO_NOW_CLEANメッセージ606を送信するためのブロック1312の動作は、第1のLOP122(0)がDSO_NOW_CLEANメッセージ606を他のLOPに直接送信することを含んでもよく、或いは、第1のLOP122(0)がDSO_NOW_CLEANメッセージ606をSOPに送信し、次に、SOP124がDSO_NOW_CLEANメッセージ606を複数のLOP122(0)-122(L)のうち他のLOPに送信することを含んでもよいことが理解されるべきである。いくつかの実施形態では、SOP124が、第1のLOP122(0)がシステムメモリ108へのコヒーレンス粒度112(0)をクリーニングすること(すなわち、コヒーレンス粒度112(0)の第1のLOP122(0)のコピーに格納されたデータでシステムメモリ108を更新したが、第1のLOP122(0)がコヒーレンス粒度112(0)のそのコピーを保持すること)を観察したことに応じて、SOP124は、DSO_NOW_CLEANメッセージ606を複数のLOP122(0)-122(L)のうち他のLOPに送信してもよい。
【0059】
いくつかの実施形態に従って、DSEドメインコヒーレンス状態202からDSNドメインコヒーレンス状態210に遷移するための例示的な動作を示すために、
図14はフローチャート1400を提供する。明確にするために、
図14の説明において
図1、2及び7の要素が参照される。以下の
図14説明は、
図1のLOP122(0)を「第1のLOP122(0)」として示し、
図1のドメイン106(0)を「第1のドメイン106(0)」として示し、
図1のPE102(0)を「第1のPE102(0)」として示し、
図1のドメイン106(D)を「第3のドメイン106(D)」として示す。
【0060】
図14における動作は、第1のLOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)が第1のドメイン106(0)内でDSEドメインコヒーレンス状態202でキャッシュされていることを示すことで始まる(ブロック1402)。
図9Aのブロック902に関して上記に説明したように、第1のLOP122(0)は、コヒーレンス粒度112(0)が複数のドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定する(ブロック1404)。
図14の例では、コヒーレンス粒度112(0)がドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定するためのブロック1404の動作は、第1のLOP122(0)が、第1のPE102(0)がコヒーレンス粒度112(0)の未修正のコピーを保持し、コヒーレンス粒度112(0)の共有コピー704を複数のドメイン106(0)-106(D)のうち第3のドメイン106(D)に提供したと決定することを含む(ブロック1406)。
【0061】
図9Aのブロック904に関して上記に説明したように、第1のLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新する(ブロック1408)。
図14の例では、ドメインコヒーレンス状態インジケータ126(0)を更新するためのブロック1408の動作は、ドメインコヒーレンス状態インジケータ126(0)をDSEドメインコヒーレンス状態202からDSNドメインコヒーレンス状態210に更新することを含む(ブロック1410)。
【0062】
図15は、いくつかの実施形態に従って、DSIドメインコヒーレンス状態208からDSNドメインコヒーレンス状態210に遷移するための例示的な動作を示すフローチャート1500を提供する。明確にするために、
図15の説明において
図1、2及び8の要素が参照される。以下の
図15説明は、
図1のLOP122(0)を「第1のLOP122(0)」として示し、
図1のPE102(0)を「第1のPE102(0)」として示す。
【0063】
いくつかの実施形態では、
図15における動作は、第1のLOP122(0)がコヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新して、コヒーレンス粒度112(0)が第1のドメイン106(0)内でDSIドメインコヒーレンス状態208を有することを示すことで始まる(ブロック1502)。
図9Aのブロック902に関して上記に説明したように、第1のLOP122(0)は、コヒーレンス粒度112(0)が複数のドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないと決定する(ブロック1504)。
図15の例では、コヒーレンス粒度112(0)がドメイン106(0)-106(D)のうちいずれのドメイン内でもOキャッシュコヒーレンス状態でキャッシュされていないことを決定するためのブロック1504の動作は、第1のLOP122(0)が、第1のPE102(0)によるコヒーレンス粒度112(0)の要求804に応じて、複数のドメイン106(0)-106(D)のうちどのドメインもコヒーレンス粒度112(0)の修正コピーをキャッシュしていないと決定することを含む(ブロック1506)。
【0064】
図9Aのブロック904に関して上記に説明したように、次いで、第1のLOP122(0)は、コヒーレンス粒度112(0)のドメインコヒーレンス状態インジケータ126(0)を更新する(ブロック1508)。
図15の例では、ドメインコヒーレンス状態インジケータ126(0)を更新するためのブロック1308の動作は、ドメインコヒーレンス状態インジケータ126(0)をDSIドメインコヒーレンス状態208からDSNドメインコヒーレンス状態210に更新することを含む(ブロック1510)。
【0065】
図16は、DSNドメインコヒーレンス状態を含むドメインコヒーレンス状態を維持する、
図1のプロセッサベースのデバイス100のような、例示的なプロセッサベースのデバイス1600のブロック図である。プロセッサベースのデバイス1600は、プリント回路基板(PCB, printed circuit board)、サーバ、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント(PDA, personal digital assistant)、コンピューティングパッド、モバイルデバイス、又は他のいずれかのデバイスのような電子ボードカードに含まれる回路でもよく、例えば、サーバ又はユーザのコンピュータを表してもよい。この例では、プロセッサベースのデバイス1600はプロセッサ1602を含む。プロセッサ1602は、マイクロプロセッサ、中央処理装置等のような1つ以上の汎用処理回路を表し、
図1のPE102(0)-102(P)に対応してもよい。プロセッサ1602は、ここに記載の動作及びステップを実行するための命令における処理ロジックを実行するように構成される。この例では、プロセッサ1602は、命令の一時的な高速アクセスメモリ記憶のための命令キャッシュ1604と、命令処理回路1610とを含む。システムバス1606上でシステムメモリ1608のようなメモリからフェッチ又はプリフェッチされた命令は、命令キャッシュ1604に格納される。命令処理回路1610は、命令キャッシュ1604にフェッチされた命令を処理し、実行のために命令を処理するように構成される。
【0066】
プロセッサ1602及びシステムメモリ1608はシステムバス1606に結合され、プロセッサベースのデバイス1600に含まれる周辺デバイスを相互に結合できる。周知のように、プロセッサ1602はシステムバス1606上でアドレス、制御及びデータ情報を交換することによって、これらの他のデバイスと通信する。例えば、プロセッサ1602は、周辺デバイスの例として、システムメモリ1608内のメモリコントローラ1612にバストランザクション要求を通信できる。
図16に図示しないが、各システムバスが異なるファブリックを構成する複数のシステムバス1606が提供されてもよい。この例では、メモリコントローラ1612は、メモリアクセス要求をシステムメモリ1608内のメモリアレイ1614に提供するように構成される。メモリアレイ1614は、データを格納するためのストレージビットセルの配列で構成される。システムメモリ1608は、非限定的な例として、読み取り専用メモリ(ROM, read-only memory)、フラッシュメモリ、シンクロナスDRAM(SDRAM, synchronous DRAM)等のようなダイナミックランダムアクセスメモリ(DRAM, dynamic random access memory)、及びスタティックメモリ(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM, static random access memory)等)でもよい。
【0067】
他のデバイスはシステムバス1606に接続できる。
図16に示すように、これらのデバイスには、例として、システムメモリ1608、1つ以上の入力デバイス1616、1つ以上の出力デバイス1618、モデム1624及び1つ以上のディスプレイコントローラ1620を含むことができる。入力デバイス1616は、入力キー、スイッチ、音声プロセッサ等を含むがこれに限定されないいずれかのタイプの入力デバイスを含むことができる。出力デバイス1618は、オーディオ、ビデオ、他のビジュアルインジケータ等を含むがこれに限定されないいずれかのタイプの出力デバイスを含むことができる。モデム1624は、ネットワーク1626との間でデータの交換を可能にするように構成されたいずれかのデバイスとすることができる。ネットワーク1626は、有線又は無線ネットワーク、プライベート又はパブリックネットワーク、ローカルエリアネットワーク(LAN, local area network)、無線ローカルエリアネットワーク(WLAN, wireless local area network)、広域ネットワーク(WAN, wide area network)、BLUETOOTHネットワーク及びインターネットを含むがこれに限定されないいずれかのタイプのネットワークとすることができる。モデム1624は、必要ないずれかのタイプの通信プロトコルをサポートするように構成できる。プロセッサ1602はまた、システムバス1606上でディスプレイコントローラ1620にアクセスし、1つ以上のディスプレイ1622に送信される情報を制御するように構成されてもよい。ディスプレイ1622は、陰極線管(CRT, cathode ray tube)、液晶ディスプレイ(LCD, liquid crystal display)、プラズマディスプレイ等を含むがこれに限定されないいずれかのタイプのディスプレイを含むことができる。
【0068】
図16におけるプロセッサベースのデバイス1600は、命令に従って望まれるいずれかのアプリケーションのためにプロセッサ1602によって実行される命令のセット1628を含んでもよい。命令1628は、非一時的なコンピュータ読み取り可能媒体1630の例として、システムメモリ1608、プロセッサ1602及び/又は命令キャッシュ1604に格納されてもよい。命令1628はまた、その実行中に、完全に或いは少なくとも部分的に、システムメモリ1608内及び/又はプロセッサ1602内に存在してもよい。命令1628は、ネットワーク1626がコンピュータ読み取り可能媒体1630を含むように、モデム1624を介してネットワーク1626上で更に送信又は受信されてもよい。
【0069】
コンピュータ読み取り可能媒体1630は、例示的な実施形態において単一の媒体であるように示されているが、「コンピュータ読み取り可能媒体」という用語は、1つ以上の命令のセット1628を格納する単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュ及びサーバ)を含むように考えられるべきである。「コンピュータ読み取り可能媒体」という用語はまた、処理デバイスによる実行のための命令のセットを格納、符号化又は搬送でき、処理デバイスに対してここに開示される実施形態の方法論のうちいずれか1つ以上を実行させるいずれかの媒体を含むように考えられるものとする。したがって、「コンピュータ読み取り可能媒体」という用語は、固体メモリ、光学媒体及び磁気媒体を含むように考えられるものとするが、これらに限定されない。
【0070】
ここに開示される実施形態は、様々なステップを含む。ここに開示される実施形態のステップは、ハードウェアコンポーネントによって形成されてもよく、或いは、機械実行可能命令に具現化されてもよく、機械実行可能命令は、命令でプログラムされた汎用又は特殊目的のプロセッサにステップを実行させるために使用されてもよい。或いは、ステップは、ハードウェアとソフトウェアプロセスとの組み合わせによって実行されてもよい。
【0071】
ここに開示される実施形態は、コンピュータプログラム製品又はソフトウェアプロセスとして提供されてもよく、これは、命令を格納した機械読み取り可能媒体(又はコンピュータ読み取り可能媒体)を有してもよく、命令は、ここに開示される実施形態に従ってプロセスを実行するようにコンピュータシステム(又は他の電子デバイス)をプログラムするために使用されてもよい。機械読み取り可能媒体は、機械(例えばコンピュータ)によって読み取り可能な形式で情報を格納又は送信するためのいずれかのメカニズムを含む。例えば、機械読み取り可能媒体は、機械読み取り可能記憶媒体(例えば、ROM、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス等)等を含む。
【0072】
特に言及しない限り、上記の議論から明らかなように、説明を通じて、「処理」、「計算」、「決定」、「表示」等のような用語を利用した議論は、コンピュータシステムのレジスタ内の物理(電子)量として表されるデータ及びメモリを、コンピュータシステムのメモリ若しくはレジスタ又は他のこのような情報記憶、伝送又は表示デバイス内の物理量として同様に表される他のデータに操作して変換する、コンピュータシステム又は同様の電子計算デバイスの動作及びプロセスを示すことが認識される。
【0073】
ここに提示されるアルゴリズム及び表示は、本質的に特定のコンピュータ又は他の装置には関連しない。ここでの教示に従って、様々なシステムがプログラムと共に使用されてもよく、或いは、必要な方法のステップを実行するためのより専門的な装置を構築するのに便利であることが証明されてもよい。これらの様々なシステムにとって必要な構造は、上記の説明から明らかになる。さらに、ここで説明する実施形態は、特定のプログラミング言語を参照して記載されていない。ここで説明する実施形態の教示を実現するために、様々なプログラミング言語が使用されてもよいことが認識される。
【0074】
当業者は、ここに開示される実施形態に関連して記載される様々な例示的な論理ブロック、モジュール、回路及びアルゴリズムが、電子ハードウェア、メモリ若しくは他のコンピュータ読み取り可能媒体に格納されてプロセッサ又は他の処理デバイスによって実行される命令、又はこれらの双方の組み合わせとして実装されてもよいことを更に認識する。ここに記載される分散アンテナシステムのコンポーネントは、例として、いずれかの回路、ハードウェアコンポーネント、集積回路(IC, integrated circuit)又はICチップにおいて使用されてもよい。ここに開示されるメモリは、いずれかのタイプ及びサイズのメモリであり、いずれかのタイプの必要な情報を格納するように構成されてもよい。この互換性を明確に説明するために、様々な例示的コンポーネント、ブロック、モジュール、回路及びステップが、これらの機能に関して一般的に上記に記載されている。このような機能がどのように実装されるかは、特定の用途、設計上の選択、及び/又は全体のシステムに課される設計上の制約に依存する。当業者は、特定の用途毎に様々な方法で記載の機能を実装し得るが、このような実装の決定は、本実施形態の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
【0075】
ここに開示される実施形態に関連して記載される様々な例示的な論理ブロック、モジュール及び回路は、プロセッサ、デジタルシグナルプロセッサ(DSP, Digital Signal Processor)、特定用途向け集積回路(ASIC, Application Specific Integrated Circuit)、フィールドプログラマブルゲートアレイ(FPGA, Field Programmable Gate Array)若しくは他のプログラマブルロジックデバイス、ディスクリートゲート若しくはトランジスタロジック、ディスクリートハードウェアコンポーネント、又はここに記載の機能を実行するように設計されたこれらのいずれかの組み合わせで実装又は実行されてもよい。さらに、コントローラはプロセッサでもよい。プロセッサはマイクロプロセッサでもよいが他の方法では、プロセッサはいずれかの従来のプロセッサ、コントローラ、マイクロコントローラ又は状態マシンでもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ(例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと組み合わせた1つ以上のマイクロプロセッサ、又はいずれかの他のこのような構成)として実装されてもよい。
【0076】
ここに開示される実施形態は、ハードウェア及びハードウェアに格納された命令で具体化されてもよく、例えば、RAM、フラッシュメモリ、ROM、電気的プログラム可能ROM(EPROM, Electrically Programmable ROM)、電気的消去可能プログラム可能ROM(EEPROM, Electrically Erasable Programmable ROM)、レジスタ、ハードディスク、取り外し可能ディスク、CD-ROM、又は当技術分野で既知のいずれかの他の形式のコンピュータ読み取り可能媒体に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り且つ情報を記憶媒体に書き込むことができるようにプロセッサに結合される。他の方法として、記憶媒体はプロセッサと一体的でもよい。プロセッサ及び記憶媒体はASICに存在してもよい。ASICはリモートステーションに存在してもよい。他の方法として、プロセッサ及び記憶媒体は、リモートステーション、基地局又はサーバにおいてディスクリートコンポーネントとして存在してもよい。
【0077】
また、ここでの例示的な実施形態のいずれかに記載の動作ステップは、例及び説明を提供するために記載されている点に留意すべきである。記載の動作は、図示の順序以外に多数の異なる順序で実行されてもよい。さらに、1つの動作ステップに記載の動作は、実際には複数の異なるステップで実行されてもよい。さらに、例示的な実施形態に記載の1つ以上の動作ステップは組み合わされてもよい。当業者はまた、情報及び信号が様々な技術及び技法のいずれかを使用して表されてもよいことを理解する。例えば、上記の説明を通じて参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル及びチップは、電圧、電流、電磁波、磁場若しくは粒子、光学場若しくは粒子又はこれらのいずれかの組み合わせによって表現されてもよい。
【0078】
特に明示的に言及されない限り、ここに記載のいずれの方法も、そのステップが特定の順序で実行されることを要求するものとして解釈されることを決して意図したものではない。したがって、或る方法のクレームが、そのステップが従うべき順序を実際に記載していない場合、又は、ステップが特定の順序に限定されることが特許請求の範囲又は詳細な説明に特に記載されていない場合、如何なる特定の順序も推論されることを意図するものではない。
【0079】
本発明の真意又は範囲から逸脱することなく、様々な修正及び変更が行われることができることは、当業者には明らかである。本発明の真意及び趣旨を組み込んだ開示の実施形態の修正、組み合わせ、サブコンビネーション及び変更は当業者にも思い付く可能性があるので、本発明は、添付の特許請求の範囲及びこれらの同等物の範囲内の全てを含むように解釈されるべきである。
【国際調査報告】