(57)【要約】  ＢＩＯＳ記憶部（１０７）は、ＢＩＯＳを記憶する。ＯＳ記憶部（１０６）は、複数のＯＳを記憶する。ブート制御部（１０３）と、ＯＳ記憶部（１０６）に記憶されているＯＳを順次起動させていく。起動情報取得部（１０２）は、ブート制御部（１０３）により起動されたＯＳの起動時に、該ＯＳとＢＩＯＳとの間で受け渡しが行われる起動情報を取得する。リグレッション解析処理部（１０８）は、起動情報取得部（１０２）が取得した起動情報と起動情報の予め決められた値である期待値とを比較し一致するか否かを判定する。
2012117556.tif 000002
【特許請求の範囲】
【請求項１】
ＢＩＯＳを記憶するＢＩＯＳ記憶部と、
複数のＯＳを記憶するＯＳ記憶部と、
前記ＯＳ記憶部に記憶されているＯＳを順次起動させていくブート制御部と、
前記ブート制御部によるＯＳの起動時に、起動させるＯＳと前記ＢＩＯＳとの間で受け渡しが行われる起動情報を取得する起動情報取得部と、
前記起動情報取得部が取得した前記起動情報と、その起動情報の予め決められた値である期待値とを比較し、双方が一致するか否かを判定するリグレッション解析処理部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記起動情報は、前記ブート制御部により起動されたＯＳが前記ＢＩＯＳを呼出すときに該ＢＩＯＳに通知する呼出情報、及び呼出された前記ＢＩＯＳが処理を行った後に該ＢＩＯＳを呼出したＯＳに制御を戻すときに該ＢＩＯＳに通知する復帰情報を含み、
前記起動情報取得部は、
前記呼出情報を取得する呼出情報取得部と、
前記復帰情報を取得する復帰情報取得部とを備え、
前記リグレッション解析処理部は、
前記呼出情報取得部が取得した呼出情報とその呼出情報の期待値との比較、及び前記復帰情報取得部が取得した復帰情報とその復帰情報の期待値との比較を行い、それぞれ一致するか否かを判定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記複数のＯＳは、それぞれ別個のハードディスクに記憶されており、
前記ブート制御部は、前記ハードディスクの中から起動に用いるハードディスクを順次選択していき、選択したハードディスクに記憶されているＯＳを順次起動していく
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記複数のＯＳは、それぞれ別個のハードディスクに記憶されており、
前記ブート制御部は、最も高い順位を有するハードディスクを起動に用いるハードディスクとして選択するハードディスクの優先順位を記憶しており、該優先順位を変更していくことで起動に用いるハードディスクの選択を行っていくことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項５】
ＯＳ記憶装置に記憶されているＯＳを順次起動させていき、
起動されたＯＳの起動時に、該ＯＳとＢＩＯＳとの間で受け渡しが行われる起動情報を取得し、
前記起動情報と前記起動情報の予め決められた値である期待値とを比較し、双方が一致するか否かを判定する
ことを特徴とする情報処理装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理装置制御方法に関する。
【背景技術】
【０００２】
サーバ装置などのコンピュータのＢＩＯＳ(Basic  Input/Output  System)が開発された場合、ＢＩＯＳの動作確認試験が行われる。このＢＩＯＳの動作確認試験では、コンピュータがサポートするＯＳ（Operation  System）のブートの確認が行われる。ＯＳがブートする際には、ＯＳは、自己が使用できるメモリやその他のハードウェアの状況を調べたり、ＨＤＤ（Hard  Disc  Drive）からそのＯＳのブートに必要なデータを読み出したりする処理を行う。この処理を行うにあたり、ＯＳは、ＢＩＯＳの機能を呼出し、メモリの使用状況やハードウェアの接続状況を調べて、ＨＤＤから必要なデータを読み出すことを行う。【０００３】
このＯＳがブートする際のＢＩＯＳ機能の呼出しにおける処理は、ＯＳの種別毎に異なっている。そのため、複数の種類のＯＳのブートに対してＢＩＯＳの動作確認を行うには、ＯＳの種類毎にＯＳのブートを確認しなくてはいけない。【０００４】
ＢＩＯＳの開発においては、動作確認中に発生した不具合に対応するために、ＢＩＯＳの修正・変更が行われる。そして、ＢＩＯＳを修正・変更した内容が正しく反映されているか否かをさらに確認することが求められる。この不具合修正後の動作確認は、不具合修正を行ったＢＩＯＳを基に動作確認を行うことになる。そして、この不具合修正後の動作確認では、コンピュータがサポートする全てのＯＳのブートに対して、その修正による動作への影響が無いことを確認しなくてはならない。このような、不具合修正後の動作確認を、以下では「リグレッション試験」と呼ぶ。【０００５】
一般的に、リグレッション試験は、ＢＩＯＳにおける一部の機能変更や不具合修正が、変更していないＢＩＯＳの他の機能に影響を及ぼしていないことを確認するものである。ＯＳのブートにおけるＢＩＯＳ機能の呼出しは、ＯＳローダまでの間に行われる。そこで、ＢＩＯＳ機能の呼出しによる挙動の確認は、専門家によって、画面情報を確認したり、ハードウェアデバッガにより一時停止した上でＢＩＯＳ呼出しの追跡を行ったりすることで行われてきた。このように、従来は、リグレッション試験におけるＯＳのブート動作確認は、目視確認にて挙動を確認することで行われていた。【０００６】
また、複数のＯＳに対してリグレッション試験を行う場合には、以下の２つの方法があった。まず１つに、ハードディスクを繋ぎ変えながら試験を行う方法がある。これは、複数のＯＳをそれぞれ異なったＨＤＤにインストールし、ブートさせるＨＤＤを作業者が繋ぎかえることで、異なるＯＳのブートにおけるＢＩＯＳの動作確認を行う方法である。この場合は、ＢＩＯＳの呼出しをハードウェアデバッガで一時停止させながら、目視確認していくことでＢＩＯＳのリグレッション試験が行われる。【０００７】
また、他の方法として、それぞれ異なったＯＳがインストールされたＨＤＤを全て接続し、ＢＩＯＳの設定により作業者がブートするＨＤＤを順次変えていく方法がある。この場合も、ＢＩＯＳの呼出しをハードウェアデバッガで一時停止させながら、目視確認していくことでＢＩＯＳのリグレッション試験が行われる。【０００８】
また、従来技術として、優先順位の高いデバイスから優先順位の低いデバイスのＯＳを起動する技術が提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−１２２４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来のＢＩＯＳのリグレッション試験では、複数のＯＳをブートさせるために、ハードディスクの繋ぎ変えや、ＢＩＯＳの設定変更といったことを作業者が行うため、多くの時間と手間がかかってしまっていた。また、ＯＳのブートにおける挙動の確認も、作業者の目視確認により行われるため、この点でも多くの時間と手間がかかってしまっていた。【００１１】
開示の技術は、上記に鑑みてなされたものであって、リグレッション試験における作業者の手間を軽減する情報処理装置及び情報処理装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示する情報処理装置及び情報処理装置制御方法は、一つの態様において、ＢＩＯＳ記憶部は、ＢＩＯＳを記憶する。ＯＳ記憶部は、複数のＯＳを記憶する。ブート制御部は、前記ＯＳ記憶部に記憶されているＯＳを順次起動させていく。起動情報取得部は、前記ブート制御部によるＯＳの起動時に、起動させるＯＳと前記ＢＩＯＳとの間で受け渡しが行われる起動情報を取得する。リグレッション解析部は、前記起動情報取得部が取得した前記起動情報と、その起動情報の予め決められた値である期待値とを比較し、双方が一致するか否かを判定する。
【発明の効果】
【００１３】
本願の開示する情報処理装置及び情報処理装置制御方法の一つの態様によれば、リグレッション試験における作業者の手間を軽減するという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係る情報処理装置の構成図である。
【図２】図２は、実施例１に係る情報処理装置のブロック図である。
【図３】図３は、ブートデバイス順番テーブルの一例の図である。
【図４】図４は、ＨＤＤ認識順番テーブルの一例の図である。
【図５】図５は、実施例１に係るブート制御情報に記載されている項目の一例及びその内容を示す図である。
【図６】図６は、ＨＤＤ認識優先度テーブルの優先度変更を説明する図である。
【図７】図７は、呼出情報と復帰情報の一例を説明するための図である。
【図８】図８は、比較結果ログのフォーマットの一例を示す図である。
【図９】図９は、比較結果ログの一例を示す図である。
【図１０】図１０は、呼出情報及び復帰情報の取得処理の一例を説明するための図である。
【図１１】図１１は、実施例１に係るサーバ装置の各ハードウェア及びプログラムによる処理の流れを説明するための図である。
【図１２】図１２は、実施例１に係るリグレッション試験における全体的な処理のフローチャートである。
【図１３】図１３は、実施例１における起動対象のＨＤＤを順番に切り替えながらＯＳの起動を行う処理のフローチャートである。
【図１４】図１４は、テストプログラムが行う処理のフローチャートである。
【図１５】図１５は、本実施例に係るサーバ装置の全体的なハードウェア構成の概略図である。
【図１６】図１６は、実施例２に係るに係るサーバ装置の各ハードウェア及びプログラムによる処理の流れを説明するための図である。
【図１７】図１７は、実施例２に係るブート制御情報に記載されている項目の一例及びその内容を示す図である。
【図１８】図１８は、ＵＥＦＩ（Unified  Extensible  Firmware  Interface）に対応したＯＳでのブートデバイス順番テーブルの一例の図である。
【図１９】図１９は、実施例２に係るＨＤＤ認識優先度テーブルの優先度の変更について説明するための図である。
【図２０】図２０は、実施例２における呼出情報及び復帰情報の取得処理の一例を説明するための図である。
【図２１】図２１は、実施例２における起動対象のＨＤＤを順番に切り替えながらＯＳの起動を行う処理のフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する情報処理装置及び情報処理装置制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置及び情報処理装置制御方法が限定されるものではない。
【実施例１】
【００１６】
以下では、本実施例に係る情報処理装置としてサーバ装置を例に説明する。ただし、情報処理装置は、サーバ装置に限られるものではなく、コンピュータであればクライアント装置といった他の装置でも良い。図１は、実施例１に係るサーバ装置の構成図である。ここで、図１を用いてサーバ装置１の構成及び格納されている情報について概略を説明する。【００１７】
サーバ装置１は、ＣＰＵ１０、メインメモリ１１、ＲＯＭ（Read  Only  Memory）１２、不揮発性メモリ１３、ＦＰＤ（Floppy（登録商標）  Disk  Drive）１４、ＨＤＤ１５〜１７を有している。不揮発性メモリ１３は、「ＣＭＯＳ」と呼ばれる場合もある。【００１８】
そして、ＲＯＭ１２の中にはＢＩＯＳ２１が格納されている。また、不揮発性メモリ１３の中には、ブートデバイス順番テーブル３１及びＨＤＤ認識順番テーブル３２が格納されている。また、ＦＰＤ１４の中には、ＦＰＤ−ＭＢＲ（Master  Boot  Record）４１、制御プログラム４２及びブート制御情報４３が格納されている。ＨＤＤ１５の中には、ＨＤＤ−ＭＢＲ５１、ＯＳ５２、テストプログラム５３及び期待値情報５４が格納されている。また、ＨＤＤ１６及びＨＤＤ１７にもＨＤＤ１５と同様に、ＨＤＤ−ＭＢＲ、ＯＳ、テストプログラム及び期待値情報が格納されている。ただし、ＨＤＤ１５、ＨＤＤ１７及びＨＤＤ１６に格納されているＯＳはそれぞれ異なるＯＳである。【００１９】
図２は、実施例１に係るサーバ装置の機能を表すブロック図である。図２を用いて、サーバ装置１の機能構成及び各部の動作について説明する。図２に示すように、本実施例に係るサーバ装置１は、起動情報取得部１０２、ブート制御部１０３、テーブル記憶部１０４、ブート制御情報記憶部１０５、ＯＳ記憶部１０６、ＢＩＯＳ記憶部１０７、リグレッション解析処理部１０８及びログ記憶部１０９を有している。【００２０】
ＯＳ記憶部１０６は、各種ＯＳを記憶しておく記憶部である。ＯＳ記憶部１０６は、例えば図１のＨＤＤ１５〜１７にあたる。本実施例では、ＯＳ記憶部１０６は、３つの異なるＯＳを記憶している。【００２１】
ＢＩＯＳ記憶部１０７は、ＢＩＯＳを記憶している。ＢＩＯＳ記憶部１０７は、例えば図１のＲＯＭ１２にあたる。【００２２】
テーブル記憶部１０４は、ブートデバイス順番テーブル３１及びＨＤＤ認識順番テーブル３２を記憶している。テーブル記憶部１０４は、例えば図１の不揮発性メモリ１３にあたる。【００２３】
ここで、ブートデバイス順番テーブル３１は、ＢＩＯＳ２１によるデバイスの起動の順番を制御するためのデータが記載されたテーブルである。図３は、ブートデバイス順番テーブルの一例の図である。図３に示すように、ブートデバイス順番テーブルは、デバイスを示す列３０２を有しており、紙面に向かって上に向かうに従い起動の順番が高くなることを表している。図３に示すように、ブートデバイス順番テーブル３１は、起動の順番が１番となる列３０２のデバイスをＦＰＤとしておくことで、ＦＰＤ１４から起動するように設定しておく。【００２４】
また、ＨＤＤ認識順番テーブル３２は、ＢＩＯＳ２１によるＨＤＤ１５〜１７の起動の優先順位が記載されたテーブルである。すなわち、ＢＩＯＳ２１がＨＤＤからの起動を行う場合に、ＢＩＯＳ２１は、ＨＤＤ認識順番テーブル３２の優先順位が一番高いＨＤＤを起動する。図４は、ＨＤＤ認識順番テーブルの一例の図である。図４に示すように、ＨＤＤ認識順番テーブル３２は、ＨＤＤデバイスを示す列３０４を有しており、紙面に向かって上に向かうに従いＨＤＤの認識順番が高くなることを表している。【００２５】
ブート制御情報記憶部１０５は、ブート制御情報４３を記憶している。ブート制御情報記憶部１０５は、例えば図１のＦＰＤ１４にあたる。【００２６】
ブート制御情報４３は、複数のＯＳの起動を制御するためのパラメータの情報である。図５は、実施例１に係るブート制御情報に記載されている項目の一例及びその内容を示す図である。図５に示すように、本実施例に係るブート制御情報には、「初回起動フラグ」、「接続ブート可能ＨＤＤ数」、「ブート完了ＨＤＤ数」、「ＨＤＤブートモードフラグ」、「ＨＤＤ認識優先度テーブル」及び「連続ブート回数」が記載されている。【００２７】
「初回起動フラグ」は、最初の起動か否かを判定するフラグである。「初回起動フラグ」の初期値は「０」であり、１度起動されるとその値は「１」に変更される。すなわち、「初回起動フラグ」の値が０の場合は、最初の起動であることを示しており、「初回起動フラグ」の値が１である場合は、少なくとも１度は起動が行われていることを示している。【００２８】
「接続ブート可能ＨＤＤ数」は、サーバ装置１に接続された起動可能なＨＤＤの数である。これは、後述するように、ＨＤＤブート処理部１３３によって書込まれる情報である。【００２９】
「ブート完了ＨＤＤ数」は、ブートが完了したＨＤＤの数である。これも、後述するように、ＨＤＤブート処理部１３３によって書込まれる情報である。【００３０】
「ＨＤＤブートモードフラグ」は、起動対象となっているＨＤＤから起動を行うか否かを判定するフラグである。「ＨＤＤブートモードフラグ」の初期値は０であり、起動対象のＨＤＤから起動を行う場合、その値は「１」に変更される。すなわち、「ＨＤＤブートモードフラグ」の値が０の場合は、起動を行わずに起動の準備のみを行う。また、「初回起動フラグ」の値が１である場合は、起動の対象となっているＨＤＤからの起動を行う。【００３１】
「ＨＤＤ認識優先度テーブル」は、接続されている起動可能なＨＤＤがＢＩＯＳに認識される順番を示す情報である。これは、後述するように、ＨＤＤブート処理部１３３によって書込まれる情報である。【００３２】
「連続ブート回数」は、起動可能な全てのＨＤＤから１回ずつＯＳの起動が行われた状態を１回のテストとして、このテストを何回繰り返すかの情報である。例えば、「連続ブート回数」として１が設定されていると、各ＨＤＤを用いた起動がそれぞれ１回ずつ行なわれる。また、例えば、「連続ブート回数」として０が設定されていると、それぞれのＨＤＤを用いた起動が中止命令を受けるまで行われる。【００３３】
ブート制御部１０３は、ＢＩＯＳ起動処理部１３１、ＦＰＤＭＢＲ処理部１３２、ＨＤＤブート処理部１３３、ＯＳ起動処理部１３４及びＢＩＯＳ機能処理部１３５を有している。【００３４】
ＢＩＯＳ起動処理部１３１は、サーバ装置１に電源が投入されると、ＢＩＯＳ記憶部１０７に記憶されているＢＩＯＳ２１を起動する。そして、ＢＩＯＳ起動処理部１３１は、テーブル記憶部１０４に記憶されているブートデバイス順番テーブル３１を参照して、最初に起動するデバイスを決定する。ここで、本実施例ではブートデバイス順番テーブル３１は、図３のように最初にＦＰＤから起動するよう決まっているので、ＢＩＯＳ起動処理部１３１は、ＦＰＤ１４より起動することを決定する。そして、ＢＩＯＳ起動処理部１３１は、ＦＰＤ１４からのブート処理を開始する。ＢＩＯＳ起動処理部１３１は、ＦＰＤＭＢＲ処理部１３２を呼出す。【００３５】
さらに、ＢＩＯＳ起動処理部１３１は、起動可能なＨＤＤ数及びＨＤＤ認識順番テーブル３２の取得要求をＨＤＤブート処理部１３３から受ける。そして、ＢＩＯＳ起動処理部１３１は、ＨＤＤ１５〜１７のＨＤＤ−ＭＢＲ（例えば、ＨＤＤ１５ではＨＤＤ−ＭＢＲ５１）などを確認するなどして起動可能なＨＤＤ数を取得する。本実施例では、ＨＤＤ１５〜１７の３つ全てが起動可能なＨＤＤであるので、ＢＩＯＳ起動処理部１３１は、起動可能なＨＤＤ数として３を取得する。また、ＢＩＯＳ起動処理部１３１は、テーブル記憶部１０４に記憶されているＨＤＤ認識順番テーブル３２を取得する。ＢＩＯＳ起動処理部１３１は、取得した起動可能なＨＤＤ数及びＨＤＤ認識順番テーブル３２をＨＤＤブート処理部１３３へ出力する。【００３６】
また、ＢＩＯＳ起動処理部１３１は、変更されたＨＤＤの起動の優先順位の入力をＨＤＤブート処理部１３３から受信する。そして、ＢＩＯＳ起動処理部１３１は、テーブル記憶部１０４に記憶されているＨＤＤ認識順番テーブル３２のＨＤＤの起動の優先順位を、受信したＨＤＤの起動の優先順位に書き換える。ＢＩＯＳ起動処理部１３１は、例えば図１におけるＣＰＵ１０によって実行されるＢＩＯＳ２１にあたる。【００３７】
ＦＰＤＭＢＲ処理部１３２は、ＨＤＤブート処理部１３３を呼出す。ＦＰＤＭＢＲ処理部１３２は、例えば図１におけるＣＰＵ１０によって実行されるＦＰＤ−ＭＢＲ４１にあたる。【００３８】
ＨＤＤブート処理部１３３は、ブート制御情報記憶部１０５に記憶されているブート制御情報４３の「ＨＤＤブートモードフラグ」を確認し、起動対象となっているＨＤＤから起動を行うか否かを判定する。この時、ＨＤＤブート処理部１３３は、「ＨＤＤブートモードフラグ」の値が０であれば、ＨＤＤから起動を行わないと判定し、「ＨＤＤブートモードフラグ」の値が１であればＨＤＤから起動を行うと判定する。【００３９】
ＨＤＤから起動を行わないと判定した場合、ＨＤＤブート処理部１３３は、ブート制御情報記憶部１０５に記憶されているブート制御情報４３の「初回起動フラグ」を確認し最初の起動か否かを判定する。この時、ＨＤＤブート処理部１３３は、「初回起動フラグ」の値が０であれば、最初の起動と判定し、「初回起動フラグ」の値が１であれば２回目以降の起動と判定する。【００４０】
最初の起動であれば、ＨＤＤブート処理部１３３は、起動可能なＨＤＤ数及びＨＤＤ認識順番テーブル３２を含むＨＤＤ情報の取得要求をＢＩＯＳ起動処理部１３１へ通知する。そして、ＨＤＤブート処理部１３３は、起動可能なＨＤＤ数及びＨＤＤ認識順番テーブル３２を含むＨＤＤ情報をＢＩＯＳ起動処理部１３１から取得する。本実施例では、起動可能なＨＤＤはＨＤＤ１５〜１７の３つであるので、ＨＤＤブート処理部１３３は、起動可能なＨＤＤ数として３つを取得する。また、本実施例では、ＨＤＤブート処理部１３３は、図４に示すＨＤＤ認識順番テーブル３２を取得する。そして、ＨＤＤブート処理部１３３は、取得した起動可能なＨＤＤ数及びＨＤＤ認識順番テーブル３２を、ブート制御情報記憶部１０５に格納されているブート制御情報４３に登録する。本実施例では、ＨＤＤブート処理部１３３は、ブート制御情報４３の「接続ブート可能ＨＤＤ数」として３を登録する。また、ＨＤＤブート処理部１３３は、ブート制御情報４３の「ＨＤＤ認識優先度テーブル」として、図４に示すＨＤＤ認識順番テーブル３２を登録する。【００４１】
これに対して、２回目以降の起動であれば、ＨＤＤブート処理部１３３は、ブート制御情報記憶部１０５に格納されているブート制御情報４３を参照して、ＨＤＤ認識優先度テーブルのＨＤＤの起動の優先順位を変更する。そして、ＨＤＤブート処理部１３３は、ＨＤＤの起動の優先順位の変更をＢＩＯＳ起動処理部１３１に通知する。【００４２】
ここで、ＨＤＤブート処理部１３３によるＨＤＤの起動の優先順位の変更について説明する。図６は、ＨＤＤ認識優先度テーブルの優先度変更を説明する図である。図６のテーブル３０５は、変更前の優先順位を示している。また、図６のテーブル３０６は、変更後の優先順位を表している。そして、テーブル３０５及びテーブル３０６共に紙面に向かって左に向かうに従い優先順位が高いハードディスクを表している。また、テーブル３０５及びテーブル３０６における０は対応するハードディスクが無いことを表している。すなわち、本実施例では起動可能なハードディスクはＨＤＤ１５〜１７の３台のみであるので、優先順位が高いほうから３つ以外は、テーブル３０５及びテーブル３０６共に０が記載されている。【００４３】
例えば、テーブル３０５のように優先順位が割り当てられている状態で優先順位の変更を行う場合、ＨＤＤブート処理部１３３は、一番高い優先順位を有するＨＤＤ１５を３番目の優先順位に変える。さらに、ＨＤＤブート処理部１３３は、２番目と３番目の優先順位を有するＨＤＤ１６及びＨＤＤ１７の優先順位を一つずつ繰り上げる。これにより、ＨＤＤブート処理部１３３は、テーブル３０５からテーブル３０６への優先順位の変更を行うことができる。【００４４】
そして、最初の起動であれば「初回起動フラグ」を１に設定した後に、ＨＤＤブート処理部１３３は、ブート制御情報４３の「接続ブート可能ＨＤＤ数」の値と「ブート完了ＨＤＤ数」の値とが一致するか否かを判定する。また、２回目以降の起動であればＨＤＤの起動の優先度を変更した後に、ＨＤＤブート処理部１３３は、ブート制御情報４３の「接続ブート可能ＨＤＤ数」の値と「ブート完了ＨＤＤ数」の値とが一致するか否かを判定する。ここで、「接続ブート可能ＨＤＤ数」の値と「ブート完了ＨＤＤ数」の値とが一致していれば、ＨＤＤブート処理部１３３は、ＯＳの起動処理を終了する。これに対して、「接続ブート可能ＨＤＤ数」の値と「ブート完了ＨＤＤ数」の値とが不一致であれば、ＨＤＤブート処理部１３３は、「ＨＤＤブートモードフラグ」を１に変更し、サーバ装置１を再起動させる。【００４５】
また、ブート制御情報４３の「ＨＤＤブートモードフラグ」が１の場合、ＨＤＤブート処理部１３３は、ブート制御情報４３の「ブート認識優先度テーブル」を参照して、一番高い優先度のＨＤＤを起動対象のＨＤＤとして特定する。そして、ＨＤＤブート処理部１３３は、ＯＳ起動処理部１３４に、特定した起動対象のＨＤＤからの起動を指示する。【００４６】
そして、ＨＤＤブート処理部１３３は、ブート制御情報４３の「ＨＤＤブートモードフラグ」を０に変更する。【００４７】
また、ＨＤＤブート処理部１３３は、ＯＳ起動処理部１３４に特定した起動対象のＨＤＤからの起動を指示する直前に、ブート制御情報４３の「ブート完了ＨＤＤ数」をインクリメントする。ＨＤＤブート処理部１３３は、例えば図１におけるＣＰＵ１０によって実行された制御プログラム４２にあたる。【００４８】
ＯＳ起動処理部１３４は、起動対象のＨＤＤの指定とともにそのＨＤＤからの起動の指示をＨＤＤブート処理部１３３から受信する。そして、ＯＳ起動処理部１３４は、指定されたＨＤＤからＯＳを起動させる。【００４９】
そして、ＯＳ起動処理部１３４は、ＯＳから呼出されるＢＩＯＳの機能の呼出において指定される各処理と後述する呼出情報取得部１２１が有する処理との対応を予め記憶している。例えば、ＯＳ起動処理部１３４は、ＢＩＯＳにおける処理Ａに対して呼出情報取得部１２１における処理Ａ’、ＢＩＯＳにおける処理Ｂに対して呼出情報取得部１２１における処理Ｂ’といったような対応を記憶している。【００５０】
そして、ＯＳ起動処理部１３４は、起動させているＯＳからＢＩＯＳの機能の呼出しを呼出情報とともに受ける。ここで、呼出情報とは、ＯＳがＢＩＯＳの機能を呼出すときにＢＩＯＳに通知するパラメータ及びシーケンス番号の集合である。図７は、呼出情報と復帰情報の一例を説明するための図である。データ列３０７が呼出情報を表している。また、データ列３０８が復帰情報を表している。データ列３０７に示すように、呼出し情報は、シーケンス番号、呼出機能ＩＤ、サブファンクション、及び対象ドライブ番号などを含む。シーケンス番号は０からのシリアル番号である。呼出機能ＩＤは、ソフトウェア割り込みの番号である。サブファンクションは、特定のソフトウェア割り込みの中からさらに処理を指定するための番号である。この呼出機能ＩＤ及びサブファンクションによって、呼出すＢＩＯＳの処理が指定される。対象ドライブ番号は、呼出すＢＩＯＳの機能が格納されているハードディスクの識別子である。【００５１】
ＯＳ起動処理部１３４は、自己が記憶している呼出されたＢＩＯＳの処理に対応する呼出情報取得部１２１の処理を特定する。そして、ＯＳ起動処理部１３４は、特定した呼出情報取得部１２１の処理を呼出す。そして、ＯＳ起動処理部１３４は、呼出情報を呼出情報取得部１２１へ出力する。例えば、ＯＳからＢＩＯＳの処理Ａの呼出しを受けて、ＯＳ起動処理部１３４は、呼出情報取得部１２１の機能Ａ’を呼出す。その後、ＯＳ起動処理部１３４は、呼出情報取得部１２１から復帰情報の入力を受ける。そして、ＯＳ起動処理部１３４は、ＯＳの起動を継続させる。【００５２】
ＯＳ起動処理部１３４は、ＯＳの起動が終了すると、ＨＤＤブート処理部１３３に対しＯＳの起動完了を通知する。ＯＳ起動処理部１３４は、例えば図１におけるＣＰＵ１０によって実行された制御プログラム４２にあたる。【００５３】
起動情報取得部１０２は、呼出情報取得部１２１及び復帰情報取得部１２２を有している。以下では、呼出情報及び復帰情報をまとめて起動情報と呼ぶ場合がある。起動情報取得部１０２は、例えば図１におけるＣＰＵ１０によって実行された制御プログラム４２にあたる。【００５４】
呼出情報取得部１２１は、ＢＩＯＳの処理に対応する処理を記憶している。この対応は、ＯＳ起動処理部１３４が記憶しているＢＩＯＳの処理と呼出情報取得部１２１の処理との対応に一致する。例えば、呼出情報取得部１２１は、ＢＩＯＳの処理Ａに対応する処理Ａ’、ＢＩＯＳの処理Ｂに対応する処理Ｂ’を有している。そして呼出情報取得部１２１が有する各処理は、対応するＢＩＯＳの処理を呼出す処理である。例えば、処理Ａ’はＢＩＯＳの処理Ａを呼出す処理である。【００５５】
呼出情報取得部１２１は、呼出情報とともにＯＳ起動処理部１３４から自己が有する処理の呼出しを受ける。そして、呼出情報取得部１２１は、受信した呼出情報を記憶する。そして、呼出情報取得部１２１は、呼出情報をＢＩＯＳ機能処理部１３５に送信し、呼出された自己の処理に対応するＢＩＯＳの処理を呼出す。【００５６】
復帰情報取得部１２２は、復帰情報をＢＩＯＳ機能処理部１３５から受ける。そして、復帰情報取得部１２２は、受信した復帰情報を記憶する。そして、復帰情報取得部１２２は、復帰情報をＯＳ起動処理部１３４に送信し、処理をＯＳ起動処理部１３４へ返す。【００５７】
ＢＩＯＳ機能処理部１３５は、呼出情報とともにＢＩＯＳの処理の呼出しを呼出情報取得部１２１から受ける。そして、ＢＩＯＳ機能処理部１３５は、指定されたＢＩＯＳの処理を実行する。そして、ＢＩＯＳ機能処理部１３５は、ＢＩＯＳの処理によって生成された復帰情報を復帰情報取得部１２２へ出力する。ここで、図７を用いて復帰情報の一例について説明する。データ列３０８に示すように、復帰情報は、シーケンス番号、呼出機能ＩＤ、復帰コード、復帰詳細コードを含んでいる。復帰情報のシーケンス番号は、対応する呼出情報のデータ列３０７の「シーケンス番号＋１」であり、呼出機能ＩＤは、対応する呼出情報のデータ列３０７のシーケンス番号及び呼出機能ＩＤと同一である。また、復帰コードは、処理がエラーかエラーで無いかを示す値である。また、復帰詳細コードは、エラーの詳細コードが記載されている。このＢＩＯＳ機能処理部１３５は、例えば図１におけるＣＰＵ１０によって実行されたＢＩＯＳ２１にあたる。【００５８】
リグレッション解析処理部１０８は、ＯＳがＢＩＯＳの各処理を呼出すときに用いる、呼出情報の期待値を予め記憶している。呼出情報の期待値とは、例えば、ＯＳからのＢＩＯＳの呼出しが正常に行われている場合において用いられる内容を有する呼出情報である。すなわち、この期待値と異なる呼出情報が用いられた場合には、ＯＳからのＢＩＯＳの呼出しが正常に行われていないことになる。また、リグレッション解析処理部１０８は、ＢＩＯＳが呼出された処理を完了しＯＳに制御を戻す場合に用いる復帰情報の期待値を予め記憶している。復帰情報の期待値とは、例えば、ＢＩＯＳからＯＳへの制御の復帰が正常に行われている場合において用いられる内容を有する復帰情報である。すなわち、復帰情報の期待値と異なる復帰情報が用いられた場合には、ＢＩＯＳからのＯＳへの制御の復帰が正常に行われていないことになる。【００５９】
リグレッション解析処理部１０８は、呼出情報取得部１２１及び復帰情報取得部１２２が取得した呼出情報及び復帰情報と、自己が記憶している呼出情報の期待値及び復帰情報の期待値とを比較する。そして、呼出情報取得部１２１及び復帰情報取得部１２２が取得した呼出情報及び復帰情報がそれぞれの期待値と一致していない場合、リグレッション解析処理部１０８は、リグレッションが発生していると判定する。そして、リグレッション解析処理部１０８は、リグレッションが発生したと判定した場合、比較結果を示す比較結果ログを作成しログ記憶部１０９に格納する。リグレッション解析処理部１０８は、例えば図１のＣＰＵ１０によって実行されたテストプログラム５３にあたる。また、ログ記憶部１０９は、例えば図１のＨＤＤ１５〜１７にあたる。【００６０】
図８は、比較結果ログのフォーマットの一例を示す図である。また、図９は、比較結果ログの一例を示す図である。【００６１】
リグレッション解析処理部１０８は、図８に示すような比較結果ログのフォーマット３０９を記憶している。本実施例では、比較結果ログのフォーマット３０９には、比較を実行した日時、比較した情報のシーケンス番号、呼出機能名、比較したパラメータの内容及び比較結果の欄が設けられている。そして、リグレッション解析処理部１０８は、記憶しているフォーマット３０９を用いて比較結果を基に、図９に示すような比較結果ログを作成する。リグレッション解析処理部１０８は、図９に示すように、フォーマット３０９を基にして、実行した比較毎に、比較を実行した日時、比較した情報のシーケンス番号、呼出機能名、比較したパラメータの内容及び比較結果を比較結果ログに記載する。そして、リグレッション解析処理部１０８は、比較結果が異常、すなわち、取得した呼出情報又は復帰情報とその期待値とが一致しなかった場合に、点線で囲んだ領域３１０のように期待値と実際の取得した情報を記載する。ＢＩＯＳの開発者などの作業者は、この比較結果ログを確認することで、ＢＩＯＳの機能の呼び出しにおいて、リグレッションが発生したか、またリグレッションではどのようなエラーが発生したかを簡単に確認することができる。これにより、作業者は、迅速にＢＩＯＳの修正を行うことができる。【００６２】
次に、図１０を参照して、呼出情報及び復帰情報の取得の全体的な処理の流れを説明する。図１０は、呼出情報及び復帰情報の取得処理の一例を説明するための図である。図１０における実線の四角で囲われた部分は、動作する対象及びその対象が行う処理を表している。ここで、図１０では、ＯＳがＢＩＯＳの機能である処理Ａを呼出す場合で説明する。また、以下では説明の都合上、プログラム（ＯＳなど）同士がデータや命令の授受を直接行っているように説明しているが、実際には、プログラム間でのデータや命令の授受はＣＰＵ１０を介して行われる。【００６３】
まず、ＯＳが、ブート処理を実行し、そのブート処理を行っている最中にＢＩＯＳの機能を実行する処理Ａを呼出す。具体的には、ＯＳは、ＢＩＯＳのソフトウェア割込みで行う。そして、ＯＳがソフトウェア割込みを行うための割込みベクタが存在する。この割込みベクタには、ＯＳにより呼出されたＢＩＯＳの処理へのアドレスが記載されている。すなわち、ＯＳは、割込みベクタに記載されたアドレスで指定された処理に制御を移すように呼出しを行う（ステップＳ１０１）。ここで、制御プログラムは、予め割込みベクタに設定されているＢＩＯＳの処理のアドレスを起動情報の取得及びＢＩＯＳの処理の呼出しを実行する処理のアドレスに書き換えている。ここでは、制御プログラムは、呼出された処理Ａに対応する処理として処理Ａ’にアドレスを書き換えている。【００６４】
ＯＳは、処理Ａの呼出しを行うために、指定されたソフトウェア割込みに対応する割込みベクタテーブルのアドレスを参照する。そして、上述したように割込みベクタの処理Ａのアドレスが処理Ａ’に変更されているので、ＯＳは、処理Ａへのソフトウェア割込みに対応する割込みベクタテーブルに記載された処理Ａ’のアドレス  を取得する。そして、ＯＳは、取得した割込みベクタのアドレスが制御プログラムの処理Ａ’を指していることを確認し、制御プログラムの処理Ａ’へ制御を移す（ステップＳ１０２）。【００６５】
次に、制御プログラムは、自己の処理Ａ’を実施する。この処理Ａには、呼出情報の取得、ＢＩＯＳの処理Ａの呼び出し及び復帰情報取得が含まれる。ここでは、制御プログラムが実施する処理Ａ’は、呼出情報を取得した後、ＢＩＯＳの処理Ａを呼出す段階までの動作を行う（ステップＳ１０３）。【００６６】
ＢＩＯＳは、呼出された処理Ａを実施する。そして、処理Ａの完了後、ＢＩＯＳは、復帰情報を制御プログラムの処理Ａ’へ送信する（ステップＳ１０４）。【００６７】
そして、制御プログラムの処理Ａ’は、ＢＩＯＳから受信した復帰情報を取得する。さらに、制御プログラムの処理Ａ’の復帰情報をＯＳに送信して、ＯＳに制御を移し、ＯＳのブート処理を継続させる（ステップＳ１０５）。【００６８】
さらに、図１１を参照して、サーバ装置１のハードウェア構成及びプログラム構成に合わせて処理の流れを説明する。図１１は、実施例１に係るサーバ装置の各ハードウェア及びプログラムによる処理の流れを説明するための図である。また、図１１の点線で囲われたプログラムは、メモリ上に展開されたプログラムを表している。【００６９】
図１１では、ここでの説明に使用するサーバ装置１のハードウェアのみ記載している。また、図１１では、ＦＰＤ１４及びＨＤＤ１５〜１７といった外部記憶装置以外のハードウェアをまとめてサーバ装置本体１００としている。また、以下では説明の都合上、プログラムが処理を行っているように説明する場合があるが、実際には、プログラムを実行させてＣＰＵ１０が処理を行っている。そして、ＨＤＤ１５には、ＯＳ（ａ）、テストプログラム（ａ）及び期待値情報（ａ）が格納されている。ＨＤＤ１６には、ＯＳ（ｂ）、テストプログラム（ｂ）及び期待値情報（ｂ）が格納されている。ＨＤＤ１７には、ＯＳ（ｃ）、テストプログラム（ｃ）及び期待値情報（ｃ）が格納されている。【００７０】
まず、サーバ装置１に電源が投入されると、ＣＰＵ１０は、ＲＯＭ１２のＢＩＯＳ２１を読み込み、ＢＩＯＳ２１をメインメモリ１１にＢＩＯＳ２１１として展開する。その後、ＢＩＯＳ２１１は、不揮発性メモリ１３に格納されているブートデバイス順番テーブル３１を確認し、最初にブートすべきデバイスをＦＰＤ１４と決定する。また、ＢＩＯＳ２１１は、接続されているＨＤＤ１５〜１７を確認し、起動可能なＨＤＤ数を取得する。また、ＢＩＯＳ２１１は、ＣＯＭＳ１３からＨＤＤ認識順番テーブル３２を取得する。【００７１】
そして、ＢＩＯＳ２１１は、ＦＰＤ１４のＦＰＤ−ＭＢＲ４１を読込み、メインメモリ１１にＦＰＤ−ＭＢＲ（不図示）を展開し、制御をメインメモリ１１に展開されたＦＰＤ−ＭＢＲに移す。そして、メインメモリ１１上に展開されたＦＰＤ−ＭＢＲは、ＦＰＤ１４から制御プログラム４２を読込み、メインメモリ１１に制御プログラム４２１として展開し、制御を制御プログラム４２１に移す。【００７２】
制御プログラム４２１は、ＦＰＤ１４のブート制御情報４３を確認し、最初の起動か否かを判定する。最初の起動であれば、制御プログラム４２１は、ＢＩＯＳ２１１から起動可能なＨＤＤ数やＨＤＤ認識順番テーブル３２といったＨＤＤ情報を取得する。そして、制御プログラム４２１は、取得したＨＤＤ情報をＦＰＤ１４のブート制御情報４３へ登録する。【００７３】
次に、制御プログラム４２１は、不揮発性メモリ１３のＨＤＤ認識順番テーブル３２の認識順番をブート制御情報４３のＨＤＤ認識優先度テーブルと同じになるようにＢＩＯＳ２１１へ依頼する。そしてＢＩＯＳ２１１は、ＨＤＤ認識順番テーブル３２のＨＤＤの認識順番をブート制御情報４３のＨＤＤ認識優先度テーブルと同じになるように変更する。【００７４】
制御プログラム４２１は、ブート制御情報４３のブートモードフラグを１に変更する。そして、制御プログラム４２１は、ＨＤＤ認識順番テーブル３２の認識順番の変更を反映するために、サーバ装置１の再起動を行う。【００７５】
再起動後、制御プログラム４２１は、ブート制御情報４３に記載されたＨＤＤ認識順番テーブルを確認して、起動の優先順位が一番高いＨＤＤの情報を起動対象のＨＤＤとして取得する。ここでは、起動対象のＨＤＤがＨＤＤ１５の場合で説明する。【００７６】
そして、制御プログラム４２１は、起動対象のＨＤＤからの起動において、呼出情報及び復帰情報を取得するように、割込みベクタのアドレスをＢＩＯＳの処理のアドレスから自己の処理のアドレスへと変更する。【００７７】
次に、制御プログラム４２１は、ＨＤＤ１５からＨＤＤ−ＭＢＲ５１を読込み、メインメモリ１１にＨＤＤ−ＭＢＲを展開し（不図示）、展開したＨＤＤ−ＭＢＲへ制御を移す。メインメモリ１１に展開されたＨＤＤ−ＭＢＲは、ＨＤＤ１５に格納されているＯＳを読込み、メインメモリ１１にＯＳ１１２として展開する。そして、制御プログラム４２１は、ＯＳ１１２に制御を移す。ここでは、ＨＤＤ１５を起動対象のＨＤＤとしているので、制御プログラム４２１は、ＯＳ（ａ）をメインメモリ１１上に展開する。図１１では、ＯＳ（ａ），（ｂ），（ｃ）のいずれかが展開されることを表すため、ＯＳ（ｘ）（ｘ＝ａ，ｂ，ｃ）と記載している。【００７８】
ＯＳ１１２は、起動処理を行う。ＯＳ１１２の起動処理の間、制御プログラム４２１は、ＯＳによるＢＩＯＳの処理の呼出しにおける呼出情報１１５及び復帰情報１１６を取得し、メインメモリ１１に格納しておく。図１１では、ＯＳ（ａ），（ｂ），（ｃ）のいずれかに対応する呼出情報及び復帰情報であることを表すため、呼出情報（ｘ）、復帰情報（ｘ）（ｘ＝ａ，ｂ，ｃ）と記載している。【００７９】
そして、ＯＳ１１２の起動が完了すると、ＯＳ１１２は、プログラム自動起動機能を用いて、ＯＳ１１２を起動したＨＤＤ１５からテストプログラム（ａ）及び期待値情報（ａ）を読込む。そして、ＯＳ１１２は、テストプログラム（ａ）をテストプログラム１１３としてメインメモリ１１上に展開する。この時、期待値情報（ａ）は、テストプログラム（ａ）の処理で使用されるパラメータである期待値情報１１４としてメインメモリ１１上に展開される。図１１では、ＯＳ（ａ），（ｂ），（ｃ）のいずれかに対応するテストプログラム及び期待値であることを表すため、テストプログラム（ｘ）、期待値情報（ｘ）（ｘ＝ａ，ｂ，ｃ）と記載している。【００８０】
そして、テストプログラム１１３は、自己が保持している期待値情報と呼出情報１１５及び復帰情報１１６とを比較する。そして、テストプログラム１１３は、比較結果を比較結果ログとしてＨＤＤ１５などに記録する。そして、テストプログラム１１３は、比較において不一致が発生した場合には、処理を中断する。これに対して、比較において不一致が無ければ、再起動を行う。【００８１】
再起動後、ＢＩＯＳ２１１は、ＦＰＤ−ＭＢＲ４１をメインメモリ１１上に展開し（不図示）、制御を移す。そして、メモリ上に展開されたＦＰＤ−ＭＢＲ４１は、制御プログラム４２をメインメモリ１１に制御プログラム４２１として展開する。制御プログラム４２１は、ブート制御情報４３を確認して、接続されている全ての起動可能なＨＤＤ（本実施例では、ＨＤＤ１５〜１７）にインストールされているＯＳのリグレッション試験が完了したか否かを確認する。リグレッション試験を行っていないＯＳがある場合には、制御プログラム４２１は、リグレッション試験を繰り返す。これに対して、リグレッション試験が全てのＯＳについて完了している場合、制御プログラム４２１は、処理を終了する。【００８２】
ここで、本実施例では起動可能なＨＤＤのそれぞれでリグレッション試験を１回ずつ行った時点でリグレッション試験を完了しているが、これは何回行ってもよい。この試験の反復回数は、ブート制御情報４３の連続ブート回数によって規定される。すなわち、制御プログラム４２１は、起動可能なＨＤＤの全てでリグレッション試験が１回ずつ終わるたびに、ブート回数をインクリメントしていく。そして、制御プログラム４２１は、ブート回数が連続ブート回数に一致した場合にリグレッション試験が完了したと判定し、処理を終了する。【００８３】
次に、図１２を参照して、本実施例に係るリグレッション試験における全体的な流れを説明する。図１２は、実施例１に係るリグレッション試験における全体的な処理のフローチャートである。ここでは、図１１の各ハードウェア及びプログラムを処理の動作主体として説明する。【００８４】
サーバ装置１の電源が投入される(ステップＳ２０１)。【００８５】
ＣＰＵ１０は、ＢＩＯＳ２１をメインメモリ１１上にＢＩＯＳ２１１として展開し起動を開始する（ステップＳ２０２）。そして、ＢＩＯＳ２１１は、ＦＰＤ１４からＦＰＤ−ＭＢＲ４１を読込む（ステップＳ２０３）。そして、ＢＩＯＳ２１１は、ＦＰＤ−ＭＢＲ４１をメインメモリ１１上に展開し制御を移す（ステップＳ２０４）。【００８６】
メインメモリ１１上に展開されたＦＰＤ−ＭＢＲ４１は、制御プログラム４２をＦＰＤ１４から読込み、メインメモリ１１上に制御プログラム４２１として展開し実行する（ステップＳ２０５）。【００８７】
制御プログラム４２１は、ＢＩＯＳ２１１及びブート制御情報４３からＨＤＤ情報を取得する（ステップＳ２０６）。【００８８】
制御プログラム４２１は、リグレッション試験を行うＨＤＤが残っているか否かを確認する（ステップＳ２０７）。リグレッション試験を行うＨＤＤが残っていない場合（ステップＳ２０７否定）、サーバ装置１は、リグレッション試験の処理を終了する。【００８９】
これに対して、リグレッション試験を行うＨＤＤが残っている場合（ステップＳ２０７肯定）、制御プログラム４２１は、ブート制御情報４３を確認して起動の対象となるＨＤＤを決定する。そして、制御プログラム４２１は、ＨＤＤブートモードフラグの設定などの起動対象と決定したＨＤＤからの起動の準備を行う（ステップＳ２０８）。【００９０】
さらに、制御プログラム４２１は、割込みベクタのアドレスを変更するなどして、ＢＩＯＳの呼出しにおける呼出情報及び復帰情報の取得の準備をする。さらに。制御プログラム４２１は、起動対象のＨＤＤからＨＤＤ−ＭＢＲを読込む（ステップＳ２０９）。そして、制御プログラム４２１は、読込んだＨＤＤ−ＭＢＲをメインメモリ１１上に展開し実行する（ステップＳ２１０）。【００９１】
メインメモリ１１上に展開されたＨＤＤ−ＭＢＲは、起動対象のＨＤＤからＯＳを読込み、メインメモリ１１上にＯＳ１１２として展開し起動する（ステップＳ２１１）。【００９２】
制御プログラム４２１は、ＯＳ１１２がＢＩＯＳ２１１の機能を呼出す際の呼出情報及び復帰情報を取得する（ステップＳ２１２）。【００９３】
ＯＳ１１２は、起動完了後、起動対象のＨＤＤからテストプログラムを呼出し、メインメモリ１１上に期待値情報１１４を含むテストプログラム１１３として展開する。そして、テストプログラム１１３は、呼出情報及び復帰情報とその期待値とを比較する（ステップＳ２１３）。そして、テストプログラム１１３は、比較結果を比較結果ログとして起動対象のＨＤＤに登録する。【００９４】
テストプログラム１１３は、サーバ装置１を再起動する（ステップＳ２１４）。そして、再起動したサーバ装置１は、ステップＳ２０２へ戻る。【００９５】
次に、図１３を参照して、制御プログラムによる起動対象のＨＤＤを順番に切り替えてＯＳを起動させる処理について説明する。図１３は、実施例１における起動対象のＨＤＤを順番に切り替えながらＯＳの起動を行う処理のフローチャートである。【００９６】
制御プログラム４２１が開始される（ステップＳ３０１）。【００９７】
制御プログラム４２１は、ＦＰＤ１４上のブート制御情報４３のＨＤＤブートモードフラグが１か否かを確認する（ステップＳ３０２）。ＨＤＤブートモードフラグが１の場合（ステップＳ３０２肯定）、制御プログラム４２１は、ブート制御情報４３のＨＤＤブートモードフラグを０にセットする。そして、制御プログラム４２１は、ブート完了ＨＤＤ数をインクリメントする（ステップＳ３０３）。【００９８】
そして、制御プログラム４２１は、ＯＳによるＢＩＯＳ呼出しの割込みベクタの内容を、読込情報及び復帰情報の取得を行う処理のアドレスに書き換える（ステップＳ３０４）。【００９９】
そして、制御プログラム４２１は、書き換え前の割込みベクタの内容を保持し、呼出情報取得の処理の終了後にＢＩＯＳ呼び出しができるように設定する（ステップＳ３０５）。【０１００】
制御プログラム４２１は、起動対象のＨＤＤのＨＤＤ−ＭＢＲを実行する（ステップＳ３０６）。【０１０１】
ＯＳは、起動処理を実行する。そして、制御プログラム４２１は、呼出情報及び復帰情報の取得を行う（ステップＳ３０７）。ＯＳの起動完了後、ステップＳ３０１に戻る。【０１０２】
これに対して、ＨＤＤブートモードフラグが０の場合（ステップＳ３０２否定）、制御プログラム４２１は、ブート制御情報４３の初回起動フラグが１か否かを判定する（ステップＳ３０８）。初回起動フラグが１の場合（ステップＳ３０８肯定）、制御プログラム４２１は、ブート制御情報４３のＨＤＤ認識優先度を変更する。そして、制御プログラム４２１は、ＢＩＯＳ２１１に対してＨＤＤ認識順番テーブル３２の内容を自己が設定したＨＤＤ認識優先度に変更するよう依頼する（ステップＳ３０９）。ＢＩＯＳ２１１は、ＨＤＤ認識順番テーブル３２の優先度を指定された値に変更する。【０１０３】
これに対して、初回起動フラグが０だった場合（ステップＳ３０８否定）、制御プログラム４２１は、ブート可能なＨＤＤ数及びＨＤＤ認識順番テーブル３２をＢＩＯＳ２１１から取得する。そして、制御プログラム４２１は、ブート制御情報４３にブート可能なＨＤＤ数及びＨＤＤ認識優先度テーブルを設定する（ステップＳ３１０）。そして、制御プログラム４２１は、ブート制御情報４３の初回起動フラグを１にセットする（ステップＳ３１１）。【０１０４】
そして、制御プログラム４２１は、ブート制御情報４３の接続可能ＨＤＤ数がブート完了ＨＤＤ数と一致するか否かを判定する（ステップＳ３１２）。接続可能ＨＤＤ数がブート完了ＨＤＤ数と一致しない場合（ステップＳ３１２否定）、制御プログラム４２１は、ブート制御情報４３のＨＤＤブートフラグを１に設定する（ステップＳ３１３）。その後、制御プログラム４２１は、サーバ装置１を再起動させ（ステップＳ３１４）、ステップＳ３０１に戻る。【０１０５】
これに対して、接続可能ＨＤＤ数がブート完了ＨＤＤ数と一致する場合（ステップＳ３１２肯定）、制御プログラム４２１は、処理を終了する。【０１０６】
次に、図１４を参照して、テストプログラム１１３が行う処理について説明する。図１４は、テストプログラムが行う処理のフローチャートである。【０１０７】
テストプログラム１１３が、ＯＳによって開始される（ステップＳ４０１）。【０１０８】
テストプログラム１１３は、自己を起動したＯＳのログにＯＳが正常に起動したことを記録する（ステップＳ４０２）。【０１０９】
テストプログラム１１３は、自己を起動したＯＳが格納されていたＨＤＤに格納されていた期待値情報のうち、最初のシーケンス番号を有する期待値情報を取得する（ステップＳ４０３）。【０１１０】
次に、テストプログラム１１３は、メインメモリ１１上を検索し、最初のシーケンス番号を有する呼出情報及び復帰情報を取得する（ステップＳ４０４）。【０１１１】
テストプログラム１１３は、期待値情報のシーケンス番号と呼出情報及び復帰情報のシーケンス番号とが一致するか否かを判定する（ステップＳ４０５）。【０１１２】
一致する場合（ステップＳ４０５肯定）、テストプログラム１１３は、期待値情報の機能ＩＤと呼出情報及び復帰情報の機能ＩＤとが一致するか否かを判定する（ステップＳ４０６）。【０１１３】
一致する場合（ステップＳ４０６肯定）、テストプログラム１１３は、期待値情報と呼出情報とのサブファンクションが一致するか、又は期待値情報と復帰情報との復帰コードとが一致するか否かを判定する（ステップＳ４０７）。【０１１４】
一致する場合（ステップＳ４０７肯定）、テストプログラム１１３は、期待値情報と呼出情報との対象ドライブ番号が一致するか、又は期待値情報と復帰情報との復帰詳細コードとが一致するか否かを判定する（ステップＳ４０８）。【０１１５】
一致する場合（ステップＳ４０８肯定）、テストプログラム１１３は、比較日時、シーケンス番号、機能ＩＤ、パラメータなどが正しいことをログに記録する（ステップＳ４０９）。【０１１６】
そして、テストプログラム１１３は、ＨＤＤに格納されている期待値情報、もしくは取得した呼出情報又は復帰情報の中に比較を行っていないものがあるか否かを判定する（ステップＳ４１０）。比較を行っていないものが有る場合（ステップＳ４１０肯定）、テストプログラム１１３は、次の期待値情報、並びに呼出情報又は復帰情報を読み込み（ステップＳ４１１）、ステップＳ４０５へ戻る。【０１１７】
シーケンス番号、機能ＩＤ、サブファンクション、復帰コード、対象ドライブ番号又は復帰詳細コードのいずれかが一致しない場合（ステップＳ４０５否定、ステップＳ４０６否定、ステップＳ４０７否定又はステップＳ４０８否定）、ステップＳ４１２に進む。すなわち、テストプログラム１１３は、呼出情報又は復帰情報のいずれか一方もしくは両方が正しくない旨をログに記録する。さらに、テストプログラム１１３は、取得した呼出情報及び復帰情報、並びにそれに対応する期待値情報をログに記録する（ステップＳ４１２）。【０１１８】
比較を行っていないものが無い場合（ステップＳ４１０否定）又はステップＳ４１２の後、テストプログラム１１３は、サーバ装置１の再起動を実行し、テストプログラムを終了する（ステップＳ４１３）。【０１１９】
図１５は、本実施例に係るサーバ装置の全体的なハードウェア構成の概略図である。図１５に示すように、サーバ装置１は、ＣＰＵ１０、メモリ１００１、入力装置１００２、出力装置１００３、外部記憶装置１００４、媒体駆動装置１００５及びネットワーク接続装置１００７を有している。【０１２０】
ＣＰＵ１０は、メモリ１００１を利用してプログラムを実行することにより上述した各処理を行う。【０１２１】
メモリ１００１は、メインメモリ１１、ＲＯＭ１２及び不揮発性メモリ１３などを含む。メモリ１００１には、上述した処理を行うプログラムやデータなどが格納されている。【０１２２】
入力装置１００２は、例えば、キーボード、ポインティングデバイス又はタッチパネルなどである。入力装置１００２は、操作者からの指示の入力に用いられる。また、入力装置１００２は、可搬記録媒体を駆動してその記録内容の入力に用いられる。この可搬記録媒体に上述したプログラムとデータを格納しておき、必要に応じて、それらをメモリにロードして使用することもできる。【０１２３】
また、出力装置１００３は、モニタなどである。【０１２４】
外部記憶装置１００４は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置などである。磁気ディスク装置は、例えば、ＨＤＤ１５〜１７である。この外部記憶装置１００４に上述したプログラムとデータを保存しておき、必要に応じてそれらをメモリにロードして使用することもできる。【０１２５】
媒体駆動装置１００５は、可搬記録媒体１００６を駆動し、その記録内容にアクセスする。可搬記録媒体１００６としては、メモリカード、ＦＰＤ、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）、光ディスク、光磁気ディスクなど、任意のコンピュータ読取可能な記録媒体が用いられる。この可搬記録媒体１００６に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリにロードして使用することもできる。例えば、媒体駆動装置１００５であるＦＰＤドライブに可搬記録媒体１００６であるＦＰＤを挿入した状態が、図１のＦＰＤ１４である。また、本実施例では、可搬記録媒体１００６としてＦＰＤを例に説明したが、他の可搬記録媒体を用いることも可能である。さらには、可搬記録媒体を用いずに、ＨＤＤの中にＭＢＲ、制御プログラム及びブート制御情報を格納させておき、実施例におけるＦＰＤと同じ動作を行わせることもできる。また、ネットワークを介して外部からＭＢＲ、制御プログラム及びブート制御情報を取得して、実施例におけるＦＰＤと同じ動作を行わせることもできる。【０１２６】
ネットワーク接続装置１００７は、ＬＡＮ（Local  Aria  Network）やＷＡＮ（Wide  Aria  Network）などの任意のネットワーク（回線、あるいは伝送媒体）を介して外部装置と通信し、通信に伴うデータ変換を行う。【０１２７】
以上に説明したように、本実施例に係る情報処理装置は、自動的にハードディスクを切り替えながら、各ハードディスクに格納された異なるＯＳを起動させていき、さらに、ＯＳ毎のＢＩＯＳの呼出しの試験を自動的に行う。これにより、ＢＩＯＳの修正のチェックを行う作業者は、ハードディスクの物理的な付け替えやＢＩＯＳの設定変更によるハードディスクの切り替えを行わずに、異なるＯＳを順次起動していくことができる。これにより、リグレッション試験における作業者の手間を軽減することができる。さらに、ＯＳ起動時のＢＩＯＳの呼出し状況を見ながらチェックを行う必要がなくなるため、リグレッション試験における作業者の手間を軽減することができ、作業の効率化を図ることができる。また比較結果の正否を専門家以外でも判定することができる。【０１２８】
さらに、本実施例に係るサーバ装置を用いることで、サーバ装置の製造元が提供したＢＩＯＳと他のハードウェアベンダが提供する拡張ＢＩＯＳとの障害の切り分けを行うこともできる。例えば、まず、サーバ装置の製造元により供給されたハードディスクコントローラに接続されたハードディスクからＯＳを起動させ、次に、他のハードウェアベンダから提供されたハードディスクコントローラに接続されたハードディスクからＯＳを起動させる。この時、どちらかのコントローラに接続されたハードディスクからの起動時のみで起動情報の比較結果が不一致の場合には、そのコントローラのＢＩＯＳが障害を発生させていることがわかる。
【実施例２】
【０１２９】
図１６は、実施例２に係るサーバ装置の各ハードウェア及びプログラムによる処理の流れを説明するための図である。図１６の点線で囲われたプログラムは、メモリ上に展開されたプログラムを表している。図１６において図１１と同じ符号を有する各部は、特に説明の無い限り同じ機能を有するものとする。【０１３０】
本実施例に係るサーバ装置１は、実施例１の場合と異なりＵＥＦＩ（Unified  Extensible  Firmware  Interface）に準拠したＢＩＯＳ２２を有している。サーバ装置１にＢＩＯＳ２２がインストールされている場合、ＯＳもＵＥＦＩ対応のＯＳを用いることになる。図１６のハードディスク１５〜１７には、ＵＥＦＩ対応のＯＳが格納されている。そして、ハードディスク１５〜１７には、実施例１のＯＳと異なり、ＨＤＤ−ＭＢＲではなくＯＳローダが格納されている。また、ＦＰＤ１４には、実施例１のＦＰＤ−ＭＢＲ４１ではなくスタートアップ４４が格納されている。スタートアップ４４は、電源投入後最初にＢＩＯＳ２２によって起動されるプログラムである。【０１３１】
図１７は、実施例２に係るブート制御情報に記載されている項目の一例及びその内容を示す図である。本実施例に係るサーバ装置１は、図１７に示す項目をブート制御情報として有している。本実施例に係るブート制御情報は、実施例１の場合のブート制御情報からＨＤＤブートモードフラグを除いたものである。【０１３２】
サーバ装置１に電源が投入されると、ＣＰＵ１０は、ＢＩＯＳ２２をメインメモリ１１上にＢＩＯＳ２２１として展開し、ＢＩＯＳ２２１に制御を移す。ＢＩＯＳ２２１は、不揮発性メモリ１３に格納されているブートデバイス順番テーブル３１を読込み、ＵＥＦＩで規定されているＥＦＩ（Extensible  Firmware  Interface）シェルの自動起動の機能を利用してＦＰＤ１４からスタートアップ４４を読み込む。スタートアップ４４は、ＦＰＤ１４から制御プログラム４２を読み込み、そして、スタートアップ４４は、メインメモリ１１上に制御プログラム４２１として展開し、制御プログラム４２１に制御を移す。ここで、ＢＩＯＳ２２１による制御プログラム４２の展開の詳細を説明する。【０１３３】
図１８は、ＵＥＦＩに対応したＯＳでのブートデバイス順番テーブルの一例の図である。ＢＩＯＳ２２１が用いるブートデバイス順番テーブル３１は、図１８に示すようなテーブルである。図１８のように、本実施例におけるブートデバイス順番テーブル３１は、ブートデバイス４０１として、各ハードディスクが記載されている。そして、例えば、ＢＩＯＳ２２１は最初にブートデバイス順番テーブル３１の最初のデバイスとしてＥＦＩシェルを起動する。その状態で、ＢＩＯＳ２２１がｅｘｉｔコマンドを発行すると、ＥＦＩシェルが終了し、次の順番のブートデバイス（図１８では、ＨＤＤ１５）からブートが開始される。【０１３４】
ＢＩＯＳ２２１は、ＦＰＤ１４に格納されているスタートアップ４４を検索する。そして、ＢＩＯＳ２２１は、ＦＰＤ１４上のスタートアップ４４をメインメモリ１１に展開し（不図示）、展開したスタートアップ４４に制御を移す。スタートアップの処理は簡単なシェルプログラムである。そして、展開されたスタートアップ４４が、制御プログラム４２を読込み、メインメモリ１１上に制御プログラム４２１として展開する。【０１３５】
制御プログラム４２１は、最初に起動したタイミングで、起動可能なＨＤＤ数及びブートデバイス順番テーブル３１をＢＩＯＳ２２１から取得する。そして、制御プログラム４２１は、取得した起動可能なＨＤＤ数をブート制御情報４３に登録する。さらに、制御プログラム４２は、取得したブートデバイス順番テーブル３１の情報をブート制御情報４３のＨＤＤ認識優先度テーブルに登録する。図１９は、実施例２に係るＨＤＤ認識優先度テーブルの優先度の変更について説明するための図である。制御プログラム４２が取得したブートデバイス順番テーブル３１の情報をブート制御情報４３のＨＤＤ認識優先度テーブルに登録した状態が、図１９のテーブル４０２である。テーブル４０２は紙面に向かって左側に向かって優先度が上がっている。すなわち、テーブル４０２では、一番左のＨＤＤ１５がもっとも起動の優先度が高いデバイスである。【０１３６】
制御プログラム４２１は、ブート制御情報４３のＨＤＤ優先度テーブルを用いて起動対象とするＨＤＤを決定する。【０１３７】
ここで、ＯＳローダやＯＳは、例えば、ＨＤＤからのデータ読出しなどをＢＩＯＳ２２１の機能に対してプロトコル呼出しを行うことで実行する。すなわち、本実施例では、ＯＳローダやＯＳによるＢＩＯＳ２２１の機能のプロトコル呼出しにおいて、呼出情報及び復帰情報が用いられる。このプロトコル呼出しでは、プロトコル処理テーブルが用いられ、ＯＳローダやＯＳは、プロトコル処理テーブルに記載されたアドレスに対応する処理が呼出される。【０１３８】
そこで、制御プログラム４２１は、プロトコル処理テーブルで指定されるアドレスを、起動情報の取得及びＢＩＯＳ２２１の処理の呼び出しを行う処理のアドレスに変更する。その後、制御プログラム４２１は、決定したＨＤＤに格納されているＯＳローダを呼出し、メインメモリ１１に展開する。そして、メインメモリ１１に展開されたＯＳローダがＯＳを起動する。そして、ＯＳのリグレッション試験の完了後に、再起動が行われ、制御プログラム４２１が起動される。【０１３９】
制御プログラム４２１は、ブート制御情報４３のＨＤＤ優先度認識テーブルをテーブル４０２の状態からテーブル４０３の状態に変更する。【０１４０】
そして、制御プログラム４２１は、ＯＳの起動における呼出情報及び復帰情報の取得を行う。そして、制御プログラム４２１は、テーブル４０３の情報を用いて起動対象のＨＤＤを決定し、次のＨＤＤからのＯＳのブートを開始させる。【０１４１】
そして、制御プログラム４２１は、ブート制御情報４３を確認して、起動可能なＨＤＤの全てでリグレッション試験が完了したか否かを判定する。制御プログラム４２１は、ブート制御情報４３のブート可能ＨＤＤ数とブート完了ＨＤＤ数が一致している場合に、起動可能なＨＤＤの全てでリグレッション試験が完了したと判定する。【０１４２】
その後、ＯＳによりメインメモリ１１上に展開されたテストプログラム１１３によって、取得した起動情報とその期待値情報との比較が行われ、その比較結果がＯＳのログとして登録される。【０１４３】
ここで、ＯＳによるＢＩＯＳ２２１の呼出しにおける呼出情報及び復帰情報の取得について、図２０を参照して説明する。図２０は、実施例２における呼出情報及び復帰情報の取得処理の一例を説明するための図である。図２０における実線の四角で囲われた部分は、動作する対象及びその対象が行う処理を表している。ここで、図２０では、ＯＳがＢＩＯＳの機能である処理Ａを呼出す場合で説明する。また、以下では説明の都合上、プログラム（ＯＳなど）同士がデータや命令の授受を直接行っているように説明しているが、実際には、プログラム間でのデータや命令の授受はＣＰＵ１０を介して行われる。【０１４４】
まず、ＯＳが、ブート処理を実行し、そのブート処理を行っている最中にＢＩＯＳの機能を実行する処理Ａを呼出す。具体的には、ＯＳは、ＢＩＯＳに対してプロトコル呼出しを行うことでＢＩＯＳの処理Ａを呼出す。そして、ＯＳがプロトコル呼出しを行うためのプロトコル処理テーブルが存在する。このプロトコル処理テーブルには、ＯＳにより呼出されたＢＩＯＳの処理へのアドレスが記載されている。すなわち、ＯＳは、プロトコル処理テーブルに記載されたアドレスで指定された処理に制御を移すように呼出しを行う（ステップＳ５０１）。ここで、制御プログラムは、予めプロトコル処理テーブルに設定されているＢＩＯＳ２２１の処理のアドレスを起動情報の取得及びＢＩＯＳの処理の呼出しを実行する処理のアドレスに書き換えている。ここでは、制御プログラムは、呼出された処理Ａに対応する処理として処理Ａ’にアドレスを書き換えている。【０１４５】
ＯＳは、処理Ａの呼出しを行うために、指定されたプロトコル呼出しに対応するプロトコル処理テーブルのアドレスを参照する。そして、上述したようにプロトコル処理テーブルの処理Ａのアドレスが処理Ａ’に変更されているので、ＯＳは、処理Ａへのプロトコル呼出しに対応するプロトコル処理テーブルに記載された処理Ａ’のアドレス  を取得する。そして、ＯＳは、取得したアドレスが制御プログラムの処理Ａ’を指していることを確認し、制御プログラムの処理Ａ’へ制御を移す（ステップＳ５０２）。【０１４６】
次に、制御プログラムは、自己の処理Ａ’を実施する。この処理Ａには、呼出情報の取得、ＢＩＯＳの処理Ａの呼び出し及び復帰情報取得が含まれる。ここでは、制御プログラムが実施する処理Ａ’は、呼出情報を取得した後、ＢＩＯＳの処理Ａを呼出す段階までの動作を行う（ステップＳ５０３）。【０１４７】
ＢＩＯＳは、呼出された処理Ａを実施する。そして、処理Ａの完了後、ＢＩＯＳは、復帰情報を制御プログラムの処理Ａ’へ送信する（ステップＳ５０４）。【０１４８】
そして、制御プログラムの処理Ａ’は、ＢＩＯＳから受信した復帰情報を取得する。さらに、制御プログラムの処理Ａ’の復帰情報をＯＳに送信して、ＯＳに制御を移し、ＯＳのブート処理を継続させる（ステップＳ５０５）。【０１４９】
次に、図２１を参照して、本実施例に係るリグレッション試験における全体的な流れを説明する。図２１は、実施例２に係るリグレッション試験における全体的な処理のフローチャートである。ここでは、図１６の各ハードウェア及びプログラムを処理の動作主体として説明する。【０１５０】
制御プログラム４２１が開始される（ステップＳ６０１）。【０１５１】
制御プログラム４２１は、ブート制御情報４３の初回起動フラグが１か否かを判定する（ステップＳ６０２）。初回起動フラグが１の場合（ステップＳ６０２肯定）、制御プログラム４２１は、ブート制御情報４３のＨＤＤ認識優先度テーブルの優先度を変更する（ステップＳ６０３）。【０１５２】
これに対して、初回起動フラグが０だった場合（ステップＳ６０２否定）、制御プログラム４２１は、ブート可能なＨＤＤ数及びブートデバイス順番テーブル３１をＢＩＯＳ２２１から取得する。そして、制御プログラム４２１は、ブート制御情報４３にブート可能なＨＤＤ数及びＨＤＤ認識優先度テーブルを設定する（ステップＳ６０４）。そして、制御プログラム４２１は、ブート制御情報４３の初回起動フラグを１にセットする（ステップＳ６０５）。【０１５３】
そして、制御プログラム４２１は、ブート制御情報４３の接続可能ＨＤＤ数がブート完了ＨＤＤ数と一致するか否かを判定する（ステップＳ６０６）。接続可能ＨＤＤ数がブート完了ＨＤＤ数と一致しない場合（ステップＳ６０６否定）、制御プログラム４２１は、ブート完了ＨＤＤ数をインクリメントする（ステップＳ６０７）。【０１５４】
そして、制御プログラム４２１は、ＯＳによるＢＩＯＳ呼出しのプロトコル処理テーブルの内容を、呼出情報及び復帰情報の取得を行う処理のアドレスに書き換える（ステップＳ６０８）。【０１５５】
そして、制御プログラム４２１は、書換え前のプロトコル処理テーブルの内容を保持し、呼出情報及び復帰情報の取得の処理の終了後にＢＩＯＳ呼出しを行うように設定する（ステップＳ６０９）。【０１５６】
制御プログラム４２１は、起動対象のＨＤＤのＯＳローダを読込みＯＳを実行する（ステップＳ６１０）。【０１５７】
ＯＳは、起動処理を実行する。そして、制御プログラム４２１は、呼出情報及び復帰情報の取得を行う（ステップＳ６１１）。ＯＳの起動完了後、ステップＳ６０１に戻る。【０１５８】
これに対して、接続可能ＨＤＤ数がブート完了ＨＤＤ数と一致する場合（ステップＳ６０６肯定）、制御プログラム４２１は、処理を終了する。【０１５９】
以上に説明したように、本実施例に係る情報処理装置は、ＵＥＦＩに準拠したＢＩＯＳを用いた場合においても、実施例１と同様の効果を得ることができる。
【符号の説明】
【０１６０】
１  サーバ装置
１０  ＣＰＵ
１１  メインメモリ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  ＦＰＤ
１５〜１７  ＨＤＤ
２１  ＢＩＯＳ
３１  ブートデバイス順番テーブル
３２  ＨＤＤ認識順番テーブル
４１  ＦＰＤ−ＭＢＲ
４２  制御プログラム
４３  ブート制御情報
５１  ＨＤＤ−ＭＢＲ
５２  ＯＳ
５３  テストプログラム
５４  期待値情報
１０２  起動情報取得部
１０３  ブート制御部
１０４  テーブル記憶部
１０５  ブート制御情報記憶部
１０６  ＯＳ記憶部
１０７  ＢＩＯＳ記憶部
１０８  リグレッション解析処理部
１０９  ログ記憶部
１２１  呼出情報取得部
１２２  復帰情報取得部
１３１  ＢＩＯＳ起動処理部
１３２  ＦＰＤＭＢＲ処理部
１３３  ＨＤＤブート処理部
１３４  ＯＳ起動処理部
１３５  ＢＩＯＳ機能処理部
【図１】
2012117556.tif 000003
【図２】
2012117556.tif 000004
【図３】
2012117556.tif 000005
【図４】
2012117556.tif 000006
【図５】
2012117556.tif 000007
【図６】
2012117556.tif 000008
【図７】
2012117556.tif 000009
【図８】
2012117556.tif 000010
【図９】
2012117556.tif 000011
【図１０】
2012117556.tif 000012
【図１１】
2012117556.tif 000013
【図１２】
2012117556.tif 000014
【図１３】
2012117556.tif 000015
【図１４】
2012117556.tif 000016
【図１５】
2012117556.tif 000017
【図１６】
2012117556.tif 000018
【図１７】
2012117556.tif 000019
【図１８】
2012117556.tif 000020
【図１９】
2012117556.tif 000021
【図２０】
2012117556.tif 000022
【図２１】
2012117556.tif 000023
【国際調査報告】
2012117556.tif 000024
2012117556.tif 000025