(57)【特許請求の範囲】
【請求項１】
情報処理装置の入出力バスに接続されるＩ／Ｏカード型の電源制御装置であって、前記情報処理装置の動作に使用する主電力を、前記情報処理装置の前記入出力バスから取得する電力取得部と、前記主電力の供給が停止していることを必要条件として、前記入出力バスにおける電源を制御する信号を用いて前記主電力の供給の開始を指示し、前記情報処理装置を起動させる電源制御部とを備え、
前記電源制御部は、前記情報処理装置が正常に動作していない場合に、前記入出力バスから供給される前記主電力をグランドにショートさせることにより、前記主電力とグランドの間に過電流を流し、前記情報処理装置内に設けられ、前記主電力を供給する電源ユニットの過電流保護機能を動作させ、前記電源ユニットによる前記主電力の供給を停止させることを特徴とする電源制御装置。
【請求項２】
前記入出力バスは、ＰＣＩバスであり、前記電源制御部は、前記ＰＣＩバスのＰＭＥ＃（Ｐｏｗｅｒ Ｍａｎａｇｅｍｅｎｔ Ｅｖｅｎｔ）信号を用いて前記主電力の供給の開始を指示することを特徴とする請求項１記載の電源制御装置。
【請求項３】
前記電源制御部は、前記主電力の供給が停止してから所定の時間経過したことを必要条件として、前記入出力バスを介して前記主電力の供給の開始を指示することを特徴とする請求項１記載の電源制御装置。
【請求項４】
前記情報処理装置が正常に動作していないと判断した場合に、前記入出力バスを介して前記主電力の供給の停止を指示する障害処理部を更に備えることを特徴とする請求項１記載の電源制御装置。
【請求項５】
前記電源制御部は、前記障害処理部が前記主電力の供給の停止を指示したこと、及び前記主電力の供給が停止していることを必要条件として、前記入出力バスを介して前記主電力の供給の開始を指示することを特徴とする請求項１記載の電源制御装置。
【請求項６】
停電により前記主電力の供給が停止され、その後停電状態が解除された場合に、前記電源制御部は、前記入出力バスを介して前記主電力の供給の開始を指示して、前記情報処理装置を起動させることを特徴とする請求項１記載の電源制御装置。
【請求項７】
前記情報処理装置は、
命令を実行するプロセッサと、前記プロセッサにより制御される機能ユニットとを有し、
通常処理、第１の障害処理、第２の障害処理、及び第３の障害処理を含む処理のいずれかを実行する実行部と、
前記第１の障害処理、前記第２の障害処理、及び前記第３の障害処理における障害情報を前記実行部から取得する障害情報取得部
とを備えるものであり、
当該電源制御装置は、前記実行部が前記通常処理中において、第１の期間正常に動作していないことを必要条件として前記プロセッサに割り込むことにより、前記実行部に前記第１の障害処理を開始させて前記第２の障害処理の開始後には取得できない前記プロセッサの内部状態を前記障害情報取得部により取得させ、前記実行部が前記第１の障害処理中において、第２の期間正常に動作していないことを必要条件として前記プロセッサをリセットすることにより、前記実行部に前記第２の障害処理を開始させて前記第３の障害処理の開始後には取得できない前記機能ユニットの内部状態を前記障害情報取得部により取得させ、前記実行部が前記第２の障害処理中において、第３の期間正常に動作していないことを必要条件として当該情報処理装置をリセットすることにより、前記実行部に前記第３の障害処理を開始させて前記主電源の供給を停止後には取得できない当該情報処理装置のメモリの内容を前記障害情報取得部により取得させ、前記実行部が前記第３の障害処理中において、第４の期間正常に動作していないことを必要条件として当該情報処理装置の前記主電力の供給の停止を指示する障害処理部を更に備える請求項１記載の電源制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置、電源制御装置、情報処理装置制御方法、プログラム、及び記録媒体に関する。特に本発明は、通常処理及び障害処理を行う情報処理装置、電源制御装置、情報処理装置制御方法、プログラム、及び記録媒体に関する。
【０００２】
【従来の技術】
従来、ＰＣ、ワークステーション、サーバ等のプロセッサを備える計算機や、制御用のプロセッサ等を含む制御回路等の各種の情報処理装置において、障害の発生によるハングアップを防止する技術として、プロセッサへの割り込みやリセットを用いるものが提案されている。例えば、実開平５−７１９２４には、一定監視時間毎にプログラムに割り込みをかけてマイクロコンピュータの作動異常を検出するウォッチドッグタイマのリセット信号を、マイクロコンピュータのノンマスカブル割込端子に入力するリセット回路が開示されている。また、特開平１１−２４９６３７には、ウォッチドッグタイマによってプログラムが暴走した時に発生するノンマスカブル割り込みにより、電源供給手段を制御するマイクロコンピュータを備えた画像表示装置が開示されている。
【０００３】
【発明が解決しようとする課題】
以上に示した実開平５−７１９２４及び特開平１１−２４９６３７においては、ノンマスカブル割り込み（ＮＭＩ：Ｎｏｎ  Ｍａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ）を用いて処理の再開ができない場合、ハングアップする可能性がある。情報処理装置の信頼性を更に高め、障害の要因の特定を容易にするためには、情報処理装置の各部に発生する障害の種類に応じて、適切な障害処理を行うことが要求される。
【０００４】
そこで本発明は、上記の課題を解決することのできる情報処理装置、電源制御装置、情報処理装置制御方法、プログラム、及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【０００５】
【課題を解決するための手段】
即ち、本発明の第１の形態によると、通常処理、第１の障害処理、及び第２の障害処理を含む処理のいずれかを実行する実行部と、前記通常処理中に、前記実行部が第１の期間正常に動作していないことを必要条件として、前記実行部に第１の障害処理を開始させ、前記第１の障害処理中に、前記実行部が第２の期間正常に動作していないことを必要条件として、前記実行部に第２の障害処理を開始させる障害処理部と、前記第１の障害処理の開始後における前記実行部の内部状態であって、前記第２の障害処理の開始後には取得できない内部状態を、障害情報として取得する障害情報取得部とを備えることを特徴とする情報処理装置を提供する。
また、前記情報処理装置は、機械的動作を行う駆動部を更に備え、前記障害処理部は、前記第１の障害処理の開始を前記実行部に指示する場合に、前記駆動部の動作を停止させてもよい。
【０００６】
また、本発明の第２の形態によると、情報処理装置の入出力バスに接続される電源制御装置であって、前記情報処理装置の動作に使用する主電力を、前記情報処理装置から取得する電力取得部と、前記主電力の供給が停止していることを必要条件として、前記入出力バスを介して前記主電力の供給の開始を指示し、前記情報処理装置を起動させる電源制御部とを備えることを特徴とする電源制御装置を提供する。
【０００７】
また、本発明の第３の形態によると、情報処理装置に処理を行わせる情報処理装置制御方法であって、前記情報処理装置に、通常処理、第１の障害処理、及び第２の障害処理を含む処理のいずれかを実行させ、前記通常処理が第１の期間正常に動作していないことを必要条件として、第１の障害処理を開始させ、前記第１の障害処理が第２の期間正常に動作していないことを必要条件として、第２の障害処理を開始させ、前記第１の障害処理の開始後における前記実行部の内部状態であって、前記第２の障害処理の開始後には取得できない内部状態を、障害情報として取得させることを特徴とする情報処理装置制御方法を提供する。
【０００８】
また、本発明の第４の形態によると、情報処理装置に処理を行わせるプログラムであって、前記情報処理装置を、通常処理、第１の障害処理、及び第２の障害処理を含む処理のいずれかを実行する実行部と、前記通常処理中に、前記実行部が第１の期間正常に動作していないことを必要条件として、前記実行部に第１の障害処理を開始させ、前記第１の障害処理中に、前記実行部が第２の期間正常に動作していないことを必要条件として、前記実行部に第２の障害処理を開始させる障害処理部と、前記第１の障害処理の開始後における前記実行部の内部状態であって、前記第２の障害処理の開始後には取得できない内部状態を、障害情報として取得する障害情報取得部として動作させることを特徴とするプログラムを提供する。
【０００９】
また、本発明の第５の形態によると、情報処理装置に処理を行わせるプログラムを記録した記録媒体であって、前記プログラムは、前記情報処理装置を、通常処理、第１の障害処理、及び第２の障害処理を含む処理のいずれかを実行する実行部と、前記通常処理中に、前記実行部が第１の期間正常に動作していないことを必要条件として、前記実行部に第１の障害処理を開始させ、前記第１の障害処理中に、前記実行部が第２の期間正常に動作していないことを必要条件として、前記実行部に第２の障害処理を開始させる障害処理部と、前記第１の障害処理の開始後における前記実行部の内部状態であって、前記第２の障害処理の開始後には取得できない内部状態を、障害情報として取得する障害情報取得部として動作させることを特徴とする記録媒体を提供する。
【００１０】
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【００１１】
【発明の実施の形態】
以下、発明の実施形態を通じて本発明を説明するが、実施形態はクレームにかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
図１は、本実施形態に係る計算機システム１００の構成を示す。本実施形態に係る計算機システム１００は、記憶装置１１０及び計算機１２０を備える。記憶装置１１０は、本発明に係る情報処理装置の一例である。
記憶装置１１０は、計算機１２０又はネットワークを介して計算機１２０に接続された計算機等の要求に応じて、ファイル等のデータを格納し、又は読み出す。本実施形態に係る記憶装置１１０は、例えば、ハードディスクドライブ、テープドライブ、光ディスクドライブ、光磁気ディスクドライブ等の、機械的動作を行う駆動部分を備える。記憶装置１１０は、制御用のプロセッサを内蔵し、これを用いて記憶装置１１０に要求される各種処理を行う。
【００１３】
計算機１２０は、記憶装置１１０に接続され、記憶装置１１０に対してデータの読み出し又は書き込みを要求する。計算機１２０は、例えば、ＳＣＳＩインターフェイス、ＩＤＥインターフェイス、ファイバーチャネルインターフェイス等の記憶装置向けのインターフェイスを用いて記憶装置１１０と接続される。これに代えて、計算機１２０は、ＷＡＮ、ＬＡＮ等の一般の装置向けのインターフェイスを用いて記憶装置１１０と接続されてもよい。
【００１４】
図２は、本実施形態に係る記憶装置１１０の構成を示す。本実施形態に係る記憶装置１１０は、実行部２００、障害処理部２１０、タイマ部２２０、及び障害情報取得部２３０を備える。
【００１５】
実行部２００は、記憶装置１１０内の各部を制御し、通常処理、第１の障害処理、第２の障害処理、及び第３の障害処理を含む処理のいずれかを実行する。実行部２００は、プロセッサ２４０、通信ユニット２４５、入出力制御ユニット２５０、駆動部２５５、メモリ２６０、及びメモリ制御ユニット２７０を備える。
通常処理において、実行部２００は、記憶装置１１０と計算機１２０との間のコマンド若しくはデータの送受信、計算機１２０からの要求に基づくファイル等のデータの格納及び／又は読み出し等の処理を行う。第１の障害処理、第２の障害処理、及び第３の障害処理において、実行部２００は、障害の解析、特定、及び／又は復旧を行うために使用される情報である障害情報を取得する。実行部２００は、通常処理、第１の障害処理、第２の障害処理、及び第３の障害処理において、実行部２００が正常動作していることを示す正常動作情報を、例えば予め設定された期間未満の間隔でタイマ部２２０に送信する。
【００１６】
障害処理部２１０は、設定された期間実行部２００が正常に動作していないことを検出し、実行部２００に障害処理を開始させる。具体的には、通常処理中に第１の期間実行部２００が正常に動作していない場合、障害処理部２１０は、実行部２００に第１の障害処理を開始させる。また、第１の障害処理中に第２の期間実行部２００が正常に動作していない場合、障害処理部２１０は、実行部２００に第２の障害処理を開始させる。また、第２の障害処理中に第３の期間実行部２００が正常に動作していない場合、障害処理部２１０は、実行部２００に第３の障害処理を開始させる。更に、第３の障害処理中に第４の期間実行部２００が正常に動作していない場合、障害処理部２１０は、実行部２００に第３の障害処理を再開させる。
【００１７】
障害処理部２１０は、記憶装置１１０が通常処理、第１の障害処理、第２の障害処理、及び第３の障害処理のいずれを実行しているかを示す情報を格納する処理状態レジスタ２１２を含む。本実施形態に係る障害処理部２１０は、記憶装置１１０が通常処理中の場合”０”、記憶装置１１０が第１の障害処理中の場合”１”、記憶装置１１０が第２の障害処理中の場合”２”、記憶装置１１０が第３の障害処理中の場合”３”を、処理状態レジスタ２１２に格納する。
以上の処理に代えて、障害処理部２１０は、例えば、第１の障害処理中に実行部２００が第２の期間正常に動作していない場合、実行部２００に第１の障害処理の再開を規定の回数指示する等の処理を含めてもよい。この場合、障害処理部２１０は、第１の障害処理の再開を規定の回数指示した後、なお実行部２００が第２の期間正常に動作しないことを検出した場合に、実行部２００に第２の障害処理を開始させてもよい。
【００１８】
障害処理部２１０は、実行部２００、タイマ部２２０、及び障害情報取得部２３０に障害処理の開始を指示する信号として、ＮＭＩ信号２１５、ＣＰＵＲＥＳＥＴ信号２１６、ＳＹＳＲＥＳＥＴ信号２１７、及びＰＷＲＯＦＦ信号２１８を出力する。
ＮＭＩ信号２１５は、プロセッサ２４０に対してノンマスカブル割り込みを行うために用いられる信号線である。障害処理部２１０は、第１の障害処理の開始時に、ＮＭＩ信号２１５を用いてプロセッサ２４０に対してノンマスカブル割り込みを行い、プロセッサ２４０に第１の障害処理を開始させる。
ＣＰＵＲＥＳＥＴ信号２１６は、プロセッサ２４０をリセットするために用いられる信号線である。障害処理部２１０は、第２の障害処理の開始時に、ＣＰＵＲＥＳＥＴ信号２１６を用いてプロセッサ２４０をリセットし、プロセッサ２４０に第２の障害処理を開始させる。
【００１９】
ＳＹＳＲＥＳＥＴ信号２１７は、タイマ部２２０、障害情報取得部２３０、通信ユニット２４５、入出力制御ユニット２５０、駆動部２５５、及びメモリ制御ユニット２７０を含む記憶装置１１０全体をリセットするために用いられる信号線である。障害処理部２１０は、第３の障害処理の開始時に、ＳＹＳＲＥＳＥＴ信号２１７を用いて記憶装置１１０全体をリセットすることにより、記憶装置１１０に第３の障害処理を開始させる。ここで、障害処理部２１０は、第３の障害処理の開始時において記憶装置１１０全体をリセットする際に、ＣＰＵＲＥＳＥＴ信号２１６を用いてプロセッサ２４０をリセットすることにより、プロセッサ２４０に第３の障害処理を開始させる。
ＰＷＲＯＦＦ信号２１８は、駆動部２５５の動作を停止させるために用いられる信号線である。障害処理部２１０は、第１の障害処理の開始時に、ＰＷＲＯＦＦ信号２１８を用いて駆動部２５５の動作を停止させる。
【００２０】
以上に代えて、障害処理部２１０は、以上に示した各障害処理の開始の指示を、例えばマスク可能な割り込みや、プロセッサ２４０及びメモリ制御ユニット２７０のみのリセット等の、本実施形態に係る指示方法と異なる方法で行ってもよい。また、障害処理部２１０は、以上に示した各障害処理の開始の指示の組合せを、例えば、第１の障害処理はプロセッサ２４０へのノンマスカブル割り込みで第２の障害処理はプロセッサ２４０のリセット、第１の障害処理はプロセッサ２４０のリセットで第２の障害処理は記憶装置１１０全体のリセット、又は第１の障害処理はプロセッサ２４０のリセットで第２の障害処理は記憶装置１１０全体のリセット等の、他の組合せを用いてもよい。
【００２１】
タイマ部２２０は、設定された期間実行部２００が正常動作していないことを検出し、障害処理部２１０に通知するウォッチドッグタイマである。タイマ部２２０は、設定された期間の測定を行うために使用するレジスタであるタイマレジスタ２２２を含む。
【００２２】
タイマ部２２０は、設定された期間の測定を、次に示す方法で行う。まず、タイマ部２２０は、予め設定された期間を測定するためのタイマ値を障害処理部２１０から取得し、タイマレジスタ２２２に格納する。次に、タイマ部２２０は、タイマ用のクロックのサイクル毎にタイマレジスタ２２２内に格納したタイマ値をデクリメントする。次に、タイマ部２２０は、実行部２００が正常動作していることを示す正常動作情報を実行部２００から受信すると、予め設定された期間を測定するためのタイマ値をタイマレジスタ２２２に再度格納し、再び設定された期間の測定を開始する。一方、タイマ部２２０は、タイマレジスタ２２２内のタイマ値が０となった場合（タイムアウトとなった場合）に、タイマレジスタ２２２に設定された期間実行部２００が正常動作していないことを検出する。
ここで、実行部２００は、実行部２００が正常動作していることを示す正常動作情報を、予め設定された期間未満の間隔でタイマ部２２０に送信する様プログラムされている。このため、タイマ部２２０は、実行部２００から正常動作情報を予め設定された期間受信しない場合、実行部２００のプログラム動作に異常が生じたと見なして、異常を検出することができる。
【００２３】
実行部２００は、正常動作情報として、設定された期間の計測を、タイマ部２２０に開始させることを示す情報を送信してもよい。この場合、タイマ部２２０は、タイマレジスタ２２２として、設定された期間に対応するタイマ値を格納するタイマ設定値レジスタ、及び現時点におけるタイマ値を格納するタイマ値レジスタを備える。そして、タイマ部２２０は、実行部２００から正常動作情報を受信すると、タイマ設定値レジスタに格納された値をタイマ値レジスタにコピーし、タイマ設定値レジスタに設定された期間の計測を再度開始する。
また、実行部２００は、正常動作情報として、タイマ部２２０内のタイマレジスタ２２２に、計測する期間を設定する情報を送信してもよい。この場合、タイマ部２２０は、タイマレジスタ２２２として、現時点におけるタイマ値を格納するタイマ値レジスタを備える。タイマ部２２０は、タイマ部２２０内のタイマ値レジスタに設定すべきタイマ値を正常動作情報として受信し、２２０内のタイマ値レジスタに格納し、タイマ値を用いて設定された期間の計測を再度開始する。
【００２４】
障害処理部２１０は、通常処理中に第１の期間実行部２００が正常に動作していないこと、第１の障害処理中に第２の期間実行部２００が正常に動作していないこと、第２の障害処理中に第３の期間実行部２００が正常に動作していないこと、及び第３の障害処理中に第４の期間実行部２００が正常に動作していないことを、タイマ部２２０を用いて検出する。ここで、障害処理部２１０は、タイマ部２２０に設定する第１の期間、第２の期間、第３の期間、及び第４の期間を、全てが等しい長さの期間に設定してもよいし、通常処理、第１の障害処理、第２の障害処理、及び第３の障害処理の内容に対応して異なる長さの期間に設定してもよい。
【００２５】
障害情報取得部２３０は、記憶装置１１０内で発生した障害についての障害情報を実行部２００から取得し、記憶装置１１０全体をリセットした場合においても記録内容が失われない記憶領域である障害情報レジスタ２３２に格納する。そして、障害情報取得部２３０は、計算機１２０からの指示を受けて、障害情報レジスタ２３２に格納した障害情報を、通信ユニット２４５を介して計算機１２０に転送する。計算機１２０の使用者又は記憶装置１１０の管理者は、記憶装置１１０から転送された障害情報に基づき、記憶装置１１０の障害の解析、特定及び復旧を行う。
【００２６】
次に、実行部２００の構成を詳細に説明する。実行部２００は、プロセッサ２４０、通信ユニット２４５、入出力制御ユニット２５０、駆動部２５５、メモリ２６０、及びメモリ制御ユニット２７０を有する。
プロセッサ２４０は、記憶装置１１０を制御する命令を実行する機能ユニットである。プロセッサ２４０は、プロセッサ２４０が命令を実行する際に用いるレジスタ２４２を含む。本実施形態に代えて、実行部２００は、複数のプロセッサ２４０を有してもよい。
通信ユニット２４５は、計算機１２０との間でのコマンド又はデータの送受信を行う機能ユニットである。通信ユニット２４５は、計算機１２０との通信に関する設定情報や通信状態を示す情報等を保持するレジスタ２４７を含む。
入出力制御ユニット２５０は、通信ユニット２４５を介して計算機１２０から受信した要求コマンドに対応して駆動部２５５を制御し、データの読み出し又は書き込みを行わせる機能ユニットである。入出力制御ユニット２５０は、駆動部２５５におけるデータ格納形式の設定情報や駆動部２５５のアクセス状態等を保持するレジスタ２５２を含む。
【００２７】
駆動部２５５は、入出力制御ユニット２５０からの指示に基づき、機械的動作によりデータの読み出し又は書込みを行う機能ユニットである。駆動部２５５は、通信ユニット２４５及び入出力制御ユニット２５０経由で外部から受けたデータを格納する記録媒体２５７と、記録媒体２５７のアクセスに用いるモータ部２５８及びヘッド部２５９とを含む。本実施形態に係る入出力制御ユニット２５０は、記録媒体２５７内のデータをアクセスする際に、まず、モータ部２５８を制御しヘッド部２５９を記録媒体２５７上の対象データの記録部分に位置させる。次に、入出力制御ユニット２５０は、モータ部２５８を制御し、ヘッド部２５９を用いて対象データをアクセスする。また、駆動部２５５は、障害処理部２１０が第１の障害処理の開始を指示した際にＰＷＲＯＦＦ信号２１８からの信号を受けて、モータ部２５８の動作及びヘッド部２５９による記録媒体２５７のアクセスを停止させる。
【００２８】
メモリ２６０は、記憶装置１１０の制御に用いるプロセッサ２４０のプログラム及びデータ等を格納するＲＯＭ及び／又はＲＡＭ等のメモリである。メモリ２６０は、記憶装置１１０の制御に関するプログラム及びデータを格納する通常使用領域２６２、及び記憶装置１１０内で発生した障害についての障害情報を格納する障害情報記録部２６４を含む。
メモリ制御ユニット２７０は、障害処理部２１０、タイマ部２２０、障害情報取得部２３０、プロセッサ２４０、通信ユニット２４５、入出力制御ユニット２５０、及びメモリ２６０を接続し、これらの間のデータ転送等を中継する。メモリ制御ユニット２７０は、障害処理部２１０、タイマ部２２０、障害情報取得部２３０、プロセッサ２４０、通信ユニット２４５、入出力制御ユニット２５０、及びメモリ２６０の間のデータ転送に関する設定情報等を保持するレジスタ２７２を含む。
Ｉ／Ｏバス２８０は、障害処理部２１０、タイマ部２２０、障害情報取得部２３０、通信ユニット２４５、入出力制御ユニット２５０、及びメモリ制御ユニット２７０を接続する。Ｉ／Ｏバス２８０は、プロセッサ２４０、メモリ２６０及びメモリ制御ユニット２７０等と、通信ユニット２４５及び入出力制御ユニット２５０等の周辺デバイスとを接続する、例えばＰＣＩ−ＳＩＧ（ＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）により規格化されるＰＣＩバス等の入出力バスであってよい。
【００２９】
本実施形態に係る実行部２００は、レジスタ２４２、レジスタ２４７、レジスタ２５２、通常使用領域２６２、及びレジスタ２７２等に保持された内部状態を用いて処理を行う。レジスタ２４２は、本発明に係る第１の記録部の一例である。また、レジスタ２４７、レジスタ２５２、及びレジスタ２７２は、本発明に係る第２の記録部の一例である。
第２の障害処理を開始するために、障害処理部２１０がプロセッサ２４０をリセットすると、レジスタ２４２は初期化される。従って、第２の障害処理の開始後には、障害情報取得部２３０は、通常処理後又は第１の障害処理の開始直後におけるレジスタ２４２の内部状態を取得できない。また、第３の障害処理を開始させるために、障害処理部２１０が記憶装置１１０全体をリセットすると、レジスタ２４２、レジスタ２４７、レジスタ２５２、及びレジスタ２７２は初期化される。従って、第３の障害処理の開始後には、障害情報取得部２３０は、第２の障害処理の開始直後におけるレジスタ２４２、レジスタ２４７、レジスタ２５２、及びレジスタ２７２の内部状態を取得できない。一方、通常使用領域２６２及び障害情報記録部２６４は、障害処理部２１０が第２の障害処理又は第３の障害処理を開始させた場合においても初期化されない。
【００３０】
障害情報取得部２３０は、第１の障害処理の開始後に、プロセッサ２４０に保持されている内部状態であって、第２の障害処理の開始後には取得できない内部状態を、障害情報としてレジスタ２４２から取得する。ここで、第１の障害処理において、プロセッサ２４０は、レジスタ２４２に保持された内部状態の一部又は全部を取得して、障害情報記録部２６４に格納してもよい。この場合、障害情報取得部２３０は、障害情報記録部２６４に格納されたプロセッサ２４０の内部状態を、障害情報として取得し障害情報レジスタ２３２に格納する。また、第１の障害処理の開始後に、プロセッサ２４０は、プロセッサ２４０内のレジスタ２４２以外の部分が保持する情報であって、第２の障害処理が開始された場合に初期化される情報を、障害情報記録部２６４に格納してもよい。
【００３１】
同様に、障害情報取得部２３０は、第２の障害処理の開始後に、実行部２００内に保持されている内部状態であって、第３の障害処理の開始後には取得できない内部状態を、障害情報としてレジスタ２４２、レジスタ２４７、レジスタ２５２、及びレジスタ２７２から取得する。ここで、第２の障害処理において、プロセッサ２４０は、レジスタ２４２、レジスタ２４７、レジスタ２５２、及びレジスタ２７２をアクセスし、これらに保持された内部状態の一部又は全部を取得して、障害情報記録部２６４に格納してもよい。この場合、障害情報取得部２３０は、障害情報記録部２６４に格納されたプロセッサ２４０の内部状態を、障害情報として取得し障害情報レジスタ２３２に格納する。また、第２の障害処理の開始後に、プロセッサ２４０は、プロセッサ２４０内のレジスタ２４２以外の部分、通信ユニット２４５内のレジスタ２４７以外の部分、入出力制御ユニット２５０内のレジスタ２５２以外の部分、メモリ制御ユニット２７０内のレジスタ２７２以外の部分が保持する情報であって、第３の障害処理が開始された場合に初期化される情報を、障害情報記録部２６４に格納してもよい。
【００３２】
以上に加え、障害情報取得部２３０は、第３の障害処理の開始後に、障害情報レジスタ２３２に格納された記憶装置１１０各部の内部状態に加え、通常使用領域２６２が格納する情報を障害情報として更に取得してもよい。
【００３３】
図３は、本実施形態に係る記憶装置１１０の処理の流れを示す。
まず、記憶装置１１０に電源が投入されると、記憶装置１１０が初期化される（Ｓ３００）。記憶装置１１０の初期化の際に、障害処理部２１０は、処理状態レジスタ２１２を”０”とし、記憶装置１１０が通常処理中であることを設定する。次に、障害処理部２１０は、タイマ部２２０内のタイマレジスタ２２２を設定し、第１の期間の計測を開始させる（Ｓ３０５）。次に、記憶装置１１０は、通常処理を行う（Ｓ３１０）。ここで、プロセッサ２４０は、通常処理中において第１の期間未満の間隔でメモリ制御ユニット２７０及びＩ／Ｏバス２８０を介してタイマ部２２０に正常動作情報を送信し、Ｓ３０５に処理を進めて第１の期間の計測を再度開始させる（Ｓ３１５）。
【００３４】
第１の期間プロセッサ２４０が正常に動作していないことを検出した場合、タイマ部２２０は、タイムアウトを障害処理部２１０に通知する（Ｓ３１５）。障害処理部２１０は、タイムアウトの通知を受けると、ＮＭＩ信号２１５を用いてプロセッサ２４０にノンマスカブル割り込みを行う（Ｓ３２０）。次に、障害処理部２１０は、ＰＷＲＯＦＦ信号２１８を用いて、駆動部２５５にモータ部２５８の動作及びヘッド部２５９による記録媒体２５７のアクセスを停止させる（Ｓ３２５）。次に、障害処理部２１０は、処理状態レジスタ２１２を”１”とし、記憶装置１１０が第１の障害処理中であることを設定すると共に、タイマ部２２０内のタイマレジスタ２２２を設定し、第２の期間の計測を開始させる（Ｓ３３０）。
【００３５】
次に、記憶装置１１０は、第１の障害処理を行う（Ｓ３３５）。すなわち、プロセッサ２４０は、レジスタ２４２等に保持された内部状態を取得して障害情報記録部２６４に格納する。そして、障害情報取得部２３０は、障害情報記録部２６４に格納されたレジスタ２４２等の内部状態を、障害情報として取得し障害情報レジスタ２３２に格納する。第１の障害処理を完了すると、プロセッサ２４０は、Ｓ３００へ処理を進め（Ｓ３４０）、障害処理部２１０に記憶装置１１０全体のリセットを指示させる（Ｓ３００）。また、プロセッサ２４０は、第１の障害処理中において第２の期間未満の間隔でタイマ部２２０に正常動作情報を送信し、Ｓ３３０に処理を進めて第２の期間の計測を再度開始させる（Ｓ３４５）。
【００３６】
第２の期間プロセッサ２４０が正常に動作していないことを検出した場合、タイマ部２２０は、タイムアウトを障害処理部２１０に通知する（Ｓ３４５）。障害処理部２１０は、タイムアウトの通知を受けると、ＣＰＵＲＥＳＥＴ信号２１６を用いてプロセッサ２４０をリセットする（Ｓ３５０）。次に、障害処理部２１０は、処理状態レジスタ２１２を”２”とし、記憶装置１１０が第２の障害処理中であることを設定すると共に、タイマ部２２０内のタイマレジスタ２２２を設定し、第３の期間の計測を開始させる（Ｓ３５５）。
【００３７】
次に、記憶装置１１０は、第２の障害処理を行う（Ｓ３６０）。すなわち、プロセッサ２４０は、レジスタ２４２、レジスタ２４７、レジスタ２５２、及びレジスタ２７２等に保持された内部状態を取得して障害情報記録部２６４に格納する。そして、障害情報取得部２３０は、障害情報記録部２６４に格納されたレジスタ２４２、レジスタ２４７、レジスタ２５２、及びレジスタ２７２等の内部状態を、障害情報として取得し障害情報レジスタ２３２に格納する。第２の障害処理を完了すると、プロセッサ２４０は、Ｓ３００へ処理を進め（Ｓ３６５）、記憶装置１１０全体のリセットを障害処理部２１０に指示させる（Ｓ３００）。また、プロセッサ２４０は、第２の障害処理中において第３の期間未満の間隔でタイマ部２２０に正常動作情報を送信し、Ｓ３５５に処理を進めて第３の期間の計測を再度開始させる（Ｓ３７０）。
【００３８】
第３の期間プロセッサ２４０が正常に動作していないことを検出した場合、タイマ部２２０は、タイムアウトを障害処理部２１０に通知する（Ｓ３７０）。障害処理部２１０は、タイムアウトの通知を受けると、ＣＰＵＲＥＳＥＴ信号２１６及びＳＹＳＲＥＳＥＴ信号２１７を用いて記憶装置１１０全体をリセットする（Ｓ３７５）。次に、障害処理部２１０は、処理状態レジスタ２１２を”３”とし、記憶装置１１０が第３の障害処理中であることを設定すると共に、タイマ部２２０内のタイマレジスタ２２２を設定し、第４の期間の計測を開始させる（Ｓ３８０）。
【００３９】
次に、記憶装置１１０は、第３の障害処理を行う（Ｓ３８５）。すなわち、障害情報取得部２３０は、通常使用領域２６２及び障害情報記録部２６４に格納された記憶装置１１０の内部状態を、障害情報として取得し障害情報レジスタ２３２に格納する。第３の障害処理を完了すると、プロセッサ２４０は、Ｓ３００へ処理を進め（Ｓ３９０）、障害処理部２１０に記憶装置１１０全体のリセットを指示させる（Ｓ３００）。また、プロセッサ２４０は、第３の障害処理中において第４の期間未満の間隔でタイマ部２２０に正常動作情報を送信し、Ｓ３８０に処理を進めて第３の期間の計測を再度開始させる（Ｓ３９５）。
【００４０】
第４の期間プロセッサ２４０が正常に動作していないことを検出した場合、タイマ部２２０は、タイムアウトを障害処理部２１０に通知する（Ｓ３９５）。障害処理部２１０は、タイムアウトの通知を受けると、処理をＳ３００に進め、記憶装置１１０を初期化させる。
【００４１】
以上の処理に代えて、実行部２００は、Ｓ３３５、Ｓ３６０、及び／又はＳ３８５の障害処理において、記憶装置１１０内の各部の障害復旧処理を行ってもよい。この場合、実行部２００は、障害復旧が正しく行われた場合に処理をＳ３０５に進めてもよい。
【００４２】
図４は、本実施形態に係る計算機１２０のハードウェア構成の一例を示す。本実施形態に係る計算機１２０は、ＣＰＵ４１０、ＲＯＭ４２０、ＲＡＭ４３０、通信インターフェイス４４０、ハードディスクドライブ４５０、フロッピーディスクドライブ４６０、ＣＤ−ＲＯＭドライブ４７０、及びＩ／Ｏインターフェイス４８０を備える。ＣＰＵ４１０は、ＲＯＭ４２０及びＲＡＭ４３０に格納されたプログラムに基づいて動作し、各部の制御を行う。通信インターフェイス４４０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ４５０は、計算機１２０が使用するプログラム及びデータを格納する。フロッピーディスクドライブ４６０は、フロッピーディスク４９０からプログラム又はデータを読み取りＩ／Ｏインターフェイス４８０に提供する。ＣＤ−ＲＯＭドライブ４７０は、ＣＤ−ＲＯＭ４９５からプログラム又はデータを読み取りＩ／Ｏインターフェイス４８０に提供する。Ｉ／Ｏインターフェイス４８０は、フロッピーディスクドライブ４６０又はＣＤ−ＲＯＭドライブ４７０から提供されたプログラム又はデータを記憶装置１１０に送信する。
【００４３】
記憶装置１１０に提供されるプログラムは、フロッピーディスク４９０又はＣＤ−ＲＯＭ４９５等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、Ｉ／Ｏインターフェイス４８０を介して記憶装置１１０にインストールされ、記憶装置１１０において実行される。これに代えて、記憶装置１１０は、更にフロッピーディスクドライブ４６０又はＣＤ−ＲＯＭドライブ４７０等を備え、プログラムを記録媒体から直接読み出して実行してもよい。
【００４４】
記録媒体に格納されて記憶装置１１０に提供されるプログラムは、実行モジュールと、障害処理モジュールと、タイマモジュールと、障害情報取得モジュールとを備える。これらのモジュールは、記憶装置１１０を、実行部２００、障害処理部２１０、タイマ部２２０、及び障害情報取得部２３０として動作させるプログラムである。
【００４５】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フロッピーディスク４９０、ＣＤ−ＲＯＭ４９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを記憶装置１１０に提供してもよい。
【００４６】
図５は、本実施形態の第１変形例に係る記憶装置１１０の構成を示す。図５における実行部２００及び障害情報取得部２３０は、図２の対応する部材と同様であるため説明を省略する。
【００４７】
本変形例において、Ｉ／Ｏバス２８０は、ＰＣＩ−ＳＩＧによる仕様書「ＰＣＩ  Ｂｕｓ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ  １．１」等により定義される、電源を制御するためのＰＭＥ＃信号（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｅｖｅｎｔ）を備えるＰＣＩバスであることを前提として説明する。これに代えて、Ｉ／Ｏバス２８０は、電源を制御するためのインターフェイスを備える他の入出力バスであってもよい。
【００４８】
電源ユニット５００は、記憶装置１１０を動作させるために使用される主電力を、記憶装置１１０内の各部へ供給する。ここで、電源ユニット５００は、Ｉ／Ｏバス２８０に接続される障害情報取得部２３０、通信ユニット２４５、及び電源制御装置５１０に対しては、Ｉ／Ｏバス２８０の電源ピンＶｃｃを介して主電力を供給する。
また、電源ユニット５００は、Ｉ／Ｏバス２８０上のＰＭＥ＃信号を介して、記憶装置１１０の電源のＯＮの指示を受ける。ＰＭＥ＃信号が論理値１である場合、電源ユニット５００は、主電力の供給を開始して、記憶装置１１０の電源をＯＮとする。一方、電源ユニット５００は、電源制御装置５１０からのＰＷＲＣＴＬ信号を介して、記憶装置１１０の電源のＯＦＦの指示を受ける。ＰＷＲＣＴＬ信号が論理値１である場合、電源ユニット５００は、主電力の供給を停止して、記憶装置１１０の電源をＯＦＦとする。
【００４９】
また、電源ユニット５００は、主電力の供給を行っている場合及び主電力の供給を停止している場合の両方において、電源ピンＶｃｃＡＵＸを介して補助電力をＩ／Ｏバス２８０に供給する。すなわち、電源ユニット５００は、外部の電源から電源ユニット５００に電力が供給されている場合、常に補助電力をＩ／Ｏバス２８０に供給する。
【００５０】
電源制御装置５１０は、実行部２００と障害情報取得部２３０と電源ユニット５００を備える記憶装置１１０本体のＩ／Ｏバス２８０に接続されるＩ／Ｏカードであり、電源ユニット５００を制御する。電源制御装置５１０は、Ｉ／Ｏバス２８０を介して供給される補助電力ＶｃｃＡＵＸを用いて、主電力が供給されている場合及び主電力の供給が停止されている場合の両方で動作する。電源制御装置５１０は、障害処理部２１０、タイマ部２２０、電力取得部５２０、及び電源制御部５３０を有する。障害処理部２１０及びタイマ部２２０は、図２に示した障害処理部２１０とタイマ部２２０とほぼ同様であるため、以下相違点を中心に説明する。
【００５１】
タイマ部２２０は、図３のＳ３９５において、第３の障害処理中に第４の期間実行部２００が正常に動作していないことを検出し、障害処理部２１０に通知する。
障害処理部２１０は、第３の障害処理中における実行部２００の異常の通知をタイマ部２２０から受けると、電源制御部５３０が電源ユニット５００に供給するＰＷＲＣＴＬ信号を論理値１とさせることにより、電源ユニット５００に主電力の供給の停止を指示し、第４の障害処理を開始させる。
【００５２】
電力取得部５２０は、記憶装置１１０の動作に使用する主電力であるＶｃｃを、記憶装置１１０内のＩ／Ｏバス２８０から取得する。
電源制御部５３０は、障害処理部２１０から主電力の供給を停止させる指示を受けると、ＰＷＲＣＴＬ信号を論理値１とする。これにより、電源制御部５３０は、Ｉ／Ｏバス２８０の指示に従い、電源ユニット５００による主電力の供給を停止させる。
また、電源制御部５３０は、記憶装置１１０に対する電源ユニット５００からの主電力の供給が停止していることを必要条件として、Ｉ／Ｏバス２８０のＰＭＥ＃信号を論理値１とし、Ｉ／Ｏバス２８０を介して主電力の供給の開始を指示する。これにより、電源制御部５３０は、記憶装置１１０の電源がＯＦＦの場合に、記憶装置１１０の電源をＯＮとし、記憶装置１１０を起動することができる。
【００５３】
次に、図３のＳ３９５においてタイムアウトが発生した場合における、本変形例の記憶装置１１０の動作を説明する。Ｓ３９５においてタイムアウトが発生すると、電源制御装置５１０は、第４の障害処理を行う。具体的には、障害処理部２１０は、電源制御部５３０を介して電源ユニット５００による主電力の供給を停止させる。主電力の供給が停止すると、電源制御部５３０は、電源ユニット５００から主電力の供給を再開させる。電源ユニット５００からの主電力の供給が再開されると、記憶装置１１０は、図３のＳ３００から順に処理を進める。
これにより、電源ユニット５００は、第４の障害処理として、記憶装置１１０の電源を一旦ＯＦＦとした後、再度電源をＯＮとすることができる。従って、本変形例に係る電源制御装置５１０により、記憶装置１１０全体のリセットで回復できない障害においても、記憶装置１１０の動作を回復できる可能性を得ることができる。
【００５４】
また、電源制御装置５１０は、停電により電源ユニット５００からの主電力の供給が停止された場合においても、その後停電状態が解除された場合に記憶装置１１０を起動することができる。具体的には、記憶装置１１０は、この場合において以下に示す動作を行う。
【００５５】
まず、電源ユニット５００は、停電が発生すると主電力Ｖｃｃ及び補助電力ＶｃｃＡＵＸの供給を停止する。停電状態が解除されると、電源ユニット５００は、主電力の供給は停止した状態で、補助電力の供給を開始する。
補助電力の供給が開始されると、電源制御装置５１０は電源制御の動作を再開する。そして、電源制御部５３０は、主電力の供給が停止していることを検出し、ＰＭＥ＃信号を用いて電源ユニット５００に主電力の供給の開始を指示する。電源ユニット５００は、電源制御部５３０からの指示を受けて、主電力の供給を再開する。
以上に示した通り、本変形例に係る電源制御装置５１０により、停電が復旧した後自動的に記憶装置１１０の主電力の供給を開始させることができ、停電の復旧後に記憶装置１１０を自動的に起動させることができる。
【００５６】
以上に代えて、障害処理部２１０は、第１の障害処理乃至第４の障害処理の開始の指示の組合せとして、例えば、第１の障害処理は記憶装置１１０全体のリセットで第２の障害処理は記憶装置１１０の電源ＯＦＦ／ＯＮ等の、他の組合せを用いてもよい。
また、電源制御部５３０は、主電力の供給が停止してから所定の時間（例えば１０秒等）経過したことを必要条件として、Ｉ／Ｏバス２８０を介して主電力の供給の開始を指示してもよい。これにより、電源制御部５３０は、記憶装置１１０内のコンデンサ等の放電を待って、記憶装置１１０の電源をＯＮとすることができる。また、電源制御部５３０は、障害処理部２１０が主電力の供給の停止を指示したことにより電源制御部５３０が主電力の供給を停止させ、この結果主電力の供給が停止していることを必要条件として、Ｉ／Ｏバス２８０を介して主電力の供給の開始を指示してもよい。これにより、電源制御部５３０は、記憶装置１１０の使用者が記憶装置１１０の電源をＯＦＦとした場合に、使用者の意図に反して記憶装置１１０の電源をＯＮとするのを防ぐことができる。
【００５７】
図６は、本実施形態の第２変形例に係る電源制御装置５１０の電源制御部分を示す。本変形例に係る電源制御装置５１０は、障害処理部２１０、タイマ部２２０、電力取得部５２０、及び電源制御部５３０に加え、スイッチ６１０及びポリスイッチ６２０を有する。本変形例における障害処理部２１０、タイマ部２２０、電力取得部５２０及び電源制御部５３０は、図５の対応する部材と同様であるため説明を省略する。
【００５８】
スイッチ６１０は、ポリスイッチ６２０を介して入力される主電力と、グランドとの間に位置する。そして、スイッチ６１０は、電源制御部５３０のＰＷＲＣＴＬ信号が論理値１である場合に、記憶装置１１０の主電力Ｖｃｃをグランドにショートさせる。
ポリスイッチ６２０は、電力取得部５２０から入力される主電力と、スイッチ６１０の間に位置する。そして、ポリスイッチ６２０は、スイッチ６１０が主電力をグランドにショートさせた場合において、主電力とグランドの間に過電流が流れると、主電力とグランド間の電流の流れを切断する。
【００５９】
本変形例に係る電源制御装置５１０は、以下に示す動作により、電源ユニット５００からの主電力の供給を停止させる。
まず、電源制御部５３０は、障害処理部２１０から主電力の供給を停止させる指示を受ける。次に、電源制御部５３０は、ＰＷＲＣＴＬ信号を論理値１とする。次に、スイッチ６１０は、ＰＷＲＣＴＬ信号が論理値１に変化したため、電流を通過させる状態として主電力をグランドにショートさせる。
主電力がグランドにショートされると、主電力とグランドの間に過電流が流れる。ポリスイッチ６２０は、主電力とグランドの間に過電流が流れると、主電力とグランド間の電流の流れを切断する。これにより、ポリスイッチ６２０は、主電力とグランドのショート状態を、短期間で終わらせる。一方、電源ユニット５００は、ショート状態を検出して過電流保護機能（Ｏ．Ｃ．Ｐ：Ｏｖｅｒ  Ｃｕｒｒｅｎｔ  Ｐｒｏｔｅｃｔｉｏｎ）を動作させ、主電力の供給を停止する。
【００６０】
以上に示した様に、本変形例に係る電源制御装置５１０は、電源ユニット５００の過電流保護機能を利用して、主電力の供給を停止させる。このため、図５のＰＷＲＣＴＬ信号に相当する信号を電源ユニット５００に設けることなく、主電力の供給を停止させることができる。
【００６１】
以上に示した様に、本実施形態に係る記憶装置１１０によれば、障害処理部２１０は、タイマ部２２０を用いて設定された期間実行部２００が正常に動作していないことを検出し、実行部２００に障害処理を開始させることができる。また、障害処理部２１０は、記憶装置１１０が通常処理、第１の障害処理、第２の障害処理のいずれを実行している際にプロセッサ２４０の異常を検出したかに応じて、異なる障害処理を開始させることができる。具体的には、第１の障害処理はプロセッサ２４０に対する割り込みを用いて、第２の障害処理はプロセッサ２４０のリセットを用いて、また第３の障害処理は記憶装置１１０全体のリセットを用いてそれぞれ障害処理を開始させることで、障害処理の段階を第１の障害処理、第２の障害処理、第３の障害処理と進める毎に、より重度の高い障害から回復させることができる。そして、本実施形態の変形例に係る電源制御装置５１０は、記憶装置１１０の電源を一旦ＯＦＦとした後に再度ＯＮとする、第４の障害処理を提供する。従って、電源制御装置５１０を用いることにより、記憶装置１１０全体のリセットで回復できない障害においても、動作を回復できる可能性を備える記憶装置１１０を提供することができる。
【００６２】
また、本実施形態に係る記憶装置１１０によれば、障害処理部２１０は、設定された期間プロセッサ２４０が正常に動作していないことを検出した際に、内部状態を初期化する範囲が小さい第１の障害処理から順に障害処理を段階的に進める。これにより、障害情報取得部２３０は、障害を解析、特定、及び／又は復旧するために用いる障害情報を、可能な限り多く取得することができる。一方、障害の重度が高い場合においても、障害処理部２１０は、最終的には第３の障害処理の開始時に記憶装置１１０全体をリセットする。従って、本実施形態に係る記憶装置１１０によれば、障害が発生した場合においても記憶装置１１０の動作を回復する可能性を高くすることができる。
【００６３】
更に、本実施形態に係る記憶装置１１０によれば、障害処理部２１０は、第１の障害処理の開始時に駆動部２５５の動作を停止させる。このため、記憶装置１１０は、障害が発生した場合に記録媒体２５７自体又は記録媒体２５７に格納されたデータが、機械的又は電気的に破壊するのを防ぐことができる。
【００６４】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６５】
例えば、駆動部２５５は、モータ部２５８及び／又はヘッド部２５９等の機械的動作を行う装置には限定されない。また、記憶装置１１０は、更に入力装置や表示装置等を備えるＰＣ，ワークステーション、又はサーバ等の計算機であってもよい。この場合、記憶装置１１０は、記憶装置１１０上で実行されるアプリケーションソフトウェア及び／又はオペレーティングシステム等の動作がハングアップしたことを、タイムアウトにより検出することができる。従って、記憶装置１１０は、障害を解析、特定及び／又は復旧するために用いる障害情報を、可能な限り多く障害情報取得部２３０に取得させることができる。そして、本実施形態の変形例に係る電源制御装置５１０は、記憶装置１１０上で実行されるアプリケーションソフトウェア及び／又はオペレーティングシステムに障害が発生し、オペレーティングシステムが記憶装置１１０をシャットダウンして電源をＯＦＦとした場合においても、記憶装置１１０を再起動させることができる。
【００６６】
また、本実施形態に係る実行部２００は、プロセッサ２４０に代えて通常処理、第１の障害処理、第２の障害処理、及び第３の障害処理をハードウェアのみで処理する制御回路により実現されてもよい。
【００６７】
以上に説明した実施形態によれば、以下の各項目に示す情報処理装置、電源制御装置、情報処理装置制御方法、プログラム、及び記録媒体が実現される。
【００６８】
（項目１）  通常処理、第１の障害処理、及び第２の障害処理を含む処理のいずれかを実行する実行部と、前記通常処理中に、前記実行部が第１の期間正常に動作していないことを必要条件として、前記実行部に第１の障害処理を開始させ、前記第１の障害処理中に、前記実行部が第２の期間正常に動作していないことを必要条件として、前記実行部に第２の障害処理を開始させる障害処理部と、前記第１の障害処理の開始後における前記実行部の内部状態であって、前記第２の障害処理の開始後には取得できない内部状態を、障害情報として取得する障害情報取得部とを備えることを特徴とする情報処理装置。
（項目２）  前記実行部は、前記障害処理部が前記第２の障害処理を開始させた場合に初期化される前記内部状態を保持する第１の記録部と、前記障害処理部が前記第２の障害処理を開始させた場合においても初期化されない障害情報記録部とを有し、前記第１の障害処理において、前記実行部は、前記第１の記録部に保持された前記内部状態を取得して、前記障害情報記録部に格納し、前記障害情報取得部は、前記障害情報記録部に格納された前記内部状態を、前記障害情報として取得することを特徴とする項目１記載の情報処理装置。
（項目３）  前記実行部は、前記障害処理部が前記第２の障害処理を開始させた場合においても初期化されない第２の記録部を有し、前記障害情報取得部は、前記障害情報記録部に格納された前記内部状態に加え、前記第２の記録部が格納する情報を前記障害情報として更に取得することを特徴とする項目２記載の情報処理装置。
【００６９】
（項目４）  前記実行部は、前記障害処理部が前記第２の障害処理を開始させた場合に初期化される機能ユニットと、前記障害処理部が前記第２の障害処理を開始させた場合においても初期化されない障害情報記録部とを有し、前記第１の障害処理において、前記実行部は、前記機能ユニットが保持する情報を前記内部状態として前記障害情報記録部に格納し、前記障害情報取得部は、前記障害情報記録部に格納された前記内部状態を、前記障害情報として出力することを特徴とする項目１記載の情報処理装置。
（項目５）  前記実行部が正常動作していることを示す正常動作情報を、設定された期間前記実行部から受信しない場合に、前記実行部が設定された正常動作していないことを検出するタイマ部を更に備え、前記障害処理部は、前記実行部が前記通常処理中に前記第１の期間正常に動作していないこと、及び前記実行部が前記第１の障害処理中に前記第２の期間正常に動作していないことを、前記タイマ部を用いて検出することを特徴とする項目１記載の情報処理装置。
（項目６）  前記実行部は、設定された期間の計測を前記タイマ部に開始させることを示す情報を、前記正常動作情報として前記タイマ部に送信することを特徴とする項目５記載の情報処理装置。
【００７０】
（項目７）  前記実行部は、前記情報処理装置を制御する命令を実行するプロセッサを有し、前記障害処理部は、前記プロセッサに対して割り込みを行うことにより前記第１の障害処理を開始させることを特徴とする項目１記載の情報処理装置。
（項目８）  前記障害処理部は、前記プロセッサをリセットすることにより前記第２の障害処理を開始させることを特徴とする項目７記載の情報処理装置。
（項目９）  前記障害処理部は、前記情報処理装置をリセットすることにより前記第２の障害処理を開始させることを特徴とする項目７記載の情報処理装置。
（項目１０）  前記実行部は、前記情報処理装置を制御する命令を実行するプロセッサを有し、前記障害処理部は、前記プロセッサをリセットすることにより前記第１の障害処理を開始させ、前記情報処理装置をリセットすることにより前記第２の障害処理を開始させることを特徴とする項目１記載の情報処理装置。
【００７１】
（項目１１）  前記障害処理部は、前記第２の障害処理中に、前記実行部が第３の期間正常に動作していないことを必要条件として、前記実行部に第３の障害処理を更に開始させ、前記障害情報取得部は、前記第２の障害処理の開始後における前記実行部の内部状態であって、前記第３の障害処理の開始後には取得できない内部状態を、前記第３の障害処理における前記障害情報として取得することを特徴とする項目１記載の情報処理装置。
（項目１２）  機械的動作を行う駆動部を更に備え、前記障害処理部は、前記第１の障害処理の開始を前記実行部に指示する場合に、前記駆動部の動作を停止させることを特徴とする項目１記載の情報処理装置。
（項目１３）  前記情報処理装置は、外部から受けたデータを格納する記録媒体と、前記記録媒体のアクセスに用いるモーター部及びヘッド部とを更に備える記憶装置であって、前記障害処理部は、前記第１の障害処理の開始を前記実行部に指示する場合に、前記モーター部の動作及び前記ヘッド部による前記記録媒体のアクセスを停止させることを特徴とする項目１記載の情報処理装置。
【００７２】
（項目１４）  前記障害処理部は、前記第１の期間及び前記第２の期間として、同一の期間を用いることを特徴とする項目１記載の情報処理装置。
（項目１５）  前記情報処理装置本体の入出力バスに接続され、前記情報処理装置を動作させるために使用される主電力を前記情報処理装置から入力する電源制御装置を更に備え、前記障害処理部は、前記入出力バスを介して前記主電力の供給の停止を指示することにより前記第２の障害処理を開始させ、前記第２の障害処理において、前記電源制御装置は、前記情報処理装置に対する前記主電力の供給が停止していることを必要条件として、前記入出力バスを介して主電力の供給の開始を指示し、前記情報処理装置を起動させることを特徴とする項目１記載の情報処理装置。
【００７３】
（項目１６）  情報処理装置の入出力バスに接続される電源制御装置であって、前記情報処理装置の動作に使用する主電力を、前記情報処理装置から取得する電力取得部と、前記主電力の供給が停止していることを必要条件として、前記入出力バスを介して前記主電力の供給の開始を指示し、前記情報処理装置を起動させる電源制御部とを備えることを特徴とする電源制御装置。
（項目１７）  前記入出力バスは、ＰＣＩバスであり、前記電源制御部は、前記ＰＣＩバスのＰＭＥ＃（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｅｖｅｎｔ）信号を用いて前記主電力の供給の開始を指示することを特徴とする項目１６記載の電源制御装置。
（項目１８）  前記電源制御部は、前記主電力の供給が停止してから所定の時間経過したことを必要条件として、前記入出力バスを介して前記主電力の供給の開始を指示することを特徴とする項目１６記載の電源制御装置。
【００７４】
（項目１９）  前記情報処理装置が正常に動作していないと判断した場合に、前記入出力バスを介して前記主電力の供給の停止を指示する障害処理部を更に備えることを特徴とする項目１６記載の電源制御装置。
（項目２０）  前記電源制御部は、前記情報処理装置が正常に動作していない場合に前記主電力をショートさせることにより、前記情報処理装置内に設けられ、前記主電力を供給する電源ユニットの過電流保護機能を動作させ、前記電源ユニットによる前記主電力の供給を停止させることを特徴とする項目１６記載の電源制御装置。
（項目２１）  前記電源制御部は、前記障害処理部が前記主電力の供給の停止を指示したこと、及び前記主電力の供給が停止していることを必要条件として、前記入出力バスを介して前記主電力の供給の開始を指示することを特徴とする項目１６記載の電源制御装置。
（項目２２）  停電により前記主電力の供給が停止され、その後停電状態が解除された場合に、前記電源制御部は、前記入出力バスを介して前記主電力の供給の開始を指示して、前記情報処理装置を起動させることを特徴とする請求項１６記載の電源制御装置。
【００７５】
（項目２３）  情報処理装置に処理を行わせる情報処理装置制御方法であって、前記情報処理装置に、通常処理、第１の障害処理、及び第２の障害処理を含む処理のいずれかを実行させ、前記通常処理が第１の期間正常に動作していないことを必要条件として、第１の障害処理を開始させ、前記第１の障害処理が第２の期間正常に動作していないことを必要条件として、第２の障害処理を開始させ、前記第１の障害処理の開始後における前記実行部の内部状態であって、前記第２の障害処理の開始後には取得できない内部状態を、障害情報として取得させることを特徴とする情報処理装置制御方法。
（項目２４）  情報処理装置に処理を行わせるプログラムであって、前記情報処理装置を、通常処理、第１の障害処理、及び第２の障害処理を含む処理のいずれかを実行する実行部と、前記通常処理中に、前記実行部が第１の期間正常に動作していないことを必要条件として、前記実行部に第１の障害処理を開始させ、前記第１の障害処理中に、前記実行部が第２の期間正常に動作していないことを必要条件として、前記実行部に第２の障害処理を開始させる障害処理部と、前記第１の障害処理の開始後における前記実行部の内部状態であって、前記第２の障害処理の開始後には取得できない内部状態を、障害情報として取得する障害情報取得部として動作させることを特徴とするプログラム。
（項目２５）  前記情報処理装置を、前記実行部が正常動作していることを示す正常動作情報を、設定された期間前記実行部から受信しない場合に、前記実行部が設定された正常動作していないことを検出するタイマ部として更に動作させ、前記障害処理部は、前記実行部が前記通常処理中に前記第１の期間正常に動作していないこと、及び前記実行部が前記第１の障害処理中に前記第２の期間正常に動作していないことを、前記タイマ部を用いて検出することを特徴とする項目２４記載のプログラム。
【００７６】
（項目２６）  情報処理装置に処理を行わせるプログラムを記録した記録媒体であって、前記プログラムは、前記情報処理装置を、通常処理、第１の障害処理、及び第２の障害処理を含む処理のいずれかを実行する実行部と、前記通常処理中に、前記実行部が第１の期間正常に動作していないことを必要条件として、前記実行部に第１の障害処理を開始させ、前記第１の障害処理中に、前記実行部が第２の期間正常に動作していないことを必要条件として、前記実行部に第２の障害処理を開始させる障害処理部と、前記第１の障害処理の開始後における前記実行部の内部状態であって、前記第２の障害処理の開始後には取得できない内部状態を、障害情報として取得する障害情報取得部として動作させることを特徴とする記録媒体。
（項目２７）  前記プログラムは、前記情報処理装置を、前記実行部が正常動作していることを示す正常動作情報を、設定された期間前記実行部から受信しない場合に、前記実行部が設定された正常動作していないことを検出するタイマ部として更に動作させ、前記障害処理部は、前記実行部が前記通常処理中に前記第１の期間正常に動作していないこと、及び前記実行部が前記第１の障害処理中に前記第２の期間正常に動作していないことを、前記タイマ部を用いて検出することを特徴とする項目２６記載の記録媒体。
【００７７】
【発明の効果】
上記説明から明らかなように、本発明によれば、障害復旧の可能性を高めることにより情報処理装置の信頼性を更に高め、情報処理装置の各部に発生する障害の種類に応じて適切な障害処理を行う情報処理装置及び電源制御装置を提供することができる。
【図面の簡単な説明】
【図１】  本発明の実施形態に係る計算機システム１００の構成を示す。
【図２】  本発明の実施形態に係る記憶装置１１０の構成を示す。
【図３】  本発明の実施形態に係る記憶装置１１０の処理の流れを示す。
【図４】  本発明の実施形態に係る計算機１２０のハードウェア構成の一例を示す。
【図５】  本発明の実施形態の第１変形例に係る記憶装置１１０の構成を示す。
【図６】  本発明の実施形態の第２変形例に係る電源制御装置５１０の電源制御部分を示す。
【符号の説明】
１００  計算機システム
１１０  記憶装置
１２０  計算機
２００  実行部
２１０  障害処理部
２１２  処理状態レジスタ
２１５  ＮＭＩ信号
２１６  ＣＰＵＲＥＳＥＴ信号
２１７  ＳＹＳＲＥＳＥＴ信号
２１８  ＰＷＲＯＦＦ信号
２２０  タイマ部
２２２  タイマレジスタ
２３０  障害情報取得部
２３２  障害情報レジスタ
２４０  プロセッサ
２４２  レジスタ
２４５  通信ユニット
２４７  レジスタ
２５０  入出力制御ユニット
２５２  レジスタ
２５５  駆動部
２５７  記録媒体
２５８  モータ部
２５９  ヘッド部
２６０  メモリ
２６２  通常使用領域
２６４  障害情報記録部
２７０  メモリ制御ユニット
２７２  レジスタ
２８０  Ｉ／Ｏバス
４１０  ＣＰＵ
４２０  ＲＯＭ
４３０  ＲＡＭ
４４０  通信インターフェイス
４５０  ハードディスクドライブ
４６０  フロッピーディスクドライブ
４７０  ＣＤ−ＲＯＭドライブ
４８０  Ｉ／Ｏインターフェイス
４９０  フロッピーディスク
４９５  ＣＤ−ＲＯＭ
５００  電源ユニット
５１０  電源制御装置
５２０  電力取得部
５３０  電源制御部
６１０  スイッチ
６２０  ポリスイッチ
【図１】
0003824548.tif 000002
【図２】
0003824548.tif 000003
【図３】
0003824548.tif 000004
【図４】
0003824548.tif 000005
【図５】
0003824548.tif 000006
【図６】
0003824548.tif 000007