(57)【特許請求の範囲】
【請求項１】
フレームの配列を、ループを通じて、複数のポートがアービトレートしているときに確立されるファイバーチャネルアービトレーテッドループアクセス公平ウィンドウ期間内においてアービトレーションに一回だけ勝つように制限される公平ポートによって、同公平ウィンドウの一回のループの占有の間、複数の宛て先ポートに伝送する方法であって；
（ａ）前記公平ポートによって、第一宛て先ポートを有する第一ループ回路を確立し、
（ｂ）前記第一ループ回路を終了し、次いで、
（ｃ）前記公平ポートがいずれのアービトレートしているポートへも制御を明け渡すことなくかつ再びアービトレートすることなく、同公平ポートと第二宛て先ポートの間の第二ループ回路を開始する、
ステップを含んでなる方法。
【請求項２】
（ａ）前記第二ループ回路を終了し、次いで、
（ｂ）後続のループ回路を、前記公平ポートと宛先ポートとの間に順に確立し、そして前記第一ループ回路、前記第二ループ回路および前記後続のループ回路のすべてが、一回のループの占有の間に開始される、
ステップをさらに含んでいる請求項１に記載の方法。
【請求項３】
ループの制御を明け渡すべきときを確認するステップをさらに含んでいる請求項２に記載の方法。
【請求項４】
制御を明け渡すべきときを確認する前記ステップが、最大フレーム伝送期間を確認することを含んでいる請求項３に記載の方法。
【請求項５】
（ａ）前記最大フレーム伝送期間が経過するときを確認し、
（ｂ）現行フレームが、前記最大フレーム伝送期間の最後の時点で伝送されていることを確認し、次いで、
（ｃ）前記後続のループ回路のうち最後の一つを、前記現行フレームが伝送された後に直ちに終了する、
ステップをさらに含んでいる請求項４に記載の方法。
【請求項６】
（ａ）前記最大フレーム伝送期間が経過するときを確認し、
（ｂ）現行フレームが、前記最大フレーム伝送期間の最後の時点で伝送されていることを確認し、次いで、
（ｃ）前記後続のループ回路のうち最後の一つを、前記現行フレームを含むフレームの配列のうちの最後のフレームが伝送された後に直ちに終了する、
ステップをさらに含んでいる請求項４に記載の方法。
【請求項７】
制御を明け渡すべきときを確認する前記ステップが、フレームの前記配列すべての、全宛て先ポートへの伝送が起こったときを確認することを含んでいる請求項３に記載の方法。
【請求項８】
転送操作が確立されたときに、転送状態カウントを増やすステップをさらに含み、制御を明け渡すべきときを確認する前記ステップが、前記転送状態カウントを最大転送カウントと比較することを含む請求項３に記載の方法。
【請求項９】
前記後続のループ回路が、前記公平ポートと先に接続された宛て先ポートとを再び接続するループ回路を含む請求項２に記載の方法。
【請求項１０】
（ａ）フレームの配列のなかの最後のフレームが伝送された後、前記公平ポートと前記宛て先ポートの間の、前記後続のループ回路のうちの最後の一つを終了し、次いで、
（ｂ）別のアービトレートしているポートに、ループを確立させる、
ステップをさらに含んでいる請求項２に記載の方法。
【請求項１１】
フレームの配列を、ループを通じて、複数のポートがアービトレートしているときに確立されるファイバーチャネルアービトレーテッドループアクセス公平ウィンドウ期間内においてアービトレーションに一回だけ勝つように制限される公平ポートによって、同公平ウィンドウの一回のループの占有の間、複数の宛て先ポートに伝送するためのコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体であって；そのコンピュータプログラムは、同公平ポートに、
（ａ）第一宛て先ポートを有する第一ループ回路を確立させ、
（ｂ）前記第一ループ回路を終了させ、次いで、
（ｃ）前記公平ポートがいずれのアービトレートしているポートへも制御を明け渡すことなくかつ再びアービトレートすることなく、同公平ポートと第二宛て先ポートの間の第二ループ回路を開始させる、
命令を含んでいる記録媒体。
【請求項１２】
前記コンピュータプログラムが、
（ａ）前記第二ループ回路を終了させ、次いで、
（ｂ）後続のループ回路を、前記公平ポートと宛先ポートとの間に順に確立させ、前記第一ループ回路、前記第二ループ回路および前記後続のループ回路のすべてが、一回のループの占有の間に開始される、
命令をさらに含んでいる請求項１１に記載の記録媒体。
【請求項１３】
前記コンピュータプログラムが、
前記ループの制御を明け渡すべきときを確認する命令をさらに含んでいる請求項１２に記載の記録媒体。
【請求項１４】
制御を明け渡すべきときを確認する前記命令が、最大フレーム伝送期間が経過したときを確認することを含む請求項１３に記載の記録媒体。
【請求項１５】
前記コンピュータプログラムが、
（ａ）現行のフレームが、前記最大フレーム伝送期間の最後の時点で伝送されていることを確認し、次いで、
（ｂ）前記現行のフレームが伝送された後に直ちに前記後続のループ回路のうちの最後の一つを終了させる、
命令をさらに含んでいる請求項１４に記載の記録媒体。
【請求項１６】
前記コンピュータプログラムが、
（ａ）現行フレームが、前記最大フレーム伝送期間の最後の時点で伝送されていることを確認し、次いで、
（ｂ）前記現行フレームを含むフレームの全配列が伝送された後に直ちに前記後続のループ回路のうちの最後の一つを終了させる、
命令をさらに含んでいる請求項１４に記載の記録媒体。
【請求項１７】
制御を明け渡すべきときを確認することが、フレームの前記配列すべての、全宛て先ポートへの伝送が起こったときを確認することを含んでいる請求項１３に記載の記録媒体。
【請求項１８】
前記コンピュータプログラムは、転送操作が確立される度毎に、転送状態カウントを増やす命令をさらに含み、前記制御を明け渡すべきときを確認する命令が、前記転送状態カウントを最大転送カウントと比較することを含んでいる請求項１３に記載の記録媒体。
【請求項１９】
前記後続のループ回路が、前記公平ポートと先に接続された宛て先ポートとを再び接続するループ回路を含む請求項１２に記載の記録媒体。
【請求項２０】
前記コンピュータプログラムが、
（ａ）前記フレームの配列のなかの最後のフレームが伝送された後、前記公平ポートと前記宛て先ポートの間の、後続のループ回路のうちの最後の一つを終了させ、次いで、
（ｂ）別のアービトレートしているポートに、ループを確立させる、
命令をさらに含んでいる請求項１２に記載の記録媒体。
【発明の詳細な説明】
【０００１】
本発明はファイバーチャネルアービトレーテッドループプロトコル（fibre channel arbitrated loop protocol）に関し、さらに詳しくのべると、単一のソースノードから複数のターゲットノードへパケットを効率的に伝送するシステムと方法に関する。
【０００２】
【従来の技術と発明が解決しようとする課題】
ファイバーチャネルアービトレーテッドループ（ＦＣＡＬ）技法における「ループ」は、すべてのポートによって共用されているリソースである。アービトレーションのプロトコルは、ループに対する制御されたアクセスを、ループに接続された個々のポート（装置のノード）によって提供する。このプロトコルは、一つのポートから送られる情報が異なるポートから送られる情報を妨害しないことを保証する。これは、一つだけのポートがいつでも前記ループを「所有する（own）」ことを保証することによって達成される。
【０００３】
ソースポートが、別の一つのポートを有するループ回路を確立してフレーム伝送を開始し得るようになる前に、そのソースポートは、同ループに対するアクセスについてアービトレートし、そのアービトレーションに勝たなければ（アービトレーションを獲得しなければ）ならない。二つ以上のポートがループへのアクセスを同時に要求する場合、各ポートはアービトレートし、そしてプロトコルが、どのポートがアービトレーションに勝つかを決定する。アービトレーションに勝つことができないポートは、現行のループ回路が終了した後（閉じた後）にアービトレーションに勝つため、アービトレートし続ける。
【０００４】
上記アービトレーションプロトコルは、各ポートのループアドレスに基づいて、同時アービトレーションの要求を解決する。各ループアドレスは、どのポートがアービトレーションに勝つかを決定する、アドレスに関連する固定された優先度をもっている。優先度の高いポートが、所望のときいつでもアービトレートできるならば、優先度の低いポートはループに全くアクセスできないことになる。優先度の高いポートがループへのアクセスを独占するのを防止するため、アービトレーションプロトコルは「アクセス公平（access fairness）」の規則を利用する。これらアクセス公平規則は、複数のポートがアービトレートしている期間中、アクセス公平ウィンドウを確立する。このウィンドウ期間内では、アクセス公平を遵守する各ポートはアービトレーションに一回だけ勝つように制限される。ポートは、一度アービトレーションに勝つと、再びアービトレートできるようになるには、新しいアクセス公平ウィンドウが始まることを待たねばならない。現行のウィンドウ期間中にアービトレートしているすべてのポートがアービトレーションに勝ったとき、そのアクセス公平ウィンドウはリセットされて、待っていたポートは、ループを要求する場合、アービトレーションを開始することができる。アクセス公平を遵守するポートは「公平ポート（フェアポート）」と呼称される。アクセス公平を遵守しないポートは「不公平ポート（アンフェアポート）」と呼称される。公平にふるまうか又は不公平にふるまうかどうかの決定はシステム設計者にまかされており、処理量に応じて、固定するかまたは動的に変更可能にすることができる。
【０００５】
いくつものアプリケーションが、一つ以上のポートを不公平にして残りのポートにアクセスの公平を遵守することを要求することによって利益が得られる。
【０００６】
一つのポートがアービトレーションに勝った後、別のポートを有する「ループ回路」が確立される。そのループ回路は、互いにフレーム伝送とフレーム受け取りを行うため調整された二つのポート間の理論的結合である。ループの他のポートは遊休ポートであってループを監視しているか、またはそれら自体のアクセスを要求しており、そして現行のループ回路が終了するときにアクセスするためアービトレートしている。諸ポートがそれらのフレーム伝送を完了したとき、そのループ回路は終了し、そのループは、他のポートが使用するため利用可能になる。
【０００７】
現在、転送プロトコルを使用して、特定の環境下のループのアクセス公平の効率が改善されている。その転送プロトコルには、「転送操作」を実施するための規則が含まれており、その転送操作によって、ループの現在の所有者（owner）（すなわちアービトレーションに勝った「公平」ポート）は、現在開かれているループ回路を（ループの制御を明け渡す（放棄する）ことなくかつ再びアービトレート（rearbitrate）することなしに）終了し、異なる装置を有する新しいループ回路を確立することができる。これは、例えば装置が、ループ上の複数の宛て先装置（multiple destination device）にファイルをコピーすることを希望する場合に望ましい。したがって、転送操作は、複数の宛て先に対するフレームを有するポートが、それらのフレームを、一回のループの占有期間中(during a single loop ownership）の一連のループ回路で伝送することを許容する。この操作によって、アービトレーションに関連するオーバーヘッドが大きく減少する。というのは、ループの現行の所有者は、ループにアクセスするために再びアービトレートする必要がないからである。
【０００８】
伝送操作は、ループの現行の所有者がアービトレーションに公平に勝ったかまたは不公平に勝ったかにかかわらず発生し得る。したがって、不公平ポートに対する転送操作の規則が、現行の所有者にアービトレート中のポートを無視することを許容することは道理にかなっている。一方、公平ポートは、定義によって、公平にふるまわねばならない。その結果、新しい伝送操作は無視され、勝者であるアービトレートしているポート（アービトレーティングポート）に制御が明け渡される（放棄される）。したがって、公平ポートは、他のポートがアービトレートしている場合、転送プロトコルの改良されたフレーム伝送の効率を利用できない。
【０００９】
本発明の発明者らは、公平ポートを、時々不公平にふるまわせることによって、性能の実質的な改善を実現できることを発見した。
【００１０】
いくつもの公知のＦＣＡＬを実施する場合、ループは、公平または不公平を、選択して選ぶことができる。このような場合、公平かまたは不公平かの決定は、ポートに配置されたファームウェアまたはハードウェアによって制御されて、条件が指示するとき、動的に変えることができる。この操作によって、ループポートは、フレーム伝送活動を動的に評価し、通常の活動の期間中、公平にふるまうことによって応答するが、ピーク活動の期間中、不公平なふるまいに切り換わることができる。しかし、これらの実施態様は、公平ポート（すなわち、アービトレーションに公平に勝ったポート）を、不公平にふるまわせることを示唆していない。むしろ、ポートは、アービトレーティングの前に公平または不公平として指示され、そのループの占有（tenancy）全体に対してはその機能を維持する。
【００１１】
【課題を解決するための手段】
本発明は、ファイバーチャネルアービトレーテッドループが、そのループを占有する一部の期間では不公平にふるまい、そして他の部分の期間では公平にふるまう方法に関する。好ましい実施態様の公平ポートは、最初の宛て先ポートを有する第一ループ回路を確立する。そのループの制御をアートビトレートしているポートに明け渡す（放棄する）前に、同公平ポートは、他の宛て先ポートを有する一つ以上の後続のループ回路を確立する。ループ回路は、その公平ポートがループの制御を明け渡すことなくかつ再びアービトレートすることなしに次々に確立される。これは、（１）公平ポートが情報交換を望んでいるあらゆる宛て先ポートを有するループ回路を、同公平ポートが確立するまで、（２）固定期間が経過するまで；および／または（３）予め定められた最大数のループ回路が確立されるまで続く。
【００１２】
本発明の一つ以上の実施態様の詳細を、添付図面と下記の記述によって説明する。本発明の他の特徴、目的および利点は、下記の説明と図面および特許請求の範囲から明らかになるであろう。
【００１３】
【発明の実施の形態】
（概要）
本発明は、ファイバーチャネルアービトレーテッドループ（ＦＣＡＬ）の公平ポートが、そのループを占有する一部の期間では不公平にふるまい、そして他の部分の期間では公平にふるまう方法に関する。好ましい実施態様で、公平ポートは最初の宛て先ポートを有する第一ループ回路を確立する。そのループの制御をアービトレートしているポートに明け渡す（放棄する）前に、その公平ポートは、転送プロトコルの制御下で、他の宛て先ポートを有する一つ以上の後続のループ回路を確立する。ループ回路は、公平ポートがループの制御を明け渡すことなくかつ再びアービトレートすることなしに次々に確立される。これは、（１）公平ポートが情報の交換を望んでいるあらゆる宛て先ポートを有するループ回路を同公平ポートが確立するまで；（２）固定期間が経過するまで；および／または（３）予め定められた最大数のループ回路が確立されるまで続く。
【００１４】
ポートは一般に、ファイバーチャネルホストアダプタカードである。このカードは、プログラム可能に構成することができて、そのカードに取り付けられた装置にループを制御させるアービトレーションプロトコルプロセスを実行する。またこのカードは、ループの現行の所有者が、二つ以上の装置に伝送する（すなわち一つ以上の転送操作を実行する）ことを許容する転送プロトコルのプロセスも実行する。
【００１５】
アービトレーションプロトコルは、開始ポートがアービトレーションに勝つことを許容し、その結果、開始ポートは、ループの他のポートにまたはループの他のポートからデータを送りおよび受け取ることができる。その開始ポートは、公平または不公平にアービトレーションに勝ち、かつシステム構成と所望の性能パラメータに基づいて静的にまたは動的にアービトレーションに勝つように適応可能なタイプのものであると考えられる。しかし、本発明は、開始ポートが、通常にアクセス公平の規則に基づいてアービトレーションに勝ったときのみ適用可能である。換言すれば、本発明は、開始ポートが「公平ポート」の場合に当てはまる。公平ポートがループの制御を所有した後、その公平ポートに連結された装置（すなわちループの現行の所有者）と第一宛て先装置との間のループ回路接続が確立される。これは通常の方法を使用して行われる。新しい（第二）ループ回路を開始して（開いて）、最初の回路ループを終了する（閉じる）ため、転送プロトコルのプロセスが起動される。
【００１６】
本発明の実施態様によれば、転送プロトコルのプロセスは、他のポートがループの制御を求めているかいないかにかかわらず操作を転送できるように構成されている。したがって、公平ポートは、転送モードで操作される場合、本質的に、「不公平に」ふるまうように構成されている。この実施態様では、不公平性は転送操作に限定され、アービトレーションには限定されない。
【００１７】
開始ポートがすべての装置への伝送を終了すると（さもなければ、転送プロトコルプロセスにより割り込まれると）、転送プロトコルのプロセスは停止し、公平ポートは、元に戻って公平ポートのようにふるまう。これは、アービトレーションプロトコルプロセスによって指示される通常のアクセス公平の規則にしたがってループに対する制御を放棄することを意味する。
【００１８】
図１は、関連するループケーパブルポート（loop-capable port）２１〜２６を通じて共通ループ２０に連結された複数の装置１１〜１６で構成されたＦＣＡＬ１０を示す。先に説明したように、ループケーパブルポート２１〜２６は、ファイバーチャネルホストアダプタカードであってもよく、またはその関連装置のシステム・アーキテクチャの一部分として一体に形成されてもよい。装置１１〜１６は、例えば記憶装置、ワークステーションおよびタイル・サーバ（tile server）であってもよい。ＦＣＡＬの形態は、このような装置を接続して、例えば高性能のネットワークおよび部門毎のクラスタの記憶インタフェースとして働かせる。リングまたはループを構成するポートは、ファイバーチャネル接続を形成する一方向リンク３０で接続されている。これらの接続によって、アービトレーションによる全ポート２１〜２６間の帯域幅への共用の（シェアされた）アクセスが容易になる。各ポートは、各種装置１１〜１６の伝送と受取りの要求を扱う適当なハードウェアとファームウェアを備えている。本願にて言及されるアービトレーションと転送のプロトコルは、ＦＡＣＬ Ｒｅｖ７．０（ＦＣ−ＡＬ−２）ＡＮＳＩ仕様によって一般に定義されている。このＡＮＳＩ仕様は、アクセス公平アービトレーションを提供し、かつ転送操作中にループ回路を確立する一般規則を定義する。
【００１９】
以下に詳細に説明される本発明は、ＡＮＳＩ仕様に定義されているようなＦＣＡＬネットワークプロトコルのフレキシビリティーを利用して、ＦＣＡＬの帯域幅効率を改善する、改良された転送操作の手順を規定する。
【００２０】
図２は、本発明の一実施態様のアービトレーションと転送のプロトコルのプロセスの操作流れ図を示す。
【００２１】
開始ポートから複数のポートへの（一連の）フレームの配列（シーケンス）の転送は、この開始ポートがループ２０を制御する必要があることを認識することで始まる（ステップ１１０）。この時、内部アクセスビットは、ループ回路を作ることによって、およびループケーパブルポート２１〜２６各々のループ活動を監視することによって、一般にセットおよびリセットされる。このアクセスビットは、各ポートに、現行のアクセス公平ウィンドウの期間中、ループの制御に対しアービトレートすることが自由なのかどうかを決定させる。アクセスビットのセッティングは当該技術分野でよく知られており、本発明の部分を形成していない。
【００２２】
アービトレーションに勝ち、そしてそれを公平に行うため、公平な開始ポートは第一にそのアクセスビットをチェックする。このアクセスビットが真であれば（ステップ１２０）、その開始ポートは、アービトレーション〔ＡＲＢ（Ｘ）〕信号をループ上に送り出す（ステップ１３０）。その開始ポートは、それ自体のＡＲＢ（Ｘ）が再び受け取られるまでそれ自体のＡＲＢ（Ｘ）を送り出し続ける（ステップ１４０）。これは、ループの制御を得ようとしているポートが、それ自体のＡＲＢ（Ｘ）信号を同様にブロードキャストしている（撒き散らしている）からである。アクセス公平規則によれば、現在内部アクセスビットが真にセットされているアービトレートしているポートだけが現行のアクセス公平ウィンドウの期間中にアービトレーションに勝つ機会を有する。同様に、アクセスが真である場合および受け取られたＡＲＢ（Ｘ）の優先度が低い場合、開始ポートは、インバウンドＡＲＢ（Ｘ）（inbound ARB(X)）を、ループ２０に接続されてリッスンしているすべてのポートに対するそれ自体のＡＲＢ（Ｘ）リクエストと取り替える（ステップ１２０）。（インバウンドＡＲＢ（Ｘ）の優先度が高い場合、アクセス公平性が、開始ポートに、そのインバウンドＡＲＢ（Ｘ）を、ループ上の次のリスニング中のポートに送る（通過させる）ことを要求する）。このように、開始ポートは、それ自体のＡＲＢ（Ｘ）を再び受け取るまで、アービトレートし続ける（すなわち優先度の低いインバウンドＡＲＢ（Ｘ）を、それ自体のＡＲＢ（Ｘ）と取り替え続ける）。開始ポートはそれ自体のＡＲＢ（Ｘ）リクエストを再び受け取ると、そのフレームを自由に伝送できる（ステップ１５０）。開始ポートはアービトレーションに勝つと、ループ２０の現行の所有者になる。またそのポートは、ループ２０の制御に対して公平にアービトレートされているので「公平ポート」である。
【００２３】
結局、第一ループ回路が、公平ポートと、公平ポートが接続を確立することができかつ公平ポートがデータを伝送もしくは受信することを現在望んでいる任意の宛て先ポートとの間に確立される（ステップ１６０）。好ましい実施態様において、ループ回路が確立されると、公平ポートは、転送状態カウント変数（transfer-state-count variable）を、ゼロに等しい初期カウントにリセットする（ステップ１７０）。この転送状態カウントは、転送操作が公平ポートによって開始される度毎に増大される。また、占有タイマー（occupancy-timer）の変数も、やはりゼロに等しい初期タイマーカウントにリセットされる（ステップ１８０）。この占有タイマーの変数は、公平ポートがどの位の時間ループ２０を制御したのかの経過を見る。情報を受け取るために現在接続されている宛て先ポート用のデータのフレーム配列は、公平ポートからその宛て先ポートへ伝送される（ステップ１９０）。この伝送は、その宛て先ポートに送るべきフレームがもはやなくなるまで、割り込まれることなく続く（ステップ２００）。
【００２４】
公平ポートは、そのうち、この第一ループ回路上での伝送を終了してその回路を終了することができる（ステップ２１０）。追加のフレームを異なる宛て先ポートに送る必要があるとき、すなわち転送操作が必要なとき（ステップ２２０）、現行のループ所有者（すなわち公平ポート）は、転送プロトコルを実施し、同公平ポートに、再びアービトレートすることなしで、ループ２０の制御を保持し続けさせる。公平ポートが、フレームを他のポートに伝送する必要がない場合、転送操作は必要ないので、その公平ポートはループ２０の制御を明け渡す（放棄する）。アクセス公平ウィンドウが依然として開いている場合（すなわち、少なくとも一つの他のポートがそれ自体のＡＲＢ（Ｘ）を伝送している場合）、公平アクセス規則は、このようなポートが、新しい公平アクセスウィンドウの開く前に、ループ２０の制御を獲得することができることを指図する。新しいウィンドウが開いているときは、各ポートによるループ２０の制御は、装置が他の方式で指示する優先度をもっていなければ、やはり、一回だけ、一番先にアクセスしたもの順（first-to-access basis）で許される。
【００２５】
通常のアクセス公平規則のもとで、公平ポートは、その公平ポートがそれとともに新しいループ回路を確立することができる新しく指定された宛て先ポートに、フレームを送ることが許容されるが、これは他のポートがアービトレートしていない場合だけである。このことは、他のポートがループ２０の制御を獲得することを待っているときでも新しいループ回路が確立される場合を除いて、引続き本発明に当てはまる。公平ポートは、他の待っているポートによるループ制御のリクエストを単に無視するだけである。転送プロトコルは、その新しく指定された宛て先ポートを有する第二ループ回路を確立して転送操作を実施する。（ステップ２５０）。
【００２６】
公平ポートは、現行の占有タイマーの変数値を、上記第二ループ回路を確立している間または確立する直前に、最大占有タイマー値と比較する（ステップ２４０）。これら二つの値が等しい場合、公平ポートは、予め定められたフレーム伝送期間を超えているので、ループ２０の制御を放棄しなければならない。前期比較がなされたとき（ステップ２７０）、ループ回路がすでにアクティブである場合、公平ポートは完全なフレームを送るのを待ち（ステップ２８０）、ループ回路を終了し（ステップ２９０）、次いで制御を明け渡す（放棄する）。あるいは、公平ポートは、フレームの全配列が伝送を終了するまで待ってから、現行のアクティブループ回路を終了する。いずれにしろ、公平ポートは、時間の経過に応答して、ループ２０の制御を明け渡す（放棄する）。
【００２７】
公平ポートは、送るべきデータがもはやなくなり、やがてループ回路を終了するまで（ステップ３００，３１０）、データをその第二ループ回路を通じて送り続ける。別の実施態様によれば、公平ポートは、ループに、宛て先ポートを有する追加の／後続のループ回路を（順に）確立し続ける（ステップ３２０，３４０）。（これには、公平ポートが異なる宛て先ポートに接続し次いで最初の宛て先ポートに戻って、追加のフレーム配列を伝送し続ける可能性が含まれている）。転送状態カウント変数を使用して、一回のループの占有において実施される転送操作の数が許される最大転送カウント値にいつ等しくなるのか（等しくなったとき）を確認する（ステップ３３０）。これは期間の経過に類似していて、アービトレーションが最初に「公平に」獲得されたことに関係なく、単一のポートによるループ独占を制御する別の方法を提供する。
【００２８】
このように、本発明は、別の宛て先ポートがループの制御を求めているときでも、転送プロトコル規則を適用して、最初のループ回路が一回のループの占有中において終了した後に、現行の所有者（開始ポート）を、複数の宛て先ポートに接続させる。好ましい実施態様でこれは、公平ポートに配置されたドライバ・ファームウェアで行われかつ搭載プロセッサ（すなわちＣＰＵ）で実行されるか、あるいは、特定用途向け集積回路（ＡＳＩＣ）で実行される。公平ポートのファームウェアは、各種宛て先ポートへの複数の後続のループ回路各々に対する転送操作を処理する。
【００２９】
本発明の実施態様を説明してきた。しかし、本発明の精神と範囲から逸脱することなく各種の変形を行うことができることは分かるであろう。さらに、当業技術者は、上記処理ステップのいくつかは、順序に関係がないので記載されたものとは異なる順序で行うことができることが分かるであろう。したがって、本発明は、具体的に例示された実施態様に限定されず、本願の特許請求の範囲の範囲によってのみ限定されると解すべきである。
【図面の簡単な説明】
【図１】  本発明の代表的なファイバーチャネルアービトレーテッドループの全構造図である。
【図２】  本発明の代表的実施態様のアービトレーションとアクセス公平を示す操作流れ図である。なお、各種図面の同じ参照番号と指示は同じ要素を示す。
【図１】
0003782350.tif 000002
【図２】
0003782350.tif 000003