(57)【要約】【課題】論理アドレスと物理アドレスの対応関係を記述したテーブルが記憶される領域についての書き換え回数を低減することにより、不揮発性メモリの寿命を向上させることができる電子情報記憶媒体等を提供する。【解決手段】不揮発性メモリに論理アドレスと物理アドレスの対応関係を記述した第１テーブルを記憶させ、揮発性メモリに第１テーブルのコピーである第２テーブルを記憶させ、テーブルを更新する場合には第２テーブルのみを更新し、当該更新内容を更新データとして不揮発性メモリに記憶させる。不揮発性メモリに更新データが記憶されている場合に、揮発性メモリに第２テーブルを記憶させる場合には、第１テーブルのコピーで第２テーブルを記憶させた後、当該第２テーブルを更新データで更新する。【選択図】図７
2019049876.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションに関するアプリケーションデータと、当該アプリケーションデータの論理アドレスと物理アドレスとの対応関係を記述した第１テーブルと、を記憶する不揮発性メモリと、
所定の時期に前記第１テーブルのコピーを第２テーブルとして揮発性メモリに記憶させるコピー手段と、
前記アプリケーションデータの更新に伴って、前記第２テーブルを更新する第１更新手段と、
前記第１更新手段による更新内容を示す更新データを生成して、前記不揮発性メモリに記憶させる更新データ生成手段と、
前記所定の時期に、前記不揮発性メモリに前記更新データが記憶されている場合には、前記コピー手段により前記揮発性メモリに記憶された前記第２テーブルを前記更新データに基づいて更新する第２更新手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
請求項１に記載の電子情報記憶媒体であって、
前記不揮発性メモリに更新データが記憶されている場合において、所定の初期化条件が満たされた場合に、前記第２テーブルのコピーにより前記第１テーブルを更新し、前記更新データが記憶されている領域を解放する初期化手段、
を更に備えることを特徴とする電子情報記憶媒体。
【請求項３】
請求項１又は２に記載の電子情報記憶媒体であって、
前記第１更新手段は、前記アプリケーションデータの更新に伴う、前記不揮発性メモリに対するウェアレベリング処理に応じて、前記第２テーブルにおける当該アプリケーションデータの物理アドレスを更新することを特徴とする電子情報記憶媒体。
【請求項４】
請求項１乃至３の何れか一項に記載の電子情報記憶媒体を備えるＩＣカード。
【請求項５】
アプリケーションに関するアプリケーションデータと、当該アプリケーションデータの論理アドレスと物理アドレスとの対応関係を記述した第１テーブルと、を記憶する不揮発性メモリと、揮発性メモリと、を備える電子情報記憶媒体によるテーブル管理方法であって、
所定の時期に前記第１テーブルのコピーを第２テーブルとして前記揮発性メモリに記憶させるコピー工程と、
前記アプリケーションデータの更新に伴って、前記第２テーブルを更新する第１更新工程と、
前記第１更新工程による更新内容を示す更新データを生成して、前記不揮発性メモリに記憶させる更新データ生成工程と、
前記所定の時期に、前記不揮発性メモリに前記更新データが記憶されている場合には、前記コピー工程により前記揮発性メモリに記憶された前記第２テーブルを前記更新データに基づいて更新する第２更新工程と、
を含むことを特徴とするテーブル管理方法。
【請求項６】
アプリケーションに関するアプリケーションデータと、当該アプリケーションデータの論理アドレスと物理アドレスとの対応関係を記述した第１テーブルと、を記憶する不揮発性メモリと、揮発性メモリと、コンピュータと、を備える電子情報記憶媒体における前記コンピュータを、
所定の時期に前記第１テーブルのコピーを第２テーブルとして揮発性メモリに記憶させるコピー手段、
前記アプリケーションデータの更新に伴って、前記第２テーブルを更新する第１更新手段、
前記第１更新手段による更新内容を示す更新データを生成して、前記不揮発性メモリに記憶させる更新データ生成手段、
前記所定の時期に、前記不揮発性メモリに前記更新データが記憶されている場合には、前記コピー手段により前記揮発性メモリに記憶された前記第２テーブルを前記更新データに基づいて更新する第２更新手段、
として機能させることを特徴とするテーブル管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣ（Integrated Circuit）チップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
ＩＣチップなどの電子情報記憶媒体は、ＣＰＵ、ＲＡＭ、フラッシュメモリ等の不揮発性メモリを備え、不揮発性メモリにはＯＳ（Operating System）やアプリケーションプログラム、各種データを記憶する。不揮発性メモリは、その構造上、数万〜数十万程度の書き換え回数の上限が存在し、その上限を超えた書き換えが行われた記憶素子については正常にデータの記録が行えなくなる。その上限による影響を受け難いようにするために、一般に不揮発性メモリについてウェアレベリング処理が行われている。
【０００３】
ウェアレベリング処理とは、書き換えが行われる物理的な記憶素子が特定のものに偏らないように分散することで、特定のデータについて繰り返し書き換えが発生した場合でもデバイス全体として記憶素子の消耗を平均化する技術である。ユーザ（アプリケーション）に対して見せるアドレスは、ウェアレベリング処理を実施しない場合であれば物理アドレスになるが、ウェアレベリング処理を実施する場合は論理アドレスとなる。ユーザが論理アドレスに対してのアクセスを要求した場合、ＯＳは自身が管理する論理アドレスと物理アドレスの対応関係を記述したテーブル（アドレス変換テーブル）を用いて、変換後の物理アドレスへの要求として処理する。これにより、例えば、ユーザから見て特定のデータに対して書き込みを繰り返す場合であっても、物理的な記憶素子は（アドレス変換テーブルを更新することによって）複数の記憶素子に分散することができ、不揮発性メモリ全体として飛躍的に書き換え耐久性を向上させることができる。
【０００４】
特許文献１には、フラッシュメモリに対してウェアレベリング処理を行う記憶装置について開示されている。当該記憶装置は、ホストシステムから指示されたデータを記憶しておくためのユーザ領域と、各ブロックは消去済み状態であり、各ブロックの書き換え回数を平均化するために使用されるブロックのあつまりである代替領域とを備えるフラッシュメモリを備え、ユーザ領域中でデータが格納されていない論理セクタアドレスと物理セクタアドレスとの対応関係を解除するとともに、対応関係が解除された物理ブロックを消去し代替領域のブロックとして使用可能化する。これにより、ウェアレベリング処理に用いられる代替領域を増やすことができ、ウェアレベリング処理をより有効に行うことができるため、フラッシュメモリの寿命を伸ばすことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２３７６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ウェアレベリング処理が実施される不揮発性メモリにおいてユーザ領域のデータを更新する場合、不揮発性メモリ上のアドレス変換テーブルにおける当該論理アドレスに対応した物理アドレスを特定するための情報を更新する必要がある。しかしながら、従来のウェアレベリング処理では、ユーザ領域のデータを更新する場合、当該データの記憶領域を変更するとともにアドレス変換テーブルにおける物理アドレスを特定するための情報を更新しているが、アドレス変換テーブルそのものが記憶されている領域についてはウェアレベリング処理がなされておらず、当該領域の方がユーザ領域により先に書き換え回数の上限に達してしまうおそれがある。
【０００７】
そこで、本発明は、論理アドレスと物理アドレスの対応関係を記述したテーブルが記憶される領域についての書き換え回数を低減することにより、不揮発性メモリの寿命を向上させることができる電子情報記憶媒体等を提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、アプリケーションに関するアプリケーションデータと、当該アプリケーションデータの論理アドレスと物理アドレスとの対応関係を記述した第１テーブルと、を記憶する不揮発性メモリと、所定の時期に前記第１テーブルのコピーを第２テーブルとして揮発性メモリに記憶させるコピー手段と、前記アプリケーションデータの更新に伴って、前記第２テーブルを更新する第１更新手段と、前記第１更新手段による更新内容を示す更新データを生成して、前記不揮発性メモリに記憶させる更新データ生成手段と、前記所定の時期に、前記不揮発性メモリに前記更新データが記憶されている場合には、前記コピー手段により前記揮発性メモリに記憶された前記第２テーブルを前記更新データに基づいて更新する第２更新手段と、を備えることを特徴とする。なお、「所定の時期」の一例として、本発明である電子情報記憶媒体に電源が投入された時（電子情報記憶媒体の起動時）や、アプリケーションが選択された時などが挙げられる。
【０００９】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体であって、前記不揮発性メモリに更新データが記憶されている場合において、所定の初期化条件が満たされた場合に、前記第２テーブルのコピーにより前記第１テーブルを更新し、前記更新データが記憶されている領域を解放する初期化手段、を更に備えることを特徴とする。
【００１０】
請求項３に記載の発明は、請求項１又は２に記載の電子情報記憶媒体であって、前記第１更新手段は、前記アプリケーションデータの更新に伴う、前記不揮発性メモリに対するウェアレベリング処理に応じて、前記第２テーブルにおける当該アプリケーションデータの物理アドレスを更新することを特徴とする。
【００１１】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体を備えるＩＣカードである。
【００１２】
請求項５に記載の発明は、アプリケーションに関するアプリケーションデータと、当該アプリケーションデータの論理アドレスと物理アドレスとの対応関係を記述した第１テーブルと、を記憶する不揮発性メモリと、揮発性メモリと、を備える電子情報記憶媒体によるテーブル管理方法であって、所定の時期に前記第１テーブルのコピーを第２テーブルとして前記揮発性メモリに記憶させるコピー工程と、前記アプリケーションデータの更新に伴って、前記第２テーブルを更新する第１更新工程と、前記第１更新工程による更新内容を示す更新データを生成して、前記不揮発性メモリに記憶させる更新データ生成工程と、前記所定の時期に、前記不揮発性メモリに前記更新データが記憶されている場合には、前記揮発性メモリに記憶された前記第２テーブルを前記更新データに基づいて更新する第２更新工程と、を含むことを特徴とする。
【００１３】
請求項６に記載の発明は、アプリケーションに関するアプリケーションデータと、当該アプリケーションデータの論理アドレスと物理アドレスとの対応関係を記述した第１テーブルと、を記憶する不揮発性メモリと、揮発性メモリと、コンピュータと、を備える電子情報記憶媒体における前記コンピュータを、所定の時期に前記第１テーブルのコピーを第２テーブルとして揮発性メモリに記憶させるコピー手段、前記アプリケーションデータの更新に伴って、前記第２テーブルを更新する第１更新手段、前記第１更新手段による更新内容を示す更新データを生成して、前記不揮発性メモリに記憶させる更新データ生成手段、前記所定の時期に、前記不揮発性メモリに前記更新データが記憶されている場合には、前記揮発性メモリに記憶された前記第２テーブルを前記更新データに基づいて更新する第２更新手段、として機能させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、アプリケーションデータが更新される場合に、当該アプリケーションデータの論理アドレスと物理アドレスとの対応関係を記述し、不揮発性メモリに記憶される第１テーブルは更新されず、当該第１テーブルのコピーであって、揮発性メモリに記憶される第２テーブルのみが更新されることから、不揮発性メモリの第１テーブルが記憶される領域についての書き換え回数を低減することができ、不揮発性メモリの寿命を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態に係るＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。
【図２】アドレス変換テーブルＴＡが初期状態である場合におけるアプリケーション起動時の動作例を示す概念図である。
【図３】アプリケーション起動中におけるアドレス変換テーブルＴＡの書き換え発生時（１回目）の動作例を示す概念図である。
【図４】アプリケーション起動中におけるアドレス変換テーブルＴＡの書き換え発生時（２回目）の動作例を示す概念図である。
【図５】アドレス変換テーブルＴＡが非初期状態である場合におけるアプリケーション起動時の動作例を示す概念図である。
【図６】アドレス変換テーブルＴＡの初期化時の動作例を示す概念図である。
【図７】（Ａ）−（Ｄ）は、基準テーブルＴＡ、運用テーブルＴＢ、更新データＤの遷移例を示す図である。
【図８】本実施形態に係るＩＣチップ１ａによる起動時処理の一例を示すフローチャートである。
【図９】本実施形態に係るＩＣチップ１ａによる書き込み時処理の一例を示すフローチャートである。
【図１０】本実施形態に係るＩＣチップ１ａによる更新時処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、アプリケーションのアップデート機能を有するマルチアプリケーションＩＣチップを搭載するＩＣカードに対して本発明を適用した場合の実施の形態である。
【００１７】
［１．ＩＣチップ１ａの構成及び概要］
まず、図１を参照して、ＩＣカード１に搭載されるＩＣチップ１ａの構成について説明する。図１は、ＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。本実施形態のＩＣカード１は、接触によるデータ通信と非接触によるデータ通信の２つの通信機能を兼ね備えたデュアルインターフェース型ＩＣカードである。但し、ＩＣカード１の種類はデュアルインターフェース型ＩＣカードに限定されず、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードにＩＣチップ１ａがエンベットされた接触型ＩＣカードであってもよいし、また、アンテナコイルを内蔵し無線でリーダ・ライタとデータ通信する非接触型ＩＣカードであってもよい。
【００１８】
図１に示すように、ＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。ＣＰＵ１０は、ＲＯＭ１２又は不揮発性メモリ１３に記憶された各種プログラムを実行するプロセッサ（コンピュータ）である。なお、Ｉ／Ｏ回路１４は、外部機器２とのインターフェイスを担う。これにより、ＩＣチップ１ａは、リーダ・ライタを備える外部機器２との間で接触又は非接触で通信を行うことができる。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部機器２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部機器２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１ａが通信機器に組み込まれる場合、外部機器２には通信機器の機能を担う制御部が該当する。
【００１９】
不揮発性メモリ１３には、例えばフラッシュメモリ、強誘電体メモリ又は「Electrically Erasable Programmable Read-Only Memory」を適用することができる。不揮発性メモリ１３は、ＯＳ及び各種アプリケーションを記憶する。また、不揮発性メモリ１３は、アプリケーションが使用するデータを記憶するユーザ領域とＯＳが使用するデータを記憶するＯＳ領域がある。ＯＳ領域には特に論理アドレスと物理アドレスの対応関係を記述したアドレス変換テーブルが記憶される。アドレス変換テーブルは、例えば、論理アドレスに対応する物理アドレスそのものを格納することとしても良いし、論理アドレスに対応する物理アドレスを特定するための情報を格納することとしても良い。なお、ＯＳは、その一機能として不揮発性メモリ１３についてウェアレベリング処理を行う。
【００２０】
アドレス変換テーブルにおける、論理アドレスに対応する物理アドレスを特定するための情報の一例について説明する。例えば、アドレス変換テーブルには、論理アドレスと対応付けて、論理アドレスに対応する物理アドレスを特定するための情報として「論理アドレスと物理アドレスの排他的論理和(xor)」を格納することとしてもよい。このとき、論理アドレスと物理アドレスを４バイトで表現することとし、先頭１バイトと末尾１バイトを除いた真ん中の２バイトを共通の値とする仕組みとすれば、論理アドレスから物理アドレスを算出する場合、論理アドレスと格納データの排他的論理和を計算し、１バイト目と４バイト目を足せば物理アドレスとなる。
【００２１】
ここで、図２−図７を用いて、ＯＳによるアドレス変換テーブルの管理方法の概略について説明する。図２は、アドレス変換テーブルＴＡが初期状態である場合におけるＩＣチップ１ａ起動時の動作例を示す概念図である。図３は、ＩＣチップ１ａ起動中におけるアドレス変換テーブルＴＡの書き換え発生時（１回目）の動作例を示す概念図である。図４は、ＩＣチップ１ａ起動中におけるアドレス変換テーブルＴＡの書き換え発生時（２回目）の動作例を示す概念図である。図５は、アドレス変換テーブルＴＡが非初期状態である場合におけるＩＣチップ１ａ起動時の動作例を示す概念図である。図６は、アドレス変換テーブルＴＡの初期化時の動作例を示す概念図である。
【００２２】
本実施形態においてＯＳは、全アプリケーション共有のアドレス変換テーブルＴＡを不揮発性メモリ１３に記憶させており、ＩＣチップ１ａの起動時（電源投入時）にアドレス変換テーブルＴＡのコピーであるアドレス変換テーブルＴＢをＲＡＭ１１に記憶させる。つまり、ＯＳはＩＣチップ１ａの起動中において、不揮発性メモリ１３及びＲＡＭ１１のそれぞれに、アドレス変換テーブルＴＡ及びアドレス変換テーブルＴＢを併存させる。アドレス変換テーブルＴＡを基準テーブルＴＡといい、アドレス変換テーブルＴＢを運用テーブルＴＢという場合がある。以下、具体的にアドレス変換テーブルＴＡ及びアドレス変換テーブルＴＢを併存させて管理する方法について説明する。
【００２３】
図２に示すように、ＯＳは、基準テーブルＴＡが初期状態である場合においてＩＣチップ１ａが起動する場合、基準テーブルＴＡのコピーである運用テーブルＴＢをＲＡＭ１１に記憶させる。
【００２４】
図３に示すように、ＯＳは、ＩＣチップ１ａ起動中に、ユーザ領域（アプリケーションが使用するデータ領域）のデータの書き換えが発生した場合に、ウェアレベリングのために運用テーブルＴＢの物理アドレスを特定するための情報を書き換えるとともに、当該書き換え内容を示す更新データＤ１を生成して不揮発性メモリ１３に記憶させる。図４に示すように、ＯＳは、ユーザ領域のデータの書き換えが更に発生すると、運用テーブルＴＢの物理アドレスを特定するための情報を書き換えるとともに、当該書き換え内容を示す更新データＤ２を生成して不揮発性メモリ１３に追加で記憶させる。以降、ＯＳは、ＩＣチップ１ａ起動中に、ユーザ領域のデータの書き換えが発生する度に、運用テーブルＴＢを書き換えるとともに、当該書き換え内容を示す更新データＤｎ（以下、更新データＤ１〜Ｄｎを総称して更新データＤという場合がある）を生成して不揮発性メモリ１３に追加で記憶させる。このように、不揮発性メモリ１３に更新データＤが記憶されている状態をアドレス変換テーブルの非初期状態といい、図１に示したように不揮発性メモリ１３に更新データＤが記憶されていない状態をアドレス変換テーブルの初期状態という。
【００２５】
図５に示すように、ＯＳは、基準テーブルＴＡが非初期状態である場合においてＩＣチップ１ａが起動する場合、基準テーブルＴＡのコピーである運用テーブルＴＢをＲＡＭ１１に記憶させ、次いで、更新データＤに基づいて、運用テーブルＴＢを書き換える。このとき、ＯＳは、不揮発性メモリ１３に更新データＤを記憶させた順に従って、当該更新データＤに基づいて運用テーブルＴＢを書き換える。これにより、最新の状態の運用テーブルＴＢをＲＡＭ１１に生成することができる。
【００２６】
ＯＳは、ユーザ領域のデータの書き換えが発生する度に、当該書き換え内容を示す更新データＤｎを生成して不揮発性メモリ１３に追加で記憶させるが、更新データＤｎの生成を繰り返すと不揮発性メモリ１３の記憶容量を圧迫してしまう。そこで、ＯＳは、所定の初期化条件が満たされた場合に、基準テーブルＴＡの初期化を行う。具体的には、図６に示すように、ＯＳは、運用テーブルＴＢのコピーにより基準テーブルＴＡを書き換えるとともに、更新データＤ１〜Ｄｎを無効化する。これにより、基準テーブルＴＡは最新の状態のアドレス変換テーブルとすることができるとともに、更新データＤが不揮発性メモリ１３の記憶容量を圧迫してしまうことを防ぐことができる。
【００２７】
次に、図７を用いて、不揮発性メモリ１３に記憶される基準テーブルＴＡ及び更新データＤと、ＲＡＭ１１に記憶される運用テーブルＴＢの遷移について説明する。なお、図７の例では、不揮発性メモリ１３に記憶させる更新データＤの上限数を４つとする。
【００２８】
まず、図７（Ａ）に示すように、基準テーブルＴＡが初期状態である場合、更新データＤが記憶される領域は空き状態となっており、ＩＣチップ１ａの起動により、基準テーブルＴＡのコピーが運用テーブルＴＢとしてＲＡＭ１１に記憶される。つまり、基準テーブルＴＡと運用テーブルＴＢは同じ内容となっている。なお、図７の基準テーブルＴＡと運用テーブルＴＢは、論理アドレスと物理アドレスの対応関係を示す情報を保持するが、これらのテーブルにおける物理アドレスを特定するための情報を記憶する位置（例えば、図７における（１）〜（８））を、論理アドレスと対応付けておくことで、物理アドレスを特定するための情報のみを保持する構造となっている。例えば、論理アドレス（１）を示す位置に物理アドレス「アドレスＡ」を特定するための情報を保持することにより論理アドレス（１）と物理アドレス「アドレスＡ」が対応していることを示している。
【００２９】
次いで、アプリケーションによるユーザ領域のデータの書き換えが２回行われると、それぞれの書き換えに基づいて、ＯＳは、例えば図７（Ｂ）に示すように、運用テーブルＴＢの（３）を「アドレスＣ」を特定するための情報から「アドレスＩ」を特定するための情報に書き換え、次いで、運用テーブルＴＢの（８）を「アドレスＨ」を特定するための情報から「アドレスＪ」を特定するための情報に書き換える。これに伴い、ＯＳは（３）を「アドレスＩ」を特定するための情報に書き換えることを示す一つ目の更新データＤ１を生成して不揮発性メモリ１３に記憶させ、次いで、（８）を「アドレスＪ」を特定するための情報に書き換えることを示す二つ目の更新データＤ２を生成して不揮発性メモリ１３に記憶させる。
【００３０】
更に、アプリケーションによるユーザ領域のデータの書き換えが２回行われると、それぞれの書き換えに基づいて、ＯＳは、例えば図７（Ｃ）に示すように、運用テーブルＴＢの（７）を「アドレスＧ」を特定するための情報から「アドレスＣ」を特定するための情報に書き換え、次いで、運用テーブルＴＢの（１）を「アドレスＡ」を特定するための情報から「アドレスＨ」を特定するための情報に書き換える。これに伴い、ＯＳは（７）を「アドレスＣ」を特定するための情報に書き換えることを示す三つ目の更新データＤ３を生成して不揮発性メモリ１３に記憶させ、次いで、（１）を「アドレスＨ」を特定するための情報に書き換えることを示す四つ目の更新データＤ４を生成して不揮発性メモリ１３に記憶させる。
【００３１】
そして、ＯＳは、所定の初期化条件が満たされると、図７（Ｄ）に示すように、運用テーブルＴＢのコピーにより基準テーブルＴＡを書き換え、更新データＤ１〜Ｄ４を解放して更新データが記憶されていた領域を空き状態とする。
【００３２】
［２．起動時処理］
次に、図８を用いて、ＩＣチップ１ａの起動時処理の動作例について説明する。図８は、起動時処理の一例を示すフローチャートである。
【００３３】
図８に示すように、ＯＳ（を実行するＣＰＵ１０）は、ＩＣチップ１ａの起動時に、基準テーブルＴＡをコピーしてＲＡＭ１１に書き込むことにより運用テーブルＴＢを生成する（ステップＳ１０１）。
【００３４】
次に、ＯＳは、更新データＤ（空き状態でない更新データＤ）が不揮発性メモリ１３に記憶されているか否かを判定する（ステップＳ１０２）。このとき、ＯＳは、更新データＤが不揮発性メモリ１３に記憶されていないと判定した場合には（ステップＳ１０２：ＮＯ）、起動時処理を終了する。
【００３５】
一方、ＯＳは、更新データＤが不揮発性メモリ１３に記憶されていると判定した場合には（ステップＳ１０２：ＹＥＳ）、不揮発性メモリ１３に追加された時期が最も早い更新データＤを一つ選択する（ステップＳ１０３）。
【００３６】
次に、ＯＳは、ステップＳ１０３の処理で選択した更新データＤに基づいて運用テーブルＴＢを更新し（ステップＳ１０４）、ステップＳ１０２の処理に移行する。そして、ＯＳは、不揮発性メモリ１３に記憶されている全ての更新データＤに基づいて運用テーブルＴＢを更新するまでステップＳ１０２〜ステップＳ１０４の処理を繰り返す。このとき、ステップＳ１０３の処理では、それまでに選択していない更新データＤの中で、不揮発性メモリ１３に追加された時期が最も早い更新データを一つ選択する。
【００３７】
［３．書き込み時処理］
次に、図９を用いて、ユーザ領域にデータの書き込みが行われた際に実行される書き込み時処理の動作例について説明する。図９は、書き込み時処理の一例を示すフローチャートである。
【００３８】
図９に示すように、ＯＳ（を実行するＣＰＵ１０）は、アプリケーションによるユーザ領域のデータの更新が行われた場合に、当該更新が行われたデータの論理アドレスに基づいて、不揮発性メモリ１３上の書き込み領域を特定する（ステップＳ２０１）。具体的には、ウェアレベリングの観点から、それまでの書き込み回数が少ない領域を書き込み領域として特定する。
【００３９】
次に、ＯＳは、ステップＳ２０１の処理で特定した書き込み領域に、アプリケーションが更新したデータ（更新後のデータ）を書き込む（ステップＳ２０２）。
【００４０】
次に、ＯＳは、運用テーブルＴＢの更新を行う（ステップＳ２０３）。具体的には、アプリケーションによる更新が行われたデータの論理アドレスに対応する運用テーブルＴＢ上の位置に、ステップＳ２０１の処理で特定した書き込み領域の物理アドレスを特定するための情報を書き込む。
【００４１】
次に、ＯＳは、更新データＤを生成し、不揮発性メモリ１３に追加して記憶させる（ステップＳ２０４）。
【００４２】
ここで、書き込み時処理について、例えば、アプリケーションが論理アドレス「アドレスＰ」（物理アドレス「アドレスｓ」）のデータを更新した場合を例に説明する。まず、ＯＳは、アプリケーションにより更新された更新後のデータを、物理アドレス「アドレスｓ」で特定される領域に書き込むのではなく、ウェアレベリング処理により、書き込み回数が少ない領域を特定し（ステップＳ２０１）、当該領域に書き込む（ステップＳ２０２）。このとき、書き込んだ領域を特定する物理アドレスを「アドレスｔ」とすると、ＯＳは運用テーブルＴＢの論理アドレス「アドレスＰ」に対応する物理アドレスを特定するための情報を「アドレスｔ」を特定するための情報に更新する（ステップＳ２０３）。そして、ＯＳは、論理アドレス「アドレスＰ」に対応する物理アドレスを特定するための情報を「アドレスｔ」を特定するための情報に更新したことを示す更新データＤを生成し、不揮発性メモリ１３に記憶させる。
【００４３】
［４．更新時処理］
次に、図１０を用いて、ＩＣチップ１ａにおける基準テーブルＴＡの更新を行う更新時処理の動作例について説明する。図１０は、更新時処理の一例を示すフローチャートである。
【００４４】
図１０に示すように、まず、ＯＳ（を実行するＣＰＵ１０）は、所定の初期化条件が満たされたか否かを判定する（ステップＳ３０１）。所定の初期化条件としては、例えば、アプリケーションの一連の処理が終了しており、且つ、更新データＤの数が上限の所定割合（例えば、８０％）を超えている、という条件を設定することができる。但し、この条件は一例であり、その他の条件を所定の初期化条件としてもよい。ＯＳは、所定の初期化条件が満たされていないと判定した場合には（ステップＳ３０１：ＮＯ）、更新時処理を終了する。
【００４５】
一方、ＯＳは、所定の初期化条件が満たされていると判定した場合には（ステップＳ３０１：ＹＥＳ）、運用テーブルＴＢのコピーにより基準テーブルＴＡを更新する（ステップＳ３０２）。
【００４６】
次に、ＯＳは、全ての更新データを無効化し（ステップＳ３０３）、更新処理を終了する。
【００４７】
以上のように、本実施形態のＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、不揮発性メモリ１３（「不揮発性メモリ」の一例）が、アプリケーションに関するユーザ領域のデータ（「アプリケーションデータ」の一例）と、当該ユーザ領域のデータの論理アドレスと物理アドレスとの対応関係を記述した基準テーブルＴＡ（「第１テーブル」の一例）と、を記憶し、ＣＰＵ１０（「コピー手段」、「第１更新手段」、「更新データ生成手段」、「第２更新手段」の一例）が、ＩＣチップ１ａの起動時に基準テーブルＴＡのコピーを運用テーブルＴＢ（「第２テーブル」の一例）としてＲＡＭ１１（「揮発性メモリ」の一例）に記憶させ、ユーザ領域のデータの更新に伴って、運用テーブルＴＢを更新し、当該更新内容を示す更新データＤを生成して、不揮発性メモリ１３に記憶させ、ＩＣチップ１ａの起動時に、不揮発性メモリ１３に更新データＤが記憶されている場合には、基準テーブルＴＡのコピーによりＲＡＭ１１に記憶された運用テーブルＴＢを更新データＤに基づいて更新する。
【００４８】
したがって、本実施形態のＩＣチップ１ａによれば、ユーザ領域のデータが更新される場合に、基準テーブルＴＡは更新されず、基準テーブルＴＡのコピーであって、ＲＡＭ１１に記憶される運用テーブルＴＢのみが更新されることから、基準テーブルＴＡが記憶される領域についての書き換え回数を低減することができ、不揮発性メモリ１３の寿命を向上させることができる。また、ユーザ領域のデータが更新された際に、更新データＤを不揮発性メモリ１３に書き込むだけのため、不揮発性メモリ１３のアドレス変換テーブル全体を書き換える場合と比較して、書き換え時間を大幅に短くすることができる。
【００４９】
また、本実施形態のＩＣチップ１ａのＣＰＵ１０（「初期化手段」の一例）は、不揮発性メモリ１３に更新データＤが記憶されている場合において、所定の初期化条件が満たされた場合に、運用テーブルＴＢのコピーにより基準テーブルＴＡを更新し、更新データＤが記憶されている領域を解放する。これにより、更新データＤが無数に不揮発性メモリ１３に記憶され、不揮発性メモリ１３の記憶容量を圧迫することを防ぐことができる。
【００５０】
更に、本実施形態のＩＣチップ１ａのＣＰＵ１０（「第１更新手段」の一例）は、ユーザ領域のデータの更新に伴う、不揮発性メモリ１３に対するウェアレベリング処理に応じて、運用テーブルＴＢにおける当該ユーザ領域のデータの物理アドレスを更新する。これにより、不揮発性メモリ１３において、基準テーブルＴＡが記憶される領域の書き換え回数の低減のみならず、ユーザ領域のデータが記憶される領域の書き換え回数の平均化を実現することができる。
【００５１】
なお、本実施形態において、全アプリケーションで共有のアドレス変換テーブルを用意して利用することとしたが、アプリケーション毎にアドレス変換テーブルを用意して利用することとしてもよい。この場合、図８の起動時処理は、アプリケーション選択時処理として、アプリケーションが選択された時に実行することとしてもよい。なお、アプリケーションが選択された時は本発明の「所定の時期」の一例である。
【符号の説明】
【００５２】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
２  外部機器
【図１】
2019049876.tif 000003
【図２】
2019049876.tif 000004
【図３】
2019049876.tif 000005
【図４】
2019049876.tif 000006
【図５】
2019049876.tif 000007
【図６】
2019049876.tif 000008
【図７】
2019049876.tif 000009
【図８】
2019049876.tif 000010
【図９】
2019049876.tif 000011
【図１０】
2019049876.tif 000012