(57)【特許請求の範囲】
【請求項１】
ＳＡＳドメイン内のノードにおいて、シリアル接続スモールコンピュータシステムインターフェース（ＳＡＳ）ディスカバリを実行する方法であって、
前記ＳＡＳドメインの前記ノードから第１のシリアルマネジメントプロトコル（ＳＭＰ）ディスカバリ要求を前記ＳＡＳドメインの複数のエキスパンダを構成する各エキスパンダに送信するステップと、
前記ノードによって、前記第１のＳＭＰディスカバリ要求に応答するＳＭＰディスカバリ応答を前記ＳＡＳドメインの前記複数のエキスパンダを構成する各エキスパンダから受信するステップと、
受信した各ＳＭＰディスカバリ応答に含まれるブロードキャスト（チェンジ）レシーブド（ＢＣＲ）カウントと、前記ＳＭＰディスカバリ要求の送信前に前記ノードによって記録及び格納された格納ＢＣＲカウントを比較する比較ステップと、
受信した前記ＳＭＰディスカバリ応答それぞれに含まれるＢＣＲカウントに基づき、前記格納ＢＣＲカウントを更新するステップと、
前記比較ステップの比較結果に基づき、前記格納ＢＣＲカウントと一致した前記ＢＣＲカウントに対応する第１のエキスパンダであって、前記複数のエキスパンダに含まれる第１のエキスパンダをバイパスするステップと
を備えることを特徴とする方法。
【請求項２】
請求項１に記載のＳＡＳディスカバリを実行する方法において、該方法はさらに、
前記比較結果に基づき、前記ノードから第２のＳＭＰディスカバリ要求を、前記複数のエキスパンダに含まれる第２のエキスパンダに、該第２のエキスパンダが含まれる経路を
介して送信するステップであって、前記第２のエキスパンダは、前記格納ＢＣＲカウントと一致しないＢＣＲカウントに対応するエキスパンダである、ステップ
を備えることを特徴とする方法。
【請求項３】
請求項１に記載のＳＡＳディスカバリを実行する方法において、前記ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであることを特徴とする方法。
【請求項４】
請求項１に記載のＳＡＳディスカバリを実行する方法において、受信した前記ＳＭＰディスカバリ応答に含まれる前記ＢＣＲカウントは、前記エキスパンダの各物理層によって受信されるブロードキャスト（チェンジ）プリミティブの数を示していることを特徴とする方法。
【請求項５】
請求項１に記載のＳＡＳディスカバリを実行する方法において、各エキスパンダは、前記ＳＡＳドメインのリモートデバイスからブロードキャスト（チェンジ）プリミティブを受信した際に、そのＢＣＲカウントを増加させるよう構成されていることを特徴とする方法。
【請求項６】
コンピュータ実行可能な命令を有する、コンピュータ可読媒体が実行する、ＳＡＳドメイン内でのシリアル接続スモールコンピュータシステムインターフェース（ＳＡＳ）ディスカバリの方法を実行するためのコンピュータ実行可能な命令を記憶したコンピュータ読取読可能な記憶媒体であって、前記方法は、請求項１〜５いずれかに記載の方法であることを特徴とするコンピュータ読取可能な記憶媒体。
【請求項７】
ＳＡＳドメインのシリアル接続スモールコンピュータシステムインターフェース（ＳＡＳ）ディスカバリ開始ノードであって、
前記ノードを前記ＳＡＳドメインの複数のエキスパンダに、通信可能に接続するためのインターフェースと、
複数のブロードキャスト（チェンジ）レシーブド（ＢＣＲ）カウントを格納するよう構成されるメモリと、
マイクロプロセッサであって、請求項１〜５いずれかに記載の方法を前記ＳＡＳディスカバリ開始ノードに実行させるよう構成されているマイクロプロセッサと
を備えていることを特徴とするＳＡＳディスカバリ開始ノード。
【請求項８】
シリアル接続小型コンピュータシステムインターフェース（ＳＡＳ）エキスパンダであって、
複数のＳＡＳ物理層を含み、ＳＡＳドメインの複数のＳＡＳデバイスに前記ＳＡＳエキスパンダを接続するように構成されるインターフェースと、
前記ＳＡＳエキスパンダの複数のブロードキャスト（チェンジ）レシーブド（ＢＣＲ）カウンタを格納するように構成され、また、前記複数のＢＣＲカウンタを構成する各ＢＣＲカウンタは、前記複数のＳＡＳ物理層に含まれる１つのＳＡＳ物理層に対応し、その対応するＳＡＳ物理層が受信するブロードキャスト（チェンジ）プリミティブの数を示す、メモリと、
前記メモリ及び前記インターフェースに接続されたマイクロプロセッサであって、請求項１〜５いずれかに記載の方法を前記ＳＡＳエキスパンダに実行させるよう構成されているマイクロプロセッサと
を含んでいることを特徴とするＳＡＳエキスパンダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ格納システムを用いたデータ管理の分野に関するものであり、より詳細には、決定論的シリアル接続型スモールコンピュータシステムインターフェース（ＳＡＳ）ディスカバリ及びコンフィギュレーションの方法に関する。
【背景技術】
【０００２】
ＳＡＳドメインにおいて現在用いられているＳＡＳディスカバリを行う方法は、希望する水準に達する処理を実行できないことがある。
従って、前述の現在用いられている方法の問題点に対処するために、ＳＡＳドメインにおけるＳＡＳディスカバリの方法を提供することは望ましいことである。
【発明の概要】
【０００３】
上記に鑑み、本開示の実施形態は、ＳＡＳドメインにおいてＳＡＳディスカバリを実行する方法に関するものであり、該方法においては、ＳＡＳドメインのノードからＳＭＰディスカバリ要求を、ＳＡＳドメインの複数のエキスパンダを構成する各エキスパンダに送信するステップと、ノードが、ＳＡＳドメインの複数のエキスパンダを構成する各エキスパンダからの、前記ＳＭＰディスカバリ要求に応答するＳＭＰディスカバリ応答を受信するステップと、受信した各ＳＭＰディスカバリ応答に含まれるＢＣＲカウントと、前記ＳＭＰディスカバリ要求の送信前にノードによって記録及び格納される格納ＢＣＲカウントを比較するステップと、前記受信したＢＣＲカウントに基づき、格納ＢＣＲカウントを更新するステップと、前記比較に基づき、ノードのＳＡＳディスカバリアルゴリズムを最適化するステップと、前記比較に基づき、複数のエキスパンダに含まれる第１のエキスパンダをバイパスするステップと、前記比較に基づき、ノードから第２のＳＭＰディスカバリ要求を、複数のエキスパンダに含まれる第２のエキスパンダに送信するステップとを含んでいる。上記した方法において、前記ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであり、受信したＳＭＰディスカバリ応答に含まれるＢＣＲカウントは、エキスパンダの各物理層によって受信されたブロードキャスト（チェンジ）プリミティブの数を示し、各エキスパンダは、ＳＡＳドメインのリモートデバイスからブロードキャスト（チェンジ）プリミティブを受信すると、そのＢＣＲカウントを増加させる。
【０００４】
本開示のさらなる実施形態は、ＳＡＳドメインにおけるＳＡＳディスカバリの方法を実行するための、コンピュータ実行可能な命令を備える、一時的記憶媒体ではない、コンピュータ読取可能な記憶媒体に関するものであり、前記方法は、ＳＡＳドメインのノードからＳＭＰディスカバリ要求を、ＳＡＳドメインの複数のエキスパンダを構成する各エキスパンダに送信するステップと、ノードが、ＳＡＳドメインの複数のエキスパンダを構成する各エキスパンダからの、前記ＳＭＰディスカバリ要求に応答するＳＭＰディスカバリ応答を受信するステップと、受信した各ＳＭＰディスカバリ応答に含まれるＢＣＲカウントと、前記ＳＭＰディスカバリ要求の送信前にノードによって記録及び格納される格納ＢＣＲカウントを比較するステップと、前記受信したＢＣＲカウントに基づき、格納ＢＣＲカウントを更新するステップと、前記比較に基づき、ノードのＳＡＳディスカバリアルゴリズムを最適化するステップと、前記比較に基づき、複数のエキスパンダに含まれる第１のエキスパンダをバイパスするステップと、前記比較に基づき、ノードから第２のＳＭＰディスカバリ要求を、複数のエキスパンダに含まれる第２のエキスパンダに送信するステップと、を含んでいる。該方法において、前記ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであり、受信したＳＭＰディスカバリ応答に含まれるＢＣＲカウントは、エキスパンダの各物理層によって受信されたブロードキャスト（チェンジ）プリミティブの数を示し、各エキスパンダは、ＳＡＳドメインのリモートデバイスからブロードキャスト（チェンジ）プリミティブを受信すると、そのＢＣＲカウントを増加させる。
【０００５】
本開示のさらなる実施形態は、ＳＡＳドメインのノードを開始するＳＡＳディスカバリに関するものであり、前記ノードには、インターフェース、メモリ及びマイクロプロセッサが含まれる。前記インターフェースは、ノードをＳＡＳドメインの複数のエキスパンダに、コミュニカティブに接続するように構成される。前記メモリは、複数のＢＣＲカウントを格納するように構成される。前記マイクロプロセッサは、メモリ及びインターフェースに接続される。また、前記マイクロプロセッサは、ノードがＳＡＳドメインの複数のエキスパンダに含まれる１つのエキスパンダからブロードキャスト（チェンジ）プリミティブを受信した際に、前記ノードがＳＡＳドメインの複数のエキスパンダを構成する各エキスパンダに第１のＳＭＰディスカバリ要求を送信するように構成される。前記ノードは、さらに、インターフェースを通じて、複数のＳＭＰディスカバリ応答を受信するように構成される。前記複数のＳＭＰディスカバリ応答は、ＳＡＳドメインの複数のエキスパンダから送信される。前記ＳＭＰディスカバリ応答は、前記第１のＳＭＰディスカバリ要求に応答する。前記ノードは、さらに、受信した各ＳＭＰディスカバリ応答に含まれるＢＣＲカウントと、前記第１のＳＭＰディスカバリ要求の送信前にノードによって記録及び格納される格納ＢＣＲカウントを比較するように構成される。この場合、前記ノードは、前記受信したＢＣＲカウントに基づき、格納ＢＣＲカウントを更新する。また、前記ノードは、受信したＢＣＲカウントと前回記録されたＢＣＲカウントの比較に基づき、ノードのＳＡＳディスカバリアルゴリズムを最適化すること、前記比較に基づき、複数のエキスパンダに含まれる第１のエキスパンダをバイパスすること、及び、前記比較に基づき、第２のＳＭＰディスカバリ要求を、複数のエキスパンダに含まれる第２のエキスパンダに送信すること、を実行するように構成される。また、前記ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであり、受信したＳＭＰディスカバリ応答に含まれるＢＣＲカウントは、エキスパンダの各物理層によって受信されたブロードキャスト（チェンジ）プリミティブの数を示し、各エキスパンダは、ＳＡＳドメインのリモートデバイスからブロードキャスト（チェンジ）プリミティブを受信すると、そのＢＣＲカウントを増加させる。
【０００６】
本開示のさらなる実施形態は、ＳＡＳエキスパンダに関係するものであり、該ＳＡＳエキスパンダには、インターフェース、メモリ及びマイクロプロセッサが含まれる。前記インターフェースは、ＳＡＳドメインの複数のＳＡＳデバイスにエキスパンダを接続するように構成される。また、前記インターフェースは、複数のＳＡＳ物理層を含む。前記メモリは、ＳＡＳエキスパンダの複数のＢＣＲカウンタを格納するように構成される。複数のＢＣＲカウンタを構成する各ＢＣＲカウンタは、複数のＳＡＳ物理層に含まれる１つのＳＡＳ物理層に対応し、また、その対応するＳＡＳ物理層が受信するブロードキャスト（チェンジ）プリミティブの数を示す。前記マイクロプロセッサは、メモリ及びインターフェースに接続される。また、前記マイクロプロセッサは、ＳＡＳエキスパンダの複数のＳＡＳ物理層に含まれる１つのＳＡＳ物理層によりブロードキャスト（チェンジ）プリミティブが受信される際に監視を行い、複数のＢＣＲカウンタに、ＳＡＳエキスパンダの対応する各ＳＡＳ物理層により受信されるブロードキャスト（チェンジ）プリミティブの数を記録し、その対応する物理層により受信される各ブロードキャスト（チェンジ）プリミティブに関し、前記カウンタを１増やし、インターフェースを通じて、ＳＡＳドメインの複数のＳＡＳデバイスに含まれるＳＡＳディスカバリ開始ノードからＳＭＰディスカバリ要求を受信し、インターフェースを通じて、ＳＡＳエキスパンダがＳＡＳディスカバリ開始ノードに、ＳＡＳエキスパンダの各ＢＣＲカウンタのＢＣＲカウントが含まれる、前記ＳＭＰディスカバリ要求に応答するＳＭＰディスカバリ応答を送信すること、を実行するように構成される。
【０００７】
以上の概要及び以下の詳細な説明は、いずれも例示及び説明を意図したものであり、必ずしも本発明を限定するものではない。本明細書に組み込まれるとともに本明細書の一部を構成する添付の図面は、本発明の実施形態を図示したものであり、概要とあわせて本発明の原理を説明するためのものである。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態による、ＳＡＳディスカバリの方法が実施されるＳＡＳドメインのブロック図である。
【図２】図１に示すＳＡＳドメインのブロック図であり、本発明の実施形態に従って、ＳＡＳドメインのＳＡＳディスカバリ開始ノードから第１のＳＭＰディスカバリ要求が、ＳＡＳドメインの複数の回路のそれぞれを通って、ＳＡＳドメインの各エキスパンダに送信される状態を示している。
【図３】図１に示すＳＡＳドメインのブロック図であり、ＳＡＳディスカバリ開始ノードから次の（第２の）ＳＭＰディスカバリ要求が、複数の回路のうちの１つの回路のみを通って送信される状態を示している。なお、第２のＳＭＰディスカバリ要求は、ＳＡＳディスカバリ開始ノードによる、格納ＢＣＲカウントと、第１のＳＭＰディスカバリ要求に応答するＳＭＰディスカバリ応答においてノードが受信するＢＣＲカウント（例：ＢＣＲカウント情報、ＢＣＲカウントデータ）の比較に基づき、選択的に送信される。
【図４】本発明の実施形態による、ＳＡＳドメイン（例えば、図１に示すＳＡＳドメイン）においてＳＡＳディスカバリを実行するための方法を示すフローチャートである。
【図５】本発明の実施形態による、ＳＡＳドメイン（例えば、図１に示すＳＡＳドメイン）においてＳＡＳディスカバリを実行するように構成されるＳＡＳエキスパンダのブロック図である。
【図６】本発明の実施形態による、ＳＡＳドメイン（例えば、図１に示すＳＡＳドメイン）においてＳＡＳディスカバリを実行するように構成されるＳＡＳディスカバリ開始ノードのブロック図である。
【発明を実施するための形態】
【０００９】
次に、添付の図面を参照して、本発明の好適な実施形態を詳細に説明する。
シリアル接続型スモールコンピュータシステムインターフェース（ＳＡＳ）ディスカバリは、エキスパンダのＳＡＳ物理層又はＳＡＳリンクの状態が変更されるごとに、エキスパンダにより送信されるブロードキャスト（チェンジ）プリミティブに基づき実行される。こうしたＳＡＳ物理層及び／又はＳＡＳリンクの状態変更は、エンドデバイス又はエキスパンダの電源が入っているとき、エンドデバイス又はエキスパンダが追加／除去されたとき、及び／又はリンク速度が変更されたときに生じる。ＳＡＳドメインのエキスパンダに関して、ＳＡＳ物理層の状態又はＳＡＳリンクの状態に変更があった場合、エキスパンダによりブロードキャスト（チェンジ）プリミティブがＳＡＳドメイン内の各イニシエータ及びその他の各エキスパンダに送信される。ＳＡＳドメインのイニシエータ及び／又は自己環境設定エキスパンダがブロードキャスト（チェンジ）プリミティブを受信すると、ＳＡＳドメイン内に、状態変更があった物理層を配置するために、ディスカバリプロセス（例：ＳＡＳディスカバリプロセス）が開始される。ディスカバリプロセスの結果に基づき、イニシエータ及び自己環境設定エキスパンダは、適宜そのコンフィギュレーションを調整する。例えば、自己環境設定エキスパンダは、そのルーティングテーブルを更新し、同時に、イニシエータは、オペレーティングシステムカウンタ又はＲＡＩＤスタックホストカウンタパートに状態変更を伝える。
【００１０】
現状では、イニシエータ又は自己環境設定エキスパンダがブロードキャスト（チェンジ）プリミティブを受信した場合、ＳＡＳディスカバリは、生じた可能性のある全ての変更（例：状態変更、物理層の変更、リンクの変更）に関して、各イニシエータ及び自己環境設定エキスパンダがＳＡＳドメイン内の全てのエキスパンダ（自己環境設定エキスパンダの場合は、その他の全てのエキスパンダ）をチェックすることを要求する。例えば、イニシエータ及び自己環境設定エキスパンダは、シリアルマネジメントプロトコル（ＳＭＰ）ディスカバリ要求をエキスパンダに送信することによって、ＳＡＳドメイン内のエキスパンダをチェックする。現在用いられているＳＡＳディスカバリの方法（及び現在用いられているＳＡＳディスカバリアルゴリズム）では、ＳＡＳドメインの全ての回路について状態変更をチェックしている。しかし、ＳＡＳドメインは多数の回路を有しており、変更によって実際に影響を受ける回路は一部であることから、これは非効率である。より大規模のＳＡＳドメインでは、前述の現在用いられているＳＡＳディスカバリの方法における非効率性及びＳＡＳディスカバリの不要なオーバーヘッドが拡大し、システム上の問題や待ち時間の増加の原因になる。本発明の実施形態では、１つ以上のブロードキャスト（チェンジ）プリミティブを受信し、ブロードキャスト（チェンジ）プリミティブの特定の回路及び原点を決定するのに用いることができる、ＳＡＳドメイン内の全てのエキスパンダの物理層を特定するディスカバリオペレーション中に、(1)ＳＡＳドメイン内のイニシエータ及びエキスパンダの間、及び／又は(2)ＳＡＳドメイン内の自己環境設定エキスパンダ及びその他のエキスパンダ（例：ターゲットエキスパンダ）の間で情報（例：ＳＭＰ要求及び／又はＳＭＰ応答）を交換することができるＳＡＳディスカバリの方法が開示される。その結果、不要な回路においてディスカバリオペレーションを行うことを回避することができる（例：状態変更による影響を受けない回路に関して、ディスカバリオペレーションを行うことを回避することができる。）。
【００１１】
図１を参照すると、本発明の実施形態に基づくＳＡＳシステム（例：ＳＡＳドメイン、ＳＡＳトポロジ）が示されている。本発明の実施形態では、ＳＡＳシステム１００には、１つ以上のＳＡＳディスカバリ開始ノード１０２が含まれる。例えば、ＳＡＳディスカバリ開始ノード１０２は、イニシエータ１０２又は自己環境設定エキスパンダ１０２である。本発明のさらなる実施形態では、ＳＡＳシステム１００は、複数のエキスパンダ１０４を含み、複数のエキスパンダ１０４は、ノード１０２に接続される（例：コミュニカティブに接続される）。本発明のさらなる実施形態では、ＳＡＳシステム１００は、複数のターゲットデバイス１０６（例：ＳＡＳターゲットデバイス１０６）を含み、複数のターゲットデバイス１０６は、複数のエキスパンダ１０４に接続され（例：コミュニカティブに接続される）、また、複数のエキスパンダ１０４を通じて、ノード１０２（例：イニシエータ１０２）に接続される（例：コミュニカティブに接続される）。
【００１２】
本発明のさらなる実施形態では、複数のリンク１０８（例：図１に示すＬ１、Ｌ２、Ｌ３、Ｌ４、Ｌ５、Ｌ６、Ｌ７、Ｌ８、Ｌ９及びＬ１０）を通じて、ノード１０２、複数のエキスパンダ１０４及びターゲットデバイス１０６を通信可能に接続する。例えば、複数のリンク１０８（例：レーン）は、ＳＡＳケーブルにより２地点間で直列に接続される。本発明のさらなる実施形態では、複数のターゲットデバイス１０６を構成する各ターゲットデバイス１０６、複数のエキスパンダ１０４を構成する各エキスパンダ１０４及び各ノード１０２は、１つ以上の物理層１１０（例：１つ以上のＳＡＳ物理層１１０）を有する。本発明の実施形態例では、各物理層１１０は、トランスミッタデバイス及びリシーバデバイスを含み、リンク１０８による２地点間接続のエンドポイントとしての機能を果たす。例えば、各物理層１１０は、リンク１０８に電気的に接続されるように構成され、これは、リンク１０８の反対側において、もう１つの物理層１１０と連絡をするためである。本発明のさらなる実施形態では、各リンク１０８は、それぞれが別の方向にある２対の差動信号を有する。前述のように、各ターゲットデバイス１０６、各エキスパンダ１０４及び各ディスカバリ開始ノード１０２は、１つ以上の物理層１１０を有する。本発明のさらなる実施形態は、各ＳＡＳデバイス（例：ターゲットデバイス１０６、エキスパンダ１０４及び／又はディスカバリ開始ノード１０２）は、１つ以上のポートを有し、各ポートは、ＳＡＳデバイスの物理層１１０（例：ＳＡＳ物理層１１０）を１つ以上有する。
【００１３】
本発明の実施形態では、ターゲットデバイス１０６は、ディスカバリ開始ノード１０２からのコマンドを受信するように構成されるディスクドライブ等のストレージデバイスである。本発明のさらなる実施形態では、ディスカバリ開始ノード１０２は、ホストコンピュータ内のＳＡＳホストバスアダプタ又はＲＡＩＤコントローラのＳＡＳインプット／アウトプット（Ｉ／Ｏ）コントローラである。本発明のさらなる実施形態では、エキスパンダ１０４（例：ＳＡＳエキスパンダ１０４）は、（図１に示すように）複数のターゲットデバイス１０６を単一のディスカバリ開始ノード１０２に接続することを簡易化するように構成される。例えば、ＳＡＳエキスパンダ１０４は、ＳＡＳ２地点間接続（例：ＳＡＳリンク１０８）を通じてＳＡＳイニシエータ１０２とターゲットデバイス１０６との間で連絡が行われることを可能にするために、ルーティング等のスイッチ機能を実行するように構成される。本発明のさらなる実施形態では、１つ以上のエキスパンダ１０４は、自己環境設定エキスパンダ１０４である。
【００１４】
本発明の実施形態例では、各エキスパンダ１０４は、各エキスパンダ１０４のＳＡＳ物理層１１０及び／又はＳＡＳリンク１０８に変更（例：状態変更）があった場合に、その変更を検知するように構成される。例えば、これらのＳＡＳ物理層の状態変更及び／又はＳＡＳリンクの状態変更は、ＳＡＳドメイン１００のエンドデバイス（例：ターゲットデバイス１０６）又はＳＡＳドメイン１００のエキスパンダ１０４の電源が入っているとき、エンドデバイス又はエキスパンダ１０４がＳＡＳドメインに追加又はＳＡＳドメインから除去されたとき、及び／又はリンク速度が変更されたときに生じる。本発明の実施形態では、複数のエキスパンダ１０４に含まれる第１のエキスパンダ１０４が、そのＳＡＳ物理層１１０又はＳＡＳリンク１０８の１つに前記の状態変更があったことを検知した場合、第１のエキスパンダ１０４は、複数のエキスパンダ１０４を構成するその他の各エキスパンダ１０４及びＳＡＳディスカバリ開始ノード１０２にブロードキャスト（チェンジ）プリミティブを送信するように構成される。イニシエータ１０２又は自己環境設定エキスパンダ１０２等のＳＡＳディスカバリ開始ノード１０２がブロードキャスト（チェンジ）プリミティブを受信すると、ＳＡＳディスカバリ開始ノード１０２は、ＳＡＳドメイン１００内に、状態変更があったＳＡＳ物理層１１０及び／又はＳＡＳリンク１０８を配置するために、ディスカバリプロセス（例：ＳＡＳディスカバリプロセス）を開始する。ディスカバリプロセスの結果に基づき、ＳＡＳディスカバリ開始ノード１０２（例：イニシエータ１０２、自己環境設定エキスパンダ１０２）は、適宜そのコンフィギュレーションを調整するように構成される。例えば、自己環境設定エキスパンダ１０２は、そのルーティングテーブルを更新し、同時に、イニシエータ１０２は、オペレーティングシステムカウンタ又はＲＡＩＤスタックホストカウンタパートに状態変更を伝える。
【００１５】
図４は、本発明の実施形態に基づき、図１に示すＳＡＳシステム１００（例：ＳＡＳドメイン１００）を通じてＳＡＳディスカバリを実行する方法を示したフローチャートである。方法４００は、ＳＭＰディスカバリ要求をＳＡＳドメインのノードから、ＳＡＳドメイン４０２の複数のエキスパンダを構成する各エキスパンダに送信するステップが含まれる。前述のように、複数のエキスパンダ１０４に含まれる第１のエキスパンダ１０４は、そのＳＡＳ物理層１１０又はＳＡＳリンク１０８の１つ以上における状態変更を検知した後、ブロードキャスト（チェンジ）プリミティブを、複数のエキスパンダ１０４を構成するその他の各エキスパンダ１０４及びＳＡＳディスカバリ開始ノード１０２に送信するように構成される。図１〜図３に示す実施形態例では、第１のエキスパンダ１０４（図１−図３において「エキスパンダ３」と示されている。）は、そのＳＡＳ物理層及び／又はＳＡＳリンクの１つ以上に状態変更があったことを検知し、ブロードキャスト（チェンジ）プリミティブを、複数のエキスパンダ１０４を構成するその他の各エキスパンダ１０４及びＳＡＳディスカバリ開始ノード１０２（図１−図３において「イニシエータ」と示されている。）に送信する。前述のように、ＳＡＳディスカバリ開始ノード１０２は、ブロードキャスト（チェンジ）プリミティブを受信した後、状態変更があったＳＡＳ物理層１１０及び／又はＳＡＳリンク１０８を配置するために、ＳＡＳディスカバリプロセスを開始する。ＳＡＳディスカバリ開始ノード１０２は、ＳＡＳドメイン１００の複数のエキスパンダ１０４を構成する各エキスパンダ１０４にＳＭＰディスカバリ要求を送信することにより、これを行う。
【００１６】
本発明のさらなる実施形態では、方法４００はさらに、ノードによりＳＡＳドメインの複数のエキスパンダを構成する各エキスパンダからのＳＭＰディスカバリ応答を受信するステップが含まれる。ＳＭＰディスカバリ応答は、ＳＭＰディスカバリ要求４０４に応答する。例えば、複数のエキスパンダ１０４を構成する各エキスパンダ１０４は、ＳＡＳディスカバリ開始ノード１０２からＳＭＰディスカバリ要求を受信した後、そのユニークなＳＭＰディスカバリ応答をＳＡＳディスカバリ開始ノード１０２に送信する。ＳＡＳディスカバリ開始ノード１０２は、ＳＭＰディスカバリ応答を受信するように構成され、ディスカバリ応答は、ＳＭＰディスカバリ要求に応答する。前述のように、複数のエキスパンダ１０４に含まれる第１のエキスパンダ１０４は、そのＳＡＳ物理層１１０又はＳＡＳリンク１０８の１つ以上における状態変更を検知した後、ブロードキャスト（チェンジ）プリミティブを、複数のエキスパンダ１０４を構成するその他の各エキスパンダ１０４及びＳＡＳディスカバリ開始ノード１０２に送信するように構成される。前述のように、図１〜図３に示す実施形態では、第１のエキスパンダ１０４（図１〜図３において「エキスパンダ３」と示されている）は、そのＳＡＳ物理層及び／又はＳＡＳリンクの１つ以上に状態変更があったことを検知し、ブロードキャスト（チェンジ）プリミティブを、複数のエキスパンダ１０４を構成するその他の各エキスパンダ１０４及びＳＡＳディスカバリ開始ノード１０２（図１〜図３において「イニシエータ」と示されている）に送信する。複数のエキスパンダ１０４を構成する各エキスパンダ１０４は、（ａ）ＳＡＳドメインのリモートデバイス／その他のデバイス（例：その他のエキスパンダ１０４）からブロードキャスト（チェンジ）プリミティブを受信したときに、（ｂ）リモートデバイスから受信したブロードキャスト（チェンジ）プリミティブの数、及び（ｃ）リモートデバイスからブロードキャスト（チェンジ）プリミティブを受信した各エキスパンダ１０４の物理層１１０を、トラッキング及び記録する。さらなる実施形態では、各エキスパンダ１０４は、ブロードキャスト（チェンジ）プリミティブに関する前記の情報を１層毎に記録及びトラッキングする、ブロードキャスト（チェンジ）レシーブド（ＢＣＲ）カウンタと呼ばれるカウンタ（例：ラッピングカウンタ）を１つ以上備える。例えば、各エキスパンダ１０４は、ブロードキャスト（チェンジ）プリミティブに関する前記の情報を追跡するために、その各物理層１１０に別個のカウンタを備える。さらなる実施形態では、各エキスパンダ１０４は、各エキスパンダ１０４の物理層１１０の１層がＳＡＳドメイン１００のリモートデバイス（例：その他のエキスパンダ１０４）からブロードキャスト（チェンジ）プリミティブを受信した際に、そのＢＣＲカウンタを増加させるが（例：受信したブロードキャスト（チェンジ）プリミティブ毎に１増加させる）、前記各エキスパンダの物理層１１０の第２層から転送されたブロードキャスト（チェンジ）プリミティブを、各エキスパンダの物理層１１０の第１層が受信したときは、そのＢＣＲカウンタを増加させない。図示されている実施形態では、「エキスパンダ３」は、ドメイン１００のその他の全てのエキスパンダ１０４に送信されるブロードキャスト（チェンジ）プリミティブのソース（例：オリジネータ）であり、ブロードキャスト（チェンジ）プリミティブを受信しなかったため、この場合、そのカウンタを増加させない。しかし、ドメイン１００のその他の各エキスパンダ１０４は、そのカウンタを増加させる。本開示のさらなる実施形態では、カウンタは１６ビット又は３２ビットのカウンタである。
【００１７】
前述のように、複数のエキスパンダ１０４を構成する各エキスパンダ１０４は、ＳＡＳディスカバリ開始ノード１０２からＳＭＰディスカバリ要求を受信した後、そのユニークなＳＭＰディスカバリ応答をＳＡＳディスカバリ開始ノード１０２に送信する。ディスカバリ応答は、ＳＭＰディスカバリ要求に応答する。本発明の実施形態では、各エキスパンダ１０４は、各エキスパンダのユニークなＳＭＰディスカバリ応答の範囲に、そのＢＣＲカウンタ、ＢＣＲカウンタの情報及び／又はＢＣＲカウントの情報（例：ＢＣＲカウント）を含む。ＢＣＲカウントの情報（例：ＢＣＲカウント）は、ブロードキャスト（チェンジ）プリミティブを受信したエキスパンダ１０４の各物理層１１０、及び／又は、エキスパンダ１０４の各物理層１１０が受信したブロードキャスト（チェンジ）プリミティブの数を示す。さらに、前述のように、前記ＳＡＳディスカバリ開始ノード１０２は、ドメイン１００の各エキスパンダ１０４のＢＣＲカウントを含むＳＭＰディスカバリ応答を受信するように構成される。本発明のさらなる実施形態では、各ＳＡＳディスカバリ開始ノード１０２は、ＳＡＳドメイン１００の各物理層１１０のＢＣＲカウントを記録、トラッキング及び／又は監視するように構成される。
【００１８】
本発明の実施形態では、方法４００はさらに、受信した各ＳＭＰディスカバリ応答に含まれるＢＣＲカウントと格納ＢＣＲカウントを比較するステップが含まれる。格納ＢＣＲカウントは、ＳＭＰディスカバリ要求４０６の送信前に、ノードにより記録及び格納されている。例えば、ＳＡＳディスカバリ開始ノード１０２がドメイン１００の各エキスパンダ１０４からのＳＭＰディスカバリ応答を受信すると、ＳＡＳディスカバリノード１０２は、（ＳＭＰディスカバリ応答によって受信された）エキスパンダ１０４のＢＣＲカウントと前回記録されたエキスパンダ１０４のＢＣＲカウント（ＳＡＳディスカバリ開始ノード１０２により前回記録及び／又は格納されたエキスパンダ１０４のＢＣＲカウント）を比較する。この比較に基づき、ＳＡＳディスカバリ開始ノード１０２は、送信されたブロードキャスト（チェンジ）プリミティブを受信したエキスパンダ１０４の物理層を即座に確定するように構成される。例えば、図示された実施形態では、「エキスパンダ３」は、ドメイン１００のその他の全てのエキスパンダ１０４に送信されるブロードキャスト（チェンジ）プリミティブのソース（例：オリジネータ）であり、ブロードキャスト（チェンジ）プリミティブを受信しなかったため、ＳＡＳディスカバリ開始ノード１０２は、前記比較に基づき、前記ディスカバリ開始ノード１０２によって記録された「エキスパンダ３」の前回のＢＣＲカウントから、「エキスパンダ３」のＢＣＲカウントに変更がなかったことを判断することができる。従って、ディスカバリ開始ノード１０２は、送信された最新のブロードキャスト（チェンジ）プリミティブを「エキスパンダ３」が受信していないと判断することができる。このような情報を用いて、ディスカバリ開始ノード１０２は、最新の状態変更によって影響を受ける物理層１１０、エキスパンダ１０４及び／又は回路をより効率的に判断するために、ドメイン内の選択された回路（例：選択されたリンク１０８に沿った、選択されたエキスパンダ１０４への回路）を通じて、確定的に（例：選択的に）追加の又は次のＳＡＳディスカバリトラフィックを送信又は移動させることができる。これにより、ＳＡＳディスカバリトラフィックを減少させることができ、ＳＡＳディスカバリ開始ノード１０２は、ドメイン１００の各エキスパンダ１０４及び／又は全ての回路（１１２、１１４、１１６）に追加の、又は次のＳＡＳディスカバリ要求を送信することなく、ドメイン１００の選択されたエキスパンダ１０４に前記トラフィックを送信する。その結果、現在のＳＡＳドメインに関係する待ち時間の問題を緩和及び／又は回避する。図２に示す実施形態は、ドメインの全てのエキスパンダ１０４に最初のＳＭＰディスカバリ要求が送信されるところ（例：３つの別個の回路に沿って）を示している。前述のように、ＳＡＳディスカバリ開始ノード１０２（例：イニシエータ１０２、自己環境設定エキスパンダ１０２）は、前記のＢＣＲカウントの比較により得た情報を用いて、状態変更が「エキスパンダ３」に影響を与えたと判断する。その結果、ＳＡＳディスカバリ開始ノード１０２は、次のＳＭＰディスカバリ要求を「エキスパンダ３」に送信する（図３に示す）単一の（例：第１の）回路１１２を通じて、次のＳＡＳディスカバリトラフィック（例：次のＳＭＰディスカバリ要求）を集め、制限し、及び／又は選択的に送信する。例えば、次のＳＡＳディスカバリトラフィックは、リンクＬ１、リンクＬ２及びリンクＬ３に沿って、「エキスパンダ１」及び「エキスパンダ２」を通じて、「エキスパンダ３」に提供される（例：送信される）。
【００１９】
本発明のさらなる実施形態では、方法４００はさらに、受信したＢＣＲカウント４０８に基づき、格納ＢＣＲカウントを更新するステップを含んでいる。前述のように、各ＳＡＳディスカバリ開始ノード１０２は、ＳＡＳドメイン１００の各物理層１１０のＢＣＲカウントをトラッキング及び／又は記録するように構成される。ＳＡＳディスカバリ開始ノード１０２は、新しく受信されたＢＣＲカウントと、ＳＡＳドメイン１００の物理層１１０に関して前回記録されたＢＣＲカウントの比較を行った後、こうした新しく受信したＢＣＲカウントとの比較に基づき、その格納ＢＣＲカウント（例：格納ＢＣＲカウントテーブル）を更新するように構成される。
【００２０】
本発明の実施形態では、方法４００にはさらに、比較４１０に基づきノードのＳＡＳディスカバリアルゴリズムを最適化するステップが含まれる。さらなる実施形態では、方法４００には、前記の比較に基づき、複数のエキスパンダ４１２に含まれる第１のエキスパンダをバイパスするステップが含まれる。実施形態では、ＳＡＳディスカバリ開始ノード１０２は、新しく受信したＢＣＲカウントと前回格納されたＢＣＲカウントを比較した後、ドメイン１００の１つ以上のエキスパンダ１０４を非選択状態にし、又はバイパスするように構成される。前述のように、図示した実施形態では、ＳＡＳディスカバリ開始ノード１０２は、前記した比較に基づき、最新の状態変更により「エキスパンダ３」に影響があったが、ドメイン１００のその他のエキスパンダ１０４には影響がないこと、及び、次のＳＭＰディスカバリ要求を、ドメイン１００の第２及び第３の回路（１１４、１１６）に沿ってではなく、ドメイン１００の第１の回路１１２にのみ沿って、「エキスパンダ３」に送信すること、を判断するように構成される。ＳＡＳディスカバリ開始ノード１０２は、次に、ＳＡＳディスカバリアルゴリズムを適宜最適化する。ＳＡＳディスカバリ開始ノード１０２は、次のＳＭＰディスカバリ要求を第２及び第３の回路（１１４、１１６）に沿って送信しないことを判断することによって、これらの回路（１１４、１１６）に沿って配置されているドメイン１００のエキスパンダ１０４を効率的にバイパスする。
【００２１】
本発明のさらなる実施形態では、方法４００にはさらに、前記の比較に基づきノードから第２のＳＭＰディスカバリ要求を、複数のエキスパンダ４１４に含まれる第２のエキスパンダに送信するステップが含まれる。前述のように、ＳＡＳディスカバリ開始ノード１０２は、前記比較に基づき、最新の状態変更に関する情報をより多く得るために、複数のエキスパンダ１０４に含まれる１つ以上の選択されたエキスパンダ１０４に、次の（例：追加の）ＳＭＰディスカバリ要求を送信することを判断するように構成される。例えば、図３に示すように、前記比較に基づき、最新の状態変更により「エキスパンダ３」に影響があったが、ドメイン１００のその他のエキスパンダ１０４には影響がないことが判断された後、次のＳＭＰディスカバリ要求は、ドメイン１００の第１の回路１１２にのみ沿って、「エキスパンダ３」に送信される（ＳＡＳディスカバリ開始ノード１０２によって送信される）。
【００２２】
図５は、本発明の実施形態に基づいたＳＡＳエキスパンダ１０４を示している。ＳＡＳエキスパンダ１０４は、インターフェース１２５を含む。インターフェース１２５は、ＳＡＳドメインの複数のＳＡＳデバイスにエキスパンダを接続するように構成される。インターフェース１２５には、複数のＳＡＳ物理層１１０が含まれている。ＳＡＳエキスパンダ１０４はさらに、メモリ１１８を含む。メモリ１１８は、ＳＡＳエキスパンダ１０４の複数のＢＣＲカウンタ１２０を格納するように構成される。複数のＢＣＲカウンタ１２０を構成する各ＢＣＲカウンタ１２０は、複数のＳＡＳ物理層１１０に含まれる１つのＳＡＳ物理層１１０に対応し、その対応するＳＡＳ物理層１１０により受信されたブロードキャスト（チェンジ）プリミティブの数を示すように構成される。ＳＡＳエキスパンダ１０４はさらに、マイクロプロセッサ１２２を含む。マイクロプロセッサ１２２は、メモリ１１８及びインターフェース１２５に接続される。マイクロプロセッサ１２２は、ＳＡＳエキスパンダ１０４の複数のＳＡＳ物理層１１０に含まれる１つのＳＡＳ物理層１１０によりブロードキャスト（チェンジ）プリミティブが受信されたときに監視を行い、さらに、ＳＡＳエキスパンダ１０４の対応する各ＳＡＳ物理層１１０により受信されたブロードキャスト（チェンジ）プリミティブの数を複数のＢＣＲカウンタ１２０に記録するように構成される。本発明のさらなる実施形態では、マイクロプロセッサ１２２は、カウンタ１２０に対応する物理層１１０により受信された各ブロードキャスト（チェンジ）プリミティブに関して、カウンタ１２０を１増加させる。さらなる実施形態では、マイクロプロセッサ１２２は、インターフェース１２５を通じて、ＳＡＳドメイン１００のＳＡＳディスカバリ開始ノードからのＳＭＰディスカバリ要求を受信するように構成される。さらなる実施形態では、マイクロプロセッサ１２２は、インターフェース１２５を通じて、ＳＡＳエキスパンダ１０４がＳＭＰディスカバリ応答をＳＡＳディスカバリ開始ノード１０２に送信するように構成される。前記ＳＭＰディスカバリ応答は、ＳＭＰディスカバリ要求に応答し、また、ＳＡＳエキスパンダの各ＢＣＲカウンタのＢＣＲカウントを含む。
【００２３】
図６は、本発明の実施形態に基づき、ＳＡＳディスカバリ開始ノード１０２（例：イニシエータ１０２、自己環境設定エキスパンダ１０２）を示している。ＳＡＳディスカバリ開始ノード１０２は、インターフェース１３０を含む。インターフェース１３０は、ノード１０２をＳＡＳドメイン１００の複数のエキスパンダ１０４に、コミュニカティブに接続するように構成される。ＳＡＳディスカバリ開始ノード１０２は、さらに、メモリ１３２を含む。メモリ１３２は、ＳＡＳドメイン１００の各エキスパンダ１０４の各物理層１１０に含まれる複数のＢＣＲカウントを格納するように構成される。ＳＡＳディスカバリ開始ノード１０２はさらに、マイクロプロセッサ１３４を含む。マイクロプロセッサ１３４は、メモリ１３２及びインターフェース１３０に接続される。マイクロプロセッサ１３４は、ノード１０２がＳＡＳドメイン１００の複数のエキスパンダ１０４に含まれる１つのエキスパンダ１０４からブロードキャスト（チェンジ）プリミティブを受信した際に、ノード１０２により、ＳＡＳドメイン１００の複数のエキスパンダ１０４を構成する各エキスパンダ１０４に第１のＳＭＰディスカバリ要求が送信されるように構成される。ノード１０２はさらに、インターフェース１３０を通じて、複数のＳＭＰディスカバリ応答を受信するように構成される。複数のＳＭＰディスカバリ応答は、ＳＡＳドメイン１００の各エキスパンダ１０４から送信される。複数のＳＭＰディスカバリ応答は、第１のＳＭＰディスカバリ要求に応答する。ノード１０２は、さらに、受信した各ＳＭＰディスカバリ応答に含まれるＢＣＲカウントと格納ＢＣＲカウントを比較するように構成される。格納ＢＣＲカウントは、第１のＳＭＰディスカバリ要求の送信前にノード１０２により記録及び格納される。また、ノード１０２は、前記受信したＢＣＲカウントに基づき、格納ＢＣＲカウントを更新するように構成される。さらなる実施形態では、ノード１０２は、受信したＢＣＲカウントと前回記録されたＢＣＲカウントの比較に基づき、ノード１０２のＳＡＳディスカバリアルゴリズムを最適化するように構成される。さらに、比較に基づき、ノード１０２は、複数のエキスパンダ１０４に含まれる第１のエキスパンダ１０４をバイパスするように構成される。そして、比較に基づき、ノード１０２は、第２のＳＭＰディスカバリ要求を、選択的に、複数のエキスパンダ１０４に含まれる第２のエキスパンダ１０４に送信するように構成される。
【００２４】
ここで開示された方法は、経路予測を可能にし、ＳＡＳドメインが非常に大きなものになった場合でも、信頼性及び性能が改善されている。これは、ＳＡＳエンドデバイスが追加及び／又は除去され、エラーが起こった際に、その他のシステムに通知する上で重要である。また、ここで開示された方法は、サービス妨害攻撃におけるその他のシステムのデバイスの不良（例：欠陥）による影響を最小限にすることができる。
【００２５】
本発明による前述された実施形態は、本明細書の教示に従ってプログラムされた従来の汎用デジタルコンピュータを用いて、簡便に実現できることは、コンピュータ技術の当業者には明らかであろう。適切なソフトウェアコーディングが、本開示の教示に基づいて熟練のプログラマによって容易に準備されることも、ソフトウェア技術の当業者には明らかであろう。
【００２６】
本発明は、ソフトウェアパッケージの形態で簡便に実現可能である。ソフトウェアパッケージは、開示された本発明の機能及びプロセスをコンピュータが実行するようプログラムするために用いられる、記憶されたコンピュータコードを備えたコンピュータ可読ストレージ媒体を採用している、コンピュータプログラム製品である。コンピュータ可読媒体／コンピュータ可読ストレージ媒体は、任意のタイプの従来型フロッピディスク、光ディスク、ＣＤ−ＲＯＭ、磁気ディスク、ハードディスクドライブ、光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光カード、あるいは電子指示を記憶するための任意の別の適宜の媒体であるが、これらに限定するものではない。
【００２７】
前述の開示された方法のステップの具体的順序又は階層構造は、代表的なアプローチ例である。前述の方法のステップの具体的順序又は階層構造は、本発明の範囲内において、設計の優先順位に基づき、再構築することができる。特許請求の範囲においては、前述の方法の各種ステップの内容を例示的順序で提示しているが、必ずしも提示された具体的順序又は階層構造に限定するものではない。
【００２８】
本発明及びそれに付随する多数の利点は、前述の記載によって理解されるであろう。また、本発明の精神及び範囲を逸脱しない限りは、又はマテリアルアドバンテージの全てを犠牲にすることなしに、これに関する部品の形態、構造、及び配置において、多くの変更が可能である。前述された形式は、本発明の実施形態例にすぎない。このような変更に関しては、以下に記載の特許請求の範囲に包含されるものである。
【図１】
0005144799.tif 000002
【図２】
0005144799.tif 000003
【図３】
0005144799.tif 000004
【図４】
0005144799.tif 000005
【図５】
0005144799.tif 000006
【図６】
0005144799.tif 000007