(57)【要約】【課題】  演算処理装置の処理性能に与える影響を最小限にして、演算処理装置に接続された入出力装置の試験を実行する。【解決手段】  演算を実行する演算処理装置と演算処理装置を制御する制御装置とを、情報を入出力する入出力装置に接続するスイッチ装置は、演算処理装置と制御装置とのいずれかを入出力装置に接続するスイッチ部と、演算処理装置から受ける第１のコマンドを、スイッチ部を介して入出力装置に出力し、第１のコマンドに基づいて動作する入出力装置の応答を、スイッチ部を介して受け、受けた応答を演算処理装置に出力する第１の入出力制御部と、制御装置から受ける第２のコマンドを、スイッチ部を介して入出力装置に出力し、第２のコマンドに基づいて試験される入出力装置の試験結果を、スイッチ部を介して受け、受けた試験結果を制御装置に出力する第２の入出力制御部を有する。【選択図】    図１
2015170070.tif 000002
【特許請求の範囲】
【請求項１】
演算を実行する演算処理装置と前記演算処理装置を制御する制御装置とを、情報を入出力する入出力装置に接続するスイッチ装置において、
前記演算処理装置と前記制御装置とのいずれかを前記入出力装置に接続するスイッチ部と、
前記演算処理装置から受ける第１のコマンドを、前記スイッチ部を介して前記入出力装置に出力し、前記第１のコマンドに基づいて動作する前記入出力装置の応答を、前記スイッチ部を介して受け、受けた応答を前記演算処理装置に出力する第１の入出力制御部と、
前記制御装置から受ける第２のコマンドを、前記スイッチ部を介して前記入出力装置に出力し、前記第２のコマンドに基づいて試験される前記入出力装置の試験結果を、前記スイッチ部を介して受け、受けた試験結果を前記制御装置に出力する第２の入出力制御部を有することを特徴とするスイッチ装置。
【請求項２】
前記第１の入出力制御部は、前記第１のコマンドに含まれるデータの転送量を積算する積算部を有し、
前記第２の入出力制御部は、前記積算部で積算された前記転送量から求められる前記転送量の平均値を、前記制御装置からアクセス可能に保持する保持部を有することを特徴とする請求項１記載のスイッチ装置。
【請求項３】
前記第２の入出力制御部は、前記第２のコマンドの出力から前記試験結果の受信までの期間、前記第１の入出力制御部にビジー信号を出力し、
前記第１の入出力制御部は、前記ビジー信号の受信中に前記第１のコマンドの前記スイッチ部への出力を禁止することを特徴とする請求項１または請求項２記載のスイッチ装置。
【請求項４】
前記第１のコマンドが前記入出力装置の割り当てを指示する割り当てコマンドであることを判定する判定部と、
前記判定部が前記割り当てコマンドを判定した場合に、前記第１の入出力制御部と前記第２の入出力制御部とを接続し、前記演算処理装置から前記スイッチ部に出力される前記割り当てコマンドを前記第２の入出力制御部に転送する転送部を有することを特徴とする請求項１ないし請求項３のいずれか１項記載のスイッチ装置。
【請求項５】
前記第２の入出力制御部の宛先を示す宛先情報を記憶する記憶部と、
前記入出力装置からの応答に含まれる宛先が前記記憶部に記憶した宛先情報であることを検出する検出部を有し、
前記スイッチ部は、前記入出力装置からの応答に前記記憶部に記憶した宛先情報を含むことが前記検出部により検出された場合、前記入出力装置と前記第２の入出力制御部とを接続し、前記入出力装置からの応答を前記第２の入出力制御部に伝達することを特徴とする請求項１ないし請求項４のいずれか１項記載のスイッチ装置。
【請求項６】
演算を実行する演算処理装置と、
前記演算処理装置を制御する制御装置と、
情報を入出力する入出力装置と、
前記演算処理装置と前記制御装置とを、前記入出力装置に接続するスイッチ装置を有する情報処理装置において、
前記スイッチ装置は、
前記演算処理装置と前記制御装置とのいずれかを前記入出力装置に接続するスイッチ部と、
前記演算処理装置から受ける第１のコマンドを、前記スイッチ部を介して前記入出力装置に出力し、前記第１のコマンドに基づいて動作する前記入出力装置の応答を、前記スイッチ部を介して受け、受けた応答を前記演算処理装置に出力する第１の入出力制御部と、
前記制御装置から受ける第２のコマンドを、前記スイッチ部を介して前記入出力装置に出力し、前記第２のコマンドに基づいて試験される前記入出力装置の試験結果を、前記スイッチ部を介して受け、受けた試験結果を前記制御装置に出力する第２の入出力制御部を有することを特徴とする情報処理装置。
【請求項７】
前記第１の入出力制御部は、前記第１のコマンドに含まれるデータの転送量を積算する積算部を有し、
前記第２の入出力制御部は、前記積算部に積算された前記転送量から求められる前記転送量の平均値を、前記制御装置からアクセス可能に保持する保持部を有し、
前記制御装置は、前記保持部に保持された前記転送量の平均値が所定の閾値以下の場合、前記入出力装置の試験を起動する試験コマンドを前記第２のコマンドとして前記第２の入出力制御部に出力することを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記制御装置は、前記入出力装置が試験を実行中に、前記保持部に保持された前記転送量の平均値が前記閾値を超えた場合、試験を停止させる停止コマンドを前記第２のコマンドとして前記第２の入出力制御部に出力することを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記制御装置は、
前記試験コマンドを出力する前に、前記入出力装置に設定された情報を読み出す読み出しコマンドを前記第２のコマンドとして前記第２の入出力制御部に出力し、
前記第２の入出力制御部を介して前記入出力装置からの情報を前記試験結果として読み出せない場合、前記試験コマンドを前記第２の入出力制御部に出力することを特徴とする請求項７または請求項８記載の情報処理装置。
【請求項１０】
前記制御装置は、前記入出力装置の種類毎に試験の条件が格納された試験表を有し、前記試験表に格納された条件にしたがって、前記第２のコマンドを出力することを特徴とする請求項６ないし請求項９のいずれか１項記載の情報処理装置。
【請求項１１】
前記スイッチ装置は、
前記第１のコマンドが前記入出力装置の割り当てを指示する割り当てコマンドであることを判定する判定部と、
前記判定部が前記割り当てコマンドを判定した場合に、前記第１の入出力制御部と前記第２の入出力制御部とを接続し、前記演算処理装置から前記スイッチ部に出力される前記割り当てコマンドを前記第２の入出力制御部に転送する転送部を有し、
前記制御装置は、前記第１の入出力制御部から転送される前記割り当てコマンドに含まれる前記入出力装置の割り当てを示す情報を格納する構成表を有し、構成表に格納された前記入出力装置の割り当てを示す情報を用いて、前記第２のコマンドを生成することを特徴とする請求項６ないし請求項１０のいずれか１項記載の情報処理装置。
【請求項１２】
演算を実行する演算処理装置と、前記演算処理装置を制御する制御装置と、情報を入出力する入出力装置と、前記入出力装置を前記演算処理装置と前記制御装置とのいずれかに接続するスイッチ部を含むスイッチ装置を有する情報処理装置の制御方法において、
前記スイッチ装置が、
前記演算処理装置から受ける第１のコマンドを、前記スイッチ部を介して前記入出力装置に出力し、前記第１のコマンドに基づいて動作する前記入出力装置の応答を、前記スイッチ部を介して受け、受けた応答を前記演算処理装置に出力し、
前記制御装置から受ける第２のコマンドを、前記スイッチ部を介して前記入出力装置に出力し、前記第２のコマンドに基づいて試験される前記入出力装置の試験結果を、前記スイッチ部を介して受け、受けた試験結果を前記制御装置に出力することを特徴とする情報処理装置の制御方法。
【請求項１３】
前記制御装置が、
前記演算処理装置と前記入出力装置との間で転送されるデータの転送量を監視し、
前記転送量の平均値が所定の閾値以下の場合、前記スイッチ部を介して前記入出力装置を試験する試験コマンドを前記第２のコマンドとして前記入出力装置に出力し、
前記スイッチ部を介して前記試験コマンドに基づいて試験される前記入出力装置の試験結果を受信し、
前記入出力装置の良否を判定することを特徴とする請求項１２記載の情報処理装置の制御方法。
【請求項１４】
演算を実行する演算処理装置と、前記演算処理装置を制御する制御装置と、情報を入出力する入出力装置と、前記入出力装置を前記演算処理装置と前記制御装置とのいずれかに接続するスイッチ部を含むスイッチ装置を有する情報処理装置を制御する制御プログラムにおいて、
前記制御装置に、
前記演算処理装置と前記入出力装置との間で転送されるデータの転送量を監視させ、
前記転送量の平均値が所定の閾値以下の場合、前記スイッチ部を介して前記入出力装置を試験する試験コマンドを前記入出力装置に出力させ、
前記スイッチ部を介して前記試験コマンドに基づいて試験される前記入出力装置の試験結果を受信させ、
前記入出力装置の良否を判定させることを特徴とする情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムに関する。
【背景技術】
【０００２】
演算処理装置、主記憶装置および入出力装置を含むシステムにおいて、演算処理装置の非動作中に動作する試験用のプロセッサを用いて、入出力装置の試験を実行する手法が提案されている（例えば、特許文献１参照）。
【０００３】
また、中央処理装置とサービスプロセッサとが接続される主記憶制御装置を、チャネルプロセッサおよび入出力制御装置を介して複数の経路で入出力装置に接続する情報処理装置が提案されている。この種の情報処理装置では、サービスプロセッサが経路を指定して入出力装置の状態を確認することで、情報処理装置の運用中に経路の正常性が診断される（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−９３０４８号公報
【特許文献２】特開平３−２１４３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、演算処理装置の非動作中に動作する試験用のプロセッサが入出力装置の試験を実行する場合、演算処理装置による処理は、入出力装置の試験中に停止する。また、中央処理装置およびサービスプロセッサが、主記憶制御装置を介してチャネルプロセッサに接続される場合、サービスプロセッサが診断できる範囲は、接続経路のみに限定される。
【０００６】
本件開示のスイッチ装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムは、演算処理装置の処理性能に与える影響を最小限にして、演算処理装置に接続された入出力装置の試験を実行することを目的とする。
【課題を解決するための手段】
【０００７】
一つの観点によれば、演算を実行する演算処理装置と演算処理装置を制御する制御装置とを、情報を入出力する入出力装置に接続するスイッチ装置において、スイッチ装置は、演算処理装置と制御装置とのいずれかを入出力装置に接続するスイッチ部と、演算処理装置から受ける第１のコマンドを、スイッチ部を介して入出力装置に出力し、第１のコマンドに基づいて動作する入出力装置の応答を、スイッチ部を介して受け、受けた応答を演算処理装置に出力する第１の入出力制御部と、制御装置から受ける第２のコマンドを、スイッチ部を介して入出力装置に出力し、第２のコマンドに基づいて試験される入出力装置の試験結果を、スイッチ部を介して受け、受けた試験結果を制御装置に出力する第２の入出力制御部を有する。
【０００８】
別の観点によれば、演算を実行する演算処理装置と、演算処理装置を制御する制御装置と、情報を入出力する入出力装置と、演算処理装置と制御装置とを、入出力装置に接続するスイッチ装置を有する情報処理装置において、スイッチ装置は、演算処理装置と制御装置とのいずれかを入出力装置に接続するスイッチ部と、演算処理装置から受ける第１のコマンドを、スイッチ部を介して入出力装置に出力し、第１のコマンドに基づいて動作する入出力装置の応答を、スイッチ部を介して受け、受けた応答を演算処理装置に出力する第１の入出力制御部と、制御装置から受ける第２のコマンドを、スイッチ部を介して入出力装置に出力し、第２のコマンドに基づいて試験される入出力装置の試験結果を、スイッチ部を介して受け、受けた試験結果を制御装置に出力する第２の入出力制御部を有する。
【０００９】
さらなる別の観点によれば、演算を実行する演算処理装置と、演算処理装置を制御する制御装置と、情報を入出力する入出力装置と、入出力装置を演算処理装置と制御装置とのいずれかに接続するスイッチ部を含むスイッチ装置を有する情報処理装置の制御方法では、スイッチ装置が、演算処理装置から受ける第１のコマンドを、スイッチ部を介して入出力装置に出力し、第１のコマンドに基づいて動作する入出力装置の応答を、スイッチ部を介して受け、受けた応答を演算処理装置に出力し、制御装置から受ける第２のコマンドを、スイッチ部を介して入出力装置に出力し、第２のコマンドに基づいて試験される入出力装置の試験結果を、スイッチ部を介して受け、受けた試験結果を制御装置に出力する。
【００１０】
さらなる別の観点によれば、演算を実行する演算処理装置と、演算処理装置を制御する制御装置と、情報を入出力する入出力装置と、入出力装置を演算処理装置と制御装置とのいずれかに接続するスイッチ部を含むスイッチ装置を有する情報処理装置を制御する制御プログラムでは、制御装置に、演算処理装置と入出力装置との間で転送されるデータの転送量を監視させ、転送量の平均値が所定の閾値以下の場合、スイッチ部を介して入出力装置を試験する試験コマンドを入出力装置に出力させ、スイッチ部を介して試験コマンドに基づいて試験される入出力装置の試験結果を受信させ、入出力装置の良否を判定させる。
【発明の効果】
【００１１】
本件開示のスイッチ装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムは、演算処理装置の処理性能に与える影響を最小限にして、演算処理装置に接続された入出力装置の試験を実行することができる。
【図面の簡単な説明】
【００１２】
【図１】スイッチ装置および情報処理装置の一実施形態を示す図である。
【図２】スイッチ装置および情報処理装置の別の実施形態を示す図である。
【図３】図２に示すスイッチ装置の例を示す図である。
【図４】図２に示す入出力装置の例を示す図である。
【図５】図２に示す情報処理装置がユーザにより使用される例を示す図である。
【図６】図２に示す構成表の例を示す図である。
【図７】図２に示す試験表の例を示す図である。
【図８】図２に示す情報処理装置が構成表を更新する動作の例を示す図である。
【図９】図２に示す情報処理装置が実行する入出力装置の試験の概要を示す
【図１０】図９に示す各試験における処理の流れの例を示す図である。
【図１１】図９に示す試験の動作フローの例を示す図である。
【図１２】図９に示す試験の動作フローの別の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を用いて実施形態を説明する。
【００１４】
図１は、スイッチ装置および情報処理装置の一実施形態を示す。図１において、情報処理装置ＩＰＥ１は、プロセッサＣＰＵ（Central Processing Unit）と、コントローラＣＴＬと、スイッチ装置ＳＷＤと、入出力装置ＩＯとを有する。プロセッサＣＰＵは、演算を実行する演算処理装置の一例であり、コントローラＣＴＬは、プロセッサＣＰＵを制御する制御装置の一例である。スイッチ装置ＳＷＤは、プロセッサＣＰＵとコントローラＣＴＬとのいずれかを入出力装置ＩＯに接続するスイッチ部ＳＷＵと、入出力制御部ＩＯＣＴＬ１、ＩＯＣＴＬ２とを有する。なお、複数の入出力装置ＩＯが、スイッチ部ＳＷＵに接続されてもよい。
【００１５】
例えば、入出力装置ＩＯは、ネットワークインタフェース、ホストバスアダプタ、ハードディスクドライブ装置、ソリッドステートドライブ装置等のいずれかである。例えば、入出力装置ＩＯは、ＰＣＩ（Peripheral Component Interconnect）ｅｘｐｒｅｓｓ（登録商標）のインタフェースによりスイッチ装置ＳＷＤを介してプロセッサＣＰＵおよびコントローラＣＴＬに接続される。しかしながら、入出力装置ＩＯは、他の規格のインタフェースによりプロセッサＣＰＵおよびコントローラＣＴＬに接続されてもよい。
【００１６】
なお、スイッチ装置ＳＷＤは、判定部ＪＤＧおよび転送部ＢＰＳＷを有してもよく、入出力制御部ＩＯＣＴＬ１は、積算部ＳＵＭを有してもよく、入出力制御部ＩＯＣＴＬ２は、保持部ＨＯＬＤを有してもよい。また、入出力制御部ＩＯＣＴＬ２は、入出力制御部ＩＯＣＴＬ１にビジー信号ＢＳＹを出力する機能を有してもよい。ビジー信号ＢＳＹの出力タイミングおよびビジー信号ＢＳＹを受けた入出力制御部ＩＯＣＴＬ１の動作は、後述する。以下で説明するコントローラＣＴＬおよび入出力制御部ＩＯＣＴＬ１、ＩＯＣＴＬ２の動作は、情報処理装置の制御方法の一実施形態を示す。
【００１７】
入出力制御部ＩＯＣＴＬ１は、プロセッサＣＰＵから受ける第１のコマンドを、スイッチ部ＳＷＵを介して入出力装置ＩＯに出力する。また、入出力制御部ＩＯＣＴＬ１は、第１のコマンドに基づいて動作する入出力装置ＩＯの応答を、スイッチ部ＳＷＵを介して受け、受けた応答をプロセッサＣＰＵに出力する。入出力制御部ＩＯＣＴＬ２は、コントローラＣＴＬから受ける第２のコマンドを、スイッチ部ＳＷＵを介して入出力装置ＩＯに出力する。また、入出力制御部ＩＯＣＴＬ２は、第２のコマンドに基づいて試験される入出力装置ＩＯの試験結果を、スイッチ部ＳＷＵを介して受け、受けた試験結果をコントローラＣＴＬに出力する。
【００１８】
図１に示すスイッチ装置ＳＷＤでは、コントローラＣＴＬからスイッチ部ＳＷＵに出力される第２のコマンドの経路は、プロセッサＣＰＵからスイッチ部ＳＷＵに出力される第１のコマンドの経路とは別に独立に設けられる。このため、入出力装置ＩＯを試験する第２のコマンドが、プロセッサＣＰＵとスイッチ部ＳＷＵとの間の経路に伝達されることはない。したがって、コントローラＣＴＬとプロセッサＣＰＵとが、共通のバスでスイッチ装置ＳＷＤに接続される場合に比べて、コントローラＣＴＬから出力される第２のコマンドが、プロセッサＣＰＵから出力される第１のコマンドと競合する確率を下げることができる。すなわち、コントローラＣＴＬによる入出力装置ＩＯの試験が、プロセッサＣＰＵの処理性能に与える影響を最小限にすることができる。
【００１９】
入出力制御部ＩＯＣＴＬ１の積算部ＳＵＭは、プロセッサＣＰＵからの第１のコマンドに含まれるデータの転送量を積算する。すなわち、積算部ＳＵＭは、入出力装置ＩＯに書き込まれるデータのサイズおよび入出力装置ＩＯから読み出されるデータのサイズを積算する。
【００２０】
入出力制御部ＩＯＣＴＬ２の保持部ＨＯＬＤは、積算部ＳＵＭに積算されたデータの転送量から求められる転送量の平均値を保持する。例えば、入出力制御部ＩＯＣＴＬ２は、時間間隔をおいて積算部ＳＵＭから２回読み出した転送量の差を、転送量の平均値とする。コントローラＣＴＬは、保持部ＨＯＬＤにアクセスするコマンドを入出力制御部ＩＯＣＴＬ２に出力することで、保持部ＨＯＬＤに保持された平均値を読み出すことができる。これにより、コントローラＣＴＬは、プロセッサＣＰＵによりアクセスされる入出力装置ＩＯのデータの転送量の平均値が所定の閾値以下になった場合、入出力制御部ＩＯＣＴＬ２を介して、入出力装置ＩＯの試験を実行できる。換言すれば、プロセッサＣＰＵによる入出力装置ＩＯのアクセスが所定の条件（閾値以下）を満たした場合、コントローラＣＴＬは、入出力制御部ＩＯＣＴＬ２に入出力装置ＩＯの試験の開始を指示することができる。この結果、入出力装置ＩＯの試験の頻度を、所定の周期毎に試験する場合に比べて下げることが可能になり、コントローラＣＴＬから出力される第２のコマンドが、プロセッサＣＰＵから出力される第１のコマンドと競合する確率を下げることができる。
【００２１】
また、入出力制御部ＩＯＣＴＬ２は、第２のコマンドの出力から試験結果の受信までの期間、入出力制御部ＩＯＣＴＬ１にビジー信号ＢＳＹを出力する。入出力制御部ＩＯＣＴＬ１は、ビジー信号ＢＳＹの受信中に第１のコマンドのスイッチ部ＳＷＵへの出力を禁止する。これにより、入出力装置ＩＯが第２のコマンドに基づいてアクセスまたは試験される場合、コントローラＣＴＬから入出力装置ＩＯへのアクセスと、プロセッサＣＰＵから入出力装置ＩＯへのアクセスとが衝突することを回避することができる。この結果、プロセッサＣＰＵの誤動作を回避することができる。なお、複数の入出力装置ＩＯがスイッチ部ＳＷＵに接続される場合、ビジー信号ＢＳＹは、入出力装置ＩＯに出力される第２のコマンド毎に出力され、第１のコマンドの出力の禁止は、入出力装置ＩＯ毎に設定される。
【００２２】
判定部ＪＤＧは、第１のコマンドが入出力装置ＩＯの割り当てを指示する割り当てコマンドであることを判定した場合、転送部ＢＰＳＷに制御信号を出力する。転送部ＢＰＳＷは、判定部ＪＤＧが出力する制御信号に基づいて、入出力制御部ＩＯＣＴＬ１、ＩＯＣＴＬ２を接続し、プロセッサＣＰＵからスイッチ部ＳＷＵに出力される割り当てコマンドを入出力制御部ＩＯＣＴＬ２に転送する。転送部ＢＰＳＷは、例えば、判定部ＪＤＧからの割り当てコマンドであるとの判定に基づいて導通するバイパススイッチである。判定部ＪＤＧと転送部ＢＰＳＷとにより、コントローラＣＴＬは、入出力制御部ＩＯＣＴＬ２を介して入出力装置ＩＯに割り当てを問い合わせるコマンドを出力することなく、入出力装置ＩＯの割り当てを示す情報を得ることができる。すなわち、コントローラＣＴＬは、プロセッサＣＰＵの動作に影響を与えることなく、入出力装置ＩＯの割り当てを示す情報を得ることができる。
【００２３】
以上、図１に示す実施形態では、プロセッサＣＰＵからの第１のコマンドの経路と、コントローラＣＴＬからの第２のコマンドの経路とが、互いに独立に設けられる。このため、第２のコマンドが、第１のコマンドと競合する確率を下げることができる。また、積算部ＳＵＭと保持部ＨＯＬＤとにより、入出力装置ＩＯの試験の頻度を、所定の周期毎に試験する場合に比べて下げることができる。さらに、判定部ＪＤＧと転送部ＢＰＳＷにより、コントローラＣＴＬは、プロセッサＣＰＵの動作に影響を与えることなく、入出力装置ＩＯの割り当てを示す情報を得ることができる。
【００２４】
この結果、コントローラＣＴＬによる入出力装置ＩＯの試験が、プロセッサＣＰＵの処理性能に与える影響を最小限にすることができる。
【００２５】
また、ビジー信号ＢＳＹにより、コントローラＣＴＬから入出力装置ＩＯへのアクセスと、プロセッサＣＰＵから入出力装置ＩＯへのアクセスとが衝突することを回避することができ、プロセッサＣＰＵの誤動作を回避することができる。
【００２６】
図２は、スイッチ装置および情報処理装置の別の実施形態を示す。図１に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図２において、情報処理システムＳＹＳは、サーバＳＶおよび入出力装置ＩＯ（ＩＯ０、ＩＯ１、ＩＯ２）を含む情報処理装置ＩＰＥ２と、情報処理装置ＩＰＥ２を管理する管理サーバＳＶｍとを有する。例えば、各入出力装置ＩＯは、ネットワークインタフェース、ホストバスアダプタ、ハードディスクドライブ装置、ソリッドステートドライブ装置等である。例えば、各入出力装置ＩＯは、ＰＣＩ ｅｘｐｒｅｓｓのインタフェースによりサーバＳＶに接続されるが、他の規格のインタフェースによりサーバＳＶに接続されてもよい。
【００２７】
サーバＳＶは、コントローラＢＭＣ、プロセッサＣＰＵ、メモリＭＥＭおよびスイッチ装置ＳＷＤを有する。コントローラＢＭＣは、プロセッサＣＰＵｍ、メモリＭＥＭｍ、監視制御部ＩＯＣＴＬおよびインタフェース部ＮＩＣを有する。例えば、コントローラＢＭＣは、サーバＳＶのマザーボード上に搭載されるプロセッサＣＰＵ等の各種デバイスを管理するベースボードマネージメントコントローラの機能を有する。
【００２８】
プロセッサＣＰＵｍは、メモリＭＥＭｍに格納されるプログラムＰＳＰＲＧ、ＶＬＴＰＲＧ、ＣＰＵＰＲＧ、ＢＲＤＰＲＧを実行することで、サーバＳＶの状態を監視し、サーバＳＶの状態を制御する。また、プロセッサＣＰＵｍは、メモリＭＥＭｍに格納されるプログラムＩＯＰＲＧを実行することで、各入出力装置ＩＯの状態を監視し、各入出力装置ＩＯを試験する。
【００２９】
監視制御部ＩＯＣＴＬは、インタフェース部ＮＩＣを介して管理サーバＳＶｍに接続され、プロセッサＣＰＵｍによる制御に基づいて、管理サーバＳＶｍとの間の通信を制御する。また、監視制御部ＩＯＣＴＬは、管理バスＭＢＵＳを介してポートＭＰＴに接続され、プロセッサＣＰＵｍによる制御に基づいて、ポートＭＰＴとの間の通信を制御し、入出力装置ＩＯの状態を監視する。すなわち、監視制御部ＩＯＣＴＬは、サーバＳＶの機能を実現するために動作するプロセッサＣＰＵを介することなく、スイッチ装置ＳＷＤに接続され、入出力装置ＩＯにアクセス可能である。これにより、コントローラＢＭＣは、プロセッサＣＰＵに負荷を掛けることなく、ポートＭＰＴに入出力装置ＩＯの試験等の実行を指示することができ、試験結果をポートＭＰＴから取得することができる。例えば、管理バスＭＢＵＳは、ＰＣＩ ｅｘｐｒｅｓｓ規格のバスである。
【００３０】
インタフェース部ＮＩＣは、監視制御部ＩＯＣＴＬとサーバＳＶを管理する管理サーバＳＶｍとを接続する。メモリＭＥＭｍは、プログラムＰＳＰＲＧ、ＶＬＴＰＲＧ、ＣＰＵＰＲＧ、ＢＲＤＰＲＧ、ＩＯＰＲＧ、構成表ＣＦＧＴＢＬ、試験表ＴＥＳＴＴＢＬおよびプログラムＢＩＳＴＰＲＧを格納する領域を有する。
【００３１】
例えば、プログラムＰＳＰＲＧは、サーバＳＶの起動時に、サーバＳＶ内のプロセッサＣＰＵ等のデバイスに電源電圧を供給する順序を制御する機能と、サーバＳＶの停止時に、電源電圧の供給を停止する順序を制御する機能とを有する。例えば、プログラムＶＬＴＰＲＧは、サーバＳＶ内のプロセッサＣＰＵ等のデバイスに供給する電源電圧等の値を、例えば、各デバイスの動作モードに応じて制御し、監視する機能を有する。
【００３２】
プログラムＣＰＵＰＲＧは、プロセッサＣＰＵの温度等の状態を監視する機能を有する。プログラムＢＲＤＰＲＧは、コントローラＢＭＣおよびプロセッサＣＰＵ等が搭載されるプリント基板等のマザーボードの状態を監視する機能を有する。例えば、プログラムＢＲＤＰＲＧは、サーバＳＶに搭載される温度センサを用いてボードの温度を監視し、ボードの温度に応じてサーバＳＶに搭載される冷却ファンの回転数を制御する機能を有する。プロセッサＣＰＵｍは、制御バスＣＢＵＳを介してプロセッサＣＰＵおよび温度センサ、冷却ファン等に接続される。
【００３３】
プログラムＩＯＰＲＧは、サーバＳＶに接続される入出力装置ＩＯ０、ＩＯ１、ＩＯ２の試験を実行し、入出力装置ＩＯ０、ＩＯ１、ＩＯ２の状態を監視する機能を有する。
【００３４】
構成表ＣＦＧＴＢＬおよび試験表ＴＥＳＴＴＢＬは、プロセッサＣＰＵｍにより読み書きされる。構成表ＣＦＧＴＢＬは、サーバＳＶに接続される入出力装置ＩＯ０、ＩＯ１、ＩＯ２の割り当てを示す情報、入出力装置ＩＯ０、ＩＯ１、ＩＯ２の種類および状態を格納する領域を有する。試験表ＴＥＳＴＴＢＬは、入出力装置ＩＯ０、ＩＯ１、ＩＯ２を試験する場合の試験仕様を格納する領域を有する。構成表ＣＦＧＴＢＬの例は、図６に示され、試験表ＴＥＳＴＴＢＬの例は、図７に示される。
【００３５】
プログラムＢＩＳＴＰＲＧは、各入出力装置ＩＯ０、ＩＯ１、ＩＯ２のＢＩＳＴ（Built-In Self Test）を実行する前（例えば、サーバＳＶの起動時）に、各入出力装置ＩＯ０、ＩＯ１、ＩＯ２から転送される。プログラムＢＩＳＴＰＲＧは、コントローラＢＭＣのプロセッサＣＰＵｍにより実行され、各入出力装置ＩＯ０、ＩＯ１、ＩＯ２が実行するＢＩＳＴを制御する機能を有する。なお、メモリＭＥＭｍは、複数の入出力装置ＩＯ０、ＩＯ１、ＩＯ２からのプログラムＢＩＳＴＰＲＧを格納する複数の領域を有してもよい。
【００３６】
プロセッサＣＰＵは、メモリＭＥＭに格納されたシステムプログラムを実行することにより、サーバＳＶと、サーバＳＶに接続された入出力装置ＩＯ０、ＩＯ１、ＩＯ２とを情報処理装置ＩＰＥ２として動作させる。プロセッサＣＰＵは、スイッチ装置ＳＷＤのポートＵＰＴを介して入出力装置ＩＯ０、ＩＯ１、ＩＯ２にアクセスする。なお、プロセッサＣＰＵは、例えば、ＰＣＩ ｅｘｐｒｅｓｓ規格のインタフェースを有するホストブリッジを介してスイッチ装置ＳＷＤに接続される。
【００３７】
スイッチ装置ＳＷＤは、ポートＭＰＴ、ＵＰＴ、ＤＰＴ（ＤＰＴ０、ＤＰＴ１、ＤＰＴ２）およびクロスバースイッチ部ＣＢＳＷを有する。例えば、ポートＵＰＴは、サーバＳＶを情報処理装置ＩＰＥ２として動作させるプロセッサＣＰＵに接続された上流ポートである。ポートＵＰＴは、ホストブリッジを介してプロセッサＣＰＵから受けるパケットを、スイッチ装置ＳＷＤを介して入出力装置ＩＯ０、ＩＯ１、ＩＯ２のいずれかに転送する。また、ポートＵＰＴは、スイッチ装置ＳＷＤを介して入出力装置ＩＯ０、ＩＯ１、ＩＯ２から受けるパケットをプロセッサＣＰＵに転送する。
【００３８】
ポートＵＰＴがプロセッサＣＰＵから受けるパケットは、第１のコマンドの一例である。すなわち、ポートＵＰＴは、プロセッサＣＰＵから受ける第１のコマンドを入出力装置ＩＯに出力し、入出力装置ＩＯからの応答をプロセッサＣＰＵに出力する第１の入出力制御部の一例である。
【００３９】
ポートＵＰＴは、ポートＭＰＴからのビジー情報ＢＳＹに基づいて、ビジー情報ＢＳＹが示す入出力装置ＩＯへのパケットの転送を保留する機能を有する。すなわち、ポートＵＰＴは、ビジー情報ＢＳＹの受信中にビジー情報ＢＳＹに含まれる入出力装置ＩＯへのパケットのクロスバースイッチ部ＣＢＳＷへの出力を禁止する機能を有する。ポートＵＰＴは、転送を保留したパケットを保持し、保持したパケットを、ビジー情報ＢＳＹが転送の許可を示した後、クロスバースイッチ部ＣＢＳＷを介して入出力装置ＩＯに出力する。
【００４０】
また、ポートＵＰＴは、ポートＵＰＴと各入出力装置ＩＯとの間で転送されるデータの転送量を計測し、転送量を示す流量情報ＦＬＷをポートＭＰＴに出力する。例えば、ポートＵＰＴは、プロセッサＣＰＵから出力されるパケット中のヘッダ等に格納されるデータ長をデータの転送量として、入出力装置ＩＯ毎に抽出する。
【００４１】
ポートＭＰＴは、サーバＳＶに接続された各入出力装置ＩＯの情報を取得する機能と、各入出力装置ＩＯの動作を確認する機能とを有する。ポートＭＰＴがコントローラＢＭＣから受けるパケットは、第２のコマンドの一例である。すなわち、ポートＭＰＴは、コントローラＢＭＣからの第２のコマンドを入出力装置ＩＯに出力し、入出力装置ＩＯの試験結果をコントローラＢＭＣに出力する第２の入出力制御部の一例である。
【００４２】
ポートＭＰＴは、各入出力装置ＩＯにパケットを出力する場合、ビジー情報ＢＳＹをポートＵＰＴに出力する。例えば、ビジー情報ＢＳＹは、各入出力装置ＩＯへのパケットの出力から各入出力装置ＩＯから応答のパケットを受けるまでアサートされるビジー信号と、パケットを出力する入出力装置ＩＯのＩＤ（IDentification）を示す識別信号とを含む。以下の説明では、符号ＢＳＹは、ビジー信号としても使用される。
【００４３】
また、ポートＭＰＴは、ポートＵＰＴから出力される流量情報ＦＬＷに基づいて、プロセッサＣＰＵと入出力装置ＩＯとの間で転送されるデータの転送量の平均値を求める。コントローラＢＭＣは、ポートＭＰＴが求めた転送量の平均値に基づいて、各入出力装置ＩＯの動作状況を判断する。例えば、コントローラＢＭＣは、転送量の平均値が予め設定された閾値以下の場合、入出力装置ＩＯ０が故障した可能性があると判断し、入出力装置ＩＯ０にＢＩＳＴを実行させる。
【００４４】
なお、ビジー情報ＢＳＹを出力する機能は、ポートＭＰＴの機能から省かれてもよく、ビジー信号ＢＳＹに基づいてパケットの出力を禁止する機能は、ポートＵＰＴの機能から省かれてもよい。また、流量情報ＦＬＷに基づいて各入出力装置ＩＯの動作状況を判断する機能は、ポートＭＰＴの機能から省かれてもよく、データの量を計測する機能および流量情報ＦＬＷを出力する機能は、ポートＵＰＴの機能から省かれてもよい。
【００４５】
ポートＤＰＴ０、ＤＰＴ１、ＤＰＴ２は、例えば、入出力装置ＩＯ０、ＩＯ１、ＩＯ２のそれぞれに接続された下流ポートである。各ポートＤＰＴ０、ＤＰＴ１、ＤＰＴ２は、クロスバースイッチ部ＣＢＳＷを介して転送されるパケットを、各ポートＤＰＴ０、ＤＰＴ１、ＤＰＴ２に接続された入出力装置ＩＯ０、ＩＯ１、ＩＯ２に出力する。また、各ポートＤＰＴ０、ＤＰＴ１、ＤＰＴ２は、各ポートＤＰＴ０、ＤＰＴ１、ＤＰＴ２に接続された入出力装置ＩＯ０、ＩＯ１、ＩＯ２から出力されるパケットをクロスバースイッチ部ＣＢＳＷに出力する。
【００４６】
クロスバースイッチ部ＣＢＳＷは、転送部ＢＰＳＷ、スイッチＳＷ、調停部ＡＲＢおよび記憶部ＭＮＧＩＤを有する。記憶部ＭＮＧＩＤは、ポートＭＰＴを識別する宛先情報の１つであるＩＤ（例えば、Requester ID）を記憶する。
【００４７】
調停部ＡＲＢは、各ポートＵＰＴ、ＭＰＴからスイッチＳＷに入力されるパケットに含まれる宛先アドレスまたは宛先ＩＤを読み出し、読み出した宛先に応じてスイッチＳＷを切り替える。例えば、調停部ＡＲＢは、ポートＵＰＴから出力されたパケットに入出力装置ＩＯ０を示す宛先ＩＤが含まれる場合、スイッチＳＷにポートＵＰＴ、ＤＰＴ０間を接続させる。
【００４８】
また、調停部ＡＲＢは、各ポートＤＰＴ（ＤＰＴ０、ＤＰＴ１、ＤＰＴ２）からスイッチＳＷに入力されるパケットが、記憶部ＭＮＧＩＤに記憶されたポートＭＰＴのＩＤを含む場合、パケットを出力したポートＤＰＴとポートＭＰＴとを接続する。すなわち、調停部ＡＲＢは、入出力装置ＩＯ０、ＩＯ１、ＩＯ２からの応答に含まれる宛先情報が、記憶部ＭＮＧＩＤに記憶した宛先情報（ポートＭＰＴを示す）であることを検出する検出部の一例である。調停部ＡＲＢは、各ポートＤＰＴ０、ＤＰＴ１、ＤＰＴ２からスイッチＳＷに入力されるパケットが、記憶部ＭＮＧＩＤに記憶されたポートＭＰＴのＩＤを含まない場合、パケットを出力したポートＤＰＴとポートＵＰＴとを接続する。
【００４９】
調停部ＡＲＢと記憶部ＭＮＧＩＤとにより、下流側（入出力装置ＩＯ）から上流側（プロセッサＣＰＵまたはコントローラＢＭＣ）へのパケットの転送経路が複数ある場合にも、パケットをプロセッサＣＰＵまたはコントローラＢＭＣに転送することができる。
【００５０】
さらに、調停部ＡＲＢは、ポートＵＰＴから出力されるコマンドが、ポートＤＰＴ０、ＤＰＴ１、ＤＰＴ２に入出力装置ＩＯを割り当てる割り当てコマンドであることを判定する判定部ＣＦＧＪを有する。判定部ＣＦＧＪは、割り当てコマンドを検出した場合、転送部ＢＰＳＷのバイパススイッチを閉じさせる制御信号を出力する。
【００５１】
例えば、割り当てコマンドは、入出力装置ＩＯにアドレスやＩＤを割り当てるコマンドであり、例えば、ＰＣＩ ｅｘｐｒｅｓｓ規格のインタフェースでは、コンフィギュレーションアクセスコマンド（コンフィギュレーションライトコマンド）である。例えば、割り当てコマンドは、サーバＳＶの起動時および新たな入出力装置ＩＯがサーバＳＶに接続された場合、プロセッサＣＰＵにより発行される。
【００５２】
転送部ＢＰＳＷは、割り当てコマンドの発行を示す制御信号を判定部ＣＦＧＪから受けた場合、ポートＵＰＴ、ＭＰＴ間を互いに接続し、ポートＵＭＴから各入出力装置ＩＯに転送される割り当て用のアドレスまたは割り当て用のＩＤをポートＭＰＴに転送する。これにより、ポートＭＰＴは、各入出力装置ＩＯに割り当ての情報を読み出すパケットを発行することなく、各入出力装置ＩＯの割り当ての情報を取得することができる。この結果、ポートＭＰＴが割り当ての情報を読み出すパケットを発行する場合に比べて、ポートＵＰＴから出力されるパケットとポートＭＰＴが出力するパケットとが競合する頻度を下げることができる。すなわち、プロセッサＣＰＵによる入出力装置ＩＯのアクセス効率の低下を抑止できる。
【００５３】
なお、調停部ＡＲＢおよび記憶部ＭＮＧＩＤは、クロスバースイッチ部ＣＢＳＷの外部に配置されてもよい。また、スイッチ装置ＳＷＤは、判定部ＣＦＧＪおよび転送部ＢＰＳＷを含まない構成でもよい。さらに、記憶部ＭＮＧＩＤに記憶されたポートＭＰＴのＩＤに基づいて、パケットを出力したポートＤＰＴとポートＭＰＴとを接続する機能は、クロスバースイッチ部ＣＢＳＷの機能から省かれてもよい。
【００５４】
スイッチＳＷは、調停部ＡＲＢによる制御に基づいて、ポートＵＰＴとポートＤＰＴ０、ＤＰＴ１、ＤＰＴ２のいずれかを接続し、あるいは、ポートＭＰＴとポートＤＰＴ０、ＤＰＴ１、ＤＰＴ２のいずれかを接続する。なお、図２では、ポートＤＰＴ（ＤＰＴ０、ＤＰＴ１、ＤＰＴ２）は、入出力装置ＩＯ０、ＩＯ１、ＩＯ２のそれぞれに対応して設けられるが、ポートＤＰＴの数は、サーバＳＶに接続される入出力装置ＩＯ０、ＩＯ１、ＩＯ２の数より多くてもよい。これにより、３以上の入出力装置ＩＯがスイッチ装置ＳＷＤに接続可能になる。
【００５５】
図３は、図２に示すスイッチ装置ＳＷＤの例を示す。クロスバースイッチ部ＣＢＳＷの構成および機能は、図２で説明したため、図３での説明は省略する。
【００５６】
ポートＵＰＴは、変換部ＳＥＲＤＥＳｕ、プロトコル制御部ＰＲＯＣｕ、ルーティング部ＲＯＵＴｕ、ホールド制御部ＨＬＤＣＮＴおよび流量計測部ＦＬＷＭＥＳを有する。変換部ＳＥＲＤＥＳｕは、プロセッサＣＰＵからのシリアル信号をパラレル信号に変換し、変換したパラレル信号をプロトコル制御部ＰＲＯＣｕに出力する。また、変換部ＳＥＲＤＥＳｕは、プロトコル制御部ＰＲＯＣｕからのパラレル信号をシリアル信号に変換し、変換したシリアル信号をプロセッサＣＰＵに出力する。例えば、変換部ＳＥＲＤＥＳｕは、ＳｅｒＤｅｓ（SERializer/DESerializer）であり、プロセッサＣＰＵに接続されるシリアルバスは、ＰＣＩ ｅｘｐｒｅｓｓ規格の信号を伝送する。なお、図２で説明したように、プロセッサＣＰＵは、ＰＣＩ ｅｘｐｒｅｓｓ規格のインタフェースを有するホストブリッジを介してポートＵＰＴに接続される。
【００５７】
プロトコル制御部ＰＲＯＣｕは、プロセッサＣＰＵから出力されるパケットのヘッダを解読し、解読結果をパケットともにルーティング部ＲＯＵＴｕに渡す。ルーティング部ＲＯＵＴｕは、プロトコル制御部ＰＲＯＣｕが解読したヘッダの情報に基づいて、パケットを転送する入出力装置ＩＯへの経路を決定し、決定した経路を示す情報をパケットともにスイッチＳＷに渡す。
【００５８】
ルーティング部ＲＯＵＴｕは、ホールド制御部ＨＬＤからの指示に基づいて、パケットの転送を中断し、あるいは、中断したパケットの転送を再開する。ルーティング部ＲＯＵＴｕは、プロセッサＣＰＵからのパケットが入出力装置ＩＯに対するリードアクセスまたはライトアクセスを示す場合、パケットに含まれるデータ長をデータの転送量として流量計測部ＦＬＷＭＥＳに出力する。例えば、ルーティング部ＲＯＵＴｕは、ＰＣＩ規格で定められたＰＣＩ−ｔｏ−ＰＣＩブリッジである。
【００５９】
ホールド制御部ＨＬＤＣＮＴは、ビジー情報ＢＳＹに基づいて、ルーティング部ＲＯＵＴｕにパケットの転送の中断を指示し、あるいは、パケットの転送の再開を指示する。流量計測部ＦＬＷＭＥＳは、ルーティング部ＲＯＵＴｕから受けるデータの転送量を積算するカウンタＣＯＵＮＴを入出力装置ＩＯ毎に有する。流量計測部ＦＬＷＭＥＳは、プロセッサＣＰＵからのパケットに含まれるデータの転送量を積算する積算部の一例である。
【００６０】
ポートＭＰＴは、変換部ＳＥＲＤＥＳｍ、プロトコル制御部ＰＲＯＣｍ、ルーティング部ＲＯＵＴｍ、ビジー制御部ＢＳＹＣＮＴおよび流量管理部ＦＬＷＭＮＧを有する。変換部ＳＥＲＤＥＳｍは、コントローラＢＭＣの監視制御部ＩＯＣＴＬからのシリアル信号をパラレル信号に変換し、変換したパラレル信号をプロトコル制御部ＰＲＯＣｍに出力する。また、変換部ＳＥＲＤＥＳｍは、プロトコル制御部ＰＲＯＣｍからのパラレル信号をシリアル信号に変換し、変換したシリアル信号をコントローラＢＭＣの監視制御部ＩＯＣＴＬに出力する。例えば、変換部ＳＥＲＤＥＳｍは、ＳｅｒＤｅｓであり、コントローラＢＭＣの監視制御部ＩＯＣＴＬに接続されるシリアルバスは、ＰＣＩ ｅｘｐｒｅｓｓ規格の信号を伝送する。
【００６１】
プロトコル制御部ＰＲＯＣｍは、コントローラＢＭＣから出力されるパケットのヘッダを解読し、解読結果をパケットともにルーティング部ＲＯＵＴｍに渡す。ルーティング部ＲＯＵＴｍは、プロトコル制御部ＰＲＯＣｍが解読したヘッダの情報に基づいて、パケットを転送する入出力装置ＩＯへの経路を決定し、決定した経路を示す情報をパケットともにスイッチＳＷに渡す。例えば、ルーティング部ＲＯＵＴｍは、ＰＣＩ−ｔｏ−ＰＣＩブリッジである。ルーティング部ＲＯＵＴｍは、入出力装置ＩＯにパケットを転送する場合、ビジー制御部ＢＳＹＣＮＴにビジー情報ＢＳＹを出力させる指示を発行する。また、ルーティング部ＲＯＵＴｍは、コントローラＢＭＣからの流量管理部ＦＬＷＭＮＧのレジスタＲＥＧを読み出すパケットに基づいて、レジスタＲＥＧに保持される転送量の平均値を読み出し、読み出した平均値をコントローラＢＭＣに向けて出力する。
【００６２】
ビジー制御部ＢＳＹＣＮＴは、ルーティング部ＲＯＵＴｍからの指示に基づいてビジー情報ＢＳＹを出力する。流量管理部ＦＬＷＭＮＧは、流量計測部ＦＬＷＭＥＳのカウンタＣＯＵＮＴのそれぞれに保持された流量を、所定の周期（例えば、数百ミリ秒間隔あるいは数秒間隔）で読み出す。流量管理部ＦＬＷＭＮＧは、流量計測部ＦＬＷＭＥＳのカウンタＣＯＵＮＴのそれぞれに対応する複数のレジスタＲＥＧを有する。流量管理部ＦＬＷＭＮＧは、カウンタＣＯＵＮＴ毎（すなわち、入出力装置ＩＯ毎）に、今回読み出した転送量から前回読み出した転送量を差し引き、差し引いた値をカウンタＣＯＵＮＴに対応するレジスタＲＥＧに格納する。すなわち、流量管理部ＦＬＷＭＮＧは、ポートＵＰＴと各入出力装置ＩＯとの間で転送されるデータの転送量の平均値を、入出力装置ＩＯ毎にレジスタＲＥＧに格納する。レジスタＲＥＧは、流量計測部ＦＬＷＭＥＳで積算されたデータの転送量から求められる転送量の平均値を、コントローラＢＭＣからアクセス可能に保持する保持部の一例である。
【００６３】
ポートＤＰＴ０は、変換部ＳＥＲＤＥＳｄ０、プロトコル制御部ＰＲＯＣｄ０およびルーティング部ＲＯＵＴｄ０を有する。ポートＤＰＴ１は、変換部ＳＥＲＤＥＳｄ１、プロトコル制御部ＰＲＯＣｄ１およびルーティング部ＲＯＵＴｄ１を有する。ポートＤＰＴ２は、変換部ＳＥＲＤＥＳｄ２、プロトコル制御部ＰＲＯＣｄ２およびルーティング部ＲＯＵＴｄ２を有する。
【００６４】
変換部ＳＥＲＤＥＳｄ０、変換部ＳＥＲＤＥＳｄ１、変換部ＳＥＲＤＥＳｄ２は、互いに同一または同様の構成であるため、以下では変換部ＳＥＲＤＥＳｄ０について説明する。プロトコル制御部ＰＲＯＣｄ０、プロトコル制御部ＰＲＯＣｄ１、プロトコル制御部ＰＲＯＣｄ２は、互いに同一または同様の構成であるため、以下ではプロトコル制御部ＰＲＯＣｄ０について説明する。ルーティング部ＲＯＵＴｄ０、ＲＯＵＴｄ１、ＲＯＵＴｄ２は、互いに同一または同様の構成であるため、以下ではルーティング部ＲＯＵＴｄ０について説明する。
【００６５】
変換部ＳＥＲＤＥＳｄ０は、入出力装置ＩＯ０からのシリアル信号をパラレル信号に変換し、変換したパラレル信号をプロトコル制御部ＰＲＯＣｄ０に出力する。また、変換部ＳＥＲＤＥＳｄ０は、プロトコル制御部ＰＲＯＣｄ０からのパラレル信号をシリアル信号に変換し、変換したシリアル信号を入出力装置ＩＯ０に出力する。例えば、変換部ＳＥＲＤＥＳｕは、ＳｅｒＤｅｓである。
【００６６】
プロトコル制御部ＰＲＯＣｄ０は、入出力装置ＩＯ０から出力されるパケットのヘッダを解読し、解読結果をパケットともにルーティング部ＲＯＵＴｄ０に渡す。ルーティング部ＲＯＵＴｄ０は、プロトコル制御部ＰＲＯＣｄ０が解読したヘッダの情報に基づいて、パケットを転送するポートＵＰＴまたはポートＭＰＴへの経路を決定し、決定した経路を示す情報をパケットともにスイッチＳＷに渡す。例えば、ルーティング部ＲＯＵＴｄ０は、ＰＣＩ−ｔｏ−ＰＣＩブリッジである。
【００６７】
図４は、図２に示す入出力装置ＩＯの例を示す。図４に示す入出力装置ＩＯは、図２に示す入出力装置ＩＯ０、ＩＯ１、ＩＯ２のいずれかである。すなわち、入出力装置ＩＯは、ネットワークインタフェース、ホストバスアダプタ、ハードディスクドライブ装置、ソリッドステートドライブ装置等である。
【００６８】
入出力装置ＩＯは、変換部ＳＥＲＤＥＳＩＯ、プロトコル制御部ＰＲＯＣＩＯ、入出力デバイスＩＯＤＥＶ、試験制御部ＢＣＮＴおよびＢＩＳＴの制御プログラム（図２のＢＩＳＴＰＲＧ）を記憶する記憶部ＢＰＲＧを有する。例えば、記憶部ＢＰＲＧは、ＲＯＭ（Read Only Memory）である。記憶部ＢＰＲＧに格納されたＢＩＳＴの制御プログラムは、入出力装置ＩＯのサーバＳＶへの接続に基づいて、コントローラＢＭＣからの指示により、コントローラＢＭＣのメモリＭＥＭｍに転送される。換言すれば、コントローラＢＭＣは、入出力装置ＩＯがサーバＳＶに接続されたことに基づいて、記憶部ＢＰＲＧに格納されたＢＩＳＴの制御プログラムを読み出すパケットを出力する。
【００６９】
変換部ＳＥＲＤＥＳＩＯは、ポートＤＰＴ（ＤＰＴ０、ＤＰＴ１、ＤＰＴ２のいずれか）からのシリアル信号をパラレル信号に変換し、変換したパラレル信号をプロトコル制御部ＰＲＯＣＩＯに出力する。また、変換部ＳＥＲＤＥＳＩＯは、プロトコル制御部ＰＲＯＣＩＯからのパラレル信号をシリアル信号に変換し、変換したシリアル信号をポートＤＰＴに出力する。例えば、変換部ＳＥＲＤＥＳＩＯは、ＳｅｒＤｅｓであり、ポートＤＰＴに接続されるシリアルバスは、ＰＣＩ ｅｘｐｒｅｓｓ規格の信号を伝送する。
【００７０】
プロトコル制御部ＰＲＯＣＩＯは、変換部ＳＥＤＥＳＩＯから受けるパケットに基づいて、入出力装置ＩＯへのデータの書き込み、および入出力装置ＩＯからのデータの読み出しを実行する。また、プロトコル制御部ＰＲＯＣＩＯは、入出力装置ＩＯから出力されるパケットのヘッダを解読し、解読結果をパケットともに変換部ＳＥＤＥＳＩＯに渡す。
【００７１】
また、プロトコル制御部ＰＲＯＣＩＯは、変換部ＳＥＤＥＳＩＯを介してコントローラＢＭＣから受けるパケットが入出力デバイスＩＯＤＥＶのＢＩＳＴの起動、停止またはＢＩＳＴの結果の問い合わせを示す場合、試験制御部ＢＣＮＴにパケットの内容を通知する。例えば、プロトコル制御部ＰＲＯＣＩＯは、ＢＩＳＴの結果の問い合わせに対して、試験制御部ＢＣＮＴから受けるＢＩＳＴの結果を、変換部ＳＥＤＥＳＩＯを介してコントローラＢＭＣに出力する。
【００７２】
試験制御部ＢＣＮＴは、ＢＩＳＴの起動を示すパケットを、プロトコル制御部ＰＲＯＣＩＯを介してコントローラＢＭＣから受けた場合、入出力デバイスＩＯＤＥＶのＢＩＳＴを実行する。また、試験制御部ＢＣＮＴは、ＢＩＳＴの結果の読み出しを示すパケットを、プロトコル制御部ＰＲＯＣＩＯを介してコントローラＢＭＣから受けた場合、ＢＩＳＴの結果をプロトコル制御部ＰＲＯＣＩＯに出力する。なお、試験制御部ＢＣＮＴは、ＢＩＳＴの実行中に、ＢＩＳＴの結果の読み出しを示すパケットを受けた場合、ＢＩＳＴの実行中を示す情報をプロトコル制御部ＰＲＯＣＩＯに出力する。さらに、試験制御部ＢＣＮＴは、ＢＩＳＴの停止を示すパケットを、プロトコル制御部ＰＲＯＣＩＯを介してコントローラＢＭＣから受けた場合、ＢＩＳＴを停止する。
【００７３】
例えば、試験制御部ＢＣＮＴによる入出力デバイスＩＯＤＥＶのＢＩＳＴの制御は、図２に示すコントローラＢＭＣがメモリＭＥＭｍに格納されたプログラムＢＩＳＴＰＲＧを実行することにより実現される。コントローラＢＭＣは、入出力装置ＩＯのＢＩＳＴを実行する前に、入出力装置ＩＯの記憶部ＢＰＲＧに格納されたプログラムＢＩＳＴＰＲＧを読み出すパケットを発行する。そして、コントローラＢＭＣは、読み出したプログラムＢＩＳＴＰＲＧをメモリＭＥＭｍに格納する。
【００７４】
図５は、図２に示す情報処理装置ＩＰＥ２がユーザにより使用される例を示す。図２に示す情報処理装置ＩＰＥ２は、図５に示す情報処理装置ＩＰＥＡ、ＩＰＥＢ、ＩＰＥＣのいずれかである。管理サーバＳＶｍは、管理用のネットワークＭＮＷを介して、図２に示すサーバＳＶに対応するサーバＳＶ０、ＳＶ１、ＳＶ２に接続され、情報処理装置ＩＰＥＡ、ＩＰＥＢ、ＩＰＥＣを管理する。
【００７５】
図５に示す例では、情報処理装置ＩＰＥＡは、入出力装置ＩＯ０としてＧＰＵ（Graphics Processing Unit）を有し、入出力装置ＩＯ１としてＳＳＤ（Solid State Drive）を有する。また、情報処理装置ＩＰＥＡは、入出力装置ＩＯ２として業務ネットワークＢＮＷに接続されるＮＩＣ（Network Interface Card）−Ａを有する。
【００７６】
例えば、情報処理装置ＩＰＥＢは、入出力装置ＩＯ０としてＨＢＡ（Host Bus Adapter）−Ａを有し、入出力装置ＩＯ１としてＳＳＤを有し、入出力装置ＩＯ２として業務ネットワークＢＮＷに接続されるＮＩＣ−Ｂを有する。また、情報処理装置ＩＰＥＢは、ＨＢＡ−Ａを介してサーバＳＶ１に接続されたハードディスクドライブ装置ＨＤＤを有する。
【００７７】
例えば、情報処理装置ＩＰＥＣは、入出力装置ＩＯ０としてＧＰＵを有し、入出力装置ＩＯ１としてＨＢＡ−Ａを有し、入出力装置ＩＯ２として業務ネットワークＢＮＷに接続されるＮＩＣ−Ａを有する。また、情報処理装置ＩＰＥＣは、ＨＢＡ−Ａを介してサーバＳＶ２に接続されたハードディスクドライブ装置ＨＤＤを有する。
【００７８】
各情報処理装置ＩＰＥＡ、ＩＰＥＢ、ＩＰＥＣは、業務ネットワークＢＮＷおよびルータＲＯＵＴを介してインタネットまたはイントラネット等のネットワークＮＷに接続される。例えば、情報処理装置ＩＰＥＡは、ユーザＵＳＥＲＡが管理する端末ＴＭＡにより、ネットワークＮＷを介してアクセスされ、情報処理装置ＩＰＥＢは、ユーザＵＳＥＲＢが管理する端末ＴＭＢにより、ネットワークＮＷを介してアクセスされる。例えば、情報処理装置ＩＰＥＣは、ユーザＵＳＥＲＣが管理する端末ＴＭＣにより、ネットワークＮＷを介してアクセスされる。すなわち、図５は、ＩａａＳ（Infrastructure as a Service）によるコンピュータシステムの例を示す。
【００７９】
図６は、図２に示す構成表ＣＦＧＴＢＬの例を示す。図６に示す例は、図５に示す情報処理装置ＩＰＥＡの構成表ＣＦＧＴＢＬを示す。構成表ＣＦＧＴＢＬは、入出力装置ＩＯがサーバＳＶに接続される毎、あるいは接続が解除される毎に更新される。
【００８０】
構成表ＣＦＧＴＢＬは、デバイス名、宛先ＩＤ、デバイスタイプおよび状態を格納する領域を有する。デバイス名の領域は、サーバＳＶに接続される入出力装置ＩＯの名称（例えば、ＤＥＶ０、ＤＥＶ１、ＤＥＶ２）が格納される。
【００８１】
宛先ＩＤの領域は、入出力装置ＩＯの接続先を示す情報が格納される。図６は、入出力装置ＩＯがＰＣＩ ｅｘｐｒｅｓｓ規格のインタフェースを用いてサーバＳＶに接続される場合、宛先ＩＤとして、ＢＤＦ（Bus number, Device number, Function number）を示す３つの数値が格納される例を示す。なお、宛先ＩＤとして格納される情報は、ＢＤＦに限定されず、他の形式でもよく、宛先アドレスでもよい。
【００８２】
デバイスタイプの領域は、入出力装置ＩＯ０の種類（この例では、ＧＰＵ、ＳＳＤ、ＮＩＣ−Ａ）を示す情報が格納される。状態の領域は、入出力装置ＩＯの状態（リセット、ディセーブル、イネーブルのいずれか）が格納される。リセットは、入出力装置ＩＯが起動されていない状態を示し、ディセーブルは、入出力装置ＩＯの起動後に使用が禁止された状態を示し、イネーブルは、入出力装置ＩＯが使用可能な状態にあることを示す。
【００８３】
図７は、図２に示す試験表ＴＥＳＴＴＢＬの例を示す。図７に示す例は、図５に示す情報処理装置ＩＰＥＡ、ＩＰＥＢ、ＩＰＥＣの各々の試験表ＴＥＳＴＴＢＬを示す。例えば、試験表ＴＥＳＴＴＢＬは、サーバＳＶに接続可能な入出力装置ＩＯの種類（デバイスタイプ）毎に、試験の仕様を示す情報を保持する。
【００８４】
試験表ＴＥＳＴＴＢＬは、デバイスタイプ、読み出し空間、許可フラグ、閾値およびテストプログラム名を格納する領域を有する。デバイスタイプの領域には、構成表ＣＦＧＴＢＬ（図６）のデバイスタイプの領域と同様に、サーバＳＶに接続される入出力装置ＩＯの種類（例えば、ＮＩＣ−Ａ、ＨＢＡ−Ａ、ＨＣＡ（Host Channel Adapter）−Ａ、ＳＳＤ等）が格納される。
【００８５】
読み出し空間の領域は、ベースアドレスＢａｒ（Ｂａｒ０からＢａｒ６のいずれか）と、ベースアドレスＢａｒに対する相対値（オフセット）で示されるアドレス領域ａｄｄｒ（例えば、ａｄｄｒ１からａｄｄｒ２の範囲）とが格納される。ベースアドレスＢａｒとアドレス領域ａｄｄｒで示される読み出し空間は、読み出しアクセスにより入出力装置ＩＯの状態が変化しないことが確約された安全なアドレス空間である。
【００８６】
許可フラグの領域は、ＢＩＳＴの実行の許可を示す情報またはＢＩＳＴの実行の禁止を示す情報が格納される。閾値およびプログラム名の領域は、許可フラグが許可を示す場合に有効になる。閾値を示す領域は、ＢＩＳＴの起動を判断するデータの転送量が格納される。プログラム名を示す領域は、データの転送量（平均値）が閾値以下になった場合に起動されるＢＩＳＴを制御するプログラムＢＩＳＴＰＲＧ（例えば、ＢＩＳＴＰＲＧ１）の名称が格納される。なお、例えば、プログラムＢＩＳＴＰＲＧは、入出力装置ＩＯのサーバＳＶへの接続に基づいて、入出力装置ＩＯの記憶部ＢＰＲＧ（図４）からコントローラＢＭＣのメモリＭＥＭｍに転送される。
【００８７】
この例では、閾値を示す領域に、１ＫＢ／ｓ（毎秒１キロバイト）を示す情報が格納される。コントローラＢＭＣは、サーバＳＶに接続された入出力装置ＩＯ毎に、ポートＭＰＴのレジスタＲＥＧに保持されるデータの転送量の平均値を所定の周期で監視する。コントローラＢＭＣは、平均値が試験表ＴＥＳＴＴＢＬに保持された閾値以下になった場合、プログラムＢＩＳＴＰＲＧを実行し、ＢＩＳＴの起動をスイッチ装置ＳＷＤのポートＭＰＴに指示し、データの転送量が低下した入出力装置ＩＯにＢＩＳＴを実行させる。
【００８８】
図７に示すように、デバイスタイプ毎に入出力装置ＩＯの試験仕様が、試験表ＴＥＳＴＴＢＬに予め格納されるため、新たな入出力装置ＩＯがサーバＳＶに接続される場合にも、試験表ＴＥＳＴＴＢＬを更新することなく、図１１に示す試験を実行することができる。また、デバイスタイプに拘わらず共通のパラメータ（読み出し空間、許可フラグ、閾値、プログラム名）が試験表ＴＥＳＴＴＢＬに格納されるため、図１１に示す試験プログラムを、入出力装置ＩＯの種類に拘わらず共通にすることができる。
【００８９】
図８は、図２に示す情報処理装置ＩＰＥ２が構成表ＣＦＧＴＢＬを更新する動作の例を示す。図８の左側は、コントローラＢＭＣの動作を示し、図８の右側は、ポートＭＰＴの動作を示す。
【００９０】
コントローラＢＭＣの動作フローは、例えば、サーバＳＶが起動されたことに基づいて開始される。まず、ステップＳ１０において、コントローラＢＭＣは、ポートＭＰＴにサーバＳＶに接続された入出力装置ＩＯの仕様および状態を問い合わせるパケットを発行する。
【００９１】
次に、ステップＳ１２において、コントローラＢＭＣは、ポートＭＰＴから受けた入出力装置ＩＯの仕様および状態を、入出力装置ＩＯ毎に読み出す。次に、ステップＳ１４において、コントローラＢＭＣは、読み出した入出力装置ＩＯの仕様および状態を構成表ＣＦＧＴＢＬに書き込むことで、構成表ＣＦＧＴＢＬを更新する。ステップＳ１２、Ｓ１４は、サーバＳＶに接続された全ての入出力装置ＩＯの仕様および状態が構成表ＣＦＧＴＢＬに書き込まれるまで繰り返される。
【００９２】
次に、ステップＳ１６において、コントローラＢＭＣは、所定時間スリープした後、処理をステップＳ１０に戻す。そして、所定時間毎に構成表ＣＦＧＴＢＬが更新される。
【００９３】
一方、ポートＭＰＴは、ステップＳ２０において、サーバＳＶに接続された入出力装置ＩＯの仕様および状態を問い合わせるコントローラＢＭＣからのパケットに応答して、サーバＳＶに接続された入出力装置ＩＯの仕様および状態を出力する。なお、ポートＭＰＴは、プロセッサＣＰＵにより発行される割り当てコマンドを、転送部ＢＰＳＷを介して予め受け、受けた割り当てコマンドに含まれるデバイスタイプや宛先ＩＤ等の仕様と入出力装置ＩＯの状態とを保持する。
【００９４】
図９は、図２に示す情報処理装置ＩＰＥ２が実行する入出力装置ＩＯの試験の概要を示す。図９は、コントローラＢＭＣがプログラムＩＯＰＲＧおよびプログラムＢＩＳＴＰＲＧを実行することにより実現される。すなわち、図９は、情報処理装置の制御方法の別の実施形態および情報処理装置の制御プログラムの一実施形態を示す。図９に示す試験は、サーバＳＶに接続される入出力装置ＩＯ毎に実行される。図９に示す試験の具体的な例は、図１１に示される。例えば、図９に示す試験は、所定の周期で実行される。
【００９５】
まず、ステップＳ１００において、コントローラＢＭＣは、入出力装置ＩＯのコンフィギュレーションレジスタを読み出す第１の読み出しコマンド（パケット）を、ポートＭＰＴを介して入出力装置ＩＯに出力する。そして、コントローラＢＭＣは、コンフィギュレーションレジスタに設定された情報を読み出させるか否かを試験する。すなわち、コンフィギュレーションレジスタの読み出し試験が実行される。なお、コントローラＢＭＣは、ステップＳ１００において、入出力装置ＩＯに設けられる他のレジスタの読み出し試験を実行してもよい。
【００９６】
次に、ステップＳ２００において、コントローラＢＭＣは、図７に示す読み出し空間を読み出す第２の読み出しコマンド（パケット）を、ポートＭＰＴを介して入出力装置ＩＯに出力する。そして、コントローラＢＭＣは、読み出し空間に記憶された情報を読み出させるか否かを試験する。すなわち、読み出し空間の読み出し試験が実行される。なお、図１１に示すように、ステップＳ２００は、ステップＳ１００において、コンフィギュレーションレジスタから情報が正常に読み出させる場合に実行される。
【００９７】
次に、ステップＳ３００において、コントローラＢＭＣは、ポートＭＰＴを介して、図８に示す許可フラグが許可に設定された入出力装置ＩＯにＢＩＳＴを実行させる試験コマンド（パケット）を出力する。試験コマンドを受けた入出力装置ＩＯの試験制御部ＢＣＮＴは、入出力装置ＩＯＤＥＶのＢＩＳＴを実行し、ポートＭＰＴを介してＢＩＳＴの結果をコントローラＢＭＣに出力する。すなわち、コントローラＢＭＣは、入出力装置ＩＯにＢＩＳＴを実行させ、入出力装置ＩＯが正常に動作するか否かを試験する。なお、図１１に示すように、ステップＳ３００は、ステップＳ２００において、読み出し空間から情報が正常に読み出させる場合に実行される。
【００９８】
ステップＳ３００によるＢＩＳＴは、ステップＳ１００、Ｓ２００の試験で正常な動作が判定された場合に実行される。すなわち、コントローラＢＭＣは、入出力装置ＩＯへの負荷が相対的に小さい簡易な試験の実行後、入出力装置ＩＯへの負荷が相対的に大きい複雑な試験を実行する。これにより、ステップＳ１００、Ｓ２００を実行することなくステップＳ３００を実行する場合に比べて、試験のために動作する入出力装置ＩＯの動作時間（試験による拘束時間）を短くすることができる。この結果、コントローラＢＭＣによる入出力装置ＩＯのアクセスがプロセッサＣＰＵによる入出力装置ＩＯのアクセスと競合する確率を下げることができる。すなわち、コントローラＢＭＣによる入出力装置ＩＯの試験が、プロセッサＣＰＵの処理性能に与える影響を最小限にすることができる。
【００９９】
図１０は、図９に示す各試験における処理の流れの例を示す。
【０１００】
ステップＳ１００では、コントローラＢＭＣは、入出力装置ＩＯのコンフィギュレーションレジスタを読み出す読み出しコマンドＣｆｇＲｄをスイッチ装置ＳＷＤのポートＭＰＴに出力する（図１０（ａ））。ポートＭＰＴは、読み出しコマンドＣｆｇＲｄに応答して、ビジー信号ＢＳＹをアサートした後、試験する入出力装置ＩＯに向けて読み出しコマンドＣｆｇＲｄを出力する（図１０（ｂ）、（ｃ））。
【０１０１】
読み出しコマンドＣｆｇＲｄを受けた入出力装置ＩＯは、コンフィギュレーションレジスタの内容を読み出し、読み出した内容を完了コマンドＣｐｌＤ（Completion with Data）としてポートＭＰＴに向けて出力する（図１０（ｄ））。完了コマンドＣｐｌＤを受けたポートＭＰＴは、ビジー情報ＢＳＹをネゲートした後、完了コマンドＣｐｌＤをコントローラＢＭＣに出力する（図１０（ｅ）、（ｆ））。コントローラＢＭＣは、完了コマンドＣｐｌＤに含まれるコンフィギュレーションレジスタの内容が正常な場合、入出力装置ＩＯが正常であると判断する。また、コントローラＢＭＣは、完了コマンドＣｐｌＤに含まれるコンフィギュレーションレジスタの内容が正常値でない場合、または完了コマンドＣｐｌＤを受ける前にタイムアウトになった場合、入出力装置ＩＯが故障した可能性があると判断する。
【０１０２】
ステップＳ２００では、コントローラＢＭＣは、入出力装置ＩＯのメモリ空間を読み出す読み出しコマンドＭＲｄをスイッチ装置ＳＷＤのポートＭＰＴに出力する（図１０（ｇ））。ポートＭＰＴは、読み出しコマンドＭＲｄに応答して、ビジー信号ＢＳＹをアサートした後、試験する入出力装置ＩＯに向けて読み出しコマンドＭＲｄを出力する（図１０（ｈ）、（ｉ））。
【０１０３】
読み出しコマンドＭＲｄを受けた入出力装置ＩＯは、指定されたメモリ空間に保持された内容を読み出し、読み出した内容を完了コマンドＣｐｌＤとしてポートＭＰＴに向けて出力する（図１０（ｊ））。完了コマンドＣｐｌＤを受けたポートＭＰＴは、ビジー情報ＢＳＹをネゲートした後、完了コマンドＣｐｌＤをコントローラＢＭＣに出力する（図１０（ｋ）、（ｌ））。コントローラＢＭＣは、完了コマンドＣｐｌＤに含まれるメモリ空間の内容が正常な場合、入出力装置ＩＯが正常であると判断する。また、コントローラＢＭＣは、完了コマンドＣｐｌＤに含まれるメモリ空間の内容が正常値でない場合、または完了コマンドＣｐｌＤを受ける前にタイムアウトになった場合、入出力装置ＩＯが故障したと可能性があると判断する。
【０１０４】
ステップＳ３００では、コントローラＢＭＣは、入出力装置ＩＯにＢＩＳＴを起動させる書き込みコマンドＣｆｇＷｒをスイッチ装置ＳＷＤのポートＭＰＴに出力する（図１０（ｍ））。ポートＭＰＴは、書き込みコマンドＣｆｇＷｒに応答して、ビジー信号ＢＳＹをアサートした後、ＢＩＳＴを起動させる入出力装置ＩＯに向けて書き込みコマンドＣｆｇＷｒを出力する（図１０（ｎ）、（ｏ））。
【０１０５】
書き込みコマンドＣｆｇＷｒを受けた入出力装置ＩＯは、ＢＩＳＴを起動し、ＢＩＳＴの起動を示す完了コマンドＣｐｌ（Completion without Data）をポートＭＰＴに向けて出力する（図１０（ｐ））。完了コマンドＣｐｌを受けたポートＭＰＴは、受けた完了コマンドＣｐｌをコントローラＢＭＣに出力する（図１０（ｑ））。
【０１０６】
次に、コントローラＢＭＣは、ＢＩＳＴの結果を読み出す読み出しコマンドＣｆｇＲｄをスイッチ装置ＳＷＤのポートＭＰＴに出力する（図１０（ｒ））。ポートＭＰＴは、読み出しコマンドＣｆｇＲｄに応答して、入出力装置ＩＯに向けて読み出しコマンドＣｆｇＲｄを出力する（図１０（ｓ））。
【０１０７】
読み出しコマンドＣｆｇＲｄを受けた入出力装置ＩＯは、ＢＩＳＴを実行中の場合、ＢＩＳＴの実行中（ｂｕｓｙ）を示す完了コマンドＣｐｌＤをポートＭＰＴに向けて出力する（図１０（ｔ））。完了コマンドＣｐｌＤを受けたポートＭＰＴは、受けた完了コマンドＣｐｌＤをコントローラＢＭＣに出力する（図１０（ｕ））。
【０１０８】
完了コマンドＣｐｌＤ（ｂｕｓｙ）を受けたコントローラＢＭＣは、再び、ＢＩＳＴの結果を読み出す読み出しコマンドＣｆｇＲｄをスイッチ装置ＳＷＤのポートＭＰＴに出力する（図１０（ｖ））。この後、入出力装置ＩＯによるＢＩＳＴの実行が終了するまで、図１０（ｓ）、（ｔ）、（ｕ）と同じ動作が繰り返される。すなわち、コントローラＢＭＣは、ＢＩＳＴの結果をポーリングにより問い合わせる。
【０１０９】
入出力装置ＩＯは、ＢＩＳＴの結果を読み出す読み出しコマンドＣｆｇＲｄを、ＢＩＳＴが終了した後に受信すると、ＢＩＳＴの結果を完了コマンドＣｐｌＤ（ｄｏｎｅ）としてポートＭＰＴに向けて出力する（図１０（ｗ））。完了コマンドＣｐｌＤ（ｄｏｎｅ）を受けたポートＭＰＴは、ビジー情報ＢＳＹをネゲートした後、完了コマンドＣｐｌＤ（ｄｏｎｅ）をコントローラＢＭＣに出力する（図１０（ｘ）、（ｙ））。
【０１１０】
コントローラＢＭＣは、完了コマンドＣｐｌＤ（ｄｏｎｅ）に含まれるＢＩＳＴの結果が正常を示す場合、入出力装置ＩＯが正常であると判断する。また、コントローラＢＭＣは、完了コマンドＣｐｌＤ（ｄｏｎｅ）に含まれるＢＩＳＴの結果が異常を示す場合、または完了コマンドＣｐｌＤ（ｄｏｎｅ）を受ける前にタイムアウトになった場合、入出力装置ＩＯが故障したと判断する。
【０１１１】
図１１は、図９に示す試験の動作フローの例を示す。図１１に示す処理は、コントローラＢＭＣがプログラムＩＯＰＲＧおよびプログラムＢＩＳＴＰＲＧを実行することにより実現される。すなわち、図１１は、情報処理装置ＩＰＥ２の制御方法を示し、情報処理装置ＩＰＥ２の制御プログラムを示す。コントローラＢＭＣは、図１１に示す処理を入出力装置ＩＯ毎に実行する。
【０１１２】
ステップＳ１０２において、コントローラＢＭＣは、図６に示す構成表ＣＦＧＴＢＬを参照し、試験する入出力装置ＩＯの状態がイネーブルであるか否かを判定する。試験する入出力装置ＩＯの状態がイネーブルである場合、処理はステップＳ１０４に移行され、試験する入出力装置ＩＯの状態がディセーブルまたはリセットである場合、次の入出力装置ＩＯの試験に移行される。
【０１１３】
ステップＳ１０４において、コントローラＢＭＣは、試験する入出力装置ＩＯのコンフィギュレーションレジスタの内容を読み出す。次に、ステップＳ１０６において、コントローラＢＭＣは、コンフィギュレーションレジスタの内容が正常に読み出せたか否かを判定する。コンフィギュレーションレジスタの内容が正常に読み出せた場合、処理はステップＳ２０２に移行され、コンフィギュレーションレジスタの内容が正常に読み出せない場合、処理はステップＳ３１４に移行される。ステップＳ１０２、Ｓ１０４、Ｓ１０６の処理は、図９に示すステップＳ１００のコンフィギュレーションレジスタの読み出し試験に対応し、プログラムＩＯＰＲＧによる処理である。
【０１１４】
ステップＳ２０２において、コントローラＢＭＣは、図７に示す試験表ＴＥＳＴＴＢＬを参照し、試験する入出力装置ＩＯのデバイスタイプが試験表ＴＥＳＴＴＢＬに登録中であるか否かを判定する。試験する入出力装置ＩＯのデバイスタイプが試験表ＴＥＳＴＴＢＬに登録中の場合、処理はステップＳ２０４に移行され、試験する入出力装置ＩＯのデバイスタイプが未登録の場合、次の入出力装置ＩＯの試験に移行される。
【０１１５】
ステップＳ２０４において、コントローラＢＭＣは、試験表ＴＥＳＴＴＢＬを参照し、試験する入出力装置ＩＯのデバイスタイプに対応する読み出し空間の領域からデータを読み出すメモリ空間のアドレスを取得する。そして、コントローラＢＭＣは、取得したアドレスの範囲を指定して、試験する入出力装置ＩＯに読み出しコマンドを発行する。
【０１１６】
次に、ステップＳ２０６において、コントローラＢＭＣは、入出力装置ＩＯからデータが正常に読み出せたか否かを判定する。データが正常に読み出せた場合、処理はステップＳ３０２に移行され、データが正常に読み出せない場合、処理はステップＳ３１４に移行される。ステップＳ２０２、Ｓ２０４、Ｓ２０６の処理は、図９に示すステップＳ２００の読み出し空間の読み出し試験に対応し、プログラムＩＯＰＲＧによる処理である。
【０１１７】
ステップＳ３０２において、コントローラＢＭＣは、図７に示す試験表ＴＥＳＴＴＢＬを参照し、試験する入出力装置ＩＯのデバイスタイプの許可フラグが許可状態であるか否かを判定する。許可フラグが許可状態の場合、処理はステップＳ３０４に移行され、許可フラグが禁止状態である場合、次の入出力装置ＩＯの試験に移行される。
【０１１８】
ステップＳ３０４において、コントローラＢＭＣは、図７に示す試験表ＴＥＳＴＴＢＬを参照し、試験する入出力装置ＩＯのデバイスタイプの閾値を取得する。そして、コントローラＢＭＣは、ポートＭＰＴのレジスタＲＥＧに保持された試験する入出力装置ＩＯのデータの転送量の平均値が閾値以下であるか否かを判定する。データの転送量の平均値が閾値以下である場合、処理はステップＳ３０６に移行され、流量の平均値が閾値を超える場合、次の入出力装置ＩＯの試験が実行される。
【０１１９】
ステップＳ３０６において、コントローラＢＭＣは、ポートＭＰＴを介して、試験する入出力装置ＩＯにＢＩＳＴの開始を指示する。入出力装置ＩＯの試験制御部ＢＣＮＴは、コントローラＢＭＣからの指示に基づいて、ＢＩＳＴを開始する。なお、試験制御部ＢＣＮＴは、例えば、ＢＩＳＴをバックグラウンドで実行するため、プロセッサＣＰＵは、ＢＩＳＴの実行中に、入出力装置ＩＯにアクセス可能である。
【０１２０】
次に、ステップＳ３１２において、コントローラＢＭＣは、ＢＩＳＴでエラーが検出されたか否かを判定する。エラーが検出されない場合、すなわち、入出力装置ＩＯが正常に動作する場合、次の入出力装置ＩＯの試験が実行される。ＢＩＳＴでエラーが検出された場合、すなわち、入出力装置ＩＯが正常に動作しない場合、処理はステップＳ３１４に移行される。
【０１２１】
ステップＳ３１４において、コントローラＢＭＣは、試験した入出力装置ＩＯに異常があることを管理サーバＳＶｍに通知する。通知を受けた管理サーバＳＶｍは、例えば、保守点検を促すメッセージを管理者用のディスプレイに表示する。この後、次の入出力装置ＩＯの試験が実行される。ステップＳ３０２、Ｓ３０４、Ｓ３０６、Ｓ３１２、Ｓ３１４の処理は、図９に示すステップＳ３００におけるＢＩＳＴの実行の処理に対応し、プログラムＢＩＳＴＰＲＧによる処理である。
【０１２２】
図１２は、図９に示す試験の動作フローの別の例を示す。図１１と同一または同様の処理については、詳細な説明は省略する。図１２に示す処理は、コントローラＢＭＣがプログラムＩＯＰＲＧおよびプログラムＢＩＳＴＰＲＧを実行することにより実現される。すなわち、図１２は、情報処理装置ＩＰＥ２の制御方法を示し、情報処理装置ＩＰＥ２の制御プログラムを示す。
【０１２３】
図１２に示す処理は、図１１のステップＳ３０６とステップＳ３１２の間にステップＳ３０８が追加され、ステップＳ３１０が新たに追加されたことを除き、図１１の処理と同様である。
【０１２４】
ステップＳ３０８において、コントローラＢＭＣは、ＢＩＳＴの開始後に、ポートＭＰＴのレジスタＲＥＧに保持された転送量の平均値であって、試験する入出力装置ＩＯの平均値が閾値を超えたか否かを判定する。平均値が閾値を超えた場合、処理はステップＳ３１０に移行され、平均値が閾値以下の場合、処理はステップＳ３１２に移行される。
【０１２５】
ステップＳ３１０において、コントローラＢＭＣは、ポートＭＰＴを介してＢＩＳＴを実行中の入出力装置ＩＯにＢＩＳＴの停止を指示する。例えば、コントローラＢＭＣは、ＢＩＳＴを実行中の入出力装置ＩＯにＢＩＳＴを停止させる停止コマンド（停止パケット）を出力する。入出力装置ＩＯの試験制御部ＢＣＮＴは、コントローラＢＭＣからの指示に基づいて、ＢＩＳＴの実行を停止する。ステップＳ３０２、Ｓ３０４、Ｓ３０６、Ｓ３０８、Ｓ３１０、Ｓ３１２、Ｓ３１４の処理は、図９に示すステップＳ３００におけるＢＩＳＴの実行の処理に対応し、プログラムＢＩＳＴＰＲＧによる処理である。
【０１２６】
図１２では、ＢＩＳＴの開始後、例えば、プロセッサＣＰＵから入出力装置ＩＯにデータの書き込み要求またはデータの読み出し要求を示すパケットが出力され、データの転送量の平均値が閾値を超えた場合、ＢＩＳＴは停止される。データの転送量の平均値は、入出力装置ＩＯが故障した場合に閾値以下になる他、例えば、入出力装置ＩＯのスリープ、または、何らかの理由でプロセッサＣＰＵと入出力装置ＩＯとの間でデータの転送が一時的に停止する場合に閾値以下になる。この場合、プロセッサＣＰＵと入出力装置ＩＯとの間でデータ転送が再開された場合に、ＢＩＳＴを停止することで、プロセッサＣＰＵによる入出力装置ＩＯのアクセス効率を、バックグラウンドでＢＩＳＴが実行される場合に比べて向上することができる。この結果、コントローラＢＭＣによる入出力装置ＩＯの試験が、プロセッサＣＰＵの処理性能に与える影響を最小限にすることができる。
【０１２７】
以上、この実施形態においても、図１に示す実施形態と同様に、プロセッサＣＰＵからスイッチＳＷへの経路と、コントローラＢＭＣからスイッチＳＷへの経路とが、互いに独立に設けられる。また、流量計測部ＦＬＷＭＥＳと流量管理部ＦＬＷＭＮＧとにより、入出力装置ＩＯのＢＩＳＴの頻度を、所定の周期でＢＩＳＴを実行する場合の頻度に比べて下げることが可能になる。さらに、判定部ＣＦＧＪと転送部ＢＰＳＷにより、コントローラＢＭＣは、プロセッサＣＰＵの動作に影響を与えることなく、入出力装置ＩＯの割り当てを示す情報を得ることができる。この結果、コントローラＢＭＣからのパケットが、プロセッサＣＰＵからのパケットと競合する確率を下げることができる。
【０１２８】
また、ビジー信号ＢＳＹにより、コントローラＢＭＣから入出力装置ＩＯへのアクセスと、プロセッサＣＰＵから入出力装置ＩＯへのアクセスとが衝突することを回避することができ、プロセッサＣＰＵの誤動作を回避することができる。
【０１２９】
さらに、図２から図１２に示す実施形態では、以下の効果を得ることができる。調停部ＡＲＢと記憶部ＭＮＧＩＤとにより、下流側（入出力装置ＩＯ）から上流側（プロセッサＣＰＵまたはコントローラＢＭＣ）へのパケットの転送経路が複数ある場合にも、パケットをプロセッサＣＰＵまたはコントローラＢＭＣに転送することができる。
【０１３０】
図１１および図１２に示すように、コントローラＢＭＣは、入出力装置ＩＯの負荷が相対的に小さい試験（コンフィギュレーションレジスタの読み出しまたは読み出し空間の読み出し）を入出力装置ＩＯに実行させる。そして、試験がパスした場合、入出力装置ＩＯの負荷が相対的に大きいＢＩＳＴを入出力装置ＩＯに実行させる。これにより、コンフィギュレーションレジスタおよび読み出し空間の読み出し検査を実行することなくＢＩＳＴを実行する場合に比べて、試験のために動作する入出力装置ＩＯの動作時間（試験による拘束時間）を短くすることができる。
【０１３１】
この結果、コントローラＢＭＣによるアクセスがプロセッサＣＰＵによるアクセスと競合する確率を下げることができ、コントローラＢＭＣによる入出力装置ＩＯの試験が、プロセッサＣＰＵの処理性能に与える影響を最小限にすることができる。
【０１３２】
また、ＢＩＳＴ中にデータの転送量が増加した場合にＢＩＳＴを停止することで、プロセッサＣＰＵによる入出力装置ＩＯのアクセス効率を、バックグラウンドでＢＩＳＴが実行される場合に比べて向上することができる。
【０１３３】
さらに、新たな入出力装置ＩＯがサーバＳＶに接続される場合にも、試験表ＴＥＳＴＴＢＬを更新することなく図１１および図１２に示す試験を実行することができる。また、デバイスタイプに拘わらず共通のパラメータが、試験表ＴＥＳＴＴＢＬに格納されるため、コントローラＢＭＣが実行する試験プログラム（図１１および図１２）を、入出力装置ＩＯの種類に拘わらず共通にすることができる。構成表ＣＦＧＴＢＬおよび試験表ＴＥＳＴＴＢＬを設けることにより、入出力装置ＩＯの種類に応じた試験を実施することができる。
【０１３４】
なお、例えば、図５に示したサーバＳＶ０が、図２示したコントローラＢＭＣおよびスイッチ装置ＳＷＤの機能を持たない場合、入出力装置ＩＯの故障は、サーバＳＶ０を使用するユーザＵＳＥＲＡが気付くまで放置される。入出力装置ＩＯの故障に気付いたユーザＵＳＥＲＡは、管理サーバＳＶｍ等を介してコンピュータシステムの運用者に故障を通知し、入出力装置ＩＯの交換を依頼する。例えば、入出力装置ＩＯの故障は、ユーザＵＳＥＲＡが使用するＯＳ（Operating System）がエラーを検出し、またはアプリケーションがエラーを検出することで判明する。あるいは、入出力装置ＩＯの故障は、ユーザＵＳＥＲＡに貸し出されたサーバＳＶ０上にインストールされるエージェントと呼ばれる監視ソフトウェアにより検出される。監視ソフトウェアは、ＯＳに合わせて作成されるため、ユーザＵＳＥＲＡが使用するＯＳに対応する監視ソフトウェアがない場合、ユーザＵＳＥＲＡが利用可能なＯＳは限られてしまう。
【０１３５】
これに対して上述した実施形態では、監視ソフトウェアをインストールすることなく、入出力装置ＩＯの故障を自動的に検出することができる。また、ユーザが利用可能なＯＳおよびアプリケーションを制限することなく、入出力装置ＩＯの故障を自動的に検出することができる。すなわち、ＩａａＳ等のコンピュータシステムを利用するユーザに負担を掛けることなく、かつ、ユーザシステムの性能を下げることなく、サーバにより実現されるユーザシステムの運用中に、入出力装置ＩＯの故障を自動的に検出することができる。
【０１３６】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１３７】
ＡＲＢ…調停部；ＢＣＮＴ…試験制御部；ＢＭＣ…コントローラ；ＢＮＷ…業務ネットワーク；ＢＰＲＧ…記憶部；ＢＰＳＷ…転送部；ＢＳＹＣＮＴ…ビジー制御部；ＣＢＳＷ…クロスバースイッチ部；ＣＦＧＴＢＬ…構成表；ＣＯＵＮＴ…カウンタ；ＣＰＵ、ＣＰＵｍ…プロセッサ；ＣＴＬ…コントローラ；ＤＰＴ…ポート；ＦＬＷＭＥＳ…流量計測部；ＦＬＷＭＮＧ…流量管理部；ＨＬＤＣＮＴ…ホールド制御部；ＨＯＬＤ…保持部；ＩＯ…入出力装置；ＩＯＣＴＬ…監視制御部；ＩＯＣＴＬ１、ＩＯＣＴＬ２…入出力制御部；ＩＯＤＥＶ…入出力デバイス；ＩＰＥ１、ＩＰＥ２、ＩＰＥＡ、ＩＰＥＢ、ＩＰＥＣ…情報処理装置；ＪＤＧ…判定部；ＭＥＭ、ＭＥＭｍ…メモリ；ＭＮＧＩＤ…記憶部；ＭＰＴ…ポート；ＮＩＣ…インタフェース部；ＮＷ…ネットワーク；ＰＲＯＣｄ０、ＰＲＯＣｄ１、ＰＲＯＣｄ２、ＲＯＣＩＯ、ＰＲＯＣｍ、ＰＲＯＣｕ…プロトコル制御部；ＲＥＧ…レジスタ；ＲＯＵＴｄ０、ＲＯＵＴｄ１、ＲＯＵＴｄ２、ＲＯＵＴｍ、ＲＯＵＴｕ…ルーティング部；ＲＯＵＴ…ルータ；ＳＥＲＤＥＳｄ０、ＳＥＲＤＥＳｄ１、ＳＥＲＤＥＳｄ２、ＳＥＲＤＥＳＩＯ、ＳＥＲＤＥＳｍ、ＳＥＲＤＥＳｕ…変換部；ＳＵＭ…積算部；ＳＶ…サーバ；ＳＶｍ…管理サーバ；ＳＷ…スイッチ；ＳＷＤ…スイッチ装置；ＳＷＵ…スイッチ部；ＳＹＳ…情報処理システム；ＴＥＳＴＴＢＬ…試験表；ＴＭＡ、ＴＭＢ、ＴＭＣ…端末；ＵＰＴ…ポート
【図１】
2015170070.tif 000003
【図２】
2015170070.tif 000004
【図３】
2015170070.tif 000005
【図４】
2015170070.tif 000006
【図５】
2015170070.tif 000007
【図６】
2015170070.tif 000008
【図７】
2015170070.tif 000009
【図８】
2015170070.tif 000010
【図９】
2015170070.tif 000011
【図１０】
2015170070.tif 000012
【図１１】
2015170070.tif 000013
【図１２】
2015170070.tif 000014