JP7043886B2 - 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos - Google Patents

電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos Download PDF

Info

Publication number
JP7043886B2
JP7043886B2 JP2018032259A JP2018032259A JP7043886B2 JP 7043886 B2 JP7043886 B2 JP 7043886B2 JP 2018032259 A JP2018032259 A JP 2018032259A JP 2018032259 A JP2018032259 A JP 2018032259A JP 7043886 B2 JP7043886 B2 JP 7043886B2
Authority
JP
Japan
Prior art keywords
storage area
area
state
storage
physical address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018032259A
Other languages
English (en)
Other versions
JP2019148907A (ja
Inventor
宗志 深谷
満里子 野地
直樹 勝又
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2018032259A priority Critical patent/JP7043886B2/ja
Publication of JP2019148907A publication Critical patent/JP2019148907A/ja
Application granted granted Critical
Publication of JP7043886B2 publication Critical patent/JP7043886B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Description

IC(Integrated Circuit)チップ等の電子情報記憶媒体の技術分野に関する。
ICチップなどの電子情報記憶媒体は、CPU、RAMに加え、フラッシュメモリ等の不揮発性メモリを備え、不揮発性メモリにはOS(Operating System)やアプリケーションプラグラム、各種データを記憶する。不揮発性メモリは沢山の記憶素子からなり、その構造上、数万~数十万程度の書き換え回数の上限が存在し、その上限を超えた書き換えが行われた記憶素子については正常にデータの記録が行えなくなる。その上限による影響を受け難いようにするために、一般に不揮発性メモリについてウェアレベリング処理が行われている。
ウェアレベリング処理とは、書き換えが行われる記憶素子が特定のものに偏らないように分散することで、特定のデータについて繰り返し書き換えが発生した場合でもデバイス全体として記憶素子の消耗を平均化する技術である。OSは、ウェアレベリング処理を実現するために、アプリケーションに対して見せるアドレスを仮想アドレスとする。そして、アプリケーションが仮想アドレスに対応するデータに対して書き込み又は読み込みの要求をした場合、OSは自身が管理する仮想アドレスを物理アドレスに変換するための変換情報を用いて、仮想アドレスを物理アドレスにアドレス変換し、当該物理アドレスに記憶されたデータへの要求として処理する。これにより、例えば、アプリケーションから見て特定のデータに対して書き込みを繰り返す場合であっても、データの位置を変更するとともにこれに合わせて変換情報を更新することによって、複数の記憶素子にストレスを分散することができ、不揮発性メモリ全体として飛躍的に書き換え耐久性を向上させることができる。
特許文献1には、フラッシュメモリに対してウェアレベリング処理を行う記憶装置について開示されている。当該記憶装置は、ホストシステムから指示されたデータを記憶しておくためのユーザ領域と、各ブロックは消去済み状態であり、各ブロックの書き換え回数を平均化するために使用されるブロックのあつまりである代替領域とを備えるフラッシュメモリを備え、ユーザ領域中でデータが格納されていない論理セクタアドレスと物理セクタアドレスとの対応関係を解除するとともに、対応関係が解除された物理ブロックを消去し代替領域のブロックとして使用可能化する。これにより、ウェアレベリング処理に用いられる代替領域を増やすことができ、ウェアレベリング処理をより有効に行うことができるため、フラッシュメモリの寿命を伸ばすことができる。
特開2009-237668号公報
しかしながら、ウェアレベリング処理により、不揮発性メモリの寿命を伸ばすことができる一方、仮想アドレスから物理アドレスへのアドレス変換を要するという特性による処理オーバーヘッドにより、アプリケーションの実行速度が低下するという問題がある。例えば、非接触決済用アプリケーションは、短時間に処理を完了させることが要求されるため実行速度の低下は致命的な欠陥となり得る。
そこで、ウェアレベリング処理を実現するために、仮想アドレスからアドレス変換した物理アドレスにより記憶領域にアクセスする仮想メモリ管理機構と、アドレス変換がなされていない物理アドレスにより記憶領域にアクセスする物理メモリ管理機構の双方を有する構成とすることが考えられる。この場合、仮想メモリ管理機構に対応する仮想メモリ管理記憶領域や、物理メモリ管理機構に対応する物理メモリ管理記憶領域といったように、不揮発性メモリの記憶領域をそれぞれの機構に割り当てて管理する必要がある。
ところが、アプリケーションやこれに関連するデータの追加や削除に伴い、仮想メモリ管理記憶領域や物理メモリ管理記憶領域が当初に割り当てられた記憶領域では不足する事態が発生することが想定される。
本発明は、こうした事情を勘案して、不揮発性メモリにおける仮想メモリ管理記憶領域と物理メモリ管理記憶領域の大きさを変更することができる電子情報記憶媒体等を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体であって、前記処理部は、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス手段、前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス手段、所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与手段、前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が使用状態である場合に、前記第1の記憶領域における空き状態である領域に当該一部の領域のデータをコピーするコピー手段、前記コピー手段によるコピーが行われる場合に、前記一部の領域を示す物理アドレスに変換するための前記変換情報を、前記データがコピーされた領域を示す物理アドレスに変換するための前記変換情報に更新する変換情報更新手段、前記コピー手段によるコピーが行われる場合に、前記一部の領域の状態を空き状態に変更し、前記データがコピーされた領域の状態を使用状態に変更する第1状態更新手段、として機能させ、前記付与手段は、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする。
請求項2に記載の発明は、OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体であって、前記処理部は、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス手段、前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス手段、所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域を、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与手段、前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が予約状態である場合に、前記第1の記憶領域における空き状態である領域の状態を予約状態に変更し、当該一部の領域の状態を空き状態に変更する第2状態更新手段、として機能させ、前記付与手段は、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする。
請求項に記載の発明は、請求項1又は2に記載の電子情報記憶媒体であって、前記所定の条件は、前記第1の記憶領域の空き状態の領域が不足すること、又は、前記第2の記憶領域の空き状態の領域が不足すること、であることを特徴とする。
請求項に記載の発明は、請求項1乃至の何れか一項に記載の電子情報記憶媒体を備えるICカードである。
請求項に記載の発明は、OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体における情報処理方法であって、前記処理部が、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス工程と、前記処理部が、前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス工程と、前記処理部が、所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与工程と、前記処理部が、前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が使用状態である場合に、前記第1の記憶領域における空き状態である領域に当該一部の領域のデータをコピーするコピー工程と、前記処理部が、前記コピー工程によるコピーが行われる場合に、前記一部の領域を示す物理アドレスに変換するための前記変換情報を、前記データがコピーされた領域を示す物理アドレスに変換するための前記変換情報に更新する変換情報更新工程と、前記処理部が、前記コピー工程によるコピーが行われる場合に、前記一部の領域の状態を空き状態に変更し、前記データがコピーされた領域の状態を使用状態に変更する第1状態更新工程と、を含み、前記付与工程では、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする。
請求項6に記載の発明は、OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体における情報処理方法であって、前記処理部が、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス工程と、前記処理部が、前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス工程と、前記処理部が、所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域を、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与工程と、前記処理部が、前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が予約状態である場合に、前記第1の記憶領域における空き状態である領域の状態を予約状態に変更し、当該一部の領域の状態を空き状態に変更する第2状態更新工程と、を含み、前記付与工程では、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする。
請求項に記載の発明は、OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体における前記処理部を、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス手段、前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス手段、所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与手段、前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が使用状態である場合に、前記第1の記憶領域における空き状態である領域に当該一部の領域のデータをコピーするコピー手段、前記コピー手段によるコピーが行われる場合に、前記一部の領域を示す物理アドレスに変換するための前記変換情報を、前記データがコピーされた領域を示す物理アドレスに変換するための前記変換情報に更新する変換情報更新手段、前記コピー手段によるコピーが行われる場合に、前記一部の領域の状態を空き状態に変更し、前記データがコピーされた領域の状態を使用状態に変更する第1状態更新手段、として機能させ、前記付与手段は、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする。
請求項8に記載の発明は、OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体における前記処理部を、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス手段、前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス手段、所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域を、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与手段、前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が予約状態である場合に、前記第1の記憶領域における空き状態である領域の状態を予約状態に変更し、当該一部の領域の状態を空き状態に変更する第2状態更新手段、として機能させ、前記付与手段は、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする。
本発明によれば、不揮発性メモリが、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスによりアクセスされる第1の記憶領域と、変換情報に基づく変換がなされていない物理アドレスによりアクセスされる第2の記憶領域とを有し、所定の条件が満たされた場合に、何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する。すなわち、不揮発性メモリにおける仮想メモリ管理記憶領域と物理メモリ管理記憶領域の大きさを変更することができる。
本実施形態に係るICカード1に搭載されるICチップ1aのハードウェア構成例を示す図である。 本実施形態に係るOSの機能を説明するためブロック図である。 (A)、(B)は、本実施形態に係る物理メモリ管理機構210と仮想メモリ管理機構220の概要を説明するための例図である。 (A)-(D)は、仮想メモリ管理記憶領域240の一部を物理メモリ管理記憶領域230に付与する過程を示す例図である。 (A)-(C)は、仮想メモリ管理記憶領域240の一部を物理メモリ管理記憶領域230に付与する過程を示す例図である。 (A)-(D)は、仮想メモリ管理記憶領域240の一部を物理メモリ管理記憶領域230に付与する過程を示す例図である。 (A)-(C)は、物理メモリ管理記憶領域230の一部を仮想メモリ管理記憶領域240に付与する過程を示す例図である。 本実施形態に係るICチップ1aがアプリケーションをインストールする際の基本処理の一例を示すシーケンス図である。 本実施形態に係るOSによるインスタンス生成時処理の一例を示すフローチャートである。 本実施形態に係るOSによる境界変更処理の一例を示すフローチャートである。 変形例2に係る物理メモリ管理記憶領域230A、Bと仮想メモリ管理記憶領域240の概要を説明するための例図である。
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ICカードに搭載されるICチップに対して本発明を適用した場合の実施の形態である。
[1.ICチップ1aの構成]
まず、図1を参照して、ICカード1に搭載されるICチップ1aの構成について説明する。図1は、ICチップ1aのハードウェア構成例を示す図である。本実施形態のICカード1は、接触によるデータ通信と非接触によるデータ通信の2つの通信機能を兼ね備えたデュアルインターフェース型ICカードである。但し、ICカード1の種類はデュアルインターフェース型ICカードに限定されず、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードにICチップ1aがエンベットされた接触型ICカードであってもよいし、また、アンテナコイルを内蔵し無線でリーダ・ライタとデータ通信する非接触型ICカードであってもよい。
図1に示すように、ICチップ1aは、CPU(Central Processing Unit)10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、不揮発性メモリ13、及びI/O回路14を備えて構成される。CPU10は、ROM12又は不揮発性メモリ13に記憶された各種プログラムを実行するプロセッサ(コンピュータ)である。なお、I/O回路14は、外部機器2とのインターフェイスを担う。これにより、ICチップ1aは、リーダ・ライタを備える外部機器2との間で接触又は非接触で通信を行うことができる。接触式のICチップ1aの場合、I/O回路14には、例えば、C1~C8の8個の端子が備えられている。例えば、C1端子は電源端子(ICチップ1aへ電源供給する端子)、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部機器2との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部機器2の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップ1aが通信機器に組み込まれる場合、外部機器2には通信機器の機能を担う制御部が該当する。
不揮発性メモリ13には、例えばフラッシュメモリ、強誘電体メモリ又は「Electrically Erasable Programmable Read-Only Memory」を適用することができる。不揮発性メモリ13は、ICカードOS(以下、「OS」という場合がある)や各種アプリケーション及びこれらが使用するデータを記憶する。
ICチップ1aにインストールされるアプリケーションは、例えば、JAVA(登録商標)でプログラミングされており、コンパイラによって中間言語と呼ばれる実行形式であるバイトコードに変換される。バイトコードは、算術や分岐といった命令を含んだデータ列であり、仮想マシン(Virtual Machine)により実行される。
[2.OSの機能]
図2は、OSの機能を説明するためのブロック図である。ICチップ1a上で動作するOSは不揮発性メモリ13を管理するために、物理メモリ管理機構210と、仮想メモリ管理機構220を実現する。また、物理メモリ管理機構210には、不揮発性メモリ13上の物理メモリ管理記憶領域230が割り当てられ、仮想メモリ管理機構220には、不揮発性メモリ13上の仮想メモリ管理記憶領域240が割り当てられる。アプリケーションに関するデータは、物理メモリ管理機構210に管理される物理メモリ管理記憶領域230、又は、仮想メモリ管理機構220に管理される仮想メモリ管理記憶領域240に記憶される。
図3(A)に示すように、物理メモリ管理機構210には、不揮発性メモリ13(実メモリ空間)の一部が物理メモリ管理記憶領域230として割り当てられる。また、仮想メモリ管理機構220にも、不揮発性メモリ13の一部が仮想メモリ管理記憶領域240として割り当てられる。
物理メモリ管理機構210は、アプリケーションが扱うアドレスをアドレス変換せずに物理アドレスとして扱い、不揮発性メモリ13(実メモリ空間)の位置を特定する機構である。一方、仮想メモリ管理機構220は、仮想メモリ空間を提供し、アプリケーションが扱うアドレス(仮想アドレス)を変換情報(仮想アドレスを物理アドレスに変換するための情報(図示しない))に基づいて変換し、アドレス変換後の物理アドレスにより不揮発性メモリ13(実メモリ空間)の位置を特定する機構である。なお、変換情報は不揮発性メモリ13に記憶されるとともに、OSが仮想メモリ管理機構220を実現する際にRAM11に複写されてアドレス変換に利用される。また、RAM11の変換情報が更新された場合には、その更新内容が不揮発性メモリ13の変換情報に反映される。
ここで、物理メモリ管理機構210と仮想メモリ管理機構220についてデータを読み込む速度を比較すると、物理メモリ管理機構210はアドレス変換をしない一方、仮想メモリ管理機構220はアドレス変換をするため、物理メモリ管理記憶領域230に記憶されているデータを読み込む速度は、仮想メモリ管理記憶領域240に記憶されているデータを読み込む速度より速い。
次に、物理メモリ管理機構210と仮想メモリ管理機構220についてデータを書き換える時間を比較する。OSは、不揮発性メモリ13上のデータを書き換える際には、トランザクション制御を行う。トランザクション制御は、データの書き込みに関する一連の処理が電源断等により中断した場合に、一連の処理の開始前又は終了後の状態とする制御である。
物理メモリ管理記憶領域230のデータに対して行うトランザクション制御は、次の(1)~(4)の手順で実行され、(1)~(4)の手順で不揮発性メモリ13への書き込みを伴う。
(1)更新前のデータが記憶されているページのコピーを不揮発性メモリ13に書き込む(バックアップ)
(2)ログ情報(電源断発生時にOSの初期化処理の一環で、バックアップしたデータで一連の処理の開始前に戻すための情報)を作成し、不揮発性メモリ13に書き込む
(3)該当ページに更新後のデータを書き込む
(4)(2)で作成して不揮発性メモリ13に記憶させたログ情報を消去する
一方、仮想メモリ管理記憶領域240のデータに対して行うトランザクション制御は、次の手順で実行され、(1)、(3)の手順で不揮発性メモリ13への書き込みを伴う。
(1)更新後のデータを更新前のデータが記憶されているページとは異なるページに書き込む
(2)RAM11上の変換情報を更新する
(3)RAM11上の変換情報の更新を不揮発性メモリ13上の変換情報に反映する
このように、物理メモリ管理記憶領域230のデータに対して行うトランザクション制御時の不揮発性メモリ13への書き込み回数は、仮想メモリ管理記憶領域240のデータに対して行うトランザクション制御時の不揮発性メモリ13への書き込み回数よりも多い。そのため、物理メモリ管理記憶領域230のデータに対して行うトランザクション制御に要する処理時間は、仮想メモリ管理記憶領域240のデータに対して行うトランザクション制御に要する処理時間よりも長い。これにより、仮想メモリ管理記憶領域240のデータを書き換える時間は、物理メモリ管理記憶領域230のデータを書き換える時間よりも短い。
次に、物理メモリ管理機構210と仮想メモリ管理機構220について、不揮発性メモリ13の記憶素子に対するストレスを比較する。物理メモリ管理機構210では、データが物理メモリ管理記憶領域230に固定的に配置されるため、当該データの書き換え頻度が高いと、当該データを記憶する記憶素子にストレスが集中し、製品寿命が短くなる。一方、仮想メモリ管理機構220では、所定の再配置条件が満たされた場合に(例えば、データの書き換え時又は定期的に)、仮想メモリ管理記憶領域240における使用頻度の低い位置にデータが再配置されるため、ストレスが平準化され、製品寿命が長くなる。なお、物理メモリ管理記憶領域230の一部が故障すると製品としての故障に直結するが、仮想メモリ管理記憶領域240の一部が故障しても他の領域へデータを移動することができるため、製品としての故障に繋がらない。
このように、物理メモリ管理機構210(物理メモリ管理記憶領域230)と仮想メモリ管理機構220(仮想メモリ管理記憶領域240)には夫々特性があることから、その特性に応じて、アプリケーションに関するデータを配置することが好ましい。具体的には、物理メモリ管理記憶領域230には、書き換え頻度より読み込み頻度が高いデータを記憶させ、仮想メモリ管理記憶領域240には、読み込み頻度より書き換え頻度が高いデータを記憶させるのが好ましい。例えば、図3(B)に示すように、書き換え頻度より読み込み頻度が高い、プログラムコード(CPUが読み込み、解釈して、実行するというサイクルが繰り返されるため、処理速度に与える影響が大きい)及びアプリケーションデータ(アプリケーションで利用されるデータ)といったデータを物理メモリ管理記憶領域230に記憶させ、読み込み頻度より書き換え頻度が高いカウンタ(アプリケーションで利用されるカウンタ)といったデータを仮想メモリ管理記憶領域240に記憶させる。なお、読み込み頻度より書き換え頻度が高いデータであっても、高速で読み出すことを重視するデータについては、故障のリスクを把握した上で、物理メモリ管理記憶領域230に記憶させることとしてもよい。
ここで、プログラムコード、アプリケーションデータ及びカウンタなどのアプリケーションに関するデータを、物理メモリ管理記憶領域230と仮想メモリ管理記憶領域240の何れにどのように配置するかについて説明する。まず、プログラムコードは、基本的に書き換えが行われず頻繁に読み込まれるデータであるため、サーバ等からプログラムコードがロードされると、OSは物理メモリ管理記憶領域230に配置する。一方、アプリケーションデータやカウンタなどについては、その用途をOSは把握できないため、アプリケーション側から何れに配置するかを指定してもらい配置するのが好ましい。例えば、OSはアプリケーションのインストール時に、プログラムコードに記述されたインスタンスを生成する処理手順を実行する中で、処理手順にて指定された何れかの記憶領域に記憶させる。また、何れかの記憶領域をインストールパラメータで指定することとしてもよい。更に、データにタグを付けておいて、仮想アドレス管理記憶領域240に配置するデータのタグ一覧をコマンドに組み込むこととし、それに従ってOSが何れかの領域に配置することとしてもよい。
ところで、仮想メモリ管理記憶領域240や物理メモリ管理記憶領域230は、アプリケーションやこれに関連するデータの追加や削除に伴い、当初に割り当てられた記憶領域では不足する事態が発生することがある。OSは、仮想メモリ管理記憶領域240と物理メモリ管理記憶領域230の何れか一方で記憶領域が不足する場合に他方の記憶領域の一部を付与する。例えば、OSが、仮想メモリ管理記憶領域240や物理メモリ管理記憶領域230に、プログラムコード、アプリケーションデータ及びカウンタなどのアプリケーションに関するデータを記憶させようとした場合に、記憶領域が不足して記憶させることができない場合に、記憶領域の付与を行う。以下、図4-図7を用いて、具体的に説明する。
図4-図7では、不揮発性メモリ13における「01h」から「0Eh」までの14ページ分の記憶領域が、物理メモリ管理記憶領域230と仮想メモリ管理記憶領域240に割り当てられている。そして、物理メモリ管理記憶領域230と仮想メモリ管理記憶領域240の間には仮想的な境界250がある。OSは境界250の位置を特定するための境界位置情報(図示しない)を保持する。例えば、ページ「05h」(以下、アドレスが「05h」のページを「ページ「05h」」といったように記載することがある)とページ「06h」の間が境界250である場合には、境界位置情報として「06h」を保持する。
図4-図7における変換情報310は、アドレス変換に用いられる情報であり、アドレス変換前のアドレス(上の行)と変換後のアドレス(下の行)からなる。例えば、図4(A)の例では、「01h」から「0Bh」のアドレス変換前のアドレスのうち、「01h」から「05h」のアドレス変換前のアドレスが物理メモリ管理機構210に割り当てられ、「06h」から「0Bh」のアドレス変換前のアドレス(仮想アドレス)が、仮想メモリ管理機構220に割り当てられている。なお、「01h」から「05h」のアドレスに対応するアドレス変換後のアドレスとして全て「FFh」が記述されているが、これは、「01h」から「05h」のアドレスが物理メモリ管理機構210に割り当てられていることを示しており、OSは、アプリケーションにより「01h」から「05h」のアドレスが指定された場合には、変換情報310を参照せずに、当該アドレスが示す物理メモリ管理記憶領域230上のページに記憶されているデータを参照するか、変換情報310を参照した上で、アドレス変換後のアドレスとして「FFh」が記述されていることに基づいて、アドレス変換前のアドレスが示す物理メモリ管理記憶領域230上のページに記憶されているデータを参照する。一方、OSは、アプリケーションにより「06h」から「0Bh」の仮想アドレスが指定された場合には、変換情報310を参照した上で、アドレス変換後の物理アドレスが示す仮想メモリ管理記憶領域240上のページに記憶されているデータを参照する。例えば、OSは、アプリケーションにより「09h」の仮想アドレスが指定された場合には、変換情報310を参照し、物理アドレス「06h」が示す仮想メモリ管理記憶領域240上のページに記憶されているデータを参照する。
図4-図7における状態管理テーブル320は、仮想メモリ管理記憶領域240や物理メモリ管理記憶領域230のそれぞれのページの状態が「使用」状態、「空き」状態、又は「予約」状態の何れの状態にあるかを示す。OSは状態管理テーブル320を用いてそれぞれのページが何れの状態にあるかを管理する。「使用」状態はデータが記憶されていることを示しており、「空き」状態はデータが記憶されていないことを示しており、「予約」状態はその時点では「空き」状態であるが今後「使用」状態になることを示している。なお、仮想メモリ管理領域240については、ウェアレベリングを実現するために、所定数以上のページが「空き」状態となっていることが好ましい。
図4-図6は、仮想メモリ管理記憶領域240から物理メモリ管理記憶領域230に1ページ分の記憶領域を付与する場合の一例である。図4は不揮発性メモリ13上のページ「06h」の状態が「使用」状態である場合の一例であり、図5は不揮発性メモリ13上のページ「06h」の状態が「空き」状態である場合の一例であり、図6は不揮発性メモリ13上のページ「06h」の状態が「予約」状態である場合の一例である。
まず、図4の例について説明する。OSは、所定の条件が満たされた場合(例えば、物理メモリ管理記憶領域230に新たにデータを記憶させることができない場合)に、仮想メモリ管理記憶領域240の境界250に接するページ「06h」を物理メモリ管理記憶領域230に付与する。このとき、図4(A)に示すように、ページ「06h」の状態は「使用」状態であるため、このままページ「06h」を付与することができない。
そこで、OSは、ページ「06h」の状態を「空き」状態にする。具体的には、まず、仮想メモリ管理記憶領域240において「空き」状態であるページを検索する。ここでは、ページ「08h」を検索したとする。次いで、図4(B)に示すように、検索したページ「08h」にページ「06h」のデータをコピーし、状態管理テーブル320におけるこれらのページに対応する状態を更新する。すなわち、ページ「06h」の状態を「空き」状態、ページ「08h」の状態を「使用」状態にそれぞれ変更する。
次いで、OSは、図4(C)に示すように変換情報を更新する。すなわち、変換前のアドレス「0Bh」に対応する変換後のアドレスを「06h」から「08h」に変更する。また、変換前のアドレス「06h」に対応する変換後のアドレスを「00h」から「FFh」に変更する。
次いで、OSは、図4(D)に示すように、境界250の位置を変更する。すなわち、境界位置情報を変更する。
次に、図5の例について説明する。OSは、所定の条件が満たされた場合(例えば、物理メモリ管理記憶領域230に新たにデータを記憶させることができない場合)に、仮想メモリ管理記憶領域240の境界250に接するページ「06h」を物理メモリ管理記憶領域230に付与する。このとき、図5(A)に示すように、ページ「06h」の状態は「空き」状態であるため、このままページ「06h」を付与することができる。
そこで、OSは、図5(B)に示すように変換情報を更新する。すなわち、変換前のアドレス「06h」に対応する変換後のアドレスを「00h」から「FFh」に変更する。
次いで、OSは、図5(C)に示すように、境界250の位置を変更する。すなわち、境界位置情報を変更する。
次に、図6の例について説明する。OSは、所定の条件が満たされた場合(例えば、物理メモリ管理記憶領域230に新たにデータを記憶させることができない場合)に、仮想メモリ管理記憶領域240の境界250に接するページ「06h」を物理メモリ管理記憶領域230に付与する。このとき、図6(A)に示すように、ページ「06h」の状態は「予約」状態であるため、このままページ「06h」を付与することができない。
そこで、OSは、ページ「06h」の状態を「空き」状態にする。具体的には、仮想メモリ管理記憶領域240において「空き」状態であるページを検索する。ここでは、ページ「07h」を検索したとする。次いで、図6(B)に示すように、状態管理テーブル320におけるページ「06h」及びページ「07h」の状態を更新する。すなわち、ページ「06h」の状態を「空き」状態、ページ「07h」の状態を「予約」状態にそれぞれ変更する。
次いで、OSは、図6(C)に示すように変換情報を更新する。すなわち、変換前のアドレス「06h」に対応する変換後のアドレスを「00h」から「FFh」に変更する。
次いで、OSは、図6(D)に示すように、境界250の位置を変更する。すなわち、境界位置情報を変更する。
一方、図7は、物理メモリ管理記憶領域230から仮想メモリ管理記憶領域240に1ページ分の記憶領域を付与する場合の一例である。
まず、図7の例について説明する。OSは、所定の条件が満たされた場合(例えば、仮想メモリ管理記憶領域240に新たにデータを記憶させることができない場合)に、物理メモリ管理記憶領域230の境界250に接するページ「05h」を仮想メモリ管理記憶領域240に付与する。このとき、図7(A)に示すように、ページ「05h」の状態は「空き」状態であるため、このままページ「05h」を付与することができる。
そこで、OSは、図7(B)に示すように変換情報を更新する。すなわち、変換前のアドレス「05h」に対応する変換後のアドレスを「FFh」から「00h」に変更する。
次いで、OSは、図7(C)に示すように、境界250の位置を変更する。すなわち、境界位置情報を変更する。
なお、図7の例において、仮にページ「05h」の状態が「使用」状態である場合には、ページ「05h」のデータを、物理メモリ管理記憶領域230の他の「空き」状態であるページにコピーして、ページ「05h」の状態を「空き」状態としてから付与する。
次に、アプリケーションに関するデータを不揮発性メモリ13に配置する際の処理例について説明する。
[3.基本処理]
まず、図8を用いて、ICチップ1aが、サーバからアプリケーションを受信してインストールする際の基本的な処理の流れについて説明する。
ステップS1において、サーバはICチップ1aに対してICチップ1a内の管理アプリケーションであるSD(Security Domain)であって、インストールするアプリケーションを管理するSDとの通信路を形成するためにSELECTコマンドを送信する。SELECTコマンドは、通信路の相手先となるアプリケーションを識別するIDであるAIDと、当該アプリケーションとの通信路(ロジカルチャネル)を識別するロジカルチャネル番号を含む。これに対して、ICチップ1aのOS(を実行するCPU10)はコマンドに応じて通信路を形成するための処理を実行し、OKレスポンスをサーバに送信する。但し、コマンドに応じた処理を正常終了できなかった場合にはエラーが発生したことを示すレスポンスをサーバに送信する(以下、ステップS2~S9について同様)。これにより、ロジカルチャネル番号で識別される通信路(ロジカルチャネル)が形成され、以降、サーバはコマンドに当該ロジカルチャネル番号を含ませることにより、当該ロジカルチャネル番号で識別される通信路を介して、SDと通信を行うことができる。
次いで、ステップS2及びステップS3において、サーバは、通信路の機密性を高めるためにそれまでに形成した通信路(ロジカルチャネル)をセキュアな通信路にするセキュア処理(SCPでコマンドを保護するための相互認証処理)を実行する。相互認証処理は、プロトコルで決められたアルゴリズムに従い、暗号演算の元となる鍵を互いが知っているという前提の下、サーバとICチップ1aが互いを認証する処理である。具体的には、サーバが相互認証用のコマンドであるINITIALIZE UPDATEコマンド及びEXTERNAL AUTHENTICATEコマンドをICチップ1aに送信し、ICチップ1aのOSがそれぞれのコマンドに応じた処理を実行し、正常に処理を完了するとOKレスポンスをサーバに送信することにより行われる。
次いで、ステップS4において、サーバは、INSTALL[for load]コマンドをICチップ1aに送信する。INSTALL[for load]コマンドでは、後からLOADコマンドにより送信されるプログラムコードのAIDの長さ等が送信される。これに対して、ICチップ1aのOSがコマンドに応じた処理を実行し、正常に処理を完了するとOKレスポンスをサーバに送信する。
次いで、ステップS5~ステップS8において、サーバは、プログラムコードをN個に分割して、それぞれ、LOADコマンド(1st)~LOADコマンド(Nth(last))によりICチップ1aに送信する。これに対して、ICチップ1aのOSはそれぞれのLOADコマンドに応じた処理を実行し、正常に処理を完了するとOKレスポンスをサーバに送信する。
次いで、ステップS9において、サーバは、INSTALL[for install]コマンドをICチップ1aに送信する。これに対して、ICチップ1aのOSは、先にロードされたプログラムコードに基づき、インスタンスの生成処理を実行し、正常に処理を完了するとOKレスポンスをサーバに送信する。
次いで、ステップS10において、サーバは、アプリケーションをインスタンス化して得られたインスタンスを選択するためのSELECTコマンドをICチップ1aに送信する。これに対して、ICチップ1aのOSは、SELECTコマンドで指定されたインスタンスを選択し、OKレスポンスをサーバに送信する。
次いで、ステップS11において、サーバは、ステップS10において選択したインスタンス(アプリケーション)がサポートするApplication's Proprietaryコマンドにより、アプリケーションに関するデータ(インスタンス)を生成する。このとき、何れの記憶領域に当該インスタンスを配置するかを指定する。これに対して、ICチップ1aのOSは、Application's Proprietaryコマンドに基づいて、アプリケーションに関するデータ(インスタンス)を生成し、当該コマンドで指定された記憶領域に配置する。OSは、例えば、物理メモリ管理記憶領域230が指定された場合には、アプリケーションに関するデータ(インスタンス)341を物理メモリ管理記憶領域230に配置する。
このように、プログラムコード以外のアプリケーションに関するデータについては、INSTALL[for install]コマンド、又は、Application's Proprietaryコマンドで生成するインスタンスとして、物理メモリ管理記憶領域230又は仮想メモリ管理記憶領域240に配置することができる。
[4.インスタンス生成時処理]
次に、図9を用いて、OSによるインスタンス生成時処理について説明する。インスタンス生成時処理は、上述した基本処理のステップS9~ステップS11において、コマンドを受信した場合に実行される処理である。
まず、OS(を実行するCPU10)は、命令を取得する(ステップS201)。次いで、ステップS201の処理で取得した命令はインスタンス生成命令であるか否かを判定する(ステップS202)。OSは、インスタンス生成命令ではないと判定した場合には(ステップS202:NO)、命令を実行し(ステップS206)、ステップS207の処理に移行する。一方、OSは、インスタンス生成命令であると判定した場合には(ステップS202:YES)、インスタンス生成命令により指定されているインスタンスの生成先の記憶領域に空きがあるか否かを判定する(ステップS203)。
OSは、インスタンスの生成先の記憶領域に空きがあると判定した場合には(ステップS203:YES)、インスタンスを生成するという命令を実行し(ステップS206)、ステップS207の処理に移行する。一方、OSは、インスタンスの生成先の記憶領域に空きがないと判定した場合には(ステップS203:NO)、次いで、他方の記憶領域に融通可能な空きがあるか否かを判定する(ステップS204)。他方とは、インスタンスの生成先が物理メモリ管理記憶領域230であれば仮想メモリ管理記憶領域240であり、仮想メモリ管理記憶領域240であれば物理メモリ管理記憶領域230である。
OSは、他方の記憶領域に融通可能な空きがないと判定した場合には(ステップS204:NO)、エラー処理(インスタンスを記憶する記憶領域がないことを示すエラーレスポンスをサーバに返信する)を実行し(ステップ208)、当該フローチャートの処理を終了する。一方、OSは、他方の記憶領域に融通可能な空きがあると判定した場合には(ステップS204:YES)、図10を用いて後述する境界変更処理を実行し(ステップS205)、次いで、命令を実行し(ステップS206)、ステップS207の処理に移行する。
OSは、ステップS206の処理を終えると、次いで、コマンド処理は終了か否かを判定する(ステップS207)。OSは、コマンド処理は終了ではないと判定した場合には(ステップS207:NO)、ステップS201の処理に移行する。一方、OSは、コマンド処理は終了であると判定した場合には(ステップS207:YES)、当該フローチャートの処理を終了する。
[5.境界変更処理]
次に、図10を用いて境界変更処理について説明する。境界変更処理は、図9のステップS205の処理で実行される処理である。
まず、OS(を実行するCPU10)は、融通する側の境界250に接するページの状態は「空き」状態であるか否かを判定する(ステップS301)。融通する側とは、インスタンスの生成先ではない他方の記憶領域である。例えば、インスタンスの生成先が仮想メモリ管理記憶領域240であれば、物理メモリ管理記憶領域230であり、インスタンスの生成先が物理メモリ管理記憶領域230であれば、仮想メモリ管理記憶領域240である。
OSは、融通する側の境界250に接するページの状態は「空き」状態であると判定した場合には(ステップS301:YES)、変換情報を更新する(ステップS306)。すなわち、融通する側が仮想メモリ管理記憶領域240である場合には、融通する側の境界250に接するページに対応する変換情報のアドレス変換後のアドレスを「FFh」に変更する(図4の(C)、図5の(B)、図6の(C)参照)。一方、融通する側が物理メモリ管理記憶領域230である場合には、融通する側の境界250に接するページに対応する変換情報の変換後のアドレスを「00h」に変更する(図7の(B))。
一方、OSは、融通する側の境界250に接するページの状態は「空き」状態ではないと判定した場合には(ステップS301:NO)、次いで、融通する側の「空き」状態のページを検索する(ステップS302)。
次に、OSは、融通する側の境界250に接するページの状態が「予約」状態であるか否かを判定する(ステップS303)。OSは、融通する側の境界250に接するページの状態が「予約」状態ではない(すなわち、「使用」状態である)と判定した場合には(ステップS303:NO)、融通する側の境界250に接するページを、ステップS302の処理で検索した「空き」状態のページにコピーする(ステップS304)。そして、OSは、状態管理テーブルを更新する(ステップS305)。具体的には、OSは、融通する側の境界250に接するページについて「使用」状態から「空き」状態に変更するとともに、ステップS302の処理で検索したページについて「空き」状態から「使用」状態に変更する。
一方、OSは、融通する側の境界250に接するページの状態が「予約」状態であると判定した場合には(ステップS303:YES)、OSは、状態管理テーブルを更新する(ステップS305)。具体的には、OSは、融通する側の境界250に接するページの状態を「予約」状態から「空き」状態に変更するとともに、ステップS302の処理で検索したページについて「空き」状態から「予約」状態に変更する。
OSは、ステップS305の処理を終えると、変換情報を更新する(ステップS306)。すなわち、融通する側が仮想メモリ管理記憶領域240である場合には、融通する側の境界250に接するページに対応する変換情報のアドレス変換後のアドレスを「FFh」に変更する。一方、融通する側が物理メモリ管理記憶領域230である場合には、融通する側の境界250に接するページに対応する変換情報のアドレス変換後のアドレスを「00h」に変更する。また、ステップS303の処理で「NO」と判定して、ステップS304の処理を行った場合であれば、コピー元のページを示しているアドレス変換後のアドレスがコピー先のページを示すアドレス変換後のアドレスになるように更新する(図4の(C))。
次に、OSは、境界250を変更すべく境界位置情報を更新し(ステップS307)、当該フローチャードに示す処理を終了する。
以上のように、本実施形態のICチップ1a(「電子情報記憶媒体」の一例)は、OSにより管理される仮想メモリ管理記憶領域240(「第1の記憶領域」の一例)及び物理メモリ管理記憶領域230(「第2の記憶領域」の一例)を有する不揮発性メモリ13と、OSを実行するCPU10(「処理部」の一例)と、を有し、する電子情報記憶媒体であって、CPU10(「第1アクセス手段」、「第2アクセス手段」及び「付与手段」の一例)は、仮想アドレスを物理アドレスにアドレス変換するための変換情報310に基づいて変換された物理アドレスにより仮想メモリ管理記憶領域240にアクセスし、変換情報310に基づくアドレス変換がなされていない物理アドレスにより物理メモリ管理記憶領域230にアクセスし、所定の条件が満たされた場合に、仮想メモリ管理記憶領域240及び物理メモリ管理記憶領域230の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する。
したがって、本実施形態のICチップ1aによれば、不揮発性メモリ13が、仮想アドレスを物理アドレスに変換するための変換情報310に基づいてアドレス変換された物理アドレスによりアクセスされる仮想メモリ管理記憶領域240と、変換情報310に基づくアドレス変換がなされていない物理アドレスによりアクセスされる物理メモリ管理記憶領域240とを有し、所定の条件が満たされた場合に、何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する。すなわち、不揮発性メモリ13における仮想メモリ管理記憶領域240と物理メモリ管理記憶領域230の大きさを変更することができる。
また、仮想メモリ管理記憶領域240及び物理メモリ管理記憶領域230はそれぞれ連続する領域であり、且つ、仮想メモリ管理記憶領域240と物理メモリ管理記憶領域230は連続しており、CPU10は、一方の記憶領域における一部の領域であって、且つ、仮想メモリ管理記憶領域240と物理メモリ管理記憶領域230の境界250に接する領域を、他方の記憶領域に付与する。よって、一部の領域の付与後においても、仮想メモリ管理記憶領域240及び物理メモリ管理記憶領域230はそれぞれ連続する領域となることから、それぞれの記憶領域の管理が容易となる。
更に、CPU10は、仮想メモリ管理記憶領域240及び物理メモリ管理記憶領域230の何れか一方の記憶領域における一部の領域を他方の記憶領域に付与する場合に、一部の領域の状態が空き状態であることを条件に付与する。これにより、「使用」状態又は「予約」状態である記憶領域が他の記憶領域に付与されることを防ぐことができる。
更にまた、CPU10(「コピー手段」、「変換情報更新手段」、「第1状態更新手段」の一例)は、仮想メモリ管理記憶領域240における一部の領域を物理メモリ管理記憶領域230に付与する場合において、一部の領域の状態が「使用」状態である場合に、仮想メモリ管理記憶領域240における「空き」状態である領域に当該一部の領域のデータをコピーし、当該コピーが行われる場合に、一部の領域を示す物理アドレスに変換するための変換情報310を、データがコピーされた領域を示す物理アドレスに変換するための変換情報310に更新し、また、当該コピーが行われる場合に、一部の領域の状態を「空き」状態に変更し、データがコピーされた領域の状態を「使用」状態に変更し、「空き」状態となった一部の領域を物理メモリ管理記憶領域230に付与する。
更にまた、CPU10(「第2状態更新手段」の一例)は、仮想メモリ管理記憶領域240における一部の領域を物理メモリ管理記憶領域230に付与する場合において、一部の領域の状態が「予約」状態である場合に、仮想メモリ管理記憶領域240における「空き」状態である領域の状態を「予約」状態に変更し、当該一部の領域の状態を「空き」状態に変更し、「空き」状態となった一部の領域を物理メモリ管理記憶領域230に付与する。
[6.変形例]
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は適宜組み合わせることができる。
[6.1.変形例1]
上記実施形態では、OSが、仮想メモリ管理記憶領域240や物理メモリ管理記憶領域230に、プログラムコード、アプリケーションデータ及びカウンタなどのアプリケーションに関するデータを記憶させようとした場合に、記憶領域が不足して記憶させることができない場合に、記憶領域の付与を行うこととしたが、所定の条件が満たされた場合に、記憶領域の付与を行うこととしてもよい。例えば、所定の条件として、仮想メモリ管理記憶領域240の「使用」状態の領域が第1の閾値に達すること、又は、物理メモリ管理記憶領域230の「使用」状態の領域が第2の閾値に達すること、という条件を設定することとしてもよい。「第1の閾値」、「第2の閾値」はICチップ1aの設計者や管理者等が任意に設定・変更することができるようにしてもよい。特に、仮想メモリ管理記憶領域240についてはウェアレベリングを実現できるために一定量の「空き」状態の領域を確保しておくことが好ましい。
[6.2.変形例2]
上記実施形態では、図4(A)に示すように、不揮発性メモリ13の前方側(ページのアドレスが「01h」)の側)の領域を、物理メモリ管理記憶領域230に割り当て、これに連続する領域を仮想メモリ管理記憶領域240に割り当てることとしたが、図11に示すように、不揮発性メモリ13の前方側及び後方側の2つの領域を物理メモリ管理記憶領域230に分けて割り当て(それぞれ物理メモリ管理記憶領域230A、物理メモリ管理記憶領域230Bとする)、その間の領域を仮想メモリ管理記憶領域240に割り当てることとしてもよい。例えば、物理メモリ管理記憶領域230Aには、プログラムコードや読み込み頻度が書き換え頻度より高いアプリケーションデータを記憶させ、物理メモリ管理記憶領域230Bには、OSが使用するレジストリデータ等を記憶させることができる。そして、図11に示すように、物理メモリ管理記憶領域230Aにプログラムコード等を記憶させる場合、先頭から順に配置することが好ましく、一方、物理メモリ管理記憶領域230Bにレジストリデータ等を記憶させる場合、後方から順に配置することが好ましい。また、物理メモリ管理記憶領域230Aや物理メモリ管理記憶領域230Bの「空き」状態の領域が不足してきた場合であっても、仮想メモリ管理記憶領域240の一部を付与することができる。そこで、当初は物理メモリ管理記憶領域230Aや物理メモリ管理記憶領域230Bの領域を必要最小限だけ割り当て、その残りを、物理メモリ管理記憶領域230Aと物理メモリ管理記憶領域230Bの間の仮想メモリ管理記憶領域240に割り当てることとすることにより、必要に応じて、その一部を物理メモリ管理記憶領域230Aや物理メモリ管理記憶領域230Bに付与する運用ができる。こうした運用とすることにより、物理メモリ管理記憶領域230に不足が生じるまで、仮想メモリ管理記憶領域240についてウェアレベリング処理のために広い空き領域を使用することができ、延いては製品全体の寿命を伸ばすことができる。
1 ICカード
1a ICチップ
10 CPU
11 RAM
12 ROM
13 不揮発性メモリ
14 I/O回路
2 外部機器

Claims (8)

  1. OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体であって、
    前記処理部は、
    仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス手段、
    前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス手段、
    所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与手段、
    前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が使用状態である場合に、前記第1の記憶領域における空き状態である領域に当該一部の領域のデータをコピーするコピー手段、
    前記コピー手段によるコピーが行われる場合に、前記一部の領域を示す物理アドレスに変換するための前記変換情報を、前記データがコピーされた領域を示す物理アドレスに変換するための前記変換情報に更新する変換情報更新手段、
    前記コピー手段によるコピーが行われる場合に、前記一部の領域の状態を空き状態に変更し、前記データがコピーされた領域の状態を使用状態に変更する第1状態更新手段、
    として機能させ、
    前記付与手段は、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする電子情報記憶媒体。
  2. OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体であって、
    前記処理部は、
    仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス手段、
    前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス手段、
    所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与手段、
    前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が予約状態である場合に、前記第1の記憶領域における空き状態である領域の状態を予約状態に変更し、当該一部の領域の状態を空き状態に変更する第2状態更新手段、
    として機能させ、
    前記付与手段は、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする電子情報記憶媒体。
  3. 請求項1又は2に記載の電子情報記憶媒体であって、
    前記所定の条件は、前記第1の記憶領域の空き状態の領域が不足すること、又は、前記第2の記憶領域の空き状態の領域が不足すること、
    であることを特徴とする電子情報記憶媒体。
  4. 請求項1乃至の何れか一項に記載の電子情報記憶媒体を備えるICカード。
  5. OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体における情報処理方法であって、
    前記処理部が、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス工程と、
    前記処理部が、前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス工程と、
    前記処理部が、所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与工程と、
    前記処理部が、前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が使用状態である場合に、前記第1の記憶領域における空き状態である領域に当該一部の領域のデータをコピーするコピー工程と、
    前記処理部が、前記コピー工程によるコピーが行われる場合に、前記一部の領域を示す物理アドレスに変換するための前記変換情報を、前記データがコピーされた領域を示す物理アドレスに変換するための前記変換情報に更新する変換情報更新工程と、
    前記処理部が、前記コピー工程によるコピーが行われる場合に、前記一部の領域の状態を空き状態に変更し、前記データがコピーされた領域の状態を使用状態に変更する第1状態更新工程と、
    を含み、
    前記付与工程では、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする情報処理方法。
  6. OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体における情報処理方法であって、
    前記処理部が、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス工程と、
    前記処理部が、前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス工程と、
    前記処理部が、所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与工程と、
    前記処理部が、前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が予約状態である場合に、前記第1の記憶領域における空き状態である領域の状態を予約状態に変更し、当該一部の領域の状態を空き状態に変更する第2状態更新工程と、
    を含み、
    前記付与工程では、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とする情報処理方法。
  7. OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体における前記処理部を、
    仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス手段、
    前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス手段、
    所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与手段、
    前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が使用状態である場合に、前記第1の記憶領域における空き状態である領域に当該一部の領域のデータをコピーするコピー手段、
    前記コピー手段によるコピーが行われる場合に、前記一部の領域を示す物理アドレスに変換するための前記変換情報を、前記データがコピーされた領域を示す物理アドレスに変換するための前記変換情報に更新する変換情報更新手段、
    前記コピー手段によるコピーが行われる場合に、前記一部の領域の状態を空き状態に変更し、前記データがコピーされた領域の状態を使用状態に変更する第1状態更新手段、
    として機能させ、
    前記付与手段は、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とするOS。
  8. OSにより管理される第1の記憶領域及び第2の記憶領域を有する不揮発性メモリと、前記OSを実行する処理部と、を有し、前記第1の記憶領域及び第2の記憶領域がそれぞれ連続する領域であり、且つ、前記第1の記憶領域と第2の記憶領域が連続している電子情報記憶媒体における前記処理部を、
    仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスにより前記第1の記憶領域にアクセスする第1アクセス手段、
    前記変換情報に基づく変換がなされていない物理アドレスにより前記第2の記憶領域にアクセスする第2アクセス手段、
    所定の条件が満たされた場合に、前記第1の記憶領域及び前記第2の記憶領域の何れか一方の記憶領域における一部の領域であって、且つ、前記第1の記憶領域と前記第2の記憶領域の境界に接する領域、前記一部の領域の状態が空き状態であることを条件に、他方の記憶領域に付与する付与手段、
    前記第1の記憶領域における一部の領域を前記第2の記憶領域に付与する場合において、前記一部の領域の状態が予約状態である場合に、前記第1の記憶領域における空き状態である領域の状態を予約状態に変更し、当該一部の領域の状態を空き状態に変更する第2状態更新手段、
    として機能させ、
    前記付与手段は、前記空き状態となった前記一部の領域を前記第2の記憶領域に付与することを特徴とするOS。
JP2018032259A 2018-02-26 2018-02-26 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos Active JP7043886B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018032259A JP7043886B2 (ja) 2018-02-26 2018-02-26 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018032259A JP7043886B2 (ja) 2018-02-26 2018-02-26 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos

Publications (2)

Publication Number Publication Date
JP2019148907A JP2019148907A (ja) 2019-09-05
JP7043886B2 true JP7043886B2 (ja) 2022-03-30

Family

ID=67849376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018032259A Active JP7043886B2 (ja) 2018-02-26 2018-02-26 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos

Country Status (1)

Country Link
JP (1) JP7043886B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005284700A (ja) 2004-03-30 2005-10-13 Renesas Technology Corp メモリカード
JP2008217208A (ja) 2007-03-01 2008-09-18 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
JP2009237668A (ja) 2008-03-26 2009-10-15 Masumi Suzuki フラッシュメモリを用いた記憶装置
JP2011198049A (ja) 2010-03-19 2011-10-06 Toyota Motor Corp 記憶装置、電子制御ユニット、記憶方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005284700A (ja) 2004-03-30 2005-10-13 Renesas Technology Corp メモリカード
US20050232037A1 (en) 2004-03-30 2005-10-20 Renesas Technology Corp. Nonvolatile memory apparatus
JP2008217208A (ja) 2007-03-01 2008-09-18 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
JP2009237668A (ja) 2008-03-26 2009-10-15 Masumi Suzuki フラッシュメモリを用いた記憶装置
JP2011198049A (ja) 2010-03-19 2011-10-06 Toyota Motor Corp 記憶装置、電子制御ユニット、記憶方法

Also Published As

Publication number Publication date
JP2019148907A (ja) 2019-09-05

Similar Documents

Publication Publication Date Title
KR100980309B1 (ko) 호스트 디바이스 및 메모리 시스템
KR100531192B1 (ko) 비휘발성 메모리의 제어방법
US6088759A (en) Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6622200B1 (en) Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
CN109144888A (zh) 存储器系统
US5937434A (en) Method of managing a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
CN108319433B (zh) 小内存单片机的NOR Flash的存储管理方法
JP5329884B2 (ja) 携帯可能電子装置および携帯可能電子装置におけるデータ処理方法
US20060109725A1 (en) Apparatus and method for managing bad blocks in a flash memory
BR0007239B1 (pt) Aparelho de acesso á placa de memória semicondutora, placa de memória semicondutora e método de inicialização.
KR20140108666A (ko) 스마트 카드의 비휘발성 메모리에 데이터 쓰기
US8082395B2 (en) Portable electronic device
JP7043886B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos
CN113127074A (zh) 嵌入式系统
CN113064638A (zh) 嵌入式系统
CN116225332A (zh) 存储管理方法、存储装置及嵌入式芯片
US6687783B1 (en) Access apparatus and method for accessing a plurality of storage device having different characteristics
JP7040053B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos
JP2019049876A (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体によるテーブル管理方法及びテーブル管理プログラム
JP4892414B2 (ja) 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法
US20090083273A1 (en) Portable electronic apparatus and control method for portable electronic apparatus
JP6769150B2 (ja) 電子情報記憶媒体、情報処理方法、及び情報処理プログラム
JP7322923B2 (ja) セキュアエレメント,トランザクション制御方法およびデバイス
US20220343034A1 (en) System on a chip and method guaranteeing the freshness of the data stored in an external memory
JP6984328B2 (ja) 電子情報記憶媒体、icカード、外部機器、データ書き込み方法及びデータ書き込みプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220228

R150 Certificate of patent or registration of utility model

Ref document number: 7043886

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150