(57)【特許請求の範囲】
【請求項１】
次の（イ）から（ハ）のステップを含むファイバ・チャネル・アービトレイト・ループに接続されたデバイスのアドレスを決定する方法。
（イ）前記デバイスの不揮発性メモリにアドレスが格納されているか判断し、
（ロ）前記不揮発性メモリがアドレスを有していると判断した場合、ファイバ・チャネル・ループ初期化中にその不揮発性メモリ内のアドレスをハード・アドレスとして使用し、
（ハ）前記不揮発性メモリがアドレスを有していないと判断した場合、ループ初期化ソフト・アドレス・フレームからアドレスを選択し、前記デバイスの前記不揮発性メモリに前記選択したアドレスを格納することを実行する。
【請求項２】
請求項１記載の方法において、ハード・アドレスの競合が検出された場合、ソフト・アドレスされたデバイスとしてアービトレーションを行うステップをさらに含むことを特徴とするをさらに含むファイバ・チャネル・アービトレイト・ループに接続されたデバイスのアドレスを決定する方法。
【請求項３】
請求項１記載の方法において、前記デバイスにより、消去コマンドを検出するステップと前記不揮発性メモリ内のアドレス領域を消去するステップと、をさらに含むファイバ・チャネル・アービトレイト・ループに接続されたデバイスのアドレスを決定する方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は一般にコンピュータシステムに関し、特に、ファイバ・チャネルを用いて相互接続されたコンピュータシステムに関する。
【０００２】
【従来技術】
コンピュータプロセッサおよび周辺デバイスは、内部バスシステムまたはチャネルを介し、スモール・コンピュータ・システム・インタフェース（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ））等のローカルインタフェースを通じて、ネットワーク上を長距離にわたって通信する。建物やキャンパスのための１つの標準的な相互接続システムは、ファイバ・チャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）（ＡＮＳＩ  Ｘ３Ｔ１１）である。コンピュータシステム用の大抵の相互接続システムには、デバイスの合計数に対する制限および相互接続の全体長に対する制限がある。例えば、ＳＣＳＩは、接続されるデバイスが１６に制限されており、最大の全体距離は２６メートルである。これに対して、ファイバ・チャネルは、２２４（約１７，０００，０００）のデバイス（「ノード」）をサポートすることができ、ノード間の距離の制限は１０ｋｍである。ファイバ・チャネルは、ファブリック（ｆａｂｒｉｃ）と呼ばれるマトリクス状の相互接続をサポートする。また、ファイバ・チャネルは、ファイバ・チャネル・アービトレイト・ループ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｒｂｉｔｒａｔｅｄ  Ｌｏｏｐ（ＦＣ−ＡＬ））と呼ばれるループ・トポロジをサポートする。これは、１２７までのノードをサポートし、ノード間の最大距離を１０ｋｍまで可能にする。ファブリックとループとは共存することができる。特に、ファイバ・チャネル・アービトレイト・ループに論理的に接続されているデバイスは、ファブリックに対するポートとなることも可能である。
【０００３】
一般に、コンピュータシステムにおけるデバイスの相互接続では、接続されたデバイス各々が、ある種の一意の電子アドレスまたは識別情報を有する必要がある。相互接続システムによっては、デバイスの識別情報が、スイッチまたはケーブルによって決定されており、電子的に変更することができない（ファイバ・チャネルのハード・アドレッシングと言う）。例えば、パーソナルコンピュータについて、ディスクドライブの識別情報は、ドライブにスイッチを設定することによって決定されるか、またはそのドライブを取付けるために使用されるコネクタによって決定される。また、他の相互接続システムでは、システムの電源が供給される度、またはシステムがリセットされる度に、デバイスが自動的に電子的に構成される（ファイバ・チャネルのソフト・アドレッシングと言う）。自動構成では、デバイスが追加または削除されると、割当てられた識別情報が変更される場合がある。例えば、Ｉｎｔｅｌコンパチブル・パーソナルコンピュータにおいて、自動的に入出力（Ｉ／Ｏ）回路基板を構成するための１つの業界仕様は、プラグ・アンド・プレイＩＳＡ規格と呼ばれる。プラグ・アンド・プレイＩＳＡでは、コンパチブルな基板の各々が、ベンダ識別子および通し番号を含む一意の識別子を有している。システムの初期化中に、ホストコンピュータは、一意の基板識別子に基づいて除去（ｅｌｉｍｉｎａｔｉｏｎ）のプロセスを行うことにより各基板を分離し、その後、各基板に論理的なデバイス番号を割当てる。従来から、ＳＣＳＩは、ハード・アドレッシングを使用していた。業界団体は、ＳＣＳＩコンフィギュアード・オートマジカリー（ＳＣＳＩ  Ｃｏｎｆｉｇｕｒｅｄ  ＡｕｔｏＭａｇｉｃａｌｌｙ（ＳＣＡＭ））と呼ばれるＳＣＳＩ用の自動構成プロトコルを推奨している。しかしながら、ＳＣＡＭは、一般的には採用されておらず、不適合なレガシーデバイスが未だに使用されている。
【０００４】
ハード・アドレッシングは、オペレーティングシステムと周辺デバイスとの間のインタラクションを簡略化するために有効である。例えば、ＳＣＳＩシステム用に設計された現行のオペレーティングシステム・ソフトウェアは、ブートデバイスに対する特定の組込みアドレスを有することができる。あるいは、リムーバブル（取り外し可能）なコンパクトディスク（ＣＤ）上のソフトウェアを最初にブートするコンピュータを考える。ブート処理後、そのコンピュータがハードディスクを探索して、そのハードディスクのループ・アドレスを常設のブートデバイスに割当てることが望ましい場合がある。そのハードディスクがハード・アドレッシングを採用している場合、ブートデバイスのループ・アドレスはそのコンピュータに対して一定であり続けることができる。しかしながら、一般に、ハード・アドレスの競合を人間の介入によって解消する必要がある。すなわち、人間が、競合しているデバイスを見つけ出し、少なくとも１つのアドレスを物理的に変更しなければならない。パーソナルコンピュータ、および最大１６のデバイスが可能なＳＣＳＩシステムでは、競合しているアドレスを見つけることは実際的である。しかしながら、キャンパスにノードが分散しているファイバ・チャネルにおいては、競合しているハード・アドレスを見つけることは実際的ではない。
【０００５】
ファイバ・チャネルのアドレスの割当ては、自動的に決定される。ノードは、いつでも追加または削除することができる。ノードが接続されたとき、デバイスは自動的にログインして、電子マトリクスデバイス（スイッチと呼ばれる）、またはスイッチが無い場合は他のノードと、動作パラメータを交換する。
【０００６】
【発明が解決しようとする課題】
ファイバ・チャネル・アービトレイト・ループは、ハード・アドレッシングとソフト・アドレッシングとの両方をサポートしている。ハード・アドレス間にアドレスの競合がある場合、競合しているデバイスはループに結合することができず、その結果動作不能となるか、あるいは、その競合しているデバイスは、ソフト・アドレッシングに戻って他のアドレスを選択する。従って、ハード・アドレッシングは、実際には、デバイスをインストールする人がそのシステムにインストールする（または既にインストールした）他の１２６までのデバイスのアドレスを知っている状況に限定される。従って、ファイバ・チャネル・アービトレイト・ループ・システムにおいて、ハード・アドレスの競合のリスクを低減するハード・アドレスが必要とされている。
【０００７】
【課題を解決するための手段】
本発明によるデバイスは、初期状態では構成されていない。すなわち、デバイスのファイバ・チャネル・ループ・アドレスは、スイッチ、あるいはオペレータの介入を必要とする他の形態によって設定されていない。本発明によるデバイスが最初にファイバ・チャネル・アービトレイト・ループに接続される時、標準のファイバ・チャネル・ループ初期化プロセス（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｌｏｏｐ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｐｒｏｃｅｓｓ）によって、ループ・アドレス割当てが自動的に決定される。そして、その結果のループ・アドレスは、不揮発性メモリに保存される。本発明の出願書類において、自動構成中に自動的に決定されるがその後は固定されたままであるループ・アドレスを、「確定（ｆｉｒｍ）」アドレスと呼ぶ。初期構成後、デバイスは有効にハード・アドレッシングされ、その後、将来のループ初期化中はハード構成されたデバイスとして応答する。標準のファイバ・チャネル・ループ初期化プロセス中に確定アドレスが選択されているため、アドレスの競合は無いはずである。しかしながら、好ましくは、確定アドレスはオペレータ制御により、あるいはシステム・コマンドにより消去することができる。確定アドレッシングにより、ハード・アドレッシングのアドレスを固定するという利点が得られるが、ファイバ・チャネル用のＡＮＳＩ規格に対する互換性がありながら、実質的に、ハード・アドレスの競合のリスクが低減される。
【０００８】
【発明の実施の形態】
図１は、ファイバ・チャネル・アービトレイト・ループに接続されたデバイスによる自動構成の従来技術の方法のフローチャートを示す。ファイバ・チャネル・アービトレイト・ループとして接続されたデバイスは、論理的に直列に接続されており、可変長データフレームがデバイスからデバイスへ順次渡される。初期化手続きは、ループ初期化プロセス（Ｌｏｏｐ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｐｒｏｃｅｓｓ（ＬＩＰ））またはループ初期化プリミティブ・シーケンス（Ｌｏｏｐ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ｐｒｉｍｉｔｉｖｅ  ｓｅｑｕｅｎｃｅ）と呼ばれる（図１、１００）。電源オンまたはシステム・リセットの後、少なくとも１つのデバイスが、ループ初期化システム・マスタ（Ｌｏｏｐ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｓｙｓｔｅｍ  Ｍａｓｔｅｒ（ＬＩＳＭ））フレームを生成する（ステップ１０２）。なお、複数のデバイスが同時にＬＩＳＭフレームを生成するようにしてもよい。ＬＩＳＭフレームを生成する各デバイスは、その一意のファイバ・チャネルのワールドワイドな（ｗｏｒｌｄ−ｗｉｄｅ）識別番号をフレームの一部として有している。各デバイスは、ＬＩＳＭフレームを受信すると、フレーム内の識別番号をデバイス自身の識別番号と比較する。そして、ＬＩＳＭフレーム内の識別番号より小さい識別番号を有している場合、そのデバイスは、そのフレーム内の識別番号を自身の識別番号に置換え、その変更したＬＩＳＭフレームを次のデバイスに送信する。受信するデバイスがＬＩＳＭフレーム内の識別番号より大きい識別番号を有している場合、そのデバイスは、変更していないＬＩＳＭフレームを次のデバイスに送信する。最終的に、すべてのＬＩＳＭフレームが、そのループに接続されたすべてのデバイスのうちの１つの最小識別番号を含むこととなる。そして、この最小識別番号を有するデバイスがループ・マスタとなる（ステップ１０４）。ステップ１０６において、このループ・マスタデバイスは、ループ初期化ファブリック・アタッチ（Ｌｏｏｐ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｆａｂｒｉｃ  Ａｔｔａｃｈ（ＬＩＦＡ））フレームを生成する。これは、ループデバイスがファイバ・チャネル・ファブリックへのポートでもあるか否かを判断するために使用される。
【０００９】
次に、ループ・マスタデバイスは、アービトレーション（ａｒｂｉｔｒａｔｉｏｎ）・シーケンスを起動する。各デバイスは、このシーケンス中に、１２７のループ・アドレスの１つを選択する。ループ・マスタデバイスは、一続きのフレームを生成する。それらの各々は、１２７ビットの数値を有し、各ビットは１つのループ・アドレスに対応している。ここで、２つのあり得るシナリオがある。ループは、電源オンの後、またはシステム・リセットの後、最初に初期化されているプロセスにある。あるいは、ループは、初期化され実行中であり、１つまたは複数の新たなデバイスがそのループに追加されている。一般に、新たなデバイスが実行中のループに追加される場合、既に構成されているすべてのデバイスは、先に選択した自身のループ・アドレスを保持している。従って、ステップ１０８において、ループ・マスタデバイスはまず、ループ初期化先行アドレス（Ｌｏｏｐ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｐｒｅｖｉｏｕｓ  Ａｄｄｒｅｓｓ（ＬＩＰＡ））フレームを生成し、構成されている各デバイスは、１２７ビットのアドレス・ナンバに、先に選択した自身のループ・アドレスに対応する１ビットをセットする。次に（ステップ１１０）、ループ・マスタデバイスは、ループ初期化ハード・アドレス（Ｌｏｏｐ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｈａｒｄ  Ａｄｄｒｅｓｓ（ＬＩＨＡ））フレームを生成する。新たなデバイスが実行中のループに追加されている場合、ＬＩＨＡフレーム内の１２７ビットのアドレス・ナンバは、ＬＩＰＡフレームが循環した時に予めセットされたビットを有することとなる。ループが最初に初期化されている場合には、ＬＩＨＡフレームには最初まったくビットがセットされていないことになる。ハード・アドレスを有するデバイスがＬＩＨＡフレームを受信した時、そのデバイスは、１２７ビットのアドレス・ナンバにそのハード・アドレスに対応するビットをセットする。適当なビットが既にセットされている場合、そのデバイスは、アービトレーションを終了するか、またはソフト・アドレッシング（可能であれば）に切換えなければならない。最後に、ステップ１１２において、ループ・マスタデバイスは、ループ初期化ソフト・アドレス（Ｌｏｏｐ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｓｏｆｔ  Ａｄｄｒｅｓｓ（ＬＩＳＡ））フレームを生成する。各デバイスは、ＬＩＳＡフレームを受信すると、ＬＩＰＡフレームまたはＬＩＨＡフレーム中にアドレスが選択されなかった場合、いずれかの使用可能なループ・アドレスを選択し、フレーム内の１２７ビットのアドレス・ナンバにその適当なビットをセットし、そのフレームをループの次のデバイスに送信する。
【００１０】
図２は、本発明によるデバイスによって初期化する方法を示すフローチャートである。本発明によるデバイスは、図１に示す標準の初期化プロセスと完全に互換性がある。図１のステップ１００〜１０８に関しては、本発明によるデバイスのループ初期化プロセスとのインタラクションは、他のいかなるファイバ・チャネル・アービトレイト・ループデバイスとも異なっていない。しかしながら、本発明によるデバイスは、図１のステップ１１０および１１２において異なった応答をする。図２のステップ２００は、図１のステップ１１０の前に発生する。図２において、本発明によるデバイスが初めてループ・アドレスに対してアービトレーションを行っている場合（ループが最初に初期化される時か、または新たなデバイスが実行中のループに追加されている時）、デバイス内の不揮発性メモリにはループ・アドレスが存在せず、デバイスは、ＬＩＳＡ（ソフト・アドレス）フレームから使用可能なアドレスを選択する（ステップ２０２）。そして、デバイスは、新たに選択したループ・アドレスを不揮発性メモリに格納する（ステップ２０４）。その後、デバイスは、ループ・アドレスに対してアービトレーションを行っている時に、その格納されたアドレスに対応する１ビットを、ＬＩＨＡ（ハード・アドレス）フレーム内の１２７ビットのアドレス・ナンバにセットする（ステップ２０６）。
【００１１】
ＬＩＳＡ（ソフト・アドレス）フレーム中に確定アドレスが選択されているため、ＬＩＨＡ（ハード・アドレス）フレームの後、将来のハード・アドレスの競合のリスクは殆ど無い。確定アドレスに対して将来のハード・アドレスの競合がある場合、本発明によるデバイスは、標準のファイバ・チャネルデバイスとして応答し、アービトレーションを終了するか、ソフト・アドレス・モードに戻る。あるいは、図２に、好ましくは確定アドレスがオペレータ操作（例えば、フロント・パネルから）によるか、またはシステム・コマンド（ステップ２０８および２１０）によって、電子的に消去することも可能であることを示している。例えば、ハード・アドレスの競合の場合、本発明によるデバイスは、ソフト・アドレスデバイスとしてアービトレーションを行うことが可能であるが、不揮発性メモリに確定アドレスを保持し続ける。確定アドレスが繰返し競合する場合、ループを監視しているコンピュータは、そのデバイスに対し不揮発性メモリ内の確定アドレスを消去するよう命令することも可能である。消去がなされると、そのデバイスは、次にループ・アドレスに対してアービトレーションを行う時、ソフト・アドレッシングされたデバイスとして加わり（ステップ２０２）、新たに選択されたアドレスを不揮発性メモリに格納する（ステップ２０４）。
【００１２】
上記説明から、確定アドレッシングにより以下の利点が得られることが分る。
（１）ハード・アドレッシングの場合のアドレスが固定されているという利点が得られる。
（２）ハード・アドレッシングに関連するアドレスの競合のリスクが実質的に低減される。
（３）アドレスの競合の場合に代替アドレスが与えられる。
（４）ファイバ・チャネルのＡＮＳＩ規格と完全に互換性がある。
【００１３】
本発明の上述した説明は、例示および説明の目的で提示されている。それは、すべてを網羅するように、または本発明を開示された厳密な形態に限定するように企図されてはおらず、上記教示内容に照らして他の変更態様および変形態様も可能である。本実施の形態は、本発明の原理およびその実際的な応用を最もよく説明することにより、他の当業者が、考え得る特定の用途に適するようあらゆる実施の形態およびあらゆる変更態様で本発明を最もよく利用することができるように、選択され説明されている。特許請求の範囲が、従来技術によって限定されるもの以外は、本発明の他の代替的な実施の形態を含むよう解釈されるべく、企図されている。
【００１４】
以上、本発明の実施例について詳述したが、以下、本発明の各実施態様の例を示す。
（実施態様１）ファイバ・チャネル・アービトレイト・ループに接続されたデバイスのアドレスを決定する方法であって、
前記デバイスの不揮発性メモリにアドレスが格納されているか判断するステップ（２００）と前記不揮発性メモリがアドレスを有していると判断した場合、ファイバ・チャネル・ループ初期化中にその不揮発性メモリ内のアドレスをハード・アドレスとして使用するステップ（２０６）と前記不揮発性メモリがアドレスを有していないと判断した場合、以下のステップ、すなわち、
（ａ）ループ初期化ソフト・アドレス・フレームからアドレスを選択するステップ（２０２）と、
（ｂ）前記デバイスの前記不揮発性メモリに前記選択したアドレスを格納するステップ（２０４）とを実行するステップと含む方法。
（実施態様２）ハード・アドレスの競合が検出された場合、ソフト・アドレッシングされたデバイスとしてアービトレーションを行うステップをさらに含む前項（１）記載の方法。
（実施態様３）前記デバイスにより、消去コマンドを検出するステップ（２０８）と、
前記不揮発性メモリ内のアドレス領域を消去するステップ（２１０）と、
をさらに含む前項（１）記載の方法。
【図面の簡単な説明】
【図１】ファイバ・チャネル・アービトレイト・ループを初期化する従来技術の方法のフローチャート。
【図２】ファイバ・チャネル・アービトレイト・ループを初期化する本発明による方法のフローチャート。
【符号の説明】
２００…不揮発性メモリにおけるアドレスの存在を判断するステップ
２０２…ＬＩＳＡフレームからアドレスを選択するステップ
２０４…アドレスを不揮発性メモリに格納するステップ
２０６…ＬＩＨＡフレーム中にアドレスをセットするステップ
２０８…不揮発性メモリ内のアドレス消去コマンドの受信を判断するステップ
２１０…不揮発性メモリを消去するステップ
【図１】
0003587758.tif 000002
【図２】
0003587758.tif 000003