(57)【要約】【課題】  ネットワークのデバイス間で、通信の低レイテンシーと、デバイスの改善された接続性に対する方法及び装置を提供する。【解決手段】  デバイスの接続を改善し、超並列ネットワークのデバイス間に低レイテンシーの通信をするための方法及び装置が提供されている。この方法及び装置では、クロスバースイッチ２００、マルチプロトコルインターフェースデバイス、低レイテンシー上位通信プロトコル層、アドレス指定、及び超並列ネットワークにリモートダイレクト通信アクセスをするために提供されている。【選択図】  図６
2005323359.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイス間の通信を可能にするためのクロスバースイッチであって、
デバイスグループから選択される第一デバイスからデータを受信するよう動作可能な入力インターフェースと、
前記デバイスグループから選択される第二デバイスへ前記データを出力するよう動作可能な出力インターフェースと、
ｍ×ｎ配列のスイッチエレメントと、を有し、ｍ及びｎの各々は２以上であり、これらのスイッチエレメントは、前記入力インターフェースと前記出力インターフェースとの間にデータを転送するために結合され、かつ、前記スイッチエレメントの各々は、前記配列が、サイクル毎に少なくとも１ビット単位で、前記入力インターフェースと前記出力インターフェースとの間にデータを転送するよう動作可能となるように、前記サイクル毎に少なくとも１ビットを受信するよう動作可能な複数の入力ポート、及び前記サイクル毎に少なくとも１ビットを出力するよう動作可能な複数の出力ポートを有するものである、クロスバースイッチ。
【請求項２】
前記スイッチエレメントの各々は、前記各スイッチエレメントが少なくとも１ビット単位で前記入力ポートと前記出力ポートとの間に少なくともＸ／２の転送を同時に実行するよう動作可能となるよう、複数かつＸ個の前記入力ポートと、複数かつＸ個の前記出力ポートと、前記入力ポートと前記出力ポートのうちの入力及び出力ポート間に接続可能な少なくとも複数Ｘ／２のデータ経路と、を有する、請求項１記載のクロスバースイッチ。
【請求項３】
前記配列は、前記入力インターフェースと結合される前記スイッチエレメントの入力行、前記出力インターフェースと結合される前記スイッチエレメントの出力行、及び、前記入力行と前記出力行間に結合される、少なくとも１つの内部行を有し、前記入力行と前記内部行の前記スイッチエレメントの各々は、前記配列の２つのスイッチエレメントへ出力するために結合され、かつ、前記内部行と前記出力行の前記スイッチエレメントの各々は、前記配列の２つのスイッチエレメントから受信するために結合されている、請求項１記載のクロスバースイッチ。
【請求項４】
前記入力インターフェースはパラレルデータとして前記第一デバイスから前記データを受信するよう動作可能であり、かつ、前記出力インターフェースはパラレルデータとして前記第二デバイスへデータを出力するよう動作可能であり、かつ、前記配列は前記入力インターフェースと前記出力インターフェース間に、前記スイッチエレメントのうちの対応するスイッチエレメントを通じて、サイクル毎に複数のビットとして、データを転送するよう動作可能である、請求項１記載のクロスバースイッチ。
【請求項５】
前記入力インターフェースは、前記第一デバイスから、サイクル毎にシングルビットのデータを受信するよう動作可能であり、かつ、前記出力インターフェースは、前記第二デバイスへ、サイクル毎にシングルビットのデータを出力するよう動作可能であり、かつ、前記配列は、前記スイッチエレメントのうちの対応するスイッチエレメントを通じて、前記入力インターフェースと前記出力インターフェース間に、サイクル毎にシングルビットのデータを転送するよう動作可能である、請求項１記載のクロスバースイッチ。
【請求項６】
請求項５記載の複数のクロスバースイッチを備え、前記クロスバースイッチの前記入力インターフェースは、前記第一デバイスによりパラレルデータとして、サイクル毎に複数ビット出力のうち、サイクル毎に異なるシングルビットを受信するよう動作可能である、相互接続装置。
【請求項７】
請求項４記載の複数のクロスバースイッチを備え、前記クロスバースイッチの前記出力インターフェースが各々、前記第二デバイスへ、サイクル毎にパラレルデータの異なるシングルビットを出力するよう動作可能である、相互接続装置。
【請求項８】
前記入力インターフェースは更に、前記パラレルデータを前記配列へ、時分割多重方式ベースで転送するよう動作可能であり、かつ、前記出力インターフェースは更に前記配列から、時分割多重方式ベースで前記パラレルデータを受信するよう動作可能である、請求項７記載の相互接続装置。
【請求項９】
請求項１に記載の複数のクロスバースイッチを備え、前記クロスバースイッチの前記入力インターフェースは各々、パラレルデータとして、サイクル毎の複数のビット出力でサイクル毎に異なる部分を第一デバイスにより、前記クロスバースイッチのうちの対応するクロスバースイッチの前記スイッチエレメントの入力ポートへ転送するよう動作可能であり、かつ、前記クロスバースイッチの前記出力インターフェースは各々、サイクル毎に前記別の部分のパラレルデータのうち対応する部分を、前記第二デバイスへ出力するよう動作可能である、相互接続装置。
【請求項１０】
前記入力インターフェースは更に、前記配列へ、時分割多重方式ベースで、前記パラレルデータを転送するよう動作可能であり、かつ、前記出力インターフェースは更に、時分割多重方式ベースで前記配列から前記パラレルデータを受信するよう動作可能である、請求項９記載の相互接続装置。
【請求項１１】
前記入力インターフェースは更に時分割多重方式ベースで、前記配列へデータを転送するよう動作可能であり、かつ、前記出力インターフェースは更に時分割多重方式ベースで、前記配列から前記データを受信するよう動作可能である、請求項１記載のクロスバースイッチ。
【請求項１２】
複数のデバイス間で通信を行う方法であって、
デバイスグループから選択される第一デバイスから、入力インターフェースへデータを入力し、
サイクル毎に少なくとも１ビットのデータを、前記入力インターフェースと出力インターフェースとの間に、ｍ×ｎ配列のスイッチエレメントを通じて転送することを有し、ｍ及びｎの各々は２以上であり、前記スイッチエレメントの各々は、サイクル毎に少なくとも１ビットを受信するよう動作可能であり、かつ、複数の出力ポートはサイクル毎に少なくとも１ビットを出力するよう動作可能であり、かつ、
前記出力インターフェースから、前記デバイスグループから選択される第二デバイスへデータを出力する、方法。
【請求項１３】
前記スイッチエレメントの各々は、前記各スイッチエレメントが少なくとも１ビット単位で前記入力ポートと前記出力ポートとの間に少なくともＸ／２の転送を同時に実行するよう動作可能となるよう、複数かつＸ個の前記入力ポートと、複数かつＸ個の前記出力ポートと、前記入力ポートと前記出力ポートのうちの入力及び出力ポート間に接続可能な、少なくとも複数Ｘ／２のデータ経路と、を有する、請求項１２記載の方法。
【請求項１４】
前記配列は、前記入力インターフェースと結合される前記スイッチエレメントの入力行、前記出力インターフェースと結合される前記スイッチエレメントの出力行、及び、前記入力行と前記出力行間に結合される、少なくとも１つの内部行を有し、前記入力行と前記内部行の前記スイッチエレメントの各々は、前記配列の２つのスイッチエレメントへ出力するために結合され、かつ、前記内部行と前記出力行の前記スイッチエレメントの各々は、前記配列の２つのスイッチエレメントから受信するために結合されている、請求項１２記載の方法。
【請求項１５】
前記データは、前記第一デバイスから前記入力インターフェースへパラレルデータとして入力され、前記データは前記出力インターフェースから前記第二デバイスへパラレルデータとして出力され、かつ、前記データは前記入力インターフェースと前記出力インターフェース間に、サイクル毎に複数のビットとして、前記スイッチエレメントの前記入力ポートと前記出力ポートの、対応するそれぞれを通じて転送される、請求項１２記載の方法。
【請求項１６】
前記データは前記入力インターフェースへサイクル毎にシングルビットが入力され、前記データは前記出力インターフェースからサイクル毎にシングルビットが出力され、かつ前記データは前記配列を通じて、サイクル毎にシングルビットが転送される、請求項１２記載の方法。
【請求項１７】
前記スイッチエレメントの前記入力ポートの各々は、サイクル毎にシングルビットを入力するよう動作可能であり、かつ前記スイッチエレメントの前記出力ポートの各々は、サイクル毎にシングルビットを出力するよう動作可能である、請求項１６記載の方法。
【請求項１８】
前記第一デバイスからパラレルデータの対応するシングルビットを、複数の前記入力インターフェースのうちの対応するインターフェースへ入力するとともに、前記入力インターフェースの各々に対し、複数の前記配列のうちの１つの配列により、前記入力インターフェースと前記出力インターフェースとの間に、サイクル毎に対応するシングルビットを転送し、かつ、複数の前記出力インターフェースのうちの対応するインターフェースを通じて、前記第二デバイスへ、サイクル毎にパラレルデータの対応するシングルビットを出力することを更に有する、請求項１６記載の方法。
【請求項１９】
パラレルデータの異なるシングルビットを前記クロスバースイッチのうちの対応するクロスバースイッチの前記出力インターフェースから出力することを更に有する、請求項１８記載の方法。
【請求項２０】
前記パラレルデータは前記入力インターフェースにより、時分割多重方式ベースで前記配列に転送され、かつ、前記パラレルデータは前記配列から前記出力インターフェースへ、時分割多重方式ベースで転送される、請求項１９記載の方法。
【請求項２１】
前記第一デバイスから複数の前記入力インターフェースのうちの対応するインターフェースへ、対応する部分のパラレルデータを入力するとともに、前記入力インターフェースの各々に対し、複数の前記配列のうちの１つの配列により、前記入力インターフェースと前記出力インターフェースとの間に、サイクル毎に前記対応する部分を転送し、かつ、複数の前記出力インターフェースのうちの対応するインターフェースを通じて、前記第二デバイスへ、サイクル毎に対応する部分の前記パラレルデータを出力することを更に有する、請求項１２記載の方法。
【請求項２２】
前記データは時分割多重方式ベースで、前記配列を通じて転送される、請求項２１記載の方法。
【請求項２３】
前記データは時分割多重方式ベースで、前記配列を通じて転送される、請求項１２記載の方法。
【請求項２４】
マルチプロトコルスタックインターフェースデバイスであって、
第一の下位通信プロトコルスタック層に従って通信するよう動作可能な第一下位層アダプタ、
前記第一の下位通信プロトコルスタック層上でオペレーションを行う、第一の上位通信プロトコルスタック層に従って通信するよう動作可能な第一上位層アダプタ、及び
前記第一の下位通信プロトコルスタック層上でオペレーションを行う、第二の上位通信プロトコルスタック層に従って通信するよう動作可能な第二上位層アダプタ、を有し
前記インターフェースデバイスは前記第一下位通信プロトコルスタック層と、前記第一上位層通信プロトコルスタック層に従って通信するよう動作可能であり、及び、前記第一下位通信プロトコルスタック層と、前記第二上位層通信プロトコルスタック層に従い通信するよう動作可能である、インターフェースデバイス。
【請求項２５】
前記第一下位通信プロトコルスタック層と前記第一上位通信プロトコルスタック層は、単一の通信プロトコルスタックの一部である、請求項２４記載のインターフェースデバイス。
【請求項２６】
第二下位通信プロトコルスタック層に従い通信するよう動作可能な、第二下位層アダプタを更に有し、前記第二デバイスは、前記第一下位通信プロトコルスタック層により受信される第一メッセージを、前記第二下位通信プロトコルスタック層により、第二メッセージへ変換するよう動作可能である、請求項２５記載のインターフェースデバイス。
【請求項２７】
前記インターフェースデバイスは更に、前記第二下位通信プロトコルスタック層から受信する第三メッセージを、前記第一下位通信プロトコルスタックにより第四メッセージへ変換するよう動作可能である、請求項２６記載のインターフェースデバイス。
【請求項２８】
第一下位通信プロトコルスタック層と前記第一下位通信プロトコルスタック層上でオペレーションを行う第二上位通信プロトコルスタック層により第一メッセージを受信し、かつ、
前記第一メッセージを少なくとも第二下位通信プロトコルスタックにより第二メッセージへ変換し、かつ、
前記第二メッセージを送信する、
少なくとも別の下位通信プロトコルスタック層により通信するデバイス間に通信する方法。
【請求項２９】
前記第二メッセージは前記第二上位通信プロトコルスタックにより変換される、請求項２８記載の方法。
【請求項３０】
前記第一下位通信プロトコルスタック層及び前記第一上位通信プロトコルスタック層が、単一の通信プロトコルスタックの一部である、請求項２９記載の方法。
【請求項３１】
前記第二下位通信プロトコルスタック層により受信される第三メッセージを、前記第一下位通信プロトコルスタック層により第四メッセージへ変換することを更に湯売る、請求項２８記載の方法。
【請求項３２】
ノードのネットワークを通して通信する方法であって、
第一ネットワークの各ノードに第一ナンバーのアドレスビットを有したアドレスを割り当て、
前記第二ナンバーのアドレスビットを有するものから、第二ナンバーよりも大きな前記第一ナンバーのアドレスビット有するものへ、第一デバイスから前記第一ネットワークへ通信をインバウンドへ変換し、かつ、
前記第一ナンバーのアドレスビットを有するものから、前記第二ナンバーのアドレスビット有するものへ、前記第一ネットワークから前記第一デバイスへ通信をアウトバウンドへ変換する、通信方法。
【請求項３３】
ネットワークを通してリモートダイレクトメモリアクセスする方法であって、
ローカルプロセッサにより、リモートデバイスに対しダイレクトメモリアクセス（ＤＭＡ）を実行するため、少なくとも１パケットを生成し、
前記生成されたパケットを前記ローカルプロセッサに対しローカルなストレージに記録し、
前記ローカルストアに監視されることなく、前記リモートデバイスへ前記パケットを送信し、
前記ローカルプロセッサに監視されることなく、前記リモートデバイスにおいて前記パケットを受信する、方法。
【請求項３４】
前記リモートデバイスはプロセッサを備え、前記パケットは前記リモートデバイスの前記プロセッサに監視されることなく受信される、請求項３３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ通信ネットワークに関するものである。
なお、本出願は米国仮特許出願第６０／５６４，６４７号（２００４年４月２２日出願）による利益を享受するものであり、該出願の開示は本明細書に参照のため組み込まれている。
【背景技術】
【０００２】
個々のコンピュータの処理能力や、それらが高速通信のリンクにアクセスする速度の最近の進展にもかかわらず、個々のコンピュータが合理的な時間で処理しきれないほど大きなコンピュータの問題は常に存在する。従って、飛行機の機体の設計や地下の油田フィールド探索など、いくつかのフィールドでは、２〜２０個という比較的少数のプロセッサを密結合したプロセッサ群によって、飛行機の機体を設計するといったプロジェクトを実施するのはよくあることである。しかしながら、場合によっては、そのようなプロセッサ群ではプロジェクトが大きすぎて、処理しきれないこともある。
【０００３】
数千のプロセッサで処理された、あるいは処理されている大規模なコンピューティングプロジェクト（ＬＳＣＰ：Large-scale Computing Project）としては、地球外知的生命体探索（ＳＥＴＩ:Search for Extraterrestrial Intelligence）という名の下に実施されているプロジェクトが挙げられる。このＳＥＴＩプロジェクトを進めるために、興味のある個人が自分たちのパーソナルコンピュータ（ＰＣ）にプログラムをインストールし、アイドル状態時に、インストールしたＰＣに、電波望遠鏡により集められるデータの一部を処理するように指示をする。別の例では、数千の個人がＰＣ(Personal Computer)にプログラムをインストールし、インストールしたプログラムはその後、幅広く使用されている暗号化アルゴリズムをデコードするために用いられた。
【０００４】
しかしながら、上記の双方の場合において、プロジェクトの目的が達成された理由は、ＬＳＣＰｓが疎結合ネットワークで互いから実質的に独立してオペレーションを行うプロセッサにより処理されることが可能な、更に小さなマイクロプロジェクトに解析できた、ということにのみ言い尽くされる。飛行機の機体の設計や地下油田フィールド探索などのＬＳＣＰは、いずれも、例えば、機体の設計や地下油田フィールドをモデリングするのに必要とされる方法では、プロセッサ間での高度のコラボレーションを必要としなかった。更に、どちらのＬＳＣＰもプロセッサ間で、リアルタイムで、リアルタイムのサービスをサポートするための情報の共有は必要とされなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
リアルタイムで、リアルタイムのサービスを提供するため、プロセッサ間で高度のコラボレーションを必要とする例が多くある。上述の機体の設計及び油田探索の双方の例に対する、ＬＳＣＰが有する１つの共通の特徴は、大量の画像データが多次元で処理される必要があるという点である。従って、画像の各ポイントに対し、３空間次元で可変を表すデータが処理され、他の次元の時間や温度、材料、応力、張力などの可変もまた同様に処理される。
【０００６】
プロセスシステムのユーザに対し、“バーチャルワールド”として現実の世界をシミュレートする別のＬＳＣＰが存在する。このＬＳＣＰは、プロセッサ間で高度なコラボレーションを必要とし、これらのプロセッサ間でタイムシェアリングを行ってリアルタイムのサービスを提供する。具体的には、高度なコラボレーションとリアルタイムシェアリングがバーチャルワールドを与えるために必要である。バーチャルワールドは、世界各国の場所から実際の世界と実際の知覚経験をシミュレートし、一方で対話式、即ちインタラクティブプレイを提供する。ユーザに対し、それらの経験の信憑性を高めるため、多くの知覚データが実際の世界各地からリアルタイムで集められる必要があり、またユーザがバーチャルワールドで対応するバーチャルサイトを“訪れる”場合には、それらの知覚データが再現される必要がある。従って、視覚（実際の世界各地の最新のイメージ）、最新の音、温度や湿度、風の存在や、においを示すものまでもが収集され、ユーザが利用できるようにする必要がある。
【０００７】
プロセッサネットワークがバーチャルワールドをサポートするには不十分であるため、そのようなバーチャルワールドは必要とされていながらも実現されていない。そのようなバーチャルワールドに対する処理要件は、世界で最速のスーパーコンピュータの性能を超えることと考えられる。現在のところ、世界で最速のスーパーコンピュータは、“地球シミュレータ”であり、これは速度８２テラフロップ／秒、レイテンシー１０μsの日本のスーパーコンピュータである。地球シミュレータはレイテンシーが特に高いため、そのようなバーチャルワールドをサポートすることが出来ないと信じられている。高レイテンシーはプロセッサ間にメッセージを送る際に、プロトコルオーバーヘッドが高いことにより引き起こされうる。従って、レイテンシーの小さい、低いオーバーヘッド通信プロトコルを介して通信し、そのため、プロセッサと、改善されたリアルタイムでの情報の共有との間に、更に高度なコラボレーションが可能となるよう、プロセッサのネットワークを提供する必要性がある。
【０００８】
図１Ａ及び図１Ｂに、従来のデータ通信ネットワークのトポロジーを示す。図１Ａは、クロスバースイッチ１０を備えたトポロジーを例示しており、一方で図１Ｂは、階層ネットワーク２０のトポロジーを例示している。クロスバースイッチは、スイッチファブリックエレメントの配列を有し、各々はクロスバースイッチ１０の入力端１６における複数のデバイスＤ０からＤ３までのうちで選択されるデバイスと、出力端１８における複数のデバイスＤ０からＤ３までのうちで選択されるデバイスとの間にメッセージを送信するため、バッファを備えている。図１Ａに示すように、４つのデバイスＤ０からＤ３までの間に完全な入力−出力の接続性を与えるために、１６個のスイッチファブリックエレメント１４が必要とされる。図１Ａは入力端１６と出力端１８におけるデバイスＤ０からＤ３までのうちで、選択されるデバイス間の複数の経路１２にメッセージを送信する場合にクロスバースイッチ１０を使用したものを例示している。例えば、Ｄ０は経路１２のＤ３にメッセージを送信し、一方でＤ１は経路１２のメッセージをＤ２に送信する、などである。
【０００９】
階層ネットワーク２０は、４つのデバイスＤ０からＤ３までの各々から通信をバッファするために、一連の４つの第一ステージバッファ２２を備え、また４つの通信エレメントＤ４からＤ７までの各々から通信をバッファするために、一連の４つの第一ステージバッファ２４を備えている。これらの４つのバッファ２２と４つのバッファ２４は二つの第二ステージバッファ２６と結合されており、この第二ステージバッファは、第一ステージバッファ２２と第一ステージバッファ２４との間に通信を送信するように機能する。
【００１０】
接続性という点では、クロスバースイッチ１０と階層ネットワーク２０は同じ機能を与える。ネットワークに取り付けられるデバイスのいずれも、いずれの他のデバイスと通信が可能である。しかしながら、最大量の同時スループット、という点では、クロスバースイッチ１０が優れている。何故なら、クロスバースイッチ１０は、各々がバッファを有した、多くのスイッチファブリックエレメント１４を備えているからである。クロスバースイッチ１０の理論上でのキャパシティは、スイッチファブリックエレメントの数から１を引いたものと等しい。換言すれば、図１Ａに示すような４×４クロスバースイッチの理論上でのキャパシティは、１５個のメッセージである。実際には、最大に使用可能なキャパシティは、理論上のキャパシティの何割かであるが、それでも通常は、理論上のキャパシティの約６０−７０％の範囲内である。従って、約１０個のメッセージがクロスバースイッチにより同時に通信されうる。別の例では、クロスバースイッチ１０が、８×８＝６４のスイッチファブリックエレメントを有する８個のデバイスと相互接続すると仮定する。その結果、最大に使用可能なキャパシティは約０．６０×６４＝３８の同時メッセージとなる。これとは対照的に、階層ネットワーク２０の容量は、ネットワークの最高段のバッファ数により制限される。図１Ｂに示す例では、ネットワーク２０に同時送信されうるメッセージの最大数は、第二ステージバッファがわずか「２」であるために、２つである。これらの２つのネットワーク１０及び２０のタイプを比較すると、階層ネットワークは最大キャパシティが（２）であり、これはクロスバースイッチ１０の最大キャパシティ（３８）のわずか約５％である。
【００１１】
一方で、階層ネットワーク２０は、クロスバースイッチ１０と比べると非常に経済的である。その理由は、階層ネットワーク２０はスイッチエレメント数が非常に少なく（第一及び第二ステージバッファの形態で）、またバッファ間の相互接続も同様に非常に少ないためである。スイッチ１０に類似した８×８サイズのクロスバースイッチに対して必要とされる６４個のスイッチファブリックエレメントに代わり、８個のデバイスを相互接続する階層ネットワーク２０では、図１Ｂに示すように、必要なバッファ２２、２４、及び２６はわずか１０個である。
【００１２】
従って、多くの通信エレメントを相互接続するために、クロスバースイッチトポロジーを有し、メッセージを同時に送信するために高キャパシティを有したネットワークであり、一方でそのようなネットワークを実装するのに必要とされるスイッチファブリックエレメントの数を少なくするネットワークを提供することが望ましい。
【００１３】
図２に本発明の背景技術であるブリッジ３０の構成を示す。ただし、この構成を先行技術と認める訳ではない。図２に示すように、複数のデバイスＢＥ０からＢＥ３までは、通信のためにブリッジ３０によりスイッチングネットワーク３２に結合されている。ブリッジ３０は、第一通信プロトコルを使って、デバイスＢＥ０からＢＥ３までから受信するメッセージを、第二通信プロトコルを使って、スイッチングネットワーク３２へ、送信用のメッセージに変換する。望ましくはデバイスＢＥ０からＢＥ３までは、同時係属中で本願の出願人に譲渡された米国特許出願第０９／８１５，５５４号（２００１年３月２２日出願、以後、‘５５４出願とする）に解説されており、“広帯域エンジン(ＢＥ：broadband engine)”として示され、説明されており、この’５５４出願は本明細書中に参考のために組み込まれている。これらのデバイスＢＥは、ＩＯＩＦプロトコルとして‘５５４出願に解説されているような、第一通信プロトコルに通信する組み込み機能(built-in capability)を有する。しかしながら、ＢＥは、Infiniband Trade Association（登録商標）により、InfinibandＴＭとして特許取得済の通信プロトコルなどの、別のプロトコルスタックに直接通信をするには機能が不十分である。望ましくは、スイッチングネットワーク３２は高速で高機能であるシリアル通信ネットワークであり、図１Ａに関して上述されているようなクロスバースイッチのトポロジーを有している。スイッチングネットワーク３２に通信するには、インフィニバンドのプロトコルスタックの物理結合層３４に従い、転送用にフォーマットされる必要がある。ブリッジ３０はＩＯＩＦアダプタ３６とインフィニバンドアダプタ３８を有する。ＩＯＩＦアダプタ３６は各ＢＥと通信するためのものであり、またインフィニバンドアダプタ３８はスイッチングネットワーク３２に転送するために、ＩＯＩＦプロトコルからインフィニバンドプロトコルへの通信を変換するためのものである。
【００１４】
論理的に、プロトコルスタックは、周知の開放型システム間相互接続（ＯＳＩ）参照モデルにより“層”に分けられる。ＯＳＩ参照モデルによれば、プロトコルスタックは、ボトムアップから、電圧や周波数や、ネットワークをサポートするハードウエアのその他の基本操作などの、電気的レベルでビットストリームを運ぶ物理層を有する。次に、データリンク層が物理層の上で動作する。第３のスタック層であるネットワーク層はルーチン処理し、直接結合されている１つのノードから別のノードに、パケットレベルにおいてメッセージを送る。通常、第４のプロトコルスタック層であるトランスポート層がネットワーク層上で動作する。トランスポート層は、非直接的に結合されるネットワークのデバイス間の結合を制御し、またネットワークを通じて、マルチパケット通信のパケット送信の進行具合をトラッキングするための機構を提供している。
【００１５】
これらのプロトコルスタック層の管理は、以下のように図２に表される。スイッチングネットワーク３２と結合されているのはインフィニバンド物理層コントローラ４０であり、このインフィニバンド物理層コントローラ４０は、ブリッジ３０をスイッチングネットワーク３２に物理的に結合させ、また信号の送信及び受信を行う。インフィニバンドリンク層コントローラ４２は、物理層コントローラ４０でオペレーションを行い、リンクの特性を管理するとともに、ネットワーク層の機能を与える。インフィニバンドアダプタ３８はトランスポート層の機能を与え、デバイスＢＥ０からＢＥ３まで、などのデバイス間と、ネットワーク３２を通した他のデバイス間で、マルチパケットや接続を含む通信を制御する。インフィニバンドアダプタ３８は頑丈であり、通信が途絶えたり、継続を妨げられることがほとんどないように、接続を維持することが可能である。
【００１６】
ＩＯＩＦプロトコルとインフィニバンドプロトコル間の通信を変換し、ＢＥがデバイスを用いてスイッチングネットワーク３２に通信できるようにしているブリッジ３０には、非常に不都合な点がある。インフィニバンドのプロトコルスタックの上位層、即ち、ネットワーク層上の全ての層は、レイテンシーが高いことである。換言すれば、ブリッジ３０とスイッチングネットワーク３２を通して送信されるマルチパケットメッセージは、インフィニバンドアダプタ３８のオペレーションによりその速度が低下するということである。図３Ａと３Ｂに関して以下に示し、説明しているように、メッセージが送信可能な状態になる前に、いくつかの事前オペレーションを必要とするインフィニバンドのプロトコルにより、レイテンシーの増大が生じる。
【００１７】
インフィニバンドのプロトコルが高レイテンシーであるということは望ましくない。大規模なコンピューティングプロジェクトは多数のＢＥにより同時に処理されること必要とし、一方で共有メモリを継続するとともに統一して、維持されることもまた必要とする。高レイテンシーというのは大規模なコンピューティングプロジェクトに協働しうるプロセッサの数を事実上制限し、共同のコンピューティングプロジェクト効率を大幅に低下させる。
【００１８】
従って、ＢＥなどのデバイスが、コンピューティングプロジェクトに共に協働する必要がある場合に、一層合理化され、レイテンシーが低いプロトコルスタックが利用可能となるように、マルチプロトコルスタックをサポートすることが可能なブリッジを適宜提供することが望ましい。更に、ブリッジは所望に応じて、インフィニバンドのプロトコルスタックの上位層もサポートする必要がある。
【００１９】
ＢＥは入力出力インターフェース（“ＩＯＩＦ”）で、各ＢＥが取り付けられている入力出力インターフェースへ互いに通信する。ＢＥが同じＩＯＩＦに直接取り付けられているとき、そのＢＥはＩＯＩＦに対して“ローカル”である、あるいは単に“ローカルＢＥ”と言われる。ＢＥが同じＩＯＩＦに直接取り付けられていないとき、ＢＥ間の通信は１つ以上の、例えばスイッチングネットワーク、をトラバースあるいは移動する必要がある。このような場合、ＢＥは互いから“リモート”である、あるいは単に“リモートＢＥ”と言われる。
【００２０】
ＩＯＩＦ通信プロトコルはＩＯＩＦの通信を管理する。ＩＯＩＦプロトコルは、ＩＯＩＦを通じて通信をトラッキングするのに有益なメッセージトラフィックを高度に監視する。
【００２１】
ＢＥがＩＯＩＦプロトコルを用いて、到達するのに多くのマシンサイクルを必要とするネットワークロケーションに配列されているリモートＢＥ間にメッセージを通信することが望ましい。１つの目標はレイテンシーを高くせずに、このようなリモートＢＥ間に通信を発生させるということである。上述のように、高レイテンシーというのは大規模なコンピューティングプロジェクトに協働するためのネットワークのプロセッサ機能を制限する。
【００２２】
ＩＯＩＦ通信プロトコルを用いてネットワークに通信する具体的な一例を図３Ａと３Ｂに示す。図３Ａと３Ｂに示されている情報は、本発明の背景技術ではあるが、従来例とは認められていないものである。図３Ａと図３Ｂにおいて、上から下にかけて垂直方向に経過時間を示す。図３Ａにはマスタデバイスとして機能するＢＥ５０により実施される、リードオペレーションを示す。このオペレーションでは、ＢＥ５０が、ＩＯＩＦ５２を通じてスレーブデバイスとして機能するＢＥ５４から読み出す。図３Ａに示すように、リードコマンド５６は、命令あるいはコマンドを出すというパーミッションを得た場合にＢＥ５０により発行される。このことは最初のパーミッション−エスタブリッシングプロトコル信号５７、５８及び５９がその順序で出された後に発生する。リードコマンドの受信後、ＢＥスレーブデバイス５４は、オペレーション６０、６１及び６２を実施し、その後確認応答（ＡＣＫ）６４を返す。ＢＥスレーブデバイス５４はＩＯＩＦ５２に提示すために、要求されているリードデータを準備する。しかしながら、ＢＥスレーブデバイス５４は、ＡＣＫ６４がＢＥマスタデバイス５０へ送られるまで、ＩＯＩＦ５２を通じてリードデータを送るのを待つ。サイクル６８では、ＡＣＫ６４の配信後、リードコマンドにより要求されるデータは、ＢＥマスタデバイス５０へ送られる。
【００２３】
同様に、図３Ｂに、ＩＯＩＦ５２を通じて、マスタデバイスとして機能するＢＥ５０により、スレーブデバイスとして機能するＢＥ５４へ実施されるライトオペレーションを示す。図３Ａに示すように、ライトコマンド１５６は、パーミッション−エスタブリッシングプロトコル信号５７、５８及び５９がその順序で出された後、命令を出す許可を得た場合に、ＢＥ５０により発行される。次に、１５５において、マスタＢＥ５０が、ＩＯＩＦ５２を通じて送信のためにデータを準備する。ライトコマンドの受信後、ＢＥスレーブデバイス５４はオペレーション１６０、１６１及び１６２を実施し、続いて確認応答（ＡＣＫ）１６４を返す。この間に、ＩＯＩＦは、ＩＯＩＦ５２を通じてライトデータを送信することができるようにしている、マスタＢＥ５０に“データクレジット”も与える。しかしながら、マスタＢＥ５０は、ライトデータがスレーブＢＥ５４に転送されうる前にＡＣＫ６４が送られるまで待つ必要がある。サイクル１６８では、ＡＣＫ６４の配信後、ライトデータはＩＯＩＦ５２を通じてスレーブＢＥ５４に送られる。
【００２４】
大規模なネットワークでは、十分なアドレスビットを持つノード間にメッセージを通信し、ネットワークの全ノードを区別することが望ましい。そうでなければ、そのような大規模なネットワークは独立したアドレスドメインを持つ小さなサブネットワークに分散される必要があり、また通信デバイス間で様々なアドレスドメインをトラバースする場合に、潜在コストが発生する。しかしながら、通信デバイスの物理ハードウエア層で用いられるアドレスビット数は常に制限されている。通信デバイス間で通信を、制限されたアドレスビット数を有するものから、大規模なネットワークで通信のために使用される更に多くのアドレスビット数を有するものに変換する方法を提供することが望ましい。
【００２５】
更に、通信デバイスは、直接アクセスが可能な大規模なネットワークのいずれのメモリデバイスに記録されたいずれのデータへのリードアクセスを必要としうる。他の利用可能なメモリのいずれからも、ネットワークの通信デバイスへ、グローバルリモートダイレクトメモリアクセス（グローバルＲＤＭＡ）を実施するための方法を提供することが望ましい。
【課題を解決するための手段】
【００２６】
ネットワークのデバイス間で、通信の低レイテンシーと、デバイスの改善された接続性に対する方法及び装置が提供されている。具体的には、クロスバースイッチ、マルチプロトコルインターフェースデバイス、通信プロトコル層より上の低レイテンシー、及び大規模なネットワークなどに、改善されたアドレス指定とリモートダイレクトメモリアクセス、に対する方法及び装置が提供されている。
【発明を実施するための最良の形態】
【００２７】
図４から図１４に関して本明細書に示し解説している本発明の実施例は、プロセッサ間と広帯域エンジン（ＢＥ）などのプロセスシステム間で相互接続をするためのシステム及び方法に関するものである。望ましくは、以下に解説されている実施例によるシステム及び方法は、プロセッサ間、及び／あるいはＢＥ間に高度のコラボレーションを促進し、またネットワークのデバイスとＢＥ間にメッセージを転送するためのレイテンシーを小さくする。
【００２８】
そのような相互接続システムと方法に対し、１つの可能な応用は、“ネットワーク化されたコンピュータ環境（ＮＣＥ）”に対する応用である。このＮＣＥは大規模なコンピューティングプロジェクト（ＬＳＣＰ）に、超並列方法でオペレーションが行われる多数のノードを含む、階層ネットワークを有したコンピュータ環境である。ＮＣＥのノードタイプには、サーバーコンピュータ（大型あるいは小型サーバーのどちらか一方）、携帯情報端末（ＰＤＡ）、制御装置（例：ビデオゲーム機、セットトップボックス）、ウエブカメラ、ホームサーバー、サーバー、などがある。ＮＣＥは好ましくは、以後“セルアーキテクチャ”あるいは“ＣＡ”コンピュータと称されるノードなど、‘５５４出願で解説されているようなソフトウエアセルに組織化されたデータやアプリケーションを処理できるノードを含む。ＣＡコンピュータは、共通の特定の特徴を共有しており、その特徴とは少なくとも共通の基本命令セットと、合理化された通信プロトコルを有した共通のアーキテクチャである。ＣＡコンピュータは１から２、３個のプロセッサを有し、リソースをほとんど有さない小型コンピュータでよく、あるいは中型、あるいは非常に多くのプロセッサとリソースを有した大型コンピュータでもあってよい。通常、全てのＣＡコンピュータは、類似したプロセッサ組織と通信インターフェースを有しており、コンピュータ間でのさらに効率的な通信とコラボレーションを可能にする。通常、ＣＡコンピュータ間の通信は、アダプタやブリッジ、ルータなどのネットワークインターフェースを、ＣＡではないコンピュータよりも早くトラバースすることができる。
【００２９】
ＮＣＥは“共有のバーチャルワールド”を含むサービスに対してのサポートとなるコンピュータのインフラを提供することができる。共有のバーチャルワールドとは、ユーザに対し、信憑性の高いやり方で、現実の世界を模倣する模擬知覚経験を提供する、コンピュータが実装された環境である。この共有のバーチャルワールドは、コンピュータが生み出すキャラクタでインタラクティブプレイを可能にし、そのキャラクタの特徴や動き、行動は人口知能により生み出される。そのような体験をシミュレートするため、現実の世界各地からイメージや音、また最新の天候状態を含む知覚ネットワークから多くのデータが収集される。データはユーザ（人）に取り付けられているセンサーからも収集され、ユーザの動きが検出され、あるいはユーザのアクションに応答して、ロボットの動きが検出される。
【００３０】
具体的にＮＣＥが要求するものとは、動的に再構築が可能であることである。ノードが追加され、あるいは取り除かれる場合でも、与えられているサービスに影響があってはならない。加えて、特定のサービスが追加、あるいはネットワークから取り除かれた場合でも、ネットワークにより与えられているサービスに影響を与えてはならない。
【００３１】
従って、本明細書に解説されている発明の実施例は、ネットワークの通信エレメント間、特に大規模なコンピューティングプロジェクトに共に協働するプロセッサを含む、これらデバイス間にメッセージを通信するために、改善された相互接続システム及び方法を提供するものである。
【００３２】
図４は、デバイスの大型ネットワークの実施例であり、好ましくは‘５５４出願で示され、解説されているような広帯域エンジン（ＢＥ）デバイスである。ネットワークにより相互接続される特定のタイプのデバイスが必須ではなく、更に、データ通信を転送でき、また受信できるいずれのデバイスの形状をとることができる。例えば、ネットワークにより相互接続されているデバイスは、典型的にはハードウエア、及び／またはソフトウエアが使用可能なプロセッサを含む。図４に示すように、クロスバースイッチ１００は各ＢＥと相互接続する。クロスバースイッチ１００は、スイッチ１００の先端１０１に配列されたＢＥと、下端１０３に配列されたＢＥ間の方向に、垂直ライン１０４として示すように、インライン通信経路のクロスバー配列を含む。クロスバースイッチ１００は水平ライン１０６として示すように、一般的にインライン通信経路に対して直角方向に、トランスバース通信経路を含む。インラインとトランスバース通信経路は一緒になって、クロスバースイッチの先端１０１に示されているＢＥの各々と、クロスバースイッチの下端１０３に示されているＢＥの各々との間に相互接続を提供する。
【００３３】
インラインとトランスバース通信経路のインターセクションにはスイッチファブリックエレメント（“ＳＦＥ”）１０２があり、１つのＳＦＥが各インターセクションに与えられている。示されているように、クロスバースイッチは垂直方向にＳＦＥ１０２を５０００、水平方向にＳＦＥ１０２を５０００含み、合計サイズは５０００×５０００ＳＦＥ、すなわち２５００万ＳＦＥである。
【００３４】
図５に示すように、クロスバースイッチ１００の各ＳＦＥ１０２は、２つの入力インターフェース１１２と２つの出力インターフェース１１４を有する。入力インターフェース１１２の１つと出力インターフェース１１４の１つはインライン通信経路１０４と結合されている。また、入力インターフェース１１２の１つと出力インターフェース１１４の１つはトランスバース通信経路１０６と結合されている。図５に示す実施例では、入力インターフェースと出力インターフェースの各々は、８個のポートを有し、各ポートは、８ビットのパラレルデータを処理する。従って、図４と５に示すように、各々が８ビットのパラレルデータインターフェースに通信する、８個のＢＥからなるグループ１１６は、クロスバースイッチ１００の先端１０１において１つのＳＦＥ１０２と結合されている。各ＳＦＥ１０２は好ましくは同じ構造をしており、また他のどのＳＦＥとも同じ方法でオペレーションを行う。従って、各ＳＦＥ１０２は、各々が８ビットのビット幅を有する８個の同時送信メッセージを処理できる。
【００３５】
更に、水平方向にはクロスバースイッチ１００の先端１０１と結合されているＳＦＥ１０２が５０００個あり、また各ＳＦＥは８個のＢＥと結合されているので、合計で４００００個のＢＥがクロスバースイッチの先端１０１と接続されている。同様に、合計で４００００個のＢＥがクロスバースイッチの下端１０３と結合されている。
【００３６】
典型的に、クロスバースイッチは、それに取り付けられた通信エレメント間でクロス結合をするために用いられる。従って、クロスバースイッチ１００の先端１０１と結合されている４００００個の同じＢＥが、下端１０３にも結合される。従って、ＳＦＥ１０２を２５００万個有するクロスバースイッチ１００は４００００個のＢＥの各々間にクロス結合をして示されている。
【００３７】
短時間で通信が相互接続ネットワークをトラバースするのが望ましく、一方でネットワークにより結合されている全てのデバイスと、他のそのような全てのデバイスとの間にそれでも完全な相互接続を保護し、その一方で高度なネットワーク機能を維持するのが望ましい。従って、１つのメッセージがネットワークをトラバースするのに必要とするホップ数を減らすことが望ましい。インラインとトランスバース通信経路の最新のレイアウトを有するクロスバースイッチがこれらの目標の達成を促進する。
【００３８】
図６に示すように、クロスバースイッチ２００は５×５のＳＦＥサイズを有して（２０２ａ‐２０２ｅとして様々に示す）例示により示される。その中に示されている相互接続の原理は、５０００×５０００ＳＦＥのサイズを有するスイッチ１００（図４）のような、更に大きなクロスバースイッチにも応用可能である。
【００３９】
スイッチ２００を通るトラフィック方向は、ボトムからトップ、つまり２０３から２０１の方向である。デバイスＡからデバイスＥまでのグループ２０４は、スイッチ２００のボトム２０３とトップ２０１の両方に結合されている。
【００４０】
図６に示すように、各ＳＦＥ２０２ａ．．．２０２ｅの相互接続は、スイッチ２００の個々のＳＦＥの位置に関連して変化する。図４と図５に関連して上述されている実施例のように、各ＳＦＥはインライン通信経路２０５に結合されている出力インターフェース（図示せず）と、トランスバース通信経路に結合されている別の出力インターフェース（図示せず）を有する。全てのＳＦＥがインライン通信経路２０５に結合されている一方で、それらのＳＦＥは結合されているトランスバース通信経路のタイプに関して変化する。図示されているように、クロスバースイッチ２００の左端沿いに配置されているＳＦＥ２０２ａは、トランスバース通信経路２０６と結合されており、このトランスバース通信経路２０６はＳＦＥ２０２ｅと結合し、ＳＦＥ２０２ｅはスイッチ２００において、二つ右かつ一つ上の位置にある。同様に、ＳＦＥ２０２ａと２０２ｃはスイッチを通して、左から右方向にトランスバース接続性を提供している。
【００４１】
右から左方向へスイッチ２００を通した接続性が以下に示されている。スイッチ２００に十分な接続性を保証するため、左から右方向への接続性は、場所が二つ増加する場合にのみ与えられるので、右から左方向ＳＦＥ２０２０ｂ、２０２ｄ、及び２０２ｅはそれぞれＳＦＥ２０２ａ、２０２ｂ、及び２０２ｄと接続されており、それらは左側に一つのところ、左側に二つのところ、及び左側に一つのところにそれぞれ配置され、全てはスイッチ２００の一つあがったところである。
【００４２】
図６に示されているスイッチのオペレーションの例を以下に示す。メッセージがデバイスＡから他のデバイスＤへ転送されると仮定する。
第一サイクルでは、ＳＦＥ２２１がエレメントＡからメッセージを受信し、出力インターフェースにあるメッセージをトランスバース通信経路２０６へ送るする。ＳＦＥ２２１は、メッセージのヘッダーから、そのメッセージがスイッチ２００を左から右方向にトラバースする必要があることを判断する。
第二サイクルでは、ＳＦＥ２２２はＳＦＥ２２１から通信経路２０６を通じてメッセージを受信し、出力インターフェース上のメッセージを、ＳＦＥ２２３に結合されているトランスバース通信経路２０６へ提示する。ここで再び、ＳＦＥ２２２がメッセージのヘッダーから、そのメッセージが左から右方向に十分にスイッチ２００をトラバースしておらず、従って、そのメッセージがその方向に更にスイッチ２００をトラバースする必要性を有していることを判断する。
第三サイクルでは、ＳＦＥ２２３はＳＦＥ２２２から通信経路を通じてメッセージを受信し、出力インターフェースにあるメッセージをＳＦＥ２２３に取り付けられたトランスバース通信経路２０８に提示する。ここで、ＳＦＥ２２３はメッセージのヘッダーから、そのメッセージが左から右方向に十分スイッチをトラバースしていること、また現在は右から左方向にスイッチをトラバースする必要性があることを判断する。
第四サイクルでは、ＳＦＥ２２４はＳＦＥ２２３から通信経路２０８を通じてメッセージを受信し、また、出力インターフェースにあるメッセージを、ＳＦＥ２２４に取り付けられているインライン通信経路２０５に提示する。ここで、ＳＦＥ２２４はメッセージのヘッダーから、そのメッセージが現在、ネットワークインラインをトラバースするための位置にあるかが判断され、その結果、出力インターフェースにあるメッセージをインライン通信経路へ提示する。第五であり最終サイクルでは、ＳＦＥ２２５はＳＦＥ２２４からメッセージを受信し、その出力インターフェースにあるメッセージをデバイスＤに提示する。
【００４３】
多くの異なる経路がクロスバースイッチ２００をトラバースするメッセージに利用できる。例えば、メッセージはＳＦＥ２２１、２３２、２３３、２３４、そして２２５を通る経路にネットワークをトラバースすることも可能であり、あるいは、別の形態では、ＳＦＥ２２１、２２２、２３３、２３４そして２２５を通る経路、あるいは別の形態では、ＳＦＥ２２１、２２２、２２３、２２４、そして２２５を通る経路も可能である。クロスバースイッチ２００が更に大きい場合は、利用可能な経路の数は更に増加する。スイッチをトラバースするのに利用できる、異なる経路を持つことは、同時通信のためのクロスバースイッチの有効度とキャパシティを増加させる傾向にある。
【００４４】
図７Ａから７Ｂに、クロスバースイッチ３００の他の形態の実施例を示す。これは図４から５に関して示し解説している、スイッチ１００と同数のＢＥを相互接続するが、非常に少ないＳＦＥで実装が可能であり、且つレイテンシーが低いものである。スイッチ３００は、各ＳＦＥ３０２が同時により多くのメッセージを送信することができるように、スイッチ１００のＳＦＥ１０２とは別に構成されるＳＦＥ３０２の使用することで、ハードウエアを保護する。しかしながら、スイッチ３００の各ＳＦＥ３０２に入力され、また各ＳＦＥ３０２から出力される合計ビット数は、ＳＦＥ１０２の合計ビット数と同数である。図５を再度参照して、その中に示すＳＦＥ１０２は、各入力インターフェースに８個のポートを備え、また各出力インターフェースに８個のポートを備えるように構成されており、各ポートは８個のパラレルデータビットを処理する。これとは対照的に、スイッチ３００のスイッチ配列３０１は、各入力インターフェースに６４個のポートと、各出力インターフェースに６４個のポートを有するように構成され、各ポートが一度に処理するのはわずか１データである。各ＳＦＥ３０２により処理される同時送信のメッセージ数が８倍に増加することにより、スイッチ配列３０１の各方向のＳＦＥ数は、８の係数により帰着されうる。従って、図７Ｂに示すように、スイッチ配列のサイズは現在、６２５ＳＦＥ×６２５ＳＦＥとなっている。
【００４５】
望ましくは、スイッチ１００（図４）の各ＳＦＥ１０２及びスイッチ３００の各ＳＦＥ３０２が、再構成が可能なモジュール設計を有した集積回路の一部、あるいは集積回路により実装される。従って、再構成可能な設計の変更により、８個のポートと６４個のポートを有する特定のタイプのＳＦＥ１０２と３０２がそれぞれ作られる。
【００４６】
図示されるように、クロスバースイッチ３００はスイッチ配列３０１を通じて、１ビット幅の通信パスを有する。クロスバースイッチが８ビットのパラレルデータインターフェースを有するＢＥと適応するには特別の準備が必要である。図７Ａにその解決法を示す。実質的に、クロスバースイッチ３００は、各々がスイッチ配列３０１を備えている８個のクロスバースイッチ３１０のグループである。８個のクロスバースイッチ３１０の各々は、各メッセージがＢＥ間に転送される、８ビットのパラレルデータＢｉｔ１．．．Ｂｉｔ８のパラレルデータの８ビットの異なるＢｉｔＸを処理する。従って、各クロスバースイッチ３１０は４０，０００個のＢＥと相互接続されるが、各メッセージのうちで８個の同時に送信されたビットのうちの１ビットだけに対するものである。
【００４７】
クロスバースイッチ３００の構成により、スイッチ１００に保存されるＳＦＥの数は以下の通りである。各々が６２５×６２５の配列を有する、スイッチ配列３０１が８個あるので、スイッチ配列の合計ＳＦＥ数は、８×６２５×６２５＝３，１２５，０００（３１２万５千個）であり、これは、クロスバースイッチ１００のＳＦＥ１０２の２５００万個の八分の一という、少ないものとなっている。
【００４８】
しかしながら、入力端エレメント３０４と出力端エレメント３０６が各クロスバースイッチ３１０にも設けられる必要があり、これはクロスバースイッチ配列３１０の１ビットのフォーマットから、ＢＥの８ビットのパラレルデータフォーマットに、またそれとは逆に、通信を変換するためである。図８に、８ビットのパラレルデータのビット１を処理するクロスバースイッチ３１０の１つに対する典型的な入力端３０４を示す。図８に示すように、入力端３０４は６２５のコンバータ３０５を通じて４０，０００個のＢＥに接続する。各コンバータ３０５は入力インターフェース毎に６４個の１ビットポート、また出力インターフェース毎に６４個の１ビットボートを備えている。各コンバータ３０５はスイッチ配列のＳＦＥ３０２の１つと接続されている。
【００４９】
図９に示すように、出力端３０６は６２５個のコンバータ３０７を通じて４０，０００個のＢＥに接続する。各コンバータ３０７は入力インターフェース毎に６４個の１ビットポート、また出力インターフェース毎に６４個の１ビットポートを備えている。この場合も同様に、各コンバータ３０７はスイッチ配列３０１のＳＦＥ３０２の１つと接続されている。望ましくは、各コンバータ３０７は、各スイッチ３００に対してハードウエアの互換性を容易にするため、各コンバータ３０５と同じ構成を持つ。
【００５０】
図１０から図１２は本発明のクロスバースイッチ４００の更に別の実施例である。クロスバースイッチ４００はスイッチを実装するのに必要とされるＳＦＥ３０２の数を更に減らし、一方でスイッチの接続性は維持するものである。図１０はクロスバースイッチ４００を例示したブロック図である。実質的にクロスバースイッチは１２８個のクロスバースイッチのグループであり、各々はスイッチ配列４０１を有する。各スイッチ配列は順番に、幅４０エレメント、高さ４０エレメントの配列のＳＦＥ３０２（図１１）を備えており、各ＳＦＥは図７Ａから図７Ｂに関して上述されている。即ち、各ＳＦＥ３０２は各入力インターフェース毎に６４個のポートと、各出力インターフェース毎に６４個のポートを備えている。各ＳＦＥは各ポートを通じて１ビットを転送する。スイッチ４００は上記実施例に説明されているように、４０，０００個のＢＥ間にメッセージを送信するように配置されているが、それは時分割多重方式に基づいている。スイッチ４００の１２８個のスイッチ配列の各々は、４０，０００個のＢＥ各々間に通信が可能となるよう、接続されている。しかしながら各スイッチ配列４０１が転送するのは、ＢＥにより通信される８ビットのパラレルデータのうちのわずか１つである。更に、各スイッチ配列４０１は、そこに接続されたＢＥの各々から、サイクル毎にわずか１／１６ビット速度でデータを転送する。このため、図７Ａから図９に関して上記に示され、解説されているものと比べて、この実施例では１６倍ものスイッチ配列４０１がある。これに加えて、１２８個のスイッチ配列４０１はスイッチ１００（図４）と同じ速度で、またスイッチ３００（図７Ａ）と同じ速度でデータを転送する。
【００５１】
図１１に、スイッチ４００のスイッチ配列４０１への入力における配置を示す。図８に関して上記に示され解説されているものと同じ構造を有する入力端３０４はコンバータ３０５を有する。コンバータ３０５はスイッチ配列４０１のＳＦＥ３０２にデータを送るため、ＢＥから８ビットのパラレルデータを１ビットのデータに変換する。入力端３０４は時分割ユニット４１１と結合されており、この時分割ユニット４１１は順番に４０×４０のＳＦＥ３０２配列を有するスイッチ配列と結合されている。
【００５２】
全１６個のコンバータ３０５の出力と結合されているのは、１６：１時分割マルチプレクサ（ＭＵＸ）４１１である。そのような４０個のＭＵＸがマルチプレクサユニット４１０に与えられている。ＭＵＸ４１１は１６個のコンバータ３０５から出力される１０２４ビットを受けて、ＳＦＥ３０２の一つの入力インターフェースの６４個のポートへ入力するため、６４個の出力ラインへ、サイクル毎に１／１６ビットのタイムドメインにてそれらを多重化する。
【００５３】
各スイッチ配列４０１の出力端では、４０個の時分割デマルチプレクサを有するデマルチプレクサユニット４１２により、タイムドメインで逆多重化が実施される。ＤＥＭＵＸの各々は、そこに取り付けられているＳＦＥ３０２から６４ビットの出力を受け、出力端３０６のコンバータ３０７へ行く１０２４個の出力ラインへ、タイムドメインのビットを逆多重化する。
【００５４】
各スイッチ配列４０１は、４０×４０＝１６００のＳＦＥを有し、スイッチ配列が１２８個あるので、合計で、１６００×１２８＝２０４，８００個のＳＦＥがスイッチ４００のスイッチ配列を実装するのに必要とされる。これはスイッチ１００が必要とする２５００万個のスイッチやスイッチ３００が必要とする３１２万５千個のスイッチに比較して有利なものである。また、スイッチ４００が同時にメッセージを送信するため、スイッチ１００やスイッチ３００と同じ接続性やキャパシティを有していることも留意されたい。スイッチ４００はスイッチ１００やスイッチ３００が転送する数と同じビット数をサイクル毎に転送するが、使うのは１２２分の１の数のＳＦＥである。しかしながら、スイッチ配列４０１は、スイッチ３００のＳＦＥ６２５個、スイッチ１００のＳＦＥ５０００個と比べると、一辺のＳＦＥはわずか４０個であるため、それぞれ、１６分の１、１２２分の１程度にレイテンシーが小さくされる。
【００５５】
図１３にＢＥを４０，９６０個備えた、超並列ネットワーク５００の好ましい実施例を示す。全てのＢＥは、低レイテンシー通信のために相互接続されており、例えば、大規模なコンピューティングプロジェクトに協働するためである。これら４０，９６０個のＢＥは相互接続されたグループ５０２に配置されており、各グループはＢＥを１２８個有する。グループ５０２には二つの配列５０４が与えられており、各配列５０４はグループ５０２の８行と２０列を有している。配列５０４の各々間には、クロスバースイッチ列５０６が与えられており、各クロスバースイッチは、クロスバースイッチ１００、４００、及び４００が好ましくはスイッチ４００（図１０）として組織化されるような構成を有する。ネットワーク５００は“ギャザーアンドスプリット”（収集及び分割）法を利用し、配列５０４にローカルである、あるいはリモート（スイッチ５０６を通じて）であるグループのＢＥ間に、ネットワークの列と行に沿って通信を転送する。
【００５６】
図１４に１２８個のＢＥからなる各グループ５０２の内部構成を示す。この構成はネットワーク５００の一部を形成するものである。図１４に示すように、グループ５０２では、クロスバースイッチ５１０が配置されており、グループ５１２の各々が８個のＢＥを有している１６個のグループ（５１２）のＢＥ間に、完全な８ビット幅の相互接続を与えている。
【００５７】
図１５を参照して、入出力インターフェース（ＩＯＩＦ）６０２に取り付けられているＢＥと、リモートＢＥあるいはスイッチングネットワーク６０４を通る他のデバイス間に通信を促進するため、多数のプロトコルスタックブリッジデバイス６００に注意が払われる。望ましくは、スイッチングネットワーク６０４は高速で、高キャパシティを有する、シリアル通信ネットワークであり、図４から図１２に関して上記に示され、解説されているような、いずれのスイッチ１００、３００、あるいは４００などのクロスバースイッチのトポロジーを有している。スイッチングネットワーク６０４に通信するには、InfinibandTMプロトコルの下位層（物理層、データリンク層、及びネットワーク層）に従い、フォーマットされる必要がある。しかしながらＢＥは、自身のインフィニバンドアダプタを有しておらず、そのプロトコル層に直接通信するには機能が十分ではない。従って、ブリッジ６００はＩＯＩＦアダプタ６０２を有しており、これはスイッチングネットワーク６０４に送信するために、ＩＯＩＦプロトコルからインフィニバンドのプロトコルへ、通信を変換するためである。
【００５８】
これらのアダプタに加えて、ブリッジ６００は、インフィニバンドに加え、他の通信プロトコル層により、通信ができるようにするために、他のアダプタも備えている。そのため、アダプタ６０６がＰＣＩエクスプレスプロトコルをサポートするために与えられ、ＩＯＩＦパック／アンパックプロトコルをサポートする他のアダプタ６０８もまた同様に与えられている。これはインフィニバンドプロトコルの一つ以上の上位層プロトコルへの、別のトランスポート層プロトコルである。ＰＣＩエクスプレスプロトコルは、ビデオゲームデバイスや他の家庭用電化製品のデバイスなど、スイッチネットワーク６０４とクロスしないで、ブリッジ６００（ＩＯＩＦ６０２と通じて）に対しローカルである、いくつかのタイプのデバイス間に通信をサポートする、業界標準プロトコルである。
【００５９】
上述のとおり、インフィニバンドのプロトコルの上位層は、高レイテンシーを有する通信をもたらす結果となり、これは大規模なコンピューティングプロジェクトで共に協働するリモートプロセッサ間にメッセージを送信する場合には望ましくない。ＩＯＩＦパック／アンパックプロトコルアダプタ６０８を加えることにより、通信がローカルＢＥ、ＢＥ０．．ＢＥ３とリモートＢＥとの間に、スイッチングネットワーク６０４を通じて合理化される。同様に、ＩＯＩＦプロトコルのトランスポート層のオーバーヘッドが小さいことで、インフィニバンドのトランスポート層プロトコルを用いた通信に対し、レイテンシーを小さくできるという結果が得られる。しかしながら、機能面では何の犠牲もない。
それは、ブリッジ６００がアダプタ６０５を通してインフィニバンドのプロトコルの上位層をサポートし続けているからである。従って、ブリッジ６００の通信は、インフィニバンドのプロトコルの上位層、あるいはＩＯＩＦプロトコルの上位層のどちらかを使って送信されうる。
【００６０】
図１６から図１９を参照して、上位層ＩＯＩＦパック／アンパックプロトコルの典型的な実施例を解説する。上述のとおり、この上位層ＩＯＩＦプロトコルは上位層インフィニバンドプロトコルへ別の形態を提供する。そのような上位層ＩＯＩＦプロトコルは、図１５に関して上述されているような、ブリッジ６００のアダプタ６０８により処理される。
【００６１】
ＩＯＩＦパック／アンパックプロトコルスタック層は、リモートストレージへ読み出し及び書き込むための新たなコマンドを含む。この例では、リモートストレージは、インフィニバンドイネーブルであるブリッジを通じてパスすることによってのみアクセスされるものであり、そのため、通信は更に、インフィニバンドクロスバースイッチから、ネットワークのリモート部分へ送信されうる。
【００６２】
ＩＯＩＦプロトコルの下位層に存在することにより、最大のパケット長が１２８バイトに制限される。ＩＯＩＦパック／アンパックプロトコルスタック層の一つの目標は、ＩＯＩＦパケットがブリッジ６００などによって、共に収集されるとともに、例えば２Ｋあるいは４Ｋバイトを有する一つの大きなサイズパケットとして、ネットワークのリモート部分に送ることである。
【００６３】
“ダイレクトリード”コマンドに対する通信シーケンスが図１６に例示されている。このシーケンスでは、ＢＥに含まれる数あるプロセッサのうちの一つであるシナジスティクプロセッサユニット（Synergistic processing unit:ＳＰＵ、相乗的プロセッシングユニットとも称される）、がリモートデバイス（ブリッジに対してローカルでないデバイス）がリードコマンドを発行する。次に、いくつかの初期信号伝達が、キャッシュコヒーレンシを保つため、ＳＰＵ、キャッシュコンセントレータ（ＡＣ０）、及び入力出力コントローラ（ＩＯＣ）の間に発生する。その後ＩＯＣが、コマンド１６０４、１６０６、１６０８及びデータを有する確認応答（ＡＣＫ＋ＤＡＴＡ：acknowledgement with data）信号１６１０、１６１２、及びＡＣＫ信号１６１４及びデータ信号１６１６として示されているように、“スイッチ”としてラベルが付けられているネットワーク部分に配置されているリモートプロセッサへの通信処理を引き継ぐ。
【００６４】
ＩＯＣは、ブリッジ６００などのエレメントであり、入力出力インターフェース（ＩＯＩＦ）を有している。ＩＯＣは、送信機（ＳＰＵ）が所定のクレジットリミットに至るまで、ＩＯＣによりバッファされるパケットだけを送ることができるように、“クレジットベースのフロー制御”を実装する。クレジットリミットに到達した後、ＩＯＣが送信機からそれ以上のパケットをバッファしうる前に、ＩＯＣによりクレジットが補充されるまで、送信機は待つ必要がある。ＩＯＣがアウトバウンド方向のＳＰＵからネットワークへパケットを送信する場合、ＩＯＣは送信ＳＰＵへクレジットを補充する。
【００６５】
そのようなクレジットベースのフロー制御は、“仮想レーン”で通信のトランスポートを規定する、インフィニバンドの規格に基づいてオペレーションが行われる。インフィニバンド規格に定義されているように、仮想レーンとは物理的に離れたチャネル上での論理的に離れたリンクのことである。
【００６６】
図１６に示すように、ダイレクトリードコマンドの特徴は、リモートプロセッサがリクエストしたデータを返す前に、リモートプロセッサからリクエストを出しているＳＰＵへ返される確認応答（ＡＣＫ）を必要としない点であり、これは図１６の“スイッチ”（１６５０）とラベルが付けられている領域に存在する。この点は図３Ａに関して、上記背景技術で説明したプロトコル、つまり、リクエストしたデータが返される前に、リモートプロセッサにより別々にＡＣＫを返す必要があるプロトコルとは異なる。ＡＣＫの介在をなくすことにより、低レイテンシーが達成される。
【００６７】
図１７に、プロトコルスタック層の別の特長である“sync write（同時書込み）”に対する通信シーケンスを示す。この“sync write”コマンドは合理化された低レイテンシーのトランスポート層コマンドである。“sync write”コマンドは”“sync write””後に、先行する全てのライトコマンドが完了するまで待つように発行される、全てのアクセスコマンドを出す。この“sync write”コマンド自体はデータは書き込まず、事前のリクエストの後に、後のリクエストを順番に並べるのを目的とする。オペレーションでは、ブリッジ、ＩＯＣ（１７００）が、“sync write”コマンド（１７１０）を検出するとともに、事前のアクセスが完了するまで後のアクセスを停止する。“sync write”コマンドを用いることにより、たまたまリモートプロセッサより早くなった、後に発行されたリードあるいはライトコマンド（例：コマンド（１７１４）、データ（１７１６））が、リモートプロセッサに到達するのに時間を要する、早くに発行されたリードあるいはライトコマンドより前に処理されることはない、という確実性が得られる。
【００６８】
一つの“sync write”コマンド（１７１０）がブリッジに対して作られた後、同じオペレーションが制限なしに継続する。オペレーションではアクセス１７１４や１７１６など、後のアクセスが、事前のライトコマンドが完了するまで待つ必要がある。この“sync write”オペレーションは、リモートアクセスに応用することができ（ブリッジのリモートサイドを通ったアクセス）、またローカルアクセス（例えば、ＩＯＩＦを通じて同じブリッジに取り付けられた別のＢＥ）にも応用できる。
【００６９】
“sync write”コマンドが実装されうる一つの方法は、所定のドレスへのライトコマンドによるものである。ブリッジが命令を調べ、そのような“sync write”を検出することができる。
【００７０】
図１７から図１９にかけて示されている“スヌーププロトコル”という用語は、キャッシュコヒーレンシを保つため、ＳＰＵ、ＡＣ０（キャッシュコンセントレータ）、及びＩＯＣの間に発生する信号伝達を示している。そのようなスヌーププロトコルは、リモートストレージに対するリードあるいはライトリクエストの生成に先行する。
【００７１】
“write with fence（ライトウイズフェンス）”コマンドによる通信シーケンスが図１８に例示されている。このコマンドが最新のストレージアクセスコマンドにだけ適用し、またリモートストレージにだけ適用するという点を除けば、“sync write”コマンドと類似している。この点はローカル及びリモートアクセスの両方に適用し、今後の全てのアクセスに適用する“sync write”コマンドとは異なる。
【００７２】
“write with fence”コマンドは、この“write with fence”コマンドが発行される前に、全てのリードあるいはライトアクセスが完了するまで、リクエストを出しているＳＰＵにより、特定の仮想レーンへのアクセスを停止するためにブリッジをもたらす。その後、通常のアクセスが以前のように再開する。従って、“write with fence”コマンド後の第一ライトコマンドは、先行する全てのアクセスが完了するまで待つ必要がある。“sync write”のように、このコマンドは所定のアドレスに対するライトとして実装されうる。
【００７３】
“packed write command(パックトライトコマンド)”を例示している通信シーケンスを図１９に示す。このパックトライトコマンドは、リモートストレージへのライトコマンドが、パックされたコマンドが発行されるまで、ブリッジ、ＩＯＣ（１９５０）でバッファされることができるようにする。パックトライトコマンドが発行されると、事前の各ライトコマンド１９１１、１９１２からパケット１９０１、１９０２が順序付けられるとともに、シングルパケット１９２０に収集され、スイッチ１９６０を通して送られる。同様に、１２８バイト長に制限されているＩＯＩＦパケットは、ブリッジＩＯＣ（１９５０）により収集され、スイッチを通してネットワークのリモート部分に送るため、２Ｋあるいは４Ｋ長を有する更に大きなパケットにパックされる。
【００７４】
ブリッジ６００（図１５）などのブリッジは、パックされた形態で、あるいはパックされていない形態のどちらの形態でもオペレーションが行うことが可能である。ブリッジがパックされた形態でオペレーションが行われる場合、全てのライトコマンドは、パックされたライトコマンドが発行されるまでブリッジでバッファされる。パックされたライトコマンド後の第一ライトコマンドは、次にパックされたライトの次のパケットの始まりになる。“sync write”やライトウイズフェンスコマンドのように、このコマンドは好ましくは所定のアドレスに対するライトとして実装される。
【００７５】
これまでに解説してきているように、非常に大きなネットワークでは、十分な数のアドレスビット数に基づき、単一の大きなアドレスを与え、ネットワークの各ノードを識別できるようにするのが望ましい。同様に、送信デバイスと受信デバイス間でネットワークの様々なサブ部が、各サブ部の入力及び出力においてアドレス翻訳を要求することを含むレイテンシーなしに、トラバースされうる。
【００７６】
図２０にそのような対応法を示す。ＢＥでは、物理的なアドレススペースはそれに対して与えられている４２アドレスビットにより制限されている。従って、ＢＥが用いるＩＯＩＦプロトコル物理層の要件に合わせる、ＢＥに出入りするパケットが有しているのはわずか４２ビットアドレスフィールドである。クラスターブリッジ（ＣＢ）はノードのネットワーク２００２とＢＥとの間にインターフェースを与えている。ネットワーク２００２は非常に多くの（６４Ｋ）ノードを有する。ネットワークの各ノードを識別するために、６４個のアドレスビットが必要とされる。従って、現在のところ、ネットワーク２００２に向かうパケットが、適切な６４ビットアドレスフィールドを有するように、クラスターブリッジ（ＣＢ）のエレメント２００４により、アドレス翻訳が与えられる。逆に言えば、ＢＥに向かうパケットは、６４ビットアドレスフィールドを有したものから、４２ビットアドレスフィールドを有したものへと翻訳される。
【００７７】
図２１に、ネットワークを通じて、リモートダイレクトメモリアクセス（ＲＤＭＡ）を与えるために、ＢＥとその好ましいオペレーションの典型的な変形を示す。ＢＥ８００において、ＳＰＣ８０２（ＳＰＵ８０２プラスＤＭＡコントローラ）は、リモートアクセスリードあるいはリモートアクセスライトコマンドなどのコマンドを発行する。その後、コマンドを実行する一つ以上のパケットがクラスターブリッジＣＢ（８０４）により生成される。次にパケットは、送信ＢＥにおいて、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）８０６のパケットバッファに配置される。好ましい実施形態では、ＤＲＡＭ８０６はＹｅｌｌｏｗｓｔｏｎｅＴＭのＤＲＡＭ（ＹＤＲＡＭ）であり、これはＲａｍｂｕｓ（登録商標）の名の下で提案される次世代のＤＲＡＭである。ＳＰＣ８０２による、更なる介在や監視なしに、次にパケットは、ＢＥ８２０などのＤＭＡが可能な他のリモートデバイスへ、ＩＰプロトコルを介して、グローバルネットワーク８１０に、ネットワークインターフェースアダプタ（Ｎｅｔ  ＩＦ  ８０８）により送られる。リモートデバイス８２０では、パケットがリモートデバイスにより直接処理されうる時間まで、ＹＤＲＡＭ８２６においてパケットがバッファされる。別の形態では、リモートデバイスのＳＰＣが、新たに到着したパケットを処理する時間を有するまで、ＹＤＲＡＭ８２６においてバッファされる。同様に、ＢＥ８００と、互いからリモートして位置しているＢＥ８２０間のデータ送信は、そのような通信を監視する役目を持つそのようなＢＥのプロセッサに重荷を与えることなく、ＢＥのオペレーションを更に効率よく行い、また、データの送信も更に効率的に行う。
【００７８】
以上のように、本発明の一形態によれば、デバイスの接続を改善し、超並列ネットワークのデバイス間に低レイテンシーの通信をするための方法及び装置が提供されている。この方法及び装置では、クロスバースイッチ２００、マルチプロトコルインターフェースデバイス、低レイテンシー上位通信プロトコル層、アドレス指定、及び超並列ネットワークにリモートダイレクト通信アクセスをするために提供されている。
なお、本発明を特定の実施例に関して説明したが、これらの実施例は本発明の原理や応用を例示したものに過ぎないことを留意されたい。従って、例示の実施例に対して様々な変形がされてよく、また、それらの改良は添付の請求項により定義されている本発明の精神や範囲から逸脱せずに行うものとする。
【図面の簡単な説明】
【００７９】
【図１Ａ】本発明の背景技術であるデバイス及び方法を例示する説明図。
【図１Ｂ】本発明の背景技術であるデバイス及び方法を例示する説明図。
【図２】本発明の背景技術であるデバイス及び方法を例示する説明図。
【図３Ａ】本発明の背景技術であるデバイス及び方法を例示する説明図。
【図３Ｂ】本発明の背景技術であるデバイス及び方法を例示する説明図。
【図４】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図５】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図６】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図７Ａ】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図７Ｂ】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図８】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図９】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１０】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１１】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１２】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１３】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１４】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１５】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１６】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１７】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１８】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図１９】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図２０】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【図２１】本発明の好ましい実施形態によるデバイス及び方法を例示する説明図。
【符号の説明】
【００８０】
１００      クロスバースイッチ
１０４      垂直ライン
１０６      水平ライン
１１２      入力インターフェース
１１４      出力インターフェース
２００      クロスバースイッチ
２００２    ネットワーク
２００４    エレメント
２０５      インライン通信経路
２０６      トランスバース通信経路
３０５      コンバータ
３１０      クロスバースイッチ
【図１Ａ】
2005323359.tif 000003
【図１Ｂ】
2005323359.tif 000004
【図２】
2005323359.tif 000005
【図３Ａ】
2005323359.tif 000006
【図３Ｂ】
2005323359.tif 000007
【図４】
2005323359.tif 000008
【図５】
2005323359.tif 000009
【図６】
2005323359.tif 000010
【図７Ａ】
2005323359.tif 000011
【図７Ｂ】
2005323359.tif 000012
【図８】
2005323359.tif 000013
【図９】
2005323359.tif 000014
【図１０】
2005323359.tif 000015
【図１１】
2005323359.tif 000016
【図１２】
2005323359.tif 000017
【図１３】
2005323359.tif 000018
【図１４】
2005323359.tif 000019
【図１５】
2005323359.tif 000020
【図１６】
2005323359.tif 000021
【図１７】
2005323359.tif 000022
【図１８】
2005323359.tif 000023
【図１９】
2005323359.tif 000024
【図２０】
2005323359.tif 000025
【図２１】
2005323359.tif 000026