(57)【要約】【課題】プログラムの信頼性を維持しつつ起動を短時間で行える「データ処理装置及びプログラム起動方法」を提供する。【解決手段】今回のデータ処理装置の起動が、エラー発生による起動であるか、前回のデータ処理装置の稼働停止後にフラッシュメモリ９のアップデートが行われたかを調べ（１.チェック）、いずれでもない場合には、フラッシュメモリ９からプログラムをＳＤＲＡＭ６にロードし（２.ロード）、ＳＤＲＡＭ６にロードしたプログラムの実行を開始する。一方、他の場合には、フラッシュメモリ９のプログラムのサムチェックを行い（１１.チェック）、サムチェックに成功したならば、フラッシュメモリ９からプログラムをＳＤＲＡＭ６にロードし（１２.ロード）、その実行を開始する（１３.プログラム実行開始）。サムチェックに失敗した場合には所定の異常処理を起動する。【選択図】図２
2008217636.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するデータ処理装置であって、
前記データ処理装置の起動時に、予め定めた例外事象の発生の有無を検出する例外事象検出手段と、
起動処理手段とを有し、
前記起動処理手段は、
前記データ処理装置の起動時に前記例外事象検出手段が前記例外事象の発生を検出した場合には、前記プログラムの誤り検出を行うと共に、当該誤り検出によって誤りが検出されなかったときには、前記プログラムを起動し、当該誤り検出によって誤りが検出されたときには、所定のエラー対処処理を起動し、
前記データ処理装置の起動時に前記例外事象検出手段が前記例外事象の発生を検出しなかった場合には、前記プログラムの誤り検出を行うことなく、当該プログラムを起動し、
前記例外事象は、当該データ処理装置の前回の稼働停止時のエラー発生と、前記プログラムの前回の起動後に行われた当該プログラムの更新とのうちの少なくとも一方を含むことを特徴とするデータ処理装置。
【請求項２】
プログラムを実行するデータ処理装置であって、
前記プログラムを記憶した不揮発性の記憶装置と、
前記記憶装置からロードした前記プログラムを格納した、バックアップ電源による電源供給が行われている揮発性のメモリと、
前記データ処理装置の起動時に、前記記憶装置に記憶されているプログラムと同じプログラムの前記メモリへの格納の有無を推定する推定手段と、
起動処理手段とを有し、
前記起動処理手段は、
前記データ処理装置の起動時に前記推定手段が前記記憶装置に記憶されているプログラムと同じプログラムが前記メモリに格納されていないと推定した場合には、前記記憶装置に格納されたプログラムの誤り検出を行うと共に、当該誤り検出によって誤りが検出されなかったときには、前記記憶装置に記憶されているプログラムの前記メモリへのロードと起動とを行い、当該誤り検出によって誤りが検出されたときには、所定のエラー対処処理を起動し、
前記データ処理装置の起動時に前記推定手段が前記記憶装置に記憶されているプログラムと同じプログラムが前記メモリに格納されていないと推定しなかった場合には、前記メモリに格納されたプログラムの起動を行い、
前記推定手段は、当該データ処理装置の前回の稼働停止時のエラーの発生の有無と、前記記憶装置に記憶されているプログラムの、前記プログラムの前回の起動後の更新の有無と、データ処理装置の今回の起動がバックアップ電源による前記メモリへの電源の供給停止の発生後の最初の起動であるか否かとの、少なくとも一つに基づいて、前記記憶装置に記憶されているプログラムと同じプログラムが前記メモリに格納されていないか否かを推定することを特徴とするデータ処理装置。
【請求項３】
プログラムを実行するデータ処理装置であって、
前記プログラムを記憶した記憶装置と、
前記記憶装置からコピーした前記プログラムを格納した不揮発性のメモリと、
データ処理装置の起動時に前記メモリに記憶されているプログラムを起動する起動処理手段と、
前記プログラムの実行中に、前記メモリに格納されているプログラムの誤り検出を実行すると共に、当該プログラムの誤りが検出された場合に、前記記憶装置に記憶されているプログラムを用いた、前記メモリに格納されているプログラムの更新を実行するプログラム更新手段とを有することを特徴とするデータ処理装置。
【請求項４】
請求項３記載のデータ処理装置であって、
前記プログラム更新手段は、前記プログラムの誤り検出と、前記プログラムの更新とを、前記プログラムの実行と並行的に、当該プログラムの未実行期間に実行することを特徴とするデータ処理装置。
【請求項５】
プログラムを実行するデータ処理装置において、当該データ処理装置の起動時に前記プログラムを起動するプログラム起動方法であって、
前記データ処理装置の起動時に、予め定めた例外事象の発生の有無を検出するステップと、
前記例外事象の発生を検出した場合に、前記プログラムの誤り検出を行うと共に、当該誤り検出によって誤りが検出されなかったときには、前記プログラムを起動し、当該誤り検出によって誤りが検出されたときには、所定のエラー対処処理を起動するステップと、
前記例外事象の発生が検出されなかった場合に、前記プログラムの誤り検出を行うことなく、当該プログラムを起動するステップとを有することを特徴とするデータ処理装置におけるプログラム起動方法。
【請求項６】
プログラムを記憶した不揮発性の記憶装置と、前記記憶装置からロードした前記プログラムを格納した揮発性の、バックアップ電源による電源供給が行われているメモリとを備え、前記メモリにロードされたプログラムを実行するデータ処理装置において、当該データ処理装置の起動時に前記プログラムを起動するプログラム起動方法であって、
前記データ処理装置の起動時に、前記記憶装置に記憶されているプログラムと同じプログラムの前記メモリへの格納の有無を推定するステップと、
前前記記憶装置に記憶されているプログラムと同じプログラムが前記メモリに格納されていないと推定された場合には、前記記憶装置に格納されたプログラムの誤り検出を行うと共に、当該誤り検出によって誤りが検出されなかったときには、前記記憶装置に記憶されているプログラムの前記メモリへのロードと起動とを行い、当該誤り検出によって誤りが検出されたときには、所定のエラー対処処理を起動するステップと、
前記記憶装置に記憶されているプログラムと同じプログラムが前記メモリに格納されていないと推定されなかった場合に、前記メモリに格納されたプログラムを起動するステップとを有することを特徴とするデータ処理装置におけるプログラム起動方法。
【請求項７】
前記プログラムを記憶した記憶装置と、前記記憶装置からコピーした前記プログラムを格納した不揮発性のメモリとを備え、前記メモリに格納されたプログラムを実行するデータ処理装置において、当該データ処理装置の起動時に前記プログラムを起動するプログラム起動方法であって、
データ処理装置の起動時に前記メモリに記憶されているプログラムを起動するステップと、
前記プログラムの実行中に、前記メモリに格納されているプログラムの誤り検出を行うと共に、当該プログラムの誤りが検出された場合に、前記記憶装置に記憶されているプログラムを用いて、前記メモリに格納されているプログラムを更新するステップとを有することを特徴とするデータ処理装置におけるプログラム起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置においてデータエラーをチェクする技術に関するものである。
【背景技術】
【０００２】
データ処理装置においてデータエラーをチェクする技術としては、データ処理装置の起動時に、フラッシュメモリに格納したプログラムの実行に先立って、当該プログラムのサムチェックを実行し、エラーが検出された場合には、プログラムを実行を停止し、フラッシュメモリ上の当該プログラムを書き換えるための処理を起動する技術が知られている（たとえば、特許文献１）。
【特許文献１】特開2001-73426号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
前記データ処理装置の起動時に、フラッシュメモリに格納したプログラムの実行に先立って、当該プログラムのサムチェックを実行する技術によれば、プログラムのデータサイズが大きいと、データ処理装置の起動完了までに長時間を要してしまい、ユーザの不便を招いてしまうことになる。一方で、プログラムのサムチェックを一切行わないこととすれば、データ処理装置の動作の信頼性が著しく低下してしまう。
【０００４】
そこで、本発明は、データ処理装置の動作の信頼性を維持しつつ、データ処理装置の起動を短時間で完了することを課題とする。
【課題を解決するための手段】
【０００５】
前記課題達成のために、本発明は、プログラムを実行するデータ処理装置に、前記データ処理装置の起動時に、予め定めた例外事象の発生の有無を検出する例外事象検出手段と、起動処理手段とを設け、前記起動処理手段において、前記データ処理装置の起動時に前記例外事象検出手段が前記例外事象の発生を検出した場合には、前記プログラムの誤り検出を行うと共に、当該誤り検出によって誤りが検出されなかったときには、前記プログラムを起動し、当該誤り検出によって誤りが検出されたときには、所定のエラー対処処理を起動し、前記データ処理装置の起動時に前記例外事象検出手段が前記例外事象の発生を検出しなかった場合には、前記プログラムの誤り検出を行うことなく、当該プログラムを起動するようにしたものである。
【０００６】
なお、前記例外事象は、当該データ処理装置の前回の稼働停止時のエラー発生と、前記プログラムの前回の起動後に行われた当該プログラムの更新とのうちの少なくとも一方を含むものである。ただし、例外事象としては、プログラムの誤り発生と相関が認められる事象などの、その他の事象を用いるようにしてもよい。
【０００７】
このようなデータ処理装置は、例外事象が発生していない通常時には、データ処理装置の起動時にプログラムの誤り検出を行うことなく直ちにプログラムを起動するので、データ処理装置の起動は短時間で完了する。一方、プログラムの誤り発生の蓋然性がある例外事象の発生時には、プログラムの誤り検出を行って誤りが発生していないことを確認した上で、当該プログラムを起動するのでプログラムの一定の信頼性を保つことができる。
【０００８】
また、前記課題達成のために、本発明は、プログラムを実行するデータ処理装置に、前記プログラムを記憶した不揮発性の記憶装置と、前記記憶装置からロードした前記プログラムを格納した、バックアップ電源による電源供給が行われている揮発性のメモリと、前記データ処理装置の起動時に、前記記憶装置に記憶されているプログラムと同じプログラムの前記メモリへの格納の有無を推定する推定手段と、起動処理手段とを設け、前記起動処理手段において、前記データ処理装置の起動時に前記推定手段が前記記憶装置に記憶されているプログラムと同じプログラムが前記メモリに格納されていないと推定した場合には、前記記憶装置に格納されたプログラムの誤り検出を行うと共に、当該誤り検出によって誤りが検出されなかったときには、前記記憶装置に記憶されているプログラムの前記メモリへのロードと起動とを行い、当該誤り検出によって誤りが検出されたときには、所定のエラー対処処理を起動し、前記データ処理装置の起動時に前記推定手段が前記記憶装置に記憶されているプログラムと同じプログラムが前記メモリに格納されていないと推定しなかった場合には、前記メモリに格納されたプログラムの起動を行うようにしたものである。ここで、前記推定手段は、当該データ処理装置の前回の稼働停止時のエラーの発生の有無と、前記記憶装置に記憶されているプログラムの、前記プログラムの前回の起動後の更新の有無と、データ処理装置の今回の起動がバックアップ電源による前記メモリへの電源の供給停止の発生後の最初の起動であるか否かとの、少なくとも一つに基づいて、前記記憶装置に記憶されているプログラムと同じプログラムが前記メモリに格納されていないか否かを推定する。ただし、前記記憶装置に記憶されているプログラムとメモリに格納されているプログラムの不一致の発生と相関ある、その他の事象に基づいて、前記記憶装置に記憶されているプログラムと同じプログラムが前記メモリに格納されていないか否かを推定するようにしてもよい。
【０００９】
このようなデータ処理装置によれば、ＳＤＲＡＭなどの揮発性の高速なメモリに記憶装置から予めロードしたプログラムを用いて、データ処理装置の起動時にプログラムの誤り検出を行うことなく高速にプログラムを起動することができる。一方で、メモリのプログラムの損傷や、記憶装置とメモリとのプログラムの不一致が疑われる状況が発生した場合に、記憶装置のプログラムの誤り検出やプログラムのメモリへのロードを行うので、プログラムの一定の信頼性を保つことができる。
【００１０】
また、前記課題達成のために、本発明は、プログラムを実行するデータ処理装置を、前記プログラムを記憶した記憶装置と、前記記憶装置からコピーした前記プログラムを格納した不揮発性のメモリと、データ処理装置の起動時に前記メモリに記憶されているプログラムを起動する起動処理手段と、前記プログラムの実行中に、前記メモリに格納されているプログラムの誤り検出を実行すると共に、当該プログラムの誤りが検出された場合に、前記記憶装置に記憶されているプログラムを用いた、前記メモリに格納されているプログラムの更新を実行するプログラム更新手段とを含めて構成したものである。
【００１１】
このようなデータ処理装置は、データ処理装置の起動時にプログラムの誤り検出を行うことなく直ちにプログラムを起動するので、データ処理装置の起動を短時間で完了することができる。一方、プログラムを起動したならば、当該プログラムの実行と並行して、プログラムの誤り検出や、誤り検出時のプログラムの更新を行うのでプログラムの信頼性を保つことができる。
【００１２】
ここで、このようなデータ処理装置は、前記プログラム更新手段において、前記プログラムの誤り検出と、前記プログラムの更新とを、前記プログラムの実行と並行的に、当該プログラムの未実行期間に実行するように構成することが好ましい。このようにすることにより、プログラム実行時にバックグランド処理として、プログラムの実行を妨げない形態で、プログラムの誤り検出や更新を行うことができる。
【発明の効果】
【００１３】
以上のように、本発明によれば、データ処理装置の動作の信頼性を維持しつつ、データ処理装置の起動を短時間で完了することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態を説明する。
まず、第１の実施形態について説明する。
図１に、本実施形態に係るデータ処理装置の構成を示す。
図示するように、データ処理装置は、ＣＰＵ１、ＣＰＵ１に高速バス２で接続したメモリコントローラ３と入出力コントローラ４とグラフィックス処理部５、入出力コントローラ４に低速バス７で接続したＨＤＤ８とフラッシュメモリ９と入力装置１０を備えている。また、メモリコントローラ３によってリード/ライトや高速バス２との間の入出力が制御されるＳＤＲＡＭ６と、グラフィックス処理部５による表示出力が行われる表示装置１１とを備えている。ここで、入出力コントローラ４は、低速バス７と高速バス２との間の入出力を中継し、ＨＤＤ８とフラッシュメモリ９と入力装置１０は、低速バス７、入出力コントローラ４、高速バス２を介してＣＰＵ１との間の入出力を行う。
【００１５】
次に、図２ａに、このようなデータ処理装置におけるプログラムの配置とデータ処理装置の起動の流れを示す。
図示するように、フラッシュメモリ９には、プログラムとプログラムのチェックサムが格納される。ここで、このフラッシュメモリ９に格納されたプログラムとチェックサムは、予め、ＨＤＤ８からフラッシュメモリ９にコピーしたものである。また、フラッシュメモリ９には、システムログと、アップデートフラグも格納される。ここで、システムログには、データ処理装置の稼働時に発生したエラーや、当該エラー等によって起動された例外処理のログが格納される。なお、この例外処理としては、タイムアウトによるデータ処理装置の再起動処理などがある。また、アップデートフラグは、ＨＤＤ８からフラッシュメモリ９にプログラムとチェックサムをコピーした際にセットされる。
【００１６】
このような構成において、ＣＰＵ１は、データ処理装置が起動されると、ＩＰＬ処理を行う。ここで、このＩＰＬ処理は、ＣＰＵ１による所定のＩＰＬプログラムの実行によって実現されるものであり、このＩＰＬプログラムは、フラッシュメモリ９またはＨＤＤ８の所定アドレス領域に格納されており、データ処理装置の起動時に、ＣＰＵ１がＳＤＲＡＭ６にロードして実行する。または、ＩＰＬプログラムを格納したＲＯＭを別途設けるようにしてもよい。
【００１７】
図３、このＩＰＬ処理の手順を示す。
図示するように、このＩＰＬ処理では、まず、フラッシュメモリ９のシステムログを読み出し（ステップ３０２）、今回のデータ処理装置の起動が、エラー発生による起動であるかどうかを調べる（ステップ３０４、図２ａの「１.チェック」）。ここで、エラー発生による起動には、エラー発生直後の起動やエラー発生に起因する例外処理による再起動などが該当する。
【００１８】
そして、エラーエラー発生による起動でなければ（ステップ３０４）、さらに、フラッシュメモリ９のアップデートフラグを読み出し（ステップ３０６）、アップデートフラグがセットされているかどうか、すなわち、フラッシュメモリ９に格納されているプログラムとチェックサムのＨＤＤ８からのコピーによるアップデートが発生しているかどうかを調べる（ステップ３０８、図２ａの「１.チェック」）。
【００１９】
そして、アップデートフラグがセットされていなければ、フラッシュメモリ９からプログラムとチェックサムをＳＤＲＡＭ６にロードする（ステップ３１０、図２ａの「２.ロード」）。
そして、フラッシュメモリ９のアップデートフラグがセットされている場合には（ステップ３１２）、これをリセットした上で（ステップ３１４）、ＳＤＲＡＭ６にロードしたプログラムの実行を開始し（ステップ３１６、図２ａの「３.プログラム実行開始」）、ＩＰＬ処理を終える。
【００２０】
一方、今回のデータ処理装置の起動が、エラー発生による起動であるか（ステップ３０４）、アップデートフラグがセットされている場合には（ステップ３０８）、フラッシュメモリ９のプログラムのサムチェックを、フラッシュメモリ９のチェックサムを用いて行う（ステップ３１８、図２ｂの「１１.チェック」）。なお、このサムチェックは、プログラムのサムの算出と、算出したサムとチェックサムとの一致性を調べるものである。
そして、サムチェックに成功したならば（ステップ３２０）、ステップ３１０に進んで、フラッシュメモリ９からプログラムとチェックサムのＳＤＲＡＭ６へのロードを行い（図２ｂの「１２.ロード」）、フラッシュメモリ９のアップデートフラグがセットされている場合には（ステップ３１２）、これをリセットした上で（ステップ３１４）、ＳＤＲＡＭ６にロードしたプログラムの実行を開始し（ステップ３１６、図２ｂの「１３.プログラム実行開始」）、ＩＰＬ処理を終える。
【００２１】
一方、もし、フラッシュメモリ９のプログラムのサムチェックに失敗した場合には（ステップ３２０）、所定の異常処理を起動し（ステップ３２２）、IＰＬ処理を終える。
この異常処理では、たとえば、ＨＤＤ８からフラッシュメモリ９へのプログラムとチェックサムのコピー及びフラッシュメモリ９のアップデートフラグのセットと、データ処理装置の再起動などを行う。
ところで、以上のＩＰＬ処理では、プログラムのサムチェックを、フラッシュメモリ９のプログラムに対して行ったが、これは、図２ｃに示すように、まず、フラッシュメモリ９からプログラムとチェックサムのＳＤＲＡＭ６へのロードを行った（図２ｃの「２１.ロード」）上で、ＳＤＲＡＭ６にロードしたプログラムのサムチェックを、ＳＤＲＡＭ６にロードしたチェックサムを用いて行う（図２ｃの「２２.チェック」）ようにしてよい。なお、この場合には、サムチェックに成功したならば、フラッシュメモリ９のアップデートフラグがセットされている場合には、これをリセットした上で、ＳＤＲＡＭ６にロードしたプログラムの実行を開始し（図２ｃの「２３.プログラム実行開始」）、ＩＰＬ処理を終えるようにする。
【００２２】
以上、本発明の第１実施形態について説明した。
なお、以上の第１実施形態においては、システムログと、アップデートフラグは、ＨＤＤ８に格納するようにしてもよい。
このように、本第１実施形態によれば、通常時には、データ処理装置の起動時にサムチェックによるプログラムの誤り検出を行うことなく直ちにプログラムを起動するので、データ処理装置の起動は短時間で完了する。一方、プログラムのアップデートやデータ処理装置のエラー発生などの誤り発生の蓋然性がある事象が発生したときには、プログラムの誤り検出を行って誤りが発生していないことを確認した上で、当該プログラムを起動するのでプログラムの一定の信頼性を保つことができる。
【００２３】
以下、本発明の第２の実施形態について説明する。
本第２実施形態は、図１に示したデータ処理装置に、図４ａに示すように、ＳＤＲＡＭ６にデータ処理装置の稼働停止時も電源供給を行うバックアップ電源６１を設け、ＳＤＲＡＭ６が不揮発性メモリとして機能する場合についてのものである。但し、このバックアップ電源６１は、データ処理装置の待ち受け電源を利用するものであるか、データ処理装置の電源投入時に充電されるものであり、データ処理装置自体が電源から切断されると、バックアップ電源６１からＳＤＲＡＭ６に電源を供給できなくなり、ＳＤＲＡＭ６の記憶内容が損傷する可能性が生じるものである。
図示するように、本第２実施形態においても、フラッシュメモリ９には、プログラムとプログラムのチェックサムが格納される。ここで、このフラッシュメモリ９に格納されたプログラムとチェックサムは、予め、ＨＤＤ８からフラッシュメモリ９にコピーしたものである。また、フラッシュメモリ９には、システムログと、アップデートフラグも格納される。また、本実施形態においては、ＳＤＲＡＭ６にも、プログラムとプログラムのチェックサムが常駐する。ここで、このＳＤＲＡＭ６に常駐するプログラムとチェックサムは、プログラムの初回の実行時にフラッシュメモリ９からＳＤＲＡＭ６にロードしたものである。
【００２４】
図５に、本第２実施形態に係るＩＰＬ処理の手順を示す。
図示するように、本第２実施形態においてＩＰＬ処理は、まず、ＳＤＲＡＭ６に、プログラムとチェックサムが有効に格納されているかどうかを調べる（ステップ５０２）。ここで、このステップ５０２では、データ処理装置を最後に電源に接続した後、まだ一度もＳＤＲＡＭ６にプログラムとチェックサムをロードしていない場合には、プログラムとチェックサムが有効に格納されていないものと判定する。この判定は、より具体的には、たとえば、ＳＤＲＡＭ６にプログラムとチェックサムをロードしたときにセットするフラグを、データ処理装置の電源接続時にハードウエア的にリセットされるように設け、当該フラグがリセットされていれば、データ処理装置を最後に電源に接続した後、まだ一度もＳＤＲＡＭ６にプログラムとチェックサムをロードしていないと判定することにより行うことができる。
【００２５】
そして、ＳＤＲＡＭ６に、プログラムとチェックサムが有効に格納されている場合には（ステップ５０２）、さらに、フラッシュメモリ９のアップデートフラグを取得し（ステップ５０４）、アップデートフラグがセットされているかどうかを調べる（ステップ５０６、図４ａの「１.チェック」）。
【００２６】
また、フラッシュメモリ９のアップデートフラグがセットされていない場合には（ステップ５０６）、さらに、今回のデータ処理装置の起動が、エラー発生による起動であるかどうかを（ステップ５２０、５２２、図４ａの「１.チェック」）を調べる。
そして、今回のデータ処理装置の起動が、エラー発生による起動なければ（ステップ５２２）、ＳＤＲＡＭ６のプログラムの実行を開始し（ステップ５１８、図４ａの「２.プログラム実行開始」）、ＩＰＬ処理を終える。
一方、今回のデータ処理装置の起動が、エラー発生による起動であれば（ステップ５２２）、図４ｂに示すように、ＳＤＲＡＭ６のプログラムのサムチェックを、ＳＤＲＡＭ６のチェックサムを用いて行い（ステップ５２４、図４ｂの「１１.チェック」）、サムチェックに成功したならば（ステップ５２６）、ＳＤＲＡＭ６のプログラムの実行を開始し（ステップ５１８、図４ｂの「１２.プログラム実行開始」）、ＩＰＬ処理を終える。一方、サムチェックに失敗した場合には（ステップ５２６）、ステップ５０８に進む。
【００２７】
また、ステップ５０２でＳＤＲＡＭ６に、プログラムとチェックサムが有効に格納されていないと判定された場合や、ステップ５０６で、アップデートフラグがセットされていると判定された場合にも、ステップ５０８に進む。
さて、ステップ５０８に進んだならば、先に図２ｂに示したように、フラッシュメモリ９のプログラムのサムチェックを、フラッシュメモリ９のチェックサムを用いて行い（図２ｂの「１１.チェック」）、サムチェックに成功したならば（ステップ５１０）、ステップ５１２に進んで、フラッシュメモリ９からプログラムとチェックサムのＳＤＲＡＭ６へのロードを行い（図２ｂの「１２.ロード」）、ステップ５１４に進む。
【００２８】
次に、ステップ５１４に進んだならば、フラッシュメモリ９のアップデートフラグがセットされている場合には（ステップ５１４）、これをリセットした上で（ステップ５１６）、ＳＤＲＡＭ６にロードしたプログラムの実行を開始し（ステップ５１８、図２ｂの「１３.プログラム実行開始」）、ＩＰＬ処理を終える。
【００２９】
一方、もし、フラッシュメモリ９のプログラムのサムチェックに失敗した場合には（ステップ５１０）、所定の異常処理を起動し（ステップ５２８）、IＰＬ処理を終える。
この異常処理では、前述のように、たとえば、ＨＤＤ８からフラッシュメモリ９へのプログラムとチェックサムのコピー及びフラッシュメモリ９のアップデートフラグのセットと、データ処理装置の再起動などを行う。
以上、ＩＰＬ処理について説明した。
なお、以上のＩＰＬ処理において、ステップ５０８-５１２の処理は、図２ｃに示すように、まず、フラッシュメモリ９からプログラムとチェックサムのＳＤＲＡＭ６へのロードを行った（図２ｃの「２１.ロード」）上で、ＳＤＲＡＭ６にロードしたプログラムのサムチェックを、ＳＤＲＡＭ６にロードしたチェックサムを用いて行い（図２ｃの「２２.チェック」）、サムチェックが成功したならばステップ５１４に進み、サムチェクが失敗した場合にはステップ５３８に進んで、所定の異常処理を起動する処理に置き換えてもよい。
【００３０】
以上、本発明の第２の実施形態について説明した。
なお、本第２実施形態においても、システムログと、アップデートフラグは、ＨＤＤ８に格納するようにしてもよい。
以上のように、本第２実施形態によれば、通常時は、高速なＳＤＲＡＭ６にフラッシュメモリ９から予めロードしたプログラムを用いて、データ処理装置の起動時にプログラムのサムチェックを行うことなく高速にプログラムを起動することができる。一方で、プログラムのアップデートや、データ処理装置のエラーの発生や電源断による、ＳＤＲＡＭ６に格納したプログラムの損傷やフラッシュメモリ９とＳＤＲＡＭ６とのプログラムの不一致が疑われる状況が発生した場合には、プログラムの誤り検出やプログラムのＳＤＲＡＭ６へのロードを行うので、プログラムの一定の信頼性を保つことができる。
【００３１】
以下、本発明の第３の実施形態について説明する。
本第３実施形態は、図１に示したデータ処理装置において、データ処理装置の起動時には、プログラムのサムチェックを一切行わないようにしたものである。
さて、図６ａに示すように、本第３実施形態においても、フラッシュメモリ９には、プログラムとプログラムのチェックサムが格納される。ここで、このフラッシュメモリ９に格納されたプログラムとチェックサムは、予め、ＨＤＤ８からフラッシュメモリ９にコピーしたものである。
【００３２】
このような構成において、データ処理装置は、図６ｂに示すように、ＩＰＬ処理において、フラッシュメモリ９からＳＤＲＡＭ６へのプログラムとチェックサムをロードし（図６ａ、ｂの「１.ロード」）、ＳＤＲＡＭ６にロードしたプログラムの実行を開始し（図６ａ、ｂの「２.プログラム実行開始」）、ＩＰＬ処理を終える。
【００３３】
一方、ＩＰＬ処理によって実行を開始したプログラムは、図６ｂに示すよう複数のタスクを起動し、各タスクは各タスク毎に予め定められた優先度に従った優先制御によって時分割に実行される。ここで、プログラム実行開始直後に起動されるタスクには、チェックタスク処理を行うチェックタスクが含まれ、このチェックタスクには比較的低い優先度が予め割り当てられている。したがって、図６ｂに示すように、このチェックタスクが行うチェックタスク処理は、他のより優先度の高いタスクの処理を妨げないように、当該より優先度の高いタスクが行われていない空き時間に実行される。
【００３４】
ここで、図７に、このチェックタスクが行うチェックタスク処理の手順を示す。
図示するように、このチェックタスク処理では、フラッシュメモリ９に格納されているプログラムのサムを算出し（ステップ７０２）、算出したサムが、ＨＤＤ８に格納されているチェックサムの値と一致するかどうかを調べる（ステップ７０４）ことにより、フラッシュメモリ９に格納されているプログラムのサムチェックを行う（図６ａ、ｂの「３.チェック」）。そして、サムチェックが成功したならば、ステップ７０２からの処理に戻ってサムチェックを繰り返し行い、サムチェックが失敗したならば、コピータスクを起動する（ステップ７０６）。ただし、このサムチェックは、フラッシュメモリ９に格納されているプログラムとチェックサムを用いて行うようにしてもよい。
【００３５】
さて、コピータスクを起動したならば（ステップ７０６）、次に、コピータスクからのコピー完了報告を待って（ステップ７０８）、ステップ７０２からの処理に戻ってフラッシュメモリ９に格納されているプログラムのサムチェックを繰り返し行う。
ここで、ステップ７０６で起動されたコピータスクは、ＨＤＤ８に格納されたプログラムとチェックサムとを、フラッシュメモリ９にコピーする処理を行い（図６ａ、ｂの「４.コピー」）、コピーが完了したならば、コピー完了報告をチェックタスクに発行し処理を終了する。ここで、図６ｂに示すように、このコピータスクも、当該コピータスクに予め設定された優先度に従って、他のより優先度の高いタスクの処理を妨げないように、当該より優先度の高いタスクが行われていない空き時間に実行される。
【００３６】
以上、本発明の第３実施形態について説明した。
このような第３実施形態によれば、データ処理装置の起動時にプログラムのサムチェックを行うことなく直ちにプログラムを起動するので、データ処理装置の起動を短時間で完了することができる。一方、プログラムを起動したならば、当該プログラムの実行と並行して、プログラムのサムチェックや、サムチェック失敗時のプログラムの更新を行うのでプログラムの信頼性を保つことができる。また、プログラム実行時に低優先度のタスクとしてプログラムのサムチェックや更新を行うので、これらの処理によって、プログラムの実行をできるだけ妨げないようにすることができる。
【００３７】
なお、本第３実施形態は、ＳＤＲＡＭ６が、バックアップ電源６１によってデータ処理装置の可動停止時にも電源が供給され、ＳＤＲＡＭ６が不揮発性メモリとして機能するものである場合には、次のように修正して適用するようにする。
すなわち、フラッシュメモリ９に再ロードフラグを設け、ＩＰＬ処理では、再ロードフラグがセットされている場合にのみ、フラッシュメモリ９からＳＤＲＡＭ６へのプログラムとチェックサムのロードと、ＳＤＲＡＭ６にロードしたプログラムの実行の開始を行い、再ロードフラグがセットされていない場合には、フラッシュメモリ９からＳＤＲＡＭ６へのロードは行わずに、既にＳＤＲＡＭ６にロードされているプログラムの実行を開始する。
【００３８】
そして、チェックタスクでは、ＳＤＲＡＭ６に格納されているプログラムのサムチェックを、ＳＤＲＡＭ６またはフラッシュメモリ９またはＨＤＤ８に格納されているチェックサムを用いて行い、サムチェックが失敗した場合には、さらに、フラッシュメモリ格納されているプログラムのサムチェックを、フラッシュメモリ９またはＨＤＤ８に格納されているチェックサムを用いて行い、フラッシュメモリ９のプログラムのサムチェックが成功した場合には、再ロードフラグをセットする。一方、フラッシュメモリ９のプログラムのサムチェックも失敗した場合には、ＨＤＤ８からフラッシュメモリ９へのプログラムとチェックサムのコピーを行った上で、再ロードフラグをセットする。なお、再ロードフラグは、ＨＤＤ８上に設けるようにしてもよい。
【００３９】
以上、本発明の実施形態について説明した。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施形態に係るデータ処理装置の構成を示すブロック図である。
【図２】本発明の第１実施形態に係るデータ処理装置のＩＰＬ処理の動作を示す図である。
【図３】本発明の第１実施形態に係るデータ処理装置のＩＰＬ処理の手順を示すフローチャートである。
【図４】本発明の第２実施形態に係るデータ処理装置のＩＰＬ処理の動作を示す図である。
【図５】本発明の第２実施形態に係るデータ処理装置のＩＰＬ処理の手順を示すフローチャートである。
【図６】本発明の第３実施形態に係るデータ処理装置のＩＰＬ処理の動作を示す図である。
【図７】本発明の第３実施形態に係るデータ処理装置のＩＰＬ処理の手順を示すフローチャートである。
【符号の説明】
【００４１】
１…ＣＰＵ、２…高速バス、３…メモリコントローラ、４…入出力コントローラ、５…グラフィックス処理部、６…ＳＤＲＡＭ、７…低速バス、８…ＨＤＤ、９…フラッシュメモリ、１１…表示装置、６１…バックアップ電源。
【図１】
2008217636.tif 000003
【図２】
2008217636.tif 000004
【図３】
2008217636.tif 000005
【図４】
2008217636.tif 000006
【図５】
2008217636.tif 000007
【図６】
2008217636.tif 000008
【図７】
2008217636.tif 000009