(57)【要約】【課題】データを一時的に記憶する記憶部を効率良く使用することができる携帯可能電子装置、及びＩＣカードを提供することである。【解決手段】実施形態の携帯可能電子装置は、通信部と、記憶部と、制御部とを持つ。通信部は、外部装置から処理要求を受信するとともに、前記処理要求に対する応答を前記外部装置に送信する。記憶部は、複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する。制御部は、前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する。【選択図】図３
2016212779.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から処理要求を受信するとともに、前記処理要求に対する応答を前記外部装置に送信する通信部と、
複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する記憶部と、
前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する制御部と
を備える携帯可能電子装置。
【請求項２】
前記制御部は、前記通信部により受信された前記処理要求によって、論理チャネルが新たに有効にされた場合に、有効にされた前記論理チャネルに対応した、前記拡張作業領域及び前記拡張バッファ領域を、前記記憶部に確保する
請求項１に記載の携帯可能電子装置。
【請求項３】
前記制御部は、前記通信部により受信された前記処理要求によって、有効にされた前記論理チャネルが無効にされた場合に、無効にされた前記論理チャネルに対応して確保された前記拡張作業領域及び前記拡張バッファ領域を解放する
請求項２に記載の携帯可能電子装置。
【請求項４】
前記制御部は、前記通信部により受信された前記処理要求によって、選択されている前記アプリケーションが解除された場合に、前記アプリケーションの選択に応じて確保した前記拡張作業領域及び前記拡張バッファ領域を解放する
請求項１から請求項３のいずれか一項に記載の携帯可能電子装置。
【請求項５】
前記拡張作業領域のサイズと、前記拡張バッファ領域のサイズとを前記アプリケーションごとに記憶する情報記憶部を備え、
前記制御部は、前記通信部により受信された前記処理要求によって選択された前記アプリケーションに対応する前記拡張作業領域のサイズ及び前記拡張バッファ領域のサイズを、前記情報記憶部から取得し、取得した前記拡張作業領域のサイズ及び前記拡張バッファ領域のサイズに基づいて、前記拡張作業領域と、前記拡張バッファ領域とを前記記憶部に確保する
請求項１から請求項４のいずれか一項に記載の携帯可能電子装置。
【請求項６】
前記通信部は、前記制御部によって確保された前記拡張バッファ領域のサイズを含む制御情報を、前記処理要求に対する応答として送信する
請求項１から請求項５のいずれか一項に記載の携帯可能電子装置。
【請求項７】
前記制御部は、複数の前記拡張バッファ領域を確保する場合に、複数の前記アプリケーションの間で領域が重複するように、前記拡張バッファ領域を確保する
請求項１から請求項６のいずれか一項に記載の携帯可能電子装置。
【請求項８】
外部装置から処理要求を受信するとともに、前記処理要求に対する応答を前記外部装置に送信する通信部と、
複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する記憶部と、
前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する制御部と
を備えるＩＣモジュールと、
前記ＩＣモジュールが埋め込まれたカード本体と
を備えるＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、携帯可能電子装置、及びＩＣカードに関する。
【背景技術】
【０００２】
近年、ＩＣ（Integrated Circuit）チップを搭載したＩＣカードなどの携帯可能電子装置が普及している。携帯可能電子装置は、外部装置から受信したコマンドを処理し、コマンドに応じたレスポンスを送信させるコマンド処理を行う。携帯可能電子装置は、データを一時的に記憶する記憶部（例えば、ＲＡＭ（Random Access Memory））内に、外部装置から受信するデータを一時的に記憶するバッファ領域、及びコマンド処理を実行する際の作業領域を、固定の領域として備えている。しかしながら、携帯可能電子装置は、例えば、複数のアプリケーションに対応する場合に、多くの領域を予め用意する必要があり、ＲＡＭを効率良く使用することかできない可能性があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３０５９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、データを一時的に記憶する記憶部を効率良く使用することができる携帯可能電子装置、及びＩＣカードを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の携帯可能電子装置は、通信部と、記憶部と、制御部とを持つ。通信部は、外部装置から処理要求を受信するとともに、前記処理要求に対する応答を前記外部装置に送信する。記憶部は、複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する。制御部は、前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態のＩＣカードの一例を示す外観図。
【図２】第１の実施形態のＩＣカードのハードウェア構成例を示す図。
【図３】第１の実施形態のＩＣカードの機能構成例を示すブロック図。
【図４】第１の実施形態のＡＰ情報記憶部のデータ例を示す図。
【図５】第１の実施形態のチャネル情報記憶部のデータ例を示す図。
【図６】第１の実施形態の拡張領域情報記憶部のデータ例を示す図。
【図７】第１の実施形態のＩＣカードの動作の一例を示すフローチャート。
【図８】第１の実施形態のアプリケーションに応じて領域を確保する前の一例を示すＲＡＭのメモリマップ図。
【図９】第１の実施形態の動作の一例を示すＲＡＭのメモリマップ図。
【図１０】第１の実施形態の動作の別の一例を示すＲＡＭのメモリマップ図。
【図１１】第２の実施形態のＩＣカードの機能構成例を示すブロック図。
【図１２】第２の実施形態のチャネル情報記憶部のデータ例を示す図。
【図１３】第２の実施形態のＩＣカードの動作の一例を示すフローチャート。
【図１４】第２の実施形態の動作の一例を示すＲＡＭのメモリマップ図。
【図１５】第２の実施形態の論理チャネルを変更する動作の一例を示すＲＡＭのメモリマップ図。
【図１６】第２の実施形態の論理チャネルを変更する動作の第１の変形例を示すＲＡＭのメモリマップ図。
【図１７】第２の実施形態の論理チャネルを変更する動作の第２の変形例を示すＲＡＭのメモリマップ図。
【図１８】第２の実施形態の動作の別の一例を示すＲＡＭのメモリマップ図。
【発明を実施するための形態】
【０００７】
以下、実施形態の携帯可能電子装置、及びＩＣカードを、図面を参照して説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態のＩＣカード１の一例を示す外観図である。
図１に示すように、ＩＣカード１は、ＩＣモジュール１０を備える。ＩＣモジュール１０は、ＩＣカード１が接触式ＩＣカードの場合は、コンタクト部３と、内部にＩＣチップ１００とを備える。
【０００９】
なお、ＩＣカード１が非接触式ＩＣカードの場合は、ＩＣモジュール１０は、内部にアンテナ部とＩＣチップ１００とを備える。ＩＣカード１は、例えば、プラスチックのカード基材ＰＴ（カード本体の一例）に、ＩＣモジュール１０を実装して形成されている。すなわち、ＩＣカード１は、ＩＣモジュール１０と、ＩＣモジュール１０が埋め込まれたカード基材ＰＴとを備えている。また、ＩＣカード１は、コンタクト部３を介して外部装置２と通信可能である。
なお、本実施形態では、携帯可能電子装置の一例として、ＩＣカード１について説明する。
【００１０】
ＩＣカード１は、例えば、外部装置２が送信したコマンド（処理要求）を、コンタクト部３を介して受信し、受信したコマンドに応じた処理（コマンド処理）を実行する。そして、ＩＣカード１は、コマンド処理の実行結果であるレスポンス（処理応答）を外部装置２にコンタクト部３を介して送信する。
ここで、外部装置２は、ＩＣカード１と通信する上位装置であり、例えば、リーダ／ライタ装置などである。
【００１１】
ＩＣモジュール１０は、コンタクト部３と、ＩＣチップ１００とを備え、例えば、テープ上にＩＣモジュール１０が複数配置されたＣＯＴ（Chip On Tape）などの形態で取引されるモジュールである。
【００１２】
ＩＣモジュール１０は、コンタクト部３と、ＩＣチップ１００とを備え、例えば、テープ上にＩＣモジュール１０が複数配置されたＣＯＴ（Chip On Tape）などの形態で取引されるモジュールである。なお、テープから個片抜きして切り離した単体のＩＣモジュール１０をＣＯＴという場合がある。
【００１３】
コンタクト部３は、ＩＣカード１が動作するために必要な各種信号の端子を有している。ここで、各種信号の端子は、電源電圧、クロック信号、リセット信号などを外部装置２から供給を受ける端子、及び、外部装置２と通信するためのシリアルデ―タ入出力端子（ＳＩＯ端子）を有する。
ＩＣチップ１００は、例えば、１チップのマイクロプロセッサなどのＬＳＩ（Large Scale Integration）である。
【００１４】
次に、図２を参照して、本実施形態のＩＣカード１のハードウェア構成について説明する。
図２は、本実施形態のＩＣカード１のハードウェア構成例を示す図である。
図２に示すように、ＩＣカード１は、コンタクト部３と、ＩＣチップ１００とを備えたＩＣモジュール１０を備えている。そして、ＩＣチップ１００は、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）４と、ＣＰＵ５と、ＲＯＭ（Read Only Memory）６と、ＲＡＭ（Random Access Memory）７と、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）８とを備えている。また、各構成（４〜８）は、内部バスＢＳ１を介して接続されている。
【００１５】
ＵＡＲＴ４は、上述したＳＩＯ端子を介して、外部装置２とシリアルデータ通信を行う。ＵＡＲＴ４は、ＳＩＯ端子を介して受信したシリアルデータ信号をパラレル変換したデータ（例えば、１バイトのデータ）を内部バスＢＳ１に出力する。また、ＵＡＲＴ４は、内部バスＢＳ１を介して取得したデータをシリアル変換して、ＳＩＯ端子を介して外部装置２に出力する。ＵＡＲＴ４は、例えば、ＳＩＯ端子を介してコマンドを外部装置２から受信する。また、ＵＡＲＴ４は、ＳＩＯ端子を介してレスポンスを外部装置２に送信する。
【００１６】
ＣＰＵ５は、ＲＯＭ６又はＥＥＰＲＯＭ８に記憶されているプログラムを実行して、ＩＣカード１の各種処理を行う。ＣＰＵ５は、例えば、コンタクト部３を介して、ＵＡＲＴ４が受信したコマンドに応じたコマンド処理を実行する。
【００１７】
ＲＯＭ６は、例えば、マスクＲＯＭなどの不揮発性メモリであり、ＩＣカード１の各種処理を実行するためのプログラム、及びコマンドテーブルなどのデータを記憶する。
ＥＥＰＲＯＭ８は、例えば、電気的に書き換え可能な不揮発性メモリである。ＥＥＰＲＯＭ８は、ＩＣカード１が利用する各種データを記憶する。ＥＥＰＲＯＭ８は、例えば、ＩＣカード１を利用した各種サービス（アプリケーション）に使用される情報を記憶する。
【００１８】
ＲＡＭ７（記憶部の一例）は、例えば、ＳＲＡＭ（Static RAM）などの揮発性メモリであり、ＩＣカード１の各種処理を行う際に利用されるデータを一時記憶する。ＲＡＭ７は、複数のアプリケーションに共通に使用されるアプリケーション共通領域Ａ３（後述する図８参照）と、外部装置２から受信するデータを一時的に記憶するＡＰＤＵバッファ領域Ａ４（後述する図８参照）とを少なくとも有している。ここで、ＡＰＤＵは、例えば、アプリケーションプロトコルデータ単位（Application Protocol Data Unit）であり、コマンド及びレスポンスのデータ部分を示す。また、ＲＡＭ７は、例えば、アプリケーションが新たに選択（活性化）された場合に、選択されたアプリケーションに対応するアプリケーションワーク領域Ａ５（後述する図１０参照）及び拡張ＡＰＤＵバッファ領域Ａ６（後述する図１０参照）が確保される。なお、ＲＡＭ７が有する各領域の詳細については後述する。
【００１９】
次に、図３を参照して、本実施形態によるＩＣカード１の機能構成例について説明する。
図３は、本実施形態のＩＣカード１の機能構成例を示すブロック図である。
図３に示すように、ＩＣカード１は、通信部４０と、制御部５０と、ＡＰ（アプリケーション）情報記憶部８１と、チャネル情報記憶部７１と、拡張領域情報記憶部７２とを備えている。
ここで、図３に示されるＩＣカード１の各部は、図２に示されるＩＣカード１のハードウェアを用いて実現される。
【００２０】
通信部４０は、例えば、ＵＡＲＴ４と、ＣＰＵ５と、ＲＯＭ６に記憶されているプログラムとにより実現され、コンタクト部３を介して、例えば、外部装置２との間でコマンド及びレスポンスの送受信を行う。すなわち、通信部４０は、所定の処理を要求するコマンド（処理要求）を外部装置２から受信するとともに、コマンドに対するレスポンス（応答）を外部装置２に送信する。
【００２１】
ＡＰ情報記憶部８１は、例えば、ＥＥＰＲＯＭ８により構成された記憶部である。ＡＰ情報記憶部８１は、各アプリケーションに対応するアプリケーションワーク領域Ａ５のサイズ及び拡張ＡＰＤＵバッファ領域Ａ６のサイズを記憶する。ここで、図４を参照して、ＡＰ情報記憶部８１が記憶するデータ例について説明する。
【００２２】
図４は、本実施形態のＡＰ情報記憶部８１のデータ例を示す図である。
図４に示すように、ＡＰ情報記憶部８１は、例えば、「アプリケーション名」と、「ＡＰワーク領域のサイズ」と、「拡張ＡＰＤＵバッファ領域のサイズ」とを対応付けて記憶する。ここで、「アプリケーション名」は、アプリケーションを識別する識別情報であり、アプリケーション名の代わりに、アプリケーションＩＤ（ＡＩＤ）などでもよい。また、「ＡＰワーク領域のサイズ」は、アプリケーションワーク領域Ａ５のサイズ（バイト数）を示し、「拡張ＡＰＤＵバッファ領域のサイズ」は、拡張ＡＰＤＵバッファ領域Ａ６のサイズ（バイト数）を示している。
【００２３】
図４の示す例では、「アプリケーション名」が“アプリケーションＡ”に対応する「ＡＰワーク領域のサイズ」が“１２８”バイトであり、「拡張ＡＰＤＵバッファ領域のサイズ」が“１２８”バイトであることを示している。
また、「アプリケーション名」が“アプリケーションＢ”に対応する「ＡＰワーク領域のサイズ」が“５１２”バイトであり、「拡張ＡＰＤＵバッファ領域のサイズ」が“２５６”バイトであることを示している。
このように、アプリケーションワーク領域Ａ５のサイズと、拡張ＡＰＤＵバッファ領域Ａ６のサイズとは、通信部４０が受信したコマンドによって選択（活性化）されたアプリケーション（例えば、アプリケーション名）に対応して定められている。なお、アプリケーションには、アプリケーションワーク領域Ａ５又は拡張ＡＰＤＵバッファ領域Ａ６の確保を必要としない場合があり、その場合、「ＡＰワーク領域のサイズ」又は「拡張ＡＰＤＵバッファ領域のサイズ」に“０”が記憶される。
【００２４】
図３の説明に戻り、チャネル情報記憶部７１は、例えば、ＲＡＭ７により構成された記憶部である。チャネル情報記憶部７１は、論理チャネルの状態を示す情報（例えば、論理チャネルが開いている状態（オープンの状態）であるか否かを示す情報）を記憶する。また、チャネル情報記憶部７１は、論理チャネルとアプリケーションの対応を記憶する。ここで、図５を参照して、チャネル情報記憶部７１が記憶するデータ例について説明する。
【００２５】
図５は、本実施形態のチャネル情報記憶部７１のデータ例を示す図である。
図５に示すように、チャネル情報記憶部７１は、例えば、「チャネル番号」と、「ステータス」と、「アプリケーション名」と対応付けて記憶する。ここで。「チャネル番号」は、論理チャネルの番号を示し、「ステータス」は、論理チャネルの状態を示している。
図５に示す例では、「チャネル番号」が“０”の「ステータス」が“オープン”（有効）であり、対応する「アプリケーション名」が“アプリケーションＡ”であることを示している。また、「チャネル番号」が“１”の「ステータス」が“オープン”（有効）であり、対応する「アプリケーション名」が“−”（なし）であることを示している。
【００２６】
再び、図３の説明に戻り、拡張領域情報記憶部７２（管理情報記憶部の一例）は、例えば、ＲＡＭ７により構成された記憶部である。拡張領域情報記憶部７２は、現在、確保及び割り付けられている、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を管理する管理情報を記憶する。ここで、図６を参照して、拡張領域情報記憶部７２が記憶するデータ例について説明する。
【００２７】
図６は、本実施形態の拡張領域情報記憶部７２のデータ例を示す図である。
図６に示すように、拡張領域情報記憶部７２は、「アプリケーション名」と、「ＡＰワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張ＡＰＤＵバッファ領域」の「先頭アドレス」及び「サイズ」とを対応付けた管理情報を記憶する。ここで、「先頭アドレス」は、例えば、各領域のＲＡＭ７内の先頭の物理アドレスを示し、「サイズ」は、各領域のバイト数を示す。なお、この管理情報は、アプリケーションが新たに選択（活性化）された場合に、拡張領域情報記憶部７２に追加される。また、管理情報は、アプリケーションが解除（非活性化）された場合に、拡張領域情報記憶部７２から消去される。
【００２８】
図６に示す例では、「アプリケーション名」が“アプリケーションＡ”であり、“アプリケーションＡ”に対応する「ＡＰワーク領域」の「先頭アドレス」が、“ＸＸＸＸ”であり、「サイズ」が“２５６”バイトであることを示している。また、“アプリケーションＡ”に対応する「ＡＰワーク領域」の「先頭アドレス」が、“ＸＸＸＸ”であり、「サイズ」が“１２８”バイトであることを示している。
【００２９】
再び、図３の説明に戻り、制御部５０は、例えば、ＣＰＵ５と、ＲＡＭ７と、ＲＯＭ６又はＥＥＰＲＯＭ８とにより実現され、ＩＣカード１を統括的に制御する。制御部５０は、例えば、外部装置２からＩＣカード１に送信されたコマンド（処理要求）に応じて、各種コマンドの処理（コマンド処理）を実行する。制御部５０は、例えば、論理チャネルが新たに有効になった場合（オープンになった場合）に、当該論理チャネルに対応するチャネル情報記憶部７１の「ステータス」を変更して、論理チャネルを管理する。また、制御部５０は、例えば、論理チャネルが新たに無効になった場合（クローズになった場合）に、当該論理チャネルに対応するチャネル情報記憶部７１の「ステータス」を変更する。
【００３０】
また、制御部５０は、例えば、通信部４０が受信したコマンドによって、アプリケーションが新たに選択された場合に、新たに選択されたアプリケーションに応じて、アプリケーションに対応した一時記憶領域を確保する。すなわち、制御部５０は、新たに選択されたアプリケーションに応じて、アプリケーションワーク領域Ａ５（拡張作業領域の一例）と、拡張ＡＰＤＵバッファ領域Ａ６（拡張バッファ領域の一例）とをＲＡＭ７に確保する。ここで、アプリケーションワーク領域Ａ５は、複数のアプリケーションに共通に使用されるアプリケーション共通領域Ａ３（共通作業領域の一例）とは異なる領域である。また、拡張ＡＰＤＵバッファ領域Ａ６は、ＡＰＤＵバッファ領域Ａ４（バッファ領域の一例）と合せた領域が、ＡＰＤＵを一時記憶するバッファ領域として使用される。
【００３１】
具体的に、制御部５０は、例えば、ＳＥＬＥＣＴコマンドなどにより新たなアプリケーションが選択された場合に、ＡＰ情報記憶部８１に記憶されている当該アプリケーションに対応する「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファサイズ」を取得する。制御部５０は、取得した「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファサイズ」に基づいて、当該アプリケーションに対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を、ＲＡＭ７に確保する。なお、制御部５０は、確保したアプリケーションワーク領域Ａ５に、当該アプリケーションにおいて使用する変数を割り付ける。また、制御部５０は、拡張（確保）した拡張ＡＰＤＵバッファ領域Ａ６のサイズを含む制御情報（例えば、ＳＥＬＥＣＴコマンドのＦＣＩ（File Control Information））を、コマンドに対するレスポンスとして通信部４０に送信させる。
【００３２】
また、制御部５０は、当該アプリケーションに対応する管理情報を拡張領域情報記憶部７２に追加する。すなわち、制御部５０は、図６に示すように、「アプリケーション名」と、「ＡＰワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張ＡＰＤＵバッファ領域」の「先頭アドレス」及び「サイズ」とを対応付けた管理情報を拡張領域情報記憶部７２に記憶させる。
【００３３】
また、制御部５０は、通信部４０が受信したコマンドによって、選択されているアプリケーションが解除（非活性化）された場合に、アプリケーションの選択に応じて確保したアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。すなわち、制御部５０は、拡張領域情報記憶部７２に記憶されている管理情報のうち、当該アプリケーションに対応する管理情報を消去する。なお、制御部５０は、管理情報を消去する際に、対応する管理情報のうちの「先頭アドレス」及び「サイズ」を消去するようにしてもよいし、対応する管理情報を消去するようにしてもよい。
【００３４】
次に、図面を参照して、本実施形態によるＩＣカード１の動作について説明する。
図７は、本実施形態のＩＣカード１の動作の一例を示すフローチャートである。
図７において、まず、ＩＣカード１の制御部５０は、コマンドを受信したか否かを判定する（ステップＳ１０１）。制御部５０は、通信部４０によってコマンドが受信されたか否かを判定する。制御部５０は、コマンドを受信した場合（ステップＳ１０１：ＹＥＳ）に、処理をステップＳ１０２に進める。また、制御部５０は、コマンドを受信していない場合（ステップＳ１０１：ＮＯ）に、処理をステップＳ１０１に戻す。
【００３５】
ステップＳ１０２において、制御部５０は、アプリケーションが解除されたか否かを判定する。すなわち、制御部５０は、例えば、ＳＥＬＥＣＴコマンドなどによって、現在、選択（活性化）されているアプリケーションが解除されるか否かを判定する。制御部５０は、アプリケーションが解除された場合（ステップＳ１０２：ＹＥＳ）に、処理をステップＳ１０３に進める。また、制御部５０は、アプリケーションが解除されていない場合（ステップＳ１０２：ＮＯ）に、処理をステップＳ１０４に進める。
【００３６】
ステップＳ１０３において、制御部５０は、対応するアプリケーションワーク領域Ａ５（図７では、ＡＰワーク領域という）及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。すなわち、制御部５０は、解除されたアプリケーションに対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。具体的に、制御部５０は、拡張領域情報記憶部７２に記憶されている管理情報のうち、解除されたアプリケーションに対応する管理情報を消去して、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。
【００３７】
次に、ステップＳ１０４において、制御部５０は、アプリケーションが新たに選択されたか否かを判定する。制御部５０は、例えば、ＳＥＬＥＣＴコマンドなどによって、アプリケーションが新たに選択（活性化）されるか否かを判定する。制御部５０は、アプリケーションが新たに選択された場合（ステップＳ１０４：ＹＥＳ）に、処理をステップＳ１０５に進める。また、制御部５０は、アプリケーションが新たに選択されていない場合（ステップＳ１０４：ＮＯ）に、処理をステップＳ１０６に進める。
【００３８】
ステップＳ１０５において、制御部５０は、対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６をＲＡＭ７に確保する。すなわち、制御部５０は、新たに選択されたアプリケーションに対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６をＲＡＭ７に確保する。具体的に、制御部５０は、ＡＰ情報記憶部８１から、当該アプリケーションに対応する「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファサイズ」を取得する。制御部５０は、取得した「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファサイズ」に基づいて、当該アプリケーションに対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を、ＲＡＭ７に確保する。すなわち、制御部５０は、取得した「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファサイズ」に基づいて、当該アプリケーションに対応する管理情報を拡張領域情報記憶部７２に追加する。なお、アプリケーションにおける各種コマンド処理において、制御部５０は、例えば、拡張領域情報記憶部７２が記憶する「ＡＰワーク領域」の「先頭アドレス」を基準に、相対アドレスにより各種変数を割り付ける。
【００３９】
次に、ステップＳ１０６において、制御部５０は、受信したコマンドに応じたコマンド処理を実行する。
次に、制御部５０は、レスポンスを送信する（ステップＳ１０７）。すなわち、制御部５０は、コマンド処理の結果であるレスポンスを通信部４０に送信させる。ここで、上述したステップＳ１０５において、制御部５０が拡張ＡＰＤＵバッファ領域Ａ６を確保している場合には、制御部５０は、拡張ＡＰＤＵバッファ領域Ａ６のサイズを含む制御情報（例えば、ＦＣＩ）をレスポンスとして通信部４０に送信させる。すなわち、通信部４０は、制御部５０によって確保された拡張ＡＰＤＵバッファ領域Ａ６のサイズを含む制御情報（例えば、ＦＣＩ）を、コマンドに対するレスポンスとして、外部装置２に送信する。ステップＳ１０７の処理後に、制御部５０は、処理をステップＳ１０１に戻す。
【００４０】
次に、図８〜図９を参照して、本実施形態によるＩＣカード１の動作の具体例について説明する。
図８は、本実施形態のアプリケーションに応じて領域を確保する前の一例を示すＲＡＭ７のメモリマップ図である。
図８に示すように、アプリケーションに応じて領域を確保する前の状態において、ＲＡＭ７は、スタック使用領域Ａ１と、ＯＳ管理領域Ａ２と、アプリケーション共通領域Ａ３と、ＡＰＤＵバッファ領域Ａ４とを有している。
【００４１】
スタック使用領域Ａ１は、制御部５０による各種コマンド処理において、サブルーチンの戻り先のアドレス情報や、テンポラリ変数などを一時記憶する領域である。
ＯＳ管理領域Ａ２は、ＩＣカード１のＯＳが管理する情報を記憶させる領域である。なお、ＯＳ管理領域Ａ２は、上述したチャネル情報記憶部７１及び拡張領域情報記憶部７２を含んでいる。
【００４２】
アプリケーション共通領域Ａ３は、アプリケーションに依存しない共通に使用される変数などの情報を記憶する領域である。
ＡＰＤＵバッファ領域Ａ４は、コマンドのＡＰＤＵ、及びレスポンスのＡＰＤＵを一時記憶する領域である。なお、通信部４０は、外部装置２から受信したコマンドのＡＰＤＵをＡＰＤＵバッファ領域Ａ４に記憶させる。また、通信部４０は、ＡＰＤＵバッファ領域Ａ４に記憶されているレスポンスのＡＰＤＵを含むレスポンスを、外部装置２に送信する。
【００４３】
スタック使用領域Ａ１と、ＯＳ管理領域Ａ２と、アプリケーション共通領域Ａ３と、ＡＰＤＵバッファ領域Ａ４とは、例えば、ＲＡＭ７の先頭アドレスから順に配置されている。また、ＲＡＭ７において、例えば、ＡＰＤＵバッファ領域Ａ４以降の領域が空き領域となっている。
【００４４】
次に、図９及び図１０を参照して、アプリケーションに応じて、一時記憶領域を確保する動作例について説明する。
図９は、本実施形態の動作の一例を示すＲＡＭ７のメモリマップ図である。
図９に示す例では、“アプリケーションＡ”が選択されて、“アプリケーションＡ”に対応するアプリケーションワーク領域Ａ５１がＲＡＭ７に確保された状態を示している。なお、ここでは、“アプリケーションＡ”が、拡張ＡＰＤＵバッファ領域Ａ６の確保を必要としない場合の例を示している。制御部５０は、ＡＰ情報記憶部８１が記憶する「ＡＰワーク領域サイズ」に基づいて、アプリケーションワーク領域Ａ５１をＲＡＭ７に確保する。すなわち、アプリケーションワーク領域Ａ５１は、例えば、ＲＡＭの最終アドレスから、ＡＰ情報記憶部８１が記憶する「ＡＰワーク領域サイズ」分のバイト数が確保される。
【００４５】
なお、アプリケーションワーク領域Ａ５１は、“アプリケーションＡ”に対応するアプリケーションワーク領域であり、ＩＣカード１が備える任意のアプリケーションワーク領域を示す場合、又は特に区別しない場合には、アプリケーションワーク領域Ａ５として説明する。
【００４６】
また、図１０は、本実施形態の動作の別の一例を示すＲＡＭ７のメモリマップ図である。
図１０に示す例では、“アプリケーションＡ”が選択されて、“アプリケーションＡ”に対応するアプリケーションワーク領域Ａ５１及び拡張ＡＰＤＵバッファ領域Ａ６１がＲＡＭ７に確保された状態を示している。なお、ここでは、“アプリケーションＡ”が、アプリケーションワーク領域Ａ５と拡張ＡＰＤＵバッファ領域Ａ６との両方の確保を必要とする場合の例を示している。制御部５０は、ＡＰ情報記憶部８１が記憶する「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファ領域サイズ」に基づいて、アプリケーションワーク領域Ａ５１及び拡張ＡＰＤＵバッファ領域Ａ６１をＲＡＭ７に確保する。すなわち、アプリケーションワーク領域Ａ５１は、例えば、ＲＡＭ７の最終アドレスから、ＡＰ情報記憶部８１が記憶する「ＡＰワーク領域サイズ」分のバイト数が確保される。また、拡張ＡＰＤＵバッファ領域Ａ６１は、例えば、ＡＰＤＵバッファ領域Ａ４の後のアドレスから、ＡＰ情報記憶部８１が記憶する「拡張ＡＰＤＵバッファ領域サイズ」分のバイト数が確保される。
【００４７】
なお、拡張ＡＰＤＵバッファ領域Ａ６１は、“アプリケーションＡ”に対応する拡張ＡＰＤＵバッファ領域であり、ＩＣカード１が備える任意の拡張ＡＰＤＵバッファ領域を示す場合、又は特に区別しない場合には、拡張ＡＰＤＵバッファ領域Ａ６として説明する。
【００４８】
また、図９及び図１０に示す状態において、ＩＣカード１が“アプリケーションＡ”を解除するコマンドを受信した場合に、制御部５０は、アプリケーションワーク領域Ａ５１及び拡張ＡＰＤＵバッファ領域Ａ６１を解放して、図８に示す状態に戻す。
また、図９及び図１０に示す状態において、ＩＣカード１が、例えば、“アプリケーションＡ”から“アプリケーションＢ”に変更するコマンドを受信した場合に、制御部５０は、アプリケーションワーク領域Ａ５１及び拡張ＡＰＤＵバッファ領域Ａ６１を解放して、一旦、図８に示す状態に戻す。そして、制御部５０は、“アプリケーションＢ”に対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６をＲＡＭ７に確保する。
【００４９】
以上説明したように、ＩＣカード１は、通信部４０と、ＲＡＭ７（記憶部の一例）と、制御部５０とを備えている。通信部４０は、所定の処理を要求するコマンド（処理要求）を受信するとともに、コマンドに対するレスポンス（応答）を送信する。ＲＡＭ７は、データを一時的に記憶する記憶部であって、複数のアプリケーションに共通に使用されるアプリケーション共通領域Ａ３（共通作業領域の一例）と、外部装置２から受信するデータを記憶するＡＰＤＵバッファ領域Ａ４（バッファ領域の一例）とを少なくとも有する。制御部５０は、通信部４０により受信されたコマンドによって、アプリケーションが新たに選択された場合に、新たに選択されたアプリケーションに応じて、アプリケーションワーク領域Ａ５（拡張作業領域の一例）と、拡張ＡＰＤＵバッファ領域Ａ６（拡張バッファ領域の一例）とをＲＡＭ７に確保する。ここで、アプリケーションワーク領域Ａ５は、アプリケーション共通領域Ａ３とは異なる領域である。また、拡張ＡＰＤＵバッファ領域Ａ６は、ＡＰＤＵバッファ領域Ａ４を拡張する領域である。
【００５０】
これにより、本実施形態によるＩＣカード１は、アプリケーションに応じて、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６をＲＡＭ７に確保するので、データを一時的に記憶するＲＡＭ７を効率良く使用することができる。よって、本実施形態によるＩＣカード１は、例えば、複数のアプリケーションに柔軟に対応することができ、利便性を向上させることができる。
【００５１】
また、本実施形態では、制御部５０は、通信部４０により受信されたコマンドによって、選択されているアプリケーションが解除された場合に、アプリケーションの選択に応じて確保したアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。
これにより、本実施形態によるＩＣカード１は、アプリケーションに応じて一時的に確保したアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を柔軟に解放して、再利用することができる。よって、本実施形態によるＩＣカード１は、さらに効率良くＲＡＭ７を使用することができる。
【００５２】
また、本実施形態では、アプリケーションワーク領域Ａ５のサイズと、拡張ＡＰＤＵバッファ領域Ａ６のサイズとは、通信部４０により受信されたコマンドによって選択されたアプリケーションに対応して定められる。なお、本実施形態によるＩＣカード１は、アプリケーションワーク領域Ａ５のサイズと、拡張ＡＰＤＵバッファ領域Ａ６のサイズとを、アプリケーションごとに記憶するＡＰ情報記憶部８１を備えている。制御部５０は、通信部４０により受信されたコマンドによって選択されたアプリケーションに対応するアプリケーションワーク領域Ａ５のサイズ及び拡張ＡＰＤＵバッファ領域Ａ６のサイズを、ＡＰ情報記憶部８１から取得する。制御部５０は、取得したアプリケーションワーク領域Ａ５のサイズ、及び拡張ＡＰＤＵバッファ領域Ａ６のサイズに基づいて、アプリケーションワーク領域Ａ５と、拡張ＡＰＤＵバッファ領域Ａ６とをＲＡＭ７に確保する。
これにより、本実施形態によるＩＣカード１は、確保するアプリケーションワーク領域Ａ５のサイズ及び拡張ＡＰＤＵバッファ領域Ａ６のサイズを、アプリケーションに応じて変更することができる。
【００５３】
また、本実施形態では、通信部４０は、制御部５０によって確保された拡張ＡＰＤＵバッファ領域Ａ６を含む制御情報（例えば、ＦＣＩ）を、コマンドに対するレスポンスとして外部装置２に送信する。
これにより、本実施形態によるＩＣカード１は、外部装置２に、拡張されたＡＰＤＵバッファのサイズを認識させることができる。外部装置２は、拡張されたＡＰＤＵバッファのサイズに応じて、例えば、一度にＩＣカード１に送信するデータサイズを決定し、コマンドを効率良くＩＣカード１に送信することができる。
【００５４】
また、本実施形態によるＩＣカード１は、アプリケーションワーク領域Ａ５の先頭アドレス及びサイズと、拡張ＡＰＤＵバッファ領域Ａ６の先頭アドレス及びサイズとを含む管理情報を、アプリケーションごとに記憶する拡張領域情報記憶部７２（管理情報記憶部の一例）を備えている。
これにより、本実施形態によるＩＣカード１は、拡張領域情報記憶部７２が記憶する管理情報に基づいて、確保したアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を有効に使用することができる。
【００５５】
（第２の実施形態）
次に、図面を参照して、第２の実施形態のＩＣカードについて説明する。
図１１は、本実施形態のＩＣカード１ａの機能構成例を示すブロック図である。
なお、本実施形態のＩＣカード１ａの外観図及びハード構成は、図１及び図２に示す第１の実施形態と同様であるのでその説明を省略する。また、図１１において、図８に示す構成と同一の構成については同一の符号を付し、その説明を省略する。
【００５６】
図１１に示すように、ＩＣカード１ａは、通信部４０と、制御部５０ａと、ＡＰ情報記憶部８１と、チャネル情報記憶部７１ａとを備えている。
本実施形態では、論理チャネルに応じて一時記憶領域を確保する点と、チャネル情報記憶部７１ａが、管理情報記憶部である拡張領域情報記憶部７２を兼ねる点が、第１の実施形態と異なる。
【００５７】
チャネル情報記憶部７１ａ（管理情報記憶部の一例）は、例えば、ＲＡＭ７により構成された記憶部である。チャネル情報記憶部７１ａは、図１２に示すように、「チャネル番号」と、「ステータス」と、「アプリケーション名」と、「ＡＰワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張ＡＰＤＵバッファ領域」の「先頭アドレス」及び「サイズ」とを対応付けた管理情報を記憶する。
図１２は、本実施形態のチャネル情報記憶部７１ａのデータ例を示す図である。
図１２に示すように、本実施形態のチャネル情報記憶部７１ａは、第１の実施形態のチャネル情報記憶部７１に、図６の示す拡張領域情報記憶部７２が記憶する情報を含めるようにしたものである。
【００５８】
図１１の説明に戻り、制御部５０ａは、例えば、ＣＰＵ５と、ＲＡＭ７と、ＲＯＭ６又はＥＥＰＲＯＭ８とにより実現され、ＩＣカード１ａを統括的に制御する。制御部５０ａは、基本的な機能は第１の実施形態と同様であるが、上述したように、論理チャネルに応じて一時記憶領域を確保する点が第１の実施形態と異なる。
制御部５０ａは、例えば、通信部４０が受信したコマンドによって、論理チャネルが新たに有効（オープン）にされた場合に、有効にされた論理チャネルに対応した、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を、ＲＡＭ７に確保する。
【００５９】
具体的に、制御部５０ａは、例えば、コマンドにより論理チャネルが新たに有効（オープン）にされた場合に、チャネル情報記憶部７１ａの当該論理チャネルに対応する「ステータス」を“オープン”に変更する。なお、チャネル情報記憶部７１ａの「アプリケーション名」には、論理チャネルにより選択されているファイルに対応する「アプリケーション名」が記憶されているものとする。
【００６０】
制御部５０ａは、チャネル情報記憶部７１ａから対応する「アプリケーション名」を取得し、さらに、取得した「アプリケーション名」に対応する「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファサイズ」をＡＰ情報記憶部８１から取得する。制御部５０ａは、取得した「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファサイズ」に基づいて、論理チャネル（論理チャネルに対応したアプリケーション）に応じた、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を、ＲＡＭ７に確保する。また、制御部５０ａは、当該論理チャネルに対応する「ＡＰワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張ＡＰＤＵバッファ領域」の「先頭アドレス」及び「サイズ」とを、図１２に示すように、チャネル情報記憶部７１ａに記憶させる。
【００６１】
また、制御部５０ａは、通信部４０が受信した処理要求によって、有効にされた論理チャネルが無効にされた場合に、無効（クローズ）にされた論理チャネルに対応して確保されたアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。制御部５０ａは、例えば、チャネル情報記憶部７１ａの当該論理チャネルに対応する「ステータス」を“クローズ”に変更する。また、制御部５０ａは、チャネル情報記憶部７１ａの当該論理チャネルに対応する「ＡＰワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張ＡＰＤＵバッファ領域」の「先頭アドレス」及び「サイズ」とを消去する。これにより、制御部５０ａは、当該論理チャネルに対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。
【００６２】
次に、図１３を参照して、本実施形態によるＩＣカード１ａの動作について説明する。
図１３は、本実施形態のＩＣカード１ａの動作の一例を示すフローチャートである。
図１３において、まず、ＩＣカード１ａの制御部５０ａは、コマンドを受信したか否かを判定する（ステップＳ２０１）。制御部５０ａは、通信部４０によってコマンドが受信されたか否かを判定する。制御部５０ａは、コマンドを受信した場合（ステップＳ２０１：ＹＥＳ）に、処理をステップＳ２０２に進める。また、制御部５０ａは、コマンドを受信していない場合（ステップＳ２０１：ＮＯ）に、処理をステップＳ２０１に戻す。
【００６３】
ステップＳ２０２において、制御部５０ａは、論理チャネルが無効にされたか否かを判定する。すなわち、制御部５０ａは、例えば、コマンドによって、現在、有効（オープン）にされている論理チャネルが無効（クローズ）にされるか否かを判定する。制御部５０ａは、論理チャネルが無効にされた場合（ステップＳ２０２：ＹＥＳ）に、処理をステップＳ２０３に進める。また、制御部５０ａは、論理チャネルが無効にされていない場合（ステップＳ２０２：ＮＯ）に、処理をステップＳ２０４に進める。
【００６４】
ステップＳ２０３において、制御部５０ａは、対応するアプリケーションワーク領域Ａ５（図１３では、ＡＰワーク領域という）及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。すなわち、制御部５０ａは、無効にされた論理チャネルに対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。具体的に、制御部５０ａは、チャネル情報記憶部７１ａに記憶されている管理情報のうち、無効にされた論理チャネルに対応する管理情報を消去して、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。なお、ここでの管理情報は、「ＡＰワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張ＡＰＤＵバッファ領域」の「先頭アドレス」及び「サイズ」とである。
【００６５】
次に、ステップＳ２０４において、制御部５０ａは、論理チャネルが新たに有効にされたか否かを判定する。制御部５０aは、例えば、コマンドによって、論理チャネルが新たに有効（オープン）にされるか否かを判定する。制御部５０ａは、論理チャネルが新たに有効にされた場合（ステップＳ２０４：ＹＥＳ）に、処理をステップＳ２０５に進める。また、制御部５０ａは、論理チャネルが新たに有効にされていない場合（ステップＳ２０４：ＮＯ）に、処理をステップＳ２０６に進める。
【００６６】
ステップＳ２０５において、制御部５０ａは、対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６をＲＡＭ７に確保する。すなわち、制御部５０aは、新たに有効にされた論理チャネルに対応するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６をＲＡＭ７に確保する。具体的に、制御部５０ａは、例えば、コマンドにより論理チャネルが新たに有効（オープン）にされた場合に、チャネル情報記憶部７１ａの当該論理チャネルに対応する「ステータス」を“オープン”に変更する。
【００６７】
また、制御部５０ａは、チャネル情報記憶部７１ａから対応する「アプリケーション名」を取得し、さらに、取得した「アプリケーション名」に対応する「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファサイズ」をＡＰ情報記憶部８１から取得する。制御部５０ａは、取得した「ＡＰワーク領域サイズ」及び「拡張ＡＰＤＵバッファサイズ」に基づいて、論理チャネル（論理チャネルに対応したアプリケーション）に応じた、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を、ＲＡＭ７に確保する。また、制御部５０ａは、当該論理チャネルに対応する「ＡＰワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張ＡＰＤＵバッファ領域」の「先頭アドレス」及び「サイズ」とを、チャネル情報記憶部７１ａに記憶させる。
【００６８】
続く、ステップＳ２０６及びステップＳ２０７の処理は、図７に示すステップＳ１０６及びステップＳ１０７の処理と同様であるので、ここではその説明を省略する。ステップＳ２０７の処理後に、制御部５０ａは、処理をステップＳ２０１に戻す。
【００６９】
次に、図１４を参照して、ＩＣカード１ａが、アプリケーションに応じて、一時記憶領域を確保する動作例について説明する。
図１４は、本実施形態の動作の一例を示すＲＡＭ７のメモリマップ図である。
図１４に示す例では、“論理チャネル０”（図１４では、チャネル０という）により“アプリケーションＡ”が選択され、“論理チャネル１”（図１４では、チャネル１という）により“アプリケーションＢ”が選択されている状態を示している。
【００７０】
この場合、図１４に示すように、制御部５０ａは、“チャネル０”に応じて、“アプリケーションＡ”に対応するアプリケーションワーク領域Ａ５２及び拡張ＡＰＤＵバッファ領域Ａ６２をＲＡＭ７に確保する。また、制御部５０ａは、“チャネル１”に応じて、“アプリケーションＢ”に対応するアプリケーションワーク領域Ａ５３及び拡張ＡＰＤＵバッファ領域Ａ６３をＲＡＭ７に確保する。
【００７１】
次に、図１５〜図１７を参照して、ＩＣカード１ａが、論理チャネルが変更された場合の動作について説明する。
図１５は、本実施形態の論理チャネルを変更する動作の一例を示すＲＡＭ７のメモリマップ図である。
図１５に示す例では、図１４に示す状態から、“アプリケーションＡ”が選択された“論理チャネル０”が無効にされ、さらに、“論理チャネル０”により、“アプリケーションＣ”が選択された状態を示している。
【００７２】
この場合、図１５に示すように、制御部５０ａは、まず、“チャネル０”及び“アプリケーションＡ”に対応するアプリケーションワーク領域Ａ５２及び拡張ＡＰＤＵバッファ領域Ａ６２を解放する。これにより、ＲＡＭ７は、空き領域ＥＡ１及び空き領域ＥＡ２を有する状態になる。次に、制御部５０ａは、“チャネル０”に応じて、“アプリケーションＣ”に対応するアプリケーションワーク領域Ａ５４及び拡張ＡＰＤＵバッファ領域Ａ６４をＲＡＭ７に新たに確保する。
【００７３】
また、図１６は、本実施形態の論理チャネルを変更する動作の第１の変形例を示すＲＡＭ７のメモリマップ図である。
図１６に示す例では、図１４に示す状態から、“アプリケーションＡ”が選択された“論理チャネル０”が無効にされ、さらに、“論理チャネル０”により、“アプリケーションＣ”が選択された状態の別の一例を示している。
【００７４】
図１６に示す例では、制御部５０ａは、アプリケーションワーク領域Ａ５２及び拡張ＡＰＤＵバッファ領域Ａ６２を解放した空き領域に、新たに確保する一時記憶領域が確保可能な場合に、当該空き領域に、一時記憶領域を確保する。すなわち、制御部５０ａは、“チャネル０”に応じて、図１５に示すように、“アプリケーションＣ”に対応するアプリケーションワーク領域Ａ５５及び拡張ＡＰＤＵバッファ領域Ａ６５をＲＡＭ７に新たに確保する。これにより、ＲＡＭ７は、空き領域ＥＡ３及び空き領域ＥＡ４を有する状態になる。
【００７５】
このように、図１６に示す例では、制御部５０ａは、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を確保する際に、過去の解放により発生した空き領域に確保できるか否かを判定する。制御部５０ａは、過去の解放により発生した空き領域に確保できる場合に、当該空き領域に、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を確保する。また、制御部５０ａは、過去の解放により発生した空き領域に確保できない場合に、ＲＡＭ７の新たな空き領域に、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を確保する。これにより、ＩＣカード１ａは、さらにＲＡＭ７を有効に使用することができる。
【００７６】
また、図１７は、本実施形態の論理チャネルを変更する動作の第２の変形例を示すＲＡＭ７のメモリマップ図である。
図１７に示す例では、図１４に示す状態から、“アプリケーションＡ”が選択された“論理チャネル０”が無効にされ、さらに、“論理チャネル０”により、“アプリケーションＣ”が選択された状態の別の一例を示している。
【００７７】
図１７に示す例では、制御部５０ａは、アプリケーションワーク領域Ａ５２及び拡張ＡＰＤＵバッファ領域Ａ６２を解放した空き領域を、アプリケーションワーク領域Ａ５２及び拡張ＡＰＤＵバッファ領域Ａ６２の移動により削除する。すなわち、制御部５０ａは、領域の移動により、図１７に示すアプリケーションワーク領域Ａ５６及び拡張ＡＰＤＵバッファ領域Ａ６６を確保する。また、制御部５０ａは、“チャネル０”に応じて、図１７に示すように、“アプリケーションＣ”に対応するアプリケーションワーク領域Ａ５７及び拡張ＡＰＤＵバッファ領域Ａ６７をＲＡＭ７に確保する。
【００７８】
このように、図１７に示す例では、制御部５０ａは、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を確保する際に、過去の解放により発生した空き領域に確保できるか否かを判定する。制御部５０ａは、過去の解放により発生した空き領域が削除されるように、既に存在するアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を移動して、空き領域を連続した空き領域を生成する。そして、制御部５０ａは、論理チャネルが新たに有効になった場合に、当該連続した空き領域に、新たに有効になった論理チャネルに応じたアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を確保する。これにより、ＩＣカード１ａは、さらにＲＡＭ７を有効に使用することができる。
【００７９】
なお、上述した本実施形態では、複数の拡張ＡＰＤＵバッファ領域Ａ６を確保する場合に、個別の領域としてＲＡＭ７に確保する例を説明したが、複数のアプリケーションの間で領域が重複するように確保してもよい。すなわち、制御部５０ａは、複数の拡張ＡＰＤＵバッファ領域Ａ６を確保する場合に、図１８に示すように、複数のアプリケーションの間で領域が重複するように、拡張ＡＰＤＵバッファ領域Ａ６を確保するようにしてもよい。
【００８０】
図１８は、本実施形態の動作の別の一例を示すＲＡＭ７のメモリマップ図である。
図１８に示す例では、“アプリケーションＢ”に対応する拡張ＡＰＤＵバッファ領域Ａ６３のサイズが、“アプリケーションＡ”に対応する拡張ＡＰＤＵバッファ領域Ａ６２のサイズより大きい場合の一例を示している。この場合、制御部５０ａは、“アプリケーションＡ”に対応する拡張ＡＰＤＵバッファ領域Ａ６２を“アプリケーションＢ”に対応する拡張ＡＰＤＵバッファ領域Ａ６３と重複して領域を確保する。また、制御部５０ａは、“アプリケーションＢ”に対応する拡張ＡＰＤＵバッファ領域Ａ６３を確保する場合に、“アプリケーションＡ”に対応する拡張ＡＰＤＵバッファ領域Ａ６２との差分のサイズ分の領域を新たに確保する。
【００８１】
なお、ＩＣカード１ａは、コマンドの受信に対して、レスポンスを送信する。すなわち、ＡＰＤＵバッファ領域Ａ４及び拡張ＡＰＤＵバッファ領域Ａ６は、異なるアプリケーションにおいても、コマンドＡＰＤＵとレスポンスＡＰＤＵとの組により使用される。そのため、ＡＰＤＵバッファ領域Ａ４及び拡張ＡＰＤＵバッファ領域Ａ６に記憶されるデータは、１回のコマンド処理ごとに破棄しても問題ないデータである。よって、ＡＰＤＵバッファ領域Ａ４及び拡張ＡＰＤＵバッファ領域Ａ６が、異なるアプリケーションにおいて、重複して使用されても問題なく使用可能である。
【００８２】
以上説明したように、本実施形態では、制御部５０ａは、通信部４０により受信されたコマンドによって、論理チャネルが新たに有効（オープン）にされた場合に、有効にされた論理チャネルに対応した、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を、ＲＡＭ７に確保する。
これにより、本実施形態によるＩＣカード１ａは、論理チャネルに応じて、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６をＲＡＭ７に確保するので、データを一時的に記憶するＲＡＭ７を効率良く使用することができる。よって、本実施形態によるＩＣカード１ａは、例えば、複数の論理チャネル（及びアプリケーション）に柔軟に対応することができ、利便性を向上させることができる。
【００８３】
また、本実施形態では、制御部５０ａは、通信部４０により受信されたコマンドによって、有効にされた論理チャネルが無効にされた場合に、無効にされた論理チャネルに対応して確保されたアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を解放する。
これにより、本実施形態によるＩＣカード１ａは、論理チャネル（及びアプリケーション）に応じて一時的に確保したアプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６を柔軟に解放して、再利用することができる。よって、本実施形態によるＩＣカード１ａは、さらに効率良くＲＡＭ７を使用することができる。
【００８４】
また、本実施形態では、制御部５０ａは、複数の拡張ＡＰＤＵバッファ領域Ａ６を確保する場合に、複数のアプリケーションの間で領域が重複するように、拡張ＡＰＤＵバッファ領域Ａ６を確保する。
これにより、本実施形態によるＩＣカード１ａは、ＡＰＤＵバッファ領域Ａ４と、拡張ＡＰＤＵバッファ領域Ａ６とを連続した領域として確保することができる。よって、本実施形態によるＩＣカード１ａは、外部装置２との通信において、さらに効率良くＲＡＭ７を使用することができる。
【００８５】
上記の各実施形態は、単独で実施される例を説明したが、各実施形態の全部又は一部を組み合わせて実施してもよい。
また、上記の各実施形態において、ＩＣカード１（１ａ）は、書き換え可能な不揮発性メモリとして、ＥＥＰＲＯＭ８を備える構成としたが、これに限定されるものではない。例えば、ＩＣカード１（１ａ）は、ＥＥＰＲＯＭ８の代わりに、フラッシュＥＥＰＲＯＭ、ＦｅＲＡＭ（Ferroelectric Random Access Memory：強誘電体メモリ）などを備えてもよい。
【００８６】
また、上記の各実施形態において、ＩＣカード１（１ａ）は、コンタクト部３を介して外部装置２と通信する例を説明したが、コイルなどを用いたコンタクトレスインターフェースを介して外部装置２と通信するように構成してもよい。
また、上記の各実施形態において、携帯可能電子装置の一例として、ＩＣカード１（１ａ）を用いる例を説明したが、これに限定されるものではない。携帯可能電子装置は、例えば、カード形状ではないＩＣタグなどの電子装置であってもよい。
【００８７】
また、上記の各実施形態において、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６をＲＡＭ７に確保する例を説明したが、アプリケーションワーク領域Ａ５及び拡張ＡＰＤＵバッファ領域Ａ６の一部をＥＥＰＲＯＭ８などの書き換え可能な不揮発性メモリに確保するようにしてもよい。
また、上記の各実施形態において、ＡＰ情報記憶部８１をＥＥＰＲＯＭ８により構成する例を説明したが、これに限定されるものではなく、ＥＥＰＲＯＭ８の代わりに、ＲＯＭ６により構成するようにしてもよい。
【００８８】
また、上記の各実施形態において、各アプリケーションのワーク領域における各種変数を、物理アドレスによる先頭アドレスを基準に、相対アドレスにより割り付ける例を説明したがこれに限定されるものではない。例えば、ＯＳ管理領域Ａ２が、各種変数の論理アドレスと、物理アドレスとの変換テーブルを記憶し、各種変数を論理アドレスにより割り付けて、変換テーブルを利用して各種変数にアクセスするようにしてもよい。
【００８９】
また、上記の各実施形態において、拡張領域情報記憶部７２及びチャネル情報記憶部７１ａが記憶する管理情報には、確保した領域の先頭アドレス及びサイズを含む例を説明すしたが、これに限定されるものではない。管理情報には、例えば、次に確保可能な領域の先頭アドレスをポインタとして含むようにしてもよいし、他の管理情報により、確保した領域を管理するようにしてもよい。
【００９０】
以上説明した少なくともひとつの実施形態によれば、外部装置２からコマンドを受信するとともに、コマンドに対するレスポンスを外部装置２に送信する通信部４０と、複数のアプリケーションに共通に使用されるアプリケーション共通領域Ａ３と、外部装置２から通信部４０によって受信したデータを記憶するＡＰＤＵバッファ領域Ａ４とを少なくとも有するＲＡＭ７と、通信部４０により受信されたコマンドによって、アプリケーションが新たに選択された場合に、新たに選択されたアプリケーションに応じて、アプリケーション共通領域Ａ３とは異なるアプリケーションワーク領域Ａ５と、ＡＰＤＵバッファ領域Ａ４を拡張する拡張バッファ領域とをＲＡＭ７に確保する制御部５０とを持つことにより、ＲＡＭ７を効率良く使用することができる。
【００９１】
上記実施形態は、以下のように表現することができる。
コンタクト部又はコイルを介して外部装置から処理要求を受信するとともに、前記処理要求に対する応答を、前記コンタクト部又は前記コイルを介して前記外部装置に送信する通信部と、
複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する記憶部と、
前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する制御部と
を備える携帯可能電子装置。
【００９２】
なお、実施形態におけるＩＣカード１（１ａ）が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したＩＣカード１（１ａ）が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００９３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００９４】
１，１ａ…ＩＣカード、２…外部装置、３…コンタクト部、４…ＵＡＲＴ、５…ＣＰＵ、６…ＲＯＭ、７…ＲＡＭ、８…ＥＥＰＲＯＭ、１０…ＩＣモジュール、４０…通信部、５０，５０ａ…制御部、７１，７１ａ…チャネル情報記憶部、７２…拡張領域情報記憶部、８１…ＡＰ情報記憶部、１００…ＩＣチップ、ＰＴ…カード基材、ＢＳ１…内部バス
【図１】
2016212779.tif 000003
【図２】
2016212779.tif 000004
【図３】
2016212779.tif 000005
【図４】
2016212779.tif 000006
【図５】
2016212779.tif 000007
【図６】
2016212779.tif 000008
【図７】
2016212779.tif 000009
【図８】
2016212779.tif 000010
【図９】
2016212779.tif 000011
【図１０】
2016212779.tif 000012
【図１１】
2016212779.tif 000013
【図１２】
2016212779.tif 000014
【図１３】
2016212779.tif 000015
【図１４】
2016212779.tif 000016
【図１５】
2016212779.tif 000017
【図１６】
2016212779.tif 000018
【図１７】
2016212779.tif 000019
【図１８】
2016212779.tif 000020