(57)【特許請求の範囲】
【請求項１】
ノードをネットワークループに接続するポートであって、
（ａ）ノードからのデータおよび上流ノードからのデータを監視し、プリミティブをポートで受け取ると第一フラグを設定しそしてフレーム終了プリミティブであるプリミティブをポートで受け取ると第二フラグを設定する検出素子、
（ｂ）フレーム終了プリミティブを生成するフレーム終了ジェネレータ、
（ｃ）バッファデータを生成するバッファデータジェネレータ、
（ｄ）制御入力、出力および複数のデータ入力を有する切換え素子であって、ノード、上流ノード、フレーム終了ジェネレータおよびバッファデータジェネレータの出力の各々に一つのデータ入力が接続されている切換え素子、および
（ｅ）検出素子と切換え素子の制御入力とに接続された制御素子であって、第一フラグと第二フラグにしたがって、前記切換え素子のデータ入力のうちの一つを選択し、該切換え素子の出力に接続して、そのデータ入力の一つがポートによって下流ノードに出力され、そしてフレーム終了ジェネレータに対応する切換え素子のデータ入力を選択してその選択によってポート間のデータ流に無効のランニングディスパリティを起こさないように構成されている制御素子、
を備えてなるポート。
【請求項２】
ポートが、ファイバーチャネルアービトレーテッドループのハブポートである請求項１に記載のポート。
【請求項３】
フレーム終了プリミティブがＦＣ−ＡＬＥＯＦＡの順序付けセットである請求項１に記載のポート。
【請求項４】
バッファデータがＦＣ−ＡＬ現行フィルワードである請求項１記載のポート。
【請求項５】
ポート間のデータが、現行ワードがプリミティブであることを示す第一ビットおよび現行ワードがフレーム終了プリミティブであることを示す第二ビットを含む請求項１に記載のポート。
【請求項６】
制御素子が、切換え素子に、ノードからのデータに対応するデータ入力を接続することから、ノードがデータのフレームを完了した後、異なるデータ入力を接続することに変更させる請求項１に記載のポート。
【請求項７】
ループネットワークの各ノードがポートを含んでいる請求項１に記載のポート。
【請求項８】
ノードをファイバーチャネルアービトレーテッドループに接続するハブポートであって、
（ａ）ノードからのデータおよび上流ノードからのデータを監視し、順序付けセットをハブポートで受け取ったとき、順序付けセットフラグを設定する順序付けセット検出回路、
（ｂ）ノードからのデータおよび上流ノードからのデータを監視し、フレーム末尾順序付けセットをハブポートで受け取ったとき、フレーム末尾フラグを設定するフレーム末尾検出回路、
（ｃ）フレーム末尾順序付けセットを生成するフレーム末尾ジェネレータ、
（ｄ）現行フィルワード順序付けセットを生成する現行フィルワードジェネレータ、
（ｅ）ハブポート出力、
（ｆ）ハブポート入力、
（ｇ）ノードの出力に接続されたノードポート入力、
（ｈ）マルチプレクサ制御入力、マルチプレクサ出力および複数のマルチプレクサ入力を有するマルチプレクサであって、前記マルチプレクサ出力がハブポート出力に接続され、そしてノードポート入力、ハブポート入力、フレーム末尾ジェネレータおよび現行フィルワードジェネレータの各々に一つのマルチプレクサ入力が接続されているマルチプレクサ、および
（ｉ）前記順序付けセット検出回路、前記フレーム末尾検出回路およびマルチプレクサ制御入力に接続されて、どのマルチプレクサ入力をマルチプレクサ出力に接続するかを制御し、そして、フレーム末尾ジェネレータに対応するマルチプレクサ入力を選択してその選択によってポート間のデータ流中に無効のランニングディスパリティを起こさないように構成されている出力制御回路、
を備えてなるハブポート。
【請求項９】
ノードをネットワークループから取り出す方法であって、
（ａ）ノードデータをノードから受け取り、
（ｂ）ノードデータがプリミティブでない場合、フレーム終了プリミティブとバッファデータを、下流のノードに送信し、
（ｃ）上流データを上流ノードから受け取り、
（ｄ）上流データがプリミティブでない場合、バッファデータを下流ノードに送信し、
（ｅ）上流データがフレーム終了プリミティブである場合、バッファデータを下流ノードに送信し、
（ｆ）上流データがフレーム終了プリミティブでないプリミティブである場合、ノードをそのネットワークループから取り出す、
ことを含んでなる方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子ネットワーク通信システムに関し、さらに詳しくはループネットワークへのノードの挿入とループネットワークからのノードの取出しに関する。
【０００２】
【従来の技術】
電子データシステムは、ネットワーク通信システムを用いて相互に接続されることが多い。広域のネットワークとチャネルは、コンピュータネットワークのアーキテクチャのために開発された二つの方法である。伝統的なネットワーク（例えばＬＡＮやＷＡＮなど）は、大きなフレキシビリティと比較的長い距離の通信能力を提供している。ｔｈｅ Ｅｎｔｅｒｐｒｉｓｅ Ｓｙｓｔｅｍ Ｃｏｎｎｅｃｔｉｏｎ（ＥＳＣＯＮ）およびｔｈｅ Ｓｍａｌｌ Ｃｏｍｐｕｔｅｒ Ｓｙｓｔｅｍ Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）などのチャネルが、高性能と高い信頼性を求めて開発されている。チャネルは一般に、コンピュータ間またはコンピュータと周辺装置の間の専用の短距離の接続を使用している。
【０００３】
チャネルとネットワーク両者の特徴が、“ファイバーチャネル（Ｆｉｂｒｅ Ｃｈａｎｎｅｌ）”として知られている新しいネットワーク標準に組み込まれている。ファイバーチャネルシステムは、チャネルの速度と信頼性およびネットワークのフレキシビリティと接続性を兼ね備えている。ファイバーチャネルの製品は、現在、非常に高いデータ速度、例えば２６６Ｍｂｐｓまたは１０６２Ｍｂｐｓで作動可能である。このような速度は、非圧縮、フルモーション、高品質のビデオ（ｕｎｃｏｍｐｒｅｓｓｅｄ， ｆｕｌｌ ｎｏｔｉｏｎ， ｈｉｇｈ−ｑｕａｌｉｔｙ ｖｉｄｅｏ）などの全デマンディングアプリケーション（ｑｕｉｔｅ ｄｅｍａｎｄｉｎｇ ａｐｐｌｉｃａｔｉｏｎ）を扱うのに十分な速度である。ＡＮＳＩの仕様書、例えば、Ｘ３．２３０−１９９４は、ファイバーチャネルネットワークを定義している。この仕様書は、ファイバーチャネルの機能を、五つの層に分配している。ファイバーチャネルのこの五つの機能層は、ＦＣ−０層：物理的媒体層；ＦＣ−１層：コーディングとエンコーディングを行う層；ＦＣ−２層：実転送機構（ノード間のフレーミングプロトコルとフロー制御を含む）；ＦＣ−３層：共通サービスの層；およびＦＣ−４層；上層のプロトコルである。
【０００４】
ファイバーチャネルネットワークを配備するのに一般に３種の方法がある。すなわち、単純なポイントツーポイント接続；アービトレーテッドループ（ａｒｂｉｔｒａｔｅｄ ｌｏｏｐ）；および交換ファブリック（ｓｗｉｔｃｈｅｄ ｆａｂｒｉｃ）である。最も単純なトポロジーは、ポイントツーポイントの配置構成であり、この場合、任意の二つのファイバーチャネルシステムが、単純に、直接、接続されている。アービトレーテッドループは、アービトレーションによって帯域幅に対する共用アクセスを提供するファイバーチャネルリングの接続である。交換ファイバチャネルネットワーク（“ファブリック”と呼称されている）は、クロスポイント交換（ｃｒｏｓｓ−ｐｏｉｎｔ ｓｗｉｔｃｈｉｎｇ）の形態である。
【０００５】
通常のファイバーチャネルアービトレーテッドループ（“ＦＣ−ＡＬ”）のプロトコルは、装置またはループセグメントを、ノードポートを通じて、相互に接続する際のループの機能に関するプロトコルである。しかし、ノードポートを直接、相互接続することは、一つのループ内の一つのノードポートが故障すると、一般に、全ループが故障するという点が問題である。この難点は、ハブを使用することによって、従来のファイバーチャネルの技法で克服される。ハブは、ループトポロジィで相互に接続されたいくつものハブポートを備えている。ノードポートは、ハブポートに接続され、中央のハブとスタートポロジィを形成している。ノードポートに接続されていないかまたは故障したノードポートに接続されているハブポートはバイパスされる。このように前記ループは、ノードポートが取り外されているか故障しているかにかかわらず維持される。
【０００６】
さらに詳しく述べると、ＦＣ−ＡＬネットワークは、一般に、単一のデータ経路を形成するループ形状構成内で相互に連結された二つ以上のノードポートで構成されている。ノードポートツーノードポートループのこのような形状構成を図１に示す。図１において、六つのノードポート１０２、１０４、１０６、１０８、１１０、１１２が、データチャネル１１４、１１６、１１８、１２０、１２２、１２４によって互いに連結されている。このように、ループがデータ経路によってつくられる。すなわち、データチャネル１１４を通じてノードポート１０２からノードポート１０４まで、次にデータチャネル１１６を通じてノードポート１０４からノードポート１０６まで・・・データチャネル１２４を通じてノードポート１０２までデータ経路でループがつくられる。
【０００７】
上記ループ内のいずれかの位置に故障があると、ループのデータ経路が破断されて、ループの通信がすべて停止する。例えば、ノードポート１０４が故障すると、データはもはやノードポート１０４を通過しない。また、故障は、ノードポート間のデータチャネルに起こることがある。例えば電線の物理的破断または電磁干渉がその場所に有意なデータの破壊（ｃｏｒｒｕｐｔｉｏｎ）もしくは損傷を起こすことによって起こることがある。その場所でループ１００が破断したのである。データはもはや円形経路を流れないのでノードポートはもはや互いに接続されていない。ループは事実上、ノードポートの単一方向に連結されたリストとなる。
【０００８】
ノードポートツーノードポートのループの破断データ経路を避ける従来の技法はループ内にハブを導入する技法である。ハブは、スターパターンのノードポートの物理的形状構成をつくるが、ノードポートの事実上のオペレーションがループパターンで継続する。接続プロセス（すなわちノードポート間でデータを送るプロセス）およびハブとの相互作用は、ハブに接続されたノードポートに対して事実上透明（トランスペアレント）であり、このことから標準のファイバーチャネルのアービトレーテッドループの形状構成としての関係が分かる。
【０００９】
図２は、中央にハブを接続されたアービトレーテッドループ２００を示す。図１に示したループ１００と同様に、ループ２００は六つのノードポート２０２、２０４、２０６、２０８、２１０、２１２を有し、これらノードポートは各々ハブ２１４に連結されている。ハブ２１４は六つのハブポート２１６、２１８、２２０、２２２、２２４、２２６を含み、これらハブポートは各々、内部ハブリンクのシーケンスによって、ループトポロジーで別のハブポートに接続されている。このように、ノードポート２０２〜２１２は各々、対応するハブポート２１６〜２２６に接続されている。したがって、ノードポート２０２〜２１２は、あたかも、図１に示すようなループ方式で接続されているように作動する。データは、一般に、上流のハブポートからハブポートに流入し、連結されているノードポートに流入し、そのノードポートから前記ハブポートに戻り、そしてそのハブポートから下流のハブポートに入る。
【００１０】
ノードポートまたはデータチャネルが故障するかまたは断線すると、ループは故障したノードポートをバイパスすることによって維持される。従来のハブの場合、ハブポートがもはやデータをノードポートから受け取らない時、ハブポートはバイパスモードに入る。バイパスモードでは、ハブポートは、データチャネルでノードポートから受け取ったデータを送るのではなくて、前の上流のハブポートから内部ハブリンクにそって受け取ったデータを送る。したがって、ノードは、対応するハブポートをバイパスモードに変更し、およびバイパスモード以外に変更することによって、ループから取り出されおよびループに挿入される。
【００１１】
ＦＣ−ＡＬネットワークのデータの流れの内容はＦＣ−ＡＬのプロトコルによって定義されている。キャラクタが、一つのポートから次のポートへループを通じて常に移動する。これらのキャラクタは実際のデータかまたはループ制御信号である。ループ制御信号は、データフレームが、ソースノードポートから宛先ノードポートへ送られている時以外、常に、データの流れの中に存在している。ＦＣ−ＡＬのプロトコルのもとにループ制御信号は、プリミティブ信号とプリミティブシーケンスを含む順序付けセット（ｏｒｄｅｒｅｄ ｓｅｔ）である。順序付けセットは、一般に順序付けセットの開始を示す特定のキャラクタ、例えばＫ２８．５で始まる。データフレームは、Ｓｔａｒｔ Ｏｆ Ｆｒａｍｅ（“ＳＯＦ”）と称する特定の順序付けセットが先行しＥｎｄ Ｏｆ Ｆｒａｍｅ（“ＥＯＦ”）と称する特定の順序付けセットが続く非遮断データ流である。
【００１２】
符号化されたキャラクタのデータ流は、常に、有効な“ランニングディスパリティ”（“ｒｕｎｎｉｎｇ ｄｉｓｐａｒｉｔｙ”）を有することが理想的である。符号化キャラクタは、ファイバーチャネルプロトコルに定義されている従来の８Ｂ／１０Ｂ符号化スキームにしたがって定義される。データ流のキャラクタの末尾のランニングディスパリティは、キャラクタをビット符号化する際の１と０の数の差である。０より１が多いキャラクタは正のランニングディスパリティを有している。１より０が多いキャラクタは負のランニングディスパリティを有している。１と０の数が等しいキャラクタは中性のランニングディスパリティを有している。符号器は、正、負、または中性のディスパリティで符号化されたキャラクタを送信する。中性キャラクタはデータ流のランニングディスパリティに影響しない。正のキャラクタはランニングディスパリティを負から正に変え、そして負のキャラクタはランニングディスパリティを正から負に変える。
【００１３】
各ワードも全ランニングディスパリティを有している。ワードのランニングディスパリティは、ワードがデータ流のランニングディスパリティに対してもっている効果を決定する。キャラクタの場合と同様に、正のランニングディスパリティを有するワードは、ワードの末尾でランニングディスパリティを正に変える。同様に、負のランニングディスパリティを有するワードは、ランニングディスパリティを負に変え、そして中性のランニングディスパリティを有するワードは、ランニングディスパリティをそのワードの前のランニングディスパリティと同じままにする。
【００１４】
ワード間のランニングディスパリティは、データフレーム間では負であると定義される。フレームの最後のワードすなわちＥＯＦは、ランニングディスパリティが負であることを保証する。フレーム間のギャップの各順序付けセットは中性の全ランニングディスパリティを有し、その結果、各ワードの末尾のランニングディスパリティは負のままである。
【００１５】
ランニングディスパリティが負の場合に、符号器が、負のディスパリティで符号化されたキャラクタを送るとき、またはランニングディスパリティが正の場合に、符号器が正のディスパリティで符号化されたキャラクタを送るときに、ランニングディスパリティの誤りが生じる。この誤りは、一般に、ループ中に無効のキャラクタを導入する。
【００１６】
理想的なのは、ループ中のすべてのデータが有効なデータキャラクタであり、すべての制御信号が有効な順序付けセットであり、ランニングディスパリティの誤りが全くなく、データがデータフレーム中に適正にフォーマットされており、そしてデータフレーム間には順序付けセットのみが存在していることである。しかし、各種の理由、例えば、装置がループ内に挿入されるとき、不良電線が使用されたりまたは装置がＦＣ−ＡＬのプロトコルに従わない場合などの理由で、誤りは時々ループに導入される。
【００１７】
本発明の発明者らは、ループに誤りを導入することなしにループネットワークにノードを挿入しおよびループネットワークからノードを取り出す装置と方法を提供することが望ましいことを確認した。
【００１８】
【発明の概要】
本発明は、ネットワークループにノードを挿入しおよびネットワークループからノードを取り出す技法を実行する方法と装置を提供するものである。好ましい実施態様で、ハブポートが、ノードからのデータおよび上流のノードからのデータを監視する検出素子（検出エレメント）を備えている。前記検出素子はプリミティブをポートで受信したとき第一フラグを設定（セット）しそしてフレーム終了プリミティブであるプリミティブをポートで受信したときに第二フラグを設定する。フレーム終了ジェネレータはフレーム終了プリミティブを生成しそしてバッファデータジェネレータはバッファデータを生成する。切換え素子（切換えエレメント）は、制御入力、出力および複数のデータ入力を有している。ノード、上流のノード、フレーム終了ジェネレータおよびバッファデータジェネレータ各々の出力に一つのデータ入力が接続されている。制御素子（制御エレメント）が検出素子と、切換え素子の制御入力とに接続されている。前記制御素子は、前記第一フラグと第二フラグにしたがって、前記切換え素子のデータ入力のうちの一つを選択して切換え素子の出力に接続して、前記データ入力がポートによって下流のノードに出力される。
【００１９】
ＦＣ−ＡＬを実行する場合、ハブポートは順序付けセット検出回路とフレーム末尾検出回路を備えている。その順序付けセット検出回路は、変更されるノードからおよび上流のノードからのデータを監視し、順序付けセットをハブポートで受け取ったとき順序付けセットフラグを設定する。同様に、フレーム末尾検出回路は、ノードおよび上流のノードからのデータを監視し、フレーム末尾の順序付けセットをハブポートで受け取ったときフレーム末尾のフラグを設定する。フレーム末尾ジェネレータがフレーム末尾の順序付けセットを生成し、そして現行フィルワードジェネレータ（ｃｕｒｒｅｎｔ ｆｉｌｌ ｗｏｒｄ ｇｅｎｅｒａｔｏｒ）が現行フィルワードの順序付けセットを生成する。マルチプレクサはマルチプレクサ制御入力、マルチプレクサ出力および複数のマルチプレクサ入力を備えている。そのマルチプレクサの出力はハブポート出力に接続され、次にそのハブポート出力は下流のハブポートに接続される。ノードに接続されたノードポート入力、上流ハブポートに接続されたハブポート入力、フレーム末尾ジェネレータおよび現行フィルワードジェネレータの各々に一つのマルチプレクサ入力が接続されている。出力制御回路が、順序付けセット検出回路、フレーム末尾検出回路およびマルチプレクサの制御入力に接続されている。前記出力制御回路は、前記検出回路からの信号にしたがって、どのマルチプレクサ入力をマルチプレクサ出力に接続するかを制御する。
【００２０】
【発明の実施の形態】
本発明は、ノードを、ループネットワークに挿入しおよびループネットワークから取り出す装置と方法に関する。ノードはフレーム間のギャップ中に挿入されるかまたは取り出されるので、フレームを破壊することによって起こる無効フレームと無効データが生じてループ全体に広がることがない。本発明を、好ましい実施態様の一例として、ファイバチャネルアービトレイテッドループ（“ＦＣ−ＡＬ”）ネットワークに関連して以下に説明する。しかし、本発明は、ＦＣ−ＡＬネットワークと類似の特性を有するネットワークに適用することができる。
【００２１】
好ましい実施態様で、ループネットワークのハブのハブポートは各々、連結されたノードポートをループに接続する（図２を想起されたい）。すべてのハブポートを必ずしも、常にノードポートに連結しなくてもよい。各ハブポートは、ネットワークプリミティブ信号とフレーム終了プリミティブを検出する部品（コンポーネント）を備えている。これらの検出部品を使用して、ハブポートは、フレーム間ギャップを、ノードの挿入または取り出しにいつ利用できるかを確認できる。フレームは、フレーム開始プリミティブが先行しフレーム終了プリミティブ信号が続く一連の一つ以上のデータワードを含んでいる。フレーム間のギャップは、フレーム終了プリミティブの後、次のフレーム開始プリミティブの前に生じる。上記のようにＦＣ−ＡＬを実行する場合は、フレーム開始プリミティブはＳＯＦ順序付けセットであり、そしてフレーム終了プリミティブはＥＯＦ順序付けセットである。ＦＣ−ＡＬのプロトコルにしたがって、フレーム間のギャップは、デフォルトで（ｂｙ ｄｅｆａｕｌｔ）、六つの順序付けセットを含むと定義される。フレーム間ギャップ中にノードの取出しまたは挿入を行うことによって、その挿入または取出しは、ハブポートのデータ流のフレームを破壊せずかつデータ流のランニングディスパリティも破壊しない。
【００２２】
上流のノードがフレームを送っている間にノードを挿入すると、挿入されたノードからのデータがそのフレームを中断する。かような中断は、無効の部分フレームを生じて、ループに誤りを起こす。例えば、図２に示すループについて述べると、ＦＣ−ＡＬを実行する際、ノード２１２が、ＳＯＦの順序付けセット、１０個のデータワードおよびＥＯＦの順序付けセットを含むフレームを送っていると想定する。ＳＯＦがハブポート２１６を通過した後、ＥＯＦの前に、例えば第三データワードと第四データワードの間に、ノード２０２が挿入されると、ノード２１２からのフレームが分割される。部分フレーム（ＳＯＦとこれに続く三つのデータワードを含む）がハブポート２１８とノード２０４に到達する。追加の部分フレーム（七つのデータワードとＥＯＦを含む）がその後、ノード２０４に到達する。これらの部分フレームは、ノード２０２が、上流ノードからのデータが通過する前に、どんなデータをデータ流中に挿入しようとも、そのデータにより分離される。
【００２３】
ノードがフレームを送りながら取り出されると、部分フレームがループに送られ、その結果、ループに誤りが生じることがある。例えば、ノード２０２が、ＳＯＦ、１０個のデータワードおよびＥＯＦを含むフレームを送っていると想定する。ＳＯＦがハブポート２１６をでた後、ＥＯＦの前に取り出されると、部分フレームが、上記のようにループに導入される。
【００２４】
上流のノードがフレームを送っている間に、ノードが取り出されると、そのフレームの一部が失われて、やはり、無効フレームをつくることがある。例えば、ノード２１２がＳＯＦ、１０個のデータワードおよびＥＯＦを含むフレームを送っていると想定する。そのフレームはハブポート２１６に入り次にノード２０２に入る。ＳＯＦが前記ハブポートを通じてノード２０２に入った後、ＥＯＦが前記ハブポートを通じてノード２０２に入る前に、例えば第三と第四のデータワードの間に、ノード２０２が取り出されると、ノード２１２からのフレームが分割される。部分フレーム（７個のデータワードおよびＥＯＦを含む）がハブポート２１６を通じてハブポート２１８に入り次にノード２０４に到達する。
【００２５】
さらに、上記のように、フレーム間でノードの挿入または取出しを行うと、データ流のランニングディスパリティを破壊することがある。部分フレームの破壊された側のデータ流とその部分フレームの間に総合調整が全くないので、ランニングディスパリティが遷移によって破壊されることがある。例えば、部分フレームがＳＯＦの順序付けセットと三つのデータワードを有すると想定する。その部分フレームにはすぐ後に一連の順序付けセットが続く。例えば、第三データワードが末尾の正のランニングディスパリティを有し、そして最初の順序付けセットが中性のランニングディスパリティを有しているとき、部分フレームの第三データワードから最初の順序付けセットへの遷移によって、ランニングディスパリティの誤りを生じることがある。上記のように、フレーム間ギャップである間、ワード間のランニングディスパリティは負であると定義される。最初の順序付けセットの中性ランニングディスパリティは、プロトコルに違反して、ランニングディスパリティを正のままとする。
【００２６】
フレーム間ギャップの間にノードの挿入または取出しを行うことによって、上流のノードから部分フレームは生じない。また、ハブポートは、取り出されるノードからのフレームを終了して、部分フレームのループへの導入を回避する。ＦＣ−ＡＬを実行する際、フレーム間ギャップの間に、ノードの挿入および取出しを行っても、ランニングディスパリティを破壊しない。なぜならば、フレーム間ギャップの間のランニングディスパリティは負であると定義されているからである。ハブポートは、以下に説明するように、上記定義を利用して、ランニングディスパリティの誤りが導入されるのを避ける。
【００２７】
図３に示すように、好ましい実施態様のハブポート３００が送信回路３０４に接続された入力内部ハブリンク３０２を備えている。入力内部ハブリンク３０２は、データを、上流のハブポート（図示せず）からハブポート３００へ次に送信回路３０４に運ぶ。送信回路３０４は、上記データをノードポート３０８で利用可能な形態で、データチャネル３０６にてノードポート３０８に送信する。ノードポート３０８は、ノードまたはループセグメント（図示せず）に対する接続点である。ＦＣ−ＡＬを実行する場合、送信回路３０４は、データをノードポート３０８に送信する前に、データを符号化し（好ましくは８Ｂ／１０Ｂ符号化を利用して）そして直列化することが好ましい。送信回路３０４は前記データを符号化して正しいランニングディスパリティを維持する。
【００２８】
ノードポート３０８は、ノードからのデータをハブポート３００へデータチャネル３１０で送り戻す。データチャネル３１０は受信回路に３１２に接続されている。ＦＣ−ＡＬ実行の際、受信回路３１２は、ノードポート３０８からのデータを、好ましくは非直列化し、次に好ましくは１０Ｂ／８Ｂ復号化を利用して復号する。受信回路３１２は検出回路３１４と出力制御回路３１６を備えている。また検出回路３１４は入力内部ハブプリンタ３０２に接続されている。検出回路３１４はノードポート３０８からおよび上流のノードポートからのデータ流の内容を監視して、以下により詳細に説明するように、フラグを出力制御回路３１６に送る。好ましくは、受信回路３１２によるデータ流出力は、現行ワードがプリミティブである例えば順序付けセットであることを示す第一ビットフラグ、および現行ワードがフレーム終了プリミティブである例えばＥＯＦ順序付けセットであることを示す第二ビットフラグを含んでいる。これらのビットフラグを設定するため、検出回路３１４は、ノードポート３０８からのデータ流の各ワードを検査して、プリミティブおよび各タイプのフレーム終了プリミティブを認識する。検出回路３１４は、受信回路３１２に、受信回路３１２によるデータ流出力に適当なビットフラグを設定またはクリアさせる。また、上流のノードポートからのデータ流は、現行ワードがプリミティブであるかまたはフレーム終了プリミティブであることを示すビットフラグを含んでいる。検出回路３１４は、これらのビットフラグを使用して、上流のノードからのデータ流内のプリミティブおよびフレーム終了プリミティブを検出する。
【００２９】
別の実施態様では、検出回路３１４が生成した別個のフラグに応答する代わりに、制御回路３１６が、受信回路３１２が出力するデータ流および上流ノードポートからのデータ流を直接、監視する。検出回路３１４は、ノードポート３０８からのデータ流を監視して、受信回路３１２が出力するデータ流にビットフラグを設定する。制御回路３１６は、前記ビットフラグをチェックして、ビットフラグの状態にしたがって、ハブポート３００の出力を制御する。あるいは、検出回路３１４と制御回路３１４を組み合わせて単一の構成要素にする。
【００３０】
マルチプレクサ３１８などの切換え装置は、出力制御回路３１６からの制御信号に応答して、ハブポート３００の出力を制御する。受信回路３１２は、ノードポート３０８からのデータを、マルチプレクサ３１８の第一データ入力Ａに送る。入力内部ハブリンク３０２がマルチプレクサ３１８の第二データ入力Ｂに接続されている。フレーム終了ジェネレータ３２０がマルチプレクサ３１８の第三データ入力Ｃに接続されている。フレーム終了ジェネレータ３２０は好ましくは、フレーム終了プリミティブ、およびそのプリミティブがプリミティブでありしかもフレーム終了プリミティブであることを示すビットフラグを生成する。ＦＣ−ＡＬを実行する際、フレーム終了ジェネレータ３２０は好ましくはＥＯＦＡ順序付けセットを生成する。ＥＯＦＡ順序付けセットは、現行フレームの放棄を示す、特別タイプのＥＯＦ順序付けセットである。バッファデータジェネレータ３２２はマルチプレクサ３１８の第四データ入力Ｄに接続されている。バッファデータジェネレータ３２２は好ましくは、バッファデータ、およびそのバッファデータがプリミティブでありしかもフレーム終了プリミティブでないことを示すビットフラグを生成する。ＦＣ−ＡＬを実行する際、バッファデータジェネレータ３２２は好ましくは、ＦＣ−ＡＬのプロトコルにしたがって現行フィルワードを生成する。マルチプレクサ３１８の出力は出力内部ハブリンク３２４に接続される。出力制御回路３１６は、マルチプレクサ３１８の制御入力に接続されて、マルチプレクサ３１８のデータ入力を選択し、出力内部ハブリンク３２４に接続する。出力内部ハブリンク３２４は、データを、ループ中の下流のハブポート（図示せず）に送る。
【００３１】
作動中、ハブポート３００がバイパスモードである場合、例えばノードがハブポート３００に接続されていないかまたはノードが故障した場合、出力制御回路３１６はデータ入力Ｂを、出力内部ハブリンク３２４に接続させる。ハブポート３００がバイパスモードでない場合、出力制御回路３１６は、データ入力Ａを、出力内部ハブリンクに３２４に接続させる。
【００３２】
図４に示すように、ノードをループ内に挿入し、ハブポート３００をバイパスモードから取り出すプロセス４００では、ハブポート３００が、上流ノードからのデータ流を検査してフレーム間ギャップを見つける（ステップ４０５）。検出回路３１４がデータ流中の各ワードをチェックする。検出回路３１４がフレーム終了プリミティブでないプリミティブを検出すると、検出回路３１４は、上流のフレーム間フラグを設定する（ステップ４１０）。前記上流のフレーム間フラグは、出力制御回路３１６に、上流ノードがプリミティブを送っていて、上流ノードからのデータ流がフレーム間ギャップの状態になっていることを示す。応答して、出力制御回路３１６は、マルチプレクサ３１８に、データ入力Ａを出力内部ハブリンク３２４に接続させ（ステップ４１５）、その結果、ノードポート３０８からのデータは、好ましくは、上流のフレーム間フラグを設定させたワードの前のデータ流に挿入される。定義により、適正に構成されたデータ流には、プリミティブだけがフレーム間に生じる。したがって検出回路３１４が、フレーム終了プリミティブでないプリミティブを、上流ノードから検出すると、検出回路３１４は、現行ワードが、上流ノードからのデータ流内のフレーム間に当然あることを認識する。
【００３３】
図５に示すように、ノードをループから取り出してハブポート３００をバイパスモードにするプロセス５００において、ハブポート３００はノードポート３０８からのデータ流中の現行ワードを検査し（ステップ５００）、次に上流ノードからのデータ流を監視する（ステップ５４０）。ノードポート３０８からの現行ワードがフレーム終了プリミティブでないプリミティブであると、検出回路３１４はノードフレーム間フラグを設定する。このノードフレーム間フラグは、出力制御回路３１６に、ノードポート３０８がプリミティブを送っていてしかもノードポート３０８からのデータ流がフレーム間ギャップにあることを示す。出力制御３１６は、応答して、マルチプレクサ３１８に、バッファデータジェネレータ３２２を出力内部ハブリンク３２４に接続させる（ステップ５１０）。出力制御回路３１６は、上流ノードからのデータ流が上記のように、現在、フレーム間にあることを示す上流フレーム間フラグを、検出回路３１４が設定するまで、前記接続を維持する（ステップ５４５）。
【００３４】
ノードポート３０８からの現行ワードがプリミティブでないと、検出回路３１４はノードフレーム放棄フラグを設定する。このノードフレーム放棄フラグは、出力制御回路３１６に、ノードポート３０８がまだ終了していないフレームを現在送っていて、そのフレームはバイパスモードに変わる前に放棄されねばならないということを示す。フレームを適正に終了するため、出力制御回路３１６は、マルチプレクサ３０８に、フレーム終了ジェネレータ３２０を、一ワードに対して出力ハブ内部リンク３２４に接続させる（ステップ５１５）。フレームを終了した後、出力制御回路３１６は、検出回路３１４が上流のフレーム間フラグを設定するまで（ステップ５４５）、マルチプレクサ３１８に、バッファデータジェネレータ３２２を出力内部ハブリンク３２４に接続させる（ステップ５２０）。
【００３５】
ノードポート３０８からの現行ワードがフレーム終了プリミティブであると、検出回路３１４は、ノードフレーム終了フラグを設定する。そのノードフレーム終了フラグは、出力制御回路３１６に、ノードポート３０８がフレームを成功裡に完了したことを示す。したがって、出力制御回路３１６は、一ワードに対してマルチプレクサ３０８の接続を変えずに、ノードポート３０８からのフレーム終了プリミティブを、出力内部へハブリンク３２４に送ることができる（ステップ５２５）。フレームを終了させた後、出力制御３１６は、検出回路３１４が上流フレーム間フラグを設定するまで（ステップ５４５）、マルチプレクサ３１８に、バッファデータジェネレータ３２２を出力内部ハブリンクに接続させる（ステップ５３０）。
【００３６】
検出回路３１４が上流のフレーム間フラグを設定すると、ハブポート３０８がバイパスモードに変わる。出力制御回路３１６は、マルチプレクサ３１８に、入力内部ハブリンク３０２を出力内部ハブリンク３２４に接続させる（ステップ５５０）。その結果、ノードポート３０８に接続されたノードまたはループセグメントが、上流ノードからのデータ流内の、フレーム間ギャップ中にループから取り出される。
【００３７】
別の実施態様では、ノードフレーム放棄フラグが設定されると、出力制御回路３１６は、フレームを終了する前に、状態情報をチェックする。その状態情報は、出力制御回路３１６に、ノードポート３０８を取り出す理由を示す。ノードポート３０８が依然として有効なデータを返信できるかまたは管理上の目的、例えば計画的な整備またはアップグレードのため取り出すべき場合、出力制御回路３１６は、上記のように、ノードフレーム間フラグが設定されるまでマルチプレクサ３１８の接続を変えない。ノードポート３０８に、送られているフレームを完了させることによって、いくらかのデータ損失を避けることができる。ノードポート３０８が故障したかまたはもはや有効データを送信しないからノードポート３０８は取り出すべきときには、出力制御回路３１６は、上記のように、フレームを直ちに停止する。
【００３８】
他の代わりの実施態様では、挿入と取り出しの制御器は、ハブポートではなしにノード自体に配置される。かようなノードは、制御信号を、接続されたハブポートに送って、上記技法と同様に、ハブポートのバイパスモードを制御する。あるいは、かようなノードは他のノードに直接接続される。この場合、ノード接続回路は、やはり上記技法を使用して、バイパスモードに入るかまたバイパスモードから出て、ノードをループに挿入しおよびノードをループから取り出すことができる。
【００３９】
別のＦＣ−ＡＬの実施態様では、ランニングディスパリティが、各遷移、すなわち、挿入または取り出しにおいて維持されることを、ハブポートが直接保証する。上記実施態様では、そのランニングディスパリティは、ＦＣ−ＡＬのプロトコルの定義によって、および内部ハブリンクのデータ流が復号化されるので、保存される。送信回路（例えば、図３の３０４）は、適正なランニングディスパリティを有するデータ流を符号化する。この代わりの実施態様では、出力制御回路は、ループに導入された順序付けセットのランニングディスパリティを、例えばバッファデータジェネレータの出力を制御して調節することによって、有効なランニングディスパリティを維持する。
【００４０】
好ましい実施態様を、いくつもの別の実施態様とともに説明してきた。しかし、本願の特許請求の範囲の範囲内に入る変形は本発明の範囲内に入る。例えば、前記検出回路と出力制御回路は、ハブポートの受信回路の外側に配置してもよい。あるいは切換え装置（例えば図３に示すマルチプレクサ３１８）はクロスポイントスイッチでもよい。別の実施態様では、上記技法は、プログラマブルハードウェアまたはプログラマブルソフトウェアで実施できる。したがって、本発明は、上記諸実施態様に限定されることなく、本願の特許請求の範囲の範囲によってのみ限定される。
【図面の簡単な説明】
【図１】直接、相互に接続されたノードポートからなる従来技術のループを示す。
【図２】ハブを含む従来技術のループを示す。
【図３】好ましい実施態様のハブポートのブロック線図を示す。
【図４】ノードを挿入するプロセスを示すフローチャートである。
【図５】ノードを取り出すプロセスを示すフローチャートである。
【図１】
0003544525.tif 000002
【図２】
0003544525.tif 000003
【図３】
0003544525.tif 000004
【図４】
0003544525.tif 000005
【図５】
0003544525.tif 000006