(57)【要約】【課題】消去または書き込み途中の電源断により、不揮発性メモリの状態が不定状態となった場合でも、そのことによる影響を受けずにデータの内容を保証することが可能な電子情報記憶媒体、情報処理方法、及び情報処理プログラムを提供する。【解決手段】ＣＰＵ１０は、不揮発性メモリ１３に書き込まれたログデータと同じサイズのダミーデータを当該ログデータに続けて不揮発性メモリ１３に書き込み、当該ＣＰＵ１０の再起動時に、ダミーデータと同じサイズの分割領域であって消去状態にある分割領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを書き込む。【選択図】図４
2015191395.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリとプロセッサとを備える電子情報記憶媒体において、
前記プロセッサは、
所定のデータを前記不揮発性メモリに書き込む第１書き込み手段と、
前記書き込まれた前記所定のデータと同じ所定サイズのダミーデータを当該所定のデータに続けて前記不揮発性メモリに書き込む第２書き込み手段と、
当該プロセッサの再起動時に、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記不揮発性メモリに書き込む第３書き込み手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
前記不揮発性メモリは、実データを格納するデータ格納領域と、前記実データのバックアップデータを格納するバックアップ領域と、前記バックアップデータのログデータであって少なくとも前記バックアップデータの格納先を示すログデータを前記所定のデータとして格納するログデータ格納領域と、を有し、
前記第１書き込み手段は、前記データ格納領域の前記実データを書き換える場合、当該実データのバックアップデータを前記バックアップ領域に書き込み、且つ、前記バックアップデータの前記ログデータをログデータ格納領域に書き込んだ後に、当該実データを書き換え、
前記第２書き込み手段は、前記ログデータ格納領域に書き込まれた前記ログデータと同じ所定サイズのダミーデータを当該ログデータに続けて前記ログデータ格納領域に書き込み、
前記第３書き込み手段は、当該プロセッサの再起動時に、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記ログデータ格納領域に書き込むことを特徴とする請求項１に記載の電子情報記憶媒体。
【請求項３】
前記第３書き込み手段は、当該プロセッサの再起動時に、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を２つ分以上空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記ログデータ格納領域に書き込むことを特徴とする請求項２に記載の電子情報記憶媒体。
【請求項４】
前記第３書き込み手段は、前記プロセッサの再起動時に前記ログデータ格納領域に最新のデータとして異常な所定サイズのデータが格納され、且つ当該最新のデータの１つ前のデータとして異常な前記所定サイズのデータが格納されている場合において、当該最新のデータの１つ前の所定サイズのデータのさらに１つ前の領域が前記消去状態である場合、当該最初のデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該最初のデータと同じ所定サイズのダミーデータを書き込むことを特徴とする請求項２に記載の電子情報記憶媒体。
【請求項５】
前記プロセッサの再起動時に前記ログデータ格納領域に最新のデータとして正常な前記ログデータが格納されている場合、当該ログデータに基づいて前記バックアップデータを前記データ格納領域に書き戻す書き戻し手段を更に備えることを特徴とする請求項２に記載の電子情報記憶媒体。
【請求項６】
前記プロセッサの再起動時に前記ログデータ格納領域に最新のデータとして正常でない所定サイズのデータが格納されている場合において、当該最新のデータの１つ前のデータとして正常な前記ログデータが格納されている場合、当該ログデータに基づいて前記バックアップデータを前記データ格納領域に書き戻す書き戻し手段を更に備えることを特徴とする請求項２に記載の電子情報記憶媒体。
【請求項７】
不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサにより実行される情報処理方法であって、
所定のデータを前記不揮発性メモリに書き込む第１書き込みステップと、
前記書き込まれた前記所定のデータと同じ所定サイズのダミーデータを当該所定のデータに続けて前記不揮発性メモリに書き込む第２書き込みステップと、
当該プロセッサの再起動時に、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記不揮発性メモリに書き込む第３書き込みステップと、
を含むことを特徴とする情報処理方法。
【請求項８】
不揮発性メモリとプロセッサとを備える電子情報記憶媒体における前記プロセッサを、
所定のデータを前記不揮発性メモリに書き込む第１書き込み手段と、
前記書き込まれた前記所定のデータと同じ所定サイズのダミーデータを当該所定のデータに続けて前記不揮発性メモリに書き込む第２書き込み手段と、
当該プロセッサの再起動時に、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記不揮発性メモリに書き込む第３書き込み手段として機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
不揮発性メモリを備えるＩＣチップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
ＩＣチップの不揮発性メモリの状態は、大別して、「消去済み」と、「書き込み済みと、「不定」との３つの状態に分けることができる。消去済みとは、全てのbitが０、もしくは１の安定している状態（以下、「消去状態」という）である（０か１かは、ＩＣチップにより異なる)。この消去状態になるのは、正常に消去動作が完了した場合、消去または書き込み途中に電源断が発生し、かつ、不定とならなかった場合などが挙げられる。書き込み済みとは、いくつかのbitが消去状態から変化しており、かつ、安定している状態（以下、「書き込み状態」という）である。この書き込み状態になるのは、正常に書き込み動作が完了した場合、消去または書き込み途中に電源断が発生し、かつ、不定とならなかった場合などが挙げられる。不定とは、不揮発性メモリの状態が安定していない状態（以下、「不定状態」という）であり、例えば、時間経過により不揮発性メモリに格納されているデータが変化した状態や、該当領域に書き込みを行った際、書き込み結果が意図した値とならない状態、浅く書き込まれた結果、「０」か「１」どちらの値にも変化しうる状態である。この不定状態となるのは、消去または書き込み途中に電源断が発生し、かつ安定しなかった場合や、ＩＣチップが故障した場合などが挙げられる。
【０００３】
これらの状態を取りうる不揮発性メモリにおいて、意図しない状態とならないようにするため、トランザクション（Transaction）という仕組みが利用されている。トランザクションとは、一連の消去または書き込み処理において、開始前もしくは終了後のどちらかの状態のみを取り得るようにする仕組みのことを言う。特許文献１には、電源供給が中断した場合に、データの書き込み前の状態に戻すことが記載されている。トランザクションでは、消去または書き込み処理の対象領域データを事前にバックアップしておき、消去または書き込み処理が失敗した場合には、バックアップしておいたデータを書き戻す一方、消去または書き込み処理が成功した場合には、バックアップしておいたデータを無効化するようになっている。このように、消去または書き込み処理の動作を保証するためのトランザクション内においても、消去または書き込み処理が実施されており、トランザクションとは異なる仕組みでその動作を保証する必要がある。トランザクション内での消去または書き込み処理の保証に関して、従来技術では、バックアップ処理において、バックアップ用のデータは、必要に応じて書き足すことで書き換えを実施しない対策、或いは、チェックサムやＣＲＣ（Cyclic Redundancy Check）等の妥当性確認データを保存しておき、必要に応じて確認するなどの対策が講じられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許４１９５８２２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術での対策により、多くのケースにおいてはバックアップされたデータの内容を保証することが可能となる。しかしながら、不揮発性メモリの状態が不定状態となっている場合については、その領域を検知、回避することができず、そのまま不定状態の領域を使用してしまうことでデータが破損してしまう可能性があった。
【０００６】
そこで、本発明は、消去または書き込み途中の電源断により、不揮発性メモリの状態が不定状態となった場合でも、そのことによる影響を受けずにデータの内容を保証することが可能な電子情報記憶媒体、情報処理方法、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、不揮発性メモリとプロセッサとを備える電子情報記憶媒体において、前記プロセッサは、所定のデータを前記不揮発性メモリに書き込む第１書き込み手段と、前記書き込まれた前記所定のデータと同じ所定サイズのダミーデータを当該所定のデータに続けて前記不揮発性メモリに書き込む第２書き込み手段と、当該プロセッサの再起動時に、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記不揮発性メモリに書き込む第３書き込み手段と、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体において、前記不揮発性メモリは、実データを格納するデータ格納領域と、前記実データのバックアップデータを格納するバックアップ領域と、前記バックアップデータのログデータであって少なくとも前記バックアップデータの格納先を示すログデータを前記所定のデータとして格納するログデータ格納領域と、を有し、前記第１書き込み手段は、前記データ格納領域の前記実データを書き換える場合、当該実データのバックアップデータを前記バックアップ領域に書き込み、且つ、前記バックアップデータの前記ログデータをログデータ格納領域に書き込んだ後に、当該実データを書き換え、前記第２書き込み手段は、前記ログデータ格納領域に書き込まれた前記ログデータと同じ所定サイズのダミーデータを当該ログデータに続けて前記ログデータ格納領域に書き込み、前記第３書き込み手段は、当該プロセッサの再起動時に、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記ログデータ格納領域に書き込むことを特徴とする。
【０００９】
請求項３に記載の発明は、請求項２に記載の電子情報記憶媒体において、前記第３書き込み手段は、当該プロセッサの再起動時に、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を２つ分以上空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記ログデータ格納領域に書き込むことを特徴とする。
【００１０】
請求項４に記載の発明は、請求項２に記載の電子情報記憶媒体において、前記第３書き込み手段は、前記プロセッサの再起動時に前記ログデータ格納領域に最新のデータとして異常な所定サイズのデータが格納され、且つ当該最新のデータの１つ前のデータとして異常な前記所定サイズのデータが格納されている場合において、当該最新のデータの１つ前の所定サイズのデータのさらに１つ前の領域が前記消去状態である場合、当該最初のデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該最初のデータと同じ所定サイズのダミーデータを書き込むことを特徴とする。
【００１１】
請求項５に記載の発明は、請求項２に記載の電子情報記憶媒体において、前記プロセッサの再起動時に前記ログデータ格納領域に最新のデータとして正常な前記ログデータが格納されている場合、当該ログデータに基づいて前記バックアップデータを前記データ格納領域に書き戻す書き戻し手段を更に備えることを特徴とする。
【００１２】
請求項６に記載の発明は、請求項２に記載の電子情報記憶媒体において、前記プロセッサの再起動時に前記ログデータ格納領域に最新のデータとして正常でない所定サイズのデータが格納されている場合において、当該最新のデータの１つ前のデータとして正常な前記ログデータが格納されている場合、当該ログデータに基づいて前記バックアップデータを前記データ格納領域に書き戻す書き戻し手段を更に備えることを特徴とする。
【００１３】
請求項７に記載の発明は、不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサにより実行される情報処理方法であって、所定のデータを前記不揮発性メモリに書き込む第１書き込みステップと、前記書き込まれた前記所定のデータと同じ所定サイズのダミーデータを当該所定のデータに続けて前記不揮発性メモリに書き込む第２書き込みステップと、当該プロセッサの再起動時に前記不揮発性メモリに、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記不揮発性メモリに書き込む第３書き込みステップと、を含むことを特徴とする。
【００１４】
請求項８に記載の発明は、不揮発性メモリとプロセッサとを備える電子情報記憶媒体における前記プロセッサを、所定のデータを前記不揮発性メモリに書き込む第１書き込み手段と、前記書き込まれた前記所定のデータと同じ所定サイズのダミーデータを当該所定のデータに続けて前記不揮発性メモリに書き込む第２書き込み手段と、当該プロセッサの再起動時に、前記ダミーデータと同じ所定サイズの領域であって消去状態にある領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを前記不揮発性メモリに書き込む第３書き込み手段として機能させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、消去または書き込み途中の電源断により、不揮発性メモリの状態が不定状態となった場合でも、そのことによる影響を受けずにデータの内容を保証することができる。
【図面の簡単な説明】
【００１６】
【図１】ＩＣカード１の概要構成例を示す図である。
【図２】（Ａ）は、ログデータ格納領域の概念図を示す図であり、（Ｂ）は、ログデータの構造例を示す図である。
【図３】ログデータ格納領域Ｒにおける分割領域Ｒ１〜Ｒ９に、ログデータ、またはダミーデータが書き込まれる様子を示す概念図である。
【図４】電源投入時のＣＰＵ１０の処理の一例を示すフローチャートである。
【図５】コマンド受信時のＣＰＵ１０の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣカードに対して本発明を適用した場合の実施の形態である。
【００１８】
先ず、図１を参照して、本実施形態に係るＩＣカード１の構成及び機能概要について説明する。図１は、ＩＣカード１の概要構成例を示す図である。なお、ＩＣカード１は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ＩＣチップ１ａは通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
【００１９】
ＩＣカード１には、図１に示すように、ＩＣチップ１ａが搭載されている。ＩＣチップ１ａは、本発明の電子情報記憶媒体の一例である。ＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。なお、Ｉ／Ｏ回路１４は、外部端末２とのインターフェイスを担う。ＩＣカード１が接触ＩＣカードの場合、Ｉ／Ｏ回路１４には、例えばＩＳＯ／ＩＥＣ７８１６によって定められたＣ１〜Ｃ８の８個の端子が設けられている。例えば、Ｃ１端子は電源端子、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部端末２とのデータ通信を行う端子である。なお、この例では、接触式のＩＣカードの例を示したが、外部端末２に近づくことにより、磁界をエネルギーとして無結線状態で電源供給され（電圧印加され）、動作する非接触式のＩＣカード（アンテナ及び変復調回路を含む）であってもよい。外部端末２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣカード１が通信機器に組み込まれる場合、外部端末２には通信機器の機能を担うコントローラが該当する。
【００２０】
ＣＰＵ１０は、ＲＯＭ１２または不揮発性メモリ１３に記憶された各種プログラム（本発明の情報処理プログラムを含む）を実行するプロセッサ（コンピュータ）である。ＣＰＵ１０は、例えば外部端末２からＩ／Ｏ回路１４を介して受信されたコマンドに応じて、プログラムに従って後述する処理を実行する。ここで、コマンドは、例えば、ＡＰＤＵ(Application Protocol Data Unit)として外部端末２から送信される。ＡＰＤＵとして送られるコマンドは、ＣＬＡ部、ＩＮＳ部、Ｐ１部、Ｐ２部、Ｌｃ部、Ｄａｔａ部、Ｌｅ部から構成される。ＣＬＡ部及びＩＮＳ部は、コマンドの種類を示す情報を格納する。Ｐ１部及びＰ２部は、コマンド処理におけるパラメータを格納する。Ｌｃ部は、Ｄａｔａ部のデータ長を格納する。Ｄａｔａ部は、例えば更新用のデータを格納する。Ｌｅ部は、コマンドをチェックするための情報を格納する。
【００２１】
不揮発性メモリ１３には、例えばフラッシュメモリが適用される。なお、不揮発性メモリ１３は、「Electrically Erasable Programmable Read-Only Memory」であっても構わない。不揮発性メモリ１３には、データ格納領域、バックアップ領域、及びログデータ格納領域等を有する。データ格納領域には、例えばアプリケーションプログラム等で使用される実データが格納される。実データは、データ格納領域への書き込み用のデータ、または書き換え用のデータである。ここで、書き込みとは、消去状態にある領域に対して、データを保存する動作である。書き換えとは、書き込み状態にある領域のデータを、別のデータへと書き換える動作であり、消去と書き込みを組み合わせた動作（消去したあとに、書き込みを実施）である。バックアップ領域及びログデータ格納領域は、書き込み保証用のバッファ領域である。バックアップ領域には、データ格納領域の実データのバックアップデータ（つまり、実データの複製）が格納される。ログデータ格納領域には、バックアップデータのログデータ（所定のデータの一例）が格納される。ログデータは、バックアップデータをデータ格納領域に書き戻す（ロールバック）するために必要な管理情報である。
【００２２】
図２（Ａ）は、ログデータ格納領域の概念図を示す図であり、図２（Ｂ）は、ログデータの構造例を示す図である。図２（Ａ）に示すように、ログデータ格納領域Ｒは、同じサイズ（データ長）の８分割された分割領域となっており、例えばリングバッファとして形成される。なお、図２（Ａ）の例では、ログデータ格納領域Ｒとして、同じサイズ（図２（Ａ）の例では、８バイトであるが、８バイト以外でもよい）の９つの分割領域Ｒ１〜Ｒ９を示しているがこれに限定されるものではない。また、分割領域Ｒ１〜Ｒ９は、初期段階では消去状態になっている。そして、分割領域Ｒ１〜Ｒ９には、図２（Ｂ）に示すように、例えば８バイトから構成されるログデータが書き込み可能になっている。図２（Ｂ）に示すログデータは、バックアップ元アドレスと（実データの格納元のアドレス）、バックアップ先アドレス（バックアップデータの格納先のアドレス）、バックアップデータのサイズ、各種フラグ、及びＣＲＣとにより構成される。また、図示しないが、分割領域Ｒ１〜Ｒ９には、ログデータと同じサイズ（例えば、８バイト）のダミーデータが書き込み可能になっている。ダミーデータは、ログデータの区切り（電源投入、または１トランザクション）を表すデータであり、例えば、全てのバイトが１６進数で“Ａ（ｈ）”で構成される。また、ダミーデータは、破損してもよいデータ（言い換えれば、破損することを前提とするデータ）であり、不定状態になる可能性がある分割領域に書き込まれる。これにより、不定状態でない分割領域をログデータの書き込み用として確保することができる。なお、ダミーデータは、実データと混同しない（実データと区別しやすい）データであればどのようなデータであってもよい（全てのバイトが“Ａ（ｈ）”でなくてもよい）。
【００２３】
そして、ＣＰＵ１０は、本発明における第１書き込み手段、第２書き込み手段、第３書き込み手段、及び書き戻し手段として機能する。具体的には、ＣＰＵ１０は、例えば外部端末２からＩ／Ｏ回路１４を介して受信されたコマンド（例えば、更新コマンド）により指定された更新用のデータで、データ格納領域の実データ（データ格納領域に格納されている実データ）を書き換える場合、トランザクション処理により、当該実データのバックアップデータをバックアップ領域に書き込み、且つ、当該バックアップデータのログデータをログデータ格納領域（上述した分割領域）に書き込んだ後に、当該実データを書き換える。そして、上記トランザクション処理の完了時に、ＣＰＵ１０は、ログデータ格納領域に書き込まれたログデータと同じ所定サイズのダミーデータを当該ログデータに続けてログデータ格納領域（上述した分割領域）に書き込む。
【００２４】
また、ＣＰＵ１０は、例えば電源投入によるＣＰＵ１０の再起動時に、ダミーデータと同じ所定サイズの分割領域であって消去状態にある分割領域を少なくとも１つ分空けた（何らかのデータが書き込まれている領域から１つ分空けた）後に続けて当該ダミーデータと同じ所定サイズ（例えば、８バイト）の次のダミーデータをログデータ格納領域に書き込む。これにより、不定状態でない分割領域をログデータの書き込み用として確保することができる。或いは、ＣＰＵ１０は、例えば電源投入によるＣＰＵ１０の再起動時に、ダミーデータと同じ所定サイズの分割領域であって消去状態にある分割領域を２つ分以上空けた（何らかのデータが書き込まれている領域から２つ分以上空けた）後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータをログデータ格納領域に書き込むように構成するとなおよい。これにより、不定状態でない分割領域をログデータの書き込み用として確保することに加えて、後述するように、電源投入前後を区分するための確実な情報を確保することができる。
【００２５】
図３は、ログデータ格納領域Ｒにおける分割領域Ｒ１〜Ｒ９に、ログデータ、またはダミーデータが書き込まれる様子を示す概念図である。先ず、図３（Ａ）に示すように、最新のデータとしてダミーデータが分割領域Ｒ２に書き込まれている。図３（Ａ）の例において、分割領域Ｒ２のダミーデータは、トランザクション処理が完了したことを示す。仮に、分割領域Ｒ２へのダミーデータの書き込み中に電源断になった場合、分割領域Ｒ２は不定状態になる可能性があり、また、ダミーデータも破損している可能性がある。分割領域にデータの書き足しをしていく場合、電源断により正常データ（正常なログデータ、または正常なダミーデータ）以外となるのは、必ず最後の分割領域である。そのため、正常データの間に、それ以外のデータが含まれていた場合は、ＩＣチップ１ａが異常（例えば、故障）であると判断することができる。
【００２６】
次に、図３（Ａ）に示す状態において電源断し、その後、電源投入によりＣＰＵ１０が再起動すると、図３（Ｂ）に示すように、分割領域Ｒ２に最新のデータとしてダミーデータが格納されているので、消去状態にある２つの分割領域Ｒ３，Ｒ４を空けた次の分割領域Ｒ５に次のダミーデータが書き込まれている。ここで、１つ目の分割領域Ｒ３は、図３（Ａ）に示す状態での書き込みの途中で電源断（例えばＩＣカード１が引き抜かれることで電源断）により、不定状態となっている場合がある。しかし、２つ目の分割領域Ｒ４は、この領域Ｒ４に書き込みをしようとする機会がないため、必ず安定した消去状態になっている。そのため、このような分割領域Ｒ４を、常に、電源投入前後を区分するための確実な情報とすることができる。なぜなら、電源投入時に分割領域Ｒ５へのダミーデータの書き込みの途中で電源断により分割領域Ｒ５が不定状態となる場合がある。そのため、書き込み前に消去状態に見えていたとしても、書き込み直後、または書き込み後の時間経過により正常なダミーデータではなくなる可能性がある。しかしその場合であっても、２つ目の分割領域Ｒ４は安定した状態であるため、破損したデータが電源投入時に書き込んだダミーデータであると判断することが可能である。そして、このように不定状態にある分割領域Ｒ３と分割領域Ｒ５との間に、安定した消去状態である分割領域４を挟むことができるので、ＩＣチップ１ａが異常（例えば故障）とするか否かの判定を容易に行うことが可能となる。なお、ダミーデータ自身は、トランザクションに関する可変情報を持たないため、破損したことにより正常なデータが読み取れなかったとしても、データの欠損は発生しない。
【００２７】
次に、図３（Ｂ）に示す状態において、データ格納領域の実データが書き換えられる場合、トランザクション処理により、実データのバックアップデータがバックアップ領域に書き込まれると、図３（Ｃ）に示すように、当該バックアップデータのログデータが分割領域Ｒ６に書き込まれ、その後、次の実データのバックアップデータがバックアップ領域に書き込まれると、図３（Ｄ）に示すように、当該バックアップデータのログデータが分割領域Ｒ７に書き込まれ、トランザクション処理が終了すると、図３（Ｅ）に示すように、ダミーデータが分割領域Ｒ８に書き込まれることになる。
【００２８】
次に、図４及び図５等を参照して、ＩＣカード１ａにおけるＣＰＵ１０の処理の一例について説明する。図４は、電源投入時のＣＰＵ１０の処理の一例を示すフローチャートである。図５は、コマンド受信時のＣＰＵ１０の処理の一例を示すフローチャートである。
【００２９】
図４に示す処理は、ＩＣチップ１ａに電源が投入され、ＣＰＵ１０が起動することにより開始される。図４に示す処理が開始されると、ＣＰＵ１０は、不揮発性メモリ１３におけるログデータ格納領域から最新のデータを検索する（ステップＳ１）。一方、ＣＰＵ１０は、最新のデータを検索できたか否かを判定する（ステップＳ２）。ＣＰＵ１０は、最新のデータを検索できた場合（ステップＳ２：ＹＥＳ）、ステップＳ３へ進む。一方、ＣＰＵ１０は、最新のデータを検索できなかった場合（ステップＳ２：ＮＯ）、ステップＳ９へ進む。
【００３０】
ステップＳ３では、ＣＰＵ１０は、検索されたデータを確認対象データとし、当該確認対象データがダミーデータであるか否かを判定する。確認対象データがダミーデータであると判定された場合（ステップＳ３：ＹＥＳ）、ステップＳ９へ進む。この場合、書き込みの途中で電源断されることなく正常に電源オフされたものと見做すことができる。一方、確認対象データがダミーデータでないと判定された場合（ステップＳ３：ＮＯ）、ステップＳ４へ進む。この場合、確認対象データは、正常なログデータ、破損したログデータ、または破損したダミーデータである。
【００３１】
ステップＳ４では、ＣＰＵ１０は、確認対象データのＣＲＣが正常であるか否かを判定する。確認対象データが破損したダミーデータである場合、ログデータとダミーデータとは同一構造であるため、ログデータにおいてＣＲＣがあるバイト位置と同じダミーデータの位置を参照すれば、正常でないことが判定できる。確認対象データのＣＲＣが正常であると判定された場合（ステップＳ４：ＹＥＳ）、つまり、正常なログデータである場合、ステップＳ５へ進む。一方、確認対象データのＣＲＣが正常でないと判定された場合（ステップＳ４：ＮＯ）、つまり、破損したログデータ、または破損したダミーデータである場合、ステップＳ７へ進む。
【００３２】
ステップＳ５では、ＣＰＵ１０は、正常であると判定されたログデータに基づいて、バックアップ領域のバックアップデータをデータ格納領域に書き戻す。次いで、ＣＰＵ１０は、確認対象データの１つ前のデータに変更して（遡り）（ステップＳ６）、１つ前のデータを確認対象データとし、ステップＳ３に戻り、上記と同様の処理を行う。
【００３３】
ステップＳ７では、ＣＰＵ１０は、確認対象データが最新のデータであるか否かを判定する。確認対象データが最新のデータでないと判定された場合（ステップＳ７：ＮＯ）、ステップＳ８へ進む。一方、確認対象データが最新のデータであると判定された場合（ステップＳ７：ＹＥＳ）、ステップＳ６へ移行する。つまり、最新のデータは、電源断を考慮し破損しても構わないという趣旨である。この場合、ステップＳ６で、破損されたデータの１つ前のデータに変更され、ステップＳ４で正常なログデータであると判定された場合（つまり、最新のデータとして正常でないデータが格納されている場合において、当該最新のデータの１つ前のデータとして正常なログデータが格納されている場合）、当該ログデータに基づいて、バックアップ領域のバックアップデータがデータ格納領域に書き戻されることになる。
【００３４】
ステップＳ８では、ＣＰＵ１０は、確認対象データが格納されている分割領域の１つ前の分割領域は消去状態（確認対象データの１つ前は消去状態）であるか否かを判定する。確認対象データの１つ前は消去状態であると判定された場合（ステップＳ８：ＹＥＳ）、ステップＳ９に進む。つまり、ＣＰＵ１０は、最新のデータとして異常なデータが格納され、且つ当該最新のデータの１つ前のデータとして異常なデータが格納されている場合において、当該最新のデータを格納する分割領域の２つ前の分割領域が消去状態である場合、ステップＳ９へ進む。ここで、最新のデータを格納する分割領域の２つ前の分割領域とは、最新のデータ（例えば、図３（Ｃ）に示す分割領域Ｒ６のデータ）の１つ前のデータ（例えば、図３（Ｃ）に示す分割領域Ｒ５のデータ）のさらに１つ前の分割領域（例えば、図３（Ｃ）に示す分割領域Ｒ４）である。一方、確認対象データの１つ前は消去状態でないと判定された場合（ステップＳ８：ＮＯ）、異常終了する。この場合、ＩＣチップ１ａが攻撃等の外的要因により故障しているとして、ＩＣチップ１ａを機能停止させることができる。つまり、破損したデータが２つ連続して続いた後、更に１つ前のデータが消去状態でなければ異常終了となる。
【００３５】
ステップＳ９では、ＣＰＵ１０は、上記検索されたデータまたは先頭から、消去状態にある分割領域を２つ分空ける。なお、ＣＰＵ１０は、上記検索されたデータから、消去状態にある分割領域を１つ分空けてもよい。次いで、ＣＰＵ１０は、２つ分空けた分割領域の後に続けてダミーデータを書き込み（ステップＳ１０）、バックアップ領域に格納された対象のバックアップデータを消去し（ステップＳ１１）し、処理を終了する。
【００３６】
一方、図５に示す処理は、例えば、トランザクション処理の開始により開始される。図５に示す処理が開始されると、ＣＰＵ１０は、書き換え対象である実データのバックアップデータをバックアップ領域に書き込む（ステップＳ２１）。次いで、ＣＰＵ１０は、当該バックアップデータのログデータをログデータ格納領域の分割領域に書き込む（ステップＳ２２）。次いで、ＣＰＵ１０は、書き換え対象である実データをページ単位で消去し、更新用のデータを実データとしてデータ格納領域（書き換え対象の実データと同一アドレスの領域）に書き込む（ステップＳ２３）。次いで、ＣＰＵ１０は、ダミーデータを、ステップＳ２２で書き込んだログデータに続けてログデータ格納領域の分割領域に書き込む（ステップＳ２４）。次いで、ＣＰＵ１０は、ステップＳ２１で書き込んだバックアップデータをバックアップ領域から消去する（ステップＳ２５）。
【００３７】
以上説明したように、上記実施形態によれば、ＣＰＵ１０は、不揮発性メモリ１３に書き込まれたログデータと同じサイズのダミーデータを当該ログデータに続けて不揮発性メモリ１３に書き込み、当該ＣＰＵ１０の再起動時に、当該ダミーデータと同じサイズの分割領域であって消去状態にある分割領域を少なくとも１つ分空けた後に続けて当該ダミーデータと同じ所定サイズの次のダミーデータを不揮発性メモリ１３に書き込むように構成したので、消去または書き込み途中の電源断により、不揮発性メモリ１３の状態が不定状態となった場合でも、そのことによる影響を受けずにデータの内容を保証（巡回型のデータ内容を単領域で保証）することができる。また、消去状態にある分割領域を２つ分以上空けた後に続けて当該ダミーデータと同じサイズの次のダミーデータを書き込む構成によれば、電源投入前後を区分するための確実な情報を確保することができ、ＩＣチップ１ａが異常（例えば故障）とするか否かの判定を容易に行うことができる。
【００３８】
なお、上述したトランザクション内でのデータ保証に限らず、動作ログ等、一定量のデータを記録しておく際に本発明を適用することにより、トランザクションの仕組みを利用するよりも高速に、かつデータを失わずに書き込むことができる。
【符号の説明】
【００３９】
１  ＩＣカード
１ａ  ＩＣチップ
２  外部端末
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
【図１】
2015191395.tif 000003
【図２】
2015191395.tif 000004
【図４】
2015191395.tif 000005
【図５】
2015191395.tif 000006
【図３】
2015191395.tif 000007