(57)【要約】      （修正有）【課題】アドレス管理領域の更新中に電源遮断が発生した場合でも、データの完全性を保障することが可能な電子情報記憶媒体、データ書き込み方法、及びデータ書き込みプログラムを提供する。【解決手段】ＩＣチップは、更新対象のデータを保持する論理ブロックへのリンク情報を含むアドレス管理テーブルをバッファ領域ＢＡに複製し、更新後のデータを未使用ブロックに書き込み、バッファ領域ＢＡ上でアドレス管理テーブルにおけるリンク情報のうち更新対象のデータを保持する論理ブロックへのリンク情報を更新後のデータが書き込まれた未使用ブロックへのリンク情報に変更し、当該変更されたリンク情報を含む更新後のアドレス管理テーブルを、アドレス管理領域ＭＡにおける空き領域に書き込む。【選択図】図７
2017138763.tif 000002
【特許請求の範囲】
【請求項１】
読み出し対象となる有効なデータを保持する論理ブロックと論理ブロック以外の未使用ブロックとを有するデータ領域と、前記論理ブロックへのリンク情報を保持する領域と当該領域以外の空き領域とを有する管理領域とを含む不揮発性メモリと、
更新対象のデータを保持する論理ブロックへのリンク情報をバッファ領域に複製する複製手段と、
前記更新対象のデータに対応する更新後のデータを前記未使用ブロックに書き込む第１書き込み手段と、
前記複製手段により前記バッファ領域に複製されたリンク情報のうち前記更新対象のデータを保持する論理ブロックへのリンク情報を、前記第１書き込み手段により前記更新後のデータが書き込まれた未使用ブロックへのリンク情報に変更する変更手段と、
前記変更手段により変更されたリンク情報を、前記更新対象のデータを保持する論理ブロックへのリンク情報を保持する領域以外の空き領域に書き込む第２書き込み手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
前記変更されたリンク情報が前記空き領域に書き込まれた場合、変更前の前記リンク情報を保持する領域から当該リンク情報を消去し、当該リンク情報が消去された領域を新たな空き領域に設定する設定手段を更に備えることを特徴とする請求項１に記載の電子情報記憶媒体。
【請求項３】
前記管理領域は、前記リンク情報のデータ長分の前記空き領域を複数有し、
前記第２書き込み手段は、複数の前記空き領域への情報の書き込み回数が分散するように前記変更されたリンク情報を書き込むことを特徴とする請求項１または２に記載の電子情報記憶媒体。
【請求項４】
前記データ領域は、前記未使用ブロックを複数有し、
前記第１書き込み手段は、複数の前記未使用ブロックへのデータの書き込み回数が分散するように前記更新後のデータを書き込むことを特徴とする請求項１乃至３の何れか一項に記載の電子情報記憶媒体。
【請求項５】
読み出し対象となる有効なデータを保持する論理ブロックと論理ブロック以外の未使用ブロックとを有するデータ領域と、前記論理ブロックへのリンク情報を保持する領域と当該領域以外の空き領域とを有する管理領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサにより実行されるデータ書き込み方法であって、
更新対象のデータを保持する論理ブロックへのリンク情報をバッファ領域に複製する複製ステップと、
前記更新対象のデータに対応する更新後のデータを前記未使用ブロックに書き込む第１書き込みステップと、
前記複製ステップにより前記バッファ領域に複製されたリンク情報のうち前記更新対象のデータを保持する論理ブロックへのリンク情報を、前記第１書き込みステップにより前記更新後のデータが書き込まれた未使用ブロックへのリンク情報に変更する変更ステップと、
前記変更ステップにより変更されたリンク情報を、前記更新対象のデータを保持する論理ブロックへのリンク情報を保持する領域以外の空き領域に書き込む第２書き込みステップと、
を含むことを特徴とするデータ書き込み方法。
【請求項６】
読み出し対象となる有効なデータを保持する論理ブロックと論理ブロック以外の未使用ブロックとを有するデータ領域と、前記論理ブロックへのリンク情報を保持する領域と当該領域以外の空き領域とを有する管理領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサを、
更新対象のデータを保持する論理ブロックへのリンク情報をバッファ領域に複製する複製手段と、
前記更新対象のデータに対応する更新後のデータを前記未使用ブロックに書き込む第１書き込み手段と、
前記複製手段により前記バッファ領域に複製されたリンク情報のうち前記更新対象のデータを保持する論理ブロックへのリンク情報を、前記第１書き込み手段により前記更新後のデータが書き込まれた未使用ブロックへのリンク情報に変更する変更手段と、
前記変更手段により変更されたリンク情報を、前記更新対象のデータを保持する論理ブロックへのリンク情報を保持する領域以外の空き領域に書き込む第２書き込み手段として機能させることを特徴とするデータ書き込みプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣカードの不揮発性メモリにおいてデータを更新する技術分野に関する。
【背景技術】
【０００２】
現在普及しているＩＣカードは、外部端末から供給される電源を利用して動作する。そのため、データ書き込み中に外部端末からＩＣカードを引き抜くなどの電源供給を遮断する行為がわれた場合、動作に必要な電源が供給されなくなり、ＩＣカードの不揮発性メモリに記憶されているデータが破壊されてしまう。そのため、書き込み処理は、書き込みを正常に完了させるか、または書き込み前の状態に戻すかによってデータの完全性を保証しなければならない。このように書き込み処理におけるデータの完全性を保証する方法として、不揮発性メモリの物理的なアドレス空間に対して論理的なアドレス空間を導入する方法が提案されている。
【０００３】
例えば、特許文献１には、不揮発性メモリへの書き込み処理時において、コマンドと対応して送られる書き込みデータをバッファ領域に格納し、アドレス管理領域におけるバッファ領域に対応するアドレス情報とコマンドで指定された記憶データ領域に対応するアドレス情報とを書き換えてアドレス管理領域を更新する技術が開示されている。特許文献１の技術では、書き込みデータ自体を一旦バッファ領域に格納してから記憶データ領域に書き移すような手順が不要であり、書き込みデータを一度バッファ領域に格納した後にアドレス情報を更新するのみで書き込み処理を完了させることができ、また、電源途絶時にも電源復帰後に処理中断前の状態から書き込み処理を復帰して完了させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３９２０１６６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術等の従来技術で提案されている方法では、アドレス管理領域を更新中に電源遮断が発生した場合、アドレス管理領域が破壊され、その結果、データの完全性が失われる可能性がある。
【０００６】
そこで、本発明は、アドレス管理領域の更新中に電源遮断が発生した場合でも、データの完全性を保障することが可能な電子情報記憶媒体、データ書き込み方法、及びデータ書き込みプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、読み出し対象となる有効なデータを保持する論理ブロックと論理ブロック以外の未使用ブロックとを有するデータ領域と、前記論理ブロックへのリンク情報を保持する領域と当該領域以外の空き領域とを有する管理領域とを含む不揮発性メモリと、更新対象のデータを保持する論理ブロックへのリンク情報をバッファ領域に複製する複製手段と、前記更新対象のデータに対応する更新後のデータを前記未使用ブロックに書き込む第１書き込み手段と、前記複製手段により前記バッファ領域に複製されたリンク情報のうち前記更新対象のデータを保持する論理ブロックへのリンク情報を、前記第１書き込み手段により前記更新後のデータが書き込まれた未使用ブロックへのリンク情報に変更する変更手段と、前記変更手段により変更されたリンク情報を、前記更新対象のデータを保持する論理ブロックへのリンク情報を保持する領域以外の空き領域に書き込む第２書き込み手段と、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体において、前記変更されたリンク情報が前記空き領域に書き込まれた場合、変更前の前記リンク情報を保持する領域から当該リンク情報を消去し、当該リンク情報が消去された領域を新たな空き領域に設定する設定手段を更に備えることを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１または２に記載の電子情報記憶媒体において、前記管理領域は、前記リンク情報のデータ長分の前記空き領域を複数有し、前記第２書き込み手段は、複数の前記空き領域への情報の書き込み回数が分散するように前記変更されたリンク情報を書き込むことを特徴とする。
【００１０】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体において、前記データ領域は、前記未使用ブロックを複数有し、前記第１書き込み手段は、複数の前記未使用ブロックへのデータの書き込み回数が分散するように前記更新後のデータを書き込むことを特徴とする。
【００１１】
請求項５に記載の発明は、読み出し対象となる有効なデータを保持する論理ブロックと論理ブロック以外の未使用ブロックとを有するデータ領域と、前記論理ブロックへのリンク情報を保持する領域と当該領域以外の空き領域とを有する管理領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサにより実行されるデータ書き込み方法であって、更新対象のデータを保持する論理ブロックへのリンク情報をバッファ領域に複製する複製ステップと、前記更新対象のデータに対応する更新後のデータを前記未使用ブロックに書き込む第１書き込みステップと、前記複製ステップにより前記バッファ領域に複製されたリンク情報のうち前記更新対象のデータを保持する論理ブロックへのリンク情報を、前記第１書き込みステップにより前記更新後のデータが書き込まれた未使用ブロックへのリンク情報に変更する変更ステップと、前記変更ステップにより変更されたリンク情報を、前記更新対象のデータを保持する論理ブロックへのリンク情報を保持する領域以外の空き領域に書き込む第２書き込みステップと、を含むことを特徴とする。
【００１２】
請求項６に記載の発明は、読み出し対象となる有効なデータを保持する論理ブロックと論理ブロック以外の未使用ブロックとを有するデータ領域と、前記論理ブロックへのリンク情報を保持する領域と当該領域以外の空き領域とを有する管理領域とを含む不揮発性メモリとプロセッサとを備える電子情報記憶媒体において前記プロセッサを、更新対象のデータを保持する論理ブロックへのリンク情報をバッファ領域に複製する複製手段と、前記更新対象のデータに対応する更新後のデータを前記未使用ブロックに書き込む第１書き込み手段と、前記複製手段により前記バッファ領域に複製されたリンク情報のうち前記更新対象のデータを保持する論理ブロックへのリンク情報を、前記第１書き込み手段により前記更新後のデータが書き込まれた未使用ブロックへのリンク情報に変更する変更手段と、前記変更手段により変更されたリンク情報を、前記更新対象のデータを保持する論理ブロックへのリンク情報を保持する領域以外の空き領域に書き込む第２書き込み手段として機能させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、アドレス管理領域の更新中に電源遮断が発生した場合でも、データの完全性を保障することができる。
【図面の簡単な説明】
【００１４】
【図１】（Ａ）は、ＩＣカード１の概要構成例を示す図であり、（Ｂ）は、ＮＶＭ１３におけるメモリマップの一例を示す図である。
【図２】（Ａ）は、データ領域ＤＡの構成例を示す図であり、（Ｂ）は、アドレス管理領域ＭＡの構成例を示す図である。
【図３】データＣをデータＤに更新する例を示す概念図である。
【図４】ＮＶＭ１３のアドレス管理領域ＭＡに記憶されたアドレス管理テーブルがＲＡＭ１１のバッファ領域ＢＡに複製（コピー）される様子を示す概念図である。
【図５】外部端末２からデータ更新コマンドが受信された場合においてＣＰＵ１０により行われるデータ更新処理の一例を示すフローチャートである。
【図６】データ更新処理中において、ＲＡＭ１１のバッファ領域ＢＡ、ＮＶＭ１３のデータ領域ＤＡ及びアドレス管理領域ＭＡの内容が変化する様子を示す概念図である。
【図７】（Ａ）は、図６（Ｃ）において、バッファ領域ＢＡ上のアドレス管理テーブルが更新される際の詳細を示す概念図であり、（Ｂ）は、図６（Ｄ）において、アドレス管理領域ＭＡ上のアドレス管理テーブルが更新される際の詳細を示す概念図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣカードに対して本発明を適用した場合の実施の形態である。
【００１６】
先ず、図１等を参照して、本実施形態に係るＩＣカード１の構成及び機能概要について説明する。図１（Ａ）は、ＩＣカード１の概要構成例を示す図である。なお、ＩＣカード１は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ＩＣチップ１ａは通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
【００１７】
ＩＣカード１には、図１（Ａ）に示すように、ＩＣチップ１ａが搭載されている。ＩＣチップ１ａは、本発明の電子情報記憶媒体の一例である。ＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、ＮＶＭ（Non Volatile Memory:不揮発性メモリ）１３、及びＩ／Ｏ回路１４を備えて構成される。Ｉ／Ｏ回路１４は、外部端末２とのインターフェイスを担う。これにより、ＩＣチップ１ａは、ＩＣリーダ・ライタを備える外部端末２との間で接触または非接触で通信を行うことができる。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部端末２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１ａが通信機器に組み込まれる場合、外部端末２には通信機器の機能を担う制御部が該当する。
【００１８】
ＲＡＭ１１は、ワーク領域、及びバッファ領域として使用される。ＮＶＭ１３には、例えばフラッシュメモリが適用される。ＮＶＭ１３は、「Electrically Erasable Programmable Read-Only Memory」であっても構わない。ＮＶＭ１３には、ＯＳ（オペレーティングシステム）及びアプリケーション等のプログラム（本発明のデータ書き込みプログラムを含む）、及びデータが記憶される。なお、ＮＶＭ１３にプログラム及びデータの一部は、ＲＯＭ１２に記憶されてもよい。
【００１９】
図１（Ｂ）は、ＮＶＭ１３におけるメモリマップの一例を示す図である。ＮＶＭ１３には、図１（Ｂ）に示すように、データをブロック単位で記憶するデータ領域ＤＡと、アドレス管理テーブルを記憶するアドレス管理領域ＭＡ（管理領域の一例）と、プログラムを記憶するプログラム領域ＰＡとが設けられる。
【００２０】
図２（Ａ）は、データ領域ＤＡの構成例を示す図である。データ領域ＤＡは、データを保持するための複数のブロックで構成される。各ブロックは、所定のデータ長からなり、例えば、保持されたデータの読み書きを行うときの最小単位であるページ単位（例えば１２８バイト、２５６バイト、または５１２バイト）とするとよい。各ブロックには、固有のブロック番号（論理ブロックのアドレス）が割り当てられている。また、ブロックには、有効なデータを保持する論理ブロックと、論理ブロック以外の未使用ブロックとがある。つまり、データ領域ＤＡは、有効なデータを保持する論理ブロックと論理ブロック以外の未使用ブロックとを有する。有効なデータとは、コマンドに応じて実行される処理において読み出し対象となるデータであり、当該処理で利用されるデータである。論理ブロックは、論理的なアドレス空間（論理メモリ空間）を構成する領域である。未使用ブロックは、有効なデータを書き込むための空き領域であり、本実施形態では、論理ブロックに保持されるデータを更新する際、更新対象のデータに対応する更新後のデータの書き込み先として使用される。また、未使用ブロックの数が多いほど、これらの未使用ブロックへの書き込みを分散させることができるので、ＮＶＭ１３の耐久性を向上することができる。ところで、未使用ブロックは、0xff（或いは、0x00）の消去状態（ここで、0xは以降の値が１６進数で表記することを示す）になっているとは限らない（データとしては存在するけれども、上述した有効なデータには該当しない）。そのため、未使用ブロックに有効なデータを書き込む場合、当該未使用ブロックをブロック単位で一旦消去することで消去状態にさせた後、当該未使用ブロックに有効なデータを書き込むようになっている。なお、データ領域ＤＡにおける論理ブロックのブロック番号と、ＮＶＭ１３における物理的なアドレス（物理メモリ）との対応付けは、ＯＳにより管理される。
【００２１】
図２（Ｂ）は、アドレス管理領域ＭＡの構成例を示す図である。アドレス管理領域ＭＡに記憶されるアドレス管理テーブルは、論理ブロックへのリンク情報、未使用ブロックのリスト（未使用ブロックへのリンク情報を含む）、及びＥＤＣ（Error Detection Code：エラー検出コード）を保持する。論理ブロックへのリンク情報、及び未使用ブロックへのリンク情報には、ブロック番号が示される。ＥＤＣは、論理ブロックへのリンク情報と未使用ブロックのリストとを所定の計算式に代入することで算出される。なお、ＥＤＣは、アドレス管理テーブルに含まれなくてもよい。また、アドレス管理領域ＭＡにおいて、１つのアドレス管理テーブルが記憶された領域以外は空き領域となっている。この空き領域は、アドレス管理テーブルのデータ長分（つまり、同程度）のブロックを少なくとも１つ有し、アドレス管理テーブルを更新する際、更新後のアドレス管理テーブルの書き込み先として使用される。これにより、更新中の電源遮断によってアドレス管理テーブルが破壊されることを防ぎ、かつ特定の位置に対する書き込みの集中を防ぐことができる。各空き領域には、固有の番号が割り当てられている。また、アドレス管理領域ＭＡにおける空き領域の数（少なくとも、論理ブロックへのリンク情報のデータ長と同程度の領域の数）が多いほど、これらの空き領域への書き込みを分散させることができるので、ＮＶＭ１３の耐久性を向上することができる。なお、アドレス管理領域ＭＡにおける空き領域も、0xff（或いは、0x00）の消去状態になっているとは限らないため、当該空き領域に更新後のアドレス管理テーブルを書き込む場合、当該空き領域をブロック単位で一旦消去することで消去状態にさせた後、当該空き領域に更新後のアドレス管理テーブルを書き込むようになっている。
【００２２】
ＣＰＵ１０は、ＲＯＭ１２またはＮＶＭ１３に記憶されたプログラムを実行するプロセッサ（コンピュータ）である。ＣＰＵ１０は、例えば外部端末２からＩ／Ｏ回路１４を介して受信されたコマンドに応じて、上記プログラムに従って、本発明における複製手段、第１書き込み手段、変更手段、第２書き込み手段、及び設定手段等として機能する。具体的には、例えば、プログラム起動時に、ＣＰＵ１０は、更新対象のデータ（更新前のデータ）を保持する論理ブロックへのリンク情報を含むアドレス管理テーブルを、ＲＡＭ１１のバッファ領域に複製（コピー）する。そして、ＣＰＵ１０は、論理ブロックのデータを更新する際、更新対象のデータに対応する更新後のデータを、ＮＶＭ１３のデータ領域ＤＡにおける何れかの未使用ブロックに書き込む。つまり、本実施形態では、論理ブロックに保持される更新対象のデータを直接上書きするのではなく、未使用ブロックに更新後のデータを書き込む。このとき、ＣＰＵ１０は、ＮＶＭ１３のデータ領域ＤＡにおける複数の未使用ブロックへのデータの書き込み回数が分散するように更新後のデータを書き込むようにすれば、ＮＶＭ１３の耐久性を向上することができる。
【００２３】
そして、ＣＰＵ１０は、ＲＡＭ１１のバッファ領域に複製されたアドレス管理テーブルにおけるリンク情報のうち上記更新対象のデータを保持する論理ブロックへのリンク情報を、上記更新後のデータが書き込まれた未使用ブロックへのリンク情報に変更（つまり、ＲＡＭ１１のバッファ領域において変更）し、当該変更されたリンク情報を含む更新後のアドレス管理テーブルを、ＮＶＭ１３のアドレス管理領域ＭＡにおける空き領域に書き込む。つまり、更新後のアドレス管理テーブルは、ＮＶＭ１３において更新前のアドレス管理テーブルを記憶する領域（つまり、更新前のデータを保持する論理ブロックへのリンク情報を含むアドレス管理テーブルを記憶する領域）以外の空き領域に書き込まれる。このとき、ＣＰＵ１０は、ＮＶＭ１３のアドレス管理領域ＭＡにおける複数の空き領域へのアドレス管理テーブルの書き込み回数が分散するように、更新後のアドレス管理テーブルを書き込むように構成すれば、ＮＶＭ１３の耐久性を向上することができる。こうして、変更されたリンク情報を含む更新後のアドレス管理テーブルが空き領域に書き込まれた場合、ＣＰＵ１０は、ＮＶＭ１３において更新前のアドレス管理テーブルが記憶された領域（つまり、変更前のリンク情報を保持する領域）から当該アドレス管理テーブルを消去し、当該アドレス管理テーブルが消去された領域を新たな空き領域に設定する。
【００２４】
図３は、データＣをデータＤに更新する例を示す概念図である。図３（Ａ）に示す論理ブロックのうち、ブロック番号“２”の論理ブロックにアクセスするとデータＣが読み出される。このデータＣをデータＤに更新する場合、図３（Ｂ）に示すように、先ず、ＮＶＭ１３のデータ領域ＤＡにおいて、ブロック番号“３”の未使用ブロックに更新後のデータＤが書き込まれる。その後、図３（Ｃ）に示すように、ＲＡＭ１１のバッファ領域ＢＡにおいて、データＣへのリンク情報（ブロック番号“２”）がデータＤへのリンク情報（ブロック番号“３”）に置き換えられる。これにより、更新前はデータＣが読み出されていたのに対し更新後はデータＤが読み出されることになる。その後、図３（Ｃ）に示す置き換え後のリンク情報は、ＮＶＭ１３のアドレス管理領域ＭＡにおける空き領域に書き込まれる。これにより、論理ブロックへのリンク情報の更新中に電源遮断が発生したとしても、データの完全性を保障することができる。
【００２５】
次に、図４〜図７を参照して、ＩＣカード１ａにおけるＣＰＵ１０により行われるデータ更新処理について説明する。このデータ更新処理の前提として、ＣＰＵ１０は、例えば、プログラム起動時（例えば、外部端末２からリセット信号が受信されたとき、または、外部端末２から最初のコマンドが受信された時）に、ＮＶＭ１３のアドレス管理領域ＭＡを検索することでアドレス管理テーブルを特定し、特定したアドレス管理テーブルをＲＡＭ１１のバッファ領域に複製する。
【００２６】
図４は、ＮＶＭ１３のアドレス管理領域ＭＡに記憶されたアドレス管理テーブルがＲＡＭ１１のバッファ領域ＢＡに複製（コピー）される様子を示す概念図である。このようにアドレス管理テーブルが複製されてＲＡＭ１１のバッファ領域ＢＡに記憶されると、ＣＰＵ１０は、ＲＡＭ１１のバッファ領域ＢＡに記憶されたアドレス管理テーブルに含まれる論理ブロックへのリンク情報と未使用ブロックのリストとを所定の計算式に代入することでＥＤＣを算出する。そして、ＣＰＵ１０は、当該算出したＥＤＣと、ＮＶＭ１３のアドレス管理領域ＭＡに記憶されている複製元のアドレス管理テーブルに含まれるＥＤＣとが一致するか否かを判定する。そして、ＣＰＵ１０は、これらのＥＤＣが一致しないと判定（異常判定）した場合、エラー処理（例えば、リトライや、ＩＣチップ１ａの動作を停止する処理）を実行する。一方、ＣＰＵ１０は、これらのＥＤＣが一致すると判定（正常判定）した場合、コマンド受信の待機状態となる。
【００２７】
図５は、外部端末２からデータ更新コマンドが受信された場合においてＣＰＵ１０により行われるデータ更新処理の一例を示すフローチャートであり、図６は、データ更新処理中において、ＲＡＭ１１のバッファ領域ＢＡ、ＮＶＭ１３のデータ領域ＤＡ及びアドレス管理領域ＭＡの内容が変化する様子を示す概念図である。図７（Ａ）は、図６（Ｃ）において、バッファ領域ＢＡ上のアドレス管理テーブルが更新される際の詳細を示す概念図であり、図７（Ｂ）は、図６（Ｄ）において、アドレス管理領域ＭＡ上のアドレス管理テーブルが更新される際の詳細を示す概念図である。
【００２８】
図５に示す処理は、外部端末２からＩ／Ｏ回路１４を介して、データ更新コマンドが受信された場合に開始される。なお、データ更新コマンドは、例えば、ＩＳＯ／ＩＥＣ７８１６−４で規定されるように、ＣＬＡ（命令クラス）、ＩＮＳ（命令コード）、Ｐ１（パラメータ１）、及びＰ２（パラメータ２）により構成され、当該コマンドには、例えば、更新対象のデータＣが保持される論理ブロックのブロック番号（データ領域ＤＡの先頭からのバイト数でもよい）、及び更新後のデータＤが付加されているものとする。
【００２９】
図５に示す処理が開始されると、ＣＰＵ１０は、ＲＡＭ１１のバッファ領域ＢＡに記憶されたアドレス管理テーブルに保持される未使用ブロックのリストから、未使用ブロックへのリンク情報を１つ取得する。例えば、ＣＰＵ１０は、未使用ブロックのリストにおいて先頭のリスト情報（図６（Ａ）の例では、矢印ｙ１で示すコマンド番号“０”）を取得する（ステップＳ１）。
【００３０】
次いで、ＣＰＵ１０は、ステップＳ１で取得したリスト情報が示すブロック番号の未使用ブロック（データ領域ＤＡ上の未使用ブロック）に、上記コマンドに付加された更新後のデータＤを、図６（Ｂ）の矢印ｙ２で示すように書き込む（ステップＳ２）。
【００３１】
次いで、ＣＰＵ１０は、バッファ領域ＢＡに複製されたアドレス管理テーブルにおけるリンク情報のうち、更新対象のデータＣを保持する論理ブロックへのリンク情報（図６（Ｂ）の例では、矢印ｙ３で示すコマンド番号“１”）を、更新後のデータＤが書き込まれた未使用ブロックへのリンク情報（図６（Ｃ）の例では、矢印ｙ４で示すコマンド番号“０”）に変更（アドレス管理テーブルの更新）する（ステップＳ３）。つまり、ＣＰＵ１０は、コマンド番号“０”の未使用ブロックに書き込まれた更新後のデータＤを有効にするため、図７（Ａ）に示すように、更新前（更新対象）のデータＣへのリンク情報（コマンド番号“１”）と更新後のデータＤへのリンク情報（コマンド番号“０”）を入れ替える（交換する）。これにより、コマンド番号“０”の未使用ブロックが論理ブロックとして管理されることになり、コマンド番号“１”の論理ブロックが未使用ブロックとして管理されることになる。
【００３２】
次いで、ＣＰＵ１０は、図７（Ａ）に示すように、バッファ領域ＢＡ上の未使用ブロックのリストの先頭にあるブロック番号（つまり、ブロック番号の入れ替えにより未使用ブロックとなったブロックのブロック番号“１”）の保持位置を当該リストの末尾に移動させ、他のブロック番号の保持位置を１つずつ繰り上げる（ステップＳ４）。これにより、データ領域ＤＡにおける複数の未使用ブロックへのデータの書き込み回数が分散するように更新後のデータを書き込むことが可能となる。このため、特定のブロックへの書き換え集中を防ぐことができ、ＮＶＭ１３の耐久性を向上することができる。
【００３３】
次いで、ＣＰＵ１０は、図６（Ｄ）、詳しくは図７（Ｂ）に示すように、ステップＳ３で変更されたリンク情報を含む更新後のアドレス管理テーブルを、アドレス管理領域ＭＡにおける空き領域に書き込む（ステップＳ５）。このときの書き込み先は、アドレス管理領域ＭＡに保持されるアドレス管理テーブルの次の空き領域（例えば、次の番号の空き領域）とされる。もし、アドレス管理テーブルがアドレス管理領域ＭＡの最下の領域（例えば、番号が最も大きい空き領域）に保持されている場合は、アドレス管理領域ＭＡの最上の領域（例えば、番号が最も小さい領域）が次の書き込み先とされる。これにより、アドレス管理テーブルの書き込み先を循環させることができ、複数の空き領域へのテーブルの書き込み回数が分散するように変更されたリンク情報を含むアドレス管理テーブルを書き込むことが可能となる。
【００３４】
そして、変更されたリンク情報を含むアドレス管理テーブル（つまり、更新後のアドレス管理テーブル）が空き領域に書き込まれた場合、図７（Ｂ）に示すように、ＣＰＵ１０は、更新前のアドレス管理テーブルを保持する領域から当該更新前のアドレス管理テーブルを消去し、当該アドレス管理テーブルが消去された領域を新たな空き領域に設定し（ステップＳ６）、更新完了を示すレスポンスをＩ／Ｏ回路１４を介して外部端末２へ送信する。
【００３５】
以上説明したように、上記実施形態によれば、ＩＣチップ１ａは、更新対象のデータを保持する論理ブロックへのリンク情報を含むアドレス管理テーブルをバッファ領域ＢＡに複製し、更新後のデータを未使用ブロックに書き込み、バッファ領域ＢＡ上でアドレス管理テーブルにおけるリンク情報のうち更新対象のデータを保持する論理ブロックへのリンク情報を更新後のデータが書き込まれた未使用ブロックへのリンク情報に変更し、当該変更されたリンク情報を含む更新後のアドレス管理テーブルを、アドレス管理領域ＭＡにおける空き領域に書き込むように構成したので、アドレス管理領域ＭＡの更新中に電源遮断が発生した場合でも、データの完全性を保障することができる。
【００３６】
なお、上記実施形態においては、本発明の電子情報記憶媒体の一例としてＩＣチップ１ａを例にとって説明したが、本発明は、組込み型のマイクロチップ等に対して適用することもできる。
【符号の説明】
【００３７】
１  ＩＣカード
１ａ  ＩＣチップ
２  外部端末
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
【図１】
2017138763.tif 000003
【図２】
2017138763.tif 000004
【図３】
2017138763.tif 000005
【図４】
2017138763.tif 000006
【図５】
2017138763.tif 000007
【図６】
2017138763.tif 000008
【図７】
2017138763.tif 000009