(57)【特許請求の範囲】
【請求項１】
前回の起動から今回の起動までにおけるハードウェアコンポーネントごとの実装状態についての変更の有無を示す変更情報を格納するコンポーネントテーブルを記憶するコンポーネントテーブル記憶部と、
実装されているハードウェアコンポーネントの構成を示すハードウェア構成情報を作成または更新するハードウェア構成情報作成部と、
作成または更新された前記ハードウェア構成情報が記憶されるハードウェア構成情報記憶部と、
前記コンポーネントテーブルにおいて前記変更情報が変更有りを示しているハードウェアコンポーネントが無い場合、前記ハードウェア構成情報記憶部からハードウェア構成情報を読み込んで上位層に提供し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示しているハードウェアコンポーネントが有る場合、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、ハードウェアコンポーネントの実装状態の変更内容が反映されるように前記ハードウェア構成情報作成部に更新させ、当該更新されたハードウェア構成情報を上位層に提供するハードウェア構成情報設定部と、
を備え、
前記コンポーネントテーブルは、ハードウェアコンポーネントごとに対応して現在の実装の有無を示す実装情報をさらに格納し、
前記ハードウェア構成情報作成部は、
前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装無しを示しているハードウェアコンポーネントに対応する情報を削除し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装有りを示しているハードウェアコンポーネントに対応する情報を追加するように更新する
ことを特徴とする情報処理装置。
【請求項２】
前回の起動から今回の起動までにおけるハードウェアコンポーネントごとの実装状態についての変更の有無を示す変更情報を格納し、ハードウェアコンポーネントごとに対応して現在の実装の有無を示す実装情報をさらに格納するコンポーネントテーブルを記憶するコンポーネントテーブル記憶部と、
実装されているハードウェアコンポーネントの構成を示すハードウェア構成情報を作成または更新するハードウェア構成情報作成部であって、ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装無しを示しているハードウェアコンポーネントに対応する情報を削除し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装有りを示しているハードウェアコンポーネントに対応する情報を追加するように更新する前記ハードウェア構成情報作成部と、
作成または更新された前記ハードウェア構成情報が記憶される前記ハードウェア構成情報記憶部と、
前記ハードウェア構成情報記憶部からハードウェア構成情報を読み込んで上位層に提供するハードウェア構成情報設定部と、
を備えることを特徴とする情報処理装置。
【請求項３】
前回の起動から今回の起動までにおけるハードウェアコンポーネントごとの実装状態についての変更の有無を示す変更情報を格納し、ハードウェアコンポーネントごとに対応して現在の実装の有無を示す実装情報をさらに格納するコンポーネントテーブルをコンポーネントテーブル記憶部が記憶し、
実装されているハードウェアコンポーネントの構成を示すハードウェア構成情報を作成または更新し、ハードウェア構成情報記憶部に記憶させるハードウェア構成情報作成ステップであって、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装無しを示しているハードウェアコンポーネントに対応する情報を削除し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装有りを示しているハードウェアコンポーネントに対応する情報を追加するように更新する前記ハードウェア構成情報作成ステップと、
前記コンポーネントテーブルをコンポーネントテーブル記憶部から読み出して取得するコンポーネントテーブル取得ステップと、
取得された前記コンポーネントテーブルにおいて、前記変更情報が変更有りを示しているハードウェアコンポーネントが無い場合、前記ハードウェア構成情報記憶部からハードウェア構成情報を読み込んで上位層に提供し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示しているハードウェアコンポーネントが有る場合、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、ハードウェアコンポーネントの実装状態の変更内容が反映されるように前記ハードウェア構成情報作成ステップにおいて更新させ、当該更新されたハードウェア構成情報を上位層に提供するハードウェア構成情報設定ステップと、
を有することを特徴とする情報処理装置の起動方法。
【請求項４】
前回の起動から今回の起動までにおけるハードウェアコンポーネントごとの実装状態についての変更の有無を示す変更情報を格納し、ハードウェアコンポーネントごとに対応して現在の実装の有無を示す実装情報をさらに格納するコンポーネントテーブルを記憶するコンポーネントテーブル記憶部を備えたコンピュータを、
実装されているハードウェアコンポーネントの構成を示すハードウェア構成情報を作成または更新し、ハードウェア構成情報記憶部に記憶させるハードウェア構成情報作成手段であって、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装無しを示しているハードウェアコンポーネントに対応する情報を削除し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装有りを示しているハードウェアコンポーネントに対応する情報を追加するように更新する前記ハードウェア構成情報作成手段、
前記コンポーネントテーブルをコンポーネントテーブル記憶部から読み出して取得するコンポーネントテーブル取得手段、
取得された前記コンポーネントテーブルにおいて、前記変更情報が変更有りを示しているハードウェアコンポーネントが無い場合、前記ハードウェア構成情報記憶部からハードウェア構成情報を読み込んで上位層に提供し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示しているハードウェアコンポーネントが有る場合、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、ハードウェアコンポーネントの実装状態の変更内容が反映されるように前記ハードウェア構成情報作成手段に更新させ、当該更新されたハードウェア構成情報を上位層に提供するハードウェア構成情報設定手段
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置と、情報処理装置における起動方法に関する。また、情報処理装置が実行するプログラムに関する。
【背景技術】
【０００２】
ＢＩＯＳ（Basic Input/Output System）は、例えばＳＭＢＩＯＳ（System Management BIOS）などの所定のデータ構造による構成に関する所定の情報（ハードウェア構成情報）をＯＳ（Operating System）やアプリケーションに提供する。このため、例えばサーバなどの情報処理装置では、起動時においてＢＩＯＳがハードウェアの実装状況を認識し、ハードウェアの各々から取得したハードウェア情報を利用してハードウェア構成情報を作成する。このようにＢＩＯＳは、ハードウェア構成情報の作成にあたり、ハードウェアごとにアクセスしてハードウェア情報を収集する。このため、情報処理装置に実装されるハードウェアが増加するほどハードウェア構成情報の作成に要する時間も増加し、起動時間が長くなってしまうという問題が生じている。
【０００３】
そこで、前回の起動から今回の起動までのあいだにデバイスに変更がないことを条件にデバイスの診断を省いて起動を実行させるという構成が知られている（例えば、特許文献１参照）。これにより、デバイスに変更がない場合にはデバイスの診断が行われることなく起動されるため、起動時間の短縮が図られる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２６２４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記特許文献１の構成では、１つのデバイスに変更がある場合であってもすべてのデバイスに対する診断が行われることになり、起動時間の短縮効果が得られなくなってしまう。つまり、特許文献１の構成では、起動時間短縮のための制御が単純であり、ハードウェアの変更状況に対して柔軟に対応しておらず、改善の余地があるといえる。
【０００６】
そこでこの発明は、上述の課題を解決することのできる情報処理装置、起動方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題を解決すべくなされたもので、本発明の一態様の情報処理装置は、前回の起動から今回の起動までにおけるハードウェアコンポーネントごとの実装状態についての変更の有無を示す変更情報を格納するコンポーネントテーブルを記憶するコンポーネントテーブル記憶部と、実装されているハードウェアコンポーネントの構成を示すハードウェア構成情報を作成または更新するハードウェア構成情報作成部と、作成または更新された前記ハードウェア構成情報が記憶されるハードウェア構成情報記憶部と、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示しているハードウェアコンポーネントが無い場合、前記ハードウェア構成情報記憶部からハードウェア構成情報を読み込んで上位層に提供し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示しているハードウェアコンポーネントが有る場合、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、ハードウェアコンポーネントの実装状態の変更内容が反映されるように前記ハードウェア構成情報作成部に更新させ、当該更新されたハードウェア構成情報を上位層に提供するハードウェア構成情報設定部と、を備え、前記コンポーネントテーブルは、ハードウェアコンポーネントごとに対応して現在の実装の有無を示す実装情報をさらに格納し、前記ハードウェア構成情報作成部は、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装無しを示しているハードウェアコンポーネントに対応する情報を削除し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装有りを示しているハードウェアコンポーネントに対応する情報を追加するように更新することを特徴とする。
また本発明の一態様の情報処理装置は、前回の起動から今回の起動までにおけるハードウェアコンポーネントごとの実装状態についての変更の有無を示す変更情報を格納し、ハードウェアコンポーネントごとに対応して現在の実装の有無を示す実装情報をさらに格納するコンポーネントテーブルを記憶するコンポーネントテーブル記憶部と、実装されているハードウェアコンポーネントの構成を示すハードウェア構成情報を作成または更新するハードウェア構成情報作成部であって、ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装無しを示しているハードウェアコンポーネントに対応する情報を削除し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装有りを示しているハードウェアコンポーネントに対応する情報を追加するように更新する前記ハードウェア構成情報作成部と、作成または更新された前記ハードウェア構成情報が記憶される前記ハードウェア構成情報記憶部と、前記ハードウェア構成情報記憶部からハードウェア構成情報を読み込んで上位層に提供するハードウェア構成情報設定部と、を備える。
【０００８】
また、本発明の一態様による情報処理装置の起動方法は、前回の起動から今回の起動までにおけるハードウェアコンポーネントごとの実装状態についての変更の有無を示す変更情報を格納し、ハードウェアコンポーネントごとに対応して現在の実装の有無を示す実装情報をさらに格納するコンポーネントテーブルをコンポーネントテーブル記憶部が記憶し、実装されているハードウェアコンポーネントの構成を示すハードウェア構成情報を作成または更新し、ハードウェア構成情報記憶部に記憶させるハードウェア構成情報作成ステップであって、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装無しを示しているハードウェアコンポーネントに対応する情報を削除し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装有りを示しているハードウェアコンポーネントに対応する情報を追加するように更新する前記ハードウェア構成情報作成ステップと、前記コンポーネントテーブルをコンポーネントテーブル記憶部から読み出して取得するコンポーネントテーブル取得ステップと、取得された前記コンポーネントテーブルにおいて、前記変更情報が変更有りを示しているハードウェアコンポーネントが無い場合、前記ハードウェア構成情報記憶部からハードウェア構成情報を読み込んで上位層に提供し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示しているハードウェアコンポーネントが有る場合、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、ハードウェアコンポーネントの実装状態の変更内容が反映されるように前記ハードウェア構成情報作成ステップにおいて更新させ、当該更新されたハードウェア構成情報を上位層に提供するハードウェア構成情報設定ステップと、を有する。
【０００９】
また、本発明の一態様としてのプログラムは、前回の起動から今回の起動までにおけるハードウェアコンポーネントごとの実装状態についての変更の有無を示す変更情報を格納し、ハードウェアコンポーネントごとに対応して現在の実装の有無を示す実装情報をさらに格納するコンポーネントテーブルを記憶するコンポーネントテーブル記憶部を備えたコンピュータを、実装されているハードウェアコンポーネントの構成を示すハードウェア構成情報を作成または更新し、ハードウェア構成情報記憶部に記憶させるハードウェア構成情報作成手段であって、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装無しを示しているハードウェアコンポーネントに対応する情報を削除し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示し、かつ、実装情報が実装有りを示しているハードウェアコンポーネントに対応する情報を追加するように更新する前記ハードウェア構成情報作成手段、前記コンポーネントテーブルをコンポーネントテーブル記憶部から読み出して取得するコンポーネントテーブル取得手段、取得された前記コンポーネントテーブルにおいて、前記変更情報が変更有りを示しているハードウェアコンポーネントが無い場合、前記ハードウェア構成情報記憶部からハードウェア構成情報を読み込んで上位層に提供し、前記コンポーネントテーブルにおいて前記変更情報が変更有りを示しているハードウェアコンポーネントが有る場合、前記ハードウェア構成情報記憶部から読み出したハードウェア構成情報について、ハードウェアコンポーネントの実装状態の変更内容が反映されるように前記ハードウェア構成情報作成手段に更新させ、当該更新されたハードウェア構成情報を上位層に提供するハードウェア構成情報設定手段として機能させる。
【発明の効果】
【００１０】
本発明によれば、ハードウェアの変更状況に柔軟に対応して起動時間を有効に短縮可能な起動制御が実現されるという効果が得られる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態としてのサーバの構成例を示す図である。
【図２】第１の実施形態におけるＢＭＣの構成例を示す図である。
【図３】コンポーネントテーブルの構造例を示す図である。
【図４】本実施形態においてＢＩＯＳにより実現される機能部の構成例を示す図である。
【図５】第１の実施形態におけるＢＭＣが実行するコンポーネントテーブル作成のための処理手順例を示すフローチャートである。
【図６】第１の実施形態におけるＢＭＣが実行するコンポーネントテーブル更新のための処理手順例を示すフローチャートである。
【図７】ＢＩＯＳによる起動制御のための処理手順例を示すフローチャートである。
【図８】本実施形態におけるハードウェア構成情報を作成、更新するための処理手順例を示すフローチャートである。
【図９】第２の実施形態としてのサーバの構成例を示す図である。
【図１０】第２の実施形態におけるＢＭＣの構成例を示す図である。
【図１１】第２の実施形態におけるＢＭＣが実行するコンポーネントテーブル作成のための処理手順例を示すフローチャートである。
【図１２】第２の実施形態におけるＢＭＣが実行するコンポーネントテーブル更新のための処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
＜第１の実施形態＞
［サーバの構成例］
図１は、本実施形態の情報処理装置であるサーバ１００の構成例を示している。この図に示すサーバ１００は、ＲＯＭ（Read Only Memory）１１０、不揮発性メモリ１２０、ＢＭＣ（Base Management Controller）１３０、および、コンポーネント部１４０における複数のコンポーネント１４１（１４１−１〜１４１−４）をバス１７０により接続して構成される。
【００１３】
ＲＯＭ１１０は、当該サーバ１００の起動時に必要なプログラムや設定データをはじめとする所定の情報が格納される。同図では、ＲＯＭ１１０に記憶される情報としてＢＩＯＳ（Basic Input/Output System）２００が示される。ＢＩＯＳ２００はファームウェアの１つであり、サーバ１００の起動時において、コンポーネント１４１などのハードウェアの初期化および認識処理などを実現するためのプログラムである。
【００１４】
不揮発性メモリ１２０は、書き換え可能な所定の情報を記憶する。同図では、不揮発性メモリ１２０に記憶される情報としてハードウェア構成情報１２１が示される。このハードウェア構成情報１２１は、後述するように起動時においてＢＩＯＳ２００によって作成、更新され、例えばＯＳ（Operating System）やアプリケーションなどの上位層に提供される。これにより、ＯＳやアプリケーションは、ハードウェアデバイスを利用することが可能になる。なお、不揮発性メモリ１２０は、特許請求の範囲に記載のハードウェア構成情報記憶部の一例に相当する。
【００１５】
ハードウェア構成情報１２１は、通常、サーバ１００の起動ごとに作成されてＲＡＭ（Random Access Memory）に保持され、電源がオフとなってシステムが終了するのに応じて消去されるが、本実施形態では、このハードウェア構成情報１２１を不揮発性メモリ１２０に記憶することでシステムの終了後においても消去されないようにしている。これにより、後述するように起動時間を短縮させることが可能になる。
【００１６】
ＢＭＣ１３０は、当該サーバ１００の管理を行う部位である。ＢＭＣ１３０は、サーバ１００を常時監視するために、サーバ１００における他の部位とは異なる独立した電源により定常的に動作するようにされている。ただし、ＢＭＣ１３０は、ファームウェアの更新などに対応して再起動が行われる。
【００１７】
コンポーネント部１４０は、マザーボードＭＢに実装されるハードウェアコンポーネント（以降、単にコンポーネントと称する）を一括して示している。ここでの図示は省略するが、マザーボードＭＢには、ＣＰＵやメモリモジュールなどの所定のハードウェアを所定数換装可能なスロット（換装部）が備えられている。ハードウェアコンポーネントとは、上記換装部に対して装脱が可能なハードウェアデバイスをいう。
【００１８】
同図では、コンポーネント１４１の具体例として、４つのコンポーネント１４１−１〜１４１−４が実装された状態を示している。なお、ここでの図示は省略するが、これら４つのコンポーネント１４１−１〜１４１−４が実装されているスロット以外に、例えばコンポーネントが実装されていないスロットがあるような状態を想定してよい。
【００１９】
ここでのコンポーネント１４１−１はＣＰＵ＃１のスロットに実装されるＣＰＵを想定している。ＣＰＵは、ＲＯＭ１１０や、ここでは図示しない補助記憶装置などに記憶されるプログラムを実行することにより、サーバとしての所定の機能を実現する。また、コンポーネント１４１−２、１４１−３は、それぞれ、メモリモジュール＃１、＃２のスロットに実装されるメモリモジュールをそれぞれ想定している。この場合のメモリモジュールは、例えばＤＩＭＭ（Dual Inline Memory Module）などとされて、サーバ１００における主記憶装置（ＲＡＭ：Random Access Memory）として機能する。また、コンポーネント１４１−４は、Ｉ／Ｏカード＃１のスロットに実装されるＩ／Ｏカードを想定している。Ｉ／Ｏカードは、所定のインターフェース規格にしたがって周辺機器などとデータの入出力を実行する機能を有する。
【００２０】
なお、以降において、コンポーネントについて言及するにあたり、特に個々に区別する必要がない場合には、コンポーネント１４１と表記する。また、上記コンポーネント１４１の各々は、それぞれを一意に特定するコンポーネント識別子１４２を記憶している。
【００２１】
また、マザーボードＭＢには、コンポーネント１４１のスロットごとに対応してセンサが備えられる。図においては、コンポーネント１４１−１〜１４１−４ごとに対応するセンサ１５０−１〜１５０−４が示される。なお、センサについても、個々に区別する必要のない場合にはセンサ１５０と表記する。センサ１５０は、対応のスロットにおいてコンポーネントが実装されているか否かに応じたセンサ信号を出力する。これらセンサ１５０の各々から出力されるセンサ信号Ｓ１は、ＢＭＣ１３０に対して入力されるようになっている。
【００２２】
［ＢＭＣの構成例］
図２は、ＢＭＣ１３０の構成例を示している。ＢＭＣ１３０は、コンポーネント検出部１３１、コンポーネント識別子取得部１３２、テーブル作成部１３３、不揮発性記憶部１３４、ＢＩＯＳ対応通信部１３５を備える。
【００２３】
コンポーネント検出部１３１は、センサ１５０（図１）の各々から出力されるセンサ信号Ｓ１を入力して、スロットごとにコンポーネント１４１が実装されているか否かについて検出する。
【００２４】
コンポーネント識別子取得部１３２は、バス１７０経由でコンポーネント１４１にアクセスして、コンポーネント識別子１４２を取得する。
【００２５】
テーブル作成部１３３は、コンポーネント部１４０におけるコンポーネント１４１の実装状態の変更に応じてコンポーネントテーブル３００の作成と更新を行う部位である。コンポーネント部１４０におけるコンポーネント１４１の実装状態の変更については、コンポーネント検出部１３１の検出結果に基づいて認識することができる。また、テーブル作成部１３３は、コンポーネントテーブル３００の更新にあたり、コンポーネント識別子取得部１３２により取得されたコンポーネント識別子１４２を利用する。
【００２６】
不揮発性記憶部１３４は、ＢＭＣ１３０における不揮発性の記憶領域であり、図示するように、コンポーネントテーブル３００が記憶される。コンポーネントテーブル３００は、現在におけるコンポーネント１４１の実装状態を反映した情報内容を有する。不揮発性記憶部１３４は、特許請求の範囲に記載のコンポーネントテーブルの一例に相当する。
【００２７】
ＢＩＯＳ対応通信部１３５は、ＢＩＯＳ２００と通信を行う部位である。具体的に、ＢＩＯＳ対応通信部１３５は、ＢＩＯＳ２００としてのプログラムを実行する、ＣＰＵ＃１としてのコンポーネント１４１−１と通信することになる。
【００２８】
［コンポーネントテーブルの構造例］
図３は、コンポーネントテーブル３００の構造例を示している。コンポーネントテーブル３００には、マザーボードＭＢに実装されたコンポーネントが登録される。そして、コンポーネントテーブル３００は、コンポーネントごとについて、スロット３１０、コンポーネント識別子３２０、実装情報３３０および変更情報３４０を対応付けたレコードを備えた構造を有する。
【００２９】
スロット３１０は、スロットを識別するためのスロット識別子が格納される。このスロット識別子によりマザーボードＭＢ上におけるいずれのスロットであるのかを特定できる。コンポーネント識別子３２０は、対応のコンポーネント１４１を一意に特定する識別子であり、前述のようにコンポーネント１４１に記憶されているコンポーネント識別子１４２が格納される。
【００３０】
実装情報３３０は、対応のコンポーネント１４１がスロットに実装されているか否かを示すフラグである。一具体例として、実装情報３３０は１ビットの情報とされ、「０」によりスロットに実装されている「実装」の状態であることを示し、「１」によりスロットに実装されていない「非実装」の状態であることを示すものとする。なお、この図に示す実装情報３３０は、図１に示したコンポーネント１４１−１〜１４１−１の実装状態を反映した内容となっている。
【００３１】
変更情報３４０は、対応のコンポーネント１４１の実装状況について、前回の起動時かから変更があったか否かを示すフラグである。一具体例として、変更情報３４０は１ビットの情報とされ、「０」により「変更無し」を示し、「１」により［変更有り］を示すものとする。
【００３２】
［ＢＩＯＳにより実現される機能構成例］
図４は、ＢＩＯＳ２００のプログラムにより実現される機能構成例を示している。なお、この図に示される機能部は、図１との対応では、コンポーネント１４１−１としてのＣＰＵ＃１がＢＩＯＳ２００のプログラムを実行することにより実現されるものとなる。
【００３３】
ＢＩＯＳ２００のプログラムにより実現される機能部として、同図には、コンポーネントテーブル取得部２１０、初期化処理部２２０、ハードウェア構成情報作成部２３０およびハードウェア構成情報設定部２４０が示される。
【００３４】
コンポーネントテーブル取得部２１０は、データバス経由でＢＭＣ１３０にアクセスし、ここに記憶されるコンポーネントテーブル３００のデータを読み込んで取得する。
【００３５】
初期化処理部２２０は、サーバ１００の起動に際して実装されているコンポーネント部１４０におけるコンポーネント１４１の初期化を実行する部位である。初期化を実行する際、初期化処理部２２０は、コンポーネントテーブル取得部２１０により取得されたコンポーネントテーブル３００を参照する。そして、実装情報３３０が「実装」を示しているコンポーネント（つまり、実装された状態のコンポーネント１４１）のみを対象に初期化処理を実行する。
【００３６】
ハードウェア構成情報作成部２３０は、ハードウェア構成情報１２１の作成、更新を実行する部位である。まず、ハードウェア構成情報作成部２３０は、ハードウェア構成情報１２１を作成することができる。このために、ハードウェア構成情報作成部２３０は、コンポーネント部１４０において実装されているコンポーネント１４１にアクセスしてハードウェア情報を取得する。一例として、コンポーネント１４１がＣＰＵであれば、ハードウェア情報は、種類（名称、識別子など）、動作周波数、動作電圧などとなる。また、ハードディスクなどであれば、種類、容量、動作モードなどとなる。また、コンポーネント１４１の種類によっては、ＩＲＱ（Interrupt ReQuest）やＩ／Ｏポートアドレスなどが含まれる。そして、ハードウェア構成情報作成部２３０は、上記のように取得したハードウェア情報を利用して、現在実装されているハードウェアの構成を示すハードウェア構成情報１２１を作成する。このように作成されたハードウェア構成情報１２１は、不揮発性メモリ１２０に記憶される。
【００３７】
また、ハードウェア構成情報作成部２３０は、不揮発性メモリ１２０に記憶されているハードウェア構成情報１２１について、後述するように現在のコンポーネント１４１の実装状態に応じた内容に更新することも可能とされている。
【００３８】
ハードウェア構成情報設定部２４０は、サーバ１００の起動に際して、ハードウェア構成情報１２１を例えばＯＳなどの上位層に対して設定する。このために、例えばハードウェア構成情報設定部２４０は、主記憶装置（ＲＡＭ）において設定された所定のアドレス空間にハードウェア構成情報１２１を記憶させる。これにより、ＯＳおよびＯＳ上で動作するアプリケーションがコンポーネント１４１を利用することが可能になる。
【００３９】
［ＢＭＣによるコンポーネントテーブルの作成処理例］
図５のフローチャートは、ＢＭＣ１３０において実行されるコンポーネントテーブル３００の作成のための処理手順例を示している。この図に示す処理は、図２に示したＢＭＣ１３０における機能部が適宜実行するものとしてみることができる。また、この処理は、ＢＭＣ１３０が再起動などにより起動された際に実行される。
【００４０】
まず、コンポーネント検出部１３１は、コンポーネントテーブル３００から処理対象として選択した１つのスロット３１０が示すスロットに対応するセンサ１５０から出力されるセンサ信号を入力し（ステップＳ１０１）、そのスロットにおいてコンポーネント１４１が実装されているか否かの実装状態検出を行う（ステップＳ１０２）。
【００４１】
次に、コンポーネント検出部１３１は、上記ステップＳ１０２により検出された実装状態が「実装」と「非実装」のいずれであるかについて判定する（ステップＳ１０３）。ここで、「非実装」であると判定された場合（ステップＳ１０３−「非実装」）、以下のステップＳ１０４〜Ｓ１０９の処理をスキップして、ステップＳ１１０に進む。
【００４２】
これに対して「実装」であると判定した場合（ステップＳ１０３−「実装」）、コンポーネント取得部１３２は、この「実装」であると判定されたコンポーネント１４１にバス１７０経由でアクセスして、そのコンポーネント１４１に記憶されているコンポーネント識別子１４２を取得する（ステップＳ１０４）。
【００４３】
次に、テーブル作成部１３３は、上記ステップＳ１０４によりコンポーネント１４１から取得したコンポーネント識別子１４２と、コンポーネントテーブル３００において選択されたスロット３１０に対応付けられているコンポーネント識別子３２０を比較する（ステップＳ１０５）。そして、その比較結果として、コンポーネント１４１から取得したコンポーネント識別子１４２と一致するか否かについて判定する（ステップＳ１０６）。
【００４４】
ここで、コンポーネント識別子３２０が一致しないと判定した場合には（ステップＳ１０６−ＮＯ）、今回のＢＭＣ１３０が起動する前の段階において、処理対象のスロットに新たなコンポーネント１４１が実装されていることになる。そこで、テーブル作成部１３３は、ステップＳ１０４により取得したコンポーネント識別子１４２を、コンポーネントテーブル３００に対してコンポーネント識別子３２０として新規に格納する（ステップＳ１０７）。
【００４５】
さらに、テーブル作成部１３３は、選択されているスロット３１０に対応付けられる実装情報３３０に「実装」を示す値を格納する（ステップＳ１０８）。また、テーブル作成部１３３は、同じく選択されているスロット３１０に対応付けられる変更情報３４０に「変更有り」を示す値を格納する（ステップＳ１０９）。そして、ステップＳ１１０に進む。
【００４６】
また、コンポーネント識別子３２０が一致すると判定した場合（ステップＳ１０６−ＹＥＳ）、今回「実装」が検出されたコンポーネント１４１は、コンポーネントテーブル３００に登録されていることになる。このとき、コンポーネント識別子３２０に対応付けられる実装情報３３０には「実装」を示す値が格納されている。また、変更情報３４０には「変更無し」を示す値が格納されている。変更情報３４０が「変更無し」とされているのは、コンポーネントテーブル３００におけるすべての変更情報３４０は、サーバ１００の起動時においてＢＩＯＳ２００により読み込まれた後に「変更無し」を示す値に変更するようになっていることによる。したがって、この場合には、このコンポーネント１４１についてのコンポーネントテーブル３００の情報について書き換えを行う必要がない。そこで、この場合には、ステップＳ１０７〜Ｓ１０９をスキップする。
【００４７】
これまでの処理を実行した後、コンポーネント検出部１３１は、すべてのスロットについての処理が終了したか否かについて判定する（ステップＳ１１０）。ここで、すべてのスロットについての処理が終了していないと判定した場合には（ステップＳ１１０−ＮＯ）、ステップＳ１０１に戻ることで、次の処理対象のスロット３１０に対応したテーブル作成処理が実行される。
【００４８】
そして、上記の処理を繰り返すことにより、或る段階で、すべてのスロットに対応する情報の作成処理を終了したことが判定されると（ステップＳ１１０−ＹＥＳ）、これまでのコンポーネントテーブル３００の作成処理を終了する。この段階では、ＢＭＣ１３０の起動時におけるコンポーネント１４１の実装状態が反映された内容のコンポーネントテーブル３００が作成されていることになる。
【００４９】
［ＢＭＣによるコンポーネントテーブルの更新処理例］
次に、図６のフローチャートを参照してＢＭＣ１３０によるコンポーネントテーブルの更新処理例について説明する。この処理は、サーバ１００の電源のオン／オフに係わらず、ＢＭＣ１３０に電源が供給されて動作している状態において定常的に実行される。
【００５０】
まず、コンポーネント検出部１３１は、コンポーネント１４１のスロットごとのセンサ１５０からセンサ信号Ｓ１を入力して監視している（ステップＳ２０１）。そして、コンポーネント検出部１３１は、監視しているセンサ信号に基づいて、コンポーネントの取り外しが行われるのを待機する（ステップＳ２０２−ＮＯ）。また、コンポーネント１４１が新たに装着されるのを待機する（ステップＳ２０５−ＮＯ）。
【００５１】
コンポーネント１４１の取り外しが行われたことを検出すると（ステップＳ２０２−ＹＥＳ）、テーブル作成部１３３は、コンポーネントテーブル３００において、今回取り外しが行われたスロット３１０に対応付けられた実装情報３３０に「非実装」を示す値を格納する（ステップＳ２０３）。さらに、同じスロット３１０に対応付けられた変更情報３４０には「変更有り」を示す値を格納する（ステップＳ２０４）。このように、取り外しが行われたコンポーネント１４１に応じてコンポーネントテーブル３００の更新が行われる。
【００５２】
また、コンポーネント１４１が新たに実装されたことを検出した場合（ステップＳ２０５−ＹＥＳ）、コンポーネント識別子取得部１３２は、この装着が検出されたコンポーネント１４１が記憶するコンポーネント識別子１４２を取得する（ステップＳ２０６）。そして、テーブル作成部１３３は、この取得したコンポーネント識別子１４２を、コンポーネント１４１が新規実装されたスロット３１０に対応するコンポーネント識別子３２０としてコンポーネントテーブル３００に新たに格納する（ステップＳ２０７）。
【００５３】
次に、テーブル作成部１３３は、同じ新規実装されたスロット３１０に対応する実装情報３３０に「実装」を示す値を格納する（ステップＳ２０８）。さらに、同じ新規実装されたスロット３１０に対応する変更情報３４０に「変更有り」を示す値を格納する（ステップＳ２０９）。このように、新たに装着されたコンポーネント１４１に応じてコンポーネントテーブル３００の更新が行われる。
【００５４】
［ＢＩＯＳによる起動制御のための処理手順例］
図７は、ＢＩＯＳ２００により実現されるサーバ１００の起動制御のための処理手順例を示している。なお、この図に示す処理は、図４のＢＩＯＳ２００における機能部が適宜実行するものとしてみることができる。
【００５５】
まず、コンポーネントテーブル取得部２１０は、バス１７０経由でＢＭＣ１３０にアクセスしてコンポーネントテーブル３００を読み込んで取得する（ステップＳ３０１）。なお、図示による説明は省略するが、このようにコンポーネントテーブル３００がＢＩＯＳ２００により読み込まれたことに応じて、ＢＭＣ１３０は、不揮発性記憶部１３４に記憶されるコンポーネントテーブル３００の変更情報３４０のすべてについて「変更無し」を示す値に書き換える。
【００５６】
次に、初期化処理部２２０は、取得されたコンポーネントテーブル３００において、実装情報３３０が「実装」に対応付けられているコンポーネント識別子３２０を認識する（ステップＳ３０２）。つまり、現在においてマザーボードＭＢに実装されているコンポーネント１４１を認識する。そして、初期化処理部２２０は、これらの認識したコンポーネント１４１を順次初期化する（ステップＳ３０３）。
【００５７】
上記の初期化処理が終了すると、ハードウェア構成情報作成部２３０は、「変更有り」を示す値を格納する変更情報３４０が有るか否かについて判定する（ステップＳ３０４）。ここで、「変更有り」の変更情報３４０が有ると判定した場合（ステップＳ３０４−ＹＥＳ）、前回のサーバ１００の終了から今回の起動までの間に、コンポーネント１４１の新たな実装と取り外しの少なくとも一方が１回以上行われていることになる。つまり、コンポーネント部１４０におけるコンポーネント１４１の構成（ハードウェア構成）が前回のサーバ１００の終了時とは異なっていることになる。
【００５８】
そこで、ハードウェア構成情報作成部２３０は、ハードウェア構成情報１２１を作成、または更新する処理を実行する（ステップＳ３０５）。なお、このステップＳ３０５としてのハードウェア構成情報作成（更新）処理については後述する。そして、作成したハードウェア構成情報１２１を不揮発性メモリ１２０に保存する（ステップＳ３０６）。この際、不揮発性メモリ１２０においてハードウェア構成情報１２１が記憶済みであれば、この記憶済みのハードウェア構成情報１２１に、今回作成したハードウェア構成情報１２１の上書きを行う。
【００５９】
一方、「変更有り」の変更情報３４０が無いと判定した場合には（ステップＳ３０４−ＮＯ）、コンポーネント部１４０におけるコンポーネント１４１の構成に変更はなく、前回のサーバ１００の終了時と同じであることになる。この場合、不揮発性メモリ１２０に記憶されるハードウェア構成情報１２１の内容も、前回のサーバ１００の終了時から更新されていない。そこで、ハードウェア構成情報設定部２４０は、不揮発性メモリ１２０に記憶されているハードウェア構成情報１２１を読み込んで取得する（ステップＳ３０７）。
【００６０】
そして、ハードウェア構成情報設定部２４０は、先のステップＳ３０５により作成したハードウェア構成情報１２１、または、上記ステップＳ３０７により読み込んで取得したハードウェア構成情報１２１を上位層に対して設定する（ステップＳ３０８）。
【００６１】
このように、ＢＩＯＳ２００は、起動処理に際して、前回のサーバ１００の終了時からコンポーネント１４１の構成に変更がない場合には、不揮発性メモリ１２０から読み込んで取得し、これを上位層に提供する。つまり、コンポーネント１４１の構成に変更がない場合には、ハードウェア構成情報１２１の作成を行わないようにしている。このようにハードウェア構成情報１２１を作成する手順が省略されることにより、それだけ起動時間は短縮されることになる。特に、ハードウェア構成情報１２１の作成に際しては、コンポーネント１４１ごとのハードウェア情報を取得するために、実装されたコンポーネント１４１に順次アクセスする必要があり、相当の時間を要する。このようなハードウェア取得のための処理が省略されることで起動時間を大幅に短縮することが可能になる。
【００６２】
次に、図８のフローチャートを参照して、上記ステップＳ３０５のハードウェア構成情報作成（更新）処理としての手順例について説明する。ここでは、図８（ａ）に示す処理と、図８（ｂ）に示す処理の２例について説明する。
【００６３】
まず、図８（ａ）に示すハードウェア構成情報の作成処理において、ハードウェア構成情報作成部２３０は、コンポーネントテーブル３００における実装情報３３０が「実装」を示しているコンポーネント１４１の各々からハードウェア情報を取得する（ステップＳ４０１）。つまり、ハードウェア構成情報作成部２３０は、現在実装されているすべてのコンポーネント１４１ごとにアクセスを行って、そのハードウェア情報を取得する。
【００６４】
次に、ハードウェア構成情報作成部２３０は、上記ステップＳ４０１により取得したハードウェア情報を利用してハードウェア構成情報１２１を作成する（ステップＳ４０２）。
【００６５】
上記図８（ａ）の処理は、変更情報３４０が「変更有り」のコンポーネント１４１が少なくとも１つ有れば、変更の無いものも含めてすべてのコンポーネント１４１にアクセスしてハードウェア情報を収集し、ハードウェア構成情報１２１を作成し直すというものになる。このような処理の場合、実装されたすべてのコンポーネント１４１にアクセスしてハードウェア情報を読み込むことになる。このようなアクセスは比較的長い時間を要することから、実装されたコンポーネント１４１の数が増加するほどハードウェア構成情報１２１の作成に要する時間が長くなり、起動時間の短縮に不利となる。
【００６６】
そこで、本実施形態では、例えば最初の起動時などに対応してハードウェア構成情報１２１が不揮発性メモリ１２０に記憶されていない場合や、コンポーネントテーブル３００においてすべての変更情報３４０が「変更有り」となっている場合にのみ、上記図８（ａ）に示すハードウェア構成情報作成処理を実行させることとする。そして、コンポーネントテーブル３００において「変更有り」と「変更無し」の変更情報３４０が混在している場合には、以下の図８（ｂ）に示す処理を実行する。
【００６７】
図８（ｂ）において、まず、ハードウェア構成情報作成部２３０は、不揮発性メモリ１２０に記憶されているハードウェア構成情報１２１の読み込みを行う（ステップＳ５０１）。次に、ハードウェア構成情報作成部２３０は、変更情報３４０が「変更有り」を示し、かつ、実装情報３３０が「非実装」を示しているコンポーネント識別子１４２をコンポーネントテーブル３００から検索する。そして、この検索したコンポーネント識別子１４２が示すコンポーネント１４１の情報を、読み込みを行ったハードウェア構成情報１２１から削除する（ステップＳ５０２）。つまり、サーバ１００の最後の終了時から今回の起動までにおいて取り外しが行われたコンポーネント１４１についての情報をコンポーネントテーブル３００から削除する。
【００６８】
次に、ハードウェア構成情報作成部２３０は、変更情報３４０が「変更有り」を示し、かつ、実装情報３３０が「実装」を示しているコンポーネント識別子１４２をコンポーネントテーブル３００から検索する。このように検索されたコンポーネント識別子１４２が示すコンポーネント１４１は、最後の終了時から今回の起動までの間に新たに実装されたものである。そこで、ハードウェア構成情報作成部２３０は、検索したコンポーネント識別子１４２が示すコンポーネント１４１にアクセスして、そのハードウェア情報を取得する（ステップＳ５０３）。そして、この取得したハードウェア情報に対応する内容を、読み込みを行ったハードウェア構成情報１２１に追加する（ステップＳ５０４）。
【００６９】
このように、図８（ｂ）に示す処理では、前回起動時のコンポーネント１４１の実装状態が反映されたハードウェア構成情報１２１に対して、コンポーネント１４１の変更が反映されるように更新（内容の変更）を行う。つまり、ハードウェア構成情報１２１について、取り外しが行われたコンポーネント１４１に関する情報は削除し、新たに実装されたコンポーネント１４１に関する情報を追加するというものである。つまり、図８（ｂ）に示す処理は、ハードウェア構成情報１２１として、ハードウェア構成の変更に応じた差分の情報内容を生成している。
【００７０】
上記図８（ｂ）の処理によれば、ハードウェア情報の取得のためにアクセスするコンポーネント１４１は、サーバ１００の最後の終了時から今回の起動までの間に新たに実装されたもののみとなる。これにより、図８（ａ）の場合と比較して、ハードウェア構成情報１２１に要する時間を短縮することが可能になる。
【００７１】
＜第２の実施形態＞
［サーバの構成例］
図９は、第２の実施形態としてのサーバ１００の構成例を示している。なお、この図において、図１と同一部分は同一符号を付して説明を省略する。この図に示すサーバ１００においては、マザーボードＭＢにおいて、コンポーネント１４１ごとに対応するバス１７０に対してスイッチ１６０を挿入している。図においては、コンポーネント１４１−１〜１４１−４ごとに対応するスイッチ１６０−１〜１６０−４が示される。スイッチ１６０は、ＢＭＣ１３０によりそのオン／オフが制御される。つまり、スイッチ１６０は、ＢＭＣ１３０から出力されるスイッチ制御信号Ｓ２によってオン／オフの切り替えが行われる。
【００７２】
このスイッチ１６０がオンの場合、対応のコンポーネント１４１はバス１７０を経由して他のハードウェアと通信を行うことができる。スイッチ１６０がオフの場合、対応のコンポーネント１４１は、サーバ１００におけるシステムから切り離され、その機能や動作は無効になる。このスイッチ１６０は、例えばメンテナンスや障害の発生に対応してサーバ１００としてのシステムを縮退させる場合に利用される。
【００７３】
［ＢＭＣの構成例］
図１０は、第２の実施形態におけるＢＭＣ１３０の構成例を示している。この図において、図２と同一部分には同一符号を付して説明を省略する。この図に示すＢＭＣ１３０は、図２に示す構成に対してスイッチ制御部１３６をさらに備えて構成されている。
【００７４】
スイッチ制御部１３６は、スイッチ１６０のオン／オフを制御する。また、スイッチ制御部１３６は、現在におけるスイッチ１６０ごとのオン／オフ状態を認識している。このスイッチ１６０ごとのオン／オフ状態の認識結果は、次に説明するようにコンポーネント検出部１３１が利用する。
【００７５】
［ＢＭＣによるコンポーネントテーブルの作成処理例］
図１１のフローチャートは、上記図１０に示すＢＭＣ１３０において実行されるコンポーネントテーブル３００作成のための処理手順例を示している。
【００７６】
コンポーネント検出部１３１は、１つのスロットに対応するセンサ１５０のセンサ信号を入力する。また、同じスロットに対応するスイッチ１６０のオン／オフ状態の認識情報をスイッチ制御部１３６から入力する（ステップＳ６０１）。
【００７７】
次に、コンポーネント検出部１３１は、上記のように入力したセンサ信号とスイッチ１６０の認識情報に基づいて、対応のスロットにおけるコンポーネント１４１の実装状態について検出する（ステップＳ６０２）。具体的に、スイッチ１６０の認識情報が「オン」を示し、かつ、センサ信号が実装されている状態を示していれば、「実装」であると検出する。また、スイッチ１６０の認識情報が「オン」を示し、かつ、センサ信号が実装されていない状態を示していれば、「非実装」であると検出する。また、スイッチ１６０の認識情報が「オフ」を示している場合、そのスロットに装着されたコンポーネント１４１は無効化されており、実装されていない状態であるとみなすことができる。そこで、スイッチ１６０の認識情報が「オフ」を示している場合は、センサ信号の状態に係わらず、「非実装」であると判定する。なお、以降のステップＳ６０３〜Ｓ６１０の処理については、図５のステップＳ１０３〜Ｓ１１０と同様となる。
【００７８】
［ＢＭＣによるコンポーネントテーブルの作成処理例］
図１２のフローチャートは、ＢＭＣ１３０によるコンポーネントテーブルの更新処理例を示している。まず、コンポーネント検出部１３１は、コンポーネント１４１のスロットごとのセンサ１５０から順次センサ信号Ｓ１を入力して監視している。また、これとともに、スイッチ制御部１３６におけるスイッチ１６０ごとのオン／オフ状態の認識結果を監視している（ステップＳ７０１）。
【００７９】
そして、コンポーネント検出部１３１は、監視しているセンサ信号およびスイッチ１６０ごとのオン／オフ状態の認識結果に基づいて、コンポーネント１４１の取り外し、または、無効化の発生（スイッチ１６０のオフへの切り替え）を待機する（ステップＳ７０２−ＮＯ）。また、コンポーネント１４１の新たな装着、または、コンポーネント１４１の有効化の発生（スイッチ１６０のオンへの切り替え）を待機する（ステップＳ７０５−ＮＯ）。
【００８０】
なお、ステップＳ７０３、Ｓ７０４およびＳ７０６〜Ｓ７０９の各処理は、図６のステップＳ２０３、Ｓ２０４およびＳ２０６〜Ｓ２０９と同様となる。また、ＢＩＯＳ２００による起動処理も、図７および図８と同様となる。
【００８１】
このように、第２の実施形態においては、スロットにおけるコンポーネント１４１の実装状態とともに、スイッチ１６０のオン／オフ制御に応じたコンポーネント１４１の有効／無効の状態に応じても、コンポーネントテーブル３００の作成および更新が行われる。これに伴い、ＢＩＯＳ２００による起動制御に際しては、スロットにおけるコンポーネント１４１の実装状態だけではなく、コンポーネント１４１の有効／無効の状態も適切に反映されたハードウェア構成情報１２１の作成または更新を行うことが可能になる。
【００８２】
なお、上記各実施形態では、情報処理装置としてサーバ１００を例に挙げているが、これに限定されるものではなく、例えばパーソナルコンピュータやストレージ装置、さらには、ＡＶ（Audio Visual）機器などをはじめとする各種電子機器などにも適用できる。
【００８３】
また、上述のサーバ１００は、内部にコンピュータシステムを有している。そして、上述したコンポーネントテーブル３００の作成／更新やＢＩＯＳ２００による起動制御の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００８４】
また、各図２、図４および図１０などに示した機能部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりコンポーネントテーブル３００の作成／更新やＢＩＯＳ２００による起動制御を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００８５】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００８６】
１００  サーバ
１１０  ＲＯＭ
１２０  不揮発性メモリ
１２１  ハードウェア構成情報
１３１  コンポーネント検出部
１３２  コンポーネント識別子取得部
１３２  コンポーネント取得部
１３３  テーブル作成部
１３４  不揮発性記憶部
１３５  ＢＩＯＳ対応通信部
１３６  スイッチ制御部
１４０  コンポーネント部
１４１（１４１−１〜１４１−４）  コンポーネント
１４２  コンポーネント識別子
１５０（１５０−１〜１５０−４）  センサ
１６０（１６０−１〜１６０−４）  スイッチ
２００  ＢＩＯＳ
２１０  コンポーネントテーブル取得部
２２０  初期化処理部
２３０  ハードウェア構成情報作成部
２４０  ハードウェア構成情報設定部
３００  コンポーネントテーブル
３１０  スロット
３２０  コンポーネント識別子
３３０  実装情報
３４０  変更情報
【図１】
0005821393.tif 000002
【図２】
0005821393.tif 000003
【図３】
0005821393.tif 000004
【図４】
0005821393.tif 000005
【図５】
0005821393.tif 000006
【図６】
0005821393.tif 000007
【図７】
0005821393.tif 000008
【図８】
0005821393.tif 000009
【図９】
0005821393.tif 000010
【図１０】
0005821393.tif 000011
【図１１】
0005821393.tif 000012
【図１２】
0005821393.tif 000013