(57)【特許請求の範囲】
【請求項１】
複数の入力ポートおよび複数の出力ポートを含むネットワーキング装置においてパケット交換をサポートするための方法であって、
前記ネットワーキング装置は、共有メモリに設けられる複数の仮想出力キューと、各前記仮想出力キューのクレジット状態を管理する出力スケジューラとを含み、
前記複数の出力ポートのうちの少なくとも１つの出力ポートのダウンリンクを検出するステップと、
前記出力ポートを介して、状態変化通知を前記出力スケジューラに送信するステップと、
前記出力スケジューラを介して、前記状態変化通知を複数の入力ポートにブロードキャストするステップと、
前記複数の入力ポートで受信した前記状態変化通知を用いて出力ポートフィルタを構成するステップと、
前記出力ポートフィルタを用いて、前記複数の入力ポートのうちの少なくとも１つで受信し、ダウンリンクした出力ポートに向けられたパケットを前記仮想出力キューにエンキューする前に落とすステップとを含む、方法。
【請求項２】
前記ネットワーキング装置は、クロスバーファブリックを含むネットワークスイッチである、請求項１に記載の方法。
【請求項３】
前記複数の入力ポートで受信された１つ以上のパケットを格納するために、複数の仮想出力キューを使用するステップをさらに含み、各前記入力ポートは、前記仮想出力キューのうちの１つ以上に関連付けられる、請求項１または２に記載の方法。
【請求項４】
仮想出力キューに格納された１つ以上のパケットを出力ポートに発送するように入力ポートをスケジュールするために、出力スケジューラを使用するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記仮想出力キューに格納された前記１つ以上のパケットを排出するステップと、
前記入力ポートに関連付けられた１つ以上のソース仮想レーンに１つ以上のクレジットを戻すステップとをさらに含む、請求項４に記載の方法。
【請求項６】
１つ以上のパケットを前記仮想出力キューにエンキューする前に前記１つ以上のパケットをチェックするために、入力ポートパケット分類器を介して前記出力ポートフィルタマスクを使用するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記入力ポートのうちの１つを介して、前記出力ポートをターゲットとする１つ以上のパケットが仮想出力キューにエンキューすることを防止するステップをさらに含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記出力ポートをターゲットとする前記１つ以上のパケットをドロップするステップと、
前記入力ポートに関連付けられた１つ以上のソース仮想レーンに１つ以上のクレジットを戻すステップとをさらに含む、請求項７に記載の方法。
【請求項９】
前記出力ポートを介して、１つ以上のクレジットを出力スケジューラに提供するステップと、
前記１つ以上のクレジットに基づいて、前記出力スケジューラを介して、前記出力ポートをターゲットとする１つ以上のパケットが１つ以上の仮想出力キューからデキューされることを可能にするステップとをさらに含む、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
複数の入力ポートおよび複数の出力ポートを含むネットワーキング装置においてパケット交換をサポートするための方法であって、
前記ネットワーキング装置は、共有メモリに設けられる複数の仮想出力キューと、各前記仮想出力キューのクレジット状態を管理する出力スケジューラとを含み、
前記出力スケジューラは、前記クレジット状態に基づいて前記複数の仮想出力キューから複数の出力ポートにパケットの配信をスケジュールするように構成され、
前記複数の出力ポートのうちの少なくとも１つの出力ポートのリンク状態変化を検出するステップと、
前記リンク状態変化の検出に基づいてリンクダウンクレジットを前記出力スケジューラに提供するステップと、
前記リンクダウンクレジットに基づいて、前記出力スケジューラを介して、前記リンク状態変化が検出された前記出力ポートをターゲットとする１つ以上のパケットが１つ以上の仮想出力キューからデキューされることを可能にするステップとを含む、方法。
【請求項１１】
前記ネットワーキング装置は、クロスバーファブリックを含むネットワークスイッチである、請求項１０に記載の方法。
【請求項１２】
１つ以上の入力ポートを介して、前記１つ以上のパケットを前記１つ以上の前記仮想出力キューに格納するステップをさらに含む、請求項１０または１１に記載の方法。
【請求項１３】
前記出力ポートがアップしている場合、前記１つ以上のクレジットを可能にすることは、リモートトラフィック宛先から受信される１つ以上の初期クレジットを含む、請求項１０〜１２のいずれか１項に記載の方法。
【請求項１４】
前記出力ポートがダウンしている場合、前記１つ以上のクレジットは、前記出力ポートによって構成される１つ以上のリンクダウンクレジットを含む、請求項１０〜１３のいずれか１項に記載の方法。
【請求項１５】
前記出力スケジューラを介して、前記１つ以上のクレジットを、利用可能な最大クレジットとなるように設定するステップをさらに含む、請求項１０〜１４のいずれか１項に記載の方法。
【請求項１６】
前記利用可能な最大クレジットに基づいて、前記出力スケジューラを介して、利用可能なクレジットを導き出すステップをさらに含む、請求項１５に記載の方法。
【請求項１７】
前記出力スケジューラが、利用可能なクレジットに基づいて、宛先仮想レーンを選択するステップをさらに含む、請求項１５または１６に記載の方法。
【請求項１８】
仮想出力キューからの前記１つ以上のパケットを、前記出力ポート上の前記宛先仮想レーンに向けて発送するステップをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記出力ポートで前記１つ以上のパケットを排出するステップと、
入力ポート上の１つ以上のソース仮想レーンに１つ以上のクレジットを戻すステップとをさらに含む、請求項１８に記載の方法。
【請求項２０】
マシン読取可能なフォーマットの命令を含み、前記命令は、実行されると、システムに請求項１〜１９のいずれか１項に記載の方法を行なわせる、コンピュータプログラム。
【請求項２１】
請求項２０に記載のコンピュータプログラムを格納したメモリと、
前記コンピュータプログラムを実行するためのプロセッサとを備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示：
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対して異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
【０００２】
発明の分野：
この発明は一般にコンピュータシステムに関し、特にクラウド環境における高性能システムに関する。
【背景技術】
【０００３】
背景：
より大きいクラウドコンピューティングアーキテクチャが導入されるにつれて、従来のネットワークおよびストレージに関する性能および管理上の障害が、重大な問題になってきた。高性能システムは、優れた処理速度、著しくより迅速なデプロイメント、徹底分析用のインスタント画像、および扱いやすいビッグデータ能力を提供できる。これは、この発明の実施形態が取り組むよう意図されている一般領域である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
ここに説明されるのは、ネットワーク環境においてパケット交換をサポートできるシステムおよび方法である。クロスバーファブリックを含むネットワークスイッチなどのネットワーキング装置が、複数の入力ポートおよび複数の出力ポートに関連付けられ得る。さらに、ネットワーキング装置は、ネットワーキング装置に関連付けられた出力ポートでリンク状態変化を検出できる。次に、ネットワーキング装置は、出力ポートでのリンク状態変化を、出力ポートを介して、１つ以上の入力ポートに通知できる。したがって、出力ポートは、１つ以上のクレジットを出力スケジューラに提供でき、出力スケジューラは、１つ以上のクレジットに基づいて、出力ポートをターゲットとする１つ以上のパケットが１つ以上の仮想出力キューからデキューされることを可能にする。
【図面の簡単な説明】
【０００５】
【図１】この発明の一実施形態に従った、ネットワーク環境において高性能システムをサポートする図である。
【図２】この発明の一実施形態に従った、高性能システムにおいてネットワークスイッチをサポートする図である。
【図３】この発明の一実施形態に従った、ネットワーク環境においてリンク状態変化を取り扱う図である。
【図４】この発明の一実施形態に従った、高性能システムにおいてデータフローを管理する図である。
【図５】この発明の一実施形態に従った、ネットワークスイッチにおいてリンク状態変化を取り扱うための例示的なフローチャートである。
【図６】この発明の一実施形態に従った、ネットワーク環境においてリンク状態変化を取り扱うためのクレジットを管理する図である。
【図７】この発明の一実施形態に従った、ネットワークスイッチにおいてクレジット管理をサポートする図である。
【図８】この発明の一実施形態に従った、ネットワークスイッチにおいてクレジット管理をサポートするための例示的なフローチャートである。
【発明を実施するための形態】
【０００６】
詳細な説明：
同じ参照符号は同様の要素を示す添付図面の図において、この発明を限定のためではなく例示のために説明する。なお、この開示における「ある」または「１つの」または「いくつかの」実施形態への参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも１つを意味する。
【０００７】
以下のようなこの発明の説明は、高性能ネットワーキング装置についての一例として、インフィニバンド（InfiniBand：ＩＢ）ネットワークスイッチを使用する。他のタイプの高性能ネットワーキング装置が何ら限定されることなく使用され得るということは、当業者には明らかであろう。
【０００８】
ここに説明されるのは、クラウド環境などのネットワーク環境においてパケット交換をサポートできるシステムおよび方法である。
【０００９】
高性能システム
図１は、この発明の一実施形態に従った、ネットワーク環境において高性能システムをサポートする図を示す。図１に示すように、高性能システム１００は、ネットワークスイッチファブリック１１０を介して相互接続された複数のホストマシン１０１〜１０３（またはサーバ）を含み得る。
【００１０】
高性能システム１００におけるネットワークスイッチファブリック１１０は、さまざまなホストマシン１０１〜１０３上で実行中のさまざまな仮想マシン（virtual machine：ＶＭ）１１１〜１１３（および／または仮想化されたアプリケーション）間でトラフィックの動きを方向付けることを担い得る。
【００１１】
この発明の一実施形態によれば、ネットワークスイッチファブリック１１０はインフィニバンド（ＩＢ）プロトコルに基づくことができ、それは、ピア・ツー・ピアクレジット交換を管理でき、損失のないエンド・ツー・エンド接続性を提供する。このため、ネットワークスイッチファブリック１１０におけるさまざまなネットワーキング装置は、高性能システム１００においてデータ転送をサポートするための異なる条件下でクレジット整合性を維持することができる。
【００１２】
加えて、さまざまなＶＭ１１１〜１１３（および／またはアプリケーション）間のトラフィックのためのサービス品質（quality of service：ＱｏＳ）を提供するために、物理的なＩＢリンクは各々、複数の仮想リンク（virtual link：ＶＬ）に分割され得る。たとえば、ホストマシン１０１〜１０３間のネットワークパケットストリーム１２０は、異なるＶＭ１１１〜１１３およびアプリケーションが望み得る異なるサービスの集まりを表わし得る。さらに、異なるソース宛先ペア間の集められたネットワークパイプ内で送信される個々のパケットストリーム１２０は、異なるサービス要件（さらには相反するサービス要件）を満たすことができる。
【００１３】
インフィニバンド（ＩＢ）ネットワークスイッチ
図２は、この発明の一実施形態に従った、高性能システムにおいてネットワークスイッチをサポートする図を示す。図２に示すように、高性能システム２００におけるＩＢネットワークスイッチ２２０などのネットワーク装置は、さまざまなトラフィックソース２０１および２１１からさまざまなトラフィック宛先２０８および２１８にデータトラフィックを方向付けることを担い得る。
【００１４】
たとえば、入力ポート２０２、２１２、出力ポート２０７、２１７などの多数のポートをサポートするＩＢネットワークスイッチ２２０は、クロスバー（ＸＢＡＲ）ファブリック２１０に基づくことができる。
【００１５】
図２に示すように、入力ポート２０２は、ソースＶＬ２２１を使用してトラフィックソース２０１からさまざまな入来データパケットを受信でき、入力ポート２１２は、ソースＶＬ２３１を使用してトラフィックソース２１１からさまざまなデータパケットを受信できる。また、出力ポート２０７は、宛先ＶＬ２２７を使用してトラフィック宛先２０８に送出データパケットを送信でき、出力ポート２１７は、宛先ＶＬ２３７を使用してトラフィック宛先２１８に送出データパケットを送信できる。
【００１６】
さらに、ＩＢスイッチ２２０は異なるＱｏＳ要望を満たすことができ、それは、利用可能なネットワークファブリックリソースの最適な使用をサポートする。たとえば、ＩＢスイッチ２２０は、アプリケーションに関連付けられたトラフィックのサービスレベル（service level：ＳＬ）に基づいて、あるパケット用の入来ＶＬ（すなわちソースＶＬ）を、そのパケット用の異なる送出ＶＬ（すなわち宛先ＶＬ）に再マッピングしてもよい。
【００１７】
この発明の一実施形態によれば、入力ポート２０２または２１２の各々は、入来パケットごとに出力ポートを決定できる入力ポートパケット分類器２０３または２１３を利用することができる。たとえば、入力ポートパケット分類器２０３は、入力ポート２０２で受信されたパケットごとに出力ポートを決定でき（および、１つ以上のパケットを除去するためにポートフィルタ２０４を使用でき）、入力ポートパケット分類器２１３は、入力ポート２１２で受信されたパケットごとに出力ポートを決定できる（および、１つ以上のパケットを除去するためにポートフィルタ２１４を使用できる）。
【００１８】
加えて、入力ポート分類器２０３または２１３は、入力ポート２０２または２１２に到着した（マルチキャスティングおよびブロードキャスティング用などの）マルチ宛先パケットごとに、複数の出力宛先ポートを決定できる。ポートフィルタ２０４は、所与のパケット用のポートリストから１つ以上の宛先ポートを除去することができる。さらに、宛先ポートがすべてリストから除去された場合、マルチ宛先パケットはドロップされてもよい。その他の場合、パケットは、（入力ポートパケット分類器によって）元々分類されたポートリストの部分集合であり得る利用可能な宛先ポートのためにキューに入れられ得る。
【００１９】
入力ポートベースでは、入力ポート２０２または２１２は、受信したパケットを（たとえば出力ポート２０７または２１７を介して）トラフィック宛先２０８または２１８に送信する前に、受信したパケットをイングレスバッファ、たとえば仮想出力キュー（virtual output queue：ＶＯＱ）２０５または２１５に格納することができる。図２に示すように、入力ポート２０２で受信されたパケットはＶＯＱ２０５に格納可能であり、入力ポート２１２で受信されたパケットはＶＯＱ２１５に格納可能である。
【００２０】
加えて、イングレスバッファの各々（たとえばＶＯＱ２０５または２１５）は多くのキューを含んでいてもよく、それらは各々、出力ポートに関連付けられた宛先ＶＬ（たとえば、出力ポート２０７上のＶＬ２２７、出力ポート２１７上のＶＬ２３７）をターゲットとするパケットを取り扱うことを担い得る。このため、入力ポートベースでのキューの総数は、出力ポートの数と、各出力ポート上でサポートされる宛先ＶＬの数との積であり得る。その結果、ポートの数と各ポート上でサポートされるＶＬの数とが大きい場合、システムは、入力ポート２０２または２１２ごとに多数のキューを必要とするかもしれない。
【００２１】
この発明の一実施形態によれば、ＶＯＱ２０５および２１５は共有メモリ構造を使用して実現可能であり、ＶＯＱ２０５および２１５における各キューの利用はトラフィックに依存し得る。たとえば、ＶＯＱリソースは、入来パケットがキューに入れられる（すなわち、ネットワークパケットの受信）と消費され、パケットがデキューされる（すなわち、出力ポートへのパケットの配信）と最終的に解放されるメモリブロックの数を表わし得る。このため、ＶＯＱリソースの利用は、トラフィックパターンの関数になり得る。
【００２２】
この発明の一実施形態によれば、システムは、入力ポート２０２および２１２をスケジュールし、ＶＯＱ２０５および２１５に格納されたパケットの出力ポート２０７および２１７への動きを方向付けることができる。イングレスバッファにおける各キューの排出速度は、パケットがターゲットとする宛先ＶＬおよび出力ポートに依存し得る。
【００２３】
図２に示すように、各出力ポート２０７または２１７は、（出力ポートＸＢＡＲアービタ２０６または２１６などの）出力スケジューラを利用することができる。出力ポートＸＢＡＲアービタ２０６または２１６は、さまざまなＶＯＱの充満度、および宛先ＶＬ上の利用可能なクレジット、といったさまざまな基準に基づいて、パケットの動きに関する決定を下すことができる。
【００２４】
この発明の一実施形態によれば、ＩＢネットワークスイッチ２２０は、異なる条件下でクレジット整合性を維持することができる。図２に示すように、ＩＢネットワークスイッチ２２０の受信側では、クレジットは、入来パケットの入来ソースＶＬ２２１および２３１に基づいて整合して維持され、ＩＢネットワークスイッチ２２０の送信側では、クレジットは、送出パケットの宛先ＶＬ２２７および２３７に基づいて整合して維持され得る。
【００２５】
さらに、入力ポートベースでは、各入来パケットをキューに入れることは、パケットのソースＶＬに基づいて行なわれ得る。このため、システムは、ソースＶＬ２２１または２３１に基づいてさまざまなクレジットアカウンティング動作を行なうことができる。たとえば、クレジットアカウンティングのために、ＶＯＱセットが、ＩＢネットワークスイッチ２２０における各ソースＶＬに割当てられ得る。
【００２６】
ネットワークスイッチにおけるリンク状態変化
図３は、この発明の一実施形態に従った、ネットワーク環境においてリンク状態変化を取り扱う図を示す。図３に示すように、高性能システム３００では、ＩＢネットワークスイッチにおけるデータフローは、クロスバー（ＸＢＡＲ）ファブリック３１０を介して、入力ポート３０２および出力ポート３０７を伴い得る。
【００２７】
入力ポート３０２は、トラフィックソース３０１などのリモート送信側に１つ以上のクレジットを宣伝でき、リモート送信側から１つ以上のデータパケットを受信する。出力ポート３０７は、トラフィック宛先３０８などのリモート受信側に１つ以上のデータパケットを送信でき、リモート受信側から１つ以上のクレジットを受信する。
【００２８】
さらに、入力ポート３０２は、入来パケットごとに１つ以上の宛先を決定できる（および、１つ以上のパケットを除去するためにポートフィルタ３０４を使用できる）入力パケット分類器３０３を利用することができる。加えて、入力ポート３０２は、パケットを異なる出力ポートに発送する前に、受信したパケットを仮想出力キュー（ＶＯＱ）３０５などのイングレスバッファに格納することができる。
【００２９】
図３に示すように、ＶＯＱ３０５は複数のキュー３１１〜３１３を含むことができ、それらは各々、出力ポート上の異なる宛先ＶＬをターゲットとするパケットを格納できる。たとえば、キュー３１３は、出力ポート３０７上の宛先ＶＬ３２２をターゲットとするパケットを格納することを担い得る。
【００３０】
この発明の一実施形態によれば、トラフィックソース３０１は、トラフィックソース３０１がパケットを送信したときにトラフィック宛先３０８が到達可能かどうか知らないかもしれない。このため、出力ポート３０７がダウンした場合、トラフィックソース３０１はより多くのパケットを絶えず送信するかもしれず、それは、最終的にドロップされ得るパケットのためにＶＯＱリソースを必要以上に多く（さらには無駄に）利用することをもたらし得る。
【００３１】
たとえば、出力ポート３０７がダウンしている場合、出力ポート３０７は、到着したパケット３２３を排出し得る。パケット３２３が排出されるにつれて、放出されたクレジット３２４が、入力ポート３０２上のソースＶＬ３２１に戻され得る。トラフィックソース３０１は出力ポート３０７がダウンしたことに気づかないかもしれないため、トラフィックソース３０１は、十分なクレジットが利用可能である限り、仮により多くのパケットが最終的に出力ポート３０７で排出され得るとしても、これらのパケットを入力ポート３０２に送信するかもし続けるかもしれない。
【００３２】
また、同じＶＯＱ構造の一部である他の出力ポートは、ＶＯＱリソースを利用できないかもしれない。なぜなら、ソースＶＬ３２１に関連付けられたＶＯＱリソースが、最終的に出力ポート３０７でドロップされるパケットによって絶えず消費されるかもしれないためである。
【００３３】
さらに、出力ポート３０７がダウンした場合、高レベルアプリケーション３２０がリンク状態変化を取り扱うことができるようになるには、長い時間がかかるかもしれない。なぜなら、高レベルアプリケーション３２０のためのタイムアウト３３０設定は、比較的大きい傾向があるためである。一方、トラフィックソース３０１は、高速（たとえば、１秒あたり１００Ｇ）でパケットを送信し続けるかもしれない。このため、入来トラフィックはＶＯＱリソースを容易に圧倒し得る。
【００３４】
この発明の一実施形態によれば、出力ポート３０７は、リンク状態管理３０９を行ない、リンク状態変化について入力ポート３０２に通知することができる。たとえば、リンク状態変化を検出した出力ポート３０７は、たとえば出力ポートアービタ３０６を介して、すべてのＶＯＱ（たとえばＶＯＱ３０５）にわたって状態変化通知３２５をブロードキャストすることができる。リンク状態管理３０９は、たとえば、各リンクの各ステータスを記述するリンク状態データベーステーブルへのアクセスと、各状態の変化の検出とを含む。最終的に、状態変化通知３２５は、入力ポート３０２（およびさまざまな他の入力ポート）に到達してもよい。
【００３５】
図３に示すように、入力ポート３０２は、受信されたパケットが、ダウンしている出力ポート３０７で提示されることを防止できる。たとえば、入力パケット分類器３０３は、受信されたパケットをＶＯＱ３０５に入れる前の最終チェックとして、マスク（たとえば、ブロードキャスト信号に基づいた出力ポートフィルタマスク）を構成し、および／または使用することができる。
【００３６】
加えて、入力ポート３０２は、出力ポート３０７をターゲットとするパケットを、それらがＶＯＱ３０５にエンキューされる前にドロップしてもよい。出力ポート３０７がダウンすることによってドロップされるこれらのパケットは、ＶＯＱスペースをまったく消費しないかもしれない。これに対応して、これらのドロップされたパケットに関連付けられたクレジットが、トラフィックソース３０１に直ちに戻され得る。
【００３７】
このため、システムは、最終的にドロップされ得るパケットを格納するためにＶＯＱリソースが浪費されることを防止できる。
【００３８】
図４は、この発明の一実施形態に従った、高性能システムにおいてデータフローを管理する図を示す。図４に示すように、高性能システム４００におけるＩＢネットワークスイッチ４２０などのネットワーク装置は、トラフィックソース４０１および４１１などのさまざまなリモート送信側から、トラフィック宛先４０８および４１８などのさまざまなリモート受信側に、トラフィックを方向付けることを担い得る。
【００３９】
さらに、クロスバー（ＸＢＡＲ）ファブリック４１０に基づくＩＢネットワークスイッチ４２０は、入力ポート４０２、４１２、および出力ポート４０７、４１７などの（複数のＶＬを有する）多数のポートをサポートすることができる。
【００４０】
図４に示すように、入力ポート４０２または４１２の各々は、トラフィックソース４０１または４１１に１つ以上のクレジットを宣伝でき、トラフィックソース４０１または４１１から１つ以上のデータパケットを受信する。出力ポート４０７または４１７の各々は、トラフィック宛先４０８または４１８に１つ以上のデータパケットを送信でき、トラフィック宛先４０８または４１８から１つ以上のクレジットを受信する。
【００４１】
加えて、入力ポート４０２および４１２の各々は、入来パケットごとに出力ポートを決定できる入力ポートパケット分類器４０３または４１３を利用することができる。入力ポートベースでは、パケットは、（出力ポート４０７または４１７を介して）トラフィック宛先４０８または４１８に送信される前に、イングレスバッファ、たとえば仮想出力キュー（ＶＯＱ）４０５または４１５に格納され得る。
【００４２】
この発明の一実施形態によれば、１つ以上の出力ポート４０７または４１７がリンク状態変化（リンクアップ／ダウンなど）を経験している間、システムはデータフローおよびＶＯＱリソースを管理することができる。
【００４３】
図４に示すように、各出力ポート４０７または４１７は、リンク状態管理４０９および４１９を行なうことができる。出力ポート４０７または４１７がリンク状態の任意の変化を検出すると、出力ポート４０７または４１７は、出力ポートアービタ４０６または４１６などの出力スケジューラに通知することができ、それは、すべてのＶＯＱ４０５および４１５にわたって（最終的には異なる入力ポート４０２および４１２に）状態変化通知をブロードキャストすることができる。
【００４４】
さらに、状態変化通知を受信した入力ポート４０２または４１２は、受信されたパケットが、出力ポート４０７または４１７で提示されることを防止できる。たとえば、入力パケット分類器４０３または４１３は、ブロードキャスト信号に基づいて出力ポートフィルタマスクを構成し、パケットをＶＯＱ４０５または４１５に入れる前の最終チェックとして、そのマスクをポートフィルタ４０４または４１４のために使用することができる。
【００４５】
加えて、入力ポート４０２または４１２は、出力ポート４０７または４１７をターゲットとするパケットを、これらのパケットがＶＯＱ４０５または４１５に入れられる前にドロップすることができる。出力ポート４０７または４１７でのリンク状態変化によりドロップされるこれらのパケットは、ＶＯＱスペースをまったく消費しないかもしれない。これに対応して、これらのパケットに関連付けられたクレジットが、直ちに戻され得る。
【００４６】
このため、高性能システム４００は、最終的にドロップされ得るパケットを格納するためにＶＯＱリソースが浪費されることを防止できる。
【００４７】
図５は、この発明の一実施形態に従った、ネットワークスイッチにおいてリンク状態変化を取り扱うための例示的なフローチャートを示す。図５に示すように、ステップ５０１で、システムは、複数の入力ポートおよび複数の出力ポートに関連付けられたネットワーキング装置を準備できる。たとえば、システムはネットワーキング装置を活性化し、ネットワーキング装置はそれに応じて動作の準備ができるようになる。さらに、ステップ５０２で、システムは、ネットワーキング装置に関連付けられた出力ポートでリンク状態変化を検出できる。次に、ステップ５０３で、出力ポートは、出力ポートでのリンク状態変化を１つ以上の入力ポートに通知できる。
【００４８】
ネットワークスイッチにおけるクレジット管理
図６は、この発明の一実施形態に従った、ネットワーク環境においてリンク状態変化を取り扱うためのクレジットを管理する図を示す。図６に示すように、高性能システム６００では、ＩＢネットワークスイッチにおけるデータフローは、クロスバー（ＸＢＡＲ）ファブリック６１０を介して、入力ポート６０２および出力ポート６０７を伴い得る。
【００４９】
入力ポート６０２は、トラフィックソース６０１などのリモート送信側に１つ以上のクレジットを宣伝でき、リモート送信側から１つ以上のデータパケットを受信する。出力ポート６０７は、トラフィック宛先６０８などのリモート受信側に１つ以上のデータパケットを送信でき、リモート受信側から１つ以上のクレジットを受信する。
【００５０】
加えて、入力ポート６０２は、入来パケットごとに１つ以上の宛先を決定できる（および、１つ以上のパケットを除去するためにポートフィルタ６０４を使用できる）入力ポートパケット分類器６０３を利用することができる。入力ポートベースでは、パケットは、宛先に送信される前に、仮想出力キュー（ＶＯＱ）６０５などのイングレスバッファに格納され得る。
【００５１】
図６に示すように、仮想出力キュー（ＶＯＱ）６０５などのイングレスバッファは複数のキュー６１１〜６１３を含み得る。たとえば、キュー６１３は、出力ポート６０７上の宛先ＶＬ６２２をターゲットとするパケットを格納できる。
【００５２】
この発明の一実施形態によれば、出力ポートアービタ６０６などの出力スケジューラは、（複数のキュー６１１〜６１３以外のキューを含む）異なるＶＯＱから出力ポート６０７へのさまざまなパケットの配信をスケジュールできる。
【００５３】
さらに、出力ポートアービタ６０６は、さまざまな基準（利用可能なクレジット６２６など）に基づいて、ネットワークスイッチ上の異なる入力ポートからある入力ポートを選択でき、出力ポート６０７をターゲットとする１つ以上のパケットを配信するための宛先ＶＬを選択できる。
【００５４】
この発明の一実施形態によれば、システムは、さまざまな出力ポートクロスバーアービタ内のスケジューリング層に抽象化を提供できるフレームワークを提供できる。出力スケジューラが任意の物理的なリンク状態変化にとらわれないように、システムは、利用可能なクレジット６２６を出力スケジューラに提示することによってリンク状態抽象化を達成できる。
【００５５】
図６に示すように、クレジット整合性を維持するために、出力ポートアービタ６０６は、そのスケジューリング決定に達する際に利用可能なクレジット６２６を考慮することができる。加えて、リンク関連状態管理６０９全体は、物理的な出力ポート６０７内で行なわれ得る。また、出力ポート６０７は、クレジット状態管理６２９を独立して行なうことができる。
【００５６】
この発明の一実施形態によれば、システムは、出力ポートアービタ６０６に最大クレジット値を示すために、インターフェイス６３９を出力ポート６０７上に提供することができる。たとえば、インターフェイス６３９は、ポートロジックと出力ポートアービタ６０６との間に存在し得る。
【００５７】
出力ポートアービタ６０６が初期クレジット６２８を受信すると、出力ポートアービタ６０６は、（新しい一組の初期値が次回提示されるまで）初期クレジット６２８についての値を、消費され得る最大クレジットとしてロックすることができる。
【００５８】
このため、システムは、リンク状態変化およびパケットスケジューリングの非同期的性質に起因するさまざまな潜在的な競合状態を防止することができる（たとえば、これらの状態は、インフライトパケットと、クレジットが戻される際のそれらのオーバーフローとによって生じ得る）。
【００５９】
たとえば、トラフィックが動いている状態でリンクがアップしている（すなわちアクティブである）場合、リモート宛先６０８から来る値に基づいて、初期クレジット６２８についてのすべての更新が出力ポートアービタ６０６に提示され得る。たとえば、これらの値は、インターフェイス６３９を簡単に通過できる。次に、リモート宛先６０８によって提供された情報に基づいて、出力ポートアービタ６０６は、利用可能なクレジット６２６の値を導き出すことができる。
【００６０】
図６に示すように、出力ポート６０７とリモートトラフィック宛先６０８とのリンクがアクティブである場合（すなわち、出力ポート６０７がアップしている場合）、出力ポートアービタ６０６は、キュー６１３に格納された１つ以上のパケットを出力ポート６０７上の選択された宛先ＶＬ６２２に配信するように入力ポート６０２をスケジュールすることができる。
【００６１】
次に、送出パケット（またはデータ）が排出されるにつれて、リモートトラフィック宛先６０８はクレジットを出力ポート６０７に放出することができる。加えて、出力ポートアービタ６０６は、放出されたクレジットを使用して、ＸＢＡＲファブリック６１０を通して、出力ポート６０７上の選択された宛先ＶＬ６２２により多くのパケットを配信するようにキュー６１３をスケジュールすることができる。
【００６２】
この発明の一実施形態によれば、ＩＢプロトコルを使用して、パケットの動きはクレジットの利用可能性に基づくことができ、それが欠けていることは、ＩＢネットワークスイッチにおけるＶＯＱでのパケットの動きをブロックし得る。さらに、ＶＯＱのブロック挙動は、ソース（または入力ポート）から宛先（または出力ポート）へのトラフィックフローに依存して、ＶＯＱリソースを必要以上に多く（さらには無駄に）利用することをもたらし得る。
【００６３】
たとえば、出力ポート６０７とリモートトラフィック宛先６０８とのリンクがイナクティブになった場合（すなわち、出力ポート６０７がダウンしている場合）、リモートトラフィック宛先６０８からのクレジットの放出も停まるかもしれない（すなわち、利用可能なクレジットの現在値は任意の状態になり得る）。利用可能なクレジットがない（またはほんの少ししかない）ことが起こり得る。その場合、ＶＯＱ６０５にエンキューされたパケットは、利用可能なクレジットがないため、ＶＯＱ６０５から出ることができないかもしれない。
【００６４】
図６に示すように、出力ポート６０７上のリンクがダウンした場合、抽象化を維持するためにインターフェイス６３９を使用することができる。出力ポート６０７上のリンク状態管理６０９（状態マシン）は、リンクがアップしている場合に宣伝される初期クレジット６２８と同じ（または類似した）態様で、新しい一組の初期クレジット（たとえば、リンクダウンクレジット６２７）を宣伝することができる。
【００６５】
この発明の一実施形態によれば、システムは、リンクダウンクレジット６２７について宣伝される値が十分に大きくなり得る、ということを保証できる。たとえば、値は、出力ポート６０７でのターンアラウンドタイムに基づいて推定され得る。次に、出力ポートアービタ６０６は、リンクダウンクレジット６２７を、新しい最大数として自動追尾することができる。
【００６６】
新しいクレジットが利用可能である状態で、ＶＯＱ６０５は、出力ポート６０７へのパケット（またはデータ）の送信を開始することができる。データが物理的な出力ポート６０７に向かって動くにつれて、パケット６２３がドロップされ、クレジット６２４が出力ポートアービタ６０６に戻され得る。これは、（出力ポートがダウンしている場合でさえ）ブロック挙動を防止するために、出力ポートアービタ６０６は利用可能なクレジットを常に有する、ということを保証する。
【００６７】
さらに、リンクが再びアップに戻った場合、クレジットフローは新しい初期クレジット６２８の宣伝と同じプロセスをたどり、それは連続するトラフィックの動きを可能にする。
【００６８】
この発明の一実施形態によれば、システムは、異なる条件下でのさまざまなデッドロックシナリオを回避するために、クレジットのフローを管理できる。たとえば、デッドロックは、ＶＯＱ６０５が出力ポート用のパケットで満たされる場合に起こるかもしれず、それは最終的にソースＶＬ６２１についてのバックアップを引き起こすかもしれない。デッドロックはまた、マルチキャストパケットが係わっている場合に起こるかもしれない。たとえば、複製順序リストの先頭にあるポートがダウンした場合、それらのポートは、依然としてアクティブであるポートをブロックし始めるかもしれない。なぜなら、マルチキャストパケットは、１つずつ複製されるため、前進を得られないかもしれないためである。
【００６９】
このため、システムは、ＶＯＱ６０５におけるパケットを排出することによって、ブロック挙動（さらにはデッドロック）を回避することができる。また、システムは、アクティブな出力ポート間の非ブロック挙動を、他のポートが遷移を経験している間に提供することができる。
【００７０】
図７は、この発明の一実施形態に従った、ネットワークスイッチにおいてクレジット管理をサポートする図を示す。図７に示すように、高性能システム７００において、ＩＢネットワークスイッチ７２０などのネットワーク装置は、トラフィックソース７０１および７１１などのさまざまなリモート送信側から、トラフィック宛先７０８および７１８などのさまざまなリモート受信側に、トラフィックを方向付けることを担い得る。
【００７１】
さらに、クロスバー（ＸＢＡＲ）ファブリック７１０に基づくＩＢネットワークスイッチ７２０は、入力ポート７０２、７１２、および出力ポート７０７、７１７などの（複数のＶＬを有する）多数のポートをサポートすることができる。
【００７２】
入力ポート７０２または７１２の各々は、トラフィックソース７０１または７１１に１つ以上のクレジットを宣伝でき、トラフィックソース７０１または７１１から１つ以上のデータパケットを受信する。出力ポート７０７または７１７の各々は、トラフィック宛先７０８または７１８に１つ以上のデータパケットを送信でき、トラフィック宛先７０８または７１８から１つ以上のクレジットを受信する。
【００７３】
加えて、入力ポート７０２および７１２の各々は、入来パケットごとに１つ以上の出力ポートを決定できる（および、１つ以上のパケットを除去するためにポートフィルタ７０４または７１４を使用できる）入力ポートパケット分類器７０３または７１３を利用することができる。入力ポートベースでは、パケットは、（出力ポート７０７または７１７を介して）トラフィック宛先７０８または７１８に送信される前に、仮想出力キュー（ＶＯＱ）７０５または７１５などのイングレスバッファに格納され得る。
【００７４】
この発明の一実施形態によれば、出力ポートアービタ７０６および７１６などの異なる出力スケジューラは、異なるＶＯＱ７０５および７１５から出力ポート７０７および７１７へのさまざまなパケットの配信をスケジュールできる。また、システムは、異なる条件下でのさまざまなデッドロックシナリオを回避するために、クレジットのフローを管理できる。
【００７５】
図７に示すように、出力ポート７０７または７１７は、クレジット状態管理７２９または７３９を行なうことができる。加えて、システムは、出力ＸＢＡＲアービタ７０６または７１６に最大クレジット値を示すために、インターフェイス７３０または７４０を出力ポート７０７または７１７上に提供することができる。初期クレジット７２８または７３８がアービタ７０６または７１６に提示されると、アービタ７０６または７１６は、（新しい一組の初期値が次回提示されるまで）初期クレジット７２８または７３８の値を、消費され得る最大クレジットとしてロックすることができる。
【００７６】
トラフィックが動いている状態でリンクがアップしている（すなわちアクティブである）場合、リモート宛先７０８または７１８から来る値に基づいて、初期クレジット７２８または７３８についてのすべての更新が出力ポートアービタ７０６または７１６に提示され得る。
【００７７】
一方、リンクがダウンした場合、許容された最大クレジットの現在値は任意の状態になり得る。利用可能なクレジットがない（またはほんの少ししかない）ことが起こり得る。
【００７８】
図７に示すように、出力ポート７０７または７１７上のリンクがダウンした場合、抽象化を維持するためにインターフェイス７３０または７４０を使用することができる。出力ポート７０７または７１７上のリンク状態管理７０９または７１９（状態マシン）は、リンクがアップしている場合に宣伝される初期クレジット７２８または７３８と同じ（または類似した）態様で、新しい一組の初期クレジット（たとえば、リンクダウンクレジット７２７または７３７）を宣伝することができる。
【００７９】
次に、ＶＯＱ７０５および７１５は、出力ポート７０７または７１７へのパケット（またはデータ）の送信を開始することができる。データが物理的な出力ポート７０７または７１７に向かって動くにつれて、パケットがドロップされ、クレジットが出力ポートアービタ７０６または７１６に戻され得る。これは、出力ポートがダウンしている場合でさえ、アービタ７０６または７１６は利用可能なクレジットを常に有する、ということを保証し、それはブロック挙動を防止する。
【００８０】
このため、ＶＯＱ７０５および７１５におけるパケットを排出することによって、システムは、ＶＯＱ７０５および７１５における、ならびに他の出力ポート間でのブロック挙動（さらにはデッドロック）を回避することができる。
【００８１】
さらに、リンクが再びアップに戻った場合、クレジットフローは新しい初期クレジット７２８または７３８の宣伝と同じプロセスをたどることができ、それは連続するトラフィックの動きを可能にする。
【００８２】
図８は、この発明の一実施形態に従った、ネットワークスイッチにおいてクレジット管理をサポートするための例示的なフローチャートを示す。図８に示すように、ステップ８０１で、システムは、複数の入力ポートおよび複数の出力ポートを含むネットワーキング装置上の出力ポートでリンク状態変化を検出できる。さらに、ステップ８０２で、出力ポートは、１つ以上のクレジットを出力スケジューラに提供できる。次に、ステップ８０３で、出力スケジューラは、１つ以上のクレジットに基づいて、出力ポートをターゲットとする１つ以上のパケットが１つ以上の仮想出力キューからデキューされることを可能にする。
【００８３】
この発明の一実施形態では、ネットワーク環境においてパケット交換をサポートするための方法であって、複数の入力ポートおよび複数の出力ポートを含むネットワーキング装置上の出力ポートでリンク状態変化を検出するステップと、出力ポートを介して、１つ以上のクレジットを出力スケジューラに提供するステップと、１つ以上のクレジットに基づいて、出力スケジューラを介して、出力ポートをターゲットとする１つ以上のパケットが１つ以上の仮想出力キューからデキューされることを可能にするステップとを含む、方法が提供される。
【００８４】
この発明の別の実施形態では、その方法において、ネットワーキング装置は、クロスバーファブリックを含むネットワークスイッチである。
【００８５】
この発明の別の実施形態では、その方法は、１つ以上の入力ポートを介して、当該１つ以上のパケットを当該１つ以上の当該仮想出力キューに格納するステップを含む。
【００８６】
この発明の別の実施形態では、その方法において、出力ポートがアップしている場合、当該１つ以上のクレジットを可能にすることは、リモートトラフィック宛先から受信される１つ以上の初期クレジットを含む。
【００８７】
この発明の別の実施形態では、その方法において、出力ポートがダウンしている場合、当該１つ以上のクレジットは、出力ポートによって構成される１つ以上のリンクダウンクレジットを含む。
【００８８】
この発明の別の実施形態では、その方法は、出力スケジューラを介して、１つ以上のクレジットを、利用可能な最大クレジットとなるように設定するステップを含む。
【００８９】
この発明の別の実施形態では、その方法は、利用可能な最大クレジットに基づいて、出力スケジューラを介して、利用可能なクレジットを導き出すステップを含む。
【００９０】
この発明の別の実施形態では、その方法は、出力スケジューラが、利用可能なクレジットに基づいて、宛先仮想レーンを選択するステップをさらに含む。
【００９１】
この発明の別の実施形態では、その方法は、仮想出力キューからの当該１つ以上のパケットを、出力ポート上の宛先仮想レーンに向けて発送するステップをさらに含む。
【００９２】
この発明の別の実施形態では、その方法は、出力ポートで当該１つ以上のパケットを排出するステップと、入力ポート上の１つ以上のソース仮想レーンに１つ以上のクレジットを戻すステップとをさらに含む。
【００９３】
この発明の一実施形態では、前述の方法のいずれかにおける、ネットワーク環境においてパケット交換をサポートするためのシステムであって、ネットワーキング装置は、ネットワーキング装置上の出力ポートでリンク状態変化を検出し、出力ポートを介して、１つ以上のクレジットを出力スケジューラに提供し、１つ以上のクレジットに基づいて、出力スケジューラを介して、出力ポートをターゲットとする１つ以上のパケットが１つ以上の仮想出力キューからデキューされることを可能にするように動作可能である、システムが提供される。
【００９４】
この発明の別の実施形態では、ネットワーク環境においてパケット交換をサポートするためのシステムであって、複数の入力ポートおよび複数の出力ポートを有するネットワーキング装置を含み、ネットワーキング装置は、ネットワーキング装置上の出力ポートでリンク状態変化を検出し、出力ポートを介して、１つ以上のクレジットを出力スケジューラに提供し、１つ以上のクレジットに基づいて、出力スケジューラを介して、出力ポートをターゲットとする１つ以上のパケットが１つ以上の仮想出力キューからデキューされることを可能にするように動作可能である、システムが提供される。
【００９５】
この発明の別の実施形態では、そのシステムにおいて、ネットワーキング装置は、クロスバーファブリックを有するネットワークスイッチである。
【００９６】
この発明の別の実施形態では、そのシステムにおいて、１つ以上の入力ポートは、当該１つ以上のパケットを当該１つ以上の当該仮想出力キューに格納するように動作可能である。
【００９７】
この発明の別の実施形態では、そのシステムにおいて、出力ポートがアップしている場合、当該１つ以上のクレジットは、リモートトラフィック宛先から受信される１つ以上の初期クレジットである。
【００９８】
この発明の別の実施形態では、そのシステムにおいて、出力ポートがダウンしている場合、当該１つ以上のクレジットは、１つ以上のリンクダウンクレジットである。
【００９９】
この発明の別の実施形態では、そのシステムにおいて、出力スケジューラは、１つ以上のクレジットを、利用可能な最大クレジットとなるように設定するように動作可能である。
【０１００】
この発明の別の実施形態では、そのシステムにおいて、出力スケジューラは、利用可能な最大クレジットに基づいて、利用可能なクレジットを導き出すように動作可能である。
【０１０１】
この発明の別の実施形態では、そのシステムにおいて、出力スケジューラは、利用可能なクレジットに基づいて、宛先仮想レーンを選択するように動作可能である。
【０１０２】
この発明の別の実施形態では、そのシステムにおいて、ネットワーキング装置は、仮想出力キューからの当該１つ以上のパケットを、出力ポート上の宛先仮想レーンに向けて発送し、出力ポートで当該１つ以上のパケットを排出し、入力ポート上の１つ以上のソース仮想レーンに１つ以上のクレジットを戻すように動作可能である。
【０１０３】
この発明の一実施形態では、命令を格納する、非一時的なマシン読取可能記憶媒体であって、当該命令は、実行されると、システムに複数のステップを行なわせ、当該複数のステップは、複数の入力ポートおよび複数の出力ポートを含むネットワーキング装置上の出力ポートでリンク状態変化を検出するステップと、出力ポートを介して、１つ以上のクレジットを出力スケジューラに提供するステップと、１つ以上のクレジットに基づいて、出力スケジューラを介して、出力ポートをターゲットとする１つ以上のパケットが１つ以上の仮想出力キューからデキューされることを可能にするステップとを含む、非一時的なマシン読取可能記憶媒体が提供される。
【０１０４】
この発明の一実施形態では、マシン読取可能なフォーマットの命令を含み、当該命令は、実行されると、システムに上述の方法を行なわせる、コンピュータプログラムが提供される。
【０１０５】
本発明の多くの特徴は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せにおいて、当該ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを使用して、もしくは当該ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せの助けを得て行なわれ得る。したがって、本発明の特徴は、（たとえば、１つ以上のプロセッサを含む）処理システムを使用して実現されてもよい。
【０１０６】
本発明の特徴は、ここに提示された特徴のいずれかを行なうように処理システムをプログラミングするために使用可能な命令が格納された記憶媒体またはコンピュータ読取可能媒体であるコンピュータプログラム製品において、当該コンピュータプログラム製品を使用して、もしくは当該コンピュータプログラム製品の助けを得て実現され得る。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム（分子メモリＩＣを含む）、もしくは、命令および／またはデータを格納するために好適な任意のタイプの媒体またはデバイスを含み得るものの、それらに限定されない。
【０１０７】
マシン読取可能媒体のうちのいずれか１つに格納されて、本発明の特徴は、処理システムのハードウェアを制御するために、および、処理システムが本発明の結果を利用する他のメカニズムとやりとりすることを可能にするために、ソフトウェアおよび／またはファームウェアに組込まれ得る。そのようなソフトウェアまたはファームウェアは、アプリケーションコード、デバイスドライバ、オペレーティングシステム、および実行環境／コンテナを含み得るものの、それらに限定されない。
【０１０８】
この発明の特徴はまた、たとえば、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）などのハードウェアコンポーネントを使用して、ハードウェアで実現されてもよい。ここに説明された機能を行なうようなハードウェア状態マシンの実現は、当業者には明らかであろう。
【０１０９】
加えて、本発明は、本開示の教示に従ってプログラミングされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ読取可能記憶媒体を含む、１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを使用して、便利に実現されてもよい。ソフトウェア技術の当業者には明らかであるように、本開示の教示に基づいて、適切なソフトウェアコーディングを、熟練したプログラマーによって容易に準備することができる。
【０１１０】
本発明のさまざまな実施形態が上に説明されてきたが、それらは限定のためではなく例示のために提示されたことが理解されるべきである。形態および詳細におけるさまざまな変更を、この発明の精神および範囲から逸脱することなくそこで行なうことができるということは、当業者には明らかであろう。
【０１１１】
本発明は、特定された機能およびそれらの関係の実行を示す機能構築ブロックの助けを得て、上に説明されてきた。これらの機能構築ブロックの境界はしばしば、説明の便宜上、ここに任意に定義されてきた。特定された機能およびそれらの関係が適切に実行される限り、代替的な境界を定義することができる。あらゆるそのような代替的な境界はこのため、この発明の範囲および精神内にある。
【０１１２】
この発明の前述の説明は、例示および説明のために提供されてきた。それは、網羅的であるよう、またはこの発明を開示された形態そのものに限定するよう意図されてはいない。本発明の広さおよび範囲は、上述の例示的な実施形態のいずれによっても限定されるべきでない。当業者には、多くの修正および変形が明らかであろう。修正および変形は、開示された特徴のあらゆる関連する組合せを含む。実施形態は、この発明の原理およびその実際的な適用を最良に説明するために選択および説明されたものであり、それにより、他の当業者が、特定の使用に好適なさまざまな修正を考慮して、さまざまな実施形態についてこの発明を理解することを可能にする。この発明の範囲は、請求項およびそれらの均等物によって定義されることが意図されている。
【図１】
0006772139.tif 000002
【図２】
0006772139.tif 000003
【図３】
0006772139.tif 000004
【図４】
0006772139.tif 000005
【図５】
0006772139.tif 000006
【図６】
0006772139.tif 000007
【図７】
0006772139.tif 000008
【図８】
0006772139.tif 000009