(57)【要約】【課題】本発明の課題は、情報処理装置の障害を効率よく調査することができる方法を提供することである。【解決手段】課題を解決するために、複数のドライバを記憶する第１記憶部を有する情報処理装置の制御方法において、処理装置が、前記情報処理装置の第１起動の際に、前記ドライバに対応する識別情報を第２記憶部に書き込むと共に前記ドライバを実行し、前記複数のドライバの実行が完了すると、前記第２記憶部に前記情報処理装置の初期化処理が完了したことを示す第１情報を書き込み、前記情報処理装置の前記第１起動の後の第２起動の際に、前記第２記憶部に前記第１情報が書き込まれていない場合、前記情報処理装置に着脱自在に接続可能な記憶媒体に記憶された複数のドライバを実行し、前記記憶媒体に記憶された複数のドライバの実行が完了すると、前記第２記憶部に書き込まれている識別情報を表示する。【選択図】図１
2012198604.tif 000002
【特許請求の範囲】
【請求項１】
処理装置と、周辺機器を動作させるための複数のドライバと前記複数のドライバの識別情報とをそれぞれ対応付けて記憶する第１記憶部と、情報を格納する第２記憶部とを有する情報処理装置の制御方法において、
前記処理装置が、
前記情報処理装置の第１起動の際に、前記ドライバに対応する識別情報を前記第２記憶部に書き込むと共に前記ドライバを実行し、
前記複数のドライバの実行が完了すると、前記第２記憶部に前記情報処理装置の初期化処理が完了したことを示す第１情報を書き込み、
前記情報処理装置の前記第１起動の後の第２起動の際に、前記第２記憶部に前記第１情報が書き込まれていない場合、前記情報処理装置に着脱自在に接続可能な記憶媒体に記憶された複数のドライバを実行し、
前記記憶媒体に記憶された複数のドライバの実行が完了すると、前記第２記憶部に書き込まれている識別情報を表示する、
ことを特徴とする情報処理装置の制御方法。
【請求項２】
前記処理装置は、前記第１記憶部に記憶された複数のドライバのうちいずれか１つを実行中に、前記情報処理装置に不具合が発生し、前記情報処理装置が終了した場合、前記第２記憶部に前記記憶媒体に記憶された複数のドライバの実行を命令する第２情報を書き込む、
ことを特徴とする請求項１記載の情報処理装置の制御方法。
【請求項３】
前記処理装置は、前記第２記憶部に前記第２情報が格納されている場合、前記記憶媒体に記憶された複数のドライバを実行する、
ことを特徴とする請求項２記載の情報処理装置の制御方法。
【請求項４】
周辺機器を動作させるための複数のドライバと前記複数のドライバの識別情報とをそれぞれ対応付けて記憶する第１記憶部と、情報を格納する第２記憶部とを有する情報処理装置の制御プログラムであって、
前記情報処理装置に、
前記情報処理装置の第１起動の際に、前記ドライバに対応する識別情報を前記第２記憶部に書き込むと共に前記ドライバを実行し、
前記複数のドライバの実行が完了すると、前記第２記憶部に前記情報処理装置の初期化処理が完了したことを示す第１情報を書き込み、
前記情報処理装置の前記第１起動の後の第２起動の際に、前記第２記憶部に前記第１情報が書き込まれていない場合、前記情報処理装置に着脱自在に接続可能な記憶媒体に記憶された複数のドライバを実行し、
前記記憶媒体に記憶された複数のドライバの実行が完了すると、前記第２記憶部に書き込まれている識別情報を表示する、
処理を実行させるための情報処理装置の制御プログラム。
【請求項５】
周辺機器を動作させるための複数のドライバと前記複数のドライバの識別情報とをそれぞれ対応付けて記憶する第１記憶部を有する情報処理装置において、
情報を格納する第２記憶部と、
前記情報処理装置の第１起動の際に、前記ドライバに対応する識別情報を前記第２記憶部に書き込むと共に前記ドライバを実行し、前記複数のドライバの実行が完了すると、前記第２記憶部に前記情報処理装置の初期化処理が完了したことを示す第１情報を書き込む処理部と、を有し、
前記処理部は、前記情報処理装置の前記第１起動の後の第２起動の際に、前記第２記憶部に前記第１情報が書き込まれていない場合、前記情報処理装置に着脱自在に接続可能な記憶媒体に記憶された複数のドライバを実行し、前記記憶媒体に記憶された複数のドライバの実行が完了すると、前記第２記憶部に書き込まれている識別情報を表示する処理部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置の制御方法、制御プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
近年、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）に対し新機能を追加したＵＥＦＩ（Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）が利用されるようになってきている。
【０００３】
ＵＥＦＩは、複数の開発ベンダから提供されたＰＥＩ（Ｐｒｅ  ＥＦＩ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ）モジュール及びＤＸＥ（Ｄｒｉｖｅｒ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｏｒｎｍｅｎｔ）モジュールを有する。情報処理装置の電源がＯＮになると、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の初期化が行われ、ＣＰＵのキャッシュ上でＰＥＩモジュールが実行される。ＰＥＩモジュールによって、メモリ等の初期化が行われた後、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）ＲＯＭやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリなどの他ストレージデバイスに保存されたＤＸＥモジュールがメモリに展開される。メモリ上でＤＸＥモジュールが実行されると、リソース割り当てやデバイスの設定が行われる。その後、ＢＤＳ（Ｂｏｏｔ  Ｄｅｖｉｃｅ  Ｓｅｌｅｃｔ）フェーズでブートマネージャーによる起動デバイスの選択が行われ、起動デバイスに保存されているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）へ処理が受け渡される。
【０００４】
ここで、ＰＯＳＴ（Ｐｏｗｅｒ−Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）処理の過程で起動不可が発生した場合、通常はデバック機器を情報処理装置に接続して起動不可の原因となったＰＥＩモジュールまたはＤＸＥモジュールを特定する。また、再現率が低い場合や、情報処理装置にデバック機器が接続できない場合は、開発ツールのディスプレイであるＩ／Ｏ ＰＯＲＴ ０ｘ８０／０ｘ８１への出力コードをＢＩＯＳに追加し、ＰＯＳＴコードとして表示させて起動不可の原因となるＰＥＩ/ＤＸＥモジュールを特定している。
【０００５】
例えば、ＢＩＯＳ情報の更新時に、不意の電源断等により更新作業が失敗した場合に、更新前のＢＩＯＳ情報との差分データから更新後のＢＩＯＳ情報を生成する技術がある（特許文献１）。
【０００６】
また、例えば、ＢＩＯＳをフラッシュＲＯＭと複数のフラッシュメモリに記憶し、ＢＩＯＳの書き換えに失敗している場合、別のＯＳに切り替えると共に、切り替えたフラッシュメモリの番号を表示する技術がある（特許文献２）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−３１６５８２号公報
【特許文献２】特開２００７−３２３４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＵＥＦＩでは複数の開発ベンダから提供されたＰＥＩモジュールとＤＸＥモジュールとを有し、各ドライバにはＩ／Ｏ ＰＯＲＴ ０ｘ８０／０ｘ８１への出力が組み込まれたものも存在する。ただし、その出力値は開発ベンダ間で一貫性がなく、出力値より不具合箇所の特定が困難である。また、障害を調査するために、ＰＥＩ/ＤＸＥモジュール内にＩ／Ｏ ＰＯＲＴ ０ｘ８０／０ｘ８１への出力コードを追加すると、それにより関連するコードの実行タイミングが変化することで障害の再現頻度に影響をあたえる。さらに、そのようなＵＥＦＩを適用するためにＵＥＦＩを更新した上で再度の再現確認が必要となり調査効率が低下する。
【０００９】
本技術の開示での課題は、情報処理装置の障害を効率よく調査することができる方法を提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、処理装置と、周辺機器を動作させるための複数のドライバと前記複数のドライバの識別情報とをそれぞれ対応付けて記憶する第１記憶部と、情報を格納する第２記憶部とを有する情報処理装置の制御方法において、前記処理装置が、前記情報処理装置の第１起動の際に、前記ドライバに対応する識別情報を前記第２記憶部に書き込むと共に前記ドライバを実行し、前記複数のドライバの実行が完了すると、前記第２記憶部に前記情報処理装置の初期化処理が完了したことを示す第１情報を書き込み、前記情報処理装置の前記第１起動の後の第２起動の際に、前記第２記憶部に前記第１情報が書き込まれていない場合、前記情報処理装置に着脱自在に接続可能な記憶媒体に記憶された複数のドライバを実行し、前記記憶媒体に記憶された複数のドライバの実行が完了すると、前記第２記憶部に書き込まれている識別情報を表示する。
【発明の効果】
【００１１】
本開示の技術の一側面によれば、情報処理装置の障害を効率よく調査することができる。
【図面の簡単な説明】
【００１２】
【図１】情報処理装置のハードウェア構成の一例を示す図である。
【図２】ＵＥＦＩの起動処理を示すフローチャート（その１）である。
【図３】ＰＥＩドライバの実行処理を示すフローチャートである。
【図４】ＵＥＦＩの起動処理を示すフローチャート（その２）である。
【図５】ＤＸＥドライバの実行処理を示すフローチャートである。
【図６】ＵＳＢメモリ起動モードの設定処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本実施形態における情報処理装置について説明する。
【００１４】
図１は、本実施形態における情報処理装置１０のハードウェア構成の一例を簡略的に示すブロック図である。情報処理装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１によって全体が制御されている。
【００１５】
ＣＰＵ１０１及び主記憶装置１０２には、システムコントローラ１０３が接続されている。システムコントローラ１０３は、ＣＰＵ１０１と主記憶装置１０２との間のデータ転送や、ＣＰＵ１０１とバス１０４との間のデータ転送を制御する。さらに、システムコン
トローラ１０３には、バス１０４を介して、グラフィックスコントローラ１０５、ＥＰ−ＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０６、ネットワークコントローラ１０７、電源１０９、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）１１１、キーボードコントローラ５０及びディスクコントローラ１１２が接続されている。
【００１６】
主記憶装置１０２には、ＣＰＵ１０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。主記憶装置１０２には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられている。
【００１７】
ディスクコントローラ１１２には、ハードディスク１１３が接続されている。ハードディスク１１３には、ＯＳやアプリケーションのプログラム、各種データが格納される。
【００１８】
ＥＰ−ＲＯＭ１０６には、例えば、ＵＥＦＩ（Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）プログラムが格納される。
【００１９】
ＵＥＦＩは、ＰＥＩ（Ｐｒｅ  ＥＦＩ  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ）モジュール及びＤＸＥ（Ｄｒｉｖｅｒ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｏｒｎｍｅｎｔ）モジュールから成る。ＰＥＩモジュールは、ＣＰＵ等を初期化する３２ビットのコードである。ＰＥＩモジュールは、複数のＰＥＩドライバから成る。各ＰＥＩドライバは、ＧＵＩＤ（Ｇｌｏｂａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）を有する。電源１０９がＯＮになると、ＣＰＵ１０１の初期化が行われた後、ＣＰＵ１０１のキャッシュ上で、各ＰＥＩドライバが実行される。各ＰＥＩドライバは、主記憶装置１０２等の初期化処理を行う。ＤＸＥモジュールは、各デバイスの初期化を行う６４ビットのコードである。ＤＸＥモジュールは、複数のＤＸＥドライバから成る。各ＤＸＥドライバは、ＧＵＩＤを有する。主記憶装置１０２等の初期化処理が終了した後に、主記憶装置１０２上で、各ＤＸＥドライバが実行される。各ＤＸＥドライバは、デバイス等の設定を行う。
【００２０】
ＣＭＯＳ１１１は、ＮＶＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  ＲＡＭ）として機能し、ＧＵＩＤ等の各種情報を格納する。
【００２１】
ＵＳＢメモリ１０８は、ＤＸＥモジュールを格納する。ＵＳＢメモリ１０８に格納されたＤＸＥモジュールも、複数のＤＸＥドライバから成り、ＤＸＥドライバは、ＣＭＯＳ１１１に格納されたＧＵＩＤを表示する機能を有する。ＵＳＢメモリ１０８に格納されたＤＸＥモジュールは、設計者がコードを改良することができるため、新たな機能を追加することができる。
【００２２】
グラフィックスコントローラ１０５には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｍｏｎｉｔｏｒ）等の表示部１１４が接続されており、ＣＰＵ１０１からの命令に従って画像を表示部１１４の画面に表示させる。
【００２３】
ネットワークコントローラ１０７は、ネットワークと接続されており、ネットワークを介して、ＣＰＵ１０１もしくはハードディスク１１３と他の情報処理装置との間で、データの送受信を行う。
【００２４】
キーボードコントローラ５０には、操作部２０が接続されており、操作部２０から送られてくる信号を、バス１０４を介してＣＰＵ１０１に送信する。
【００２５】
電源１０９は、不図示の電源線を介して情報処理装置１０内の各ハードウェアに対して電力を供給する。
【００２６】
このようなハードウェアによって、情報処理装置１０の処理機能を実現することができる。
【００２７】
図２を用いて、本実施形態におけるＵＥＦＩの起動処理について説明する。
【００２８】
ステップＳ１０１において、ユーザによって操作部２０を介して電源１０９がＯＮにされる。処理はステップＳ１０２へ移行する。
【００２９】
ステップＳ１０２において、ＣＰＵ１０１は、ＣＰＵ１０１の初期化処理を行う。処理はステップＳ１０３へ移行する。
【００３０】
ステップＳ１０３において、ＣＰＵ１０１は、ＰＯＳＴ（Ｐｏｗｅｒ−Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）完了フラグがＣＭＯＳ１１１に格納されているか否かを判定する。ＰＯＳＴ完了フラグは第１情報の一例である。ＰＯＳＴ完了フラグがＣＭＯＳ１１１に格納されている場合、処理はステップＳ１０４へ移行する。一方、ＰＯＳＴ完了フラグがＣＭＯＳ１１１に格納されていない場合、処理はステップＳ１０５へ移行する。
【００３１】
ステップＳ１０５において、ＣＰＵ１０１は、情報処理装置１０がＵＳＢメモリ起動モードに設定されているか否かを判定する。情報処理装置１０がＵＳＢメモリ起動モードに設定されている場合、処理はステップＳ１０７へ移行する。一方、情報処理装置１０がＵＳＢメモリ起動モードに設定されていない場合、処理はステップＳ１０４へ移行する。
【００３２】
ステップＳ１０４において、ＣＰＵ１０１は、ＣＭＯＳ１１１に格納されているＰＯＳＴ完了フラグを消去する。処理はステップＳ１０６へ移行する。
【００３３】
ステップＳ１０６において、ＣＰＵ１０１は、ＰＥＩドライバの実行処理を行う。処理は図３のステップＳ１０６１へ移行する。
【００３４】
図３を用いて、本実施形態におけるＰＥＩドライバの実行処理について説明する。
【００３５】
ステップＳ１０６１において、ＣＰＵ１０１は、ＥＰ−ＲＯＭ１０６に格納されている実行すべきＰＥＩモジュールの数であるＮをインクリメントし、新たな値を取得する。処理はステップＳ１０６２へ移行する。
【００３６】
ステップＳ１０６２において、ＣＰＵ１０１は、ステップＳ１０６１において取得した値に対応するＰＥＩモジュールをＥＰ−ＲＯＭ１０６から検出する。処理はステップＳ１０６３へ移行する。
【００３７】
ステップＳ１０６３において、ＣＰＵ１０１は、ステップＳ１０６２において検出したＰＥＩモジュールをＣＰＵ１０１のキャッシュにロードする。処理はステップＳ１０６３へ移行する。
【００３８】
ステップＳ１０６３において、ＣＰＵ１０１は、ＣＰＵ１０１のキャッシュにロードしたＰＥＩモジュールから当該ＰＥＩモジュールに対応するＧＵＩＤを取得する。処理はステップＳ１０６５へ移行する。
【００３９】
ステップＳ１０６５において、ＣＰＵ１０１は、ＵＳＢメモリ起動フラグがＣＭＯＳ１１１に格納されているか否かを判定する。ＵＳＢメモリ起動フラグは第２情報の一例である。ＵＳＢメモリ起動フラグがＣＭＯＳ１１１に格納されている場合、処理はステップＳ１０６７へ移行する。一方、ＵＳＢメモリ起動フラグがＣＭＯＳ１１１に格納されていない場合、処理はステップＳ１０６６へ移行する。
【００４０】
ステップＳ１０６６において、ＣＰＵ１０１は、ステップＳ１０６４において取得したＧＵＩＤをＣＭＯＳ１１１に格納する。処理はステップＳ１０６７へ移行する。
【００４１】
ステップＳ１０６７において、ＣＰＵ１０１は、ステップＳ１０６１において取得した値に対応するＰＥＩモジュールを実行する。処理はステップＳ１０６８へ移行する。
【００４２】
ステップＳ１０６８において、ＣＰＵ１０１は、ステップＳ１０６１において取得した値が、実行すべきＰＥＩモジュールの総数であるＸ１となったか否かを判定する。ステップＳ１０６１において取得した値が、実行すべきＰＥＩモジュールの総数であるＸ１となった場合、処理はステップＳ１０６９へ移行する。一方、ステップＳ１０６１において取得した値が、実行すべきＰＥＩモジュールの総数であるＸ１に満たない場合、処理はステップＳ１０６１に戻り、実行すべきＰＥＩモジュールを全て実行するまで、上述した処理を繰り返す。
【００４３】
ステップＳ１０６９において、ＣＰＵ１０１は、ＤＸＥＩＰＬ（ＤＸＥ  Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄ）を実行する。処理は図４のステップＳ１０７へ移行する。
【００４４】
なお、上述したフローでは、ＰＥＩドライバの実行前に当該ＰＥＩドライバのＧＵＩＤをＣＭＯＳ１１１に書き込んでいるが、ＰＥＩドライバの実行後に、当該ＰＥＩドライバのＧＵＩＤをＣＭＯＳ１１１に書き込んでも良い。
【００４５】
図４のステップＳ１０７において、ＣＰＵ１０１は、ＵＳＢメモリ起動フラグがＣＭＯＳ１１１に格納されているか否かを判定する。ＵＳＢメモリ起動フラグがＣＭＯＳ１１１に格納されている場合、処理はステップＳ１１２へ移行する。一方、ＵＳＢメモリ起動フラグがＣＭＯＳ１１１に格納されていない場合、処理はステップＳ１０８へ移行する。
【００４６】
ステップＳ１０８において、ＣＰＵ１０１は、ＤＸＥモジュールの実行処理を行う。処理はステップＳ１０９へ移行する。
【００４７】
図５を用いて、本実施形態におけるＤＸＥドライバの実行処理について説明する。
【００４８】
ステップＳ１０８１において、ＥＰ−ＲＯＭ１０６に格納されている実行すべきＤＸＥモジュールの数であるＮをインクリメントし、新たな値を取得する。処理はステップＳ１０８２へ移行する。
【００４９】
ステップＳ１０８２において、ＣＰＵ１０１は、ステップＳ１０８１において取得した値に対応するＤＸＥモジュールをＥＰ−ＲＯＭ１０６から検出する。処理はステップＳ１０８３へ移行する。
【００５０】
ステップＳ１０８３において、ＣＰＵ１０１は、ステップＳ１０８２において検出したＤＸＥモジュールを主記憶装置１０２にロードする。処理はステップＳ１０８４へ移行する。
【００５１】
ステップＳ１０８４において、ＣＰＵ１０１は、主記憶装置１０２にロードしたＤＸＥモジュールから当該ＤＸＥモジュールに対応するＧＵＩＤを取得する。処理はステップＳ１０８５へ移行する。
【００５２】
ステップＳ１０８５において、ＣＰＵ１０１は、ステップＳ１０８１において取得した値に対応するＤＸＥモジュールを実行する。処理はステップＳ１０８６へ移行する。
【００５３】
ステップＳ１０８６において、ＣＰＵ１０１は、ステップＳ１０８１において取得した値が、実行すべきＤＸＥモジュールの総数であるＸ２となったか否かを判定する。ステップＳ１０８１において取得した値が、実行すべきＤＸＥモジュールの総数であるＸ２となった場合、処理は図４のステップＳ１０９へ移行する。一方、ステップＳ１０８１において取得した値が、実行すべきＤＸＥモジュールの総数であるＸ２に満たない場合、処理はステップＳ１０８１に戻り、実行すべきＤＸＥモジュールを全て実行するまで、上述した処理を繰り返す。
【００５４】
図４のステップＳ１０９において、ＣＰＵ１０１は、ＰＯＳＴ完了フラグをＣＭＯＳ１１１に格納する。処理はステップＳ１１０へ移行する。
【００５５】
ステップＳ１１０において、ＣＰＵ１０１は、ブートマネージャーを実行する。処理はステップＳ１１１へ移行する。
【００５６】
ステップＳ１１１において、ＣＰＵ１０１は、ＯＳを起動する。処理は終了する。
【００５７】
ここで、図６を用いて、図３で説明したＰＥＩドライバの実行中に、情報処理装置１０がハングした場合の処理について説明する。ＰＥＩドライバの実行中に、情報処理装置１０がハングすると、表示部１１４には同じ画像が表示され続けるので、ユーザは情報処理装置１０がハングしたと認識することができる。情報処理装置１０のハング原因としては、例えば、主記憶装置１０２のメモリレイテンシの設定が適切に行われていないため、ＰＥＩドライバと主記憶装置１０２との相性が悪くなってしまうことが挙げられる。この場合は、主記憶装置１０２のメモリレイテンシの設定を適切に行ったり、主記憶装置１０２を他のメーカーのものに変更したりすることが必要になる。
【００５８】
ステップＳ２０１において、ＣＰＵ１０１は、ユーザによって操作部２０を介して電源ボタンが長押しされたか否かを判定する。電源ボタンが長押しされた場合、処理はステップＳ２０２へ移行する。一方、電源ボタンが長押しされていない場合、処理はステップＳ２０１に戻る。
【００５９】
ステップＳ２０２において、ＣＰＵ１０１は、情報処理装置１０の強制終了を行う。処理はステップＳ２０３へ移行する。
【００６０】
ステップＳ２０３において、ユーザによってＵＳＢメモリ起動モードの設定が行われる。ＵＳＢメモリ起動モードの設定は、例えば、情報処理装置１０に標準で装備されているＣＲＩＳＩＳＰＩＮをショートさせればＵＳＢメモリ起動モードとなるように設定すれば良い。ＵＳＢメモリ起動モードが設定されると、図２のステップＳ１０５において、ＣＰＵ１０１は、情報処理装置１０がＵＳＢメモリ起動モードに設定されていると判定することができ、ステップＳ１０７において、ＣＰＵ１０１は、ＣＭＯＳ１１１にＵＳＢメモリ起動フラグを書き込むことができるようになる。
【００６１】
再び、図２乃至図５を用いて、情報処理装置１０がＵＳＢメモリ起動モードに設定され、ユーザによって再起動された場合の処理について説明する。なお、上述した例の主記憶装置１０２のメモリレイテンシが原因で、ＰＥＩドライバを実行時に情報処理装置１０のハングが発生する確率は低いため、情報処理装置１０の再起動後には、ＰＥＩドライバを実行しても情報処理装置１０はハングしないという前提で処理を説明する。
【００６２】
図２のステップＳ１０１において、ユーザによって操作部２０を介して電源１０９がＯＮにされる。処理はステップＳ１０２へ移行する。
【００６３】
ステップＳ１０２において、ＣＰＵ１０１は、ＣＰＵ１０１の初期化処理を行う。処理はステップＳ１０３へ移行する。
【００６４】
ステップＳ１０３において、ＣＰＵ１０１は、ＰＯＳＴ完了フラグがＣＭＯＳ１１１に格納されているか否かを判定する。本実施形態では、ＰＯＳＴ処理が完了する前に、情報処理装置１０が強制終了されているため、ＰＯＳＴ完了フラグがＣＭＯＳ１１１に格納されておらず、処理はステップＳ１０５へ移行する。
【００６５】
ステップＳ１０５において、ＣＰＵ１０１は、情報処理装置１０がＵＳＢメモリ起動モードになっているか否かを判定する。本実施形態では、情報処理装置１０はＵＳＢメモリ起動モードになっているため、処理はステップＳ１０７へ移行する。
【００６６】
ステップＳ１０７において、ＣＰＵ１０１は、ＵＳＢメモリ起動フラグをＣＭＯＳ１１１に格納する。処理はステップＳ１０６へ移行する。
【００６７】
ステップＳ１０６において、ＣＰＵ１０１は、ＰＥＩドライバの実行処理を行う。処理は図３のステップＳ１０６１へ移行する。
【００６８】
ステップＳ１０６１において、ＣＰＵ１０１は、ＥＰ−ＲＯＭ１０６に格納されている実行すべきＰＥＩモジュールの数であるＮをインクリメントし、新たな値を取得する。処理はステップＳ１０６２へ移行する。
【００６９】
ステップＳ１０６２において、ＣＰＵ１０１は、ステップＳ１０６１において取得した値に対応するＰＥＩモジュールをＥＰ−ＲＯＭ１０６から検出する。処理はステップＳ１０６３へ移行する。
【００７０】
ステップＳ１０６３において、ＣＰＵ１０１は、ステップＳ１０６２において検出したＰＥＩモジュールをＣＰＵ１０１のキャッシュにダウンロードする。処理はステップＳ１０６３へ移行する。
【００７１】
ステップＳ１０６３において、ＣＰＵ１０１は、ＣＰＵ１０１のキャッシュにダウンロードしたＰＥＩモジュールから当該ＰＥＩモジュールに対応するＧＵＩＤを取得する。処理はステップＳ１０６５へ移行する。
【００７２】
ステップＳ１０６５において、ＣＰＵ１０１は、ＵＳＢメモリ起動フラグがＣＭＯＳ１１１に格納されているか否かを判定する。本実施形態においては、ＵＳＢメモリ起動フラグはＣＭＯＳ１１１に格納されているため、処理はステップＳ１０６７へ移行する。以降、ステップＳ１０６６における実行するＰＥＩドライバのＧＵＩＤのＣＭＯＳ１１１への書き込み処理をスキップすることで、情報処理装置１０のハングの原因となったＰＥＩドライバのＧＵＩＤがＣＭＯＳ１１１に保存されたままになる。
【００７３】
ステップＳ１０６７において、ＣＰＵ１０１は、ステップＳ１０６１において取得した値に対応するＰＥＩモジュールを実行する。処理はステップＳ１０６８へ移行する。
【００７４】
ステップＳ１０６８において、ＣＰＵ１０１は、ステップＳ１０６１において取得した値が、実行すべきＰＥＩモジュールの総数であるＸ１となったか否かを判定する。ステップＳ１０６１において取得した値が、実行すべきＰＥＩモジュールの総数であるＸ１となった場合、処理はステップＳ１０６９へ移行する。一方、ステップＳ１０６１において取得した値が、実行すべきＰＥＩモジュールの総数であるＸ１に満たない場合、処理はステップＳ１０６１に戻り、実行すべきＰＥＩモジュールを全て実行するまで、上述した処理を繰り返す。
【００７５】
ステップＳ１０６９において、ＣＰＵ１０１は、ＤＸＥＩＰＬを実行する。処理は図４のステップＳ１０７へ移行する。
【００７６】
ステップＳ１０７において、ＣＰＵ１０１は、ＵＳＢメモリ起動フラグがＣＭＯＳ１１１に格納されているか否かを判定する。本実施形態では、ＵＳＢメモリ起動フラグがＣＭＯＳ１１１に格納されているため、処理はステップＳ１１２へ移行する。
【００７７】
ステップＳ１１２において、ＣＰＵ１０１は、ＤＸＥドライバの実行処理を行う。
【００７８】
図５を用いて、本実施形態におけるＤＸＥドライバの実行処理について説明する。なお、情報処理装置１０がＵＳＢメモリ起動モードに設定されると、ＣＰＵ１０１は、ＵＥＦＩからＵＳＢメモリ１０８に格納されているＤＸＥドライバのアドレス情報を取得し、当該取得したアドレス情報を参照して、ＤＸＥドライバを主記憶装置１０２に展開して実行する。
【００７９】
ステップＳ１０８１において、ＵＳＢメモリ１０８に格納されている実行すべきＤＸＥドライバの数であるＮをインクリメントし、新たな値を取得する。処理はステップＳ１０８２へ移行する。
【００８０】
ステップＳ１０８２において、ＣＰＵ１０１は、ステップＳ１０８１において取得した値に対応するＤＸＥドライバをＵＳＢメモリ１０８から検出する。処理はステップＳ１０８３へ移行する。
【００８１】
ステップＳ１０８３において、ＣＰＵ１０１は、ステップＳ１０８２において検出したＤＸＥドライバを主記憶装置１０２にダウンロードする。処理はステップＳ１０８４へ移行する。
【００８２】
ステップＳ１０８４において、ＣＰＵ１０１は、主記憶装置１０２にダウンロードしたＤＸＥドライバから当該ＤＸＥドライバに対応するＧＵＩＤを取得する。処理はステップＳ１０８５へ移行する。
【００８３】
ステップＳ１０８５において、ＣＰＵ１０１は、ステップＳ１０８１において取得した値に対応するＤＸＥドライバを実行する。処理はステップＳ１０８６へ移行する。
【００８４】
ステップＳ１０８６において、ＣＰＵ１０１は、ステップＳ１０８１において取得した値が、実行すべきＤＸＥドライバの総数であるＸ２となったか否かを判定する。ステップＳ１０８１において取得した値が、実行すべきＤＸＥドライバの総数であるＸ２となった場合、処理は図４のステップＳ１１２へ移行する。一方、ステップＳ１０８１において取得した値が、実行すべきＤＸＥドライバの総数であるＸ２に満たない場合、処理はステップＳ１０８１に戻り、実行すべきＤＸＥドライバを全て実行するまで、上述した処理を繰り返す。
【００８５】
ステップＳ１１３において、ＣＰＵ１０１は、ＣＭＯＳ１１１に格納されているＵＳＢメモリ起動フラグを消去する。処理はステップＳ１１３へ移行する。
【００８６】
ステップＳ１１４において、ＣＰＵ１０１は、ＣＭＯＳ１１１に格納されているＧＵＩＤをグラフィックスコントローラ１０５を介して表示部１１４に表示する。これによれば、ユーザは、ハング原因となったＰＥＩドライバのＧＵＩＤを取得することができ、ハング原因に対する対策を施すことが可能になる。
【００８７】
以上、本発明の例示的な実施の形態の情報処理装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。ＵＳＢメモリ以外の他の可搬型記録媒体（例えば、ＣＤ、ＤＶＤ、ＦＤ、ＳＤカード等）や着脱自在な記憶装置（例えば、外付けハードディスクも利用可能である。
【符号の説明】
【００８８】
１０  情報処理装置
１０１  ＣＰＵ
１０２  主記憶装置
１０３  システムコントローラ
１０４  バス
１０５  グラフィックスコントローラ
１０６  ＥＰ−ＲＯＭ
１０７  ネットワークコントローラ
１０８  ＵＳＢメモリ
１０９  電源
１１１  ＣＭＯＳ
１１２  ディスクコントローラ
１１３  ハードディスク
２０  操作部
５０  キーボードコントローラ
【図１】
2012198604.tif 000003
【図２】
2012198604.tif 000004
【図３】
2012198604.tif 000005
【図４】
2012198604.tif 000006
【図５】
2012198604.tif 000007
【図６】
2012198604.tif 000008