(57)【要約】【課題】データの書き換え処理が開始される前に、データの書き換え処理が完了した状態であることを示す第１情報、および、書き込まれたデータに誤りが含まれていないことを示す第２情報を確実に消去する。【解決手段】データ書き換え装置１０は、メモリ１００に書き込まれているデータのうち差分が生じたデータを書き換える書き換え部１１と、書き換え部１１によるデータの書き換え処理が完了すると、第１情報を第１格納部２１に書き込む第１書き込み部１２と、書き換え部１１により書き込まれたデータに誤りが含まれていないことを確認すると、第２情報を第２格納部２２に書き込む第２書き込み部１３と、書き換え部１１によるデータの書き換え処理が開始される前に、第１情報を格納する第１格納部２１および第２情報を格納する第２格納部２２を消去する消去部１４と、を備える。【選択図】図１
2018013837.tif 000002
【特許請求の範囲】
【請求項１】
メモリ（１００）に書き込まれているデータのうち差分が生じたデータを書き換える書き換え部（１１）と、
前記書き換え部によるデータの書き換え処理が完了すると、所定の第１情報を第１格納部（２１）に書き込む第１書き込み部（１２）と、
前記書き換え部により書き込まれたデータに誤りが含まれていないことを確認すると、所定の第２情報を第２格納部（２２）に書き込む第２書き込み部（１３）と、
前記書き換え部によるデータの書き換え処理が開始される前に、前記第１情報を格納している前記第１格納部および前記第２情報を格納している前記第２格納部を消去する消去部（１４）と、
を備えるデータ書き換え装置。
【請求項２】
前記第１格納部および前記第２格納部は、前記メモリのうちデータが書き換えられる書き換え領域の外部に設けられている請求項１に記載のデータ書き換え装置。
【請求項３】
前記第１格納部および前記第２格納部は、前記書き換え領域の外部に別々に設けられている請求項２に記載のデータ書き換え装置。
【請求項４】
前記書き換え領域の外部に、前記第１格納部および前記第２格納部を含む総合格納部（３１）が設けられている請求項２に記載のデータ書き換え装置。
【請求項５】
前記メモリのうちデータが書き換えられる書き換え領域の内部に、前記第１格納部および前記第２格納部が設けられており、
前記書き換え部は、前記第１情報を格納している前記第１格納部および前記第２情報を格納している前記第２格納部も、書き換えるデータの一部として認識する請求項１に記載のデータ書き換え装置。
【請求項６】
前記書き換え部により書き換えられるデータを一時的に退避させる退避部（１０３）を備え、
前記第１格納部および前記第２格納部は、前記退避部に設けられている請求項１に記載のデータ書き換え装置。
【請求項７】
メモリ（１００）に書き込まれているデータのうち差分が生じたデータを書き換える書き換え処理と、
前記書き換え処理が完了すると、所定の第１情報を第１格納部（２１）に書き込む第１書き込み処理と、
前記書き換え処理により書き込まれたデータに誤りが含まれていないことを確認すると、所定の第２情報を第２格納部（２２）に書き込む第２書き込み処理と、
前記書き換え処理が開始される前に、前記第１情報を格納している前記第１格納部および前記第２情報を格納している前記第２格納部を消去する消去処理と、
をデータ書き換え装置（１０）に実行させるデータ書き換えプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ書き換え装置およびデータ書き換えプログラムに関する。
【背景技術】
【０００２】
従来より、メモリに書き込まれているデータを書き換える装置が考えられている。例えば特許文献１には、メモリに格納されるアプリケーションプログラムの書き換えに失敗したときに、通信プログラムを自動的に切り換えて再書き換えを行う技術が開示されている。特許文献２には、フラッシュメモリへのデータ書き込み中において瞬時停電などの影響により書き込み不良が発生した場合に、フラッシュメモリのデータを読み出す際に、データが正しく書き込まれているか否かを確認する技術が開示されている。特許文献３には、第１の不揮発性メモリの更新途中に障害が発生した場合に、第２の不揮発性メモリによりプログラムの再更新を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−００５１５２号公報
【特許文献２】特開平８−００６８６５号公報
【特許文献３】特開２００２−３５１６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
メモリに書き込まれているデータを全て書き換える場合の処理は、次のように行われる。即ち、まず、メモリに書き込まれているデータを全て消去する。このとき、全てのデータを消去することに伴い、前回のデータ書き換え処理の完了時にメモリに格納されたフラッシュステータス情報およびスタンプ情報も消去される。そして、フラッシュステータス情報およびスタンプ情報が消去された状態で、今回のデータ書き換え処理が開始される。そして、データ書き換え処理が完了するとフラッシュステータス情報およびスタンプ情報の書き込みが行われる。これにより、データ書き換え処理が完了する。
【０００５】
フラッシュステータス情報は、データ書き換え処理が完了したときにメモリに書き込まれる情報である。即ち、フラッシュステータス情報が書き込まれていれば、データの書き換え処理が完了した状態であることを示し、書き込まれていなければ、データの書き換え処理が完了していない状態であることを示す。スタンプ情報は、書き込まれたデータに誤りが含まれていないことが確認されたときにメモリに書き込まれる情報である。即ち、スタンプ情報が書き込まれていれば、データに誤りが含まれていない状態であることを示し、書き込まれていなければ、データに誤りが含まれている状態であることを示す。
【０００６】
メモリに書き込まれているデータを全て書き換える場合であれば、全てのデータを消去することに伴いフラッシュステータス情報およびスタンプ情報も消去することができる。そのため、フラッシュステータス情報およびスタンプ情報が消去された状態でデータの書き換え処理を行うことができる。よって、例えば書き換え処理の途中において当該処理が中断した場合には、フラッシュステータス情報およびスタンプ情報が消去された状態となっているため、データの書き換えが不完全な状態であることを認識することができ、当該データが使用されてしまうことを回避することができる。
【０００７】
しかし、メモリに書き込まれているデータのうち差分が生じたデータを書き換える差分書き換え処理においては、メモリに書き込まれている全てのデータが消去されないことから、フラッシュステータス情報およびスタンプ情報が消去されない場合が生じる。そのため、例えば差分書き換え処理の途中において当該処理が中断した場合、差分データの書き換え処理が完了していないにも関わらず、フラッシュステータス情報およびスタンプ情報が書き込まれたままとなる状況が発生し得る。この場合、データの書き換えが完了し且つデータに誤りが含まれていないと認識されるため、データの書き換えが不完全であるにも関わらず、当該データが使用されてしまうおそれがある。
【０００８】
そのため、特に差分書き換え処理を行う場合には、データの書き換え処理が開始される前に、フラッシュステータス情報およびスタンプ情報の双方を確実に消去することが求められる。特に、書き換え対象であるアプリケーションプログラムのデータ量が大きい場合、フラッシュステータス情報やスタンプ情報を格納するメモリ領域が限られている場合などにおいては、アプリケーションプログラムが格納されるメモリ領域を極力圧迫しないようにしつつ、フラッシュステータス情報およびスタンプ情報の双方を確実に消去することが求められる。
【０００９】
そこで、本発明は、データの書き換え処理が開始される前に、データの書き換え処理が完了した状態であることを示す情報、および、書き込まれたデータに誤りが含まれていないことを示す情報を確実に消去できるようにしたデータ書き換え装置およびデータ書き換えプログラムを提供する。
【課題を解決するための手段】
【００１０】
本発明に係るデータ書き換え装置は、書き換え部（１１）、第１書き込み部（１２）、第２書き込み部（１３）、消去部（１４）を備える。書き換え部は、メモリ（１００）に書き込まれているデータのうち差分が生じたデータを書き換える。第１書き込み部は、書き換え部によるデータの書き換え処理が完了すると、所定の第１情報を第１格納部（２１）に書き込む。第２書き込み部は、書き換え部により書き込まれたデータに誤りが含まれていないことを確認すると、所定の第２情報を第２格納部（２２）に書き込む。消去部は、書き換え部によるデータの書き換え処理が開始される前に、第１情報を格納している第１格納部および第２情報を格納している第２格納部を消去する。
【００１１】
本発明に係るデータ書き換えプログラムは、書き換え処理、第１書き込み処理、第２書き込み処理、消去処理をデータ書き換え装置に実行させる。書き換え処理は、メモリ（１００）に書き込まれているデータのうち差分が生じたデータを書き換える。第１書き込み処理は、書き換え処理が完了すると、所定の第１情報を第１格納部（２１）に書き込む。第２書き込み処理は、書き換え処理により書き込まれたデータに誤りが含まれていないことを確認すると、所定の第２情報を第２格納部（２２）に書き込む。消去処理は、書き換え処理が開始される前に、第１情報を格納している第１格納部および第２情報を格納している第２格納部を消去する。
【００１２】
本発明によれば、前回のデータ書き換え処理の完了時に書き込まれた第１情報、つまり、データの書き換え処理が完了した状態であることを示す情報を、今回のデータの書き換え処理が開始される前に確実に消去することができる。また、本発明によれば、前回のデータ書き換え処理の完了時に書き込まれた第２情報、つまり、書き込まれたデータに誤りが含まれていないことを示す情報を、今回のデータの書き換え処理が開始される前に確実に消去することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係るデータ書き換え装置の構成例を概略的に示すブロック図
【図２】データ書き換え処理の一例を示すフローチャート
【図３】第１実施形態に係るメモリの構成例を示す図
【図４】第１実施形態の動作例を示す図
【図５】第２実施形態に係るメモリの構成例を示す図
【図６】第２実施形態の動作例を示す図
【図７】第３実施形態に係るメモリの構成例を示す図
【図８】第３実施形態の動作例を示す図
【図９】第４実施形態に係るメモリの構成例を示す図
【図１０】第４実施形態の動作例を示す図
【発明を実施するための形態】
【００１４】
以下、データ書き換え装置に係る複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に同一の要素には同一の符号を付し、説明を省略する。
【００１５】
（データ書き換え装置の前提構成）
図１に例示するデータ書き換え装置１０は、メモリ１００に書き込まれているデータを書き換える装置である。この場合、データ書き換え装置１０は、メモリ１００に書き込まれているデータのうち差分が生じたデータを書き換える、いわゆる差分書き換え処理が可能である。メモリ１００は、少なくとも、書き換えソフト格納部１０１、データ格納部１０２、退避部１０３の３つの領域を備える。
【００１６】
書き換えソフト格納部１０１には、データ書き換え装置１０にデータ書き換え処理を実行させるためのデータ書き換えソフトウェアが格納されている。データ書き換えソフトウェアは、データ書き換えプログラムの一例である。データ格納部１０２には、例えばユーザが使用するソフトウェアなどを構成するデータが格納されている。データ格納部１０２は、複数のブロック領域で構成されている。データ書き換え装置１０は、データ格納部１０２に格納されているデータをブロック単位で書き換え可能となっている。退避部１０３は、データ書き換え装置１０がデータ格納部１０２に格納されているデータを書き換える場合、特に差分のみを書き換える場合に、書き換え対象となるデータのうち差分が生じていない部分のデータを一時的に退避させるための領域である。
【００１７】
データ書き換え装置１０は、１ブロック分の退避部１０３が退避データにより満たされるまで、データを退避させることが可能である。そして、データ書き換え装置１０は、退避部１０３が退避データにより満たされた後に、データの書き換え処理、より具体的には、後述する新データの生成および書き込みを実行することが可能である。
【００１８】
データ書き換え装置１０は、書き換えソフト格納部１０１から読み出したデータ書き換えソフトウェアを実行することにより、書き換え部１１、第１書き込み部１２、第２書き込み部１３、消去部１４を仮想的に実現する。なお、これらの処理部１１〜１４は、ハードウェアにより実現してもよいし、ソフトウェアとハードウェアの組み合わせにより実現してもよい。
【００１９】
書き換え部１１は、データ格納部１０２に格納されているデータを書き換える書き換え処理を実行する。この場合、書き換え部１１は、データ格納部１０２に格納されているデータのうち差分が生じたデータを書き換える差分書き換え処理を実行することが可能である。
【００２０】
第１書き込み部１２は、書き換え部１１によるデータの書き換え処理が完了すると、フラッシュステータス情報を、後述する第１格納部２１に書き込む。フラッシュステータス情報は、第１情報の一例である。フラッシュステータス情報が第１格納部２１に書き込まれていれば、データの書き換え処理が完了した状態であることを示す。また、フラッシュステータス情報が第１格納部２１に書き込まれていなければ、データの書き換え処理が完了していない状態であることを示す。
【００２１】
第２書き込み部１３は、書き換え部１１によるデータの書き換え処理が完了すると、当該書き換え部１１により書き込まれたデータに誤りが含まれていないか否かを確認する。そして、第２書き込み部１３は、書き換え部１１により書き込まれたデータに誤りが含まれていないことを確認すると、スタンプ情報を、後述する第２格納部２２に書き込む。スタンプ情報は、第２情報の一例である。スタンプ情報が第２格納部２２に書き込まれていれば、書き換え部１１により書き込まれたデータに誤りが含まれていないことを示す。また、スタンプ情報が第２格納部２２に書き込まれていなければ、書き換え部１１により書き込まれたデータに誤りが含まれていることを示す。なお、書き込まれたデータに誤りが含まれていないか否かを確認する手法としては、例えば周知のＣＲＣ方式など、種々のチェック方式を採用することができる。
【００２２】
消去部１４は、書き換え部１１によるデータの書き換え処理が開始される前に、フラッシュステータス情報を格納している第１格納部２１およびスタンプ情報を格納している第２格納部２２をブロック単位で消去する。即ち、消去部１４は、前回のデータ書き換え処理の完了時にメモリ１００に書き込まれたフラッシュステータス情報およびスタンプ情報の双方を、今回のデータ書き換え処理が開始される前に確実に消去するものである。なお、データ書き換え装置１０の仕様によっては、消去部１４は、第１格納部２１に格納されているフラッシュステータス情報および第２格納部２２に格納されているスタンプ情報を指定して、これらの情報をピンポイントで消去することも可能である。
【００２３】
次に、データ書き換え装置１０によるデータ書き換え処理の動作例について説明する。図２に例示するように、データ書き換え装置１０は、差分が生じたデータを書き換える場合には、まず書き換え対象となるデータが格納されているブロック領域を特定する（Ｓ１）。そして、データ書き換え装置１０は、特定したブロック領域に格納されているデータのうち差分が生じていない部分のデータを退避部１０３に退避させる（Ｓ２）。そして、データ書き換え装置１０は、特定したブロック領域に格納されているデータを全て消去する（Ｓ３）。そして、データ書き換え装置１０は、新たに生じた差分データと退避部１０３に退避させたデータとを結合することにより、差分が反映された新データを生成する（Ｓ４）。そして、データ書き換え装置１０は、ステップＳ１において特定したブロック領域に新データを格納する（Ｓ５）。これにより、データ書き換え装置１０は、差分が生じた旧データを、差分を反映した新データにより書き換える。
【００２４】
データ書き換え装置１０は、差分が生じた全てのブロック領域についてステップＡ１〜Ａ５の処理を繰り返し実行する（Ｓ６：ＮＯ）。そして、データ書き換え装置１０は、差分が生じた全てのブロック領域のデータを書き換えると（Ｓ６：ＹＥＳ）、第１格納部２１にフラッシュステータス情報を格納する（Ｓ７）。そして、データ書き換え装置１０は、書き換え後のデータに誤りが含まれていないか否かを確認する（Ｓ８）。データ書き換え装置１０は、書き換え後のデータに誤りが含まれていないことを確認すると（Ｓ８：ＮＯ）、第２格納部２２にスタンプ情報を格納して（Ｓ９）、この処理を終了する。
【００２５】
なお、データ書き換え装置１０は、書き換え後のデータに誤りが含まれている場合（Ｓ８：ＹＥＳ）には、所定の誤り対応処理を実行する（Ｓ１０）。誤り対応処理としては、例えば、データの書き換え処理をやり直す処理、データの書き換え処理を失敗している旨を表示や音声により報知する処理、データの使用を禁止する処理、など種々の処理が考えられる。
【００２６】
以上の前提構成を備えるデータ書き換え装置１０は、今回のデータ書き換え処理を開始する前に、前回のデータ書き換え処理の終了時に書き込まれたフラッシュステータス情報およびスタンプ情報を確実に消去するための複数の実施形態を採用可能である。以下、各実施形態について説明する。
【００２７】
（第１実施形態）
図３に例示するように、本実施形態は、第１格納部２１および第２格納部２２を、データ格納部１０２の外部に別々に設けたものである。第１格納部２１には、フラッシュステータス情報Ｄ１が格納される。また、第２格納部２２には、スタンプ情報Ｄ２が格納される。図４に例示するように、この場合、データ書き換え装置１０は、データの書き換え処理を開始する前に、まず、フラッシュステータス情報Ｄ１を格納している第１格納部２１、および、スタンプ情報Ｄ２を格納している第２格納部２２をブロック単位で消去する。これにより、第１格納部２１および第２格納部２２は、データが格納されていないブランク状態となる。なお、データ書き換え装置１０は、仕様によっては、第１格納部２１に格納されているフラッシュステータス情報Ｄ１、および、第２格納部２２に格納されているスタンプ情報Ｄ２を指定して消去することも可能である。
【００２８】
そして、データ書き換え装置１０は、書き換え対象となるデータを消去する。そして、データ書き換え装置１０は、データを消去したブロック領域に新データを書き込んでいく。そして、データ書き換え装置１０は、データの書き換え処理を完了すると、第１格納部２１にフラッシュステータス情報Ｄ１を書き込む。また、データ書き換え装置１０は、書き込んだ新データに誤りが含まれていないか否かを確認する。そして、データ書き換え装置１０は、書き込んだデータに誤りが含まれていないことを確認すると、第２格納部２２にスタンプ情報Ｄ２を書き込む。
【００２９】
本実施形態によれば、データ書き換え装置１０は、前回のデータ書き換え処理の完了時に書き込まれたフラッシュステータス情報およびスタンプ情報を確実に消去してから、今回のデータ書き換え処理を開始する。従って、今回のデータ書き換え処理の途中において当該処理が中断した場合には、フラッシュステータス情報およびスタンプ情報が消去された状態となっている。そのため、データの書き換えが不完全な状態であることを認識することができ、当該データが使用されてしまうことを回避することができる。
【００３０】
また、本実施形態の構成は、データ格納部１０２の外部に、第１格納部２１用のブロック領域および第２格納部２２用のブロック領域の２つのブロック領域を確保することにより実現することができる。よって、データ書き換え装置１０の前提構成を大幅に変更する必要が無く、既存の構成をほぼそのまま利用することができる。
【００３１】
（第２実施形態）
図５に例示するように、本実施形態は、データ格納部１０２の外部に、第１格納部２１および第２格納部２２を含む総合格納部３１を設けたものである。即ち、総合格納部３１は、第１格納部および第２格納部として機能するものであり、フラッシュステータス情報Ｄ１およびスタンプ情報Ｄ２の双方が格納される領域である。
【００３２】
図６に例示するように、この場合、データ書き換え装置１０は、データの書き換え処理を開始する前に、まず、フラッシュステータス情報Ｄ１およびスタンプ情報Ｄ２を格納している総合格納部３１をブロック単位で消去する。これにより、総合格納部３１は、データが格納されていないブランク状態となる。なお、データ書き換え装置１０は、仕様によっては、総合格納部３１に格納されているフラッシュステータス情報Ｄ１およびスタンプ情報Ｄ２を指定して消去することも可能である。
【００３３】
そして、データ書き換え装置１０は、書き換え対象となるデータを消去する。そして、データ書き換え装置１０は、データを消去したブロック領域に新データを書き込んでいく。そして、データ書き換え装置１０は、データの書き換え処理を完了すると、総合格納部３１にフラッシュステータス情報Ｄ１を書き込む。また、データ書き換え装置１０は、書き込んだ新データに誤りが含まれていないか否かを確認する。そして、データ書き換え装置１０は、書き込んだデータに誤りが含まれていないことを確認すると、総合格納部３１にスタンプ情報Ｄ２を書き込む。
【００３４】
本実施形態によれば、データ書き換え装置１０は、前回のデータ書き換え処理の完了時に書き込まれたフラッシュステータス情報およびスタンプ情報を確実に消去してから、今回のデータ書き換え処理を開始する。従って、今回のデータ書き換え処理の途中において当該処理が中断した場合には、フラッシュステータス情報およびスタンプ情報が消去された状態となっている。そのため、データの書き換えが不完全な状態であることを認識することができ、当該データが使用されてしまうことを回避することができる。
【００３５】
また、本実施形態の構成は、データ格納部１０２の外部に、総合格納部３１用のブロック領域を確保することにより実現することができる。よって、データ書き換え装置１０の前提構成を大幅に変更する必要が無く、既存の構成をほぼそのまま利用することができる。
【００３６】
（第３実施形態）
図７に例示するように、本実施形態は、第１格納部２１および第２格納部２２を、データ格納部１０２の内部に設けたものである。即ち、本実施形態は、データ格納部１０２内のブロック領域を第１格納部２１用の領域および第２格納部２２用の領域として用いるものである。また、本実施形態では、書き換え部１１は、第１格納部２１に格納されているフラッシュステータス情報Ｄ１および第２格納部２２に格納されているスタンプ情報Ｄ２も、差分が発生したデータであるとみなし、データ書き換え処理により書き換えるデータの一部として認識するように設定されている。
【００３７】
図８に例示するように、この場合、データ書き換え装置１０は、データの書き換え処理を開始する前に、まず、フラッシュステータス情報Ｄ１を格納している第１格納部２１、および、スタンプ情報Ｄ２を格納している第２格納部２２を、書き換え対象となるデータの一部としてブロック単位で消去する。これにより、第１格納部２１および第２格納部２２は、データが格納されていないブランク状態となる。なお、データ書き換え装置１０は、仕様によっては、第１格納部２１に格納されているフラッシュステータス情報Ｄ１、および、第２格納部２２に格納されているスタンプ情報Ｄ２を指定して消去することも可能である。
【００３８】
また、データ書き換え装置１０は、書き換え対象となるデータを消去する。そして、データ書き換え装置１０は、第１格納部２１および第２格納部２２以外の領域においてデータを消去したブロック領域に新データを書き込んでいく。そして、データ書き換え装置１０は、データの書き換え処理を完了すると、第１格納部２１にフラッシュステータス情報Ｄ１を書き込む。また、データ書き換え装置１０は、書き込んだ新データに誤りが含まれていないか否かを確認する。そして、データ書き換え装置１０は、書き込んだデータに誤りが含まれていないことを確認すると、第２格納部２２にスタンプ情報Ｄ２を書き込む。
【００３９】
本実施形態によれば、データ書き換え装置１０は、前回のデータ書き換え処理の完了時に書き込まれたフラッシュステータス情報およびスタンプ情報を確実に消去してから、今回のデータ書き換え処理を開始する。従って、今回のデータ書き換え処理の途中において当該処理が中断した場合には、フラッシュステータス情報およびスタンプ情報が消去された状態となっている。そのため、データの書き換えが不完全な状態であることを認識することができ、当該データが使用されてしまうことを回避することができる。
【００４０】
本実施形態の構成は、データ格納部１０２の内部に、第１格納部２１用のブロック領域および第２格納部２２用のブロック領域の２つのブロック領域を確保することにより実現することができる。よって、データ書き換え装置１０の前提構成を変更する必要が全く無く、既存の構成をそのまま利用することができる。また、既存の構成をそのまま利用することができるため、第１格納部２１用のブロック領域および第２格納部２２用のブロック領域を新設する必要が無く、従って、アプリケーションプログラムが格納されるメモリ領域が圧迫されてしまうことを回避することができる。
【００４１】
（第４実施形態）
図９に例示するように、本実施形態は、第１格納部２１および第２格納部２２を退避部１０３に設けたものである。よって、退避部１０３には、フラッシュステータス情報Ｄ１およびスタンプ情報Ｄ２が格納される。図１０に例示するように、この場合、データ書き換え装置１０は、データの書き換え処理を開始する前に、まず、退避部１０３に格納されているデータを全て消去する。これにより、退避部１０３に格納されているフラッシュステータス情報Ｄ１およびスタンプ情報Ｄ２も消去され、退避部１０３は、データが格納されていないブランク状態となる。なお、データ書き換え装置１０は、仕様によっては、退避部１０３に格納されているフラッシュステータス情報Ｄ１およびスタンプ情報Ｄ２を指定して消去することも可能である。
【００４２】
そして、データ書き換え装置１０は、書き換え対象となるデータのうち差分が発生していないデータを退避データＤ３として退避部１０３に退避させる。そして、データ書き換え装置１０は、書き換え対象となるデータを消去する。そして、データ書き換え装置１０は、退避部１０３に退避させた退避データＤ３に差分データを結合して新データを生成する。そして、データ書き換え装置１０は、データを消去したブロック領域に新データを書き込んでいく。そして、データ書き換え装置１０は、データの書き換え処理を完了すると、退避部１０３にフラッシュステータス情報Ｄ１を書き込む。また、データ書き換え装置１０は、書き込んだ新データに誤りが含まれていないか否かを確認する。そして、データ書き換え装置１０は、書き込んだデータに誤りが含まれていないことを確認すると、退避部１０３にスタンプ情報Ｄ２を書き込む。
【００４３】
本実施形態によれば、データ書き換え装置１０は、前回のデータ書き換え処理の完了時に書き込まれたフラッシュステータス情報およびスタンプ情報を確実に消去してから、今回のデータ書き換え処理を開始する。従って、今回のデータ書き換え処理の途中において当該処理が中断した場合には、フラッシュステータス情報およびスタンプ情報が消去された状態となっている。そのため、データの書き換えが不完全な状態であることを認識することができ、当該データが使用されてしまうことを回避することができる。
【００４４】
また、本実施形態の構成は、退避部１０３に、第１格納部２１および第２格納部２２を確保することにより実現することができる。よって、データ書き換え装置１０の前提構成を変更する必要が全く無く、既存の構成をそのまま利用することができる。また、既存の構成をそのまま利用することができるため、第１格納部２１用のブロック領域および第２格納部２２用のブロック領域を新設する必要が無く、従って、アプリケーションプログラムが格納されるメモリ領域が圧迫されてしまうことを回避することができる。
【００４５】
なお、本実施形態では、フラッシュステータス情報と同じデータ列およびスタンプ情報と同じデータ列のうち少なくとも何れか一方のデータ列が、退避部１０３に退避させたデータＤ３中に偶発的に含まれている場合も発生し得る。そのため、データ書き換え装置１０は、退避部１０３に退避させるデータＤ３中に、フラッシュステータス情報Ｄ１と同じデータ列、スタンプ情報Ｄ２と同じデータ列が含まれていないか否かをチェックする機能を備える構成としてもよい。
【００４６】
（その他の実施形態）
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、上述した複数の実施形態を適宜組み合わせて実施してもよい。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【００４７】
図面中、１０はデータ書き換え装置、１１は書き換え部、１２は第１書き込み部、１３は第２書き込み部、１４は消去部、２１は第１格納部、２２は第２格納部、３１は総合格納部、１００はメモリ、１０３は退避部、Ｄ１はフラッシュステータス情報（第１情報）、Ｄ２はスタンプ情報（第２情報）を示す。
【図１】
2018013837.tif 000003
【図２】
2018013837.tif 000004
【図３】
2018013837.tif 000005
【図４】
2018013837.tif 000006
【図５】
2018013837.tif 000007
【図６】
2018013837.tif 000008
【図７】
2018013837.tif 000009
【図８】
2018013837.tif 000010
【図９】
2018013837.tif 000011
【図１０】
2018013837.tif 000012