(57)【要約】【課題】不揮発性メモリにおける仮想メモリ管理記憶領域と物理メモリ管理記憶領域の大きさを変更することができる電子情報記憶媒体等を提供する。【解決手段】不揮発性メモリが、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスによりアクセスされる第１の記憶領域（仮想メモリ管理記憶領域）と、変換情報に基づく変換がなされていない物理アドレスによりアクセスされる第２の記憶領域（物理メモリ管理記憶領域）とを有し、所定の条件が満たされた場合に、何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する。【選択図】図４
2019148907.tif 000002
【特許請求の範囲】
【請求項１】
ＯＳにより管理される第１の記憶領域及び第２の記憶領域を有する不揮発性メモリと、前記ＯＳを実行する処理部と、を有する電子情報記憶媒体であって、
前記処理部は、
仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第１の記憶領域にアクセスする第１アクセス手段、
前記変換情報に基づく変換がなされていない物理アドレスにより前記第２の記憶領域にアクセスする第２アクセス手段、
所定の条件が満たされた場合に、前記第１の記憶領域及び前記第２の記憶領域の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する付与手段、
として機能することを特徴とする電子情報記憶媒体。
【請求項２】
請求項１に記載の電子情報記憶媒体であって、
前記第１の記憶領域及び第２の記憶領域はそれぞれ連続する領域であり、且つ、前記第１の記憶領域と第２の記憶領域は連続しており、
前記付与手段は、前記一方の記憶領域における一部の領域であって、且つ、前記第１の記憶領域と前記第２の記憶領域の境界に接する領域を、他方の記憶領域に付与することを特徴とする電子情報記憶媒体。
【請求項３】
請求項２に記載の電子情報記憶媒体であって、
前記付与手段は、前記第１の記憶領域及び前記第２の記憶領域の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する場合に、前記一部の領域の状態が空き状態であることを条件に付与することを特徴とする電子情報記憶媒体。
【請求項４】
請求項３に記載の電子情報記憶媒体であって、
前記処理部は
前記第１の記憶領域における一部の領域を前記第２の記憶領域に付与する場合において、前記一部の領域の状態が使用状態である場合に、前記第１の記憶領域における空き状態である領域に当該一部の領域のデータをコピーするコピー手段、
前記コピー手段によるコピーが行われる場合に、前記一部の領域を示す物理アドレスに変換するための前記変換情報を、前記データがコピーされた領域を示す物理アドレスに変換するための前記変換情報に更新する変換情報更新手段、
前記コピー手段によるコピーが行われる場合に、前記一部の領域の状態を空き状態に変更し、前記データがコピーされた領域の状態を使用状態に変更する第１状態更新手段、
として更に機能し、
前記付与手段は、前記空き状態となった前記一部の領域を前記第２の記憶領域に付与することを特徴とする電子情報記憶媒体。
【請求項５】
請求項３又は４に記載の電子情報記憶媒体であって、
前記処理部は、
前記第１の記憶領域における一部の領域を前記第２の記憶領域に付与する場合において、前記一部の領域の状態が予約状態である場合に、前記第１の記憶領域における空き状態である領域の状態を予約状態に変更し、当該一部の領域の状態を空き状態に変更する第２状態更新手段、
として更に機能し、
前記付与手段は、前記空き状態となった前記一部の領域を前記第２の記憶領域に付与することを特徴とする電子情報記憶媒体。
【請求項６】
請求項１乃至５の何れか一項に記載の電子情報記憶媒体であって、
前記所定の条件は、前記第１の記憶領域の空き状態の領域が不足すること、又は、前記第２の記憶領域の空き状態の領域が不足すること、
であることを特徴とする電子情報記憶媒体。
【請求項７】
請求項１乃至６の何れか一項に記載の電子情報記憶媒体を備えるＩＣカード。
【請求項８】
ＯＳにより管理される第１の記憶領域及び第２の記憶領域を有する不揮発性メモリと、前記ＯＳを実行する処理部と、を有する電子情報記憶媒体情報処理方法であって、
前記処理部が、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第１の記憶領域にアクセスする第１アクセス工程と、
前記処理部が、前記変換情報に基づく変換がなされていない物理アドレスにより前記第２の記憶領域にアクセスする第２アクセス工程と、
前記処理部が、所定の条件が満たされた場合に、前記第１の記憶領域及び前記第２の記憶領域の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する付与工程と、
を含むことを特徴とする情報処理方法。
【請求項９】
ＯＳにより管理される第１の記憶領域及び第２の記憶領域を有する不揮発性メモリと、前記ＯＳを実行する処理部と、を有する電子情報記憶媒体における前記処理部を、
仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第１の記憶領域にアクセスする第１アクセス手段、
前記変換情報に基づく変換がなされていない物理アドレスにより前記第２の記憶領域にアクセスする第２アクセス手段、
所定の条件が満たされた場合に、前記第１の記憶領域及び前記第２の記憶領域の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する付与手段、
として機能させることを特徴とするＯＳ。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣ（Integrated Circuit）チップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
ＩＣチップなどの電子情報記憶媒体は、ＣＰＵ、ＲＡＭに加え、フラッシュメモリ等の不揮発性メモリを備え、不揮発性メモリにはＯＳ（Operating System）やアプリケーションプラグラム、各種データを記憶する。不揮発性メモリは沢山の記憶素子からなり、その構造上、数万〜数十万程度の書き換え回数の上限が存在し、その上限を超えた書き換えが行われた記憶素子については正常にデータの記録が行えなくなる。その上限による影響を受け難いようにするために、一般に不揮発性メモリについてウェアレベリング処理が行われている。
【０００３】
ウェアレベリング処理とは、書き換えが行われる記憶素子が特定のものに偏らないように分散することで、特定のデータについて繰り返し書き換えが発生した場合でもデバイス全体として記憶素子の消耗を平均化する技術である。ＯＳは、ウェアレベリング処理を実現するために、アプリケーションに対して見せるアドレスを仮想アドレスとする。そして、アプリケーションが仮想アドレスに対応するデータに対して書き込み又は読み込みの要求をした場合、ＯＳは自身が管理する仮想アドレスを物理アドレスに変換するための変換情報を用いて、仮想アドレスを物理アドレスにアドレス変換し、当該物理アドレスに記憶されたデータへの要求として処理する。これにより、例えば、アプリケーションから見て特定のデータに対して書き込みを繰り返す場合であっても、データの位置を変更するとともにこれに合わせて変換情報を更新することによって、複数の記憶素子にストレスを分散することができ、不揮発性メモリ全体として飛躍的に書き換え耐久性を向上させることができる。
【０００４】
特許文献１には、フラッシュメモリに対してウェアレベリング処理を行う記憶装置について開示されている。当該記憶装置は、ホストシステムから指示されたデータを記憶しておくためのユーザ領域と、各ブロックは消去済み状態であり、各ブロックの書き換え回数を平均化するために使用されるブロックのあつまりである代替領域とを備えるフラッシュメモリを備え、ユーザ領域中でデータが格納されていない論理セクタアドレスと物理セクタアドレスとの対応関係を解除するとともに、対応関係が解除された物理ブロックを消去し代替領域のブロックとして使用可能化する。これにより、ウェアレベリング処理に用いられる代替領域を増やすことができ、ウェアレベリング処理をより有効に行うことができるため、フラッシュメモリの寿命を伸ばすことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２３７６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ウェアレベリング処理により、不揮発性メモリの寿命を伸ばすことができる一方、仮想アドレスから物理アドレスへのアドレス変換を要するという特性による処理オーバーヘッドにより、アプリケーションの実行速度が低下するという問題がある。例えば、非接触決済用アプリケーションは、短時間に処理を完了させることが要求されるため実行速度の低下は致命的な欠陥となり得る。
【０００７】
そこで、ウェアレベリング処理を実現するために、仮想アドレスからアドレス変換した物理アドレスにより記憶領域にアクセスする仮想メモリ管理機構と、アドレス変換がなされていない物理アドレスにより記憶領域にアクセスする物理メモリ管理機構の双方を有する構成とすることが考えられる。この場合、仮想メモリ管理機構に対応する仮想メモリ管理記憶領域や、物理メモリ管理機構に対応する物理メモリ管理記憶領域といったように、不揮発性メモリの記憶領域をそれぞれの機構に割り当てて管理する必要がある。
【０００８】
ところが、アプリケーションやこれに関連するデータの追加や削除に伴い、仮想メモリ管理記憶領域や物理メモリ管理記憶領域が当初に割り当てられた記憶領域では不足する事態が発生することが想定される。
【０００９】
本発明は、こうした事情を勘案して、不揮発性メモリにおける仮想メモリ管理記憶領域と物理メモリ管理記憶領域の大きさを変更することができる電子情報記憶媒体等を提供することを課題とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、請求項１に記載の発明は、ＯＳにより管理される第１の記憶領域及び第２の記憶領域を有する不揮発性メモリと、前記ＯＳを実行する処理部と、を有する電子情報記憶媒体であって、前記処理部は、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第１の記憶領域にアクセスする第１アクセス手段、前記変換情報に基づく変換がなされていない物理アドレスにより前記第２の記憶領域にアクセスする第２アクセス手段、所定の条件が満たされた場合に、前記第１の記憶領域及び前記第２の記憶領域の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する付与手段、として機能することを特徴とする。
【００１１】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体であって、前記第１の記憶領域及び第２の記憶領域はそれぞれ連続する領域であり、且つ、前記第１の記憶領域と第２の記憶領域は連続しており、前記付与手段は、前記一方の記憶領域における一部の領域であって、且つ、前記第１の記憶領域と前記第２の記憶領域の境界に接する領域を、他方の記憶領域に付与することを特徴とする。
【００１２】
請求項３に記載の発明は、請求項２に記載の電子情報記憶媒体であって、前記付与手段は、前記第１の記憶領域における一部の領域を前記第２の記憶領域に付与する場合に、前記一部の領域の状態が空き状態であることを条件に付与することを特徴とする。
【００１３】
請求項４に記載の発明は、請求項３に記載の電子情報記憶媒体であって、前記処理部は前記第１の記憶領域における一部の領域を前記第２の記憶領域に付与する場合において、前記一部の領域の状態が使用状態である場合に、前記第１の記憶領域における空き状態である領域に当該一部の領域のデータをコピーするコピー手段、前記コピー手段によるコピーが行われる場合に、前記一部の領域を示す物理アドレスに変換するための前記変換情報を、前記データがコピーされた領域を示す物理アドレスに変換するための前記変換情報に更新する変換情報更新手段、前記コピー手段によるコピーが行われる場合に、前記一部の領域の状態を空き状態に変更し、前記データがコピーされた領域の状態を使用状態に変更する第１状態更新手段、として更に機能し、前記付与手段は、前記空き状態となった前記一部の領域を前記第２の記憶領域に付与することを特徴とする。
【００１４】
請求項５に記載の発明は、請求項３又は４に記載の電子情報記憶媒体であって、前記処理部は、前記第１の記憶領域における一部の領域を前記第２の記憶領域に付与する場合において、前記一部の領域の状態が予約状態である場合に、前記第１の記憶領域における空き状態である領域の状態を予約状態に変更し、当該一部の領域の状態を空き状態に変更する第２状態更新手段、として更に機能し、前記付与手段は、前記空き状態となった前記一部の領域を前記第２の記憶領域に付与することを特徴とする。
【００１５】
請求項６に記載の発明は、請求項１乃至５の何れか一項に記載の電子情報記憶媒体であって、前記所定の条件は、前記第１の記憶領域の空き状態の領域が不足すること、又は、前記第２の記憶領域の空き状態の領域が不足すること、であることを特徴とする。
【００１６】
請求項７に記載の発明は、請求項１乃至６の何れか一項に記載の電子情報記憶媒体を備えるＩＣカードである。
【００１７】
請求項８に記載の発明は、ＯＳにより管理される第１の記憶領域及び第２の記憶領域を有する不揮発性メモリと、前記ＯＳを実行する処理部と、を有する電子情報記憶媒体情報処理方法であって、前記処理部が、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第１の記憶領域にアクセスする第１アクセス工程と、前記処理部が、前記変換情報に基づく変換がなされていない物理アドレスにより前記第２の記憶領域にアクセスする第２アクセス工程と、前記処理部が、所定の条件が満たされた場合に、前記第１の記憶領域及び前記第２の記憶領域の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する付与工程と、を含むことを特徴とする。
【００１８】
請求項９に記載の発明は、ＯＳにより管理される第１の記憶領域及び第２の記憶領域を有する不揮発性メモリと、前記ＯＳを実行する処理部と、を有する電子情報記憶媒体における前記処理部を、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第１の記憶領域にアクセスする第１アクセス手段、前記変換情報に基づく変換がなされていない物理アドレスにより前記第２の記憶領域にアクセスする第２アクセス手段、所定の条件が満たされた場合に、前記第１の記憶領域及び前記第２の記憶領域の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する付与手段、として機能させることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、不揮発性メモリが、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスによりアクセスされる第１の記憶領域と、変換情報に基づく変換がなされていない物理アドレスによりアクセスされる第２の記憶領域とを有し、所定の条件が満たされた場合に、何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する。すなわち、不揮発性メモリにおける仮想メモリ管理記憶領域と物理メモリ管理記憶領域の大きさを変更することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係るＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。
【図２】本実施形態に係るＯＳの機能を説明するためブロック図である。
【図３】（Ａ）、（Ｂ）は、本実施形態に係る物理メモリ管理機構２１０と仮想メモリ管理機構２２０の概要を説明するための例図である。
【図４】（Ａ）−（Ｄ）は、仮想メモリ管理記憶領域２４０の一部を物理メモリ管理記憶領域２３０に付与する過程を示す例図である。
【図５】（Ａ）−（Ｃ）は、仮想メモリ管理記憶領域２４０の一部を物理メモリ管理記憶領域２３０に付与する過程を示す例図である。
【図６】（Ａ）−（Ｄ）は、仮想メモリ管理記憶領域２４０の一部を物理メモリ管理記憶領域２３０に付与する過程を示す例図である。
【図７】（Ａ）−（Ｃ）は、物理メモリ管理記憶領域２３０の一部を仮想メモリ管理記憶領域２４０に付与する過程を示す例図である。
【図８】本実施形態に係るＩＣチップ１ａがアプリケーションをインストールする際の基本処理の一例を示すシーケンス図である。
【図９】本実施形態に係るＯＳによるインスタンス生成時処理の一例を示すフローチャートである。
【図１０】本実施形態に係るＯＳによる境界変更処理の一例を示すフローチャートである。
【図１１】変形例２に係る物理メモリ管理記憶領域２３０Ａ、Ｂと仮想メモリ管理記憶領域２４０の概要を説明するための例図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣカードに搭載されるＩＣチップに対して本発明を適用した場合の実施の形態である。
【００２２】
［１．ＩＣチップ１ａの構成］
まず、図１を参照して、ＩＣカード１に搭載されるＩＣチップ１ａの構成について説明する。図１は、ＩＣチップ１ａのハードウェア構成例を示す図である。本実施形態のＩＣカード１は、接触によるデータ通信と非接触によるデータ通信の２つの通信機能を兼ね備えたデュアルインターフェース型ＩＣカードである。但し、ＩＣカード１の種類はデュアルインターフェース型ＩＣカードに限定されず、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードにＩＣチップ１ａがエンベットされた接触型ＩＣカードであってもよいし、また、アンテナコイルを内蔵し無線でリーダ・ライタとデータ通信する非接触型ＩＣカードであってもよい。
【００２３】
図１に示すように、ＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。ＣＰＵ１０は、ＲＯＭ１２又は不揮発性メモリ１３に記憶された各種プログラムを実行するプロセッサ（コンピュータ）である。なお、Ｉ／Ｏ回路１４は、外部機器２とのインターフェイスを担う。これにより、ＩＣチップ１ａは、リーダ・ライタを備える外部機器２との間で接触又は非接触で通信を行うことができる。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部機器２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部機器２の例としては、ＩＣカード発行機、ＡＴＭ、改札機、認証用ゲート等が挙げられる。或いは、ＩＣチップ１ａが通信機器に組み込まれる場合、外部機器２には通信機器の機能を担う制御部が該当する。
【００２４】
不揮発性メモリ１３には、例えばフラッシュメモリ、強誘電体メモリ又は「Electrically Erasable Programmable Read-Only Memory」を適用することができる。不揮発性メモリ１３は、ＩＣカードＯＳ（以下、「ＯＳ」という場合がある）や各種アプリケーション及びこれらが使用するデータを記憶する。
【００２５】
ＩＣチップ１ａにインストールされるアプリケーションは、例えば、ＪＡＶＡ（登録商標）でプログラミングされており、コンパイラによって中間言語と呼ばれる実行形式であるバイトコードに変換される。バイトコードは、算術や分岐といった命令を含んだデータ列であり、仮想マシン（Virtual Machine）により実行される。
【００２６】
［２．ＯＳの機能］
図２は、ＯＳの機能を説明するためのブロック図である。ＩＣチップ１ａ上で動作するＯＳは不揮発性メモリ１３を管理するために、物理メモリ管理機構２１０と、仮想メモリ管理機構２２０を実現する。また、物理メモリ管理機構２１０には、不揮発性メモリ１３上の物理メモリ管理記憶領域２３０が割り当てられ、仮想メモリ管理機構２２０には、不揮発性メモリ１３上の仮想メモリ管理記憶領域２４０が割り当てられる。アプリケーションに関するデータは、物理メモリ管理機構２１０に管理される物理メモリ管理記憶領域２３０、又は、仮想メモリ管理機構２２０に管理される仮想メモリ管理記憶領域２４０に記憶される。
【００２７】
図３（Ａ）に示すように、物理メモリ管理機構２１０には、不揮発性メモリ１３（実メモリ空間）の一部が物理メモリ管理記憶領域２３０として割り当てられる。また、仮想メモリ管理機構２２０にも、不揮発性メモリ１３の一部が仮想メモリ管理記憶領域２４０として割り当てられる。
【００２８】
物理メモリ管理機構２１０は、アプリケーションが扱うアドレスをアドレス変換せずに物理アドレスとして扱い、不揮発性メモリ１３（実メモリ空間）の位置を特定する機構である。一方、仮想メモリ管理機構２２０は、仮想メモリ空間を提供し、アプリケーションが扱うアドレス（仮想アドレス）を変換情報（仮想アドレスを物理アドレスに変換するための情報（図示しない））に基づいて変換し、アドレス変換後の物理アドレスにより不揮発性メモリ１３（実メモリ空間）の位置を特定する機構である。なお、変換情報は不揮発性メモリ１３に記憶されるとともに、ＯＳが仮想メモリ管理機構２２０を実現する際にＲＡＭ１１に複写されてアドレス変換に利用される。また、ＲＡＭ１１の変換情報が更新された場合には、その更新内容が不揮発性メモリ１３の変換情報に反映される。
【００２９】
ここで、物理メモリ管理機構２１０と仮想メモリ管理機構２２０についてデータを読み込む速度を比較すると、物理メモリ管理機構２１０はアドレス変換をしない一方、仮想メモリ管理機構２２０はアドレス変換をするため、物理メモリ管理記憶領域２３０に記憶されているデータを読み込む速度は、仮想メモリ管理記憶領域２４０に記憶されているデータを読み込む速度より速い。
【００３０】
次に、物理メモリ管理機構２１０と仮想メモリ管理機構２２０についてデータを書き換える時間を比較する。ＯＳは、不揮発性メモリ１３上のデータを書き換える際には、トランザクション制御を行う。トランザクション制御は、データの書き込みに関する一連の処理が電源断等により中断した場合に、一連の処理の開始前又は終了後の状態とする制御である。
【００３１】
物理メモリ管理記憶領域２３０のデータに対して行うトランザクション制御は、次の（１）〜（４）の手順で実行され、（１）〜（４）の手順で不揮発性メモリ１３への書き込みを伴う。
（１）更新前のデータが記憶されているページのコピーを不揮発性メモリ１３に書き込む（バックアップ）
（２）ログ情報（電源断発生時にＯＳの初期化処理の一環で、バックアップしたデータで一連の処理の開始前に戻すための情報）を作成し、不揮発性メモリ１３に書き込む
（３）該当ページに更新後のデータを書き込む
（４）（２）で作成して不揮発性メモリ１３に記憶させたログ情報を消去する
【００３２】
一方、仮想メモリ管理記憶領域２４０のデータに対して行うトランザクション制御は、次の手順で実行され、（１）、（３）の手順で不揮発性メモリ１３への書き込みを伴う。
（１）更新後のデータを更新前のデータが記憶されているページとは異なるページに書き込む
（２）ＲＡＭ１１上の変換情報を更新する
（３）ＲＡＭ１１上の変換情報の更新を不揮発性メモリ１３上の変換情報に反映する
【００３３】
このように、物理メモリ管理記憶領域２３０のデータに対して行うトランザクション制御時の不揮発性メモリ１３への書き込み回数は、仮想メモリ管理記憶領域２４０のデータに対して行うトランザクション制御時の不揮発性メモリ１３への書き込み回数よりも多い。そのため、物理メモリ管理記憶領域２３０のデータに対して行うトランザクション制御に要する処理時間は、仮想メモリ管理記憶領域２４０のデータに対して行うトランザクション制御に要する処理時間よりも長い。これにより、仮想メモリ管理記憶領域２４０のデータを書き換える時間は、物理メモリ管理記憶領域２３０のデータを書き換える時間よりも短い。
【００３４】
次に、物理メモリ管理機構２１０と仮想メモリ管理機構２２０について、不揮発性メモリ１３の記憶素子に対するストレスを比較する。物理メモリ管理機構２１０では、データが物理メモリ管理記憶領域２３０に固定的に配置されるため、当該データの書き換え頻度が高いと、当該データを記憶する記憶素子にストレスが集中し、製品寿命が短くなる。一方、仮想メモリ管理機構２２０では、所定の再配置条件が満たされた場合に（例えば、データの書き換え時又は定期的に）、仮想メモリ管理記憶領域２４０における使用頻度の低い位置にデータが再配置されるため、ストレスが平準化され、製品寿命が長くなる。なお、物理メモリ管理記憶領域２３０の一部が故障すると製品としての故障に直結するが、仮想メモリ管理記憶領域２４０の一部が故障しても他の領域へデータを移動することができるため、製品としての故障に繋がらない。
【００３５】
このように、物理メモリ管理機構２１０（物理メモリ管理記憶領域２３０）と仮想メモリ管理機構２２０（仮想メモリ管理記憶領域２４０）には夫々特性があることから、その特性に応じて、アプリケーションに関するデータを配置することが好ましい。具体的には、物理メモリ管理記憶領域２３０には、書き換え頻度より読み込み頻度が高いデータを記憶させ、仮想メモリ管理記憶領域２４０には、読み込み頻度より書き換え頻度が高いデータを記憶させるのが好ましい。例えば、図３（Ｂ）に示すように、書き換え頻度より読み込み頻度が高い、プログラムコード（ＣＰＵが読み込み、解釈して、実行するというサイクルが繰り返されるため、処理速度に与える影響が大きい）及びアプリケーションデータ（アプリケーションで利用されるデータ）といったデータを物理メモリ管理記憶領域２３０に記憶させ、読み込み頻度より書き換え頻度が高いカウンタ（アプリケーションで利用されるカウンタ）といったデータを仮想メモリ管理記憶領域２４０に記憶させる。なお、読み込み頻度より書き換え頻度が高いデータであっても、高速で読み出すことを重視するデータについては、故障のリスクを把握した上で、物理メモリ管理記憶領域２３０に記憶させることとしてもよい。
【００３６】
ここで、プログラムコード、アプリケーションデータ及びカウンタなどのアプリケーションに関するデータを、物理メモリ管理記憶領域２３０と仮想メモリ管理記憶領域２４０の何れにどのように配置するかについて説明する。まず、プログラムコードは、基本的に書き換えが行われず頻繁に読み込まれるデータであるため、サーバ等からプログラムコードがロードされると、ＯＳは物理メモリ管理記憶領域２３０に配置する。一方、アプリケーションデータやカウンタなどについては、その用途をＯＳは把握できないため、アプリケーション側から何れに配置するかを指定してもらい配置するのが好ましい。例えば、ＯＳはアプリケーションのインストール時に、プログラムコードに記述されたインスタンスを生成する処理手順を実行する中で、処理手順にて指定された何れかの記憶領域に記憶させる。また、何れかの記憶領域をインストールパラメータで指定することとしてもよい。更に、データにタグを付けておいて、仮想アドレス管理記憶領域２４０に配置するデータのタグ一覧をコマンドに組み込むこととし、それに従ってＯＳが何れかの領域に配置することとしてもよい。
【００３７】
ところで、仮想メモリ管理記憶領域２４０や物理メモリ管理記憶領域２３０は、アプリケーションやこれに関連するデータの追加や削除に伴い、当初に割り当てられた記憶領域では不足する事態が発生することがある。ＯＳは、仮想メモリ管理記憶領域２４０と物理メモリ管理記憶領域２３０の何れか一方で記憶領域が不足する場合に他方の記憶領域の一部を付与する。例えば、ＯＳが、仮想メモリ管理記憶領域２４０や物理メモリ管理記憶領域２３０に、プログラムコード、アプリケーションデータ及びカウンタなどのアプリケーションに関するデータを記憶させようとした場合に、記憶領域が不足して記憶させることができない場合に、記憶領域の付与を行う。以下、図４−図７を用いて、具体的に説明する。
【００３８】
図４−図７では、不揮発性メモリ１３における「０１ｈ」から「０Ｅｈ」までの１４ページ分の記憶領域が、物理メモリ管理記憶領域２３０と仮想メモリ管理記憶領域２４０に割り当てられている。そして、物理メモリ管理記憶領域２３０と仮想メモリ管理記憶領域２４０の間には仮想的な境界２５０がある。ＯＳは境界２５０の位置を特定するための境界位置情報（図示しない）を保持する。例えば、ページ「０５ｈ」（以下、アドレスが「０５ｈ」のページを「ページ「０５ｈ」」といったように記載することがある）とページ「０６ｈ」の間が境界２５０である場合には、境界位置情報として「０６ｈ」を保持する。
【００３９】
図４−図７における変換情報３１０は、アドレス変換に用いられる情報であり、アドレス変換前のアドレス（上の行）と変換後のアドレス（下の行）からなる。例えば、図４（Ａ）の例では、「０１ｈ」から「０Ｂｈ」のアドレス変換前のアドレスのうち、「０１ｈ」から「０５ｈ」のアドレス変換前のアドレスが物理メモリ管理機構２１０に割り当てられ、「０６ｈ」から「０Ｂｈ」のアドレス変換前のアドレス（仮想アドレス）が、仮想メモリ管理機構２２０に割り当てられている。なお、「０１ｈ」から「０５ｈ」のアドレスに対応するアドレス変換後のアドレスとして全て「ＦＦｈ」が記述されているが、これは、「０１ｈ」から「０５ｈ」のアドレスが物理メモリ管理機構２１０に割り当てられていることを示しており、ＯＳは、アプリケーションにより「０１ｈ」から「０５ｈ」のアドレスが指定された場合には、変換情報３１０を参照せずに、当該アドレスが示す物理メモリ管理記憶領域２３０上のページに記憶されているデータを参照するか、変換情報３１０を参照した上で、アドレス変換後のアドレスとして「ＦＦｈ」が記述されていることに基づいて、アドレス変換前のアドレスが示す物理メモリ管理記憶領域２３０上のページに記憶されているデータを参照する。一方、ＯＳは、アプリケーションにより「０６ｈ」から「０Ｂｈ」の仮想アドレスが指定された場合には、変換情報３１０を参照した上で、アドレス変換後の物理アドレスが示す仮想メモリ管理記憶領域２４０上のページに記憶されているデータを参照する。例えば、ＯＳは、アプリケーションにより「０９ｈ」の仮想アドレスが指定された場合には、変換情報３１０を参照し、物理アドレス「０６ｈ」が示す仮想メモリ管理記憶領域２４０上のページに記憶されているデータを参照する。
【００４０】
図４−図７における状態管理テーブル３２０は、仮想メモリ管理記憶領域２４０や物理メモリ管理記憶領域２３０のそれぞれのページの状態が「使用」状態、「空き」状態、又は「予約」状態の何れの状態にあるかを示す。ＯＳは状態管理テーブル３２０を用いてそれぞれのページが何れの状態にあるかを管理する。「使用」状態はデータが記憶されていることを示しており、「空き」状態はデータが記憶されていないことを示しており、「予約」状態はその時点では「空き」状態であるが今後「使用」状態になることを示している。なお、仮想メモリ管理領域２４０については、ウェアレベリングを実現するために、所定数以上のページが「空き」状態となっていることが好ましい。
【００４１】
図４−図６は、仮想メモリ管理記憶領域２４０から物理メモリ管理記憶領域２３０に１ページ分の記憶領域を付与する場合の一例である。図４は不揮発性メモリ１３上のページ「０６ｈ」の状態が「使用」状態である場合の一例であり、図５は不揮発性メモリ１３上のページ「０６ｈ」の状態が「空き」状態である場合の一例であり、図６は不揮発性メモリ１３上のページ「０６ｈ」の状態が「予約」状態である場合の一例である。
【００４２】
まず、図４の例について説明する。ＯＳは、所定の条件が満たされた場合（例えば、物理メモリ管理記憶領域２３０に新たにデータを記憶させることができない場合）に、仮想メモリ管理記憶領域２４０の境界２５０に接するページ「０６ｈ」を物理メモリ管理記憶領域２３０に付与する。このとき、図４（Ａ）に示すように、ページ「０６ｈ」の状態は「使用」状態であるため、このままページ「０６ｈ」を付与することができない。
【００４３】
そこで、ＯＳは、ページ「０６ｈ」の状態を「空き」状態にする。具体的には、まず、仮想メモリ管理記憶領域２４０において「空き」状態であるページを検索する。ここでは、ページ「０８ｈ」を検索したとする。次いで、図４（Ｂ）に示すように、検索したページ「０８ｈ」にページ「０６ｈ」のデータをコピーし、状態管理テーブル３２０におけるこれらのページに対応する状態を更新する。すなわち、ページ「０６ｈ」の状態を「空き」状態、ページ「０８ｈ」の状態を「使用」状態にそれぞれ変更する。
【００４４】
次いで、ＯＳは、図４（Ｃ）に示すように変換情報を更新する。すなわち、変換前のアドレス「０Ｂｈ」に対応する変換後のアドレスを「０６ｈ」から「０８ｈ」に変更する。また、変換前のアドレス「０６ｈ」に対応する変換後のアドレスを「００ｈ」から「ＦＦｈ」に変更する。
【００４５】
次いで、ＯＳは、図４（Ｄ）に示すように、境界２５０の位置を変更する。すなわち、境界位置情報を変更する。
【００４６】
次に、図５の例について説明する。ＯＳは、所定の条件が満たされた場合（例えば、物理メモリ管理記憶領域２３０に新たにデータを記憶させることができない場合）に、仮想メモリ管理記憶領域２４０の境界２５０に接するページ「０６ｈ」を物理メモリ管理記憶領域２３０に付与する。このとき、図５（Ａ）に示すように、ページ「０６ｈ」の状態は「空き」状態であるため、このままページ「０６ｈ」を付与することができる。
【００４７】
そこで、ＯＳは、図５（Ｂ）に示すように変換情報を更新する。すなわち、変換前のアドレス「０６ｈ」に対応する変換後のアドレスを「００ｈ」から「ＦＦｈ」に変更する。
【００４８】
次いで、ＯＳは、図５（Ｃ）に示すように、境界２５０の位置を変更する。すなわち、境界位置情報を変更する。
【００４９】
次に、図６の例について説明する。ＯＳは、所定の条件が満たされた場合（例えば、物理メモリ管理記憶領域２３０に新たにデータを記憶させることができない場合）に、仮想メモリ管理記憶領域２４０の境界２５０に接するページ「０６ｈ」を物理メモリ管理記憶領域２３０に付与する。このとき、図６（Ａ）に示すように、ページ「０６ｈ」の状態は「予約」状態であるため、このままページ「０６ｈ」を付与することができない。
【００５０】
そこで、ＯＳは、ページ「０６ｈ」の状態を「空き」状態にする。具体的には、仮想メモリ管理記憶領域２４０において「空き」状態であるページを検索する。ここでは、ページ「０７ｈ」を検索したとする。次いで、図６（Ｂ）に示すように、状態管理テーブル３２０におけるページ「０６ｈ」及びページ「０７ｈ」の状態を更新する。すなわち、ページ「０６ｈ」の状態を「空き」状態、ページ「０７ｈ」の状態を「予約」状態にそれぞれ変更する。
【００５１】
次いで、ＯＳは、図６（Ｃ）に示すように変換情報を更新する。すなわち、変換前のアドレス「０６ｈ」に対応する変換後のアドレスを「００ｈ」から「ＦＦｈ」に変更する。
【００５２】
次いで、ＯＳは、図６（Ｄ）に示すように、境界２５０の位置を変更する。すなわち、境界位置情報を変更する。
【００５３】
一方、図７は、物理メモリ管理記憶領域２３０から仮想メモリ管理記憶領域２４０に１ページ分の記憶領域を付与する場合の一例である。
【００５４】
まず、図７の例について説明する。ＯＳは、所定の条件が満たされた場合（例えば、仮想メモリ管理記憶領域２４０に新たにデータを記憶させることができない場合）に、物理メモリ管理記憶領域２３０の境界２５０に接するページ「０５ｈ」を仮想メモリ管理記憶領域２４０に付与する。このとき、図７（Ａ）に示すように、ページ「０５ｈ」の状態は「空き」状態であるため、このままページ「０５ｈ」を付与することができる。
【００５５】
そこで、ＯＳは、図７（Ｂ）に示すように変換情報を更新する。すなわち、変換前のアドレス「０５ｈ」に対応する変換後のアドレスを「ＦＦｈ」から「００ｈ」に変更する。
【００５６】
次いで、ＯＳは、図７（Ｃ）に示すように、境界２５０の位置を変更する。すなわち、境界位置情報を変更する。
【００５７】
なお、図７の例において、仮にページ「０５ｈ」の状態が「使用」状態である場合には、ページ「０５ｈ」のデータを、物理メモリ管理記憶領域２３０の他の「空き」状態であるページにコピーして、ページ「０５ｈ」の状態を「空き」状態としてから付与する。
【００５８】
次に、アプリケーションに関するデータを不揮発性メモリ１３に配置する際の処理例について説明する。
【００５９】
［３．基本処理］
まず、図８を用いて、ＩＣチップ１ａが、サーバからアプリケーションを受信してインストールする際の基本的な処理の流れについて説明する。
【００６０】
ステップＳ１において、サーバはＩＣチップ１ａに対してＩＣチップ１ａ内の管理アプリケーションであるＳＤ（Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎ）であって、インストールするアプリケーションを管理するＳＤとの通信路を形成するためにＳＥＬＥＣＴコマンドを送信する。ＳＥＬＥＣＴコマンドは、通信路の相手先となるアプリケーションを識別するＩＤであるＡＩＤと、当該アプリケーションとの通信路（ロジカルチャネル）を識別するロジカルチャネル番号を含む。これに対して、ＩＣチップ１ａのＯＳ（を実行するＣＰＵ１０）はコマンドに応じて通信路を形成するための処理を実行し、ＯＫレスポンスをサーバに送信する。但し、コマンドに応じた処理を正常終了できなかった場合にはエラーが発生したことを示すレスポンスをサーバに送信する（以下、ステップＳ２〜Ｓ９について同様）。これにより、ロジカルチャネル番号で識別される通信路（ロジカルチャネル）が形成され、以降、サーバはコマンドに当該ロジカルチャネル番号を含ませることにより、当該ロジカルチャネル番号で識別される通信路を介して、ＳＤと通信を行うことができる。
【００６１】
次いで、ステップＳ２及びステップＳ３において、サーバは、通信路の機密性を高めるためにそれまでに形成した通信路（ロジカルチャネル）をセキュアな通信路にするセキュア処理（ＳＣＰでコマンドを保護するための相互認証処理）を実行する。相互認証処理は、プロトコルで決められたアルゴリズムに従い、暗号演算の元となる鍵を互いが知っているという前提の下、サーバとＩＣチップ１ａが互いを認証する処理である。具体的には、サーバが相互認証用のコマンドであるＩＮＩＴＩＡＬＩＺＥ  ＵＰＤＡＴＥコマンド及びＥＸＴＥＲＮＡＬ  ＡＵＴＨＥＮＴＩＣＡＴＥコマンドをＩＣチップ１ａに送信し、ＩＣチップ１ａのＯＳがそれぞれのコマンドに応じた処理を実行し、正常に処理を完了するとＯＫレスポンスをサーバに送信することにより行われる。
【００６２】
次いで、ステップＳ４において、サーバは、ＩＮＳＴＡＬＬ［ｆｏｒ  ｌｏａｄ］コマンドをＩＣチップ１ａに送信する。ＩＮＳＴＡＬＬ［ｆｏｒ  ｌｏａｄ］コマンドでは、後からＬＯＡＤコマンドにより送信されるプログラムコードのＡＩＤの長さ等が送信される。これに対して、ＩＣチップ１ａのＯＳがコマンドに応じた処理を実行し、正常に処理を完了するとＯＫレスポンスをサーバに送信する。
【００６３】
次いで、ステップＳ５〜ステップＳ８において、サーバは、プログラムコードをＮ個に分割して、それぞれ、ＬＯＡＤコマンド（１ｓｔ）〜ＬＯＡＤコマンド（Ｎｔｈ（ｌａｓｔ））によりＩＣチップ１ａに送信する。これに対して、ＩＣチップ１ａのＯＳはそれぞれのＬＯＡＤコマンドに応じた処理を実行し、正常に処理を完了するとＯＫレスポンスをサーバに送信する。
【００６４】
次いで、ステップＳ９において、サーバは、ＩＮＳＴＡＬＬ［ｆｏｒ  ｉｎｓｔａｌｌ］コマンドをＩＣチップ１ａに送信する。これに対して、ＩＣチップ１ａのＯＳは、先にロードされたプログラムコードに基づき、インスタンスの生成処理を実行し、正常に処理を完了するとＯＫレスポンスをサーバに送信する。
【００６５】
次いで、ステップＳ１０において、サーバは、アプリケーションをインスタンス化して得られたインスタンスを選択するためのＳＥＬＥＣＴコマンドをＩＣチップ１ａに送信する。これに対して、ＩＣチップ１ａのＯＳは、ＳＥＬＥＣＴコマンドで指定されたインスタンスを選択し、ＯＫレスポンスをサーバに送信する。
【００６６】
次いで、ステップＳ１１において、サーバは、ステップＳ１０において選択したインスタンス（アプリケーション）がサポートするＡｐｐｌｉｃａｔｉｏｎ'ｓ  Ｐｒｏｐｒｉｅｔａｒｙコマンドにより、アプリケーションに関するデータ（インスタンス）を生成する。このとき、何れの記憶領域に当該インスタンスを配置するかを指定する。これに対して、ＩＣチップ１ａのＯＳは、Ａｐｐｌｉｃａｔｉｏｎ'ｓ  Ｐｒｏｐｒｉｅｔａｒｙコマンドに基づいて、アプリケーションに関するデータ（インスタンス）を生成し、当該コマンドで指定された記憶領域に配置する。ＯＳは、例えば、物理メモリ管理記憶領域２３０が指定された場合には、アプリケーションに関するデータ（インスタンス）３４１を物理メモリ管理記憶領域２３０に配置する。
【００６７】
このように、プログラムコード以外のアプリケーションに関するデータについては、ＩＮＳＴＡＬＬ［ｆｏｒ  ｉｎｓｔａｌｌ］コマンド、又は、Ａｐｐｌｉｃａｔｉｏｎ'ｓ  Ｐｒｏｐｒｉｅｔａｒｙコマンドで生成するインスタンスとして、物理メモリ管理記憶領域２３０又は仮想メモリ管理記憶領域２４０に配置することができる。
【００６８】
［４．インスタンス生成時処理］
次に、図９を用いて、ＯＳによるインスタンス生成時処理について説明する。インスタンス生成時処理は、上述した基本処理のステップＳ９〜ステップＳ１１において、コマンドを受信した場合に実行される処理である。
【００６９】
まず、ＯＳ（を実行するＣＰＵ１０）は、命令を取得する（ステップＳ２０１）。次いで、ステップＳ２０１の処理で取得した命令はインスタンス生成命令であるか否かを判定する（ステップＳ２０２）。ＯＳは、インスタンス生成命令ではないと判定した場合には（ステップＳ２０２：ＮＯ）、命令を実行し（ステップＳ２０６）、ステップＳ２０７の処理に移行する。一方、ＯＳは、インスタンス生成命令であると判定した場合には（ステップＳ２０２：ＹＥＳ）、インスタンス生成命令により指定されているインスタンスの生成先の記憶領域に空きがあるか否かを判定する（ステップＳ２０３）。
【００７０】
ＯＳは、インスタンスの生成先の記憶領域に空きがあると判定した場合には（ステップＳ２０３：ＹＥＳ）、インスタンスを生成するという命令を実行し（ステップＳ２０６）、ステップＳ２０７の処理に移行する。一方、ＯＳは、インスタンスの生成先の記憶領域に空きがないと判定した場合には（ステップＳ２０３：ＮＯ）、次いで、他方の記憶領域に融通可能な空きがあるか否かを判定する（ステップＳ２０４）。他方とは、インスタンスの生成先が物理メモリ管理記憶領域２３０であれば仮想メモリ管理記憶領域２４０であり、仮想メモリ管理記憶領域２４０であれば物理メモリ管理記憶領域２３０である。
【００７１】
ＯＳは、他方の記憶領域に融通可能な空きがないと判定した場合には（ステップＳ２０４：ＮＯ）、エラー処理（インスタンスを記憶する記憶領域がないことを示すエラーレスポンスをサーバに返信する）を実行し（ステップ２０８）、当該フローチャートの処理を終了する。一方、ＯＳは、他方の記憶領域に融通可能な空きがあると判定した場合には（ステップＳ２０４：ＹＥＳ）、図１０を用いて後述する境界変更処理を実行し（ステップＳ２０５）、次いで、命令を実行し（ステップＳ２０６）、ステップＳ２０７の処理に移行する。
【００７２】
ＯＳは、ステップＳ２０６の処理を終えると、次いで、コマンド処理は終了か否かを判定する（ステップＳ２０７）。ＯＳは、コマンド処理は終了ではないと判定した場合には（ステップＳ２０７：ＮＯ）、ステップＳ２０１の処理に移行する。一方、ＯＳは、コマンド処理は終了であると判定した場合には（ステップＳ２０７：ＹＥＳ）、当該フローチャートの処理を終了する。
【００７３】
［５．境界変更処理］
次に、図１０を用いて境界変更処理について説明する。境界変更処理は、図９のステップＳ２０５の処理で実行される処理である。
【００７４】
まず、ＯＳ（を実行するＣＰＵ１０）は、融通する側の境界２５０に接するページの状態は「空き」状態であるか否かを判定する（ステップＳ３０１）。融通する側とは、インスタンスの生成先ではない他方の記憶領域である。例えば、インスタンスの生成先が仮想メモリ管理記憶領域２４０であれば、物理メモリ管理記憶領域２３０であり、インスタンスの生成先が物理メモリ管理記憶領域２３０であれば、仮想メモリ管理記憶領域２４０である。
【００７５】
ＯＳは、融通する側の境界２５０に接するページの状態は「空き」状態であると判定した場合には（ステップＳ３０１：ＹＥＳ）、変換情報を更新する（ステップＳ３０６）。すなわち、融通する側が仮想メモリ管理記憶領域２４０である場合には、融通する側の境界２５０に接するページに対応する変換情報のアドレス変換後のアドレスを「ＦＦｈ」に変更する（図４の（Ｃ）、図５の（Ｂ）、図６の（Ｃ）参照）。一方、融通する側が物理メモリ管理記憶領域２３０である場合には、融通する側の境界２５０に接するページに対応する変換情報の変換後のアドレスを「００ｈ」に変更する（図７の（Ｂ））。
【００７６】
一方、ＯＳは、融通する側の境界２５０に接するページの状態は「空き」状態ではないと判定した場合には（ステップＳ３０１：ＮＯ）、次いで、融通する側の「空き」状態のページを検索する（ステップＳ３０２）。
【００７７】
次に、ＯＳは、融通する側の境界２５０に接するページの状態が「予約」状態であるか否かを判定する（ステップＳ３０３）。ＯＳは、融通する側の境界２５０に接するページの状態が「予約」状態ではない（すなわち、「使用」状態である）と判定した場合には（ステップＳ３０３：ＮＯ）、融通する側の境界２５０に接するページを、ステップＳ３０２の処理で検索した「空き」状態のページにコピーする（ステップＳ３０４）。そして、ＯＳは、状態管理テーブルを更新する（ステップＳ３０５）。具体的には、ＯＳは、融通する側の境界２５０に接するページについて「使用」状態から「空き」状態に変更するとともに、ステップＳ３０２の処理で検索したページについて「空き」状態から「使用」状態に変更する。
【００７８】
一方、ＯＳは、融通する側の境界２５０に接するページの状態が「予約」状態であると判定した場合には（ステップＳ３０３：ＹＥＳ）、ＯＳは、状態管理テーブルを更新する（ステップＳ３０５）。具体的には、ＯＳは、融通する側の境界２５０に接するページの状態を「予約」状態から「空き」状態に変更するとともに、ステップＳ３０２の処理で検索したページについて「空き」状態から「予約」状態に変更する。
【００７９】
ＯＳは、ステップＳ３０５の処理を終えると、変換情報を更新する（ステップＳ３０６）。すなわち、融通する側が仮想メモリ管理記憶領域２４０である場合には、融通する側の境界２５０に接するページに対応する変換情報のアドレス変換後のアドレスを「ＦＦｈ」に変更する。一方、融通する側が物理メモリ管理記憶領域２３０である場合には、融通する側の境界２５０に接するページに対応する変換情報のアドレス変換後のアドレスを「００ｈ」に変更する。また、ステップＳ３０３の処理で「ＮＯ」と判定して、ステップＳ３０４の処理を行った場合であれば、コピー元のページを示しているアドレス変換後のアドレスがコピー先のページを示すアドレス変換後のアドレスになるように更新する（図４の（Ｃ））。
【００８０】
次に、ＯＳは、境界２５０を変更すべく境界位置情報を更新し（ステップＳ３０７）、当該フローチャードに示す処理を終了する。
【００８１】
以上のように、本実施形態のＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、ＯＳにより管理される仮想メモリ管理記憶領域２４０（「第１の記憶領域」の一例）及び物理メモリ管理記憶領域２３０（「第２の記憶領域」の一例）を有する不揮発性メモリ１３と、ＯＳを実行するＣＰＵ１０（「処理部」の一例）と、を有し、する電子情報記憶媒体であって、ＣＰＵ１０（「第１アクセス手段」、「第２アクセス手段」及び「付与手段」の一例）は、仮想アドレスを物理アドレスにアドレス変換するための変換情報３１０に基づいて変換された物理アドレスにより仮想メモリ管理記憶領域２４０にアクセスし、変換情報３１０に基づくアドレス変換がなされていない物理アドレスにより物理メモリ管理記憶領域２３０にアクセスし、所定の条件が満たされた場合に、仮想メモリ管理記憶領域２４０及び物理メモリ管理記憶領域２３０の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する。
【００８２】
したがって、本実施形態のＩＣチップ１ａによれば、不揮発性メモリ１３が、仮想アドレスを物理アドレスに変換するための変換情報３１０に基づいてアドレス変換された物理アドレスによりアクセスされる仮想メモリ管理記憶領域２４０と、変換情報３１０に基づくアドレス変換がなされていない物理アドレスによりアクセスされる物理メモリ管理記憶領域２４０とを有し、所定の条件が満たされた場合に、何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する。すなわち、不揮発性メモリ１３における仮想メモリ管理記憶領域２４０と物理メモリ管理記憶領域２３０の大きさを変更することができる。
【００８３】
また、仮想メモリ管理記憶領域２４０及び物理メモリ管理記憶領域２３０はそれぞれ連続する領域であり、且つ、仮想メモリ管理記憶領域２４０と物理メモリ管理記憶領域２３０は連続しており、ＣＰＵ１０は、一方の記憶領域における一部の領域であって、且つ、仮想メモリ管理記憶領域２４０と物理メモリ管理記憶領域２３０の境界２５０に接する領域を、他方の記憶領域に付与する。よって、一部の領域の付与後においても、仮想メモリ管理記憶領域２４０及び物理メモリ管理記憶領域２３０はそれぞれ連続する領域となることから、それぞれの記憶領域の管理が容易となる。
【００８４】
更に、ＣＰＵ１０は、仮想メモリ管理記憶領域２４０及び物理メモリ管理記憶領域２３０の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する場合に、一部の領域の状態が空き状態であることを条件に付与する。これにより、「使用」状態又は「予約」状態である記憶領域が他の記憶領域に付与されることを防ぐことができる。
【００８５】
更にまた、ＣＰＵ１０（「コピー手段」、「変換情報更新手段」、「第１状態更新手段」の一例）は、仮想メモリ管理記憶領域２４０における一部の領域を物理メモリ管理記憶領域２３０に付与する場合において、一部の領域の状態が「使用」状態である場合に、仮想メモリ管理記憶領域２４０における「空き」状態である領域に当該一部の領域のデータをコピーし、当該コピーが行われる場合に、一部の領域を示す物理アドレスに変換するための変換情報３１０を、データがコピーされた領域を示す物理アドレスに変換するための変換情報３１０に更新し、また、当該コピーが行われる場合に、一部の領域の状態を「空き」状態に変更し、データがコピーされた領域の状態を「使用」状態に変更し、「空き」状態となった一部の領域を物理メモリ管理記憶領域２３０に付与する。
【００８６】
更にまた、ＣＰＵ１０（「第２状態更新手段」の一例）は、仮想メモリ管理記憶領域２４０における一部の領域を物理メモリ管理記憶領域２３０に付与する場合において、一部の領域の状態が「予約」状態である場合に、仮想メモリ管理記憶領域２４０における「空き」状態である領域の状態を「予約」状態に変更し、当該一部の領域の状態を「空き」状態に変更し、「空き」状態となった一部の領域を物理メモリ管理記憶領域２３０に付与する。
【００８７】
［６．変形例］
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は適宜組み合わせることができる。
【００８８】
［６．１．変形例１］
上記実施形態では、ＯＳが、仮想メモリ管理記憶領域２４０や物理メモリ管理記憶領域２３０に、プログラムコード、アプリケーションデータ及びカウンタなどのアプリケーションに関するデータを記憶させようとした場合に、記憶領域が不足して記憶させることができない場合に、記憶領域の付与を行うこととしたが、所定の条件が満たされた場合に、記憶領域の付与を行うこととしてもよい。例えば、所定の条件として、仮想メモリ管理記憶領域２４０の「使用」状態の領域が第１の閾値に達すること、又は、物理メモリ管理記憶領域２３０の「使用」状態の領域が第２の閾値に達すること、という条件を設定することとしてもよい。「第１の閾値」、「第２の閾値」はＩＣチップ１ａの設計者や管理者等が任意に設定・変更することができるようにしてもよい。特に、仮想メモリ管理記憶領域２４０についてはウェアレベリングを実現できるために一定量の「空き」状態の領域を確保しておくことが好ましい。
【００８９】
［６．２．変形例２］
上記実施形態では、図４（Ａ）に示すように、不揮発性メモリ１３の前方側（ページのアドレスが「０１ｈ」）の側）の領域を、物理メモリ管理記憶領域２３０に割り当て、これに連続する領域を仮想メモリ管理記憶領域２４０に割り当てることとしたが、図１１に示すように、不揮発性メモリ１３の前方側及び後方側の２つの領域を物理メモリ管理記憶領域２３０に分けて割り当て（それぞれ物理メモリ管理記憶領域２３０Ａ、物理メモリ管理記憶領域２３０Ｂとする）、その間の領域を仮想メモリ管理記憶領域２４０に割り当てることとしてもよい。例えば、物理メモリ管理記憶領域２３０Ａには、プログラムコードや読み込み頻度が書き換え頻度より高いアプリケーションデータを記憶させ、物理メモリ管理記憶領域２３０Ｂには、ＯＳが使用するレジストリデータ等を記憶させることができる。そして、図１１に示すように、物理メモリ管理記憶領域２３０Ａにプログラムコード等を記憶させる場合、先頭から順に配置することが好ましく、一方、物理メモリ管理記憶領域２３０Ｂにレジストリデータ等を記憶させる場合、後方から順に配置することが好ましい。また、物理メモリ管理記憶領域２３０Ａや物理メモリ管理記憶領域２３０Ｂの「空き」状態の領域が不足してきた場合であっても、仮想メモリ管理記憶領域２４０の一部を付与することができる。そこで、当初は物理メモリ管理記憶領域２３０Ａや物理メモリ管理記憶領域２３０Ｂの領域を必要最小限だけ割り当て、その残りを、物理メモリ管理記憶領域２３０Ａと物理メモリ管理記憶領域２３０Ｂの間の仮想メモリ管理記憶領域２４０に割り当てることとすることにより、必要に応じて、その一部を物理メモリ管理記憶領域２３０Ａや物理メモリ管理記憶領域２３０Ｂに付与する運用ができる。こうした運用とすることにより、物理メモリ管理記憶領域２３０に不足が生じるまで、仮想メモリ管理記憶領域２４０についてウェアレベリング処理のために広い空き領域を使用することができ、延いては製品全体の寿命を伸ばすことができる。
【符号の説明】
【００９０】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
２  外部機器
【図１】
2019148907.tif 000003
【図２】
2019148907.tif 000004
【図３】
2019148907.tif 000005
【図４】
2019148907.tif 000006
【図５】
2019148907.tif 000007
【図６】
2019148907.tif 000008
【図７】
2019148907.tif 000009
【図８】
2019148907.tif 000010
【図９】
2019148907.tif 000011
【図１０】
2019148907.tif 000012
【図１１】
2019148907.tif 000013