(57)【要約】【課題】不揮発性メモリ２５における各種の記憶領域を最適化するためのガーベージコレクションを効率的に実行することできるＩＣカード２およびＩＣカード２におけるメモリ制御方法を提供する。【解決手段】ＩＣカード２の不揮発性メモリ２５には、各ファイルの定義情報を記憶する定義領域と、各ファイルのデータを記憶するデータ領域と、上記定義領域と上記データ領域との間に形成される空き領域とを有する記憶領域が設けられる。上記ＩＣカード２は、ファイルの定義領域内あるいはデータ領域内に空き領域が生じた場合、ガーベージコレクションが必要であることを示すガーベージ要求フラグ２５ａをセットする。上記ＩＣカード２は、各種のコマンドを受信した場合に、上記ガーベージ要求フラグ２５ａがセットされていれば、当該受信コマンドに応じた処理を実行するとともに、上記不揮発性メモリ２５に対してガーベージコレクションにおける一部の処理を実行する。【選択図】図２
2010218147.tif 000002
【特許請求の範囲】
【請求項１】
コマンドに応じて動作する携帯可能電子装置において、
データを記憶するメモリと、
前記メモリに記憶されているデータの削除を要求する削除コマンドが与えられた場合、前記削除コマンドで指定されたデータを削除する削除手段と、
前記削除手段により前記削除コマンドで指定されたデータを削除した場合、前記メモリに対する最適化処理を要求するフラグをセットする最適化設定手段と、
前記最適化設定手段によりフラグがセットされている状態でコマンドが与えられた場合、当該コマンドに応じた処理を実行するとともに、前記メモリに対する最適化処理における一部の処理を実行するコマンド処理手段と、
を有することを特徴とする携帯可能電子装置。
【請求項２】
前記メモリは、ファイル単位でデータを記憶し、
前記削除手段は、前記削除コマンドで指定されるファイルを削除し、
前記コマンド処理手段は、１つのコマンドが与えられるごとに、前記最適化処理における一部の処理として、前記削除手段によるファイルの削除で発生した未使用領域を詰めるように前記メモリにおける所定数のファイルを移動させる、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
前記コマンド処理手段は、１つのコマンドが与えられるごとに、前記最適化処理における一部の処理として、前記削除手段によるファイルの削除で発生した未使用領域を詰めるように前記メモリにおける１つのファイルを移動させる、
ことを特徴とする前記請求項２に記載の携帯可能電子装置。
【請求項４】
前記メモリは、各ファイルの定義情報を記憶する定義領域と、各ファイルのデータを記憶するデータ領域と、前記定義領域と前記データ領域との間に形成される空き領域とを有し、
前記最適化設定手段は、前記定義領域内あるいは前記データ領域内に未使用領域が生じた場合に、前記フラグをセットし、
前記コマンド処理手段は、１つのコマンドが与えられるごとに、前記最適化処理における一部の処理として、前記定義領域内あるいは前記データ領域内の未使用領域を詰めるように、前記メモリにおける所定数のファイルを移動させる、
ことを特徴とする前記請求項１乃至３の何れか１項に記載の携帯可能電子装置。
【請求項５】
前記コマンド処理手段は、前記最適化設定手段によりフラグがセットされている状態でファイルの創成を要求するコマンドが与えられた場合、ファイルを創成するための空き領域が無ければ、前記最適化処理の残りの処理を全て実行する、
ことを特徴とする前記請求項１乃至４の何れか１項に記載の携帯可能電子装置。
【請求項６】
コマンドに応じて動作する携帯可能電子装置におけるメモリ制御方法であって、
メモリに記憶されているデータの削除を要求する削除コマンドが与えられた場合、前記削除コマンドで指定されたデータを削除し、
前記削除コマンドで指定されたデータを削除した場合、前記メモリに対する最適化処理を要求するフラグをセットし、
前記フラグがセットされている状態でコマンドが与えられた場合、当該コマンドに応じた処理を実行するとともに、前記メモリに対する最適化処理における一部の処理を実行する、
ことを特徴とする携帯可能電子装置におけるメモリ制御方法。
【請求項７】
前記メモリに記憶されるデータは、ファイル単位であり、
前記フラグは、前記削除コマンドで指定されたファイルを削除した場合にセットし、
前記最適化処理における一部の処理としては、１つのコマンドが与えられるごとに、前記ファイルの削除で発生した未使用領域を詰めるように前記メモリにおける所定数のファイルを移動させる、
ことを特徴とする前記請求項６に記載の携帯可能電子装置におけるメモリ制御方法。
【請求項８】
前記コマンド処理手段は、前記最適化処理における一部の処理としては、１つのコマンドが与えられるごとに、前記ファイルの削除で発生した未使用領域を詰めるように前記メモリにおける１つのファイルを移動させる、
ことを特徴とする前記請求項７に記載の携帯可能電子装置におけるメモリ制御方法。
【請求項９】
前記メモリには、各ファイルの定義情報を記憶する定義領域と、各ファイルのデータを記憶するデータ領域と、前記定義領域と前記データ領域との間に形成される空き領域とが設けられ、
前記フラグは、前記定義領域内あるいは前記データ領域内に未使用領域が生じた場合にセットし、
前記最適化処理における一部の処理としては、１つのコマンドが与えられるごとに、前記定義領域内あるいは前記データ領域内の未使用領域を詰めるように、前記メモリにおける所定数のファイルを移動させる、
ことを特徴とする前記請求項６乃至８の何れか１項に記載の携帯可能電子装置におけるメモリ制御方法。
【請求項１０】
さらに、前記最適化設定手段によりフラグがセットされている状態でファイルの創成を要求するコマンドが与えられた場合、ファイルを創成するための空き領域が無ければ、前記最適化処理の残りの処理を全て実行する、
ことを特徴とする前記請求項６乃至９の何れか１項に記載の携帯可能電子装置におけるメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、データメモリに記憶されているファイルを削除したり、データメモリにファイルを創成したりすることが可能なＩＣカードなどの携帯可能電子装置および携帯可能電子装置におけるメモリ制御方法に関する。
【背景技術】
【０００２】
従来、ＩＣカードなどの携帯可能電子装置に適用される規格としては、たとえば、「ＥＴＳＩ  ＴＳ  １０２  ２２２」と呼ばれる規格がある。上記「ＥＴＳＩ  ＴＳ  １０２  ２２２」の６．３章では、「ＣＲＥＡＴＥ  ＦＩＬＥ」というコマンドが規定されている。このコマンド（クリエイトファイルコマンド）は、メモリ上にファイルを創成することを要求するコマンドである。このクリエイトファイルコマンドが与えられたＩＣカードは、ファイルを創成するために必要な空き容量がメモリ上に存在すれば、ファイルを創成する。
【０００３】
また、「ＥＴＳＩ  ＴＳ  １０２  ２２２」の６．４章では、「ＤＥＬＥＴＥ  ＦＩＬＥ」というコマンドが規定されている。このコマンド（デリートファイルコマンド）は、ファイルの削除を要求するコマンドである。このコマンドによりあるファイルが削除された場合、削除されたファイルが使用していたメモリ上のリソースは開放され、削除されたファイルが使用していたメモリ領域は、論理的に消去された状態になる。つまり、デリートファイルコマンドに応じてあるファイルを削除した場合、メモリの未使用領域が増える。しかしながら、単純に特定のファイルを削除しただけでは、メモリ上に空き領域が点在することになり、メモリが効率的に利用できない状態となってしまう。
【０００４】
そのため、従来のＩＣカードには、デリートファイルコマンドの処理を実施した後、空き領域を１カ所に集めるガーベージコレクションと呼ばれるメモリを最適化する機能を有するものがある。上記ガーベージコレクションは、メモリ上に点在する空き領域を詰めるように、データ全体を移動させる処理である。上記ガーベージコレクションでは、メモリ上において多くのデータを移動させる必要があるので、処理に多くの時間を要することが多い。たとえば、上記ガーベージコレクションをデリートファイルコマンドに対する処理の一部として実行する場合、デリートファイルコマンドに対する処理時間（コマンドを受信してから当該コマンドに対するレスポンスデータを送信するまでの時間）が他のコマンドに対する処理時間に比べて極端に増大するという問題がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＥＴＳＩ  ＴＳ  １０２  ２２２
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この発明の一形態は、メモリにおける各種の領域を最適化するための処理を効率的に実行することできる携帯可能電子装置および携帯可能電子装置におけるメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明の一形態としての携帯可能電子装置は、コマンドに応じて動作するものにおいて、データを記憶するメモリと、前記メモリに記憶されているデータの削除を要求する削除コマンドが与えられた場合、前記削除コマンドで指定されたデータを削除する削除手段と、前記削除手段により前記削除コマンドで指定されたデータを削除した場合、前記メモリに対する最適化処理を要求するフラグをセットする最適化設定手段と、前記最適化設定手段によりフラグがセットされている状態でコマンドが与えられた場合、当該コマンドに応じた処理を実行するとともに、前記メモリに対する最適化処理における一部の処理を実行するコマンド処理手段とを有する。
【０００８】
この発明の一形態としての携帯可能電子装置におけるメモリ制御方法は、コマンドに応じて動作する携帯可能電子装置における方法であって、メモリに記憶されているデータの削除を要求する削除コマンドが与えられた場合、前記削除コマンドで指定されたデータを削除し、前記削除コマンドで指定されたデータを削除した場合、前記メモリに対する最適化処理を要求するフラグをセットし、前記フラグがセットされている状態でコマンドが与えられた場合、当該コマンドに応じた処理を実行するとともに、前記メモリに対する最適化処理における一部の処理を実行する。
【発明の効果】
【０００９】
この発明の一形態によれば、メモリにおける各種の領域を最適化するための処理を効率的に実行することできる携帯可能電子装置および携帯可能電子装置におけるメモリ制御方法を提供できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態に係るＩＣカードおよびＩＣカード処理装置の構成例を概略的に示す図である。
【図２】図２は、本実施の形態に係るＩＣカードの構成例を概略的に示すブロック図である。
【図３】図３は、データメモリとしての不揮発性メモリに記憶されるファイル形式のデータの構成例を示す図である。
【図４】図４は、不揮発性メモリにおいて、図３に示す状態からファイル２に関するデータを削除した状態を示す図である。
【図５】図５は、不揮発性メモリにおいて、図４に示す状態に対してガーベージコレクションを行った結果を示している。
【図６】図６は、ＩＣカードにおけるファイル削除処理の流れを説明するためのフローチャートである。
【図７】図７は、ＩＣカードにおけるコマンド処理の流れを説明するためのフローチャートである。
【図８】図８は、図４に示す状態の不揮発性メモリにおいてファイル３の定義情報とデータとを移動させた状態を示す図である。
【図９】図９は、図４に示す状態の不揮発性メモリにおいてファイル３〜ファイルｎ−１の定義情報とデータとを移動させた状態を示す図である。
【図１０】図１０は、図４に示す状態の不揮発性メモリにおいてファイル３〜ファイルｎの定義情報とデータとを移動させた状態を示す図である。
【図１１】図１１は、ＩＣカードにおけるファイル創成処理の流れを説明するためのフローチャートである。
【図１２】図１２は、図１０に示す状態の不揮発性メモリの記憶領域にファイルｎ＋１を創成した状態を示している。
【発明を実施するための形態】
【００１１】
以下、この発明の実施の形態について図面を参照して詳細に説明する。  
図１は、本実施の形態に係るＩＣカード（携帯可能電子装置）２、および、ＩＣカード２との通信機能を有する外部装置としてのＩＣカード処理装置１の構成例を概略的に示すブロック図である。  
まず、上記ＩＣカード処理装置１の構成について説明する。  
上記ＩＣカード処理装置１は、図１に示すように、制御部１１、ディスプレイ１２、キーボード１３、テンキー１４、及び、カードリーダライタ１５などを有している。
【００１２】
上記制御部１１は、ＩＣカード処理装置１全体の動作を制御するものである。上記制御部１１は、ＣＰＵ、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、上記制御部１１は、パーソナルコンピュータ（ＰＣ）により構成される。  
上記制御部１１は、上記カードリーダライタ１５によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信したデータを基に種々の処理を行う機能などを有している。たとえば、上記制御部１１は、カードリーダライタ１５を介してＩＣカード２にデータの書き込みコマンドを送信することによりＩＣカード２内の不揮発性メモリにデータを書き込む制御を行う。また、上記制御部１１は、ＩＣカード２に読み取りコマンドを送信することによりＩＣカード２からデータを読み出す制御を行う。
【００１３】
上記ディスプレイ１２は、上記制御部１１の制御により種々の情報を表示する表示装置である。上記キーボード１３は、当該ＩＣカード処理装置１の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。上記テンキー１４は、使用者ＩＤあるいはパスワードなど数字などの情報を入力する為の入力部として機能する。
【００１４】
上記カードリーダライタ１５は、上記ＩＣカード２との通信を行うためのインターフェース装置である。上記カードリーダライタ１５は、上記ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、上記ＩＣカード２が接触型のＩＣカードである場合、上記カードリーダライタ１５は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１５】
また、上記ＩＣカード２が非接触型のＩＣカードである場合、上記カードリーダライタ１５は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御などにより構成される。上記カードリーダライタ１５では、上記ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ１５は、上記制御部１１による制御に基づいて上記ＩＣカード２の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【００１６】
次に、上記ＩＣカード２について説明する。  
上記ＩＣカード２は、上記ＩＣカード処理装置１などの上位機器から電力などの供給を受けた際、活性化される（動作可能な状態になる）ようになっている。例えば、上記ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、上記ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１７】
また、上記ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、上記ＩＣカード２が非接触式のＩＣカードで構成される場合、上記ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１８】
次に、上記ＩＣカード２の構成例について説明する。  
図２は、本実施の形態に係るＩＣカード２の構成例を概略的に示すブロック図である。上記ＩＣカード２は、本体Ｃを構成する筐体内にモジュールＭが内蔵されている。上記モジュールＭは、１つまたは複数のＩＣチップＣａと通信用の外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。また、上記ＩＣカード２のモジュールＭは、図２に示すように、制御部２１、通信インターフェース２２、ＲＯＭ２３、ＲＡＭ２４、不揮発性メモリ２５などを有してしている。
【００１９】
上記制御部２１は、当該ＩＣカード２全体の制御を司るものである。上記制御部２１は、上記ＲＯＭ２３あるいは上記不揮発性メモリ２５に記憶されている制御プログラムや制御データに基づいて動作することにより、種々の機能を実現する。たとえば、上記制御部２１は、オペレーティングシステムのプログラムを実行することにより、当該ＩＣカード２の基本的な動作制御を行う。また、上記制御部２１は、アプリケーションプログラムを実行することにより、当該ＩＣカード２の運用形態に応じた種々の動作制御を行う。なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、上記制御部２１は、ハードウエア回路により実行される機能を制御する。
【００２０】
上記通信インターフェース２２は、上記ＩＣカード処理装置１のカードリーダライタ１５との通信を行うためのインターフェースである。当該ＩＣカード２が接触型のＩＣカードとして実現される場合、上記通信インターフェース２２は、上記ＩＣカード処理装置１のカードリーダライタ１５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ＩＣカード２が非接触型のＩＣカードとして実現される場合、通信インターフェース２２は、上記ＩＣカード処理装置１のカードリーダライタ１５との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【００２１】
上記ＲＯＭ２３は、不揮発性のメモリである。上記ＲＯＭ２３は、当該ＩＣカード２における基本的な動作を実現するための制御用のプログラムおよび制御データなどを記憶する。つまり、上記ＲＯＭ２３は、当該ＩＣカード２の仕様に応じた制御用のプログラムあるいは制御データなどを記憶するプログラムメモリとして機能する。  
上記ＲＡＭ２４は、揮発性のメモリである。上記ＲＡＭ２４は、ワーキングメモリとして機能する。また、上記ＲＡＭ２４は、制御部２１が処理中のデータなどを一時保管するバッファとしても機能する。例えば、上記ＲＡＭ２４は、上記通信インターフェース２２を介してＩＣカード処理装置１から受信したデータを一時的に保管するようになっている。また、上記ＲＡＭ２４には、適宜、後述するガーベージ要求フラグ２５ａがセットされるようになっている。
【００２２】
上記不揮発性メモリ２５は、書込みおよび書換えが可能な不揮発性のメモリである。上記不揮発性メモリ２５は、例えば、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read  Only  Memory）あるいはフラッシュＲＯＭなどの記憶装置により構成される。上記不揮発性メモリ２５は、ファイル形式のデータなどが記憶されるデータメモリとして機能する。また、上記不揮発性メモリ２５には、適宜、後述するガーベージ要求フラグ２５ａがセットされるようになっている。
【００２３】
また、上記不揮発性メモリ２５には、当該ＩＣカード２の運用用途に応じた制御プログラムあるいは制御データなどを記憶するようにして良い。たとえば、上記不揮発性メモリ２５では、データファイルなどが定義され、それらのファイルに種々のデータが書き込まれる。上記不揮発性メモリ２５に格納されるファイルは、ファイル定義情報によって定義される。上記ファイル定義情報により定義されたファイルのデータは、上記不揮発性メモリ２５上に確保された記憶領域に記憶される。
【００２４】
次に、上記不揮発性メモリ２５におけるデータの構成について説明する。  
図３は、データメモリとしての不揮発性メモリ２５に記憶されるファイル形式のデータの構成例を示す図である。  
図３に示す構成例では、不揮発性メモリ２５においてＩＣカード制御情報ごとに記憶領域Ｒ１が確保されている。ＩＣカード制御情報ごとの記憶領域Ｒ１には、定義情報とデータとから構成される複数のファイルが記憶される。たとえば、ＩＣカード制御情報１の記憶領域Ｒ１には、ｎ個のファイルが格納されている。上記記憶領域Ｒ１は、ｎ個の各ファイルの定義情報が記憶される定義領域Ｒａ１と、ｎ個の各ファイルのデータが記憶されるデータ領域Ｒｂ１と、空き領域Ｒｃ１とを有している。
【００２５】
上記定義領域Ｒａ１には、ｎ個分の各ファイルの定義情報が格納される。ファイルの定義情報は、たとえば、ファイルの識別情報、および、データの記憶場所を示す情報などである。また、上記定義領域Ｒａ１は、上記記憶領域Ｒ１の先頭（先端）アドレスから設けられる記憶領域である。言い換えれば、各ファイルの定義情報は、図３に示すように、記憶領域Ｒ１の先頭アドレスから順に記憶され、この結果として、上記記憶領域Ｒ１の先頭アドレスから設けられる定義領域Ｒａ１が形成される。
【００２６】
上記データ領域Ｒｂ１には、ｎ個分の各ファイルのデータが格納される。ファイルのデータは、たとえば、上記ファイル定義情報で示される記憶領域に記憶される。また、上記データ領域Ｒｂ１は、上記記憶領域Ｒ１の最後尾（後端）アドレスから設けられる記憶領域である。言い換えれば、各ファイルのデータは、図３に示すように、記憶領域Ｒ１の後端アドレスから前の領域に順次記憶され、この結果として、上記記憶領域Ｒ１の後端アドレスから設けられるデータ領域Ｒｂ１が形成される。
【００２７】
上記空き領域Ｒｃ１は、当該記憶領域Ｒ１内において、上記定義領域Ｒａ１と上記データ領域Ｒｂ１との間に形成される領域である。言い換えると、上記空き領域Ｒｃ１は、記憶領域Ｒ１に形成される定義領域Ｒａ１とデータ領域Ｒｂ１とによって生じる領域である。上記空き領域Ｒｃ１は、上記記憶領域Ｒ１における定義領域Ｒａ１とデータ領域Ｒｂ１と大きさに応じた記憶容量となる。
【００２８】
また、上記のように、定義領域Ｒａ１は、各ファイルの定義情報が記憶領域Ｒ１の先頭アドレスから順に並べることにより形成される領域であり、データ領域Ｒｂ１は、各ファイルのデータが記憶領域Ｒ１の後端アドレスから順に積み上げられてることにより形成される領域である。従って、空き領域Ｒｃ１は、ファイル（定義情報及びデータ）が追記されるごとに領域が狭くなる。定義領域Ｒａ１とデータ領域Ｒｂ１との間の空き領域Ｒｃ１が無くなると、ファイルの定義情報およびデータが書き込めなくなる（新たなファイルを追加できなくなる）。
【００２９】
図４は、不揮発性メモリ２５において、図３に示す状態からファイル２に関するデータを削除した状態を示す図である。  
図３に示す状態のデータからファイル２を削除した場合、不揮発性メモリ２５における記憶領域Ｒ１は、図４に示すような状態となる。図４に示す例では、定義領域Ｒａ１においてファイルの定義情報が格納されていた領域が空き状態（未使用領域）となっており、データ領域Ｒｂ１においてファイル２のデータが格納されていた領域が空き状態（未使用領域）となっている。
【００３０】
ここで、新規のファイルは、定義領域Ｒａ１とデータ領域Ｒｂ１とに間に形成される空き領域Ｒｃ１に創成（記憶）されるものとする。つまり、新規ファイルの定義情報は、既存の定義領域Ｒａ１に続けて記憶され、新規ファイルのデータは、既存のデータ領域Ｒｂ１の直前に続けて記憶されるものとする。この場合、ファイルの削除によって生じた定義領域Ｒａ１内の空き領域（削除領域、未使用領域）およびデータ領域Ｒｂ１内の空き領域（削除領域、未使用領域）は、そのままの状態では、新規ファイルを記憶するための記憶領域としては利用できない。これは、単純にファイルを削除しても、実使用可能な空き領域として利用できる領域をふやすことができないことを意味している。
【００３１】
一般に、ＩＣカードでは、ファイルの削除によって生じた定義領域Ｒａ１内の未使用領域（空き領域）およびデータ領域Ｒｂ１内の未使用領域（空き領域）を効率的に利用するために、空き領域を１箇所に集めるガーベージコレクションと呼ばれる処理を行う。ガーベージコレクションは、メモリ内の最適化処理である。たとえば、図４に示すようなデータ構成となった場合、ガーベージコレクションでは、定義領域Ｒａ１内の空き領域（削除領域）とデータ領域Ｒｂ１内の空き領域（削除領域）とを、定義領域Ｒａ１とデータ領域Ｒｂ１との間に形成される空き領域Ｒｃ１に集める。つまり、定義領域Ｒａ１内の空き領域およびデータ領域Ｒｂ１内の空き領域は、そのまま使用することが容易ではい。このため、ガーベージコレクションで定義領域Ｒａ１内の空き領域およびデータ領域Ｒｂ１内の空き領域を１つの空き領域に集めることにより不揮発性メモリの効率な使用が実現できる。
【００３２】
図５は、不揮発性メモリ２５において、図４に示す状態のデータに対してガーベージコレクションを行った結果を示している。  
図５に示すように、ガーベージコレクションでは、定義領域Ｒａ１内の空き領域とデータ領域Ｒｂ１内の空き領域とを、空き領域Ｒｃ１に集結させている。図５に示す状態は、実際には定義領域Ｒａ１内の各定義情報を順に詰めて、データ領域Ｒｂ１内の各データを順に詰める処理により得られる。すなわち、ガーベージコレクションでは、定義領域Ｒａ１内の空き領域（削除領域）に続く全ての定義情報を順次、削除領域の大きさ分だけシフトする。これと共に、ガーベージコレクションでは、データ領域Ｒｂ１内の空き領域（削除領域）に続く全てのデータを順次、削除領域の大きさ分だけシフトする。
【００３３】
一般的なＩＣカードでは、上記のようなガーベージコレクションをファイルの削除処理とともに実行する。ガーベージコレクションの処理全体としては、移動させるデータ量が多ければ多いほど、長い処理時間が必要となる。つまり、一般的なＩＣカードでは、ファイルとして記憶するデータが多ければ多いほど、ファイルの削除処理に長い処理時間が必要となる傾向がある。これに対して、本実施の形態に係るＩＣカード２では、ガーベージコレクションの処理を種々の処理時に分散して実行する。
【００３４】
次に、本ＩＣカード２における各種のコマンドに対する処理について説明する。  
上記ＩＣカード２は、外部装置から与えられるコマンドに応じた処理を行う。たとえば、ＩＣカード２は、デリートファイル（DELETE FILE）コマンドに応じて、特定のファイルを削除する処理（ファイル削除処理）を実行する。また、本ＩＣカード２では、ファイル削除処理として、指定されたファイルを削除するとともに、ガーベージコレクションの分散処理を設定する。ガーベージコレクションの分散処理の設定は、たとえば、ガーベージコレクションの分散処理を要求するガーベージ要求フラグ２５ａをセットすることにより実現される。
【００３５】
すなわち、上記ＩＣカード２は、ＩＣカード処理装置１からコマンドを受信した場合に、上記ガーベージ要求フラグ２５ａがセットされていれば、受信コマンドに応じた処理とともに、ガーベージコレクションの一部を実行する。言い換えれば、上記ガーベージ要求フラグ２５ａがセットされたＩＣカード２では、各種のコマンドを受信するごとに、ガーベージコレクションが徐々に進行する。この結果として、本ＩＣカード２では、特定のコマンドに対する処理に多くの処理時間をかけることなく、ガーベージコレクションを分散して実行できる。
【００３６】
次に、本ＩＣカード２におけるデリートファイルコマンドに対応する処理（ファイル削除処理）について説明する。  
図６は、本ＩＣカード２におけるファイル削除処理の流れを説明するためのフローチャートである。  
まず、ＩＣカード２は、ＩＣカード処理装置１からのコマンド受信待ちの状態であるものとする（ステップＳ１０）。この状態においてＩＣカード処理装置１からのコマンドを受信した場合（ステップＳ１１）、制御部２１は、受信したコマンドがデリートファイルコマンドであるか否かを判断する（ステップＳ１２）。
【００３７】
この判断により受信したコマンドがデリートファイルコマンドであると判断した場合（ステップＳ１２、ＹＥＳ）、制御部２１は、当該デリートファイルコマンドで指定されているファイルを削除する処理を行う（ステップＳ１３）。ファイルを削除することは、当該ファイルの定義情報とデータとを削除することを意味する。ただし、ファイルの定義情報を削除すると、当該ファイルのデータはそのままの状態であってもファイルのデータとしての意味を持たなくなる。このため、特定のファイルを削除する処理としては、当該ファイルの定義情報を消去するだけでも良い。
【００３８】
上記デリートファイルコマンドで指定されたファイルを削除した場合、不揮発性メモリ２５上では、図４に示すように、削除が指定されたファイルの定義情報が記憶されていた記憶領域（削除領域）と当該ファイルのデータが記憶されていた記憶領域（削除領域）とが空き領域となる。これらの削除領域としての空き領域をガーベージコレクションにより最適化するため、本ＩＣカード２の制御部２１は、ガーベージコレクションの分散処理を要求するガーベージ要求フラグ２５ａをセットする（ステップＳ１４）。
【００３９】
上記ガーベージ要求フラグ２５ａをセットすると、上記制御部２１は、デリートファイルコマンドに対するレスポンスデータとして、ファイルの削除が正常に完了した旨を示す情報をＩＣカード処理装置１へ送信する。なお、上記ステップＳ１３あるいはステップＳ１４の処理においてエラーが発生した場合、制御部２１は、エラー内容を示すレスポンスデータを生成し、生成したレスポンスデータをＩＣカード処理装置１へ送信する。
【００４０】
上記のような処理によれば、ＩＣカードは、デリートファイルコマンドを受信した場合、指定されたファイルの定義情報とデータとを削除した後、実際にガーベージコレクションを実行することなく、ガーベージ要求フラグ２５ａをセットする。これにより、デリートファイルコマンドを受信した場合の処理時間が短縮される。この結果として、不揮発性メモリ２５内に記憶するデータが大きくなっても、デリートファイルコマンドに対する処理に長い処理時間がかかる事を防ぐことができる。
【００４１】
次に、本ＩＣカード２におけるデリートファイルコマンドおよびクリエイトファイルコマンド以外のコマンドに対する処理について説明する。  
図７は、本ＩＣカード２におけるコマンド処理の流れを説明するためのフローチャートである。  
まず、ＩＣカード２がデリートファイルコマンド以外のコマンドをＩＣカード処理装置１から受信したものとする。この場合、制御部２１は、さらに、当該受信コマンドがクリエイトファイルコマンドであるか否かを確認する（ステップＳ２１）。受信コマンドがクリエイトファイルコマンドでないと判断した場合（ステップＳ２１、ＮＯ）、上記制御部２１は、当該受信コマンドに応じた処理を実行する（ステップＳ２２）。たとえば、受信コマンドがリードコマンドであれば、制御部２１は、データの読出し処理を行い、受信コマンドがライトコマンドであれば、制御部２１は、データの書込み処理を行う。
【００４２】
上記受信コマンドに応じた処理を実行すると、上記制御部２１は、ガーベージ要求フラグ２５ａがセットされているか否かを確認する（ステップＳ２３）。この確認によりガーベージ要求フラグ２５ａがセットされていない場合（ステップＳ２３、ＮＯ）、上記制御部２１は、受信コマンドに応じた処理の結果を示すレスポンスデータをＩＣカード処理装置１へ送信し、受信コマンドに対する処理を終了する（ステップＳ２７）。
【００４３】
また、上記ガーベージ要求フラグ２５ａがセットされている場合（ステップＳ２３、ＹＥＳ）、上記制御部２１は、受信コマンドに割り当てられるガーベージコレクションの一部の処理を実行する（ステップＳ２４）。コマンドを受信するごとにガーベージコレクションの一部の処理として実行すべき処理内容は、予め設定される。上述したように、ガーベージコレクションは、不揮発性メモリ２５に記憶されているデータを順次移動させる処理である。このため、コマンドを受信するごとに実行すべき処理内容としては、ガーベージコレクションとして移動させるデータの所定量が設定することが考えられる。
【００４４】
たとえば、ここでは、コマンドを受信するごとに、所定数のファイルに関するデータを移動させるように設定されているものとする。このような設定では、上記制御部２１は、ガーベージ要求フラグ２５ａがセットされていれば、１つのコマンドを処理するごとに、不揮発性メモリ２５において所定数のファイルに関するデータ（定義情報とデータ）を最適な場所に移動させる。
【００４５】
上記のような設定内容に従って不揮発性メモリ２５において所定数のファイルに関するデータを移動させると、制御部２１は、ガーベージコレクションが完了したか否かを判断する（ステップＳ２５）。この判断は、定義領域Ｒａ１あるいはデータ領域Ｒｂ１内に空き領域が存在するか否かにより判断できる。上記判断によりガーベージコレクションが完了したと判断した場合（ステップＳ２５、ＹＥＳ）、制御部２１は、ガーベージ要求フラグ２５ａをクリアする（ステップＳ２６）。
【００４６】
上記判断によりガーベージコレクションが完了していないと判断した場合（ステップＳ２５、ＮＯ）、あるいは、上記ガーベージ要求フラグ２５ａをクリアした場合、制御部２１は、受信コマンドに対する処理結果を示すレスポンスデータをＩＣカード処理装置１へ送信し、受信コマンドに対する処理を終了する（ステップＳ２７）。
【００４７】
以下、上述したようなコマンド処理の具体例について説明する。  
ただし、以下の説明では、１つのコマンドを処理するごとに、不揮発性メモリ２５において１つのファイルに関するデータを最適な場所に移動させる設定となっているものとする。  
図８〜図１０は、受信したコマンドを処理するごとに実行される処理内容を説明するための図である。  
図８は、図４に示すような状態の不揮発性メモリ２５に対して１つのコマンドを処理する場合に実行されるデータ移動（ガーベージコレクションの一部）の処理結果を示している。図８では、図４に示す定義領域Ｒａ１内の空き領域がファイル３の定義情報の直後に移動している。これは、ファイル２を削除した後に受信した１つ目のコマンドに対する処理において、ファイル３の定義情報がファイル１の定義情報に連続する領域に移動したことを示している。ただし、定義領域Ｒａ１は先頭アドレスを基準に設計されている。このため、ファイル３の定義情報とファイル１の定義情報とが連続するとは、ファイル１の定義情報の後端アドレスにファイル３の定義情報の先頭アドレスが連続することを意味している。
【００４８】
また、図８では、図４に示すデータ領域Ｒｂ１内の空き領域がファイル３のデータの直前に移動している。これは、ファイル２を削除した後に受信した１つ目のコマンドに対する処理において、ファイル３のデータがファイル１のデータに連続する領域に移動したことを示している。ただし、データ領域Ｒｂ１は記憶領域Ｒ１の後端アドレスを基準に設計されている。このため、ファイル３のデータとファイル１のデータとが連続するとは、ファイル３のデータとの後端アドレスにファイル１のデータの先頭アドレスが連続することを意味している。
【００４９】
図９は、図４に示すような状態の不揮発性メモリ２５に対して｛（ｎ−１）−２｝個目のコマンドを処理する場合に実行されるデータ移動の処理結果を示している。  
図９では、定義領域Ｒａ１内の空き領域がファイルｎ−１の定義情報の直後に移動している。これは、ファイル２を削除した後に受信した（ｎ−３）個目のコマンドに対する処理において、ファイルｎ−１の定義情報がファイルｎ−２の定義情報に連続する領域に移動したことを示している。ただし、定義領域Ｒａ１は先頭アドレスを基準に設計されている。このため、ファイルｎ−１の定義情報とファイルｎ−２の定義情報とが連続するとは、ファイルｎ−２の定義情報の後端アドレスにファイルｎ−１の定義情報の先頭アドレスが連続することを意味している。
【００５０】
また、図９では、データ領域Ｒｂ１内の空き領域がファイル３のデータの直前に移動している。これは、ファイル２を削除した後に受信した（ｎ−３）個目のコマンドに対する処理において、ファイルｎ−１のデータがファイルｎ−２のデータに連続する領域に移動したことを示している。ただし、データ領域Ｒｂ１は記憶領域Ｒ１の後端アドレスを基準に設計されている。このため、ファイルｎ−１のデータとファイルｎ−２のデータとが連続するとは、ファイルｎ−１のデータとの後端アドレスにファイルｎ−２のデータの先頭アドレスが連続することを意味している。
【００５１】
図１０は、図９に示すような状態の不揮発性メモリ２５に対して、１つのコマンドを処理する場合に実行されるデータ移動の処理結果を示している。言い換えれば、図１０は、図４に示すような状態の不揮発性メモリ２５に対して（ｎ−２）個目のコマンドを処理する場合に実行されるデータ移動の処理結果を示している。
【００５２】
図１０では、定義領域Ｒａ１内の空き領域が消滅（空き領域Ｒｃ１に結合）している。これは、ファイル２を削除した後に受信した（ｎ−２）個目のコマンドに対する処理において、ファイルｎの定義情報がファイルｎ−１の定義情報に連続する領域に移動したことを示している。ただし、定義領域Ｒａ１は先頭アドレスを基準に設計されている。このため、ファイルｎの定義情報とファイルｎ−１の定義情報とが連続するとは、ファイルｎ−１の定義情報の後端アドレスにファイルｎの定義情報の先頭アドレスが連続することを意味している。
【００５３】
また、図１０では、データ領域Ｒｂ１内の空き領域が消滅（空き領域ＲＣ１に結合）している。これは、ファイル２を削除した後に受信した（ｎ−２）個目のコマンドに対する処理において、ファイルｎのデータがファイルｎ−１のデータに連続する領域に移動したことを示している。ただし、データ領域Ｒｂ１は記憶領域Ｒ１の後端アドレスを基準に設計されている。このため、ファイルｎのデータとファイルｎ−１のデータとが連続するとは、ファイルｎのデータとの後端アドレスにファイルｎ−１のデータの先頭アドレスが連続することを意味している。
【００５４】
上記のような処理によれば、ＩＣカードは、ガーベージ要求フラグ２５ａがセットされている場合、コマンドを受信するごとに、ガーベージコレクションの分散処理を行う。つまり、ＩＣカードは、複数のコマンドに対する処理において、分散した処理を順次実行することによりガーベージコレクション全体を完結させる。この結果として、特定のコマンドに対する処理に長い時間をかけることなく、長い処理時間が必要なガーベージコレクションを複数のコマンドで負担することができる。
【００５５】
次に、本ＩＣカード２におけるクリエイトファイルコマンドに対する処理（ファイル創成処理）について説明する。  
図１１は、本ＩＣカード２におけるファイル創成処理の流れを説明するためのフローチャートである。  
まず、ＩＣカード２がクリエイトファイルコマンドをＩＣカード処理装置１から受信したものとする（ステップＳ２１、ＹＥＳ）。この場合、制御部２１は、当該受信したクリエイトファイルコマンドで指定されているファイルを創成するために必要な空き容量があるか否かを判断する（ステップＳ３１）。当該コマンドで指定されているファイルを創成するための空き容量があると判断した場合（ステップＳ３１、ＹＥＳ）、上記制御部２１は、当該コマンドに応じて新規のファイルを創成するファイル創成処理を実行する（ステップＳ３２）。
【００５６】
上記クリエイトファイルコマンドに対応するファイル創成処理では、制御部２１は、定義領域Ｒａ１に新規ファイルの定義情報を記憶する領域を確保するとともに、データ領域Ｒｂ１に新規ファイルのデータを記憶する領域を確保する。すなわち、制御部２１は、当該コマンドで創成が要求された新規ファイルの定義情報を既存の定義領域Ｒａ１の終端アドレスに続けて記録する。また、上記制御部２１は、当該新規ファイルの定義情報において、終端アドレスが既存のデータ領域Ｒｂ１の先頭アドレスに連続となるようなデータの記憶領域を定義する。たとえば、図１２は、図１０に示す状態の不揮発性メモリ２５の記憶領域Ｒ１にファイルｎ＋１を創成した状態を示している。図１２に示すように、創成されたファイルｎ＋１の定義情報およびデータの記憶領域は、図１０に示す空き領域Ｒｃ１の一部が割り当てられている。
【００５７】
上記のように、制御部２１は、不揮発性メモリ２５上の空き領域Ｒｃ１において新規ファイルに関するデータ（定義情報とデータ）の記憶領域を確保することにより、新規ファイルを創成する。このようなファイル創成処理を実行すると、上記制御部２１は、ファイル創成処理の結果を示すレスポンスデータをＩＣカード処理装置１へ送信し（ステップＳ３３）、当該コマンドに対する処理を終了する。
【００５８】
また、当該クリエイトファイルコマンドで指定されているファイルを創成するための空き容量が無いと判断した場合（ステップＳ３１、ＮＯ）、上記制御部２１は、上記ガーベージ要求フラグ２５ａがセットされているか否かを確認する（ステップＳ３４）。この確認によりガーベージ要求フラグ２５ａがセットされていないことが確認された場合（ステップＳ３４、ＮＯ）、上記制御部２１は、当該クリエイトファイルコマンドで要求されるファイルの創成が不可能であるため、エラー処理を実行する（ステップＳ３５）。たとえば、制御部２１は、エラー処理として、空き容量不足のためファイルの創成が不可能である旨の通知するレスポンスデータを生成する。この場合、制御部２１は、エラー内容を示すレスポンスデータをＩＣカード処理装置１へ送信し、処理を終了する（ステップＳ３３）。
【００５９】
また、上記ガーベージ要求フラグ２５ａがセットされている場合（ステップＳ３４、ＹＥＳ）、上記制御部２１は、進行中のガーベージコレクションとして、残っている処理を全て実行する（ステップＳ３６）。つまり、制御部２１は、ステップＳ３６の処理として、定義領域Ｒａ１内およびデータ領域Ｒｂ１内の空き領域を全て空き領域Ｒｃ１に集める処理を行う。
【００６０】
たとえば、不揮発性メモリ２５が図８に示すような状態である場合、上記制御部２１は、定義領域Ｒａ１内の空き領域とデータ領域Ｒｂ１内の空き領域とをそれぞれ空き領域Ｒｃ１に集める処理を行う。具体的には、制御部２１は、図８に示す状態の不揮発性メモリ２５に対して、ファイル４〜ファイルｎの各定義情報およびデータを順に移動させて図１０に示すような状態とする処理を行う。
【００６１】
上記のような処理により進行中であったガーベージコレクションが完了すると、制御部２１は、ガーベージ要求フラグ２５ａをクリアする（ステップＳ３７）。ガーベージ要求フラグ２５ａをクリアすると、制御部２１は、上記ステップＳ３１へ戻り、当該受信したクリエイトファイルコマンドで指定されている新規のファイルを創成するために必要な空き容量があるか否かを判断する（ステップＳ３１）。
【００６２】
すなわち、完了したガーベージコレクションにより新規のファイルを創成するための空き容量が確保できる状態となった場合、上記制御部２１は、上記ステップＳ３２へ進み、コマンドに応じた新規のファイルを創成するファイル創成処理を実行する。これに対して、ガーベージコレクションが完了しても新規のファイルを創成するための空き容量が確保できない場合、上記制御部２１は、上記ステップＳ３５へ進み、ファイルの創成が不可能であるためエラー処理を実行する。
【００６３】
上記のような処理によれば、ＩＣカードは、ガーベージ要求フラグがセットされている状態でクリエイトファイルコマンドを受信した場合、ファイルを創成するための空き容量が無ければ、残りのガーベージコレクションを実行することによりガーベージコレクションを完了させる。これにより、ガーベージコレクションが完了する前にクリエイトファイルコマンドを受信した場合、ファイルを創成するための空き容量が無ければ、ガーベージコレクションを完了した状態でファイルの創成が可能か否かを判定できる。
【符号の説明】
【００６４】
Ｃ…本体、Ｍ…モジュール、Ｃａ…ＩＣチップ、１…ＩＣカード処理装置、２…ＩＣカード、１１…端末装置、１５…カードリーダライタ、２１…制御部、２２…通信インターフェース、２３…ＲＯＭ、２４…ＲＡＭ、２５ａ…ガーベージ要求フラグ、２５…不揮発性メモリ、Ｒ１、Ｒ２…記憶領域、Ｒａ１…定義領域、Ｒｂ１…データ領域、Ｒｃ１…空き領域。
【図１】
2010218147.tif 000003
【図２】
2010218147.tif 000004
【図３】
2010218147.tif 000005
【図４】
2010218147.tif 000006
【図５】
2010218147.tif 000007
【図６】
2010218147.tif 000008
【図７】
2010218147.tif 000009
【図８】
2010218147.tif 000010
【図９】
2010218147.tif 000011
【図１０】
2010218147.tif 000012
【図１１】
2010218147.tif 000013
【図１２】
2010218147.tif 000014