(57)【要約】  周辺装置の位置を適切に提供すること。  記憶部（２ａ）は、装置（３，４）と周辺装置（５，６，７，８）との対応関係を示す情報および周辺装置（５，６，７，８）に対して装置（３，４）により付与された識別情報と周辺装置（５，６，７，８）の位置（Ａ，Ｂ，Ｃ，Ｄ）との対応関係を示す情報を含む管理情報を記憶する。演算部（２ｂ）は、何れかの周辺装置の識別情報が変更された旨の通知を当該装置（３，４）から受け付けると、変更の内容に応じて管理情報を更新する。演算部（２ｂ）は、装置（３，４）の何れかが、周辺装置に関するログを出力する際に当該装置から、対象の周辺装置の識別情報を取得すると、管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する。
2014076842.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置と前記複数の装置により利用可能な複数の周辺装置とを備え、前記複数の装置それぞれにより用いられる周辺装置を変更可能な情報処理装置であって、
前記複数の装置と前記複数の周辺装置との対応関係を示す情報および何れかの装置により用いられる周辺装置に対して当該装置により付与された識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含む管理情報を記憶する記憶部と、
周辺装置の識別情報が変更された旨の通知を当該周辺装置を用いる装置から受け付けると、変更の内容に応じて前記管理情報を更新し、何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、前記管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する演算部と、
を有する情報処理装置。
【請求項２】
前記管理情報は、何れかの装置で動作する第１のソフトウェアにより周辺装置に付与された識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含み、
前記演算部は、当該装置で動作する第２のソフトウェアにより当該周辺装置の識別情報が変更された旨の通知を当該装置から受け付けると、変更後の識別情報と当該周辺装置の位置を示す情報とを対応付けることで前記管理情報を更新する、
請求の範囲第１項記載の情報処理装置。
【請求項３】
前記演算部は、何れかの装置に対して周辺装置が追加された際に周辺装置の識別情報が変更された旨の通知を受け付け、当該装置と当該周辺装置との対応関係を示す情報および当該装置により付与された当該周辺装置の識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を前記管理情報に追加する、請求の範囲第１項または第２項記載の情報処理装置。
【請求項４】
前記演算部は、何れかの装置と周辺装置との接続が解除された際に周辺装置の識別情報が変更された旨の通知を受け付け、当該装置と当該周辺装置との対応関係を示す情報および当該装置により付与された当該周辺装置の識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を前記管理情報から削除する、請求の範囲第１項乃至第３項の何れか１項に記載の情報処理装置。
【請求項５】
前記演算部は、何れかの装置に対して第１の周辺装置が追加された際に、または、当該装置と第１の周辺装置との接続が解除された際に、周辺装置の識別情報が変更された旨の通知を受け付け、当該装置により用いられる第２の周辺装置の識別情報が変更されたことを検出すると、前記第２の周辺装置の変更後の識別情報と前記第２の周辺装置の位置を示す情報とを対応付けることで前記管理情報を更新する、請求の範囲第１項乃至第４項の何れか１項に記載の情報処理装置。
【請求項６】
前記複数の装置と前記複数の周辺装置との対応関係は、前記複数の装置および前記複数の周辺装置の稼働中に変更可能である、請求の範囲第１項乃至第５項の何れか１項に記載の情報処理装置。
【請求項７】
複数の装置と前記複数の装置により利用可能な複数の周辺装置とを備え、前記複数の装置それぞれにより用いられる周辺装置を変更可能なコンピュータに、
何れかの装置により用いられる周辺装置に対して当該装置により付与される識別情報が変更された旨の通知を当該装置から受け付けると、前記複数の装置と前記複数の周辺装置との対応関係を示す情報および当該識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含む管理情報を変更の内容に応じて更新し、
何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、前記管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する、
処理を実行させるプログラム。
【請求項８】
複数の装置と前記複数の装置により利用可能な複数の周辺装置とを備え、前記複数の装置それぞれにより用いられる周辺装置を変更可能な情報処理装置によって実行されるログ出力方法であって、
何れかの装置により用いられる周辺装置に対して当該装置により付与される識別情報が変更された旨の通知を当該装置から受け付けると、前記複数の装置と前記複数の周辺装置との対応関係を示す情報および当該識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含む管理情報を変更の内容に応じて更新し、
何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、前記管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する、
ログ出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、プログラムおよびログ出力方法に関する。
【背景技術】
【０００２】
現在、コンピュータなどの情報処理装置が利用されている。情報処理装置には、周辺装置を追加することで機能の拡張を図れるものがある。例えば、周辺装置は演算処理を行う演算装置によって動作が制御される。周辺装置は、情報処理装置の内部や外部に追加され得る。例えば、情報処理装置に設けられた所定のインタフェース（拡張スロットと呼ぶことがある）に周辺装置を取り付けたり、取り外したりできる。当該インタフェースとして、例えばＰＣＩ（Peripheral Component Interconnect）、ＰＣＩ−ＸおよびＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ、登録商標）などがある。【０００３】
情報処理装置では、周辺装置の保守を支援する方法が考えられている。例えば、複数のＩ／Ｏ（Input / Output）カードを搭載可能なＩ／Ｏカード拡張装置を計算機に接続して用いる場合に、Ｉ／Ｏカード拡張装置内の故障したＩ／Ｏカードのスロット位置の光源を発光させることで、当該スロット位置を保守員に通知する提案がある。【０００４】
なお、コンピュータ内の複数のプリント配線板の接続を管理するために、各プリント配線板が上位の接続位置のプリント配線板へ実装位置の情報を順次送信し、最上位の接続位置のプリント配線板から複数のプリント配線板の実装位置の情報を取得する提案もある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２５３３３２号公報
【特許文献２】特開２００９−１１０４６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
１つの情報処理装置に周辺装置を利用する複数の装置（例えば、演算装置）を設けることがある。この場合、１つの情報処理装置内に演算装置と当該演算装置が利用する周辺装置とのグループを複数実現できる。また、演算装置と周辺装置との組み合わせを適宜変更することもできる。このような情報処理装置では、周辺装置で障害が発生した場合に、情報処理装置内における当該周辺装置の搭載位置の把握が容易でないという問題がある。【０００７】
例えば、障害の発生した周辺装置の位置を、保守員が容易に把握できるのが好ましい。そこで、周辺装置を利用する装置により出力されるログに、周辺装置の位置情報を含めたいことがある。そのために、例えば周辺装置の識別情報と搭載位置との対応関係をハードコーディングにより情報処理装置に登録しておき、位置提供に用いることが考えられる。【０００８】
ところが、周辺装置に付与される識別情報は、周辺装置とそれを用いる装置との組み合わせに応じて変わり得る。例えば、ＰＣＩでは、同じ周辺装置でも上位に接続する装置が変われば、上位の装置で動作するオペレーティングシステムなどにより当該識別情報が変更され得る。このため、周辺装置に当初付与されていた識別情報が別の時点では異なっていることもある。すなわち、周辺装置の識別情報と位置情報との対応関係を予め登録しておいたとしても、当該対応関係が終始成立しているとは限らない。【０００９】
一側面によれば、本発明は、周辺装置の位置を適切に提供できる情報処理装置、プログラムおよびログ出力方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
一実施態様によれば、複数の装置と複数の装置により利用可能な複数の周辺装置とを備え、複数の装置それぞれにより用いられる周辺装置を変更可能な情報処理装置が提供される。この情報処理装置は記憶部と演算部とを有する。記憶部は、複数の装置と複数の周辺装置との対応関係を示す情報および何れかの装置により用いられる周辺装置に対して当該装置により付与された識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含む管理情報を記憶する。演算部は、周辺装置の識別情報が変更された旨の通知を当該周辺装置を用いる装置から受け付けると、変更の内容に応じて管理情報を更新し、何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する。【００１１】
また、一実施態様によれば、複数の装置と複数の装置により利用可能な複数の周辺装置とを備え、複数の装置それぞれにより用いられる周辺装置を変更可能なコンピュータによって実行されるプログラムが提供される。このプログラムは、コンピュータに、何れかの装置により用いられる周辺装置に対して当該装置により付与される識別情報が変更された旨の通知を当該装置から受け付けると、複数の装置と複数の周辺装置との対応関係を示す情報および当該識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含む管理情報を変更の内容に応じて更新し、何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する、処理を実行させる。【００１２】
また、一実施態様によれば、複数の装置と複数の装置により利用可能な複数の周辺装置とを備え、複数の装置それぞれにより用いられる周辺装置を変更可能な情報処理装置によって実行されるログ出力方法が提供される。このログ出力方法では、情報処理装置が、何れかの装置により用いられる周辺装置に対して当該装置により付与される識別情報が変更された旨の通知を当該装置から受け付けると、複数の装置と複数の周辺装置との対応関係を示す情報および当該識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含む管理情報を変更の内容に応じて更新し、何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する。
【発明の効果】
【００１３】
一実施態様によれば、周辺装置の位置を適切に提供できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】第２の実施の形態のサーバの背面を示す図である。
【図４】第２の実施の形態のハードウェア例を示す図である。
【図５】第２の実施の形態のサーバのハードウェア例を示す図である。
【図６】第２の実施の形態のＰＣＩボックスのハードウェア例を示す図である。
【図７】第２の実施の形態のＰＣＩデバイスの接続例を示す図である。
【図８】第２の実施の形態のソフトウェア例を示す図である。
【図９】第２の実施の形態の接続設定テーブルの例を示す図である。
【図１０】第２の実施の形態の装置構成テーブルの例を示す図である。
【図１１】第２の実施の形態の物理位置管理テーブルの例を示す図である。
【図１２】第２の実施の形態の接続設定用のＧＵＩの例を示す図である。
【図１３】第２の実施の形態のＰＣＩカードの交換作業の例を示す図である。
【図１４】第２の実施の形態の処理を示すフローチャートである。
【図１５】第２の実施の形態のバス番号の設定例を示す図である。
【図１６】第２の実施の形態のバス番号の設定例を示す図（続き）である。
【図１７】第２の実施の形態のＰＣＩデバイス追加例を示すフローチャートである。
【図１８】第２の実施の形態のＰＣＩデバイス削除例を示すフローチャートである。
【図１９】第２の実施の形態の位置応答の処理例を示すフローチャートである。
【図２０】第２の実施の形態のログ出力例を示す図である。
【図２１】第２の実施の形態のバス番号の変更例を示す図である。
【図２２】第２の実施の形態の他のソフトウェア例（その１）を示す図である。
【図２３】第２の実施の形態の他のソフトウェア例（その２）を示す図である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。情報処理装置１は、管理装置２、装置３，４および周辺装置５，６，７，８を有する。管理装置２は、装置３，４および周辺装置５，６，７，８の動作を管理する。装置３，４は、周辺装置５，６，７，８を利用可能である。装置３，４は、何れの周辺装置を利用するかを適宜変更できる。装置３，４の停止中に変更できてもよいし、装置３，４の稼働中に変更できてもよい。
【００１６】
周辺装置５，６，７，８は、情報処理装置１に対する機能拡張用の装置である。周辺装置５は位置Ａに設けられている。周辺装置６は位置Ｂに設けられている。周辺装置７は位置Ｃに設けられている。周辺装置８は位置Ｄに設けられている。位置Ａ，Ｂ，Ｃ，Ｄは、情報処理装置１の内部の位置でもよいし、外部の位置でもよい。内部の位置とは、例えば、情報処理装置１に内蔵された拡張スロットの位置である。外部の位置とは、例えば、情報処理装置１に外付けで接続された外付け装置における拡張スロットの位置である。
【００１７】
管理装置２、装置３，４および周辺装置５，６，７，８は情報処理装置１内のバスを介して接続されている。例えば、情報処理装置１は装置３，４と周辺装置５，６，７，８との間のバスを介した論理的な接続関係を変更することで、装置３，４により用いられる周辺装置５，６，７，８を変更してもよい。管理装置２が当該論理的な接続関係の切り替えを制御してもよい。
【００１８】
管理装置２は、記憶部２ａおよび演算部２ｂを有する。記憶部２ａはＲＡＭ（Random Access Memory）などのメモリでもよい。演算部２ｂはＣＰＵ（Central Processing Unit）などのプロセッサでもよい。第１の実施の形態の情報処理は、記憶部２ａに記憶されたプログラムを演算部２ｂが実行することで実現されてもよい。
【００１９】
記憶部２ａは、管理情報を記憶する。管理情報は、装置３，４と周辺装置５，６，７，８との対応関係を示す情報を含む。例えば、装置３に対して周辺装置５，６が対応付けられている。装置４に対して周辺装置７，８が対応付けられている。すなわち、装置３は周辺装置５，６を利用する。装置４は周辺装置７，８を利用する。
【００２０】
管理情報は、装置３により用いられる周辺装置５，６に対して当該装置３により付与された識別情報と周辺装置５，６の位置を示す情報との対応関係を示す情報を含む。また、管理情報は、装置４により用いられる周辺装置７，８に対して当該装置４により付与された識別情報と周辺装置７，８の位置を示す情報との対応関係を示す情報を含む。当該識別情報は、装置３，４で動作するＢＩＯＳ（Basic Input / Output System）やＯＳ（Operating System）によって付与されるものでもよい。例えば、周辺装置５，６，７，８がＰＣＩのデバイスであれば、ＢＩＯＳやＯＳは各周辺装置に対してバス番号やデバイス番号などを組み合わせた識別情報を付与し得る。当該対応関係は、本例でいえば次の（１）〜（４）の対応付けを含む。
【００２１】
（１）装置３により付与された周辺装置５の識別情報＃１と位置Ａを示す情報との対応付け。（２）装置３により付与された周辺装置６の識別情報＃２と位置Ｂを示す情報との対応付け。（３）装置４により付与された周辺装置７の識別情報＃１と位置Ｃを示す情報との対応付け。（４）装置４により付与された周辺装置８の識別情報＃２と位置Ｄを示す情報との対応付け。
【００２２】
演算部２ｂは、周辺装置の識別情報が変更された旨の通知を、当該周辺装置を用いる装置から受け付けると、変更の内容に応じて記憶部２ａに記憶された管理情報を更新する。例えば、装置３により用いられる周辺装置６が、装置３との論理的な接続を解除されたとする。すなわち、装置３から周辺装置６を利用できなくなったとする。すると、例えば装置３は周辺装置６に対する識別情報の削除を管理装置２に通知する。演算部２ｂは、当該通知に応じて、装置３と周辺装置６との対応関係を管理情報から削除する。また、上記（２）の対応付けを示す情報を管理情報から削除する。
【００２３】
また、例えば、装置４と周辺装置６との論理的な接続が追加されたとする。すなわち、装置４により周辺装置６が利用できるようになったとする。すると、例えば装置４は周辺装置６に対する識別情報の追加を管理装置２に通知する。当該通知には、装置４が周辺装置６に付与した識別情報が含まれる。装置４が周辺装置６，７，８の識別情報を振り直した場合は、周辺装置６，７，８に付与した識別情報が含まれる。例えば、振り直しの結果、周辺装置６の識別情報は＃１となる。周辺装置７の識別情報は＃２となる。周辺装置８の識別情報は＃３となる。
【００２４】
演算部２ｂは、当該通知に応じて装置４と周辺装置６との対応関係を管理情報に追加する。また、演算部２ｂは、（５）装置４により付与された周辺装置６の識別情報＃１と位置Ｂを示す情報との対応付け、を管理情報に追加する。
【００２５】
更に、演算部２ｂは管理情報における上記（３）、（４）の対応付けを、それぞれ次の（６）、（７）のように書き換える。（６）装置４により付与された周辺装置７の識別情報＃２と位置Ｃを示す情報との対応付け。（７）装置４により付与された周辺装置８の識別情報＃３と位置Ｄを示す情報との対応付け。
【００２６】
演算部２ｂは、何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する。例えば、演算部２ｂは、装置４が周辺装置６に関するログを出力する際に装置４から識別情報＃１を取得すると、管理情報の上記（５）の対応付けに基づいて位置Ｂを示す情報を装置４に提供する。
【００２７】
装置４は、位置Ｂを示す情報を含む、周辺装置６に関するログを出力し得る。当該ログは、例えば、装置４により出力される所定のログファイルに登録されるメッセージでもよいし、情報処理装置１に接続された表示装置（図１では図示を省略）に表示されるメッセージでもよい。または、管理者や保守員が利用する端末装置や管理者や保守員のメールアドレスなどに対して送信されるメッセージなどでもよい。
【００２８】
情報処理装置１によれば、演算部２ｂにより、周辺装置の識別情報が変更された旨の通知が当該周辺装置を用いる装置から受け付けられると、変更の内容に応じて管理情報が更新される。演算部２ｂにより、何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報が取得されると、管理情報が参照されて当該周辺装置の位置を示す情報が当該装置に提供される。
【００２９】
これにより、周辺装置の位置を適切に提供できる。具体的には次の通りである。装置３，４と周辺装置５，６，７，８との論理的な接続関係は変更され得る。接続関係の変更に際して、周辺装置５，６，７，８の識別情報は装置３，４により変更され得る。すなわち、周辺装置５，６，７，８に対して装置３，４が付与する識別情報は絶対的なものではない。例えば、周辺装置５，６，７，８がＰＣＩｅなどのデバイスであれば、装置３，４で動作するＢＩＯＳやＯＳが、周辺装置５，６，７，８に対するバス番号を振り直すことで、識別情報が変更されることがある。
【００３０】
ここで、例えば、論理的な接続関係が上述のように装置４が周辺装置６，７，８を利用可能な関係に変更されたとする。その場合に、管理情報において上記（１）〜（４）の対応付けが仮に維持されると、管理装置２は装置４により周辺装置６に対して付与された識別情報＃１を取得した際に、位置Ｃを示す情報を応答することになる。これは、周辺装置７の位置を示す情報であり、適切な位置ではない（正しくは、位置Ｂである）。
【００３１】
一方、情報処理装置１は、装置３，４と周辺装置５，６，７，８との間の対応関係の変更に追随して、管理情報を更新する。これにより、周辺装置５，６，７，８の適切な位置を装置３，４に提供することができる。装置３，４は、当該位置を示す情報をログに含めて出力し得る。保守員は、装置３，４が出力するログを参照することで、障害などの発生した周辺装置の情報処理装置１における位置を容易に把握できる。このため、保守員は、当該周辺装置の保守作業を迅速に開始できる。
【００３２】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、サーバ１００およびＰＣＩボックス２００，２００ａを含む。サーバ１００は、ネットワーク１０に接続されている。ネットワーク１０はＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）およびインターネットなどでもよい。
【００３３】
サーバ１００は、所定の業務処理を実行するサーバコンピュータである。サーバ１００は、前面パネル１０１、システムボード（ＳＢ：System Board）１１０，１１０ａ、ディスクドライブ１２０およびＨＤＤ（Hard Disk Drive）ユニット１３０，１３０ａを有する。前面パネル１０１は、サーバ１００の前面を覆うカバーである。前面パネル１０１は開閉可能である。前面パネル１０１の裏側にＳＢ１１０，１１０ａが収納されている。
【００３４】
ＳＢ１１０，１１０ａは、ＣＰＵやＲＡＭを搭載した演算装置である。ディスクドライブ１２０は、可搬型の記録媒体に記録されたプログラムやデータを読み取る駆動装置である。ＨＤＤユニット１３０，１３０ａは、ＨＤＤ搭載用のユニットである。ＨＤＤユニット１３０，１３０ａは、複数の磁気ディスクやＳＳＤ（Solid State Drive）などを収納できる。ＰＣＩボックス２００，２００ａは、ＰＣＩｅの拡張スロット（ＰＣＩスロットということがある）を複数備える外付け装置である。ＰＣＩボックス２００，２００ａは、所定のインタフェースを介してサーバ１００と接続されている。
【００３５】
図３は、第２の実施の形態のサーバの背面を示す図である。サーバ１００は、図２で説明した各ユニットに加えて、ＩＯ（Input Output）ユニット１４０，１４０ａ、ＩＦ（InterFace）ボード１５０，１５０ａ、マネジメントボード（ＭＭＢ：ManageMent Board）１６０、ＰＳＵ（Power Supply Unit）１７０，１７０ａおよびファン１８０，１８０ａ，１８０ｂ，１８０ｃ，１８０ｄ，１８０ｅ，１８０ｆ，１８０ｇを有する。
【００３６】
ＩＯユニット１４０，１４０ａは、サーバ１００の入出力を制御するユニットである。ＩＯユニット１４０，１４０ａは、ＨＤＤユニット１３０，１３０ａに対するデータの入出力を制御する。ＩＯユニット１４０，１４０ａは、ＩＦボード１５０，１５０ａに対するデータの入出力を制御する。また、ＩＯユニット１４０，１４０ａは、ＰＣＩボックス２００，２００ａに対するデータの入出力を制御する。
【００３７】
ＩＯユニット１４０，１４０ａは、複数のＰＣＩスロット（例えば、８スロット）を備えている。１つのＰＣＩスロットには、１つのＰＣＩカードを搭載できる。例えば、ＩＯユニット１４０の１つのＰＣＩスロットにはＰＣＩカード３００を搭載できる。ＩＯユニット１４０ａの１つのＰＣＩスロットにはＰＣＩカード３００ａを搭載できる。ＰＣＩカード３００，３００ａはＳＢ１１０，１１０ａに対する周辺装置である。ＩＯユニット１４０，１４０ａは、ＰＣＩカード３００，３００ａに対するデータの入出力を制御する。ＩＯユニット１４０，１４０ａをＳＢ１１０，１１０ａに対する周辺装置と呼ぶこともできる。
【００３８】
ＩＯユニット１４０，１４０ａは、キーボード、ディスプレイおよびマウス（ＫＶＭ：Keyboard, Video and Mouse）用の外部接続インタフェース（例えば、ＵＳＢ（Universal Serial Bus）ポートやＶＧＡ（Video Graphics Array）ポートなど）を備えてもよい。これらのインタフェースは、ＰＣＩカード３００，３００ａによって提供されてもよい。
【００３９】
ＩＦボード１５０，１５０ａは、ネットワークへアクセスするためのインタフェース（例えば、ＰＣＩｅ）を有する。また、ＩＦボード１５０，１５０ａは、ＰＣＩボックス２００，２００ａへアクセスするためのインタフェースを有する。ＩＦボード１５０は、ケーブル１１を介してＰＣＩボックス２００と接続されている。ＩＦボード１５０は、ケーブル１２を介してＰＣＩボックス２００ａと接続されている。ＩＦボード１５０ａは、ケーブル１３を介してＰＣＩボックス２００ａと接続されている。ＩＦボード１５０ａは、ケーブル１４を介してＰＣＩボックス２００と接続されている。ケーブル１１，１２，１３，１４は、例えばＰＣＩｅの外部ケーブルである。
【００４０】
ＭＭＢ１６０は、サーバ１００の監視やＳＢ１１０，１１０ａと周辺装置との接続関係を管理するための制御ユニットである。
ＰＳＵ１７０，１７０ａは、商用電源と接続される電源装置である。ＰＳＵ１７０，１７０ａは、サーバ１００を駆動させるための電力をサーバ１００全体へ供給する電源装置である。
【００４１】
ファン１８０，１８０ａ，１８０ｂ，１８０ｃ，１８０ｄ，１８０ｅ，１８０ｆ，１８０ｇは、サーバ１００を冷却するための冷却装置である。
ＰＣＩボックス２００，２００ａは、複数のＰＣＩスロットを備えている（例えば、１２スロット）。１つのＰＣＩスロットには、１つのＰＣＩカードを搭載できる。例えば、ＰＣＩボックス２００の１つのＰＣＩスロットにはＰＣＩカード３００ｂを搭載できる。ＰＣＩボックス２００ａの１つのＰＣＩスロットにはＰＣＩカード３００ｃを搭載できる。ＰＣＩカード３００ｂ，３００ｃはＳＢ１１０，１１０ａに対する周辺装置である。ＰＣＩボックス２００，２００ａは、ＰＣＩカード３００ｂ，３００ｃに対するデータの入出力を制御する。ＰＣＩボックス２００，２００ａをＳＢ１１０，１１０ａに対する周辺装置と呼ぶこともできる。
【００４２】
ＰＣＩカード３００，３００ａ，３００ｂ，３００ｃは、ＰＣＩｅに対応した周辺装置である。ＰＣＩカード３００，３００ａ，３００ｂ，３００ｃは、例えば、ファイバチャネル、ＬＡＮ、ＣＮＡ（Converged Network Adapter）、ＳＡＳ（Serial Attached Small Computer System Interface）などのポートを拡張するためのものでもよい。ＰＣＩカード３００，３００ａ，３００ｂ，３００ｃは、画像処理機能や音声処理機能などを備えたものでもよい。ＰＣＩカード３００，３００ａ，３００ｂ，３００ｃは、それ以外の機能を拡張するものでもよい。ＰＣＩカード３００，３００ａ，３００ｂ，３００ｃは、ＰＣＩカセットやＰＣＩカードカセットなどと呼ばれるものでもよい。
【００４３】
なお、以降の説明において、３００台の符号（３０１，３０２，・・・）を用いて、ＩＯユニット１４０に搭載されるＰＣＩカードを示す。３００ａ台の符号（３０１ａ，３０２ａ，・・・）を用いて、ＩＯユニット１４０ａに搭載されるＰＣＩカードを示す。３００ｂ台の符号（３０１ｂ，３０２ｂ，・・・）を用いて、ＰＣＩボックス２００に搭載されるＰＣＩカードを示す。３００ｃ台の符号（３０１ｃ，３０２ｃ，・・・）を用いて、ＰＣＩボックス２００ａに搭載されるＰＣＩカードを示す。
【００４４】
図４は、第２の実施の形態のハードウェア例を示す図である。サーバ１００は、ＳＢ１１０，１１０ａ、ディスクドライブ１２０、ＨＤＤユニット１３０，１３０ａ、ＩＯユニット１４０，１４０ａ、ＩＦボード１５０，１５０ａ、ＭＭＢ１６０およびＭＰ（Middle Plane）１９０を有する。図２，３で示したその他のユニットは図示を省略している。ＳＢ１１０，１１０ａ、ディスクドライブ１２０、ＨＤＤユニット１３０，１３０ａ、ＩＯユニット１４０，１４０ａ、ＩＦボード１５０，１５０ａおよびＭＭＢ１６０は、図２，３で説明した各ユニットと同一である。
【００４５】
例えば、ディスクドライブ１２０はレーザ光などを利用して、光ディスク１５に記録されたプログラムやデータを読み取れる。光ディスク１５として、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などを使用できる。ディスクドライブ１２０は、例えば、ＳＢ１１０，１１０ａからの命令に従って、光ディスク１５から読み取ったプログラムやデータをＨＤＤユニット１３０，１３０ａのＨＤＤや所定のメモリに格納する。
【００４６】
また、ＨＤＤユニット１３０，１３０ａには、ＳＢ１１０，１１０ａに実行させるＯＳやアプリケーションのプログラムや、ＳＢ１１０，１１０ａの処理に用いられる各種のデータが格納される。ＩＦボード１５０，１５０ａは所定のケーブルを介してネットワーク１０に接続されている。なお、図４では、ＩＦボード１５０，１５０ａとＰＣＩボックス２００，２００ａとの間の一部の接続について図示を省略している。
【００４７】
ＭＰ１９０は、ＳＢ１１０，１１０ａ、ディスクドライブ１２０、ＨＤＤユニット１３０，１３０ａ、ＩＯユニット１４０，１４０ａ、ＩＦボード１５０，１５０ａおよびＭＭＢ１６０を接続し、結線するコネクタユニットである。例えば、サーバ１００の前面からＳＢ１１０，１１０ａ、ディスクドライブ１２０およびＨＤＤユニット１３０，１３０ａが結合可能である。また、サーバ１００の背面からＩＯユニット１４０，１４０ａ、ＩＦボード１５０，１５０ａおよびＭＭＢ１６０が結合可能である。
【００４８】
図５は、第２の実施の形態のサーバのハードウェア例を示す図である。ＳＢ１１０は、プロセッサ１１１、ＲＡＭ１１２およびＰＣＩスイッチ１１３，１１４を有する。ＳＢ１１０ａもＳＢ１１０と同様のデバイスを有する。
【００４９】
プロセッサ１１１は、ＳＢ１１０の情報処理を制御する。プロセッサ１１１は、マルチプロセッサであってもよい。プロセッサ１１１は、例えばＣＰＵ、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）またはＰＬＤ（Programmable Logic Device）などである。プロセッサ１１１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ＰＬＤなどのうちの２以上の要素の組み合わせであってもよい。
【００５０】
ＲＡＭ１１２は、プロセッサ１１１に実行させるＢＩＯＳ、ＯＳおよびアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１１２はプロセッサ１１１による処理に用いる各種データを記憶する。
【００５１】
ＰＣＩスイッチ１１３，１１４は、内部バス接続用のＰＣＩｅインタフェースを提供するスイッチデバイスである。ＰＣＩスイッチ１１３，１１４はＭＰ１９０と接続されている。ＰＣＩスイッチ１１３，１１４は、プロセッサ１１１とＩＯユニット１４０，１４０ａ、ＩＦボード１５０，１５０ａ、ＭＭＢ１６０およびＰＣＩボックス２００，２００ａとの間の通信を中継する。
【００５２】
ＩＯユニット１４０は、ＩＯコントローラ１４１、ＲＯＭ（Read Only Memory）１４２、ＳＶＰ（SerVice Processor）１４３、メモリ１４４、ＰＣＩスロット１４５，１４５ａ，・・・、ビデオコントローラ１４６およびＨＤＤコントローラ１４７を有する。ＩＯユニット１４０ａもＩＯユニット１４０と同様のデバイスを有する。
【００５３】
ＩＯコントローラ１４１は、ＰＣＩｅのインタフェースやレガシーインタフェース（例えば、ＲＯＭ１４２と接続するためのインタフェースやＳＶＰ１４３と接続するためのインタフェース）などを集約したスイッチデバイスである。ＩＯコントローラ１４１はＰＣＩスイッチの機能も有する。ＩＯコントローラ１４１は、ＶＧＡポートやＵＳＢポートを備えて、ＫＶＭの入出力機能を担ってもよい。ＩＯコントローラ１４１は、ＭＰ１９０と接続されている。ＩＯコントローラ１４１は、ＳＢ１１０，１１０ａと、ＰＣＩスロット１４５，１４５ａ、ビデオコントローラ１４６およびＨＤＤコントローラ１４７との間の通信を中継する。
【００５４】
ＲＯＭ１４２は、ＢＩＯＳのプログラムやファームウェアのプログラムを記憶するメモリである。ＳＢ１１０，１１０ａは、ＲＯＭ１４２に記憶されたプログラムを読み出して実行することができる。
【００５５】
ＳＶＰ１４３は、ＩＯユニット１４０の各デバイスの情報を収集して、ＭＭＢ１６０に提供する管理用のプロセッサである。ＳＶＰ１４３とＭＭＢ１６０との間で直接通信するための専用のインタフェースを設けてもよい。
【００５６】
メモリ１４４は、ＳＶＰ１４３に実行させるファームウェアのプログラムを記憶するメモリである。
ＰＣＩスロット１４５，１４５ａ，・・・は、ＰＣＩカードを挿設可能なスロットである。例えば、ＰＣＩスロット１４５にはＰＣＩカード３０１が挿設されている。ＰＣＩスロット１４５ａにはＰＣＩカード３０２が挿設されている。なお、ＩＯユニット１４０ａの各ＰＣＩスロットには、ＰＣＩカード３０１ａ，３０２ａ，・・・が挿設されている。
【００５７】
ビデオコントローラ１４６は、ＳＢ１１０，１１０ａからの命令に従って、サーバ１００に接続されたディスプレイ（図示を省略）に画像を出力する。ビデオコントローラ１４６は、ＰＣＩｅに対応したデバイスで実現されてもよい。
【００５８】
ＨＤＤコントローラ１４７は、ＳＢ１１０，１１０ａからの命令に従って、ＨＤＤユニット１３０，１３０ａに搭載されたＨＤＤやＳＳＤに対するデータの書き込みや読み出しを行う。ＨＤＤコントローラ１４７は、ＰＣＩｅに対応したデバイスで実現されてもよい。
【００５９】
ＩＦボード１５０は、ＰＣＩスイッチ１５１、通信ＩＦ１５２およびＰＣＩボックスＩＦ１５３，１５４を有する。ＩＦボード１５０ａもＩＦボード１５０と同様のデバイスを有する。
【００６０】
ＰＣＩスイッチ１５１は、内部バス接続用のＰＣＩｅインタフェースを提供するスイッチデバイスである。ＰＣＩスイッチ１５１はＭＰ１９０と接続されている。ＰＣＩスイッチ１５１は、ＳＢ１１０，１１０ａと通信ＩＦ１５２、ＰＣＩボックスＩＦ１５３，１５４との間の通信を中継する。
【００６１】
通信ＩＦ１５２は、ネットワーク１０と接続するためのインタフェースである。通信ＩＦ１５２は、有線インタフェースでもよいし、無線インタフェースでもよい。
ＰＣＩボックスＩＦ１５３，１５４は、ＰＣＩボックス２００，２００ａと接続するためのインタフェースである。ＰＣＩボックスＩＦ１５３，１５４は、ＰＣＩｅに対応したインタフェースでもよい。
【００６２】
ＭＭＢ１６０は、プロセッサ１６１、ＲＯＭ１６２、ＲＡＭ１６３および通信部１６４を有する。
プロセッサ１６１は、ＭＭＢ１６０の情報処理を制御する。プロセッサ１６１は、マルチプロセッサであってもよい。プロセッサ１６１は、例えばＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡまたはＰＬＤなどである。プロセッサ１６１はＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ＰＬＤなどのうちの２以上の要素の組み合わせであってもよい。
【００６３】
ＲＯＭ１６２は、プロセッサ１６１に実行させるファームウェアのプログラムを記憶するメモリである。また、ＲＯＭ１６２は、プロセッサ１６１による処理に用いる各種データを記憶する。
【００６４】
ＲＡＭ１６３は、プロセッサ１６１に実行させるファームウェアのプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１６３は、プロセッサ１６１による処理に用いる各種データを記憶する。
【００６５】
通信部１６４は、内部バス接続用のインタフェースを提供するデバイスである。通信部１６４は、ＭＰ１９０に接続されている。通信部１６４は、プロセッサ１６１とＳＢ１１０，１１０ａ、ＩＯユニット１４０，１４０ａおよびＩＦボード１５０，１５０ａとの通信を中継する。
【００６６】
ここで、以下の説明では、ＳＢ１１０，１１０ａ、ＩＯユニット１４０，１４０ａ、ＩＦボード１５０，１５０ａおよびＰＣＩボックス２００，２００ａを総称して“ＰＣＩユニット”と呼ぶことがある。また、各ＰＣＩユニットに搭載されるＰＣＩスイッチ１１３やＰＣＩカード３０１などのデバイスを総称して“ＰＣＩデバイス”と呼ぶことがある。ＰＣＩユニットおよびＰＣＩデバイスは、何れも周辺装置の一例である。
【００６７】
図６は、第２の実施の形態のＰＣＩボックスのハードウェア例を示す図である。ＰＣＩボックス２００は、ＰＣＩスイッチ２０１およびＰＣＩスロット２０２，２０２ａ，・・・を有する。ＰＣＩボックス２００ａもＰＣＩボックス２００と同様のＰＣＩデバイスを有する。
【００６８】
ＰＣＩスイッチ２０１は、サーバ１００と接続するためのＰＣＩインタフェースを提供するＰＣＩデバイスである。ＰＣＩスイッチ２０１は、サーバ１００とＰＣＩスロット２０２，２０２ａ，・・・との間の通信を中継する。
【００６９】
ＰＣＩスロット２０２，２０２ａ，・・・は、ＰＣＩカードを挿設可能な拡張スロットである。例えば、ＰＣＩスロット２０２にはＰＣＩカード３０１ｂが挿設されている。ＰＣＩスロット２０２ａにはＰＣＩカード３０２ｂが挿設されている。なお、ＰＣＩボックス２００ａの各ＰＣＩスロットには、ＰＣＩカード３０１ｃ，３０２ｃ，・・・が挿設されている。
【００７０】
図７は、第２の実施の形態のＰＣＩデバイスの接続例を示す図である。図７ではＳＢ１１０を最上位としたＰＣＩデバイスの論理的な接続（ＰＣＩデバイスツリー）を例示している。ルートコンプレックスはプロセッサ１１１に組み込まれている。例えば、ＳＢ１１０の配下にＩＯユニット１４０が接続される。また、ＳＢ１１０の配下にＩＦボード１５０が接続される。更に、ＩＦボード１５０の配下にＰＣＩボックス２００が接続される。すなわち、ＳＢ１１０、ＩＯユニット１４０、ＩＦボード１５０およびＰＣＩボックス２００を要素に含む１つのグループが実現されている。
【００７１】
ここで、ＰＣＩｅでは、バス番号およびデバイス番号を用いて、各ＰＣＩデバイスを識別し得る。デバイス番号は、バス番号に対して一意である。すなわち、バス番号およびデバイス番号の組み合わせ（例えば、“バス番号：デバイス番号”のように表記する）が各ＰＣＩデバイスの識別情報となる。図７では、例えば各ＰＣＩデバイスの識別情報は次のようになる。
【００７２】
ＳＢ１１０内のプロセッサ１１１直下のバスはバス番号“０”（図７ではＢＵＳ＃０と表記。以下、同様）である。ＰＣＩスイッチ１１３はデバイス番号“０”（図７ではｄｅｖ＃０と表記。以下、同様）である。ＰＣＩスイッチ１１４はデバイス番号“１”である。よって、ＰＣＩスイッチ１１３の識別情報は“０：０”である。ＰＣＩスイッチ１１４の識別情報は“０：１”である。
【００７３】
ＰＣＩスイッチ１１３直下のバスはバス番号“１”である。ＰＣＩスイッチ１１３の配下にはＩＯユニット１４０のＩＯコントローラ１４１が接続されている。ＩＯコントローラ１４１はデバイス番号“０”である。よって、ＩＯコントローラ１４１の識別情報は“１：０”である。
【００７４】
ＩＯコントローラ１４１内のバスはバス番号“２”である。ＩＯコントローラ１４１には、ＰＣＩスロット１４５，１４５ａ，・・・、ビデオコントローラ１４６およびＨＤＤコントローラ１４７が接続されている。ＰＣＩスロット１４５に挿設されたＰＣＩカード３０１はデバイス番号“１”である。ＰＣＩスロット１４５ａに挿設されたＰＣＩカード３０２はデバイス番号“２”である。よって、ＰＣＩカード３０１の識別情報は“２：１”である。ＰＣＩカード３０２の識別情報は“２：２”である。同様にして、他のＰＣＩカードの識別情報も付与される。
【００７５】
また、ビデオコントローラ１４６はデバイス番号“９”である。よって、ビデオコントローラ１４６の識別情報は“２：９”である。ＨＤＤコントローラはデバイス番号“１０”である。よって、ＨＤＤコントローラの識別情報は“２：１０”である。
【００７６】
ここで、ＰＣＩスロット１４５，１４５ａ，・・・、ビデオコントローラ１４６およびＨＤＤコントローラ１４７は、ＩＯユニット１４０の所定の位置に搭載されている。この位置を示す情報をスロット番号と呼ぶ。ＩＯユニット１４０のスロット番号が分かれば、その位置に搭載されたＰＣＩデバイス（例えば、ＰＣＩスロット１４５であればＰＣＩカード３０１）を特定できることになる。ＰＣＩスロット１４５のスロット番号は“０”（図７ではｓｌｏｔ＃０と表記。以下、同様）である。ＰＣＩスロット１４５ａのスロット番号は“１”である。他のＰＣＩスロットのスロット番号も同様に振られる。ビデオコントローラ１４６のスロット番号は“８”である。ＨＤＤコントローラ１４７のスロット番号は“９”である。
【００７７】
ＰＣＩスイッチ１１４直下のバスはバス番号“３”である。ＰＣＩスイッチ１１４の配下にはＩＦボード１５０のＰＣＩスイッチ１５１が接続されている。ＰＣＩスイッチ１５１はデバイス番号“０”である。よって、ＰＣＩスイッチ１５１の識別情報は“３：０”である。
【００７８】
ＰＣＩスイッチ１５１内のバスはバス番号“４”である。ＰＣＩスイッチ１５１には、通信ＩＦ１５２およびＰＣＩボックスＩＦ１５３，１５４が接続されている。通信ＩＦ１５２はデバイス番号“１”である。ＰＣＩボックスＩＦ１５３はデバイス番号“２”である。ＰＣＩボックスＩＦ１５４はデバイス番号“３”である。よって、通信ＩＦ１５２の識別情報は“４：１”である。ＰＣＩボックスＩＦ１５３の識別情報は“４：２”である。ＰＣＩボックスＩＦ１５４の識別情報は“４：３”である。
【００７９】
ＰＣＩボックスＩＦ１５３直下のバスはバス番号“５”である。ＰＣＩボックスＩＦ１５３の配下にはＰＣＩボックス２００のＰＣＩスイッチ２０１が接続されている。ＰＣＩスイッチ２０１はデバイス番号“０”である。よって、ＰＣＩスイッチ２０１の識別情報は“５：０”である。
【００８０】
ここで、通信ＩＦ１５２およびＰＣＩボックスＩＦ１５３，１５４の搭載位置にもスロット番号が振られている。通信ＩＦ１５２のスロット番号は“０”である。ＰＣＩボックスＩＦ１５３のスロット番号は“１”である。ＰＣＩボックスＩＦ１５４のスロット番号は“２”である。
【００８１】
ＰＣＩスイッチ２０１内のバスはバス番号“６”である。ＰＣＩスイッチ２０１には、ＰＣＩスロット２０２，２０２ａ，・・・が接続されている。ＰＣＩスロット２０２（あるいは、ＰＣＩスロット２０２に挿設されたＰＣＩカード３０１ｂ）はデバイス番号“１”である。ＰＣＩスロット２０２ａ（あるいは、ＰＣＩスロット２０２ａに挿設されたＰＣＩカード３０２ｂ）はデバイス番号“２”である。よって、ＰＣＩカード３０１ｂの識別情報は“６：１”である。ＰＣＩカード３０２ｂの識別情報は“６：２”である。同様にして、他のＰＣＩカードの識別情報も付与される。
【００８２】
ここで、ＰＣＩスロット２０２，２０２ａ，・・・の搭載位置にもスロット番号が振られている。ＰＣＩスロット２０２のスロット番号は“０”である。ＰＣＩスロット２０２ａのスロット番号は“１”である。他のＰＣＩスロットのスロット番号も同様に振られる。
【００８３】
なお、デバイスの識別情報をバス番号とデバイス番号との組み合わせとした。ただし、１つのデバイスにおいて複数のファンクションを利用可能であれば、複数のファンクションそれぞれを示すファンクション番号を更に組み合わせた識別情報を用いて、当該デバイスをファンクション単位で管理してもよい。その場合、当該デバイスは、仮想的に複数のデバイスとして扱われることになる（ただし、対応するスロット番号は１つ）。例えば、ビデオコントローラ１４６が動画処理機能および音声処理機能を有していれば、画像処理機能および音声処理機能それぞれに異なる識別情報（バス番号、デバイス番号までは同じだが、ファンクション番号が異なる識別情報）を付与して管理してもよい。
【００８４】
図８は、第２の実施の形態のソフトウェア例を示す図である。図８に示すＳＢ１１０の機能は、ＲＡＭ１１２に記憶されたプログラムをプロセッサ１１１が実行することで実現されてもよい。図８に示すＭＭＢ１６０の機能は、ＲＡＭ１６３に記憶されたプログラムをプロセッサ１６１が実行することで実現されてもよい。なお、ＳＢ１１０ａもＳＢ１１０と同様の機能を有する。ＳＢ１１０は、ＢＩＯＳ１１５、ＯＳ１１６および通知部１１７を有する。
【００８５】
ＢＩＯＳ１１５は、ＳＢ１１０が用いる周辺装置を制御する。ＢＩＯＳ１１５は、周辺装置を利用するための所定の準備処理を行う。ＢＩＯＳ１１５は、ＳＢ１１０により利用できるＰＣＩバスを探索する。ＢＩＯＳ１１５は、探索結果に基づいて図７で示したＰＣＩデバイスツリーを示す情報（以下、単にＰＣＩデバイスツリー情報という）を生成する。ＰＣＩデバイスツリー情報は、例えば上位ノードと下位ノードとをポインタで結合した連結リストである。ＢＩＯＳ１１５はＭＭＢ１６０と通信可能である。また、ＢＩＯＳ１１５は周辺装置に関するログを出力する。
【００８６】
ＯＳ１１６は、業務アプリケーションなどの他のソフトウェアに対して、各種ハードウェアとのインタフェースを提供する基本ソフトウェアである。ＯＳ１１６は、起動時やＰＣＩデバイスの取り付け、取り外しなどが行われた場合に、ＰＣＩデバイスの初期化を行う。その際に、ＯＳ１１６は、自身の処理を最適に行えるようにＢＩＯＳが生成したＰＣＩデバイスツリー情報を変更することがある。ＢＩＯＳ１１５により生成された情報は、ＯＳ１１６の処理にとって必ずしも都合よく生成されているとは限らないからである。また、ＯＳ１１６は周辺装置に関するログを出力する。
【００８７】
通知部１１７は、ＯＳ１１６とＭＭＢ１６０との間の通信を仲介する。通知部１１７は、ＯＳ１１６により取得された情報をＭＭＢ１６０に提供する。また、通知部１１７は、ＭＭＢ１６０から取得した情報をＯＳ１１６に提供する。
【００８８】
ＭＭＢ１６０は、記憶部１６５および管理部１６６を有する。記憶部１６５は、管理部１６６の処理に用いられる情報を記憶する。当該情報は、ＰＣＩユニット間の論理的な接続設定を示す情報や、各ＰＣＩユニットが備えるスロットの物理的な位置を管理するための情報などを含む。
【００８９】
管理部１６６は、ＢＩＯＳ１１５やＯＳ１１６による周辺装置の設定内容を取得して記憶部１６５に格納する。管理部１６６は、記憶部１６５に記憶された情報に基づいて、各ＰＣＩデバイスが搭載された位置を管理する。管理部１６６は、ＢＩＯＳ１１５やＯＳ１１６から、何れかのＰＣＩデバイスの位置の問い合わせを受け付けると、記憶部１６５に記憶された情報を参照して、当該ＰＣＩデバイスの位置を示す情報を提供する。
【００９０】
図９は、第２の実施の形態の接続設定テーブルの例を示す図である。接続設定テーブル１６５ａは、ＳＢ１１０，１１０ａ、ＩＯユニット１４０，１４０ａ、ＩＦボード１５０，１５０ａおよびＰＣＩボックス２００，２００ａの論理的な接続設定を定義した情報である。ＰＣＩユニットの接続関係を定義した情報ということもできる。接続設定テーブル１６５ａは記憶部１６５に格納される。接続設定テーブル１６５ａは、ＳＢおよび接続ユニットの項目を含む。
【００９１】
ＳＢの項目には、ＳＢの識別情報が登録される。接続ユニットの項目には、当該ＳＢにより用いられるＩＯユニット、ＩＦボードおよびＰＣＩボックスを示す情報が登録される。ここで、これらの各ＰＣＩユニットの識別情報は例えば次の通りである。
【００９２】
ＳＢ１１０は“ＳＢ＃０”である。ＳＢ１１０ａは“ＳＢ＃１”である。ＩＯユニット１４０は“ＩＯＵ＃０”である。ＩＯユニット１４０ａは“ＩＯＵ＃１”である。ＩＦボード１５０は“ＩＦＢ＃０”である。ＩＦボード１５０ａは“ＩＦＢ＃１”である。ＰＣＩボックス２００は“ＰＣＩＢ＃０”である。ＰＣＩボックス２００ａは“ＰＣＩＢ＃１”である。
【００９３】
例えば、接続設定テーブル１６５ａには、ＳＢが“ＳＢ＃０”、接続ユニットが“ＩＯＵ＃０”、“ＩＦＢ＃０”、“ＰＣＩＢ＃０”という情報が登録されている。これは、ＳＢ１１０とＩＯユニット１４０、ＩＦボード１５０およびＰＣＩボックス２００とを論理的に接続して、１つのグループ（パーティションということもある）とすることを示している。
【００９４】
また、例えば、接続設定テーブル１６５ａには、ＳＢが“ＳＢ＃１”、接続ユニットが“ＩＯＵ＃１”、“ＩＦＢ＃１”という情報が登録されている。これは、ＳＢ１１０ａとＩＯユニット１４０ａおよびＩＦボード１５０ａとを論理的に接続して１つのグループとすることを示している。
【００９５】
なお、接続設定テーブル１６５ａには、ＰＣＩボックス２００ａの識別情報は登録されていない。これは、ＰＣＩボックス２００ａが、何れのグループにも属さず、フリーの状態であることを意味する。
【００９６】
図１０は、第２の実施の形態の装置構成テーブルの例を示す図である。装置構成テーブル１６５ｂは、サーバ１００における各ＰＣＩユニットのスロット位置とデバイス番号とを対応付けた情報である。装置構成テーブル１６５ｂは記憶部１６５に格納される。装置構成テーブル１６５ｂは、ユニット、物理位置およびデバイス番号の項目を含む。
【００９７】
ユニットの項目は、各ＰＣＩユニットの識別情報が登録される。物理位置の項目には、当該ＰＣＩユニットが備えるスロットの位置やＰＣＩデバイスの位置を示す情報が登録される。デバイス番号の項目には、当該物理位置に対応するデバイス番号が登録される。
【００９８】
例えば、装置構成テーブル１６５ｂには、ユニットが“ＳＢ＃０”、物理位置が“ＳＢ＃０−ＰＣＩＳＷ＃０”、デバイス番号が“０”という情報が登録される。これは、ＳＢ１１０ａのＰＣＩスイッチ１１３の物理位置を示す情報として“ＳＢ＃０−ＰＣＩＳＷ＃０”が付与されており、当該ＰＣスイッチ１１３にデバイス番号“０”が付与されていることを示す。
【００９９】
このように、装置構成テーブル１６５ｂにおいて、各ＰＣＩユニットと当該ＰＣＩユニットが備えるスロットの位置やＰＣＩデバイスの位置を示す情報とデバイス番号とが予め対応付けられる。
【０１００】
図１１は、第２の実施の形態の物理位置管理テーブルの例を示す図である。物理位置管理テーブル１６５ｃは、管理部１６６により生成され記憶部１６５に格納される。物理位置管理テーブル１６５ｃは、ＳＢ、バス番号、デバイス番号、上位バス番号および物理位置の項目を含む。
【０１０１】
ＳＢの項目には、ＳＢの識別情報が登録される。バス番号の項目には、バス番号が登録される。デバイス番号の項目には、デバイス番号が登録される。上位バス番号の項目には、上位のバスのバス番号が登録される。物理位置の項目には、スロットの位置やＰＣＩデバイスの位置を示す情報が登録される。
【０１０２】
例えば、物理位置管理テーブル１６５ｃには、バス番号が“０”、デバイス番号が“０”、上位バス番号が“−”（設定なし）、物理位置が“ＳＢ＃０−ＰＣＩＳＷ＃０”という情報が登録されている。これは、ＳＢ１１０によって用いられる、識別情報（バス番号：デバイス番号）“０：０”であるＰＣＩスイッチ１１３の物理的な位置を示す情報が“ＳＢ＃０−ＰＣＩＳＷ＃０”であることを示している。
【０１０３】
また、例えば、物理位置管理テーブル１６５ｃには、バス番号が“２”、デバイス番号が“１”、上位バス番号が“１”、物理位置が“ＩＯＵ＃０−ｓｌｏｔ＃０”という情報が登録されている。これは、ＳＢ１１０によって用いられる、識別情報“２：１”であるＰＣＩカード３０１の物理的な位置を示す情報が“ＩＯＵ＃０−ｓｌｏｔ＃０”であることを示している。
【０１０４】
次に、管理部１６６が提供するＧＵＩ（Graphical User Interface）の例を説明する。
図１２は、第２の実施の形態の接続設定用のＧＵＩの例を示す図である。図１２（Ａ）はグループ選択ウィンドウ５００を例示している。図１２（Ｂ）はユニット選択ウィンドウ５１０を例示している。
【０１０５】
管理部１６６は、グループ選択ウィンドウ５００およびユニット選択ウィンドウ５１０の情報を生成して、サーバ１００に接続されたディスプレイに表示させることができる。あるいは、管理部１６６は、ネットワーク１０（または、ＭＭＢ１６０と直接接続された他のネットワーク）を介してサーバ１００と通信するコンピュータ上のブラウザに、グループ選択ウィンドウ５００およびユニット選択ウィンドウ５１０を表示させてもよい。
【０１０６】
管理部１６６は、グループ選択ウィンドウ５００およびユニット選択ウィンドウ５１０に入力された情報に基づいて、記憶部１６５に記憶された接続設定テーブル１６５ａを更新する。例えば、システム管理者はサーバ１００に接続されたマウスやキーボードなどの入力デバイスを用いて、グループ選択ウィンドウ５００およびユニット選択ウィンドウ５１０に情報を入力できる。
【０１０７】
グループ選択ウィンドウ５００は、複数のグループのうちから、ＰＣＩユニットを追加したいグループを選択するためのＧＵＩである。例えば、グループ選択ウィンドウ５００にはグループ一覧表示領域５０１および決定ボタン５０２が設けられている。
【０１０８】
グループ一覧表示領域５０１は、グループの一覧を表示するための領域である。１つの行が１つのグループに相当する。グループ一覧表示領域５０１は、選択、項番、グループ名、電源状態、ＳＢ、ＩＯＵおよびＰＣＩＢの項目を含む。
【０１０９】
選択の項目には、行を選択するためのフォーム（例えば、ラジオボタン）が表示される。項番の項目には、行番号が表示される。グループ名の項目には、グループを識別するための名称（グループ一覧表示領域５０１の例では、業務名“業務Ｘ”“業務Ｙ”など）が表示される。電源状態の項目には、各グループの電源状態（“ＯＮ”または“ＯＦＦ”）が表示される。ＳＢの項目には、グループに属するＳＢを示す情報が表示される。具体的には、当該グループに属するＳＢの識別情報に対して“１”が登録される。他方、当該グループに属さないＳＢの識別情報に対して“０”が登録される。ＩＯＵの項目には、グループに属するＩＯユニットを示す情報が表示される。ＰＣＩＢの項目には、グループに属するＰＣＩボックスを示す情報が登録される。
【０１１０】
例えば、グループ一覧表示領域５０１には、項番が“０”、グループ名が“業務Ｘ”、電源状態が“ＯＮ”、ＳＢ＃０が“１”、ＳＢ＃１が“０”、ＩＯＵ＃０が“１”、ＩＯＵ＃１が“０”、ＰＣＩＢ＃０が“１”、ＰＣＩＢ＃１が“０”という情報が表示されている。
【０１１１】
これは、項番“０”に対応するグループが、ＳＢ１１０、ＩＯユニット１４０およびＰＣＩボックス２００を含むものであり、そのグループ名が“業務Ｘ”、電源状態が“ＯＮ”であることを示す。なお、ＩＦボード１５０はＳＢ１１０と同一のグループに属するものとする。
【０１１２】
例えば、グループ一覧表示領域５０１では選択の項目において項番“０”の行が選択されている。決定ボタン５０２は当該選択を決定するためのボタンである。例えば、ポインタＰ１により決定ボタン５０２が押下操作されると、当該選択が決定される。すると、管理部１６６は、ユニット選択ウィンドウ５１０の情報を生成する。
【０１１３】
ユニット選択ウィンドウ５１０は、グループに対して追加したいＰＣＩユニットの選択を受け付けるためのＧＵＩである。例えば、ユニット選択ウィンドウ５１０には、ユニット一覧表示領域５１１および決定ボタン５１２が設けられている。
【０１１４】
ユニット一覧表示領域５１１は、追加可能なＰＣＩユニットの一覧を表示するための領域である。ユニット一覧表示領域５１１は、選択、追加可能ユニット、状態および説明の項目を含む。
【０１１５】
選択の項目には、行を選択するためのフォーム（例えば、ラジオボタン）が表示される。追加可能ユニットの項目には、フリーであるＰＣＩユニット（追加可能なＰＣＩユニット）の識別情報が表示される。状態の項目には、当該ＰＣＩユニットの状態が表示される。説明の項目には、当該ＰＣＩユニットのスペックなどの説明が表示される。
【０１１６】
例えば、ユニット一覧表示領域５１１には、追加可能ユニットが“ＰＣＩＢ＃１”、状態が“ＯＫ”、説明が“ＰＣＩスロット１２個”という情報が表示されている。これは、ＰＣＩボックス２００ａが現在フリーであり、当該ＰＣＩユニットの状態が正常（“ＯＫ”）であること、また、ＰＣＩボックス２００ａがＰＣＩスロットを１２個もつものであることを示している。
【０１１７】
例えば、ユニット一覧表示領域５１１ではＰＣＩボックス２００ａが選択されている。決定ボタン５１２は当該選択を決定するためのボタンである。例えば、ポインタＰ１により決定ボタン５１２が押下操作されると、当該選択が決定される。すると、管理部１６６は、上記項番“０”のグループに対して、ＰＣＩボックス２００ａを追加する。これにより、接続設定テーブル１６５ａも更新されることになる。接続設定テーブル１６５ａには、グループ一覧表示領域５０１に表示するための他の情報（例えば、グループ名など）が登録されてもよい。
【０１１８】
なお、図１２の例では、グループに対するＰＣＩユニットの追加を行う場合の操作を例示したが、グループに対するＰＣＩユニットの削除を行うこともできる。例えば、グループ選択ウィンドウ５００において、削除用のＧＵＩを表示させるためのボタンを設ける。例えば、削除用のＧＵＩでは、グループ選択ウィンドウ５００で選択されたグループに含まれるＰＣＩユニットの一覧から、削除したいＰＣＩユニットを選択するためのフォームと、当該選択を確定するためのボタンを表示させる。そうすれば、当該削除用のＧＵＩで選択されたＰＣＩユニットを、選択されたグループから削除して、フリーの状態とすることができる。フリーの状態となったＰＣＩユニットは、同じグループまたは別のグループに対して追加し直すことができる。
【０１１９】
このように、サーバ１００では、ＰＣＩユニット単位にＳＢとの論理的な接続関係を適宜変更することができる。このような変更が行われると、例えば、ＳＢに対するＰＣＩデバイスが変更される。このため、ＳＢで動作するＯＳはＰＣＩデバイスに対するバス番号を振り直すことになる。また、サーバ１００ではＰＣＩデバイス単位の交換も行われる。
【０１２０】
図１３は、第２の実施の形態のＰＣＩカードの交換作業の例を示す図である。図１３では、ＰＣＩカード３０７をＩＯユニット１４０のＰＣＩスロット（スロット番号“６”）から抜き取って、交換する様子を例示している。例えば、保守作業などによって、ＰＣＩカードがＩＯユニット１４０，１４０ａおよびＰＣＩボックス２００，２００ａから抜き取られたり、新たに挿設されたりする。このように、ＰＣＩカード単位での交換などが発生した場合にも、ＳＢに対するＰＣＩデバイスの変更が生ずる。特に、このようなＰＣＩカードの交換は、サーバ１００の稼働中に行うこともできるし（活性保守）、サーバ１００の停止中に行うこともできる。サーバ１００の稼働中に行われれば、ＳＢで動作するＯＳはＰＣＩデバイスに対するバス番号を振り直すことになる。
【０１２１】
管理部１６６は、ＰＣＩデバイスに対するバス番号が振り直されたとしても、各ＰＣＩデバイスの更新後の識別情報と物理位置を示す情報との対応関係を作り直す。次に、第２の実施の形態の処理手順を説明する。以下の説明では、ＳＢ１１０に関連する処理について説明するが、ＳＢ１１０ａに関連する処理についても同様の手順である。
【０１２２】
図１４は、第２の実施の形態の処理を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
（ステップＳ１１）管理部１６６は、記憶部１６５に記憶された接続設定テーブル１６５ａを参照して、ＰＣＩユニット間の論理的な接続設定を行う。
【０１２３】
（ステップＳ１２）管理部１６６は、各ＰＣＩユニットの電源をオンにする。
（ステップＳ１３）プロセッサ１１１は、ＲＯＭ１４２に格納されたＢＩＯＳ１１５のプログラムをＲＡＭ１１２にロードし、ＢＩＯＳ１１５の機能を発揮する（ＢＩＯＳ１１５の起動処理）。
【０１２４】
（ステップＳ１４）ＢＩＯＳ１１５は、ＰＣＩデバイスの初期化を行う。具体的には、ＢＩＯＳ１１５は各ＰＣＩデバイスにバス番号を付与し、ＰＣＩデバイスツリー情報を生成する。ＢＩＯＳ１１５は、ＰＣＩデバイスの初期化が完了した旨を管理部１６６に通知する。管理部１６６は、当該通知を受け付ける。
【０１２５】
（ステップＳ１５）管理部１６６は、ＰＣＩデバイスの情報をＢＩＯＳ１１５から収集する。ＢＩＯＳ１１５から収集される情報には、ＰＣＩデバイスツリー情報が含まれる。
（ステップＳ１６）管理部１６６は、ＢＩＯＳ１１５から収集された情報、記憶部１６５に記憶された接続設定テーブル１６５ａおよび装置構成テーブル１６５ｂに基づいて、物理位置管理テーブル１６５ｃを生成する。例えば、管理部１６６は、接続設定テーブル１６５ａによりＰＣＩユニットのツリー構造を把握できる。接続設定テーブル１６５ａの例でいえば、ＩＯユニット１４０（ＩＯＵ＃０）およびＩＦボード１５０（ＩＦ＃０）はサーバ１００に内蔵できるＰＣＩユニットであり、ＳＢ１１０（ＳＢ＃０）の直下に接続されることになる。また、ＰＣＩボックス２００（ＰＣＩＢ＃０）はサーバ１００に外付けするＰＣＩユニットであり、ＩＦボード１５０の配下に接続されることになる。また、装置構成テーブル１６５ｂには、各ＰＣＩデバイスのデバイス番号が登録されている。接続設定テーブル１６５ａおよび装置構成テーブル１６５ｂから、ＰＣＩユニットのツリー構造とデバイス番号とを把握できるので、これとＢＩＯＳ１１５から取得されたＰＣＩデバイスツリー情報に基づいて、各ＰＣＩデバイスのバス番号を把握できる。管理部１６６は、このようにして把握された各ＰＣＩデバイスのバス番号を物理位置管理テーブル１６５ｃに登録する。
【０１２６】
（ステップＳ１７）プロセッサ１１１は、ＨＤＤユニット１３０に格納されたＯＳ１１６のプログラムをＲＡＭ１１２にロードし、ＯＳ１１６の機能を発揮する（ＯＳ１１６の起動処理）。
【０１２７】
（ステップＳ１８）ＯＳ１１６は、ＰＣＩデバイスやデバイスドライバの初期化を行う。具体的な処理内容は、ステップＳ１４と同様である。当該初期化において、ＯＳ１１６はＢＩＯＳ１１５により付与された各ＰＣＩデバイスのバス番号を変更することもある。ＯＳ１１６によるＰＣＩデバイスの初期化が完了すると、通知部１１７は、その旨を管理部１６６に通知する。管理部１６６は、当該通知を受け付ける。
【０１２８】
（ステップＳ１９）管理部１６６は、通知部１１７を介してＰＣＩデバイスの情報をＯＳ１１６から収集する。ＯＳ１１６から収集される情報には、ＰＣＩデバイスツリー情報が含まれる。管理部１６６は、ステップＳ１８の処理により、各ＰＣＩデバイスのバス番号の設定に変更があるか否かを判定する。変更がある場合、処理をステップＳ２０に進める。変更がない場合、処理を終了する。
【０１２９】
（ステップＳ２０）管理部１６６は、ＯＳ１１６によるバス番号の変更に応じて、物理位置管理テーブル１６５ｃを更新する。
このようにして、管理部１６６は、起動時にＢＩＯＳ１１５およびＯＳ１１６によって各ＰＣＩデバイスに付与された識別情報と物理位置を示す情報との対応関係を管理する。特に、ＢＩＯＳ１１５（第１のソフトウェア）によって付与された識別情報がＯＳ１１６（第２のソフトウェア）によって変更されることもあるので、当該変更に応じて、当該対応関係を示す情報も更新する。次に、上記ステップＳ１６，Ｓ２０における処理を具体的に説明する。
【０１３０】
図１５は、第２の実施の形態のバス番号の設定例を示す図である。図１５では、図７の接続例に対応するＰＣＩユニットのツリー構造を示す情報を例示している。ただし、バス番号は未設定の状態である。このため、各ノードにおけるバス番号を“−”（ハイフン）と表記している。前述のように、管理部１６６は記憶部１６５に記憶された接続設定テーブル１６５ａおよび装置構成テーブル１６５ｂに基づいて当該ツリー構造を把握できる。
【０１３１】
ここで、ノード６００はルートコンプレックスである。ノード７００はＰＣＩスイッチ１１３に相当する情報である。ノード７０１はＩＯコントローラ１４１に相当する情報である。ノード７１０はＰＣＩカード３０１に相当する情報である。ノード７２０はＰＣＩカード３０２に相当する情報である。ノード８００はＰＣＩスイッチ１１４に相当する情報である。ノード８０１はＰＣＩスイッチ１５１に相当する情報である。ノード８１０はＰＣＩボックスＩＦ１５３に相当する情報である。ノード８１１はＰＣＩスイッチ２０１に相当する情報である。ノード８１１ａはＰＣＩカード３０１ｂに相当する情報である。なお、通信ＩＦ１５２およびＰＣＩボックスＩＦ１５４を含む他のＰＣＩデバイスに対応するノードの図示を省略している（以下、同様）。
【０１３２】
管理部１６６は、ＢＩＯＳ１１５またはＯＳ１１６から取得するＰＣＩデバイスツリー情報を、図１５に示すＰＣＩユニットのツリー構造に当てはめることで、各ノードのバス番号を設定し得る。
【０１３３】
図１６は、第２の実施の形態のバス番号の設定例を示す図（続き）である。図１６では、各ノードにおいてバス番号が設定された状態を示している。管理部１６６は、ＢＩＯＳ１１５またはＯＳ１１６からは、図７の接続例に対応するＰＣＩデバイスツリー情報を取得している。この場合、各ノードのバス番号が次のように設定されることになる。
【０１３４】
ノード７００のバス番号は“０”である。ノード７０１のバス番号は“１”である。ノード７１０のバス番号は“２”である。ノード７２０のバス番号は“２”である。ノード８００のバス番号は“０”である。ノード８０１のバス番号は“３”である。ノード８１０のバス番号は“４”である。ノード８１１のバス番号は“５”である。ノード８１１ａのバス番号は“６”である。
【０１３５】
このようにして、物理位置との対応関係も含めたＰＣＩデバイスツリー情報が完成する。管理部１６６は、図１６に示す物理位置との対応関係も含めたＰＣＩデバイスツリーを、物理位置管理テーブル１６５ｃを用いて管理する。図１６に示すＰＣＩデバイスツリー情報を更新したい場合、管理部１６６は、古いバス番号を新しいバス番号で上書きすればよい。
【０１３６】
ところで、各ＰＣＩデバイスに付与された識別情報は、ＰＣＩデバイスが追加／削除されたタイミングでも変更され得る。また、当該識別情報は、ＰＣＩユニットが追加／削除されたタイミングでも変更され得る。ＰＣＩユニットは、ＰＣＩデバイスを搭載するものであり、当該ＰＣＩユニットの追加／削除はＰＣＩデバイスの追加／削除を伴うからである。次に、ＰＣＩデバイス（または、ＰＣＩユニット）が追加／削除された際の処理手順を説明する。
【０１３７】
図１７は、第２の実施の形態のＰＣＩデバイス追加例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
（ステップＳ２１）ＯＳ１１６は、追加のＰＣＩデバイスを検出する。“追加する”とは、例えば、ＳＢとの論理的な接続の確立である。ＰＣＩデバイスを追加することで、当該ＳＢから当該ＰＣＩデバイスを利用可能になる。ＳＢ１１０に対してＰＣＩデバイスが追加される場合とは、次のような場合が考えられる。（１）ＳＢ１１０に対して、グループ選択ウィンドウ５００およびユニット選択ウィンドウ５１０を用いて新たなＰＣＩユニット（例えば、ＰＣＩボックス２００ａ）が追加される場合。（２）ＩＯユニット１４０やＰＣＩボックス２００の何れかの空きＰＣＩスロットに対して、ＰＣＩカードが新たに挿設される場合。
【０１３８】
（ステップＳ２２）ＯＳ１１６は、ＰＣＩデバイスやデバイスドライバの初期化を行う。具体的な処理内容は、図１４のステップＳ１４と同様である。当該初期化において、ＯＳ１１６は、ＰＣＩデバイスツリー情報における各ＰＣＩデバイスのバス番号を変更する。ＯＳ１１６によるＰＣＩデバイスの初期化が完了すると、通知部１１７は、その旨を管理部１６６に通知する。管理部１６６は、当該通知を受け付ける。当該通知は、ＰＣＩデバイスツリーの変更を通知するものといえる。
【０１３９】
（ステップＳ２３）管理部１６６は、通知部１１７を介して周辺装置の情報をＯＳ１１６から収集する。ＯＳ１１６から収集される情報には、更新後のＰＣＩデバイスツリー情報が含まれる。
【０１４０】
（ステップＳ２４）管理部１６６は、ＯＳ１１６によるバス番号の変更に応じて、物理位置管理テーブル１６５ｃを更新する。
このようにして、管理部１６６は、ＰＣＩデバイス（または、ＰＣＩユニット）が追加された際に、ＯＳ１１６から更新後のＰＣＩデバイスの情報を取得して、ＰＣＩデバイスに付与された識別情報と物理位置を示す情報との対応関係を更新する。また、各ＰＣＩデバイスに付与された識別情報は、ＰＣＩデバイス（または、ＰＣＩユニット）が削除（論理的な接続が解除）されたタイミングでも変更され得る。次に、ＰＣＩデバイス（または、ＰＣＩユニット）が削除された際の処理手順を説明する。
【０１４１】
図１８は、第２の実施の形態のＰＣＩデバイス削除例を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
（ステップＳ３１）ＯＳ１１６は、ＰＣＩデバイスを削除する旨の指示を受け付ける。例えば、当該指示はＯＳ１１６に対して管理者が入力デバイスを用いて入力してもよいし、管理部１６６がＯＳ１１６に入力してもよい。すると、ＯＳ１１６は、当該ＰＣＩデバイスの削除処理およびデバイスドライバの削除処理を実行する。ＯＳ１１６は、当該削除処理において、ＰＣＩデバイスツリー情報を更新する。
【０１４２】
（ステップＳ３２）ＯＳ１１６は、当該ＰＣＩデバイスの電源をオフにする。
（ステップＳ３３）通知部１１７は、ＯＳ１１６によるＰＣＩデバイスの削除処理が完了したことを確認すると、その旨を管理部１６６に通知する。管理部１６６は、当該通知を受け付ける。当該通知は、ＰＣＩデバイスツリーの変更を通知するものといえる。
【０１４３】
（ステップＳ３４）管理部１６６は、通知部１１７を介してＰＣＩデバイスの情報をＯＳ１１６から収集する。ＯＳ１１６から収集される情報には、更新後のＰＣＩデバイスツリー情報が含まれる。
【０１４４】
（ステップＳ３５）管理部１６６は、ＯＳ１１６によるバス番号の変更に応じて、物理位置管理テーブル１６５ｃを更新する。
このようにして、管理部１６６は、ＰＣＩデバイス（または、ＰＣＩユニット）が削除された際に、ＯＳ１１６から更新後のＰＣＩデバイスの情報を取得して、ＰＣＩデバイスに付与された識別情報と物理位置を示す情報との対応関係を更新する。
【０１４５】
以上のようにして、管理部１６６は、ＢＩＯＳ１１５やＯＳ１１６によりＰＣＩデバイスツリー情報が更新され得る各タイミングで、ＢＩＯＳ１１５およびＯＳ１１６から当該情報を取得し、物理位置管理テーブル１６５ｃを更新する。このため、管理部１６６は、物理位置管理テーブル１６５ｃを参照することで、各ＳＢからのＰＣＩデバイスの搭載位置の問い合わせに適切に応答することができる。次に、その手順を説明する。なお、以下では、ＯＳ１１６がＰＣＩデバイスの搭載位置を問い合わせる場合を例示するが、ＢＩＯＳ１１５がＰＣＩデバイスの搭載位置を問い合わせる場合も同様の手順となる。
【０１４６】
図１９は、第２の実施の形態の位置応答の処理例を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
（ステップＳ４１）ＯＳ１１６は、何れかのＰＣＩデバイスでエラーが発生したことを検出する。ＯＳ１１６は、エラーが発生したＰＣＩデバイスのバス番号とデバイス番号とを特定し、通知部１１７に出力する。例えば、ＰＣＩカード３０１のエラーであれば、バス番号：デバイス番号は“２：１”である。あるいは、ＰＣＩスイッチ２０１のエラーであれば、バス番号：デバイス番号は“５：０”である。
【０１４７】
（ステップＳ４２）通知部１１７は、エラーが発生したＰＣＩデバイスの物理位置を管理部１６６に問い合わせる。この問い合わせには、ＯＳ１１６から取得されたバス番号とデバイス番号とが含まれる。管理部１６６は、当該問い合わせを受け付ける。
【０１４８】
（ステップＳ４３）管理部１６６は、通知部１１７から取得されたバス番号およびデバイス番号の組（識別情報）を、記憶部１６５に記憶された物理位置管理テーブル１６５ｃから検索する。管理部１６６は、検索されたレコードに含まれる物理位置の情報を抽出する。例えば、バス番号：デバイス番号が“２：１”であれば、物理位置“ＩＯＵ＃０−ｓｌｏｔ＃０”を抽出する。あるいは、バス番号：デバイス番号が“５：０”であれば、物理位置“ＰＣＩＢ＃０−ＰＣＩＳＷ＃０”である。
【０１４９】
（ステップＳ４４）管理部１６６は、ステップＳ４３で抽出した物理位置の情報を通知部１１７に応答する。通知部１１７は、物理位置の情報を受け付ける。通知部１１７は、当該物理位置の情報をＯＳ１１６に出力する。
【０１５０】
（ステップＳ４５）ＯＳ１１６は、エラーが発生したＰＣＩデバイスに関するログを生成する。当該ログには、通知部１１７を介して取得された当該ＰＣＩデバイスの物理位置を示す情報が含まれる。
【０１５１】
（ステップＳ４６）ＯＳ１１６は、生成されたログを出力する。ＯＳ１１６は、当該ログを所定のログファイルに出力してもよい。ＯＳ１１６は、サーバ１００に接続されたディスプレイに当該ログの内容を表示させてもよい。
【０１５２】
このようにして、管理部１６６は、ＢＩＯＳ１１５やＯＳ１１６からの問い合わせに対して、ＰＣＩデバイスの位置を応答する。管理部１６６は、ＢＩＯＳ１１５やＯＳ１１６がＰＣＩデバイスツリーの設定を変更する各タイミングにおいて、管理部１６６自身が管理する物理位置管理テーブル１６５ｃを適宜更新する。このため、ＢＩＯＳ１１５やＯＳ１１６からの問い合わせに対して、適切に応答できる。
【０１５３】
なお、図７の説明において、ＰＣＩデバイスの識別情報にファンクション番号を含めてもよいものとした。その場合、管理部１６６は、ＢＩＯＳ１１５やＯＳ１１６からファンクション番号を含む識別情報を含んだＰＣＩデバイスツリー情報を収集できる。よって、管理部１６６は、当該識別情報と搭載位置との対応関係を管理し得る。通知部１１７は、ファンクション番号を含む識別情報を用いて、管理部１６６に位置の問い合わせを行えばよい。そうすれば、管理部１６６は、当該識別情報に対応する搭載位置を応答できる。
【０１５４】
図２０は、第２の実施の形態のログ出力例を示す図である。ＯＳ１１６は、ログウィンドウ９００にエラーのログを出力することが考えられる。その場合、例えば、エラーの内容に加えて、位置情報９０１も当該ログに含めることができる。例えば、位置情報９０１は、“ＩＯＵ＃０−ｓｌｏｔ＃０”という文字列である。
【０１５５】
サーバ１００の保守員は、位置情報９０１を参照して、エラーが発生したＰＣＩデバイスが搭載されたサーバ１００上の位置を把握できる。例えば、当該位置情報として出力される文字列を、ＰＣＩスロット１４５，１４５ａ，・・・やＰＣＩスロット２０２，２０２ａ，・・・などの外側から視認可能な位置に表記しておく。
【０１５６】
より具体的には、“ｓｌｏｔ＃０”という文字列をスロット１４５の外側から視認可能な位置に表記しておく。すると、位置情報９０１の文字列を参照した保守員は、当該文字列のうち“ＩＯＵ＃０”の部分により、ＩＯユニット１４０を特定できる。ＩＯユニット１４０は、図３で示したようにＩＯユニット１４０ａよりも上側に搭載されている。更に、保守員は、位置情報９０１の文字列の“ｓｌｏｔ＃０”の部分と、スロット１４５の外側に表記された“ｓｌｏｔ＃０”の文字列を照合することでＰＣＩカード３０１を特定できる。
【０１５７】
あるいは、サーバ１００のマニュアルなどに、位置情報の文字列が示す、サーバ１００上の位置を記載しておいてもよい。そうすれば、保守員は、出力されたログの内容とマニュアルとを参照して、保守作業を行うべきＰＣＩデバイスを特定できる。
【０１５８】
図２１は、第２の実施の形態のバス番号の変更例を示す図である。図２１では、各ＰＣＩユニットにおける一部のＰＣＩデバイスのみを図示し、他のＰＣＩデバイスの図示を省略している。また、各ＰＣＩデバイスの名称に代えて、デバイス番号を表記している。
【０１５９】
ＳＢ１１０に関するＰＣＩデバイスツリー情報は、ＢＩＯＳ１１５により各ＰＣＩデバイスに対するバス番号が設定されることで生成される。しかし、上述したように、ＰＣＩデバイスツリー情報は、その後も変更され得る。例えば、ＯＳ１１６が周辺装置の初期化を行うタイミングである。また、例えば、ＳＢ１１０に対してＰＣＩデバイス（または、ＰＣＩユニット）が追加／削除されたタイミングである。このため、当初のＰＣＩデバイスツリー情報が、終始維持されるとは限らない。
【０１６０】
例えば、図７で示したＰＣＩデバイスツリーに対して、ＰＣＩボックス２００ａが追加されることで、バス番号が更新され得る。その場合、新たにバス番号が振り直され、バス番号“７”、“８”が追加され得る。
【０１６１】
また、ＰＣＩボックス２００ａが追加された状態から、ＰＣＩボックス２００が削除されることも考えられる。その場合も新たにバス番号が振り直される。その場合、例えば、ＩＦボード１５０やＰＣＩボックス２００ａに上記とは異なるバス番号が付与される可能性もある。例えば、ＰＣＩボックス２００との接続が解除されるとすると、バス番号“５”、“６”が空きとなる。したがって、ＰＣＩボックスＩＦ１５４配下のバスがバス番号“７”からバス番号“５”に、ＰＣＩボックス２００ａ内のＰＣＩスイッチのバスがバス番号“８”からバス番号“６”に変更されることが考えられる。すると、ＰＣＩボックス２００ａの各ＰＣＩデバイスの識別情報も変わることになる。
【０１６２】
管理部１６６は、このようなＰＣＩデバイスツリーの更新に追随して、物理位置管理テーブル１６５ｃを更新する。このため、ＢＩＯＳ１１５やＯＳ１１６からＰＣＩデバイスの搭載位置の問い合わせを受けた場合に、当該ＰＣＩデバイスの搭載位置を示す適切な情報を応答できる。このため、ＢＩＯＳ１１５やＯＳ１１６は、ＰＣＩデバイスの搭載位置を示す適切な情報をログに含めて出力できる。
【０１６３】
なお、第２の実施の形態の情報処理は、ＭＭＢ１６０が備える管理部１６６により実現されるものとしたが、他のハードウェアが管理部１６６の機能を有してもよい。例えば、ＳＶＰ１４３が管理部１６６に相当する機能を担うことも考えられる。
【０１６４】
図２２は、第２の実施の形態の他のソフトウェア例（その１）を示す図である。ＳＶＰ１４３は、管理部１４３ａを有する。管理部１４３ａの機能は、ＳＶＰ１４３がメモリ１４４に格納されたプログラムを実行することで実現されてもよい。管理部１４３ａは、管理部１６６の代わりに、管理部１６６と同じ処理を行う。
【０１６５】
管理部１４３ａは、記憶部１６５に格納される接続設定テーブル１６５ａ、装置構成テーブル１６５ｂおよび物理位置管理テーブル１６５ｃに相当する情報をメモリ１４４に格納してもよい。あるいは、管理部１４３ａは、接続設定テーブル１６５ａおよび装置構成テーブル１６５ｂをＭＭＢ１６０から取得し、物理位置管理テーブル１６５ｃに相当する情報のみをメモリ１４４に格納して管理してもよい。
【０１６６】
このように、ＳＶＰ１４３に管理部１４３ａを設けて、ＢＩＯＳ１１５やＯＳ１１６に対するＰＣＩデバイスの搭載位置を示す情報の提供を行うようにしてもよい。このようにすると、ＳＶＰはＩＯユニットごとに搭載されるため、複数のＳＶＰにより第２の実施の形態の処理を分散して実行できる。例えば、ＳＢ１１０とＩＯユニット１４０とが論理的に接続される場合には、管理部１４３ａがＢＩＯＳ１１５やＯＳ１１６によって設定されたＰＣＩデバイスツリーとデバイス位置との対応関係を管理する。また、例えば、ＳＢ１１０ａとＩＯユニット１４０ａとが論理的に接続される場合には、ＩＯユニット１４０ａのＳＶＰで動作する管理部が、ＳＢ１１０ａで動作するＢＩＯＳやＯＳによって設定されたＰＣＩデバイスツリーとデバイス位置との対応関係を管理する。このように処理を分散すれば、ＭＭＢ１６０の負荷が軽減される。
【０１６７】
また、ＳＶＰに管理部を設ければ、ＭＭＢ１６０に管理部１６６を設けなくてもよい。あるいは、サーバ１００にＭＭＢ１６０を設けなくても、第２の実施の形態の情報処理を実現できる。
【０１６８】
なお、第２の実施の形態では、通知部１１７がＯＳ１１６と管理部１６６との間の通信を仲介するものとしたが、ＡＣＰＩ（Advanced Configuration and Power Interface）ドライバがＯＳ１１６と管理部１６６との間の通信を仲介してもよい。ここで、ＡＣＰＩドライバは電源管理用のソフトウェアである。
【０１６９】
図２３は、第２の実施の形態の他のソフトウェア例（その２）を示す図である。ＳＢ１１０は、通知部１１７の機能をＡＣＰＩドライバ１１８により実現してもよい。例えば、ＡＣＰＩドライバ１１８のプログラムは、ＲＯＭ１４２などに予め格納されてもよい。プロセッサ１１１は、ＲＯＭ１４２に格納された当該プログラムをＲＡＭ１１２にロードして実行することで、ＡＣＰＩドライバ１１８の機能を発揮してもよい。
【０１７０】
ＡＣＰＩドライバ１１８は、ＯＳ１１６によるＰＣＩデバイスの初期化完了の通知や、ＰＣＩデバイスの搭載位置の問い合わせなどを、管理部１６６に対して行う。具体的には、図１４，１７，１８，１９における通知部１１７の処理を、ＡＣＰＩドライバ１１８の処理として読み替えればよい。管理部１６６は、通知部１１７の代わりにＡＣＰＩドライバ１１８を介して、ＯＳ１１６と通信する。この場合、通知部１１７をＳＢ１１０に設けなくてもよい。
【０１７１】
なお、第２の実施の形態では機能拡張用のインタフェースとしてＰＣＩｅを例示して説明したが、他の種類のインタフェースを用いる場合にも第２の実施の形態の情報処理を適用し得る。
【０１７２】
また、前述のように、第１の実施の形態の情報処理は、演算部２ｂにプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、プロセッサ１１１，１６１およびＳＶＰ１４３にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体（例えば、光ディスク１５など）に記録できる。
【０１７３】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワークを介して受信したプログラムを直接実行してもよい。
【０１７４】
また、上記の情報処理の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１７５】
１  情報処理装置
２  管理装置
３，４  装置
５，６，７，８  周辺装置
Ａ，Ｂ，Ｃ，Ｄ  位置
【図１】
2014076842.tif 000003
【図２】
2014076842.tif 000004
【図３】
2014076842.tif 000005
【図４】
2014076842.tif 000006
【図５】
2014076842.tif 000007
【図６】
2014076842.tif 000008
【図７】
2014076842.tif 000009
【図８】
2014076842.tif 000010
【図９】
2014076842.tif 000011
【図１０】
2014076842.tif 000012
【図１１】
2014076842.tif 000013
【図１２】
2014076842.tif 000014
【図１３】
2014076842.tif 000015
【図１４】
2014076842.tif 000016
【図１５】
2014076842.tif 000017
【図１６】
2014076842.tif 000018
【図１７】
2014076842.tif 000019
【図１８】
2014076842.tif 000020
【図１９】
2014076842.tif 000021
【図２０】
2014076842.tif 000022
【図２１】
2014076842.tif 000023
【図２２】
2014076842.tif 000024
【図２３】
2014076842.tif 000025
【手続補正書】
【提出日】平成27年5月29日(2015.5.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
例えば、障害の発生した周辺装置の位置を、保守員が容易に把握できるのが好ましい。そこで、周辺装置を利用する装置により出力されるログに、周辺装置の位置情報を含めたいことがある。そのために、例えば周辺装置の識別情報と搭載位置との対応関係をハードコーディングにより情報処理装置に登録しておき、位置情報提供に用いることが考えられる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
例えば、装置構成テーブル１６５ｂには、ユニットが“ＳＢ＃０”、物理位置が“ＳＢ＃０−ＰＣＩＳＷ＃０”、デバイス番号が“０”という情報が登録される。これは、ＳＢ１１０ａのＰＣＩスイッチ１１３の物理位置を示す情報として“ＳＢ＃０−ＰＣＩＳＷ＃０”が付与されており、当該ＰＣＩスイッチ１１３にデバイス番号“０”が付与されていることを示す。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の装置と前記複数の装置により利用可能な複数の周辺装置とを備え、前記複数の装置それぞれにより用いられる周辺装置を変更可能な情報処理装置であって、
前記複数の装置と前記複数の周辺装置との対応関係を示す情報および何れかの装置により用いられる周辺装置に対して当該装置により付与された識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含む管理情報を記憶する記憶部と、
周辺装置の識別情報が変更された旨の通知を当該周辺装置を用いる装置から受け付けると、変更の内容に応じて前記管理情報を更新し、何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、前記管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する演算部と、
を有する情報処理装置。
【請求項２】
前記管理情報は、何れかの装置で動作する第１のソフトウェアにより周辺装置に付与された識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含み、
前記演算部は、当該装置で動作する第２のソフトウェアにより当該周辺装置の識別情報が変更された旨の通知を当該装置から受け付けると、変更後の識別情報と当該周辺装置の位置を示す情報とを対応付けることで前記管理情報を更新する、
請求項１記載の情報処理装置。
【請求項３】
前記演算部は、何れかの装置に対して周辺装置が追加された際に周辺装置の識別情報が変更された旨の通知を受け付け、当該装置と当該周辺装置との対応関係を示す情報および当該装置により付与された当該周辺装置の識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を前記管理情報に追加する、請求項１または２記載の情報処理装置。
【請求項４】
前記演算部は、何れかの装置と周辺装置との接続が解除された際に周辺装置の識別情報が変更された旨の通知を受け付け、当該装置と当該周辺装置との対応関係を示す情報および当該装置により付与された当該周辺装置の識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を前記管理情報から削除する、請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記演算部は、何れかの装置に対して第１の周辺装置が追加された際に、または、当該装置と第１の周辺装置との接続が解除された際に、周辺装置の識別情報が変更された旨の通知を受け付け、当該装置により用いられる第２の周辺装置の識別情報が変更されたことを検出すると、前記第２の周辺装置の変更後の識別情報と前記第２の周辺装置の位置を示す情報とを対応付けることで前記管理情報を更新する、請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記複数の装置と前記複数の周辺装置との対応関係は、前記複数の装置および前記複数の周辺装置の稼働中に変更可能である、請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
複数の装置と前記複数の装置により利用可能な複数の周辺装置とを備え、前記複数の装置それぞれにより用いられる周辺装置を変更可能なコンピュータに、
何れかの装置により用いられる周辺装置に対して当該装置により付与される識別情報が変更された旨の通知を当該装置から受け付けると、前記複数の装置と前記複数の周辺装置との対応関係を示す情報および当該識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含む管理情報を変更の内容に応じて更新し、
何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、前記管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する、
処理を実行させるプログラム。
【請求項８】
複数の装置と前記複数の装置により利用可能な複数の周辺装置とを備え、前記複数の装置それぞれにより用いられる周辺装置を変更可能な情報処理装置によって実行されるログ出力方法であって、
何れかの装置により用いられる周辺装置に対して当該装置により付与される識別情報が変更された旨の通知を当該装置から受け付けると、前記複数の装置と前記複数の周辺装置との対応関係を示す情報および当該識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含む管理情報を変更の内容に応じて更新し、
何れかの装置が周辺装置に関するログを出力する際に当該装置から周辺装置の識別情報を取得すると、前記管理情報を参照して当該周辺装置の位置を示す情報を当該装置に提供する、
ログ出力方法。
【手続補正書】
【提出日】平成28年6月3日(2016.6.3)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
ここで、ＰＣＩスロット１４５，１４５ａ，・・・、ビデオコントローラ１４６およびＨＤＤコントローラ１４７は、ＩＯユニット１４０の所定の位置に搭載されている。この位置を示す情報をスロット番号と呼ぶ。ＰＣＩスロット１４５のスロット番号は“０”（図７ではｓｌｏｔ＃０と表記。以下、同様）である。ＰＣＩスロット１４５ａのスロット番号は“１”である。他のＰＣＩスロットのスロット番号も同様に振られる。ビデオコントローラ１４６のスロット番号は“８”である。ＨＤＤコントローラ１４７のスロット番号は“９”である。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
前記管理情報は、何れかの装置で動作する第１のソフトウェアにより周辺装置に付与された識別情報と当該周辺装置の位置を示す情報との対応関係を示す情報を含み、
前記演算部は、前記第１のソフトウェアによるログ出力時に当該装置から周辺装置の識別情報を取得すると、前記管理情報を参照して当該周辺装置の位置を示す情報を提供し、また、当該装置で前記第１のソフトウェアの起動完了後に起動する第２のソフトウェアにより当該周辺装置の識別情報が変更された旨の通知を当該装置から受け付けると、変更後の識別情報と当該周辺装置の位置を示す情報とを対応付けることで前記管理情報を更新する、
請求項１記載の情報処理装置。
【国際調査報告】
2014076842.tif 000026
2014076842.tif 000027