(57)【要約】【課題】改良されたキャッシュ整合データ処理システム、キャッシュ・システム、およびキャッシュ整合データ処理システムにおけるデータ処理の方法を提供する。【解決手段】キャッシュ整合データ処理システムは、少なくとも第１および第２の整合ドメインを含む。データ処理システムの第１の整合ドメイン内の第１のキャッシュ・メモリ内において、アドレス・タグおよび整合状態フィールドに関連した記憶位置にメモリ・ブロックが保持される。メモリ・ブロックに関連したアドレスが割り当てられたホーム・システム・メモリが第１の整合ドメイン内にあるかどうかが判断される。もしなければ、整合状態フィールドは、アドレス・タグは有効であることと、記憶位置は有効なデータを含まないことと、第１の整合ドメインはホーム・システム・メモリを含まないことと、状態の形成に従ってメモリ・ブロックが第１の整合ドメインの外部にキャッシュされることとを示す整合状態に設定される。【選択図】図１
2007193784.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１および第２の整合ドメインを含むキャッシュ整合データ処理システムにおけるデータ処理の方法であって、
前記データ処理システムの前記第１の整合ドメイン内の第１のキャッシュ・メモリ内において、アドレス・タグおよび整合状態フィールドに関連した記憶位置にメモリ・ブロックを保持するステップと、
前記メモリ・ブロックに関連したアドレスが割り当てられたホーム・システム・メモリが前記第１の整合ドメイン内にあるかどうかを判断するステップと、
前記ホーム・システム・メモリが前記第１の整合ドメイン内にない場合には、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第１の整合ドメインは前記ホーム・システム・メモリを含まないことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第１の整合ドメインの外部にキャッシュされることとを示す整合状態に前記整合状態フィールドを設定するステップと
を含む、方法。
【請求項２】
前記設定ステップは、前記データ処理システムの前記第２の整合ドメイン内の第２のキャッシュ・メモリによる排他的アクセス要求に応じて、前記整合状態フィールドを前記整合状態に設定するステップを含む、請求項１に記載の方法。
【請求項３】
前記排他的アクセス要求は、修正目的の読み出し（ＲＷＩＴＭ）動作を含み、
前記方法は、前記第１のキャッシュ・メモリが、前記ＲＷＩＴＭ動作に応じて、前記第２の整合ドメイン内の前記第２のキャッシュ・メモリに前記メモリ・ブロックを提供するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記設定ステップは、前記メモリ・ブロックの前記ホーム・システム・メモリへ前記メモリ・ブロックを最初にキャストアウトせずに、前記整合状態フィールドを前記整合状態に設定するステップを含む、請求項２に記載の方法。
【請求項５】
前記整合状態は、第１の整合状態を含み、前記設定ステップは、前記メモリ・ブロックが有効であることと、前記ホーム・システム・メモリ内の対応メモリ・ブロックに対して修正されることとを示す第２の整合状態から、前記整合状態フィールドを前記第１の整合状態に更新するステップを含む、請求項２に記載の方法。
【請求項６】
前記整合状態は、第１の整合状態を含み、前記方法は、
前記ホーム・システム・メモリが前記第１の整合ドメイン内にあると判断することに応じて、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第１の整合ドメインは前記ホーム・システム・メモリを含むことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第１の整合ドメインの外部にキャッシュされることとを示す第２の整合状態に前記整合状態フィールドを設定するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記第１のキャッシュ・メモリが、前記整合状態を参照して、前記第２の整合ドメインを含む同報通信送信の範囲を予測するステップと、
前記第１のキャッシュ・メモリが、前記予測された範囲の同報通信動作を生じさせるステップとをさらに含む、請求項１に記載の方法。
【請求項８】
前記第１のキャッシュ・メモリが、キャストアウト動作を行わずに、前記アドレス・タグを含むエントリを解除する、請求項１に記載の方法。
【請求項９】
少なくとも１つの処理部をそれぞれ含む少なくとも第１および第２の整合ドメインを含むキャッシュ整合データ処理システムのためのキャッシュ・メモリであって、前記第１の整合ドメインは、前記キャッシュ・メモリを含み、前記第２の整合ドメインは、他の整合キャッシュ・メモリを含み、前記キャッシュ・メモリは、
キャッシュ・コントローラと、
メモリ・ブロックをキャッシュするためのキャッシュ・アレイと、
キャッシュ・ディレクトリとを含み、前記キャッシュ・ディレクトリは、
前記メモリ・ブロックに関連したアドレス・タグを記憶するためのタグ・フィールドと、
前記タグ・フィールドおよび前記キャッシュ・アレイに関連した整合状態フィールドとを含み、前記整合状態フィールドは、複数の予想整合状態を含み、前記複数の予想整合状態は、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第１の整合ドメインはホーム・システム・メモリを含まないことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第１の整合ドメインの外部にキャッシュされることとを示す整合状態を含む、キャッシュ・メモリ。
【請求項１０】
前記キャッシュ・コントローラは、前記データ処理システムの前記第２の整合ドメイン内の前記他のキャッシュ・メモリによる排他的アクセス要求と、前記ホーム・システム・メモリは前記第１の整合ドメイン内にないという示唆とに応じて、前記整合状態フィールドを前記整合状態に設定する、請求項９に記載のキャッシュ・メモリ。
【請求項１１】
前記排他的アクセス要求は、修正目的の読み出し（ＲＷＩＴＭ）動作を含み、
前記キャッシュ・メモリは、前記ＲＷＩＴＭ動作に応じて、前記第２の整合ドメイン内の前記他のキャッシュ・メモリに前記メモリ・ブロックを提供するステップをさらに含む、
請求項１０に記載のキャッシュ・メモリ。
【請求項１２】
前記キャッシュ・コントローラは、前記ホーム・システム・メモリへ前記メモリ・ブロックを最初にキャストアウトせずに、前記整合状態フィールドを前記整合状態に設定する、請求項１０に記載のキャッシュ・メモリ。
【請求項１３】
前記整合状態は、前記複数の予想整合状態のうちの第１の整合状態を含み、
前記複数の予想整合状態は、前記メモリ・ブロックが有効であることと、前記ホーム・システム・メモリ内の対応メモリ・ブロックに対して修正されることとを示す第２の整合状態を含み、
前記キャッシュ・コントローラは、前記整合状態フィールドを、前記第２の整合状態から前記第１の整合状態へ更新する請求項１０に記載のキャッシュ・メモリ。
【請求項１４】
前記整合状態は、第１の整合状態を含み、
前記複数の予想整合状態は、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第１の整合ドメインは前記ホーム・システム・メモリを含むことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第１の整合ドメインの外部にキャッシュされることとを示す第２の整合状態を含み、
前記キャッシュ・コントローラは、前記第１の整合ドメイン外部の要求者からの排他的アクセス動作の受信と、前記ホーム・システム・メモリは前記第１の整合ドメイン外部にあるという示唆とに応じて、前記整合状態フィールドを前記第２の整合状態に設定する、請求項９に記載のキャッシュ・メモリ。
【請求項１５】
前記第１のキャッシュ・メモリの前記キャッシュ・コントローラは、前記整合状態を参照して、前記第２の整合ドメインを含む同報通信送信の範囲を予測して、前記予測された範囲の同報通信動作を生じさせる、請求項９に記載のキャッシュ・メモリ。
【請求項１６】
前記第１のキャッシュ・メモリの前記キャッシュ・コントローラは、キャストアウト動作を行わずに、前記アドレス・タグを含むエントリを解除する、請求項９に記載のキャッシュ・メモリ。
【請求項１７】
少なくとも１つのプロセッサ・コアと、
請求項９に記載のキャッシュ・メモリとを備える、データ処理システム。
【請求項１８】
データ処理システムであって、
少なくとも１つの処理部をそれぞれ含む第１および第２の整合ドメインを有し、前記第１の整合ドメインは、第１のキャッシュ・メモリを含み、前記第２の整合ドメインは、第２の整合キャッシュ・メモリを含み、
前記データ処理システムの前記第１の整合ドメイン内の前記第１のキャッシュ・メモリは、アドレス・タグおよび整合状態フィールドに関連した記憶位置にメモリ・ブロックを保持し、
前記整合状態フィールドは、複数の予想整合状態を有し、前記複数の予想整合状態は、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第１の整合ドメインはホーム・システム・メモリを含まないことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第１の整合ドメインの外部にキャッシュされることとを示す整合状態を含む、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、データ処理に関し、特にキャッシュ整合性データ処理システムにおけるデータ処理に関する。
【背景技術】
【０００２】
サーバ・コンピュータ・システムのような従来の対称型マルチプロセッサ（ＳＭＰ）コンピュータ・システムは、システム相互接続にすべてが結合された複数の処理部を含み、システム相互接続は、典型的には、１つ以上のアドレスと、データと、制御バスとを含む。システム相互接続に結合されるのは、システム・メモリであって、システム・メモリは、マルチプロセッサ・コンピュータ・システムにおける揮発性メモリの最下位レベルを表し、全ての処理部による読み出しおよび書き込みアクセスに対してアクセス可能である。システム・メモリ内にある命令およびデータに対するアクセス待ち時間を削減するためには、各処理部は、典型的には、各マルチレベルのキャッシュ階層によってさらにサポートされ、その（複数の）より下位レベルは、１つ以上のプロセッサ・コアによって共有されてもよい。
【０００３】
複数のプロセッサ・コアはデータの同一のキャッシュ・ラインに対する書き込みアクセスを要求してもよいこと、および、修正されたキャッシュ・ラインはシステム・メモリに即座に同期しないことから、マルチプロセッサ・コンピュータ・システムのキャッシュ階層は、典型的には、キャッシュ整合プロトコルを実施して、システム・メモリの内容に対する様々なプロセッサ・コアの「見方（ｖｉｅｗｓ）」のうち、少なくとも整合性の最小レベルを確保する。特に、キャッシュ整合性は、処理部がメモリ・メモリブロックのコピーにアクセスした後にメモリ・ブロックの更新されたコピーをアクセスした後には、処理部はメモリ・ブロックの古いコピーには再びアクセスできないということを最低限要求する。
【０００４】
キャッシュ整合プロトコルは、典型的には、各キャッシュ階層のキャッシュ・ラインに関連して記憶された整合状態のセットを規定すると共に、キャッシュ階層間でキャッシュ状態情報を通信するために使用される整合性メッセージのセットを規定する。典型的な一実施において、整合状態情報は、周知のＭＥＳＩ（変更、排他、共有、無効（Ｍｏｄｉｆｉｅｄ，Ｅｘｃｌｕｓｉｖｖｅ，Ｓｈａｒｅｄ，Ｉｎｖａｌｉｄ））プロトコルまたはその変形の形態を取り、整合性メッセージは、メモリ・アクセス要求の要求者または受領者あるいはその両方のキャッシュ階層における、プロトコルが規定した整合状態遷移を示す。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
あるキャッシュ整合プロトコルにおいては、１つ以上の整合状態が、後続の動作に応じて、不明確に形成または更新あるいはその両方が生じることがある。その結果、これらの整合状態は、関連メモリ・ブロックのシステム全体に渡る整合状態を正確に反映するものではない場合がある。本発明は、不明確または不正確な整合状態の存在により、たとえ整合エラーを生じなくても、不明確な整合状態が減少または除去されれば必要ないようなシステム動作が行われることになりうることを認識している。
【課題を解決するための手段】
【０００６】
上記に鑑み、本発明は、改良されたキャッシュ整合データ処理システム、キャッシュ・システム、およびキャッシュ整合データ処理システムにおけるデータ処理の方法を提供する。
【０００７】
一実施形態において、キャッシュ整合データ処理システムは、少なくとも第１および第２の整合ドメインを含む。データ処理システムの第１の整合ドメイン内の第１のキャッシュ・メモリ内において、アドレス・タグおよび整合状態フィールドに関連した記憶位置にメモリ・ブロックが保持される。メモリ・ブロックに関連したアドレスが割り当てられたホーム・システム・メモリが第１の整合ドメイン内にあるかどうかが判断される。もしなければ、整合状態フィールドは、アドレス・タグは有効であることと、記憶位置は有効なデータを含まないことと、第１の整合ドメインはホーム・システム・メモリを含まないことと、状態の形成に従ってメモリ・ブロックが第１の整合ドメインの外部にキャッシュされることとを示す整合状態に設定される。
【０００８】
本発明の全ての目的、特徴、および利点は、以下の詳細な説明書面において明らかになるだろう。
【発明を実施するための最良の形態】
【０００９】
本発明の特徴的と思われる新規の特徴は、添付の請求項に記載されている。しかしながら、本発明および好ましい使用の形態は、例示の実施形態の以下の詳細な説明を参照して添付の図面と共に読む場合に、最もよく理解されるだろう。
【００１０】
Ｉ．データ処理システム例
図面を参照して、特に図１を参照すると、本発明に係るキャッシュ整合対称型マルチプロセッサ（ＳＭＰ）データ処理システムの実施形態例の高レベルのブロック図が示されている。図示のように、データ処理システム１００は、データおよび命令を処理するための複数の処理ノード１０２ａおよび１０２ｂを含む。処理ノード１０２ａおよび１０２ｂは、アドレス、データ、および制御情報を伝搬するためのシステム相互接続１１０に結合される。システム相互接続１１０は、例えば、バス相互接続、スイッチ相互接続、または混合相互接続として実施される。
【００１１】
図示の実施形態において、各処理ノード１０２は、４つの処理部１０４ａ〜１０４ｄを含むマルチチップ・モジュール（ＭＣＭ）として実現され、それぞれは、好ましくは各集積回路として実現される。各処理ノード１０２内の処理部１０４ａ〜１０４ｄは、ローカル相互接続１１４によって通信用に結合され、システム相互接続１１０と同様に、１つ以上のバスまたはスイッチあるいはその両方で実施されてもよい。
【００１２】
各ローカル相互接続１１４に結合された装置は、処理部１０４だけではなく、１つ以上のシステム・メモリ１０８ａ〜１０８ｄをも含む。システム・メモリ１０８ａ〜１０８ｄ内にあるデータおよび命令は、一般的に、データ処理システム１００の任意の処理ノード１０２における任意の処理部１０４内のプロセッサ・コアによってアクセスおよび修正が可能である。本発明の代替実施形態において、１つ以上のシステム・メモリ１０８は、ローカル相互接続１１４よりもシステム相互接続１１０に結合されることができる。
【００１３】
ＳＭＰデータ処理システムは、相互接続ブリッジ、不揮発ストレージ、ネットワークまたは付属装置との接続のためのポートなどの数多くの追加の図示しない要素を含みうることを、当業者は理解するだろう。そのような追加の要素は本発明の理解のためには必要ないので、図１には示されておらず、本明細書においてさらに説明されてもいない。しかしながら、本発明によって提供される拡張が様々なアーキテクチャのキャッシュ整合データ処理システムに適用可能あり、図１に示す一般的なデータ処理システム・アーキテクチャに限定されるものではないことが理解されるべきである。
【００１４】
図２を参照すると、本発明に係る処理部１０４の例のより詳細なブロック図が示されている。図示の実施形態において、各処理部１０４は、命令およびデータを独立して処理するための２つのプロセッサ・コア２００ａおよび２００ｂを含む。各プロセッサ・コア２００は、命令を取り出しおよび依頼して実行する命令シーケンシング部（ＩＳＵ）２０８と、命令を実行するための１つ以上の実行部２２４とを含む。以下に説明するように、実行部２２４は、好ましくは、メモリ・ブロックを参照するメモリ・アクセス命令を実行するためのロード‐記憶部（ＬＳＵ）２２８を含むか、メモリ・ブロックを参照する動作の生成を行う。
【００１５】
各プロセッサ・コア２００の動作は、マルチレベル揮発性メモリ階層によってサポートされ、当該階層は、その最下位レベルに共有システム・メモリ１０８ａ〜１０８ｄを有し、その上位レベルに１つ以上のレベルのキャッシュ・メモリを有する。図示の実施形態において、各処理部１０４は、集積メモリ・コントローラ（ＩＭＣ）２０６を含む。ＩＭＣ２０６は、プロセッサ・コア２００ａ〜２００ｄから受信した要求およびローカル相互接続１１４上でのスヌーパ（Ｓ）２２２によってスヌープされた動作に基づいて、処理ノード１０２内の各システム・メモリ１０８ａ〜１０８ｄに対する読み出しおよび書き込みアクセスを制御する。ＩＭＣ２０６は、ベース・アドレス・レジスタ（ＢＡＲ）論理２４０を含み、ＢＡＲ論理２４０は、ＩＭＣ２０６が担当するアドレス、および同一の処理ノード１０２内の他の（複数の）ＩＭＣ２０６が担当するアドレスの両方を規定する範囲レジスタを含む。
【００１６】
図示の実施形態において、処理部１０４のキャッシュ・メモリ階層は、各プロセッサ・コア２００内のストア‐スルー・レベル１（Ｌ１）キャッシュ２２６と、処理部１０４の全てのプロセッサ・コア２００ａおよび２００ｂによって共有されるレベル２（Ｌ２）キャッシュ２３０を含む。Ｌ２キャッシュ２３０は、Ｌ２アレイおよび２３４と、マスタ２３２およびスヌーパ２３６を備えるキャッシュ・コントローラとを含む。マスタ２３２は、ローカル相互接続１１４およびシステム相互接続１１０上のトランザクションを開始して、関連プロセッサ・コア２００ａおよび２００ｂから受信されたメモリ・アクセス（および他の）要求に応じて、Ｌ２アレイおよびディレクトリにアクセスする。スヌーパ２３６は、ローカル相互接続１１４に対する動作をスヌープし、適切な応答を提供し、動作に必要とされるＬ２アレイおよびディレクトリ２３４に対していずれかのアクセスを行う。スヌーパ２３６は、ＢＡＲ論理２４０のように、ローカル処理ノード１０２におけるＩＭＣ２０６が担当するアドレスを示すＢＡＲ論理２３８を含む。
【００１７】
図示のキャッシュ階層は、２つのレベルのキャッシュしか含んでいないが、代替実施形態は、オンチップ、オフチップ、インライン、またはルックアサイド・キャッシュの追加のレベル（Ｌ３，Ｌ４，Ｌ５など）を含んでもよく、これらは、上位レベルのキャッシュの内容を完全に包含、部分的に包含、または非包含であってもよいことを当業者は理解するだろう。
【００１８】
各処理部１０４は、応答論理２１０をさらに含み、応答論理２１０は、データ処理システム１００内のキャッシュ整合性を保持する分散整合性シグナリング機構の一部を実施する。加えて、各処理部１０４は、ローカル接続論理１１４とシステム接続論理１１０との間の通信を選択的に促進するための相互接続論理２１２のインスタンスを含む。最後に、各処理部１０４は、Ｉ／Ｏ装置２１６などの１つ以上のＩ／Ｏ装置の付属をサポートする統合Ｉ／Ｏ（入出力）コントローラ２１４を含む。Ｉ／Ｏコントローラ２１４は、Ｉ／Ｏ装置２１６による要求に応じて、ローカル接続論理１１４およびシステム接続論理１１０上の動作を発してもよい。
【００１９】
図３を参照すると、Ｌ２アレイおよびディレクトリ２３４の一実施形態例のより詳細なブロック図が示されている。図示のように、Ｌ２アレイおよびディレクトリ２３４は、セット・アソシアティブＬ２キャッシュ・アレイ３００と、Ｌ２キャッシュ・アレイ３００の内容のＬ２キャッシュ・ディレクトリ３０２とを含む。従来のセット・アソシアティブ・キャッシュと同様に、システム・メモリ１０８内のメモリ位置は、システム・メモリ（実）アドレス内の所定のインデックス・ビットを使用して、キャッシュ・アレイ３００内の特定の合同のクラスにマッピングされる。キャッシュ・アレイ３００内に記憶された特定のキャッシュ・ラインは、キャッシュ・ディレクトリ３０２に記録され、キャッシュ・ディレクトリ３０２は、キャッシュ・アレイ３００内の各キャッシュ・ラインにつき１つのディレクトリ・エントリを含む。当業者が理解するように、キャッシュ・ディレクトリ３０２内の各ディレクトリ・エントリは、少なくとも、対応実アドレスのタグ部分を使用してキャッシュ・アレイ３００内に記憶された特定のキャッシュ・ラインを特定するタグ・フィールド３０４と、キャッシュ・ラインの整合状態を示す状態フィールド３０６と、同一の合同のクラスにおける他のキャッシュ・ラインに関するキャッシュ・ラインの交換順序を示すＬＲＵ（最長時間未使用）フィールド３０８とを備える。
【００２０】
ＩＩ．動作例
図４を参照すると、図１のデータ処理システム１００のローカルまたはシステム相互接続１１０および１１４上の動作例の時空間図が示されている。動作は、Ｌ２キャッシュ２３０のマスタ２３２（またはＩ／Ｏコントローラ２１４などの他のマスタ）がローカル相互接続１１４またはシステム相互接続１１０あるいはその両方の上に要求４０２を発すると開始する。要求４０２は、好ましくは、所望のアクセスの種類および要求によってアクセスされるべきリソースを示すリソース識別子（例えば、実アドレス）を含む。通常の種類の要求は、好ましくは、以下の表１に示すものを含む。
【００２１】
【表１】
2007193784.tif 000003
【００２２】
要求４０２は、Ｌ２キャッシュ２３０のスヌーパ２３６、およびメモリ・コントローラ２０６（図１）のスヌーパ２２２によって受信される。一般的に、例外はあるが、要求４０２のマスタ２３２と同一のＬ２キャッシュ２３０内のスヌーパ２３６は、要求４０２をスヌープしない（すなわち、一般的に自動スヌーピングでない）。なぜならば、要求４０２がローカル相互接続１１４またはシステム相互接続１１０あるいはその両方の上を送信されるのは、要求４０２が処理部１０４によって内部的に対応できない場合のみだからである。要求４０２を受信する各スヌーパ２２２および２３６は、要求４０２に対する少なくとも当該スヌーパの応答を表す各部分応答４０６を提供してもよい。メモリ・コントローラ２０６内のスヌーパ２２２は、例えば、スヌーパ２２２は要求アドレスを担当しているかどうか、および要求に対応するのに利用可能なリソースを有しているかどうかに基づいて、提供する部分応答４０６を判断する。Ｌ２キャッシュ２３０のスヌーパ２３６は、例えば、Ｌ２キャッシュ・ディレクトリ３０２の利用可能性、要求を処理するためのスヌーパ２３６内のスヌープ論理インスタンスの利用可能性、およびＬ２キャッシュ・ディレクトリ３０２内の要求アドレスに関連した整合状態に基づいて、部分応答４０６を判断してもよい。
【００２３】
スヌーパ２２２および２３６の部分応答は、応答論理２１０の１つ以上のインスタンスによって段階的または一度に論理的に結合されて、要求４０２に対するシステム全般の結合応答（ＣＲ）４１０を決定する。以下に説明する範囲の限定によって、応答論理２１０は、結合応答４１０をマスタ２３２およびスヌーパ２２２および２３６へローカル相互接続１１４またはシステム相互接続１１０あるいはその両方を介して提供して、要求４０２に対するシステム全般の応答（例えば、成功、失敗、再試行など）を示す。ＣＲ４１０が要求４０２の成功を示す場合、ＣＲ４１０は、例えば、要求されたメモリ・ブロックに対するデータ・ソースと、要求されたメモリ・ブロックがマスタ２３２によってキャッシュされるというキャッシュ状態と、１つ以上のＬ２キャッシュ２３０において要求されたメモリ・ブロックを無効化する「クリーンアップ」（例えば、ＫＩＬＬ）動作が必要かどうかとを示してもよい。
【００２４】
結合応答４１０の受信に応じて、１つ以上のマスタ２３２およびスヌーパ２２２および２３６は、典型的には、要求４０２に対応するために、１つ以上の動作を行う。これらの動作は、データをマスタ２３２へ供給すること、１つ以上のＬ２キャッシュ２３０にキャッシュされたデータの整合状態を無効化するかまたはそうでなければ更新すること、キャストアウト動作を行うこと、システム・メモリ１０８にデータを書き戻すことなどを含んでもよい。要求４０２によって必要であれば、応答論理２１０による結合応答４１０の生成前または後に、要求されたまたは対象のメモリ・ブロックは、マスタ２３２へ、またはそこから送信されてもよい。
【００２５】
以下の説明において、要求に対するスヌーパ２２２および２３６の部分応答と、要求またはその結合応答あるいはその両方に応じてスヌーパによって行われる動作とについて、要求によって指定された要求アドレスに対してスヌーパが最高整合点（ＨＰＣ）、最低整合点（ＬＰＣ）またはそのどちらでもないのいずれかであるかを参照して説明する。ＬＰＣは、本明細書において、メモリ・ブロックのレポジトリについての制御点として機能するメモリ装置またはＩ／Ｏ装置として定義される。メモリ・ブロック内にＨＰＣが存在しない場合には、ＬＰＣがメモリ・ブロックの真像を保持するストレージに対するアクセスを制御し、メモリ・ブロックの追加のキャッシュされたコピーを生成するための要求を承諾または拒否する権限を有する。図１および図２のデータ処理システムの実施形態における典型的な要求の場合、ＬＰＣは、参照されたメモリ・ブロックを保持するシステム・メモリ１０８についてのメモリ・コントローラ２０６である。ＨＰＣは、本明細書において、メモリ・ブロックの真像をキャッシュする固有に識別された装置（ＬＰＣにおける対応メモリ・ブロックと一致する場合もあるし、そうでない場合もある）として定義され、メモリ・ブロックを修正するための要求を承諾または拒否する権限を有する。記述的には、ＨＰＣは、メモリ・ブロックを修正しない動作に応じて、要求者に対してメモリ・ブロックのコピーを提供してもよい。よって、図１および図２のデータ処理システムの実施形態における典型的な要求の場合、ＨＰＣがもしあるとするならば、Ｌ２キャッシュ２３０ということになろう。メモリ・ブロックに関するＨＰＣを指定するために使用される他のインジケータを使用してもよいが、本発明の好ましい一実施形態は、表２を参照して以下に説明するように、Ｌ２キャッシュ２３０のＬ２キャッシュ・ディレクトリ３０２ないの選択された（複数の）キャッシュ整合状態を使用するメモリ・ブロックに対するＨＰＣをもしあれば指定する。
【００２６】
図４をさらに参照して、要求４０２内で参照されるメモリ・ブロックに対してもしあればＨＰＣ、またはＨＰＣがない場合には、メモリ・ブロックのＬＰＣは、好ましくは、保護ウィンドウ４０４ａの間に要求４０２に応じてメモリ・ブロックの所有権が移転することを防止する役割を有する。図４に示す例の場合において、要求４０２の要求アドレスによって指定されたメモリ・ブロックについてのＨＰＣであるスヌーパ２３６は、スヌーパ２３６がその部分応答４０６を決定するときから、スヌーパ２３６が結合応答４１０を受信するまでに渡る保護ウィンドウ４０４ａの間に要求されたメモリ・ブロックの所有権がマスタ２３２へ移転することを防止する。保護ウィンドウ４０４ａの間、スヌーパ２３６は、同一のアドレスを指定する他の要求に対して、所有権がマスタ２３２へうまく転送されるまで、他のマスタが所有権を取得するのを防止する部分応答４０６を提供することによって、所有権の移転を防止する。マスタ２３２は、同様に、結合要求４１０の受信に続く要求４０２で要求されたメモリ・ブロックの所有権を保護するための保護ウィンドウ４０４ｂを開始する。
【００２７】
スヌーパ２２２および２３６は全て、上述のＣＰＵおよびＩ／Ｏ要求を処理するためのリソースが限られているので、互いに異なるレベルの部分応答および対応ＣＲが可能である。例えば、要求されたメモリ・ブロックを担当するメモリ・コントローラ２０６内のスヌーパ２２２が要求を処理可能なキューを有する場合には、スヌーパ２２２は、当該要求に対するＬＰＣとしての機能を果たすことができることを示す部分応答で応答してもよい。一方、スヌーパ２２２が、要求を処理可能なキューを有しない場合には、スヌーパ２２２は、メモリ・ブロックに対するＬＰＣであるが、現在要求に対応することはできないことを示す部分応答で応答してもよい。
【００２８】
同様に、Ｌ２キャッシュ２３０内のスヌーパ２３６は、要求を処理するために、スヌープ論理の利用可能なインスタンスと、Ｌ２キャッシュ・ディレクトリ３０２に対するアクセスとを要求してもよい。これらのリソースのいずれか（または両方）に対するアクセスがない場合は、必要なリソースがないことにより、要求に対応することが現在できないことを信号で知らせる部分応答（および対応ＣＲ）という結果となる。
【００２９】
以後、要求に現在対応するのに必要な全ての内部リソースをスヌーパが利用可能にしていることを示す部分応答を提供するスヌーパ２２２および２３６は、必要があれば、要求を「肯定（ａｆｆｉｒｍ）」しているといえる。スヌーパ２３６については、スヌープされた処理を認める部分応答は、好ましくは、当該スヌーパ２３６における要求されたか、または対象であるメモリ・ブロックのキャッシュ状態を示す。要求に現在対応するのに必要な全ての内部リソースをスヌーパ２３６が利用可能にしていないことを示す部分応答を提供する２２２および２３６は、要求に対応するのに「隠れている可能性（ｐｏｓｓｉｂｌｙ  ｈｉｄｄｅｎ）」または「不可能（ｕｎａｂｌｅ）」であるといえる。そのようなスヌーパ２３６は、要求に対応するのに「ｐｏｓｓｉｂｌｙ  ｈｉｄｄｅｎ」または「ｕｎａｂｌｅ」であるのは、スヌーパ２３６は、スヌープ論理の利用可能なインスタンスおよびＬ２キャッシュ・ディレクトリ３０２に対する現在のアクセスがないので、上述に定義した意味で要求を「ａｆｆｉｒｍ」できず、他のマスタ２３２およびスヌーパ２２２および２３６の観点からは、不明の整合状態を有するからである。
【００３０】
ＩＩＩ．データ配信ドメイン
従来の同報通信ベースのデータ処理システムは、キャッシュ整合性および同報通信を通じたデータ配信の両方を扱っており、従来のシステムにおいては、同報通信は、システム相互接続上で、少なくともシステムないの全てのメモリ・コントローラおよびキャッシュ階層へ送られる。代替アーキテクチャおよび同規模のシステムと比較すると、同報通信ベースのシステムは、少ないアクセス待ち時間、よりよいデータ処理、および共有メモリ・ブロックの整合性管理を提供する傾向がある。
【００３１】
同報通信ベースのシステムの大きさが拡大すると、システム相互接続上のトラフィック量が倍増する。これは、より多くの帯域がシステム相互接続上の通信に必要になるにつれて、システム拡大でシステムコストが急激に上昇することを意味する。すなわち、ｍ個のプロセッサ・コアを有し、それぞれがｎ個のトランザクションという平均トラフィック量を有するシステムは、ｍ×ｎというトラフィック量を有する。これは、同報通信ベースのシステムにおけるトラフィック量は、加法的ではなく、乗法的に拡大することを意味する。かなり大きな相互接続帯域幅の要求以上に、システム・サイズの増加は、アクセス待ち時間の増加という２次効果を有する。例えば、最悪の場合には、要求されたデータを提供できる共有整合状態で要求されたメモリ・ブロックを保持している最も離れた低レベルキャッシュの結合応答待ち時間によって、データ読み出しのアクセス待ち時間が限定される。
【００３２】
同報通信ベースのシステムの利点を維持しつつ、システム相互接続帯域幅の要請と、アクセス待ち時間を減らすためには、データ処理システム１００全体に分配された複数のＬ２キャッシュ２３０が、キャッシュからキャッシュへの介入を使用して、要求Ｌ２キャッシュ２３０に対してメモリ・ブロックをキャッシュが供給することができるようにする「特別な」共有整合状態で、同一のメモリ・ブロックを保持することを許可される。共有メモリ・ブロックについての複数の同時かつ分散されたソースをデータ処理システム１００などのＳＭＰデータ処理システムにおいて実施するためには、２つの問題に対処しなければならない。第１に、上記の「特別な」共有整合状態でメモリ・ブロックのコピーを作成することを制御する何らかの規則を実施しなければならない。第２に、例えば、バス読み出し動作またはバスＲＷＩＴＭ動作に応じて、もしあればどのスヌーピングＬ２キャッシュ２３０が共有メモリ・ブロックを要求Ｌ２キャッシュ２３０へ提供するかを制御する規則がなければならない。
【００３３】
本発明によれは、これらの問題は共に、データ提供ドメインを実施することによって対処される。特に、ＳＭＰデータ処理システム内の各ドメインは、データ要求に応じることに参加する１つ以上の低レベル（例えば、Ｌ２）キャッシュを含むと定義すると、「特別な」共有整合状態で特定のメモリ・ブロックに一度に保持する１つのキャッシュ階層のみを含むことが許容される。そのようなキャッシュ階層は、同一のドメイン内のより低レベルの要求キャッシュによってバス読み出し型（例えば、読み出しまたはＲＷＩＴＭ）動作が開始される場合に存在すれば、要求されたメモリ・ブロックをより低レベルの要求キャッシュへ提供する役割を担う。数多くの互いに異なるドメイン・サイズを定義してもよいが、図１のデータ処理システム１００において、各処理ノード１００２（すなわち、ＭＣＭ）がデータ提供ドメインを考慮すれば好都合である。そのような「特別な」共有状態（すなわち、Ｓｒ）の一例を、表２を参照して以下に説明する。
【００３４】
ＩＶ．整合ドメイン
上述のデータ配信ドメインの実施は、データ・アクセス待ち時間を改良するものの、この拡張は、システムの拡大が増加するにつれてトラフィック量がｍ×ｎで乗法的に増加することには対処していない。同報通信ベースの整合機構を維持しつつ、トラフィック量を削減するためには、本発明の好ましい実施形態は、整合ドメインを追加的に実施する。整合ドメインは、上述したデータ配送ドメインと同様に、各処理ノード１０２が別個の整合ドメインを形成することによって好都合に実施できる（しかし、実施する必要があるわけではない）。データ配送ドメインおよび整合ドメインは、同時に存在しうるが、同時に存在する必要性はない。以後、データ処理システム１００の動作例を説明する目的で、これらのドメインは、処理ノード１０２によって規定される境界線を有するものとする。
【００３５】
整合ドメインの実施は、全整合ドメインより少ない数のドメインによる関与によって要求が対応できる場合に、システム相互接続１１０に渡って内部ドメイン同報通信を制限することによって、システム・トラフィックを削減する。例えば、処理ノード１０２ａの処理部１０４ａが発するべきバス読み出し動作を有する場合、処理部１０４ａは、その自身の整合ドメイン内の全ての参加者に対して（例えば、処理ノード１０２ａ）、まず第１のバス読み出し動作を選択してもよいが、他の整合ドメインの参加者（例えば、処理ノード１０２ｂ）には選択しない。動作のマスタとして同一の整合ドメイン内のそのような参加者にのみ送られた同報通信動作は、本明細書において「ローカル動作」として定義される。ローカル・バス読み出し動作が処理部１０４ａの整合ドメイン内で対応できる場合には、さらなるバス読み出し動作の同報通信は行われない。しかしながら、バス読み出し動作は処理ノード１０２ａの整合ドメイン内だけでは対応できないということをローカル・バス読み出し動作に対する部分応答および結合応答が示す場合には、同報通信の範囲を拡大して、ローカル整合ドメインに加えて、１つ以上の追加の整合ドメインを含めるようにしてもよい。
【００３６】
基本の実施において、ローカル整合ドメインのみを含む「ローカル」範囲と、ＳＭＰデータ処理システムにおける他の全ての整合ドメインを含む「グローバル」範囲という２つの同報通信範囲が使用される。よって、ＳＭＰデータ処理システムにおける全ての整合ドメインに送られる動作は、本明細書では「グローバル動作」として定義される。重要なのは、動作に対応するために使用されるのがローカル動作か、より拡大した範囲の動作（例えば、グローバル動作）かを問わず、キャッシュ整合性は、ＳＭＰデータ処理システムないの全ての整合ドメインに渡って維持される。ローカルおよびグローバル動作の例は、米国特許出願第１１／０５５３０５号に詳細に記載されており、その全体を引用によって本明細書に含めるものとする。
【００３７】
好ましい一実施形態において、動作の範囲は、ローカル／バス範囲インジケータ（信号）によってバス動作中に指示される。一実施形態において、ローカル／バス範囲インジケータ（信号）は、１ビットのフラグを備えてもよい。処理部１０４内の進展論理２１２は、好ましくは、ローカル相互接続１１４を介して受信した動作をシステム相互接続１１０へ進めさせるかどうかを、当該動作のローカル／バス範囲インジケータ（信号）の設定に基づいて決定する。
【００３８】
本説明において、整合ドメイン（または処理ノード）がメモリ・ブロックのＬＰＣを含む場合に、当該整合ドメインは、メモリブロックの「ホーム」整合ドメイン（または「ホーム」ノード）と称される。
【００３９】
Ｖ．ドメイン・インジケータ
不必要なローカル動作の発生を制限して、それによって動作待ち時間を削減してローカル相互接続上のさらなる帯域幅を保護するために、本発明は、好ましくは、関連メモリ・ブロックのコピーがローカル整合ドメイン外部にキャッシュされるかどうかを示すドメイン・インジケータをメモリ・ブロック毎に実施する。例えば、図５は、本発明に係るドメイン・インジケータの第１の実施例を示す。図５に示すように、システム・メモリ１０８は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）内に実施されてもよく、複数のメモリ・ブロックを記憶する。システム・メモリ１０８は、メモリ・ブロック５００およびドメイン・インジケータ５０４内にエラーがもしあればそれを訂正するために使用される関連エラー訂正コード（ＥＣＣ）５０２を、各メモリ・ブロック５００に関連付けて記憶する。本発明の実施形態によっては、ドメイン・インジケータ５０４は、特定の整合ドメインを識別（すなわち、整合ドメインまたはノード番号を指定）してもよいが、以後、ドメイン・インジケータ５０４は、メモリ・ブロック５００に対するＬＰＣの役割を果たすメモリ・コントローラ２０６と同一の制御ドメイン内にのみ、可能であれば関連メモリ・ブロック５００がキャッシュされる場合に（例えば、「ローカル」を示すための「１」に）設定される、１ビットのインジケータであるものとする。ドメイン・インジケータ５０４は、違ったように（例えば、「グローバル」を示すための「０」に）再設定される。ドメイン・インジケータ５０４を設定して「ローカル」を示すことは、「グローバル」に間違って設定しても整合エラーは生じないという点で、不明確に実施される場合もあるが、不必要なグローバル同報通信動作を引き起こす場合もある。
【００４０】
動作に応じてメモリ・ブロックを提供するメモリ・コントローラ２０６（およびＬ２キャッシュ２３０）は、好ましくは、要求されたメモリ・ブロックと共に、関連ドメイン・インジケータ５０４を送信する。
【００４１】
ＶＩ．整合プロトコル例
本発明は、好ましくは、上述のように、データ配信および整合ドメインの実施を活用するように設計されたキャッシュ整合プロトコルを実施する。好ましい一実施形態において、プロトコル内のキャッシュ整合状態は、（１）キャッシュがメモリ・ブロックに対するＨＰＣであるかどうかの示唆を提供するのに加えて、（２）キャッシュされたコピーが、当該メモリ階層レベルでのキャッシュのうちで固有かどうか（すなわち、システム全般に渡る唯一のキャッシュされたコピーか）、（３）メモリ・ブロックのコピーをメモリ・ブロックに対する要求のマスタへ提供できるか、およびいつ提供できるか、（４）メモリ・ブロックのキャッシュされた像が、ＬＰＣ（システム・メモリ）における対応メモリ・ブロックと一致するかどうか、および（５）遠隔整合ドメイン内の他のキャッシュが、一致するアドレスを有するキャッシュ・エントリを（おそらく）保持するかどうかをも示す。これらの５つの属性は、例えば、以下の表にまとめた周知のＭＥＳＩ（修正、排他、共有、無効）プロトコルの変形例において表現できる。
【００４２】
【表２】
2007193784.tif 000004
【００４３】
Ａ．Ｉｇ状態
ＬＰＣにアクセスしてメモリ・ブロックが可能であればローカルにだけキャッシュされたと知られているかどうかを判断する必要性を避けるために、Ｉｇ（無効グローバル）整合状態を使用して、整合ドメインにキャッシュされたメモリ・ブロックのコピーが残っていない場合のドメイン表示を維持する。Ｉｇ状態は、本明細書において、（１）キャッシュ・アレイ内の関連メモリ・ブロックが無効であること、（２）キャッシュ・ディレクトリ内のアドレス・タグが有効であること、および（３）アドレス・タグによって識別されたメモリ・ブロックのコピーは、ホーム整合ドメイン以外の整合ドメイン内にキャッシュされている可能性があることを示すキャッシュ整合状態として定義される。Ｉｇの表示は、不明確が好ましく、不明確とは、整合性違反のない不正確であってもよいことを意味する。
【００４４】
Ｉｇ状態は、排他的アクセス要求（例えば、バスＲＷＩＴＭ動作）に応じて、要求されたメモリ・ブロックをキャッシュが他の整合ドメイン内の要求者に対して提供することに応じて、ホーム整合ドメイン内のより低レベルのキャッシュ内に形成される。
【００４５】
Ｉｇ状態を含むキャッシュ・ディレクトリ・エントリが有用な可能性のある情報を搬送するので、少なくとも何らかの実施において、Ｉ状態におけるエントリよりもＩｇ状態におけるエントリを優先的に保持することが望ましい（例えば、使用される最長時間未使用（ＬＲＵ）アルゴリズムを修正して、犠牲となるキャッシュ・エントリを選択して交換することによって行う）。Ｉｇディレクトリ・エントリはキャッシュに保持されるので、その排他的アクセス要求がＩｇ状態を形成したキャッシュは、Ｉｇ状態でメモリ・ブロックのアドレス・タグを保持しているキャッシュに対して通知なく、メモリ・ブロックのコピーを解放またはライトバックする場合があるため、Ｉｇエントリの中には、時間と共に「古く（ｓｔａｌｅ）」なるものもありうる。そのような場合には、「古い」Ｉｇ状態は、ローカル動作の代わりにグローバル動作を生じさせなければならないと誤って示しており、整合エラーを生じさせることはないが、そうでなければローカル動作を使用して対応されるはずの何らかの動作をグローバル動作として生じさせるに過ぎない。そのような非効率の発生は、「古い」Ｉｇキャッシュ・エントリを最終的に交換することによって、期間的に制限されることになる。
【００４６】
いくつかの規則が、Ｉｇキャッシュ・エントリの選択および交換を制御する。第１に、キャッシュがＩｇエントリを交換のための犠牲として選択した場合（Ｉ，Ｉｎ，またはＩｇｐエントリが選択された場合と違って）、システム・メモリ１０８内の対応ドメイン・インジケータを更新するために、Ｉｇエントリのキャストアウトが行われる。第２に、メモリ・ブロックをキャッシュへロードさせた要求が同一のキャッシュ内にＩｇキャッシュ・エントリを見つけると、キャッシュは、見つけたＩｇをキャッシュ・ミスとして扱って、Ｉｇエントリを選択された犠牲として、キャストアウト動作を行う。よって、キャッシュは、キャッシュ・ディレクトリ内に同一のアドレス・タグの２つのコピーが置かれることを防止する。第３に、Ｉｇ状態のキャストアウトは、好ましくは、ローカル整合ドメインに範囲を限定したローカルのみの動作として行われる。第４に、Ｉｇ状態のキャストアウトは、好ましくは、ドメインの表示がＬＰＣ内のドメイン・インジケータ５０４に書き戻される、データのないアドレスのみの動作として行われる。
【００４７】
本発明に係るＩｇ状態の実施により、メモリ・ブロックの有効なコピーがホーム整合ドメイン内にキャッシュされていないままであっても、メモリ・ブロックについてのキャッシュされたドメイン・インジケータをホーム整合ドメイン内に保持することによって、通信の効率性が改善される。後述するように、Ｉｇ状態によって与えられたキャッシュ・ドメイン表示を使用して、関連メモリ・ブロックを対象とする動作についての相互接続構造上のグローバル同報通信範囲を予測することができる。
【００４８】
Ｂ．Ｉｇｐ状態
Ｉｇｐ（無効グローバル予測のみ）整合状態は、非ホーム整合ドメインにメモリ・ブロックのコピーがホーム整合ドメイン内にキャッシュされていないままの場合にキャッシュされたドメイン表示を維持するために使用される。Ｉｇｐ状態は、本明細書において、（１）キャッシュ・アレイ内の関連メモリ・ブロックが無効であること、（２）キャッシュ・ディレクトリ内のアドレス・タグが有効であること、（３）現在の整合ドメインが、ホーム整合ドメインでないこと、および（４）アドレス・タグによって識別されたメモリ・ブロックのコピーは、現在の非ホーム整合ドメイン以外の整合ドメイン内にキャッシュされている可能性があることを示すキャッシュ整合状態として定義される。明確に形成されていたとしても、Ｉｇｐ表示は、不明確が好ましく、不明確とは、整合性違反のない不正確であってもよいことを意味する。
【００４９】
Ｉｇｐ状態は、排他的アクセス要求（例えば、ＲＷＩＴＭ，ＤＣｌａｉｍ，ＤＣＢＺ，Ｋｉｌｌ，または部分書き込み要求）に応じて要求されたメモリ・ブロックの整合所有権を他の整合ドメイン内の要求者にキャッシュが提供することに応じて、非ホーム整合ドメイン内のより低レベルのキャッシュに形成される。
【００５０】
Ｉｇｐ状態を含むキャッシュ・ディレクトリ・エントリが有用な可能性のある情報を搬送するので、少なくとも何らかの実施において、Ｉ状態におけるエントリがもしあればそれよりもＩｇｐ状態におけるエントリを優先的に保持することが望ましい（例えば、使用される最長時間未使用（ＬＲＵ）アルゴリズムを修正して、犠牲となるキャッシュ・エントリを選択して交換することによって行う）。Ｉｇｐディレクトリ・エントリはキャッシュに保持されるので、Ｉｇｐ状態でメモリ・ブロックのアドレス・タグを保持しているキャッシュによるスヌープなく、メモリ・ブロックのコピーは整合ドメインに戻る場合があるので、Ｉｇｐエントリの中には、時間と共に「古く（ｓｔａｌｅ）」なるものもありうる。そのような場合には、「古い」Ｉｇｐ状態は、ローカル動作の代わりにグローバル動作を生じさせなければならないことを誤って示しており、整合エラーを生じさせることはないが、そうでなければローカル動作を使用して対応されるはずの何らかの動作をグローバル動作として生じさせるに過ぎない。そのような非効率の発生は、「古い」Ｉｇｐキャッシュ・エントリを最終的に交換することによって、期間的に制限されることになる。
【００５１】
Ｉｇエントリを処理するのとは対照的に、Ｉｇｐエントリを高官アルゴリズム（例えば、ＲＵ）に従って交換するための犠牲として選択したことに応じて、またはメモリ・ブロックをキャッシュへロードさせた要求が同一のキャッシュ内にＩｇｐキャッシュ・エントリを見つけたからといって、Ｉｇｐエントリのキャストアウトは行われない。代わりに、Ｉｐｇエントリは、単に解放される。キャストアウトが行われないのは、Ｉｇｐエントリは、ドメイン・インジケータ５０４の基礎となるキャッシュされ恐らく修正されたコピーを保持していないからである。
【００５２】
本発明に係るＩｇｐ状態の実施により、メモリ・ブロックの有効なコピーが非ホーム整合ドメイン内にキャッシュされていないままであっても、メモリ・ブロックについてのキャッシュされたドメイン・インジケータを範囲予測の目的で非ホーム整合ドメイン内に保持することによって、通信の効率性が改善される。
【００５３】
Ｃ．Ｉｎ状態
Ｉｎ状態は、本明細書において、（１）キャッシュ・アレイ内の関連メモリ・ブロックが無効であること、（２）キャッシュ・ディレクトリ内のアドレス・タグが有効であること、および（３）アドレス・タグによって識別されたメモリ・ブロックのコピーは、キャッシュされている可能性があるが、たとえそうであっても、ローカル整合ドメイン内の１つ以上の他のキャッシュ階層によるものに過ぎないことを示すキャッシュ整合状態として定義される。Ｉｎの表示は、不明確が好ましく、不明確とは、整合性違反のない不正確であってもよいことを意味する。Ｉｎ状態は、排他的アクセス要求（例えば、バスＲＷＩＴＭ動作）に応じて、要求されたメモリ・ブロックをキャッシュが同一の整合ドメイン内の要求者に対して提供することに応じて、より低レベルのキャッシュ内に形成される。
【００５４】
Ｉｎ状態を含むキャッシュ・ディレクトリ・エントリが有用な可能性のある情報を搬送するので、少なくとも何らかの実施において、Ｉ状態におけるエントリよりもＩｎ状態におけるエントリを優先的に保持することが望ましい（例えば、使用される最長時間未使用（ＬＲＵ）アルゴリズムを修正して、犠牲となるキャッシュ・エントリを選択して交換することによって行う）。Ｉｎディレクトリ・エントリはキャッシュに保持されるので、その排他的アクセス要求がＩｎ状態を形成したキャッシュは、Ｉｎ状態でメモリ・ブロックのアドレス・タグを保持しているキャッシュに対して通知なく、メモリ・ブロックのコピーを遠隔整合ドメインに供給している場合があるため、Ｉｎエントリの中には、時間と共に「古く（ｓｔａｌｅ）」なるものもありうる。そのような場合には、「古い」Ｉｎ状態は、グローバル動作の代わりにローカル動作を生じさせなければならないと誤って示しており、整合エラーを生じさせることはないが、何らかの動作を、グローバル動作としてではなく、間違って最初にローカル動作として生じさせるに過ぎない。そのような非効率の発生は、「古い」Ｉｎキャッシュ・エントリを最終的に交換することによって、期間的に制限されることになる。好ましい一実施形態において、Ｉｎ整合状態のキャッシュ・エントリは、キャストアウトを施されることはないが、代わりに単に交換される。よって、Ｉｇキャッシュ・エントリとは異なり、Ｉｎエントリは、システム・メモリ１０８内のドメイン・インジケータ５０４を更新するためには使用されない。
【００５５】
本発明に係るＩｎ状態の実施により、動作のうちの１つのローカル範囲を選択するためにマスタによって調査されてもよいメモリ・ブロックについてのキャッシュされたドメイン・インジケータを保持することによって、通信の効率性が改善される。その結果、他の整合ドメイン内のシステム相互接続１１０およびローカル相互接続１１４上の帯域幅が保護される。
【００５６】
Ｄ．Ｓｒ状態
以下に説明する動作において、共有された要求されたメモリ・ブロックをＳｒ整合状態で保持する低レベルのキャッシュが同一のドメイン内に要求マスタとして存在するかどうかを判断できれば有用である。一実施形態において、「ローカル」Ｓｒスヌーパが同一のドメイン内に要求マスタとして存在することは、要求されたメモリ・ブロックをＳｒ整合状態で保持する低レベルのキャッシュにおけるスヌーパの応答の振舞いによって示すことができる。例えば、各バス動作は、バス動作がドメイン境界を横断したかどうかを示す範囲インジケータを含むとする（例えば、マスタの明示的なドメイン・インジケータまたは単一のローカル／非ローカルの範囲ビット）と、共有されたメモリ・ブロックをＳｒ整合状態で保持する低レベルのキャッシュは、同一のデータ提供ドメイン内のマスタによる要求についてのみＳｒ状態で要求を肯定する部分応答を提供でき、また、他の全ての要求についてはＳ状態を示す部分応答を提供することができる。そのような実施形態において、応答の振舞いは、表３に示すようにまとめられる。ここで、プライム符号（’）の表示を使用して、メモリ・ブロックの実際のキャッシュ状態とは異なる場合もある部分応答を指定している。
【００５７】
【表３】
2007193784.tif 000005
上記表３に記載の応答の振る舞いのセットを仮定すると、データ・ソースとしての役割を果たしてもよいＳＭＰデータ処理システム内に分散されたメモリ・ブロックの共有コピーの数を増加させることによって、共有データの平均データ待ち時間を大幅に減少できる。
【００５８】
ＶＩＩ．排他的アクセス動作例
図６を参照すると、本発明に係るデータ処理システムにおけるプロセッサ（ＣＰＵ）要求に対応する方法例の高レベルの論理フローチャートが示されている。本明細書に提示した他の論理フローチャートと同様に、図６に示すステップの少なくともいくつかは、図示とは異なる順序で行われてもよく、または同時に行われてもよい。
【００５９】
図６の処理は、ブロック６００で開始する。ブロック６００は、Ｌ２キャッシュ２３０内のマスタ２３２が、ＣＰＵ要求（例えば、ＣＰＵデータ・ロード要求、ＣＰＵデータ記憶要求、ＣＰＵロード・リザーブ要求、ＣＰＵ命令ロード要求など）を処理ユニット１０４内の関連プロセッサ・コアから受信することを表している。ＣＰＵ要求に応じて、マスタ２３２は、ブロック６０２において、ＣＰＵ要求内において対象アドレスによって識別された対象メモリブロックが、相互接続構造上にバス動作を生じさせることなくＣＰＵ要求が対応されることができる整合状態でＬ２キャッシュ・ディレクトリ３０２内に保持されているかどうかを判断する。例えば、対象メモリ・ブロックの整合状態がＭ，Ｍｅ，Ｔｘ（例えば、Ｔ，Ｔｎ，Ｔｅ，またはＴｅｎ），Ｓｒ，Ｓ状態のいずれかであることをＬ２キャッシュ・ディレクトリ３０２が示していれば、ＣＰＵ命令取り出し要求またはデータ・ロード要求に対して、相互接続構造上にバス動作を生じさせることなく対応することができる。対象メモリ・ブロックの整合状態がＭまたはＭｅ状態であることをＬ２キャッシュ・ディレクトリ３０２が示していれば、ＣＰＵデータ記憶要求に対して、相互接続構造上にバス動作を生じさせることなく対応することができる。ブロック６０２において、ＣＰＵ要求に対して相互接続構造上にバス動作を生じさせることなく対応することができるとマスタ２３２が判断した場合には、ブロック６２４に示すように、マスタ２３２は、Ｌ２キャッシュ・アレイ３３０にアクセスして、ＣＰＵ要求に対応する。例えば、マスタ２３２は、要求されたメモリ・ブロックを取得して、ＣＰＵデータ・ロード要求または命令取り出し要求に応じて、要求されたメモリ・ブロックを要求プロセッサ・コア２００へ供給するか、ＣＰＵデータ記憶要求内に与えられたデータをＬ２キャッシュ・アレイ３００に記憶してもよい。ブロック６２４に従って、処理はブロック６２６で終了する。
【００６０】
ブロック６０２へ戻って、対象メモリ・ブロックが、相互接続構造上にバス動作を生じさせることなくＣＰＵ要求が対応されることができる整合状態でＬ２キャッシュ・ディレクトリ３０２内に保持されていない場合には、ブロック６０４において、対象メモリ・ブロックをＬ２キャッシュ２３０内に入れるために、既存のキャッシュ・ラインをキャストアウトする必要があるかどうかの判断がなされる。一実施形態において、ＣＰＵ要求に応じて、メモリ・ブロックが要求プロセッサのＬ２キャッシュ２３０から追い出されるために選択されて、Ｌ２キャッシュ・ディレクトリ３０２内においてＭ，Ｔ，Ｔｅ，ＴｎまたはＩｇ整合状態のいずれかであると印付けされた場合には、キャストアウト動作がブロック６０４において必要となる。キャストアウトが必要であるというブロック６０４における判断に応じて、ブロック６０６に示すように、キャッシュのキャストアウト動作が行われる。同時に、マスタ２３２は、ブロック６１０において、ＣＰＵ要求に対応するために生じさせるバス動作の範囲を判断する。例えば、一実施形態において、マスタ２３２は、ブロック６１０において、バス動作をローカル動作として同報通信させるか、またはグローバル動作として同報通信させるかを判断する。
【００６１】
各バス動作を最初にローカル動作として生じさせ、ローカル動作として生じさせるのは１回のみという第１の実施形態において、ブロック６１０に示す判断は、バス動作がかつてローカル・バス動作として生じたかどうかについてのマスタによる判断を簡易に表すことができる。ローカル・バス動作が再試行できる第２の代替実施形態において、ブロック６１０に示す判断は、バス動作が以前に閾値回数より多く生じたかどうかについてのマスタによる判断を表すことができる。第３の代替実施形態において、ブロック６１０に示す判断は、ローカル・バス動作が、他の整合ドメイン内の処理ノードと通信を行わずに、対象メモリ・ブロックの整合性の解決に成功しそうかどうかについて、マスタ２３２による予測に基づいて行うことができる。例えば、関連Ｌ２キャッシュ・ディレクトリ３０２が対象アドレスをＩｎ整合状態に関連付ける場合に、マスタ３２３は、ローカル・バス動作を選択してもよく、関連Ｌ２キャッシュ・ディレクトリ３０２が対象アドレスをＩｇまたはＩｇｐ整合状態に関連付ける場合には、マスタ３２３は、グローバル・バス動作を選択してもよい。
【００６２】
ブロック６１０の判断に応じて、ローカル・バス動作ではなくグローバル・バス動作が生じた場合には、処理はブロック６１０から以下に説明するブロック６２０へと進む。一方、ローカル・バス動作を生じさせる判断がブロック６１０においてなされた場合には、ブロック６１２に示すように、マスタ２３２は、ローカル相互接続１１４上でローカル・バス動作を開始する。ローカル・バス動作は、マスタ２３２を含むローカル整合ドメイン（例えば、処理ノード１０２）内でのみ同報通信される。マスタ２３２が「成功」を示すＣＲを受信した場合（ブロック６１４）、処理は、ブロック６２３へ進み、マスタ２３２は、ブロック６１０に示す範囲選択を行うために使用されたプレディクタ（整合状態または履歴ベースのプレディクタ）を更新する。加えて、マスタ２３２は、ブロック６２４に示すように、ＣＰＵ要求に対応する。その後、処理はブロック６２６において終了する。
【００６３】
ブロック６１４に戻って、ローカル・バス読み出し動作のためのＣＲが「成功」を示さない場合には、マスタ２３２は、ブロック６１６において、ＣＲが「グローバル再試行」ＣＲかどうかを判断する。「グローバル再試行」ＣＲは、整合プロトコルがローカル整合ドメインの外部の１つ以上の処理ノードの参加を要求するためにバス動作がグローバル・バス動作として再び生じなければならないことを明確に示す。もしそうであれば、処理は以下に説明するブロック６２０へ進む。一方、ＣＲがバス動作がローカル整合ドメイン内で対応できないことを明確には示していない「再試行」ＣＲである場合には、処理はブロック６１６からブロック６１０へ進み、マスタ２３２は、ＣＰＵ要求に対応するためにローカル・バス動作を生じさせるかどうかを再び判断する。この場合、マスタ２３２は、判断の際に、ＣＲによって提供された任意の追加の情報を使用してもよい。ブロック６１０に続いて、処理は上述のブロック６１２か、ブロック６２０へ進む。
【００６４】
ブロック６２０は、マスタ２３２が、ＣＰＵ要求に対応するために、データ処理システム内の全ての処理ノード１０２へグローバル・バス動作を生じさせることを示す。グローバル・バス読み出し動作のＣＲがブロック６２２において「成功」を示さない場合には、マスタ２３２は、ブロック６２０において、「成功」を示すＣＲを受信するまで、再びグローバル・バス動作を生じさせる。グローバル・バス読み出し動作のＣＲが「成功」を示す場合には、処理は上述のブロック６２３およびそれ以降のブロックへ進む。
【００６５】
よって、同一の整合ドメイン内の処理とそのデータとの間の親和性を想定すると、ＣＰＵ要求は、要求マスタの整合ドメインの範囲に限定された、または完全にグローバルな範囲よりも少ない他の限定的な範囲の同報通信を使用して、しばしば対応可能である。上述のデータ配信ドメインと、整合ドメインとを組み合わせれば、データ・アクセス待ち時間が改善されるだけでなく、同報通信の範囲を限定することによってシステム相互接続（および他のローカル相互接続）上のトラフィックが削減される。
【００６６】
図７および図８を参照すると、本発明に係るＬ２キャッシュ・スヌーパ２３６のようなキャッシュ・スヌーパが排他的アクセス動作（ストレージ修正動作とも称される）を処理する際の方法例の高レベルの論理フローチャートが示されている。排他的アクセス要求は、上述のＲＷＩＴＭ，ＤＣｌａｉｍ，ＤＣＢＺ，Ｋｉｌｌ，Ｗｒｉｔｅ，およびＰａｒｔｉａｌ  Ｗｒｉｔｅ動作が含まれる。
【００６７】
図示のように、Ｌ２キャッシュ・スヌーパ２３６がそのローカル相互接続１１４上で要求を受信することに応じて、処理は図７のブロック７００で開始する。要求の受信に応じて、スヌーパ２３６は、ブロック７０２において、要求が排他的アクセス動作であるかを要求内のトランザクション種類（Ｔｔｙｐｅ）フィールドを参照して判断する。そうでなければ、スヌーパ２３６は、ブロック７０４に示すように、他の処理を行い、処理はブロック７５０で終了する。しかしながら、スヌーパ２３６がブロック７０２において要求が排他的アクセス動作であると判断した場合には、スヌーパ２３６は、ブロック７１０において、排他的アクセス動作に対して実体的に応答することが現在可能か（例えば、スヌープ論理の利用可能なインスタンスと、Ｌ２キャッシュ・ディレクトリ３０２に対する現在のアクセスとを有するかどうか）をさらに判断する。スヌーパ２３６がドメイン・クエリ要求に実体的に応答することが現在できない場合には、スヌーパ２３６は、ブロック７１２に示すように、「再試行」を示す部分応答（ＰＲ）を提供し、排他的アクセス動作の処理は、ブロック７５０において終了する。
【００６８】
スヌーパ２３６が排他的アクセス動作に実体的に応答可能であると仮定すると、スヌーパ２３６は、ブロック７２０において、関連Ｌ２キャッシュ・ディレクトリ３０２が対象アドレスを含むメモリ・ブロックに対してデータ‐有効整合状態（例えば、Ｍｘ，Ｔｘ，Ｓｒ，またはＳ）を示しているかどうかを判断する。そうでなければ、処理はブロック７２２へ進み、スヌーパ２３６は、対象アドレスを含むメモリ・ブロックに対する整合状態がＩｇかどうかを判断する。もしそうであれば、スヌーパ２３６は、対称アドレスについてのホーム整合ドメイン（例えば、処理ノード１０２）にあるので、グローバル動作が必要になるであろうことを示す「グローバルを再試行」部分応答を提供して、排他的アクセス動作に対応する（ブロック７２６）。一方、対象アドレスを含むメモリ・ブロックに対する整合状態がＩｇでない場合は、スヌーパ２３６は、「Ｎｕｌｌ」部分応答を提供する。ブロック７２４または７２６に続いて、スヌーパ２３６による排他的アクセス動作の処理は、ブロック７５０で終了する。
【００６９】
ブロック７２０に戻って、関連Ｌ２キャッシュ・ディレクトリ３０２が排他的アクセス動作の対象アドレスを含むメモリ・ブロックに対してデータ‐有効整合状態を示しているというスヌーパ２３６による判断に応じて、処理は、スヌーパ２３６によって行われる整合状態更新を表すブロック７３０およびそれ以降のブロックと、スヌーパ２３６のデータ配信およびもしあれば保護活動を表すページ・コネクタＡを介してブロック７６０（図８）およびそれ以降のブロックとに２つに分岐して、並行して進む。最初にブロック７３０を参照して、スヌーパ２３６は、同一の整合ドメイン内に排他的アクセス要求を元々発行した装置（例えばＬ２キャッシュ２３０）として存在するかを判断する。例えば、スヌーパ２３６は、ブロック７３０に示す判断を、排他的アクセス動作に含まれる範囲ビットを検査することによって行ってもよい。スヌーパ２３６がブロック７３０において同一の整合ドメイン内に排他的アクセス要求を元々発行した装置として存在していると判断した場合には、スヌーパ２３６は、排他的アクセス要求の対象アドレスを含むメモリ・ブロックに対する整合状態を、Ｌ２キャッシュ・ディレクトリ３０２内のＩｎ整合状態に更新する。上記のように、Ｉｎ整合状態は、メモリ・ブロックについてのＨＰＣはローカル（必ずしもホームではない）整合ドメインにあり、メモリ・ブロックを要求する後続のローカル動作は成功するだろうことを不明確に示す。
【００７０】
一方、スヌーパ２３６がブロック７３０において同一の整合ドメイン内に排他的アクセス要求を開始した装置として存在していると判断した場合には、スヌーパ２３６は、ＢＡＲ論理２３８を参照して、対象メモリ・ブロックについてのホーム整合ドメイン内にあるかどうかを判断する（ブロック７４０）。スヌーパ２３６がブロック７４０において対象メモリ・ブロックのホーム整合ドメイン内にあると判断した場合には、スヌーパ２３６は、ブロック７４２に示すように、対象メモリ・アドレスの整合性状態をＬ２キャッシュ・ディレクトリ３０２内のＩｇ状態に更新する。しかしながら、スヌーパ２３６が対象メモリ・ブロックのホーム整合ドメイン内にないと判断した場合には、スヌーパ２３６は、対象メモリ・ブロックの整合状態をＩｇｐ状態に更新する（ブロック７４４）、ブロック７３２，７４２，および７４４に従って、排他的アクセス動作に応じた整合状態に対する更新はブロック７５０において終了する。
【００７１】
図８を参照すると、スヌーパ２３６のデータ配信およびもしあれば保護活動を示す。図示のように、スヌーパ２３６は、ブロック７６０において、スヌープされた排他的アクセス動作がＲＷＩＴＭ動作であるかどうかを、例えば、動作によって指定されたＴｔｙｐｅを検査することによって判断する。上記の表１に示したように、ＲＷＩＴＭ動作は、イニシエータが更新（修正）を意図してメモリ・ブロックの画像の固有のコピーを他の参加者から要求するという、排他的アクセス動作である。ブロック７６０において排他的アクセス動作がＲＷＩＴＭ動作であると判断された場合には、処理は以下に説明するブロック７７０へ進む。もしそうでなければ、処理はブロック７６２へ進み、スヌーパ２３６は、対象メモリ・ブロックについてのＨＰＣにあるかどうかを、例えば、関連Ｌ２キャッシュ・ディレクトリ３０２内の対象メモリ・ブロックの整合状態を参照して判断する。排他的アクセス動作の対象メモリ・ブロックについてのＨＰＣにスヌーパ２３６がないというブロック７６２の判断に応じて、スヌーパ２３６は、「Ｎｕｌｌ」部分応答（ブロック７６４）を生成またはそれが生成されるようにする（ブロック７６４）。しかしながら、ＨＰＣにスヌーパ２３６があるというブロック７６２の判断に応じて、スヌーパ２３６は、「ＨＰＣ  ａｃｋ」部分応答を提供（またはそれが提供されるようにする）。「ＨＰＣ  ａｃｋ」部分応答は、排他的アクセス動作のイニシエータが対象メモリ・ブロックについての新たなＨＰＣとして選択されたことを認めるものである。スヌーパ２３６は、保護ウィンドウ４０４ａを拡張して、メモリ・ブロックの整合性の所有権を他の要求者が取得するのを防止する（ブロック７６６）。
【００７２】
ブロック７７０およびそれ以降のブロックを参照して、スヌーパ２３６は、関連Ｌ２キャッシュ・ディレクトリ３０２内の対象メモリ・ブロックの整合状態に基づいて、ＲＷＩＴＭ動作に応じる。特に、Ｌ２キャッシュ・ディレクトリ３０２内の対象メモリ・ブロックの整合状態がＭｘ（例えば、ＭまたはＭｅ）である場合は、ブロック７７０および７７２に示すように、保護ウィンドウ４０４ａを拡張して、対象メモリ・ブロックの整合性の所有権を他の要求者が取得するのを防止し、「ＨＰＣ  ａｃｋ」部分応答を提供し、メモリ・ブロックのコピーを要求者に提供する。
【００７３】
代わりに、Ｌ２キャッシュ・ディレクトリ３０２内の対象メモリ・ブロックの整合状態がＳｒであって、スヌーパ２３６が要求者と同一のデータ提供ドメイン（例えば、処理ノード１０２）内にある場合は、ブロック７７４および７７６に示すように、スヌーパ２３６は、保護ウィンドウ４０４ａを拡張して、「Ａｃｋ」部分応答を提供し、メモリ・ブロックのコピーを要求者に提供する。代わりに、ブロック７８０に示すように、Ｌ２キャッシュ・ディレクトリ３０２内の対象メモリ・ブロックの整合状態がＴｘ（例えば、Ｔ，Ｔｅ，Ｔｎ，またはＴｅｎ）である場合には、スヌーパ２３６は、ブロック７８２に示すように、保護ウィンドウ４０４ａを拡張して、対象メモリ・ブロックの整合性の所有権を他の要求者が取得するのを防止し、「ＨＰＣ  ａｃｋ」部分応答を提供する。加えて、ブロック７８４および７８６に示すように、スヌーパ２３６は、応答論理２１０から受信した結合応答に依存して、対象メモリ・ブロックのコピーを要求者に提供する。すなわち、このスヌーパ２３６は対象メモリ・ブロックのコピーを提供する役割を有することを結合応答が示す場合（例えば、要求者と同一の整合ドメイン内に、Ｓｒ状態で対象メモリ・ブロックを保持するスヌーパ２３６はない場合）には、スヌーパ２３６は、ブロック７８６に示すように、対象メモリ・ブロックのコピーを要求者に送信する。
【００７４】
ブロック７８０を再び参照して、否定決定に応じて、スヌーパ２３６は、ブロック７９０に示すように「Ｎｕｌｌ」という部分応答を提供する。ブロック７６６，７６４，７７２，７７６，７８４，７８６および７９０に辿って、処理はブロック７９２において終了する。
【００７５】
上記のように、応答論理２１０（例えば、最初の処理部１０４内の応答論理２１０）の少なくとも１つのインスタンスが、排他的アクセス動作に応じて、スヌーパ２３６およびＩＭＣ２０６によって生成された部分応答を結合して、排他的アクセス動作のための結合応答を決定する。図７および図８に示すように、排他的アクセス動作の個別のスヌーパ２３６は、一般的には、その整合状態に対する更新と、結合応答は独立したデータ配信および保護の責任とについて判断する。この一般的な規則の注目すべき例外は、図８のブロック７８４〜７８６を参照して説明したように、対象メモリ・ブロックのＴｘコピーをローカルにキャッシュしたスヌーパ２３６が、ＲＷＩＴＭ動作に応じて、結合応答を参照して、対象メモリ・ブロックのコピーを提供する責任を判断することである。
【００７６】
排他的アクセス動作を開始するマスタ２３２の観点からすると、結合応答は、はるかに妥当性のある情報を提供する。例えば、結合応答は、好ましくは、（１）対照メモリ・ブックのマスタが整合性の所有権を取得したか、（２）対象メモリ・ブロックの整合性の所有権を取得するために、排他的アクセス動作を、増加した範囲内で再試行しなければならないかどうか、（３）排他的アクセス動作がＲＷＩＴＭ動作である場合、対象メモリ・ブロックを提供する役割を担うのはどのスヌーパか、（４）残存すると思われる対象メモリ・ブックのＨＰＣでないコピーを無効化するために、ＢＡＣＫＧＲＯＵＮＤ  ＫＩＬＬ動作が必要かどうか、および（５）もしあれば、必要なＢＡＣＫＧＲＯＵＮＤ  ＫＩＬＬ動作の範囲、を示す。
【００７７】
上述したように、本発明は、改良されたデータ処理システム、処理部、キャッシュ階層、およびメモリブロックが整合ドメインの内部または外部にキャッシュされることになるかどうかの示唆を提供するデータ処理の方法を提供する。本発明に係るドメインの示唆は、関連メモリ・ブロックを対象とした同報通信動作の範囲を予測するために使用されてもよい。都合のよいことに、ドメインの示唆は、排他的アクセス動作に応じて、排他的アクセス動作に対する結合応答とは独立して、正確に形成することができ、これは、スヌーパ論理のインスタンスがアクティブでなければならない期間は、結合応答の受信以前に停止可能であることを意味する。また、Ｉｇｐドメインの示唆は、解放されてもキャストアウトされる必要はなく、相互接続構造上の帯域幅を確保する。
【００７８】
本発明を好ましい実施形態を参照して説明したように特に示してきたが、本発明の精神および範囲から逸脱することなく、形式および詳細において様々な変更を行ってもよいことを当業者は理解するだろう。
【図面の簡単な説明】
【００７９】
【図１】本発明に係るデータ処理システム例の高レベルのブロック図である。
【図２】本発明に係る処理部のより詳細なブロック図である。
【図３】図２に示すＬ２キャッシュ・アレイおよびディレクトリのより詳細なブロック図である。
【図４】図１のデータ処理システムのシステム相互接続上のトランザクション例の時空間図である。
【図５】本発明の好ましい一実施形態に係るドメイン・インジケータを示す。
【図６】本発明に係るデータ処理システムにおけるプロセッサ・コアによって受信された動作に対してキャッシュ・メモリが対応する方法例の高レベルの論理フローチャートである。
【図７】図８と共に形成される、キャッシュ・スヌーパが本発明に係るストレージ修正動作を処理する方法例の高レベルの論理フローチャートである。
【図８】図７と共に形成される、キャッシュ・スヌーパが本発明に係るストレージ修正動作を処理する方法例の高レベルの論理フローチャートである。
【符号の説明】
【００８０】
１０２ａ，１０２ｂ  処理ノード
１０４ａ，１０４ｂ，１０４ｃ，１０４ｄ  処理部
１０８ａ，１０８ｂ，１０８ｃ，１０８ｄ  システム・メモリ
【図１】
2007193784.tif 000006
【図２】
2007193784.tif 000007
【図３】
2007193784.tif 000008
【図４】
2007193784.tif 000009
【図５】
2007193784.tif 000010
【図６】
2007193784.tif 000011
【図７】
2007193784.tif 000012
【図８】
2007193784.tif 000013