(57)【要約】      （修正有）【課題】アプリケーションが使用する十分な記憶領域を確保できない場合には、使用可能な記憶領域の空き容量に応じて各アプリケーションの動作を選択できるＩＣカードおよび携帯可能電子装置を提供する。【解決手段】第１の記憶手段は、アプリケーションに割り当てられる一時記憶領域を有する。第２の記憶手段は、第１の記憶手段においてアプリケーションに割り当て可能な一時記憶領域の定義情報を記憶する。算出手段は、通信部によりアプリケーションを指定するコマンドを受信した場合、定義情報により定義される一時記憶領域内の未使用領域の容量を算出する。判断手段は、算出手段により算出した未使用領域の容量に応じた前記アプリケーションに対する機能制限の有無を判断する。設定手段は、判断手段による判断結果に基づいてアプリケーションに対する機能制限の内容を示す機能制限情報を設定する。【選択図】図２
2014186378.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と通信する通信部と、
アプリケーションに割り当てられる一時記憶領域を有する第１の記憶手段と、
前記第１の記憶手段においてアプリケーションに割り当て可能な一時記憶領域の定義情報を記憶する第２の記憶手段と、
前記通信部によりアプリケーションを指定するコマンドを受信した場合、前記定義情報により定義される一時記憶領域内の未使用領域の容量を算出する算出手段と、
前記算出手段により算出した未使用領域の容量に応じた前記アプリケーションに対する機能制限の有無を判断する判断手段と、
前記判断手段による判断結果に基づいて前記アプリケーションに対する機能制限の内容を示す機能制限情報を設定する設定手段と、
を有するＩＣカード。
【請求項２】
前記判断手段は、前記未使用領域の容量に応じて、前記アプリケーションの全機能が実行可能、前記アプリケーションの一部の機能が実行可能、あるいは、前記アプリケーションの全機能が実行不可能の何れかを決定する、
前記請求項１に記載のＩＣカード。
【請求項３】
前記設定手段は、前記アプリケーションの一部の機能が実行可能と判断した場合、前記機能制限情報としての制限フラグをセットする、
前記請求項２に記載のＩＣカード。
【請求項４】
前記算出手段は、前記通信部によりアプリケーションを指定するセレクトコマンドを受信した場合、前記一時記憶領域内の未使用領域の容量を算出する、
前記請求項１乃至３の何れか１項に記載のＩＣカード。
【請求項５】
前記第１の記憶手段は、揮発性メモリである、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
前記第２の記憶手段は、不揮発性メモリである、
前記請求項１乃至５の何れか１項に記載のＩＣカード。
【請求項７】
外部装置と通信する通信部と、アプリケーションに割り当てられる一時記憶領域を有する第１の記憶手段と、前記第１の記憶手段においてアプリケーションに割り当て可能な一時記憶領域の定義情報を記憶する第２の記憶手段と、前記通信部によりアプリケーションを指定するコマンドを受信した場合、前記定義情報により定義される一時記憶領域内の未使用領域の容量を算出する算出手段と、前記算出手段により算出した未使用領域の容量に応じた前記アプリケーションに対する機能制限の有無を判断する判断手段と、前記判断手段による判断結果に基づいて前記アプリケーションに対する機能制限の内容を示す機能制限情報を設定する設定手段と、を備えるモジュールと、
前記モジュールを具備する本体と、
を有するＩＣカード。
【請求項８】
外部装置と通信する通信部と、
アプリケーションに割り当てられる一時記憶領域を有する第１の記憶手段と、
前記第１の記憶手段においてアプリケーションに割り当て可能な一時記憶領域の定義情報を記憶する第２の記憶手段と、
前記通信部によりアプリケーションを指定するコマンドを受信した場合、前記定義情報により定義される一時記憶領域内の未使用領域の容量を算出する算出手段と、
前記算出手段により算出した未使用領域の容量に応じた前記アプリケーションに対する機能制限の有無を判断する判断手段と、
前記判断手段による判断結果に基づいて前記アプリケーションに対する機能制限の内容を示す機能制限情報を設定する設定手段と、
を有する携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカードおよび携帯可能電子装置に関する。
【背景技術】
【０００２】
ＩＣカードなどの携帯可能電子装置は、ＣＰＵ、ＲＡＭおよび書き換え可能な不揮発性メモリなどを有し、外部装置からのコマンドを解釈及び実行して、その処理結果を外部装置に提示する。従来、ＩＣカードは、実行するアプリケーションに割り当て可能なＲＡＭ上の記憶領域が予め定義されている。ＩＣカードは、予め定義されている記憶領域内で、実行するアプリケーションが使用する領域を順次確保する。しかしながら、ＩＣカードは、アプリケーションが使用する十分な記憶領域を確保できない場合には、当該アプリケーションが実行できなくなる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３４８１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態では、アプリケーションが使用する十分な記憶領域を確保できない場合には、使用可能な記憶領域の空き容量に応じて各アプリケーションの動作を選択できるＩＣカードおよび携帯可能電子装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、通信部と、第１の記憶手段と、第２の記憶手段と、算出手段と、判断手段と、設定手段とを有する。通信部は、外部装置と通信する。第１の記憶手段は、アプリケーションに割り当てられる一時記憶領域を有する。第２の記憶手段は、第１の記憶手段においてアプリケーションに割り当て可能な一時記憶領域の定義情報を記憶する。算出手段は、通信部によりアプリケーションを指定するコマンドを受信した場合、定義情報により定義される一時記憶領域内の未使用領域の容量を算出する。判断手段は、算出手段により算出した未使用領域の容量に応じた前記アプリケーションに対する機能制限の有無を判断する。設定手段は、判断手段による判断結果に基づいてアプリケーションに対する機能制限の内容を示す機能制限情報を設定する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカードシステムの構成例を示す図である。
【図２】図２は、実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、実施形態に係るＩＣカードの不揮発性メモリが記憶するファイルの管理構造の例を示す図である。
【図４】図４は、実施形態に係るＩＣカード内の不揮発性メモリ２４における記憶領域の構成例を示す図である。
【図５】図５は、実施形態に係るＩＣカードに適用可能なコマンドフォーマットの例である。
【図６】図６は、実施形態に係るＩＣカードの不揮発性メモリに格納される登録アプリケーションテーブルの構成例に示す図である。
【図７】図７は、実施形態に係るＩＣカードのＲＡＭ２３における記憶領域の構成例を示す図である。
【図８】図８は、実施形態に係るＩＣカードにおけるＴｒａｎｓｉｅｎｔ  Ａｒｅａの空き容量を算出する算出処理の手順を示すフローチャートである。
【図９】図９は、実施形態に係るＩＣカードがＳＥＬＥＣＴコマンドを受信した場合の処理の流れを説明するためのフローチャートである。
【図１０】図１０は、実施形態に係るＩＣカードがＳＥＬＥＣＴメソッドの処理例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照して説明する。  
図１は、実施形態に係る携帯可能電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置としてのＩＣカード処理装置１の構成について説明するためのブロック図である。
【０００８】
ＩＣカード２は、外部装置としてのＩＣカード処理装置１から与えられるコマンドを処理し、その処理結果をレスポンスとして出力する携帯可能電子装置である。また、ＩＣカード処理装置１は、ＩＣカード２に対して処理を要求するコマンドを供給し、ＩＣカード２からの処理結果を示すレスポンスを受信する装置である。
【０００９】
まず、ＩＣカード処理装置１の構成について説明する。  
図１に示す構成例において、ＩＣカード処理装置１は、制御部１０、および、カードリーダライタ１５、操作部１７、および、ディスプレイ１８を有する。また、制御部１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、および、不揮発性メモリ１４を有する。たとえば、制御部１０は、パーソナルコンピュータ（ＰＣ）により構成されるようにしても良い。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、カードリーダライタ１５、操作部１７及びディスプレイ１８は、それぞれバスを介して互いに接続される。
【００１０】
ＣＰＵ１１は、ＩＣカード処理装置１全体の制御を司る。ＣＰＵ１１は、ＲＯＭ１２又は不揮発性メモリ１４に記憶されている制御プログラムを実行することにより種々の処理を行う。例えば、ＣＰＵ１１は、カードリーダライタ１５を介してＩＣカード２とコマンド及びレスポンスの送受信を行う。
【００１１】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＡＭ１３は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１３は、カードリーダライタ１５を介して外部の機器と送受信するデータを一時的に格納する。また、ＲＡＭ１３は、ＣＰＵ１１が実行するプログラムを一時的に格納する。
【００１２】
不揮発性メモリ１４は、例えば、ＥＥＰＲＯＭなどの書き換え可能な不揮発性メモリにより構成する。不揮発性メモリ１４は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
【００１３】
カードリーダライタ１５は、ＩＣカード２との通信を行うためのインターフェース装置である。カードリーダライタ１５は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１４】
また、ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御部などにより構成される。カードリーダライタ１５では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ１５は、制御部１０のＣＰＵ１１による制御に基づいてＩＣカード２の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１５】
操作部１７は、ＩＣカード処理装置１の操作者によって、種々の操作指示が入力される。操作部１７は、操作者に入力された操作指示のデータをＣＰＵ１１へ送信する。操作部１７は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００１６】
ディスプレイ１８は、ＣＰＵ１１の制御により種々の情報を表示する表示装置である。ディスプレイ１８は、たとえば、液晶表示装置である。  
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位機器から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１７】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１８】
次に、ＩＣカード２の構成例について説明する。  
図２は、実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。  
ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信部としての外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。
【００１９】
図２に示す構成例において、ＩＣカード２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、不揮発性メモリ（ＮＶＭ）２４、ＵＡＲＴ（通信部）２５、および、コプロセッサ（ｃｏ−ｐｒｏｃｅｓｓｏｒ）２６を備えている。これらの各部は、データバスを介して互いに接続されている。また、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、および不揮発性メモリ２４は、１つ又は複数のＩＣチップＣａにより構成され、通信部２５に接続された状態でモジュールＭを構成している。
【００２０】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２あるいは不揮発性メモリ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御あるいはＩＣカード２の運用形態に応じた種々の処理を行う。なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００２１】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２２】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、計算用バッファ、受信用バッファ、送信用バッファなどとして機能する。計算用バッファとしては、ＣＰＵ２１が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファとしては、通信部２５を介してＩＣカード処理装置１から受信するコマンドを保持する。送信用バッファとしては、通信部２５を介してＩＣカード処理装置１へ送信するデータを保持する。
【００２３】
不揮発性メモリ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、不揮発性メモリ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２４】
ＵＡＲＴ２５は、ＩＣカード処理装置１のカードリーダライタ１５との通信を行うためのインターフェースである。ＩＣカード２が接触型のＩＣカードとして実現される場合、ＵＡＲＴ２５は、ＩＣカード処理装置１のカードリーダライタ１５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、ＩＣカード２が非接触型のＩＣカードとして実現される場合、ＵＡＲＴ２５は、ＩＣカード処理装置１のカードリーダライタ１５との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。  
コプロセッサ２６は、暗号化及び複合化を行うものである。
【００２５】
次に、不揮発性メモリ２４が記憶するファイルについて説明する。  
図３は、不揮発性メモリ２４が記憶するファイルの管理構造の例を示す図である。  
図３に示す例では、不揮発性メモリ２４には、ＭＦ（Ｍａｓｔｅｒ  Ｆｉｌｅ）３０、ＤＦ（Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）３２、３５、３８、４１、および、ＥＦ（Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）３３、３４、３６、３７、３９、４０、４２、４３などの複数のファイルを記憶する。これらのファイルは、階層構造で管理される。また、各ファイルは、定義情報によって定義される。なお、図３に示すようなファイル構造およびファイル定義は、たとえば、ＩＣカードの国際的な標準規格であるＩＳＯ／ＩＥＣ  ７８１６−４などで規定されている。
【００２６】
図３に示す構成例において、最上階層のＭＦ３０の次の階層には、ＤＦ３１（ＤＦ１（ＤＦ  ｎａｍｅ：ＡＰＬ１））、ＤＦ３５（ＤＦ２（ＤＦ  ｎａｍｅ：ＡＰＬ２））、ＤＦ３８（ＤＦ３（ＤＦ  ｎａｍｅ：ＡＰＬ３））、ＤＦ４１（ＤＦ４（ＤＦ  ｎａｍｅ：ＡＰＬ４））が存在する。たとえば、１つのＤＦは、当該ＩＣカード２が具備する１つのアプリケーション（アプレット）を実現するためのデータが格納される。複数のアプリケーションによって複数の機能を実現しているＩＣカード２は、各アプリケーションに対応する複数のＤＦを不揮発性メモリ２４内に設けるようにして良い。
【００２７】
また、図３に示す構成例において、ＤＦ３２（ＤＦ１）の配下としての次の階層には、ＥＦ３３（ＥＦ１−１）、および、ＥＦ３４（ＥＦ１−１）が存在している。また、ＤＦ３５（ＤＦ２）の配下としての次の階層には、ＥＦ３６（ＥＦ２−１）、および、ＥＦ３７（ＥＦ２−２）が存在している。また、ＤＦ３８（ＤＦ３）の配下としての次の階層には、ＥＦ３９（ＥＦ３−１）、および、ＥＦ４０（ＥＦ３−２）が存在している。また、ＤＦ４１（ＤＦ４）の配下としての次の階層には、ＥＦ４２（ＥＦ３−１）、および、ＥＦ４３（ＥＦ４−２）が存在している。
【００２８】
各ＥＦ３３、３４、３６、３７、３９、４０、４２、４３は、個々のアプリケーションで使われるデータを格納するデータファイルである。各ＥＦ３３、３４、３６、３７、３９、４０、４２、４３は、たとえば、ＩＳＯ／ＩＥＣ７８１６−４で規定されるＥＦ（である。各ＥＦは、それぞれのＥＦ定義情報で定義される。各ＥＦのＥＦ定義情報は、各ＥＦの種別（ファイル種別）を示すファイル種別情報が設定されている。つまり、各ＥＦは、ＥＦ定義情報のファイル種別情報により種別が判別される。
【００２９】
次に、ＩＣカード２の不揮発性メモリ２４におけるデータ領域の構成について説明する。  
図４は、ＩＣカード２内の不揮発性メモリ２４における記憶領域の構成例を示す図である。  
図４に示す構成例において、不揮発性メモリ２４は、システム領域５１及びアプリケーション領域５２などを有するデータメモリとして機能する。
【００３０】
システム領域５１は、ＩＣカード２の基本的な動作を実行するためのデータが格納されている。システム領域５１に格納されるデータは、ＩＣカード２の仕様に応じて設定される情報であり、たとえば、フェーズ情報、ＡＴＲ情報、及び、ファイル管理テーブルなどを含む情報である。フェーズ情報は、ＩＣカード２の製造、発行、運用、運用終了などのＩＣカード２のフェーズを示す。ＡＴＲ情報は、ＩＣカード２が活性化した後、外部装置に出力する初期応答を示す。ファイル管理テーブルは、ファイルの識別情報、先頭アドレスなどを示す情報を格納する。
【００３１】
システム領域５１には、アプリケーションに対応するＤＦを管理する登録アプリケーションテーブル５１ａが設けられる。登録アプリケーションテーブル５１ａは、当該ＩＣカード２に登録されているアプリケーションに対応するＤＦの識別情報（ＤＦ名（ＤＦ  ｎａｍｅ））とＤＦの識別情報が示すＤＦのメモリ上の位置を示す情報（ポインタ）とを有する。
【００３２】
また、システム領域５１は、各アプリケーションがデータを一時的に記憶するために使用するＲＡＭ２３上の一時記憶領域としてのトランジェントエリア（Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ）２３ａ（図７参照）を定義する定義情報を記憶するＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの定義情報記憶領域５１ｂを有する。定義情報記憶領域５１ｂには、ＲＡＭ２３におけるＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの開始アドレスとＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの終了アドレスとを記憶する。
【００３３】
アプリケーション領域５２は、各アプリケーションが使用するファイルの定義情報領域およびデータ格納領域などを有する。不揮発性メモリ２４に記憶する各ファイルは、定義情報領域に記憶されるファイル定義情報と定義情報領域のファイル定義情報で定義されるデータ格納領域のデータエリアに記憶されるデータ（ファイルデータ）とにより構成される。たとえば、ＩＣカード２では、図３に示すように、アプリケーションのフォルダに相当するＤＦ、および、データファイルに相当するＥＦを階層構造で管理する。この場合、ＤＦは、アプリケーション領域５２の定義情報領域に記憶されるＤＦ定義情報で定義される。ＥＦは、アプリケーション領域５２の定義情報領域に記憶されるＥＦ定義情報とそのＥＦ定義情報で定義されるアプリケーション領域５２のデータ格納領域におけるデータエリアとにより構成される。
【００３４】
次に、ＩＣカード処理装置１がＩＣカード２に処理を要求するコマンドについて説明する。  
図５は、ＩＳＯ／ＩＥＣ７８１６−４で規定されるＩＣカードのコマンドフォーマットの例である。  
図５に示す構成例において、コマンドは、クラスバイト（ＣＬＡ）、インストラクションバイト（ＩＮＳ）、パラメータバイト（Ｐ２、Ｐ２）、Ｌｃフィールド、コマンドデータフィールド、および、Ｌｅフィールドにより構成する。
【００３５】
クラスバイト（ＣＬＡ）は、コマンドの種別を示す。インストラクションバイト（ＩＮＳ）は、コマンドを示す。パラメータバイト（Ｐ２、Ｐ２）は、コマンドオプション指定を示す。Ｌｃフィールドは、後続のコマンドデータフィールドの長さを示す。コマンドデータフィールドは、コマンド処理に使用するデータを示す。Ｌｅフィールドは、コマンドへの応答として返されるレスポンスデータの最大長を示す。
【００３６】
ＩＣカード処理装置１からのコマンドを受信した場合、ＩＣカード２の制御素子（ＣＰＵ）２１は、図４に示すフォーマットに従って受信したコマンドを解析し、受信したコマンドが要求する処理内容を認識し、コマンドが要求する処理を実行する。
【００３７】
次に、不揮発性メモリ２４のシステム領域５１に設けられる登録アプリケーションテーブルについて説明する。  
図６は、不揮発性メモリ２４のシステム領域５１に設けられる登録アプリケーションテーブル５１ａの構成例を示す図である。  
図６に示す例において、登録アプリケーションテーブル５１ａは、当該ＩＣカード２に登録されているアプリケーションのＤＦ名（ＤＦ  ｎａｍｅ）と、各アプリケーションのＤＦの位置を示すポインタとを記憶する。
【００３８】
ＩＣカード２は、受信したコマンドのデータフィールドでＤＦ  Ｎａｍｅが指定された場合、指定された値と登録アプリケーションテーブル５１ａのＤＦ  Ｎａｍｅとを比較して一致するものを検索する。たとえば、コマンドのデータフィールドで指定された値がＡＰＬ１である場合、図６に示す登録アプリケーションテーブル５１ａを参照すれば、ＩＣカード２は、指定されたＤＦ  Ｎａｍｅと一致するアプリケーション（ＤＦ）が存在し、そのＤＦの位置を示すポインタが「１００００」であることを認識する。
【００３９】
次に、ＲＡＭ２３におけるメモリ領域について説明する。  
図７は、ＲＡＭ２３におけるメモリ領域の構成を概略的に示す図である。  
図７に示すように、揮発性メモリとしてのＲＡＭ２３のメモリ領域の一部には、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａが定義される。また、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａにおいて使用されている領域を示す情報は、ＲＡＭ２３のメモリ領域におけるＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａ以外に設けられた使用アドレス記憶領域２３ｂに書き込まれる。
【００４０】
Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａは、上述しように、アプリケーションがデータを一時的に記憶するために使用可能な記憶領域である。Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａは、予めＲＡＭ２３のメモリ領域中に定義される記憶領域である。アプリケーションがデータを一時的に記憶する領域を確保する必要が生じた場合、各アプリケーションの確保領域（各アプリケーションに対して確保するＴｒａｎｓｉｅｎｔ  Ａｒｅａ内の領域）は、ＲＡＭ２３上のＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの先頭アドレスから必要な容量分が順番に確保される。
【００４１】
たとえば、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａを使用しているアプリケーションがなければ、最初のアプリケーション用の確保領域は、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの先頭アドレスから当該アプリケーションが必要な容量分の記憶領域が確保される。また、すでにＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの一部を使用しているアプリケーションがある場合、次のアプリケーションには、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａ内において使用中の領域の最終アドレスに続くアドレス（未使用領域の先頭アドレス）から、当該アプリケーションが必要な容量分の記憶領域が確保される。また、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの一部を確保していたアプリケーションがデータを一時的に記憶する領域が不要になった場合（つまり、アプリケーションを終了する場合）、当該アプリケーションが確保していた記憶領域は解放される。
【００４２】
次に、ＲＡＭ２３におけるＴｒａｎｓｉｅｎｔ  Ａｒｅａの空きメモリ容量を算出処理について説明する。  
上述したように、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの開始アドレスおよびＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの終了アドレスは、図４に示すように、不揮発性メモリ２４のシステム領域５１における定義領域５１ａに書き込まれる。また、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａ内でアプリケーションに確保した領域の最終アドレス（Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａ内における使用中の記憶領域の最終アドレス）は、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの使用済みアドレスとして、図７に示す使用アドレス記憶領域２３ｂに書き込まれる。したがって、ＩＣカード２の制御素子２１は、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの終了アドレスからＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａ内の使用済みアドレスの差分を取ることにより、現時点でのＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空きメモリ容量を算出することが可能となる。
【００４３】
図８は、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空きメモリ容量を算出する算出処理の手順を示すフローチャートである。  
Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空きメモリ容量を算出する場合、制御素子２１は、ＲＡＭ２３の使用アドレス記憶領域２３ｂからるＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの使用済みアドレス（例えば、「Ａ」とする）を取得する（ステップＳ１００）。次に、制御素子２１は、不揮発性メモリ２４のシステム領域５１におけるＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの定義情報記憶領域５１ｂからＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの終了アドレス（例えば、「Ｂ」とする）を取得する。取得したＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの使用済みアドレス（Ａ）とＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの終了アドレス（Ｂ）の差分値（Ｂ−Ａ）を算出し、その差分値からＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空きメモリ容量を判断する。
【００４４】
次に、上記のような構成のＩＣカード２におけるＳＥＬＥＣＴコマンドに対するＳＥＬＥＣＴ処理について説明する。  
図９は、ＩＣカード２におけるＳＥＬＥＣＴ処理の流れを説明するためのフローチャートである。  
ＩＣカード処理装置１から供給される電力により活性化したＩＣカード２は、ＩＣカード処理装置１が送信するコマンドをＵＡＲＴ２５により受信する。ＵＡＲＴ２５によりコマンドを受信すると、ＩＣカード２の制御素子２１は、図５に示すようなコマンドフォーマットに従って受信したコマンドを解析し、コマンドが要求する処理内容を認識する。ここでは、制御素子２１は、受信したコマンドの「ＣＬＡ」、「ＩＮＳ」がＳＥＬＥＣＴコマンドであるか否かをチェックする（ステップＳ１０３）。
【００４５】
受信したコマンドがＳＥＬＥＣＴコマンドでないと判断した場合（ステップＳ１０３、ＮＯ）、制御素子２１は、受信したコマンドに応じた処理を実行する（ステップＳ１０５）。また、受信したコマンドがＳＥＬＥＣＴコマンドであると判断した場合（ステップＳ１０３、ＹＥＳ）、制御素子２１は、登録アプリケーションテーブル５１ａに登録されている各ＤＦのＤＦ  Ｎａｍｅを参照する（読み込む）（ステップＳ１０４）。登録アプリケーションテーブル５１ａに登録されているＤＦ  Ｎａｍｅを読み込むと、制御素子２１は、登録アプリケーションテーブル５１ａに登録されているＤＦ  Ｎａｍｅが受信コマンドのデータフィールド（「Ｄａｔａ」）のＤＦ  Ｎａｍｅと一致しているか否かを確認する（ステップＳ１０６）。
【００４６】
受信したコマンドのＤＦ  ｎａｍｅと登録アプリケーションテーブル５１ａに登録されているＤＦ  ｎａｍｅとが一致しない場合（ステップＳ１０６、ＮＯ）、制御素子２１は、ＳＥＬＥＣＴコマンドに対する処理がエラーとなったと判断する（ステップＳ１０８）。受信したＳＥＬＥＣＴコマンドに対する処理がエラーとなったと判断した場合、制御素子２１は、当該ＳＥＬＥＣＴコマンドが「異常終了」である旨の応答ステータスをＵＡＲＴ２５によりＩＣカード処理装置１へ送信する（ステップＳ１１２）。
【００４７】
また、受信したコマンドのＤＦ  ｎａｍｅと登録アプリケーションテーブル５１ａに登録されているＤＦ  ｎａｍｅとが一致する場合（ステップＳ１０６、ＹＥＳ）、制御素子２１は、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空きメモリ容量を算出する算出処理を実行する（ステップＳ１０７）。
【００４８】
Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空きメモリ容量を算出すると、ＩＣカード２の制御素子２１は、受信したＳＥＬＥＣＴコマンドで指定されたアプリケーションに選択されたことを知らせるためにＳＥＬＥＣＴメソッドを呼ぶ。すなわち、制御素子２１は、上記算出処理により算出したＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空き容量をＳＥＬＥＣＴ  メソッドの引数にセットし（ステップＳ１０９）、ＳＥＬＥＣＴ  メソッドを実行する（ステップＳ１１０）。ＳＥＬＥＣＴメソッドは、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空き容量に応じてＳＥＬＥＣＴコマンドで指定されたアプリケーションの動作を判定する処理である。ＳＥＬＥＣＴメソッドの処理手順については、後述するものとする。
【００４９】
ＳＥＬＥＣＴメソッドを実行すると、制御素子２１は、ＳＥＬＥＣＴメソッドの戻り値（実行結果）が正常応答であるか判断する（ステップＳ１１１）。ＳＥＬＥＣＴメソッドの戻り値が正常応答であれば（ステップＳ１１１、ＹＥＳ）、制御素子２１は、ＳＥＬＥＣＴコマンドに対する応答として、当該ＳＥＬＥＣＴコマンドが「正常終了」である旨の応答ステータスをＵＡＲＴ２５によりＩＣカード処理装置１へ送信する（ステップＳ１１３）。この場合、制御素子２１は、アプリケーションの機能制限の有無を示す不揮発性メモリ２４（又はＲＡＭ２３）に設けた制限フラグをアプリケーションの機能制限が無いことを示す値（たとえば、「０」）のままとする。
【００５０】
また、ＳＥＬＥＣＴメソッドの戻り値が正常応答でなければ（ステップＳ１１１、ＮＯ）、制御素子２１は、ＳＥＬＥＣＴメソッドの戻り値が警告応答か判断する（ステップＳ１１４）。ＳＥＬＥＣＴメソッドの戻り値が警告応答であれば（ステップＳ１１４、ＹＥＳ）、制御素子２１は、アプリケーションの機能を制限することを示す値（たとえば、「１」）を不揮発性メモリ２４（又はＲＡＭ２３）に設けた制限フラグに書き込むことにより制限フラグをセットする（ステップＳ１１５）。制限フラグをセットすると、制御素子２１は、ＳＥＬＥＣＴコマンドに対する応答として、当該ＳＥＬＥＣＴコマンドが「警告終了」である旨の応答ステータスをＵＡＲＴ２５によりＩＣカード処理装置１へ送信する（ステップＳ１１６）。
【００５１】
ＳＥＬＥＣＴメソッドの戻り値が正常応答でも警告応答でもなければ（ステップＳ１１４、ＹＥＳ）、制御素子２１は、ＳＥＬＥＣＴコマンドに対する応答として、当該ＳＥＬＥＣＴコマンドで指定されたアプリケーションが実行不可となる「異常終了」である旨の応答ステータスをＵＡＲＴ２５によりＩＣカード処理装置１へ送信する（ステップＳ１１７）。
【００５２】
次に、ＳＥＬＥＣＴメソッドの処理について説明する。  
図９は、アプリケーションが実行するＳＥＬＥＣＴメソッドの処理の例を示すフローチャートである。  
ＳＥＬＥＣＴメソッドが呼ばれると、制御素子２１は、引数に指定されている値（Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空き容量）がアプリケーション実行に十分か判断する（ステップＳ１２０）。Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空き容量が十分であると判断した場合（ステップＳ１２０、ＹＥＳ）、制御素子２１は、ＳＥＬＥＣＴメソッドの戻り値を正常応答とする（ステップＳ１２１）。
【００５３】
Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空き容量がアプリケーション実行に不十分であると判断した場合（ステップＳ１２０、ＮＯ）、制御素子２１は、アプリケーションの機能を制限して当該アプリケーションを実行可能であるか否かを判断する（ステップＳ１２２）。アプリケーションが機能を制限して実行可能であると判断した場合（ステップＳ１２２、ＹＥＳ）、制御素子２１は、ＳＥＬＥＣＴメソッドの戻り値を警告応答とする（ステップＳ１２３）。機能を制限してもアプリケーションの実行が不可能と判断した場合（ステップＳ１２２、ＹＥＳ）、制御素子２１は、ＳＥＬＥＣＴメソッドの戻り値を異常応答とする（ステップＳ１２４）。
【００５４】
なお、上記の処理例では、機能を制限して当該アプリケーションが実行可能であるか否かを判断するものとしたが、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空き容量に応じて当該アプリケーションに対して複数段階（レベル）の機能制限を判断するようにしても良い。この場合、制御素子２１は、制限フラグに代えて当該アプリケーションに対する機能制限のレベルを示す機能制限情報を不揮発性メモリ２４又はＲＡＭ２３に書き込むようにすれば良い。
【００５５】
上記のように、ＳＥＬＥＣＴコマンドを受信した場合、ＩＣカード２は、Ｔｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａの空き容量を算出する。ＩＣカード２は、ＳＥＬＥＣＴコマンドで指定されたアプリケーションが十分な記憶領域を確保できない場合、一部の機能が使用可能となる領域を確保できれば、不揮発性メモリ２４に当該アプリケーションに対する機能制限を示す制限フラグをセットする。ＩＣカード２は、ＳＥＬＥＣＴコマンドで指定されたアプリケーションが後続のコマンドを受信した場合、制限フラグを読み込むことにより、機能を縮小して動作させる。
【００５６】
上記のような実施形態によれば、ＩＣカード２では、ＲＡＭのＴｒａｎｓｉｅｎｔ  Ａｒｅａ２３ａ内に十分な記憶領域を確保できないアプリケーションであっても、機能を縮小して動作させることが可能となる。この結果として、アプリケーションの選択処理以降の処理がメモリ容量不足で完全に実行することができなくなることを軽減できる。
【００５７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５８】
Ｃ…本体、Ｍ…モジュール、Ｃａ…ＩＣチップ、１…ＩＣカード処理装置、２…ＩＣカード、１０…制御部、１５…カードリーダライタ、１７…操作部、１８…ディスプレイ、２１…制御素子（ＣＰＵ、算出手段、判断手段、設定手段）、２２…ＲＯＭ、２３…ＲＡＭ（第１の記憶手段、揮発性メモリ）、２３ａ…トランジェントエリア（一時記憶領域）、２３ｂ…使用アドレス記憶領域、２４…不揮発性メモリ（第２の記憶手段）、２５…ＵＡＲＴ（通信部）、５１…システム領域、５１ａ…登録アプリケーションテーブル、５１ｂ…定義情報記憶領域、５２…アプリケーション領域。
【図１】
2014186378.tif 000003
【図２】
2014186378.tif 000004
【図３】
2014186378.tif 000005
【図４】
2014186378.tif 000006
【図５】
2014186378.tif 000007
【図６】
2014186378.tif 000008
【図７】
2014186378.tif 000009
【図８】
2014186378.tif 000010
【図９】
2014186378.tif 000011
【図１０】
2014186378.tif 000012