(57)【特許請求の範囲】
【請求項１】
複数の処理単位からなるプログラムを実行し、前記プログラムが格納された記憶装置が単数である情報処理装置であって、
前記複数の処理単位を順次実行する制御手段と、
いずれかの前記処理単位を正常に処理できない場合、前記情報処理装置をリセットするリセット手段と、
正常に処理できなかった前記処理単位を記憶する記憶手段とを有し、
前記制御手段は、前記リセット後、再び前記処理単位を順次実行する際、前記記憶手段が記憶している前記処理単位をスキップする
情報処理装置。
【請求項２】
前記記憶手段は、第１の記憶手段及び第２の記憶手段を含み、少なくとも前記第１の記憶手段は前記リセットの影響を受けない記憶手段であり、
前記第２の記憶手段は、前記プログラムの実行を開始する際、前記第１の記憶手段の記憶内容を複製して記憶し、
前記制御手段は、前記処理単位を順次実行する際、前記処理単位を示す識別子を前記第１の記憶手段に記憶させるとともに、前記第１の記憶手段及び前記第２の記憶手段の記憶内容を比較し、一致する場合は前記処理単位をスキップする
請求項１記載の情報処理装置。
【請求項３】
前記制御手段は、全ての前記処理単位の実行を完了した場合、前記記憶手段の記憶内容をクリアする
請求項１乃至２いずれか１項記載の情報処理装置。
【請求項４】
前記記憶手段は、正常に処理できなかった前記処理単位とともに、正常に処理できなかった累積回数を併せて記憶し、
前記制御手段は、前記処理単位を順次実行する際、前記記憶手段が記憶している前記処理単位であって、前記累積回数が所定の閾値以上である前記処理単位をスキップする
請求項１乃至３いずれか１項記載の情報処理装置。
【請求項５】
スキップ可能な前記処理単位を予め記憶した第３の記憶手段をさらに有し、
前記制御手段はさらに、前記第３の記憶手段が前記処理単位を記憶している場合にのみ、前記処理単位をスキップする
請求項１乃至４いずれか１項記載の情報処理装置。
【請求項６】
複数の処理単位からなるプログラムを実行し、前記プログラムが格納された記憶装置が単数である情報処理装置を用いた情報処理方法であって、
前記複数の処理単位を順次実行する第１の実行ステップと、
いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記情報処理装置をリセットするリセットステップと、
前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第２の実行ステップとを含む
情報処理方法。
【請求項７】
前記第１の実行ステップ及び前記第２の実行ステップでは、前記プログラムの実行を開始する際、前記リセットの影響を受けない第１の記憶手段の記憶内容を複製して第２の記憶手段に記憶させるとともに、前記処理単位を順次実行する際、前記処理単位を示す識別子を前記第１の記憶手段に記憶させ、前記第１の記憶手段及び前記第２の記憶手段の記憶内容を比較し、一致する場合は前記処理単位をスキップする
請求項６記載の情報処理方法。
【請求項８】
前記第１の実行ステップ及び前記第２の実行ステップでは、全ての前記処理単位の実行を完了した場合、少なくとも前記第１の記憶手段の記憶内容をクリアする
請求項７記載の情報処理方法。
【請求項９】
複数の処理単位からなるプログラムが格納された記憶装置が単数であるコンピュータに、
前記プログラムの前記処理単位を順次実行する第１の実行ステップと、
いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記コンピュータをリセットするリセットステップと、
前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第２の実行ステップとを実行させる
プログラム。
【請求項１０】
複数の処理単位からなるプログラムが格納された記憶装置が単数であるコンピュータに、
前記プログラムの前記処理単位を順次実行する第１の実行ステップと、
いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記コンピュータをリセットするリセットステップと、
前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第２の実行ステップとを実行させるため
のプログラムが格納された
記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関し、特に恒久的な障害を回避しつつプログラムを実行する技術に関する。
【背景技術】
【０００２】
コンピュータがプログラムを実行中に、ストール、すなわち何らかの障害の発生によりプログラムの実行が停止する状況が発生した場合に、当該プログラムの実行を自動的に中止し再実行することにより、当該状況からの復旧を試みる機構が幾らか知られている。
【０００３】
例えば、コンピュータは、電源投入直後、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）と呼ばれるプログラムを実行する。このとき、ＷＤＴ（ｗａｔｃｈｄｏｇ  ｔｉｍｅｒ）がＢＩＯＳのＰＯＳＴ（Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）処理の実行状況を監視しており、ストールの発生を検知するとコンピュータをリセットして、コンピュータに再度ＰＯＳＴ処理を実行させる（以下、リブートという）。
【０００４】
ストールの原因が単なる一時的な障害である場合は、このようなリセット後のプログラム再実行（以下、リブートという）により、プログラムが正常に動作する場合も多い。しかしながら、何らかの恒久的、固定的な要因によってストールが発生している場合には、このようなリセットは解決策にならない。プログラムを単に再実行しても、結局同じ要因によってストールが再発生してしまうからである。後者のような場合、コンピュータは何度もリブートを繰り返すなどの挙動をとり、そのままでは障害から回復できない。このような障害から回復するためには、一般に、障害が発生しているハードウェアを交換する必要があるが、交換のためには、交換部材及び専門的な知識を有する保守作業員を要する。このため、従来、このような障害からの回復には時間がかかり、システム運用に支障をきたすという問題があった。
【０００５】
こうした問題に対して、特許文献１は、所定回数ストールが発生した場合には、リブートを行なわず、コンピュータを停止させる手法を提案している。
【０００６】
特許文献２は、複数のプロセッサを有するコンピュータが、プロセッサの障害に起因するストールが発生した場合に、他方のプロセッサを利用して障害の発生したプロセッサを切り離すことにより、再度のストールを回避する方法を提案している。
【０００７】
特許文献３は、他のソフトウェアの動作監視を行なうマルチタスク構成のソフトウェアを用いることによって、障害の発生している処理を特定する手法を提案している。
【０００８】
特許文献４は、試験プログラムの実行時、エラーの発生した試験項目の番号を記録しておき、次回の試験プログラムの実行時、前記番号の試験項目の実行をスキップする、すなわち実行せず次の試験項目に移る手法を提案している。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１１−１３８２３１号公報
【特許文献２】特開２００５−０１８４６２号公報
【特許文献３】特開２０１０−００９２９６号公報
【特許文献４】特開平０４−１６７１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１の手法では、依然として障害自体を復旧しなければコンピュータを起動することができない。
【００１１】
また、特許文献２の方法は、プロセッサが１つしかないコンピュータでは採用できない。さらに、ストールの原因がプロセッサではなく、例えばプラットフォームの障害であったような場合には、やはりコンピュータは何度もリブートを繰り返すなどの状態に陥る。
【００１２】
また、特許文献３の手法も、マルチタスク動作を必要とするため、プロセッサが１つしかないコンピュータでは採用できない。また、当該手法によれば、依然として、障害自体を復旧しなければコンピュータシステムを利用することができない。
【００１３】
また、特許文献４の手法において、エラーではなくストールが発生した場合は、試験プログラム自体が正常に終了しないため、前記手法は効果を発揮できない。さらに、この手法は、スキップさせるべきエラーかどうかを作業員が判断しなければならないため、実施に手間がかかる。
【課題を解決するための手段】
【００１４】
本発明に係る情報処理装置は、複数の処理単位からなるプログラムを実行する情報処理装置であって、前記複数の処理単位を順次実行する制御手段と、いずれかの前記処理単位を正常に処理できない場合、前記装置をリセットするリセット手段と、正常に処理できなかった前記処理単位を記憶する記憶手段とを有し、前記制御手段は、前記リセット後、再び前記処理単位を順次実行する際、前記記憶手段が記憶している前記処理単位をスキップするものである。
【００１５】
本発明に係る情報処理方法は、複数の処理単位からなるプログラムの前記処理単位を順次実行する第１の実行ステップと、いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記装置をリセットするリセットステップと、前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第２の実行ステップとを含むものである。
【００１６】
本発明に係るプログラムは、コンピュータに、複数の処理単位からなるプログラムの前記処理単位を順次実行する第１の実行ステップと、いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記装置をリセットするリセットステップと、前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第２の実行ステップとを実行させるものである。
【００１７】
本発明に係る記録媒体は、コンピュータに、複数の処理単位からなるプログラムの前記処理単位を順次実行する第１の実行ステップと、いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記装置をリセットするリセットステップと、前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第２の実行ステップとを実行させるためのプログラムが格納されたものである。
【発明の効果】
【００１８】
本発明により、恒久的な障害を回避しつつプログラムを実行することができる情報処理装置、情報処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態１の情報処理装置１００の構成を示す図である。
【図２】本発明の実施の形態１の情報処理装置１００の構成を示す図である。
【図３】本発明の実施の形態１の情報処理装置１００の処理フローを示す図である。
【図４】本発明の実施の形態２の情報処理装置１００の構成を示す図である。
【図５】本発明の実施の形態２の情報処理装置１００の処理フローを示す図である。
【図６】本発明の実施の形態３の情報処理装置１００の処理フローを示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００２１】
＜実施の形態１＞
まず、図１を用いて、本発明の実施の形態１にかかる情報処理装置１００の構成について説明する。
【００２２】
本実施の形態に係る情報処理装置１００は、制御手段１１０、記憶手段１２０、リセット手段１３０を有する。
【００２３】
制御手段１００は、制御プログラムに基づいて各種処理を実行する手段であり、典型的にはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。制御プログラムは、記憶手段１２０や図示しない他の記憶手段に格納される。あるいは、図示しない通信インタフェイス等を介して外部から供給されても良い。
【００２４】
本実施の形態では、制御手段１００が、制御プログラムとしてのＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）に従って、ＰＯＳＴ（Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｓｔ）処理を実行する場合を例として説明する。また、本実施の形態では、制御プログラムは複数の処理単位から構成されているものとする。例えば、ＢＩＯＳのＰＯＳＴ処理は、前記処理単位として、ＢＩＯＳコードの検証、メインメモリの検証、バス及びデバイスの検出及び初期化、ブート可能デバイスの特定等の複数の処理を含む。
【００２５】
記憶手段１２０は、制御手段１００が実行する処理に必要な情報を非一時的に格納可能な手段である。記憶手段は、上述の制御プログラム、例えばＢＩＯＳを格納しても良い。記憶手段１２０は、後述のリセット手段１０３によるシステムリセットの影響を受けることなく、記憶内容を保持することができることを特徴とする。記憶手段１２０は、典型的には不揮発性メモリであるが、前記システムリセットの影響を受けることなく継続的に電源供給可能な揮発性メモリであっても良い。
【００２６】
リセット手段１３０は、所定の条件の満足を検知した場合に、情報処理装置１００を強制的に初期状態にする処理（システムリセット）を行う。システムリセットが行われると、制御手段１００は、制御プログラムに基づく処理を再度、最初から実行する。本実施の形態におけるリセット手段１０３は、制御手段１００がストールに陥ったことを検知した場合、例えば制御手段１１０が一定時間応答しない状態になった場合に、システムリセット実行する。
【００２７】
図２に、情報処理装置１００のより詳細な実装例を示す。
【００２８】
制御手段１１０は、ＣＰＵであり、記憶手段１２０からＢＩＯＳ１２１を読み出してＰＯＳＴ処理を実行する。  記憶手段１２０は不揮発性メモリであり、制御プログラムとしてのＢＩＯＳ１２１を含む。ＢＩＯＳ１２１は、ＰＯＳＴ処理を行うための複数の処理単位を含んでいる。また、記憶手段１２０は、ＢＩＯＳ１２１のＰＯＳＴ処理を実行する際に必要なデータを保持するための領域としての第１の記憶手段１２２及び第２の記憶手段１２３を含む。
【００２９】
リセット手段１３０は、ＷＤＴ（Ｗａｔｃｈ  Ｄｏｇ  Ｔｉｍｅｒ）１３１及びリセット回路１３２を含む。ＷＤＴ１３１は、外部からのサービスパルスの間隔を計測するタイマである。ＷＤＴ１３１は、サービスパルスが供給される毎にタイマをリセットし、新たに時間の計測を開始する。この計測時間が予め定められた閾値を超えた場合、ＷＤＴ１３１は、リセット回路１３２にタイムアウトを通知する。リセット回路１３２は、タイムアウトの通知を受けると、システムリセットを実行する。
【００３０】
本実施の形態では、制御手段１１０が、正常に処理を実行しているあいだ定期的に、ＷＤＴ１３１に対しサービスパルスを供給する。しかし、ストールの発生等の要因により制御手段１１０が動作を停止し、前記閾値を超える時間にわたってサービスパルスを供給できない事態に陥ると、ＷＤＴ１３１はタイムアウトを発生し、リセット回路１３２がシステムリセットを行う。
【００３１】
上記の構成に加え、情報処理装置１００は、メモリ１４０及び入出力手段１５０を有していても良い。
【００３２】
メモリ１４０は揮発性のメインメモリであり、制御手段１１０が制御プログラムを実行する際に必要なデータを一時的に保持する。
【００３３】
入出力手段１５０は、キーボードコントローラ１５１、グラフィックコントローラ１５２、キーボード１５３及び表示装置１５４を含む。キーボードコントローラ１５１及びグラフィックコントローラ１５２は、入力デバイスであるキーボード１４３及び出力デバイスである表示装置１４６と、制御手段１１０との間における情報の入出力を制御する。
【００３４】
制御手段１１０、記憶手段１２０、リセット手段１３０、メモリ１４０及び入出力手段１５０は、システムバス１６０を介して接続される。
【００３５】
図３を用いて、情報処理装置１００の処理について説明する。
【００３６】
Ａ１：情報処理装置１００が起動する。情報処理装置１００に電源が投入されると、制御手段１１０はまず、記憶手段１２０内のＢＩＯＳ１２１のコードを読み出す。
【００３７】
Ａ２：制御手段１１０は、第１の記憶手段１２２を参照し、ここにデータが格納されていれば、そのデータを第２の記憶手段１２３にコピーする。
【００３８】
後述するが、第１の記憶手段には、制御手段１１０が前回ＢＩＯＳ１２１のＰＯＳＴ処理を実行した際、処理を完遂できなかった処理単位を示すデータが格納されていることがある。なお、制御手段１１０が前回ＢＩＯＳ１２１のＰＯＳＴ処理を実行した際、全ての処理単位を実行できた場合、第１の記憶手段１２０はクリアされている。すなわち、データは抹消されているか、記憶されていない。
【００３９】
Ａ３：制御手段１１０は、ＢＩＯＳ１２１のＰＯＳＴ処理の実行を開始する。制御手段１１０は、ＰＯＳＴ処理を構成する複数の処理単位を１つずつ順次実行していくが、各処理単位を実行する前に、実行しようとする処理単位を特定するための情報を、第１の記憶手段１２２に格納する。本実施の形態では、各処理単位に予め識別子が付与されており、制御手段１１０は、処理単位を特定するための情報としてこの識別子を第１の記憶手段１２２に格納するものとする。
【００４０】
Ａ４：制御手段１１０は、第１の記憶手段１２２に格納されたデータと、第２の記憶手段１２３に格納されたデータとを比較する。
【００４１】
第２の記憶手段に格納されているデータは、制御手段１１０が前回ＰＯＳＴ処理を実行した際、処理を完遂できなかった処理単位の識別子である。よって、ここで第１の記憶手段１２２及び第２の記憶手段１２３の記憶内容が一致した場合、制御手段１１０がこれから実行しようとしている処理単位は、制御手段１１０が前回、処理を完遂できなかった処理単位ということになる。一方、第１の記憶手段１２２及び第２の記憶手段１２３の記憶内容が一致しない場合、制御手段１１０がこれから実行しようとしている処理単位は、初めて実行される処理単位、前回実行した際に障害が発生しなかった処理単位、又は前回実行されなかった処理単位のいずれかである。
【００４２】
Ａ５：Ａ４において、第１の記憶手段１２２及び第２の記憶手段１２３の記憶内容が一致しなかった場合、制御手段１１０は、実行しようとする処理単位、すなわち第１の記憶手段１２２に格納した識別子にかかる処理単位を実行する。
【００４３】
制御手段１１０がこの処理単位を実行しているとき、ストールが発生すると、一定時間経過後、リセット手段１３０がシステムリセットを行う。すなわち、制御手段１１０が実行している処理を強制的に中断し、情報処理装置１００を初期化する。このとき、第１の記憶手段１２２には、制御手段１１０が実行中の処理単位の識別子が残っている。第１の記憶手段１２２はシステムリセットの影響を受けず、非揮発性メモリであるため、第１の記憶手段１２２は、システムリセットの前後を通じてその記憶内容を保持する。システムリセット後、情報処理装置１００が起動すると（上記Ａ１）、制御手段１１０は上記Ａ２以降の処理を再度実行する。第１の記憶手段１２２に格納されたままとなっていた識別子は、以降の処理において、今回のＰＯＳＴ処理において処理を完了できなかった処理単位であって、次回のＰＯＳＴ処理において回避すべき処理単位を示す識別子として、制御手段１１０により参照される。
【００４４】
Ａ６：Ａ４において、第１の記憶手段１２２及び第２の記憶手段１２３の記憶内容が一致した場合、制御手段１１０は、実行しようとしていた処理単位、すなわち第１の記憶手段１２２に格納した識別子にかかる処理単位の実行をスキップする。すなわち、その処理単位を実行せず、後述のＡ７以降のフローにしたがって次の処理単位を実行する。換言すれば、制御手段１１０は、次に実行すべき処理単位を対象として、Ａ３乃至Ａ６の処理を実行する。
【００４５】
このような処理により、制御手段１１０は、前回正常に処理を完了できなかった処理単位を再度実行することを回避する。前回ストールが発生した処理単位は、再度実行したとしても再びストールが発生し、結果としてシステムリセットが繰り返される蓋然性が高い。一方、前回ストールが発生した処理単位の再実行を回避することで、システムリセットが繰り返される事態を回避することができる。
【００４６】
Ａ７：制御手段１１０は、ＰＯＳＴ処理の全ての処理単位の実行が完了しているか否かを判定する。完了している場合、制御手段１００は次の処理単位を実行する。すなわち、制御手段１１０は、次に実行すべき処理単位について、上述のＡ３乃至Ａ６にかかる処理を実行する。
【００４７】
Ａ８：一方、全ての処理単位の実行が完了しており、次に実行すべき処理単位が存在しない場合、制御手段１１０は、第１の記憶手段１２２の記憶内容をクリアする。これは、今般のＰＯＳＴ処理においては全ての処理単位が正常に実行されたこと、次回のＰＯＳＴ処理において回避すべき処理単位は存在しないことを示す。
【００４８】
Ａ９：制御手段１１０は、ＰＯＳＴ処理を完了する。通常、制御手段１００はこの後、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のメモリ１４０へのロード等の処理を実行する。
【００４９】
本実施の形態においては、記憶手段１２０、より具体的には第１の記憶手段１２２に、プログラム、例えばＢＩＯＳ１２１のＰＯＳＴ処理を前回実行した際に処理を完了できなかった処理単位を示す情報を格納しておき、次回実行時にはその処理単位の実行をスキップする。これにより、ストール発生の蓋然性の高い処理単位を繰り返し実行してしまう不具合を回避することができる。
【００５０】
このため、当該処理単位が担うべき一部機能を利用できない限定された状態でありながらも、情報処理装置１００を起動することができる。
【００５１】
また、情報処理装置１００及び当該装置を含むシステムを継続的に運用することができる。
【００５２】
さらに、情報処理装置１００はストール発生時の障害対応をＢＩＯＳ１２１により実施するため、保守要員等の人手介入を抑制できる。
【００５３】
＜実施の形態２＞
つぎに、図４を用いて、本発明の実施の形態２にかかる情報処理装置１００の構成について説明する。
【００５４】
本実施の形態における情報処理装置１００は、第３の記憶手段１７０を含む点に特徴を有する。その余の構成要素については、上述の実施の形態１と同様である。
【００５５】
第３の記憶手段１７０は、システムリセットの影響を受けない、すなわちシステムリセットの前後で記憶内容を保持可能な記憶手段であり、典型的には不揮発性メモリである。図４では、第３の記憶手段１７０と記憶手段１２０はそれぞれ独立の手段として表されているが、必ずしもその必要はなく、例えば第３の記憶手段１７０は記憶手段１２０の一部であっても良い。あるいは、第３の記憶手段１７０の一部として、第１の記憶手段１２２、第２の記憶手段１２３が存在していても良い。
【００５６】
第３の記憶手段１７０は、ＰＯＳＴ処理を構成する複数の処理単位のうち、スキップ可能な処理単位を特定する情報、典型的には識別子を格納した、テーブル１７１を含んでいる。テーブル１７１には、例えば当該処理単位が実行されなくても情報処理装置１００が限定的に動作できる処理単位、換言すれば、当該処理単位が担うべき機能を利用できない限定された環境であっても情報処理装置１００がＯＳを起動可能となる処理単位を、予め登録しておくことができる。一方、情報処理装置１００の動作に不可欠な処理単位については、スキップされないよう、テーブル１７１から予め除外しておくことができる。
【００５７】
図５を用いて、本実施の形態にかかる情報処理装置１００の処理について説明する。
【００５８】
本実施の形態は、制御手段１１０が、実施の形態１における処理Ａ６の前に、後述の処理Ｂ１を実行し、Ｂ１の実行結果に応じて処理Ａ６又はＡ５を実行する点に最大の特徴を有する。その余の処理Ａ１乃至Ａ９については、実施の形態１とほぼ同様である。
【００５９】
Ａ１：情報処理装置１００が起動する。情報処理装置１００に電源が投入されると、制御手段１１０はまず、記憶手段１２０内のＢＩＯＳ１２１のコードを読み出す。
【００６０】
Ａ２：制御手段１１０は、第１の記憶手段１２２を参照し、ここにデータが格納されていれば、そのデータを第２の記憶手段１２３にコピーする。
【００６１】
Ａ３：制御手段１１０は、ＰＯＳＴ処理を構成する複数の処理単位を１つずつ順次実行していくが、各処理単位を実行する前に、実行しようとする処理単位の識別子を、第１の記憶手段１２２に格納する。
【００６２】
Ａ４：制御手段１１０は、第１の記憶手段１２２に格納されたデータと、第２の記憶手段１２３に格納されたデータとを比較する。
【００６３】
Ａ５：Ａ４において、第１の記憶手段１２２及び第２の記憶手段１２３の記憶内容が一致しなかった場合、又は後述のＢ１において、第１の記憶手段１２２及びテーブル１７１に格納されている識別子が一致しなかった場合、制御手段１１０は、実行しようとする処理単位、すなわち第１の記憶手段１２２に格納した識別子にかかる処理単位を実行する。
【００６４】
Ｂ１：Ａ４において、第１の記憶手段１２２及び第２の記憶手段１２３の記憶内容が一致した場合、制御手段１１０は、実行しようとする処理単位の識別子、すなわち第１の記憶手段１２２に格納した識別子が、第３の記憶手段１７０のテーブル１７１に格納されているか否かを判定する。
【００６５】
Ａ６：Ｂ１において、第１の記憶手段１２２及びテーブル１７１に格納されている識別子が一致した場合、制御手段１１０は、実行しようとしていた処理単位、すなわち第１の記憶手段１２２に格納した識別子にかかる処理単位の実行をスキップする。
【００６６】
Ａ７：制御手段１１０は、ＰＯＳＴ処理の全ての処理単位の実行が完了しているか否かを判定する。完了している場合、制御手段１００は次の処理単位を実行する。すなわち、制御手段１１０は、次に実行すべき処理単位について、上述のＡ３乃至Ａ６にかかる処理を実行する。
【００６７】
Ａ８：一方、全ての処理単位の実行が完了しており、次に実行すべき処理単位が存在しない場合、制御手段１１０は、第１の記憶手段１２２の記憶内容をクリアする。
【００６８】
Ａ９：制御手段１１０は、ＰＯＳＴ処理を完了する。通常、制御手段１００はこの後、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のメモリ１４０へのロード等の処理を実行する。
【００６９】
本実施の形態においては、制御手段１１０は、第３の記憶手段１７０に予め登録された処理単位のみをスキップする。これにより、一部機能を利用できない限定された状態であっても情報処理装置１００を起動でき、かつ情報処理装置１００の起動に不可欠な機能は損なわれない状態で情報処理装置１００を起動できる。
【００７０】
＜実施の形態３＞
実施の形態１及び２では、制御手段１１０は、正常に処理を完了できなかった処理単位を、次回のプログラムの実行時にスキップする。この場合、処理単位を正常に実行できなかった原因が、たとえリセットにより回復するような一時的なストール障害であった場合であっても、制御手段１１０は、当該処理単位を次回スキップしてしまう。
【００７１】
そこで、実施の形態３では、リセットにより回復するような一時的なストール障害と、リセットによる回復が見込めない恒久的なストール障害とを区別する。
【００７２】
本実施の形態における情報処理装置１００は、記憶手段１２０、特に第１の記憶手段１２２に、制御手段１１０が前回ＰＯＳＴ処理を実行した際、処理を完遂できなかった処理単位の識別子とともに、処理を完遂できなかった累積回数を格納する点に特徴を有する。その余の構成については、実施の形態１及び２と同様である。
【００７３】
図６を用いて、本実施の形態にかかる情報処理装置１００の処理について説明する。
本実施の形態は、制御手段１１０が、実施の形態１における処理Ａ３の代わりにＣ１、処理Ａ５の代わりにＣ２、処理Ａ６の前にＣ３を実行し、Ｃ３の実行結果に応じて処理Ａ６又はＣ２を実行する点に最大の特徴を有する。その余の処理Ａ１、Ａ２、Ａ６乃至Ａ９については、実施の形態１とほぼ同様である。なお、処理Ｃ３の前後いずれかに、実施の形態２において説明した処理Ｂ１を挿入しても構わない。
【００７４】
Ａ１：情報処理装置１００が起動する。情報処理装置１００に電源が投入されると、制御手段１１０はまず、記憶手段１２０内のＢＩＯＳ１２１のコードを読み出す。
【００７５】
Ａ２：制御手段１１０は、第１の記憶手段１２２を参照し、ここにデータが格納されていれば、そのデータを第２の記憶手段１２３にコピーする。
【００７６】
Ｃ１：制御手段１１０は、ＰＯＳＴ処理を構成する複数の処理単位を１つずつ順次実行していくが、各処理単位を実行する前に、実行しようとする処理単位の識別子を第１の記憶手段１２２に格納する。また、制御手段１１０は、累積回数として「０」を、前記識別子と対応付けて第１の記憶手段１２２に格納する。
【００７７】
Ａ４：制御手段１１０は、第１の記憶手段１２２に格納されたデータと、第２の記憶手段１２３に格納されたデータとを比較する。
【００７８】
Ｃ２：Ａ４において、第１の記憶手段１２２及び第２の記憶手段１２３の記憶内容が一致しなかった場合、又は後述のＣ３において、累積回数が閾値ｎ以下である場合、制御手段１１０は、実行しようとする処理単位、すなわち第１の記憶手段１２２に格納した識別子にかかる処理単位を実行する。このとき、制御手段１１０は、前記識別子に対応付けられた累積回数をインクリメントする。
【００７９】
Ｃ３：Ａ４において、第１の記憶手段１２２及び第２の記憶手段１２３の記憶内容が一致した場合、制御手段１１０は、実行しようとする処理単位の識別子、すなわち第１の記憶手段１２２に格納した識別子に対応付けられた累積回数が、予め定められた閾値ｎ以下であるか否かを判定する。
【００８０】
Ａ６：Ｃ３において、累積回数が閾値ｎを超える場合、制御手段１１０は、実行しようとしていた処理単位、すなわち第１の記憶手段１２２に格納した識別子にかかる処理単位の実行をスキップする。
【００８１】
Ａ７：制御手段１１０は、ＰＯＳＴ処理の全ての処理単位の実行が完了しているか否かを判定する。完了している場合、制御手段１００は次の処理単位を実行する。すなわち、制御手段１１０は、次に実行すべき処理単位について、上述のＡ３乃至Ａ６にかかる処理を実行する。
【００８２】
Ａ８：一方、全ての処理単位の実行が完了しており、次に実行すべき処理単位が存在しない場合、制御手段１１０は、第１の記憶手段１２２の記憶内容をクリアする。
【００８３】
Ａ９：制御手段１１０は、ＰＯＳＴ処理を完了する。通常、制御手段１００はこの後、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のメモリ１４０へのロード等の処理を実行する。
【００８４】
本実施の形態においては、制御手段１１０は、正常に処理を完了できない事象が所定の回数を超えて発生した処理単位のみ、次回のプログラムの実行の際にスキップする。これにより、リセットにより回復するような一時的なストール障害と、恒久的なストール障害とを区別し、前者の場合には、前回のプログラム実行時に正常に処理を完了できなかった処理単位であっても、次回のプログラム実行時に当該処理単位の実行を再試行する。これにより、ストール障害が発生しても、可能な限り多くの機能を利用できる状態で再度情報処理装置１００を起動できる。
【００８５】
＜その他の実施の形態＞
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【００８６】
例えば、上述の実施の形態では、本発明を主にハードウェアにより構成されるものとして説明したが、これに限定されるものではなく、任意の手段を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより論理的に実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００８７】
１００  情報処理装置
１１０  制御手段
１２０  記憶手段
１２１  ＢＩＯＳ
１２２  第１の記憶手段
１２３  第２の記憶手段
１３０  リセット手段
１３１  ＷＤＴ
１３２  リセット回路
１４０  メモリ
１５０  入出力手段
１５１  キーボードコントローラ
１５２  グラフィックコントローラ
１５３  キーボード
１５４  表示装置
１６０  システムバス
１７０  第３の記憶手段
【図１】
0005994246.tif 000002
【図２】
0005994246.tif 000003
【図３】
0005994246.tif 000004
【図４】
0005994246.tif 000005
【図５】
0005994246.tif 000006
【図６】
0005994246.tif 000007