(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置がバスを介して相互接続されたバスシステムにて用いられる情報処理装置であって、
前記バスシステムを構成する他の情報処理装置と接続する接続手段と、
前記接続手段における他の情報処理装置との接続状態を自装置の接続状態として検出する接続状態検出手段と、
前記接続状態検出手段が検出する自装置の接続状態および前記他の情報処理装置から受け取る当該装置の接続状態に基づき、前記接続手段を通じた前記他の情報処理装置との接続状態に異常があるか否かを判断する異常有無判断手段と、
前記異常有無判断手段に異常と判断された原因となる接続箇所が前記接続手段にあるか否かを認識する異常箇所認識手段と、
前記異常箇所認識手段による認識結果に応じて前記接続手段での前記他の情報処理装置との接続を切断し得る接続管理手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記異常有無判断手段は、前記バスシステムがＩＥＥＥ１３９４バスシステムである場合に、該バスシステムを構成する情報処理装置間の相互接続中におけるループの存在、該情報処理装置の台数の規定数超過または該相互接続の接続段数の規定数超過のうちのいずれか一つまたは複数を、前記接続状態の異常として判断するものであることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記異常有無判断手段に異常無しと判断された接続状態を記憶する正常状態記憶手段を備えるとともに、
前記異常箇所認識手段は、前記異常有無判断手段が異常有りと判断すると、そのときに前記接続状態検出手段で検出された新たな接続状態を、前記正常状態記憶手段に記憶されている接続状態と比較することで、前記異常有無判断手段に異常と判断された原因となる接続箇所を認識するものである
ことを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
前記異常有無判断手段に異常無しと判断される都度、前記正常状態記憶手段に記憶されている接続状態を、そのときに前記接続状態検出手段で検出された新たな接続状態により更新する接続状態更新手段を備えることを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記正常状態記憶手段は、不揮発性の記憶装置からなることを特徴とする請求項３または４記載の情報処理装置。
【請求項６】
前記異常有無判断手段が異常有りと判断すると、その異常の内容に関する情報を表示出力する異常情報出力手段を備えることを特徴とする請求項１，２，３，４または５記載の情報処理装置。
【請求項７】
前記接続管理手段が前記接続手段での他の情報処理装置との接続を切断すると、その切断箇所に関する情報を表示出力する切断情報出力手段を備えることを特徴とする請求項１，２，３，４，５または６記載の情報処理装置。
【請求項８】
前記異常有無判断手段が異常有りと判断すると、その異常の内容に関する情報を、前記バスシステムを構成する他の情報処理装置へ送信する異常情報送信手段を備えることを特徴とする請求項１，２，３，４，５，６または７記載の情報処理装置。
【請求項９】
前記接続管理手段が前記接続手段での他の情報処理装置との接続を切断すると、その切断箇所に関する情報を、前記バスシステムを構成する他の情報処理装置へ送信する切断情報送信手段を備えることを特徴とする請求項１，２，３，４，５，６，７または８記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の情報処理装置がシリアルバスを介して相互に接続されたバスシステムにて用いられる情報処理装置に関するものである。
【０００２】
【従来の技術】
近年、例えばコンピュータ、その周辺機器または家電製品といった複数の情報処理装置が、例えばＩＥＥＥ（電気電子技術者協会）１３９４規格に準拠した高性能シリアルバスを介して相互に接続された状態で、それぞれの間のデータ通信を行う、いわゆるバスシステムが提案されている。
【０００３】
バスシステムは、例えばＩＥＥＥ１３９４規格に準拠したものであれば、例えば図１１に示すように、そのシステムを構成する各情報処理装置（以下「ノード」と称す）の間における接続状態（以下「トポロジ」と称す）のうち幾つかのノードがループ状に接続されてはならない（図中Ａ参照）、システム内のノードの総数は６３個以下でなければならない、各ノード間の接続段数に相当するホップ数（図中Ｂ参照）は最大で１６以下でなければならない、という規定を除いて、各ノード間を自由に相互接続できることに特徴がある。したがって、ＩＥＥＥ１３９４に準拠したバスシステム（以下「ＩＥＥＥ１３９４バスシステム」と称す）を構築する際には、ＩＥＥＥ１３９４規格を十分に理解した上で、ノードの相互接続を行う必要がある。
【０００４】
【発明が解決しようとする課題】
ところで、ＩＥＥＥ１３９４バスシステムにおいては、多数のノード間を自由に相互接続でき、また既存システムに新規ノードを追加するといったことにも対応し得るため、システム内の全ノードの接続状態を常に把握することは非常に困難である。そのため、特に新規ノードを追加した場合等には、トポロジ内にループが存在してしまう、ノード総数が６４個以上ある、ホップ数が１７以上になってしまう、といった誤接続が生じるおそれがある。
【０００５】
このような誤接続が発生すると、ＩＥＥＥ１３９４バスシステムでは、以下のような問題点が生じてしまう。例えば、トポロジ内にループが存在すると、バスの初期化が終了しないため、システム内におけるデータ転送を開始できない。また、ノード総数が６４個以上ある場合やホップ数が１７以上である場合には、正確なデータ転送が保証されない。つまり、ＩＥＥＥ１３９４バスシステムでは、各ノードがＩＥＥＥ１３９４規格に準拠せずに誤接続されると、システム全体が正常に動作しなくなる。
【０００６】
これに対して、複数の機器がＬＡＮ（ローカルエリアネットワーク）等のネットワークを介して相互接続されたネットワークシステムにおいては、従来より障害の発生を管理するための技術が提案されているので、これをＩＥＥＥ１３９４バスシステムに適用することも考えられる。例えば、特開平６−１０３２００号公報には、ネットワークを構成する全機器の接続関係に関する情報をデータベース化して保持しておき、障害発生時にはそのデータベース内の情報を基に障害箇所を明示することで、利用者等が障害箇所をすぐに特定でき、迅速な障害復旧を行い得るようにしたシステムが開示されている。
【０００７】
ところが、特開平６−１０３２００号公報に開示されたシステムでは、障害が生じた機器以外は全て正常に動作しており、利用者は正常に動作している機器から障害箇所に関する情報を得ている。したがって、この技術を適用しても、誤接続が発生するとシステム全体が正常に動作しないＩＥＥＥ１３９４バスシステムでは、ネットワークシステムの場合のようにトポロジ上の障害箇所を明示するができず、迅速な障害復旧を可能にすることもできない。
【０００８】
そこで、本発明は、上記問題点に鑑み、ノードの誤接続によりバスシステムにエラーが生じた場合であっても、そのエラーの原因となる接続箇所を切断することで、バスシステムを正常動作状態に復旧することを可能にする情報処理装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、上記目的を達成するために案出された情報処理装置で、複数の情報処理装置がバスを介して相互接続されたバスシステムにて用いられ、さらには、前記バスシステムを構成する他の情報処理装置と接続する接続手段と、前記接続手段における他の情報処理装置との接続状態を自装置の接続状態として検出する接続状態検出手段と、前記接続状態検出手段が検出する自装置の接続状態および前記他の情報処理装置から受け取る当該装置の接続状態に基づき、前記接続手段を通じた前記他の情報処理装置との接続状態に異常があるか否かを判断する異常有無判断手段と、前記異常有無判断手段に異常と判断された原因となる接続箇所が前記接続手段にあるか否かを認識する異常箇所認識手段と、前記異常箇所認識手段による認識結果に応じて前記接続手段での前記他の情報処理装置との接続を切断し得る接続管理手段とを備えることを特徴とするものである。
【００１０】
上記構成の情報処理装置では、異常有無判断手段による判断の結果、接続状態検出手段が検出した接続状態に異常があれば、異常箇所認識手段がその原因となる接続箇所を認識する。例えば、接続手段に新たな情報処理装置が追加接続された結果、接続状態に異常有りと判断された場合に、異常箇所認識手段は、その追加接続された箇所を異常の原因となった接続箇所として認識する。そして、異常箇所認識手段による認識結果に応じて、接続管理手段は、例えば異常の原因となった接続箇所の接続を論理的に切断する。
したがって、この情報処理装置を用いてバスシステムを構築すれば、各情報処理装置間の誤接続によって異常が生じた場合であっても、その異常の原因となる接続箇所が切断されるので、バスシステムは異常発生前の正常な動作状態に復旧することになる。
【００１１】
【発明の実施の形態】
以下、図面に基づき本発明に係る情報処理装置（ノード）について説明する。図１はＩＥＥＥ１３９４バスシステムを構成するノードに本発明を適用した場合の処理動作例を示すフローチャートであり、図２はそのＩＥＥＥ１３９４バスシステムの構成例を示すブロック図であり、図３は本発明が適用されるノードの概略構成例を示すブロック図である。
【００１２】
ここで、本発明に係るノードの説明に先立ち、そのノードを用いて構成されたＩＥＥＥ１３９４バスシステムについて説明する。
ＩＥＥＥ１３９４バスシステムは、図２に示すように、複数のノード１０ａ〜１０ｅが、ＩＥＥＥ１３９４規格に準拠したＩＥＥＥ１３９４シリアルバス（以下、単に「バス」と称す）２０を介して、相互に接続されて構築されている。なお、各ノード１０ａ〜１０ｅの接続形態は、例えば、デイジーチェーン状であっても、あるいはツリー構造であってもよい。また、各ノード１０ａ〜１０ｅは、他ノードと相互接続するために、それぞれが少なくとも一つのポートP1〜P11 を備えている。
【００１３】
このようなＩＥＥＥ１３９４バスシステムにて用いられる各ノード１０ａ〜１０ｅは、それぞれが図３に示すように構成されている。すなわち、ノード１０ａ〜１０ｅは、それぞれが、自ノードの動作制御を行うＣＰＵ（Central Processing Unit)１１と、このＣＰＵ１１での動作制御に必要な制御プログラムや各ノード固有の情報等を格納しているＲＯＭ（Read Only Memory）１２と、ＣＰＵ１１のワークメモリや送受信データのバッファ等に使用されるＲＡＭ（Random Access Memory）１３と、後述するポート接続状態を保存するためにＮＶＲＡＭ（Nonvolatile ＲＡＭ）やハードディスク装置等からなる不揮発性メモリ１４と、バス２０上のデータ転送を制御するＩＥＥＥ１３９４インタフェース１５と、文字または画像を表示してノード利用者に情報を提供する出力装置１６と、これらの各部を互いに接続する内部バス１７と、を備えて構成されている。
【００１４】
このうち、ＲＯＭ１２には、ＣＰＵ１１が詳細を後述する処理動作を行うための制御プログラムが予め格納されているものとする。
また、ＩＥＥＥ１３９４インタフェース１５では、ＣＰＵ１１からの指示に従いつつ、ＩＥＥＥ１３９４で規定されているプロトコルに従って、データ転送を制御するものとする。
【００１５】
なお、不揮発性メモリ１４および出力装置１６は、必ずしも備えている必要がない。不揮発性メモリ１４を備えていない場合には、その不揮発性メモリ１４内に保存すべきポート接続状態を、ＲＡＭ１３内に保存するようにすればよい。また、出力装置１６を備えていない場合には、詳細を後述するように、出力装置１６で出力すべき情報を、バス２０を介して他ノードへ送信するようにすればよい。
【００１６】
次に、以上のように構成された各ノード１０ａ〜１０ｅにおける特徴的な処理動作例、詳しくはバス初期化を行う場合の処理動作例について、図１のフローチャートを参照しながら説明する。
【００１７】
ＩＥＥＥ１３９４バスシステムでは、例えば新規ノードの追加時などシステム内のトポロジが変化したときに、そのシステム内の各ノードにおいて、バス２０による接続状態の初期化（以下、単に「バス初期化」と称す）が実行される。バス初期化にあたって、各ノードのＣＰＵ１１は、先ず、このＣＰＵ１１が有する図示せぬタイマー機能の変数「Timer 」を「０」にリセットした後に（ステップ１、以下ステップをＳと略す）、システム内のルートが決定したか否かを判定する（Ｓ２）。ルートの決定は、システム内の各ノードに対するバス２０の使用権の割り振りのために、ＩＥＥＥ１３９４規格において規定されている処理である。
【００１８】
ルートが決定したか否かの判定の結果、ルートが決定していなければ、ＣＰＵ１１は、「Timer 」の値を基に、初期化開始から所定時間「CONFIG TIMEOUT」が経過したか否かを調べる（Ｓ３）。このとき、所定時間「CONFIG TIMEOUT」が経過していなければ、ＣＰＵ１１は、「Timer 」の値をインクリメントして（Ｓ４）、再びシステム内のルートが決定したか否かを判定する（Ｓ２）。
【００１９】
一方、ルートが決定した場合、または、初期化開始から所定時間「CONFIG TIMEOUT」が経過した場合には、ＣＰＵ１１は、自ノードの全ポートについてのポート接続状態を検出して、その検出結果をCon1[i] （ｉはポート番号）とする（Ｓ５）。
【００２０】
ここで、ＣＰＵ１１によるポート接続状態の検出について詳しく説明する。
ＩＥＥＥ１３９４規格の一つであるＰ１３９４ａでは、物理層の制御を行うレジスタ（以下「ＰＨＹレジスタ」とする）が規定されており、そのＰＨＹレジスタによりポートの接続状態が分かる。
【００２１】
図４（ａ）は、Ｐ１３９４ａで規定されているＰＨＹレジスタのフォーマットである。このＰＨＹレジスタのフォーマットによれば、アドレス00102 のTotal ＿ports フィールドから、ノードのポート数が分かる。また、アドレス01112 のPage＿ Select フィールドを0002に設定し、Port＿ Select フィールドにポート番号を指定すれば、各ポートに対応するPort Status ページを参照できる。
【００２２】
図４（ｂ）は、当該ポートに対応するPort Status ページのフォーマットである。このPort Status ページのフォーマットによれば、アドレス10002 のConnected フィールドから、当該ポートの接続状態が分かる。さらに詳しくは、Connected フィールドが「１」であれば当該ポートにノードが接続されており、逆にConnected フィールドが「０」であれば当該ポートにノードが接続されていないことが分かる。
【００２３】
したがって、ＣＰＵ１１は、ＰＨＹレジスタを参照することで、自ノードの全ポートについてのポート接続状態を検出することができる。
【００２４】
その後、ＣＰＵ１１は、図１に示すように、「Timer 」の値と所定時間「CONFIG TIMEOUT」とを比較する（Ｓ６）。このとき、「Timer 」の値と所定時間「CONFIG TIMEOUT」とが一致していれば、ルートが決定していないにも拘わらず、初期化開始から所定時間「CONFIG TIMEOUT」が経過したことになる。すなわち、所定時間「CONFIG TIMEOUT」が経過しても、ルートは決定していない。したがって、ＣＰＵ１１は、システム内のトポロジ中にループが存在すると判断し、後述するエラーリカバリ処理を実行する（Ｓ１３〜Ｓ１７）。
【００２５】
また、「Timer 」の値と所定時間「CONFIG TIMEOUT」とが一致していない場合には、既にルートが決定しているので、ＣＰＵ１１は、バスの初期化終了を示すサブアクションギャップを検出するまで、ＩＥＥＥ１３９４インタフェース１５を介してSelfＩＤパケットを受信する（Ｓ７，Ｓ８）。
【００２６】
SelfＩＤパケットとは、ＩＥＥＥ１３９４バスシステムにおける各ノードがバス初期化を行う際に授受するパケットであり、システム内の各ノードが自ノードの属性（例えばポートの接続状態）を他ノードに通知するために、他ノードに対してブロードキャストするパケットである。したがって、各ノードが受信したSelfＩＤパケット数により、ＩＥＥＥ１３９４バスシステムに接続されているノードの総数が分かる。
【００２７】
このことから、ＣＰＵ１１は、ＩＥＥＥ１３９４インタフェース１５を介して受信したSelfＩＤパケット数を基に、システム内のノード数が６３個以下であるか否かを判断する（Ｓ９）。ノード数が６４個以上ならば、ＣＰＵ１１は、後述するエラーリカバリ処理を実行する（Ｓ１３〜Ｓ１７）。
【００２８】
また、ノード数が６３個以下ならば、ＣＰＵ１１は、続いて、受信したSelfＩＤパケットを解析して、そのSelfＩＤパケットによって通知される各ノードの属性を認識する（Ｓ１０）。これにより、ＣＰＵ１１では、どのノードがどのノードに接続されているか、といったトポロジ情報を得ることができる。そして、ＣＰＵ１１は、SelfＩＤパケットを基に取得したトポロジ情報をさらに解析することで、システム内の各ノード間のホップ数を求め、そのホップ数が１６以下であるか否かを判断する（Ｓ１１）。ホップ数が１７以上ならば、ＣＰＵ１１は、後述するエラーリカバリ処理を実行する（Ｓ１３〜Ｓ１７）。
【００２９】
ただし、ホップ数が１６以下ならば、ＣＰＵ１１は、システム内のトポロジ中にループが存在しておらず、システム内のノード総数が６３個以下であり、しかも各ノード間のホップ数が１６以下であることから、システム内の各ノード間に誤接続が発生していないと判断し、先に求めたポートの接続状態Con1[i] の内容を、正常動作時のポート接続状態Con0[i] として、不揮発性メモリ１４内に保存して（Ｓ１２）、初期化処理を終了する。
【００３０】
一方、システム内のトポロジ中にループが存在する場合、システム内のノード総数が６４個以上である場合、または各ノード間のホップ数が１７以上である場合には、ＣＰＵ１１は、システム内の各ノード間に誤接続が発生していると判断し、エラーリカバリ処理を実行する。
【００３１】
エラーリカバリ処理とは、誤接続があると判断されたポートの接続状態Con1[i] を、それ以前に正常動作をしていたポート接続状態Con0[i] に復旧するための処理である。故に、エラーリカバリ処理を実行時には、不揮発性メモリ１４内に正常動作時のポート接続状態Con0[i] が保存されているものとする。
【００３２】
エラーリカバリ処理を行うのにあたって、ＣＰＵ１１は、先ず、ポート番号ｉを初期化した後に（Ｓ１３）、そのポート番号ｉについて、先に求めた接続状態Con1[i] の内容と不揮発性メモリ１４内に保持されている接続状態Con0[i] の内容とを比較する（Ｓ１４）。
【００３３】
この比較の結果が異なれば、ポートｉに新たなノードが接続されているので、ＣＰＵ１１は、そのポートｉにおける新たなノードとの接続を論理的に切断する（Ｓ１５）。具体的には、図４（ｂ）に示すPort Status ページのフォーマットにおいて、アドレス10002 のDisabledフィールドを「１」に設定することで、ポートｉにおける新たなノードとの接続を論理的に切断する。ただし、比較の結果が同一であれば、ポートｉには新たなノードが接続されていないので、ＣＰＵ１１は、切断を行わない。
【００３４】
その後、ＣＰＵ１１は、図１に示すように、上述のステップ（Ｓ１４，Ｓ１５）を自ノードの全ポートに対して行ったか否かを判定し（Ｓ１６）、全ポートに対し処理を行っていなければ、ポート番号ｉをインクリメントしながら（Ｓ１７）、上述のステップ（Ｓ１４，Ｓ１５）を繰り返す。そして、全ポートに対して処理を行うと、初期化処理を終了する。
【００３５】
つまり、ＣＰＵ１１は、自ノードの全ポートについて、先に求めた接続状態Con1[i] の内容と不揮発性メモリ１４内に保持されている接続状態Con0[i] の内容とを比較することで、新たなノードが接続されたポート、すなわち誤接続の原因となったポートを認識するとともに、その認識結果に応じて新たなノードとの接続を論理的に切断することで、エラーリカバリ処理を実行する。
【００３６】
次に、以上のような処理を行うノードによって構成されたＩＥＥＥ１３９４バスシステムにおいて、誤接続が発生した場合における処理の具体例について説明する。ただし、ここでは、誤接続の発生を、▲１▼ループが存在する場合、▲２▼ノード総数が超過した場合、▲３▼各ノード間のホップ数が超過した場合に分けて、順に説明する。
【００３７】
▲１▼ループが存在する場合
例えば、図２に示したＩＥＥＥ１３９４バスシステムにおけるノード１０ｄとノード１０ｅとの間が、新たに接続された場合について考える。
図５はＩＥＥＥ１３９４バスシステムにおけるノードの誤接続例としてループの存在を含む場合を示すブロック図であり、図６はノードにおけるポート接続状態を示す説明図である。
【００３８】
図５に示すように、ノード１０ｄとノード１０ｅとの間が新たに接続されると、このＩＥＥＥ１３９４バスシステムにおける各ノード１０ａ〜１０ｅは、バス初期化を開始する。ただし、ノード１０ｄとノード１０ｅとの間が接続されると、ノード１０ｂ，１０ｃ，１０ｄ，１０ｅによってループが形成されることとなる。そのため、各ノード１０ａ〜１０ｅにおいては、バス初期化の開始から所定時間「CONFIG TIMEOUT」が経過してもルートが決定しないため、バス初期化を中断して、自ノードの全ポートについてのポート接続状態を検出する。
【００３９】
例えば、ノード１０ｅにおいては、ポートP9とポートP11 とに他ノードが接続されていることから、図６（ａ）に示すポート接続状態を検出して、これをCon1[i] とする。そして、その接続状態Con1[i] の内容を、不揮発性メモリ１４内に保持されている接続状態Con0[i] の内容と比較する。このとき、不揮発性メモリ１４内には、図２のＩＥＥＥ１３９４バスシステムにおける接続状態、すなわち図６（ｂ）に示すポート接続状態Con0[i] が格納されている。よって、ノード１０ｅのＣＰＵ１０は、これらの比較結果から、ポートP11 に新たなノードが接続されたと認識し、ポートP11 におけるノード１０ｄとの接続を切断する。
【００４０】
これと同様に、ノード１０ｄにおいても、ポートP5におけるノード１０ｅとの接続を切断する。
【００４１】
このような処理をノード１０ｄおよびノード１０ｅが行うことにより、このＩＥＥＥ１３９４バスシステムでは、ノード１０ｄとノード１０ｅとの間が新たに接続されても、図５に示すトポロジから図２に示すトポロジへ論理的に復帰することになる。そのため、それ以降、バス初期化を再開すれば、このＩＥＥＥ１３９４バスシステムでは、正常動作を行い得る状態になる。
【００４２】
▲２▼ノード総数が超過した場合
続いて、新しいノードの接続によりトポロジにループは含まないが、ノード総数が６３個を超えてしまった場合について考える。
図７はＩＥＥＥ１３９４バスシステムにおけるノードの誤接続例としてノード総数超過の場合を示すブロック図である。
【００４３】
図例のように、このＩＥＥＥ１３９４バスシステムでは、ノード１０ｅに新たなノード１０ｆが接続されており、さらにノード１０ｆには図示しない６０個のノードが接続されている。なお、ノード１０ｆおよび６０個のノードは、ループを形成していない。
【００４４】
ノード１０ｅとノード１０ｆとの間が新たに接続されると、このＩＥＥＥ１３９４バスシステムを構成する各ノードは、バス初期化を開始する。そして、ルートの決定、および自ノードの全ポートについてのポート接続状態の検出を経た後に、各ノードは、他ノードからのSelfＩＤパケットを受信する。
【００４５】
このとき、例えば、ノード１０ｅにおいては、ノード１０ａ〜１０ｄ、ノード１０ｆおよびこれに接続する６０個のノードのそれぞれから、合わせて６６個のSelfＩＤパケットを受信する。このことから、ノード１０ｅのＣＰＵ１０は、システム内のノード総数が６３以上であると判断する。さらに、先に検出したポート接続状態Con1[i] を、不揮発性メモリ１４内の接続状態Con0[i] と比較して、ポートP11 に新たなノードが接続されたと認識する。そして、そのポートP11 におけるノード１０ｆとの接続を切断する。
【００４６】
これと同様に、ノード１０ｆにおいても、ポートP12 におけるノード１０ｅとの接続を切断する。
【００４７】
このような処理をノード１０ｅおよびノード１０ｆが行うことにより、このＩＥＥＥ１３９４バスシステムでは、ノード１０ｅとノード１０ｆとの間が新たに接続されても、図７に示すトポロジから図２に示すトポロジへ論理的に復帰することになる。そのため、それ以降、バス初期化を再開すれば、このＩＥＥＥ１３９４バスシステムでは、正常動作を行い得る状態になる。
【００４８】
▲３▼各ノード間のホップ数が超過した場合
続いて、新しいノードの接続によりトポロジにループは含まず、しかもノード総数が６３個以下であるが、各ノード間のホップ数が１６を超えてしまった場合について考える。
図８はＩＥＥＥ１３９４バスシステムにおけるノードの誤接続例としてホップ数超過の場合を示すブロック図である。
【００４９】
図例のように、このＩＥＥＥ１３９４バスシステムでは、ノード１０ｅに新たなノード１０ｇ〜ｕがデイジーチェーン状に接続されている。
ノード１０ｅとノード１０ｇとの間が新たに接続されると、このＩＥＥＥ１３９４バスシステムを構成する各ノードは、バス初期化を開始する。そして、ルートの決定、および自ノードの全ポートについてのポート接続状態の検出を経た後に、各ノードは、他ノードからのSelfＩＤパケットを受信する。
【００５０】
このとき、例えば、ノード１０ｅにおいては、ノード１０ａ〜１０ｄ、ノード１０ｇ〜ｕから、合わせて１９個のSelfＩＤパケットを受信する。そして、ノード１０ｅのＣＰＵ１０は、受信したSelfＩＤパケットを解析しトポロジ情報を得て、そのトポロジ情報からホップ数が１７であることを求め、システム内の最大ホップ数が１７以上であると判断する。さらに、先に検出したポート接続状態Con1[i] を、不揮発性メモリ１４内の接続状態Con0[i] と比較して、ポートP11 に新たなノードが接続されたと認識する。そして、そのポートP11 におけるノード１０ｇとの接続を切断する。これと同様に、ノード１０ｇにおいても、ノード１０ｅとの接続を切断する。
【００５１】
このような処理をノード１０ｅおよびノード１０ｇが行うことにより、このＩＥＥＥ１３９４バスシステムでは、ノード１０ｅとノード１０ｇとの間が新たに接続されても、図８に示すトポロジから図２に示すトポロジへ論理的に復帰することになる。そのため、それ以降、バス初期化を再開すれば、このＩＥＥＥ１３９４バスシステムでは、正常動作を行い得る状態になる。
【００５２】
以上のように、本実施の形態におけるノードは、請求項１に記載した発明の如く、他ノードとの間の接続状態に異常があれば、その原因となる接続箇所における他ノードとの接続を論理的に切断するようになっている。したがって、本実施の形態のノードを用いてＩＥＥＥ１３９４バスシステムを構築すれば、そのＩＥＥＥ１３９４バスシステムにおいては、各ノード間の誤接続によって異常が生じた場合であっても、その異常の原因となる接続箇所の切断により、異常発生前の正常な動作状態に自動的に復帰するようになる。つまり、システム内のトポロジに異常が発生しても、迅速な障害復旧を行い得るようになる。
【００５３】
しかも、本実施の形態のノードでは、ＬＡＮ等のネットワークシステムの場合のように、障害復旧を可能にするために接続情報等をデータベース化したり、そのデータベース内の情報を基に障害箇所を明示する必要がない。そのため、例えばＩＥＥＥ１３９４バスシステムのように、トポロジに異常が発生するとシステム全体が正常に動作しなくなる場合であっても、本実施の形態のノードを用いて構築することにより、迅速な障害復旧が可能となる。
【００５４】
特に、本実施の形態のノードは、請求項２に記載した発明の如く、ループの存在、ノード総数が６４個以上、または各ノード間のホップ数が１７以上、といった各ノード間の誤接続があると、その誤接続をトポロジの異常として判断するようになっている。したがって、このノードを用いてＩＥＥＥ１３９４バスシステムを構築すれば、システム内におけるデータ転送を開始できなかったり、正確なデータ転送が保証されなくなるのを避けられる。つまり、システム内の全ノードの接続状態を常に把握していなくても、あるいはＩＥＥＥ１３９４規格を十分に理解していなくても、各ノードが誤接続されてしまうのを防止でき、結果としてシステムの正常動作を確保できるようになる。
【００５５】
また、本実施の形態のノードは、請求項３に記載した発明の如く、正常動作時のポート接続状態Con0[i] を不揮発性メモリ１４内に保存するとともに、誤接続があると判断されたポートの接続状態Con1[i] を、その不揮発性メモリ１４内のポート接続状態Con0[i] と比較することで、その誤接続の原因となる接続箇所を認識するようになっている。つまり、本実施の形態のノードでは、新規ノードの追加によりトポロジに異常が発生しても、その原因となる接続箇所（ポート）を正しく認識することができる。したがって、その認識結果に応じて接続箇所の切断を行うことにより、確実に正常な動作状態へ復帰することができる。
【００５６】
しかも、本実施の形態のノードでは、請求項４に記載した発明の如く、システム内の各ノード間に誤接続が発生してなければ、そのときのポートの接続状態Con1[i] の内容を、正常動作時のポート接続状態Con0[i] として、不揮発性メモリ１４内に保存するようになっている。つまり、システム内のトポロジに異常がないと判断する都度、不揮発性メモリ１４内のポート接続状態Con0[i] を更新する。そのため、このノードを用いてＩＥＥＥ１３９４バスシステムを構築すれば、新規ノードの追加や削除等、システム構成の変更に柔軟に対応しつつ、異常発生に対する迅速な障害復旧が可能になる。
【００５７】
なお、本実施の形態では、請求項５に記載した発明の如く、正常動作時のポート接続状態Con0[i] を不揮発性メモリ１４内に保存する場合について説明したが、本発明はこれに限定されるものではない。すなわち、ポート接続状態Con0[i] を、不揮発性メモリ１４ではなく、ＲＡＭ１３内に保存するようにしてもよい。ただし、本実施の形態のように、ポート接続状態Con0[i] を不揮発性メモリ１４内に保存すれば、ノードの電源オフ時でもポート接続状態Con0[i] が消去されないため、例えば電源オフ時に誤接続となる新規ノードの追加接続があっても、その後の電源オン時に正常な接続状態に復帰できるようになる。
【００５８】
次に、以上のような正常状態への復帰処理の内容をノードの利用者へ通知するための処理動作例について説明する。
図９および図１０は、それぞれ利用者へのエラー通知の具体例を示す説明図である。
上述したような切断処理を行って、ＩＥＥＥ１３９４に準拠したトポロジへの復帰を行うと、当該切断処理を行ったノードでは、液晶ディスプレイやプリンタなどの出力装置１６を通じて、誤接続の内容に関する情報およびこれに伴う切断箇所（ポート）に関する情報を表示出力して、当該切断処理の内容を利用者に対して通知する。
【００５９】
例えば、ノード１０ｅでポートP11 についての切断処理が行われると、そのノード１０ｅのＣＰＵ１１は、図９に示すような表示を出力装置１６に行わせる。これにより、出力装置１６からは、自ノード１０ｅ、切断処理がなされたポートP11 および誤接続の内容（ループの存在等）についての画像および文字が、表示出力されることとなる。なお、切断処理がなされたポートP11 は、その表示画像中で「×印」等によって識別し得るようにすればよい。
【００６０】
また、例えば、ノード１０ｅのＣＰＵ１１は、図１０に示すような表示を出力装置１６に行わせてもよい。この場合、ＣＰＵ１１は、他ノードから受信したSelfＩＤパケットを基に取得したトポロジ情報から、システム全体のトポロジと、切断処理がなされたポートP5，P11 の箇所と、誤接続の内容（ループの存在等）とを、出力装置１６に表示出力させる。なお、この場合も、切断処理がなされたポートP5およびP11 については、「×印」等によって識別し得るようにすればよい。
【００６１】
以上のように、本実施の形態におけるノードは、請求項６および７に記載した発明の如く、誤接続の原因となる接続についての切断処理を行うと、その誤接続の内容に関する情報およびこれに伴う切断箇所に関する情報を出力装置１６から表示出力して、その切断処理の内容を利用者に対して通知するようになっている。したがって、そのノードの利用者にとっては、誤接続のあった箇所を迅速かつ正確に把握できるので、非常に便利なものとなる。また、利用者は、異常発生の原因を特定できるため、その異常発生に容易に対応できるようになる。
【００６２】
ただし、ＩＥＥＥ１３９４バスシステムを構成する各ノードの中には、出力装置１６を備えていないものが存在することも考えられる。すなわち、切断処理を行ったノードが、出力装置１６を備えていない場合もあり得る。このような場合に、当該ノードのＣＰＵ１１は、誤接続の内容に関する情報およびこれに伴う切断箇所に関する情報を、システム内の他ノードへ送信して出力させればよい。
【００６３】
具体的には、例えば、ノード１０ｅでポートP11 についての切断処理が行われたにも拘わらず、そのノード１０ｅが出力装置１６を備えていなければ、そのノード１０ｅのＣＰＵ１１は、他ノードから受信したSelfＩＤパケットを基に、出力装置１６を持つ他ノードを探し出し、探し出した他ノードに対して現在のトポロジ情報と切断したポート番号に関する情報とを、ＩＥＥＥ１３９４インタフェース１５およびバス２０を介して送信する。これにより、出力装置１６を持つ他ノードは、送信された情報に基づいて、誤接続の内容と切断箇所を利用者に通知することになる。
【００６４】
つまり、本実施の形態におけるノードは、請求項８および９に記載した発明の如く、誤接続の内容に関する情報およびこれに伴う切断箇所に関する情報を、システム内の他ノードへ送信させるように構成されたものであってもよい。この場合には、出力装置１６を備えていなくても、切断処理の内容を利用者に通知し得るようになるので、利用者に利便性等を提供しつつ、構成の簡素化や小型化等の実現が容易になる。
【００６５】
なお、本実施の形態では、ＩＥＥＥ１３９４バスシステムを構成するノードに本発明を適用した場合を例に挙げて説明したが、本発明はこれに限定されるものではない。すなわち、他の規格に準拠するバスシステムを構成するノードであっても、そのバスシステムが高性能シリアルバスを介して複数のノードを相互接続するものであれば、同様に適用することが考えられる。
【００６６】
【発明の効果】
以上に説明したように、本発明の情報処理装置は、他の情報処理装置との間の接続状態に異常があれば、その原因となる接続箇所を認識し、その認識結果に応じて他の情報処理装置との接続を切断し得るようになっている。例えば、他の情報処理装置が新たに追加接続された結果、接続状態に異常が発生した場合に、その異常の原因となった接続箇所の接続を論理的に切断する。したがって、この情報処理装置を用いてバスシステムを構築すれば、各情報処理装置間の誤接続によって異常が生じた場合であっても、その異常の原因となる接続箇所の切断により、異常発生前の正常な動作状態に自動的に復帰するようになる。つまり、バスシステム内では、接続状態に異常が発生しても、迅速な障害復旧を行い得るようになる。しかも、この情報処理装置では、ＬＡＮ等のネットワークシステムの場合のように、障害復旧を可能にするために接続情報等をデータベース化したり、そのデータベース内の情報を基に障害箇所を明示する必要がないため、異常発生時には正常に動作しなくなるバスシステムに用いても、そのバスシステムでの迅速な障害復旧を実現することができる。
【図面の簡単な説明】
【図１】  本発明に係る情報処理装置における処理動作の一例を示すフローチャートである。
【図２】  本発明に係る情報処理装置によって構成されたバスシステムの一構成例を示すブロック図である。
【図３】  本発明に係る情報処理装置の概略構成の一例を示すブロック図である。
【図４】  ＩＥＥＥ１３９４規格の一つであるＰ１３９４ａで規定されるＰＨＹレジスタの構成例を示す説明図であり、（ａ）はＰＨＹレジスタのフォーマット例を示す図、（ｂ）は各ポートに対応するPort Status ページのフォーマット例を示す図である。
【図５】  誤接続が発生しているバスシステムの構成例を示すブロック図（その１）である。
【図６】  ポートの接続状態の具体例を示す説明図であり、（ａ）は新規接続後の状態の図、（ｂ）は新規接続前の状態の図である。
【図７】  誤接続が発生しているバスシステムの構成例を示すブロック図（その２）である。
【図８】  誤接続が発生しているバスシステムの構成例を示すブロック図（その３）である。
【図９】  利用者へのエラー通知の具体例を示す説明図（その１）である。
【図１０】  利用者へのエラー通知の具体例を示す説明図（その２）である。
【図１１】  従来のバスシステムの一構成例を示すブロック図である。
【符号の説明】
１０ａ〜１０ｕ…ノード（情報処理装置）、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…不揮発性メモリ、１５…ＩＥＥＥ１３９４インタフェース、１６…出力装置、２０…ＩＥＥＥ１３９４シリアルバス
【図１】
0003649024.tif 000002
【図２】
0003649024.tif 000003
【図３】
0003649024.tif 000004
【図４】
0003649024.tif 000005
【図５】
0003649024.tif 000006
【図６】
0003649024.tif 000007
【図７】
0003649024.tif 000008
【図８】
0003649024.tif 000009
【図９】
0003649024.tif 000010
【図１０】
0003649024.tif 000011
【図１１】
0003649024.tif 000012