特許第5994246号(P5994246)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許5994246情報処理装置、情報処理方法及びプログラム
<>
  • 特許5994246-情報処理装置、情報処理方法及びプログラム 図000002
  • 特許5994246-情報処理装置、情報処理方法及びプログラム 図000003
  • 特許5994246-情報処理装置、情報処理方法及びプログラム 図000004
  • 特許5994246-情報処理装置、情報処理方法及びプログラム 図000005
  • 特許5994246-情報処理装置、情報処理方法及びプログラム 図000006
  • 特許5994246-情報処理装置、情報処理方法及びプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5994246
(24)【登録日】2016年9月2日
(45)【発行日】2016年9月21日
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
   G06F 11/07 20060101AFI20160908BHJP
   G06F 9/445 20060101ALI20160908BHJP
【FI】
   G06F11/07 193
   G06F11/07 166
   G06F11/07 140Z
   G06F9/06 610K
【請求項の数】10
【全頁数】14
(21)【出願番号】特願2011-275945(P2011-275945)
(22)【出願日】2011年12月16日
(65)【公開番号】特開2013-125533(P2013-125533A)
(43)【公開日】2013年6月24日
【審査請求日】2014年11月13日
【前置審査】
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】和田 大輔
【審査官】 多胡 滋
(56)【参考文献】
【文献】 特開2002−215399(JP,A)
【文献】 特開2004−302731(JP,A)
【文献】 特開2009−176232(JP,A)
【文献】 特開平04−007636(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
複数の処理単位からなるプログラムを実行し、前記プログラムが格納された記憶装置が単数である情報処理装置であって、
前記複数の処理単位を順次実行する制御手段と、
いずれかの前記処理単位を正常に処理できない場合、前記情報処理装置をリセットするリセット手段と、
正常に処理できなかった前記処理単位を記憶する記憶手段とを有し、
前記制御手段は、前記リセット後、再び前記処理単位を順次実行する際、前記記憶手段が記憶している前記処理単位をスキップする
情報処理装置。
【請求項2】
前記記憶手段は、第1の記憶手段及び第2の記憶手段を含み、少なくとも前記第1の記憶手段は前記リセットの影響を受けない記憶手段であり、
前記第2の記憶手段は、前記プログラムの実行を開始する際、前記第1の記憶手段の記憶内容を複製して記憶し、
前記制御手段は、前記処理単位を順次実行する際、前記処理単位を示す識別子を前記第1の記憶手段に記憶させるとともに、前記第1の記憶手段及び前記第2の記憶手段の記憶内容を比較し、一致する場合は前記処理単位をスキップする
請求項1記載の情報処理装置。
【請求項3】
前記制御手段は、全ての前記処理単位の実行を完了した場合、前記記憶手段の記憶内容をクリアする
請求項1乃至2いずれか1項記載の情報処理装置。
【請求項4】
前記記憶手段は、正常に処理できなかった前記処理単位とともに、正常に処理できなかった累積回数を併せて記憶し、
前記制御手段は、前記処理単位を順次実行する際、前記記憶手段が記憶している前記処理単位であって、前記累積回数が所定の閾値以上である前記処理単位をスキップする
請求項1乃至3いずれか1項記載の情報処理装置。
【請求項5】
スキップ可能な前記処理単位を予め記憶した第3の記憶手段をさらに有し、
前記制御手段はさらに、前記第3の記憶手段が前記処理単位を記憶している場合にのみ、前記処理単位をスキップする
請求項1乃至4いずれか1項記載の情報処理装置。
【請求項6】
複数の処理単位からなるプログラムを実行し、前記プログラムが格納された記憶装置が単数である情報処理装置を用いた情報処理方法であって、
前記複数の処理単位を順次実行する第1の実行ステップと、
いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記情報処理装置をリセットするリセットステップと、
前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第2の実行ステップとを含む
情報処理方法。
【請求項7】
前記第1の実行ステップ及び前記第2の実行ステップでは、前記プログラムの実行を開始する際、前記リセットの影響を受けない第1の記憶手段の記憶内容を複製して第2の記憶手段に記憶させるとともに、前記処理単位を順次実行する際、前記処理単位を示す識別子を前記第1の記憶手段に記憶させ、前記第1の記憶手段及び前記第2の記憶手段の記憶内容を比較し、一致する場合は前記処理単位をスキップする
請求項6記載の情報処理方法。
【請求項8】
前記第1の実行ステップ及び前記第2の実行ステップでは、全ての前記処理単位の実行を完了した場合、少なくとも前記第1の記憶手段の記憶内容をクリアする
請求項記載の情報処理方法。
【請求項9】
複数の処理単位からなるプログラムが格納された記憶装置が単数であるコンピュータに、
前記プログラムの前記処理単位を順次実行する第1の実行ステップと、
いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記コンピュータをリセットするリセットステップと、
前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第2の実行ステップとを実行させる
プログラム。
【請求項10】
複数の処理単位からなるプログラムが格納された記憶装置が単数であるコンピュータに、
前記プログラムの前記処理単位を順次実行する第1の実行ステップと、
いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記コンピュータをリセットするリセットステップと、
前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第2の実行ステップとを実行させるため
のプログラムが格納された
記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関し、特に恒久的な障害を回避しつつプログラムを実行する技術に関する。
【背景技術】
【0002】
コンピュータがプログラムを実行中に、ストール、すなわち何らかの障害の発生によりプログラムの実行が停止する状況が発生した場合に、当該プログラムの実行を自動的に中止し再実行することにより、当該状況からの復旧を試みる機構が幾らか知られている。
【0003】
例えば、コンピュータは、電源投入直後、BIOS(Basic Input/Output System)と呼ばれるプログラムを実行する。このとき、WDT(watchdog timer)がBIOSのPOST(Power On Self Test)処理の実行状況を監視しており、ストールの発生を検知するとコンピュータをリセットして、コンピュータに再度POST処理を実行させる(以下、リブートという)。
【0004】
ストールの原因が単なる一時的な障害である場合は、このようなリセット後のプログラム再実行(以下、リブートという)により、プログラムが正常に動作する場合も多い。しかしながら、何らかの恒久的、固定的な要因によってストールが発生している場合には、このようなリセットは解決策にならない。プログラムを単に再実行しても、結局同じ要因によってストールが再発生してしまうからである。後者のような場合、コンピュータは何度もリブートを繰り返すなどの挙動をとり、そのままでは障害から回復できない。このような障害から回復するためには、一般に、障害が発生しているハードウェアを交換する必要があるが、交換のためには、交換部材及び専門的な知識を有する保守作業員を要する。このため、従来、このような障害からの回復には時間がかかり、システム運用に支障をきたすという問題があった。
【0005】
こうした問題に対して、特許文献1は、所定回数ストールが発生した場合には、リブートを行なわず、コンピュータを停止させる手法を提案している。
【0006】
特許文献2は、複数のプロセッサを有するコンピュータが、プロセッサの障害に起因するストールが発生した場合に、他方のプロセッサを利用して障害の発生したプロセッサを切り離すことにより、再度のストールを回避する方法を提案している。
【0007】
特許文献3は、他のソフトウェアの動作監視を行なうマルチタスク構成のソフトウェアを用いることによって、障害の発生している処理を特定する手法を提案している。
【0008】
特許文献4は、試験プログラムの実行時、エラーの発生した試験項目の番号を記録しておき、次回の試験プログラムの実行時、前記番号の試験項目の実行をスキップする、すなわち実行せず次の試験項目に移る手法を提案している。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2011−138231号公報
【特許文献2】特開2005−018462号公報
【特許文献3】特開2010−009296号公報
【特許文献4】特開平04−167143号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1の手法では、依然として障害自体を復旧しなければコンピュータを起動することができない。
【0011】
また、特許文献2の方法は、プロセッサが1つしかないコンピュータでは採用できない。さらに、ストールの原因がプロセッサではなく、例えばプラットフォームの障害であったような場合には、やはりコンピュータは何度もリブートを繰り返すなどの状態に陥る。
【0012】
また、特許文献3の手法も、マルチタスク動作を必要とするため、プロセッサが1つしかないコンピュータでは採用できない。また、当該手法によれば、依然として、障害自体を復旧しなければコンピュータシステムを利用することができない。
【0013】
また、特許文献4の手法において、エラーではなくストールが発生した場合は、試験プログラム自体が正常に終了しないため、前記手法は効果を発揮できない。さらに、この手法は、スキップさせるべきエラーかどうかを作業員が判断しなければならないため、実施に手間がかかる。
【課題を解決するための手段】
【0014】
本発明に係る情報処理装置は、複数の処理単位からなるプログラムを実行する情報処理装置であって、前記複数の処理単位を順次実行する制御手段と、いずれかの前記処理単位を正常に処理できない場合、前記装置をリセットするリセット手段と、正常に処理できなかった前記処理単位を記憶する記憶手段とを有し、前記制御手段は、前記リセット後、再び前記処理単位を順次実行する際、前記記憶手段が記憶している前記処理単位をスキップするものである。
【0015】
本発明に係る情報処理方法は、複数の処理単位からなるプログラムの前記処理単位を順次実行する第1の実行ステップと、いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記装置をリセットするリセットステップと、前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第2の実行ステップとを含むものである。
【0016】
本発明に係るプログラムは、コンピュータに、複数の処理単位からなるプログラムの前記処理単位を順次実行する第1の実行ステップと、いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記装置をリセットするリセットステップと、前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第2の実行ステップとを実行させるものである。
【0017】
本発明に係る記録媒体は、コンピュータに、複数の処理単位からなるプログラムの前記処理単位を順次実行する第1の実行ステップと、いずれかの前記処理単位を正常に処理できない場合、正常に処理できなかった前記処理単位を記憶し、前記装置をリセットするリセットステップと、前記リセットステップの後、再び前記処理単位を順次実行する際、前記リセットステップにおいて記憶した前記処理単位をスキップする第2の実行ステップとを実行させるためのプログラムが格納されたものである。
【発明の効果】
【0018】
本発明により、恒久的な障害を回避しつつプログラムを実行することができる情報処理装置、情報処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0019】
図1】本発明の実施の形態1の情報処理装置100の構成を示す図である。
図2】本発明の実施の形態1の情報処理装置100の構成を示す図である。
図3】本発明の実施の形態1の情報処理装置100の処理フローを示す図である。
図4】本発明の実施の形態2の情報処理装置100の構成を示す図である。
図5】本発明の実施の形態2の情報処理装置100の処理フローを示す図である。
図6】本発明の実施の形態3の情報処理装置100の処理フローを示す図である。
【発明を実施するための形態】
【0020】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0021】
<実施の形態1>
まず、図1を用いて、本発明の実施の形態1にかかる情報処理装置100の構成について説明する。
【0022】
本実施の形態に係る情報処理装置100は、制御手段110、記憶手段120、リセット手段130を有する。
【0023】
制御手段100は、制御プログラムに基づいて各種処理を実行する手段であり、典型的にはCPU(Central Processing Unit)である。制御プログラムは、記憶手段120や図示しない他の記憶手段に格納される。あるいは、図示しない通信インタフェイス等を介して外部から供給されても良い。
【0024】
本実施の形態では、制御手段100が、制御プログラムとしてのBIOS(Basic Input/Output System)に従って、POST(Power On Self Tst)処理を実行する場合を例として説明する。また、本実施の形態では、制御プログラムは複数の処理単位から構成されているものとする。例えば、BIOSのPOST処理は、前記処理単位として、BIOSコードの検証、メインメモリの検証、バス及びデバイスの検出及び初期化、ブート可能デバイスの特定等の複数の処理を含む。
【0025】
記憶手段120は、制御手段100が実行する処理に必要な情報を非一時的に格納可能な手段である。記憶手段は、上述の制御プログラム、例えばBIOSを格納しても良い。記憶手段120は、後述のリセット手段103によるシステムリセットの影響を受けることなく、記憶内容を保持することができることを特徴とする。記憶手段120は、典型的には不揮発性メモリであるが、前記システムリセットの影響を受けることなく継続的に電源供給可能な揮発性メモリであっても良い。
【0026】
リセット手段130は、所定の条件の満足を検知した場合に、情報処理装置100を強制的に初期状態にする処理(システムリセット)を行う。システムリセットが行われると、制御手段100は、制御プログラムに基づく処理を再度、最初から実行する。本実施の形態におけるリセット手段103は、制御手段100がストールに陥ったことを検知した場合、例えば制御手段110が一定時間応答しない状態になった場合に、システムリセット実行する。
【0027】
図2に、情報処理装置100のより詳細な実装例を示す。
【0028】
制御手段110は、CPUであり、記憶手段120からBIOS121を読み出してPOST処理を実行する。 記憶手段120は不揮発性メモリであり、制御プログラムとしてのBIOS121を含む。BIOS121は、POST処理を行うための複数の処理単位を含んでいる。また、記憶手段120は、BIOS121のPOST処理を実行する際に必要なデータを保持するための領域としての第1の記憶手段122及び第2の記憶手段123を含む。
【0029】
リセット手段130は、WDT(Watch Dog Timer)131及びリセット回路132を含む。WDT131は、外部からのサービスパルスの間隔を計測するタイマである。WDT131は、サービスパルスが供給される毎にタイマをリセットし、新たに時間の計測を開始する。この計測時間が予め定められた閾値を超えた場合、WDT131は、リセット回路132にタイムアウトを通知する。リセット回路132は、タイムアウトの通知を受けると、システムリセットを実行する。
【0030】
本実施の形態では、制御手段110が、正常に処理を実行しているあいだ定期的に、WDT131に対しサービスパルスを供給する。しかし、ストールの発生等の要因により制御手段110が動作を停止し、前記閾値を超える時間にわたってサービスパルスを供給できない事態に陥ると、WDT131はタイムアウトを発生し、リセット回路132がシステムリセットを行う。
【0031】
上記の構成に加え、情報処理装置100は、メモリ140及び入出力手段150を有していても良い。
【0032】
メモリ140は揮発性のメインメモリであり、制御手段110が制御プログラムを実行する際に必要なデータを一時的に保持する。
【0033】
入出力手段150は、キーボードコントローラ151、グラフィックコントローラ152、キーボード153及び表示装置154を含む。キーボードコントローラ151及びグラフィックコントローラ152は、入力デバイスであるキーボード143及び出力デバイスである表示装置146と、制御手段110との間における情報の入出力を制御する。
【0034】
制御手段110、記憶手段120、リセット手段130、メモリ140及び入出力手段150は、システムバス160を介して接続される。
【0035】
図3を用いて、情報処理装置100の処理について説明する。
【0036】
A1:情報処理装置100が起動する。情報処理装置100に電源が投入されると、制御手段110はまず、記憶手段120内のBIOS121のコードを読み出す。
【0037】
A2:制御手段110は、第1の記憶手段122を参照し、ここにデータが格納されていれば、そのデータを第2の記憶手段123にコピーする。
【0038】
後述するが、第1の記憶手段には、制御手段110が前回BIOS121のPOST処理を実行した際、処理を完遂できなかった処理単位を示すデータが格納されていることがある。なお、制御手段110が前回BIOS121のPOST処理を実行した際、全ての処理単位を実行できた場合、第1の記憶手段120はクリアされている。すなわち、データは抹消されているか、記憶されていない。
【0039】
A3:制御手段110は、BIOS121のPOST処理の実行を開始する。制御手段110は、POST処理を構成する複数の処理単位を1つずつ順次実行していくが、各処理単位を実行する前に、実行しようとする処理単位を特定するための情報を、第1の記憶手段122に格納する。本実施の形態では、各処理単位に予め識別子が付与されており、制御手段110は、処理単位を特定するための情報としてこの識別子を第1の記憶手段122に格納するものとする。
【0040】
A4:制御手段110は、第1の記憶手段122に格納されたデータと、第2の記憶手段123に格納されたデータとを比較する。
【0041】
第2の記憶手段に格納されているデータは、制御手段110が前回POST処理を実行した際、処理を完遂できなかった処理単位の識別子である。よって、ここで第1の記憶手段122及び第2の記憶手段123の記憶内容が一致した場合、制御手段110がこれから実行しようとしている処理単位は、制御手段110が前回、処理を完遂できなかった処理単位ということになる。一方、第1の記憶手段122及び第2の記憶手段123の記憶内容が一致しない場合、制御手段110がこれから実行しようとしている処理単位は、初めて実行される処理単位、前回実行した際に障害が発生しなかった処理単位、又は前回実行されなかった処理単位のいずれかである。
【0042】
A5:A4において、第1の記憶手段122及び第2の記憶手段123の記憶内容が一致しなかった場合、制御手段110は、実行しようとする処理単位、すなわち第1の記憶手段122に格納した識別子にかかる処理単位を実行する。
【0043】
制御手段110がこの処理単位を実行しているとき、ストールが発生すると、一定時間経過後、リセット手段130がシステムリセットを行う。すなわち、制御手段110が実行している処理を強制的に中断し、情報処理装置100を初期化する。このとき、第1の記憶手段122には、制御手段110が実行中の処理単位の識別子が残っている。第1の記憶手段122はシステムリセットの影響を受けず、非揮発性メモリであるため、第1の記憶手段122は、システムリセットの前後を通じてその記憶内容を保持する。システムリセット後、情報処理装置100が起動すると(上記A1)、制御手段110は上記A2以降の処理を再度実行する。第1の記憶手段122に格納されたままとなっていた識別子は、以降の処理において、今回のPOST処理において処理を完了できなかった処理単位であって、次回のPOST処理において回避すべき処理単位を示す識別子として、制御手段110により参照される。
【0044】
A6:A4において、第1の記憶手段122及び第2の記憶手段123の記憶内容が一致した場合、制御手段110は、実行しようとしていた処理単位、すなわち第1の記憶手段122に格納した識別子にかかる処理単位の実行をスキップする。すなわち、その処理単位を実行せず、後述のA7以降のフローにしたがって次の処理単位を実行する。換言すれば、制御手段110は、次に実行すべき処理単位を対象として、A3乃至A6の処理を実行する。
【0045】
このような処理により、制御手段110は、前回正常に処理を完了できなかった処理単位を再度実行することを回避する。前回ストールが発生した処理単位は、再度実行したとしても再びストールが発生し、結果としてシステムリセットが繰り返される蓋然性が高い。一方、前回ストールが発生した処理単位の再実行を回避することで、システムリセットが繰り返される事態を回避することができる。
【0046】
A7:制御手段110は、POST処理の全ての処理単位の実行が完了しているか否かを判定する。完了している場合、制御手段100は次の処理単位を実行する。すなわち、制御手段110は、次に実行すべき処理単位について、上述のA3乃至A6にかかる処理を実行する。
【0047】
A8:一方、全ての処理単位の実行が完了しており、次に実行すべき処理単位が存在しない場合、制御手段110は、第1の記憶手段122の記憶内容をクリアする。これは、今般のPOST処理においては全ての処理単位が正常に実行されたこと、次回のPOST処理において回避すべき処理単位は存在しないことを示す。
【0048】
A9:制御手段110は、POST処理を完了する。通常、制御手段100はこの後、OS(Operating System)のメモリ140へのロード等の処理を実行する。
【0049】
本実施の形態においては、記憶手段120、より具体的には第1の記憶手段122に、プログラム、例えばBIOS121のPOST処理を前回実行した際に処理を完了できなかった処理単位を示す情報を格納しておき、次回実行時にはその処理単位の実行をスキップする。これにより、ストール発生の蓋然性の高い処理単位を繰り返し実行してしまう不具合を回避することができる。
【0050】
このため、当該処理単位が担うべき一部機能を利用できない限定された状態でありながらも、情報処理装置100を起動することができる。
【0051】
また、情報処理装置100及び当該装置を含むシステムを継続的に運用することができる。
【0052】
さらに、情報処理装置100はストール発生時の障害対応をBIOS121により実施するため、保守要員等の人手介入を抑制できる。
【0053】
<実施の形態2>
つぎに、図4を用いて、本発明の実施の形態2にかかる情報処理装置100の構成について説明する。
【0054】
本実施の形態における情報処理装置100は、第3の記憶手段170を含む点に特徴を有する。その余の構成要素については、上述の実施の形態1と同様である。
【0055】
第3の記憶手段170は、システムリセットの影響を受けない、すなわちシステムリセットの前後で記憶内容を保持可能な記憶手段であり、典型的には不揮発性メモリである。図4では、第3の記憶手段170と記憶手段120はそれぞれ独立の手段として表されているが、必ずしもその必要はなく、例えば第3の記憶手段170は記憶手段120の一部であっても良い。あるいは、第3の記憶手段170の一部として、第1の記憶手段122、第2の記憶手段123が存在していても良い。
【0056】
第3の記憶手段170は、POST処理を構成する複数の処理単位のうち、スキップ可能な処理単位を特定する情報、典型的には識別子を格納した、テーブル171を含んでいる。テーブル171には、例えば当該処理単位が実行されなくても情報処理装置100が限定的に動作できる処理単位、換言すれば、当該処理単位が担うべき機能を利用できない限定された環境であっても情報処理装置100がOSを起動可能となる処理単位を、予め登録しておくことができる。一方、情報処理装置100の動作に不可欠な処理単位については、スキップされないよう、テーブル171から予め除外しておくことができる。
【0057】
図5を用いて、本実施の形態にかかる情報処理装置100の処理について説明する。
【0058】
本実施の形態は、制御手段110が、実施の形態1における処理A6の前に、後述の処理B1を実行し、B1の実行結果に応じて処理A6又はA5を実行する点に最大の特徴を有する。その余の処理A1乃至A9については、実施の形態1とほぼ同様である。
【0059】
A1:情報処理装置100が起動する。情報処理装置100に電源が投入されると、制御手段110はまず、記憶手段120内のBIOS121のコードを読み出す。
【0060】
A2:制御手段110は、第1の記憶手段122を参照し、ここにデータが格納されていれば、そのデータを第2の記憶手段123にコピーする。
【0061】
A3:制御手段110は、POST処理を構成する複数の処理単位を1つずつ順次実行していくが、各処理単位を実行する前に、実行しようとする処理単位の識別子を、第1の記憶手段122に格納する。
【0062】
A4:制御手段110は、第1の記憶手段122に格納されたデータと、第2の記憶手段123に格納されたデータとを比較する。
【0063】
A5:A4において、第1の記憶手段122及び第2の記憶手段123の記憶内容が一致しなかった場合、又は後述のB1において、第1の記憶手段122及びテーブル171に格納されている識別子が一致しなかった場合、制御手段110は、実行しようとする処理単位、すなわち第1の記憶手段122に格納した識別子にかかる処理単位を実行する。
【0064】
B1:A4において、第1の記憶手段122及び第2の記憶手段123の記憶内容が一致した場合、制御手段110は、実行しようとする処理単位の識別子、すなわち第1の記憶手段122に格納した識別子が、第3の記憶手段170のテーブル171に格納されているか否かを判定する。
【0065】
A6:B1において、第1の記憶手段122及びテーブル171に格納されている識別子が一致した場合、制御手段110は、実行しようとしていた処理単位、すなわち第1の記憶手段122に格納した識別子にかかる処理単位の実行をスキップする。
【0066】
A7:制御手段110は、POST処理の全ての処理単位の実行が完了しているか否かを判定する。完了している場合、制御手段100は次の処理単位を実行する。すなわち、制御手段110は、次に実行すべき処理単位について、上述のA3乃至A6にかかる処理を実行する。
【0067】
A8:一方、全ての処理単位の実行が完了しており、次に実行すべき処理単位が存在しない場合、制御手段110は、第1の記憶手段122の記憶内容をクリアする。
【0068】
A9:制御手段110は、POST処理を完了する。通常、制御手段100はこの後、OS(Operating System)のメモリ140へのロード等の処理を実行する。
【0069】
本実施の形態においては、制御手段110は、第3の記憶手段170に予め登録された処理単位のみをスキップする。これにより、一部機能を利用できない限定された状態であっても情報処理装置100を起動でき、かつ情報処理装置100の起動に不可欠な機能は損なわれない状態で情報処理装置100を起動できる。
【0070】
<実施の形態3>
実施の形態1及び2では、制御手段110は、正常に処理を完了できなかった処理単位を、次回のプログラムの実行時にスキップする。この場合、処理単位を正常に実行できなかった原因が、たとえリセットにより回復するような一時的なストール障害であった場合であっても、制御手段110は、当該処理単位を次回スキップしてしまう。
【0071】
そこで、実施の形態3では、リセットにより回復するような一時的なストール障害と、リセットによる回復が見込めない恒久的なストール障害とを区別する。
【0072】
本実施の形態における情報処理装置100は、記憶手段120、特に第1の記憶手段122に、制御手段110が前回POST処理を実行した際、処理を完遂できなかった処理単位の識別子とともに、処理を完遂できなかった累積回数を格納する点に特徴を有する。その余の構成については、実施の形態1及び2と同様である。
【0073】
図6を用いて、本実施の形態にかかる情報処理装置100の処理について説明する。
本実施の形態は、制御手段110が、実施の形態1における処理A3の代わりにC1、処理A5の代わりにC2、処理A6の前にC3を実行し、C3の実行結果に応じて処理A6又はC2を実行する点に最大の特徴を有する。その余の処理A1、A2、A6乃至A9については、実施の形態1とほぼ同様である。なお、処理C3の前後いずれかに、実施の形態2において説明した処理B1を挿入しても構わない。
【0074】
A1:情報処理装置100が起動する。情報処理装置100に電源が投入されると、制御手段110はまず、記憶手段120内のBIOS121のコードを読み出す。
【0075】
A2:制御手段110は、第1の記憶手段122を参照し、ここにデータが格納されていれば、そのデータを第2の記憶手段123にコピーする。
【0076】
C1:制御手段110は、POST処理を構成する複数の処理単位を1つずつ順次実行していくが、各処理単位を実行する前に、実行しようとする処理単位の識別子を第1の記憶手段122に格納する。また、制御手段110は、累積回数として「0」を、前記識別子と対応付けて第1の記憶手段122に格納する。
【0077】
A4:制御手段110は、第1の記憶手段122に格納されたデータと、第2の記憶手段123に格納されたデータとを比較する。
【0078】
C2:A4において、第1の記憶手段122及び第2の記憶手段123の記憶内容が一致しなかった場合、又は後述のC3において、累積回数が閾値n以下である場合、制御手段110は、実行しようとする処理単位、すなわち第1の記憶手段122に格納した識別子にかかる処理単位を実行する。このとき、制御手段110は、前記識別子に対応付けられた累積回数をインクリメントする。
【0079】
C3:A4において、第1の記憶手段122及び第2の記憶手段123の記憶内容が一致した場合、制御手段110は、実行しようとする処理単位の識別子、すなわち第1の記憶手段122に格納した識別子に対応付けられた累積回数が、予め定められた閾値n以下であるか否かを判定する。
【0080】
A6:C3において、累積回数が閾値nを超える場合、制御手段110は、実行しようとしていた処理単位、すなわち第1の記憶手段122に格納した識別子にかかる処理単位の実行をスキップする。
【0081】
A7:制御手段110は、POST処理の全ての処理単位の実行が完了しているか否かを判定する。完了している場合、制御手段100は次の処理単位を実行する。すなわち、制御手段110は、次に実行すべき処理単位について、上述のA3乃至A6にかかる処理を実行する。
【0082】
A8:一方、全ての処理単位の実行が完了しており、次に実行すべき処理単位が存在しない場合、制御手段110は、第1の記憶手段122の記憶内容をクリアする。
【0083】
A9:制御手段110は、POST処理を完了する。通常、制御手段100はこの後、OS(Operating System)のメモリ140へのロード等の処理を実行する。
【0084】
本実施の形態においては、制御手段110は、正常に処理を完了できない事象が所定の回数を超えて発生した処理単位のみ、次回のプログラムの実行の際にスキップする。これにより、リセットにより回復するような一時的なストール障害と、恒久的なストール障害とを区別し、前者の場合には、前回のプログラム実行時に正常に処理を完了できなかった処理単位であっても、次回のプログラム実行時に当該処理単位の実行を再試行する。これにより、ストール障害が発生しても、可能な限り多くの機能を利用できる状態で再度情報処理装置100を起動できる。
【0085】
<その他の実施の形態>
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【0086】
例えば、上述の実施の形態では、本発明を主にハードウェアにより構成されるものとして説明したが、これに限定されるものではなく、任意の手段を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより論理的に実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0087】
100 情報処理装置
110 制御手段
120 記憶手段
121 BIOS
122 第1の記憶手段
123 第2の記憶手段
130 リセット手段
131 WDT
132 リセット回路
140 メモリ
150 入出力手段
151 キーボードコントローラ
152 グラフィックコントローラ
153 キーボード
154 表示装置
160 システムバス
170 第3の記憶手段
図1
図2
図3
図4
図5
図6