JP6769150B2 - 電子情報記憶媒体、情報処理方法、及び情報処理プログラム - Google Patents

電子情報記憶媒体、情報処理方法、及び情報処理プログラム Download PDF

Info

Publication number
JP6769150B2
JP6769150B2 JP2016143992A JP2016143992A JP6769150B2 JP 6769150 B2 JP6769150 B2 JP 6769150B2 JP 2016143992 A JP2016143992 A JP 2016143992A JP 2016143992 A JP2016143992 A JP 2016143992A JP 6769150 B2 JP6769150 B2 JP 6769150B2
Authority
JP
Japan
Prior art keywords
data
page
flash memory
pages
deletion
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
JP2016143992A
Other languages
English (en)
Other versions
JP2018014014A (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 JP2016143992A priority Critical patent/JP6769150B2/ja
Publication of JP2018014014A publication Critical patent/JP2018014014A/ja
Application granted granted Critical
Publication of JP6769150B2 publication Critical patent/JP6769150B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

ICチップ等の電子情報記憶媒体の技術分野に関する。
従来のNFC(Near Field Communication)非対応のUIM(User Identity Module)カードは、UIM上のアプリケーションとして基本的に携帯電話サービスに必要となるアプリケーション(以下、「TELアプリ」という)のみを搭載していた。一方、近年普及が進むNFC対応のUIMカードは、TELアプリに加え、クレジット決済サービス等の付加サービス用アプリケーション(以下、「付加サービスアプリ」という)を搭載している。また、NFC対応のUIMカードは、不揮発性メモリとして従来のEEPROM(Electrically Erasable Programmable Read-Only Memory)ではなく、大容量なNOR型フラッシュメモリを搭載するようになっている。
NFC非対応のUIMカードは、付加サービスアプリの追加を想定していないため、メモリ上の各領域の境界アドレスが変わったり、新しくデータを記憶する領域が増えたり、データを記憶する既存の領域が削除されることはない。これに対して、NFC対応のUIMカードは、ユーザの意思によりさまざまな付加サービスアプリが導入、活性化、削除される。これらの付加サービスアプリはサービス内容に依存してプログラムコードサイズ、ユーザデータサイズはさまざまである。よって、付加サービスアプリに関するデータの追加、削除を繰り返すことにより複数の小さな空き領域(断片化した空き領域)が生まれる。これらの空き領域を柔軟に活用するためは、連続した空き領域を生成する処理(デフラグメンテーション処理/メモリコンパクション処理)が必要となる。
そうした中、特許文献1には、データファイルの分割度合いを検出して、分割度合いに応じて互いにデータの内容が連続する位置に記録されるようにデータを移動させるデフラグ処理について開示されている。
特許第3421898号公報
しかしながら、特許文献1に記載の技術は、UIMカードのように外部端末から受信するコマンドに応じてメモリの更新等を行うことは想定されておらず、デフラグ処理を実行するタイミングについて何ら開示されていないため、UIMカード等の電子情報記憶媒体について適用することが困難であるという問題がある。
そこで、本発明は、外部端末から受信するコマンドに応じてフラッシュメモリの更新を行う電子情報記憶媒体において、適切なタイミングで当該フラッシュメモリにおける断片化した空き領域から連続した空き領域を生成することができる電子情報記憶媒体等を提供することを目的とする。
上記課題を解決するために、請求項1に記載の発明は、複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行する実行部とを備える電子情報記憶媒体であって、前記実行部は、前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除手段と、前記削除手段がデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更手段と、を備え、前記削除手段は、前記フラッシュメモリに所定サイズ以上の連続する空きページがある場合には、前記位置変更処理を行わないことを特徴とする。
請求項に記載の発明は、請求項1に記載の電子情報記憶媒体であって、前記フラッシュメモリは、アプリケーションに関する前記データを記憶し、前記削除手段は、前記アプリケーションに関する少なくとも一部のデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除し、前記変更手段は、前記削除対象のデータの削除前に前記アプリケーションに関するデータが複数ページにわたって記憶されている場合に、当該削除対象のデータの削除によりできた空き領域に当該空き領域を含むページとは異なる他ページに記憶されているデータを移動するように当該データが記憶される位置を変更して前記他ページを空きページとする空きページ生成処理を行うことを特徴とする。
請求項に記載の発明は、請求項に記載の電子情報記憶媒体であって、前記変更手段は、前記空きページ生成処理を行う前に、前記削除対象のデータの削除によりできる空き領域に前記他ページに記憶されているデータを移動することにより当該他ページを前記空きページとすることができるか判定し、当該他ページを前記空きページとすることができると判定した場合に前記空きページ生成処理を行うことを特徴とする。
請求項に記載の発明は、複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行する実行部とを備える電子情報記憶媒体であって、前記実行部は、前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除手段と、前記削除手段がデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更手段と、2以上の所定数のページで構成されるページ群単位で、データが記憶されているか否かを管理する管理手段、を更に備え、前記変更手段は、前記削除手段がデータを削除した結果、全てのページが前記空きページとなったページ群に対応する記憶領域に、前記空きページでないページを含む他のページ群に対応する記憶領域に記憶されているデータを移動させることを特徴とする。
請求項に記載の発明は、複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行する実行部とを備える電子情報記憶媒体による情報処理方法であって、前記実行部が、前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除工程と、前記実行部が、前記削除工程によりデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更工程と、を含み、前記削除工程では、前記フラッシュメモリに所定サイズ以上の連続する空きページがある場合には、前記位置変更処理を行わないことを特徴とする。
請求項6に記載の発明は、複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行する実行部とを備える電子情報記憶媒体による情報処理方法であって、前記実行部が、前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除工程と、前記実行部が、前記削除工程によりデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更工程と、前記実行部が、2以上の所定数のページで構成されるページ群単位で、データが記憶されているか否かを管理する管理工程と、を含み、前記変更工程では、前記削除工程でデータを削除した結果、全てのページが前記空きページとなったページ群に対応する記憶領域に、前記空きページでないページを含む他のページ群に対応する記憶領域に記憶されているデータを移動させることを特徴とする。
請求項7に記載の発明は、複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行するコンピュータとを備える電子情報記憶媒体における前記コンピュータを、前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除手段、前記削除手段がデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更手段、として機能させ、前記削除手段は、前記フラッシュメモリに所定サイズ以上の連続する空きページがある場合には、前記位置変更処理を行わないことを特徴とする。
請求項8に記載の発明は、複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行するコンピュータとを備える電子情報記憶媒体における前記コンピュータを、前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除手段、前記削除手段がデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更手段、2以上の所定数のページで構成されるページ群単位で、データが記憶されているか否かを管理する管理手段、として機能させ、前記変更手段は、前記削除手段がデータを削除した結果、全てのページが前記空きページとなったページ群に対応する記憶領域に、前記空きページでないページを含む他のページ群に対応する記憶領域に記憶されているデータを移動させることを特徴とする。
本発明によれば、削除コマンドを受信した際にフラッシュメモリにおける断片化した空き領域から連続した空き領域を生成することができる。
本実施形態に係る携帯端末1の概要構成例を示すブロック図である。 本実施形態に係るUIMカード18の概要構成例を示すブロック図である。 本実施形態に係るフラッシュメモリ183のデフラグ処理前のデータ記憶状況(図3(A))と、デフラグ処理後のデータ記憶状況(図3(B))の例を示す図である。 本実施形態に係るフラッシュメモリ183のデータ削除前のデータ記憶状況(図4(A))と、データ(FA3)削除後のデータ記憶状況(図4(B))の例を示す図である。 本実施形態に係るフラッシュメモリ183のデータ(FA2)削除後のデータ記憶状況(図5(A))と、アプリ内デフラグ処理後のデータ記憶状況(図5(B))の例を示す図である。 CPU181によるコマンド受信時処理の処理例を示すフローチャートである。 CPU181による第1デフラグ処理の処理例を示すフローチャートである。 CPU181による第2デフラグ処理の処理例を示すフローチャートである。 フラッシュメモリ183を複数ページ単位で管理する変形例において、フラッシュメモリ183のアプリB削除前のデータ記憶状況(図9(A))と、アプリB削除後のデータ記憶状況(図9(B))の例を示す図である。
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、携帯端末に備えられたUIMカードに搭載されるICチップに対して本発明を適用した場合の実施の形態である。
まず、図1等を参照して、本実施形態に係る携帯端末1の構成及び機能概要を説明する。
[1.携帯端末1の構成]
図1は、本実施形態に係る携帯端末1の概要構成例を示すブロック図である。図1に示すように、携帯端末1は、制御部11、記憶部12、無線通信部13、表示部14、入力部15、CLFインターフェース16a、ICカードインターフェース16b、及びCLF19等を備えて構成され、これらの構成要素はバス17を介して相互に接続される。なお、携帯端末1は、例えば携帯電話機やスマートフォン、タブレット端末等である。
制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)、及びRAM(Random Access Memory)等により構成される。記憶部12は、例えばフラッシュメモリ等の不揮発性メモリにより構成される。上記ROMまたは記憶部12には、OS(Operating System)及びミドルウェアが記憶される。また、記憶部12には、携帯端末1にインストールされたAPI(Application Program Interface)及びアプリケーションソフトウェア(アプリケーションプログラム言語から構成されるソフトウェア)等が記憶される。APIは、アプリケーションソフトウェアからオペレーティングシステムの機能を利用するためのインターフェースである。アプリケーションソフトウェアは、例えば所定のサーバからダウンロード可能なプログラムである。
無線通信部13は、アンテナを有し、移動体通信網における基地局との間で行われる無線通信を制御する。表示部14は、例えばタッチパネル方式の表示パネルを有し、表示パネルへの表示制御、及びユーザからの操作指示の受け付けを行う。入力部15は、ユーザからの操作指示を入力するための操作ボタンを有し、操作ボタンに応じた信号を制御部11に出力する。CLFインターフェースは、制御部11とCLF19との間のインターフェースを担い、ICカードインターフェース16bは、制御部11とUIMカード18との間のインターフェースを担う。
UIMカード18は、UICC(Universal Integrated Circuit Card)の一つであり、例えば、従来のSIM(Subscriber Identity Module)をベースに機能を拡張された接触型ICチップを搭載する。
CLF19は、NFCの規格で規定される非接触通信を行う非接触型ICチップであり、非接触通信のフィールド内で読取装置(図示せず)との間で各種信号の送受信を行うためのアンテナに接続されている。そして、ユーザが携帯端末1を読取装置に翳すと、読取装置から送信されたコマンドを、インターフェイス(図示せず)を介してUIMカード18へ送信し、UIMカード18から送信された、コマンドに対する応答を読取装置に返すようになっている。なお、CLF19は、携帯端末1のOSにより操作可能になっている。
[2.ICチップCの構成]
図2は、本実施形態に係るUIMカード18に搭載されるICチップCの概要構成例を示すブロック図である。図2に示すように、ICチップCは、CPU181(「実行部」、「コンピュータ」の一例)、RAM182、フラッシュメモリ183、及びI/O回路184等を備え、これらの構成要素はバス185を介して相互に接続される。
RAM182には、例えばOS、ミドルウェア、各種アプリケーションが機能するうえで一時的に必要となるデータが記憶される。
フラッシュメモリ183は、例えばNOR型フラッシュメモリであって、OS、ミドルウェア及びアプリケーション(TELアプリや付加サービスアプリ)等を記憶する。フラッシュメモリ183はページ(又はブロック)と呼ばれる固定長サイズ(ページサイズは例えば64/128/256バイト)単位で記憶領域の更新処理が行われる。例えば、ページ1にデータAとデータBが記憶されており、データAのみを消去する場合、ページ1の内容をRAM182に退避(コピー)して、退避した内容からデータAのみを削除しておき、そして、フラッシュメモリ183のページ1に対応する領域を消去した後、この領域にRAM182に退避した内容(データAを削除した内容)を書き込む。
I/O回路184は、ISO7816等によって定められた、C1〜C8の8個の接続端子を有する。ここで、C1端子は電源端子(VCC)であり、C5端子はグランド端子(GND)である。また、C2端子は、リセット端子(RST)であり、C3端子は、クロック端子(CLK)である。また、C7端子は、CPU181と制御部11との間の通信のために用いられる。また、C6端子は、CPU181とCLF19との間の通信のために用いられる。なお、CPU181とCLF19間の通信プロトコルには、SWP(Single Wire Protocol)が適用される。
CPU181は、CLF19からコマンドを受信すると、当該コマンドに応じたコマンド処理を実行し、コマンドに対する応答をCLF19に対して行う。また、CPU181は、制御部11からコマンドを受信すると、当該コマンドに応じたコマンド処理を実行し、コマンドに対する応答を制御部11に対して行う。
次に、付加サービスアプリの導入、活性化、削除について説明する。まず、付加サービスアプリの導入とは、付加サービスアプリのプログラム(バイナリデータ)をフラッシュメモリ183上へ書き込むことを意味する。この処理をロード(Load)処理という。なお、書き込むプログラムのサイズはアプリケーションの機能数やその内容に依存するが、一般的に大きなサイズ(数Kから数十Kバイト程度)であることが多いため、連続した大きなサイズの空き領域が必要となる。
付加サービスアプリの活性化とは、付加サービスアプリのロード処理で書き込んだプログラムを基にアプリの実態としてインスタンスを生成しフラッシュメモリ183上へ書き込むことを意味する。この処理をインストール(Install)処理という。なお、書き込む全インスタンスサイズはアプリケーションが保持するデータの数や各データのサイズに依存するが、UIMカード18のようなNFC対応UIMカード向けアプリケーションの多くは、プログラム同様に大きなサイズであることが多いため、連続した大きなサイズの空き領域が必要となる。
付加サービスアプリの削除は主に2種類存在する。1つはロード処理したプログラムをフラッシュメモリ183から削除することをいう。もう1つはインストールしたインスタンスをフラッシュメモリ183から削除することをいう。これらの処理を、デリート(Delete)処理という。ここでいう削除とは、フラッシュメモリ183を所定の初期値で更新することを意味する。ユーザ視点では大きなデータを削除することになるが、OS処理としては、プログラムやインスタンスが格納された領域を空き領域へ更新するのではなく、OSが管理するプログラムリストあるいはインスタンスリストの情報のみを削除することが多い。
付加サービスアプリの導入、活性化、削除によりフラッシュメモリ183に対するアロケートとリリースが繰り返されることにより、小さな複数の空き領域(断片化した空き領域)が生まれる。これらの領域を柔軟に活用するため、連続した空き領域を生み出すデフラグ処理が必要となる。デフラグ処理を実現するにあたり、仮想アドレス空間を用いたメモリ管理方法を採用した場合、断片化した物理アドレス空間を連続した仮想アドレス空間へマッピングするためのページテーブルを更新する。また、仮想アドレス空間を用いないメモリ管理方法を採用した場合、断片化した空き領域を他の空き領域と隣接させて領域を統合するために、非空き領域を移動(更新)する必要がある。何れのメモリ管理方法であっても、これらの処理は非常に時間を要する。そこで、デフラグ処理を実行するタイミングについて検討する。
ロード処理はフラッシュメモリ183内の連続した大きなサイズの空き領域へプログラムを書き込む処理である。フラッシュメモリ183のページサイズはある程度大きなサイズであるから、大きなデータを書き込む処理自体は効率的に実行することができる。しかし、実際のロード処理はUIMカードが保持する内部API(Application Programming Interface)とロードしたプログラムをリンクするためにプログラム内のリンク情報(サイズは非常に小さい)を更新する必要があり、OSが管理するプログラムリストへのエントリ情報(サイズは非常に小さい)を追加するなどの処理が必要となる。結果として、フラッシュメモリ183への書き込み回数が多く、ロード処理の処理負荷は非常に高い。
インストール処理はフラッシュメモリ183内へ複数のインスタンスを書き込む処理である。インストールされるアプリケーションが保持するデータ数と各データのサイズによって書き込みのトータルサイズが決まる。また、OSが管理するインスタンスリストへのエントリ情報を追加する処理も必要となる。結果として、ロード処理と同様にフラッシュメモリへの書き込み回数が多く、インストール処理の処理負荷は非常に高い。
デリート処理はロード処理あるいはインストール処理でフラッシュメモリ183へ書き込んだ大きなサイズの領域を空き領域へ更新する処理である。ロード処理あるいはインストール処理では非常に小さいサイズでの書き込みを繰り返すが、デリート処理ではまとめて一括更新することが可能なため、ロード処理やインストール処理と比較して、処理負荷は非常に低い。また、OSが管理するリスト情報の更新をもって削除とする場合、処理負荷は更に低い。したがって、本実施形態では、デリート処理を実行する際に、デフラグ処理を行う。
ここで、図3を用いてデフラグ処理について説明する。図3(A)はフラッシュメモリ183のデフラグ処理前のデータ記憶状況の例を示し、図3(B)はデフラグ処理後のデータ記憶状況の例を示している。図3では、説明の簡略化のためにフラッシュメモリ183はページP1−P12で構成されているものとする。
図3(A)の例では、ページP4の一部が、データが記憶されていない空き領域E1となっており、ページP7の全てが空き領域E2となっており、ページP9の一部が空き領域E3となっている。また、ページP11及びページP12にはデータが記憶されておらず、空き領域E4となっている。
ここで、本実施形態におけるCPU181によるデフラグ処理について説明する。CPU181はフラッシュメモリ183において、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更することによりデフラグを実行する。つまり、一部でもデータが記憶されているページ、例えば、空き領域E1や空き領域E3を含むページP4やページP9は空きページとして取り扱わない。これは、上述したように、フラッシュメモリ183の更新はページ単位で実行され、ページサイズのデータ更新処理と、ページサイズ未満(例えば1バイト)のデータ更新処理の負荷は変わらないためである。これにより、未使用であるにも関らず使用できない領域が生まれてフラッシュメモリ183の使用効率は下がるが、ページサイズと書き込むデータサイズから影響は極めて小さい。
図3(A)の例では、空きページはページP7、ページP11及びページP12であるので、CPU181は、ページP10に記憶されているデータの位置をページP7の位置に変更する(すなわち、ページP10の内容をページP7に移動させる)。これにより、図3(B)に示すように、ページP10が空きページとなり、ページP10、ページP11及びページP12と空きページが連続することとなる。なお、CPU181は、ページP8、ページP9及びページP10に記憶されているデータの位置をページP7、ページP8及びページP9の位置に変更する(すなわち、ページP8、ページP9及びページP10に記憶されているデータの位置を1ページ分前にシフト移動させる)こととしてもよい。この場合も、図3(B)に示すように、ページP10、ページP11及びページP12と連続する空きページを生成することができる。
なお、CPU181は、所定の連続した空き領域をFREEMINIとして、フラッシュメモリ183上にFREEMINI以上の連続した空き領域が存在する場合には、デフラグ処理を実行しないこととしてもよい。FREEMINIとして、例えば、64Kバイトを設定する。これは、技術仕様上の制約により付加サービスアプリのプログラムサイズは最大64Kバイトであることによる。すなわち、断片化した空き領域が存在したとしても、FREEMINI以上の連続した空き領域が存在する場合にはロード処理を行うことができるため、デフラグ処理を実行しないこととすることができる。これにより、直ぐには必要でないデフラグ処理を行わずに済み処理時間が短縮される。
次に、図4及び図5を用いてアプリ内デフラグ処理について説明する。アプリ内デフラグ処理とは、アプリケーションに関連するデータが複数ページにわたっている場合において、アプリケーションに関連するデータの一部が削除された際、その領域に、他ページのデータを移動させることにより当該他ページを空きページとする処理である。
図4及び図5において、OXY(「O」で始まる3文字の文字列)はアプリケーションXが保持するY番目のオブジェクトを示す。例えば、「OA1」は、アプリケーションAが保持する1番目のオブジェクトを示す。次に、KXY(「K」で始まる3文字の文字列)はアプリケーションXが保持するY番目の鍵を示す。例えば、「KA1」は、アプリケーションAが保持する1番目の鍵を示す。次に、FXY(「F」で始まる3文字の文字列)はアプリケーションXが保持するY番目のファイルを示す。例えば、「FA1」は、アプリケーションAが保持する1番目のファイルを示す。なお、それぞれ、括弧内の数値はメモリ消費サイズを示している。
図4では、アプリAに関連するデータがP及びPX+1の2ページに記憶されている。図4(A)はフラッシュメモリ183のデータ削除前のデータ記憶状況を示しており、ここから、CPU181がデリートコマンド(DELETE FILE(FA3)に基づいてFA3を削除したとすると、図4(B)に示すようになる。このとき、FA3の削除によって、P内に新たな空きサイズ9を確保できるが、PX+1内のKA2はサイズ10であるため、アプリ内デフラグを実行してもPX+1を空きページとすることができない。よって、CPU181は、コマンドに応じたFA3の削除処理のみを行ってアプリ内デフラグ処理を実行しない。
一方、CPU181がデリートコマンド(DELETE FILE(FA2)に基づいてFA2を削除すると、図5(A)に示すようになる。このとき、FA2の削除によって、P内に新たな空きサイズ21を確保できる。ここで、PX+1内のFA3の一部(3/12)及びKA2のサイズの合計は13であるため、CPU181がアプリ内デフラグを実行することによりPX+1を空きページとすることができる。よって、CPU181は、コマンドに応じたFA3の削除処理を行った後、アプリ内デフラグ処理を実行する。具体的には、図5(B)に示すように、FA3及びKA2をページP内に移動させる。なお、FA3及びKA2をページP内に移動させる際の、Pに記憶させる各データの配置については適宜変更してもよい。
[3.CPU181の動作例]
次に、図6−図8を用いてCPU181の動作例について説明する。図6は、コマンド受信時処理の例を示すフローチャートであり、図7は、第1デフラグ処理の例を示すフローチャートであり、図8は、第2デフラグ処理の例を示すフローチャートである。
図6に示すように、まず、CPU181はコマンドを受信したか否かを判定する(ステップS101)。このとき、CPU181はコマンドを受信するまでこの処理を繰り返し(ステップS101:NO)、コマンドを受信したと判定した場合には(ステップS101:YES)、当該コマンドに応じたコマンド処理を実行する(ステップS102)。なお、CPU181は、DELETEコマンド(DELETE Application、DELETE Package、DELETE Package&Application、DELETE FILE、DELETE KEY)を受信した場合には、削除対象のデータを削除する。
次に、CPU181は、ステップS101の処理で受信したコマンドはDELETE Application、DELETE Package又はDELETE Package&Applicationであるか否かを判定する(ステップS103)。このとき、CPUは、受信したコマンドはDELETE Application、DELETE Package又はDELETE Package&Applicationであると判定した場合には(ステップS103:YES)、後述する第1デフラグ処理を実行し(ステップS104)、次いで、ステップS101の処理で受信したコマンドに対するレスポンスを送信して(ステップS107)、コマンド受信時処理を終了する。
一方、CPUは、受信したコマンドはDELETE Application、DELETE Package又はDELETE Package&Applicationではないと判定した場合には(ステップS103:NO)、次いで、ステップS101の処理で受信したコマンドはDELETE FILE又はDELETE KEYであるか否かを判定する(ステップS105)。
CPUは、受信したコマンドはDELETE FILE又はDELETE KEYであると判定した場合には(ステップS105:YES)、後述する第2デフラグ処理を実行し(ステップS106)、次いで、ステップS101の処理で受信したコマンドに対するレスポンスを送信して(ステップS107)、コマンド受信時処理を終了する。一方、CPUは、受信したコマンドはDELETE FILE又はDELETE KEYではないと判定した場合には(ステップS105:NO)、次いで、ステップS101の処理で受信したコマンドに対するレスポンスを送信して(ステップS107)、コマンド受信時処理を終了する。
次に図7を用いて第1デフラグ処理について説明する。
まず、CPU181は、フラッシュメモリ183に断片化した空き領域が存在するか否かを判定する(ステップS131)。このとき、CPU181は、フラッシュメモリ183に断片化した空き領域が存在しないと判定した場合には(ステップS131:NO)、第1デフラグ処理を終了する。
一方、CPU181は、フラッシュメモリ183に断片化した空き領域が存在すると判定した場合には(ステップS131:YES)、次いで、連続した空き領域の最大容量がFREEMINI未満であるか否かを判定する(ステップS132)。このとき、CPU181は、連続した空き領域の最大容量がFREEMINI未満であると判定した場合には(ステップS132:YES)、デフラグ処理を実行し(ステップS133)、第1デフラグ処理を終了する。一方、CPU181は、連続した空き領域の最大容量がFREEMINI未満ではないと判定した場合には(ステップS132:NO)、第1デフラグ処理を終了する。
次に図8を用いて第2デフラグ処理について説明する。
まず、CPU181は、該当アプリ(削除対象のファイル又はキーに対応するアプリ)の総データ量が、[N−M]ページ分のデータ量以下であるか否かを判定する(ステップS151)。ここで、Nはアプリケーションへ割り当てられた総ページ数である。Mはアプリ内デフラグ処理により作成する空きページ数(オペレータが設定する)である(空きページを1ページ作成する場合であれば、M=1と設定する)。
CPU181は、該当アプリの総データ量が、[N−M]ページ分のデータ量以下ではないと判定した場合には(ステップS151:NO)、第2デフラグ処理を終了する。一方、CPU181は、該当アプリの総データ量が、[N−M]ページ分のデータ量以下であると判定した場合には(ステップS151:YES)、アプリ内デフラグ処理を実行し(ステップS152)、第2デフラグ処理を終了する。
以上説明したように、本実施形態におけるICチップC(「電子情報記憶媒体」の一例)は、複数のページを含むフラッシュメモリ183と、携帯端末1(「外部端末」の一例)から受信するコマンドに応じてフラッシュメモリの更新をページ単位で実行するCPU181(「実行部」、「コンピュータ」の一例)とを備え、CPU181(「削除手段」、「位置変更手段」の一例)は、フラッシュメモリ183が記憶するデータを削除対象とするDELETEコマンド(DELETE Application、DELETE Package、DELETE Package&Application、DELETE FILE、DELETE KEY)(「削除コマンド」の一例)を受信した場合に、当該削除対象のデータを削除し、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更するデフラグ処理を行う。
したがって、本実施形態におけるICチップCによれば、DELETEコマンドを受信した際にフラッシュメモリ183における断片化した空き領域から連続した空き領域を生成することができる。
また、CPU181はフラッシュメモリ183にFREEMINI(「所定サイズ」の一例)以上の連続した空き領域が存在する場合には、デフラグ処理を行わない。この場合、直ぐには必要でないデフラグ処理を行わずに済み処理時間が短縮される。
更に、CPU181は、アプリケーションに関する少なくとも一部のデータを削除対象とするDELETEコマンドを受信した場合に、当該削除対象のデータを削除し、削除対象のデータの削除前にアプリケーションに関するデータが複数ページにわたって記憶されている場合に、当該削除対象のデータの削除によりできた空き領域に当該空き領域を含むページとは異なる他ページに記憶されているデータを移動するように当該データが記憶される位置を変更して他ページを空きページとするアプリ内デフラグ処理(「空きページ生成処理」の一例)を行う。これにより、アプリケーションに関する一部のデータが削除されたことによりできる空き領域に他ページのデータを移動させることにより空きページを作成することができる。
更にまた、CPU181は、アプリ内デフラグ処理を行う前に、削除対象のデータの削除によりできる空き領域に他ページに記憶されているデータを移動することにより当該他ページを空きページとすることができるか判定し(図8のステップS151)、当該他ページを空きページとすることができると判定した場合(図8のステップS151で「YES」と判定した場合)にアプリ内デフラグ処理を行う。空きページを作成することができないにもかかわらず、空きページの作成にチャレンジすることを回避することができる。
[4.変形例]
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は適宜組み合わせることができる。
[4.1.変形例1]
CPU181は、図6における第2デフラグ処理(ステップS106)の終了後、第1デフラグ処理(ステップS104)に移行することとしてもよい。これにより、大きなファイル等を削除した際、第2デフラグ処理により空きページ作成し、その後の第1デフラグ処理により当該空きページを利用して連続する空きページを作成することができる。この場合、CPU181は第1デフラグ処理及び第2デフラグ処理を実行することとなり、第2デフラグ処理のみを実行する場合よりも処理時間が掛かってしまう。そこで、第2デフラグ処理から移行してきた第1デフラグ処理では、CPU181は図7のステップS132の判定をせずに、ステップS133に移行することにより処理時間を削減してもよい。
なお、DELETE FILE又はDELETE KEYのコマンドに、第2デフラグ処理の後に第1デフラグ処理の実行を許可するか否かを指定する許可不許可情報を含めることとし、CPU181は許可しない情報が含まれている場合には、第2デフラグ処理の後に第1デフラグ処理に移行しないこととしてもよい。これにより、コマンドを送信する側で処理時間を考慮して何れかを指定することができる。
また、フラッシュメモリ183におけるOSが使用するOS領域に、第2デフラグ処理の後に第1デフラグ処理を実行することについて、「許可する」又は「許可しない」ことを示す許可不許可情報を記憶させておくこととし、CPU181は「許可しない」ことを示す許可不許可情報が記憶されている場合には、第2デフラグ処理の後に第1デフラグ処理に移行しないこととしてもよい。なお、許可不許可情報は、例えば、UIM発行時などに記憶させておくこととしてもよいし、発行後にコマンド等により記憶させることとしてもよい。
更に、これらの組み合わせにより第2デフラグ処理の後に第1デフラグ処理に移行するか否かを制御することとしてもよい。具体的には、フラッシュメモリ183におけるOS領域に許可不許可情報(「メモリ許可不許可情報」という)を記憶させておくとともに、DELETE FILE又はDELETE KEYのコマンドに許可不許可情報(「コマンド許可不許可情報」という)を含めることとする。そして、CPU181は、メモリ許可不許可情報及びコマンド許可不許可情報の示す内容に応じて、第2デフラグ処理の後に第1デフラグ処理に「移行する」又は「移行しない」を判定することとする。例えば、CPU181は、(1)メモリ許可不許可情報が「許可する」を示し、且つ、コマンド許可不許可情報が「許可する」を示す場合には、「移行する」と判定し、(2)メモリ許可不許可情報が「許可しない」を示し、且つ、コマンド許可不許可情報が「許可しない」を示す場合には、「移行しない」と判定し、(3)メモリ許可不許可情報が「許可しない」を示し、且つ、コマンド許可不許可情報が「許可する」を示す場合には、コマンド許可不許可情報を優先して「移行する」と判定し、(4)メモリ許可不許可情報が「許可する」を示し、且つ、コマンド許可不許可情報が「許可しない」を示す場合には、コマンド許可不許可情報を優先して「移行しない」と判定する。
[4.2.変形例2]
上記実施形態では、デフラグ処理において、フラッシュメモリ183の更新単位であるページ毎に空き領域であるか確認し、間の空きページがなくなるようにデータを記憶するページの内容を移動させていくことが基本動作となっている。この基本動作の応用として、連続した空きページを作る、という目的は同じであっても、空きページ全てを詰めるのではなく、敢えて空きページのまま残す2つの機能について説明する。
まず、1つ目の機能は予約機能である。例えば、後からオブジェクトやファイル、鍵を追加することがわかっているようなアプリケーションの場合、まとまったページを使用予定領域として予約する機能がある。使用予定領域は、データを記憶していなくても、データを記憶しているとみなす。
したがって、CPU181は、使用予定領域は空きページであっても空きページとして取り扱わないものとする。なお、使用予定領域のサイズはインストールコマンドのコマンドデータにて指定され、インスタンス化されたアプリケーションに対してサイズ分のメモリが確保(専有)される。
例えば、使用予定領域が設定されたアプリケーションのファイルデータを削除して、アプリ内デフラグ処理が実行された結果、空きページが発生したとしても、アプリ内デフラグ処理後のデフラグ処理で使用予定領域(たとえデータが書き込まれていなくても)への位置変更は行わない。また、使用予定領域が設定されたアプリケーションが専有するページに接するページを使用していたアプリケーションが削除され、デフラグ処理が実行されても、使用予定領域(たとえデータが書き込まれていなくても)への位置変更は行わない。
次いで、2つ目の機能は複数ページ単位管理機能である。上記実施形態では、ページ単位で空き領域であるか否かを管理していたが、2以上の所定数のページ(「ページ群」という場合がある)単位で空き領域であるか否かを管理する機能である。通常、空きページであるか否かはフラッシュメモリ管理テーブルで管理される。あるページがフラッシュメモリの初期値(0xFF)であったとしても、空きページであるために初期値であるのか、アプリケーションのデータとして初期値が記録されているのかは書き込まれたデータのみでは判断できない。そのため、各ページが使用中であるか否かをOSがテーブルで管理する。このテーブルをフラッシュメモリ管理テーブルと呼ぶ。フラッシュメモリ管理テーブルで管理する単位がページ単位である場合、フラッシュメモリの容量が大きければ大きいほど、フラッシュメモリ管理テーブル自体が大きくなってしまい、アプリケーション用の記憶領域を圧迫してしまう。そこで、管理単位をページ単位ではなくページ群単位とすることにより、フラッシュメモリ管理テーブルを圧縮することができる(但し、メモリ使用効率は下がる)。なお、ページ群を構成するページ数を何ページとするかは、UIMカード18が取り扱うプログラムやデータのサイズに応じてUIM製造時に設定することができる。
図9を用いて、管理単位(ページ群を構成するページ数)を4ページとした場合について説明する。図9(A)は、アプリAについてページ1−4が割り当てられ、ページ1、2にデータが書き込まれている様子を示している。同様に、アプリBについてページ5−8が割り当てられ、ページ5−8にデータが書き込まれており、また、アプリCについてページ9−12が割り当てられ、ページ9、10にデータが書き込まれている。ここで、アプリBが削除される場合について説明する。CPU181は、アプリBを削除すると、ページ5−8で構成されるページ群が空き領域となるので、アプリCに対応するページ9−12で構成されるページ群に記憶されている内容をページ5−8で構成されるページ群に移動させることにより、ページ9−12で構成されるページ群を空き領域とする。このとき、CPU181は、ページ3、4はデータが書き込まれていないが、アプリAに対応するページ群に含まれるので、アプリCに対応するページ9−12で構成されるページ群の内容をページ3−6で構成されるページ群に移動させることはない。
1 携帯端末
11 制御部
12 記憶部
13 無線通信部
14 表示部
15 入力部
16a CLFインターフェース
16b ICカードインターフェース
17 バス
18 UIMカード
C ICチップ
181 CPU
182 RAM
183 フラッシュメモリ
184 I/O回路
185 バス
19 CLF

Claims (8)

  1. 複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行する実行部とを備える電子情報記憶媒体であって、
    前記実行部は、
    前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除手段と、
    前記削除手段がデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更手段と、
    を備え
    前記削除手段は、前記フラッシュメモリに所定サイズ以上の連続する空きページがある場合には、前記位置変更処理を行わないことを特徴とする電子情報記憶媒体。
  2. 請求項1に記載の電子情報記憶媒体であって、
    前記フラッシュメモリは、アプリケーションに関する前記データを記憶し、
    前記削除手段は、前記アプリケーションに関する少なくとも一部のデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除し、
    前記変更手段は、前記削除対象のデータの削除前に前記アプリケーションに関するデータが複数ページにわたって記憶されている場合に、当該削除対象のデータの削除によりできた空き領域に当該空き領域を含むページとは異なる他ページに記憶されているデータを移動するように当該データが記憶される位置を変更して前記他ページを空きページとする空きページ生成処理を行うことを特徴とする電子情報記憶媒体。
  3. 請求項に記載の電子情報記憶媒体であって、
    前記変更手段は、前記空きページ生成処理を行う前に、前記削除対象のデータの削除によりできる空き領域に前記他ページに記憶されているデータを移動することにより当該他ページを前記空きページとすることができるか判定し、当該他ページを前記空きページとすることができると判定した場合に前記空きページ生成処理を行うことを特徴とする電子
    情報記憶媒体。
  4. 複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行する実行部とを備える電子情報記憶媒体であって、
    前記実行部は、
    前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除手段と、
    前記削除手段がデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更手段と、
    2以上の所定数のページで構成されるページ群単位で、データが記憶されているか否かを管理する管理手段、を更に備え、
    前記変更手段は、前記削除手段がデータを削除した結果、全てのページが前記空きページとなったページ群に対応する記憶領域に、前記空きページでないページを含む他のページ群に対応する記憶領域に記憶されているデータを移動させることを特徴とする電子情報記憶媒体。
  5. 複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行する実行部とを備える電子情報記憶媒体による情報処理方法であって、
    前記実行部が、前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除工程と、
    前記実行部が、前記削除工程によりデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更工程と、
    を含み、
    前記削除工程では、前記フラッシュメモリに所定サイズ以上の連続する空きページがある場合には、前記位置変更処理を行わないことを特徴とする情報処理方法。
  6. 複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行する実行部とを備える電子情報記憶媒体による情報処理方法であって、
    前記実行部が、前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除工程と、
    前記実行部が、前記削除工程によりデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更工程と、
    前記実行部が、2以上の所定数のページで構成されるページ群単位で、データが記憶されているか否かを管理する管理工程と、
    を含み、
    前記変更工程では、前記削除工程でデータを削除した結果、全てのページが前記空きページとなったページ群に対応する記憶領域に、前記空きページでないページを含む他のページ群に対応する記憶領域に記憶されているデータを移動させることを特徴とする情報処理方法。
  7. 複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行するコンピュータとを備える電子情報記憶媒体における前記コンピュータを、
    前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除手段、
    前記削除手段がデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更手段、
    として機能させ
    前記削除手段は、前記フラッシュメモリに所定サイズ以上の連続する空きページがある場合には、前記位置変更処理を行わないことを特徴とする情報処理プログラム。
  8. 複数のページを含むフラッシュメモリと、外部端末から受信するコマンドに応じて前記フラッシュメモリの更新をページ単位で実行するコンピュータとを備える電子情報記憶媒体における前記コンピュータを、
    前記フラッシュメモリが記憶するデータを削除対象とする削除コマンドを受信した場合に、当該削除対象のデータを削除する削除手段、
    前記削除手段がデータを削除した場合に、データを記憶していない空きページ同士が連続するようにデータが記憶される位置を変更する位置変更処理を行う変更手段、
    2以上の所定数のページで構成されるページ群単位で、データが記憶されているか否かを管理する管理手段、
    として機能させ、
    前記変更手段は、前記削除手段がデータを削除した結果、全てのページが前記空きページとなったページ群に対応する記憶領域に、前記空きページでないページを含む他のページ群に対応する記憶領域に記憶されているデータを移動させることを特徴とする情報処理プログラム。
JP2016143992A 2016-07-22 2016-07-22 電子情報記憶媒体、情報処理方法、及び情報処理プログラム Active JP6769150B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016143992A JP6769150B2 (ja) 2016-07-22 2016-07-22 電子情報記憶媒体、情報処理方法、及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016143992A JP6769150B2 (ja) 2016-07-22 2016-07-22 電子情報記憶媒体、情報処理方法、及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2018014014A JP2018014014A (ja) 2018-01-25
JP6769150B2 true JP6769150B2 (ja) 2020-10-14

Family

ID=61020853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016143992A Active JP6769150B2 (ja) 2016-07-22 2016-07-22 電子情報記憶媒体、情報処理方法、及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP6769150B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114745410B (zh) * 2022-03-04 2023-03-21 电子科技大学 一种远程堆管理方法及远程堆管理系统

Also Published As

Publication number Publication date
JP2018014014A (ja) 2018-01-25

Similar Documents

Publication Publication Date Title
JP5329884B2 (ja) 携帯可能電子装置および携帯可能電子装置におけるデータ処理方法
JP2010182270A (ja) 携帯可能電子装置および携帯可能電子装置におけるデータ管理方法
KR20140108666A (ko) 스마트 카드의 비휘발성 메모리에 데이터 쓰기
JP5895565B2 (ja) Icカード、及びプログラム
JP6769150B2 (ja) 電子情報記憶媒体、情報処理方法、及び情報処理プログラム
JP4896842B2 (ja) 携帯可能電子装置
JP2010146410A (ja) 携帯可能電子装置
JP7278083B2 (ja) 半導体装置、制御方法、およびプログラム
JP7005934B2 (ja) 電子情報記憶媒体、icカード、データ送信方法、データ書き込み方法、データ送信プログラム及びデータ書き込みプログラム
JP2010211516A (ja) 携帯可能電子装置および携帯可能電子装置におけるアクセス制御方法
JP2007087120A (ja) 複数のosを実装したicカード、および、発行委任方法
JP5214291B2 (ja) Icカードおよびicカードの制御方法
JP2006293706A (ja) アプリケーションの更新機能を有するマルチアプリケーションicカード
US7346730B2 (en) Mobile electronic device
JP2010218147A (ja) 携帯可能電子装置および携帯可能電子装置におけるメモリ制御方法
JP7322923B2 (ja) セキュアエレメント,トランザクション制御方法およびデバイス
JP5971713B2 (ja) Icカード
JP7563536B1 (ja) Icカード、半導体チップ、内部状態復元方法およびコンピュータプログラム
JP6915338B2 (ja) Icカード
JP2007034434A (ja) Icカード、icカードへのデータ書込み方法、および、icカードプログラム
JP4734838B2 (ja) 情報記録媒体とプログラム、及びコマンド実行制御方法
JP6984328B2 (ja) 電子情報記憶媒体、icカード、外部機器、データ書き込み方法及びデータ書き込みプログラム
JP6447219B2 (ja) 電子情報記憶媒体、アプリケーション置換方法、プログラム、及びicカード
JP5038918B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
JP6750450B2 (ja) 電子情報記憶媒体、データ送信方法、icカード及びデータ送信プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190530

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200907

R150 Certificate of patent or registration of utility model

Ref document number: 6769150

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150