(57)【要約】【課題】不揮発性メモリ内のバックアップ領域に書き換え用データを一時的に作成し、この書き換え用データを用いて書き換え対象領域のデータを書き換えるように構成した場合に電源断等により処理が中断されたとしても、正常に書き換えを完了することが可能な情報処理装置及び情報処理装置のメモリ書き換え方法を提供する。【解決手段】  バックアップ領域１２ａの信頼性を検証するためのチェックサム２１及びフラッシュＲＯＭ１２の書き込み対象セクタを指定するバックアップフラグ２２をバックアップ領域１２ａに書き込む。電源断後の再起動時には、このチェックサム２１によりバックアップ領域１２ａのデータが正常であるかどうか確認する。【選択図】図２
2007041798.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータとの間でデータを送受信するデータ送受信部と、
所定の動作を行う駆動部と、
複数のセクタを有し、該複数のセクタ内にファームウェアを記憶する不揮発性メモリと、
前記不揮発性メモリ内のファームウェアを実行することにより前記駆動部を制御するとともに、前記ホストコンピュータから送信されるデータを基に前記ファームウェアを書き換える制御部と、を備え、
前記制御部は、前記不揮発性メモリの書き換えを行うにあたり、前記ホストコンピュータから送信されたデータを基に前記不揮発性メモリ内のバックアップ領域に書き込み用データを生成し、前記バックアップ領域の信頼性を検証するための検証値及び前記不揮発性メモリの書き込み対象セクタを指定するフラグを前記バックアップ領域に書き込み、前記バックアップ領域に書き込まれた書き込み用データを前記フラグに指定された前記書き込み対象セクタに書き込むことにより前記不揮発性メモリの書き換えを実行し、そして前記バックアップ領域のデータを消去することを特徴とする情報処理装置。
【請求項２】
前記制御部は、起動後、前記フラグの有無を判定し、前記フラグが存在する場合には、前記フラグの指定が所定の定義域であり且つ前記検証値を用いて前記バックアップ領域の信頼性が検証された場合にのみ、前記バックアップ領域に書き込まれた前記書き込み用データを前記フラグに指定された前記書き込み対象セクタに書き込むことにより前記不揮発性メモリの書き換えを実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検証値は、チェックサム方式で算出されるチェックサムであることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記検証値は、ＣＲＣ方式で算出されるＣＲＣ値であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記不揮発性メモリは、フラッシュＲＯＭであることを特徴とする請求項１〜４の何れか一項に記載の情報処理装置。
【請求項６】
ホストコンピュータから送信されるデータを基に不揮発性メモリに記憶されたファームウェアを書き換える情報処理装置のメモリ書き換え方法であって、
前記不揮発性メモリの書き換えを行うにあたり、前記ホストコンピュータから送信されたデータを基に前記不揮発性メモリ内のバックアップ領域に書き込み用データを生成するステップと、
前記バックアップ領域の信頼性を検証するための検証値を算出し、前記バックアップ領域に書き込むステップと、
前記不揮発性メモリの書き込み対象セクタを指定するフラグを前記バックアップ領域に書き込むステップと、
前記バックアップ領域に書き込まれた書き込み用データを前記フラグに指定された前記書き込み対象セクタに書き込むことにより前記不揮発性メモリの書き換えるステップと、
前記バックアップ領域のデータを消去するステップと、
を備えたことを特徴とする情報処理装置のメモリ書き換え方法。
【請求項７】
起動後、前記フラグの有無を判定するステップを備え、
前記フラグが存在する場合には、前記フラグの指定が所定の定義域であり且つ前記検証値を用いて前記バックアップ領域の信頼性が検証された場合にのみ、前記バックアップ領域に書き込まれた書き込み用データを前記フラグに指定された前記書き込み対象セクタに書き込むことにより前記不揮発性メモリの書き換えを実行することを特徴とする請求項６に記載の情報処理装置のメモリ書き換え方法。
【請求項８】
前記検証値は、チェックサム方式で算出されるチェックサムであることを特徴とする請求項６または７に記載の情報処理装置のメモリ書き換え方法。
【請求項９】
前記検証値は、ＣＲＣ方式で算出されるＣＲＣ値であることを特徴とする請求項６または７に記載の情報処理装置のメモリ書き換え方法。
【請求項１０】
前記不揮発性メモリは、フラッシュＲＯＭであることを特徴とする請求項６〜９の何れか一項に記載の情報処理装置のメモリ書き換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ、スキャナ等の情報処理装置及び情報処理装置のメモリ書き換え方法に係り、特に情報処理装置の内部に設けられた不揮発性メモリの書き換え方法に関する。
【背景技術】
【０００２】
従来、情報処理装置としては、例えば、用紙に画像を記録する画像記録装置としてのプリンタや、用紙に記録された画像を読み取る画像読取装置としてのスキャナ等が知られている。これらの情報処理装置は、内部に設けられたＣＰＵがファームウェアを実行することにより、ホストコンピュータとの通信を行いつつ、画像記録または画像読み取りを実行する。
【０００３】
ファームウェアは、情報処理装置制御用の実行プログラムとこの実行プログラムが実行時に参照する参照値データ等から構成され、通常、フラッシュＲＯＭやＥＥＰＲＯＭといった書き換え可能な不揮発性メモリに記憶されている。情報処理装置に新たな制御を加えて機能拡張を行う場合や、既存のファームウェアの不具合を解消する場合には、ホストコンピュータから書き換え用のデータを情報処理装置に送信し、不揮発性メモリ内のデータを書き換えることにより、ファームウェアの更新が行われる。
【０００４】
ファームウェアの更新にあたっては、通常、書き換えにより書き換え前のデータが消去される。したがって、データの書き換え中に電源断が発生したり、通信エラー等が発生した場合には、誤ったデータが書き込まれてしまい、情報処理装置が動作不能に陥るといった問題がある。
【０００５】
この問題を解決するために、特許文献１の記録装置では、書き換えが正常に行われたかどうかを判定し、書き換えが正常に終了されていない場合には、再度書き換えを実行するように構成されている。
【０００６】
より具体的に説明すると、特許文献１の記録装置は、ユーザプログラム領域と、このユーザプログラム領域を書き換える書き換えプログラムを記憶するダウンロードプログラム領域を備えたフラッシュＲＯＭを備えている。記録装置は、ダウンロードモード（書き換えモード）においては、ホストコンピュータから受信する更新用データを用いて、ＲＡＭ内に書き換え用のＲＯＭイメージを作成し、作成したＲＯＭイメージをＲＡＭからフラッシュＲＯＭに転送してユーザプログラム領域の書き換えを実行する。書き換えが終了すると、ユーザプログラム領域のチェックサムを検証し、チェックサム値が正常でない場合には、再度フラッシュＲＯＭ書き換えを再実行する。
【０００７】
また、ユーザプログラム領域の書き換え途中に電源断等により、書き換えが中断された場合には、起動時の処理において、ユーザプログラム領域のチェックサムが検証され、チェックサムが異常であれば、再度ホストコンピュータから更新用データを受信して、再度フラッシュＲＯＭ書き換えを実行する。
【０００８】
ところで、特許文献１に記載の記録装置では、ホストコンピュータから受信した更新用データを基に揮発性メモリであるＲＡＭにＲＯＭイメージを作成し、そして作成されたＲＯＭイメージでフラッシュＲＯＭを書き換える方式である。したがって、書き換え途中に電源断等が発生すると、再度ホストコンピュータからデータを再受信しなければ再書き換えを実行することができない。
【０００９】
そのため、情報処理装置の中には、不揮発性メモリ内のバックアップ領域に書き換え用データを一時的に作成し、この書き換え用データを用いて書き換え対象領域のデータを書き換えるように構成されたものもある。このように構成することにより、バックアップ領域から書き換え対象領域にデータを書き込む際に電源断等により書き込みが中断されても、電源再投入すればホストコンピュータから再度データを受信することなく、再書き込みを実行することができる。
【特許文献１】特開２００５−６３０５０号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、バックアップ領域に書き換え用データを一時的に作成し、この書き換え用データを用いて書き換え対象領域のデータを書き換えるように構成した場合には、バックアップ領域に設定されたフラグによって、書き換え対象領域に正しくデータが書き込まれたかどうかを確認するが、電源断のタイミングによっては、このフラグに起因して書き換え対象領域が誤ったデータで書き換えられてしまう場合がある。
【００１１】
図５を参照して具体的に説明すると、フラッシュＲＯＭ内のデータ書き換えにおいては、情報処理装置が書き換えモードに移行した状態において、まず不揮発性メモリ（例えば、フラッシュＲＯＭやＥＥＰＲＯＭ）内にバックアップ領域を確保し、このバックアップ領域にホストコンピュータから受信した新規書き込みデータを書き込むとともに、フラッシュＲＯＭの書き換え対象領域に存在する書き換え後にも利用する必要な情報をこのバックアップ領域に書き込み、書き込み用データを生成する（ステップＳ１０１）。
【００１２】
そして、バックアップ領域に書き込み用データが生成されると、書き込み用データの末尾に書き換え対象領域への書き込み要を意味するバックアップフラグを書き込む（ステップＳ１０２）。
【００１３】
次に、書き換え対象領域のセクタを一括消去し（ステップＳ１０４）、バックアップ領域の書き込み用データを書き換え対象領域に書き込む（ステップＳ１０５）。そして、書き換え対象領域への書き換えが終了すると、バックアップ領域のデータを消去する（ステップＳ１０５）。この消去により、バックアップフラグも消去されて、書き換えが完了する。
【００１４】
ここで、ステップＳ１０５のデータ消去途中に電源断等により、処理が中断されてしまい、バックアップフラグが未だに消去されていない状態を考える。この状態は、バックアップ領域のデータは不完全なものであるにもかかわらず、バックアップフラグが存在するため、バックアップ領域全体としては、未だに書き換え対象領域にデータを書き込む必要があることを意味している。
【００１５】
このような状態で、情報処理装置が電源ＯＮ等により再起動されると、バックアップフラグの存在により、データの復旧処理が再開される（ステップＳ１０６）。
【００１６】
この場合には、未だに書き換え対象セクタにはデータが書き込まれていないと判断され、実質的にステップＳ１０４以降の処理が再開され、書き換え対象セクタが消去される（ステップＳ１０７）。そして、バックアップ領域に存在する消去途中であった不完全なデータが書き換え対象領域に書き込まれ（ステップＳ１０８）、結果として書き換え対象領域のデータが壊されファームウェアが不完全なものとなり、場合によってはユーザ単独では復旧不可能となってしまう。
【００１７】
また、例えば、バックアップ領域に書き込まれるフラグがバックアップ領域のデータが書き込まれる領域を指定している場合に、上記のステップＳ１０５におけるバックアップ領域の消去途中に電源断等により書き換えが中断されたり、また、バックアップ領域のデータが書き込まれる領域を指定するフラグが書き込まれる途中に書き換えが中断したりすると、場合によってはフラグが中途半端に消去され、フラグが指定する書き換え対象領域が変更されてしまう場合も想定される。
【００１８】
これについて説明すると、フラッシュＲＯＭのセクタ消去においては、ある規則性を持ってセクタ内のデータが順次０に書き換えられ、そして全ビットが０となった後にランダムにビットが１となり、最終的に全ビットが１となる。したがって、消去途中でも、フラッシュＲＯＭ内のビットは０と１が混在している状態が多々存在し、タイミングによっては、フラグがまれに解釈可能なフラグに書き換えられてしまう場合がある。
【００１９】
このように、フラグが解釈可能なフラグに書き換えられて、フラグが指定する書き換え対象領域が変更されてしまうと、意図した書き換え対象領域は正しく書き換えられるが、意図せぬ領域が新たに書き換え対象領域として認識され、この領域に消去途中の不完全なデータが書き込まれて壊され、結果としてファームウェアが不完全なものとなってしまう。この場合にも、場合によってはユーザ単独では復旧が不可能となってしまう。
【００２０】
本発明は、上記を鑑みて為されたものであり、不揮発性メモリ内のバックアップ領域に書き換え用データを一時的に作成し、この書き換え用データを用いて書き換え対象領域のデータを書き換えるように構成した場合に電源断等により処理が中断されたとしても、正常に書き換えを完了することが可能な情報処理装置及び情報処理装置のメモリ書き換え方法を提供することを目的とする。
【課題を解決するための手段】
【００２１】
（１）  ホストコンピュータとの間でデータを送受信するデータ送受信部と、
所定の動作を行う駆動部と、
複数のセクタを有し、該複数のセクタ内にファームウェアを記憶する不揮発性メモリと、
前記不揮発性メモリ内のファームウェアを実行することにより前記駆動部を制御するとともに、前記ホストコンピュータから送信されるデータを基に前記ファームウェアを書き換える制御部と、を備え、
前記制御部は、前記不揮発性メモリの書き換えを行うにあたり、前記ホストコンピュータから送信されたデータを基に前記不揮発性メモリ内のバックアップ領域に書き込み用データを生成し、前記バックアップ領域の信頼性を検証するための検証値及び前記不揮発性メモリの書き込み対象セクタを指定するフラグを前記バックアップ領域に書き込み、前記バックアップ領域に書き込まれた書き込み用データを前記フラグに指定された前記書き込み対象セクタに書き込むことにより前記不揮発性メモリの書き換えを実行し、そして前記バックアップ領域のデータを消去することを特徴とする情報処理装置。
（２）  前記制御部は、起動後、前記フラグの有無を判定し、前記フラグが存在する場合には、前記フラグの指定が所定の定義域であり且つ前記検証値を用いて前記バックアップ領域の信頼性が検証された場合にのみ、前記バックアップ領域に書き込まれた前記書き込み用データを前記フラグに指定された前記書き込み対象セクタに書き込むことにより前記不揮発性メモリの書き換えを実行することを特徴とする（１）に記載の情報処理装置。
（３）  前記検証値は、チェックサム方式で算出されるチェックサムであることを特徴とする（１）または（２）に記載の情報処理装置。
（４）  前記検証値は、ＣＲＣ方式で算出されるＣＲＣ値であることを特徴とする（１）または２に記載の情報処理装置。
（５）  前記不揮発性メモリは、フラッシュＲＯＭであることを特徴とする（１）〜（４）の何れか一項に記載の情報処理装置。
（６）  ホストコンピュータから送信されるデータを基に不揮発性メモリに記憶されたファームウェアを書き換える情報処理装置のメモリ書き換え方法であって、
前記不揮発性メモリの書き換えを行うにあたり、前記ホストコンピュータから送信されたデータを基に前記不揮発性メモリ内のバックアップ領域に書き込み用データを生成するステップと、
前記バックアップ領域の信頼性を検証するための検証値を算出し、前記バックアップ領域に書き込むステップと、
前記不揮発性メモリの書き込み対象セクタを指定するフラグを前記バックアップ領域に書き込むステップと、
前記バックアップ領域に書き込まれた書き込み用データを前記フラグに指定された前記書き込み対象セクタに書き込むことにより前記不揮発性メモリの書き換えるステップと、前記バックアップ領域のデータを消去するステップと、を備えたことを特徴とする情報処理装置のメモリ書き換え方法。
（７）  起動後、前記フラグの有無を判定するステップを備え、
前記フラグが存在する場合には、前記フラグの指定が所定の定義域であり且つ前記検証値を用いて前記バックアップ領域の信頼性が検証された場合にのみ、前記バックアップ領域に書き込まれた書き込み用データを前記フラグに指定された前記書き込み対象セクタに書き込むことにより前記不揮発性メモリの書き換えを実行することを特徴とする（６）に記載の情報処理装置のメモリ書き換え方法。
（８）  前記検証値は、チェックサム方式で算出されるチェックサムであることを特徴とする（６）または（７）に記載の情報処理装置のメモリ書き換え方法。
（９）  前記検証値は、ＣＲＣ方式で算出されるＣＲＣ値であることを特徴とする（６）または（７）に記載の情報処理装置のメモリ書き換え方法。
（１０）  前記不揮発性メモリは、フラッシュＲＯＭであることを特徴とする（６）〜（９）の何れか一項に記載の情報処理装置のメモリ書き換え方法。
【発明の効果】
【００２２】
本発明の情報処理装置では、不揮発性メモリの書き換えを行うにあたり、ホストコンピュータから送信されたデータを基に不揮発性メモリ内のバックアップ領域に書き込み用データを生成する。このように構成することにより、バックアップ領域から書き換え対象領域にデータを書き込む際に電源断等により書き込みが中断されても、電源再投入すればホストコンピュータから再度データを受信することなく、再書き込みを実行することができる。
【００２３】
また、本発明の情報処理装置では、このとき不揮発性メモリの書き込み対象セクタを指定するフラグに加えてバックアップ領域の信頼性を検証するための検証値をバックアップ領域に書き込むように構成されている。したがって、電源断等により、メモリ書き換え処理が中断されてしまっても、検証値によりバックアップ領域のデータが不完全なものであることが判別可能である。したがって、誤ったデータにより不揮発性メモリを書き換えるといった不具合が発生することがなく、信頼性の高い不揮発性メモリの書き換えを行うことができる。
【００２４】
この検証値は、チェックサム方式で算出されるチェックサムまたはＣＲＣ方式で算出されるＣＲＣ値を好適に用いることができる。
また、この不揮発性メモリ書き換えは、フラッシュＲＯＭの書き換えにおいて特に好適に適用することができる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照しながら、本発明にかかる情報処理装置及び情報処理装置のメモリ書き換え方法の実施形態を説明する。以下の説明では、情報処理装置の例として、プリンタを例に挙げて説明する。
【００２６】
図１は、本実施形態のプリンタを示す模式的なブロック図であり、図２は、本実施形態のフラッシュＲＯＭの模式図であり、図３は、本実施形態のフラッシュＲＯＭ書き換えの流れを示すフローチャートであり、図４は、本実施形態のフラッシュＲＯＭ書き換えの効果を検証するための模式図である。
【００２７】
本実施形態のプリンタ１０は、外部のホストコンピュータ２０と通信可能に接続され、ホストコンピュータ２０から送信される各種コマンドに応じて動作し、印刷や画像読み取りを実行する画像記録装置である。プリンタ１０は、主として、ＣＰＵ１１、フラッシュＲＯＭ１２，ＲＡＭ１３、データ送受信部１４，操作部１５，ＥＥＰＲＯＭ１６、及び画像記録部１７を有しており、それぞれは内部バス６０により電気的に接続されている。なお、図１では、模式的に一つの内部バス６０で各部が接続されているとして説明しているが、各部が機能する限りにおいて、他の構成で接続されていてもよい。
【００２８】
ＣＰＵ１１は、プリンタ１０の制御中枢であって、フラッシュＲＯＭ１２に書き込まれたファームウェアを実行することにより、プリンタ１０の各部の動作を制御する制御部を構成する。
【００２９】
フラッシュＲＯＭ１２は、複数のセクタを有し、電気的にデータを書き換え可能な不揮発性メモリである。このフラッシュＲＯＭ１２には、プリンタ制御用のファームウェアや、各種設定値等が記憶されている。フラッシュＲＯＭ１２は、データの消去時には、セクタ単位で一括してデータの消去が実行される。
【００３０】
ＲＡＭ１３は、プリンタ１０における揮発性の記憶領域である。図１では、模式的に一つのＲＡＭ１３が描かれているが用途に応じて複数のＲＡＭチップが設けられていてもよい。このＲＡＭ１３には、ホストコンピュータから受信したデータを一時的に保存する受信バッファ、展開された印刷データを一時的に保存する印刷バッファ、画像データを保存する画像バッファ等が設けられている。
【００３１】
データ送受信部１４は、外部のホストコンピュータ２０との通信を行う制御部である。ホストコンピュータ２０から受信するデータ及びホストコンピュータ２０へ送信されるデータは、すべてこのデータ送受信部を介して送受信される。
【００３２】
操作部１５は、プリンタ１０の筐体に設置された紙送りスイッチ等のユーザインタフェースであり、この操作部１５が操作されることにより、プリンタ１０は、ユーザからの指示を受け取り、指示に応じて動作する。
【００３３】
ＥＥＰＲＯＭ１６は、１byte毎にデータを電気的に書き換え可能な不揮発性メモリである。このＥＥＰＲＯＭ１６には、例えば、内部に電源断時にもカウンタ値を保持するための不揮発性メンテナンスカウンタが記憶されている。
【００３４】
画像記録部１７は、紙送り機構，ヘッド駆動機構及びこれらを駆動するためのドライバ回路等から構成されている。画像記録部１７は、ファームウェアに応じて送信されるＣＰＵ１１からの各種指示及び印刷データに応じて、印刷を実行する。本実施形態では、この画像記録部１７が所定の動作を行う駆動部を構成している。
【００３５】
次に、図２を参照しながら、フラッシュＲＯＭ１２について説明する。フラッシュＲＯＭ１２は、図２に示すように、例えば１０個のセクタを有しており、各セクタには、ファームウェアまたは各種設定値等が記憶されている。本実施形態のフラッシュＲＯＭ１２では、このうちのセクタ１０が汎用のデータ記憶領域として用意されており、フラッシュＲＯＭのデータ書き換え時には、このセクタ１０がバックアップ領域１２ａとして機能する。
【００３６】
バックアップ領域１２ａは、フラッシュＲＯＭ１２の書き換え時に、書き換え対象セクタに書き込まれる書き換え用データが一時的に作成されて保持される領域である。すなわち、本実施形態では、この書き換え用データを用いて書き換え対象セクタのデータを書き換えるように構成されている。このように構成することにより、バックアップ領域から書き換え対象セクタにデータを書き込む際に電源断等により書き込みが中断されても、電源を再投入すればホストコンピュータ２０から再度データを受信することなく、再書き込みを実行することができる。
【００３７】
バックアップ領域１２ａには、そのデータの末尾にチェックサム２１とバックアップフラグ２２の２つが記憶される。
【００３８】
チェックサム２１は、バックアップ領域１２ａのデータの信頼性チェックに用いられる検証値である。このチェックサム２１は、バックアップ領域１２ａに書き換え用データが作成された時点で算出されるものであり、バックアップ領域１２ａの先頭アドレスから最終アドレスまでをワード単位で加算して求められた和を反転させた値となっている。
【００３９】
バックアップフラグ２２は、バックアップ領域１２ａ書き換え用データが作成された時点で設定されるものであり、どのセクタにバックアップ領域１２ａのデータを書き込むべきかを示す値となっている。
【００４０】
なお、上記説明では、バックアップ領域１２ａは、フラッシュＲＯＭ１２に形成されるとしたが、別体のフラッシュＲＯＭやその他の不揮発性メモリが存在すれば、そちらにバックアップ領域１２ａを設けるようにしてもよい。
【００４１】
次に、図３及び図４を参照して、本実施形態におけるフラッシュＲＯＭの書き換え処理の流れを説明する。
【００４２】
フラッシュＲＯＭ１２内のデータ書き換えにおいては、ＣＰＵ１１がフラッシュＲＯＭ１２またはフラッシュＲＯＭ１２からＲＡＭ１３に書き込まれた書き換え用プログラムを実行することにより、フラッシュＲＯＭ書き換えモードが起動し、このモード内で処理が行われる。
【００４３】
このフラッシュＲＯＭ書き換えモードにおいては、図３及び図４に示すように、まずフラッシュＲＯＭ１２内にバックアップ領域１２ａを確保し、このバックアップ領域１２ａにホストコンピュータ２０から受信した新規書き込みデータを書き込むとともに、フラッシュＲＯＭ１２の書き換え対象セクタに存在する書き換え後にも利用する必要な情報をこのバックアップ領域１２ａに書き込む。これによりバックアップ領域１２ａに書き込み用データが生成される（ステップＳ１）。
【００４４】
そして、バックアップ領域１２ａに書き込み用データが生成されると、バックアップ領域１２ａの先頭アドレスから最終アドレスまでをワード単位で加算し、これを反転した値がチェックサム２１としてバックアップ領域１２ａに書き込まれる（ステップＳ２）。
【００４５】
そして、チェックサム２１が求められると、次にはバックアップ領域１２ａに書き込まれた書き込み用データの末尾に書き換え対象セクタのセクタ番号を指定したバックアップフラグ２２を書き込む（ステップＳ３）。
【００４６】
次に、書き換え対象セクタのセクタを一括消去し（ステップＳ４）、バックアップ領域１２ａの書き込み用データを書き換え対象セクタに書き込む（ステップＳ５）。そして、書き換え対象セクタへの書き込みが終了すると、バックアップ領域１２ａのデータが消去される（ステップＳ６）。この消去が完了すると、バックアップフラグ２２も消去されて、書き換えが完了する。
【００４７】
ここで、ステップＳ６のデータ消去途中に電源断等により、処理が中断されてしまい、バックアップフラグ２２が未だに消去されていない状態を考える。この状態は、バックアップ領域１２ａのデータは不完全なものであるにもかかわらず、バックアップフラグ２２が存在するため、バックアップ領域１２ａ全体としては、未だに書き換え対象セクタにデータを書き込む必要があることを意味している。
【００４８】
このような状態で、情報処理装置が電源ＯＮ等により再起動されると、バックアップフラグ２２の有無及びチェックサム２１が検証される。
【００４９】
まず、バックアップフラグ２２が存在した場合には、このバックアップフラグ２２が指定している書き換え対象セクタを特定する。ここで、バックアップフラグ２２の指定が所定の定義域以外であれば、そのバックアップフラグ２２は、無効とみなされデータの復旧処理は行われない。
【００５０】
一方、バックアップフラグ２２の指定が所定の定義域内であれば、バックアップ領域１２ａのデータを検証するために、バックアップ領域１２ａの先頭アドレスから最終アドレスまでをワード単位で加算し、バックアップ領域１２ａに記憶されているチェックサム２１との和を求め０ｘＦＦＦＦとなるか確認される（図５，ステップＳ７）。
【００５１】
ここで、０ｘＦＦＦＦとなれば、バックアップ領域１２ａのデータが正常であると判断されて、データの復旧処理が再開される。再開された場合には、ステップＳ４からステップＳ６までの処理が実行されることとなる。
【００５２】
しかしながら、ここでは、ステップＳ６のデータ消去途中に電源断等により、処理が中断されてしまい、バックアップフラグ２２が未だに消去されていない状態となっている。したがって、求められた計算値とチェックサム２１との照合は、極めて低い確率でしか０ｘＦＦＦＦにならず、この時点でバックアップ領域１２ａから書き換え対象セクタへのデータ書き込みは実行されない。よって、フラッシュＲＯＭ１２の記録データの破損を防ぐことができ、書き換え処理及びプリンタの処理システムの信頼性を高めることができる。また、ユーザ単独では復旧不可能となってしまうようにフラッシュＲＯＭ１２が書き換えられることもないので、ユーザの手間を未然に防ぐこともできる。
【００５３】
ここで、電源断により、偶然にチェックサムと計算値とが一致する場合も考えられるが、その確率は、バックアップフラグ書き込み中の電源断の場合には０％、バックアップ領域消去中の電源断の場合では、０．００００１６％の確率である（チェックサム１６ビットの場合）。これは、プリンタの使用期間内におけるフラッシュＲＯＭ１２の書き換え回数と比較すると十分に低い確率であり、実質的に誤書き換えを十分に防止できる。
【００５４】
なお、上記説明では、検証値の算出にチェックサム方式を用いたが、これに限られず、バックアップ領域１２ａの信頼性を確認できるものであればその他の方式を用いてもよい。チェックサム方式に代わるものとしては、例えばＣＲＣ方式が挙げられる。このＣＲＣ方式は、巡回的なアルゴリズム（生成多項式）を適用してバックアップ領域１２ａのデータからCRCコードと呼ばれる冗長データ（ＣＲＣ値）を生成し、この冗長データの反転値を検証値としてもよい。この方式は、多ビット・エラーの検出精度が高いという特徴がある。この場合でも、基本的な処理の流れは、チェックサムを用いた場合と同様である。
【図面の簡単な説明】
【００５５】
【図１】本発明にかかる実施形態のプリンタを示す模式的なブロック図である。
【図２】フラッシュＲＯＭの模式図である。
【図３】フラッシュＲＯＭ書き換えの流れを示すフローチャートである。
【図４】フラッシュＲＯＭ書き換えの効果を検証するための模式図である。
【図５】従来のフラッシュＲＯＭ書き換えの問題点を説明するための模式図である。
【符号の説明】
【００５６】
１０  プリンタ
１１  ＣＰＵ
１２  フラッシュＲＯＭ
１２ａ  バックアップ領域
１３  ＲＡＭ
１４  データ送受信部
１５  操作部
１６  ＥＥＰＲＯＭ
１７  画像記録部
２０  ホストコンピュータ
２１  チェックサム
２２  バックアップフラグ
【図１】
2007041798.tif 000003
【図２】
2007041798.tif 000004
【図３】
2007041798.tif 000005
【図４】
2007041798.tif 000006
【図５】
2007041798.tif 000007