(57)【特許請求の範囲】
【請求項１】
（a）それぞれが２つの全二重双方向ポートを有する１つ以上のデバイスと、
（b）前記各デバイスに対してそれぞれのデバイスが有する各ポートの状態を
（b-1）隣接するデバイスと全二重双方向に通信可能な第１の状態（オンライン状態）、あるいは
（b-2）前記ポートの出力部を入力部に結合させることにより隣接するデバイスと通信が行えない第２の状態（循環状態）
に設定するポート状態設定指示を出すことが可能な１つ以上のイニシエータと、
（c）前記イニシエータに接続されるか統合されてイニシエータへのコマンドを発行できるコントロール・ユニット若しくはホストプロセッサとを含み、
（d）前記デバイスの前記各ポートは別のデバイスのポートあるいはイニシエータと接続されることにより任意のトポロジが形成可能なコンピュータ・ネットワークにおいて、
（d-1）前記コントロール・ユニット若しくはホストプロセッサが前記各イニシエータに対して前記ポート状態設定指示を発行することを禁止するステップと、
（d-2）前記コントロール・ユニット若しくはホストプロセッサが前記各イニシエータに対してそれぞれのデバイスの各ポートの所望の状態を記述するデータを送信するステップと、
（d-3）前記コントロール・ユニット若しくはホストプロセッサが前記各イニシエータに対して前記ポート状態設定指示の発行禁止を解除して前記ポート状態設定指示を発行可能とするステップとを
含むコンピュータ・ネットワーク構成方法。
【請求項２】
前記禁止するステップの後に、前記デバイスが前記イニシエータから前記ポートの実際の状態を記述するデータを受信するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記受信するステップの後に、前記ホストプロセッサにおけるユーザ・インタフェースを介してユーザによって定義された所望の構成に基づいて、前記デバイスが前記所望のネットワーク構成を判定するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記コンピュータ・ネットワークが複数のウェブを含む、請求項１に記載の方法。
【請求項５】
前記禁止するステップの前におけるウェブの個数と、前記可能にするステップの後におけるウェブの個数とを変えることが可能な、請求項１に記載の方法。
【請求項６】
前記イニシエータが複数のイニシエータの１つであり、前記可能にするステップが、前記コントロール・ユニット若しくは前記ホストプロセッサによって決定された順番で前記複数のイニシエータを使用可能にすることを含む、請求項１に記載の方法。
【請求項７】
前記所望の状態がユーザによって定義されたものである、請求項１に記載の方法。
【請求項８】
前記コンピュータ・ネットワークが、米国規格協会（ＡＮＳＩ）規格Ｘ３Ｔ１０．１に準拠する、請求項１に記載の方法。
【請求項９】
（a）それぞれが２つの全二重双方向ポートを有する１つ以上のデバイスと、
（b）前記各デバイスに対してそれぞれのデバイスが有する各ポートの状態を
（b-1）隣接するデバイスと全二重双方向に通信可能な第１の状態（オンライン状態）、あるいは
（b-2）前記ポートの出力部を入力部に結合させることにより隣接するデバイスと通信が行えない第２の状態（循環状態）
に設定するポート状態設定指示を出すことが可能な１つ以上のイニシエータと、
（c）前記イニシエータに接続されるか統合されてイニシエータへのコマンドを発行できるコントロール・ユニット若しくはホストプロセッサとを含み、
（d）前記デバイスの前記各ポートは別のデバイスのポートあるいはイニシエータと接続されることにより任意のトポロジが形成可能なコンピュータ・ネットワークにおいて、
（d-1）前記コントロール・ユニット若しくはホストプロセッサが前記各イニシエータに対して前記ポート状態設定指示を発行することを禁止する手段と、
（d-2）前記コントロール・ユニット若しくはホストプロセッサが前記各イニシエータに対してそれぞれのデバイスの各ポートの所望の状態を記述するデータを送信する手段と、
（d-3）前記コントロール・ユニット若しくはホストプロセッサが前記各イニシエータに対して前記ポート状態設定指示の発行禁止を解除して前記ポート状態設定指示を発行可能とする手段とを
含むコンピュータ・ネットワークを構成するためのシステム。
【請求項１０】
前記デバイスが前記イニシエータから前記ポートの実際の状態を記述するデータを受信する手段をさらに含む、請求項９に記載のシステム。
【請求項１１】
前記ホストプロセッサにおけるユーザ・インタフェースを介してユーザによって定義された所望の構成に基づいて、前記所望のネットワーク構成を判定する手段をさらに含む、請求項１０に記載のシステム。
【請求項１２】
前記コンピュータ・ネットワークが複数のウェブを含む、請求項９に記載のシステム。
【請求項１３】
前記コンピュータ・ネットワークがＭ個のウェブを有し、前記Ｍ個のウェブのそれぞれが、それぞれのイニシエータと、それぞれの全二重双方向ポートとを含み、前記システムが、Ｎ個（ここでのＮはＭに等しくない）のウェブを生じるように前記コンピュータ・ネットワークを構成する、請求項９に記載のシステム。
【請求項１４】
前記イニシエータが、複数のイニシエータの１つであり、前記可能にする手段が、前記コントロール・ユニット若しくは前記ホストプロセッサによって決定された順番で、前記複数のイニシエータを使用可能にする、請求項９に記載のシステム。
【請求項１５】
（a）それぞれが２つの全二重双方向ポートを有する１つ以上のデバイスと、
（b）前記各デバイスに対してそれぞれのデバイスが有する各ポートの状態を
（b-1）隣接するデバイスと全二重双方向に通信可能な第１の状態（オンライン状態）、あるいは
（b-2）前記ポートの出力部を入力部に結合させることにより隣接するデバイスと通信が行えない第２の状態（循環状態）
に設定するポート状態設定指示を出すことが可能な１つ以上のイニシエータと、
（c）前記イニシエータに接続されるか統合されてイニシエータへのコマンドを発行できるコントロール・ユニット若しくはホストプロセッサとを含み、
（d）前記デバイスの前記各ポートは別のデバイスのポートあるいはイニシエータと接続されることにより任意のトポロジが形成可能なコンピュータ・ネットワークにおいて、コントロール・ユニット若しくはホストプロセッサを制御するためのプログラムであって、
（d-1）前記コントロール・ユニット若しくはホストプロセッサが前記各イニシエータに対して前記ポート状態設定指示を発行することを禁止するためにコントロール・ユニット若しくはホストプロセッサを制御し、、
（d-2）前記コントロール・ユニット若しくはホストプロセッサが前記各イニシエータに対してそれぞれのデバイスの各ポートの所望の状態を記述するデータを送信するためにコントロール・ユニット若しくはホストプロセッサを制御し、
（d-3）前記コントロール・ユニット若しくはホストプロセッサが前記各イニシエータに対して前記ポート状態設定指示の発行禁止を解除して前記ポート状態設定指示を発行可能とするためにコントロール・ユニット若しくはホストプロセッサを制御する、
プログラム。
【請求項１６】
前記デバイスが前記イニシエータから前記ポートの実際の状態を記述するデータを受信するために前記コントロール・ユニット若しくはホストプロセッサを制御することをさらに含む、請求項１５に記載のプログラム。
【請求項１７】
前記ホストプロセッサにおけるユーザ・インタフェースを介してユーザによって定義された所望の構成に基づいて、前記所望のネットワーク構成を判定するために前記コントロール・ユニット若しくはホストプロセッサを制御することをさらに含む、請求項１６に記載のプログラム。
【請求項１８】
前記コンピュータ・ネットワークが複数のウェブを含む、請求項１５に記載のプログラム。
【請求項１９】
前記コンピュータ・ネットワークがＭ個のウェブを有し、前記Ｍ個のウェブのそれぞれがそれぞれのイニシエータとそれぞれの全二重双方向ポートとを含み、前記コントロール・ユニット若しくはホストプロセッサがＮ個（ここでのＮはＭに等しくない）のウェブを生じるように前記コンピュータ・ネットワークを構成する、請求項１５に記載のプログラム。
【請求項２０】
前記イニシエータが複数のイニシエータの１つであり、前記コントロール・ユニット若しくは前記ホストプロセッサによって決定された順番で前記複数のイニシエータを使用可能にするために前記コントロール・ユニット若しくはホストプロセッサを制御することとを含む、請求項１５に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・ネットワークに関し、より詳細には、構成可能な全二重双方向ポートを有するデバイスを含むコンピュータ・ネットワークを構成する方法およびシステムに関する。
【０００２】
【従来の技術】
シリアル・ストレージ・アーキテクチャ（ＳＳＡ）として編成されたコンピュータ・ネットワークは、全二重双方向シリアル接続によって相互接続されたノードの集合体である。ＳＳＡの規格については、米国規格協会（American National Standard Institute、ＡＮＳＩ）技術委員会（Task Group）Ｘ３Ｔ１０．１によって、文書ＳＳＡ−Ｓ２Ｐ、ＳＳＡ−ＴＬ１、およびＳＳＡ−ＰＨ１で述べられている。この他の参照文献としては、ＳＳＡ工業協会から文書ＳＳＡ−ＩＡ／９５ＰＨおよびＳＳＡ−ＩＡ９５ＳＰが入手できる。
【０００３】
ＳＳＡでは、データは、バケツリレー（bucket brigade）と呼ばれることのある蓄積交換技術を使用して、データ・パケットでノード間を伝送される。ＳＳＡネットワークのセグメントがループに編成されるとき、各ノードは他の２つのノードに結合され、データは、ネットワーク全体を一周して伝わることができる。あるいは、ノードは後続ノードに結合せずに終了するストリング形式、すなわち、ライン形式に結合することができる。しかし、どちらのトポロジーでも、ネットワーク全体のデータ通信は、双方向に進む。
【０００４】
各ノードは、２つのポート、すなわちＰ１とＰ２とを有し、各ポートは、入力部と出力部とを有する。各ポートは、「オンライン」、「循環（wrapped）」、または「オフライン」と定義できる状態によってさらに特徴づけられる。オンライン状態では、ポートは、隣接ノードに位置する次のポートと双方向に通信することができる。循環状態では、出力部を入力部と結合させることによって、ポートはそれ自体と結合される。オフライン状態では、ポートは、別のポートと通信することができず、循環しない。
【０００５】
ＳＳＡネットワークは、しばしばウェブと呼ばれる。１つのウェブを、複数の小さなウェブに分割することも、または、別個のウェブを結合して１つのより大きなウェブを形成することもできる。各ウェブは、少なくとも１つのイニシエータを有する。これは、ウェブのノードにデータおよびコマンドを経路指定するためのプロセッサである。ウェブが１つ以上のイニシエータを含む場合、イニシエータは、最高の優先順位から最低の優先順位までランク付けされる。イニシエータは、この優先順位に基づいて、集合的にイニシエータの１つをマスター・イニシエータに指定する。
【０００６】
マスター・イニシエータは、そのウェブ上のデバイスから報告されるエラー状態を処理する責任を持つ。マスター・イニシエータは、また、そのウェブ上のポートの状態を設定する責任も持つ。
【０００７】
イニシエータは、「ウェブを歩く（walking the web）」として知られるプロセスを用いてネットワークのトポロジーの概要を得る。イニシエータがウェブを歩くとき、イニシエータは、そのイニシエータがその一メンバであるウェブのデバイスのポートを調べ、トポロジー・テーブルにポートの状態を格納する。トポロジー・テーブルは、ノード間の相互接続、すなわち、ポートがリンクされる方法を記述する。これは、通常、ノード識別子やノードの各ポートの状態などの情報を含む。各イニシエータは、独自のトポロジー・テーブルを維持する。
【０００８】
各イニシエータは、また、独自の構成テーブルも維持する。構成テーブルは、トポロジー・テーブルと同様の情報を含み、イニシエータ登録情報とポート・エラー処理パラメータとをさらに含む。
【０００９】
ウェブ上のデバイスに障害が起こると、デバイスは、ＳＳＡの語法で「Ａｓｙｎｃ  Ａｌｅｒｔ」として知られるエラー・メッセージを生成する。ＡｓｙｎｃＡｌｅｒｔがポート通信の問題を示すと、ウェブのマスター・イニシエータは、それに応答して、イニシエータがウェブを歩いて、ウェブ上のポートを調べ、ポートに状態の変更を要求できる自動エラー回復プロセスを実行する。マスター・イニシエータは、また、非マスター・イニシエータに対して「Ｍａｓｔｅｒ  Ａｌｅｒｔ」として知られるメッセージを発行することができる。ＭａｓｔｅｒＡｌｅｒｔに応答して、非マスターは、ウェブを歩き、ウェブ上のポートを調べる。ただし、非マスター・イニシエータは、ポートに状態の変更を要求しない。
【００１０】
マスター・イニシエータは、所与のポートが循環状態になるように要求を発行することができる。所与のポートが正常に動作する場合、所与のポートは、それに応答し、それ自体で循環する。
【００１１】
あるいは、マスター・イニシエータは、所与のポートがオンライン状態になるように要求を発行することができる。所与のポートが隣接ポートとの通信を確立できる場合、所与のポートはオンライン状態になる。所与のポートが隣接ポートとの通信を確立できない場合、所与のポートはオフライン状態になる。この通信確立の失敗が発生する恐れがあるのは、（ａ）所与のポートがストリングの終端にある場合などのように、隣接ポートがない場合、（ｂ）隣接ポートが循環状態の場合、または（ｃ）所与のポートと隣接ポートとの間の通信リンクに問題がある場合である。ポートは、隣接ポートとの通信を確立する能力に応じて、オンライン状態からオフライン状態に自動的に遷移する場合があることに留意されたい。
【００１２】
ネットワーク・トポロジーが変化すると、イニシエータのマスターシップが変化する場合があり、新しいマスター・イニシエータがポートの状態に責任を持つ。しかし、第１のイニシエータは、第２のイニシエータからトポロジー・テーブルを読み込むことができない。したがって、第１のイニシエータが、第１のイニシエータが認識を持たないウェブのマスターになる場合、第１のイニシエータには、そのウェブに位置するポートの状態を保存する機会がない。
【００１３】
ウェブを歩き、ポートに特定の状態を要求するプロセスが、イニシエータによって排他的に処理されることにも留意されたい。ネットワークに所望の構成を課す方法または手段がなく、あるいは提案する方法または手段すらない。
【００１４】
【発明が解決しようとする課題】
したがって、本発明の一目的は、ネットワークのポートを調べ、それが特定の状態になるように要求するイニシエータがあるにも関わらず、コンピュータ・ネットワークに所望の構成を課すことである。
【００１５】
本発明の別の目的は、ネットワークが複数のウェブと複数のイニシエータとを含む場合に、所望の構成を課すことである。
【００１６】
本発明のさらに別の目的は、ネットワークのトポロジーが変化した場合に、所望の構成を維持することである。
【００１７】
【課題を解決するための手段】
本発明は、全二重双方向ポートと、各ポートを調べ、特定の状態になるように要求する能力を有する１つまたは複数のプロセッサとを含む、コンピュータ・ネットワークを構成する方法およびシステムを意図するものである。イニシエータとしても知られるプロセッサは、ネットワークのすべてのポートの所望の状態を記述するデータを含むポート情報マップ（ＰＩＭ）のコピーを維持する。
【００１８】
コントロール・ユニットは、（ａ）ポートに状態を変更するように要求を発行することをすべてのイニシエータに禁止し、（ｂ）所望の構成を記述するＰＩＭをイニシエータに送信し、また、（ｃ）イニシエータが、ポートにそのＰＩＭに従った状態になるように要求を発行できるようにすることによって、所望の構成を課す。
【００１９】
本発明は、コンピュータ・ネットワーク全体に関する所望の構成を定義し、かつ課し、また、複数のイニシエータ間の構成を同期させる。ネットワークのトポロジーが変化するとき、本発明は、ネットワークを小さなネットワークに分割する場合とネットワークを結合する場合とを実現する。本発明はすべてのポートの状態を肯定的に定義するので、マスター・イニシエータがウェブを歩くとき、切り離されたノードは切り離されたままである。
【００２０】
【発明の実施の形態】
本発明は、全二重双方向ポートを有するデバイスと、各ポートを調べ、各ポートに所望の構成を記述するデータに従って特定の状態になるように要求する能力を有するイニシエータとを含むコンピュータ・ネットワークを構成する方法を提供する。各ポートは、オンライン状態、オフライン状態、または循環状態になることができる。
【００２１】
端的に言えば、コントロール・ユニットは、コンピュータ・ネットワーク全体の各ポートに対して所望の状態を定義するポート情報マップ（ＰＩＭ）を構築する。コントロール・ユニットは、イニシエータにＰＩＭを発行する。イニシエータがウェブを構成するとき、イニシエータは、ポートにＰＩＭに従って所望の状態になるように要求する。複数のウェブと複数のイニシエータがある場合、ＰＩＭは、すべてのイニシエータにネットワークのすべてのポートの所望の状態を提供する。したがって、所与のイニシエータは、所与のイニシエータと同じウェブにないポートを含めて、すべてのポートの所望の状態について認識を有する。その結果、イニシエータは、ネットワーク・トポロジーが変化してもポートを管理することができる。
【００２２】
図１に、シリアル・ストレージ・アーキテクチャのループ・トポロジーに編成されたコンピュータ・ネットワーク１の概略図を示す。ネットワークの基本的構成要素は、ユーザ・インタフェース３を有するホスト・プロセッサ５、コントロール・ユニット１０、イニシエータ１５−１７、およびディスク・ドライブ５０−６７が占有する一連のノードである。一般的な場合、典型的な入力／出力デバイスを含めて、コンピュータ・ネットワークに接続可能なあらゆるタイプのデバイスは、ノードを占有することができる。
【００２３】
ユーザ・インタフェース３は、ユーザが、コンピュータ・ネットワーク１にコマンドとデータを送信し、コンピュータ・ネットワーク１からデータを受信できるようにする。ホスト・プロセッサ５は、バス６を介してコントロール・ユニット１０と通信し、コントロール・ユニット１０は、バス１２を介してイニシエータ１５−１７と通信する。イニシエータ１５−１７とディスク・ドライブ５０−６７は、３つのセグメント２０、２１、および２２を備えるネットワークに接続される。イニシエータ１５−１７とディスク・ドライブ５０−６７のそれぞれは、２つの全二重双方向ポート、すなわち、Ｐ１およびＰ２を含み、データはそこを介して交換される。一般に、デバイスは２つのポートに限定する必要はなく、本発明は、ポートをいくつ有するデバイスにも適用することができる。
【００２４】
ホスト・プロセッサ５は、ディスク・ドライブ５０−６７に格納されているデータを使用してプログラムを実行する。ディスク・ドライブ５０などのディスク・ドライブからのデータにアクセスするために、ホスト・プロセッサ５は、コントロール・ユニット１０にコマンドを発行する。したがって、コントロール・ユニット１０は、対応するコマンドをイニシエータ１５に発行し、イニシエータ１５は、そのコマンドをディスク・ドライブ５０に渡す。イニシエータ１５−１７からディスク・ドライブ５０−６７へのコマンドは、ディスク・ドライブ５０−６７からデータを読み込み、またディスク・ドライブ５０−６７にデータを書き込むこと、ならびにディスク・ドライブ５０−６７のそれぞれのポートの状態を設定することを実現する。
【００２５】
コントロール・ユニット１０は、プロセッサ１０ａと、データ・メモリ８のような記憶媒体からプログラムまたはデータと共にロード可能なメモリ１０ｂとを含む。コントロール・ユニット１０がどのイニシエータ１５−１７にコマンドを発行するときも、イニシエータは、イニシエータが成功裏にコマンドを終了したかどうかを示す状況パケットを戻すことによって、コマンドに応答する。本明細書では、コントロール・ユニット１０とイニシエータ１５−１７を別個の構成要素として示しているが、これらは単一のハウジングに統合することも、または、単一のプリント回路ボードに統合することさえ可能である。
【００２６】
イニシエータ１５−１７の１つを、マスター・イニシエータに指定する必要がある。マスターシップの指定は、ウェブを歩くプロセス中に行われる。イニシエータ１５−１７のそれぞれは、イニシエータの優先順位付けもする識別子を有する。第１のイニシエータがウェブを歩いて第２のイニシエータに遭遇すると、第１のイニシエータは、第２のイニシエータの識別子を読み込む。第１のイニシエータの識別子が高い優先順位を示す場合、第１のイニシエータがマスターシップを引き受ける。第２のイニシエータの識別子が高い優先順位を示す場合、第１のイニシエータがマスターシップを譲る。以下の説明では、イニシエータ１５を最高の優先順位を有するものとして、イニシエータが１５、１６、および１７の順に優先順位付けられるものと仮定する。
【００２７】
コンピュータ・ネットワーク１は、より小さいウェブのセグメントに編成することができる。たとえば、デバイス５３と６５がネットワークから切り離されていると仮定する。その結果、（ａ）イニシエータ１５および１６、ならびにデバイス５０−５２および５６−６４を含むストリングとして構成された第１のウェブと、（ｂ）イニシエータ１７ならびにデバイス５４、５５、６６および６７を含むストリングとして構成された第２のウェブとが生じる。イニシエータ１５は、第１のウェブのマスターシップを引き受け、イニシエータ１７は、第２のウェブのマスターシップを引き受ける。
【００２８】
ポート情報マップのサンプルを以下の表１に示す。もう一度、図１を参照し、デバイス５３および６５が切り離されていると仮定する。表１では、デバイス５３−Ｐ１および−Ｐ２は両方とも「（未定義）」と示され、デバイス５２−Ｐ１は「循環」と示され、デバイス５４−Ｐ２は「循環」と示されることに留意されたい。同様に、デバイス６５−Ｐ１および−Ｐ２は両方とも「（未定義）」と示され、デバイス６４−Ｐ２は「循環」と示され、デバイス６６−Ｐ１は「循環」と示される。
【表１】
0003714603.tif 000002
【００２９】
新しい構成プロセス中、コントロール・ユニット１０は、イニシエータ１５−１７にコマンドを発行する。そのコマンドは、フリーズ・コマンド、構成クエリ・コマンド、ポート情報マップ実行（ＸＰＩＭ）コマンド、アンフリーズ・コマンド、および構成確認コマンドを含む。
【００３０】
フリーズ・コマンドは、Ａｓｙｎｃ  Ａｌｅｒｔに応答して自動エラー回復プロセスを実行することを、すべてのイニシエータに禁止する。すなわち、イニシエータは、Ａｓｙｎｃ  Ａｌｅｒｔに応答するときに、ポートの状態を変更する要求を発行することを禁止される。通常の操作中、イニシエータは、ＡｓｙｎｃＡｌｅｒｔに応答して、１つまたは複数のポートの状態を警告する自動エラー回復プロセスを実行することができることに留意されたい。
【００３１】
構成クエリ・コマンドは、イニシエータに、構成テーブルからコントロール・ユニットにデータを送信させる。ネットワークのイニシエータのそれぞれから構成テーブルを獲得した後、コントロール・ユニットは、ネットワーク全体に対して、現行の実際の構成を考慮し、所望の構成を開発することができる。
【００３２】
コントロール・ユニットは、また、ポート情報マップ実行（ＸＰＩＭ）コマンドを発行するときに、ＰＩＭをイニシエータに送信する。ＸＰＩＭは、イニシエータにウェブを歩かせる。イニシエータがマスター・イニシエータの場合、そのイニシエータは、そのウェブ内のポートがそのＰＩＭに従ってある状態になるように要求を発行できるようにされる。
【００３３】
アンフリーズ・コマンドは、イニシエータが、Ａｓｙｎｃ  Ａｌｅｒｔに応答して、自動エラー回復プロセスを実行できるようにする。すなわち、イニシエータは、Ａｓｙｎｃ  Ａｌｅｒｔに応答するときに、ポートの状態を変更する要求を発行することを禁止されない。
【００３４】
構成確認コマンドは、イニシエータにウェブを歩かせ、実際のポート設定とＰＩＭのデータとを比較させる。イニシエータは、この比較の結果をコントロール・ユニットに報告する。
【００３５】
図２および図３に、本発明に従ってコンピュータ・ネットワークに所望の構成を課す方法の流れ図を示す。図２と図３とは、一点鎖線において続いていることに注意されたい。この方法は、単一イニシエータを有するネットワーク、ならびに、複数のウェブと複数のイニシエータとを有するネットワークに対して適用可能である。
【００３６】
ステップ２０５では、コントロール・ユニット（ＣＵ）は、既存のドライブ・コマンドの完了を許可し、また、新しいコマンドを発行しないことによって、すべてのドライブ・コマンドを延期する。より具体的には、コントロール・ユニットは、コントロール・ユニットが前に発行したすべてのコマンドの完了に各イニシエータが応答するのを待つ。方法は、次いでステップ２１０に進む。
【００３７】
ステップ２１０では、コントロール・ユニットは、構成フリーズ・コマンドをすべてのイニシエータに発行する。すべてのイニシエータは、Ａｓｙｎｃ  Ａｌｅｒｔに応答するとき、ポートの状態を変更する要求を発行することを禁止される。このステップにより、Ａｓｙｎｃ  Ａｌｅｒｔの発生が、このプロセスに干渉しないことが保証される。方法は、次いでステップ２１５に進む。
【００３８】
ステップ２１５では、コントロール・ユニットは、新しいネットワーク構成の確立を試みるかどうかを判定する。この判定には、所定回数の試行後に、コントロール・ユニットがすべてのイニシエータと成功裏に通信を確立することができない場合が考慮されている。コントロール・ユニットが、新しいネットワーク構成の確立を試みないと判定すると、方法は、次いでステップ２７５に分岐し、終了する。コントロール・ユニットが、新しいネットワーク構成の確立を試みると判定すると、方法は、次いでステップ２２０に進む。
【００３９】
ステップ２２０では、コントロール・ユニットは、各イニシエータに構成クエリ・コマンドを発行する。構成クエリ・コマンドに応答して、イニシエータは、データをその構成テーブルからコントロール・ユニットに送信する。この方法は、次いでステップ２２５に進む。
【００４０】
ステップ２２５では、ステップ２２０でイニシエータのそれぞれが報告する実際の構成に基づいて、コントロール・ユニットはネットワークに対して所望の構成を確立する。コントロール・ユニットは、ネットワーク全体に対する所望の構成を記述するポート情報マップ（ＰＩＭ）を構築する。ＰＩＭは、ネットワークのすべてのポートに関する所望の設定を含む。方法は、次いでステップ２３０に進む。
【００４１】
ステップ２２０および２２５の別法として、コンピュータ・ネットワーク１のユーザは、ユーザ・インタフェース３を介して所望の構成を定義することができる。したがって、ＰＩＭはユーザからの入力に基づく。
【００４２】
ステップ２３０では、コントロール・ユニットは、ネットワークのイニシエータのそれぞれにポート情報マップ実行（ＸＰＩＭ）コマンドを発行する。コントロール・ユニットは、決定された順番で各イニシエータにコマンドを送信する。この順番は、最高ランキングのイニシエータ（ランク０）から開始して、最低ランキングのイニシエータ（ランクｎ）に、優先順位の順で進む。コントロール・ユニットは、また、各ＸＰＩＭコマンドを用いて、ポートの所望の状態を記述するＰＩＭをイニシエータに送信する。ＸＰＩＭコマンドの受信に応答して、イニシエータはウェブを歩き、トポロジー・テーブルと構成テーブルとを構築する。イニシエータがマスター・イニシエータの場合、イニシエータは、ＰＩＭに従ってポート状態を設定する要求を発行することもできる。イニシエータが実行するＸＰＩＭプロセスを図４に示し、以下で詳述する。方法は、次いでステップ２３５に進む。
【００４３】
ネットワークの各ポートに関する所望の状態を肯定的に定義することによって、ネットワークを、より小さいウェブに分割し、あるいは同様に、ウェブを、より大きなネットワークに融合することができる。より一般的には、ネットワークがＭ個のウェブを有し、Ｍ個のウェブのそれぞれがそれぞれにイニシエータと全二重双方向ポートとを含む場合に、この方法を適用することができる。イニシエータがポートを所望の状態に設定する要求を発行した後、コンピュータ・ネットワークは、ＮがＭに等しくない場合、Ｎ個のウェブを有することができる。
【００４４】
ステップ２３５では、ステップ２３０で発行されたＸＰＩＭコマンドをすべてのイニシエータが成功裏に実行したかどうかをコントロール・ユニットが判定する。イニシエータは、イニシエータが成功裏にそのコマンドを完了したかどうかを示す状況パケットを戻すことによって、コントロール・ユニットからのコマンドに応答する。すべてのイニシエータがそれぞれのＸＰＩＭコマンドを成功裏に実行した場合、方法はステップ２５０に進む。すべてのイニシエータがそれぞれのＸＰＩＭコマンドを成功裏に実行しなかった場合、方法はステップ２４０に進む。（図３への続きに注意されたい。）
【００４５】
ステップ２４０では、コントロール・ユニットは、別のＸＰＩＭコマンドをイニシエータのそれぞれに発行する。前述の通り、これは、最高ランキングのイニシエータから開始して、最低ランキングのイニシエータに、優先順位の順で、順番に行われる。各イニシエータは、図４に示したプロセスを実行する。方法は、次いでステップ２４５に進む。
【００４６】
ステップ２４５では、コントロール・ユニットは、ステップ２４０で発行されたＸＰＩＭコマンドをすべてのイニシエータが成功裏に実行したかどうかを判定する。すべてのイニシエータがそれぞれのＸＰＩＭコマンドを成功裏に実行した場合、方法は、次いでステップ２５０に進む。すべてのイニシエータがそれぞれのＸＰＩＭコマンドを成功裏に実行しなかった場合、方法は、次いでステップ２１５にループして戻る。
【００４７】
ステップ２５０では、コントロール・ユニットは、すべてのイニシエータにアンフリーズ・コマンドを発行する。マスター・イニシエータは、したがって、Ａｓｙｎｃ  Ａｌｅｒｔに応答するときに、ポート状態の変更を要求することを許可される。方法は、次いでステップ２５５に進む。
【００４８】
ステップ２５５では、コントロール・ユニットは、構成確認コマンドをイニシエータのそれぞれに発行する。これに応答して、各イニシエータは、実際の構成をＰＩＭのデータと比較する。イニシエータは、その比較の結果をコントロール・ユニットに報告する。方法は、次いでステップ２６０に進む。
【００４９】
ステップ２６０では、コントロール・ユニットは、ネットワークの現行の構成がネットワークの所望の構成と一致するかどうかを判定する。より具体的には、コントロール・ユニットは、ステップ２５５でイニシエータから送信された報告を評価する。すべてのイニシエータからの報告が、現行の構成がＰＩＭと一致することを示す場合、方法は、次いでステップ２６５に進む。すべてのイニシエータからの報告が、現行の構成がＰＩＭに一致しないことを示す場合、方法は、次いでステップ２１０にループして戻る。
【００５０】
ステップ２６５では、ディスク・ドライブ・コマンドをイニシエータに発行することによって、コントロール・ユニットは、正常動作を回復する。方法は、次いでステップ２７０に進む。
【００５１】
ステップ２７０では、方法は、ネットワークの成功裏の再構成で終了する。
【００５２】
ステップ２７５では、方法は、失敗で終了する。コントロール・ユニットは、所望のネットワーク構成を成功裏に確立しなかった。
【００５３】
図４に、コントロール・ユニットからのポート情報マップ実行（ＸＰＩＭ）コマンドの受信に応答して、イニシエータが実行する方法の流れ図を示す。方法は、ステップ３１０から始まる。
【００５４】
ステップ３１０では、イニシエータは、ウェブを歩き、トポロジー・テーブルを構築する。このプロセスを、図５に示し、以下で詳述する。方法は、次いでステップ３１５に進む。
【００５５】
ステップ３１５では、方法は、イニシエータがマスター・イニシエータかどうかを判断する。これは、ステップ３１０で構築された現行トポロジー・テーブルを調べることによって達成される。イニシエータがマスターの場合、方法は、次いでステップ３２０に進む。イニシエータがマスターでない場合、方法は、次いでステップ３３５に分岐する。
【００５６】
ステップ３２０では、イニシエータは、そのイニシエータのウェブ内の各ポートがオンライン状態になるように要求を発行する。このステップは、イニシエータが、そのウェブ内のすべてのポートと通信できることを保証する。すなわち、通常ならば、中間ノードで予め循環ポートであるため、アクセス不能であるかもしれないポートに、イニシエータは肯定的にアクセスすることができる。方法は、次いでステップ３２５に進む。
【００５７】
ステップ３２５では、イニシエータは、そのイニシエータのウェブ内の各ポートに対して、ポートがＰＩＭのデータに従って所望の状態になるように要求を発行する。方法は、次いでステップ３３０に進む。
【００５８】
ステップ３３０では、イニシエータはウェブを歩き、図５に示すようなトポロジー・テーブルを構築する。方法は、次いでステップ３３５に進む。
【００５９】
ステップ３３５では、イニシエータは構成テーブルを構築する。構成テーブルは、まず、トポロジー・テーブルに含まれる情報に基づいて構築される。このトポロジー情報に、イニシエータは、ネットワークの動作およびエラー処理に重要な情報を追加する。追加される情報には、以下の情報が含まれる。
（ａ）完全なウェブ・トポロジーに由来する、より詳細なポート設定情報、
（ｂ）エラー処理中にすべてのポートによって使用され、マスター・イニシエータに関連付けられる、Ａｓｙｎｃ  Ａｌｅｒｔアドレス情報、および
（ｃ）イニシエータとドライブの間でデータにアクセスするために使用される識別およびアクセス情報
方法は、次いでステップ３４０に進む。
【００６０】
ステップ３４０では、方法は、イニシエータがマスター・イニシエータかどうかを判断する。これは、ステップ３１０または３３０で構築された最新のトポロジー・テーブルを調べることによって達成される。ステップ３２０および３２５の結果、前のマスター・イニシエータがウェブのマスターシップを失っている場合があることに留意されたい。イニシエータがマスターの場合、方法は、次いでステップ３４５に進む。イニシエータがマスターでない場合、方法は、次いでステップ３５０に分岐する。
【００６１】
ステップ３４５では、イニシエータのウェブの各ポートに対して、イニシエータは、ポートが構成テーブルに従って最終状態になるように要求を発行する。ポートの最終状態は、ＰＩＭのデータに従った設定だけでなく、ネットワークの動作およびエラー処理に重要な設定も含む。方法は、次いでステップ３５０に進む。
【００６２】
ステップ３５０では、イニシエータは、イニシエータの構成テーブルに示されるようなウェブの実際の構成とＰＩＭを比較する。構成が一致する場合、方法は、次いでステップ３５５に進む。構成が一致しない場合、方法は、次いでステップ３６０に進む。
【００６３】
ステップ３５５では、ＸＰＩＭは成功と宣言される。方法は、次いでステップ３６５に進む。
【００６４】
ステップ３６０では、ＸＰＩＭは不成功と宣言される。方法は、次いでステップ３６５に進む。
【００６５】
ステップ３６５で、ＸＰＩＭ方法は終了する。
【００６６】
図５に、イニシエータがウェブを歩き、トポロジー・テーブルを構築する方法の流れ図を示す。当初、トポロジー・テーブルは空である。方法は、ステップ４１０から開始される。
【００６７】
ステップ４１０では、方法は、イニシエータが位置するウェブのすべてのノードの調査をイニシエータが完了したかどうかを判断する。（ａ）イニシエータが所与のノードに２回目に遭遇する場合、したがって、イニシエータがループ全体の調査を完了したことを示す場合、または（ｂ）イニシエータのすべてのポートを介してアクセス可能なすべてのノードの調査を完了した場合、すべてのノードは調査されている。イニシエータがすべてのノードの調査を完了した場合、方法は、次いでステップ４３０に分岐する。イニシエータがすべてのノードの調査を完了していない場合、方法は、次いでステップ４１５に進む。
【００６８】
ステップ４１５では、イニシエータは、次のノードとの通信の確立を試みる。方法は、次いでステップ４２０に進む。
【００６９】
ステップ４２０では、方法は、ステップ４１５で通信確立の試みが成功したかどうかを判断する。たとえば、イニシエータがストリングの終端まですでに進んでいる場合、次にノードはなく、試みられた通信は成功しない。通信確立の試みが成功でない場合、方法は、次いでステップ４１０にループして戻る。通信確立の試みが成功した場合、方法は、次いでステップ４２５に進む。
【００７０】
ステップ４２５では、イニシエータは、そのトポロジー・テーブルを更新する。すなわち、イニシエータは、ノードを表わすための項目をトポロジー・テーブルに追加する。方法は、次いでステップ４１０にループして戻る。
【００７１】
ステップ４３０では、ウェブを歩く方法は終了する。
【００７２】
コンピュータ・ネットワークを構成するための本発明は、また、次の状況にも適用することができる：パワーオン・シーケンス中にＳＳＡウェブを構成すること、ドライブ置換中またはイニシエータ置換中にＳＳＡウェブを構成すること、ドライブ容量のアップグレード中にＳＳＡウェブを構成すること、ドライブを分離すること、およびＳＳＡイニシエータを分離すること。ただし、本発明は、ＳＳＡに限定されるものではなく、オンライン状態または循環状態に設定可能な全二重双方向ポートを持つデバイスを有するあらゆるコンピュータ・ネットワークに使用することができる。
【００７３】
前述の説明は、本発明の例示を行ったにすぎないことを理解されたい。当業者は、本発明から逸脱することなく、様々な代替方法および変更形態が考案可能である。さらに、本発明の実行に必要な手順は、すでにコントロール・ユニットおよびイニシエータのメモリにロードされていると示されているが、コントロール・ユニットおよびイニシエータに後でローディングするために、図１のデータ・メモリ８のような記憶媒体上に構成してもよい。したがって、本発明は、頭書の請求項の範囲内に入るすべての代替方法、変更形態、および変形形態を含むことを意図する。
【００７４】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００７５】
ここに出願当初に開示されていた事項は、中間処理の段階において削除した。
【図面の簡単な説明】
【図１】シリアル・ストレージ・アーキテクチャのループ・トポロジーに編成されるコンピュータ・ネットワークの概略図である。
【図２】本発明によるコンピュータ・ネットワークに所望の構成を課す方法の流れ図（図３へと続く）である。
【図３】本発明によるコンピュータ・ネットワークに所望の構成を課す方法の流れ図（図２から続く）である。
【図４】ポートに対する所望の状態を記述するデータに従って、イニシエータが、ネットワークのポートの状態を設定する方法の流れ図である。
【図５】イニシエータが、ウェブを歩き、トポロジー・テーブルを構築する方法の流れ図である。
【符号の説明】
１  コンピュータ・ネットワーク
ＳＳＡ  シリアル・ストレージ・アーキテクチャ
Ｐ１  ポート
Ｐ２  ポート
ＰＩＭ  ポート情報マップ
３  ユーザ・インタフェース
５  ホスト・プロセッサ
１０  コントロール・ユニット
１５  イニシエータ
１６  イニシエータ
１７  イニシエータ
５０  ディスク・ドライブ
５１  ディスク・ドライブ
５２  ディスク・ドライブ
５３  ディスク・ドライブ
５４  ディスク・ドライブ
５５  ディスク・ドライブ
５６  ディスク・ドライブ
５７  ディスク・ドライブ
５８  ディスク・ドライブ
５９  ディスク・ドライブ
６０  ディスク・ドライブ
６１  ディスク・ドライブ
６２  ディスク・ドライブ
６３  ディスク・ドライブ
６４  ディスク・ドライブ
６５  ディスク・ドライブ
６６  ディスク・ドライブ
６７  ディスク・ドライブ
６  バス
１２  バス
【図１】
0003714603.tif 000003
【図２】
0003714603.tif 000004
【図３】
0003714603.tif 000005
【図４】
0003714603.tif 000006
【図５】
0003714603.tif 000007