(57)【特許請求の範囲】
【請求項１】
自装置を制御する制御部と、他の情報処理装置と通信を行うクロスバー部と、を有する情報処理装置において、
前記制御部は、
当該情報処理装置が使用される装置として割り当てられているか否かを示す情報と、当該情報処理装置の電源が投入されているか否かを示す情報と、他の情報処理装置との間でメモリの共有が行われているか否かを示す情報を記憶する制御情報記憶部と、
前記制御情報記憶部が記憶する情報に基づいてクロスバー診断の対象範囲を特定する特定部と、
前記クロスバー部に対して前記対象範囲のクロスバー診断を指示する指示部を備え、
前記クロスバー部は、
接続先のポートの情報を含むポート情報を記憶したポート情報記憶部と、
前記ポート情報記憶部に記憶されたポート情報に基づいてクロスバー診断を行う診断部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記制御部は、
前記特定部により特定された対象範囲の電源投入を行う投入部
をさらに備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
前記特定部により特定された対象範囲に基づいて前記ポート情報を作成する作成部と、
前記作成部により作成されたポート情報を前記ポート情報記憶部に設定する設定部と
をさらに備えたことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
複数のクロスバー部を有し、各クロスバー部は複数のポートを有し、
前記特定部は、クロスバー診断の対象範囲として、当該情報処理装置、特定のクロスバー部又は特定のポートを特定することを特徴とする請求項１、２又は３に記載の情報処理装置。
【請求項５】
前記クロスバー部は、複数のポートを備えてポート毎に前記ポート情報記憶部を有し、
前記診断部は、複数のポートを対象としてクロスバー診断を行うことを特徴とする請求項１〜４のいずれか１つに記載の情報処理装置。
【請求項６】
情報処理装置を制御する制御部と、他の情報処理装置の処理部と通信を行うクロスバー部とを有する当該情報処理装置の診断方法において、
前記制御部が、当該情報処理装置が使用される装置として割り当てられているか否かを示す情報と、当該情報処理装置の電源が投入されているか否かを示す情報と、他の情報処理装置との間でメモリの共有が行われているか否かを示す情報に基づいてクロスバー診断の対象範囲を特定し、特定した対象範囲のクロスバー診断を前記クロスバー部に対して指示し、
前記クロスバー部が、接続先のポートの情報を含めて記憶部に記憶したポート情報に基づいてクロスバー診断を行う
ことを特徴とする診断方法。
【請求項７】
情報処理装置を制御する制御部と、他の情報処理装置の処理部と通信を行うクロスバー部とを有する当該情報処理装置のクロスバー診断を行う診断プログラムにおいて、
コンピュータに、
当該情報処理装置が使用される装置として割り当てられているか否かを示す情報と、当該情報処理装置の電源が投入されているか否かを示す情報と、他の情報処理装置との間でメモリの共有が行われているか否かを示す情報に基づいてクロスバー診断の対象範囲を特定し、
特定した対象範囲のクロスバー診断を、接続先のポートの情報を含むポート情報を記憶したポート情報記憶部と前記ポート情報記憶部に記憶されたポート情報に基づいてクロスバー診断を行う診断部とを備える前記クロスバー部に指示する
処理を実行させることを特徴とする診断プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、診断方法及び診断プログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central  Processing  Unit）とメモリを備えた情報処理装置を複数組み合わせた情報処理システムが利用されている。かかる情報処理システムでは、情報処理装置の間をクロスバー（ＸＢ）で接続することにより、異なる情報処理装置のＣＰＵ間での通信が可能となっている。
【０００３】
クロスバーが故障すると、情報処理装置間で通信することができなくなり、クロスバーの故障は情報処理システム全体に影響を与える。したがって、情報処理システムの信頼性向上のためには、クロスバー診断が重要となる。
【０００４】
このため、ＣＰＵの指示により、クロスバスイッチに対して、障害が検出されたデータ転送におけるデータ転送元のノードから他のノードへテストパタンを送出することで障害箇所を特定するクロスバー診断技術がある。
【０００５】
また、スイッチに障害が発生した場合、障害が発生したスイッチを備えたノード間クロスバスイッチ以外のクロスバスイッチを経由してノード間のデータ転送を行うよう制御することで、システムダウンを防止する従来技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２４２５２０号公報
【特許文献２】特開２００６−３９８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＣＰＵの指示によるクロスバー診断技術には、ＣＰＵが情報処理システムで使用中の場合、情報処理システムの運用を停止しないと、診断が行えないという問題がある。
【０００８】
本発明は、１つの側面では、情報処理システムの運用を継続したままクロスバー診断を行うことを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する情報処理装置は、１つの態様において、自装置を制御する制御部と、他の情報処理装置と通信を行うクロスバー部とを有する。前記制御部は、当該情報処理装置が使用される装置として割り当てられているか否かを示す情報と、当該情報処理装置の電源が投入されているか否かを示す情報と、他の情報処理装置との間でメモリの共有が行われているか否かを示す情報を記憶する制御情報記憶部と、前記制御情報記憶部が記憶する情報に基づいてクロスバー診断の対象範囲を特定する特定部と、前記クロスバー部に対して前記対象範囲のクロスバー診断を指示する指示部を備える。前記クロスバー部は、接続先のポートの情報を含むポート情報を記憶したポート情報記憶部と、前記ポート情報記憶部に記憶されたポート情報に基づいてクロスバー診断を行う診断部とを備える。
【発明の効果】
【００１０】
１実施態様によれば、情報処理システムの運用を継続したままクロスバー診断を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、クロスバーを説明するための図である。
【図２】図２は、クロスバーボックスを説明するための図である。
【図３】図３は、クロスバーの冗長化を説明するための図である。
【図４】図４は、クロスバーボックスの冗長化を説明するための図である。
【図５】図５は、診断用パーティションを用いたクロスバー診断を説明するための図である。
【図６】図６は、ＣＭＩ機能を説明するための図である。
【図７】図７は、ＣＭＩ有効時の問題を説明するための図である。
【図８】図８は、実施例に係るクロスバー診断を説明するための図である。
【図９】図９は、診断可能範囲を示す図である。
【図１０】図１０は、実施例に係る情報処理システムの構成を示す図である。
【図１１】図１１は、パーティション構成情報の一例を示す図である。
【図１２】図１２は、パーティション稼働情報の一例を示す図である。
【図１３】図１３は、電源投入のパターンを説明するための図である。
【図１４】図１４は、ＸＢＵの構成を示す図である。
【図１５】図１５は、ビルディングブロック構成のポート情報設定値の一例を示す図である。
【図１６】図１６は、クロスバーボックス構成のポート情報設定値の一例を示す図である。
【図１７】図１７は、クロスバーテストを説明するための図である。
【図１８】図１８は、クロスバー診断のシーケンスを示す図である。
【図１９】図１９は、電源投入パターンを判定する処理のフローを示すフローチャートである。
【図２０】図２０は、電源投入パターンの判定例＃１を示す図である。
【図２１】図２１は、電源投入パターンの判定例＃２を示す図である。
【図２２】図２２は、電源投入パターンの判定例＃３を示す図である。
【図２３】図２３は、電源投入パターンの判定例＃４を示す図である。
【図２４】図２４は、電源投入パターンの判定例＃５を示す図である。
【図２５】図２５は、電源投入パターンの判定例＃６を示す図である。
【図２６】図２６は、パターン＃１の場合の診断専用の電源投入処理のフローを示すフローチャートである。
【図２７】図２７は、パターン＃２の場合の診断専用の電源投入処理のフローを示すフローチャートである。
【図２８】図２８は、パターン＃３の場合の診断専用の電源投入処理のフローを示すフローチャートである。
【図２９】図２９は、ポート情報の設定例＃１を示す図である。
【図３０】図３０は、ポート情報の設定例＃２を示す図である。
【図３１】図３１は、ポート情報の設定例＃３を示す図である。
【図３２】図３２は、ポート情報の設定例＃４を示す図である。
【図３３】図３３は、ＸＢケーブルテストの処理フローを示すフローチャートである。
【図３４】図３４は、ＸＢポートテストの処理フローを示すフローチャートである。
【図３５】図３５は、ＸＢケーブルテストの例（正常）を示す図である。
【図３６】図３６は、ＸＢケーブルテストの例（エラー検出）を示す図である。
【図３７】図３７は、ＸＢポートテストの例（正常）を示す図である。
【図３８】図３８は、ＸＢポートテストの例（エラー検出）を示す図である。
【図３９】図３９は、診断の実行例を示す図である。
【図４０】図４０は、エラーログの例を示す図である。
【図４１】図４１は、実施例に係る診断プログラムを実行するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する情報処理装置、診断方法及び診断プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１３】
まず、クロスバーについて説明する。図１は、クロスバーを説明するための図である。図１に示すように、クロスバーは、ビルディングブロック６間をクロスバーケーブル２０で接続することにより、ビルディングブロック６に搭載されたＣＰＵ８１間での通信を可能にする。ここで、ビルディングブロック６は情報処理システムを構築する単位装置であり、任意の個数のビルディングブロック６を組み合わせることで、スケーラブルな情報処理システムを構築することができる。
【００１４】
ビルディングブロック６は、システムボード８とＸＢＵ（クロスバーユニット）９とを有する。システムボード８は、ＣＰＵ８１とメモリ８２とを有し、情報処理を行う。ＸＢＵ９は、ＣＰＵ８１間のデータ転送を制御する装置であり、クロスバーケーブル２０を介して他のＸＢＵ９に接続される。
【００１５】
図２は、クロスバーボックスを説明するための図である。図２に示すように、クロスバーボックス２は、ＸＢＵ４を有し、多数のビルディングブロック６をクロスバーで結ぶことを可能にした装置である。図２では、３台のビルディングブロック６がクロスバーで接続されている。
【００１６】
ＸＢＵ４は、クロスバーケーブル２０でビルディングブロック６のＸＢＵ９と接続され、ＸＢＵ９間のデータ転送を制御する。各ビルディングブロック６は、クロスバーケーブル２０でクロスバーボックス２に接続される。クロスバーボックス２は、ビルディングブロック６間のデータ通信をルーティング制御することで、ビルディングブロック６間のデータ通信を可能にする。
【００１７】
図３は、クロスバーの冗長化を説明するための図である。図３に示すように、ビルディングブロック６は、２台のＸＢＵ９を搭載し、２つのクロスバーケーブル２０を用いて他のビルディングブロック６と接続する。したがって、どちらか一方の通信経路が故障によって通信不能に陥っても、もう一方の通信経路を使用することで、情報処理システムの運用の継続が可能になる。
【００１８】
図４は、クロスバーボックス２の冗長化を説明するための図である。図４に示すように、ビルディングブロック６は、２台のＸＢＵ９を搭載し、クロスバーケーブル２０を用いて２台のクロスバーボックス２と接続する。したがって、どちらか一方の通信経路が故障によって通信不能に陥っても、もう一方の通信経路を使用することで、情報処理システムの運用の継続が可能になる。
【００１９】
次に、クロスバー診断について説明する。図５は、診断用パーティションを用いたクロスバー診断を説明するための図である。ここで、パーティションとは、ビルディングブロック６をグループ化することによって情報処理システムを分割したものである。例えば、複数のビルディングブロック６から構築される情報処理システムは、ユーザ毎のパーティションに分割される。
【００２０】
パーティションは、独立した情報処理システムであり、他のパーティションの影響を受けない。図５において、ユーザ環境パーティション６２は、ユーザにより使用されているビルディングブロック６の集まりであり、診断用パーティション６３は、クロスバー診断の対象のビルディングブロック６の集まりである。このように、診断用パーティション６３を構築することで、ユーザ環境に影響を与えることなくクロスバー診断を行うことができる。
【００２１】
しかし、ＣＭＩ（Common  Memory  Interface）機能が有効な場合には、診断用パーティション６３を用いても、ユーザ環境パーティション６２に影響を与える。ここで、ＣＭＩ機能とは、複数のパーティションでメモリ８２を共有使用する機能である。
【００２２】
図６は、ＣＭＩ機能を説明するための図である。本来、ＣＰＵ８１のアクセス対象は同一パーティショ６１内のものに限定される。しかし、ＣＭＩ機能を有効にすると、ＣＰＵ８１は、パーティション６１をまたがってメモリ８２にアクセスすることができる。図６は、あるパーティション６１のメモリ８２内の共有メモリ８２ａが、他のパーティション６１のＣＰＵ８１にアクセスされる場合を示す。
【００２３】
図６に示すように、ＣＰＵ８１が他のパーティション６１のメモリ８２にアクセスする場合には、クロスバー通信が使用される。すなわち、ＣＰＵ８１は、ＸＢＵ９を介して他のビルディングブロック６のメモリ８２にアクセスする。
【００２４】
図７は、ＣＭＩ有効時の問題を説明するための図である。ＣＭＩ機能が有効の場合、ハードウェア仕様によりクロスバー通信によるアクセスは、共有メモリ８２ａへのアクセスに限定される。しかし、共有メモリ８２ａを設定すると、ハードウェアの機能によって、共有メモリ８２ａは全パーティション６１からアクセス可能になってしまう。図７において、ユーザ環境パーティション６２の共有メモリ８２ａは、診断用パーティション６３のＣＰＵ８１からもアクセスが可能である。
【００２５】
また、ＣＭＩ機能が有効の場合、ビルディングブロック６の故障を全パーティション６１に通知する機能がハードウェアに備わっている。そのため、クロスバー診断中に故障が発生すると、故障通知がユーザ環境を含む全パーティション６１に通知されてしまう。
【００２６】
そこで、実施例に係るクロスバー診断は、ＣＭＩ有効時、ユーザ環境に影響を与えないようクロスバーを診断する。すなわち、実施例に係るクロスバー診断は、ＣＭＩ機能が有効の際、クロスバー診断によるユーザ環境パーティション６２への影響をなくす。
【００２７】
図８は、実施例に係るクロスバー診断を説明するための図である。図８に示すように、実施例に係るクロスバー診断は、   診断環境すなわち診断用パーティション６３に共有メモリ８２ａを作成しないでクロスバーの診断を行うとともに、ユーザ環境の共有メモリ８２ａに診断環境からアクセスさせない。また、実施例に係るクロスバー診断は、診断環境で発生した故障をユーザ環境に通知させないとともに、ユーザ環境の故障通知を診断環境で受け付けさせない。
【００２８】
また、クロスバー診断には、クロスバーボックス２とビルディングブロック６単体の構成でクロスバー診断ができないという問題がある。クロスバー通信は、ＣＰＵ８１、メモリ８２同士のアクセスを用いて実施される。そのため、クロスバー通信には、送信元及び送信先の双方にＣＰＵ８１、メモリ８２が必要になる。しかしながら、ＣＰＵ８１、メモリ８２は、クロスバーボックス２には搭載されておらず、ビルディングブロック６にのみ搭載されている。そのためクロスバーを診断するには２台以上のビルディングブロック６が必要になる。
【００２９】
そこで、実施例に係るクロスバー診断では、ビルディングブロック６は、ＣＰＵ８１、メモリ８２を搭載していないクロスバーボックス２を相手にクロスバー通信を行い、ビルディングブロック６が１台であっても、クロスバー診断を可能にする。すなわち、実施例に係るクロスバー診断では、図９に示す診断範囲６６での診断が可能である。
【００３０】
また、クロスバー診断には、クロスバーボックス２の診断の際に、全ビルディングブロック６を停止させなければならないという問題がある。クロスバーは冗長構成のため、１台のクロスバーボックス２を診断対象にしたい場合、もう１台のクロスバーボックス２とビルディングブロック６はユーザ環境で使用中の可能性がある。また、クロスバーボックス２は、全てのビルディングブロック６にクロスバーケーブル２０で接続されている。そのため、クロスバーボックス２を診断したい場合、全てのビルディングブロック６を対象にクロスバー通信をする必要がある。
【００３１】
しかし、クロスバー通信は、ＣＰＵ８１、メモリ８２を使用して実施されるため、診断には各ビルディングブロック６のＣＰＵ８１、メモリ８２が必要になる。したがって、クロスバーボックスを診断する場合、ユーザ使用中の全てのビルディングブロック６を停止させる必要がある。
【００３２】
そこで、実施例に係るクロスバー診断では、クロスバーボックス２は、ビルディングブロック６に搭載されたＸＢＵ９を対象にクロスバー通信を行い、ユーザ環境で使用中のビルディングブロック６を停止させることなく、クロスバーボックス２の診断を可能にする。すなわち、実施例に係るクロスバー診断では、図９に示す診断範囲６７での診断が可能である。
【００３３】
次に、実施例に係る情報処理システムの構成について説明する。図１０は、実施例に係る情報処理システムの構成を示す図である。図１０に示すように、情報処理システム１は、２台のクロスバーボックス２と、８台のビルディングブロック６と、ユーザ端末１０とを有する。図１０では、２台のクロスバーボックス２は、ＸＢＢＯＸ＃８０及びＸＢＢＯＸ＃８１で表され、８台のビルディングブロック６は、ＢＢ＃０〜ＢＢ＃７で表される。
【００３４】
なお、「ＸＢ」はクロスバーを表し、「ＸＢＢＯＸ」はクロスバーボックスを表し、「ＢＢ」はビルディングブロックを表す。また、ここでは説明の便宜上、８台のビルディングブロック６を示したが、情報処理システム１は、より多くの台数又はより少ない台数のビルディングブロック６を有してよい。
【００３５】
クロスバーボックス２は、ＸＳＣＦ３とＸＢＵ４とを有する。ビルディングブロック６は、ＸＳＣＦ７と、システムボード８と、２台のＸＢＵ９とを有する。ユーザ端末１０は、ユーザが使用するＰＣ（Personal  Computer）である。ユーザ端末１０はＬＡＮ（Local  Area  Network）１１によりＸＳＣＦ３に接続されており、ユーザはユーザ端末１０からＸＳＣＦ３にパーティション構成の指定、クロスバー診断の指示、電源制御指示などを行うことができる。
【００３６】
ＸＳＣＦ３は、クロスバーボックス２を制御するシステム制御機構である。ＸＳＣＦ７は、ビルディングブロック６を制御するシステム制御機構である。情報処理システム１は、マスターとして動作する１台のＸＳＣＦ３とスレーブとして動作する８台のＸＳＣＦ７で構成されており、各ＸＳＣＦは内部ＬＡＮ１２で接続されている。
【００３７】
スレーブは装置内のハードウェア制御を行い、マスターはユーザにサービスを提供する。ユーザはマスターに対してサービス要求を行い、要求を受けたマスターはスレーブへの指示と、スレーブからの情報収集を行う。なお、マスターはスレーブ機能も兼ねている。また、図１０では、クロスバーボックス２のＸＳＣＦ３がマスターである場合を示すが、クロスバーボックス２を用いない場合などで、ビルディングブロック６のＸＳＣＦ７がマスターとして動作してもよい。
【００３８】
ＸＳＣＦ３は、情報を記憶する記憶部３ａと、記憶部３ａを用いて制御を行う制御部３ｂとを有する。ＸＳＣＦ７は、情報を記憶する記憶部７ａと、記憶部７ａを用いて制御を行う制御部７ｂとを有する。記憶部３ａ及び記憶部７ａは、パーティション構成情報３０ａと、パーティション稼働情報３０ｂと、ＣＭＩ情報３０ｃとを記憶する。制御部３ｂは、診断部３１と、構成判定部３２と、ハード制御部３３と、ＲＡＳ制御部３４と、ＢＢ間通信部３５とを有する。制御部７ｂは、構成判定部３２と、ハード制御部３３と、ＲＡＳ制御部３４と、ＢＢ間通信部３５とを有する。
【００３９】
パーティション構成情報３０ａは、パーティション６１の構成及び各ビルディングブロック６の状態を示す情報である。図１１は、パーティション構成情報３０ａの一例を示す図である。図１１に示すように、パーティション構成情報３０ａには、ＢＢＩＤと、ＰＰＡＲと、割当状態と、電源状態と、接続状態と、設定状態と、試験状態と、故障状態とが含まれる。
【００４０】
ＢＢＩＤは、ビルディングブロック６を識別する番号である。ＰＰＡＲは、ビルディングブロック６が含まれるパーティション６１を識別する番号である。割当状態は、ビルディングブロック６がいずれかのパーティション６１に割り当てられている（Ａ）か否（ＮＡ）かを示す。電源状態は、ビルディングブロック６の電源が投入されている（ｙ）か否（ｎ）かを示す。
【００４１】
接続状態は、ビルディングブロック６がパーティション６１を構成するように接続されている（ｙ）か否（ｎ）かを示す。設定状態は、ビルディングブロック６が使用可能なように設定されている（ｙ）か否（ｎ）かを示す。試験状態は、ビルディングブロック６が試験にパスした（Ｐ）か否（ＮＰ）を示す。故障状態は、ビルディングブロック６が正常である（Ｎ）か否（Ｆ）かを示す。
【００４２】
例えば、番号が「０」のビルディングブロック６は、番号が「０」のパーティション６１に割り当てられ、電源が投入済みで、使用可能であり、試験にパスし、正常な状態である。
【００４３】
パーティション稼働情報３０ｂは、パーティションの稼働状態を示す情報である。図１２は、パーティション稼働情報３０ｂの一例を示す図である。図１２に示すように、パーティション稼働情報３０ｂには、ＰＰＡＲ−ＩＤとＰＰＡＲ状態とが含まれる。ＰＰＡＲ−ＩＤは、パーティション６１を識別する番号である。ＰＰＡＲ状態は、パーティション６１の状態を示す。パーティション６１の状態には、「電源切断」、「初期化中」、「初期化完了」、「稼働中」、「異常状態」、「未設定」がある。
【００４４】
ＣＭＩ情報３０ｃは、ＣＭＩ機能が有効であるか否かを示す情報である。記憶部３ａと各ビルディングブロック６の記憶部７ａは、ＢＢ間通信により同一のパーティション構成情報３０ａ、パーティション稼働情報３０ｂ及びＣＭＩ情報３０ｃを記憶する。
【００４５】
診断部３１は、クロスバーボックス２及び各ビルディングブロック６の構成判定部３２、ハード制御部３３、ＲＡＳ制御部３４及びＢＢ間通信部３５を用いてクロスバー診断を行う。
【００４６】
構成判定部３２は、装置の各種部品の故障状況やユーザ使用状況を判定する。構成判定部３２は、妥当性判定部３２ａと環境判定部３２ｂとを有する。妥当性判定部３２ａは、ユーザにより指定された診断対象の妥当性を判定する。環境判定部３２ｂは、ユーザ環境すなわち装置のユーザ使用状況を判定し、ユーザ使用状況に基づいて診断範囲を特定し、特定した診断範囲の電源投入のパターンを決定する。
【００４７】
図１３は、電源投入のパターンを説明するための図である。図１３は、ビルディングブロック６は１台のＸＢＵ９を有し、ＸＢＵ９が３つのポート４３を有し、ビルディングブロック６の環境判定部３２ｂが電源投入処理のパターンを決定する場合を示す。３つのポート４３はポート＃１〜ポート＃３で示される。
【００４８】
パターン＃１は、ビルディングブロック６が停止状態である場合であり、ビルディングブロック６及びＸＢＵ９の電源を投入し、ＸＢＵ９のポート４３を初期化する場合である。パターン＃２は、ＸＢＵ９が停止状態である場合であり、ＸＢＵ９の電源を投入し、ＸＢＵ９のポート４３を初期化する場合である。パターン＃３は、ＸＢＵ９のポート４３が停止状態である場合であり、ＸＢＵ９のポート４３を初期化する場合である。
【００４９】
ハード制御部３３は、装置の部品に対してハードウェア制御を実施する。ハード制御部３３は、診断電源投入部３３ａを有する。診断電源投入部３３ａは、診断専用の電源投入処理としてパターン＃１〜パターン＃３に対する処理を備え、環境判定部３２ｂが決定したパターンに基づいて、クロスバー診断する上で必要な部品の電源投入を実施する。また、診断電源投入部３３ａは、ＸＢＵの電源投入を行った場合、ＸＢＵの初期化を行い、後述するポート種別の設定を行う。
【００５０】
ＲＡＳ制御部３４は、ハードウェアからの異常通知を受け、解析やエラーログの生成を行う。ＢＢ間通信部３５は、内部ＬＡＮ１２を使用して、他のＸＳＣＦとの通信の制御を行う。ＢＢ間通信部３５による通信を用いて、ＸＳＣＦは、各機能部が行う処理のタイミングを合わせたり、記憶部が記憶する情報を一致させたりする。
【００５１】
ＸＢＵ４及びＸＢＵ９は、ポート情報記憶部４１とテストモジュール４２とを有する。ポート情報記憶部４１は、ポート４３毎に設けられ、ポート情報を記憶する。ポート情報には、ポート種別と接続先情報が含まれる。ポート種別は、ポート４３がクロスバー診断に使用される診断ポートであるかクロスバー診断に使用されない通常ポートであるかを示す。診断ポートに設定されたポート４３はテストモジュール４２に対してデータの送受信を行い、通常ポートに設定されたポート４３はＣＰＵ８１に対してデータの送受信を行う。
【００５２】
接続先情報には、クロスバーケーブル２０を介して接続される先のビルディングブロック６又はクロスバーボックス２のＢＢＩＤ、ＸＢＵ番号、及びポート番号が含まれる。ここで、ＸＢＵ番号はＸＢＵを識別する番号であり、ポート番号はポート４３を識別する番号である。ポート情報は、クロスバー診断の際に、ＸＳＣＦによって設定され、通信先の判断及び受信データのチェックに利用される。
【００５３】
テストモジュール４２は、ポート４３が診断ポートである場合に、接続先情報を用いてクロスバー診断を行う。具体的には、テストモジュール４２は、接続先情報を用いて他のテストモジュール４３と通信を行い、通信結果を解析してクロスバー通信の診断を行う。
【００５４】
図１４は、ＸＢＵ９の構成を示す図である。なお、ｎを整数としてＢＢ＃ｎ、ＸＢＵ＃ｎ及びポート＃ｎは、それぞれ番号が「ｎ」で識別されるビルディングブロック６、ＸＢＵ及びポート４３を示す。図１４では、ＢＢ＃０がＢＢ＃１〜ＢＢ＃３にＸＢＵ９で接続されている。
【００５５】
図１４に示すように、ＢＢ＃０のＸＢＵ９は、ポート＃０〜ポート＃２で表される３つのポート４３を有する。ポート＃０に対応付けられたポート情報記憶部４１は、ポート種別として診断ポート、接続先情報としてＢＢ＃１、ＸＢＵ＃０及びポート＃０を記憶する。すなわち、ＢＢ＃０のＸＢＵ９のポート＃０は、クロスバー診断に使用され、番号が「１」で識別されるビルディングブロック６の番号が「０」で識別されるＸＢＵ９の番号が「０」で識別されるポート４３に接続される。
【００５６】
また、ポート＃１に対応付けられたポート情報記憶部４１は、ポート種別として通常ポート、接続先情報としてＢＢ＃２、ＸＢＵ＃０及びポート＃０を記憶する。すなわち、ＢＢ＃０のＸＢＵ９のポート＃１は、クロスバー診断に使用されず、番号が「２」で識別されるビルディングブロック６の番号が「０」で識別されるＸＢＵ９の番号が「０」で識別されるポート４３に接続される。また、ポート＃２に対応付けられたポート情報記憶部４１は、ポート種別として通常ポート、接続先情報としてＢＢ＃３、ＸＢＵ＃０及びポート＃０を記憶する。すなわち、ＢＢ＃０のＸＢＵ９のポート＃２は、クロスバー診断に使用されず、番号が「３」で識別されるビルディングブロック６の番号が「０」で識別されるＸＢＵ９の番号が「０」で識別されるポート４３に接続される。
【００５７】
図１５は、ビルディングブロック構成のポート情報設定値の一例を示す図である。ここで、ビルディングブロック構成とは、図１４に示したように、クロスバーボックス２を用いないでビルディングブロック６をクロスバーで接続する構成である。また、図１５は、各ビルディングブロック６が１台のＸＢＵ９を有する場合を示す。
【００５８】
図１５に示すように、各ビルディングブロック６の各ポート４３に、接続先ＢＢＩＤと接続先ポート番号とポート種別が設定される。接続先ＢＢＩＤは、接続先のビルディングブロック６の番号である。接続先ポート番号は、接続先のポート４３の番号である。なお、各ビルディングブロック６が複数のＸＢＵ９を有する場合には、各ビルディングブロック６の各ＸＢＵ９の各ポート４３に、接続先ＢＢＩＤと接続先のＸＢＵ９の番号と接続先ポート番号が設定される。
【００５９】
図１６は、クロスバーボックス構成のポート情報設定値の一例を示す図である。ここで、クロスバーボックス構成とは、図２に示したように、クロスバーボックス２を用いてビルディングブロック６をクロスバーで接続する構成である。また、図１６は、クロスバーボックス２及び各ビルディングブロック６が１台のＸＢＵ９を有する場合を示す。
【００６０】
図１６に示すように、クロスバーボックス２及び各ビルディングブロック６の各ポート４３に、接続先ＢＢＩＤと接続先ポート番号とポート種別が設定される。「Not  Installed」は、ポート４３が実装されていないことを示す。なお、クロスバーボックス２及び各ビルディングブロック６が複数のＸＢＵを有する場合には、クロスバーボックス２及び各ビルディングブロック６の各ＸＢＵの各ポート４３に、接続先ＢＢＩＤと接続先のＸＢＵ９の番号と接続先ポート番号が設定される。
【００６１】
図１４に戻って、テストモジュール４２は、ＸＢケーブルテストを行うＸＢケーブルテスト部４２ａとＸＢポートテストを行うＸＢポートテスト部４２ｂとを有する。ＸＢケーブルテスト部４２ａは、クロスバーケーブル２０がポート４３単位で正しく接続されているかをテストする。送信元のテストモジュール４２は、送信先の診断ポートに送信元のＢＢＩＤ、ＸＢＵ番号及びポート番号のデータを送信する。送信先のテストモジュール４２は、受信したポート４３に設定されているポート情報と受信データが一致するかどうかチェックする。ＸＢケーブルテストは、ＸＢ通信異常を検知することができないが、クロスバーケーブル２０の接続誤りを検知することができる。
【００６２】
ＸＢポートテスト部４２ｂは、クロスバー通信の経路に故障が発生していないかをテストする。送信元のＸＢポートテスト部４２ｂは、送信先の診断ポートにダミーパケットを送信する。送信先のＸＢポートテスト部４２ｂは、受け取ったダミーパケットをそのまま送信元に返信する。送信元のＸＢポートテスト部４２ｂは、返信されたデータと送信時のデータに不一致がないかチェックする。ＸＢポートテストは、クロスバーケーブル２０の接続誤りを検知することはできないが、故障やケーブル抜けなど、クロスバー通信異常を検知することができる。
【００６３】
図１７は、クロスバーテストを説明するための図である。図１７は、ビルディングブロック６間でクロスバーテストを行う場合を示す。図１７に示すように、クロスバーテストは、２つのテストモジュール４２の間で行われる。送信元となるＸＢＵ９からテストが開始され、送信先となるＸＢＵ９に向けて、クロスバー通信が行われる。送信先のＸＢＵ９は、受け取ったクロスバー通信データに対して、データ解析や送信元への折り返し通信を行う。送信元と送信先には、診断対象となるビルディングブロック６及びクロスバーボックス２全ての組み合わせパターンが選ばれ、各組み合せパターンでクロスバーテストが双方向で行われる。
【００６４】
次に、クロスバー診断のシーケンスについて説明する。図１８は、クロスバー診断のシーケンスを示す図である。図１８に示すように、マスターとして動作するＸＳＣＦ３の診断部３１は、ユーザ端末１０から診断対象としてクロスバーボックス２及びビルディングブロック６の指定を受け付ける（ステップＳ１）。そして、診断部３１は、診断対象の各構成判定部３２に診断対象の妥当性判断を指示し、診断対象の各構成判定部３２が診断対象の妥当性を判断する（ステップＳ２）。
【００６５】
そして、診断部３１は、診断対象の各構成判定部３２に診断専用の電源投入を指示する（ステップＳ３）。すると、各構成判定部３２は、ユーザ環境を判定し、ユーザ環境から電源投入のパターンを判定する（ステップＳ４）。そして、各ハード制御部３３がパターン別に診断専用の電源投入処理を実施する（ステップＳ５）。
【００６６】
そして、各構成判定部３２がポート情報を作成し（ステップＳ６）、各ハード制御部３３がポート情報を設定する（ステップＳ７）。そして、各ＸＢＵがポート情報を登録する（ステップＳ８）。
【００６７】
そして、各ハード制御部３３が各ＸＢＵにＸＢケーブルテストの開始を指示し（ステップＳ９）、各ＸＢＵがＸＢケーブルテストを実行する（ステップＳ１０）。そして、各ハード制御部３３が各ＸＢＵにＸＢポートテストの開始を指示し（ステップＳ１１）、各ＸＢＵがＸＢポートテストを実行する（ステップＳ１２）。
【００６８】
このように、実施例に係る情報処理システム１は、ＣＰＵ８１を用いることなくクロスバー診断を行うので、情報処理システム１の運用を継続したままクロスバー診断を行うことができる。
【００６９】
次に、電源投入パターンを判定する処理のフローについて説明する。図１９は、電源投入パターンを判定する処理のフローを示すフローチャートである。図１９に示すように、環境判定部３２ｂは、パーティション構成に自装置が含まれるか否かを判定する（ステップＳ２１）。その結果、含まれない場合には、自装置は停止状態にあるので、環境判定部３２ｂは、電源投入のパターンをパターン＃１と判定する（ステップＳ２２）。なお、装置が停止状態にある場合にもＸＳＣＦは動作可能である。
【００７０】
一方、パーティション構成に自装置が含まれる場合には、環境判定部３２ｂは、自装置が含まれるパーティション６１の電源がオンであるか否かを判定する（ステップＳ２３）。その結果、自装置が含まれるパーティション６１の電源がオンでない場合には、自装置は停止状態にあるので、環境判定部３２ｂは、電源投入のパターンをパターン＃１と判定する（ステップＳ２２）。
【００７１】
一方、自装置が含まれるパーティション６１の電源がオンである場合には、環境判定部３２ｂは、ＣＭＩ機能が有効か否かを判定し（ステップＳ２４）、有効でない場合には、パーティション６１が複数ＢＢ構成であるか否かを判定する（ステップＳ２５）。その結果、複数ＢＢ構成でない場合には、クロスバー通信は行われず、ＸＢＵが停止状態にあるので、環境判定部３２ｂは、電源投入のパターンをパターン＃２と判定する（ステップＳ２６）。
【００７２】
一方、パーティション６１が複数ＢＢ構成である場合には、環境判定部３２ｂは、全ポート４３が使用中であるか否かを判定し（ステップＳ２７）、使用されてないポート４３がある場合には、電源投入のパターンをパターン＃３と判定する（ステップＳ２８）。一方、全ポート４３が使用中である場合には、環境判定部３２ｂは、自装置はユーザ使用中により診断対象外と判定する（ステップＳ２９）。
【００７３】
また、ステップＳ２４で、ＣＭＩ機能が有効であると判定した場合には、環境判定部３２ｂは、全ポート４３が使用中であるか否かを判定し（ステップＳ３０）、使用されてないポート４３がある場合には、電源投入のパターンをパターン＃３と判定する（ステップＳ２８）。一方、全ポート４３が使用中である場合には、環境判定部３２ｂは、自装置はユーザ使用中により診断対象外と判定する（ステップＳ２９）。
【００７４】
このように、環境判定部３２ｂがユーザにより使用されていない範囲を診断範囲として特定し、診断専用の電源投入のパターンを判定することで、ＸＳＣＦはユーザの使用環境に影響を与えることなくクロスバー診断を行うことができる。
【００７５】
次に電源投入パターンの判定例について図２０〜図２５を用いて説明する。なお、図２０〜図２３では、４台のビルディングブロック６によるビルディングブロック構成の場合について説明する。また、各ビルディングブロック６は、２台のＸＢＵ９を有し、他の全てのビルディングブロック６と二重化接続されている。図２４〜図２５では、２台のクロスバーボックス２と５台のビルディングブロック６によるクロスバーボックス構成の場合について説明する。また、各ビルディングブロック６は、２台のＸＢＵ９を有し、２台のクロスバーボックス２に接続されている。また、各ＸＢＵ９は、１つのポート４３を有する。
【００７６】
図２０は、電源投入パターンの判定例＃１を示す図である。図２０において、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は動作中であり、ＢＢ＃２は停止中である。ＢＢ＃０とＢＢ＃１は１つのパーティション６１を構成し、ＢＢ＃３は単独でパーティション６１を構成する。また、ここではＣＭＩ機能は無効とする。このため、ＢＢ＃０とＢＢ＃１のクロスバー通信だけがユーザ使用中の状態にある。
【００７７】
この場合、図２０の表に示すように、ＢＢ＃０及びＢＢ＃１は、ＢＢ６とＸＢＵ９が動作中であり、一部のＸＢポートが停止している。ここで、ＸＢポートはＸＢＵのポート４３である。したがって、ＢＢ＃０及びＢＢ＃１の環境判定部３２ｂは、電源投入パターンをパターン＃３と判定する。また、ＢＢ＃２は、停止している。したがって、ＢＢ＃２の環境判定部３２ｂは、電源投入パターンをパターン＃１と判定する。また、ＢＢ＃３は、ＢＢ６が動作中であり、ＸＢＵ９が停止している。したがって、ＢＢ＃３の環境判定部３２ｂは、電源投入パターンをパターン＃２と判定する。
【００７８】
図２１は、電源投入パターンの判定例＃２を示す図である。図２１において、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は動作中であり、ＢＢ＃２は停止中である。ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は、それぞれ単独でパーティション６１を構成する。また、ここではＣＭＩ機能は有効とする。このため、ＢＢ＃０とＢＢ＃１、ＢＢ＃０とＢＢ＃３、及び、ＢＢ＃１とＢＢ＃３のクロスバー通信がユーザ使用中の状態にある。
【００７９】
この場合、図２１の表に示すように、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は、ＢＢ６とＸＢＵ９が動作中であり、一部のＸＢポートが停止している。したがって、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３の環境判定部３２ｂは、電源投入パターンをパターン＃３と判定する。また、ＢＢ＃２は、停止している。したがって、ＢＢ＃２の環境判定部３２ｂは、電源投入パターンをパターン＃１と判定する。
【００８０】
図２２は、電源投入パターンの判定例＃３を示す図である。図２２において、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は動作中であり、ＢＢ＃２は停止中である。ＢＢ＃０とＢＢ＃１は１つのパーティション６１を構成し、ＢＢ＃３は単独でパーティション６１を構成する。ＢＢ＃０とＢＢ＃１は、片方のＸＢＵ９（ＸＢＵ＃１）が停止している。また、ここではＣＭＩ機能は無効とする。このため、ＢＢ＃０とＢＢ＃１の片方のクロスバー通信だけがユーザ使用中の状態にある。
【００８１】
この場合、図２２の表に示すように、ＢＢ＃０及びＢＢ＃１は、ＢＢ６とＸＢＵ＃０が動作中であり、ＸＢＵ＃１が停止中である。また、ＸＢＵ＃０では、一部のＸＢポートが停止している。したがって、ＢＢ＃０及びＢＢ＃１の環境判定部３２ｂは、ＸＢＵ＃１については電源投入パターンをパターン＃２と判定し、ＸＢＵ＃０については電源投入パターンをパターン＃３と判定する。また、ＢＢ＃２は、停止している。したがって、ＢＢ＃２の環境判定部３２ｂは、電源投入パターンをパターン＃１と判定する。また、ＢＢ＃３は、ＢＢ６が動作中であり、ＸＢＵ９が停止している。したがって、ＢＢ＃３の環境判定部３２ｂは、電源投入パターンをパターン＃２と判定する。
【００８２】
図２３は、電源投入パターンの判定例＃４を示す図である。図２３において、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は動作中であり、ＢＢ＃２は停止中である。ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は、それぞれ単独でパーティション６１を構成する。ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は、片方のＸＢＵ９（ＸＢＵ＃１）が停止している。また、ここではＣＭＩ機能は有効とする。このため、ＢＢ＃０とＢＢ＃１の片方、ＢＢ＃０とＢＢ＃３の片方、及び、ＢＢ＃１とＢＢ＃３の片方のクロスバー通信がユーザ使用中の状態にある。
【００８３】
この場合、図２３の表に示すように、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は、ＢＢ６とＸＢＵ＃０が動作中であり、ＸＢＵ＃１が停止中である。また、ＸＢＵ＃０では、一部のＸＢポートが停止している。したがって、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３の環境判定部３２ｂは、ＸＢＵ＃１については電源投入パターンをパターン＃２と判定し、ＸＢＵ＃０については電源投入パターンをパターン＃３と判定する。また、ＢＢ＃２は、停止している。したがって、ＢＢ＃２の環境判定部３２ｂは、電源投入パターンをパターン＃１と判定する。
【００８４】
図２４は、電源投入パターンの判定例＃５を示す図である。図２４において、ＸＢＢＯＸ＃８０は動作中であり、ＸＢＢＯＸ＃８１は停止中である。ＢＢ＃０及びＢＢ＃１は動作中であり、ＢＢ＃２〜ＢＢ＃４は停止中である。ＢＢ＃０及びＢＢ＃１のＸＢＵ＃０は動作中であり、ＢＢ＃０及びＢＢ＃１のＸＢＵ＃１は停止中である。ＢＢ＃０及びＢＢ＃１は、パーティション６１を構成する。また、ここではＣＭＩ機能は無効とする。このため、ＢＢ＃０のＸＢＵ＃０とＸＢＢＯＸ＃８０のＸＢＵ４とのクロスバー通信、及び、ＢＢ＃１のＸＢＵ＃０とＸＢＢＯＸ＃８０のＸＢＵ４のクロスバー通信がユーザ使用中の状態にある。
【００８５】
この場合、図２４の表に示すように、ＸＢＢＯＸ＃８０は、ＸＢＢＯＸ２とＸＢＵ４が動作中であり、一部のＸＢポートが停止している。したがって、ＸＢＢＯＸ＃８０の環境判定部３２ｂは、電源投入パターンをパターン＃３と判定する。また、ＸＢＢＯＸ＃８１は、停止している。したがって、ＸＢＢＯＸ＃８１の環境判定部３２ｂは、電源投入パターンをパターン＃１と判定する。
【００８６】
また、ＢＢ＃０及びＢＢ＃１は、ＢＢ６とＸＢＵ＃０が動作中であり、ＸＢＵ＃１が停止中である。また、ＸＢＵ＃０では、全部のＸＢポートが動作している。したがって、ＢＢ＃０及びＢＢ＃１の環境判定部３２ｂは、ＸＢＵ＃１については電源投入パターンをパターン＃２と判定し、ＸＢＵ＃０については診断の対象外と判定する。また、ＢＢ＃２〜ＢＢ＃４は、停止している。したがって、ＢＢ＃２〜ＢＢ＃４の環境判定部３２ｂは、電源投入パターンをパターン＃１と判定する。
【００８７】
図２５は、電源投入パターンの判定例＃６を示す図である。図２５において、ＸＢＢＯＸ＃８０及びＸＢＢＯＸ＃８１は動作中である。ＢＢ＃０及びＢＢ＃１は動作中であり、ＢＢ＃２〜ＢＢ＃４は停止中である。ＢＢ＃０及びＢＢ＃１のＸＢＵ＃０は動作中であり、ＢＢ＃０及びＢＢ＃１のＸＢＵ＃１も動作中である。ＢＢ＃０及びＢＢ＃１は、それぞれ単独でパーティション６１を構成する。また、ここではＣＭＩ機能は有効とする。このため、ＢＢ＃０のＸＢＵ＃０とＸＢＢＯＸ＃８０のＸＢＵ４とのクロスバー通信、及び、ＢＢ＃１のＸＢＵ＃０とＸＢＢＯＸ＃８０のＸＢＵ４のクロスバー通信がユーザ使用中の状態にある。また、ＢＢ＃０のＸＢＵ＃１とＸＢＢＯＸ＃８１のＸＢＵ４とのクロスバー通信、及び、ＢＢ＃１のＸＢＵ＃１とＸＢＢＯＸ＃８１のＸＢＵ４のクロスバー通信がユーザ使用中の状態にある。
【００８８】
この場合、図２５の表に示すように、ＸＢＢＯＸ＃８０及びＸＢＢＯＸ＃８１は、ＸＢＢＯＸ２とＸＢＵ４が動作中であり、一部のＸＢポートが停止している。したがって、ＸＢＢＯＸ＃８０及びＸＢＢＯＸ＃８１の環境判定部３２ｂは、電源投入パターンをパターン＃３と判定する。
【００８９】
また、ＢＢ＃０及びＢＢ＃１は、ＢＢ６とＸＢＵ９が動作中であり、全部のＸＢポートが動作している。したがって、ＢＢ＃０及びＢＢ＃１の環境判定部３２ｂは、ＢＢ６を診断の対象外と判定する。また、ＢＢ＃２〜ＢＢ＃４は、停止している。したがって、ＢＢ＃２〜ＢＢ＃４の環境判定部３２ｂは、電源投入パターンをパターン＃１と判定する。
【００９０】
次に、診断専用の電源投入処理のフローについて図２６〜図２８を用いて説明する。なお、ここでは、ＢＢ６の診断電源投入部３３ａの処理について説明する。また、図２６〜図２８において、「ＰＳＵ（ＸＢＢＯＸ）」等は、ＸＢＢＯＸ２によるＸＢＢＯＸ２のＰＳＵ等に対する動作を示し、「ＰＳＵ（ＢＢ）」等はＢＢ６によるＢＢ６のＰＳＵ等に対する動作を示す。また、ＰＳＵは、電源装置（Power  Supply  Unit）であり、ＦＡＮはファンである。
【００９１】
図２６は、パターン＃１の場合の診断専用の電源投入処理のフローを示すフローチャートである。パターン＃１の対象となるＢＢ６は、パーティション６１に組み込まれていないＢＢ６、パーティション６１が電源切断されているＢＢ６、又は故障や動的再構成によってパーティション６１から切り離されているＢＢ６である。
【００９２】
図２６に示すように、ＢＢ６の診断電源投入部３３ａは、ＸＢＢＯＸ２がオンであるか否かを判定し（ステップＳ３１）、ＸＢＢＯＸ２がオンである場合には、ステップＳ３６へ進む。一方、ＸＢＢＯＸ２がオンでない場合には、ＢＢ６の診断電源投入部３３ａは、ＸＢＢＯＸ２の診断電源投入部３３ａに電源の投入を指示し、ＸＢＢＯＸ２の診断電源投入部３３ａがＰＳＵの電源を投入する（ステップＳ３２）。
【００９３】
そして、ＸＢＢＯＸ２の診断電源投入部３３ａは、ＦＡＮの電源を投入し（ステップＳ３３）、ＸＢＵ４の電源を投入する（ステップＳ３４）。そして、ＸＢＢＯＸ２の診断電源投入部３３ａは、ＸＢＵ４を初期化する（ステップＳ３５）。
【００９４】
そして、ＸＢＢＯＸ２の診断電源投入部３３ａは、ポート情報記憶部４１にポート種別として診断ポートを設定し（ステップＳ３６）、ＸＢポートを初期化する（ステップＳ３７）。
【００９５】
そして、ＢＢ６の診断電源投入部３３ａは、ＰＳＵの電源を投入し（ステップＳ３８）、ＦＡＮの電源を投入する（ステップＳ３９）。そして、ＢＢ６の診断電源投入部３３ａは、ＸＢＵ９の電源を投入し（ステップＳ４０）、テストモジュール４２を初期化する（ステップＳ４１）。そして、ＢＢ６の診断電源投入部３３ａは、ポート情報記憶部４１にポート種別として診断ポートを設定し（ステップＳ４２）、ＸＢポートを初期化する（ステップＳ４３）。
【００９６】
図２７は、パターン＃２の場合の診断専用の電源投入処理のフローを示すフローチャートである。パターン＃２の対象となるＢＢ６は、パーティション６１に組み込まれて稼働中であり、かつ、（パーティション６１が１ビルディングブロック構成である、又は、冗長化された一方のＸＢＵ９が停止してＸＢＵ９が片側停止である）ＢＢ６である。
【００９７】
図２７に示すように、ＢＢ６の診断電源投入部３３ａは、ＸＢＢＯＸ２がオンであるか否かを判定し（ステップＳ５１）、ＸＢＢＯＸ２がオンである場合には、ステップＳ５６へ進む。一方、ＸＢＢＯＸ２がオンでない場合には、ＢＢ６の診断電源投入部３３ａは、ＸＢＢＯＸ２の診断電源投入部３３ａに電源の投入を指示し、ＸＢＢＯＸ２の診断電源投入部３３ａがＰＳＵの電源を投入する（ステップＳ５２）。
【００９８】
そして、ＸＢＢＯＸ２の診断電源投入部３３ａは、ＦＡＮの電源を投入し（ステップＳ５３）、ＸＢＵ４の電源を投入する（ステップＳ５４）。そして、ＸＢＢＯＸ２の診断電源投入部３３ａは、ＸＢＵ４を初期化する（ステップＳ５５）。
【００９９】
そして、ＸＢＢＯＸ２の診断電源投入部３３ａは、ポート情報記憶部４１にポート種別として診断ポートを設定し（ステップＳ５６）、ＸＢポートを初期化する（ステップＳ５７）。
【０１００】
そして、ＢＢ６の診断電源投入部３３ａは、ＸＢＵ９の電源を投入し（ステップＳ５８）、ポート情報記憶部４１にポート種別として診断ポートを設定し（ステップＳ５９）、ＸＢポートを初期化する（ステップＳ６０）。
【０１０１】
図２８は、パターン＃３の場合の診断専用の電源投入処理のフローを示すフローチャートである。パターン＃３の対象となるＢＢ６は、パーティション６１に組み込まれて稼働中であり、かつ、パーティション６１が複数ビルディングブロック構成であり、かつ、稼働中のＸＢＵ９に一部のポート４３が停止中であるＢＢ６である。
【０１０２】
図２８に示すように、ＢＢ６の診断電源投入部３３ａは、ＸＢＢＯＸ２の診断電源投入部３３ａにポート情報の設定を指示し、ＸＢＢＯＸ２の診断電源投入部３３ａが、ポート情報記憶部４１にポート種別として診断ポートを設定し（ステップＳ７１）、ＸＢポートを初期化する（ステップＳ７２）。
【０１０３】
そして、ＸＢＢＯＸ２の診断電源投入部３３ａは、停止しているＸＢポートのポート情報記憶部４１にポート種別として診断ポートを設定し（ステップＳ７３）、ＸＢポートを初期化する（ステップＳ７４）。
【０１０４】
このように、診断電源投入部３３ａが、電源投入パターンに基づいて診断対象の電源を投入することによって、情報処理システム１は、ユーザに使用されていない装置を対象としてクロスバー診断を行うことができる。
【０１０５】
次に、ポート情報の設定例について図２９〜図３２を用いて説明する。図２９〜図３２は、ポート情報の設定例＃１〜＃４を示す図である。なお、図２９及び図３０では、４台のビルディングブロック６によるビルディングブロック構成の場合について説明する。また、各ビルディングブロック６は、２台のＸＢＵ９を有し、他の全てのビルディングブロック６と二重化接続されている。
【０１０６】
図３１及び図３２では、２台のクロスバーボックス２と５台のビルディングブロック６によるクロスバーボックス構成の場合について説明する。また、各ビルディングブロック６は、２台のＸＢＵ９を有し、２台のクロスバーボックス２に接続されている。また、各ＸＢＵ９は、１つのポート４３を有する。
【０１０７】
また、図２９〜図３２の表において、ＢＢＩＤはビルディングブロック６又はクロスバーボックス２を識別する番号である。接続先ＢＢＩＤは、接続先のビルディングブロック６又はクロスバーボックス２の番号である。「ｘ／ｙ」は、ＸＢＵ＃０の設定値／ＸＢＵ＃１の設定値を表す。また、接続先のＸＢＵの番号は、接続元のＸＢＵの番号と同じ番号が設定される。
【０１０８】
図２９において、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は動作中であり、ＢＢ＃２は停止中である。ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は１つのパーティション６１を構成する。また、ここではＣＭＩ機能は無効とする。このため、ＢＢ＃０とＢＢ＃１のクロスバー通信、ＢＢ＃０とＢＢ＃３のクロスバー通信、及び、ＢＢ＃１とＢＢ＃３のクロスバー通信がユーザ使用中の状態にある。
【０１０９】
この場合、図２９の表に示すように、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３のポート４３のうち、ＢＢ＃２に接続されるポート４３のポート種別が診断ポート／診断ポートと設定される。例えば、ＢＢ＃０のポート＃１は、ＢＢ＃２に接続されており、ユーザ使用中でないので、ポート種別が診断ポート／診断ポートと設定される。また、ＢＢ＃２は停止中なので、全ポート＃０〜＃２のポート種別が診断ポート／診断ポートと設定される。
【０１１０】
図３０において、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３は動作中であり、ＢＢ＃２は停止中である。ＢＢ＃０、ＢＢ＃１及びＢＢ＃３のＸＢＵ＃０は動作中であり、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３のＸＢＵ＃１は停止中である。ＢＢ＃０、ＢＢ＃１及びＢＢ＃３はそれぞれ単独でパーティション６１を構成する。また、ここではＣＭＩ機能は有効とする。このため、ＢＢ＃０とＢＢ＃１のクロスバー通信、ＢＢ＃０とＢＢ＃３のクロスバー通信、及び、ＢＢ＃１とＢＢ＃３のクロスバー通信の片側がユーザ使用中の状態にある。
【０１１１】
この場合、図３０の表に示すように、ＢＢ＃０、ＢＢ＃１及びＢＢ＃３のポートのうち、ＢＢ＃２に接続されるポートのポート種別が診断ポート／診断ポートと設定され、他のＢＢ６に接続されるポートのＸＢＵ＃１のポート種別が診断ポートと設定される。例えば、ＢＢ＃０のポート＃０は、ＢＢ＃１に接続されており、ＸＢＵ＃１はユーザ使用中でないので、ポート種別が診断ポートと設定される。また、ＢＢ＃２は停止中なので、全ポート＃０〜＃２のポート種別が診断ポート／診断ポートと設定される。
【０１１２】
図３１において、ＸＢＢＯＸ＃８０は動作中であり、ＸＢＢＯＸ＃８１は停止中である。ＢＢ＃０及びＢＢ＃１は動作中であり、ＢＢ＃２〜ＢＢ＃４は停止中である。ＢＢ＃０及びＢＢ＃１のＸＢＵ＃０は動作中であり、ＢＢ＃０及びＢＢ＃１のＸＢＵ＃１は停止中である。ＢＢ＃０〜ＢＢ＃４はＸＢＢＯＸ＃８０及びＸＢＢＯＸ＃８１のポート＃０〜ポート＃４にそれぞれ接続される。ＢＢ＃０及びＢＢ＃１は、パーティション６１を構成する。また、ここではＣＭＩ機能は無効とする。このため、ＢＢ＃０のＸＢＵ＃０とＸＢＢＯＸ＃８０のＸＢＵ４とのクロスバー通信、及び、ＢＢ＃１のＸＢＵ＃０とＸＢＢＯＸ＃８０のＸＢＵ４のクロスバー通信がユーザ使用中の状態にある。
【０１１３】
この場合、図３１の表に示すように、ＸＢＢＯＸ＃８０のポート＃２〜ポート＃４が診断ポートと設定され、ＸＢＢＯＸ＃８１の全ポートが診断ポートと設定される。また、ＢＢ＃０及びＢＢ＃１のポート＃０が通常ポート／診断ポートと設定され、ＢＢ＃２〜ＢＢ＃４のポート＃０が診断ポート／診断ポートと設定される。
【０１１４】
図３２において、ＸＢＢＯＸ＃８０及びＸＢＢＯＸ＃８１は動作中である。ＢＢ＃０及びＢＢ＃１は動作中であり、ＢＢ＃２〜ＢＢ＃４は停止中である。ＢＢ＃０及びＢＢ＃１のＸＢＵ＃０は動作中であり、ＢＢ＃０及びＢＢ＃１のＸＢＵ＃１も動作中である。ＢＢ＃０〜ＢＢ＃４はＸＢＢＯＸ＃８０及びＸＢＢＯＸ＃８１のポート＃０〜ポート＃４にそれぞれ接続される。ＢＢ＃０及びＢＢ＃１は、それぞれ単独でパーティション６１を構成する。また、ここではＣＭＩ機能は有効とする。このため、ＢＢ＃０のＸＢＵ＃０とＸＢＢＯＸ＃８０のＸＢＵ４とのクロスバー通信、及び、ＢＢ＃１のＸＢＵ＃０とＸＢＢＯＸ＃８０のＸＢＵ４のクロスバー通信がユーザ使用中の状態にある。また、ＢＢ＃０のＸＢＵ＃１とＸＢＢＯＸ＃８１のＸＢＵ４とのクロスバー通信、及び、ＢＢ＃１のＸＢＵ＃１とＸＢＢＯＸ＃８１のＸＢＵ４のクロスバー通信がユーザ使用中の状態にある。
【０１１５】
この場合、図３２の表に示すように、ＸＢＢＯＸ＃８０及びＸＢＢＯＸ＃８１のポート＃２〜ポート＃４が診断ポートと設定される。また、ＢＢ＃２〜ＢＢ＃４のポート＃０が診断ポート／診断ポートと設定される。
【０１１６】
次に、ＸＢケーブルテストの処理フローについて説明する。図３３は、ＸＢケーブルテストの処理フローを示すフローチャートである。図３３に示すように、送信元のＸＢケーブルテスト部４２ａは、送信データを作成し（ステップＳ８１）、送信先の診断ポートにデータを送信する（ステップＳ８２）。ここで、送信データには、ＢＢＩＤとＸＢＵ番号とポート番号が含まれる。
【０１１７】
そして、送信先のＸＢケーブルテスト部４２ａが、ポート４３を経由してデータを受信する（ステップＳ８３）。そして、送信先のＸＢケーブルテスト部４２ａは、データを受信した受信ポート４３から接続先情報を取得し（ステップＳ８４）、受信データと接続先情報を比較する（ステップＳ８５）。
【０１１８】
そして、送信先のＸＢケーブルテスト部４２ａは、受信データと接続先情報が不一致か否かを判定し（ステップＳ８６）、不一致の場合には、ＸＢケーブル２０の接続誤りをＸＳＣＦに報告する（ステップＳ８７）。
【０１１９】
このように、ＸＢケーブルテスト部４２ａがＸＢケーブルテストを行うことによって、ＣＰＵ８１及びメモリ８２を使用することなくクロスバー診断を行うことができる。
【０１２０】
次に、ＸＢポートテストの処理フローについて説明する。図３４は、ＸＢポートテストの処理フローを示すフローチャートである。図３４に示すように、送信元のＸＢポートテスト部４２ｂは、ダミーデータを作成し（ステップＳ９１）、送信先の診断ポートにデータを送信する（ステップＳ９２）。ダミーデータとしては、例えば１６進数の０ｘ５５５５５５５５が用いられる。
【０１２１】
そして、送信元のＸＢポートテスト部４２ｂは、データの受信を待ち（ステップＳ９３）、タイムアウトか否かを判定する（ステップＳ９４）。その結果、送信元のＸＢポートテスト部４２ｂは、タイムアウトでない場合には、ステップＳ９３に戻り、タイムアウトの場合には、ＸＢ通信の異常をＸＳＣＦに報告する（ステップＳ９５）。
【０１２２】
一方、送信先のＸＢポートテスト部４２ｂは、データを受信する（ステップＳ９６）と、受信ポートからデータを返信する（ステップＳ９７）。そして、送信元のＸＢポートテスト部４２ｂが返信されたデータを受信し（ステップＳ９８）、ダミーデータと受信データを比較する（ステップＳ９９）。
【０１２３】
そして、送信元のＸＢポートテスト部４２ｂは、ダミーデータと受信データが不一致か否かを判定し（ステップＳ１００）、不一致の場合には、ＸＢ通信の異常をＸＳＣＦに報告する（ステップＳ１０１）。
【０１２４】
このように、ＸＢポートテスト部４２ｂがＸＢポートテストを行うことによって、ＣＰＵ８１及びメモリ８２を使用することなくクロスバー診断を行うことができる。
【０１２５】
次に、クロスバー診断の例について図３５〜図３８を用いて説明する。図３５及び図３６は、それぞれ正常の場合とエラー検出の場合のＸＢケーブルテストの例であり、図３７及び図３８は、それぞれ正常の場合とエラー検出の場合のＸＢポートテストの例である。
【０１２６】
図３５、図３７及び図３８では、ＢＢ＃０のＸＢＵ９のポート＃０とＢＢ＃１のＸＢＵ９のポート＃０がクロスバーケーブル２０で正しく接続されている。一方、図３６では、ＢＢ＃０のＸＢＵ９のポート＃０とＢＢ＃１のＸＢＵ９のポート＃１がクロスバーケーブル２０で誤って接続されている。ＢＢ＃０のポート＃０のポート情報記憶部４１には、接続先としてＢＢ＃１とポート＃０が記憶され、ＢＢ＃１のポート＃０のポート情報記憶部４１には、接続先としてＢＢ＃０とポート＃０が記憶される。なお、図３５〜図３８は、ビルディングブロック６が１台のＸＢＵ９を有する場合を示し、接続先としてＸＢＵ番号が省略されている。
【０１２７】
図３５に示すように、ＢＢ＃０のテストモジュール４２は、自装置のポートを識別する情報としてＢＢ＃０とポート＃０から送信データを作成し、ＢＢ＃１のポート＃０に送信する。そして、ＢＢ＃１のテストモジュール４２がポート＃０が受信したデータとポート＃０の接続先を比較する。このケースでは、両者が一致しているので、ＢＢ＃１のテストモジュール４２はテスト結果をＯＫとする。
【０１２８】
一方、図３６に示すように、クロスバーケーブル２０が誤ってＢＢ＃１のポート＃１に接続されている場合には、ＢＢ＃１のテストモジュール４２がポート＃１が受信したデータとポート＃１の接続先を比較すると、両者は一致しない。したがって、ＢＢ＃１のテストモジュール４２はＸＢケーブルの接続誤りを報告する。
【０１２９】
また、図３７に示すように、ＢＢ＃０のテストモジュール４２は、ダミーデータ０ｘ５５５５５５５５をＢＢ＃１のテストモジュール４２へ送信し、ＢＢ＃１のテストモジュール４２はデータを折り返し返信する。そして、ＢＢ＃０のテストモジュール４２は、送信データと受信データを比較する。このケースでは、両者が一致しているので、ＢＢ＃０のテストモジュール４２はテスト結果をＯＫとする。
【０１３０】
一方、図３８に示すように、ＢＢ＃０のテストモジュール４２が送信したデータにデータ化けが発生すると、ＢＢ＃１のテストモジュール４２は、異なるデータ０ｘ５５５５３５５５を折り返し返信する。そして、ＢＢ＃０のテストモジュール４２は、送信データと受信データを比較すると、両者は一致しない。したがって、ＢＢ＃０のテストモジュール４２はＸＢ通信の異常を報告する。
【０１３１】
図３９は、診断の実行例を示す図である。図３９において、「XSCF>  diagxbu  0-3」は、ＢＢ＃０〜ＢＢ＃３を対象とするクロスバー診断の指示を示す。「XBU  diagnosis  is  about  to  start,  Continue?[y|n]  :y」は、クロスバー診断の実行の確認に対する実行指示を示す。「Power  on  sequence  started.」は診断用に電源投入処理が開始したことを示す。「XBU  diagnosis  started.」は、クロスバー診断が開始したことを示す。「Power  off  sequence  started.」は診断用に投入した電源を切断する処理が開始したことを示す。次の「completed.」は、クロスバー診断が終了したことを示す。
【０１３２】
図４０は、エラーログの例を示す図である。図４０は、ＸＢ通信の異常とＸＢケーブルの接続誤りを１例ずつ示す。ＸＢ通信の異常では、ＢＢ＃４のＸＢＵ＃１とＢＢ＃０のＸＢＵ＃１とを接続するクロスバーケーブル２０で異常が発生したことが記録されている。ＸＢケーブルの接続誤りでは、ＸＢＢＯＸ＃８０のＸＢＵ＃０とＢＢ＃０のＸＢＵ＃０のケーブル接続に誤りがあることが記録されている。
【０１３３】
上述してきたように、実施例では、ＸＳＣＦのハード制御部３３がＸＢＵにクロスバー診断の指示を出す。ＸＢＵは、ポート情報記憶部４１とテストモジュール４２を有し、ポート情報記憶部４１にポート情報を記憶し、テストモジュール４２が、ポート情報を用いてクロスバー診断を行う。したがって、情報処理システム１は、ＣＰＵ８１とメモリ８２を使用することなくクロスバー診断を行うことができ、情報処理システム１の運用を継続したままクロスバー診断を行うことができる。
【０１３４】
また、実施例では、構成判定部３２が、ユーザの使用環境からクロスバー診断の範囲を特定し、特定した診断範囲に基づいて、診断専用の電源投入パターンを判定する。そして、ハード制御部３３が、電源投入パターンに基づいて電源を投入する。したがって、情報処理システム１は、診断に必要な装置を動作させてクロスバー診断を行うことができる。
【０１３５】
また、実施例では、構成判定部３２が、特定した診断範囲に基づいてポート情報を作成し、ハード制御部３３が、ＸＢＵのポート情報記憶部４１にポート情報を設定する。したがって、情報処理システム１は、診断に必要な情報を設定してクロスバー診断を行うことができる。
【０１３６】
また、実施例では、ＸＳＣＦの記憶部がパーティション構成情報、パーティション稼働情報及びＣＭＩ情報を記憶し、構成判定部３２は、パーティション構成情報、パーティション稼働情報及びＣＭＩ情報に基づいてクロスバー診断の範囲を特定する。したがって、構成判定部３２は、ユーザの使用環境に影響を与えない診断範囲を正しく特定することができる。
【０１３７】
また、実施例では、構成判定部３２は、自装置全体、ＸＢＵ、ポート４３のいずれを診断対象とするかに基づいて、電源投入パターンを判定する。したがって、ハード制御部３３は、ＸＢＵ及びポート４３が部分的に使用されている場合に、ユーザの使用環境に影響を与えないで診断用に電源投入を行うことができる。
【０１３８】
また、実施例では、ＸＢＵは、ポート４３毎にポート情報記憶部４１を備え、１つのテストモジュール４２が全てのポート４３を対象にクロスバー診断を行う。したがって、ポート４３毎にテストモジュール４２を備える場合と比較して、ＸＢＵはハードウェア量を少なくすることができる。
【０１３９】
なお、実施例では、ＸＳＣＦについて説明したが、ＸＳＣＦが有する構成をソフトウェアによって実現することで、同様の機能を有する診断プログラムを得ることができる。そこで、診断プログラムを実行するコンピュータについて説明する。
【０１４０】
図４１は、実施例に係る診断プログラムを実行するコンピュータのハードウェア構成を示す図である。図４１に示すように、コンピュータ１００は、ＭＰＵ（Micro  Processing  Unit）１０１と、フラッシュメモリー１０２と、ＲＡＭ１０３とを有する。
【０１４１】
ＭＰＵ１０１は、ＲＡＭ１０３に記憶されたプログラムを読み出して実行する演算処理装置である。フラッシュメモリー１０２は、プログラムやデータを記憶する不揮発性の記憶装置である。ＲＡＭ１０３は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＸＳＣＦの記憶部の情報を記憶する。そして、フラッシュメモリー１０２に記憶された診断プログラムは、ＲＡＭ１０３に読み出されてＭＰＵ１０１によって実行される。
【符号の説明】
【０１４２】
１    情報処理システム
２    クロスバーボックス（ＸＢＢＯＸ）
３    ＸＳＣＦ
３ａ    記憶部
３ｂ    制御部
４    ＸＢＵ（クロスバーユニット）
６    ビルディングブロック（ＢＢ）
７    ＸＳＣＦ
７ａ    記憶部
７ｂ    制御部
８    システムボード
９    ＸＢＵ（クロスバーユニット）
１０    ユーザ端末
１１    ＬＡＮ
１２    内部ＬＡＮ
２０    クロスバーケーブル（ＸＢケーブル）
３０ａ    パーティション構成情報
３０ｂ    パーティション稼働情報
３０ｃ    ＣＭＩ情報
３１    診断部
３２    構成判定部
３２ａ    妥当性判定部
３２ｂ    環境判定部
３３    ハード制御部
３３ａ    診断電源投入部
３４    ＲＡＳ制御部
３５    ＢＢ間通信部
４１    ポート情報記憶部
４２    テストモジュール
４２ａ    ＸＢケーブルテスト部
４２ｂ    ＸＢポートテスト部
４３    ポート
６１    パーティション
６２    ユーザ環境パーティション
６３    診断用パーティション
６６，６７    診断範囲
８１    ＣＰＵ
８２    メモリ
８２ａ    共有メモリ
１００    コンピュータ
１０１    ＭＰＵ
１０２    フラッシュメモリー
１０３    ＲＡＭ
【図１】
0006550733.tif 000002
【図２】
0006550733.tif 000003
【図３】
0006550733.tif 000004
【図４】
0006550733.tif 000005
【図５】
0006550733.tif 000006
【図６】
0006550733.tif 000007
【図７】
0006550733.tif 000008
【図８】
0006550733.tif 000009
【図９】
0006550733.tif 000010
【図１０】
0006550733.tif 000011
【図１１】
0006550733.tif 000012
【図１２】
0006550733.tif 000013
【図１３】
0006550733.tif 000014
【図１４】
0006550733.tif 000015
【図１５】
0006550733.tif 000016
【図１６】
0006550733.tif 000017
【図１７】
0006550733.tif 000018
【図１８】
0006550733.tif 000019
【図１９】
0006550733.tif 000020
【図２０】
0006550733.tif 000021
【図２１】
0006550733.tif 000022
【図２２】
0006550733.tif 000023
【図２３】
0006550733.tif 000024
【図２４】
0006550733.tif 000025
【図２５】
0006550733.tif 000026
【図２６】
0006550733.tif 000027
【図２７】
0006550733.tif 000028
【図２８】
0006550733.tif 000029
【図２９】
0006550733.tif 000030
【図３０】
0006550733.tif 000031
【図３１】
0006550733.tif 000032
【図３２】
0006550733.tif 000033
【図３３】
0006550733.tif 000034
【図３４】
0006550733.tif 000035
【図３５】
0006550733.tif 000036
【図３６】
0006550733.tif 000037
【図３７】
0006550733.tif 000038
【図３８】
0006550733.tif 000039
【図３９】
0006550733.tif 000040
【図４０】
0006550733.tif 000041
【図４１】
0006550733.tif 000042