(57)【要約】【課題】複数の処理を効率的に実行して処理の円滑化及び迅速化を図るとともに、応答制限時間の超過を防止するなど、レスポンス応答性の向上を図ることが可能なＩＣカード用ＩＣチップ、ＩＣカード及びＩＣカード用プログラムを提供する。【解決手段】ＩＣカードのＣＰＵに、リーダライタターミナルから複数の命令を受信した場合に、実行している処理を中断する処理中断手順（Ｓ１５０）と、リーダライタターミナルから受信したコマンドに対応するタスク（ＡＰＰ）の優先度、中断手順において中断された処理の優先度に基づいて、いずれの処理を実行するかを選択する実行処理選択手順（Ｓ１２０）と、処理中断手順において中断した処理を選択した場合に、この中断した処理を再開する処理再開手順（Ｓ１３０）とを実行させる。【選択図】図４
2006127361.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理のうちのいずれを実行するかを、各処理の優先度に基づいて選択する実行処理選択手段と、
前記実行処理選択手段によって選択された処理を実行する処理実行手段と
を備えるＩＣカード用ＩＣチップ。
【請求項２】
請求項１に記載のＩＣカード用ＩＣチップにおいて、
各処理の優先度を記憶する実行処理優先度記憶手段を備え、
前記実行処理選択手段は、前記処理優先度記憶手段によって記憶されている処理の優先度に基づいて選択を行うこと、
を特徴とするＩＣカード用ＩＣチップ。
【請求項３】
請求項１又は請求項２に記載のＩＣカード用ＩＣチップにおいて、
外部から命令を入力する命令入力手段と、
前記実行処理選択手段は、前記命令入力手段によって複数の命令が入力された場合に、各命令に対応する各処理の優先度に基づいて選択を行うこと、
を特徴とするＩＣカード用ＩＣチップ。
【請求項４】
請求項３に記載のＩＣカード用ＩＣチップにおいて、
外部から前記命令入力手段によって入力される命令に対応する処理の優先度を入力する優先度入力手段を備え、
前記実行処理選択手段は、前記優先度入力手段によって入力された前記優先度に基づいて選択を行うこと、
を特徴とするＩＣカード用ＩＣチップ。
【請求項５】
請求項３又は請求項４に記載のＩＣカード用ＩＣチップにおいて、
前記命令入力手段は、複数のインターフェイスを有し、
前記実行処理選択手段は、複数のインターフェイスによってそれぞれ入力された命令に対応する複数の処理のうちのいずれを実行するかを選択すること、
を特徴とするＩＣカード用ＩＣチップ。
【請求項６】
請求項２から請求項５までのいずれか１項に記載のＩＣカード用チップにおいて、
前記実行処理優先度記憶手段は、前記命令入力手段によって入力された命令を解析する処理を、外部装置から受信する命令に対応した処理よりも高い優先度の処理として記憶すること、
を特徴とするＩＣカード用ＩＣチップ。
【請求項７】
請求項６に記載のＩＣカード用チップにおいて、
前記命令入力手段によって命令を入力した場合に、実行している処理を中断する処理中断手段と、
前記処理手段は、前記処理中断手段によって処理が中断された場合に、前記命令入力手段によって入力された命令に対応する処理の優先度を解析し、
前記実行処理選択手段は、前記処理実行手段によって解析された前記命令に対応する処理の優先度、前記中断手段によって中断された処理の優先度に基づいて、いずれの処理を実行するかを選択し、
前記処理手段は、前記実行処理選択手段によって前記中断された処理が選択された場合に、この中断された処理を再開すること、
を特徴とするＩＣカード用ＩＣチップ。
【請求項８】
請求項２から請求項７までのいずれか１項に記載のＩＣカード用チップにおいて、
前記実行処理選択手段は、スリープモードへのモード変更処理を最低優先度の処理として、選択を行うこと、
を特徴とするＩＣカード用ＩＣチップ。
【請求項９】
請求項２から請求項８までのいずれか１項に記載のＩＣカード用チップにおいて、
前記処理手段は、前記実行処理優先度記憶手段に記憶されている各処理の優先度を、前記命令入力手段によって入力された命令に応じて書き換える書き換え手段を備えること、
を特徴とするＩＣカード用ＩＣチップ。
【請求項１０】
請求項１から請求項９までのいずれか１項に記載のＩＣカード用チップにおいて、
前記処理実行手段は、前記実行処理選択手段によって優先度が同一の複数の処理が選択された場合に、時分割で並行して前記複数の処理を実行すること、
を特徴とするＩＣカード用ＩＣチップ。
【請求項１１】
請求項１から請求項１０までのいずれか１項に記載のＩＣカード用ＩＣチップにおいて、
前記処理手段が周辺回路を起動する場合に、この周辺回路の動作による消費電力の予測値である予測消費電力を取得する予測消費電力取得手段と、
前記予測消費電力取得手段によって取得された予測消費電力に基づいて、前記周辺回路を起動すべきか否かを判定する電力判定手段とを備え、
前記処理手段は、前記電力判定手段が肯と判定した場合に、前記周辺回路を起動すること、
を特徴とするＩＣカード用ＩＣチップ。
【請求項１２】
請求項１から請求項１１までのいずれか１項に記載のＩＣカード用ＩＣチップにおいて、
前記処理手段が一の処理を実行し、周辺回路が起動される場合に、この周辺回路が動作中であるか否かを判定する周辺回路動作状況判定手段と、
前記周辺回路動作状況判定手段によって肯と判定された場合に、前記処理手段が前記一の処理において周辺回路の起動待ちの状態であることを示す起動待ち情報を記憶する起動待ち情報記憶手段とを備えること、
を特徴とするＩＣカード用ＩＣチップ。
【請求項１３】
複数の処理を時分割で並行して実行する処理手段を備えるＩＣカード用ＩＣチップ。
【請求項１４】
請求項１から請求項１３までのいずれか１項に記載のＩＣカード用ＩＣチップと、
ＩＣカード基体と
を備えるＩＣカード。
【請求項１５】
ＩＣカード用ＩＣチップのＣＰＵに実行させるＩＣカード用プログラムであって、
複数の処理のうちのいずれを実行するかを、各処理の優先度に基づいて選択する実行処理選択手順と、
前記実行処理選択手順において選択した処理を実行する処理実行手順とを備えること、
を特徴とするＩＣカード用プログラム。
【請求項１６】
請求項１５に記載のＩＣカード用プログラムにおいて、
前記実行処理選択手順は、外部装置から複数の命令を受信した場合に、各命令に対応する各処理の優先度に基づいて選択を行うこと、
を特徴とするＩＣカード用プログラム。
【請求項１７】
請求項１５又は請求項１６に記載のＩＣカード用プログラムにおいて、
前記実行処理選択手順は、予め記憶されている各処理の優先度、又は、外部装置から指定された各処理の優先度に基づいて選択を行うこと、
を特徴とするＩＣカード用プログラム。
【請求項１８】
請求項１５から請求項１７までのいずれか１項に記載のＩＣカード用プログラムにおいて、
前記実行処理選択手順は、複数のインターフェイスによってそれぞれ入力された命令に対応する複数の処理のうちのいずれを実行するかを選択すること、
を特徴とするＩＣカード用プログラム。
【請求項１９】
請求項１５から請求項１８までのいずれか１項に記載のＩＣカード用プログラムにおいて、
外部装置から命令を受信した場合に、実行している処理を中断する処理中断手順と、
前記実行処理選択手順は、前記外部装置から受信した命令に対応する処理の優先度、前記中断手順において中断した処理の優先度に基づいて、いずれの処理を実行するかを選択し、
前記処理手順は、前記実行処理選択手順において前記中断した処理を選択した場合に、この中断した処理を再開すること、
を特徴とするＩＣカード用プログラム。
【請求項２０】
請求項１５から請求項１９までのいずれか１項に記載のＩＣカード用プログラムにおいて、
前記実行処理選択手順は、スリープモードへのモード変更処理を最低優先度の処理として、選択を行うこと、
を特徴とするＩＣカード用プログラム。
【請求項２１】
請求項１５から請求項２０までのいずれか１項に記載のＩＣカード用プログラムにおいて、
前記処理実行手順は、前記実行処理選択手順において優先度が同一の複数の処理を選択し場合に、時分割で並行して前記複数の処理を実行すること、
を特徴とするＩＣカード用プログラム。
【請求項２２】
請求項１５から請求項２１までのいずれか１項に記載のＩＣカード用プログラムにおいて、
前記処理手順において周辺回路を起動する場合に、この周辺回路の動作による消費電力の予測値である予測消費電力を取得する予測消費電力取得手順と、
前記予測消費電力取得手順において取得した予測消費電力に基づいて、前記周辺回路を起動すべきか否かを判定する電力判定手順とを備え、
前記処理手順は、前記電力判定手順が肯と判定した場合に、前記周辺回路を起動すること、
を特徴とするＩＣカード用プログラム。
【請求項２３】
請求項１５から請求項２２までのいずれか１項に記載のＩＣカード用プログラムにおいて、
前記処理手順において一の処理を実行し、周辺回路を起動する場合に、この周辺回路が動作中であるか否かを判定する周辺回路動作状況判定手順と、
前記周辺回路動作状況判定手順が肯と判定した場合に、前記処理手順が前記一の処理の実行において周辺回路の起動待ちの状態であることを示す起動待ち情報を記憶する起動待ち情報記憶手順とを備えること、
を特徴とするＩＣカード用プログラム。
【請求項２４】
ＩＣカード用ＩＣチップのＣＰＵに実行させるＩＣカード用プログラムであって、
複数の処理を時分割で並行して実行する処理手順を備えること、
を特徴とするＩＣカード用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードに搭載するためのＩＣカード用ＩＣチップ、ＩＣカード及びＩＣカード用ＩＣチップのＣＰＵに実行させるＩＣカード用プログラムに関するものである。
【背景技術】
【０００２】
従来のＩＣカードのＯＳは、リーダライタターミナルから１つのコマンドを受信し、そのレスポンスを応答するまでの間（コマンド処理中）は、他のコマンドを割込んで受信して処理することができなかった。つまり、複数のコマンド処理を行う場合には、１つのコマンドについての処理結果をレスポンスとして送信してから次のコマンドを受信してコマンド処理を行っていた。
一方、複数のアプリケーションの搭載、アプリケーションの追加搭載及び削除が可能である、いわゆるマルチアプリケーションＩＣカードが開発、利用されている。
また、ＩＣチップと、この一つのＩＣチップに接続された接触インターフェイスと、非接触インターフェイスを備え、一つのＩＣチップを複数のインターフェイスで共有する、いわゆるデュアルインターフェイスのＩＣカードが登場し、電話用アプリケーション、ゲート用アプリケーションなどの複数のアプリケーションを搭載したデュアルインターフェイスのＩＣカードも登場している（例えば、特許文献１参照。）。
更に、全二重に対応したインターフェイスを備え、同時に送信及び受信を行うことができるハードウェアを備える接触式ＩＣカードも登場している。
【特許文献１】特開２００３−２２３６１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、全二重に対応したインターフェイスを備えるマルチアプリケーションＩＣカードであっても、ＩＣカードのオペレーティングシステム（以下、「ＯＳ」という。）は、リーダライタターミナルから１つのコマンドを受信した場合には、そのレスポンスを送信した後に次のコマンドを受信するため、たとえ時間的に緊急度の高いコマンドであっても、現在行っている処理が終了した後に行うといった排他制御となるため、結果そのコマンドに対する応答が遅れ、応答時間が応答制限時間を超過してしまう可能性があった。
【０００４】
従って、電話用アプリケーション、ゲート用アプリケーションなどの複数のアプリケーションを搭載し、携帯電話に装着するデュアルインターフェイスのＩＣカードについて、電話アプリケーションを実行している場合に、ゲートを通過できないという問題があった。
この問題を所持者の意思によってデュアルインターフェイスのＩＣカードの通信方式を選択することによって解決する非接触／接触両用ＩＣカード制御装置がある（前述の特許文献１参照。）。
しかし、いずれのインターフェイスを使用するかをユーザが切り替えなくてはならないため、ユーザに負担がかかるおそれがあった。また、選択された通信方式への切り替えをＩＣカード自体が行うものではないため、カード単体では、上記問題を解決することができないおそれがあった。
【０００５】
本発明の課題は、複数の処理を効率的に実行して処理の円滑化及び迅速化を図るとともに、応答制限時間の超過を防止するなど、レスポンス応答性の向上を図ることが可能なＩＣカード用ＩＣチップ、ＩＣカード及びＩＣカード用プログラムを提供することである。
【課題を解決するための手段】
【０００６】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施例に対応する符号を付して説明するが、これに限定されるものではない。すなわち、請求項１の発明は、複数の処理のうちのいずれを実行するかを、各処理の優先度に基づいて選択する実行処理選択手段（１７，１７−２、Ｓ１２０）と、前記実行処理選択手段によって選択された処理を実行する処理実行手段（１７，１７−２、Ｓ１３０）とを備えるＩＣカード用ＩＣチップ（１１，１１−２）である。
【０００７】
請求項２の発明は、請求項１に記載のＩＣカード用ＩＣチップにおいて、各処理の優先度を記憶する実行処理優先度記憶手段（１４，１６）を備え、前記実行処理選択手段は、前記処理優先度記憶手段によって記憶されている処理の優先度に基づいて選択を行うこと、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【０００８】
請求項３の発明は、請求項１又は請求項２に記載のＩＣカード用ＩＣチップにおいて、外部から命令を入力する命令入力手段（１３）と、前記実行処理選択手段は、前記命令入力手段によって複数の命令が入力された場合に、各命令に対応する各処理の優先度に基づいて選択を行うこと、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【０００９】
請求項４の発明は、請求項３に記載のＩＣカード用ＩＣチップにおいて、外部から前記命令入力手段によって入力される命令に対応する処理の優先度を入力する優先度入力手段（１３）を備え、前記実行処理選択手段は、前記優先度入力手段によって入力された前記優先度に基づいて選択を行うこと、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【００１０】
請求項５の発明は、請求項３又は請求項４に記載のＩＣカード用ＩＣチップにおいて、前記命令入力手段は、複数のインターフェイスを有し、前記実行処理選択手段は、複数のインターフェイスによってそれぞれ入力された命令に対応する複数の処理のうちのいずれを実行するかを選択すること、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【００１１】
請求項６の発明は、請求項２から請求項５までのいずれか１項に記載のＩＣカード用チップにおいて、前記実行処理優先度記憶手段は、前記命令入力手段によって入力された命令を解析する処理を、外部装置から受信する命令に対応した処理よりも高い優先度の処理として記憶すること、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【００１２】
請求項７の発明は、請求項６に記載のＩＣカード用チップにおいて、前記命令入力手段によって命令を入力した場合に、実行している処理を中断する処理中断手段（１７，Ｓ１６０）と、前記処理手段は、前記処理中断手段によって処理が中断された場合に、前記命令入力手段によって入力された命令に対応する処理の優先度を解析し、前記実行処理選択手段は、前記処理実行手段によって解析された前記命令に対応する処理の優先度、前記中断手段によって中断された処理の優先度に基づいて、いずれの処理を実行するかを選択し、前記処理手段は、前記実行処理選択手段によって前記中断された処理が選択された場合に、この中断された処理を再開すること、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【００１３】
請求項８の発明は、請求項２から請求項７までのいずれか１項に記載のＩＣカード用チップにおいて、前記実行処理選択手段は、スリープモードへのモード変更処理を最低優先度の処理として、選択を行うこと、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【００１４】
請求項９の発明は、請求項２から請求項８までのいずれか１項に記載のＩＣカード用チップにおいて、前記処理手段は、前記実行処理優先度記憶手段に記憶されている各処理の優先度を、前記命令入力手段によって入力された命令に応じて書き換える書き換え手段（１６，１７）を備えること、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【００１５】
請求項１０の発明は、請求項１から請求項９までのいずれか１項に記載のＩＣカード用チップにおいて、前記処理実行手段は、前記実行処理選択手段によって優先度が同一の複数の処理が選択された場合に、時分割で並行して前記複数の処理を実行すること、を特徴とするＩＣカード用ＩＣチップ（１１−２）である。
【００１６】
請求項１１の発明は、請求項１から請求項１０までのいずれか１項に記載のＩＣカード用ＩＣチップにおいて、前記処理手段が周辺回路を起動する場合に、この周辺回路の動作による消費電力の予測値である予測消費電力を取得する予測消費電力取得手段（１６，１７，１７−２）と、前記予測消費電力取得手段によって取得された予測消費電力に基づいて、前記周辺回路を起動すべきか否かを判定する電力判定手段（１７）とを備え、前記処理手段は、前記電力判定手段が肯と判定した場合に、前記周辺回路を起動すること、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【００１７】
請求項１２の発明は、請求項１から請求項１１までのいずれか１項に記載のＩＣカード用ＩＣチップにおいて、前記処理手段が一の処理を実行し、周辺回路が起動される場合に、この周辺回路が動作中であるか否かを判定する周辺回路動作状況判定手段（１７，１７−２）と、前記周辺回路動作状況判定手段によって肯と判定された場合に、前記処理手段が前記一の処理において周辺回路の起動待ちの状態であることを示す起動待ち情報を記憶する起動待ち情報記憶手段（１５）とを備えること、を特徴とするＩＣカード用ＩＣチップ（１１，１１−２）である。
【００１８】
請求項１３の発明は、複数の処理を時分割で並行して実行する処理手段（１７−２）を備えるＩＣカード用ＩＣチップ（１１−２）である。
【００１９】
請求項１４の発明は、請求項１から請求項１３までのいずれか１項に記載のＩＣカード用ＩＣチップ（１１，１１−２）と、ＩＣカード基体とを備えるＩＣカード（１０，１０−２）である。
【００２０】
請求項１５の発明は、ＩＣカード用ＩＣチップ（１１，１１−２）のＣＰＵ（１７，１７−２）に実行させるＩＣカード用プログラムであって、複数の処理のうちのいずれを実行するかを、各処理の優先度に基づいて選択する実行処理選択手順（Ｓ１２０）と、前記実行処理選択手順において選択した処理を実行する処理実行手順（Ｓ１３０）とを備えること、を特徴とするＩＣカード用プログラムである。
【００２１】
請求項１６の発明は、請求項１５に記載のＩＣカード用プログラムにおいて、前記実行処理選択手順は、外部装置から複数の命令を受信した場合（Ｓ１１０）に、各命令に対応する各処理の優先度に基づいて選択を行うこと、を特徴とするＩＣカード用プログラムである。
【００２２】
請求項１７の発明は、請求項１５又は請求項１６に記載のＩＣカード用プログラムにおいて、前記実行処理選択手順は、予め記憶されている各処理の優先度、又は、外部装置から指定された各処理の優先度に基づいて選択を行うこと、を特徴とするＩＣカード用プログラムである。
【００２３】
請求項１８の発明は、請求項１５から請求項１７までのいずれか１項に記載のＩＣカード用プログラムにおいて、前記実行処理選択手順は、複数のインターフェイスによってそれぞれ入力された命令に対応する複数の処理のうちのいずれを実行するかを選択すること、を特徴とするＩＣカード用プログラムである。
【００２４】
請求項１９の発明は、請求項１５から請求項１８までのいずれか１項に記載のＩＣカード用プログラムにおいて、外部装置から命令を受信した場合に、実行している処理を中断する処理中断手順（Ｓ１６０）と、前記実行処理選択手順は、前記外部装置から受信した命令に対応する処理の優先度、前記中断手順において中断した処理の優先度に基づいて、いずれの処理を実行するかを選択し、前記処理手順は、前記実行処理選択手順において前記中断した処理を選択した場合に、この中断した処理を再開すること、を特徴とするＩＣカード用プログラムである。
【００２５】
請求項２０の発明は、請求項１５から請求項１９までのいずれか１項に記載のＩＣカード用プログラムにおいて、前記実行処理選択手順は、スリープモードへのモード変更処理（Ｓ１４０）を最低優先度の処理として、選択を行うこと、を特徴とするＩＣカード用プログラムである。
【００２６】
請求項２１の発明は、請求項１５から請求項２０までのいずれか１項に記載のＩＣカード用プログラムにおいて、前記処理実行手順は、前記実行処理選択手順において優先度が同一の複数の処理を選択した場合に、時分割で並行して前記複数の処理を実行すること、を特徴とするＩＣカード用プログラムである。
【００２７】
請求項２２の発明は、請求項１５から請求項２１までのいずれか１項に記載のＩＣカード用プログラムにおいて、前記処理手順において周辺回路を起動する場合に、この周辺回路の動作による消費電力の予測値である予測消費電力を取得する予測消費電力取得手順と、前記予測消費電力取得手順において取得した予測消費電力に基づいて、前記周辺回路を起動すべきか否かを判定する電力判定手順とを備え、前記処理手順は、前記電力判定手順が肯と判定した場合に、前記周辺回路を起動すること、を特徴とするＩＣカード用プログラムである。
【００２８】
請求項２３の発明は、請求項１５から請求項２２までのいずれか１項に記載のＩＣカード用プログラムにおいて、前記処理手順において一の処理を実行し、周辺回路を起動する場合に、この周辺回路が動作中であるか否かを判定する周辺回路動作状況判定手順と、前記周辺回路動作状況判定手順が肯と判定した場合に、前記処理手順が前記一の処理の実行において周辺回路の起動待ちの状態であることを示す起動待ち情報を記憶する起動待ち情報記憶手順とを備えること、を特徴とするＩＣカード用プログラムである。
【００２９】
請求項２４の発明は、ＩＣカード用ＩＣチップのＣＰＵに実行させるＩＣカード用プログラムであって、複数の処理を時分割で並行して実行する処理手順（Ｓ８００〜Ｓ８８０）を備えること、を特徴とするＩＣカード用プログラムである。
【発明の効果】
【００３０】
本発明によるＩＣカード用ＩＣチップ、ＩＣカード及びＩＣカード用プログラムによれば、以下の効果を得ることが可能となる。
（１）優先度に基づいて選択した処理を実行することによって、複数の処理を効率的に実行して処理の円滑化及び迅速化を図る。
（２）外部からの複数の命令に対応する複数の処理から、各処理の優先度に基づいて選択を行うことによって、応答制限時間の超過を防止するなど、レスポンス応答性の向上を図る。
（３）外部装置から受信する優先度に基づいて選択を行うことによって、外部装置が命令の優先度を指定することができ、処理の円滑化を図り、レスポンス応答性の向上を図る。
（４）接触インターフェイスから入力される命令に対応する処理よりも、応答期限の短い非接触インターフェイスからの命令に対応する処理の実行を優先するなど、処理の円滑化を図り、応答制限時間の超過を防止し、レスポンス応答性の向上を図る。
（５）外部装置から受信する命令を解析する処理を優先度の高い処理とすることによって、処理の円滑化を図る。
（６）外部装置から命令を受信した場合に、実行している処理を中断し、受信した命令に対応する処理、中断している処理から、優先度に基づいて、実行する処理を選択することによって、一の処理の処理中であっても、命令を受け付けることができ、後の命令の優先度が高い場合には、この処理を優先して実行するなど、レスポンス応答性の向上を図る。
（７）スリープモードへのモード変更処理を最低優先度の処理とすることによって、全ての処理が終了するタイミングでスリープモードへの移行ができ、省電力を図る。
（８）外部装置からの命令に応じて、記憶している優先度を書き換えることによって、優先度を随時、任意に設定することができ、一層の処理の効率化及び迅速化を図り、レスポンス応答性を向上する。
（９）時分割で並行して複数の処理を行うことによって、処理時間に応じた期間で応答し、レスポンス応答性を向上する。特に、優先度が同一の処理を並行して行うことによって、様々な処理の流れを設計することができ、一層の処理の効率化及び迅速化を図り、レスポンス応答性を向上する。
（１０）予測消費電力に基づいて、周辺回路を起動すべきかを判定することによって、消費電力が最大許容消費電力を超えることを防止することが可能となる。特に、複数の周辺回路が並行して動作する場合であっても、最大許容消費電力を超えることを防止することが可能となる。
（１１）周辺回路が起動中有であるかを判定し、否と判定した場合に起動待ち情報を記憶することによって、複数の処理が一の周辺回路を効率的に共用する。
【発明を実施するための最良の形態】
【００３１】
本発明は、複数の処理を効率的に実行して処理の円滑化及び迅速化を図るとともに、応答制限時間の超過を防止するなど、レスポンス応答性の向上を図るという目的を、ＩＣカードのＣＰＵに、外部装置から複数の命令を受信した場合に、実行している処理を中断する処理中断手順と、前記外部装置から受信した命令に対応する処理の優先度、前記中断手順によって中断された処理の優先度に基づいて、いずれの処理を実行するかを選択する実行処理選択手順と、処理中断手順において中断された処理を選択した場合に、この中断された処理を再開する処理再開手順とを実行させることによって実現する。
【実施例１】
【００３２】
以下、図面などを参照して、本発明の実施例をあげて、さらに詳しく説明する。
図１は、本発明によるＩＣカード用ＩＣチップ及びＩＣカードの構成を示すブロック図である。
図１に示すように、ＩＣカード１０は、リーダライタ（以下、「Ｒ／Ｗ」という。）を備える情報処理装置であるリーダライタターミナル３０と通信することが可能であって、リーダライタターミナル３０からコマンド（命令）を受信し、このコマンドに応じて処理を行い、処理結果をレスポンス（応答）としてリーダライタターミナル３０へ返信する携帯型の情報処理装置である。ＩＣカード１０は、一般的なＩＣカードであってもよく、ＳＩＭカード、ＵＩＭカードやＵＳＩＭカードであってもよく、形状などのカード規格に限定されない。
【００３３】
ＩＣカード１０は、ＩＣチップ１１と、ＩＣチップ１１に接続されているＩ／Ｏ部１２とを備えている。Ｉ／Ｏ部１２は、外部との通信信号の入出力を行い、リーダライタターミナル３０との通信を媒介する。Ｉ／Ｏ部１２は、例えば、ＩＣカード１０が接触式の通信を行う場合には、リーダライタターミナル３０との接触式通信における接点となる接触端子、ＩＣカード１０が非接触式の通信を行う場合には、電磁波の送受信を行うアンテナなどである。なお、ＩＣカード１０は、接触式ＩＣカード、非接触式ＩＣカード、接触／非接触式ＩＣカードのいずれであってもよく、その通信方式は、限定されない。
【００３４】
ＩＣチップ１１は、ＣＰＵ１７と、インターフェイス１３、ＲＡＭ１４、ＲＯＭ１５、ＥＥＰＲＯＭ１６、コプロセッサ１８、クロック１９、ＲＮＧ２０、タイマ２１などのＣＰＵ１７の周辺回路とを備え、システムバス２２で相互に接続されている。
インターフェイス１３は、通信に係るデータ変換を行う通信デバイスであるＵＡＲＴ１３１（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）、変復調回路などを備え、Ｉ／Ｏ部１２から入力した信号の復調、データ変換、ＣＰＵ１７から出力されたデータをＩ／Ｏ部１２から出力するためのデータ変換、変調を行うなど、ＣＰＵ１７とリーダライタターミナル３０との通信を媒介するインターフェイス回路である。ＵＡＲＴ１３１は、リーダライタターミナル３０からコマンドの受信を開始した場合に、割り込み信号をＣＰＵ１７に送信し、Ｉ／Ｏ割り込みを行う割り込み発生部を備えている（図示しない。）。
【００３５】
ＲＡＭ１４、ＲＯＭ１５、ＥＥＰＲＯＭ１６は、ＣＰＵ１７が実行するプログラム、プログラムの実行に必要なデータを記憶するためのメモリである。ＲＡＭ１４は、揮発性メモリであり、ＣＰＵ１７が処理を行う作業領域として使用される。ＲＡＭ１４には、ＩＣカードの起動時などの初期化時にタスク情報テーブル、実行タスク管理テーブルが展開される。
【００３６】
図２は、タスク情報テーブルを示す図である。
図２に示すように、タスク情報テーブルは、各タスク（ＣＯＭＭＡＮＤタスク、ＡＰＰ１〜ＡＰＰｎ、ＳＬＥＥＰタスク）の優先度、各タスクを実行する場合に、ＣＰＵ１７のプログラムカウンタ（ＰＣ）、スタックポインタ（ＳＰ）にセットする値、データなどを関連づけている。タスクは、互いに相互干渉し合うことのないように制御される処理単位であって、ＡＰＰ１〜ＡＰＰｎ（以下、まとめて「ＡＰＰ」という。）は、コマンドに対応した処理を行うタスクであって、コマンドによって要求される処理結果を導出する。タスク情報テーブルに登録されているタスクは、ＣＰＵ１７が実行可能なタスクを示している。優先度は、いずれのタスクの実行を優先させるかを示す指標であって、本実施例では、１６レベルとしている。
【００３７】
各タスクの優先度、ＰＣ及びＳＰの初期値は、予め設定され、ＥＥＰＲＯＭ１６にタスク情報テーブル初期情報として記憶されている。ＡＰＰの優先度は、応答制限時間の短いものは、優先度が高く、応答制限時間の長いものは、優先度が低くなるように設定してある。また、ＣＯＭＭＡＮＤタスクの優先度が最優先の「１」、ＳＬＥＥＰタスクの優先度が最低優先の「１６」として設定されている。優先度のレベル数、各タスクの優先度の高低は、任意に設定することができ、タスクの内容に応じて設定することが望ましい。また、複数のタスクに同レベルの優先度を設定することも可能である。本実施例において、ＡＰＰ３〜ＡＰＰｎの複数のタスクは、同一の優先度「５」に設定されている。
【００３８】
図３は、実行タスク管理テーブルを示す図である。
図３に示すように、実行タスク管理テーブルは、現在実行しているタスク又は実行待ちのタスクと、その優先度とを関連づけたテーブルであって、現在実行しているタスク又は今後実行するタスクの優先度の高低を示している。ＣＯＭＭＡＮＤタスクは、ＩＣカード１０がコマンドを受信した場合に、この実行タスク管理テーブルに登録され、実行される。ＡＰＰは、対応するコマンドを受信した場合に登録され、ＳＬＥＥＰタスクは、常に最低優先度「１６」として、実行タスク管理テーブルに登録される。なお、実行タスク管理テーブルは、同じ優先度のレベルのタスクを複数登録することが可能であり、この場合には、先に登録されたタスクが優先される。また、実行タスク管理テーブルの「ＮＵＬＬ」は、該当するタスクがないことを示している。
【００３９】
ＲＯＭ１５は、不揮発性の読み出し専用メモリであって、オペレーティングシステム（以下、ＯＳとする）などの基本ソフトウェアを格納している。
ＥＥＰＲＯＭ１６は、随時書き換え可能な不揮発性メモリであり、ＡＰＰの各タスクを形成するアプリケーションプログラムなどのプログラム、タスク情報テーブル初期情報（カード搭載タスク総数、各タスクの優先度、ＰＣ及びＳＰなど）などのデータを格納している。また、ＥＥＰＲＯＭ１６は、ＲＡＭ１４と同様にＣＰＵ１７の作業領域として使用される。なお、ＩＣカード１０は、ＥＥＰＲＯＭ１６の代わりに、ＦＲＡＭ、フラッシュメモリなどの他の書き換え可能な不揮発性メモリを備えていてもよい。
【００４０】
ここでアプリケーションを追加する場合について説明する。
所定のコマンドによって、アプリケーションをＩＣカード１０にインストールし、ＥＥＰＲＯＭ１６に保存する。インストール完了後、タスク情報テーブル初期情報をＥＥＰＲＯＭ１６に保存する。初期優先度はコマンドか、ＩＣカード内部で持つ規定値によって決定される。ＩＣカード１０は、次のリセットで起動する際に、タスク情報テーブル初期情報に基づいて、タスク情報テーブルをＲＡＭ１４に再構築する。
【００４１】
コプロセッサ１８は、ＣＰＵ１７の性能を強化するために特定分野に特化した補助プロセッサであって、ＣＰＵ１７からの命令に応じて暗号演算などの演算処理を行う。
クロック１９は、リーダライタターミナル３０から供給されるクロック信号に基づいて、内部の動作基準クロック信号を生成し、ＣＰＵ１７、コプロセッサに供給する回路である。
ＲＮＧ（Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｏｒ）２０は、乱数発生器である。
タイマ２１は、経過時間を計測するタイマなどを備え、ＣＰＵ１７によって設定された時間が経過した場合に、ＣＰＵ１７に割り込み信号を送信し、タイマ割り込みを発生する。
【００４２】
ＣＰＵ１７は、このＩＣカード１０を統括制御する中央処理装置である。ＣＰＵ１７は、リーダライタターミナル３０から受信するコマンドに従って、メモリの作業領域を使用し、ＲＯＭ１５、ＥＥＰＲＯＭ１６に格納されているプログラムを実行し、処理結果をレスポンスとして返信する。また、ＣＰＵ１７は、ＵＡＲＴ１３１からのＩ／Ｏ割り込みがあった場合に、Ｉ／Ｏ割り込みハンドラを実行する。なお、ＣＰＵ１７の動作及び機能の詳細は、図２を用いて後述する。
【００４３】
図４〜図１０は、本発明によるＩＣカード用ＩＣチップ及びＩＣカードの動作、ＩＣカード用プログラムを示すフローチャートである。以下、図４〜図１０の順に、ＣＰＵ１７の処理を中心に説明する。
図４は、全体の処理の流れを示している。
図４に示すように、ステップ１００（以下、「ステップ」を「Ｓ」という。）において、ＩＣカード１０は、リーダライタターミナル３０から送信されたコマンドを受信し、処理を開始する。ＣＰＵ１７は、コマンド受信処理を行う（Ｓ１１０）。
【００４４】
ＣＰＵ１７は、受信完了後、ＣＯＭＭＡＮＤタスクを実行し（Ｓ１２０）、受信したコマンドを解析して判別し、実行すべきタスクを選択する。
ＣＰＵ１７は、選択したタスク（ＡＰＰ）を実行し（Ｓ１３０）、終了後、実行すべきタスクがＳＬＥＥＰタスク以外にない場合には、ＳＬＥＥＰタスクを実行する（Ｓ１４０）。
ＣＰＵ１７は、Ｓ１１０〜Ｓ１４０までの処理中に、ＵＡＲＴ１３１からのＩ／Ｏ割り込みがあった場合（Ｓ１５０）には、Ｉ／Ｏ割り込みハンドラを実行して、タスク情報テーブルの実行タスク領域に現在のＰＣ（プログラムカウンタ）の値とＳＰ（スタックポインタ）の内容を保存して、処理を中断し（Ｓ１６０）、Ｓ１１０から同様の処理を繰り返す。なお、中断した処理は、実行すべきタスクのうちで最も優先度が高くなった場合に、中断箇所から再開される。
【００４５】
図５は、図４のＳ１１０において実行するコマンド受信処理を示している。
ＣＰＵ１７は、コマンドの受信が完了したことを確認後、ＣＯＭＭＡＮＤタスク起動処理を行い（Ｓ２２０）、コマンド受信処理を終了する（Ｓ２３０）。
図６は、図４のＳ１２０において実行するＣＯＭＭＡＮＤタスクを示している。
ＣＰＵ１７は、受信したコマンドを解析し（Ｓ３１０〜Ｓ３３０）、対応するタスク（ＡＰＰ）のタスク起動処理を行う（Ｓ３４０〜Ｓ３６０）。
ＣＰＵ１７は、タスク終了処理を行い（Ｓ３７０）、ＣＯＭＭＡＮＤタスクの実行を終了する（Ｓ３８０）。
【００４６】
図７は、図４のＳ１３０において実行するＡＰＰタスクを示している。
ＣＰＵ１７は、セットされているＰＣ、ＳＰからタスク（ＡＰＰ）を実行し（Ｓ４１０）、タスク終了処理を行い（Ｓ４２０）、ＡＰＰタスクの実行を終了する（Ｓ４３０）。
図８は、図４のＳ１４０において実行するＳＬＥＥＰタスクを示している。
ＣＰＵ１７は、スリープモードへのモード切り替えを行い、ＩＣチップ１１をスリープ状態とし（Ｓ５１０）、ＳＬＥＥＰタスクの実行を終了する（Ｓ５２０）。
【００４７】
図９は、図５のＳ２２０、図６のＳ３４０〜Ｓ３６０において実行されるタスク起動処理を示している。
図９に示すように、ＣＰＵ１７は、タスク情報テーブルを参照して、タスクの優先度を確認し、実行タスク管理テーブルに起動の対象となるタスクを優先度に対応させて登録する（Ｓ６１０）。
ＣＰＵ１７は、実行タスク管理テーブルから、登録されている優先度の一番高い最優先タスクを検出する（Ｓ６２０）。この最優先タスクが、現在実行中の実行タスクである場合には、タスク起動処理を終了する。また、最優先タスクが実行タスクと異なる場合には、タスク情報テーブルの実行タスクの領域に現在のＰＣの値、ＳＰの内容を保存する（Ｓ６４０）。
ＣＰＵ１７は、実行タスクを、最優先タスクとなっているタスクに設定し（Ｓ６５０）、タスク情報テーブルの実行タスクの領域に保存されているＰＣ、ＳＰをセットし（Ｓ６７０）、タスク起動処理を終了する（Ｓ６７０）。
【００４８】
図１０は、図６のＳ３７０、図７のＳ４２０において実行されるタスク終了処理を示している。
図１０に示すように、ＣＰＵ１７は、実行タスク管理テーブルから実行タスクを削除し（Ｓ７１０）、最優先タスクを検索し（Ｓ７２０）、タスク情報テーブルの実行タスクの領域に現在のＰＣ、ＳＰを保存する（Ｓ７３０）。
ＣＰＵ１７は、実行タスクを、最優先タスクとなっているタスクに設定し（Ｓ７４０）、タスク情報テーブルの実行タスクの領域に保存されているＰＣ、ＳＰをセットし（Ｓ７５０）、処理を終了する（Ｓ７６０）。
【００４９】
次に、具体例をあげて図４〜図１０の処理を説明する。
ＣＰＵ１７がＡＰＰ２のタスクを実行しているとき、つまり、ＡＰＰ２について、ＡＰＰタスク処理（図４のＳ１３０，図７）を実行しているときに、ＩＣカード１０は、リーダライタターミナル３０からコマンドを受信し、Ｉ／Ｏ割り込みがＵＡＲＴ１３１から発生したとする（Ｓ１５０）。なお、実行タスク管理テーブルは、優先度３にＡＰＰ２、優先度１６にＳＬＥＥＰのタスクが登録されている状態である。
ＣＰＵ１７は、Ｉ／Ｏ割り込みハンドラを実行して、実行中のＡＰＰ２について、現在のＰＣ、ＳＰをタスク情報テーブルに保存し、コマンド受信処理のＰＣ、ＳＰをセットし（図４のＳ１６０）、コマンド受信処理を起動する（図４のＳ１１０）。
【００５０】
ＣＰＵ１７は、コマンド受信処理を行い（図５）、コマンドの受信が完了後にＣＯＭＭＡＮＤタスクのタスク起動処理を実行する（図５のＳ２１０，Ｓ２２０）。ＣＰＵ１７は、ＣＯＭＭＡＮＤタスクのタスク起動処理において、起動対象となるＣＯＭＭＡＮＤタスクを優先度１として実行タスク管理テーブルに登録し（図９のＳ６１０）、最優先タスク及び実行タスクがＣＯＭＭＡＮＤタスクであるため、タスク起動処理を終了し（Ｓ６６０，Ｓ６７０）、受信処理を終了する（図５のＳ２２０）。
【００５１】
ＣＰＵ１７は、ＣＯＭＭＡＮＤタスクを実行し（図４のＳ１２０）、リーダライタターミナル３０から送信されたコマンドを解析する（図６のＳ３１０〜Ｓ３３０）。ここで、リーダライタターミナル３０から受信したコマンドは、ＡＰＰ１のタスクを実行させるコマンドであるとする。
ＣＰＵ１７は、解析結果から、ＡＰＰ１のタスク起動処理を実行する（図６のＳ３４０）。ＣＰＵ１７は、ＡＰＰ１を優先度３としてタスク情報テーブルに登録し（図９のＳ６１０）、最優先タスク及び実行タスクがＣＯＭＭＡＮＤタスクであるため、タスク起動処理を終了する（Ｓ６６０，Ｓ６７０）。また、ＣＰＵ１７は、タスク終了処理を実行する（図６のＳ３７０）。
【００５２】
ＣＰＵ１７は、実行タスク管理テーブルから実行タスクであるＣＯＭＭＡＮＤタスクを優先度１の欄から削除し（図１０のＳ７１０）、実行タスク管理テーブルを検索し、最優先タスクとして優先度３のＡＰＰ１を検出する（図１０のＳ７２０）。ＣＰＵ１７は、タスク情報テーブルの現在の実行タスクであるＣＯＭＭＡＮＤタスクの領域に現在のＰＣ、ＳＰを書き込み（Ｓ７３０）、実行タスクを、ＡＰＰ１と設定し（Ｓ７４０）、ＡＰＰ１のＰＣ，ＳＰをセットし（Ｓ７５０）、タスク終了処理を終了する（Ｓ７６０）。
【００５３】
ＣＰＵ１７は、ＣＯＭＭＡＮＤタスク処理を終了し（図６のＳ３８０）、ＡＰＰ１のＡＰＰタスクを実行する（図４のＳ１３０）。ＣＰＵ１７は、セットされているＡＰＰ１を実行し（図７のＳ４１０）、タスク終了処理を行う（Ｓ４２０）。このタスク終了処理（図１０）において、実行タスク管理テーブルからＡＰＰ１が削除され（Ｓ７１０）、実行タスクは、最優先タスクのＡＰＰ２となる（Ｓ７４０）。ＣＰＵ１７は、ＡＰＰ１と同様にＡＰＰ２のＡＰＰタスクを実行し（図４のＳ１３０）、ＡＰＰ２を実行し、タスク終了処理を行う（図７のＳ４１０，Ｓ４２０）。なお、ＡＰＰ２は、Ｓ１６０においてタスク情報テーブルに保存した、中断箇所を示すＰＣ、ＳＰから再開される。このタスク終了処理において（図１０）、実行タスクは、ＳＬＥＥＰタスクとなり（Ｓ７４０）、ＣＰＵ１７は、ＳＬＥＥＰタスクを実行し（図４のＳ１４０、図８）、ＩＣチップ１１はスリープ状態となる。
なお、新たにコマンドをリーダライタターミナル３０から受信した場合には、Ｉ／Ｏ割り込みが発生し（Ｓ１５０）、処理を中断して同様の処理を繰り返す（Ｓ１６０以降）。
つまり、各タスクが終了地点に到達し、次に起動されるときには、各タスクのスタート地点から再開する。従って、各タスクにループ処理をするか、タスク終了処理において、現在のＰＣを保存する代わりに、初期値を保存する形であってもよい。
【００５４】
このように本実施例によれば、  ＩＣカード１０は、コマンドを受信した場合には、Ｉ／Ｏ割り込みを発生させ、ＣＯＭＭＡＮＤタスクを実行するため、リーダライタターミナル３０から処理中であってもコマンドを受信し、処理を行うことが可能となった。
また、ＩＣカード１０は、コマンド受信処理と、ＣＯＭＭＡＮＤタスクとを切り分けて実行するため、コマンド判断（Ｓ３１０〜Ｓ３３０）を後回しにし、コマンドを確実に受信することが可能となった。
【００５５】
更に、ＩＣカード１０は、ＣＯＭＭＡＮＤタスクを最高優先に設定しているため、あるコマンド（ＡＰＰ２）を処理中であっても、コマンド判断（Ｓ３１０〜Ｓ３３０）を優先して行い、例えば、優先度の高いコマンド（ＡＰＰ１）を処理することが可能となった。また、ＩＣカード１０は、次にＡＰＰ１が終了した段階で、タスク終了処理によって中断したＡＰＰ２の処理を再開することが可能となった。例えば、ＩＣカード１０がデュアルインターフェイスＩＣカードであって、接触インターフェイスを介して電話アプリケーションを実行している場合であっても、非接触インターフェイスで改札アプリを実行することが可能となった。
【００５６】
また、ＩＣカード１０は、ＳＬＥＥＰタスクを最低優先に設定しているため、全ての処理が終了するタイミングでＣＨＩＰ  ＳＬＥＥＰ状態にすることが可能となった。更に、従来のＩＣカードでは受信待ちのときにＣＨＩＰ  ＳＬＥＥＰ状態になるが、裏で行う処理がある場合、その処理自体も停止してしまうという不都合を解決することが可能となった。複数のアプリケーションを起動して、全部終わった段階でスリープを行い、省電力を図ることが可能となった。
【００５７】
また、ＩＣカード１０は、アプリケーションのインストールとともに、タスク情報テーブル初期情報をＥＥＰＲＯＭ１６に書き込むため、アプリケーションの追加は、その数や機能に制限なく行うことができ、従来からＩＣカード１０に搭載されているアプリケーションに影響を与えることなく、アプリケーションのインストールが可能となった。例えば、ＪａｖａＣａｒｄ（登録商標）などのマルチアプリケーションカードにアプリケーションを追加する場合には、タスク情報テーブルを更新することで、すでに搭載されているアプリケーションと同様の動作を行うことが可能となった。
更に、ＩＣカード１０は、周辺回路の動作と並行して実行するタスクを各タスクの優先度に基づいて選択するため、応答時間内に確実に応答し、レスポンス応答性を向上することが可能となった。
【００５８】
更にまた、ＩＣカード１０は、優先度に基づいて選択したタスクを実行することによって、複数のタスクを効率的に実行して処理の円滑化及び迅速化を図ることが可能となった。特に、リーダライタターミナル３０から受信したコマンドに対応する複数のＡＰＰから、各タスクの優先度に基づいて実行する選択を行うため、応答制限時間の超過を防止するなど、レスポンス応答性の向上を図ることが可能となった。
また、ＩＣカード１０は、リーダライタターミナル３０からコマンドを受信した場合に、実行している処理を中断し、受信したコマンドに対応するＡＰＰ、中断している処理から、優先度に基づいて、実行する処理を選択するため、一の処理の処理中であっても、コマンドを受け付けることができ、後のコマンドの優先度が高い場合には、このコマンドに対応するＡＰＰを優先して実行するなど、レスポンス応答性の向上を図ることが可能となった。
【実施例２】
【００５９】
図１１は、本発明によるＩＣカード用ＩＣチップ及びＩＣカードの構成を示すブロック図である。
なお、前述した実施例と同様の機能を果たす部分には、同一の符号を付して、重複する説明を適宜省略する。
図１１に示すように、ＩＣカード１０−２は、ＣＰＵ１７−２、タイマ２１などを有するＩＣチップ１１−２と、ＩＣチップ１１−２に接続されているＩ／Ｏ部１２など、実施例１のＩＣカード１０と略同様の構成を備えている。
ＣＰＵ１７−２は、ＩＣカード１０−２の起動時に、所定の時間ごと、つまり、定期的にタイマ割り込みを発生させるように設定を行う。ＣＰＵ１７−２は、このタイマ割り込みがあった場合に、タイマ割り込みハンドラを実行する。ＣＰＵ１７−２の動作、機能の詳細については、図１２及び図１３を用いて後述する。
【００６０】
図１２は、本発明によるＩＣカード用ＩＣチップ及びＩＣカードの動作、ＩＣカード用プログラムを示すフローチャートであり、図１３は、本発明によるＩＣカード用ＩＣチップ、ＩＣカードの処理の流れ及び処理時間を示す図である。図１２及び図１３ともに、処理時間の長いタスクであるアプリケーションＡと、処理時間の短いタスクであるアプリケーションＢの実行の処理の流れを示している。以下、図４〜図１０を適宜参照しながら説明する。
ＩＣカード１０は、リーダライタターミナル３０から電力供給を受け、起動し、タイマ２１が起動する。リーダライタターミナル３０からアプリケーションＡを起動するコマンドを受信し、ＣＰＵ１７−２は、アプリケーションＡを実行する。
【００６１】
ＩＣカード１０は、アプリケーションＡの実行中（Ｓ８１０Ａ）に、アプリケーションＢを起動するコマンドを受信した場合には（図４のＳ１５０）、ＣＯＭＭＡＮＤタスク（図６）を実行し、アプリケーションＢを実行タスク管理テーブルに登録し（図９のＳ６１０）、アプリケーションＢのタスク起動処理を行い（図６のＳ３４０）、実行タスク管理テーブルを更新する（図１０のＳ７４０）。
定期的にタイマ２１からタイマ割込みが発生し（図１３の＃１０）、ＣＰＵ１７−２は、割り込みが発生するたびに、現在のＰＣ，ＳＰを実行タスク管理テーブルに登録し（Ｓ８５０）、実行タスク管理テーブルに登録されている実行中又は実行待ちのアプリケーション（ＡＰＰ）の中から、実行タスクを順繰りに切り替え（Ｓ８６０〜Ｓ８８０）、タスク（アプリケーションＡ又はアプリケーションＢ）を実行する（Ｓ８１０Ａ，Ｓ８１０Ｂ）。
【００６２】
ＣＰＵ１７−２は、処理時間の短いアプリケーションＢの処理が先に終了し、レスポンスをリーダライタターミナル３０へ送信する（図１３の＃２０）。ＣＰＵ１７−２は、アプリケーションＢのタスク終了処理を実行し（図１２のＳ８２０Ｂ）、実行タスク管理テーブルからアプリケーションＢを削除する（図１０のＳ７２０）などの処理を行い、アプリケーションＢのＡＰＰタスクを終了する（Ｓ８３０Ｂ）。ＣＰＵ１７−２は、Ｉ／Ｏ割り込みが発生し（図４のＳ１５０）、新たな実行待ちタスクが実行タスク管理テーブルに登録され、タイマ割り込みによって実行タスクの切り替えが行われるまで又はレスポンスをリーダライタターミナル３０へ送信し、処理が終了するまで（図１３の＃３０）、実行タスク管理テーブルに登録されている唯一のタスクであるアプリケーションＡを実行する（Ｓ８１０Ａ）。ＣＰＵ１７−２は、アプリケーションＡの処理終了後にタスク終了処理を実行し（Ｓ８２０Ａ）、アプリケーションＡのＡＰＰタスクを終了する（Ｓ８３０Ａ）。
【００６３】
このように本実施例によれば、実施例１と略同様の効果に加え、ＩＣカード１０−２は、時分割で並行して複数のアプリケーションの処理を行うため、処理時間の長いアプリケーションＡの実行中に、新たに処理時間の短いアプリケーションＢの実行を要求するコマンドを受信した場合であっても、アプリケーションＢについてのレスポンス応答の遅れを［実行タスク数×分割時間］に抑えることが可能となった。つまり、図１３及び図１４に示すように、従来のＩＣカードよりも、後発のコマンドについての応答の迅速化を図り、応答制限時間の超過を防止し、複数の処理を効率的に処理し、処理の円滑化及び迅速化を図ることが可能となった。
【００６４】
（変形例）
以上説明した実施例に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。例えば、各実施例において、ＩＣカード１０，１０−２は、リーダライタターミナル３０から所定のコマンドを受信した場合に、このコマンドに応じて、タスクの優先度を書き換えてもよい。この処理の流れを以下に説明する。
リーダライタターミナル３０側にアプリケーション優先度変更機能が搭載されており、ユーザの手動オペレーションによって、ＩＣカード１０，１０−２に対して所定のコマンドを送信し、指定するアプリケーションの優先度を他のアプリケーションよりも高く設定する要求を行う。
ＣＰＵ１７，１７−２は、ＲＡＭ１４に展開されているタスク情報テーブルにおいて、コマンドで指定されているアプリケーションの優先度を書き換えて変更する。ＣＰＵ１７，１７−２がこのアプリケーションを実行中の場合には、実行タスク管理テーブルも更新する。
【００６５】
リーダライタターミナル３０からこのアプリケーションの実行を要求するコマンドを受信した場合には、ＣＰＵ１７，１７−２は、更新後の優先度に基づいて、このアプリケーションを実行する。
この更新後の優先度は、アプリケーションの処理完了後に、ＩＣカード１０，１０−２への電力供給がなくなるなど、ＲＡＭ１４に記憶されているデータの消去とともに、消去され、次に起動する場合には、もとの値に戻される。
【００６６】
なお、更新後の優先度は、カード内部の処理によって自動的に行ってもよいし、リーダライタターミナル３０からのコマンドにより優先度情報を元に戻してもよい。また、ＩＣカード１０，１０−２は、ＲＡＭ１４のタスク情報テーブルに加え、ＥＥＰＲＯＭ１６に記憶されているタスク情報テーブル初期情報を書き換え、恒久的に優先度を書き換えても良い。更に、リーダライタターミナル３０が優先度をコマンドのパラメータで指定し、ＩＣカード１０，１０−２は、この指定された優先度に基づいて処理を行ってもよい。
ユーザからの要求など、リーダライタターミナル３０からの指示で一時的又は恒久的にレスポンス応答を速めることができ、複数のアプリケーションが実行状態であっても、チケットやゲート通過などのレスポンス応答の制限時間超過不具合を防ぐことが可能となる。優先度を随時、任意に設定することができ、一層の処理の効率化及び迅速化を図り、レスポンス応答性を向上することが可能となる。
【００６７】
各実施例において、ＩＣカード１０，１０−２は、ＵＡＲＴ１３１、ＥＥＰＲＯＭ１６、コプロセッサ１８、ＲＮＧ２０、タイマ２１などの周辺回路の排他制御を行ってもよい。
ＩＣカード１０，１０−２は、図１５に示すように、ＥＥＰＲＯＭ１６に周辺回路管理テーブルを記憶している。周辺回路管理テーブルは、各周辺回路と、その使用状況を示す使用状況フラグ、使用待ちアプリとを関連づけ、周辺回路使用状況を管理するためのテーブルである。使用待ちアプリは、周辺回路の使用を待っているタスクを示している。
図１６は、周辺回路を起動する処理の流れを示すフローチャートである。以下、ＣＰＵ１７，１７−２の処理を中心に説明する。
【００６８】
アプリケーションの実行によって、周辺回路を起動する周辺回路モジュールが呼び出された場合に、ＣＰＵ１７，１７−２は、周辺回路管理テーブルを参照し（Ｓ９１０）、「未使用」であれば、使用状況フラグを「使用中」にし（Ｓ９２０）、ＥＥＰＲＯＭ１６への書き込み処理などの周辺回路処理を開始する（Ｓ９３０）。
周辺回路の処理完了後に周辺回路管理テーブルに使用待ちアプリがある場合には、ＮＵＬＬにし（Ｓ９８０）、そのアプリをタスク起動処理する（Ｓ９９０）。使用待ちアプリがない場合、使用状況フラグを「未使用」にする（Ｓ９７０）。
【００６９】
周辺回路モジュールが呼び出された場合に、ＣＰＵ１７，１７−２は、周辺回路管理テーブルを参照し、「使用中」であれば、周辺回路管理テーブルに実行中のタスクが待ち状態であることを登録し（Ｓ９６０）、実行中のタスクについてタスク終了処理を実行する（Ｓ９５０，図１０）。
複数のアプリケーションによる周辺回路の使用の競合を防止し、周辺回路の処理が完了した段階で、使用待ちアプリを再開することができ、複数の処理が一の周辺回路を効率的に共用することが可能となる。
【００７０】
各実施例において、ＩＣカード１０，１０−２は、ＩＣチップ１１，１１−２が正常に起動するための消費電力の最大値であるチップ許容最大電力値を超えないように、周辺回路の起動を制御してもよい。
ＩＣカード１０，１０−２は、図１７に示すように、ＲＡＭ１４又はＥＥＰＲＯＭ１６に周辺回路消費電力管理テーブルを記憶している。周辺回路消費電力管理テーブルは、各周辺回路と、周辺回路の動作による消費電力値と、使用待ちアプリとを関連づけ、周辺回路の消費電力を管理するためのテーブルである。
【００７１】
図１８は、周辺回路を起動する処理の流れを示すフローチャートである。以下、ＣＰＵ１７，１７−２の処理を中心に説明する。
アプリケーションの実行によって、周辺回路を起動する周辺回路モジュールが呼び出された場合に、ＣＰＵ１７，１７−２は、周辺回路消費電力管理テーブルを参照し、その周辺回路の消費電力値を現状消費電力値に加算し、予測消費電力値を算出する（Ｓ１１１０）。
ＣＰＵ１７，１７−２は、この予測消費電力値がチップ許容最大電力値を超えない場合、ＥＥＰＲＯＭ１６への書き込みなど、その周辺回路処理を実行する（Ｓ１１２０，Ｓ１１３０）。
【００７２】
周辺回路処理終了後、ＣＰＵ１７，１７−２は、現状消費電力値からその周辺回路の消費電力値を減算し（Ｓ１１４０）、周辺回路消費電力管理テーブルを参照し、使用待ちアプリがある場合には、使用待ちアプリをＮＵＬＬにし（Ｓ１１９０）、このアプリケーションについてのタスク起動処理を実行し（Ｓ１２００）、優先度の高いタスクを起動する。このタスクにおいて、周辺回路モジュールを呼び出した場合には、同様の処理を繰り返す（Ｓ１１１０〜Ｓ１２００）。
予測消費電力値がチップ許容最大電力値を超える場合には、現状消費電力値からその周辺回路の消費電力値を減算し（Ｓ１１５０）、周辺回路消費電力管理テーブルに実行中のタスクが使用待ちであることを登録し（Ｓ１１６０）、タスク終了処理を実行する（Ｓ１１７０）。
【００７３】
なお、各周辺回路の消費電力値は、チップの動作クロックと動作電圧によって変動するため、基本値をＲＯＭ１５やＥＥＰＲＯＭ１６に予め記憶しておき、ＩＣカード１０，１０−２起動後に実際の各消費電力値を算出して、周辺回路消費電力管理テーブルを生成してもよい。
複数のアプリケーションによって周辺回路を同時に使用する場合であっても、予め定められているチップ許容最大消費電力値の超過を防止することができる。また使用待ちアプリ処理を再開する場合には、優先度の高いアプリから再開することができる。
【００７４】
各実施例において、本発明によるＩＣカード用チップであるＩＣチップ１１，１１−２は、ＩＣカード１０，１０−２に搭載されているが、ＩＣカード機能用として携帯電話機などに搭載されていてもよく、搭載対象は、これに限定されない。
【００７５】
実施例２において、実施例１のＩＣカード１０と同様に、ＩＣカード１０−２は、優先度の高いタスクから順に処理を行い、実行タスク管理テーブルに最高の優先度のタスクが複数登録されている場合に、この複数のタスクを時分割で実行するなど、優先度に基づいた処理、及び、複数のタスクの時分割による処理を併用して行ってもよい。また、タイマ割り込みが発生した場合に、最優先のタスクを実行タスク管理テーブルから抽出し、この最優先タスクが複数登録されている場合に、時分割で処理を行ってもよい。
優先度の設定、時分割の処理によって様々な処理の流れを設計することができ、処理の効率化及び迅速化、レスポンス応答性を向上することが可能となる。
【図面の簡単な説明】
【００７６】
【図１】本発明によるＩＣカード用ＩＣチップ、ＩＣカードの構成を示すブロック図である。（実施例１）
【図２】タスク情報テーブルを示す図である。
【図３】実行タスク管理テーブルを示す図である。
【図４】ＩＣカード用ＩＣチップ及びＩＣカードの動作、ＩＣカード用プログラムを示すフローチャートである。（全体の処理、実施例１）
【図５】本発明によるＩＣカード用ＩＣチップ、ＩＣカードの処理の流れ及び処理時間を示す図である。（コマンド受信処理、実施例１）
【図６】本発明によるＩＣカード用ＩＣチップ、ＩＣカードの処理の流れ及び処理時間を示す図である。（ＣＯＭＭＡＮＤタスク、実施例１）
【図７】本発明によるＩＣカード用ＩＣチップ、ＩＣカードの処理の流れ及び処理時間を示す図である。（ＡＰＰタスク、実施例１）
【図８】本発明によるＩＣカード用ＩＣチップ、ＩＣカードの処理の流れ及び処理時間を示す図である。（ＳＬＥＥＰタスク、実施例１）
【図９】本発明によるＩＣカード用ＩＣチップ、ＩＣカードの処理の流れ及び処理時間を示す図である。（タスク起動処理、実施例１）
【図１０】本発明によるＩＣカード用ＩＣチップ、ＩＣカードの処理の流れ及び処理時間を示す図である。（タスク終了処理、実施例１）
【図１１】本発明によるＩＣカード用ＩＣチップ、ＩＣカードの構成を示すブロック図である。（実施例２）
【図１２】本発明によるＩＣカード用ＩＣチップ及びＩＣカードの動作、ＩＣカード用プログラムを示すフローチャートである。（実施例２）
【図１３】本発明によるＩＣカード用ＩＣチップ、ＩＣカードの処理の流れ及び処理時間を示す図である。（実施例２）
【図１４】従来のＩＣカードの処理の流れ及び処理時間を示す図である。
【図１５】周辺回路管理テーブルを示す図である。（変形例）
【図１６】本発明によるＩＣカード用ＩＣチップ及びＩＣカードの動作、ＩＣカード用プログラムを示すフローチャートである。（変形例）
【図１７】周辺回路消費電力管理テーブルを示す図である。（変形例）
【図１８】本発明によるＩＣカード用ＩＣチップ及びＩＣカードの動作、ＩＣカード用プログラムを示すフローチャートである。（変形例）
【符号の説明】
【００７７】
１０，１０−２  ＩＣカード
１１，１１−２  ＩＣチップ
１２  Ｉ／Ｏ部
１３  インターフェイス
１４  ＲＡＭ
１５  ＲＯＭ
１６  ＥＥＰＲＯＭ
１７，１７−２  ＣＰＵ
１８  コプロセッサ
１９  クロック
２０  ＲＮＧ
２１  タイマ
３０  リーダライタターミナル
１３１  ＵＡＲＴ
【図１】
2006127361.tif 000003
【図２】
2006127361.tif 000004
【図３】
2006127361.tif 000005
【図４】
2006127361.tif 000006
【図５】
2006127361.tif 000007
【図６】
2006127361.tif 000008
【図７】
2006127361.tif 000009
【図８】
2006127361.tif 000010
【図９】
2006127361.tif 000011
【図１０】
2006127361.tif 000012
【図１１】
2006127361.tif 000013
【図１２】
2006127361.tif 000014
【図１３】
2006127361.tif 000015
【図１４】
2006127361.tif 000016
【図１５】
2006127361.tif 000017
【図１６】
2006127361.tif 000018
【図１７】
2006127361.tif 000019
【図１８】
2006127361.tif 000020