(57)【要約】【課題】  本発明では、マルチプロセッサ・マルチクラスタ・システムにおけるデータアクセスの効率を向上させるための方法および装置が提供される。【解決手段】  マルチクラスタ・システムにおいて処理の数を削減するための機構が提供される。一例では、要求クラスタおよび遠隔クラスタに送信されるプローブ要求の数を制限するために、プローブフィルタ情報が用いられる。
2006505855.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
第１の複数のプロセッサとホームキャッシュ一貫性制御部とを有するホームクラスタを備え、
前記第１の複数のプロセッサと前記ホームキャッシュ一貫性制御部とは、直接通信回路で相互接続され、
前記ホームキャッシュ一貫性制御部は、プローブ要求を受信して一以上の選択されたクラスタを検査するように構成され、
前記一以上のクラスタは、前記プローブ要求に関連付けられている指標に基づいて選択される
コンピュータシステム。
【請求項２】
前記一以上のクラスタは、キャッシュ一貫性ディレクトリに関連付けられているプローブフィルタ情報を用いて選択される請求項１記載のコンピュータシステム。
【請求項３】
前記キャッシュ一貫性ディレクトリは、複数のメモリラインの状態を特定する請求項１または２記載のコンピュータシステム。
【請求項４】
前記プローブ要求に関連付けられている前記指標は、前記プローブ要求が読み出し要求，読み書き要求のいずれであるかを示す請求項１ないし３のいずれか記載のコンピュータシステム。
【請求項５】
前記プローブ要求に関連付けられている前記指標は、前記プローブ要求に関連付けられているメモリラインの状態を示す請求項１ないし４のいずれか記載のコンピュータシステム。
【請求項６】
選択されたクラスタを検査する工程は、前記選択されたクラスタ内のノードを検査する工程と、完了標識を伴う応答を要求クラスタに返信する工程を備える請求項１ないし５のいずれか記載のコンピュータシステム。
【請求項７】
前記完了標識は、前記プローブ要求が完了したことを前記要求クラスタに通知する請求項６記載のコンピュータシステム。
【請求項８】
前記完了標識は、前記プローブ要求に関連する他の応答が前記要求クラスタに転送されないことを前記要求クラスタに通知する請求項６記載のコンピュータシステム。
【請求項９】
前記完了標識は、完了ビットである請求項６記載のコンピュータシステム。
【請求項１０】
前記プローブ要求が読み出し要求である場合に、前記完了標識は利用可能である請求項６記載のコンピュータシステム。
【請求項１１】
前記プローブ要求が読み出し変更要求であって、前記メモリラインに関連する状態が無効状態または変更状態である場合に、前記完了標識は利用可能である請求項６記載のンピュータシステム。
【請求項１２】
前記プローブ要求が読み出し変更要求であって、単一の遠隔クラスタが、共有状態でキャッシュに格納され前記プローブ要求に関連付けられている前記メモリラインを有する場合に、前記完了標識は利用不可能である請求項６記載のコンピュータシステム。
【請求項１３】
前記プローブ要求が読み出し／変更要求であって、所有状態でキャッシュに格納され前記プローブ要求に関連付けられている前記メモリラインを有するクラスタが単一の遠隔クラスタ以外に存在しない場合に、前記完了標識は利用不可能である請求項６記載のコンピュータシステム。
【請求項１４】
検査対象としてホームクラスタが選択される請求項１ないし１３のいずれか記載のコンピュータシステム。
【請求項１５】
前記プローブ要求に関連付けられている前記メモリラインが無効状態である場合に、前記ホームクラスタは検査対象として選択される請求項１４記載のコンピュータシステム。
【請求項１６】
前記プローブ要求が読み出し要求であり、前記プローブ要求に関連付けられている前記メモリラインが共有状態である場合に、前記ホームクラスタは検査対象として選択される請求項１４記載のコンピュータシステム。
【請求項１７】
ホームクラスタを検査する工程は、前記ホームクラスタ内のノードを検査する工程と、プローブ応答を受信する工程と、完了標識を伴う応答を要求クラスタに送信する工程とを備える請求項１６記載のコンピュータシステム。
【請求項１８】
前記ホームクラスタ内のノードを検査する工程は、前記プローブ要求をホームクラスタのメモリ制御部に転送する工程を含む請求項１７記載のコンピュータシステム。
【請求項１９】
検査対象として遠隔クラスタが選択される請求項１記載のコンピュータシステム。
【請求項２０】
前記プローブ要求に関連付けられている前記メモリラインが変更状態である場合に、遠隔クラスタは検査対象として選択される請求項１９記載のコンピュータシステム。
【請求項２１】
前記プローブ要求が読み出し要求であり、前記プローブ要求に関連付けられている前記メモリラインが所有状態である場合に、遠隔クラスタは検査対象として選択される請求項１９記載のコンピュータシステム。
【請求項２２】
前記プローブ要求が読み書き要求であり、前記単一の遠隔クラスタが、共有状態でキャッシュに格納され前記プローブ要求に関連付けられている前記メモリラインを有する場合に、遠隔クラスタは検査対象として選択される請求項１９記載のコンピュータシステム。
【請求項２３】
前記プローブ要求が読み書き要求であり、所有状態でキャッシュに格納され前記プローブ要求に関連付けられている前記メモリラインを有するクラスタが前記単一の遠隔クラスタ以外に存在しない場合に、遠隔クラスタは検査対象として選択される請求項１９記載のコンピュータシステム。
【請求項２４】
遠隔クラスタを検査する工程は、前記ホームクラスタ内のノードを検査する工程と、完了標識を伴うプローブ要求を前記遠隔クラスタに転送する工程と、前記ホームクラスタ内の前記ノードからプローブ応答を受信する工程とを備える請求項１９記載のコンピュータシステム。
【請求項２５】
前記遠隔クラスタは、前記完了標識を伴う前記プローブ要求を受信し、遠隔クラスタのノードを検査し、完了標識を伴う応答を前記要求クラスタに送信する請求項２４記載のコンピュータシステム。
【請求項２６】
プローブを管理するための方法であって、
ホームクラスタ内のホームキャッシュ一貫性制御部でプローブ要求を受信する工程であって、前記ホームクラスタは、第１の複数のプロセッサと前記ホームキャッシュ一貫性制御部とを有し、前記第１の複数のプロセッサと前記ホームキャッシュ一貫性制御部とは、直接通信回路で相互接続されている受信工程と、
前記プローブ要求が、前記ホームクラスタに関連付けられているメモリ制御部を迂回すべきか否かを判定する工程と
を備える方法。
【請求項２７】
前記ホームクラスタに関連付けられた前記メモリ制御部を迂回する工程は、前記プローブ要求を前記メモリ制御部に転送することなく、前記プローブ要求を遠隔クラスタに転送する工程を備える請求項２６記載の方法。
【請求項２８】
前記ホームクラスタに関連付けられた前記メモリ制御部を迂回する工程は、前記プローブ要求を前記メモリ制御部に転送することなく、前記プローブ要求を要求クラスタに転送する工程を備える請求項２６記載の方法。
【請求項２９】
前記プローブ要求は、特定のメモリラインに関連付けられている請求項２６記載の方法。
【請求項３０】
キャッシュ一貫性制御部は、更に、処理完了標識を要求クラスタから受信するまで、同一の前記メモリラインに関連付けられている後続のプローブ要求を締め出すように構成されている請求項２９記載の方法。
【請求項３１】
前記処理完了標識は、前記ホームキャッシュ一貫性制御部からの発信元終了通知である請求項３０記載の方法。
【請求項３２】
プローブを管理するための装置であって、
ホームクラスタ内のホームキャッシュ一貫性制御部でプローブ要求を受信する手段であって、前記ホームクラスタは、第１の複数のプロセッサと前記ホームキャッシュ一貫性制御部とを有し、前記第１の複数のプロセッサと前記ホームキャッシュ一貫性制御部とは、直接通信回路で相互接続されている受信手段と、
前記プローブ要求が、前記ホームクラスタに関連付けられているメモリ制御部を迂回すべきか否かを判定する手段と
を備える装置。
【請求項３３】
前記ホームクラスタに関連付けられた前記メモリ制御部を迂回する工程は、前記プローブ要求を前記メモリ制御部に転送することなく、前記プローブ要求を遠隔クラスタに転送する工程を備える請求項３２記載の装置。
【請求項３４】
前記ホームクラスタに関連付けられた前記メモリ制御部を迂回する工程は、前記プローブ要求を前記メモリ制御部に転送することなく、前記プローブ要求を要求クラスタに転送する工程を備える請求項３２記載の装置。
【請求項３５】
前記プローブ要求は、特定のメモリラインに関連付けられている請求項３２記載の装置。
【請求項３６】
キャッシュ一貫性制御部は、更に、処理完了標識を要求クラスタから受信するまで、同一の前記メモリラインに関連付けられている後続のプローブ要求を締め出すよう構成されている請求項３５記載の装置。
【請求項３７】
前記処理完了標識は、前記ホームキャッシュ一貫性制御部からの発信元終了通知である請求項３６記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、マルチプロセッサ・システムにおけるデータアクセスに関する。特に、本発明は、マルチクラスタ構成を有するマルチプロセッサ・システムにおいて、キャッシュの一貫性を維持しつつデータアクセスの効率を改善するための技術を提供する。
【背景技術】
【０００２】
マルチプロセッサ・システムにおけるデータアクセスでは、キャッシュの一貫性に関する問題が起こり得る。従来のマルチプロセッサ・コンピュータシステムは、共有バスを介してシステムメモリに接続された複数のプロセッサを有する。システムメモリ内のデータへのアクセスを最適化するために、個々のプロセッサは、通常、キャッシュメモリと連動するように設計されている。一例では、各プロセッサは、頻繁にアクセスするデータをロードするためのキャッシュを有する。キャッシュは、プロセッサによって読み出しまたは書き込みされる。しかしながら、複数のプロセッサと複数のキャッシュメモリとを有するシステム内に、同じデータの複数のコピーが共存し得るために、キャッシュの一貫性に関する問題が生じる。例えば、メモリラインに対応し頻繁にアクセスされるデータブロックが、２つの異なるプロセッサのキャッシュにロードされる場合がある。一例では、両方のプロセッサがそのデータブロックに新しい値を同時に書き込もうとすると、異なるデータ値が生じることがある。一方の値は、第１のキャッシュに書き込まれ、他方の異なる値は、第２のキャッシュに書き込まれる。すると、システムは、システムメモリに書き込むべき値を判断できなくなる場合がある。
【０００３】
マルチプロセッサ・コンピュータにおける上述の問題に対処するために、様々なキャッシュ一貫性機構が開発されてきた。１つの解決法は、強制的に、プロセッサによる書き込みの全てをメモリに直通して、関連キャッシュを迂回させる方法である。そうすると、システムメモリラインが上書きされる前に、書き込み要求を順序付けることができる。しかしながら、過剰なキャッシュの迂回によって、キャッシュの使用によって得られる効率化が損なわれてしまう。他のキャッシュ一貫性機構は、特定のアーキテクチャに対して開発されてきた。共有バス構成では、各プロセッサは、バスをチェックすなわちスヌープして、共有キャッシュブロックに対して読み出しまたは書き込みを実行できるか否かを判定する。一例では、プロセッサは、オブジェクトに対する排他的アクセス権を有する場合にのみ、そのオブジェクトの書き込みを行う。次いで、そのオブジェクトの最新版に対するアクセスを各プロセッサに許可するために、各々に対応するキャッシュオブジェクトが更新される。
【０００４】
両方のプロセッサが、同じクロック周期で同じ共有データブロックに対して書き込みを試みる場合には、バス調停が用いられる。バス調停ロジックは、どのプロセッサが先にバスを利用するかを決定する。バス調停のようなキャッシュ一貫性機構は効果的であるが、共有バスを用いることから、１つのメモリ空間を有する１つのシステム内に実装できるプロセッサの数が制限される。
【０００５】
別のマルチプロセッサ・スキームは、他のプロセッサ，キャッシュ，メモリシステムに、イーサネット（登録商標）やトークンリングなどの基幹ネットワークを用いて接続された個別のプロセッサ，キャッシュ，メモリシステムを備える。専用のアドレス空間をそれぞれ有する個別のコンピュータシステムを備えるマルチプロセッサ・スキームは、各プロセッサが、専用の関連メモリおよびキャッシュを有することから、多くのキャッシュ一貫性の問題を回避することができる。遠隔コンピューティングシステムにおいて一つのコンピュータがデータへのアクセスを望む場合には、通信は明示的である。ＴＣＰ／ＩＰなどの標準的なネットワークプロトコルを用いて、データを他のプロセッサに転送するためのメッセージが送信されると共に、データを他のプロセッサから受け取るためのメッセージが受信される。送信および受信などの処理を含む明示的な通信を用いるマルチプロセッサ・システムを、多重専用メモリシステムと呼ぶ。対照的に、ロードおよび保存などの処理を含む暗黙的な通信を用いるマルチプロセッサ・システムを、本明細書では、単一アドレス空間システムと呼ぶ。
【０００６】
別々のコンピュータシステムを用いるマルチプロセッサ・スキームは、キャッシュ一貫性の問題を最小限に抑えつつ、より多くのプロセッサを相互接続することを可能にする。しかしながら、ネットワーク網を用いる遠隔プロセッサが保持するデータにアクセスするには、システムバスに接続されたプロセッサが保持するデータにアクセスするよりも大幅に時間を要する。更に、適切なプロセッサにデータを移動させる際に、貴重なネットワーク帯域幅が消費される。このことは、プロセッサおよびネットワークの双方の性能に悪影響を与えることがある。
【０００７】
性能の制限は、単一のメモリ空間を有するシステムにおける複数のプロセッサを接続するためのポイント・ツー・ポイント構成（直接通信回路接続）の開発へと繋がった。一例では、プロセッサクラスタ（プロセッサ群）を形成するために、複数のポイント・ツー・ポイント回線を介して、個々のプロセッサを互いに直接的に接続することができる。更に、複数のプロセッサクラスタを接続することもできる。ポイント・ツー・ポイント回線は、コプロセッシング機能やマルチプロセッシング機能のための帯域幅を大幅に増大させる。しかしながら、単一のメモリ空間を共有するマルチクラスタ・システムにおいて、複数のプロセッサを接続するポイント・ツー・ポイント構成を用いると特有の問題が生じる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、ポイント・ツー・ポイント回線を用いて接続された複数のプロセッサから成る複数のクラスタを有するシステムにおいて、データアクセスおよびキャッシュ一貫性を改善するための技術が提供されることが望まれる。
【課題を解決するための手段】
【０００９】
本発明によれば、マルチプロセッサ・マルチクラスタ・システムにおけるデータアクセスの効率を向上させるための方法および装置が提供される。マルチクラスタ・システムにおいて処理の数を低減するための機構が提供される。一例では、要求クラスタおよび遠隔クラスタに送信されるプローブ要求の数を制限するために、プローブフィルタ情報が用いられる。
【００１０】
一実施形態では、コンピュータシステムが提供される。そのコンピュータシステムは、第１の複数のプロセッサとホームキャッシュ一貫性制御部とを有するホームクラスタを備える。第１の複数のプロセッサとホームキャッシュ一貫性制御部とは、ポイント・ツー・ポイント構成で相互接続されている。ホームキャッシュ一貫性制御部は、プローブ要求を受信して、一以上の選択されたクラスタを検査するように構成されている。一以上のクラスタは、プローブ要求に関連付けられている指標に基づいて選択される。
【００１１】
別の実施形態では、プローブを管理するための方法が提供される。プローブ要求が、ホームクラスタ内のホームキャッシュ一貫性制御部で受信される。ホームクラスタは、第１の複数のプロセッサとホームキャッシュ一貫性制御部とを備える。第１の複数のプロセッサとホームキャッシュ一貫性制御部とは、ポイント・ツー・ポイント構成で相互接続されている。一以上のクラスタは、プローブ要求に関連付けられた指標に基づいて検査対象として選択される。こうして、一以上のクラスタが検査される。
【００１２】
本発明の本質および利点については、本明細書の以下の部分と図面とを参照することにより、さらに理解を深めることができる。
【発明を実施するための最良の形態】
【００１３】
ここで、本発明を実施するために発明者が提供する最良の形態を含む本発明のいくつかの具体的な実施形態について、詳細な説明を行う。これら具体的な実施形態の例は、添付の図面に示されている。本発明は、これら具体的な実施形態に関連して説明されているが、説明されている実施形態に本発明を限定する意図はない。逆に、添付の特許請求の範囲によって規定される本発明の趣旨および範囲に含まれうる代替物、変形物、および等価物を網羅するよう意図されている。本発明の具体的な実施形態を実施するには、プロセッサ間でポイント・ツー・ポイント通信を行うマルチプロセッサ構成が適している。以下の説明では、本発明の完全な理解を促すために、多くの具体的な詳細事項が説明されている。本発明は、これら具体的な詳細事項の一部またはすべてがなくとも実施可能である。本発明を不必要に分かり難くくしないよう、周知の処理動作については、詳細に説明していない。さらに、本願において、特定の一つの構成要素に対する言及は、特に否定しない限り、本発明の方法および装置が、二以上の構成要素を用いて実施され得る可能性を含む。
【００１４】
マルチプロセッサ・マルチクラスタ・システムにおいて、データアクセスの効率を向上させるための技術が提供される。ポイント・ツー・ポイント構成では、プロセッサクラスタは、ポイント・ツー・ポイント回線を介して互いに直接的に接続された複数のプロセッサを備える。従来の共有バスや外部ネットワークの代わりにポイント・ツー・ポイント回線を用いることにより、同じメモリ空間を共有するシステム内で、複数のプロセッサが効率的に利用されるようになる。また、従来のバスおよび外部ネットワークに基づくマルチプロセッサ構成における帯域幅および待機時間の制限の多くを回避することにより、処理およびネットワークの効率も改善される。しかしながら、様々な実施形態では、ポイント・ツー・ポイント構成におけるプロセッサ数の線形的な増加に伴って、複数のプロセッサを接続するために用いられるリンク数は、指数関数的に増大する。用いられるリンク数を減らすと共にポイント・ツー・ポイント構成を用いるマルチプロセッサ・システムをモジュール化するために、複数のクラスタが用いられる。
【００１５】
様々な実施形態では、複数のプロセッサクラスタが、ポイント・ツー・ポイント構成を用いて相互接続される。プロセッサクラスタの各々は、クラスタ間の通信を行うために用いられるキャッシュ一貫性制御部を備える。一実施形態では、プロセッサを接続するために用いられるポイント・ツー・ポイント構成は、クラスタの接続にも用いられる。
【００１６】
キャッシュ一貫性制御部を用いることにより、マルチクラスタを必ずしもサポートしない複数のプロセッサを用いて、マルチクラスタ・システムを構築することができる。そのようなマルチクラスタ・システムは、ローカルノードがローカルクラスタの外部におけるノードの存在を意識する必要がないように、ローカル処理において非ローカルノードの代理をさせるためにキャッシュ一貫性制御部を用いて構築されても良い。キャッシュ一貫性制御部については、後に詳細に説明する。
【００１７】
シングルクラスタ・システムにおいては、直列化ポイントを通してすべてのデータアクセス要求を送信することにより、キャッシュ一貫性を維持することができる。本明細書では、データアクセス要求を順序付けるための機構を、直列化ポイントと呼ぶ。直列化ポイントの一例としては、メモリ制御部が挙げられる。シングルクラスタ・システムにおける種々のプロセッサは、データアクセス要求をメモリ制御部に送信する。一例では、メモリ制御部は、既定のメモリラインに対して常に単一のデータアクセス要求のみが許可されるように、データアクセス要求を直列化すなわちロックするように構成される。他のプロセッサが同じメモリラインへのアクセスを試行すると、そのデータアクセスの試行は、メモリラインのロックが解除されるまでブロックされる。メモリ制御部は、マルチプロセッサ・シングルクラスタ・システムにおいてキャッシュ一貫性を維持することを可能にする。
【００１８】
個々のクラスタにおける複数のプロセッサが単一のアドレス空間を共有するマルチプロセッサ・マルチクラスタ・システムにおいて直列化ポイントを用いることもできる。従来のマルチクラスタ・システムによる外部ネットワークよりもクラスタ間の通信を大幅に改善するために、単一のアドレス空間を用いることによって、内部のポイント・ツー・ポイント回線を用いることができる。個々のクラスタにおける個々のプロセッサが、ホームクラスタなどの特定のクラスタに関連付けられたメモリ制御部にデータアクセス要求を送信する。メモリ制御部は、異なるクラスタからのデータ要求の全てを、同様に直列化することができる。しかしながら、マルチプロセッサ・マルチクラスタ・システムにおける直列化ポイントは、マルチプロセッサ・シングルクラスタ・システムにおける直列化ポイントほど効率が良くない場合がある。すなわち、クラスタ間の転送の待機時間などの要因に由来する遅延が、種々のデータアクセス要求の応答時間に悪影響を与える可能性がある。遅延は、マルチプロセッサ環境でのプローブの利用によっても生じることに注意すべきである。
【００１９】
共有メモリ空間を用いる構成におけるクラスタ間の処理の遅延は、イーサネットまたはトークンリングなどの外部ネットワークを用いる従来のメッセージ通過環境における遅延よりも大幅に小さいが、最小の遅延でも大きな要因となる。いくつかの応用例では、ほんの一瞬の間に、一つのプロセッサから数百万のデータアクセス要求が生じる場合がある。どのような遅延であれ、プロセッサの性能に悪影響を与え得る。
【００２０】
様々な実施形態では、マルチプロセッサ・マルチクラスタ・システムにおけるデータアクセスの効率を向上させるためにプローブ管理が用いられる。本明細書では、システム内のキャッシュ一貫性を維持するためにノードから応答を引き出すための機構を、プローブと呼ぶ。一例では、キャッシュを詮索するための機構を、プローブと呼ぶ。プローブに対する応答は、起因要求の発信元または送信対象に向けられても良い。本明細書においては、プローブの数や、個々のノードに送信されるプローブ要求の数をフィルタリングすなわち削減するための機構を、プローブ管理と呼ぶ。一例では、プローブ管理は、プローブの数を削減することができるか否かを判断するためにプローブ要求を特徴付ける。
【００２１】
典型的な実施例では、プローブ要求は、システム内の種々のノードにプローブを通知するメモリ制御部に送信される。そのようなシステムでは、キャッシュラインの状態に関する情報は知られていない。システム内のノードの全てが検査され、要求クラスタは各ノードから応答を受信する。一貫性ディレクトリを備えるシステムでは、処理の数を削減するために、様々なメモリラインに関連付けられている状態情報を用いることができる。本明細書では、様々なメモリラインに関連する状態情報を保持するための機構を、一貫性ディレクトリと呼ぶ。一貫性ディレクトリは、通例、遠隔クラスタにおいてキャッシュに格納されるローカルクラスタ内のメモリラインに関する情報を含む。様々な実施形態では、ローカルキャッシュの状態を推測することによって遠隔クワッドに対するプローブの数を削減するために、一貫性ディレクトリが用いられる。別の実施形態では、ホームクラスタ内のメモリ制御部に対する要求の送信を除去するために、一貫性ディレクトリが用いられる。
【００２２】
図１Ａは、本発明の技術を適用可能なマルチクラスタ・マルチプロセッサ・システムの一例を示す図である。処理クラスタ１０１，１０３，１０５，１０７の各々は、複数のプロセッサを備えることができる。処理クラスタ１０１，１０３，１０５，１０７は、ポイント・ツー・ポイント回線１１１ａ〜ｆを介して互いに接続されている。一実施形態では、図１Ａに示すマルチクラスタ構成における複数のプロセッサは、同じメモリ空間を共有する。この例では、ポイント・ツー・ポイント回線１１１ａ〜ｆは、複数のクラスタ１０１，１０３，１０５，１０７における複数のプロセッサを接続するために、従来のフロントサイドバスの代わりに用いられる内部システム接続部である。ポイント・ツー・ポイント回線は、任意のポイント・ツー・ポイント一貫性プロトコルに対応することとしても良い。
【００２３】
図１Ｂは、本発明の技術を適用可能なマルチクラスタ・マルチプロセッサ・システムの他の例を示す図である。処理クラスタ１２１，１２３，１２５，１２７の各々は、ポイント・ツー・ポイント回線１４１ａ〜ｄを介してスイッチ１３１に接続されることが可能である。スイッチとポイント・ツー・ポイント回線とを用いることにより、システム内の複数のクラスタを接続するにあたり、比較的少ないポイント・ツー・ポイント回線によって実現できる点に注意すべきである。スイッチ１３１は、一貫性プロトコルインタフェースを有するプロセッサを備えることができる。様々な実施例では、図１Ａに示すマルチクラスタ・システムは、図１Ｂに示すように、スイッチ１３１を用いて拡張される。
【００２４】
図２は、図１Ａに示されたクラスタ１０１のようなマルチプロセッサ・クラスタを示す図である。クラスタ２００は、プロセッサ２０２ａ〜２０２ｄと、一以上の基本入出力システム（ＢＩＯＳ）２０４と、メモリバンク２０６ａ〜２０６ｄを含むメモリサブシステムと、ポイント・ツー・ポイント通信回線２０８ａ〜２０８ｅと、サービスプロセッサ２１２とを備える。ポイント・ツー・ポイント通信回線は、プロセッサ２０２ａ〜２０２ｄ，Ｉ／Ｏスイッチ２１０，キャッシュ一貫性制御部２３０の間の相互接続が可能に構成されている。サービスプロセッサ２１２は、図２に回線２１４ａ〜２１４ｆとして示すＪＴＡＧインタフェースを介して、プロセッサ２０２ａ〜２０２ｄ，Ｉ／Ｏスイッチ２１０，キャッシュ一貫性制御部２３０との通信が可能に構成されている。他のインタフェースがサポートされていることに注意されたい。また、一部の実施例では、マルチプロセッサ・システムは、サービスプロセッサを備えない点にも注意されたい。Ｉ／Ｏスイッチ２１０は、システムの他の構成要素をＩ／Ｏアダプタ２１６，２２０に接続する。
【００２５】
具体的な実施形態では、本発明のサービスプロセッサは、予め定義された分割化スキーマに従ってシステムリソースを分割する機能を有する。分割化は、ポイント・ツー・ポイント通信インフラを利用して、サ―ビスプロセッサによってシステムプロセッサに関連付けられた経路指定テーブルを直接的に取り扱うことによって実現することができる。経路指定テーブルは、様々なシステムリソースを制御および隔離するために用いられ、システムリソース間の接続は、テーブル内に定義されている。
【００２６】
プロセッサ２０２ａ〜ｄは、ポイント・ツー・ポイント回線２３２ａ〜ｄを介して、キャッシュ一貫性制御部２３０にも接続されている。本明細書では、キャッシュ一貫性を維持しつつ複数のプロセッサクラスタ間の通信を提供するために用いることができる機構または装置を、キャッシュ一貫性制御部と呼ぶ。キャッシュ一貫性制御部２３０は、他のマルチプロセッサ・クラスタに関連付けられているキャッシュ一貫性制御部に接続されても良い。一つのクラスタ内に二以上のキャッシュ一貫性制御部が備えられてもよいことに注意されたい。キャッシュ一貫性制御部２３０は、プロセッサ２０２ａ〜ｄと同様に、ポイント・ツー・ポイント・プロトコルを用いて遠隔クラスタとも通信する。
【００２７】
より一般的には、図２に示した具体的なアーキテクチャは例示に過ぎず、本発明の実施形態は、様々な構成およびリソースの相互接続と、図に示したシステムリソースの各々に対する様々な代替物とを含むよう意図されていることを理解されたい。しかしながら、例示のために、サーバ２００の具体的な詳細事項を想定することとする。例えば、図２に示したリソースの大部分は、一つの電子アセンブリに存在すると想定される。更に、メモリバンク２０６ａ〜２０６ｄは、デュアルインラインメモリモジュール（ＤＩＭＭ）として物理的に提供されるダブルデータレート（ＤＤＲ）メモリを備えても良い。Ｉ／Ｏアダプタ２１６は、例えば、固定記憶装置へのアクセスを提供するウルトラダイレクトメモリアクセス（ＵＤＭＡ）制御部またはスモールコンピュータシステムインタフェース（ＳＣＳＩ）制御部であっても良い。Ｉ／Ｏアダプタ２２０は、ローカルエリアネットワーク（ＬＡＮ）またはインターネットなどのネットワークとの通信を提供するよう適合されたイーサネットカードであっても良い。
【００２８】
具体的な実施形態では、図２に示すように、Ｉ／Ｏアダプタ２１６，２２０の双方が、対称的なＩ／Ｏアクセスを提供する。すなわち、各々が、同等のＩ／Ｏセットに対するアクセスを提供する。当然、そのような構成は、複数のパーティションが、同じ種類のＩ／Ｏにアクセスするための分割化スキームを容易にする。しかしながら、Ｉ／Ｏなしのパーティションが構成される実施形態が想定されることも理解されたい。例えば、一以上のプロセッサと、関連メモリリソース（すなわち、メモリ複合体）とを備えるパーティションは、そのメモリ複合体を試験する目的で構成されることも可能である。
【００２９】
一実施形態では、サービスプロセッサ２１２は、集積チップセット機能を有するモトローラ社のＭＰＣ８５５Ｔマイクロプロセッサである。キャッシュ一貫性制御部２３０は、ローカルのポイント・ツー・ポイント一貫性プロトコルをサポートする特定用途向け集積回路（ＡＳＩＣ）である。キャッシュ一貫性制御部２３０は、Ｉ／Ｏデバイスとの通信を可能にするために非一貫性プロトコルを取り扱うようにも構成されてもよい。一実施形態では、キャッシュ一貫性制御部２３０は、プログラム可能な論理デバイスやプログラム可能なゲートアレイなどの特別に構成されたプログラム可能なチップである。
【００３０】
図３は、キャッシュ一貫性制御部２３０の一例を示す図である。様々な実施形態では、キャッシュ一貫性制御部は、マルチプロセッサ・システムの各クラスタ内のプロセッサから受信されるプローブや要求などのパケットを取り扱うように構成されたプロトコルエンジン３０５を備える。プロトコルエンジン３０５の機能は、性能を向上させるために、いくつかのエンジンにわたって分割化されても良い。一例では、分割化は、パケットの種類（要求，プローブ，応答）や、方向（受信，送信）、処理フロー（要求フロー，プローブフローなど）に基づいて行われる。
【００３１】
プロトコルエンジン３０５は、最新の要求やプローブなどの処理を追跡して、それらの処理を特定のプロセッサに関連付けることをキャッシュ一貫性制御部によって可能にするための保留バッファ３０９にアクセスする。保留バッファ３０９に保持される処理情報は、処理の宛先ノード，その後の衝突検出やプロトコル最適化のための要求アドレス，応答情報，タグ，状態情報を含むこととしても良い。
【００３２】
キャッシュ一貫性制御部は、そのクラスタおよび外部プロセッサクラスタにおける他のプロセッサと通信することをキャッシュ一貫性制御部によって可能にするための一貫性プロトコルインタフェース３０７などのインタフェースを有する。様々な実施形態では、インタフェース３０７，３１１の各々は、一体型として、または、マルチプレクサおよびバッファなどの構成要素を用いる個別の送受信装置として実装される。キャッシュ一貫性制御部は、更に、Ｉ／Ｏデバイスと通信するための非一貫性プロトコルインタフェース３１１のような他のインタフェースを備えても良い。しかしながら、キャッシュ一貫性制御部２３０は、必ずしも、一貫性および非一貫性インタフェースの両方を備える必要はないことに注意されたい。また、所定のクラスタ内のキャッシュ一貫性制御部が、他のクラスタ内のキャッシュ一貫性制御部と通信できることにも注意されたい。
【００３３】
図４は、キャッシュ一貫性制御部を利用しない単一のクラスタを有するシステム内のプロセッサからのキャッシュ要求のための処理を示す図である。プロセッサ４０１−１は、メモリライン読み出し要求などのアクセス要求をメモリ制御部４０３−１に送信する。メモリ制御部４０３−１は、単一のクラスタ内のこのプロセッサや他のプロセッサに関連付けされていても良いし、ＡＳＩＣまたは特別に構成されたプログラム可能な論理デバイス（ＰＬＤ）などの別個の構成要素であっても良い。キャッシュ一貫性を維持するために、通例は、任意の与えられた時間に、一つのプロセッサだけが、共有アドレス空間に対応するメモリラインへのアクセスを許可される。他のプロセッサが、同じメモリラインへのアクセスを試行しないように、メモリラインは、メモリ制御部４０３−１によってロックされることが可能である。同じメモリラインへの他の要求はすべて、ブロックされるか、または、待ち行列に入れられる。他のプロセッサによるアクセスは、通例、メモリ制御部４０３−１がメモリラインをロック解除した時だけ許可される。
【００３４】
次いで、メモリ制御部４０３−１は、キャッシュ状態を判定するために、プローブをローカルキャッシュメモリ４０５，４０７，４０９に送信する。次に、ローカルキャッシュメモリ４０５，４０７，４０９は、プローブ応答を同じプロセッサ４０１−２に送信する。メモリ制御部４０３−１は、更に、読み出し応答などのアクセス応答を同じプロセッサ４０１−３に送信する。次いで、プロセッサ４０１−３は、次の要求のためにメモリラインをロック解除することをメモリ制御部４０３−２によって可能にするために、完了応答をメモリ制御部４０３−２に送信する。ＣＰＵ４０１−１，ＣＰＵ４０１−２，ＣＰＵ４０１−３は、同じプロセッサであることに注意されたい。
【００３５】
図５Ａ−５Ｄは、キャッシュ一貫性制御部の動作を示す図である。マルチプロセッサ・クラスタでキャッシュ一貫性制御部を利用すると、各クラスタ内のプロセッサやメモリ制御部などのローカルノードの機能に影響を与えることなく、マルチプロセッサ・マルチクラスタ・一貫性ドメインを作成することができる。一部の例では、プロセッサは、複数のクラスタではなく単一のクラスタ内の限られた数のプロセッサを考慮するプロトコルのみをサポートしても良い。キャッシュ一貫性制御部は、非ローカルノードがキャッシュ一貫性制御部に実装された単一のローカルノードに過ぎないとローカルプロセッサに認識させることによって、複数のクラスタを考慮することができる。一例では、クラスタ内のプロセッサは、他のクラスタ内のプロセッサが存在することを意識する必要がない。その代わり、そのクラスタ内のプロセッサは、キャッシュ一貫性制御部が非ローカルノードの全てを代表するものとしてキャッシュ一貫性制御部と通信する。
【００３６】
本明細書では、遠隔クラスタ内のノードを、非ローカルノードまたは遠隔ノードと呼ぶことに注意されたい。しかしながら、非ローカルノードは、一般的には、要求クラスタ内に存在しないノードを意味するものであり、遠隔クラスタ内のノードとホームクラスタ内のノードの両方を含む。本明細書では、データアクセスすなわちキャッシュアクセス要求の送信元であるクラスタを、要求クラスタと呼ぶ。本明細書では、直列化ポイントを備えるクラスタを、ホームクラスタと呼ぶ。その他のクラスタについては、遠隔クラスタと呼ぶ。本明細書では、ホームクラスタおよび遠隔クラスタを、非ローカルクラスタとも呼ぶ。
【００３７】
図５Ａは、集約的な遠隔キャッシュとして機能するキャッシュ一貫性制御部を示す図である。プロセッサ５０１−１が、ローカルメモリ制御部５０３−１に対するデータアクセス要求を生成すると、キャッシュ一貫性制御部５０９は、ローカルメモリ制御部５０３−１からプローブを受信して、それを非ローカルノード部５１１に転送する。一貫性プロトコルは、種々の種類のメッセージを含み得ることに注意されたい。一例では、一貫性プロトコルは、４種類のメッセージとして、データすなわちキャッシュアクセス要求と、プローブと、応答すなわちプローブ応答と、デ―タパケットとを含む。データすなわちキャッシュアクセス要求は、通例、ホームノードメモリ制御部を対象とする。プローブは、システム内の各キャッシュへの問い合わせのために用いられる。プローブパケットは、指定されたラインに関連するキャッシュが適切なキャッシュ状態に移行することを可能にする情報を搬送することができる。応答は、プローブ応答情報を搬送すると共に、与えられた処理の状態をノードから他のノードに通知することを可能にするために用いられる。データパケットは、書き込み要求および読み出し応答の両方のための要求データを搬送する。
【００３８】
様々な実施形態では、メモリアドレスは、ローカルメモリ制御部に存在する。上述のように、本明細書では、ローカルクラスタ外のプロセッサおよびキャッシュ一貫性制御部を含むノードを、非ローカルノードと呼ぶ。次いで、キャッシュ一貫性制御部５０９は、非ローカルノードからの応答を蓄積して、キャッシュブロック５０５および５０７に関連付けられているローカルノードが単一の応答をプロセッサ５０１−２に送信するのと同様にして単一の応答を送信する。ローカルプロセッサは、検査されるローカルノードの各々に対して応答を要求しても良い。キャッシュ一貫性制御部を利用することで、ローカルプロセッサは、非ローカルノードが存在するか否かを考慮せずに動作することが可能になる。
【００３９】
プロセッサ５０１−１およびプロセッサ５０１−２は、一連の処理における異なる時点における同一の構成要素を示していることに注意されたい。例えば、プロセッサ５０１−１は、データアクセス要求を開始しても良く、追って、同じプロセッサ５０１−２は、その要求の結果として生じるプローブ応答を受信してよい。
【００４０】
図５Ｂは、プローブエージェントペアとして機能するキャッシュ一貫性制御部を示す図である。キャッシュ一貫性制御部５２１−１は、非ローカルノード５３１からプローブを受信すると、プローブを受け入れて、キャッシュブロック５２３，５２５，５２７に関連付けられているローカルノードに転送する。次いで、キャッシュ一貫性制御部５２１−２は、最終応答を非ローカルノード部５３１に転送する。この例では、キャッシュ一貫性制御部は、プローブの発信元であると共に送信先でもある。キャッシュブロック５２３，５２５，５２７に関連付けられているローカルノードは、あたかもキャッシュ一貫性制御部が、ローカルメモリ要求を行うローカルプロセッサであるかのように動作する。
【００４１】
図５Ｃは、遠隔メモリとして機能するキャッシュ一貫性制御部を示す図である。ローカルプロセッサ５４１−１が、遠隔メモリを対象としたアクセス要求を生成すると、キャッシュ一貫性制御部５４３−１は、その要求を非ローカルノード５５３に転送する。遠隔要求がローカル検査を指定する場合には、キャッシュ一貫性制御部５４３−１は、ローカルノードへのプローブを生成し、検査されたノードは、プロセッサ５４１−２への応答を提供する。キャッシュ一貫性制御部５４３−１は、非ローカルノード部５５３からデータを受信すると、読み出し応答をプロセッサ５４１−３へ転送する。更に、キャッシュ一貫性制御部は、最終応答を非ローカルノード部５５３に関連付けられている遠隔メモリ制御部に転送する。
【００４２】
図５Ｄは、遠隔プロセッサとして機能するキャッシュ一貫性制御部を示す図である。第１のクラスタのキャッシュ一貫性制御部５６１−１は、第２のクラスタのプロセッサから要求を受信すると、第２のクラスタのプロセッサに代わって第１のクラスタのプロセッサとして機能する。キャッシュ一貫性制御部５６１−１は、非ローカルノード部５７５からの要求を受け入れて、メモリ制御部５６３−１に転送する。次いで、キャッシュ一貫性制御部５６１−２は、フェッチされたデータと同様にプローブ応答の全てをも蓄積して、最終応答を非ローカルノード５７５と同様にメモリ制御部５６３−２にも転送する。
【００４３】
キャッシュ一貫性制御部が、集約的な遠隔キャッシュ，プローブエージェントペア，遠隔メモリ，遠隔プロセッサとして機能することを可能にすることにより、マルチクラスタを必ずしもサポートしない複数のプロセッサを用いて、マルチクラスタ・システムを構築することができる。そのようなキャッシュ一貫性制御部は、ローカルノードが、ローカルクラスタの外部のノードの存在を意識する必要がないように、ローカル処理における非ローカルノードを代表するよう用いられることが可能である。
【００４４】
図６は、キャッシュ一貫性制御部を用いる非ローカルクラスタに送られたローカルプロセッサからのデータ要求のための処理を示す図である。マルチクラスタ・システムは、要求クラスタ６００と、ホームクラスタ６２０と、遠隔クラスタ６４０とを備える。上述のように、本明細書では、要求クラスタ６００を除く、ホームクラスタ６２０，遠隔クラスタ６４０，任意の他のクラスタを、非ローカルクラスタと呼ぶ。ローカルおよび非ローカルのクラスタに関連付けられているプロセッサおよびキャッシュ一貫性制御部は、同様に、それぞれ、ローカルプロセッサ、ローカルキャッシュ一貫性制御部，非ローカルプロセッサ，非ローカルキャッシュ一貫性制御部と呼ぶ。
【００４５】
様々な実施形態では、ローカルクラスタ６００内のプロセッサ６０１−１は、読み出し要求などのデータアクセス要求をキャッシュ一貫性制御部６０３−１に送信する。キャッシュ一貫性制御部６０３−１は、図３の保留バッファ内の処理を追跡して、その要求をホームクラスタ６２０のキャッシュ一貫性制御部６２１−１に転送する。ホームクラスタ６２０のキャッシュ一貫性制御部６２１−１は、アクセス要求を受信して、自身の保留バッファ内のその要求を追跡する。一例では、それらの要求に関連する情報が、保留バッファに格納される。キャッシュ一貫性制御部６２１−１は、ホームクラスタ６２０に関連付けられているメモリ制御部６２３−１にアクセス要求を転送する。この時点で、メモリ制御部６２３−１は、その要求に関連するメモリラインをロックする。一例では、メモリラインは、要求クラスタ６００，ホームクラスタ６２０，遠隔クラスタ６４０内の複数のプロセッサによって共有されたメモリ空間の固有のアドレスである。メモリ制御部６２３−１は、データアクセス要求と関連するプローブを生成し、キャッシュブロック６２５，６２７に関連付けられているローカルノードと、キャッシュ一貫性制御部６２１−２に、そのプローブを転送する。
【００４６】
要求，プローブ，応答，データに関連するメッセージは、所定のノードから他のノードへ転送される際に作成されるが、それらのメッセージ自体は、種々の態様を取り得ることに注意されたい。一例では、マルチクラスタ構成が、種々のローカルノードに対して透過的であることを可能にするために、メッセージに対して修正がなされる。書き込み要求についても、同様に扱うことができることに注意されたい。書き込み要求では、対象となるメモリ制御部が、応答を収集して、収集が完了した時点で、それらの応答をプロセッサに送信する。
【００４７】
遠隔クラスタ６４０に関連するキャッシュ一貫性制御部６４１−１は、キャッシュ一貫性制御部６２１−２からプローブを受信し、キャッシュブロック６４５，６４７，６４９に関連付けられているローカルノードを検査する。同様に、要求クラスタ６００に関連するキャッシュ一貫性制御部６０３−２は、プローブを受信して、そのプローブをキャッシュブロック６０５，６０７，６０９に関連付けられているローカルノードに転送し、要求クラスタ６００内のキャッシュブロックを検査する。プロセッサ６０１−２は、キャッシュブロック６０５，６０７，６０９に関連付けられているローカルノードからプローブ応答を受信する。
【００４８】
様々な実施形態では、キャッシュ一貫性制御部６２１−３は、プローブ応答を蓄積して、それらのプローブ応答をキャッシュ一貫性制御部６０３−３に送信し、その後、キャッシュ一貫性制御部６０３−３は、それらのプローブ応答をプロセッサ６０１−３に転送する。キャッシュ一貫性制御部６２１−４は、更に、読み出し応答をキャッシュ一貫性制御部６０３−４に送信し、キャッシュ一貫性制御部６０３−４は、その読み出し応答をプロセッサ６０１−４に転送する。プローブおよびプローブ応答が、システム内のキャッシュ一貫性を維持するための情報を搬送するのに対し、読み出し応答は、実際のフェッチされたデータを搬送することができる。フェッチされたデータの受信後、プロセッサ６０１−４は、発信元終了応答をキャッシュ一貫性制御部６０３−５に送信しても良い。様々な実施形態では、この時点で、要求クラスタ６００における処理は完了する。キャッシュ一貫性制御部６０３−５は、発信元終了メッセージをキャッシュ一貫性制御部６２１−５に転送する。次いで、キャッシュ一貫性制御部６２１−５は、発信元終了メッセージをメモリ制御部６２３−２に送信する。発信元終了メッセージを受信すると、メモリ制御部６２３−２は、メモリラインをロック解除することが可能になり、その時点で、ホームクラスタ６２０での処理が完了する。これで、他のプロセッサが、ロック解除されたメモリラインにアクセスできるようになる。
【００４９】
キャッシュ一貫性制御部６２１−３は、プローブ応答をキャッシュ一貫性制御部６０３−３に送信する前に遠隔クラスタプローブ応答を待つため、システムに遅延が生じることに注意されたい。様々な実施形態では、プローブ応答は、キャッシュ一貫性制御部６０３−３で収集される。遠隔クラスタに、ホームクラスタを介してプローブ応答を送信させることにより、ホームクラスタプローブ応答と遠隔クラスタプローブ応答の両方が、ホームキャッシュ一貫性制御部で遅延される場合がある。一例では、遠隔クラスタプローブ応答は、要求クラスタに到達するために、更なる関門を通過する必要がある。遠隔クラスタと要求クラスタとの間のプローブ応答の伝送の待ち時間は、ホームクラスタを介した遠隔クラスタと要求クラスタとの間のプローブ応答の伝送の待ち時間よりも大幅に短い場合がある。ホームクラスタプローブ応答は、更に、この追加された関門の結果として遅延される。
【００５０】
当業者にとって明らかなように、要求，プローブ，応答メッセージを含む具体的な一連の処理は、具体的な実施例に応じて異なっても良い。一例では、キャッシュ一貫性制御部６２１−３は、プローブ応答メッセージと読み出し応答メッセージの両方をキャッシュ一貫性制御部６０３−３に送信する前に、メモリ制御部６２３−１からの読み出し応答メッセージの受信を待っても良い。別の例では、キャッシュ一貫性制御部は、要求を生成するプロセッサそのものであってもよい。一部のプロセッサが、プロセッサおよびキャッシュ一貫性制御部の両方として動作しても良い。更に、読み出しおよび書き込みに関連する様々なデータアクセス要求メッセージ，プローブ，応答が考慮されても良い。上述のように、キャッシュを詮索するための任意のメッセージをプローブと呼ぶことができる。同様に、メモリラインがロック解除されるべきであるとメモリ制御部に示唆するための任意のメッセージを、発信元終了メッセージと呼ぶことができる。
【００５１】
図６に示した処理は、図５Ａ−５Ｄを参照して説明したような遠隔プロセッサ，集約的なローカルキャッシュ，プローブエージェントペア，遠隔メモリの機能を含む多くの様々な機能を、キャッシュ一貫性制御部が実行する例を示している。
【００５２】
ホームクラスタ６２０のキャッシュ一貫性制御部６２１−１は、遠隔プロセッサとして機能している。そのキャッシュ一貫性制御部は、要求クラスタのプロセッサから要求を受信すると、要求クラスタのプロセッサに代わって、要求を行うプロセッサとして機能するよう指示される。この場合、キャッシュ一貫性制御部６２１−１は、プロセッサ６０１−１から転送された要求を受け入れて、メモリ制御部６２３−１に送信し、ローカルノードの全ておよびメモリ制御部６２３−１から応答を蓄積して、蓄積した応答およびデータを、要求プロセッサ６０１−３に転送する。キャッシュ一貫性制御部６２１−５は、更に、発信元終了をローカルメモリ制御部６２３−２に転送する。
【００５３】
要求クラスタ６００のキャッシュ一貫性制御部６０３−１は、遠隔メモリとして機能している。遠隔メモリとして、キャッシュ一貫性制御部は、プロセッサから適切な遠隔クラスタへ要求を転送すると共に、ローカルノードが検査されることを保証するよう設計されている。この場合、キャッシュ一貫性制御部６０３−１は、プローブをホームクラスタ６２０のキャッシュ一貫性制御部６２１−１に転送する。キャッシュ一貫性制御部６０３−２は、更に、ローカルノード６０５，６０７，６０９を検査する。
【００５４】
遠隔クラスタ６４０のキャッシュ一貫性制御部６４１−１は、プローブエージェントペアとして機能している。上述のように、プローブエージェントペアとして機能するキャッシュ一貫性制御部は、遠隔クラスタからプローブを受信すると、そのプローブを受け入れて、ローカルノードの全てに転送する。キャッシュ一貫性制御部は、それらの応答を蓄積して、最終応答を要求クラスタに送信する。この例では、キャッシュ一貫性制御部６４１−１は、プローブをキャッシュブロック６４５，６４７，６４９に関連付けられているローカルノードに送信し、プローブ応答を収集してホームクラスタ６２０のキャッシュ一貫性制御部６２１−３に送信する。同様に、キャッシュ一貫性制御部６０３−２も、要求クラスタ６００においてプローブエージェントペアとして機能する。キャッシュ一貫性制御部６０３−２は、プローブ要求をキャッシュブロック６０５，６０７，６０９に関連付けられているローカルノードを含むローカルノードに転送する。
【００５５】
キャッシュ一貫性制御部６２１−２，６２１−３も、集約的な遠隔キャッシュとして機能している。キャッシュ一貫性制御部６２１−２は、メモリ制御部６２３−１からプローブを受けて、他のプロセッサクラスタ６００，６４０に転送する役割を有する。より具体的には、キャッシュ一貫性制御部６２１−２は、要求クラスタ６００に対応するキャッシュ一貫性制御部６０３−２と、遠隔クラスタ６４０に対応するキャッシュ一貫性制御部６４１−１とに、プローブを転送する。上述のように、マルチクラスタ構成を用いると、遅延や、トラフィックの増大および処理オーバーヘッドなどの他の望ましくない要素が生じる場合がある。
【００５６】
プローブは、必ずしもすべてのクラスタが検査されなくてもよい場合でも、マルチクラスタ・システム内のすべてのクラスタに送信される。例えば、プローブ要求に関連するメモリラインが、無効すなわちキャッシュに不在である場合には、様々なクラスタに関連するキャッシュの全てを検査する必要はない。一貫性ディレクトリを持たないシステムでは、通例、クラスタの全てを詮索する必要がある。しかしながら、一貫性ディレクトリを用いると、システム内のクラスタのサブセットのみを検査して、トラフィックと処理オーバーヘッドとを最小限に抑えることにより、システムにおける処理の数を削減することができる。
【００５７】
一貫性ディレクトリを用いることにより、（各クラスタに関する）全体的なメモリ状態の情報が、特定のクラスタ内のメモリ制御部またはキャッシュ一貫性制御部によって保持およびアクセスされることが可能になる。様々な実施形態では、一貫性ディレクトリは、プローブの配布と応答の受信とを追跡および管理する。特定のクラスタの検査が必要ないことを、一貫性ディレクトリが示唆する場合、そのクラスタに対するプローブは省略されても良い。一例では、一貫性ディレクトリは、要求および遠隔クラスタの検査が必要ないことを示唆する。ホームクラスタ内のキャッシュ一貫性制御部は、要求および遠隔クラスタにプローブを転送することなく、ローカルノードを検査する。次いで、ホームクラスタのキャッシュ一貫性制御部は、プローブ応答を受信した後に、応答を要求クラスタに送信する。しかしながら、典型的なマルチクラスタ・システムでは、要求クラスタは、検査された様々なクラスタから所定の数の応答があることを予期する。一例では、マルチクラスタ・システムが４つのクラスタを備える場合、要求クラスタは、４つのクラスタすべてのノードに関するプローブ応答を予期する。
【００５８】
様々な実施形態では、本発明の技術は、プロ―ブ応答に関する完了ビットを提供する。完了ビットは、他のクラスタからの他のプローブ応答が予期されないことを、要求クラスタに対して示唆する。本明細書では、他のクラスタからの他のプローブ応答が予期されないことを、要求クラスタに通知するための任意の機構を、完了標識と呼ぶこととする。一例では、完了標識は、ローカルノードが検査された後に、要求クラスタに送信される応答に含まれる完了ビットである。別の例では、完了標識は、別個のデータとして要求クラスタに送信される。一貫性ディレクトリと完了標識とを用いることにより、様々なクラスタを検査する際の処理の数を削減することができる。例えば、図６を参照すると、キャッシュ一貫性制御部６０３−２およびキャッシュ一貫性制御部６４１−１へのプローブを省略できる。完了標識を有する単一の応答が、キャッシュ一貫性制御部６２１−４によって、要求クラスタ６００に送信されても良い。
【００５９】
図７は、プローブ管理およびフィルタリングを可能にするために利用可能な一貫性ディレクトリの一例を示す図である。様々な一貫性ディレクトリが利用可能である。一例では、完全なディレクトリは、システム内のメモリライン毎に項目を提供する。この例では、一貫性ディレクトリは、メモリ制御部に保持されており、キャッシュ一貫性制御部によってアクセス可能である。しかしながら、大量のシステムメモリを有するシステムでは、完全なディレクトリでは、効率が悪く実用的でない場合がある。様々な実施形態によると、選択された組のメモリラインに関する限られた数の項目を含む疎ディレクトリが提供される。一例では、一貫性ディレクトリ７０１は、状態情報７１３と、改変データ保持部情報７１５と、メモリライン７１１に関連付けられている占有影響部７１７とを含む。一部の実施形態では、メモリラインの状態は、変更，所有，共有，無効である。
【００６０】
無効状態では、メモリラインは、任意の遠隔クラスタに関連するキャッシュで利用不可能である。共有状態では、メモリラインは、二以上のキャッシュ内に存在してよいが、これらのキャッシュのいずれにおいても変更はされていない。メモリラインが共有状態である場合には、どのキャッシュが関連のデータを共有しているかを判定するために、占有影響部７１７をチェックすることができる。占有影響部７１７は、Ｎビットの文字列として実施されても良く、その場合、各ビットは、Ｎ個のクラスタのキャッシュにおけるデータの利用可能性を示す。本明細書では、関連のメモリラインのコピーをキャッシュ内に保持するクラスタを追跡するための任意の機構を、占有影響部と呼ぶこととする。アドレス７４１を有するメモリラインは、共有状態であり、占有影響部７１７は、クラスタ１，３の各々が、共有メモリラインのコピーをキャッシュ内に有することを示している。
【００６１】
変更状態では、メモリラインは変更され、変更されたコピーが、特定のクラスタに関連付けられているキャッシュ内に存在する。メモリラインが変更されると、改変データの保持部を判定するために、改変データ保持部情報フィールド７１５をチェックすることができる。本明細書では、どのクラスタが、メモリラインの変更されたコピーをキャッシュ内に有するのかを示すための任意の機構を、改変データ保持部情報フィールドと呼ぶ。一例では、アドレス７８１に関連するメモリラインが変更され、改変データ保持部情報フィールド７１５は、クラスタ２がそのメモリラインを所有することを示している。
【００６２】
所有状態では、改変メモリラインは、一つのキャッシュによって所有されるが、複数のキャッシュ内に存在してもよい。改変メモリラインは、所有キャッシュによって読み出されているが、変更はされていない。この場合、メモリ内に保持されたコピーは失効している。メモリラインが所有状態である場合には、どのクラスタが改変データを所有しているのかを判定するために、改変データ保持部フィールド７１５にアクセスすることができる。一例では、アドレス７６１に関連するメモリラインが所有状態であり、クラスタ４によって所有されている。更に、どの他のキャッシュが関連のデータを有する可能性があるのかを判定するために、占有影響部７１７をチェックすることができる。この例では、占有影響部７１７は、クラスタ２，３，４の各々が、そのメモリラインに関連するデータのコピーをキャッシュ内に有することを示している。
【００６３】
一貫性ディレクトリ７０１は、変更，所有，共有，無効の４つの状態を含むが、特定の実施例において、別の組み合わせの状態を用いてもよいことに注意されたい。一例では、システムは、変更，排他，所有，共有，無効の５つの状態を有しても良い。本発明の技術は、様々な異なるメモリライン状態に対して利用可能である。
【００６４】
一貫性ディレクトリは、マルチクラスタ・システム内で、プローブ要求および応答などの様々な処理を追跡して、メモリラインが一貫性ディレクトリに追加された時点、メモリラインがディレクトリから除去された時点、および、各メモリラインに関連する情報が更新された時点を判定する。本発明の技術は、一貫性ディレクトリを用いて、特定のクラスタに送信する必要のないプローブを管理すなわちフィルタリングすることにより、プローブ要求などの処理の数を削減できる。
【００６５】
図８は、マルチクラスタ・システムにおける処理の数を削減するために利用可能なプローブフィルタ情報を示す図である。本明細書では、ホームクラスタから検査されるクラスタの数を削減するために利用可能な任意の判定基準を、プローブフィルタ情報と呼ぶ。プローブ要求などの処理には、種々の指標を持たせることができる。ある指標は、プローブが、ブロック読み出し（読み出し）８２３、またはブロック読み出し変更（読み出し／書き込み）８２５のいずれであるかを示す。プローブの他の指標は、プローブに関連するメモリラインの状態を含む。一部の例では、状態は、無効８３１，共有８３３，所有８３５，変更８３７を含む。様々な実施形態によると、非ローカルクラスタに、要求クラスタおよび遠隔クラスタを含める場合には、一貫性ディレクトリは、ローカルクラスタ内のメモリラインに関し非ローカルクラスタ内にキャッシュされる情報を保持する。
【００６６】
プローブに関連するメモリラインの状態が、一貫性ディレクトリに示されているように無効８３１である場合には、他のクラスタ内には、そのメモリラインのコピーは存在しない。したがって、検査される必要があるのはホームクラスタのみであるため、完了ビットを用いることで、要求クラスタに対して、各クラスタからの応答ではなくホームクラスタからの一つの応答のみを待つように示すことができる。プローブに関連するメモリラインが共有状態８３３であり、処理が読み出し処理である場合には、検査される必要があるのはホームクラスタのみであるため、この場合にも、完了ビットを用いることで、要求クラスタに対して、項目８０３に示す通り、ホームクラスタからの一つの応答のみを待つように示すことができる。完了ビットは、項目８１１，８１３では利用できないことに注意されたい。
【００６７】
所有されたメモリラインに関する読み出し処理については、所有状態でキャッシュされたラインを有する遠隔クラスタのみが検査される必要がある。その遠隔クラスタは、完了ビットを伴う応答を要求クラスタに送信することができる。変更されたメモリラインに関する処理については、変更状態でキャッシュされたラインを有する遠隔クラスタに、プローブを送信することができる。ブロック読み出し（読み出し）およびブロック読み出し変更（読み出し／書き込み）などの処理が説明されているが、テストや、テスト・設定など、他の処理を考慮しても良いことに注意されたい。
【００６８】
図９は、図８の項目８０１，８０９，８０３に示したように、ホームクラスタのみを検査するための処理の一例を示す図である。様々な実施形態では、ローカルクラスタ９００内のプロセッサ９０１−１は、読み出し要求などのデータアクセス要求をキャッシュ一貫性制御部９０３−１に送信する。キャッシュ一貫性制御部９０３−１は、ホームクラスタ９２０のキャッシュ一貫性制御部９２１−１に要求を転送する。ホームクラスタ９２０のキャッシュ一貫性制御部９２１−１は、アクセス要求を受信して、メモリ制御部９２３−１に転送する。次いで、メモリ制御部９２３−１は、ローカルノード９２５，９２７、およびキャッシュ一貫性制御部９２１−２を検査する。キャッシュ一貫性制御部９２１−１は、通例、様々な処理中に一貫性ディレクトリを更新する役割を有することに注意されたい。キャッシュ一貫性制御部９２１−２は、メモリ制御部９２３−１からのプローブに関連する指標を判定して、遠隔プローブが必要であるか否か、および、完了ビットが利用可能であるか否かを判定する。ここでは、キャッシュ一貫性制御部９２１−２は、遠隔プローブが必要ないと判定しているため、遠隔クラスタ９４０にも要求クラスタ９００にもプローブを転送していない。
【００６９】
キャッシュ一貫性制御部９２１−４が、ローカルノードからのプローブ応答とメモリ制御部９２３−１からの読み出し応答とを受信すると、完了標識を伴う応答メッセージが、要求クラスタに送信される。完了標識により、要求クラスタは、他のクラスタからの更なる応答を待つことがなくなる。キャッシュ一貫性制御部９０３−４は、完了ビットセットを伴う応答をＣＰＵ９０１−４に転送する。完了ビットセットを伴う応答を受信すると、ＣＰＵは、ローカルキャッシュからの更なる応答を待つことがなくなる。ＣＰＵ９０１−４は、キャッシュ一貫性制御部９０３−５を通じて、送信元終了メッセージをホームクラスタのキャッシュ一貫性制御部９２１−５に転送する。これによって、キャッシュ一貫性制御部９２１−５は、その一貫性ディレクトリの更新を行うことができる。次いで、送信元完了は、メモリ制御部９２３−２に転送される。
【００７０】
図９は、ホームクラスタのみが検査される必要がある場合のシーケンスの一例を示している。図１０は、一つの遠隔クラスタのみが検査される必要がある場合のシーケンスの一例を示している。図１０は、図８の項目８０５，８０７，８１５に示したように、遠隔クラスタを検査するための処理の一例を示す図である。様々な実施形態では、ローカルクラスタ１０００内のプロセッサ１００１−１は、読み出し要求などのデータアクセス要求をキャッシュ一貫性制御部１００３−１に送信する。キャッシュ一貫性制御部１００３−１は、ホームクラスタ１０２０のキャッシュ一貫性制御部１０２１−１に要求を転送する。ホームクラスタ１０２０のキャッシュ一貫性制御部１０２１−１は、アクセス要求を受信して、メモリ制御部１０２３−１に転送する。次いで、メモリ制御部１０２３−１は、ローカルノード１０２５，１０２７、およびキャッシュ一貫性制御部１０２１−２を検査する。キャッシュ一貫性制御部１０２１−２は、メモリ制御部１０２３−１からのプローブに関連する指標を判定して、遠隔プローブが必要であるか否か、および、完了ビットが利用可能であるか否かを判定する。ここでは、キャッシュ一貫性制御部１０２１−２は、検査される必要があるのは遠隔クラスタのみであると判定しているため、要求クラスタ１０００にはプローブを転送していない。
【００７１】
遠隔クラスタが、完了標識を伴う応答メッセージを要求クラスタに送信するため、キャッシュ一貫性制御部１０２１−４が、メモリ制御部１０２３−１からの読み出し応答と同様に、ローカルノードからプローブを受信した後、応答メッセージは、要求クラスタに送信されない。完了標識により、要求クラスタは、他のクラスタからの更なる応答を待つことがなくなる。応答は、ＣＰＵ１００１−４に転送され、発信元終了メッセージが、キャッシュ一貫性制御部１００３−５からホームクラスタのキャッシュ一貫性制御部１０２１−５に送信される。ＣＰＵ１００１−４への応答に含まれる完了ビットセットにより、ＣＰＵは、他のローカル応答を待つことがなくなる。ローカルノードからの応答の全てが受信されると、発信元終了がメモリ制御部１０２３−２に転送され、メモリ制御部１０２３−２は、その一貫性ディレクトリの更新を実行できるようになる。
【００７２】
図１１は、ホームキャッシュ一貫性制御部においてプローブ要求を扱うための技術の一例を示すフローチャートである。工程１１０１において、メモリラインに関連するプローブ要求が受信される。工程１１０５において、キャッシュ一貫性制御部は、その要求をメモリ制御部に転送する。工程１１０９において、キャッシュ一貫性制御部は、メモリ制御部からプローブを受信し、工程１１１３において、一貫性ディレクトリおよびプローブフィルタ情報にアクセスして、システム内の様々なクラスタへのプローブの数を削減できるか否かを判定する。工程１１２１において、フィルタリングおよび完了標識が利用可能であるか否かが判定される。一例では、図８に示した判定基準を特定すると共に、図７に示した一貫性ディレクトリにアクセスすることによって、フィルタリングおよび完了標識が利用可能であると判定される。
【００７３】
完了標識が利用可能でない場合には、工程１１４５において、フィルタリングも完了ビットもなしに、プローブが様々なノードに送信される。フィルタリングおよび完了標識が利用可能である場合には、工程１１３１において、遠隔クラスタが検査される否かが判定される。ある遠隔クラスタが、検査されるべきクラスタである場合には、工程１１３５において、プローブは、完了標識を伴って遠隔クラスタに転送される。工程１１３９において、ホームクラスタのプローブ応答が受信されるが、要求クラスタには転送されない。その応答は、遠隔クラスタが、完了標識を伴う応答を要求クラスタに送信するため、ホームクラスタから要求クラスタには送信されない。
【００７４】
工程１１４９において、発信元終了情報が、要求クラスタから受信され、メモリ制御部に転送される。工程１１３１において、ホームクラスタのみが検査される必要があると判定された場合には、キャッシュ一貫性制御部は、工程１１４１において、要求クラスタにも遠隔クラスタにもプローブを送信せずに、完了標識を伴う応答を要求クラスタに送信する。キャッシュ一貫性制御部は、ホームクラスタのプローブ応答を受信した後に、完了標識を伴う応答を送信する。工程１１４９において、ホームクラスタのキャッシュ一貫性制御部は、要求クラスタから発信元終了情報を受信して、メモリ制御部に転送する。
【００７５】
様々な実施形態では、検査される必要のある唯一のクラスタが、ホームクラスタである場合には、ホームクラスタ内のノードのみが検査される。プローブは、要求クラスタにも遠隔クラスタにも送信されない。しかしながら、検査される必要のある唯一のクラスタが、遠隔または要求クラスタである場合には、遠隔クラスタ内のノードが検査されるだけでなく、ホームクラスタ内のノードも検査される。様々な実施形態では、本発明の技術は、遠隔クラスタまたは要求クラスタのみが検査される必要のある場合に、メモリ制御部を時々迂回して、遠隔クラスタまたは要求クラスタのみの検査を可能にする。一例では、プローブは、ホームクラスタのメモリ制御部には転送されず、ホームクラスタのキャッシュ一貫性制御部から直接的に遠隔クラスタに転送される。
【００７６】
図１２は、メモリ制御部フィルタ情報の一例を示す図である。本明細書では、メモリ制御部に転送される要求数を削減するために用いられる任意の判定基準を、メモリ制御部フィルタ情報と呼ぶこととする。この例でも、キャッシュ一貫性制御部が、要求クラスタからプローブを受信した際に、そのプローブの特徴を分析することができる。プローブ要求などの処理は、様々な特徴を有しうる。一部の特徴は、プローブが、ブロック読み出し（読み出し）１２２３と、ブロック読み出し変更（読み出し／書き込み）１２２５のいずれであるかを示す。プローブの他の特徴は、プローブに関連するメモリラインの状態を含む。一部の例では、状態は、無効１２３１，共有１２３３，所有１２３５，変更１２３７を含む。プローブに関連するメモリラインの状態が無効１２３１である場合には、遠隔クラスタは、そのメモリラインのコピーをキャッシュ内に持たないため、遠隔プローブは必要ない。また、キャッシュ一貫性制御部は、ホームクラスタキャッシュの状態に関する情報を有していない。したがって、プローブは、メモリ制御部に転送される。
【００７７】
共有されたメモリラインに関するブロック読み出し処理１２０３については、ホームクラスタが、キャッシュとメモリ制御部のいずれかにメモリラインの有効なコピーを含むことから、遠隔クラスタを検査する必要はない。したがって、プローブは、メモリ制御部に転送される。共有されたメモリラインに関するブロック読み出し変更処理１２１１については、ローカルノードの状態は不明であり、プローブは、メモリ制御部に送信される。
【００７８】
所有状態は、ホームクラスタのキャッシュが無効または共有状態であることを暗示するため、所有されたメモリラインに関するブロック読み出し処理１２０５については、対象すなわちプローブローカルノードにプローブ要求を送信する必要はない。プローブは、所有しているクラスタに対して直接転送され、キャッシュされたデータが取得される。所有されたメモリラインに関するブロック読み出し書き込み処理１２１３については、ローカルの状態は不明であるため、要求は、メモリ制御部に転送される。変更状態は、ホームクラスタの状態が無効であることを暗示するため、要求に関連するメモリラインの状態が変更１２３７である場合には、ローカルノードを検査する必要はない。プローブは、メモリラインを所有するクラスタに転送される。
【００７９】
図１３は、プローブがホームクラスタのメモリ制御部に転送される必要がない場合のシーケンスの一例を示す図である。様々な実施形態では、ローカルクラスタ１３００内のプロセッサ１３０１−１は、読み出し要求などのデータアクセス要求をキャッシュ一貫性制御部１３０３−１に送信する。キャッシュ一貫性制御部１３０３−１は、ホームクラスタ１３２０のキャッシュ一貫性制御部１３２１−１に要求を転送する。ホームクラスタ１３２０のキャッシュ一貫性制御部１３２１−１は、アクセス要求を受信して、メモリ制御部を迂回できるか否かを判定する。本明細書では、メモリ制御部にプローブを転送することなしに、そのプローブを遠隔クラスタまたは要求クラスタに転送することを、メモリ制御部の迂回と呼ぶ。一実施形態では、メモリ制御部フィルタ情報を用いて、上述の判定を行うことができる。プローブの特徴が、項目１２０５，１２０７，１２１５に含まれる場合には、メモリ制御部は迂回され、プローブは、遠隔クラスタ１３４０内のキャッシュ一貫性制御部１３４１−１に転送される。一例では、プローブは、完了ビットを利用すべきであるという指示と共に転送される。
【００８０】
ホームクラスタ１３２０のキャッシュ一貫性制御部１３２１−１は、メモリ制御部の代わりに直列化ポイントとして機能し、キャッシュ一貫性を維持する。メモリ制御部が迂回可能であると判定されると、キャッシュ一貫性制御部１３２１−１は、要求クラスタから最終的な発信元終了を受信するまで、すべての他の要求の入力およびプローブの出力をブロックする。遠隔クラスタのキャッシュ一貫性制御部１３４１−１は、遠隔クラスタのノードを検査して、完了標識と共に応答を要求クラスタ１３００に送信する。応答は、ＣＰＵ１３０１−４に転送され、発信元終了メッセージが、キャッシュ一貫性制御部１３０３−５からホームクラスタのキャッシュ一貫性制御部１３２１−５に送信される。メモリ制御部は処理を行わないため、発信元終了は、メモリ制御部には転送されない。
【００８１】
図１４は、メモリ制御部フィルタ情報を用いてホームキャッシュ一貫性制御部でプローブ要求を扱う方法を示すフローチャートである。工程１４０１において、特定のメモリラインに関連するプローブ要求が受信される。工程１４０３において、プローブ要求に関連する指標が特定される。工程１４１１において、メモリ制御部が迂回可能であるか否かが判定される。様々な実施形態では、メモリ制御部が迂回可能であるか否かは、図１２に示したメモリ制御部フィルタ情報を用いて判定される。メモリ制御部が迂回可能であると判定された場合には、同じメモリラインに関連するプローブ要求は、工程１４１５においてブロックされ、遠隔クラスタまたは要求クラスタにプローブが送信される。工程１４１７において、メモリラインは、要求クラスタからの発信元終了の受信後にブロック解除される。工程１４１１において、メモリ制御部が迂回可能でないと判定された場合には、プローブ要求は、工程１４０５において、直列化ポイントに転送される。これで、一連の処理は、図１１の工程１１０９に示したように、プローブフィルタリングおよび完了標識の有無にかかわらず進行可能になる。
【００８２】
本発明について、具体的な実施形態を参照しつつ詳細に説明したが、本発明の趣旨および範囲から逸脱することなく、開示した実施形態の形態および詳細事項における変更を行うことができることは、当業者にとって明らかなことである。例えば、本発明の実施形態は、ポイント・ツー・ポイント構成、または、スイッチ構成，バス構成を用いて接続された複数のプロセッサクラスタに適用しても良い。別の例では、複数のプロセッサクラスタが、一つのキャッシュ一貫性制御部を共有しても良いし、複数のキャッシュ一貫性制御部が、一つのクラスタ内で用いられてもよい。したがって、本発明の範囲は、添付の請求項の範囲を参照して判断されるものである。
【図面の簡単な説明】
【００８３】
【図１Ａ】複数のクラスタを有するシステムを示す図である。
【図１Ｂ】複数のクラスタを有するシステムを示す図である。
【図２】複数のプロセッサを有するクラスタを示す図である。
【図３】キャッシュ一貫性制御部を示す図である。
【図４】単一クラスタ内のプロセッサからのデータアクセス要求のための処理の流れを示す図である。
【図５Ａ】キャッシュ一貫性制御部の機能を示す図である。
【図５Ｂ】キャッシュ一貫性制御部の機能を示す図である。
【図５Ｃ】キャッシュ一貫性制御部の機能を示す図である。
【図５Ｄ】キャッシュ一貫性制御部の機能を示す図である。
【図６】複数のプローブ応答を伴うプローブ要求のための処理の流れを示す図である。
【図７】キャッシュ一貫性ディレクトリを示す図である。
【図８】種々のクラスタに送信されるプローブの数を削減するために利用可能なプローブフィルタ情報を示す図である。
【図９】他のクラスタを検査することなしにホームクラスタを検査するための処理の流れを示す図である。
【図１０】単一の遠隔クラスタの検査を行うための処理の流れを示す図。
【図１１】プローブフィルタ情報を用いてプローブ要求を扱う方法を示すフローチャートである。
【図１２】メモリ制御部フィルタ情報を示す図である。
【図１３】ホームクラスタを検査することなしに単一の遠隔クラスタを検査するための処理の流れを示す図である。
【図１４】メモリ制御部フィルタ情報を用いてホームクラスタのキャッシュ一貫性制御部でプローブ要求を扱う方法を示すフローチャートである。
【図１Ａ】
2006505855.tif 000003
【図１Ｂ】
2006505855.tif 000004
【図２】
2006505855.tif 000005
【図３】
2006505855.tif 000006
【図４】
2006505855.tif 000007
【図５Ａ】
2006505855.tif 000008
【図５Ｂ】
2006505855.tif 000009
【図５Ｃ】
2006505855.tif 000010
【図５Ｄ】
2006505855.tif 000011
【図６】
2006505855.tif 000012
【図７】
2006505855.tif 000013
【図８】
2006505855.tif 000014
【図９】
2006505855.tif 000015
【図１０】
2006505855.tif 000016
【図１１】
2006505855.tif 000017
【図１２】
2006505855.tif 000018
【図１３】
2006505855.tif 000019
【図１４】
2006505855.tif 000020
【国際調査報告】
2006505855.tif 000021
2006505855.tif 000022
2006505855.tif 000023