(57)【要約】【課題】情報処理装置のハードウェア試験を、より好適に、自動的に行うことが可能な情報処理装置を提供する。【解決手段】情報処理装置のハードウェア試験を制御する制御手段と、１または複数のハードウェアデバイスと、オペレーティングシステムをブートするブート処理を前記制御手段に実行させるプログラム、および、前記ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶する記憶手段と、を備え、前記プログラムは、前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する隠蔽処理を前記制御手段に実行させるものであり、前記制御手段は、前記オペレーティングシステムから隠蔽されていないハードウェアデバイスを用いて、ハードウェア試験を行う情報処理装置。【選択図】      図１
2015166957.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のハードウェア試験を制御する制御手段と、
１または複数のハードウェアデバイスと、
オペレーティングシステムをブートするブート処理を前記制御手段に実行させるプログラム、および、前記ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶する記憶手段と、を備え、
前記プログラムは、前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する隠蔽処理を前記制御手段に実行させるものであり、
前記制御手段は、前記オペレーティングシステムから隠蔽されていないハードウェアデバイスを用いて、ハードウェア試験を行う、ことを特徴とする情報処理装置。
【請求項２】
前記ハードウェア構成情報テーブルには、前記ハードウェア構成情報が複数含まれており、
前記プログラムは、更に、前記ハードウェア構成情報テーブルに含まれる複数のハードウェア構成情報のうち１つを選択する選択処理を前記制御手段に実行させ、
前記隠蔽処理は、前記選択されたハードウェア構成情報に従って、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する処理である、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶手段は、前記複数のハードウェア構成情報の何れかを示すポインタを記憶し、
前記制御手段は、前記ポインタの値を変更し、
前記選択処理は、前記ポインタが示す前記ハードウェア構成情報を選択する処理である、ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ハードウェアデバイスには、プロセッサおよびメモリの少なくとも何れかが含まれており、
前記制御手段は、前記オペレーティングシステムが、当該情報処理装置に搭載された前記ハードウェアデバイスを確認する際に参照するハードウェア構成テーブルを含み、
前記隠蔽処理は、前記ハードウェア構成情報に含まれる、前記ハードウェア試験に前記ハードウェアデバイスを使用しないことを示す情報を、前記ハードウェア構成テーブルに設定することにより、当該ハードウェアデバイスを前記オペレーティングシステムから隠蔽する、ことを特徴とする請求項１から３の何れか１項に記載の情報処理装置。
【請求項５】
前記ハードウェアデバイスには、拡張スロットに搭載された拡張カードが含まれており、
前記制御手段は、
前記拡張カードを無効化するための設定値を格納するレジスタと、
前記レジスタに格納された、前記拡張カードを無効化するための設定値に従って、前記拡張カードを無効とする無効化トランザクションを検出するトランザクション検出手段と、
当該拡張カードが搭載された拡張スロットに、前記拡張カードが搭載されていないことを示す応答トランザクションを出力する応答トランザクション出力手段と、
前記無効化トランザクションを検出したとき、前記応答トランザクションを出力するトランザクション制御手段と、を備え、
前記隠蔽処理は、前記ハードウェア構成情報に含まれる、前記ハードウェア試験に前記ハードウェアデバイスを使用しないことを示す情報を用いて、前記レジスタの設定値を設定することにより、当該ハードウェアデバイスを前記オペレーティングシステムから隠蔽する、ことを特徴とする請求項１から４の何れか１項に記載の情報処理装置。
【請求項６】
前記ハードウェアデバイスには、ハードディスクが含まれており、
前記情報処理装置は、前記ハードディスクに電源を供給するか否かを制御するスイッチと、前記スイッチを制御するための設定値を格納する制御レジスタと、を更に備え、
前記隠蔽処理は、前記ハードウェア構成情報に含まれる、前記ハードウェア試験に前記ハードウェアデバイスを使用しないことを示す情報を、前記制御レジスタの設定値として設定することにより、当該ハードウェアデバイスを前記オペレーティングシステムから隠蔽する、ことを特徴とする請求項１から５の何れか１項に記載の情報処理装置。
【請求項７】
前記プログラムは、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）である、ことを特徴とする請求項１から６の何れか１項に記載の情報処理装置。
【請求項８】
情報処理装置を制御する制御手段と、１または複数のハードウェアデバイスと、オペレーティングシステムをブートするブート処理を前記制御手段に実行させるプログラム、および、ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶する記憶手段と、を備えた情報処理装置のハードウェア試験制御方法であって、
前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽し、
前記オペレーティングシステムから隠蔽されていないハードウェアデバイスを用いて、ハードウェア試験を行う、ことを特徴とするハードウェア試験制御方法。
【請求項９】
プロセッサと、１または複数のハードウェアデバイスと、オペレーティングシステムをブートするブート処理を前記プロセッサに実行させるプログラム、および、ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶するメモリと、を備えた情報処理装置に、
前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する処理を、実行させることを特徴とするプログラム。
【請求項１０】
前記プログラムは、ＢＩＯＳである、ことを特徴とする請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ハードウェア試験制御方法およびプログラムに関する。
【背景技術】
【０００２】
サーバ装置に接続される入出力装置の検証を行う技術が、例えば、特許文献１に記載されている。
【０００３】
特許文献１に記載の検証装置は、情報処理装置に接続される入出力装置のハードウェア構成を認識し、予め外部記憶装置に格納された入出力装置の動作テスト基本手順から、上記認識したハードウェア構成に一致する手順を選択して、テスト実行手順とし、当該テスト実行手順に基づいて、テストを実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２３０３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サーバ装置等のハードウェア試験では、例えば、メモリなどのオプションデバイスの構成を、人手によって物理的に組み替えることにより、複数のハードウェア構成パターンを作成して行われていた。
【０００６】
しかしながら、オプションデバイスの小型化が進むにつれ、サーバ装置に搭載可能なオプションデバイスの種類や数が増加している。これに伴い、ハードウェア試験に必要なハードウェアの構成パターンが飛躍的に増加している。これにより、サーバ装置開発におけるハードウェア試験に費やす期間の長期化、試験工数増加によるコストアップが課題になっていた。そのため、サーバ装置のハードウェア試験を自動的に行う方法が求められている。
【０００７】
特許文献１の技術では、情報処理装置の外部に接続される入出力装置を対象としている。しかしながら、これらの入出力装置の構成を自動的に変更することについては、何ら開示されていない。また、情報処理装置内部のハードウェア構成の変更についても何ら開示されていない。
【０００８】
本発明は上記課題に鑑みてなされたものであり、その目的は、情報処理装置のハードウェア試験を、より好適に、自動的に行うことが可能な情報処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様に係る情報処理装置は、情報処理装置のハードウェア試験を制御する制御手段と、１または複数のハードウェアデバイスと、オペレーティングシステムをブートするブート処理を前記制御手段に実行させるプログラム、および、前記ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶する記憶手段と、を備え、前記プログラムは、前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する隠蔽処理を前記制御手段に実行させるものであり、前記制御手段は、前記オペレーティングシステムから隠蔽されていないハードウェアデバイスを用いて、ハードウェア試験を行う。
【００１０】
本発明の一態様に係るハードウェア試験制御方法は、情報処理装置を制御する制御手段と、１または複数のハードウェアデバイスと、オペレーティングシステムをブートするブート処理を前記制御手段に実行させるプログラム、および、ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶する記憶手段と、を備えた情報処理装置のハードウェア試験制御方法であって、前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽し、前記オペレーティングシステムから隠蔽されていないハードウェアデバイスを用いて、ハードウェア試験を行う。
【００１１】
本発明の一態様に係るプログラムは、プロセッサと、１または複数のハードウェアデバイスと、オペレーティングシステムをブートするブート処理を前記プロセッサに実行させるプログラム、および、ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶するメモリと、を備えた情報処理装置に、前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する処理を、実行させる。
【発明の効果】
【００１２】
本発明によれば、情報処理装置のハードウェア試験を、より好適に、自動的に行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施の形態に係る情報処理装置の構成の一例を示す図である。
【図２】本発明の第２の実施の形態に係る情報処理装置の構成の一例を示す図である。
【図３】本発明の第２の実施の形態に係る情報処理装置に含まれるＨＷ構成情報テーブルの一例を示す図である。
【図４】本発明の第２の実施の形態に係る情報処理装置のＩＯコントローラの機能構成の一例を示す機能ブロック図である。
【図５】本発明の第２の実施の形態に係る情報処理装置におけるトランザクション検出部の構成の一例を示すブロック図である。
【図６】本発明の第２の実施の形態に係る情報処理装置における応答トランザクション出力部の構成の一例を示すブロック図である。
【図７】本発明の第２の実施の形態に係る情報処理装置におけるトランザクション制御部の構成の一例を示すブロック図である。
【図８】本発明の第２の実施の形態に係る情報処理装置におけるハードウェア試験の流れの一例を示すフローチャートである。
【図９】本発明の第２の実施の形態に係る情報処理装置におけるハードウェア構成設定処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
＜第１の実施の形態＞
本発明の第１の実施の形態について、図面を参照して詳細に説明する。
【００１５】
図１は、本実施の形態に係る情報処理装置の構成の一例を示す図である。本実施の形態に係る情報処理装置は、情報処理装置のハードウェア試験を行うことができる装置である。図１に示す通り、本実施の形態に係る情報処理装置１００は、不揮発性メモリ（記憶手段）４０と、制御部１１０と、１または複数のハードウェアデバイス１２０と、を備えている。なお、本実施の形態においては、ハードウェアをＨＷとも呼ぶ。
【００１６】
ハードウェアデバイス１２０は、制御部１１０に接続されたオプションデバイスである。ハードウェアデバイス１２０は、例えば、プロセッサ、メモリ、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）カード、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等で実現される。
【００１７】
不揮発性メモリ４０は、制御部１１０に接続された記憶装置である。不揮発性メモリ４０は、図１に示す通り、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラム４１およびＨＷ構成情報テーブル４２を格納している。
【００１８】
ＢＩＯＳプログラム４１は、情報処理装置１００を起動するための起動処理等、一般的な装置の初期化／制御を行うためのプログラムである。つまり、ＢＩＯＳプログラム４１は、情報処理装置１００に電源が投入されたとき、または、情報処理装置１００が再起動したとき、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）をブートするブート処理を制御部１１０に実行させるプログラムである。また、ＢＩＯＳプログラム４１は、後述するハードウェア構成情報に従って、１または複数のハードウェアデバイス１２０のうち、ハードウェア試験に使用しないハードウェアデバイスを、ＯＳから隠蔽する隠蔽処理を制御部１１０に実行させるプログラムである。なお、ＢＩＯＳプログラム４１を、単に、ＢＩＯＳとも呼ぶ。
【００１９】
ＨＷ構成情報テーブル４２は、ハードウェア試験に使用するハードウェア構成を示す情報（ハードウェア構成情報、ハードウェア構成パターンとも呼ぶ）を含むものである。ハードウェア試験に使用するハードウェア構成を示す情報とは、情報処理装置１００に搭載されている１または複数のハードウェアデバイスのうち、ハードウェア試験に使用する１または複数のハードウェアデバイスを示す情報である。例えば、情報処理装置１に搭載されたハードウェアデバイスが、メモリ、プロセッサ、ＨＤＤおよびＰＣＩカードであり、ハードウェア試験に使用するハードウェアデバイスが、プロセッサおよびＨＤＤである場合について説明する。この場合、ハードウェア試験に使用するハードウェア構成は、プロセッサおよびＨＤＤからなる構成である、と言える。よって、ハードウェア構成情報には、情報処理装置１に搭載されたハードウェアデバイスのうち、プロセッサおよびＨＤＤがハードウェア試験で使用されるハードウェアデバイスであり、メモリおよびＰＣＩカードがハードウェア試験で使用されないハードウェアデバイスであることを示す情報が含まれている。
【００２０】
ＨＷ構成情報テーブル４２に含まれるハードウェア構成情報は、ハードウェア試験を行う作業者によって、予め登録されたものである。ハードウェア試験を行う作業者は、複数のハードウェア構成情報を、試験に必要なハードウェア構成を検討して、予め登録する。
【００２１】
制御部１１０は、情報処理装置１００全体を制御する。制御部１１０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を備え、ＲＯＭ等に格納されている各種プログラムを、ＲＡＭを用いてＣＰＵで実行することによって、情報処理装置１００を制御する。制御部１１０は、例えば、プロセッサ、メインメモリ、ＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）コントローラ等によって実現される。
【００２２】
制御部１１０は、不揮発性メモリ４０のＢＩＯＳプログラム４１を制御部１１０上で動作させる。ＢＩＯＳプログラム４１は、上述したとおり、ハードウェア構成情報に従って、ハードウェアデバイスのうち、ハードウェア試験に使用しないハードウェアデバイスをＯＳから隠蔽する隠蔽処理を、制御部１１０に実行させるプログラムである。したがって、情報処理装置１００を起動した際、ＢＩＯＳプログラム４１によって、ハードウェア試験に使用しないハードウェアデバイスがＯＳから隠蔽される。
【００２３】
ここで、ハードウェアデバイスをＯＳから隠蔽するとは、ハードウェアデバイスに対し無効の設定を行うことである。ハードウェアデバイスを無効に設定することで、情報処理装置１００のＯＳが起動した際、情報処理装置１００のＯＳは、無効にしたハードウェアデバイスが見えない状態となる。そのため、以下では、ハードウェアデバイスに対し、有効／無効の設定を行う処理のことを、ハードウェアデバイスの隠蔽処理とも呼ぶ。
【００２４】
情報処理装置１００を起動すると、制御部１１０がＢＩＯＳプログラム４１を動作させる。これにより、ハードウェア構成情報に基づいて、ハードウェア試験に使用するハードウェアデバイスが、ＯＳから有効なデバイスであると認識されるよう、ハードウェア試験に使用しないハードウェアデバイスが無効に設定される。情報処理装置１００のＯＳは、隠蔽されていないハードウェアデバイス、つまり、無効の設定が行われていないハードウェアデバイスを、有効なデバイスと認識する。そして、制御部１１０は、ＯＳによって認識されたハードウェアデバイスを用いて、ハードウェア試験を行う。
【００２５】
（効果）
本実施の形態における情報処理装置１００によれば、情報処理装置１００のハードウェア試験を、より好適に、自動的に行うことができる。
【００２６】
なぜならば、ＢＩＯＳプログラム４１が、ＨＷ構成情報テーブル４２に記憶されたハードウェア構成情報に従って、１または複数のハードウェアデバイスのうち、ハードウェア試験に使用しないハードウェアデバイスを、ＯＳから隠蔽する隠蔽処理を制御部１１０に実行させるからである。そして、制御部１１０が、ＯＳから隠蔽されていないハードウェアデバイスを用いて、ハードウェア試験を行うからである。
【００２７】
これにより、ハードウェアデバイスを物理的に情報処理装置１００に搭載し、上記ハードウェアデバイスをハードウェア試験に使用するか否かを、ＨＷ構成情報テーブル４２に登録するだけで、情報処理装置１００は、ハードウェア試験に使用しないハードウェアデバイスを隠蔽して、自動的にハードウェア試験を行うことができる。したがって、情報処理装置に搭載されたオプションデバイスの構成を、人手によって物理的に組み替える、といった手間を省くことができる。
【００２８】
＜第２の実施の形態＞
次に、上述した第１の実施の形態を基本とする第２の実施の形態について説明する。なお、説明の便宜上、前述した第１の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その説明を省略する。
【００２９】
図２は、本実施の形態に係る情報処理装置１のハードウェア構成の一例、および、メインメモリ、不揮発性メモリに夫々格納されているデータの一例を示す図である。図２に示す通り、情報処理装置１は、プロセッサ１０、プロセッサ１１、メインメモリ２０、メモリ２１〜２３、ＩＯコントローラ３０、不揮発性メモリ４０、ＰＣＩコントローラ５０、ＰＣＩカード５１〜５２、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ））コントローラ６０、ＨＤＤ６１〜６２、電源回路７０およびスイッチ（ＳＷ）７１〜７２を備えている。これらの各部材は、情報処理装置１内のマザーボートに搭載されている。
【００３０】
第１の実施の形態で説明した制御部１１０は、プロセッサ１０、メインメモリ２０およびＩＯコントローラ３０に相当する。つまり、第１の実施の形態における制御部１１０は、一般的な回路素子を用いて実現できる。また、ハードウェアデバイス１２０は、メモリ２１〜２３、ＰＣＩカード５１〜５２、ＨＤＤ６１〜６２に相当する。
【００３１】
プロセッサ１０は、情報処理装置１全体を制御する。情報処理装置１に電源が入力されたとき、または、情報処理装置１が再起動したとき、プロセッサ１０は、不揮発性メモリ４０のＢＩＯＳプログラム４１をプロセッサ１０上で動作させる。
【００３２】
メインメモリ２０は、情報処理装置１の主記憶装置である。メインメモリ２０は、図２に示す通り、ＨＷ構成テーブル２４、システム動作確認試験プログラム２５およびＨＷ試験プログラム２６を格納している。
【００３３】
ＨＷ構成テーブル２４は、情報処理装置１のＯＳが、情報処理装置１に搭載されているプロセッサおよびメモリの構成について確認するときに参照するテーブルである。ＨＷ構成テーブル２４は、例えば、ＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）テーブルが一例として挙げられる。
【００３４】
システム動作確認試験プログラム２５は、情報処理装置１のハードウェア試験を行う際に用いられるプログラムである。具体的には、システム動作確認試験プログラム２５は、情報処理装置１において、予め組み込まれた装置、ＯＳ、ソフトウェア等の試験を行い、それによってＯＳが検出した、情報処理装置１内のハードウェアを稼働させる各種試験を行うためのプログラムである。
【００３５】
ＨＷ試験プログラム２６は、ハードウェア構成を変更しながら、システム動作確認試験プログラム２５を起動するプログラムである。ハードウェア構成を変更するために、ＨＷ試験プログラム２６は、後述するＨＷ構成ポインタ４３の値を変更する処理をプロセッサ１０に実行させる。また、ＨＷ試験プログラム２６は、ＨＷ構成ポインタ４３により示される構成番号が後述する最終ＨＷ構成番号４４と一致するか否かを確認する処理をプロセッサ１０に実行させる。
【００３６】
プロセッサ１１、および、メモリ２１〜２３は、夫々、オプションデバイスの一例である。各メモリとプロセッサとは、メモリバスを介して接続している。なお、以下では、オプションデバイスのことを、ハードウェア構成の要素（ハードウェア構成要素）またはハードウェアデバイスとも呼ぶ。
【００３７】
なお、本実施の形態では、メモリの数を３つとして説明を行うが、本発明はこれに限定されるものではない。本実施の形態において、メモリ２１〜２３を、夫々、メモリ（１）〜メモリ（３）とも呼ぶ。また、本実施の形態では、オプションデバイスとしてのプロセッサは１つであることを例に説明を行うが、本発明はこれに限定されるものではない。本実施の形態において、プロセッサ１０をプロセッサ（０）とも呼び、プロセッサ１１をプロセッサ（１）とも呼ぶ。
【００３８】
ＩＯコントローラ３０は、プロセッサ１０と連携し、プロセッサ１０に接続されているＩＯデバイスとのデータの送受信を制御するためのコントローラである。ここで、ＩＯデバイスとは、不揮発性メモリ４０、ＰＣＩコントローラ５０、ＳＡＳコントローラ６０等のことを指す。具体的には、ＩＯコントローラ３０は、不揮発性メモリ４０にアクセスして、各種データの書込みや読出しを行う。ＩＯコントローラ３０は、図示しないＣＰＵ、ＲＯＭ、ＲＡＭ等を備え、ＲＯＭ等に格納されている各種プログラムを、ＲＡＭを用いてＣＰＵで実行することによって、各種インタフェースの入出力を制御する。ＩＯコントローラ３０の具体的な動作については、後述する。
【００３９】
また、ＩＯコントローラ３０は、ＩＯ制御レジスタ（制御レジスタ）３４、３５を含んでいる。ＩＯ制御レジスタ３４、３５は、ＢＩＯＳプログラム４１によって設定された値を、夫々、スイッチ７１、７２に対し、出力する。なお、本実施の形態では、ＩＯ制御レジスタの数を、ＨＤＤの数と同じ、２つとして説明を行うが、本発明はこれに限定されるものではない。また、ＩＯ制御レジスタ３４、３５は、ＩＯコントローラ３０に含まれる構成であることを例に説明を行うが、本発明はこれに限定されるものではない。ＩＯ制御レジスタ３４、３５は、ＩＯコントローラ３０とは別個の構成であってもよい。なお、本実施の形態において、ＩＯ制御レジスタ３４、３５を、夫々、ＩＯ制御レジスタ（０）、ＩＯ制御レジスタ（１）とも呼ぶ。
【００４０】
不揮発性メモリ４０は、ＩＯコントローラ３０に接続された記憶装置である。不揮発性メモリ４０は、図２に示す通り、ＢＩＯＳプログラム４１、ＨＷ構成情報テーブル４２、ＨＷ構成ポインタ４３および最終ＨＷ構成番号４４を格納している。
【００４１】
ＢＩＯＳプログラム４１は、第１の実施の形態におけるＢＩＯＳプログラム４１と同様に、情報処理装置１を起動するための起動処理等、一般的な装置の初期化／制御を行うためのプログラムである。情報処理装置１に電源が投入されたとき、または、情報処理装置１が再起動したとき、プロセッサ１０は、最初にＢＩＯＳプログラム４１を実行する。また、ＢＩＯＳプログラム４１は、ハードウェア構成要素を隠蔽するための処理を行うためのプログラムである。
【００４２】
ＨＷ構成情報テーブル４２は、第１の実施の形態におけるＨＷ構成情報テーブル４２と同様に、ハードウェア試験に使用するハードウェア構成を示す情報（ハードウェア構成情報）を含むものである。
【００４３】
ここで、図３を参照して、ＨＷ構成情報テーブル４２について、さらに説明する。図３は、ＨＷ構成情報テーブル４２の一例を示す図である。ＨＷ構成情報テーブル４２には、構成情報を一意に表すための構成番号と、当該構成番号に関連付けられた、各オプションデバイスが有効か無効かを示す値と、が含まれている。図３におけるテーブルの行（レコード）は、ハードウェア構成の情報を示すハードウェア構成情報である。
【００４４】
具体的には、図３に示す通り、ＨＷ構成情報テーブル４２には、構成番号毎に、プロセッサ１１（プロセッサ（１））の有効／無効を示す値、メモリ２１〜２３（メモリ（１）〜メモリ（３））の有効／無効を示す値、ＰＣＩカード５１〜５２（ＰＣＩカード（０）〜ＰＣＩカード（１））の有効／無効を示す値、ＨＤＤ６１〜６２（ＨＤＤ（０）〜ＨＤＤ（１））の有効／無効を示す値、が含まれている。図３に示す通り、ＨＷ構成情報テーブル４２には、情報処理装置１を起動するに当たり必要な部材（本実施の形態においては、プロセッサ１０およびメインメモリ２０）のハードウェア構成情報は含まれない。また、ＨＷ構成情報テーブル４２に登録可能なハードウェア構成情報の数は、特に限定されない。図３においては、ハードウェア構成情報の数は、Ｎ（Ｎは０を除く自然数）とする。
【００４５】
図３において、構成番号に関連付けられた値は、「１」を有効であるとし、「０」を無効であるとしている。例えば、構成番号が「０」のハードウェア構成情報には、メモリ（１）、メモリ（２）およびＨＤＤ（０）が有効であり、プロセッサ（１）、メモリ（３）、ＰＣＩカード（０）、ＰＣＩカード（１）およびＨＤＤ（１）が無効であることを示す情報が含まれている。そして、情報処理装置１は、このハードウェア構成情報に従い、各ハードウェア構成要素を有効または無効に設定する。例えば、構成番号が「０」のハードウェア構成に設定する場合、情報処理装置１は、メモリ（１）、メモリ（２）およびＨＤＤ（０）を有効にし、プロセッサ（１）、メモリ（３）、ＰＣＩカード（０）、ＰＣＩカード（１）およびＨＤＤ（１）を無効にする（隠蔽する）。
【００４６】
ＨＷ構成ポインタ４３は、ハードウェア試験を行う際に、使用する（有効な）ハードウェア構成要素を示すハードウェア構成情報の、ＨＷ構成情報テーブル４２内の位置（アドレス）を示すためのポインタである。具体的には、ＨＷ構成ポインタ４３には、ＨＷ構成情報テーブル４２内の位置を示すための情報として、ＨＷ構成情報テーブル４２の構成番号が含まれている。なお、本実施の形態では、ＨＷ構成ポインタ４３は、ＨＷ構成情報テーブル４２の構成番号をポインタとして使用することを例に説明を行うが、本発明はこれに限定されるものではない。ＨＷ構成ポインタ４３の値は、ＨＷ構成情報テーブル４２内の位置を示す情報であればよい。
【００４７】
最終ＨＷ構成番号４４は、ＨＷ構成情報テーブル４２のうち、どのハードウェア構成までが有効かを示す番号である。本実施の形態では、ＨＷ構成情報テーブル４２内の最後の構成番号を、最終ＨＷ構成番号４４として、不揮発性メモリ４０に記憶されていることを例に説明を行うが、本発明はこれに限定されるものではない。ＨＷ構成情報テーブル４２内に利用できないハードウェア構成が含まれている場合、不揮発性メモリ４０は、有効なハードウェア構成のうちの最後の番号を最終ＨＷ構成番号４４として、記憶してもよい。
【００４８】
ＢＩＯＳプログラム４１は、ＨＷ構成ポインタ４３により示される構成番号を用いて、ＨＷ構成情報テーブル４２に含まれる複数のハードウェア構成情報のうち、上記構成番号で示される、１つのハードウェア構成情報を選択する選択処理をプロセッサ１０に実行させる。
【００４９】
そして、ＢＩＯＳプログラム４１は、選択されたハードウェア構成情報に従って、当該ハードウェア構成情報に含まれる各ハードウェア構成要素を隠蔽するための処理を、プロセッサ１０に実行させる。
【００５０】
ＰＣＩコントローラ５０は、ＰＣＩカード５１、５２の入出力を司るコントローラである。
【００５１】
ＰＣＩカード５１、５２は、夫々、図示しないＰＣＩスロットに装着されるオプションデバイスの一例である。ＰＣＩカード５１、５２は、ＰＣＩバスを介して、ＩＯコントローラ３０と接続している。
【００５２】
なお、本実施の形態では、ＰＣＩカードの数を２つとして説明を行うが、本発明はこれに限定されるものではない。また、本実施の形態において、ＰＣＩカード５１、５２を、夫々、ＰＣＩカード（０）およびＰＣＩカード（１）とも呼ぶ。
【００５３】
また、本実施の形態では、拡張カードの一例としてＰＣＩカードを例に説明を行ったが、本発明はこれに限定されるものではない。
【００５４】
ＳＡＳコントローラ６０は、ＨＤＤ６１、６２の入出力を司るコントローラである。ＳＡＳコントローラ６０は、ＩＯコントローラ３０と、ＨＤＤ６１、６２との間でＳＡＳ規格に従って、データを送受信する。
【００５５】
ＨＤＤ６１〜６２は、夫々、オプションデバイスの一例である。
【００５６】
電源回路７０は、情報処理装置１内の各部に電力を供給するための回路である。
【００５７】
スイッチ７１〜７２は、夫々、ＨＤＤ６１〜６２に接続している。スイッチ７１、７２は、夫々、情報処理装置１の電源回路に接続される電源ライン上に配置されている。スイッチ７１、７２は、例えば、ＦＥＴ（Ｆｉｅｌｄ  Ｅｆｆｅｃｔ  Ｔｒａｎｓｉｓｔｏｒ）等によって実現される。なお、図２では、スイッチをＳＷと表記している。
【００５８】
なお、本実施の形態では、ＨＤＤ、スイッチの数を２つとして説明を行うが、本発明はこれに限定されるものではない。また、ＨＤＤ６１、６２を、夫々、ＨＤＤ（０）およびＨＤＤ（１）とも呼ぶ。また、スイッチ７１、７２を、夫々、ＳＷ（０）およびＳＷ（１）とも呼ぶ。
【００５９】
（情報処理装置１の機能）
本実施の形態に係る情報処理装置１は、上述したとおり、不揮発性メモリ４０に、ＨＷ構成情報テーブル４２を格納している。そして、情報処理装置１は、情報処理装置１の起動時に、ＨＷ構成情報テーブル４２から１つの構成を選択して、選択したハードウェア構成となるように、ハードウェア構成要素を個別に隠蔽する。
【００６０】
ハードウェア構成要素の隠蔽方法は、そのデバイスの種類によって異なる。したがって、本実施の形態では、（１）プロセッサ１１およびメモリ２１〜２３、（２）ＰＣＩカード５１、５２、（３）ＨＤＤ６１、６２の夫々に対する、隠蔽方法について夫々説明する。
【００６１】
（１）プロセッサ１１およびメモリ２１〜２３の隠蔽方法
まず、プロセッサ１１およびメモリ２１〜２３の隠蔽方法について説明する。プロセッサ１１およびメモリ２１〜２３の有効／無効の設定は、プロセッサ１０がＢＩＯＳプログラム４１を実行することにより行われる。具体的には、プロセッサ１０が、ＢＩＯＳプログラム４１を実行することによって、ＨＷ構成情報テーブル４２が参照され、ＨＷ構成テーブル２４にプロセッサ１１およびメモリ２１〜２３の夫々に対する有効／無効設定が設定される。
【００６２】
図３に示すＨＷ構成情報テーブル４２を用いて、さらに説明する。プロセッサ１０が、ＢＩＯＳプログラム４１を実行することにより、ＨＷ構成情報テーブル４２が参照される。構成番号が「０」のハードウェア構成情報の場合、当該ハードウェア構成情報には、プロセッサ（１）とメモリ（３）とが無効であり、メモリ（１）とメモリ（２）とが有効であることを示す情報が含まれている。そのため、ＢＩＯＳプログラム４１によって、プロセッサ（１）とメモリ（３）とが無効であり、メモリ（１）とメモリ（２）とが有効であることを示す情報が、ＨＷ構成テーブル２４に設定される。ＨＷ構成テーブル２４への設定方法は、ＨＷ構成情報テーブル４２と同様に、「０」および「１」を用いるものであってもよいし、その他の方法であってもよい。
【００６３】
このように、ＢＩＯＳプログラム４１は、ハードウェア構成情報にハードウェア試験に使用しないと設定されたハードウェア構成要素（例えば、プロセッサ（１））に対し、ハードウェア試験に当該ハードウェア構成要素を使用しないことを示す情報（図３の場合「０」）を、ＨＷ構成テーブル２４に設定する。これにより、ＢＩＯＳプログラム４１は、当該ハードウェア構成要素をＯＳから隠蔽する。
【００６４】
なお、ＢＩＯＳプログラム４１は、ＨＷ構成情報テーブル４２において有効と設定されているハードウェア構成要素が物理的に情報処理装置１に搭載されているかを確認する処理を有する構成であってもよい。ＢＩＯＳプログラム４１は、上記ハードウェア構成要素が物理的に情報処理装置１に搭載されていない場合、ＨＷ構成テーブル２４の当該ハードウェア構成情報に対応する値として、「０」を設定する。
【００６５】
その後、ＢＩＯＳプログラム４１の処理により、各ハードウェア構成要素の有効／無効が設定されたＨＷ構成テーブル２４が参照される。そして、ＢＩＯＳプログラム４１の所定のコードにより、ＨＷ構成テーブル２４の設定情報に従って、プロセッサ（１）およびメモリ（１）〜メモリ（３）のうち、有効と設定されたハードウェア構成要素が、ＯＳから、有効なデバイスであると認識される。
【００６６】
このように、ＨＷ構成テーブル２４に対し、プロセッサ１１、メモリ２１〜２３の有効／無効設定を行うことにより、情報処理装置１は、ＨＷ構成情報テーブル４２に無効と設定されたプロセッサ１１、メモリ２１〜２３を夫々隠蔽することができる。
（２）ＰＣＩカード５１、５２の隠蔽方法
次に、ＰＣＩカード５１、５２の隠蔽方法について、図４〜図７を参照して説明する。図４は、本実施の形態に係る情報処理装置１のＩＯコントローラ３０の機能構成の一例を示す機能ブロック図である。図４に示す通り、ＩＯコントローラ３０は、トランザクション検出部３１、応答トランザクション出力部３２、および、トランザクション制御部３３を備えている。
【００６７】
情報処理装置１のＯＳがＰＣＩカード（ＰＣＩデバイス）の有効／無効を確認する場合、プロセッサ１０上で動作するＯＳは、直接、ＰＣＩデバイスにアクセスする。そして、ＯＳは、ＰＣＩバスを辿って検出された（応答が返された）ＰＣＩデバイスを有効なものと認識する。したがって、情報処理装置１は、ＨＷ構成テーブル２４を用いることなく有効／無効の確認を行うため、プロセッサ１１およびメモリ２１〜２３とは異なる方法で、ＰＣＩカードの隠蔽を行う。以下では、その方法について、説明する。
【００６８】
本実施の形態に係る情報処理装置１は、ＰＣＩカード５１、５２を隠蔽するための手段として、プロセッサ１０と各種ＩＯデバイスの間に位置するＩＯコントローラ３０内に、特定のＰＣＩカードを隠蔽する手段を備える。なお、以下の説明において、「ＩＯ側」とは、ＩＯコントローラ３０に含まれるインタフェースのうち、不揮発性メモリ４０、ＰＣＩコントローラ５０、ＳＡＳコントローラ６０等が接続されたインタフェースの方のことを指す。
【００６９】
図４に示す通り、ＩＯコントローラ３０は、トランザクション検出部３１、応答トランザクション出力部３２、および、トランザクション制御部３３を備えている。トランザクション検出部３１は、ＰＣＩカードを無効とするトランザクションである、特定のＩＯトランザクション（無効化トランザクションとも呼ぶ）を検出する。応答トランザクション出力部３２は、ＰＣＩスロットにＰＣＩカードが接続されていない場合に返される応答トランザクションを出力する。トランザクション制御部３３は、特定のＩＯトランザクションを検出した場合に、応答トランザクション出力部３２による応答トランザクションを返す。ＩＯコントローラ３０の各部の機能については、図面を変えて詳細に説明する。
【００７０】
（トランザクション検出部３１）
まず、図５を参照して、トランザクション検出部３１について説明する。図５は、本実施の形態におけるトランザクション検出部３１の構成の一例を示すブロック図である。
【００７１】
図５に示す通り、トランザクション検出部３１は、比較器３１２、３１７と、論理積回路３１４、３１９と、論理和回路３１５と、ＰＣＩカード（０）無効化レジスタ３１３と、ＰＣＩカード（１）無効化レジスタ３１８と、パターン記憶部３１０とを備えている。
【００７２】
なお、図５では、トランザクション検出部３１に、パターン記憶部３１０、ＰＣＩカード（０）無効化レジスタ３１３およびＰＣＩカード（１）無効化レジスタ３１８が含まれる構成について説明を行うが、本発明はこれに限定されるものではない。パターン記憶部３１０、ＰＣＩカード（０）無効化レジスタ３１３およびＰＣＩカード（１）無効化レジスタ３１８は、トランザクション検出部３１とは別個の構成であってもよい。
【００７３】
パターン記憶部３１０は、ＰＣＩカード（０）トランザクションパターン３１１およびＰＣＩカード（１）トランザクションパターン３１６を格納する記憶手段である。パターン記憶部３１０は、図示しない記憶装置（例えば、ＲＯＭ）で実現される。図５では、ＰＣＩカード（０）トランザクションパターン３１１およびＰＣＩカード（１）トランザクションパターン３１６を同じパターン記憶部３１０に格納することを例に説明を行うが、本発明はこれに限定されるものではない。ＰＣＩカード（０）トランザクションパターン３１１とＰＣＩカード（１）トランザクションパターン３１６とは、異なる記憶装置に記憶されるものであってもよい。
【００７４】
また、パターン記憶部３１０に記憶されているトランザクションパターンの数は、ＰＣＩカードの数と同じであることを例に説明を行うが、本発明はこれに限定されるものではない。
【００７５】
ＰＣＩカード（０）トランザクションパターン３１１は、ＰＣＩカード５１に対するトランザクションのパターンである。また、ＰＣＩカード（１）トランザクションパターン３１６は、ＰＣＩカード５２に対するトランザクションのパターンである。
【００７６】
ＰＣＩカード（０）トランザクションパターン３１１およびＰＣＩカード（１）トランザクションパターン３１６は、ＩＯコントローラ３０に接続するＰＣＩカードに応じて、利用者によって、ハードウェア試験を行う際やハードウェアを搭載した際等に、夫々、パターン記憶部３１０に登録されるものである。
【００７７】
比較器３１２は、プロセッサ１０から入力されたトランザクションと、ＰＣＩカード（０）トランザクションパターン３１１とを比較する。比較器３１２は、比較結果を、論理積回路３１４に出力する。なお、本実施の形態において、比較器３１２は、比較結果として、プロセッサ１０から入力されたトランザクションと、ＰＣＩカード（０）トランザクションパターン３１１とが一致する場合、「１」を出力し、一致しない場合、「０」を出力する。
【００７８】
同様に、比較器３１７は、プロセッサ１０から入力されたトランザクションと、ＰＣＩカード（１）トランザクションパターン３１６とを比較し、比較結果を論理積回路３１９に出力する。
【００７９】
ＰＣＩカード（０）無効化レジスタ３１３は、ＰＣＩカード５１を無効化するための設定値が格納されたレジスタである。ＰＣＩカード（１）無効化レジスタ３１８は、ＰＣＩカード５２を無効化するための設定値が格納されたレジスタである。ＰＣＩカード（０）無効化レジスタ３１３およびＰＣＩカード（１）無効化レジスタ３１８には、各ＰＣＩカードを無効化する場合に「１」が設定され、無効化しない場合（有効化する場合）に「０」が設定される。
【００８０】
なお、上記無効化レジスタ（３１３、３１８）は、ＰＣＩカードと一対一になるように、設けられていることを例に説明を行うが、無効化レジスタの数はこれに限定されるものではない。
【００８１】
ＰＣＩカード（０）無効化レジスタ３１３およびＰＣＩカード（１）無効化レジスタ３１８への設定値の設定は、プロセッサ１０がＢＩＯＳプログラム４１を実行することにより行われる。具体的には、プロセッサ１０が、ＢＩＯＳプログラム４１を実行することによって、ＨＷ構成情報テーブル４２を参照し、ＨＷ構成情報テーブル４２のＰＣＩカード５１に対する値を取得する。そして、ＢＩＯＳプログラム４１によって、ＰＣＩカード５１を無効化するための設定値として、取得したＨＷ構成情報テーブル４２のＰＣＩカード５１に対する値を反転した値が、ＰＣＩカード（０）無効化レジスタ３１３に設定される。同様に、ＰＣＩカード（１）無効化レジスタ３１８に対する設定値の設定も、プロセッサ１０がＢＩＯＳプログラム４１を実行することにより行われる。
【００８２】
図３に示すＨＷ構成情報テーブル４２において、構成番号が「０」のハードウェア構成情報の場合、ＰＣＩカード（０）およびＰＣＩカード（１）は、無効であるため、ＰＣＩカード（０）無効化レジスタ３１３およびＰＣＩカード（１）無効化レジスタ３１８には、無効化するための設定値として「１」が設定される。
【００８３】
なお、ＢＩＯＳプログラム４１は、ＨＷ構成情報テーブル４２において有効と設定されているＰＣＩカードが物理的に情報処理装置１に搭載されているかを確認する処理を有する構成であってもよい。ＢＩＯＳプログラム４１は、ＰＣＩカードが物理的に情報処理装置１に搭載されていない場合、対応する上記無効化レジスタの設定値として「１」を設定する。
【００８４】
論理積回路３１４は、比較器３１２から入力された値（比較結果）と、ＰＣＩカード（０）無効化レジスタ３１３の設定値とを用いて論理積演算を行い、演算結果を出力する論理回路である。
【００８５】
論理積回路３１４は論理積演算を行うため、ＰＣＩカード（０）無効化レジスタ３１３の設定値が「０」の場合、つまり、ＰＣＩカード５１を無効化しない（有効化する）場合、「０」を出力する。論理積回路３１４は、ＰＣＩカード（０）無効化レジスタ３１３の設定値が「１」の場合、つまり、ＰＣＩカード５１を無効化する場合、比較器３１２の比較結果を出力する。
【００８６】
同様に、論理積回路３１９は、比較器３１７から入力された比較結果と、ＰＣＩカード（１）無効化レジスタ３１８の設定値とを用いて論理積演算を行い、演算結果を出力する論理回路である。論理積回路３１９は論理積演算を行うため、ＰＣＩカード（１）無効化レジスタ３１８の設定値が「０」の場合、つまり、ＰＣＩカード５２を無効化しない（有効化する）場合、「０」を出力する。論理積回路３１９は、ＰＣＩカード（１）無効化レジスタ３１８の設定値が「１」の場合、つまり、ＰＣＩカード５１を無効化する場合、比較器３１７の比較結果を出力する。
【００８７】
言い換えれば、論理積回路３１４は、ＰＣＩカード（０）無効化レジスタ３１３の設定値に従い、比較器３１２の結果を有効にする（「１」を出力する）か、無効にする（「０」を出力する）かを制御する。同様に、論理積回路３１９は、ＰＣＩカード（１）無効化レジスタ３１８の設定値に従い、比較器３１７の結果を有効にする（「１」を出力する）か、無効にする（「０」を出力する）かを制御する。
【００８８】
この論理積演算結果が「１」とは、対応するＰＣＩカードを無効化するトランザクション（特定のＩＯトランザクション）が検出されたことを示している。
【００８９】
論理積回路３１４および論理積回路３１９は、上記演算結果を、制御信号として、応答トランザクション出力部３２へ送信する。また、論理積回路３１４および論理積回路３１９は、上記演算結果を論理和回路３１５へ出力する。
【００９０】
論理和回路３１５は、論理積回路３１４および論理積回路３１９から入力された演算結果を用いて論理和演算を行い、演算結果を出力する論理回路である。論理和回路３１５は、上記演算結果を制御信号としてトランザクション制御部３３へ送信する。
【００９１】
具体的には、論理和回路３１５は、論理和演算を行うため、以下の（ａ）および（ｂ）の少なくとも何れかを満たす場合、論理和演算結果として、「１」を出力する。
（ａ）ＰＣＩカード５１の無効化の設定がされており、且つ、プロセッサ１０から入力されたトランザクションと、ＰＣＩカード（０）トランザクションパターン３１１とが一致する場合、
（ｂ）ＰＣＩカード５２の無効化の設定がされており、且つ、プロセッサ１０から入力されたトランザクションと、ＰＣＩカード（１）トランザクションパターン３１６とが一致する場合。
【００９２】
この論理和演算結果が「１」とは、何れかのＰＣＩカードを無効化するトランザクション（特定のＩＯトランザクション）が検出されたことを示している。一方、論理和演算結果が「０」とは、特定のＩＯトランザクションが検出されなかったことを示している。
【００９３】
（応答トランザクション出力部３２）
次に、図６を参照して、応答トランザクション出力部３２について説明する。図６は、本実施の形態における応答トランザクション出力部３２の構成の一例を示すブロック図である。図６に示す通り、応答トランザクション出力部３２は、応答トランザクション記憶部３２０とセレクタ３２３とを備えている。
【００９４】
なお、図６では、応答トランザクション出力部３２に、応答トランザクション記憶部３２０が含まれる構成について説明を行うが、本発明はこれに限定されるものではない。応答トランザクション記憶部３２０は、応答トランザクション出力部３２とは別個の構成であってもよい。
【００９５】
応答トランザクション記憶部３２０は、ＰＣＩカード（０）応答トランザクション３２１およびＰＣＩカード（１）応答トランザクション３２２を格納する記憶手段である。応答トランザクション記憶部３２０は、図示しない記憶装置（例えば、ＲＯＭ）で実現される。図６では、ＰＣＩカード（０）応答トランザクション３２１およびＰＣＩカード（１）応答トランザクション３２２を同じ応答トランザクション記憶部３２０に格納することを例に説明を行うが、本発明はこれに限定されるものではない。ＰＣＩカード（０）応答トランザクション３２１およびＰＣＩカード（１）応答トランザクション３２２は、異なる記憶装置に記憶されるものであってもよい。
【００９６】
ＰＣＩカード（０）応答トランザクション３２１は、ＰＣＩカード（０）が対応するＰＣＩスロットに搭載されていないことを示す応答トランザクションである。同様に、ＰＣＩカード（１）応答トランザクション３２２は、ＰＣＩカード（１）が対応するＰＣＩスロットに搭載されていないことを示す応答トランザクションである。上記応答トランザクションは、応答トランザクション記憶部３２０に予め登録されているものであるとするが、本発明はこれに限定されるものではない。
【００９７】
なお、応答トランザクション記憶部３２０に記憶されているトランザクションの数は、ＰＣＩカードの数と同じであることを例に説明を行うが、本発明はこれに限定されるものではない。
【００９８】
セレクタ３２３は、ＰＣＩカード（０）応答トランザクション、または、ＰＣＩカード（１）応答トランザクションの何れかを、トランザクション検出部３１から出力された制御信号に従って選択する。セレクタ３２３は、選択した応答トランザクションを、トランザクション制御部３３に出力する。
【００９９】
ここで、トランザクション検出部３１から送信された制御信号は、ＰＣＩカード５１および５２の夫々に対するトランザクションの有無（トランザクションがある場合「１」、無い場合「０」）を示している。セレクタ３２３は、論理積回路３１４から無効化するトランザクションがあるという制御信号（本例の場合、「１」）が入力された場合、ＰＣＩカード（０）応答トランザクション３２１を選択し、トランザクション制御部３３に出力する。また、セレクタ３２３は、論理積回路３１９から、論理積回路３１４から無効化するトランザクションがあるという制御信号（本例の場合、「１」）が入力された場合、ＰＣＩカード（１）応答トランザクション３２２を選択し、トランザクション制御部３３に出力する。
【０１００】
応答トランザクション記憶部３２０に格納されている応答トランザクションは、各ＰＣＩカードが、対応するＰＣＩスロットに搭載されていないときに、ＰＣＩコントローラ５０から返される応答トランザクションであることを説明した。なお、各ＰＣＩカードが、対応するＰＣＩスロットに搭載されており、且つ、ＨＷ構成情報テーブル４２に当該ＰＣＩカードに対する設定が有効の設定しかない場合は、応答トランザクション記憶部３２０には、各ＰＣＩカードに対応する、ＰＣＩカードが搭載されていることを示す応答トランザクションが格納されていてもよいし、応答トランザクションが格納されていなくてもよい。
【０１０１】
以上のように、応答トランザクション出力部３２は、無効とするＰＣＩカードに対応するＰＣＩスロットに、ＰＣＩカードが接続されていない場合に返される応答トランザクション（ＩＯトランザクション）を出力する。
【０１０２】
（トランザクション制御部３３）
次に、図７を参照して、トランザクション制御部３３について説明する。図７は、本実施の形態におけるトランザクション制御部３３の構成の一例を示すブロック図である。図７に示す通り、トランザクション制御部３３は、入力バッファ３３１、論理積回路３３２、出力バッファ３３３およびセレクタ３３４を備えている。
【０１０３】
入力バッファ３３１は、プロセッサ１０から入力されたトランザクションを一時的に格納するバッファである。入力バッファ３３１に格納されたトランザクションは、出力バッファ３３３に出力される。また、入力バッファ３３１は、トランザクションが入力されたことを示す信号を論理積回路３３２に供給する。
【０１０４】
論理積回路３３２は、（ａ）入力バッファ３３１から入力される、入力バッファ３３１にトランザクションが入力されたか否かを示す信号と、（ｂ）トランザクション検出部３１から入力される、特定のＩＯトランザクションが検出されたか否かを示す制御信号と、を用いて論理積演算を行い、演算結果を出力する論理回路である。上記（ｂ）の制御信号は、図７に示すように、反転して、論理積回路３３２に入力される。
【０１０５】
ここで、上記（ｂ）の制御信号は、上述したとおり、何れかのＰＣＩカードを無効化するトランザクション（特定のＩＯトランザクション）が検出されたか否かを示す信号であり、検出された場合は「１」、検出されなかった場合は「０」となる信号である。論理積回路３３２には、上記制御信号が反転して入力されるため、特定のＩＯトランザクションがある場合は「０」、無い場合は「１」が、論理積回路３３２に入力される。
【０１０６】
論理積回路３３２は、論理積演算を行うため、特定のＩＯトランザクション（ＰＣＩカードを無効化するトランザクション）がある場合は、「０」を出力する。特定のＩＯトランザクションが無い場合（ＰＣＩカードを有効化する場合）、論理積回路３３２は、入力バッファから入力された値を出力する。なお、論理積回路３３２からの出力を、データ有効信号（データｖａｌｉｄ信号）と呼ぶ。
【０１０７】
出力バッファ３３３は、入力バッファ３３１から入力されたトランザクションを一時的に格納し、各ＩＯデバイス側に出力するバッファである。この、出力バッファ３３３には、データ有効信号が有効であるとき、つまり、データ有効信号が「１」のとき、入力バッファ３３１から入力されたトランザクションが書き込まれる。これにより、プロセッサ１０から入力されたトランザクションがあり、ＰＣＩカードを無効化するトランザクションが無い場合、出力バッファ３３３は、入力バッファ３３１を介して、プロセッサ１０から入力されたトランザクションを各ＩＯに対して出力する。
【０１０８】
セレクタ３３４は、応答トランザクション出力部３２からの出力、または、ＩＯの出力の何れかを、トランザクション検出部３１から出力された制御信号に従って選択する。セレクタ３３４は、選択した出力を、プロセッサ１０に出力する。
【０１０９】
ここで、ＩＯからの出力とは、出力バッファ３３３から出力されたトランザクションに対する応答である。また、応答トランザクション出力部３２からの出力とは、上述したとおり、ＰＣＩスロットにＰＣＩカードが接続されていない場合に返される応答トランザクションである。
【０１１０】
セレクタ３３４は、トランザクション検出部３１から出力された制御信号が「１」の場合、つまり、特定のＩＯトランザクションが検出された場合、応答トランザクション出力部３２からの出力を、プロセッサ１０に送信する。また、セレクタ３３４は、トランザクション検出部３１から出力された制御信号が「０」の場合、つまり、特定のＩＯトランザクションが検出されなかった場合、ＩＯからの応答を、プロセッサ１０に出力する。
【０１１１】
図４〜図７を用いて、具体例を挙げて説明する。まず、ハードウェア構成情報のＰＣＩカード５１に対応する値が「０」の場合、つまり、ＰＣＩカード５１を隠蔽する場合について説明する。
【０１１２】
このとき、ＢＩＯＳプログラム４１は、ＰＣＩカード（０）無効化レジスタ３１３に「１」を設定する。
【０１１３】
上述したとおり、ＯＳは、直接、ＰＣＩカード５１にアクセスするため、プロセッサ１０からＰＣＩカード５１に対するトランザクション（トランザクション（０）と呼ぶ）がトランザクション検出部３１およびトランザクション制御部３３に入力される。比較器３１２は、トランザクション検出部３１に入力されたトランザクション（０）がＰＣＩカード（０）トランザクションパターン３１１と一致すると判定し、「１」を出力する。ＰＣＩカード（０）無効化レジスタ３１３には、「１」が設定されているため、論理積回路３１４は、「１」を出力する。一方、比較器３１７は、トランザクション（０）と、ＰＣＩカード（１）トランザクションパターン３１６とが一致しないため、「０」を出力する。よって、論理積回路３１９も「０」を出力する。したがって、論理和回路３１５は、「１」を出力する。
【０１１４】
応答トランザクション出力部３２のセレクタ３２３は、論理積回路３１４から「１」が出力されているため、この出力（制御信号）に従って、ＰＣＩカード（０）応答トランザクション３２１を選択し、出力する。
【０１１５】
トランザクション制御部３３の入力バッファ３３１には、トランザクション（０）が入力される。入力バッファ３３１にトランザクションが入力されたので、論理積回路３３２には、トランザクションが入力されたことを示す信号「１」が入力される。また、論理積回路３３２には、トランザクション検出部３１の論理和回路３１５から出力された制御信号「１」を反転した値「０」が入力される。よって、論理積回路３３２は、データ有効信号として「０」を出力する。データ有効信号が「０」のため、出力バッファ３３３には、トランザクション（０）が格納されない。また、セレクタ３３４は、トランザクション検出部３１からの制御信号が「１」であるため、応答トランザクション出力部３２の出力である、ＰＣＩカード（０）が対応するＰＣＩスロットに搭載されていないことを示す応答トランザクション（ＰＣＩカード（０）応答トランザクション３２１）を、プロセッサ１０に出力する。
【０１１６】
次に、ハードウェア構成情報のＰＣＩカード５１に対応する値が「１」の場合、つまり、ＰＣＩカード５１が有効である場合について説明する。このとき、ＢＩＯＳプログラム４１は、ＰＣＩカード（０）無効化レジスタ３１３に「０」を設定する。
【０１１７】
プロセッサ１０からＰＣＩカード５１に対するトランザクション（０）がトランザクション検出部３１およびトランザクション制御部３３に入力されると、比較器３１２は、「１」を出力する。ＰＣＩカード（０）無効化レジスタ３１３には、「０」が設定されているため、論理積回路３１４は、「０」を出力する。比較器３１７は、「０」を出力し、論理積回路３１９も「０」を出力する。したがって、論理和回路３１５は、「０」を出力する。
【０１１８】
トランザクション制御部３３の入力バッファ３３１には、トランザクション（０）が入力される。入力バッファ３３１にトランザクションが入力されたので、論理積回路３３２には、トランザクションが入力されたことを示す信号「１」が入力される。また、論理積回路３３２には、トランザクション検出部３１の論理和回路３１５から出力された制御信号「０」を反転した値「１」が入力される。よって、論理積回路３３２は、データ有効信号として「１」を出力する。データ有効信号が「１」のため、出力バッファ３３３には、トランザクション（０）が格納され、当該トランザクション（０）がＩＯ側に出力される。セレクタ３３４は、トランザクション検出部３１からの制御信号が「０」であるため、上記ＩＯ側からの応答トランザクションであって、上記ＩＯ側に出力したトランザクション（０）に対する応答を、プロセッサ１０に出力する。
【０１１９】
これにより、ＩＯコントローラ３０は、無効と設定されたＰＣＩカード５１、５２を隠蔽し、有効と設定されたＰＣＩカード５１、５２からの応答のみをプロセッサ１０に出力することができる。これにより、プロセッサ１０上で動作するＯＳは、応答が返ってきたＰＣＩカードを、有効であると認識することができる。
【０１２０】
このように、ＢＩＯＳプログラム４１は、ハードウェア構成情報に含まれる、ハードウェア試験にＰＣＩカード５１、５２を使用しないことを示す情報（図３の場合、「０」）を用いて、ＰＣＩカード（０）無効化レジスタ３１３およびＰＣＩカード（１）無効化レジスタ３１８の設定値（本実施の形態の場合「１」）を設定する。これにより、ハードウェア構成情報にハードウェア試験に使用されないと設定されたＰＣＩカード５１、５２を、夫々、ＯＳから隠蔽することができる。
【０１２１】
（３）ＨＤＤ６１、６２の隠蔽方法
次に、ＨＤＤ６１、６２の隠蔽方法について説明する。
【０１２２】
情報処理装置１のＯＳがＨＤＤの有効／無効を確認する場合、ＨＤＤの入出力を制御するＳＡＳコントローラ６０上で動作するファームウェアが、ＳＡＳコントローラ６０に接続されたＨＤＤをサーチして検出する。これにより、検出されたＨＤＤが、ＯＳからアクセスできる状態であると認識される。したがって、情報処理装置１は、ＨＷ構成テーブル２４、および、ＩＯコントローラ３０の各手段を用いることなく有効／無効の確認を行うため、プロセッサ１１、メモリ２１〜２３およびＰＣＩカード５１、５２とは異なる方法で、ＨＤＤの隠蔽を行う。以下では、その方法について、説明する。
【０１２３】
本実施の形態に係る情報処理装置１は、図２に示す通り、情報処理装置１の電源回路に接続される電源ライン上にスイッチ７１、７２を配置している。スイッチ７１、７２は、夫々、ＨＤＤ６１、６２に電源を供給するか否かを制御する。スイッチ７１、７２は、夫々、ＩＯコントローラ３０のＩＯ制御レジスタ３４、３５からの出力信号で制御される。
【０１２４】
ＩＯ制御レジスタ３４、３５には、夫々、スイッチ７１、７２を制御するための設定値が設定されている。ＩＯコントローラ３０のＩＯ制御レジスタ３４およびＩＯ制御レジスタ３５への設定値の設定は、プロセッサ１０がＢＩＯＳプログラム４１を実行することにより行われる。具体的には、プロセッサ１０が、ＢＩＯＳプログラム４１を実行することによって、ＨＷ構成情報テーブル４２を参照し、ＨＷ構成情報テーブル４２のＨＤＤ６１に対する値を取得する。そして、ＢＩＯＳプログラム４１によって、スイッチ７１を制御するための設定値として、取得したＨＷ構成情報テーブル４２のＨＤＤ６１に対する値を、ＩＯ制御レジスタ３４に設定する。同様に、ＩＯ制御レジスタ３５に対する設定値の設定も、プロセッサ１０がＢＩＯＳプログラム４１を実行することにより行われる。
【０１２５】
ＩＯ制御レジスタ３４に設定した値は、ＩＯコントローラ３０のピンからスイッチ７１に対して出力される。そして、スイッチ７１は、入力された値に従って、電源回路７０から出力される電力をＨＤＤ６１に供給するか否かを制御する。したがって、ＩＯ制御レジスタ３４に設定される、スイッチ７１を制御するための設定値とは、ＨＤＤ６１を有効／無効に設定するための設定値であると言える。同様に、ＩＯ制御レジスタ３５に設定した値は、ＨＤＤ６２を有効／無効に設定するための設定値であると言える。
【０１２６】
なお、ＢＩＯＳプログラム４１は、ＨＷ構成情報テーブル４２において有効と設定されているＨＤＤが物理的に情報処理装置１に搭載されているかを確認する処理を有する構成であってもよい。ＢＩＯＳプログラム４１は、上記ＨＤＤが物理的に情報処理装置１に搭載されていない場合、対応する上記ＩＯ制御レジスタの設定値として「０」を設定する。
【０１２７】
これにより、ＨＷ構成情報テーブル４２に有効と設定されたＨＤＤに対してのみ、電源が供給される。したがって、情報処理装置１のＯＳがＨＤＤの有効／無効を確認する場合、ＳＡＳコントローラ６０上で動作するファームウェアが、ＳＡＳコントローラ６０に接続された、電源が供給されたＨＤＤをサーチする。したがって、ＯＳは、検出されたＨＤＤを有効であると認識することができる。
【０１２８】
このように、ＢＩＯＳプログラム４１は、ハードウェア構成情報に含まれる、ハードウェア試験にＨＤＤ６１、６２を使用しないことを示す情報（図３の場合、「０」）を、ＩＯ制御レジスタ３４およびＩＯ制御レジスタ３５の設定値として設定する。これにより、ハードウェア構成情報にハードウェア試験に使用されないと設定されたＨＤＤ６１、６２を、夫々、ＯＳから隠蔽することができる。
【０１２９】
（情報処理装置１の動作の説明）
次に、図８を参照して、情報処理装置１によるハードウェア試験の処理の流れについて説明する。図８は、本実施の形態に係る情報処理装置１のハードウェア試験の流れの一例を示すフローチャートである。情報処理装置１を利用するオペレータ等が、ハードウェア試験の開始を、情報処理装置１に対して指示することにより、情報処理装置１は、ハードウェア試験を開始する。
【０１３０】
まず、プロセッサ１０がＨＷ試験プログラム２６を実行することにより、メインメモリ２０に格納されたシステム動作確認試験プログラム２５が起動される。これにより、情報処理装置１は、システム動作確認試験を行う（ステップＳ８１）。システム動作確認試験では、情報処理装置１や情報処理装置１を含むシステムを構築する際に必要とされる試験である。具体的には、情報処理装置１において、予め組み込まれた装置、ＯＳ、ソフトウェア等に対する試験が開始され、それによってＯＳが検出した情報処理装置１内のハードウェアを稼働させる各種試験が行われる。
【０１３１】
システム動作確認試験が終了する（ステップＳ８１が終了する）と、ＨＷ試験プログラム２６が、ＨＷ構成ポインタ４３により示されている構成番号を読み出す（ステップＳ８２）。
【０１３２】
そして、ＨＷ試験プログラム２６は、読み出した構成番号が、最終ＨＷ構成番号４４と一致するか否かを確認する（ステップＳ８３）。一致する場合（ステップＳ８３にてＹＥＳ）、ＨＷ試験プログラム２６は、ＨＷ構成ポインタ４３の値を０にする（ステップＳ８４）。そして、情報処理装置１は、ハードウェア試験を終了する。これにより、ＨＷ構成ポインタ４３により示されている構成番号が「０」となるため、次回起動時において、情報処理装置１は、構成番号「０」のハードウェア構成情報で示される構成で設定されて起動されることになる。
【０１３３】
ＨＷ試験プログラム２６が読み出した構成番号が、最終ＨＷ構成番号４４と一致しない場合（ステップＳ８３にてＮＯ）、ＨＷ試験プログラム２６は、読み出した構成番号をインクリメントする。そして、ＨＷ試験プログラム２６は、インクリメントした構成番号をＨＷ構成ポインタ４３の値として設定する（ステップＳ８５）。
【０１３４】
その後、ＨＷ試験プログラム２６は、情報処理装置１を再起動させる（ステップＳ８６）。
【０１３５】
情報処理装置１が再起動すると、プロセッサ１０がＢＩＯＳプログラム４１をメインメモリ２０上に展開して、プロセッサ１０上で当該ＢＩＯＳプログラム４１を実行する。これにより、ハードウェア構成設定処理が行われる（ステップＳ８７）。なお、ハードウェア構成設定処理については、図面を変えて説明する。
【０１３６】
ハードウェア構成設定処理が完了する（ステップＳ８７が終了する）と、一般的なコンピュータ装置で動作するＢＩＯＳと同様、プロセッサ１０上で実行されているＢＩＯＳプログラム４１によって、ハードウェアの初期化が行われる（ステップＳ８８）。
【０１３７】
その後、情報処理装置１のＯＳが起動する（ステップＳ８９）。本実施の形態では、情報処理装置１のＯＳ起動後に、ＨＷ試験プログラム２６が自動的に再開される設定がされているとする。したがって、情報処理装置１の処理がステップＳ８１に戻る。これにより、情報処理装置１は、前回とは異なるハードウェア構成で、システム動作確認試験（ステップＳ８１）を開始する。
【０１３８】
次に、図９を参照して、ハードウェア構成設定処理（ステップＳ８７）について説明する。図９は、本実施の形態に係る情報処理装置１におけるハードウェア構成設定処理の流れの一例を示すフローチャートである。以下に示すステップＳ９１〜Ｓ９９の処理は、プロセッサ１０がＢＩＯＳプログラム４１を実行することにより、行われる。
【０１３９】
プロセッサ１０がＢＩＯＳプログラム４１を実行することにより、不揮発性メモリ４０のＨＷ構成ポインタ４３により示されている構成番号を読み出す（ステップＳ９１）。そして、ＢＩＯＳプログラム４１が、読み出した構成番号に関連付けられたハードウェア構成情報から、プロセッサ１１（プロセッサ（１））の有効／無効を示す値を取得し、有効か無効かを確認する（ステップＳ９２）。取得した値が、プロセッサ１１が有効であることを示す場合（ステップＳ９２にてＹＥＳ）、ＢＩＯＳプログラム４１は、プロセッサ１１が物理的に情報処理装置１に搭載されているかを確認する（ステップＳ９３）。なお、プロセッサ１１が情報処理装置１に物理的に搭載されているか否かを確認する方法は、一般的な手法を用いるため、本実施の形態においては、説明を省略する。
【０１４０】
プロセッサ１１が物理的に情報処理装置１に搭載されている場合（ステップＳ９３にてＹＥＳ）、ＢＩＯＳプログラム４１は、メインメモリ２０のＨＷ構成テーブル２４に対し、プロセッサ１１を有効にする設定を行う（ステップＳ９４）。
【０１４１】
取得した値が、プロセッサ１１が無効であることを示す場合（ステップＳ９２にてＮＯ）、または、プロセッサ１１が物理的に情報処理装置１に搭載されていない場合（ステップＳ９３にてＮＯ）、ＢＩＯＳプログラム４１は、メインメモリ２０のＨＷ構成テーブル２４に対し、プロセッサ１１を無効にする設定を行う（ステップＳ９５）。
【０１４２】
ステップＳ９４終了後、または、ステップＳ９５終了後、ＢＩＯＳプログラム４１は、メモリ（１）に対してもプロセッサ１１と同様の処理を行う（ステップＳ９６〜ステップＳ９９）。また、ＢＩＯＳプログラム４１は、メモリ（２）、メモリ（３）に対しても、同様の処理を行う。
【０１４３】
更に、ＰＣＩカード５１、５２に対しても、ＢＩＯＳプログラム４１は、ステップＳ９２およびＳ９３と同様の処理を行う。また、ＰＣＩカード５１、５２における、有効／無効の設定（ステップＳ９４およびＳ９５に対応する処理）は、ＨＷ構成テーブル２４にではなく、ＰＣＩカード（０）無効化レジスタ３１３およびＰＣＩカード（１）無効化レジスタ３１８に対して行われる。
【０１４４】
更に、ＨＤＤ６１、６２に対しても、ＢＩＯＳプログラム４１は、ステップＳ９２およびＳ９３と同様の処理を行う。また、ＰＣＩカード５１、５２における、有効／無効の設定（ステップＳ９４およびＳ９５に対応する処理）は、ＨＷ構成テーブル２４にではなく、ＩＯコントローラ３０のＩＯ制御レジスタ３４、３５に対して行われる。
【０１４５】
なお、図９において、プロセッサ１１に対する有効／無効設定を行った後に、メモリ２１に対する有効／無効設定を行うことを例に説明を行ったが、ハードウェア構成要素に対する有効／無効設定は、この順に限定されるものではない。ハードウェア構成要素に対する有効／無効設定は、どのような順番で行われてもよい。
【０１４６】
また、上述したステップＳ９２、Ｓ９６では、対応するハードウェア構成要素の有効／無効を示す値を取得しているが、本発明はこれに限定されるものではない。例えば、ステップＳ９１の後に、読み出した構成番号に関連付けられたハードウェア構成情報に含まれる全てのハードウェア構成要素の夫々に対する有効／無効を示す値を取得する構成であってもよい。そして、ステップＳ９２、Ｓ９６において、上記取得した値を用いて、対応するハードウェア構成要素が有効か無効かを確認してもよい。
【０１４７】
更に詳細に、図８、図９の処理について説明する。図２に示すハードウェア構成要素が全て情報処理装置１に搭載されており、不揮発性メモリ４０の最終ＨＷ構成番号４４が「１」の場合を例に説明を行う。ここで、ＨＷ構成ポインタ４３の値は「０」であるとする。そのため、情報処理装置１は、ＨＷ構成情報テーブル４２における、構成番号「０」のハードウェア構成情報で示される構成で設定されて起動されているとする。
【０１４８】
ＨＷ試験プログラム２６が、システム動作確認試験プログラム２５を起動することによって、ＨＷ構成情報テーブル４２における、構成番号「０」のハードウェア構成情報で示される構成で、システム動作確認試験が行われる。
【０１４９】
その後、ＨＷ試験プログラム２６が、ＨＷ構成ポインタ４３により示されている構成番号である「０」を読み出し（ステップＳ８２）、最終ＨＷ構成番号４４と一致するか否かを確認する（ステップＳ８３）。上述したとおり、最終ＨＷ構成番号４４は、「１」であるため、処理は、ステップＳ８５に進む。
【０１５０】
ＨＷ試験プログラム２６は、構成番号をインクリメントし（ステップＳ８５）、インクリメントした値である「１」をＨＷ構成ポインタ４３の値として設定する（ステップＳ８５）。
【０１５１】
情報処理装置１の再起動（ステップＳ８６）後、ＢＩＯＳプログラム４１は、ＨＷ構成情報テーブル４２における、構成番号「１」のハードウェア構成情報で示される構成で設定される（ステップＳ８７（ステップＳ９１〜Ｓ９９））。
【０１５２】
そして、ハードウェアの初期化が行われ（ステップＳ８８）、ＯＳが起動される（ステップＳ８９）。その後、ステップＳ８１に戻り、ＨＷ構成情報テーブル４２における構成番号「１」のハードウェア構成情報で示される構成で、システム動作確認試験が行われる。
【０１５３】
システム動作確認試験が終了すると、ＨＷ試験プログラム２６が、ＨＷ構成ポインタ４３により示されている構成番号である「１」を読み出し（ステップＳ８２）、最終ＨＷ構成番号４４と一致するか否かを確認する（ステップＳ８３）。上述したとおり、最終ＨＷ構成番号４４は、「１」であるため、処理は、ステップＳ８４に進む。そして、ＨＷ試験プログラム２６は、「０」をＨＷ構成ポインタ４３の値として設定する（ステップＳ８４）。これにより、情報処理装置１のハードウェア試験が終了する。
【０１５４】
以上のように、ＨＷ構成情報テーブル４２に登録されたハードウェア構成のうち、０から最終ＨＷ構成番号４４に設定された値（本例では「１」）までのハードウェア構成で、システム動作確認試験プログラム２５によるシステム動作確認試験を自動的に行うことができる。
【０１５５】
これにより、ＨＷ構成情報テーブル４２の設定内容と、最終ＨＷ構成番号４４の値を変えるだけで、最大Ｎ種類のハードウェア構成によるシステム動作確認試験を行うことができる。
【０１５６】
（効果）
本実施の形態における情報処理装置１によれば、情報処理装置１のハードウェア試験を、より好適に、自動的に行うことができる。
【０１５７】
なぜならば、ＢＩＯＳプログラム４１が、ＨＷ構成情報テーブル４２に記憶されたハードウェア構成情報に従って、１または複数のハードウェア構成要素のうち、ハードウェア試験に使用しないハードウェア構成要素を、ＯＳから隠蔽する隠蔽処理を、プロセッサ１０に実行させるからである。そして、ＨＷ試験プログラム２６が、ＯＳから隠蔽されていないハードウェア構成要素を用いて、ハードウェア試験を行うからである。
【０１５８】
これにより、ハードウェア構成要素を物理的に情報処理装置１に搭載し、上記ハードウェア構成要素をハードウェア試験に使用するか否かを、ＨＷ構成情報テーブル４２に登録するだけで、情報処理装置１は、ハードウェア試験に使用しないハードウェア構成要素を隠蔽して、自動的にハードウェア試験を行うことができる。
【０１５９】
また、情報処理装置１は、ＨＷ構成ポインタ４３を用いて、ＨＷ構成情報テーブル４２から１つのハードウェア構成情報を選択して、選択したハードウェア構成情報に従って、前記ハードウェア試験に使用しないハードウェア構成要素を、ＯＳから隠蔽する。
【０１６０】
これにより、複数のハードウェア構成を自動で切り替えながら複数のハードウェア構成の夫々に対する、ハードウェア試験を実行することができる。そのため、情報処理装置１のハードウェア試験の作業者は、物理的なハードウェア入替えにかかる手間を省くことができる。したがって、ハードウェア試験の工数を大幅に削減できる。例えば、１００通りのハードウェア構成に対するハードウェア試験が必要な場合、ハードウェアの入替えにかかる工数を１／１００にすることができる。
【０１６１】
また、自動化によって、作業者による上記入替え作業を行わなくても、ハードウェア構成を変更してハードウェア試験を行うことができるため、作業者が試験を行わない時間帯（例えば、夜間）も有効活用することができる。したがって、試験期間を大幅に短縮することができる。例えば、作業者の勤務時間が日中の１２時間である場合、人手による上記作業が必要なハードウェア試験は半日しか行えないが、本実施の形態による情報処理装置１によれば、終日ハードウェア試験を行うことができる。
【０１６２】
本発明は、情報処理装置１の利用者が選択可能な複数のオプション機器に対し、これらのオプション機器の搭載が可能なサーバ装置、パーソナルコンピュータ、その他の電子機器類の製造分野に好適に利用することができる。
【０１６３】
なお、上述した各実施の形態は、本発明の好適な実施の形態であり、上記各実施の形態にのみ本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において当業者が上記各実施の形態の修正や代用を行い、種々の変更を施した形態を構築することが可能である。
【０１６４】
例えば、上述した実施の形態における各動作は、ハードウェアまたはソフトウェア、あるいはその両方の複合構成によって実行することも可能である。
【０１６５】
なお、ソフトウェアによる処理を実行する場合には、例えば、上記各処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。また、上記プログラムは、例えば、ハードディスクなどの記録媒体に記録しておくことが可能である。
【０１６６】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１６７】
（付記１）情報処理装置のハードウェア試験を制御する制御手段と、１または複数のハードウェアデバイスと、オペレーティングシステムをブートするブート処理を前記制御手段に実行させるプログラム、および、前記ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶する記憶手段と、を備え、前記プログラムは、前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する隠蔽処理を前記制御手段に実行させるものであり、前記制御手段は、前記オペレーティングシステムから隠蔽されていないハードウェアデバイスを用いて、ハードウェア試験を行う、ことを特徴とする情報処理装置。
【０１６８】
（付記２）前記ハードウェア構成情報テーブルには、前記ハードウェア構成情報が複数含まれており、前記プログラムは、更に、前記ハードウェア構成情報テーブルに含まれる複数のハードウェア構成情報のうち１つを選択する選択処理を前記制御手段に実行させ、前記隠蔽処理は、前記選択されたハードウェア構成情報に従って、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する処理である、ことを特徴とする付記１に記載の情報処理装置。
【０１６９】
（付記３）前記記憶手段は、前記複数のハードウェア構成情報の何れかを示すポインタを記憶し、前記制御手段は、前記ポインタの値を変更し、前記選択処理は、前記ポインタが示す前記ハードウェア構成情報を選択する処理である、ことを特徴とする付記２に記載の情報処理装置。
【０１７０】
（付記４）前記プログラムは、更に、前記ハードウェアデバイスが物理的に前記情報処理装置に搭載されているかを確認する確認処理を前記制御手段に実行させ、前記隠蔽処理は、前記確認処理によって前記情報処理装置に搭載されていないと確認されたハードウェアデバイスを、前記ハードウェア試験に使用しないハードウェアデバイスとして、前記オペレーティングシステムから隠蔽する、ことを特徴とする付記１から３の何れかに記載の情報処理装置。
【０１７１】
（付記５）前記ハードウェアデバイスには、プロセッサおよびメモリの少なくとも何れかが含まれており、前記制御手段は、前記オペレーティングシステムが、当該情報処理装置に搭載された前記ハードウェアデバイスを確認する際に参照するハードウェア構成テーブルを含み、前記隠蔽処理は、前記ハードウェア構成情報に含まれる、前記ハードウェア試験に前記ハードウェアデバイスを使用しないことを示す情報を、前記ハードウェア構成テーブルに設定することにより、当該ハードウェアデバイスを前記オペレーティングシステムから隠蔽する、ことを特徴とする付記１から４の何れかに記載の情報処理装置。
【０１７２】
（付記６）前記ハードウェアデバイスには、拡張スロットに搭載された拡張カードが含まれており、前記制御手段は、前記拡張カードを無効化するための設定値を格納するレジスタと、前記レジスタに格納された、前記拡張カードを無効化するための設定値に従って、前記拡張カードを無効とする無効化トランザクションを検出するトランザクション検出手段と、当該拡張カードが搭載された拡張スロットに、前記拡張カードが搭載されていないことを示す応答トランザクションを出力する応答トランザクション出力手段と、前記無効化トランザクションを検出したとき、前記応答トランザクションを出力するトランザクション制御手段と、を備え、前記隠蔽処理は、前記ハードウェア構成情報に含まれる、前記ハードウェア試験に前記ハードウェアデバイスを使用しないことを示す情報を用いて、前記レジスタの設定値を設定することにより、当該ハードウェアデバイスを前記オペレーティングシステムから隠蔽する、ことを特徴とする付記１から５の何れかに記載の情報処理装置。
【０１７３】
（付記７）前記ハードウェアデバイスには、ハードディスクが含まれており、前記情報処理装置は、前記ハードディスクに電源を供給するか否かを制御するスイッチと、前記スイッチを制御するための設定値を格納する制御レジスタと、を更に備え、前記隠蔽処理は、前記ハードウェア構成情報に含まれる、前記ハードウェア試験に前記ハードウェアデバイスを使用しないことを示す情報を、前記制御レジスタの設定値として設定することにより、当該ハードウェアデバイスを前記オペレーティングシステムから隠蔽する、ことを特徴とする付記１から６の何れかに記載の情報処理装置。
【０１７４】
（付記８）前記プログラムは、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）である、ことを特徴とする付記１から７の何れかに記載の情報処理装置。
【０１７５】
（付記９）情報処理装置を制御する制御手段と、１または複数のハードウェアデバイスと、オペレーティングシステムをブートするブート処理を前記制御手段に実行させるプログラム、および、ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶する記憶手段と、を備えた情報処理装置のハードウェア試験制御方法であって、前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽し、前記オペレーティングシステムから隠蔽されていないハードウェアデバイスを用いて、ハードウェア試験を行う、ことを特徴とするハードウェア試験制御方法。
【０１７６】
（付記１０）前記ハードウェア構成情報テーブルには、前記ハードウェア構成情報が複数含まれており、前記ハードウェア試験制御方法は、前記ハードウェア構成情報テーブルに含まれる複数のハードウェア構成情報のうち１つを選択し、前記選択されたハードウェア構成情報に従って、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する、ことを特徴とする付記９に記載のハードウェア試験制御方法。
【０１７７】
（付記１１）前記記憶手段は、前記複数のハードウェア構成情報の何れかを示すポインタを記憶するものであり、前記ハードウェア試験制御方法は、前記ポインタの値を変更し、前記ポインタが示す前記ハードウェア構成情報を選択する、ことを特徴とする付記１０に記載のハードウェア試験制御方法。
【０１７８】
（付記１２）前記ハードウェアデバイスが物理的に前記情報処理装置に搭載されているかを確認し、前記情報処理装置に搭載されていないと確認されたハードウェアデバイスを、前記ハードウェア試験に使用しないハードウェアデバイスとして、前記オペレーティングシステムから隠蔽する、ことを特徴とする付記９から１１の何れかに記載のハードウェア試験制御方法。
【０１７９】
（付記１３）前記ハードウェアデバイスには、プロセッサおよびメモリの少なくとも何れかが含まれており、前記制御手段は、前記オペレーティングシステムが、当該情報処理装置に搭載された前記ハードウェアデバイスを確認する際に参照するハードウェア構成テーブルを含み、前記ハードウェア試験制御方法は、前記ハードウェア構成情報に含まれる、前記ハードウェア試験に前記ハードウェアデバイスを使用しないことを示す情報を、前記ハードウェア構成テーブルに設定することにより、当該ハードウェアデバイスを前記オペレーティングシステムから隠蔽する、ことを特徴とする付記９から１２の何れかに記載のハードウェア試験制御方法。
【０１８０】
（付記１４）前記ハードウェアデバイスには、拡張スロットに搭載された拡張カードが含まれており、前記制御手段は、前記拡張カードを無効化するための設定値を格納するレジスタを備え、前記ハードウェア試験制御方法は、前記ハードウェア試験に前記ハードウェアデバイスを使用しないことを示す情報を用いて、前記レジスタの設定値を設定し、前記レジスタに格納された、前記拡張カードを無効化するための設定値に従って、前記拡張カードを無効とする無効化トランザクションを検出し、当該拡張カードが搭載された拡張スロットに、前記拡張カードが搭載されていないことを示す応答トランザクションを出力し、前記無効化トランザクションを検出したとき、前記応答トランザクションを出力することにより、前記ハードウェア構成情報に含まれる当該ハードウェアデバイスを前記オペレーティングシステムから隠蔽する、ことを特徴とする付記９から１３の何れかに記載のハードウェア試験制御方法。
【０１８１】
（付記１５）前記ハードウェアデバイスには、ハードディスクが含まれており、前記情報処理装置は、前記ハードディスクに電源を供給するか否かを制御するスイッチと、前記スイッチを制御するための設定値を格納する制御レジスタと、を更に備え、前記ハードウェア試験制御方法は、前記ハードウェア構成情報に含まれる、前記ハードウェア試験に前記ハードウェアデバイスを使用しないことを示す情報を、前記制御レジスタの設定値として設定することにより、当該ハードウェアデバイスを前記オペレーティングシステムから隠蔽する、ことを特徴とする付記９から１４の何れかに記載のハードウェア試験制御方法。
【０１８２】
（付記１６）前記プログラムは、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）である、ことを特徴とする付記９から１５の何れかに記載のハードウェア試験制御方法。
【０１８３】
（付記１７）プロセッサと、１または複数のハードウェアデバイスと、オペレーティングシステムをブートするブート処理を前記プロセッサに実行させるプログラム、および、ハードウェア試験に使用するハードウェア構成を示すハードウェア構成情報を含むハードウェア構成情報テーブルを記憶するメモリと、を備えた情報処理装置に、前記ハードウェア構成情報に従って、前記ハードウェアデバイスのうち、前記ハードウェア試験に使用しないハードウェアデバイスを、前記オペレーティングシステムから隠蔽する処理を、実行させることを特徴とするプログラム。
【０１８４】
（付記１８）前記プログラムは、ＢＩＯＳである、ことを特徴とする付記１７に記載のプログラム。
【０１８５】
（付記１９）付記１７または付記１８に記載のプログラムを記憶する、ことを特徴とするコンピュータ読み取り可能な記録媒体。
【符号の説明】
【０１８６】
１    情報処理装置
１０    プロセッサ
１１    プロセッサ
２０    メインメモリ
２１〜２３    メモリ
２４    ＨＷ構成テーブル
２５    システム動作確認試験プログラム
２６    ＨＷ試験プログラム
３０    ＩＯコントローラ
３１    トランザクション検出部
３１０    パターン記憶部
３１１    ＰＣＩカード（０）トランザクションパターン
３１２    比較器
３１３    ＰＣＩカード（０）無効化レジスタ
３１４    論理積回路
３１５    論理和回路
３１６    ＰＣＩカード（１）トランザクションパターン
３１７    比較器
３１８    ＰＣＩカード（１）無効化レジスタ
３１９    論理積回路
３２    応答トランザクション出力部
３２０    応答トランザクション記憶部
３２１    ＰＣＩカード（０）応答トランザクション
３２２    ＰＣＩカード（１）応答トランザクション
３２３    セレクタ
３３    トランザクション制御部
３３１    入力バッファ
３３２    論理積回路
３３３    出力バッファ
３３４    セレクタ
３４    ＩＯ制御レジスタ
３５    ＩＯ制御レジスタ
４０    不揮発性メモリ
４１    ＢＩＯＳプログラム
４２    ＨＷ構成情報テーブル
４３    ＨＷ構成ポインタ
４４    最終ＨＷ構成番号
５０    ＰＣＩコントローラ
５１〜５２    ＰＣＩカード
６０    ＳＡＳコントローラ
６１〜６２    ＨＤＤ
７０    電源回路
７１〜７２    スイッチ（ＳＷ）
１００  情報処理装置
１１０  制御部
１２０  ハードウェアデバイス
【図１】
2015166957.tif 000003
【図２】
2015166957.tif 000004
【図３】
2015166957.tif 000005
【図４】
2015166957.tif 000006
【図５】
2015166957.tif 000007
【図６】
2015166957.tif 000008
【図７】
2015166957.tif 000009
【図８】
2015166957.tif 000010
【図９】
2015166957.tif 000011