(57)【要約】      （修正有）【課題】コンピュータが起動処理を行っているときの詳細な情報を取得することができる技術を提供する。【解決手段】コンピュータ１は、起動処理情報記憶部５４および起動処理情報出力制御部５８を備える。記憶部５４は、コンピュータ１を起動しているときの起動処理の情報を記憶する。制御部５８は、起動処理に障害が生じた後に、コンピュータ１に接続されている外部装置に対して、記憶部５４が記憶している起動処理の情報を出力し、外部装置に備えられる外部記憶装置に起動処理の情報を記憶させる制御を行う。【選択図】図６
2015230521.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置を起動するときの起動処理の情報を前記情報処理装置が記憶し、
前記情報処理装置は、前記起動処理に障害が生じた後に、前記情報処理装置に接続されている外部装置に対して、記憶している前記起動処理の情報を出力し、
前記外部装置に備えられる外部記憶装置は、入力した前記起動処理の情報を記憶する、
障害情報取得方法。
【請求項２】
前記情報処理装置は、前記起動処理に障害が生じたことに基づくマスク不能な第１の割り込みを検出したとき、前記外部装置に対して、記憶している前記起動処理の情報を出力する、
請求項１記載の障害情報取得方法。
【請求項３】
前記情報処理装置は、前記外部装置が出力した第２の割り込みを検出したとき、前記外部装置に対して、記憶している前記起動処理の情報を出力する、
請求項１または２記載の障害情報取得方法。
【請求項４】
前記外部装置に備えられるボタンが押下されたことを前記外部装置が検出したときに、前記外部装置は前記情報処理装置に対して前記第２の割り込みを出力する、
請求項３記載の障害情報取得方法。
【請求項５】
前記情報処理装置は、一定時間ごとにハードウェア割り込みである第３の割り込みを発行し、当該第３の割り込みが発行されたときに前記第２の割り込みを入力したか否かを確認する、
請求項３または４記載の障害情報取得方法。
【請求項６】
前記外部装置から前記起動処理の情報を正常に入力したことを示す第１の情報を前記情報処理装置が入力しない場合、前記情報処理装置は、前記外部装置に備えられる表示装置に前記起動処理の情報が正常に入力されなかったことを示す第２の情報を表示する制御を行う、
請求項１乃至５のうち何れか１項に記載の障害情報取得方法。
【請求項７】
前記情報処理装置のオペレーティングシステムが稼動している状態から一時的な停止状態への第１の移行処理の情報、または前記一時的な停止状態から前記オペレーティングシステムが稼動している状態への第２の移行処理の情報を前記情報処理装置が記憶し、
前記情報処理装置は、前記第１の移行処理または前記第２の移行処理に障害が生じた後に、前記外部装置に対して、記憶している前記第１の移行処理の情報または前記第２の移行処理の情報を出力し、
前記外部記憶装置は、入力した前記第１の移行処理の情報または前記第２の移行処理の情報を記憶する、
請求項１乃至６のうち何れか１項に記載の障害情報取得方法。
【請求項８】
情報処理装置であって、
前記情報処理装置を起動しているときの起動処理の情報を記憶する記憶部と、
前記起動処理に障害が生じた後に、前記情報処理装置に接続されている外部装置に対して、前記記憶部が記憶している前記起動処理の情報を出力し、前記外部装置に備えられる外部記憶装置に前記起動処理の情報を記憶させる制御を行う制御部と、
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害情報取得方法および情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置の一例としてパーソナルコンピュータがある。パーソナルコンピュータは、電源を投入して起動を行うときに、ＢＩＯＳ(Basic Input/Output System）と称されるプログラムを実行する。
【０００３】
パーソナルコンピュータのＣＰＵ（Central Processing Unit）は、ＢＩＯＳを実行しているときに、ＰＯＳＴ（Power-On Self-Test)と称される自己診断処理を行う。ＣＰＵがＢＩＯＳを実行しているときに、何らかの障害が発生することがある。
【０００４】
この障害の原因を特定するために、ＰＯＳＴカードというハードウェアツールが使用される。ＰＯＳＴカードは、ＢＩＯＳの処理の進行状況に応じた番号を表示する。関連する技術として、汎用インタフェースに接続された外部機器にシステム起動処理の進捗状況を示す進捗情報を出力する技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−３９６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、外部機器にシステム起動処理の進捗状況（ＰＯＳＴコード）を外部機器に出力している。このため、外部機器に出力されたＰＯＳＴコードに基づいて認識できるのは、起動処理の進捗状況であり、それ以外の情報を認識することはできない。コンピュータが起動中に何らかの障害が生じたときには、障害の原因を特定するため、詳細な情報を得ることが好ましい。
【０００７】
１つの側面では、本発明は、コンピュータが起動処理を行っているときの詳細な情報を取得することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、障害情報取得方法は、情報処理装置を起動するときの起動処理の情報を前記情報処理装置が記憶する。前記情報処理装置は、前記起動処理に障害が生じた後に、前記情報処理装置に接続されている外部装置に対して、記憶している前記起動処理の情報を出力する。前記外部装置に備えられる外部記憶装置は、入力した前記起動処理の情報を記憶する。
【発明の効果】
【０００９】
１つの側面として、コンピュータが起動処理を行っているときの詳細な情報を取得することができる。
【図面の簡単な説明】
【００１０】
【図１】コンピュータのハードウェア構成の一例を示す図である。
【図２】外部装置の一例を示す斜視図である。
【図３】外部装置のハードウェア構成の一例を示す図である。
【図４】外部装置のＵＳＢインタフェースの機能の一例を示す図である。
【図５】表示素子および割り込み発生ボタンの概要を示す図である。
【図６】コンピュータの機能ブロックの一例を示す図である。
【図７】第１の処理の一例を示すフローチャートである。
【図８】第２の処理の一例を示すフローチャート（その１）である。
【図９】第２の処理の一例を示すフローチャート（その２）である。
【図１０】ＳＭＩハンドラを実行するタイミングチャートの一例を示す図である。
【図１１】電源に関する状態遷移の一例を示す図である。
【図１２】第３の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
＜コンピュータのハードウェア構成の一例＞
以下、図面を参照して、実施形態について説明する。図１は、コンピュータ１のハードウェア構成の一例を示している。例えば、コンピュータ１は、パーソナルコンピュータであってもよい。コンピュータ１は、情報処理装置の一例である。
【００１２】
図１の例において、コンピュータ１は、バス２に対して、ＣＰＵ（Central Processing Unit）３とＲＡＭ(Random Access Memory)４とＲＯＭ(Read Only Memory)５と補助記憶装置６とＵＳＢコントローラ７とタイマ１２とが接続されている。コンピュータ１のハードウェア構成は、図１の例には限定されない。
【００１３】
ＣＰＵ３は、任意の処理回路である。ＣＰＵ３は、ＲＡＭ４に展開されたプログラムを実行する。ＲＯＭ５は、不揮発性のメモリである。ＲＯＭ５は、種々のプログラムを記憶することができる。
【００１４】
例えば、ＲＯＭ５はファームウェアを記憶する。当該ファームウェアにはＢＩＯＳが含まれる。補助記憶装置６は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置６に適用することができる。
【００１５】
ＵＳＢ(Universal Serial Bus)コントローラ７は、ＵＳＢポート８に接続されるＵＳＢデバイスとのデータ入出力を制御する。ＵＳＢポート８は、ＵＳＢデバイスを接続するためのポートである。
【００１６】
ＵＳＢコントローラ７は、バスマスタ回路９とデバッグポート回路１０とを有している。バスマスタ回路９は、例えば、ＵＨＣＩ(Universal Host Controller Interface）やＥＨＣＩ(Enhanced Controller Interface）等を適用することができる。バスマスタ回路９は、ＲＡＭ４とＵＳＢデバイスとのデータ入出力をＤＭＡ(Direct Memory Access）で行われるように制御する。
【００１７】
デバッグポート回路１０は、デバッグを目的として使用される回路である。デバッグポート回路１０は、一般に、ＵＡＲＴ(Universal Asynchronous Receiver Transmitter）と称されるシリアル・パラレル変換回路を適用することができる。デバッグポート回路１０は、回路に備えるレジスタを用いることで、ＲＡＭ４等に障害を生じたとしても、ＵＳＢポート８に接続されるＵＳＢデバイスとデータの入出力を行うことができる。
【００１８】
切り替えスイッチ１１は、ＵＳＢポート８に対する接続をバスマスタ回路９またはデバッグポート回路１０の何れかに切り替える。切り替えスイッチ１１がバスマスタ回路９に接続されているときには、ＵＳＢポート８は通常のＵＳＢとして使用することができる。切り替えスイッチ１１がデバッグポート回路１０に接続されているときには、デバッグ目的のためにＵＳＢポート８が使用される。
【００１９】
タイマ１２は、時間のカウントを行う。タイマ１２としては、チップセットに備えられるＴＣＯタイマを適用してもよい。ＴＣＯタイマは、予め設定された時間ごとにＳＭＩ(System Management Interrupt）を発生させる。ＴＣＯタイマは、例えばウォッチドッグタイマ等の目的で使用される。
【００２０】
ＲＡＭ４、ＲＯＭ５および補助記憶装置６は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【００２１】
＜外部装置の一例＞
次に、ＵＳＢポート８に接続される外部装置の一例について説明する。図２は、外部装置２０の一例を示す斜視図である。外部装置２０は、上述したＵＳＢデバイスの一例である。
【００２２】
図２の例では、外部装置２０は、ベース２１とＵＳＢコネクタ２２と表示素子２３と記憶素子２４と割り込み発生ボタン２５とを備えている。ベース２１は、外部装置２０の基板である。ＵＳＢコネクタ２２は、コンピュータ１のＵＳＢポート８に着脱可能に接続される接続部である。
【００２３】
外部装置２０のＵＳＢコネクタ２２がコンピュータ１のＵＳＢポート８に接続されると、外部装置２０とコンピュータ１との間でデータの入出力が可能になる。両者の間ではパケットを用いてデータの入出力が行われる。
【００２４】
表示素子２３は、所定の情報を表示する。実施形態では、表示素子２３は、４桁の７セグメントＬＥＤであるものとする。ただし、表示素子２３は、７セグメントＬＥＤには限定されない。表示素子２３は、表示装置の一例である。表示素子２３の桁数は４桁には限定されない。また、表示素子２３は、７セグメントＬＥＤでなくてもよい。例えば、表示素子２３は任意の情報を表示することが可能な小型液晶ディスプレイであってもよい。
【００２５】
実施形態では、表示素子２３は４桁の７セグメントＬＥＤであるため、表示素子２３は、７セグメントＬＥＤを４つ有している。１つの７セグメントＬＥＤは、「０」から「Ｆ」までの１６進数を表示できるものとする。
【００２６】
記憶素子２４は、外部装置２０がコンピュータ１に接続された状態で、コンピュータ１から出力されるデータを記憶する。記憶素子２４としては、例えば、フラッシュメモリを適用することができる。記憶素子２４は、フラッシュメモリには限定されない。ただし、記憶素子２４は不揮発性の記憶手段である。記憶素子２４は外部記憶装置の一例である。
【００２７】
割り込み発生ボタン２５は、押下可能なボタンである。割り込み発生ボタン２５が押下されたことが検出されると、コンピュータ１に対する割り込みが発生する。実施形態では、この割り込みは、ＳＭＩであるものとする。以下、割り込み発生ボタン２５が押下されることにより、コンピュータ１に対して出力されるＳＭＩを外部ＳＭＩと称する。
【００２８】
＜外部装置のハードウェア構成の一例＞
次に、図３を参照して、外部装置２０のハードウェア構成の一例を説明する。外部装置２０は、バス３０に対して、ＣＰＵ３１とＲＡＭ３２とＲＯＭ３３とＵＳＢインタフェース３４と表示制御回路３５と外部ＳＭＩ発行部３６とが接続されている。上述した記憶素子２４および割り込み発生ボタン２５がバス３０に接続されている。表示制御回路３５には、上述した表示素子２３が接続されている。外部ＳＭＩ発行部３６には、上述した割り込み発生ボタン２５が接続されている。
【００２９】
ＣＰＵ３１は、任意の処理回路である。ＣＰＵ３１は、ＲＡＭ３２に展開されたプログラムを実行する。ＲＯＭ５は、不揮発性のメモリであり、例えば、ＲＡＭ３２に展開されるプログラムを記憶する。
【００３０】
ＵＳＢインタフェース３４は、ＵＳＢコネクタ２２がコンピュータ１のＵＳＢポート８に挿入され、コンピュータ１に外部装置２０が接続されたときに、外部装置２０とコンピュータ１とのデータの入出力を行うインタフェースである。
【００３１】
表示制御回路３５は、表示素子２３を制御する。上述したように、実施形態では、表示素子２３は、４桁の７セグメントＬＥＤである。よって、表示制御回路３５は、４桁の７セグメントＬＥＤの表示内容を制御する。
【００３２】
また、記憶素子２４は、コンピュータ１から出力されるデータを記憶する。外部装置２０がコンピュータ１に接続されている状態で、コンピュータ１と外部装置２０とはデータの入出力が可能になる。ＵＳＢインタフェース３４に入力されたデータは、記憶素子２４に記憶される。
【００３３】
外部ＳＭＩ発行部３６は、割り込み発生ボタン２５が押下されたか否かを検出する。外部ＳＭＩ発行部３６は、割り込み発生ボタン２５が押下されたことを検出したときに、外部ＳＭＩを発行する。この外部ＳＭＩは、ＵＳＢインタフェース３４を経由して、コンピュータ１に入力される。
【００３４】
図４は、外部装置２０のＵＳＢインタフェース３４の機能の一例を示している。ＵＳＢインタフェース３４には、マストストレージクラスと称される共通仕様がある。マストストレージクラスには、ＥＰ０、ＥＰ１およびＥＰ２という３つのエンドポイントが属している。マストストレージクラスの３つのエンドポイントは、通常のＵＳＢのデータ入出力で使用される。
【００３５】
ＥＰ０〜ＥＰ４は、例えばレジスタを適用することができる。ＥＰ０は、一般的なＵＳＢデバイスに共通的に備えられる。ＥＰ１およびＥＰ２は、マストストレージによって規定されているエンドポイントである。ＥＰ１は、ステータス情報やデータの入力に使用される。ＥＰ２は、記憶素子２４に対するコマンドの出力に使用される。
【００３６】
ＥＰ３およびＥＰ４は、マストストレージクラスの体裁に対して付加されるものであり、デバッグポート機能で使用される。デバッグポート機能は、コンピュータ１の起動処理を行っているときに何らかの障害が発生したときに機能する。
【００３７】
ＥＰ３は、ＰＯＳＴ番号を表示するために設けられている。ＥＰ４は、１ビット分が使用される。ＥＰ４は、割り込み発生ボタン２５が押下されたか否かを示す。例えば、割り込み発生ボタン２５が押下されていれば、ＥＰ４の１ビットはＨｉｇｈになり、押下されていなければ、Ｌｏｗになる。このＥＰ４の状態は、コンピュータ１のＢＩＯＳから監視することができる。
【００３８】
図５は、表示素子２３および割り込み発生ボタン２５の概要を示している。外部装置２０は、ドライバ回路４１とデコーダ回路４２とを備えている。ドライバ回路４１は、表示素子２３を駆動する。
【００３９】
実施形態では、表示素子２３は４桁の７セグメントＬＥＤであり、表示素子２３は４つの７セグメントＬＥＤを有している。ＥＰ３は１６ビットで定義され、そのうち４ビットは、４つの７セグメントＬＥＤに対応しており、ドライバ回路４１は、ＥＰ３の４ビットの値に応じて、４つの７セグメントＬＥＤのそれぞれを駆動する。残り７ビットについては未使用とする。
【００４０】
ＥＰ４の１ビットは、割り込み発生ボタン２５が押下されたか否かによって変化する。割り込み発生ボタン２５が押下されると、ＥＰ４に対する信号がＨｉｇｈになる。一方、割り込み発生ボタン２５が押下されていない場合、ＥＰ４に対する信号はＬｏｗになる。なお、割り込み発生ボタン２５が押下されると、処理が終了するまで、ＥＰ４に対する信号はＨｉｇｈのままになる。
【００４１】
＜コンピュータの機能ブロックの一例＞
次に、図６を参照して、実施形態の処理を行うコンピュータ１の機能ブロックについて説明する。コンピュータ１は、ＢＩＯＳ実行部５１と割り込み検出部５２とスイッチ制御部５３と起動処理情報記憶部５４とＮＭＩハンドラ実行部５５とＳＭＩハンドラ実行部５６と監視ＳＭＩ発行部５７と起動処理情報出力制御部５８と障害検出部５９とを備えている。
【００４２】
例えば、図６の起動処理情報記憶部５４は、ＲＡＭ４により実現されてもよい。また、図６の起動処理情報記憶部５４以外の各部は、ＲＯＭ５に記憶されているＢＩＯＳをＣＰＵ３が実行することにより実現されてもよい。
【００４３】
ＢＩＯＳ実行部５１は、ＲＯＭ５に記憶されているＢＩＯＳを実行する。ＢＩＯＳ実行部５１がＢＩＯＳを実行することで、コンピュータ１の起動処理が行われる。割り込み検出部５２は、割り込みを検出する。実施形態では、割り込み検出部５２は、コンピュータ１の内部で発行されるＮＭＩ(Non-Maskable Interrupt)、外部装置２０からの割り込みである外部ＳＭＩおよび当該外部ＳＭＩの入力を確認するための監視ＳＭＩを検出する。
【００４４】
ＮＭＩは、第１の割り込みの一例である。ＮＭＩは、「Int 02h」と称されることもある。外部ＳＭＩは、第２の割り込みの一例である。ＮＭＩは、優先度の高いマスク不能な割り込みである。ＳＭＩは、優先度の高いハードウェア割り込みである。
【００４５】
スイッチ制御部５３は、切り替えスイッチ１１の制御を行う。通常時には、スイッチ制御部５３は、ＵＳＢポート８とバスマスタ回路９とが接続されるように切り替えスイッチ１１を制御する。障害が発生したときには、スイッチ制御部５３は、ＵＳＢポート８とデバッグポート回路１０とが接続されるように切り替えスイッチ１１を制御する。
【００４６】
起動処理情報記憶部５４は、起動処理に関する情報（以下、起動処理情報と称する）を記憶する。ＮＭＩハンドラ実行部５５は、割り込み検出部５２がＮＭＩを検出したときに、ＮＭＩに応じた割り込み処理を実行する。ＳＭＩハンドラ実行部５６は、割り込み検出部５２が外部ＳＭＩを検出したときに、外部ＳＭＩに応じた割り込み処理を実行する。起動処理情報記憶部５４は、記憶部の一例である。
【００４７】
監視ＳＭＩ発行部５７は、監視ＳＭＩを発行する。監視ＳＭＩは、外部割込みが発生したか否かを定期的に監視するための割り込みである。コンピュータ１は、通常の起動処理を行っているときに、一定時間ごとに監視ＳＭＩを発行する。この監視ＳＭＩが発行されると、ＳＭＩハンドラ実行部５６は、外部ＳＭＩを入力したか否かを確認する。監視ＳＭＩは、第３の割り込みの一例である。
【００４８】
起動処理情報出力制御部５８は、起動処理情報を外部装置２０に出力し、外部装置２０の記憶素子２４に起動処理情報を記憶させる制御を行う。起動処理情報は、コンピュータ１を起動しているときに、ＢＩＯＳ実行部５１が実行する起動処理に関する情報である。起動処理情報出力制御部５８は、制御部の一例である。
【００４９】
例えば、ＢＩＯＳ実行部５１は、ＢＩＯＳの処理内容に基づいて、起動処理を行う。実施形態では、ＢＩＯＳ実行部５１は、ＢＩＯＳに規定されている関数を実行することにより、起動処理を行う。そして、ＢＩＯＳ実行部５１は、ＯＳ(Operating System)を起動する。
【００５０】
ＯＳが起動されるまで、ＢＩＯＳ実行部５１は、ＢＩＯＳに規定された複数の関数を順次呼び出して実行する。実施形態の起動処理情報は、関数のパラメータと関数の呼び出し先と関数の呼び出し元との情報を含む。そして、ＢＩＯＳ実行部５１は、起動処理情報記憶部５４にスタック形式で起動処理情報を記憶していく。
【００５１】
起動処理情報に含まれる関数のパラメータとしては、例えば関数の引数がある。関数の呼び出し先および呼び出し元の情報としては、関数のアドレスがある。起動処理情報は、起動処理に関する他の情報を含んでもよい。
【００５２】
ＢＩＯＳ実行部５１が実行していた関数が別の関数を呼び出すと、ＢＩＯＳ実行部５１は、当該別の関数のパラメータと関数の呼び出し先と関数の呼び出し元との情報を起動処理情報記憶部５４のスタックに蓄積する。従って、起動処理情報記憶部５４のスタックには、関数が実行されるごとに、順次、関数に関する情報が蓄積される。
【００５３】
障害検出部５９は、コンピュータ１に発生した障害を検出する。例えば、特権違反や不正命令実行、無限ループ処理等が発生したときに、障害検出部５９は障害を検出する。コンピュータ１に発生する障害の例は、これらに限定されない。
【００５４】
＜第１の処理＞
次に、実施形態に係る第１の処理について説明する。第１の処理は、コンピュータ１が起動しているときに、コンピュータ１の内部で特権違反や不正命令実行等の障害が発生したときの処理である。なお、外部装置２０は予めコンピュータ１に接続されているものとする。
【００５５】
特権違反や不正命令実行等の障害は、例えば、ＢＩＯＳのプログラムで指定された命令の移動先が本来の移動先とは異なる場合に発生する。この場合、本来とは異なる移動先の命令に移動すると、ＣＰＵ３は、正しい命令を認識できない。このような場合、特権違反や不正命令実行等の障害が発生する。
【００５６】
図７は、第１の処理の流れを示している。第１の処理では、初期的に、コンピュータ１の電源は遮断されているものとする。従って、最初に、コンピュータ１の電源が投入される（ステップＳ１）。
【００５７】
これにより、ＢＩＯＳ実行部５１は、ＢＩＯＳに規定された起動処理の実行を開始する。そして、ＢＩＯＳ実行部５１は、ＰＯＳＴ処理を開始する（ステップＳ２）。ＢＩＯＳ実行部５１は、実行する起動処理の進行状況に応じてＰＯＳＴコードを生成する。
【００５８】
第１の処理では、コンピュータ１を起動しているときに特権違反や不正命令実行等の障害が発生した場合、内部割込みとしてＮＭＩが発行される。従って、ＢＩＯＳ実行部５１は、障害発生時の処理をＮＭＩハンドラに設定する（ステップＳ３）。
【００５９】
ＢＩＯＳ実行部５１は、ＢＩＯＳに規定されている起動処理の内容を実行していく。これに伴い、ＢＩＯＳ実行部５１は、実行している関数のパラメータ、関数の呼び出し元および呼び出し先に関する起動処理情報を起動処理情報記憶部５４にスタック形式で記憶する（ステップＳ４）。
【００６０】
障害検出部５９は、ＢＩＯＳ実行部５１がＢＩＯＳを実行しているとき、すなわちコンピュータ１を起動しているときに、障害が発生したか否かを判定する（ステップＳ５）。障害が発生していなければ（ステップＳ５でＮＯ）、ＢＩＯＳ実行部５１は起動処理を続行する（ステップＳ６）。
【００６１】
そして、ＢＩＯＳ実行部５１は、ＢＩＯＳに規定されている起動処理が終了したか否かを判定する（ステップＳ７）。起動処理が終了していない場合（ステップＳ７でＮＯ）、処理はステップＳ５に戻る。一方、起動処理が終了したとＢＩＯＳ実行部５１が判定したときには（ステップＳ７でＹＥＳ）、ＯＳが起動される（ステップＳ８）。そして、第１の処理は終了する。
【００６２】
一方、ＢＩＯＳ実行部５１が起動処理を行っているときに、障害検出部５９が障害を検出したときには（ステップＳ５でＹＥＳ）、マスク不能な割り込みであるＮＭＩが発行される（ステップＳ９）。割り込み検出部５２は、ＮＭＩが発行されたことを検出する。割り込み検出部５２がＮＭＩを検出したことをトリガとして、ＮＭＩハンドラ実行部５５は、ＮＭＩハンドラを実行する（ステップＳ１０）。
【００６３】
ステップＳ２で、障害が発生したときの処理がＮＭＩハンドラに設定されている。起動処理情報は、起動処理情報記憶部５４に記憶されている。ＮＭＩハンドラ実行部５５は、起動処理情報記憶部５４から起動処理情報を取得する（ステップＳ１１）。このとき、ＮＭＩハンドラ実行部５５は、障害発生時のＣＰＵ３のレジスタの値を起動処理情報に含めてもよい。
【００６４】
ＢＩＯＳ実行部５１が起動処理を実行しているときに障害が発生すると、スイッチ制御部５３は、ＵＳＢコントローラ７を制御して、切り替えスイッチ１１をバスマスタ回路９からデバッグポート回路１０に切り替える。これにより、デバッグポート回路１０とＵＳＢポート８とが接続される。
【００６５】
また、ＢＩＯＳ実行部５１が起動処理を実行しているときに障害が発生すると、ＰＯＳＴコードは障害が発生した時点で停止する。起動処理情報出力制御部５８は、デバッグポート回路１０に対して、起動処理情報およびＰＯＳＴコードを出力する。
【００６６】
デバッグポート回路１０は、起動処理情報およびＰＯＳＴコードをＵＳＢポート８に出力する。ＵＳＢポート８には、外部装置２０のＵＳＢコネクタ２２が接続されている。よって、起動処理情報およびＰＯＳＴコードは、外部装置２０のＵＳＢインタフェース３４に出力される（ステップＳ１２）。
【００６７】
ＵＳＢインタフェース３４から入力された起動処理情報は、外部装置２０の記憶素子２４に記憶される（ステップＳ１３）。また、ＵＳＢインタフェース３４から入力されたＰＯＳＴコードは、表示制御回路３５により表示素子２３に表示される（ステップＳ１４）。
【００６８】
起動処理情報は、ＵＳＢインタフェース３４のエンドポイントＥＰ１から入力され、記憶素子２４に記憶される。また、ＰＯＳＴコードは、ＵＳＢインタフェース３４のエンドポイントＥＰ３から入力され、表示制御回路３５に出力される。
【００６９】
実施形態では、表示素子２３は４つの７セグメントＬＥＤで表現されている。表示制御回路３５は、ドライバ回路４１およびデコーダ回路４２を制御して、ＰＯＳＴコードの値に応じて、４つの７セグメントＬＥＤのそれぞれの駆動制御を行う。これにより、表示素子２３にＰＯＳＴコードが表示される。
【００７０】
また、記憶素子２４には、起動処理情報およびＣＰＵ３のレジスタの状態が記憶される。起動処理情報は、ＢＩＯＳ実行部５１がＢＩＯＳを実行していたときの関数のパラメータや関数の呼び出し先アドレス、関数の呼び出し元アドレス等を含む。
【００７１】
外部装置２０のＵＳＢインタフェース３４は汎用インタフェースである。このため、外部装置２０を、正常に動作する他のコンピュータのＵＳＢポートに接続することにより、記憶素子２４に記憶されている起動処理情報を解析することができる。
【００７２】
これにより、コンピュータ１を起動しているときの単なる進捗状況であるＰＯＳＴコードだけではなく、関数のパラメータやアドレス等のより詳細な情報を認識することができる。例えば、起動処理情報に基づいて、１つのＰＯＳＴコードの処理の中に複数の関数が含まれる場合、ＣＰＵ３が実行している関数の流れを認識することができる。これにより、ＢＩＯＳのプログラムの本来の流れと一致しているか否かを認識することができ、障害を発生している関数を特定することができる。
【００７３】
また、関数のパラメータについても認識することができるため、障害に関する詳細な情報を得ることができる。また、障害発生時のＣＰＵ３のレジスタの状態を記憶素子２４が記憶することで、障害発生時のＣＰＵ３のレジスタの値を認識することができる。
【００７４】
＜第２の処理＞
次に、図８を参照して、第２の処理について説明する。第２の処理は、コンピュータ１に接続された外部装置２０から出力された割り込みに基づいて行われる処理である。従って、外部装置２０は予めコンピュータ１に接続されているものとする。
【００７５】
図８は、第２の処理の流れを示している。第１の処理と同様、初期的に、コンピュータ１の電源は遮断されているものとする。従って、最初に、コンピュータ１の電源が投入される（ステップＳ２１）。これにより、ＢＩＯＳ実行部５１は、ＢＩＯＳを実行して、ＢＩＯＳの内容に応じた起動処理を行う。そして、ＢＩＯＳ実行部５１は、ＰＯＳＴ処理を開始する（ステップＳ２２）。ＢＩＯＳ実行部５１は、実行する起動処理の進行状況に応じてＰＯＳＴコードを生成する。
【００７６】
監視ＳＭＩ発行部５７は、予め設定されたタイミングで監視ＳＭＩを発行する（ステップＳ２３）。監視ＳＭＩを発行するタイミング（一定時間ごと）は、タイマ１２に設定することができる。タイマ１２は、一定時間ごとに監視ＳＭＩを発行する。
【００７７】
ＢＩＯＳ実行部５１は、ＢＩＯＳに規定されている起動処理の内容を実行していく。これに伴い、ＢＩＯＳ実行部５１は、実行している関数のパラメータ、関数の呼び出し元および呼び出し先に関する起動処理情報を起動処理情報記憶部５４にスタック形式で記憶する（ステップＳ２４）。
【００７８】
監視ＳＭＩは、外部装置２０から外部ＳＭＩが入力されたか否かを確認するために発行される。割り込み検出部５２は、監視ＳＭＩが発行されたタイミングで外部ＳＭＩが入力されているか否かを確認する（ステップＳ２５）。
【００７９】
監視ＳＭＩが発行されたタイミングで、割り込み検出部５２が外部ＳＭＩの入力を検出しなければ（ステップＳ２５でＮＯ）、処理は「Ａ」に進む。つまり、この場合、図９のステップＳ３３に処理が進む。一方、監視ＳＭＩが発行されたタイミングで、割り込み検出部５２が外部ＳＭＩの入力を検出した場合（ステップＳ２６でＹＥＳ）、ＳＭＩハンドラ実行部５６はＳＭＩハンドラを実行する（ステップＳ２６）。
【００８０】
図１０は、ＳＭＩハンドラを実行するタイミングチャートの一例を示している。監視ＳＭＩ発行部５７は、一定時間ごとに監視ＳＭＩを発行する。監視ＳＭＩを発行するタイミングはタイマ１２に基づく。
【００８１】
ＢＩＯＳ実行部５１は、通常の起動処理を行っている。タイマ１２がカウントする時間が一定時間に達したときに、監視ＳＭＩが発行される。監視ＳＭＩが発行されると、割り込み検出部５２は、外部ＳＭＩが外部装置２０から入力されたか否かを確認する。
【００８２】
図１０の例において、時刻Ｔ１の時点で、タイマ１２に基づいて、監視ＳＭＩが発行される。よって、時刻Ｔ１において、割り込み検出部５２は、外部ＳＭＩがコンピュータ１に入力されたか否かを確認する。時刻Ｔ１の時点では、外部ＳＭＩはコンピュータ１に入力されていない。よって、ＳＭＩハンドラ実行部５６はＳＭＩハンドラを実行しない。
【００８３】
時刻Ｔ１からＴ２までの間、ＢＩＯＳ実行部５１は通常の起動処理を行う。そして、タイマ１２に基づいて、時刻Ｔ２になったときに、監視ＳＭＩ発行部５７は、監視ＳＭＩを発行する。時刻Ｔ１からＴ２までの間に、外部装置２０からコンピュータ１に外部ＳＭＩが入力されたとする。
【００８４】
つまり、外部装置２０の割り込み発生ボタン２５が押下されたことを外部ＳＭＩ発行部３６が検出する。外部ＳＭＩ発行部３６は、ＵＳＢインタフェース３４に外部ＳＭＩを出力する。この外部ＳＭＩは、ＵＳＢポート８からコンピュータ１に入力される。そして、外部ＳＭＩを割り込み検出部５２が検出する。
【００８５】
従って、ＳＭＩハンドラ実行部５６は、時刻Ｔ２のタイミングで外部ＳＭＩに基づいて、ＳＭＩハンドラを実行する。図１０の例では、タイマ１２に基づく時刻Ｔ３の時点でも、ＳＭＩハンドラが実行されている。
【００８６】
図１０の一例に示すように、割り込み検出部５２は、監視ＳＭＩが発生したタイミングで外部ＳＭＩが入力されたか否かを確認する。つまり、外部ＳＭＩの検出は、監視ＳＭＩの発行に基づくポーリングにより行われる。従って、監視ＳＭＩ処理を行う時間以外の時間は、ＢＩＯＳ実行部５１が通常の起動処理を実行することができる。
【００８７】
また、外部ＳＭＩが入力された否かを確認する監視ＳＭＩはＳＭＩであり、ＳＭＩはＯＳ処理に介入可能な優先度の高いハードウェア割り込みである。このような監視ＳＭＩを一定時間後ごとにポーリングにより発行することで、起動処理に障害を生じたとしても、割り込み検出部５２は外部ＳＭＩを検出することができる。
【００８８】
以上により、図８のステップＳ２６で示したＳＭＩハンドラが実行される。ＳＭＩハンドラ実行部５６は、起動処理情報記憶部５４に記憶された起動処理情報を取得する（ステップＳ２７）。第１の処理と同様、起動処理情報は、ＣＰＵ３のレジスタの値を含んでいてもよい。
【００８９】
ＢＩＯＳ実行部５１が起動処理を行っているときに障害が発生すると、障害検出部５９は障害を検出する。障害が検出されると、スイッチ制御部５３は、ＵＳＢコントローラ７を制御して、切り替えスイッチ１１をバスマスタ回路９からデバッグポート回路１０に切り替える。これにより、デバッグポート回路１０とＵＳＢポート８とが接続される。
【００９０】
また、ＢＩＯＳ実行部５１が起動処理を行っているときに障害が発生すると、ＰＯＳＴコードは障害が発生した時点で停止する。起動処理情報出力制御部５８は、デバッグポート回路１０に対して、起動処理情報およびＰＯＳＴコードを出力する。
【００９１】
デバッグポート回路１０は、起動処理情報およびＰＯＳＴコードをＵＳＢポート８に出力する。ＵＳＢポート８には、外部装置２０のＵＳＢコネクタ２２が接続されている。よって、起動処理情報およびＰＯＳＴコードは、外部装置２０のＵＳＢインタフェース３４に出力される（ステップＳ２８）。起動処理情報は、エンドポイントＥＰ１を使用して、外部装置２０に入力され、ＰＯＳＴコードはエンドポイントＥＰ３を使用して、外部装置２０に入力される。
【００９２】
コンピュータ１から外部装置２０に起動処理情報およびＰＯＳＴコードが出力された後に、外部装置２０はコンピュータ１に対して、出力完了を示すアクノレッジメント（以下、ＡＣＫと称する）を出力する。アクノレッジメントは、第１の情報の一例である。
【００９３】
コンピュータ１が外部装置２０からＡＣＫを入力していない場合（ステップＳ２９でＮＯ）、コンピュータ１から外部装置２０に起動処理情報およびＰＯＳＴコードが正常に出力されていないことになる。このため、起動処理情報出力制御部５８は、外部装置２０の表示素子２３にエラーコードを表示する制御を行う（ステップＳ３０）。
【００９４】
この場合、起動処理情報出力制御部５８は、ＵＳＢポート８から外部装置２０のＵＳＢインタフェース３４に対して、特定のエラーコードの情報を出力する。外部装置２０の表示制御回路３５は、表示素子２３に特定のエラーコードを表示する制御を行う。これにより、４桁の７セグメントＬＥＤに特定のエラーコード（例えば、「ＦＦＦＦ」）が表示素子２３に表示される。特定のエラーコードの情報は、第２の情報の一例である。
【００９５】
そして、表示素子２３にエラーコードが表示された後に、処理はステップＳ２８に戻る。これにより、コンピュータ１は、起動処理情報およびＰＯＳＴコードを外部装置２０に対して再送する。
【００９６】
起動処理情報およびＰＯＳＴコードの再送処理が行われたとしても、まだコンピュータ１がＡＣＫを入力できないときには、表示素子２３には継続して特定のエラーコードが表示される。これにより、起動処理情報およびＰＯＳＴコードの出力が正常に行われないことを認識することができる。
【００９７】
一方、コンピュータ１が外部装置２０からＡＣＫを入力した場合（ステップＳ２９でＹＥＳ）、外部装置２０はコンピュータ１から起動処理情報およびＰＯＳＴコードを正常に入力したことになる（ステップＳ３１）。なお、以上のＡＣＫに関する処理は、第１の処理に適用してもよい。
【００９８】
次に、処理は「Ｂ」に進む。図９を参照して、「Ｂ」以降の処理について説明する。ＵＳＢインタフェース３４から入力された起動処理情報は、外部装置２０の記憶素子２４に記憶される（ステップＳ３２）。また、ＵＳＢインタフェース３４から入力されたＰＯＳＴコードは、表示制御回路３５により表示素子２３に表示される（ステップＳ３３）。
【００９９】
起動処理情報は、ＵＳＢインタフェース３４のエンドポイントＥＰ１から入力され、記憶素子２４に記憶される。また、ＰＯＳＴコードは、ＵＳＢインタフェース３４のエンドポイントＥＰ３から入力され、表示制御回路３５に出力される。
【０１００】
実施形態では、表示素子２３は４つの７セグメントＬＥＤで表現されている。表示制御回路３５は、ドライバ回路４１およびデコーダ回路４２を制御して、ＰＯＳＴコードの値に応じて、４つの７セグメントＬＥＤのそれぞれの駆動制御を行う。これにより、表示素子２３にＰＯＳＴコードが表示される。
【０１０１】
監視ＳＭＩ発行部５７は、一定時間ごとに監視ＳＭＩを発行する。発行するタイミングはタイマ１２がカウントする時間に基づく。従って、タイマ１２がカウントする時間が一定時間に達したときに、タイマ１２がカウントしている時間はリロードされる（ステップＳ３４）。つまり、タイマ１２がカウントしている時間はリセットされる。
【０１０２】
次に、ＢＩＯＳ実行部５１は起動処理を終了したか否かを判定する（ステップＳ３５）。ＢＩＯＳ実行部５１が起動処理を終了したとき（ステップＳ３５でＹＥＳ）、すなわちＢＩＯＳに規定されている処理を終了したときに、ＯＳが起動される（ステップＳ３６）。
【０１０３】
一方、ＢＩＯＳ実行部５１が起動処理を終了していないとき（ステップＳ３５でＮＯ）、システムがハングアップの状態であるか否かが判定される（ステップＳ３７）。この判定は、障害検出部５９が行ってもよい。
【０１０４】
システムがハングアップ状態にある場合（ステップＳ３７でＹＥＳ）、第２の処理は終了する。一方、システムがハングアップ状態にない場合（ステップＳ３７でＮＯ）、処理は、「Ｃ」から図８のステップＳ２３に移る。つまり、ＢＩＯＳ実行部５１により起動処理が続行する。
【０１０５】
第２の処理は、第１の処理と同様、外部装置２０の記憶素子２４に起動処理情報が記憶されるため、後に、障害に関する詳細な情報を得ることができる。特に、１つのＰＯＳＴコードの処理の中の複数の関数のうち、何れの関数で障害を発生したかを特定することができる。
【０１０６】
第１の処理は、障害検出部５９が障害の発生を検出したときに、ＮＭＩが発行される。このＮＭＩに基づいて、外部装置２０の記憶素子２４に起動処理情報が記憶される。ただし、コンピュータ１の状態によっては、ＮＭＩが発行されない場合がある。この場合、記憶素子２４に起動処理情報は記憶されない。
【０１０７】
例えば、ＢＩＯＳ実行部５１がＢＩＯＳに規定されている起動処理を実行しているときに、無限ループが実行されたとする。この場合、起動処理は完了せず、ＯＳは起動しない。また、ＢＩＯＳ実行部５１が無限ループを実行すると、ＮＭＩが発行されないことがある。この場合、記憶素子２４に起動処理情報は記憶されない。
【０１０８】
ＯＳが起動しない場合、例えばコンピュータ１に接続されるディスプレイ（不図示）には、起動処理を行っている旨の画面が表示され続け、ＯＳの画面が表示されない。このときに、コンピュータ１の操作者（以下、オペレータと称する）は、ＯＳの画面が表示されないことから、コンピュータ１に障害が発生していることを認識できる。このような場合、オペレータにより、外部装置２０の割り込み発生ボタン２５が押下される。
【０１０９】
これにより、割り込み発生ボタン２５が押下されたことを外部ＳＭＩ発行部３６が検出し、外部ＳＭＩ発行部３６は外部ＳＭＩを発行する。この外部ＳＭＩは、優先度の高いハードウェア割り込みであり、割り込み検出部５２が外部ＳＭＩを検出できる。よって、この外部ＳＭＩに基づいて、第２の処理が行われる。
【０１１０】
従って、コンピュータ１の状態によって、ＮＭＩが発行されなくても、外部ＳＭＩに基づいて、コンピュータ１は外部装置２０に起動処理情報を出力することができる。これにより、外部装置２０の記憶素子２４は起動処理情報を記憶することができる。
【０１１１】
＜第３の処理＞
第３の処理は、ＯＳが起動した後に、システムを一時的に停止させたとき、またはシステムが一時的に停止した状態から復帰したときに適用される。システムの一時的な停止は、スリープまたは休止状態とも称される。第３の処理は、第１の処理における図７のステップＳ１の「電源投入」または第２の処理における図８のステップＳ２１の「電源投入」の代わりに適用される。
【０１１２】
ＯＳ起動後に、システムを一時的に停止させる機能としては、例えば、スリープ状態がある。図１１は、ＡＣＰＩ(Advanced Configuration And Power Interface）で規定されている電源に関する状態遷移の仕様を示している。図１１において「ＢＩＯＳ」から延出している点線は、ＢＩＯＳが関与する範囲を示す。
【０１１３】
ＡＣＰＩでは、コンピュータ１のシステム稼働状態として、「Global State」という４つのレベルが設けられている。そして、各レベルには、それぞれ「Sleeping State」というステートが割り当てられている。
【０１１４】
「Ｇ０」には、ステートＳ０が割り当てられる。「Ｇ０」はコンピュータ１のシステムが稼動している状態を示す。「Ｇ１」には、ステートＳ１〜Ｓ４が割り当てられる。「Ｇ１」はコンピュータ１がスリープ状態であることを示す。
【０１１５】
スリープ状態に割り当てられるステートＳ１は、ＣＰＵ３やキャッシュ、ＲＡＭ４等の状態を維持した状態で電源をオフにするステートである。ステートＳ２は、ＣＰＵ３およびキャッシュの状態を維持した状態で電源をオフにするステートである。
【０１１６】
ステートＳ３は、ＯＳが実行中のＲＡＭ４の内容を維持した状態でバックアップ電源を残して、コンピュータ１のメイン電源をオフにするステートである。ステートＳ４は、ＲＡＭ４の内容を補助記憶装置６に保存した後に、バックアップ電源を含めて電源をオフにするステートである。
【０１１７】
「Ｇ２」はコンピュータ１がソフトオフの状態であることを示す。「Ｇ１」にはステートＳ５が割り当てられる。「Ｇ３」はコンピュータ１がメカニカルオフの状態を示す。「Ｇ３」にはステートは割り当てられない。「Ｇ３」はコンピュータ１が完全にシャットダウンした状態である。
【０１１８】
図１１の一例に示すように、「Ｇ０」と「Ｇ１」、「Ｇ２」および「Ｇ３」との間で状態が遷移する。ＢＩＯＳは、これらの遷移の全てに関与する。例えば、上述した第１の処理および第２の処理は、メカニカルオフの「Ｇ３」の状態からワーキングの「Ｇ０」の状態に遷移するときの処理になる。
【０１１９】
図１１の一例において、「Ｇ０」のワーキングの状態から、「Ｇ１」のステートＳ３の状態に遷移したとする。つまり、ＯＳが稼動している状態からスリープ状態に遷移したとする。ＢＩＯＳ実行部５１は、ＯＳが稼動している状態からスリープ状態に移行させる。この移行処理を第１の移行処理と称する。
【０１２０】
また、図１１の一例において、「Ｇ１」のステートＳ３の状態から、「Ｇ０」のワーキングの状態に遷移したとする。ＢＩＯＳ実行部５１は、スリープ状態からＯＳが稼動している状態に移行させる。この移行処理を第２の移行処理と称する。
【０１２１】
図１２は、第３の処理の一例を示している。図１２の例では、スリープ状態からＯＳが稼動している状態に移行する第２の移行処理の流れを示している。初期的には、コンピュータ１は、スリープ状態になっている。この状態から、ＯＳ復帰操作が行われる（ステップＳ４１）。例えば、電源スイッチを押下することで、ＯＳ復帰操作が行われてもよい。
【０１２２】
ＢＩＯＳ実行部５１は、ＰＯＳＴ処理を開始する（ステップＳ４２）。そして、ＢＩＯＳ実行部５１は、障害発生時の処理をＮＭＩハンドラに設定する（ステップＳ４３）。ＢＩＯＳ実行部５１は、第２の移行処理を行っているときに、ＲＡＭ４に第２の移行処理の情報を記憶する（ステップＳ４４）。
【０１２３】
障害検出部５９は、コンピュータ１に何らかの障害が発生したか否かを検出する（ステップＳ４５）。コンピュータ１に障害が発生していない場合（ステップＳ４５でＮＯ）、ＢＩＯＳ実行部５１は第２の移行処理を続行する（ステップＳ４６）。
【０１２４】
ＢＩＯＳ実行部５１は、第２の移行処理が終了したか否かを判定し（ステップＳ４７）、終了していなければ（ステップＳ４７でＮＯ）、フローはステップＳ４５に戻る。これにより、第２の移行処理が続行する。
【０１２５】
第２の移行処理が終了したときに、ＯＳ稼動状態に復帰する（ステップＳ４８）。一方、第２の移行処理を行っているときに何らかの障害が発生した場合（ステップＳ４５でＹＥＳ）、ＮＭＩが発行される（ステップＳ４９）。割り込み検出部５２がＮＭＩを検出すると、ＮＭＩハンドラ実行部５５がＮＭＩハンドラを実行する（ステップＳ５０）。
【０１２６】
このＮＭＩハンドラが実行されることにより、ＲＡＭ４から第２の移行処理の情報が取得される（ステップＳ５１）。そして、取得された第２の移行処理の情報は、ＰＯＳＴコードと共に、外部装置２０に出力される（ステップＳ５２）。
【０１２７】
外部装置２０は、入力した第２の移行処理の情報を記憶素子２４に記憶する（ステップＳ５３）。また、表示制御回路３５は、入力したＰＯＳＴコードを表示素子２３に表示する（ステップＳ５４）。以上により、第３の処理が終了する。
【０１２８】
第２の移行処理の情報は、上述した起動処理情報と同様に、関数のパラメータと関数の呼び出し先アドレスと関数の呼び出し元アドレスとの情報を含んでもよい。従って、記憶素子２４に記憶されている第２の移行処理の情報に基づいて、障害に関する詳細な情報を得ることができる。
【０１２９】
例えば、記憶素子２４に記憶されている第２の移行処理の情報が、ＢＩＯＳ内で規定されていない処理を含んでいる場合、障害の原因は、ＢＩＯＳの実行によるものではなく、ＯＳによるものであることを認識することができる。
【０１３０】
図１２で示した第３の処理の例は、第１の移行処理に適用してもよい。また、図１２で示した第３の処理の例は、図７で示した第１の処理に基づいた処理になる。第３の処理は、図８および図９で示した第２の処理に基づいた処理であってもよい。
【０１３１】
つまり、コンピュータ１は、外部装置２０から出力された外部ＳＭＩに基づいて、記憶している第１の移行処理または第２の移行処理の情報を外部装置２０に出力する。そして、外部装置２０の記憶素子２４は第１の移行処理または第２の移行処理の情報を記憶してもよい。
【０１３２】
＜その他＞
コンピュータ１および外部装置２０は、第１の処理と第２の処理と第３の処理との何れか１つの処理だけを実現してもよいし、２つ以上の処理を実現してもよいし、全ての処理を実現してもよい。
【０１３３】
例えば、コンピュータ１は、ＮＭＩをトリガとして起動処理情報を外部装置２０に出力し、且つ外部ＳＭＩをトリガとして起動処理情報を外部装置２０に出力してもよい。また、ＯＳが起動した後に、稼動状態とスリープ状態との間で状態遷移が生じたときには、コンピュータ１は、外部装置２０に起動処理情報を出力してもよい。
【０１３４】
また、上述した例では、汎用インタフェースとしてＵＳＢを適用した例を説明したが、ＵＳＢ以外の汎用インタフェースを適用してもよい。汎用インタフェースの接続方式も、シリアルであってもよいし、パラレルであってもよい。
【０１３５】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【符号の説明】
【０１３６】
１      コンピュータ
２      バス
３      ＣＰＵ
４      ＲＡＭ
５      ＲＯＭ
１２    タイマ
２０    外部装置
２３    表示素子
２４    記憶素子
２５    割り込み発生ボタン
３５    表示制御回路
３６    外部ＳＭＩ発行部
５１    ＢＩＯＳ実行部
５２    割り込み検出部
５３    スイッチ制御部
５４    起動処理情報記憶部
５５    ＮＭＩハンドラ実行部
５６    ＳＭＩハンドラ実行部
５７    監視ＳＭＩ発行部
５８    起動処理情報出力制御部
５９    障害検出部
【図１】
2015230521.tif 000003
【図２】
2015230521.tif 000004
【図３】
2015230521.tif 000005
【図４】
2015230521.tif 000006
【図５】
2015230521.tif 000007
【図６】
2015230521.tif 000008
【図７】
2015230521.tif 000009
【図８】
2015230521.tif 000010
【図９】
2015230521.tif 000011
【図１０】
2015230521.tif 000012
【図１１】
2015230521.tif 000013
【図１２】
2015230521.tif 000014