(57)【特許請求の範囲】
【請求項１】
複数台のファブリックを跨るポート間のフレーム転送におけるファイバチャネルファブリックのポート間インターロック方法において、
送信元ポートから発信されたデータのフレームを前記ファイバチャネルファブリックを介して送信先ポートに送信する際に、各ポートへのアクセスを排他制御するロック手段を備え、
論理的ポイントツーポイント接続（論理的なシリアルチャネル）を確立してからフレーム転送を行うClassFフレームを利用して、ポイントツーポイント接続の経路となるポートへのアクセスを排他制御するとともに、前記ClassFフレームを各ポートが自動的に作り出すことを特徴とするポート間インターロック方法。
【請求項２】
複数台のファブリックを跨るポート間のフレーム転送におけるファイバチャネルファブリックのポート間インターロック方法において、
ノードＡからファブリックＡの外部装置接続用ポートがＯＰＮプリミティブを受信すると、自ポートでのロック要求をしてロックする手段と、
前記ロックが成功すると、送信先ポートとの接続メッセージを接続先のファブリックＢに自ファブリック内のファブリック接続用ポートから送信する手段と、
送信先のファブリックＢのファブリック接続用ポートは前記接続メッセージを受信し、同ファブリック内の外部装置接続用ポートが前記接続メッセージを前記ファブリック接続用ポートから渡されると、自ポートをロックする手段と、
を有することを特徴とするポート間インターロック方法。
【請求項３】
前記ファブリックＢの外部装置接続用ポートは、自ポートのロックが成功すると、接続成功メッセージを自ポートのファブリック接続用ポートから接続先のファブリックＡに送信する手段と、
接続先のファブリックＡのファブリック接続用ポートは前記接続成功メッセージを受信し、同ファブリック内の外部装置接続用ポートは前記接続メッセージを前記ファブリック接続用ポートから渡されると、ノードＡに受信レディを送信してフーム受信に備える手段と、
を有することを特徴とする請求項２記載のポート間インターロック方法。
【請求項４】
ノードＡからファブリックＡの外部装置接続用ポートがＯＰＮプリミティブを受信して自ポートでのロック要求をした際に、既に自ポートがロックされている場合、ロック失敗として、ノードＡにＣＬＳを送信してループを閉じる手段を有することを特徴とする請求項２又は３記載のポート間インターロック方法。
【請求項５】
送信先のファブリックＢ内の外部装置接続用ポートが前記接続メッセージを前記ファブリック接続用ポートから渡されて、自ポートをロックする際に、既に自ポートがロックされている場合、ロック失敗として、接続失敗メッセージを自ポートのファブリック接続用ポートから接続先のファブリックＡに送信する手段と、
接続先のファブリックＡのファブリック接続用ポートは前記接続失敗メッセージを受信し、同ファブリック内の外部装置接続用ポートは前記接続メッセージを前記ファブリック接続用ポートから渡されると、ノードＡにＣＬＳを送信してループを閉じる手段と、
を有することを特徴とする請求項２乃至４いずれかに記載のポート間インターロック方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散待ち行列形成アルゴリズムを採用したポートコントローラを含む複数のＦポートをビット・スライス共用メモリ・コントローラを介して共有メモリに接続したファイバチャネルファブリックのポート間インターロック方法に関する。
【０００２】
【従来の技術】
ＡＮＳＩにおいて、コンピュータシステムのＩ／ＯチャネルやＬＡＮ  の通信媒体として標準化されたデータ通信規格であるファイバチャネルは、最大２１４８バイト（ヘッダとその他の制御情報を含む）の可変長フレームを単位としてデータ通信を行い、各種のフロー制御やクラスサービスと呼ばれる呼制御機能を有し、アプリケーションに応じた柔軟な通信システムの構築が可能という特徴がある。
【０００３】
ファイバチャネルは、従来のチャネル及びネットワーク接続技術に取って代わるものであり、多数のクライアント間に高速及び低レイテンシーの接続を提供するために使用される。ファイバチャネルは、ソース装置ノード（ポート）から宛先装置ノード（ポート）への論理的なポイントツーポイント接続（論理的なポート間シリアルチャネル）を確立する。該論理的なポート間シリアルチャネルは、ソース装置（ノード）から宛先装置ノードへとデータを伝送するために使用される。各ノード（ソース及び宛先）は、バッファ（送信バッファまたは受信バッファ）を有しており、このソースノードにおける送信バッファから宛先ノードにおける受信バッファへとデータを移動することにより、データ転送が行われる。当該伝送機構が論理的なポイントツーポイント（ソード間）のものであるため、ファイバチャネルは様々なネットワークプロトコルを扱う必要がない。ファイバチャネルを用いる場合、データはそのデータフォーマットまたは意味に拘らず１つのノードから別のノードへと移動される。
【０００４】
ファイバチャネルは、図７〜９に示すように、ファブリック、ポイントツーポイント、ループの３種類のトポロジーが規格化されている。ファイバチャネルファブリック（ファブリック）は、上記ファイバチャネルのファブリックトポロジーを構成するデータ交換装置である。データ交換の主体となるノードは、ファブリックにスター接続される。
【０００５】
ファイバチャネルのファブリックトポロジーは、１つまたは２つ以上のファイバチャネルスイッチから構築されたスイッチングファブリックを用いて、１つのノードから別のノードへの双方向の接続を提供する。ファブリックトポロジーを用いる場合には、各ファイバチャネルノード（装置）は、それ自体とファブリックとの間の単純なポイントツーポイント接続を管理し実行する。各送信ノード（ポート）が宛先ノード（ポート）のアドレスをフレームヘッダに入れ、これを元にファブリックが接続を確立する。
【０００６】
このため、ファブリックトポロジーで低レイテンシーの接続を提供するためには、ファブリックのスイッチングシステムおよびその方法が重要である。その方法として、特開平１１−８６３６号公報に開示される技術のように、受信ポートが中央メモリにデータフレームを書き込み、送信ポートが該中央メモリから該データフレームを読み出して、該データフレームのスイッチングを行う方法が発明されている。
【０００７】
【発明が解決しようとする課題】
しかしながら上記の方法では、マルチフレームを転送中に他のポートからの割り込みがあった場合、マルチフレームの転送シーケンスを崩す可能性がある。マルチフレームのシーケンスを崩さずにフレームを転送するためには、転送中のポート間接続をロックする必要がある。
【０００８】
ポート間のロックを確立してからデータフレームを転送する場合、（１）データ転送要求、（２）ポート間のロック確立、（３）データ転送、（４）ポート間のロック解除という処理手順を踏む必要がある。この（２）及び（３）の処理はファブリックにより行われるわけであるが、この処理を高速に行えなければ低レイテンシーのデータ転送を実現することが出来ない。従来の手法でもＣＰＵ  に割り込みをあげ（２）及び（３）の処理を行うことにより可能ではあるが、この場合、ファブリック毎にＣＰＵ  があるため、接続されているファブリックのＣＰＵ  間で何らかの方法により通信を行い、ポイントツーポイントのロック確立状態を把握しなくてはならない。このため、処理に非常に時間がかかり、低レイテンシーのデータ転送を実現することが不可能である。
【０００９】
本発明は、上述の如き従来の課題を解決するためになされたもので、その目的は、複数のファブリックを接続した場合でも、ファブリック構造を複雑にすることなく、且つ、マルチフレーム転送のシーケンスを狂わすことなく、高速なマルチフレーム転送を可能とすることができると共に、インターロックの獲得／解除処理を高速に行うことができるポート間インターロック方法を提供することである。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、請求項１の発明の特徴は、複数台のファブリックを跨るポート間のフレーム転送におけるファイバチャネルファブリックのポート間インターロック方法において、送信元ポートから発信されたデータのフレームを前記ファイバチャネルファブリックを介して送信先ポートに送信する際に、各ポートへのアクセスを排他制御するロック手段を備え、論理的ポイントツーポイント接続（論理的なシリアルチャネル）を確立してからフレーム転送を行うClassFフレームを利用して、ポイントツーポイント接続の経路となるポートへのアクセスを排他制御するとともに、前記ClassFフレームを各ポートが自動的に作り出すことにある。
【００１３】
請求項２の発明の特徴は、複数台のファブリックを跨るポート間のフレーム転送におけるファイバチャネルファブリックのポート間インターロック方法において、ノードＡからファブリックＡの外部装置接続用ポートがＯＰＮプリミティブを受信すると、自ポートでのロック要求をしてロックする手段と、前記ロックが成功すると、送信先ポートとの接続メッセージを接続先のファブリックＢに自ファブリック内のファブリック接続用ポートから送信する手段と、送信先のファブリックＢのファブリック接続用ポートは前記接続メッセージを受信し、同ファブリック内の外部装置接続用ポートが前記接続メッセージを前記ファブリック接続用ポートから渡されると、自ポートをロックする手段とを有することにある。
【００１４】
請求項３の発明の前記ファブリックＢの外部装置接続用ポートは、自ポートのロックが成功すると、接続成功メッセージを自ポートのファブリック接続用ポートから接続先のファブリックＡに送信する手段と、接続先のファブリックＡのファブリック接続用ポートは前記接続成功メッセージを受信し、同ファブリック内の外部装置接続用ポートは前記接続メッセージを前記ファブリック接続用ポートから渡されると、ノードＡに受信レディを送信してフーム受信に備える手段とを有する。
【００１５】
請求項４の発明の特徴は、ノードＡからファブリックＡの外部装置接続用ポートがＯＰＮプリミティブを受信して、自ポートでのロック要求をした際に、既に自ポートがロックされている場合、ロック失敗として、ノードＡにＣＬＳを送信してループを閉じる手段を有することにある。
【００１６】
請求項５の発明の特徴は、送信先のファブリックＢ内の外部装置接続用ポートが前記接続メッセージを前記ファブリック接続用ポートから渡されて、自ポートをロックする際に、既に自ポートがロックされている場合、ロック失敗として、接続失敗メッセージを自ポートのファブリック接続用ポートから接続先のファブリックＡに送信する手段と、接続先のファブリックＡのファブリック接続用ポートは前記接続失敗メッセージを受信し、同ファブリック内の外部装置接続用ポートは前記接続メッセージを前記ファブリック接続用ポートから渡されると、ノードＡにＣＬＳを送信してループを閉じる手段とを有することにある。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。図１は本発明のポート間インターロック方法の一実施形態に係るファブリックシステムの構成例を示したブロック図である。ファイバチャネルファブリックＡ（Ｆａｂｒｉｃ−Ａ）１のポート７とファイバチャネルファブリックＢ（Ｆａｂｒｉｃ−Ｂ）２のポート３がファブリックトポロジーで接続している。ファイバチャネルファブリックＡ（Ｆａｂｒｉｃ−Ａ）１のポート０に装置ノードＡ（Ｎｏｄｅ−Ａ）３がループトポロジーで接続しており、ファイバチャネルファブリックＢ（Ｆａｂｒｉｃ−  Ａ  ）２のポート７に装置ノードＢ（Ｎｏｄｅ−Ｂ）４がループトポロジーで接続している。
【００１８】
図２は図１に示したファイバチャネルファブリックＡ（又はＢ）の構成例を示したブロック図である。ファイバチャネルファブリックは分散待ち行列形成アルゴリズムを採用したポートコントローラを含む複数のＦポート２１をビット・スライス共用メモリ・コントローラ（図示しない）を介して共有メモリ部２２に接続した構成を有している。
【００１９】
ファイバチャネルファブリックは、８個のＦポート（Ｐｏｒｔ）２１（０〜７）を持ち、終端ノードまたは他のファブリックを合計８個接続可能である。各ポート２１は、光モジュールＯＥ、シリアル／パラレル変換回路Ｓ／Ｐ、ファイバチャネルＩ／Ｆ制御回路２１１で構成されている。
【００２０】
これら各ポートは共有メモリ部２２と繋がっており、受信ポートが共有メモリにデータフレームを書き込み、送信ポートが該共有メモリから該データフレームを読み出すことにより、該データフレームのスイッチングを行う。このため、共有メモリ部２２は、各ポート２１がデータフレームを読み書きする中央バッファ（単にバッファと称することもある）２２１、バッファ制御回路２２２、中央バッファに格納されたフレームデータのスイッチング動作を制御するキュー制御部２２３で構成されている。尚、使用しているファイバチャネルプロトコルは、ＦＣ−ＰＨ−２  ／  ＦＣ−ＰＨ  −３  ／  ＦＣ−ＡＬ−２  ／  ＦＣ−ＡＬＡ  ／  ＦＣ−ＳＷ  ／  ＦＣ−ＧＳ−２  ／  ＦＣ−ＦＧ  である。
【００２１】
上記したファイバチャネルファブリックはＰＣＩインターフェース（ＰＣＩＩ／Ｆ）２３を介してＰＣＩバス（ＰＣＩ  ＢＵＳ  ）２４に接続され、ＰＣＩバス２４はＰＣＩブリッジ（ＰＣＩ  Ｂｒｉｄｇｅ）２５を介して、ＣＰＵ２６、ＲＡＭ２７、ＦＲＡＭ２８などを接続したバス（ＢＵＳ  ）２９に接続されている。
【００２２】
ファブリック間の接続には複数のパスをサポートする。これにより、パス障害による自動切替機能により高可用性を実現する。
【００２３】
ここで、各種のポートの機能を以下に示しておく。
・Ｆ Ｐｏｒｔ：ＬｏｏｐでないＮ Ｐｏｒｔをもつ外部の装置を接続することのできるポート
・Ｅ Ｐｏｒｔ：Ｆａｂｒｉｃ同士を相互接続するための接続ポート
・ＦＬ Ｐｏｒｔ：Ｐｕｂ１ｉｃ  Ｌｏｏｐ  ＤｅｖｉｃｅのＮＬ Ｐｏｒｔをもつ外部装置を接続できるポート
・ＰＬ Ｐｏｒｔ：Ｐｒｉｖａｔｅ  Ｌｏｏｐ  Ｄｅｖｉｃｅ  のＮＬ Ｐｏｒｔをもつ外部装置を接続できるポート
（別ポートに接続されるデバイスは物理的にはそれぞれ別々のループに存在するが、論理的には同一ループ上にあるかのように動作するため接続されているデバイスはファブリックを意識しない。）
【００２４】
ファブリックは複数ポート２１を装備し、各ポート２１は共有メモリコントローラ（図示しない）を経由して共有メモリ部２２に接続されている。このため、ファブリックは装置内におけるフレームのスイッチングを、全ポー卜共有のメモリを介してフレームでの受け渡しにより行うため、受信ポートと送信ポートは互いのプロトコルを意識しない。また、共有メモリ部２２は、各ポート毎に特定の格納エリアをもつ構成である。
【００２５】
また、ファイバチャネルをサポートする各種デバイスの相互接続を行うためのファイバチャネルスイッチング（Ｆａｂｒｉｃ）装置を有し、ＦＬ Ｐｏｒｔ／Ｆ Ｐｏｒｔ／Ｅ Ｐｏｒｔとしての動作をサポートし、更にＦＬ ＰｏｒｔをサポートしないＰｒｉｖａｔｅ  Ｌｏｏｐ  Ｄｅｖｉｃｅ  のスイッチ接続を可能とする動作モード（ＰＬ Ｐｏｒｔ）を備えている。また、複数のファブリック装置をカスケード／マルチステージに接続することにより、接続可能台数を拡張することが可能である。
【００２６】
次に本実施の形態の動作について説明する。装置ノードＡ（Ｎｏｄｅ−Ａ）３から、装置ノードＢ（Ｎｏｄｅ−Ｂ）４へマルチフレームを転送しようとした場合、ポート間インターロックを使用するモードでは、受信ポートは自ポートのロックと受信した  ＯＰＮ  プリミティブで示される送信先ポートとの接続を確立してからフレームの送信を許可する  Ｒ＿ＲＤＹ  を送信し、フレームを受信する。一度この接続が確立されると、受信ポート、送信ポート共に他ポートからの接続を拒否する。接続を拒否されたポートは  Ｒ＿ＲＤＹ  の代わりに  ＣＬＳを送信し、デバイスのリトライ処理を期待する。
【００２７】
受信側のファブリックのポートのロックをローカルロック、送信側のファブリックのポートのロックをリモートロックとしてポート間インターロック制御の詳細動作を以下に説明する。但し、  Ｆａｂｒｉｃ−Ａ  １は  Ｆａｂｒｉｃ−Ａ  と、  Ｆａｂｒｉｃ−Ｂ  ２は  Ｆａｂｒｉｃ−Ｂ  と、Ｎｏｄｅ−Ａ３はＮｏｄｅ−Ａと、Ｎｏｄｅ−Ｂ４はＮｏｄｅ−Ｂと略記する。
【００２８】
まず、ローカルロック／リモートロック成功のケースを図３を用いて説明する。（  １）  Ｆａｂｒｉｃ−Ａ  のＰｏｒｔ０  は、Ｎｏｄｅ−ＡからのＯＰＮ  プリミティブを受信すると自ポートでのロック要求（Ｌｏｃｋ  Ｒｅｑｕｅｓｔ）を発行する。
（  ２）  この要求により、Ｐｏｒｔ０  は自ポートのロック状態を確認する。
（  ３）  ここで自ポートがロックされていないのでロックし、ロック成功（Ｌｏｃｋ  Ｓｕｃｃｅｅｄｅｄ）とする。《ローカルロック成功》
（  ４）  ローカルロックが成功したので、送信先ポートとの接続要求（Ｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔ）メッセージを作成してバッファ２２１に格納し、Ｐｏｒｔ７  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（  ５）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＡのＰｏｒｔ７  はバッファ２２１に格納されている接続要求（Ｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔ  ）メッセージを取り出し、フレームの形態にして接続先ポート（Ｆａｂｒｉｃ−ＢのＰｏｒｔ３  ）に送信する。
（  ６）  Ｆａｂｒｉｃ−Ｂ  のＰｏｒｔ３  は、接続要求フレームを受け取りバッファ２２１に格納し、Ｐｏｒｔ７  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（  ７）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＢのＰｏｒｔ７  はバッファ２２１に格納されている接続要求（Ｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔ  ）フレームを取り出し、フレームの内容を解読し、自ポートのロック状態を確認する。
（  ８）  ここで自ポートがロックされていないのでロックし、ロック成功（Ｌｏｃｋ  Ｓｕｃｃｅｅｄｅｄ）とする。《リモートロック成功》
（  ９）  リモートロックが成功したので、接続元ポートへ通知する接続成功（Ｃｏｎｎｅｃｔ  Ｓｕｃｃｅｅｄｅｄ）  メッセージをバッファ２２１に格納し、Ｐｏｒｔ３  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（１０）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＢのＰｏｒｔ３  はバッファ２２１に格納されている接続成功（Ｃｏｎｎｅｃｔ  Ｓｕｃｃｅｅｄｅｄ）  メッセージを取り出し、フレームの形態にして接続先ポート（Ｆａｂｒｉｃ−ＡのＰｏｒｔ７  ）に送信する。
（１１）  Ｆａｂｒｉｃ−Ａ  のＰｏｒｔ７  は、接続成功フレームを受け取ってバッファ２２１に格納し、Ｐｏｒｔ０  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（１２）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＡのＰｏｒｔ０  はバッファ２２１に格納されている接続成功（Ｃｏｎｎｅｃｔ  Ｓｕｃｃｅｅｄｅｄ）  フレームを取り出し、フレームの内容を解読する。
（１３）  フレームを解読した結果、接続成功なのでＮｏｄｅ−Ａに対してＲ＿ＲＤＹ  を送信し、フレームの受信に備える。
ここまでが、インターロックを獲得するまでの各ポートの詳細動作である。
【００２９】
次にインターロックを解除するまでの各ポートの詳細動作を図４を用いて説明する。
（１４）  Ｎｏｄｅ−Ａ  からＣＬＳ  を受信したＦａｂｒｉｃ−ＡのＰｏｒｔ０  は、接続開放要求（Ｄｉｓｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔ）メッセージを作成してバッファ２２１に格納し、Ｐｏｒｔ７  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（１５）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＡのＰｏｒｔ７  はバッファ２２１に格納されている接続開放要求（Ｄｉｓｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔ）メッセージを取り出し、フレームの形態にして接続先ポート（Ｆａｂｒｉｃ−ＢのＰｏｒｔ３  ）に送信する。
（１６）  Ｆａｂｒｉｃ−Ｂ  のＰｏｒｔ３  は、接続開放要求フレームを受け取りバッファ２２１に格納し、Ｐｏｒ  ｔ７に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（１７）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＢのＰｏｒｔ７  はバッファ２２１に格納されている接続開放要求（Ｄｉｓｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔ）フレームを取り出し、フレームの内容を解読し、自ポートのロックを解除する。《リモートアンロック》
（１８）  リモートアンロックしたのでＦａｂｒｉｃ−ＢのＰｏｒｔ７  は、Ｎｏｄｅ−Ｂに対してＣＬＳ  を送信する。
（１９）  リモートアンロックしたので、接続元ポートへ通知する接続開放完了通知（Ｄｉｓｃｏｎｎｅｃｔ  Ｃｏｍｐｌｅｔｅｄ）メッセージをバッファ２２１に格納し、Ｐｏｒｔ３  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（２０）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＢのＰｏｒｔ３  はバッファ２２１に格納されている接続開放完了通知（Ｄｉｓｃｏｎｎｅｃｔ  Ｃｏｍｐｌｅｔｅｄ）メッセージを取り出し、フレームの形態にして接続先ポート（Ｆａｂｒｉｃ−ＡのＰｏｒｔ７  ）に送信する。
（２１）  Ｆａｂｒｉｃ−Ａ  のＰｏｒｔ７  は、接続開放完了通知フレームを受け取りバッファ２２１に格納し、Ｐｏｒｔ０  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（２２）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＡのＰｏｒｔ０  はバッファ２２１に格納されている接続開放完了通知（Ｄｉｓｃｏｎｎｅｃｔ  Ｃｏｍｐｌｅｔｅｄ）フレームを取り出し、フレームの内容を解読する。
（２３）  フレームを解読した結果、接続開放完了なので自ポートのロックを解除する。《ローカルアンロック》
（２４）  接続開放完了したので、Ｆａｂｒｉｃ−ＡのＰｏｒｔ０  は、Ｎｏｄｅ−Ａに対してＣＬＳ  を送信しループを閉じる。
【００３０】
ローカルロック失敗のケースについて図５を用いて説明する。
（  １）  Ｆａｂｒｉｃ−Ａ  のＰｏｒｔ０  は、Ｎｏｄｅ−ＡからのＯＰＮ  プリミティブを受信すると自ポートでのロック要求（Ｌｏｃｋ  Ｒｅｑｕｅｓｔ）を発行する。
（  ２）  この要求により、Ｐｏｒｔ０  は自ポートのロック状態を確認する。
（  ３）  ここで自ポートがロックされているので、ロック失敗（Ｌｏｃｋ  Ｆａｉｌｅｄ）  とする。
（  ４）  ローカルロックが失敗したので、Ｆａｂｒｉｃ−ＡのＰｏｒｔ０  は、Ｎｏｄｅ−Ａに対してＣＬＳ  を送信しループを閉じる。
【００３１】
ローカルロック成功／リモートロック失敗のケースについて図６を用いて説明する。
（  １）  Ｆａｂｒｉｃ−Ａ  のＰｏｒｔ０  は、Ｎｏｄｅ−ＡからのＯＰＮ  プリミティブを受信すると自ポートでのロック要求（Ｌｏｃｋ  Ｒｅｑｕｅｓｔ）を発行する。
（  ２）  この要求により、Ｐｏｒｔ０  は自ポートのロック状態を確認する。
（  ３）  ここで自ポートがロックされていないのでロックし、ロック成功（Ｌｏｃｋ  Ｓｕｃｃｅｅｄｅｄ）とする。《ローカルロック成功》
（  ４）  ローカルロックが成功したので、送信先ポートとの接続要求（Ｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔ）メッセージを作成してバッファ２２１に格納し、Ｐｏｒｔ７  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（  ５）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＡのＰｏｒｔ７  はバッファ２２１に格納されている接続要求（Ｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔ  ）メッセージを取り出し、フレームの形態にして接続先ポート（Ｆａｂｒｉｃ−ＢのＰｏｒｔ３  ）に送信する。
（  ６）  Ｆａｂｒｉｃ−Ｂ  のＰｏｒｔ３  は、接続要求フレームを受け取りバッファ２２１に格納し、Ｐｏｒｔ７  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（  ７）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＢのＰｏｒｔ７  はバッファ２２１に格納されている接続要求（Ｃｏｎｎｅｃｔ  Ｒｅｑｕｅｓｔ  ）フレームを取り出し、フレームの内容を解読し、自ポートのロック状態を確認する。
（  ８）  ここで自ポートがロックされているので、ロック失敗（Ｌｏｃｋ  Ｆａｉｌｅｄ）  とする。
（  ９）  リモートロックが失敗したので、接続元ポートへ通知する接続失敗（Ｃｏｎｎｅｃｔ  Ｆａｉｌｅｄ）メッセージをバッファ２２１に格納し、Ｐｏｒｔ３  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（１０）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＢのＰｏｒｔ３  はバッファ２２１に格納されている接続失敗（Ｃｏｎｎｅｃｔ  Ｆａｉｌｅｄ）メッセージを取り出し、フレームの形態にして接続先ポート（Ｆａｂｒｉｃ−ＡのＰｏｒｔ７  ）に送信する。
（１１）  Ｆａｂｒｉｃ−Ａ  のＰｏｒｔ７  は、接続失敗フレームを受け取りバッファ２２１に格納し、Ｐｏｒｔ０  に対してバッファ２２１からデータを読み出すようにキュー制御部２２３に通知する。
（１２）  キュー制御部２２３からの指示により、Ｆａｂｒｉｃ−ＡのＰｏｒｔ０  はバッファ２２１に格納されている接続失敗（Ｃｏｎｎｅｃｔ  Ｆａｉｌｅｄ）フレームを取り出し、フレームの内容を解読する。
（１３）  フレームを解読した結果、接続失敗なのでＮｏｄｅ−Ａに対してＣＬＳ  を送信しループを閉じる。
【００３２】
ここで、上記ファブリックのポートとして、Ｅ  ＰＯＲＴを用いて、２台以上接続した場合、接続台数の拡張や高可用性を実現することができる。その理由は以下に述べる如くである。即ち、ポートを２台以上接続した場合、ファブリックを複数台通過するため、各ファブリック毎ポート制御が必要となる。通常１フレーム毎にポートの制御が必要であるが、同一の送信元から送信先へ大量のデータを転送する場合、マルチフレームとして複数のフレームを１つのポート制御により転送する事が可能である。但し、このマルチフレーム転送中に他のポートからの転送割り込みがあると、マルチフレーム転送は一時中断されてしまい、中断後は再度ポート制御が必要となる。
【００３３】
つまり、マルチフレーム転送中に何らかの要因で転送が中断されてしまうと、１回のポート制御でデータ転送が可能にもかかわらず中断された分だけポート制御回数が増加し、その分がデータ転送の転送時間の増大となってしまう。よって、上記実施の形態では、ファブリック間をクラスＦフレームを利用して、複数ファブリックを跨ったポート間のインターロックを獲得する。
【００３４】
制御用のＣｌａｓｓＦフレームは、各ポート２１が自動的に作り出す。このため、ＣＰＵ  ２６の介在が無いためにポート間のロックを確立する迄の時間が短い。また、各ポート２１の状態を監視する制御バスも必要としないため、冗長なＨＷ構造も必要としない。このため、ファブリックを多段に接続した場合にも、簡単かつ高速な方法でポート２１間の論理的ポイントツーポイント接続を確立し、低レイテンシーのデータ伝送が可能である。これにより、マルチフレーム転送において、そのシーケンスを崩すことなく転送可能である。
【００３５】
【発明の効果】
以上詳細に説明したように、本発明のポート間インターロック方法によれば、複数のファブリックを接続した場合でも、各ポートにロック処理の機構を盛り込んでインターロックを取ることにより、マルチフレーム転送中の割り込みを抑止し、ファブリックを多段につないでもマルチフレーム転送のシーケンスを狂わすことなく、高速なマルチフレーム転送が可能になると共に、インターロックの獲得／解除処理を高速に行うことができる。
【００３６】
ＣｌａｓｓＦフレームを使用することにより、ロック処理専用制御バスを必要としないため、ファブリック構造をシンプルに構成出来る。
【００３７】
３台以上の複数のファブリックを跨ったポート間のインターロックを獲得する場合にも本発明方法により対応可能であり、拡張性も十分にある。
【図面の簡単な説明】
【図１】本発明のポート間インターロック方法の一実施形態に係るファブリックシステム構成例を示したブロック図である。
【図２】図１に示したファイバチャネルファブリックの構成例を示したブロック図である。
【図３】本実施形態におけるローカル／リモートロック成功の場合のポート間インターロックの手順を示したシーケンスである。
【図４】図３に続く、本実施形態におけるローカル／リモートロック成功の場合のポート間インターロックの手順を示したシーケンスである。
【図５】本実施形態におけるローカルロック失敗の場合のポート間インターロックの手順を示したシーケンスである。
【図６】本実施形態におけるローカルロック成功、リモートロック失敗の場合のポート間インターロックの手順を示したシーケンスである。
【図７】ファブリックトポロジーの構成例を示したブロック図である。
【図８】ポイントツーポイントトポロジーの構成例を示したブロック図である。
【図９】ループトポロジーの構成例を示したブロック図である。
【符号の説明】
１  ファイバチャネルファブリックＡ（Ｆａｂｒｉｃ−Ａ）
２  ファイバチャネルファブリックＢ（Ｆａｂｒｉｃ−Ｂ）
３  装置ノードＡ（Ｎｏｄｅ−Ａ）
４  装置ノードＢ（Ｎｏｄｅ−Ｂ）
２１  Ｆポート（ポート）
２２  共有メモリ部
２３  ＰＣＩインタフェース（ＰＣＩ  Ｉ／Ｆ）
２４  ＰＣＩバス（ＰＣＩ  ＢＵＳ）
２５  ＰＣＩブリッジ（ＰＣＩ  Ｂｒｉｄｇｅ）
２６  ＣＰＵ
２７  ＲＡＭ
２８  ＦＲＡＭ
２９  バス（ＢＵＳ）
２２１  バッファ（Ｂｕｆｆｅｒ）
２２２  バッファ制御回路（Ｂｕｆｆｅｒ  Ｃｏｎｔｒｏｌｌｅｒ）
２２３  キュー制御部（Ｑｕｅｕｅ  Ｃｏｎｔｒｏｌｌｅｒ）
【図１】
0003575356.tif 000002
【図２】
0003575356.tif 000003
【図３】
0003575356.tif 000004
【図４】
0003575356.tif 000005
【図５】
0003575356.tif 000006
【図６】
0003575356.tif 000007
【図７】
0003575356.tif 000008
【図８】
0003575356.tif 000009
【図９】
0003575356.tif 000010