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

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

Info

Publication number
JP7040053B2
JP7040053B2 JP2018011879A JP2018011879A JP7040053B2 JP 7040053 B2 JP7040053 B2 JP 7040053B2 JP 2018011879 A JP2018011879 A JP 2018011879A JP 2018011879 A JP2018011879 A JP 2018011879A JP 7040053 B2 JP7040053 B2 JP 7040053B2
Authority
JP
Japan
Prior art keywords
data
storage area
memory management
storage medium
electronic information
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
JP2018011879A
Other languages
English (en)
Other versions
JP2019128905A (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 JP2018011879A priority Critical patent/JP7040053B2/ja
Publication of JP2019128905A publication Critical patent/JP2019128905A/ja
Application granted granted Critical
Publication of JP7040053B2 publication Critical patent/JP7040053B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

IC(Integrated Circuit)チップ等の電子情報記憶媒体の技術分野に関する。
ICチップなどの電子情報記憶媒体は、CPU、RAMに加え、フラッシュメモリ等の不揮発性メモリを備え、不揮発性メモリにはOS(Operating System)やアプリケーションプラグラム、各種データを記憶する。不揮発性メモリは沢山の記憶素子からなり、その構造上、数万~数十万程度の書き換え回数の上限が存在し、その上限を超えた書き換えが行われた記憶素子については正常にデータの記録が行えなくなる。その上限による影響を受け難いようにするために、一般に不揮発性メモリについてウェアレベリング処理が行われている。
ウェアレベリング処理とは、書き換えが行われる記憶素子が特定のものに偏らないように分散することで、特定のデータについて繰り返し書き換えが発生した場合でもデバイス全体として記憶素子の消耗を平均化する技術である。OSは、ウェアレベリング処理を実現するために、アプリケーションに対して見せるアドレスを仮想アドレスとする。そして、アプリケーションが仮想アドレスに対応するデータに対して書き込み又は読み込みの要求をした場合、OSは自身が管理する仮想アドレスを物理アドレスに変換するための変換情報を用いて、仮想アドレスを物理アドレスに変換し、当該物理アドレスに記憶されたデータへの要求として処理する。このように、OSは、仮想アドレスと物理アドレスを用いて不揮発性メモリを管理する仮想メモリ管理機構を有する。これにより、例えば、アプリケーションから見て特定のデータに対して書き込みを繰り返す場合であっても、データの位置を変更するとともにこれに合わせて変換情報を更新することによって、複数の記憶素子にストレスを分散することができ、不揮発性メモリ全体として飛躍的に書き換え耐久性を向上させることができる。
特許文献1には、フラッシュメモリに対してウェアレベリング処理を行う記憶装置について開示されている。当該記憶装置は、ホストシステムから指示されたデータを記憶しておくためのユーザ領域と、各ブロックは消去済み状態であり、各ブロックの書き換え回数を平均化するために使用されるブロックのあつまりである代替領域とを備えるフラッシュメモリを備え、ユーザ領域中でデータが格納されていない論理セクタアドレスと物理セクタアドレスとの対応関係を解除するとともに、対応関係が解除された物理ブロックを消去し代替領域のブロックとして使用可能化する。これにより、ウェアレベリング処理に用いられる代替領域を増やすことができ、ウェアレベリング処理をより有効に行うことができるため、フラッシュメモリの寿命を伸ばすことができる。
特開2009-237668号公報
しかしながら、ウェアレベリング処理を実現することにより、不揮発性メモリの寿命を伸ばすことができる一方、仮想メモリ管理機構のアドレス変換を要するという特性による処理オーバーヘッドにより、アプリケーションの実行速度が低下するという問題がある。例えば、非接触決済用アプリケーションは、短時間に処理を完了させることが要求されるため実行速度の低下は致命的な欠陥となり得る。
そこで、本発明は、不揮発性メモリの寿命を伸ばすことができる仕組みと、アプリケーションの実行速度の低下を軽減できる仕組みを有する電子情報記憶媒体等を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、OSにより管理される第1の記憶領域と第2の記憶領域を有し、アプリケーションに関するデータを記憶する不揮発性メモリと、前記OSを実行する処理部とを有し、前記第1の記憶領域が、読み込み頻度より書き換え頻度が高い前記データを記憶する電子情報記憶媒体であって、前記処理部は、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスが示す前記第1の記憶領域上の位置に記憶された前記データの書き換え又は読み出しと、前記変換情報に基づく変換がなされていない物理アドレスが示す前記第2の記憶領域上の位置に記憶された前記データの書き換え又は読み出しと、を行うことを特徴とする。
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体であって、前記処理部は、前記第1の記憶領域上の前記データについて書き換えを行う場合に、それまでの書き込み回数が相対的に低い記憶素子に書き換えのデータを書き込み、当該データに対応する仮想アドレスが当該記憶素子を示す物理アドレスに変換されるように前記変換情報を更新することを特徴とする。
請求項3に記載の発明は、請求項1又は2に記載の電子情報記憶媒体であって、前記第2の記憶領域は、書き換え頻度より読み込み頻度が高い前記データを記憶することを特徴とする。
請求項4に記載の発明は、請求項3に記載の電子情報記憶媒体であって、書き換え頻度より読み込み頻度が高い前記データは、プログラムコードであることを特徴とする。
請求項に記載の発明は、請求項1乃至4の何れか一項に記載の電子情報記憶媒体であって、読み込み頻度より書き換え頻度が高い前記データは、カウンタであることを特徴とする。
請求項に記載の発明は、請求項1乃至の何れか一項に記載の電子情報記憶媒体を備えるICカードである。
請求項に記載の発明は、OSにより管理される第1の記憶領域と第2の記憶領域を有し、アプリケーションに関するデータを記憶する不揮発性メモリと、前記OSを実行する処理部とを有し、前記第1の記憶領域が、読み込み頻度より書き換え頻度が高い前記データを記憶する電子情報記憶媒体による情報処理方法であって、前記処理部が、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスが示す前記第1の記憶領域上の位置に記憶された前記データの書き換え又は読み出しを行う第1工程と、前記処理部が、前記変換情報に基づく変換がなされていない物理アドレスが示す前記第2の記憶領域上の位置に記憶された前記データの書き換え又は読み出しを行う第2工程と、を含むことを特徴とする。
請求項に記載の発明は、OSにより管理される第1の記憶領域と第2の記憶領域を有し、アプリケーションに関するデータを記憶する不揮発性メモリと、前記OSを実行する処理部とを有し、前記第1の記憶領域が、読み込み頻度より書き換え頻度が高い前記データを記憶する電子情報記憶媒体における前記処理部を、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスが示す前記第1の記憶領域上の位置に記憶された前記データの書き換え又は読み出しを行う第1手段、前記変換情報に基づく変換がなされていない物理アドレスが示す前記第2の記憶領域上の位置に記憶された前記データの書き換え又は読み出しを行う第2手段、として機能させることを特徴とする。
本発明によれば、アドレス変換を介して不揮発性メモリ上のデータにアクセスする仕組みを有することにより、ウェアレベリング処理を実現でき、不揮発性メモリの寿命を伸ばすことができる。また、アドレス変換を介さずに不揮発性メモリ上のデータにアクセスする仕組みを有することにより、データの相対的な高速読み出しを実現でき、アプリケーションの実行速度の低下を軽減できる。
本実施形態に係るICカード1に搭載されるICチップ1aのハードウェア構成例を示す図である。 本実施形態に係るOSの機能を説明するためブロック図である。 (A)、(B)は、本実施形態に係る物理メモリ管理機構210と仮想メモリ管理機構220の概要を説明するための例図である。 (A)は、本実施例に係るICチップ1aがアプリケーションをインストールする際の基本処理の一例を示すシーケンス図であり、(B)は、本実施例に係る不揮発性メモリ13の構成例を示す図である。 (A)は、アプリケーションに関するデータを不揮発性メモリ13に配置する配置処理例1を示すシーケンス図であり、(B)-(D)は、配置処理例1における不揮発性メモリ13に配置されるデータの遷移例を示す図である。 配置処理例1におけるOSの動作例を示すフローチャートである。 (A)は、アプリケーションに関するデータを不揮発性メモリ13に配置する配置処理例2を示すシーケンス図であり、(B)、(C)は、配置処理例2における不揮発性メモリ13に配置されるデータの遷移例を示す図である。 配置処理例2におけるOSの動作例を示すフローチャートである。 (A)は仮想アドレスと物理アドレスの関係を示す図であり、(B)-(D)は、不揮発性メモリ13に配置されたデータを参照する際の処理例を示すフローチャートである。
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、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が何れかの領域に配置することとしてもよい。
次に、アプリケーションに関するデータを不揮発性メモリ13に配置する際の実施例、及び、不揮発性メモリ13に配置されたアプリケーションに関するデータを参照する際の実施例について説明する。
[3.基本処理]
まず、図4(A)を用いて、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レスポンスをサーバに送信する。
次に、図4(B) を用いて、実施例における物理メモリ管理記憶領域230と仮想メモリ管理記憶領域240の構成例について説明する。本実施例では、物理メモリ管理記憶領域230は、物理メモリ管理記憶領域230Aと物理メモリ管理記憶領域230Bとを含む。例えば、物理メモリ管理記憶領域230Aと仮想メモリ管理記憶領域240は、アプリケーションに関連する情報(「AP関連情報」という場合がある)を記憶するために用いられる領域として、物理メモリ管理記憶領域230Bは、OSに関連する情報(「OS関連情報」という場合がある)を記憶するために用いられる領域として使い分けることができる。OS関連情報とは、例えば、プログラムの識別子やサイズ等を管理するための管理データ(レジストリデータ)や変換情報(アドレス変換テーブル)などであり、生成、更新、削除イベントなどが固定的に発生(特定のコマンド処理にて動作)するという性質や、各情報のサイズが予め決まっており、且つ、その多くが固定長データであるという性質がある。一方、AP関連情報とは、例えば、インスタンス、配列、プログラムコードなどであり、生成、更新、削除イベントは固定的なものであるが、アプリケーションの設計に依存するため予め特定処理に関連して実行することが困難であるという性質や、各情報のサイズがまちまちでOSが事前に想定できないという性質がある。このように、AP関連情報とOS関連情報には性質の違いがあるため、AP関連情報とOS関連情報を記憶させる領域を分けておくことにより、OSがAP関連情報とOS関連情報の生成、検索、更新、削除などをシンプルなアルゴリズムで行うことができ、延いては、処理速度や書き換え耐久性を向上させることができる。
[4.配置処理例1]
次に、図5を用いて、アプリケーションに関するデータを不揮発性メモリ13に配置する配置処理例1について説明する。配置処理例1は、図5(A)に示すように、上述した基本処理のステップS4~ステップS8において、プログラムコードを不揮発性メモリ13に配置する例である。ここでは、ステップS4~ステップS8について説明し、その他のステップについての説明を省略する。
サーバは、上述した基本処理のステップS1~ステップ3を終えると、ステップS4において、INSTALL[for load]コマンドをICチップ1aに送信する。サーバはINSTALL[for load]コマンドにより、後続のLOADコマンドにてプログラムコードをロードすることを宣言し、プログラム名を予約する。これに対して、ICチップ1aのOS(を実行するCPU10)は、プログラムの識別子やサイズ等を管理するための管理データ(レジストリデータ)301を作成し、図5(B)に示すように、OSが管理する物理メモリ管理記憶領域230Bに配置する。なお、管理データ(レジストリデータ)301は、更新頻度が低いため物理メモリ管理記憶領域230Bに配置するのが好ましい。OSは、正常に処理を完了するとOKレスポンスをサーバに送信する。
次いで、サーバは、ステップS5~ステップS8において、LOADコマンド(1st)~LOADコマンド(Nth(last))のペイロードに、プログラムコードと、ICチップ1a内のプログラム(API(Application Programming Interface))へのリンク情報を、N個に分割して格納して、ICチップ1aに送信する。APIは、アプリケーションからOSの機能を利用するためのインターフェイスである。これに対して、ICチップ1aのOS(を実行するCPU10)は、図5(C)に示すように、それぞれのLOADコマンドにより受信した分割されたプログラムコード311~314を物理メモリ管理記憶領域230Aに配置する。また、OSは、LOADコマンドの中盤で受信するリンク情報321Bを仮想メモリ管理記憶領域240に配置する。但し、物理メモリ管理記憶領域230Aの仮想メモリ管理記憶領域240との境界に接する位置にリンク情報321Aとして配置したり、物理メモリ管理記憶領域230Bの仮想メモリ管理記憶領域240との境界に接する位置にリンク情報321Cとして配置したりしてもよい。 物理メモリ管理記憶領域230Aの仮想メモリ管理記憶領域240との境界に接する位置へリンク情報321Aを配置することによる効果は、OSが物理メモリ管理記憶領域230Aに断片化が発生した場合に断片化を回収する機能を備えており、且つ、物理メモリ管理記憶領域230Aに断片化が発生していない場合に生ずる。物理メモリ管理記憶領域230Aに断片化が発生していない状態でLOAD処理が始まると、OSは、LOADコマンドにより受信したプログラムコード311~314を物理メモリ管理記憶領域230Aの前方(図5(B)の左側)から順次配置していく。ここで、リンク情報321は、LOAD処理の中盤でICチップ1aに送信され、LOAD処理の完了後に削除されるデータであるため、リンク情報321を受信した際にプログラムコードと混在させて配置してしまうと、LOAD処理の完了後にリンク情報321が配置された位置(プログラムコードとプログラムコードの間)で断片化が発生してしまう。そこで、リンク情報321を受信した際に、物理メモリ管理記憶領域230Aの仮想メモリ管理記憶領域240との境界に接する位置(すなわち、物理メモリ管理記憶領域230Aの末尾)にリンク情報321Aを配置することで、LOAD処理の完了後にリンク情報321が削除されることによる断片化の発生を回避することができ、断片化を回収するための処理を省くことができる。なお、物理メモリ管理記憶領域230Bの仮想メモリ管理記憶領域240との境界に接する位置にリンク情報321Cとして配置する場合についても同様である。そして、OSが、物理メモリ管理記憶領域230A、230B又は仮想メモリ管理記憶領域240の何れの記憶領域にリンク情報を配置するかは、OSが空き状態や削除の容易さに基づいて決定するのが好ましい。そして、OSは、LOADコマンド(Nth(last))を受信すると、図5(D)に示すように、分割されたプログラムコード311~314を連結してプログラム310を生成するとともに、ICチップ1a内のプログラム(API)とリンク処理を実行し、リンク情報321A(又はリンク情報321B、321C)を削除する。OSは、正常に処理を完了するとOKレスポンスをサーバに送信する。
次に、図6のフローチャートを用いて、図5で示した配置処理例1におけるOSの動作について説明する。図6のフローチャートは、ICチップ1aがサーバからコマンドを受信した場合に開始される。
まず、OS(を実行するCPU10)は、INSTALL[for load]コマンドを受信したか否かを判定する(ステップS101)。OSは、INSTALL[for load]コマンドを受信したと判定した場合には(ステップS101:YES)、管理データ(レジストリデータ)を作成し(ステップS102)、物理メモリ管理記憶領域230Bに配置し(ステップS103)、当該フローチャートの処理を終了する。一方、OSは、INSTALL[for load]コマンドを受信していないと判定した場合には(ステップS101:NO)、次いで、INSTALL[for load]コマンドを処理済み、且つ、受信したコマンドが LOADコマンドか否かを判定する(ステップS104)。
OSは、INSTALL[for load]コマンドを処理済みでない、又は、受信したコマンドがLOADコマンドではないと判定した場合には(ステップS104:NO)、コマンドに応じた処理を実行し(ステップS105)、当該フローチャートの処理を終了する。なお、INSTALL[for load]コマンドを処理済みでなく、且つ、受信したコマンドがLOADコマンドである場合には、ステップS105の処理において、エラーを示すSW(Status Word)をサーバに送信する。一方、OSは、INSTALL[for load]コマンドを処理済み、且つ、受信したコマンドがLOADコマンドであると判定した場合には(ステップS104:YES)、受信したコマンドはLOADコマンド(Nth(last))か否かを判定する(ステップS106)。
OSは、受信したコマンドはLOADコマンド(Nth(last))であると判定した場合には(ステップS106:YES)、LOADコマンド(1st)からLOADコマンド(Nth(last))に分割されて受信したプログラムコードであって、物理メモリ管理記憶領域230に記憶されているプログラムコードを結合する(ステップS107)。次いで、OSはICチップ上のAPIとリンク処理を行い(ステップS108)、リンク情報を削除し(ステップS109)、当該フローチャートの処理を終了する。
一方、OSは、受信したコマンドはLOADコマンド(Nth(last))ではないと判定した場合には(ステップS106:NO)、コマンドデータの内容はリンク情報であるか否かを判定する(ステップS110)。OSは、コマンドデータの内容はリンク情報であると判定した場合には(ステップS110:YES)、リンク情報を仮想メモリ管理記憶領域240に配置し(ステップS111)、当該フローチャートの処理を終了する。但し、上述したように、リンク情報は、物理メモリ管理記憶領域230A又は物理メモリ管理記憶領域230Bに配置してもよい。
一方、OSは、コマンドデータの内容はリンク情報ではない(すなわち、コマンドデータの内容がプログラムコードである)と判定した場合には(ステップS110:NO)、プログラムコードを物理メモリ管理記憶領域230Aに配置し(ステップS112)、当該フローチャートの処理を終了する。
[5.配置処理例2]
次に、図7を用いて、アプリケーションに関するデータを不揮発性メモリ13に配置する配置処理例2について説明する。配置処理例2は、図7(A)に示すように、上述した基本処理のステップS9及び、その後のステップS10、ステップS11において、プログラムコード以外のアプリケーションに関するデータを不揮発性メモリ13に配置する例である。ここでは、ステップS9~ステップS11について説明し、その他のステップについての説明を省略する。
サーバは、上述した基本処理のステップS1~ステップ8を終えると、ステップS9において、INSTALL[for install]コマンドをICチップ1aに送信する。これに対して、ICチップ1aのOS(を実行するCPU10)は、先にロードされたプログラムコードに基づき、アプリケーションをインストールする(アプリケーションのインスタンスを生成する)。このとき、OSは、図7(B)に示すように、アプリケーションの指示に基づき、書き換え頻度より読み込み頻度が高いデータ331、332を物理メモリ管理記憶領域230Aに配置する。また、OSは、アプリケーションの指示に基づき、読み込み頻度より書き換え頻度が高いデータ333、334を仮想メモリ管理記憶領域240に配置する。更に、OSは、インスタンス(アプリケーションをインスタンス化して得られたインスタンス)の識別子やサイズ等を管理するための管理データ(レジストリデータ)335を作成し、OSが管理する物理メモリ管理記憶領域230Bに配置する。なお、管理データ(レジストリデータ)335は、更新頻度が低いため物理メモリ管理記憶領域230Bに配置するのが好ましい。
次いで、ステップS10において、サーバは、アプリケーションをインスタンス化して得られたインスタンスを選択するためのSELECTコマンドをICチップ1aに送信する。これに対して、ICチップ1aのOSは、SELECTコマンドで指定されたインスタンスを選択し、OKレスポンスをサーバに送信する。
次いで、ステップS11において、サーバは、ステップS10において選択したインスタンス(アプリケーション)がサポートするApplication's Proprietaryコマンドにより、アプリケーションに関するデータ(インスタンス)を生成する。このとき、何れの記憶領域に当該インスタンスを配置するかを指定する。これに対して、ICチップ1aのOSは、Application's Proprietaryコマンドに基づいて、アプリケーションに関するデータ(インスタンス)を生成し、当該コマンドで指定された記憶領域に配置する。OSは、例えば、物理メモリ管理記憶領域230Aが指定された場合には、図7(C)に示すように、アプリケーションに関するデータ(インスタンス)341を物理メモリ管理記憶領域230Aに配置する。
このように、プログラムコード以外のアプリケーションに関するデータについては、INSTALL[for install]コマンド、又は、Application's Proprietaryコマンドで生成するインスタンスとして、物理メモリ管理記憶領域230A、230B又は仮想メモリ管理記憶領域240に配置することができる。
次に、図8のフローチャートを用いて、図7で示した配置処理例2におけるOSの動作について説明する。図8のフローチャートは、ICチップ1aがサーバからコマンドを受信した場合に開始される。
まず、OS(を実行するCPU10)は、受信したコマンドのコマンドヘッダを参照し、コマンドの配送先は管理アプリケーションであるか又はアプリケーションであるかを判定する(ステップS201)。OSは、コマンドの配送先は管理アプリケーションであると判定した場合には、次いで、INSTALL[for install]コマンドを受信したか否かを判定する(ステップS202)。OSは、INSTALL[for install]コマンドを受信したと判定した場合には(ステップS202:YES)、管理データ(レジストリデータ)を作成し(ステップS203)、物理メモリ管理記憶領域230Bに配置し(ステップS204)、ステップS206に移行する。一方、OSは、INSTALL[for install]コマンドを受信していないと判定した場合には(ステップS202:NO)、コマンドに応じた処理を実行し(ステップS214)、当該フローチャートの処理を終了する。
一方、OSは、ステップS201の処理において、コマンドの配送先はアプリケーションであると判定した場合には、次いで、メモリ確保が必要なコマンド を受信したか否かを判定する(ステップS205)。OSは、メモリ確保が必要なコマンドを受信していないと判定した場合には(ステップS205:NO)、コマンドに応じた処理を実行し(ステップS214)、当該フローチャートの処理を終了する。一方、OSは、メモリ確保が必要なコマンドを受信したと判定した場合には(ステップS205:YES)、ステップS206に移行する。
次いで、OSは、命令をフェッチする(ステップS206)。次いで、OSは命令がReturn命令であるか否かを判定する(ステップS207)。なお、Return命令とはコマンド処理の最終命令である。OSは命令がReturn命令であると判定した場合には(ステップS207:YES)、当該フローチャートの処理を終了する。一方、OSは、命令がReturn命令ではないと判定した場合には(ステップS207:NO)、次いで、命令がインスタンス生成命令であるか否かを判定する(ステップS208)。
OSは、命令がインスタンス生成命令ではないと判定した場合には(ステップS208:NO)、その命令を実行し(ステップS209)、ステップS206に移行する。一方、OSは、命令がインスタンス生成命令であると判定した場合には(ステップS208:YES)、次いで、生成方法はnew byte[x]によるものか否かを判定する(ステップS210)。
OSは、生成方法はnew byte[x]によるものであると判定した場合には(ステップS210:YES)、物理メモリ管理記憶領域230Aにxを配置し(ステップS211)、ステップS206に移行する。一方、OSは、生成方法はnew byte[x]によるものではないと判定した場合には(ステップS210:NO)、次いで、生成方法はmakeArray(x)によるものか否かを判定する(ステップS212)。
OSは、生成方法はmakeArray(x)によるものであると判定した場合には(ステップS212:YES)、仮想メモリ管理記憶領域240にxを配置し(ステップS213)、ステップS206に移行する。一方、OSは、生成方法はmakeArray(x)によるものではないと判定した場合には(ステップS212:NO)、ステップS206に移行する。
なお、INSTALL[for install]コマンド以外のコマンドにおいてもオブジェクトを生成する可能性があり、それらのコマンドについても図8のステップS206以降の処理を適用することができる。
[6.参照処理例]
次に、図9を用いて、不揮発性メモリ13に配置されたアプリケーションに関するデータに対する読み込み/書き換え時の参照処理例について説明する。
まず、図9(A)に示すように、物理メモリ管理記憶領域230Aには、不揮発性メモリ13(実メモリ空間)の「101h」から「150h」までが割り当てられ、仮想メモリ管理記憶領域240には、不揮発性メモリ13(実メモリ空間)の「151h」から「190h」までが割り当てられ、また、物理メモリ管理記憶領域230Bには、不揮発性メモリ13(実メモリ空間)の「191h」から「220h」までが割り当てられているとする。なお、実メモリ空間の位置を示す数値は物理アドレスである。
また、仮想メモリ管理記憶領域240として割り当てられた実メモリ空間の「151h」から「190h」に対して、例えば、仮想メモリ空間の「151h」から「170h」までが割り当てられる。なお、仮想メモリ空間の位置を示す数値は仮想アドレスである。実メモリ空間の「151h」から「190h」までと、仮想メモリ空間の「151h」から「170h」までは、仮想メモリ管理機構220により管理される。仮想メモリ空間の「151h」から「170h」までの仮想アドレスは、図示しない変換情報に基づいて物理アドレスに変換され、不揮発性メモリ13(実メモリ空間)に記憶されたデータの参照に用いられる。例えば、仮想メモリ管理機構220により、仮想メモリ空間におけるデータ333Vの位置を示す仮想アドレスは、変換情報に基づいて、実メモリ空間のデータ333Rの位置を示す物理アドレスに変換され、同様に、仮想メモリ空間におけるデータ334Vの位置を示す仮想アドレスは、変換情報に基づいて、実メモリ空間のデータ334Rの位置を示す物理アドレスに変換される。
仮想メモリ空間及び実メモリ空間の「101h」から「150h」まで、及び「191h」から「220h」までは、物理メモリ管理機構210により管理される。仮想メモリ空間の「101h」から「150h」まで、及び「191h」から「220h」までの仮想アドレスは、アドレス変換がなされず、仮想アドレスがそのまま物理アドレスとして、不揮発性メモリ13(実メモリ空間)に記憶されたデータの参照に用いられる。
次に、図9(B)から(D)を用いて、アプリケーションが不揮発性メモリ13に配置されたアプリケーションに関するデータを参照する際の処理例について説明する。図9(B)及び図9(C)は、アプリケーションが、自らが使用するアプリケーションに関する各データが物理メモリ管理記憶領域230又は仮想メモリ管理記憶領域240の何れに記憶されているかを把握していることを前提している。図9(B)は、アプリケーションが物理メモリ管理記憶領域230に記憶されているデータ「a」(図9(A)参照)を参照する際のフローチャートであり、図9(C)は、アプリケーションが仮想メモリ管理記憶領域240に記憶されているデータ「b」(図9(A)参照)を参照する際のフローチャートである。一方、図9(D)は、アプリケーションはデータの記憶されている位置を特定せずに、参照するデータ(ここではデータ「x」)のみを指定し、OSが当該指定されたデータが何れの領域に記憶されているかを判定した上でデータを参照する際のフローチャートである。
まず、図9(B)に示す例について説明する。アプリケーションが物理メモリ管理記憶領域230A、230Bに記憶されているデータ「a」を参照する場合には、例えば、プログラムコードに「temp=a;」といった文字列が記述される。なお、tempはRAM11のStack上に割り当てられるローカル変数である(以下、同様)。OSは、「temp=a;」に基づいて、データ「a」の仮想アドレスVaddrを取得する(ステップS301)。
次いで、OSは、データ「a」の物理アドレスPaddrを、ステップS301の処理で取得したVaddrとする(ステップS302)。つまり、OSは、変換情報を用いたアドレス変換を行わない。
次いで、OSは、物理アドレスPaddrによりデータ「a」を参照し(ステップS303)、当該フローチャートに示す処理を終了する。
次に、図9(C)に示す例について説明する。アプリケーションが仮想メモリ管理記憶領域240に記憶されているデータ「b」を参照する場合には、例えば、プログラムコードに「temp=Vread(b);」といった文字列が記述される。OSは、「temp=Vread(b);」に基づいて、データ「b」の仮想アドレスVaddrを取得する(ステップS401)。
次いで、OSは、Vread(b)を実行する(ステップS402)。Vread(b)は、ステップS401の処理で取得したデータ「b」の仮想アドレスを変換情報に基づいてアドレス変換して(offsetを加算して)、物理アドレスPaddrを取得する関数である。
次いで、OSは、ステップS402の処理で取得した物理アドレスPaddrによりデータ「b 」を参照し(ステップS403)、当該フローチャートに示す処理を終了する。
次に、図9(D)に示す例について説明する。アプリケーションがデータ「x」を参照する場合には、例えば、プログラムコードに「temp=x 」といった文字列が記述される。OSは、「temp=x」に基づいて、データ「x」の仮想アドレスVaddrを取得する(ステップS501)。
次いで、OSは、「101h≦Vaddr≦150h」又は「191h≦Vaddr≦220h」であるか否かを判定する(ステップS502) 。OSは、「101h≦Vaddr≦150h」又は「191h≦Vaddr≦220h」であると判定した場合には(ステップS502:YES)、データ「x」の物理アドレスPaddrを、ステップS501の処理で取得したVaddrとする(ステップS503)。つまり、OSは、変換情報を用いたアドレス変換を行わない。一方、OSは、「101h≦Vaddr≦150h」及び「191h≦Vaddr≦220h」の何れでもないと判定した場合には(ステップS502:NO)、データ「x」の物理アドレスPaddrを、ステップS501の処理で取得したVaddrにoffsetを加算したアドレスとする(ステップS504)。offsetは、変換情報に記述された値であり、仮想アドレスVaddrに加算することにより、物理アドレスPaddrを求めることができる。つまり、OSは、変換情報を用いたアドレス変換を行う。
ステップS503及びステップS504を終えると、OSは、物理アドレスPaddrによりデータ「x」を参照し(ステップS505)、当該フローチャートに示す処理を終了する。
以上のように、本実施形態のICチップ1a(「電子情報記憶媒体」の一例)は、OSにより管理される仮想メモリ管理記憶領域240(「第1の記憶領域」の一例)と物理メモリ管理記憶領域230(「第2の記憶領域」の一例)を有し、アプリケーションに関するデータを記憶する不揮発性メモリ13と、OSを実行するCPU10(「処理部」の一例)とを有し、CPU10は、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスが示す仮想メモリ管理記憶領域240上の位置に記憶されたデータの書き換え又は読み出しと、変換情報に基づく変換がなされていない物理アドレスが示す物理メモリ管理記憶領域230上の位置に記憶されたデータの書き換え又は読み出しと、を行う。
したがって、本実施形態のICチップ1aによれば、アドレス変換を介して不揮発性メモリ13上のデータにアクセスする仕組みを有することにより、ウェアレベリング処理を実現でき、不揮発性メモリ13の寿命を伸ばすことができる。また、アドレス変換を介さずに不揮発性メモリ13上のデータにアクセスする仕組みを有することにより、データの相対的な高速読み出しを実現でき、アプリケーションの実行速度の低下を軽減できる。
また、CPU10は、仮想メモリ管理記憶領域240上のデータについて書き換えを行う場合に、それまでの書き込み回数が相対的に低い記憶素子に書き換えのデータを書き込み、当該データに対応する仮想アドレスが当該記憶素子を示す物理アドレスに変換されるように変換情報を更新する。すなわち、ICチップ1aは仮想メモリ管理記憶領域240についてウェアレベリング処理を実現することにより、不揮発性メモリ13の寿命を伸ばすことができる。
更に、物理メモリ管理記憶領域230は、書き換え頻度より読み込み頻度が高いデータを記憶することが好ましい。これにより、書き換え頻度より読み込み頻度が高いデータを高速に読み出すことができる。例えば、アプリケーションのプログラムコードを物理メモリ管理記憶領域230に記憶させることにより、アプリケーションの実行速度が低下を防ぐことができる。なお、実際にアプリケーションが動作する場合、不揮発性メモリ13上のプログラムコード(バイトコード)を1バイト毎に読み込み、その値によって命令を判定し、命令に対応する関数を実行する。この読み込み処理がアプリケーションのプログラムサイズに依存してループするため読み込み処理毎にアドレス変換を行うとアプリケーションの動作速度が著しく低下してしまう。よって、プログラムコードを物理メモリ管理記憶領域230に記憶させることが好ましい。
更にまた、仮想メモリ管理記憶領域240は、読み込み頻度より書き換え頻度が高いデータを記憶することが好ましい。例えば、カウンタを仮想メモリ管理記憶領域240に記憶させる。これにより、読み込み頻度より書き換え頻度が高いデータを書き換えることによる記憶素子に対するストレスを分散するでき、不揮発性メモリ13の寿命を伸ばすことができる。
1 ICカード
1a ICチップ
10 CPU
11 RAM
12 ROM
13 不揮発性メモリ
14 I/O回路
2 外部機器

Claims (8)

  1. OSにより管理される第1の記憶領域と第2の記憶領域を有し、アプリケーションに関するデータを記憶する不揮発性メモリと、前記OSを実行する処理部とを有し、前記第1の記憶領域が、読み込み頻度より書き換え頻度が高い前記データを記憶する電子情報記憶媒体であって、
    前記処理部は、
    仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスが示す前記第1の記憶領域上の位置に記憶された前記データの書き換え又は読み出しと、
    前記変換情報に基づく変換がなされていない物理アドレスが示す前記第2の記憶領域上の位置に記憶された前記データの書き換え又は読み出しと、
    を行うことを特徴とする電子情報記憶媒体。
  2. 請求項1に記載の電子情報記憶媒体であって、
    前記処理部は、前記第1の記憶領域上の前記データについて書き換えを行う場合に、それまでの書き込み回数が相対的に低い記憶素子に書き換えのデータを書き込み、当該データに対応する仮想アドレスが当該記憶素子を示す物理アドレスに変換されるように前記変換情報を更新することを特徴とする電子情報記憶媒体。
  3. 請求項1又は2に記載の電子情報記憶媒体であって、
    前記第2の記憶領域は、書き換え頻度より読み込み頻度が高い前記データを記憶することを特徴とする電子情報記憶媒体。
  4. 請求項3に記載の電子情報記憶媒体であって、
    書き換え頻度より読み込み頻度が高い前記データは、プログラムコードであることを特徴とする電子情報記憶媒体。
  5. 請求項1乃至4の何れか一項に記載の電子情報記憶媒体であって、
    読み込み頻度より書き換え頻度が高い前記データは、カウンタであることを特徴とする電子情報記憶媒体。
  6. 請求項1乃至の何れか一項に記載の電子情報記憶媒体を備えるICカード。
  7. OSにより管理される第1の記憶領域と第2の記憶領域を有し、アプリケーションに関するデータを記憶する不揮発性メモリと、前記OSを実行する処理部とを有し、前記第1の記憶領域が、読み込み頻度より書き換え頻度が高い前記データを記憶する電子情報記憶媒体による情報処理方法であって、
    前記処理部が、仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスが示す前記第1の記憶領域上の位置に記憶された前記データの書き換え又は読み出しを行う第1工程と、
    前記処理部が、前記変換情報に基づく変換がなされていない物理アドレスが示す前記第2の記憶領域上の位置に記憶された前記データの書き換え又は読み出しを行う第2工程と、
    を含むことを特徴とする情報処理方法。
  8. OSにより管理される第1の記憶領域と第2の記憶領域を有し、アプリケーションに関するデータを記憶する不揮発性メモリと、前記OSを実行する処理部とを有し、前記第1の記憶領域が、読み込み頻度より書き換え頻度が高い前記データを記憶する電子情報記憶媒体における前記処理部を、
    仮想アドレスを物理アドレスに変換するための変換情報に基づいて変換された物理アドレスが示す前記第1の記憶領域上の位置に記憶された前記データの書き換え又は読み出しを行う第1手段、
    前記変換情報に基づく変換がなされていない物理アドレスが示す前記第2の記憶領域上の位置に記憶された前記データの書き換え又は読み出しを行う第2手段、
    として機能させることを特徴とするOS。
JP2018011879A 2018-01-26 2018-01-26 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos Active JP7040053B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2019128905A JP2019128905A (ja) 2019-08-01
JP7040053B2 true JP7040053B2 (ja) 2022-03-23

Family

ID=67472296

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP7040053B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008117520A1 (ja) 2007-03-28 2008-10-02 Panasonic Corporation メモリコントローラ、不揮発性メモリシステムおよびホスト装置
JP2008310460A (ja) 2007-06-13 2008-12-25 Renesas Technology Corp 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法
JP2014056408A (ja) 2012-09-12 2014-03-27 Toshiba Corp メモリシステム、コンピュータシステム、およびメモリ管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3494676B2 (ja) * 1993-09-06 2004-02-09 富士フイルムマイクロデバイス株式会社 不揮発性半導体記憶装置とデータ書換/読出方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008117520A1 (ja) 2007-03-28 2008-10-02 Panasonic Corporation メモリコントローラ、不揮発性メモリシステムおよびホスト装置
JP2008310460A (ja) 2007-06-13 2008-12-25 Renesas Technology Corp 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法
JP2014056408A (ja) 2012-09-12 2014-03-27 Toshiba Corp メモリシステム、コンピュータシステム、およびメモリ管理方法

Also Published As

Publication number Publication date
JP2019128905A (ja) 2019-08-01

Similar Documents

Publication Publication Date Title
JP5329884B2 (ja) 携帯可能電子装置および携帯可能電子装置におけるデータ処理方法
US6539453B1 (en) Storage system including means for management of a memory with anti-attrition, and process of anti-attrition management of a memory
KR100531192B1 (ko) 비휘발성 메모리의 제어방법
US6480935B1 (en) Smart card memory management system and method
US9183400B2 (en) IC card and IC card control method
KR20140108666A (ko) 스마트 카드의 비휘발성 메모리에 데이터 쓰기
JP5225054B2 (ja) Icカード
JP7040053B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos
JP7043886B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos
JP4460850B2 (ja) Icカードとicカードの処理方法
US7773433B2 (en) Method for managing a non-volatile memory in a smart card
JP2006293706A (ja) アプリケーションの更新機能を有するマルチアプリケーションicカード
US7346730B2 (en) Mobile electronic device
JP7322923B2 (ja) セキュアエレメント,トランザクション制御方法およびデバイス
JP6984328B2 (ja) 電子情報記憶媒体、icカード、外部機器、データ書き込み方法及びデータ書き込みプログラム
US20090083273A1 (en) Portable electronic apparatus and control method for portable electronic apparatus
JP7468765B1 (ja) 電子情報記憶媒体、icチップ、icカード、データ一括更新方法、及びプログラム
JP7468757B1 (ja) 電子情報記憶媒体、icチップ、icカード、レスポンス送信方法、及びプログラム
JP7021465B2 (ja) 電子情報記憶装置、icカード、データ復元方法、及びデータ復元プログラム
JP6015461B2 (ja) 情報記録媒体、データ読み書き方法、及びデータ読み書きプログラム
JP2016153945A (ja) 電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム
JP6039036B2 (ja) Icカード、携帯可能電子装置及びicカードの制御方法
JP6447219B2 (ja) 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード
JP2022187935A (ja) セキュアエレメント,電子情報記憶媒体およびデータの更新方法
JP6281302B2 (ja) 情報処理装置、icカード、及びデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220120

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: 20220208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220221

R150 Certificate of patent or registration of utility model

Ref document number: 7040053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150