(57)【特許請求の範囲】
【請求項１】
ノード相互接続と、
前記ノード相互接続に接続され、システム・メモリと、ローカル相互接続により接続される第１及び第２のキャッシュ階層のそれぞれ１つを有する第１及び第２のプロセッサとを含む、第１の処理ノードと、
前記ノード相互接続に接続され、少なくともシステム・メモリと、第３のキャッシュ階層を有する第３のプロセッサとを含む第２の処理ノードと
を含み、
前記第１のキャッシュ階層及び前記第３のキャッシュ階層の各々は、特定のキャッシュ・ラインの未変更コピーを最近状態または排他状態のいずれかで記憶しうるものであり、また、前記第１のキャッシュ階層及び前記第３のキャッシュ階層は、特定のキャッシュ・ラインの未変更コピーを最近状態で同時に記憶しうるものであり、
前記第１のキャッシュ階層は、自らが特定のキャッシュ・ラインの未変更コピーを最近状態で記憶しているときに、前記第２のキャッシュ階層から前記特定のキャッシュ・ラインの未変更コピーを目的とする読出し要求がある際には、当該読出し要求が変更目的読出し要求でない場合にのみ、前記ノード相互接続上の通信無しに、前記ローカル相互接続上の通信を利用して、最近状態で記憶している前記特定のキャッシュ・ラインの未変更コピーを共用介入により前記第２のキャッシュ階層に発信するものである、
コンピュータ・システム。
【請求項２】
前記第１のキャッシュ階層が前記特定のキャッシュ・ラインの未変更コピーを排他状態で記憶する場合に限り、変更目的読出し要求に応答して、前記第１のキャッシュ階層が共用介入により、前記特定のキャッシュ・ラインのコピーを発信する、請求項１記載のコンピュータ・システム。
【請求項３】
前記第１及び第２の処理ノードの各々が、前記ノード相互接続に接続されるノード制御装置を含み、前記各ノード制御装置が、当該ノード制御装置を含む前記処理ノードをホーム・ノードとするキャッシュ・ラインの、遠隔的に保持される可能なコヒーレンス状態を示すコヒーレンス・ディレクトリを有する、請求項１記載のコンピュータ・システム。
【請求項４】
前記コヒーレンス・ディレクトリが１つの前記コヒーレンス状態を用いて、遠隔的に共用状態または最近状態に保持され得るキャッシュ・ラインを追跡する、請求項３記載のコンピュータ・システム。
【請求項５】
前記第１の処理ノードの前記ノード制御装置の前記コヒーレンス・ディレクトリが、前記第１の処理ノードをホーム・ノードとするキャッシュ・ラインが、前記第２の処理ノードにおいて変更されていることを示す場合に限り、前記第１の処理ノードの前記ノード制御装置が、前記キャッシュ・ラインに対する要求を前記第２の処理ノードに転送する、請求項３記載のコンピュータ・システム。
【請求項６】
コンピュータ・システムにおける通信方法であって、前記コンピュータ・システムが
ノード相互接続と、
前記ノード相互接続に接続され、システム・メモリと、ローカル相互接続により接続される第１及び第２のキャッシュ階層のそれぞれ１つを有する第１及び第２のプロセッサとを含む、第１の処理ノードと、
前記ノード相互接続に接続され、少なくともシステム・メモリと、第３のキャッシュ階層を有する第３のプロセッサとを含む第２の処理ノードと
を含み、
前記コンピュータ・システム内の前記第１のキャッシュ階層及び前記第３のキャッシュ階層の各々は、特定のキャッシュ・ラインの未変更コピーを最近状態または排他状態のいずれかで記憶しうるものであり、また、前記第１のキャッシュ階層及び前記第３のキャッシュ階層は、特定のキャッシュ・ラインの未変更コピーを最近状態で同時に記憶しうるものである、ものにおいて、
前記第１のキャッシュ階層が特定のキャッシュ・ラインの未変更コピーを最近状態で記憶しているときに、前記第２のキャッシュ階層から前記特定のキャッシュ・ラインの未変更コピーを目的とする読出し要求がある際には、当該読出し要求が変更目的読出し要求でない場合にのみ、前記第１のキャッシュ階層が、前記ノード相互接続上の通信無しに、前記ローカル相互接続上の通信を利用して、最近状態で記憶している前記特定のキャッシュ・ラインの未変更コピーを共用介入により前記第２のキャッシュ階層に発信するステップ
を含む、方法。
【請求項７】
前記特定のキャッシュ・ラインの未変更コピーを前記第１のキャッシュ階層に記憶するステップと、
変更目的読出し要求に応答して、前記特定のキャッシュ・ラインが排他状態で保持される場合に限り、共用介入により、前記第１のキャッシュ階層から前記特定のキャッシュ・ラインのコピーを発信するステップと
を含む、請求項６記載の方法。
【請求項８】
前記第１及び第２の処理ノードの各々が、前記ノード相互接続に接続されるノード制御装置を含み、前記各ノード制御装置がコヒーレンス・ディレクトリを有するものにおいて、前記方法が、
前記各ノード制御装置の前記コヒーレンス・ディレクトリ内に、当該ノード制御装置を含む前記処理ノードをホーム・ノードとするキャッシュ・ラインの、遠隔的に保持される可能なコヒーレンス状態を示すステップを含む、請求項６記載の方法。
【請求項９】
前記コヒーレンス・ディレクトリ内において、１つの前記コヒーレンス状態を用いて、遠隔的に共用状態または最近状態に保持され得るキャッシュ・ラインを追跡するステップを含む、請求項８記載の方法。
【請求項１０】
前記第１の処理ノードの前記ノード制御装置の前記コヒーレンス・ディレクトリが、前記第１の処理ノードをホーム・ノードとするキャッシュ・ラインが、前記第２の処理ノードにおいて変更されていることを示す場合に限り、前記キャッシュ・ラインに対する要求を、前記第１の処理ノードの前記ノード制御装置から前記第２の処理ノードに転送するステップを含む、請求項８記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、データ処理のための方法及びシステムに関して、特に、不均等メモリ・アクセス（ＮＵＭＡ：non-uniform memory access）・データ処理システムにおけるデータ処理に関する。より詳細には、本発明は、共用介入により要求データを供給するＮＵＭＡデータ処理システム、及びＮＵＭＡデータ処理システムにおける方法に関する。
【０００２】
【従来の技術】
コンピュータ技術では、複数の個々のプロセッサの処理能力をタンデムに結合することにより、偉大なコンピュータ・システム性能が達成され得ることが知られている。マルチプロセッサ（ＭＰ）・コンピュータ・システムは、多数の異なるトポロジにより設計され、各アプリケーションの性能要求及びソフトウェア環境に応じて、様々なトポロジが特定のアプリケーションにとってより好適となる。最も一般的なＭＰコンピュータ・トポロジの１つは、対称マルチプロセッサ（ＳＭＰ）構成であり、そこでは複数のプロセッサが、システム・メモリや入出力（Ｉ／Ｏ）サブシステムなどの共通の資源を共用する。これらの共通資源は一般に、共用システム相互接続に結合される。こうしたコンピュータ・システムは対称型と呼ばれる。なぜなら、ＳＭＰコンピュータ・システム内の全てのプロセッサが、理想的には、共用システム・メモリ内に記憶されるデータに対して同一のアクセス待ち時間を有するからである。
【０００３】
ＳＭＰコンピュータ・システムは、比較的単純なプロセッサ間通信及びデータ共用方式の使用を可能にするが、ＳＭＰコンピュータ・システムは限られたスケーラビリティを有する。換言すると、典型的なＳＭＰコンピュータ・システムの性能は、一般に、スケール（すなわちより多くのプロセッサの追加）に伴い改善されると期待されるが、共用資源の利用が最適化されるインプリメンテーション依存のサイズを超えて、ＳＭＰをスケーリングしても、固有バス、メモリ、及び入出力（Ｉ／Ｏ）の帯域幅制限が大きな利点の獲得を阻害する。従って、システムのスケールが増大するとき、ＳＭＰトポロジ自身がある程度の帯域幅制限を受け、これは特にシステム・メモリにおいて顕著である。ＳＭＰコンピュータ・システムはまた、製造効率の観点からも十分にスケーリングできない。例えば、一部のコンポーネントは、単一プロセッサ及び小規模ＳＭＰコンピュータ・システムの両方において使用されるように最適化されるが、こうしたコンポーネントは大規模ＳＭＰで使用するには、しばしば非効率的である。逆に、大規模ＳＭＰ用に設計されたコンポーネントは、小規模システムにおいて使用するには、コストの観点から非現実的である。
【０００４】
結果的に、不均等メモリ・アクセス（ＮＵＭＡ）として知られるＭＰコンピュータ・システム・トポロジが、特定の追加の複雑化を犠牲にして、ＳＭＰコンピュータ・システムの多くの制限を解決する代替設計として登場した。典型的なＮＵＭＡコンピュータ・システムは多数の相互接続ノードを含み、各ノードは１つ以上のプロセッサ及びローカル・"システム"・メモリを含む。こうしたコンピュータ・システムは、不均等メモリ・アクセスを有すると言われる。なぜなら、各プロセッサが、そのローカル・ノードのシステム・メモリに記憶されるデータに対する方が、リモート・ノードのシステム・メモリに記憶されるデータに対するよりも、低いアクセス待ち時間を有するからである。ＭＵＭＡシステムは更に、データ・コヒーレンスが異なるノード内のキャッシュ間で維持されるか否かに従い、ノンコヒーレントまたはキャッシュ・コヒーレントとして分類される。キャッシュ・コヒーレントＮＵＭＡ（ＣＣ−ＭＵＭＡ）システムの複雑性は、その大部分が、各ノード内の様々なレベルのキャッシュ・メモリとシステム・メモリ間のデータ・コヒーレンスだけでなく、異なるノード内のキャッシュ・メモリとシステム・メモリ間のデータ・コヒーレンスを維持するために、ハードウェアに要求される追加の通信に帰属する。しかしながら、ＮＵＭＡコンピュータ・システムでは、ＮＵＭＡコンピュータ・システム内の各ノードが、小規模ＳＭＰシステムとして実現され得るので、従来のＳＭＰコンピュータ・システムのスケーラビリティ制限を解決する。従って、各ノード内の共用コンポーネントが、幾つかのプロセッサだけによる使用のために最適化され、システム全体は比較的低い待ち時間を維持しながら、大規模並列性の可用性による恩恵を受ける。
【０００５】
【発明が解決しようとする課題】
ＣＣ−ＮＵＭＡコンピュータ・システムに関わる基本性能問題は、ノードを結合する相互接続を介して伝送される通信トランザクションに関連する待ち時間である。特に、最も一般的なタイプのトランザクションである読出しタイプのトランザクションは、リモート・システム・メモリ内に存在するデータをターゲットとするとき、ローカル・システム・メモリ内に存在するデータをターゲットとする読出しトランザクションに比較して、２倍の待ち時間を有し得る。ローカル相互接続上の読出しトランザクションに対して、ノード相互接続を介して伝送される読出しトランザクションに関連付けられる比較的高い待ち時間により、ノード相互接続を介して伝送されるように要求される読出しタイプのトランザクションの数を低減すること、及びこうしたリモート読出しタイプのトランザクションの待ち時間を低減することが好ましい。
【０００６】
【課題を解決するための手段】
本発明によれば、不均等メモリ・アクセス（ＮＵＭＡ）・コンピュータ・システムにおける読出し要求の数及び待ち時間が、共用介入をサポートすることにより低減される。本発明によるＮＵＭＡコンピュータ・システムは、各々がノード相互接続に接続される少なくとも第１及び第２の処理ノードを含む。第１の処理ノードは、システム・メモリと、各々がそれぞれ第１及び第２のキャッシュ階層の１つを有する第１及び第２のプロセッサとを含み、これらがローカル相互接続により接続されて通信する。第２の処理ノードは、少なくともシステム・メモリと、第３のキャッシュ階層を有する第３のプロセッサとを含む。第１のキャッシュ階層及び第３のキャッシュ階層が、最近コヒーレンス状態の特定のキャッシュ・ラインの未変更コピーを同時に記憶することを許可され、そこからその特定のキャッシュ・ラインのコピーが共用介入により発信され得る。第２のキャッシュ階層による特定のキャッシュ・ラインに対する要求に応答して、第１のキャッシュ階層が共用介入により、ノード相互接続上の通信を使用すること無く、ローカル相互接続上の通信だけを使用し、特定のキャッシュ・ラインのコピーを第２のキャッシュ階層に発信する。
【０００７】
本発明の目的、特徴及び利点は、添付の図面に関連して述べられる本発明の実施例の詳細な説明から明らかとなろう。
【０００８】
【発明の実施の形態】
システム概要：
図１を参照すると、本発明に従うＮＵＭＡコンピュータ・システムの実施例が示される。図示の実施例は、例えばワークステーション、サーバ、またはメインフレーム・コンピュータとして実現される。図示のように、ＮＵＭＡコンピュータ・システム６は複数（Ｎ≧２）の処理ノード８ａ乃至８ｎを含み、それらがノード相互接続２２により相互接続される。処理ノード８ａ乃至８ｎは各々、Ｍ（Ｍ≧０）個のプロセッサ１０、ローカル相互接続１６、及びメモリ制御装置１７を介してアクセスされるシステム・メモリ１８を含む。プロセッサ１０ａ乃至１０ｍは好適には同一であり（但し必ずしも同一である必要はない）、ＩＢＭから提供されるＰｏｗｅｒＰＣプロセッサ・ライン内のプロセッサを含み得る。レジスタに加え、命令フロー論理及び実行ユニットがプログラム命令を実行するために使用され、これらは一般にプロセッサ・コア１２として示される。プロセッサ１０ａ乃至１０ｍの各々は、データをシステム・メモリ１８から関連プロセッサ・コア１２にステージするために使用されるオンチップ・キャッシュ階層を含む。各キャッシュ階層１４は少なくとも１レベルのキャッシュを含み、例えばレベル１（Ｌ１）キャッシュ及びレベル２（Ｌ２）キャッシュを含み、それぞれが８キロバイト乃至３２キロバイト（ＫＢ）及び１メガバイト乃至１６メガバイト（ＭＢ）の記憶容量を有する。従来通り、こうしたキャッシュはキャッシュ制御装置により管理され、キャッシュ制御装置はとりわけ、選択キャッシュ・ライン置換法及びコヒーレンス・プロトコルを実現する。本開示では、各プロセッサ１０及びその関連キャッシュ階層１４は、単一スヌーパと見なされる。
【０００９】
処理ノード８ａ乃至８ｎの各々は、ローカル相互接続１６とノード相互接続２２間に結合されるそれぞれのノード制御装置２０を含む。各ノード制御装置２０は、少なくとも２つの機能を実行することにより、リモート処理ノード８のためのローカル・エージェントとして作用する。第１に、各ノード制御装置２０は関連ローカル相互接続１６をスヌープし、リモート処理ノード８へのローカル通信トランザクション（例えば読出しタイプの要求）の伝送を容易にする。第２に、各ノード制御装置２０はノード相互接続２２上の通信トランザクションをスヌープし、関連ローカル相互接続１６上の関連通信トランザクションを支配する。各ローカル相互接続１６上の通信は、アービタ２４により制御される。アービタ２４は、後述のように、プロセッサ１０により生成されるバス要求信号にもとづき、ローカル相互接続１６へのアクセスを調整し、ローカル相互接続１６上でスヌープされた通信トランザクションのために、コヒーレンス応答をコンパイルする。
【００１０】
ローカル相互接続１６は、メザニン・バス・ブリッジ２６を介してメザニン・バス３０に結合される。メザニン・バス３０は、例えば周辺コンポーネント相互接続（ＰＣＩ）ローカル・バスとして実現され得る。メザニン・バス・ブリッジ２６は、プロセッサ１０がＩ／Ｏ装置３２及び記憶装置３４の中の装置を直接アクセスする低待ち時間経路と、Ｉ／Ｏ装置３２及び記憶装置３４がシステム・メモリ１８をアクセスする高帯域幅経路の両方を提供する。ここでＩ／Ｏ装置３２及び記憶装置３４は、バス・メモリまたはＩ／Ｏアドレス空間にマップされる。Ｉ／Ｏ装置３２は例えば、表示装置、キーボード、グラフィカル・ポインタ、及び外部ネットワークまたは接続装置への接続のためのシリアル及びパラレル・ポートを含む。他方、記憶装置３４は光ディスクまたは磁気ディスクを含み得、これらはオペレーティング・システム及びアプリケーション・ソフトウェアのための不揮発性記憶装置を提供する。
【００１１】
メモリ構成：
ＭＵＭＡコンピュータ・システム６内の全てのプロセッサ１０が、１つの物理メモリ空間を共用し、このことは各物理アドレスが、システム・メモリ１８の１つ内の単一の位置にだけ関連付けられることを意味する。従って、システム・メモリの全体の内容が、一般にＮＵＭＡコンピュータ・システム６内の任意のプロセッサ１０によりアクセスされ、システム・メモリ１８間で区分化されると見なされる。例えば、４つの処理ノード８を有する本発明の実施例では、ＮＵＭＡコンピュータ・システムが、汎用メモリ領域及び予約領域の両方を含む、１６ギガバイト（ＧＢ）の物理アドレス空間を有し得る。汎用メモリ領域は５００ＭＢセグメントに分割され、４つの各々の処理ノード８が４セグメント毎に割当てられる。予約領域は約２ＧＢを含み得、システム制御、周辺メモリ及びＩ／Ｏ領域を含み、これらの各々がそれぞれの１つの処理ノード８に割当てられる。
【００１２】
説明の都合上、処理ノード８はそのシステム・メモリ１８内に特定のデータを記憶し、そのデータに対するホーム・ノードと呼ばれる。逆に、他の処理ノード８ａ乃至８ｎはその特定のデータに関して、リモート・ノードと呼ばれる。
【００１３】
メモリ・コヒーレンス：
各システム・メモリ１８内に記憶されるデータは、ＮＵＭＡコンピュータ・システム６内の任意のプロセッサ１０により要求され、アクセスされ、変更され得るので、ＮＵＭＡコンピュータ・システム６はキャッシュ・コヒーレンス・プロトコルを実行し、同一の処理ノード内のキャッシュ間、及び異なる処理ノード内のキャッシュ間の両方において、コヒーレンスを維持する。従って、ＮＵＭＡコンピュータ・システム６は、ＣＣ（キャッシュ・コヒーレント）−ＮＵＭＡコンピュータ・システムとして適切に分類される。実行される特定のキャッシュ・コヒーレンス・プロトコルは、インプリメンテーション依存であるが、本発明の好適な実施例では、公知の変更（Modified）、排他（Exclusive）、共用（Shared）、無効（Invalid）（すなわちＭＥＳＩ）プロトコルの変形として、５番目のＲ（最近（Recent））状態を含む。これについては、前記参照した係属中の米国特許出願で詳述されている。後述のように、Ｒ状態は、共用され得る未変更キャッシュ・ラインを保持するキャッシュが、読出しタイプの要求（例えば読出しまたは変更目的読出し（ＲＷＩＴＭ：Read-with-Intent-to-Modify））に応答して、そのキャッシュ・ラインを直接別のキャッシュに発信することを可能にする。
【００１４】
以下では、キャッシュ階層１４及びアービタ２４が、従来のＲ−ＭＥＳＩプロトコルを実行すると仮定し、ノード制御装置２０がＭ状態、Ｓ状態及びＩ状態を認識し、Ｅ状態がＭ状態に併合され、Ｒ状態がＳ状態に併合されるものと見なす。すなわち、ノード制御装置２０は、リモート・キャッシュにより排他的に保持されるデータが、それが実際に変更されたか否かに関わらず、変更されたものと仮定し、遠隔的に保持されたデータに対して、Ｓ状態とＲ状態とを区別しない。
【００１５】
相互接続アーキテクチャ：
ローカル相互接続１６及びノード相互接続２２は、それぞれ任意のバス・ベースの同報アーキテクチャ、スイッチ・ベースの同報アーキテクチャ、またはスイッチ・ベースの非同報アーキテクチャにより実現され得る。しかしながら、好適な実施例では、少なくともノード相互接続２２は、ＩＢＭにより開発された６ｘｘ通信プロトコルにより管理されるスイッチ・ベースの非同報相互接続として実現される。ローカル相互接続１６及びノード相互接続２２は、トランザクションの分割を可能にし、このことはすなわち、通信トランザクションを構成するアドレス及びデータ保有期間の間に、固定のタイミング関係が存在せず、またデータ・パケットが、関連付けられるアドレス・パケットと異なって順序付けられることを意味する。ローカル相互接続１６及びノード相互接続２２の使用はまた、好適には、通信トランザクションをパイプライン化することにより向上され、これは続く通信トランザクションが、前の通信トランザクションのマスタが各受信者からコヒーレンス応答を受信するよりも先に、発信されることを可能にする。
【００１６】
実現される相互接続アーキテクチャのタイプに関係無しに、少なくとも３つのタイプの"パケット"、すなわちアドレス、データ、及びコヒーレンス応答が、ノード相互接続２２を介して処理ノード８間で、及びローカル相互接続１６を介してスヌーパ間で、情報を伝達するために使用される（ここではパケットは、情報の個別単位を指し示すために総称的に使用される）。次に、表１、表２を参照すると、アドレス及びデータ・パケットの関連フィールド及び定義の概要が、それぞれ示される。
【表１】
0003644587.tif 000002
【表２】
0003644587.tif 000003
【００１７】
表１及び表２に示されるように、受信ノードまたはスヌーパが、各パケットが属する通信トランザクションを判断することを可能にするために、通信トランザクション内の各パケットが、トランザクション・タグにより識別される。当業者であれば分かるように、追加のフロー制御論理及び関連フロー制御信号が、有限な通信資源の利用を調整するために使用され得る。
【００１８】
各処理ノード８内において、ステータス及びコヒーレンス応答が、各スヌーパとローカル・アービタ２４間で通信される。ステータス及びコヒーレンス通信のために使用される、ローカル相互接続１６内の信号線が、表３に要約して示される。
【表３】
0003644587.tif 000004
【００１９】
ローカル相互接続１６のAResp及びAStat信号線を介して伝送されるステータス及びコヒーレンス応答は、好適には、関連するアドレス・パケットと固定の、しかしながらプログラマブルなタイミング関係を有する。例えば、AStatOut採決は、各スヌーパがローカル相互接続１６上を伝送されるアドレス・パケットを成功裡に受信したか否かの予備指示を提供し、アドレス・パケットの受信に続く第２サイクルにおいて要求され得る。アービタ２４はAStatOut採決をコンパイルし、固定のしかしながらプログラマブルなサイクル数（例えば１サイクル）の後に、AStatIn採決を発行する。可能なAStat採決が、表４に要約されて示される。
【表４】
0003644587.tif 000005
【００２０】
AStatIn期間に続き、固定のしかしながらプログラマブルなサイクル数（例えば２サイクル）の後に、ARespOut採決が要求され得る。アービタ２４はまた、好適には次のサイクルの間に、各スヌーパのARespOut採決をコンパイルし、ARespIn採決を転送する。可能なAResp採決は、好適には、表５に示されるコヒーレンス応答を含む。表５はこうしたAResp採決を優先順位の降順に示す。
【表５】
0003644587.tif 000006
【００２１】
AResp採決の再実行は、通常ノード制御装置２０により発行され、これはスヌープされた要求が長い待ち時間を有し（例えば要求がリモート処理ノード８において、プロセッサ１０またはシステム・メモリ１８によりサービスされる）、要求元が後にトランザクションを再発行するように命令されることを示す。従って、AResp採決の再試行と比較して、再実行は、（トランザクションの発信者ではなく、）再実行を採決したトランザクションの受信者に対して、後に通信トランザクションの再発行を指示する責任を負わせる。
【００２２】
ノード制御装置：
図２を参照すると、図１のＮＵＭＡコンピュータ・システム６内のノード制御装置２０のより詳細なブロック図が示される。図２に示されるように、各ノード制御装置２０はローカル相互接続１６とノード相互接続２２との間に結合され、トランザクション受信ユニット（ＴＲＵ）４０、トランザクション送信ユニット（ＴＳＵ）４２、データ受信ユニット（ＤＲＵ）４４、及びデータ送信ユニット（ＤＳＵ）４６を含む。ＴＲＵ４０、ＴＳＵ４２、ＤＲＵ４４及びＤＳＵ４６は、例えばフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）またはアプリケーション特定集積回路（ＡＳＩＣ）により実現される。図示のように、ノード制御装置２０を通じるアドレス及びデータ経路は二股に分岐され、アドレス（及びコヒーレンス）・パケットがＴＲＵ４０及びＴＳＵ４２により処理され、データ・パケットがＤＳＵ４４及びＤＲＵ４６により処理される。
【００２３】
ＴＲＵ４０は、ノード相互接続２２からのトランザクション・フローを示すように指定され、ノード相互接続２２からアドレス及びコヒーレンス・パケットを受諾し、トランザクションをローカル相互接続１６上に発行し、応答をＴＳＵ４２に転送する責任がある。ＴＲＵ４０は応答マルチプレクサ５２を含み、これはノード相互接続２２からパケットを受信し、選択されたパケットをバス・マスタ５４及びＴＳＵ４２内のコヒーレンス応答論理５６の両方に受け渡す。応答マルチプレクサ５２からのアドレス・パケットの受信に応答して、バス・マスタ５４は、そのローカル相互接続１６上で通信トランザクションを開始する。この通信トランザクションは、受信アドレス・パケットにより示される通信トランザクションと同一のまたは異なるタイプである。
【００２４】
ＴＳＵ４２は、その用語により示されるように、ノード相互接続２２上に転送されるトランザクションのコンジット（conduit）であり、ノード相互接続２２上に発信された、まだ完了されていない通信トランザクションの属性を一時的に記憶する複数エントリ保留バッファ６０を含む。保留バッファ６０のエントリに記憶されるトランザクション属性は、好適には、少なくともトランザクションのアドレス（タグを含む）、トランザクションのタイプ、及び期待されるコヒーレンス応答の数を含む。各保留バッファ・エントリは関連ステータスを有し、これはヌルにセットされて、保留バッファ・エントリが消去され得ることを示すか、再実行にセットされ、トランザクションがまだ保留であることを示す。ノード相互接続２２上へのアドレス・パケットの発信に加え、ＴＳＵ４２はＴＲＵ４０と対話して、メモリ要求トランザクションを処理し、またコマンドをＤＲＵ４４及びＤＳＵ４６に発行し、ローカル相互接続１６とノード相互接続２２間のデータの転送を制御する。ＴＳＵ４２はまた、コヒーレンス応答論理５６により、ノード相互接続２２のために選択された（例えばＭＳＩ）コヒーレンス・プロトコルを実行し、ディレクトリ制御論理５８により、コヒーレンス・ディレクトリ５０を保守する。
【００２５】
コヒーレンス・ディレクトリ５０は、ホーム・ノードであるローカル処理ノードにとって、リモート・ノード内のキャッシュにチェックアウトされたデータ（例えばキャッシュ・ライン）のシステム・メモリ・アドレスの指示を記憶する。各キャッシュ・ラインのアドレス指示は、そのキャッシュ・ラインのコピーを有する各リモート処理ノードの識別子、及び各こうしたリモート処理ノードにおけるそのキャッシュ・ラインのコヒーレンス・ステータスに関連して記憶される。コヒーレンス・ディレクトリ５０内のエントリの可能なコヒーレンス状態が、表６に示される。
【表６】
0003644587.tif 000007
【００２６】
表６に示されるように、リモート処理ノードにより保持されるキャッシュ・ラインのコヒーレンス状態の知識は不明瞭である。この不明瞭さは、遠隔的に保持されるキャッシュ・ラインが、ホーム・ノードのノード制御装置２０に通知することなく、Ｒ、ＳまたはＥからＩに、或いはＥからＭに遷移し得る事実による。
【００２７】
共用介入の概要：
プロセッサ読出しタイプの要求の待ち時間を低減するために、本発明は共用介入をサポートする。すなわち、読出しタイプの要求に応答して、未変更（すなわちＥまたはＲ）状態のデータを保持するキャッシュにより、データを発信する。ＮＵＭＡコンピュータ・システム６内の複数のキャッシュが、同一の未変更キャッシュ・ラインを同時に保持し得るので、共用介入により要求キャッシュ・ラインを発信するキャッシュを調整する機構が必要とされ得る。前記係属中の米国特許出願で述べられるように、この機構はＲ（Recent）キャッシュ・コヒーレンス状態である。本発明によれば、特定の処理ノード８内の１つのキャッシュ階層１４だけが、ある時点においてＲ状態の特定のキャッシュ・ラインを保持できる。しかしながら、複数の処理ノード８内のキャッシュ階層１４が、Ｒ状態の同一のキャッシュ・ラインを同時に保持し得る。
【００２８】
本発明は、全ての読出しトランザクションに応答して、Ｒ状態またはＥ状態で保持されるキャッシュ・ラインの共用介入をサポートし、ＲＷＩＴＭトランザクションに応答して、Ｅ状態で保持されるキャッシュ・ラインの共用介入をサポートする。ＲＷＩＴＭトランザクションに応答した、Ｒ状態で保持されるキャッシュ・ラインの共用介入は禁止される。なぜなら、コヒーレンスを維持するために、こうしたＲＷＩＴＭトランザクションは、全ての処理ノード８から見えるようにされなければならないからである。ＲＷＩＴＭトランザクションにより要求されるＲ状態キャッシュ・ラインに対する、共用介入の禁止が存在しない場合、共用介入を介して局所的にサービスされるＲＷＩＴＭトランザクションを他の処理ノード８に知らせる、追加のトランザクション・オーバヘッドが要求され、この追加のトランザクション・オーバヘッドが共用介入の性能利点を著しく低減させる。
【００２９】
要求元キャッシュ階層における要求キャッシュ・ラインのコヒーレンス状態：
ＲＷＩＴＭトランザクションにより要求されるキャッシュ・ラインの受信に応答して、要求元キャッシュ階層は常に、キャッシュ・ラインを変更状態で記憶する。しかしながら、読出しトランザクションに応答して獲得されるキャッシュ・ラインのコヒーレンス状態は、要求キャッシュ・ラインの発信元に依存する。表７は、読出しミスに続き、キャッシュ・ラインを要求する読出しトランザクションを発行するキャッシュ階層１４における状態遷移を示す。
【表７】
0003644587.tif 000008
【００３０】
表７に示されるように、キャッシュ階層１４がARespIn共用コヒーレンス採決を受信する場合、キャッシュ階層１４のキャッシュ制御装置は、同一の処理ノード８内の他のスヌーパが、Ｒ状態またはＭ状態の要求キャッシュ・ラインを保持せず、要求キャッシュ・ラインがローカル・システム・メモリ１８により、またはノード制御装置２０を介してリモート・システム・メモリ１８により供給されることを知る。従って、要求元キャッシュ階層１４がローカル相互接続１６を介して要求キャッシュ・ラインを受信するとき、キャッシュ階層１４のキャッシュ制御装置は要求キャッシュ・ラインをキャッシュし、そのコヒーレンス状態を最近（Recent）にセットする。これはすなわち、要求キャッシュ・ラインを保持する複数のローカル・キャッシュ階層１４の内、要求元キャッシュ階層１４が共用介入により、要求キャッシュ・ラインを発信する責任があることを意味する。
【００３１】
要求元キャッシュ階層１４が読出し要求に応答して、ARespIn Nullコヒーレンス採決を受信する場合、要求元キャッシュ階層１４のキャッシュ制御装置は、どのローカル・キャッシュ階層１４も要求キャッシュ・ラインのコピーを記憶せず、要求キャッシュ・ラインがローカル・システム・メモリ１８により、またはノード制御装置２０を介してリモート・システム・メモリにより発信されることを知る。要求キャッシュ・ラインが要求元キャッシュ階層１４により受信されるとき、要求キャッシュ・ラインが排他状態でキャッシュされる。
【００３２】
要求元キャッシュ階層１４がARespIn共用介入または変更介入採決を受信する場合、要求元プロセッサ１０におけるキャッシュ制御装置は、要求キャッシュ・ラインが同一の処理ノード１０内の別のスヌーパにより発信されることを知り、要求キャッシュ・ラインの受信に際して、それをＲ状態で記憶する。
【００３３】
スヌーピング・キャッシュ階層における要求キャッシュ・ラインのコヒーレンス状態：
ＲＷＩＴＭトランザクションをスヌープするキャッシュ階層１４は、常に、要求キャッシュ・ラインのそのコピーのコヒーレンス状態を、無効状態に更新する。好適な実施例に従う、読出しトランザクションの受信に応答するスヌーピング・キャッシュ階層１４の状態遷移が、表８に示される。
【表８】
0003644587.tif 000009
【００３４】
表８に示されるように、キャッシュ階層１４が読出し要求をスヌープし、要求キャッシュ・ラインを排他状態または最近状態で保持する場合、スヌーピング・キャッシュ階層１４が共用介入ARespOut採決を提供し、アービタ２４からの共用介入ARespIn採決の受信に応答して、要求キャッシュ・ラインをローカル相互接続１６上に発信し、要求キャッシュ・ラインのコピーのコヒーレンス状態を、共用状態に更新する。同様に、キャッシュ階層１４が、ローカル・プロセッサ１０により発行された読出し要求をスヌープし、要求キャッシュ・ラインを変更状態で保持する場合、スヌーピング・キャッシュ階層１４が変更介入ARespOut採決を提供し、変更介入ARespIn採決の受信に応答して、要求キャッシュ・ラインをローカル相互接続１６上に発信し、要求キャッシュ・ラインのコピーのコヒーレンス状態を、共用状態に更新する。他方、スヌーピング・キャッシュ階層１４が要求キャッシュ・ラインを共用状態または無効状態で保持する場合、スヌーピング・キャッシュ階層１４は適切なARespOut採決（すなわち、それぞれ共用またはヌル）を提供するが、要求キャッシュ・ラインを発信しない。
【００３５】
表７及び表８に示されない状態及びオペレーションでは、キャッシュ階層１４のコヒーレンス状態遷移及びコヒーレンス応答は、従来のＭＥＳＩプロトコルに従い実行され、最近状態は共用状態のように扱われる。
【００３６】
ノード制御装置のコヒーレンス・プロトコル振舞い：
共用介入が可能にされる読出しタイプのトランザクションに応答するノード制御装置２０のコヒーレンス振舞いは、要求元キャッシュ階層１４の位置、及び要求キャッシュ・ラインのホーム・ノードに関連して対象となるノード制御装置２０に依存する。一般に、ＮＵＭＡコンピュータ・システムにおいて、４つの異なる要求状況が可能である。
１）要求キャッシュ・ラインのホーム・ノードのプロセッサによる要求は、ホーム・ノードのノード制御装置により受信される。
２）リモート・ノードのプロセッサによる要求は、要求キャッシュ・ラインのホーム・ノードのノード制御装置により受信される。
３）（キャッシュ・ラインに対して）リモート・ノードのプロセッサによる要求は、プロセッサ自身のノードのノード制御装置により受信される。
４）リモート・ノードのプロセッサによる要求は、リモート・ノードのノード制御装置により受信される。
【００３７】
表９は、読出しトランザクションの受信に応答する、前記第１の状況におけるノード制御装置の振舞いを示す。表９に示されるように、読出しトランザクションがホーム・ノードのノード制御装置２０によりローカル・プロセッサ１０から受信され、コヒーレンス・ディレクトリ５０内で、要求キャッシュ・ラインがリモート処理ノード８において変更と示されるとき、アービタ２４からのARespIn再実行採決の受信に応答して、介入が可能にされ（すなわちＮ＝１）、ノード制御装置２０がARespOut再実行を採決し、読出しトランザクションを指示されたリモート処理ノード８に転送する。要求キャッシュ・ラインがリモート処理ノード８において有効（変更または排他）の場合、リモート処理ノード８は変更介入または共用介入により、要求キャッシュ・ラインの更新コピーをノード制御装置２０に提供する。それ以外では（すなわち要求キャッシュ・ラインがリモート処理ノード８において無効の場合）、リモート処理ノード８はヌル応答をノード制御装置２０に提供する。
【００３８】
いずれの場合にも、ノード制御装置２０はローカル・プロセッサ１０に読出しトランザクションを再発行するように要求する。再発行された読出しトランザクションの受信に応答して、ノード制御装置２０は、キャッシュ・ラインが変更介入により発信された場合、ARespOut変更介入（ＭＩ）を採決し、要求キャッシュ・ラインが共用介入により発信された場合、ARespOut共用介入（ＳＩ）を採決し、それ以外では、ヌルを採決する。ノード制御装置２０が再発行された読出しトランザクションに対して、ＭＩまたはＳＩのARespIn採決を受信する場合（Ｒ＝１）、ノード制御装置２０は要求キャッシュ・ラインをローカル相互接続１６上に発信し、コヒーレンス・ディレクトリ５０内の要求キャッシュ・ラインのコヒーレンス状態を、共用に更新する。或いは、アービタ２４がヌルのARespIn採決を発行する場合、システム・メモリ１８は要求キャッシュ・ラインを要求元プロセッサ１０に発信し、ノード制御装置が要求キャッシュ・ラインのコヒーレンス状態を無効に更新する。要求キャッシュ・ラインがコヒーレンス・ディレクトリ５０内で共用または無効と示され、ARespIn採決が共用またはヌルの場合にも、システム・メモリ１８は同様に要求キャッシュ・ラインを発信する。しかしながら、これらの場合では、読出しトランザクションは任意のリモート処理ノード８に転送される。
【表９】
0003644587.tif 000010
【００３９】
ＲＷＩＴＭトランザクションの受信に応答するノード制御装置２０のオペレーションは、以下の違いを除き、表９に示されるものと同一である。第１に、コヒーレンス・ディレクトリ５０内の要求キャッシュ・ラインのコヒーレンス状態が、全ての場合において更新されるか、無効に維持される。第２に、読出しトランザクションではなしにＲＷＩＴＭトランザクションが、ノード制御装置２０により、コヒーレンス・ディレクトリ５０内において、要求キャッシュ・ラインを変更状態で保持すると示されるリモート処理ノード８に転送される。第３に、要求キャッシュ・ラインがコヒーレンス・ディレクトリ５０内において、リモート処理ノード８において共用と示される場合、ノード制御装置２０はＤＣｌａｉｍトランザクションをリモート処理ノード８に発行し、リモード処理ノード８において、要求キャッシュ・ラインのコピーを無効にする。
【００４０】
表１０を参照すると、ノード制御装置のオペレーションは前記第２の状況、すなわちリモート・ノードのプロセッサによる読出しトランザクションが、ノード相互接続２２を介して、要求キャッシュ・ラインのホーム・ノードのノード制御装置２０により受信される状況を示す。表１０に示されるように、要求キャッシュ・ラインがコヒーレンス・ディレクトリ５０内において、要求元処理ノード８において無効と示される場合、ノード制御装置２０はARespOut期間内にヌルを採決し、ＳＩまたはヌルのARespIn採決、及び続く要求キャッシュ・ラインに応答して、要求キャッシュ・ラインを要求元処理ノード８に提供する。ノード制御装置２０はまた、コヒーレンス・ディレクトリ５０内のそのキャッシュ・ラインの状態を、無効から共用に更新する。要求キャッシュ・ラインが要求元処理ノード８において共用と示される場合も、ノード制御装置２０は同様に振舞うが、キャッシュ・ラインのコヒーレンス状態を更新しない。
【００４１】
表１０の第３行乃至第５行に示されるように、コヒーレンス・ディレクトリ５０内において、要求キャッシュ・ラインがそのホーム・ノード及び要求元処理ノード８とは異なる第３のノードにおいて変更と示される場合、ノード制御装置２０は追加のオペレーションを実行しなければならない。特に、ノード制御装置２０はARespOut再実行を採決し、最初のローカル読出しトランザクション（Ｒ＝０）が後に再発行されるように指示する。次に、ノード制御装置２０は読出しトランザクションを第３のノードに転送し、要求キャッシュ・ラインが第３のノードにおいて変更されたか否かを確認する。コヒーレンス・ディレクトリ５０により使用されるコヒーレンス・プロトコルの不明瞭さにより、次の３つの可能性が存在する。すなわち、１）要求キャッシュ・ラインが第３のノードにおいて変更された（第４行）、２）要求キャッシュ・ラインが第３のノードにおいて排他状態に保持される（第３行）、或いは３）要求キャッシュ・ラインが第３のノードにおいて無効である（第５行）。要求キャッシュ・ラインが第３のノードにおいて変更または排他の場合、第３のノードは介入により、要求キャッシュ・ラインをノード制御装置２０に発信する。それ以外では、第３のノードが転送された読出しトランザクションに、ヌル応答により応答する。ノード制御装置２０がホーム・ノードにおいて読出しトランザクションを再発行するとき（Ｒ＝１）、ノード制御装置２０は、第３のノードから受信される応答に応じて、ARespIn変更介入（ＭＩ）、共用介入（ＳＩ）またはヌルを採択する。ノード制御装置２０は次に、ＭＩまたはＳＩのARespInに応答して、要求キャッシュ・ラインを要求元処理ノード８に発信するか、ヌルのARespIn採決に応答して、ホーム・ノードのシステム・メモリ１８から受信される要求キャッシュ・ラインのコピーを転送する。ノード制御装置２０はまた、要求キャッシュ・ラインが第３のノードにおいて有効な場合、コヒーレンス・ディレクトリ５０内の要求キャッシュ・ラインのコヒーレンス状態を、変更から共用に更新し、要求キャッシュ・ラインが第３のノードにおいて無効の場合、変更から無効に更新する。
【表１０】
0003644587.tif 000011
【００４２】
ノード制御装置２０において受信される読出しタイプのトランザクションが、読出しトランザクションではなく、ＲＷＩＴＭトランザクションであった場合、ノード制御装置２０のオペレーションは、以下の違いを除き、大方表１０に関連して述べたオペレーションと同じである。最初の２行では、メモリ・ディレクトリ５０内のコヒーレンス状態が変更に更新され、第３行乃至第５行では、コヒーレンス状態が３つの全ての場合において無効に更新される。第３行乃至第５行では、第３のノードに向けてノード相互接続２２上に発行されるトランザクションが、読出しトランザクションではなく、ＲＷＩＴＭトランザクションである。
【００４３】
表１１を参照すると、前記第３の状況、すなわちリモート・ノードのプロセッサによる読出しトランザクションが、ローカル相互接続１６を介して、要求元プロセッサのノードのノード制御装置２０により受信される状況における、ノード制御装置のオペレーションが示される。表１１は、要求キャッシュ・ラインの可能なコヒーレンス状態遷移を示さない。なぜなら、ホーム・ノードのコヒーレンス・ディレクトリ５０だけが、コヒーレンス状態を追跡するからである。
【００４４】
表１１の第１列に示されるように、ノード制御装置２０は各動作状況において、再実行ARespOutを採決し、要求キャッシュ・ラインが、異なる処理ノード８に割当てられた物理メモリ空間内に存在することを示す。第６行に示されるように、読出しトランザクションが共用介入または変更介入により局所的にサービスされ得ない限り、アービタ２４はARespIn再実行を採決し、ノード制御装置２０が読出しトランザクションを要求キャッシュ・ラインのホーム・ノードに転送する。ホーム・ノードは次に、ホーム・ノードにおける読出しトランザクションに応答して、ノード制御装置２０に最終コヒーレンス応答を提供し、コヒーレンス応答が再試行以外の場合、要求キャッシュ・ラインも一緒に提供する。読出し要求が要求元処理ノード８において再発行されるとき、ノード制御装置２０は、ARespOut期間中にホーム・ノードから受信されるコヒーレンス応答を提供し、次にARespIn採決が再試行以外の場合、要求キャッシュ・ラインを提供する。また、ＲＷＩＴＭトランザクションに対するオペレーションは、第１行乃至第５行の各々において、ホーム・ノードに転送されるトランザクションがＲＷＩＴＭトランザクションである以外は、表１１に提供されるオペレーションと同一である。
【表１１】
0003644587.tif 000012
【００４５】
最後に、表１２を参照すると、第４の状況、すなわち要求元プロセッサ１０及びノード制御装置２０の両方が、読出しトランザクション内で指定されるキャッシュ・ラインのホーム・ノードに対して、リモート（すなわち第３の）・ノードに存在する状況における、ノード制御装置２０のオペレーションが示される。表１２に示されるように、ノード制御装置２０は、別ノードをそのホーム・ノードとして有するキャッシュ・ラインを要求する、そのローカル相互接続１６上の読出しトランザクションに応答して、ヌルのARespOutを採決する。ノード制御装置２０は、読出しトランザクションにより受信されるARespIn採決をホーム・ノードに転送し、ローカルARespIn採決が変更介入または共用介入の場合、要求キャッシュ・ラインを提供する。読出しタイプのトランザクションがＲＷＩＴＭトランザクションであった場合、ノード制御装置２０のオペレーションは、表１２に示されるオペレーションと同一である。
【表１２】
0003644587.tif 000013
【００４６】
前述のように、本発明はデータの共用介入をサポートすることにより、ノード相互間読出し要求の数を低減し、読出し要求の待ち時間を低減する、ＮＵＭＡコンピュータ・システムを提供する。本発明によれば、各処理ノードが、同一のキャッシュ・ラインを非排他最近状態に保持するスヌーパ（例えばキャッシュ階層）を有し、スヌーパがそこからキャッシュ・ラインを共用介入により発信できる。重要な点は、処理ノードにおける共用介入によるキャッシュ・ラインの発信が、他の処理ノードへの通知、或いはノード相互接続を介して転送されるトランザクションを要求しないことである。
【００４７】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４８】
（１）ノード相互接続と、
前記ノード相互接続に接続され、システム・メモリと、ローカル相互接続により接続される第１及び第２のキャッシュ階層のそれぞれ１つを有する第１及び第２のプロセッサとを含む、第１の処理ノードと、
前記ノード相互接続に接続され、少なくともシステム・メモリと、第３のキャッシュ階層を有する第３のプロセッサとを含む第２の処理ノードと
を含み、
前記第１のキャッシュ階層及び前記第３のキャッシュ階層の各々が、特定のキャッシュ・ラインの未変更コピーを最近コヒーレンス状態で同時に記憶し、そこから前記特定のキャッシュ・ラインの前記コピーが共用介入により発信され、
前記第２のキャッシュ階層による要求に応答して、前記ノード相互接続上の通信無しに、前記ローカル相互接続上の通信を利用し、前記第１のキャッシュ階層が共用介入により、前記特定のキャッシュ・ラインのコピーを前記第２のキャッシュ階層に発信する、
コンピュータ・システム。
（２）前記要求が読出し要求である、前記（１）記載のコンピュータ・システム。
（３）前記第１のキャッシュ階層が選択キャッシュ・ラインの未変更コピーを排他状態で記憶する場合に限り、変更目的読出し要求に応答して、前記第１のキャッシュ階層が共用介入により、前記選択キャッシュ・ラインのコピーを発信する、前記（１）記載のコンピュータ・システム。
（４）前記第１及び第２の処理ノードの各々が、前記ノード相互接続に接続されるノード制御装置を含み、前記各ノード制御装置が、当該ノード制御装置を含む前記処理ノードをホーム・ノードとするキャッシュ・ラインの、遠隔的に保持される可能なコヒーレンス状態を示すコヒーレンス・ディレクトリを有する、前記（１）記載のコンピュータ・システム。
（５）前記コヒーレンス・ディレクトリが１つの前記コヒーレンス状態を用いて、遠隔的に共用状態または最近状態に保持され得るキャッシュ・ラインを追跡する、前記（４）記載のコンピュータ・システム。
（６）前記第１の処理ノードの前記ノード制御装置の前記コヒーレンス・ディレクトリが、前記第１の処理ノードをホーム・ノードとするキャッシュ・ラインが、前記第２の処理ノードにおいて変更されていることを示す場合に限り、前記第１の処理ノードの前記ノード制御装置が、前記キャッシュ・ラインに対する要求を前記第２の処理ノードに転送する、前記（４）記載のコンピュータ・システム。
（７）コンピュータ・システムにおける通信方法であって、前記コンピュータ・システムが
ノード相互接続と、
前記ノード相互接続に接続され、システム・メモリと、ローカル相互接続により接続される第１及び第２のキャッシュ階層のそれぞれ１つを有する第１及び第２のプロセッサとを含む、第１の処理ノードと、
前記ノード相互接続に接続され、少なくともシステム・メモリと、第３のキャッシュ階層を有する第３のプロセッサとを含む第２の処理ノードと
を含むものにおいて、
前記第１のキャッシュ階層及び前記第３のキャッシュ階層内に、特定のキャッシュ・ラインの未変更コピーを最近コヒーレンス状態で同時に記憶し、そこから前記特定のキャッシュ・ラインの前記コピーが共用介入により発信されるようにする記憶ステップと、
前記第２のキャッシュ階層による要求に応答して、前記ノード相互接続上の通信無しに、前記ローカル相互接続上の通信を利用し、前記第１のキャッシュ階層が共用介入により、前記特定のキャッシュ・ラインのコピーを前記第２のキャッシュ階層に発信するステップと
を含む、方法。
（８）前記要求が読出し要求である、前記（７）記載の方法。
（９）選択キャッシュ・ラインの未変更コピーを前記第１のキャッシュ階層に記憶するステップと、
変更目的読出し要求に応答して、前記選択キャッシュ・ラインが排他状態で保持される場合に限り、共用介入により、前記第１のキャッシュ階層から前記選択キャッシュ・ラインのコピーを発信するステップと
を含む、前記（７）記載の方法。
（１０）前記第１及び第２の処理ノードの各々が、前記ノード相互接続に接続されるノード制御装置を含み、前記各ノード制御装置がコヒーレンス・ディレクトリを有するものにおいて、前記方法が、
前記各ノード制御装置の前記コヒーレンス・ディレクトリ内に、当該ノード制御装置を含む前記処理ノードをホーム・ノードとするキャッシュ・ラインの、遠隔的に保持される可能なコヒーレンス状態を示すステップを含む、前記（７）記載の方法。
（１１）前記コヒーレンス・ディレクトリ内において、１つの前記コヒーレンス状態を用いて、遠隔的に共用状態または最近状態に保持され得るキャッシュ・ラインを追跡するステップを含む、前記（１０）記載の方法。
（１２）前記第１の処理ノードの前記ノード制御装置の前記コヒーレンス・ディレクトリが、前記第１の処理ノードをホーム・ノードとするキャッシュ・ラインが、前記第２の処理ノードにおいて変更されていることを示す場合に限り、前記キャッシュ・ラインに対する要求を、前記第１の処理ノードの前記ノード制御装置から前記第２の処理ノードに転送するステップを含む、前記（１０）記載の方法。
【図面の簡単な説明】
【図１】本発明に従うＮＵＭＡコンピュータ・システムの実施例を示す図である。
【図２】図１に示されるノード制御装置の詳細ブロック図である。
【符号の説明】
６  ＮＵＭＡコンピュータ・システム
８  リモート処理ノード
１０  プロセッサ
１２  プロセッサ・コア
１４  関連キャッシュ階層
１６  ローカル相互接続
１７  メモリ制御装置
１８  システム・メモリ
２０  ノード制御装置
２２  ノード相互接続
２４  アービタ
２６  メザニン・バス・ブリッジ
３０  メザニン・バス
３２  Ｉ／Ｏ装置
３４  記憶装置
４０  トランザクション受信ユニット（ＴＲＵ）
４２  トランザクション送信ユニット（ＴＳＵ）
４４  データ受信ユニット（ＤＲＵ）
４６  データ送信ユニット（ＤＳＵ）
５０  コヒーレンス・ディレクトリ
５２  応答マルチプレクサ
５４  バス・マスタ
５６  コヒーレンス応答論理
５８  ディレクトリ制御論理
６０  複数エントリ保留バッファ
【図１】
0003644587.tif 000014
【図２】
0003644587.tif 000015