(57)【要約】 【課題】  ＩＣカードに内蔵されるＩＣチップ内でのデータ処理に要する処理時間を短縮化するとともに、目的のファイルを特定し、ＩＣカードが受信した受信コマンドメッセージを正確に実行できるＩＣカードを提供する。【解決手段】  ＩＣカードのオペレーティングシステムは、ＩＣチップ内の書き換え可能な不揮発性メモリの所定の領域に、一対の格納コマンドメッセージおよび格納レスポンスメッセージとからなる、複数の格納メッセージ組に関する情報を記録し、これらに順位を付与し、かつこれらの個数を計数する機能を有したものとし、さらに受信コマンドメッセージと格納コマンドメッセージを比較して不一致となるとき、第１位の格納メッセージ組の格納コマンドメッセージから、その内容を一つずつ順番に解釈、実行した後、最後にその不一致時の受信コマンドメッセージを実行処理する。【選択図】  図１
2010122877.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から送信されるコマンドメッセージを受信し、前記コマンドメッセージの内容を解釈して、前記コマンドメッセージを実行するオペレーティングシステムを搭載し、かつ前記コマンドメッセージの実行結果を前記上位装置へ返信するＩＣカードであって、
前記オペレーティングシステムが、書き換え可能な不揮発性メモリの所定の領域に格納される、一対の格納コマンドメッセージおよび格納レスポンスメッセージからなる複数の格納メッセージ組に関する情報を記録する機能と、
前記オペレーティングシステムが、前記複数の格納メッセージ組に順位を付与する機能と、
前記オペレーティングシステムが、前記複数の格納メッセージ組の個数を計数する機能と、
前記オペレーティングシステムが、前記ＩＣカードが受信した受信コマンドメッセージと、前記複数の格納メッセージ組の個数以内の値であってかつ前記受信コマンドメッセージの受信回数の値と一致する順位に位置する格納メッセージ組に属する格納コマンドメッセージを、比較する機能を有するとともに、
前記オペレーティングシステムが、前記受信コマンドメッセージと前記格納コマンドメッセージとを比較し、前記受信コマンドメッセージの内容および／またはコマンドメッセージ長と、前記格納コマンドメッセージの内容および／またはコマンドメッセージ長の一致を確認した場合、
前記オペレーティングシステムは、前記一致を確認した任意の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージの内容の解釈、および前記受信コマンドメッセージの実行をせず、前記任意の格納メッセージ組の格納レスポンスメッセージを、前記上位装置に返信する機能を有したことを特徴とするＩＣカード。
【請求項２】
前記オペレーティングシステムが、前記受信コマンドメッセージと前記格納コマンドメッセージとを比較し、前記受信コマンドメッセージの内容および／またはコマンドメッセージ長と、前記格納コマンドメッセージの内容および／またはコマンドメッセージ長の不一致を確認した場合、
前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第１位から始まり、前記不一致を確認した任意の格納メッセージ組の一つ前の格納メッセージ組が位置する順位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、
前記不一致を確認した任意の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージの内容の解釈、実行をして、
前記不一致を確認した任意の格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージを、前記受信コマンドメッセージと前記受信コマンドメッセージの実行結果である送信レスポンスメッセージへ書き換えるとともに、
前記不一致を確認した任意の格納メッセージ組より後の順位にあるすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの双方を無効化した後、
前記送信レスポンスメッセージを、前記上位装置に返信する機能を有したことを特徴とする請求項１に記載のＩＣカード。
【請求項３】
前記受信回数の値が前記複数の格納メッセージ組の個数の値を超える場合、
前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第１位から始まり最後位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、
前記複数の格納メッセージ組の個数の値を超えた位置で受信した受信コマンドメッセージの内容の解釈、実行をして、
一対の、前記受信コマンドメッセージと前記受信コマンドメッセージの実行結果である送信レスポンスメッセージからなる格納メッセージ組を、最後位の格納メッセージ組の後に追記するとともに、
前記送信レスポンスメッセージを、前記上位装置に返信する機能を有したことを特徴とする請求項１ないし２に記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードのデータ処理技術に係り、特にデータ処理に要する処理時間を短縮化したＩＣカードに関する。
【背景技術】
【０００２】
上位装置とＩＣカードが通信する際、応答性が良好なＩＣカードを実現することは、ＩＣカードを利用する利用者、あるいはＩＣカードシステムを提供する事業者等にとって、非常に有効である。とりわけＩＣカードに内蔵されるＩＣチップ内でのデータ処理を高速化し処理時間を短縮化する技術は、上位装置とＩＣカードとの通信速度を高める有効な手段である。このようなデータ処理に要する処理時間を短縮化する技術は、従来から数多く提案されている。
【０００３】
例えば特許文献１には、過去に命令が処理したデータの内容を用いて、命令実行の高速化を図るため、既実行の各命令に対し演算の入力と結果のデータ、主記憶の読み出し／書き込みアドレスとデータなどを記憶する履歴記憶を用意し、再度同じ命令を実行するときに履歴記憶を参照し、履歴が残っていれば、演算命令の場合には現在の入力データと履歴データを比較し、読み出し／書き込み命令の場合には現在の読み出し／書き込みデータとアドレスを履歴と比較し、それらが同じであれば、演算の実行をスキップして履歴記憶の結果データを現在の結果として用いるか、現在の読み出し／書き込みをスキップすることにより高速化を達成し、これにより、各命令の実行に要するパイプラインステージ数を短縮でき、その結果、命令列の実行時間を短縮し、メモリに対する不要なロード／ストア操作を抑止することから、キャッシュ制御やアドレス変換など記憶域管理の負荷を軽減することができ、ロード／ストア命令の平均実行時間を短縮できるとする技術について開示されている。
【０００４】
また、特許文献２には、データ依存関係のある後続命令を投機的に実行する際に、本来の演算器を使用せず、演算器競合を回避するために、過去の命令実行結果をそのまま命令の実行結果として出力する履歴演算器と、オペランドが過去の値と同一の命令を履歴演算器に発行する命令発行回路を設け、投機実行そのものを省略して処理時間を短縮する技術について開示されている。
【０００５】
また、特許文献３には、特定パターンのコマンド列が認められる場合に、ホスト装置から発行されるコマンドの列を予測して動作することで、ホスト装置からみた該当する処理に要する処理時間を短縮する技術について開示されている。
【０００６】
【特許文献１】国際公開ＷＯ９８／１１４８４号パンフレット
【特許文献２】国際公開ＷＯ９９／４５４６３号パンフレット
【特許文献３】特開平１０−１８７５７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
一般に、ＩＣカードは、少なくともＣＰＵとメモリ装置を有したＩＣチップを内蔵している。メモリ装置は、読み出し専用の不揮発性メモリであるＲＯＭ、書き換え可能な不揮発性メモリであるＥＥＰＲＯＭ、および書き換え可能な揮発性メモリであるＲＡＭで構成される。通常、ＲＯＭにはオペレーティングシステムが搭載され、ＥＥＰＲＯＭにはアプリケーションプログラムおよびユーザデータが搭載、および格納され、ＲＡＭはデータ処理の作業領域として使用される。
【０００８】
また、ＩＣカードは、上位装置、例えばリーダライタに外部接続されたコンピュータ、あるいはＭＰＵ等を内蔵したリーダライタ等と情報のやりとりを行なう。情報のやりとりは、各々の接触端子を物理的に結合して行なう接触方式、もしくは無線等を利用した非接触方式による通信方式が用いられる。
【０００９】
なお、前記ＩＣカードが、複数のアプリケーションを実行することが可能であるマルチアプリケーション型のＩＣカードである場合は、前記ＥＥＰＲＯＭには複数のアプリケーションプログラムまたはアプリケーションデータが搭載され、前記ＲＯＭには複数のアプリケーションに対応したオペレーティングシステムが搭載される。
【００１０】
マルチアプリケーション型のＩＣカードに搭載されるオペレーティングシステムは、各アプリケーションの管理、データの管理、および上位装置から送信されるコマンドメッセージの内容を解釈して実行し、データ処理全体の制御を担う機能を備える。通常、ＩＣカードが受信したコマンドメッセージは、ＩＣカードのＩＣチップ内のＲＯＭに記録されているコマンドテーブルに基づいて選択され、実行処理される。
【００１１】
また、上位装置とＩＣカードとの間の情報のやりとりは、上位装置からＩＣカードへ向けてコマンドメッセージを送信し、このコマンドメッセージに応答する返事として、ＩＣカードから上位装置へ向けてレスポンスメッセージを返信することによって実行される。通常は、このような種々のコマンドメッセージおよびレスポンスメッセージの送受信プロセスを繰り返し実行することによって、上位装置とＩＣカード間の通信が成立している。
【００１２】
図１４は、上位装置とＩＣカード間の通信におけるコマンドメッセージおよびレスポンスメッセージの送受信を実行するシーケンスの一例を示した概略図である。図１４は、例えば複数のアプリケーションを実行することが可能であるマルチアプリケーション型のＩＣカードと上位装置とが通信を行い、上位装置が、前記ＩＣカードを活性化して複数のアプリケーションの中から任意のアプリケーションを選択した後、照合キーによる認証を行い、前記ＩＣカード内の書き換え可能な不揮発性メモリの所定の領域に格納される任意のファイルのＩＤデータを読み出すまでのプロセスを示している。
【００１３】
図１４において、始めに上位装置は、ＩＣカードへ向けて活性化コマンドメッセージを送信する。これを受信したＩＣカードは、前記活性化コマンドメッセージを実行し、上位装置へ向けて前記活性化コマンドメッセージが実行完了したことを通知するためのレスポンスメッセージを返信する。次に上位装置は、前記レスポンスメッセージを受信した後、ＩＣカードへ向けてアプリケーション選択コマンドメッセージを送信する。これを受信したＩＣカードは、前記アプリケーション選択コマンドメッセージを実行し、上位装置へ向けて前記アプリケーション選択コマンドメッセージが実行完了したことを通知するためのレスポンスメッセージを返信する。引き続き上位装置は、前記レスポンスメッセージを受信した後、ＩＣカードへ向けて認証コマンドメッセージを送信する。これを受信したＩＣカードは、前記認証コマンドメッセージを実行し、上位装置へ向けて前記認証コマンドメッセージが実行完了したことを通知するためのレスポンスメッセージを返信する。さらに上位装置は、前記レスポンスメッセージを受信した後、ＩＣカードへ向けてＩＤ読み出しコマンドメッセージを送信する。これを受信したＩＣカードは、前記ＩＤ読み出しコマンドメッセージを実行し、上位装置へ向けて前記ＩＤ読み出しコマンドメッセージが実行完了したことを通知するためのレスポンスメッセージを返信する。このように上位装置とＩＣカードは、コマンドメッセージおよびレスポンスメッセージを交互に繰り返し送信して通信を行っている。
【００１４】
上述のように上位装置とＩＣカード間でコマンドメッセージおよびレスポンスメッセージが繰り返し送信されるとき、ＩＣカードに内蔵されているＩＣチップのデータ処理回路においては、各コマンドメッセージに対応した、書き換え可能な不揮発性メモリの所定の領域に格納されている特定のデータを指定したり、読み出したり、あるいは書き換えたりする処理を頻繁に行なわなければならない。とりわけ複数のデータに対して交互にアクセスがなされる場合、非常に複雑な処理となってしまう。また、ＩＣカードがマルチアプリケーション型のＩＣカードである場合、複数のアプリケーション各々に対して、同様の処理を実行しなければならないため、さらに煩雑な処理となる。
【００１５】
ところで、マルチアプリケーション型のＩＣカードは、複数のアプリケーションを一枚のＩＣカードで実行できる利便性の高いＩＣカードであるが、実際の利用においては、単一の特定アプリケーションのみを使用する場合も非常に多い。このような、事実上単一のアプリケーションのみを使用するマルチアプリケーション型のＩＣカード、あるいは単一のアプリケーションのみを搭載したＩＣカードにおいては、上位装置から送信される複数のコマンドメッセージ、および前記複数のコマンドメッセージの実行順序が事実上固定され、上位装置とＩＣカード間の毎回のアクセスにおいて、コマンドメッセージおよびレスポンスメッセージを実行する特定のシーケンスのほとんどが変更されない状態で運用される場合がある。例えば、毎回同じアクセスを実行し、個人を特定するためだけに運用される入退室管理用ＩＣカードや社員証ＩＣカード等が具体例として挙げられる。
【００１６】
上述したような条件下で、事実上単一のアプリケーションのみを使用するマルチアプリケーション型のＩＣカード、あるいは単一のアプリケーションのみを搭載したＩＣカードを運用する場合、図１４に示したような、その都度コマンドメッセージを実行し、レスポンスメッセージを返信する方法は、非効率的であり、その結果、処理時間の低下を招くという問題がある。
【００１７】
また、データ処理に要する時間を短縮化するため、上位装置から受信したコマンドメッセージを実行する際に、ＩＣカードに内蔵されたＩＣチップ内の書き換え可能な不揮発性メモリの所定の領域に、過去に実行したコマンドメッセージおよびその実行結果に関する情報、すなわち履歴情報を記録しておき、再度同じコマンドメッセージを実行する際には、これに該当する履歴情報を用いてデータ処理を行う技術がいくつか提案されている。
【００１８】
以下、前記履歴情報を用いたデータ処理技術の具体例について、図１２および図１３を参照して説明する。
【００１９】
図１２は、ＩＣカードに内蔵されたＩＣチップ内の書き換え可能な不揮発性メモリの所定の領域に格納されるデータのデータ構造の一例を示す概略図である。図１２は、複数のアプリケーションを搭載することができるマルチアプリケーション型のＩＣカードにおけるデータ構造の一例を示している。
【００２０】
図１２に示すように、一般にＩＣカードに内蔵されたＩＣチップ内の書き換え可能な不揮発性メモリの所定の領域に格納されるデータは、ファイル単位で構成され、これらが階層構造をなすツリー形式のデータ構造となっている。階層の最上位にある主ファイルの配下には、複数の専用ファイルが存在し、各専用ファイルの配下には、複数の基礎ファイルが存在する。例えば主ファイルに相当する「ルートフォルダ」の直下には、二つの専用ファイル、すなわち二つのアプリケーションに対応する「アプリケーション１フォルダ」および「アプリケーション２フォルダ」と、二つの基礎ファイルである「ファイル１」および「ファイル２」と、照合を行なうための「キー１」および「キー２」とが存在する。さらに「アプリケーション１フォルダ」の直下には、三つの基礎ファイルである「ファイル１」および「ファイル２」ならびに「ファイル３」と、照合を行なうための「キー３」とが存在する。同様に、「アプリケーション２フォルダ」の直下には、二つの基礎ファイルである「ファイル１」および「ファイル２」と、照合を行なうための「キー４」とが存在する。
【００２１】
図１３は、ＩＣカードのオペレーティングシステムが上位装置から受信した受信コマンドメッセージを実行処理するプロセスを模式的に示した図である。
【００２２】
図１３は、例えば上位装置が、三つのコマンドメッセージ、すなわちアプリケーション選択コマンドメッセージ、認証コマンドメッセージ、およびＩＤ読み出しコマンドメッセージをＩＣカードに対して送信し、ＩＣカードがこれら三つのコマンドメッセージを受信し、同時にＩＣカードのオペレーティングシステムが、受信した一連のコマンドメッセージを先の順番で実行するプロセスを示している。ただしこれに先立って、上位装置からは、ＩＣカードを活性化するための活性化コマンドメッセージが送信されるが、ここでは説明を省略する。
【００２３】
始めにＩＣカードは、上位装置から、図１２に示す専用ファイルである「アプリケーション１フォルダ」を選択するコマンドメッセージ、すなわちアプリケーション選択コマンドメッセージを受信する。そしてＩＣカードのオペレーティングシステムは、書き換え可能な不揮発性メモリの所定の領域に格納される、過去に実行したコマンドメッセージおよびその実行結果に関する情報、すなわち履歴情報を参照し、受信した「アプリケーション１フォルダ」を選択するコマンドメッセージと比較する。比較した結果一致した場合、過去に実行した当該コマンドメッセージの実行結果からなるレスポンスメッセージを上位装置に返信する。
【００２４】
なお、ここで表記した履歴情報について詳しく述べると、前記履歴情報は、例えば、書き換え可能な不揮発性メモリの所定の領域に格納される格納メッセージ組として定義付けて表記され、そのうち、過去に実行したコマンドメッセージに関する情報は、格納コマンドメッセージとして定義付けて表記することができ、また、その実行結果に関する情報は、格納レスポンスメッセージとして定義付けて表記することができる。加えて、ＩＣカードが受信した受信コマンドメッセージについても、受信コマンドメッセージとして定義付けて表記することができ、その実行結果に関する情報は、送信レスポンスメッセージとして定義付けて表記することができる。
【００２５】
次にＩＣカードは、上位装置から、図１２に示す照合キーである「キー３」で照合するコマンドメッセージ、すなわち認証コマンドメッセージを受信する。そしてＩＣカードのオペレーティングシステムは、書き換え可能な不揮発性メモリの所定の領域に格納される、格納コマンドメッセージを参照し、受信した「キー３」で照合するコマンドメッセージと比較する。比較した結果一致した場合、過去に実行した当該コマンドメッセージの実行結果であるレスポンスメッセージを上位装置に返信する。
【００２６】
引き続きＩＣカードは、上位装置から、図１２に示す基礎ファイルである「ファイル２」を読み出すコマンドメッセージ、すなわちＩＤ読み出しコマンドメッセージを受信する。そしてＩＣカードのオペレーティングシステムは、書き換え可能な不揮発性メモリの所定の領域に格納される、格納コマンドメッセージを参照し、受信した「ファイル２」を読み出すコマンドメッセージと比較する。しかしこの場合、オペレーティングシステムが参照した格納コマンドメッセージは、「ファイル１」を読み出す格納コマンドメッセージであり、受信した「ファイル２」を読み出す格納コマンドメッセージと一致しない。
【００２７】
そこで、オペレーションシステムは、他の適合する格納コマンドメッセージを参照しようとするが、ルートフォルダの配下にある基礎ファイルのうち、ファイル名が「ファイル２」であるものが複数存在するため、目的のファイルを特定できない。
【００２８】
つまり、オペレーティングシステムは、受信した三つのコマンドメッセージの実行順序、およびこの「ファイル２」を読み出すコマンドメッセージ以前に実行済みの二つの受信コマンドメッセージ、すなわち「アプリケーション１フォルダ」を選択するコマンドメッセージ、および「キー３」で照合するコマンドメッセージの各々と、書き換え可能な不揮発性メモリの所定の領域に格納される、これら受信コマンドメッセージに対応する格納コマンドメッセージの各々が、一致したことについては把握しているものの、この「ファイル２」を読み出すコマンドメッセージ以前に実行されたコマンドメッセージの内容、すなわち、どのアプリケーションフォルダが選択されたのかについて認識していないため、どのアプリケーションフォルダの配下にある「ファイル２」なのかを判断できず、当該コマンドメッセージを実行することができないという問題がある。
【００２９】
上述した技術の一例として、特許文献１に記載されているような、コマンドメッセージが処理したデータ内容と当該コマンドメッセージのアドレスを対にした履歴情報、換言すれば、格納メッセージ組を用いたものがある。しかしながら、上位装置から送信される複数のコマンドメッセージ、および前記複数のコマンドメッセージの実行順序が固定されている条件下においては、必ずしも適用できない。すなわち特許文献１に記載の技術は、単に、参照する格納メッセージ組の中に、受信した受信コマンドメッセージに関する情報、換言すれば受信コマンドメッセージと、書き換え可能な不揮発性メモリに格納された、過去に実行した該当するコマンドメッセージの実行結果に関する情報、換言すれば、格納コマンドメッセージが一致した場合に、当該コマンドメッセージの実行処理を省略して処理時間の短縮化を実現しようとするものであり、コマンドメッセージの実行順序に対する考慮がなされていないため、上述の問題は解決できない。
【００３０】
また、特許文献２の記載の技術も、特許文献１と同様に履歴情報、すなわち格納メッセージ組を用いて処理時間の短縮化を実現しようとするものである。しかしこの技術では、格納メッセージ組の中にある過去のコマンドメッセージの内容、例えば格納コマンドメッセージ、およびその実行結果、例えば格納レスポンスメッセージと、受信した最初の受信コマンドメッセージの内容および当該受信コマンドメッセージの実行結果に対してのみ比較を行なって、それが一致したか否かを確認するものであり、後続する受信コマンドメッセージの内容に対しての比較は行なわない。そのため上述の問題は解決できない。
【００３１】
また、特許文献３の記載の技術は、上位装置から発行される複数のコマンドメッセージのパターンがシステム起動の度に同じであるとき、これを履歴情報、例えば格納メッセージ組として保持し、この履歴情報を元に、あらかじめ予測して、前記パターンのコマンドメッセージ列を実行処理し、処理時間の短縮化を実現しようとするものである。しかしこの技術では、受信した受信コマンドメッセージ列と、これに対応する履歴情報にあるコマンドメッセージ列とを比較する際、両者のコマンドメッセージ列の中で一致しないコマンドメッセージがあった場合、これを優先して実行処理するため、コマンドメッセージの実行順序が固定されている条件下においては適用できない。したがって上述の問題は解決できない。
【００３２】
すなわち従来の技術では、ＩＣカードが上位装置から受信する受信コマンドメッセージを実行する際、受信した受信コマンドメッセージと、これに対応した前記履歴情報、すなわち格納コマンドメッセージとを比較して不一致となる場合、目的のファイルを特定できず、前記受信コマンドメッセージを正確に実行することができない。
【００３３】
本発明は、上記事情に鑑みてなされたものでその目的は、事実上単一のアプリケーションのみを使用するマルチアプリケーション型のＩＣカード、あるいは単一のアプリケーションのみを搭載したＩＣカードにおいて、上位装置から送信される複数のコマンドメッセージ、および前記複数のコマンドメッセージの実行順序が事実上固定され、コマンドメッセージおよびレスポンスメッセージを送信する特定のシーケンスが変更されない状態で運用される際、その都度行なわれるコマンドメッセージの内容の解釈および当該コマンドメッセージの実行処理をスキップしてこれを省略するための簡易な管理機能をＩＣカードのオペレーティングシステムに具備させ、この処理を省略した分だけ、全体のデータ処理に要する時間を短縮するとともに、受信した受信コマンドメッセージと、これに対応した格納コマンドメッセージとを比較して不一致となる場合であっても、目的のファイルを特定し、前記受信コマンドメッセージを正確に実行することができるＩＣカードを提供することにある。
【課題を解決するための手段】
【００３４】
上述した課題を解決すべく、本発明者らは種々の検討の結果、以下の解決手段を見出した。すなわち本発明は、上位装置がＩＣカードに向けてコマンドメッセージの送信を行い、前記コマンドメッセージを受信した前記ＩＣカードのオペレーティングシステムは、前記コマンドメッセージの内容、すなわち受信コマンドメッセージの内容を解釈して、これを実行するとともに、前記ＩＣカードは、前記受信コマンドメッセージに応答する返事としてのレスポンスメッセージを、前記上位装置に向けて返信するものであって、前記ＩＣカードのオペレーティングシステムは、自身に内蔵されるＩＣチップ内の書き換え可能な不揮発性メモリの所定の領域に、一対の、コマンドヘッダおよびコマンドボディで構成される格納コマンドメッセージと、レスポンスボディおよびレスポンストレイラで構成される格納レスポンスメッセージとからなる、複数の格納メッセージ組に関する情報を記録し、前記格納メッセージ組に順位を付与し、かつ前記格納メッセージ組の個数を計数する機能を有している。
【００３５】
さらに本発明に係るＩＣカードのオペレーティングシステムは、前記ＩＣカードが受信した受信コマンドメッセージの内容、すなわち前記コマンドヘッダおよび前記コマンドボディ各々の記述形式等、および／または受信コマンドメッセージ長、すなわち前記コマンドヘッダおよび前記コマンドボディ各々のデータ長の合計値と、前記複数の格納メッセージ組の個数以内の値であって、かつ前記受信コマンドメッセージの受信回数の値と一致する順位に位置する格納メッセージ組に属する格納コマンドメッセージの内容、すなわち前記コマンドヘッダおよび前記コマンドボディ各々の記述形式等、および／または格納コマンドメッセージ長、すなわち前記コマンドヘッダおよび前記コマンドボディ各々のデータ長の合計値を比較する。そしてその比較した結果が一致した場合、前記オペレーティングシステムは、一致を確認した格納コマンドメッセージと対をなす格納レスポンスメッセージと、前記受信コマンドメッセージが実行された場合の実行結果である送信レスポンスメッセージとは同等であるものとみなして、前記受信コマンドメッセージの実行処理を省略し、前記格納レスポンスメッセージを前記上位装置に返信するのが好適である。
【００３６】
また、前記オペレーティングシステムが、前記ＩＣカードが受信する複数のコマンドメッセージを順に実行処理する過程で、第ｎ回目の受信コマンドメッセージを実行しようとしたとき、前記第ｎ回目の受信コマンドメッセージに対応する、第ｎ位の格納メッセージ組に属する格納コマンドメッセージが異なっていることを確認、すなわち前記第ｎ回目の受信コマンドメッセージと前記第ｎ位の格納メッセージ組に属する格納コマンドメッセージとを比較した結果、不一致を確認した場合、前記オペレーティングシステムは、一旦、第１位の格納メッセージ組まで戻り、第１位から始まり、前記不一致を確認した任意の格納メッセージ組の一つ前の格納メッセージ組が位置する順位、すなわち第（ｎ−１）位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を、再度一つずつ順番に解釈、および前記格納コマンドメッセージに基づくコマンドメッセージを実行するのがよい。
【００３７】
そして上述の処理を実行した後、前記オペレーティングシステムは、前記不一致を確認した任意の格納メッセージ組、すなわち第ｎ位の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージ、すなわち第ｎ回目の受信コマンドメッセージを実行し、前記不一致を確認した第ｎ位の格納メッセージ組に属する一対の格納コマンドメッセージおよび格納レスポンスメッセージを、前記第ｎ回目の受信コマンドメッセージと前記第ｎ回目の受信コマンドメッセージの実行結果である送信レスポンスメッセージへ書き換えるのがよい。
【００３８】
さらに、前記不一致を確認した第ｎ位の格納メッセージ組より後の順位にあるすべての格納メッセージ組、すなわち第（ｎ＋１）位以降の全格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの双方を無効化し、前記オペレーティングシステムがこれらを計数できないようにするのがよい。そして、書き換えられた第ｎ位の格納メッセージ組に属する前記送信レスポンスメッセージを、前記上位装置に返信するのがよい。
【００３９】
また、前記ＩＣカードが受信する、受信コマンドメッセージの受信回数の値が、書き換え可能な不揮発性メモリの所定の領域に格納された前記複数の格納メッセージ組の個数の値を超える場合、例えば前記受信コマンドメッセージの受信回数が（ｍ＋１）回であって、前記格納メッセージ組の個数がｍ個である場合、前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第１位から始まり最後位である第ｍ位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を、上述した場合と同様に一つずつ順番に解釈、および前記格納コマンドメッセージに基づくコマンドメッセージを実行した後、前記複数の格納メッセージ組の個数の値を超えた値と一致する順番で受信した受信コマンドメッセージ、すなわち第（ｍ＋１）回目の受信コマンドメッセージを実行し、一対の、前記第（ｍ＋１）回目の受信コマンドメッセージと前記第（ｍ＋１）回目の受信コマンドメッセージの実行結果である送信レスポンスメッセージからなる格納メッセージ組を、最後位である第ｍ位の格納メッセージ組の後に追記するのがよい。そして、追記された前記送信レスポンスメッセージを、前記上位装置に返信するのがよい。
【００４０】
なお、ここで述べているコマンドメッセージとは、特定のデータ長を有するコマンドヘッダと、特定のデータ長を有するコマンドボディとで構成されたものを指す。同様にレスポンスメッセージとは、特定のデータ長を有するレスポンスボディと、特定のデータ長を有するレスポンストレイラとで構成されたものを指す。また、コマンドメッセージの内容とは、コマンドヘッダおよびコマンドボディの記述形式等を示し、同様にレスポンスメッセージの内容とはレスポンスボディおよびレスポンストレイラの記述形式等を示す。さらに、コマンドメッセージ長は、コマンドヘッダのデータ長とコマンドボディのデータ長を合計したデータ長を示す。同様にレスポンスメッセージ長は、レスポンスボディのデータ長とレスポンストレイラのデータ長を合計したデータ長を示す。
【００４１】
すなわち本発明によれば、上位装置から送信されるコマンドメッセージを受信し、前記コマンドメッセージの内容を解釈して、前記コマンドメッセージを実行するオペレーティングシステムを搭載し、かつ前記コマンドメッセージの実行結果を前記上位装置へ返信するＩＣカードであって、前記オペレーティングシステムが、書き換え可能な不揮発性メモリの所定の領域に格納される、一対の格納コマンドメッセージおよび格納レスポンスメッセージからなる複数の格納メッセージ組に関する情報を記録する機能と、前記オペレーティングシステムが、前記複数の格納メッセージ組に順位を付与する機能と、前記オペレーティングシステムが、前記複数の格納メッセージ組の個数を計数する機能と、前記オペレーティングシステムが、前記ＩＣカードが受信した受信コマンドメッセージと、前記複数の格納メッセージ組の個数以内の値であってかつ前記受信コマンドメッセージの受信回数の値と一致する順位に位置する格納メッセージ組に属する格納コマンドメッセージを、比較する機能を有するとともに、前記オペレーティングシステムが、前記受信コマンドメッセージと前記格納コマンドメッセージとを比較し、前記受信コマンドメッセージの内容および／またはコマンドメッセージ長と、前記格納コマンドメッセージの内容および／またはコマンドメッセージ長の一致を確認した場合、前記オペレーティングシステムは、前記一致を確認した任意の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージの内容の解釈、および前記受信コマンドメッセージの実行をせず、前記任意の格納メッセージ組の格納レスポンスメッセージを、前記上位装置に返信する機能を有したＩＣカードが得られる。
【００４２】
本発明によれば、前記オペレーティングシステムが、前記受信コマンドメッセージと前記格納コマンドメッセージとを比較し、前記受信コマンドメッセージの内容および／またはコマンドメッセージ長と、前記格納コマンドメッセージの内容および／またはコマンドメッセージ長の不一致を確認した場合、前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第１位から始まり、前記不一致を確認した任意の格納メッセージ組の一つ前の格納メッセージ組が位置する順位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、前記不一致を確認した任意の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージの内容の解釈、実行をして、前記不一致を確認した任意の格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージを、前記受信コマンドメッセージと前記受信コマンドメッセージの実行結果である送信レスポンスメッセージへ書き換えるとともに、前記不一致を確認した任意の格納メッセージ組より後の順位にあるすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの双方を無効化した後、前記送信レスポンスメッセージを、前記上位装置に返信する機能を有した前記ＩＣカードが得られる。
【００４３】
本発明によれば、前記受信回数の値が前記複数の格納メッセージ組の個数の値を超える場合、前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第１位から始まり最後位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、前記複数の格納メッセージ組の個数の値を超えた位置で受信した受信コマンドメッセージの内容の解釈、実行をして、一対の、前記受信コマンドメッセージと前記受信コマンドメッセージの実行結果である送信レスポンスメッセージからなる格納メッセージ組を、最後位の格納メッセージ組の後に追記するとともに、前記送信レスポンスメッセージを、前記上位装置に返信する機能を有した前記ＩＣカードが得られる。
【発明の効果】
【００４４】
本発明は、上位装置と、事実上単一のアプリケーションのみを使用するマルチアプリケーション型のＩＣカード、あるいは単一のアプリケーションを搭載したＩＣカードにおいて、上位装置から送信される複数のコマンドメッセージ、および前記複数のコマンドメッセージの実行順序が事実上固定され、コマンドメッセージおよびレスポンスメッセージを送信する特定のシーケンスが変更されない状態で運用される際、その都度行なわれるコマンドメッセージの内容の解釈および当該コマンドメッセージの実行処理をスキップして、これを省略することが可能な機能、すなわち書き換え可能な不揮発性メモリの所定の領域に、順位が付与され、かつその個数が計測されて管理されている、一対の格納コマンドメッセージおよび格納レスポンスメッセージからなる複数の格納メッセージ組を格納し、受信した受信コマンドメッセージと前記格納コマンドメッセージを比較して一致した場合は、前記受信コマンドメッセージの内容の解釈および前記受信コマンドメッセージの実行をスキップする機能を、ＩＣカードのオペレーティングシステムに具備することにより、前記格納レスポンスメッセージを、前記受信コマンドメッセージの実行結果と同等のものであるとみなし、前記格納レスポンスメッセージを上位装置へ返信することができる。その結果、この処理を省略した分だけ全体の処理時間を短縮し、結果として上位装置とＩＣカード間の通信時間の短縮化が実現できる。さらに、受信コマンドメッセージと、これに対応した格納コマンドメッセージとを比較して不一致となる場合であっても、目的のファイルを特定し、前記受信コマンドメッセージを正確に実行することができる。
【発明を実施するための最良の形態】
【００４５】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００４６】
図１は、本発明のＩＣカードのコマンドメッセージおよびレスポンスメッセージの処理過程を説明するフローチャートである。図２は、本発明のＩＣカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージがすべて一致する場合のデータ処理を説明する図である。図３は、本発明のＩＣカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合のデータ処理を説明する図である。また図４は、本発明のＩＣカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数を超える場合のデータ処理を説明する図である。
【００４７】
図１において、本発明のＩＣカードは、上位装置と通信する際、まず始めに外部からの電力の供給を受け、電源オン状態、すなわち活性化された状態となる（ステップＳ１）。ただし、ＩＣカードが接触方式である場合は、ＩＣカードのＩＣチップの接続端子を介して電力が供給され、また非接触方式である場合は、ＩＣカードに内蔵された電力受信アンテナ等を介して無線等により電力が供給される。
【００４８】
そして引き続きＩＣカードは、イニシャライズ処理、すなわちＩＣカード内にあるＣＰＵのリセット、内蔵メモリのチェック等を実行する（ステップＳ２）。その後、ＩＣカードは、上位装置から送信される任意のコマンドメッセージを受信する（ステップＳ３）。
【００４９】
以下、受信したコマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージがすべて一致する場合のデータ処理について、図２も参照しながら説明する。図２において、例えばＩＣカードは、総計３回のコマンドメッセージを受信し、これに応答するレスポンスメッセージを上位装置に返信するものである。
【００５０】
また、ＩＣカードに内蔵されたＩＣチップ内の書き換え可能な不揮発性メモリ（以下、単にメモリという）の所定の領域には、５個の格納メッセージ組に関する情報が記録され格納されている。各々の格納メッセージ組は格納コマンドメッセージとこれに対応する格納レスポンスメッセージで構成されるものである。
【００５１】
また、各々の格納メッセージ組には、第１位から最後位である第５位までの順位が割り振られている。これらの順位は、ＩＣカードのオペレーティングシステムによって付与され、同時にオペレーティングシステムは、これら格納メッセージ組の個数を計数し管理している。
【００５２】
始めに、ＩＣカードは第１回目のコマンドメッセージを上位装置から受信する（ステップＳ３）。そしてＩＣカードのオペレーティングシステムは、受信第１回目の受信コマンドメッセージの「受信コマンドメッセージ１」と、メモリの所定の領域に格納されている第１位の格納メッセージ組に属する「格納コマンドメッセージ１」を比較する（ステップＳ４）。比較した結果、各々のコマンドメッセージの内容および／またはコマンドメッセージ長が一致した場合（ステップＳ５）、オペレーティングシステムは、受信第１回目の受信コマンドメッセージの「受信コマンドメッセージ１」のコマンドメッセージの内容を解釈、および当該受信コマンドメッセージを実行せず、当該受信コマンドメッセージを実行した場合の実行結果と同等であるとみなした、前記第１位の格納メッセージ組に属する「格納レスポンスメッセージ１」からなるレスポンスメッセージを上位装置に返信する（ステップＳ７）。
【００５３】
次に、ＩＣカードは第２回目のコマンドメッセージを上位装置から受信する（ステップＳ３）。そしてＩＣカードのオペレーティングシステムは、受信第１回目の場合と同様に、受信第２回目の受信コマンドメッセージの「受信コマンドメッセージ２」と、メモリの所定の領域に格納されている第２位の格納メッセージ組に属する「格納コマンドメッセージ２」を比較する（ステップＳ４）。比較した結果、各々のコマンドメッセージの内容および／またはコマンドメッセージ長が一致した場合（ステップＳ５）、オペレーティングシステムは、受信第１回目の場合と同様に、受信第２回目の受信コマンドメッセージの「受信コマンドメッセージ２」のコマンドメッセージの内容を解釈、および当該受信コマンドメッセージを実行せず、当該受信コマンドメッセージを実行した場合の実行結果と同等であるとみなした、前記第２位の格納メッセージ組に属する「格納レスポンスメッセージ２」からなるレスポンスメッセージを上位装置に返信する（ステップＳ７）。
【００５４】
そして、ＩＣカードは最後のコマンドメッセージである第３回目のコマンドメッセージを上位装置から受信する（ステップＳ３）。この場合も上述した受信第１回目、または受信第２回目の場合と同様の処理がなされ、メモリの所定の領域に格納されている第３位の格納メッセージ組に属する「格納レスポンスメッセージ３」からなるレスポンスメッセージを上位装置に返信して一連の処理を完了する。
【００５５】
このように、ＩＣカードが受信した受信コマンドメッセージと、メモリの所定の領域に格納された、受信コマンドメッセージの受信回数の値と同一の値の順位にある格納メッセージ組に属する格納コマンドメッセージを比較し、その一致をみた場合、受信した受信コマンドメッセージの内容の解釈、および前記受信コマンドメッセージの実行にかかる処理をまるごとスキップする分、処理時間を短縮することができる。
【００５６】
次に、受信したコマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合のデータ処理について、図１および図３を参照しながら説明する。図３において、例えばＩＣカードは、総計ｎ回（ただし、「ｎ」は任意の受信回数を示す）のコマンドメッセージを受信し、これに応答するレスポンスメッセージを上位装置に返信するものである。
【００５７】
またメモリの所定の領域には、ｎ個以上の格納メッセージ組に関する情報が記録され格納されている。各々の格納メッセージ組は格納コマンドメッセージとこれに対応する格納レスポンスメッセージで構成されるものである。また各々の格納メッセージ組には、上述した場合と同様に、オペレーティングシステムによって順位が付与され、同時にオペレーティングシステムは、これら格納メッセージ組の個数を計数し管理している。
【００５８】
図３において、ＩＣカードは、第１回目から第（ｎ−１）回目までのコマンドメッセージの受信、およびこれに応答する、上位装置に向けたレスポンスメッセージの返信を既に完了している。上位装置へレスポンスメッセージを返信するまでの過程については、上述した場合と同様であるので、ここでの説明は省略する。
【００５９】
その後、ＩＣカードは、第ｎ回目のコマンドメッセージを受信する（ステップＳ３）。そしてオペレーティングシステムは、受信第ｎ回目の受信コマンドメッセージの「受信コマンドメッセージｎ」と、メモリの所定の領域に格納されている第ｎ位の格納メッセージ組に属する「格納コマンドメッセージｎ」を比較する（ステップＳ４）。比較した結果、各々のコマンドメッセージの内容および／またはコマンドメッセージ長は一致せず（ステップＳ５）、無効値でもなかった（ステップＳ６）。このときＩＣカードのオペレーティングシステムは、一旦、第１位の格納メッセージ組まで戻り、第１位から始まり、前記不一致を確認した第ｎ位の格納メッセージ組の一つ前の格納メッセージ組が位置する順位、すなわち第（ｎ−１）位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を、再度一つずつ順番に解釈、および前記格納コマンドメッセージを実行する（ステップＳ８）。
【００６０】
次いでオペレーティングシステムは、受信第ｎ回目の受信コマンドメッセージの内容の解釈、および前記受信コマンドメッセージを実行する（ステップＳ９）。引き続きオペレーティングシステムは、不一致を確認した受信第ｎ回目の受信コマンドメッセージの「受信コマンドメッセージｎ」を、メモリの所定の領域に格納された第ｎ位の格納メッセージ組に属する「格納コマンドメッセージｎ」と入れ換え、書き換え処理を実行する。同時に、受信第ｎ回目の受信コマンドメッセージの実行結果である「送信レスポンスメッセージｎ」を、メモリの所定の領域に格納された第ｎ位の格納メッセージ組に属する「格納レスポンスメッセージｎ」と入れ換え、書き換え処理を実行する（ステップＳ１０）。
【００６１】
これにより第ｎ位の格納メッセージ組は、前記「受信コマンドメッセージｎ」と前記「送信レスポンスメッセージｎ」から構成される新たな第ｎ位の格納メッセージ組として更新されメモリ上に保持される。
【００６２】
そして、オペレーティングシステムは、不一致を確認した第ｎ位の格納メッセージ組より後の順位にあるすべての格納メッセージ組、すなわち第（ｎ＋１）位以降の全格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの双方に無効値を適用して無効化し、オペレーティングシステムがこれらを計数できないようにする（ステップＳ１１）。
【００６３】
その後、オペレーティングシステムは、書き換えられた第ｎ位の格納メッセージ組に属する「送信レスポンスメッセージｎ」からなる送信レスポンスメッセージを上位装置に返信する（ステップＳ１２）。
【００６４】
このように、本発明のＩＣカードのオペレーティングシステムは、一連の処理において、比較した受信コマンドメッセージと格納コマンドメッセージの不一致があるとき、第１位の格納メッセージ組から、前記不一致を確認した任意の格納メッセージ組の一つ前の格納メッセージ組が位置する順位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、最後にその不一致時の受信コマンドメッセージを実行処理するものである。
【００６５】
次に、受信したコマンドメッセージの受信回数が格納メッセージ組の個数を超える場合のデータ処理について、図１および図４を参照しながら説明する。図４において、例えばＩＣカードは、総計（ｍ＋１）回（ただし、「ｍ」は任意の受信回数を示す）のコマンドメッセージを受信し、これに応答するレスポンスメッセージを上位装置に返信するものである。
【００６６】
またメモリの所定の領域には、ｍ個の格納メッセージ組に関する情報が記録され格納されている。各々の格納メッセージ組は格納コマンドメッセージとこれに対応する格納レスポンスメッセージで構成されるものである。また各々の格納メッセージ組には、上述した場合と同様に、オペレーティングシステムによって、第１位から第ｍ位まで順位が付与され、同時にオペレーティングシステムは、これら格納メッセージ組の個数を計数し管理している。なおこの場合、メモリの所定の領域に格納される第（ｍ＋１）位以降の格納メッセージ組すべてには無効値が適用されている。
【００６７】
図４において、ＩＣカードは、第１回目から第ｍ回目までのコマンドメッセージの受信、およびこれに応答する、上位装置に向けたレスポンスメッセージの返信を既に完了している。上位装置へレスポンスメッセージを返信するまでの過程については、上述した場合と同様であるのでここでの説明は省略する。
【００６８】
その後、ＩＣカードは、第（ｍ＋１）回目のコマンドメッセージを受信する（ステップＳ３）。そしてオペレーティングシステムは、受信第（ｍ＋１）回目の受信コマンドメッセージの「受信コマンドメッセージ（ｍ＋１）」と、メモリの所定の領域に格納されている第（ｍ＋１）位の格納メッセージ組に属する格納コマンドメッセージとを比較する（ステップＳ４）。比較した結果、第（ｍ＋１）位の格納メッセージ組には対応する格納コマンドメッセージが存在せず、オペレーティングシステムは、これを無効値と判断し（ステップＳ５、およびステップＳ６）、上述した場合と同様に、一旦、第１位の格納メッセージ組まで戻り、第１位から第ｍ位の格納メッセージ組に属する格納コマンドメッセージの内容を、再度一つずつ順番に解釈、および前記格納コマンドメッセージに基づくコマンドメッセージを実行する（ステップＳ１３）。
【００６９】
次いでオペレーティングシステムは、受信第（ｍ＋１）回目の受信コマンドメッセージの内容の解釈、および実行する（ステップＳ１４）。引き続きオペレーティングシステムは、受信第（ｍ＋１）回目の受信コマンドメッセージの「受信コマンドメッセージ（ｍ＋１）」と前記受信第（ｍ＋１）回目の受信コマンドメッセージの実行結果である「送信レスポンスメッセージ（ｍ＋１）」から構成される格納メッセージ組を、メモリの所定の領域に格納された最後位である第ｍ位の格納メッセージ組の後に追記する（ステップＳ１５）。
【００７０】
これにより第（ｍ＋１）位の格納メッセージ組は、前記「受信コマンドメッセージ（ｍ＋１）」と前記「送信レスポンスメッセージ（ｍ＋１）」から構成される新たな第（ｍ＋１）位の格納メッセージ組として更新されメモリ上に保持される。
【００７１】
その後、オペレーティングシステムは、追記された第（ｍ＋１）位の格納メッセージ組に属する「送信レスポンスメッセージ（ｍ＋１）」からなるレスポンスメッセージを上位装置に返信する（ステップＳ１２）。
【００７２】
このように、本発明のＩＣカードのオペレーティングシステムは、一連の処理において、受信した受信コマンドメッセージに対応する格納コマンドメッセージを有する格納メッセージ組がメモリ上にないときは、当該コマンドメッセージを実行して、その受信コマンドメッセージと、当該コマンドメッセージの実行結果である送信レスポンスメッセージからなる格納メッセージ組を追記してメモリ上に記録するものである。
【００７３】
以下、上述した本発明を実施するための最良の形態で示したＩＣカードを用いて、上位装置と通信を実行する際、オペレーティングシステムが実行するデータ処理の実施例について、図５から図１１を用いて説明する。
【実施例】
【００７４】
本実施例で用いたＩＣカードは、上位装置と無線にて通信を行う非接触ＩＣカードであり、複数のアプリケーションを搭載可能で、かつ複数のアプリケーションに対応可能なオペレーティングシステムを搭載したマルチアプリケーション型ＩＣカードである。なお、上位装置が送信、すなわちＩＣカードが受信する受信コマンドメッセージは総計３個であり、これら受信コマンドメッセージの内容は変更されることなく固定されたもので、かつその受信順序も固定されているものとする。ＩＣカードが受信する受信コマンドメッセージは、受信順に、「アプリケーション選択」コマンドメッセージ、「認証」コマンドメッセージ、および「ＩＤ読み出し」コマンドメッセージである。
【００７５】
図５は、本発明のＩＣカードに係る各受信コマンドメッセージの内容、レスポンスメッセージの内容、およびそのデータ長を示す図である。
【００７６】
図５において、例えばコマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」の受信コマンドメッセージあるいは格納コマンドメッセージ（以下、単にコマンドメッセージという）は、コマンドヘッダとコマンドボディで構成され、そのコマンドメッセージの内容は、各々「選択コマンド」および「アプリケーション名」である。そして各々のデータ長は、「５ｂｙｔｅ」および「１６ｂｙｔｅ」である。
【００７７】
また、コマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」の送信レスポンスメッセージあるいは格納レスポンスメッセージ（以下、単にレスポンスメッセージという）は、レスポンスボディとレスポンストレイラで構成され、そのレスポンスメッセージの内容は、レスポンスボディについては該当するものはなく、レスポンストレイラについては「レスポンスステータス」である。そして各々のデータ長は、「０ｂｙｔｅ」および「２ｂｙｔｅ」である。
【００７８】
これら各々のデータ長を合算すると、コマンドメッセージ全体のデータ長は、「２１ｂｙｔｅ」となり、レスポンスメッセージ全体のデータ長は、「２ｂｙｔｅ」となる。よってコマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」に係るコマンドメッセージおよびレスポンスメッセージの総データ長は「２３ｂｙｔｅ」である。
【００７９】
同様に、コマンド番号「Ｃ２」である受信第２回目の「認証」に係るデータ長、およびコマンド番号「Ｃ３」である受信第３回目の「ＩＤ読み出し」に係るデータ長については図５に示すとおりである。なお、本実施例において、ＩＤのデータ長は、「８ｂｙｔｅ」としている。
【００８０】
図６は、本発明のＩＣカードに係る１ｂｙｔｅあたりのコマンドメッセージ比較処理に要する処理時間を示す図である。
【００８１】
図６に示すように、コマンドメッセージ比較処理、すなわち任意の受信コマンドメッセージと、これに対応し、かつメモリの所定の領域に格納されている任意の格納メッセージ組に属する格納コマンドメッセージを比較する際に実行される処理は、「タスク１」、「タスク２」、および「タスク３」とから構成され、各々の１ｂｙｔｅあたりの処理時間は、「０．００４ｍｓｅｃ」、「０．００２ｍｓｅｃ」、および「０．００４ｍｓｅｃ」である。よって１ｂｙｔｅあたりのコマンドメッセージ比較処理に要する処理時間は、これらの合計「０．０１０ｍｓｅｃ」である。なお、図６に示した処理時間は、ＩＣチップ命令セットのサイクル数により算出したものである。
【００８２】
図７は、本発明のＩＣカードに係る１ｂｙｔｅあたりの格納メッセージ組書き込み処理に要する処理時間を示す図である。
【００８３】
図７に示すように、格納メッセージ組書き込み処理、すなわち任意の受信コマンドメッセージと、これに対応する送信レスポンスメッセージを、メモリ上の任意の書き込み用レジスタへ記録する際に実行される処理は、「タスク１」、および「タスク２」とから構成され、各々の処理時間は、「０．００４ｍｓｅｃ」、および「０．００４ｍｓｅｃ」であり、１ｂｙｔｅあたりの格納メッセージ組書き込み処理に要する処理時間は、これらの合計「０．００８ｍｓｅｃ」である。なお、図７に示した処理時間は、ＩＣチップ命令セットのサイクル数により算出したものである。
【００８４】
図８は、本発明のＩＣカードに係る各受信コマンドメッセージのコマンドメッセージ比較処理、および格納メッセージ組書き込み処理に要する処理時間を示す図である。
【００８５】
図８において、例えばコマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」のコマンドメッセージ比較処理に要する処理時間は、１ｂｙｔｅあたりのコマンドメッセージ比較処理に要する処理時間「０．０１０ｍｓｅｃ」と、当該受信コマンドメッセージのデータ長「２１ｂｙｔｅ」との積によって算出され、その値は、「０．０１０ｍｓｅｃ／ｂｙｔｅ」×「２１ｂｙｔｅ」＝「０．２１０ｍｓｅｃ」である。
【００８６】
また、コマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」の格納メッセージ組書き込み処理に要する処理時間は、１ｂｙｔｅあたりの格納メッセージ組書き込み処理に要する処理時間「０．００８ｍｓｅｃ」と、当該受信コマンドメッセージおよび送信レスポンスメッセージの総データ長「２３ｂｙｔｅ」との積、およびこれにメモリの書き込み待ち時間「２．０００ｍｓｅｃ」を加えて算出され、その値は、「０．００８ｍｓｅｃ／ｂｙｔｅ」×「２３ｂｙｔｅ」＋「２．０００ｍｓｅｃ」＝「２．１８４ｍｓｅｃ」である。ただし、前記メモリの書き込み待ち時間は、ＩＣチップの性能に依存する値である。本実施例では、ＩＣカードに内蔵されたＩＣチップ内のメモリは、その書き込み待ち時間が「２．０００ｍｓｅｃ」であるものを用いている。
【００８７】
同様に、コマンド番号「Ｃ２」である受信第２回目の「認証」に係る、コマンドメッセージ比較処理と格納メッセージ組書き込み処理に要する処理時間、およびコマンド番号「Ｃ３」である受信第３回目の「ＩＤ読み出し」に係る、コマンドメッセージ比較処理と格納メッセージ組書き込み処理に要する処理時間については、図８に示すとおりである。
【００８８】
ところで、図８において、「Ｃ１」から「Ｃ３」に至るコマンドメッセージ比較処理を連続して実行する場合のプロセスは、上述した受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージがすべて一致する場合のデータ処理（図２）の場合のプロセスに相当している。そして、このプロセスの実行処理に要する処理時間は、「Ｃ１」から「Ｃ３」に至る各々のコマンドメッセージ比較処理に要する処理時間の合計、すなわち「０．４７０ｍｓｅｃ」である。
【００８９】
図９は、従来のＩＣカードに係るデータ処理で各受信コマンドメッセージを実行した場合の、データ処理に要する処理時間を示す図である。
【００９０】
図９において、従来のデータ処理、すなわちＩＣカードが任意の受信コマンドメッセージを受信して、当該受信コマンドメッセージの内容を解釈、および当該受信コマンドメッセージを実行するのに要する処理時間は、コマンド番号「Ｃ１」である受信第１回目の受信コマンドメッセージ「アプリケーション選択」に係る処理においては、「２３．００ｍｓｅｃ」、コマンド番号「Ｃ２」である受信第２回目の受信コマンドメッセージ「認証」に係る処理においては、「５７．００ｍｓｅｃ」、コマンド番号「Ｃ３」である受信第３回目の受信コマンドメッセージ「ＩＤ読み出し」に係る処理においては、「１４．００ｍｓｅｃ」である。
【００９１】
なお、これらはいずれも、従来の市販されている任意のＩＣカードのデータ処理に要した処理時間を測定したときの実測値である。ただし、前記従来の市販されている任意のＩＣカードのハードウェア基本構成は、本実施例で用いたＩＣカードと同等のものである。
【００９２】
図１０は、受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合、本発明のＩＣカードに係るオペレーティングシステムが実行するデータ処理の処理内容および処理時間を示す図である。
【００９３】
図１０において、受信コマンドメッセージと格納コマンドメッセージが一部一致しない実行例として、「実行例Ｂ」、「実行例Ｃ」、および「実行例Ｄ」の３パターンを例示した。「実行例Ｂ」は、コマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第１位の格納メッセージ組に属する格納コマンドメッセージと一致しない場合の実行例である。
【００９４】
また、「実行例Ｃ」は、コマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第１位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「Ｃ２」である受信第２回目の「認証」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第２位の格納メッセージ組に属する格納コマンドメッセージと一致しない場合の実行例である。
【００９５】
また、「実行例Ｄ」は、コマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第１位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「Ｃ２」である受信第２回目の「認証」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第２位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「Ｃ３」である受信第３回目の「ＩＤ読み出し」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第３位の格納メッセージ組に属する格納コマンドメッセージと一致しない場合の実行例である。
【００９６】
例えば「実行例Ｂ」において、ＩＣカードがコマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」を受信した際、始めに、ＩＣカードのオペレーティングシステムは、処理番号「処理１」の「Ｃ１比較」処理、すなわち「アプリケーション選択」の受信コマンドメッセージと、これに対応し、かつメモリの所定の領域に格納されている第１位の格納メッセージ組に属する格納コマンドメッセージを比較する。このときのコマンドメッセージ比較処理に要する処理時間は、上述の図８で示したように「０．２１０ｍｓｅｃ」である。
【００９７】
次に、ＩＣカードのオペレーティングシステムは、処理番号「処理２」の「Ｃ１実行」処理、すなわち「アプリケーション選択」の受信コマンドメッセージの内容の解釈、実行をする。そして、その実行結果である送信レスポンスメッセージを上位装置に返信する。このときの処理に要する処理時間は、上述の図９で示したように「２３．００ｍｓｅｃ」である。
【００９８】
引き続き、ＩＣカードのオペレーティングシステムは、処理番号「処理３」の「Ｃ１組書込」処理、すなわち「アプリケーション選択」の受信コマンドメッセージと、「処理１」で生成された送信レスポンスメッセージを、メモリ上の第１位の格納メッセージ組を保持する所定の領域へ記録する格納メッセージ組書き込み処理を実行する。このときの処理に要する処理時間は、上述の図８で示したように「２．１８４ｍｓｅｃ」である。
【００９９】
最後に、ＩＣカードのオペレーティングシステムは、処理番号「処理４」の「後続組消去」処理、すなわちメモリの所定の領域に格納されている第２位以降のすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージを無効値とする無効化処理を実行する。このときの処理に要する処理時間は、書き込み待ち時間のみである「２．０００ｍｓｅｃ」である。
【０１００】
ＩＣカードのオペレーティングシステムは、上述した「処理１」から「処理４」に至る処理を連続して実行し、受信第１回目の受信コマンドメッセージ「アプリケーション選択」に係る実行処理を完了する。このときの処理全体に要する処理時間は「処理１」から「処理４」に至る処理に要した処理時間の総和となり、その値は「２７．３９ｍｓｅｃ」である。
【０１０１】
その後、ＩＣカードはコマンド番号「Ｃ２」である受信第２回目の「認証」を受信する。始めに、ＩＣカードのオペレーティングシステムは、処理番号「処理１」の「Ｃ２実行」処理、すなわち「認証」の受信コマンドメッセージの内容の解釈、実行をする。そして、その実行結果である送信レスポンスメッセージを上位装置に返信する。このときの処理に要する処理時間は、上述の図９で示したように「５７．００ｍｓｅｃ」である。
【０１０２】
なお、この「Ｃ２実行」処理は、先のコマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」に係る実行処理でなされた「処理４」、すなわちメモリの所定の領域に格納されていた第２位以降のすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの無効化処理によって、メモリ上には、「認証」の受信コマンドメッセージに対応する格納コマンドメッセージおよび格納レスポンスメッセージからなる格納メッセージ組が存在しないためになされるものである。
【０１０３】
次に、ＩＣカードのオペレーティングシステムは、処理番号「処理２」の「Ｃ２組書込」処理、すなわち「認証」の受信コマンドメッセージと、「処理１」で生成された送信レスポンスメッセージを、メモリ上の第２位の格納メッセージ組を保持する所定の領域へ記録する格納メッセージ組書き込み処理を実行する。このときの処理に要する処理時間は、上述の図８で示したように「２．１８４ｍｓｅｃ」である。
【０１０４】
ＩＣカードのオペレーティングシステムは、上述した「処理１」から「処理２」に至る処理を連続して実行し、受信第２回目の受信コマンドメッセージ「認証」に係る実行処理を完了する。このときの処理全体に要する処理時間は「処理１」から「処理２」に至る処理に要した処理時間の総和となり、その値は「５９．１８ｍｓｅｃ」である。
【０１０５】
さらに、ＩＣカードはコマンド番号「Ｃ３」である受信第３回目の「ＩＤ読み出し」を受信する。始めに、ＩＣカードのオペレーティングシステムは、処理番号「処理１」の「Ｃ３実行」処理、すなわち「ＩＤ読み出し」の受信コマンドメッセージの内容の解釈、実行をする。そして、その実行結果である送信レスポンスメッセージを上位装置に返信する。このときの処理に要する処理時間は、上述の図９で示したように「１４．００ｍｓｅｃ」である。
【０１０６】
なお、この「Ｃ３実行」処理は、先のコマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」に係る実行処理でなされた「処理４」、すなわちメモリの所定の領域に格納されていた第２位以降のすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの無効化処理によって、メモリ上には、「ＩＤ読み出し」の受信コマンドメッセージに対応する格納コマンドメッセージおよび格納レスポンスメッセージからなる格納メッセージ組が存在しないためになされるものである。
【０１０７】
次に、ＩＣカードのオペレーティングシステムは、処理番号「処理２」の「Ｃ３組書込」処理、すなわち「ＩＤ読み出し」の受信コマンドメッセージと、「処理１」で生成された送信レスポンスメッセージを、メモリ上の第３位の格納メッセージ組を保持する所定の領域へ記録する格納メッセージ組書き込み処理を実行する。このときの処理に要する処理時間は、上述の図８で示したように「２．０８０ｍｓｅｃ」である。
【０１０８】
ＩＣカードのオペレーティングシステムは、上述した「処理１」から「処理２」に至る処理を連続して実行し、受信第３回目の受信コマンドメッセージ「ＩＤ読み出し」に係る実行処理を完了する。このときの処理全体に要する処理時間は「処理１」から「処理２」に至る処理に要した処理時間の総和となり、その値は「１６．０８ｍｓｅｃ」である。
【０１０９】
このように、ＩＣカードは、上位装置から受信した３個のコマンドメッセージ、すなわちコマンド番号「Ｃ１」である受信第１回目の受信コマンドメッセージ「アプリケーション選択」、コマンド番号「Ｃ２」である受信第２回目の受信コマンドメッセージ「認証」、およびコマンド番号「Ｃ３」である受信第３回目の受信コマンドメッセージ「ＩＤ読み出し」の実行、およびこれら３個の受信コマンドメッセージに応答する各々のレスポンスメッセージを上位装置に返信する一連の情報のやりとりを行い、上位装置との通信を完了する。
【０１１０】
なお、「実行例Ｃ」および「実行例Ｄ」については、一致しない受信コマンドメッセージが異なるのみで、それ以外の一連のプロセスは「実行例Ｂ」と同様であるので、ここでの詳細な説明は省略する。
【０１１１】
図１１は、本発明のＩＣカードのデータ処理に要する処理時間と、従来のＩＣカードのデータ処理に要する処理時間との比較を示す図である。
【０１１２】
図１１において、本発明のＩＣカードのデータ処理の実行例として、「実行例Ａ」、「実行例Ｂ」、「実行例Ｃ」、および「実行例Ｄ」の４パターンを例示した。なお、「実行例Ａ」は、３個の受信コマンドメッセージのすべてが一致する場合、すなわちコマンド番号「Ｃ１」である受信第１回目の「アプリケーション選択」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第１位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「Ｃ２」である受信第２回目の「認証」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第２位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「Ｃ３」である受信第３回目の「ＩＤ読み出し」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第３位の格納メッセージ組に属する格納コマンドメッセージと一致する場合の実行例である。ただしここで例示した、「実行例Ｂ」、「実行例Ｃ」、および「実行例Ｄ」は、上述の図１０で説明したものと同一のものである。
【０１１３】
また、「実行例Ａ」は、３個の受信コマンドメッセージの各々の受信コマンドメッセージと、これらに対応し、かつメモリの所定の領域に格納される各々の格納コマンドメッセージがすべて一致することから、各々の受信コマンドメッセージに係る実行処理は、すべてコマンドメッセージ比較処理のみで完了する。したがって、「実行例Ａ」の各受信コマンドメッセージに係るデータ処理に要する処理時間は、上述の図８に示したコマンドメッセージ比較処理に要する処理時間の値と同一のものとなる。
【０１１４】
また、従来のＩＣカードのデータ処理に要する処理時間は、上述の図９に示した処理時間の値と同一のものである。
【０１１５】
図１１において、従来のＩＣカードのデータ処理、すなわち一連の３個の受信コマンドメッセージの実行処理に要する処理時間は、「９４．００ｍｓｅｃ」である。これに対し、本発明のＩＣカードのデータ処理のうち、「実行例Ａ」では、その処理時間が「０．４７０ｍｓｅｃ」であり、従来のＩＣカードのデータ処理に要する処理時間を「１．０」とした相対値で比較すると、「実行例Ａ」の値は「０．００５」となり、データ処理に要する処理時間は１／２００である。
【０１１６】
また、「実行例Ｂ」、「実行例Ｃ」、および「実行例Ｄ」のデータ処理に要する処理時間は、それぞれ「１０２．７ｍｓｅｃ」、「１０２．９ｍｓｅｃ」、および「１０２．９ｍｓｅｃ」であり、同様に相対値で比較すると、それぞれ「１．１」、「１．１」、および「１．１」となり、従来のＩＣカードのデータ処理に要する処理時間とほぼ同等である。
【０１１７】
したがって、マルチアプリケーション型のＩＣカードであっても、事実上単一のアプリケーションのみしか使用せず、上位装置から受信する受信コマンドメッセージが変更されることなく固定され、かつその受信順序も固定されている場合においては、上述の「実行例Ａ」の実行結果に示されたとおり、そのデータ処理に要する処理時間は大幅に短縮され、その結果、上位装置とＩＣカード間の通信時間の短縮化が実現でき、通信の高速化が達成される。同時に、受信した受信コマンドメッセージと、これに対応した格納コマンドメッセージとを比較して不一致となる場合であっても、従来のＩＣカードの処理時間とほぼ同等の処理時間で目的のファイルを特定し、前記受信コマンドメッセージを正確に実行することができる。
【０１１８】
なお、本実施例で例示した各受信コマンドメッセージに係るデータ処理に要する処理時間の各々は、一例に過ぎず、使用するＩＣカードに内蔵されているＩＣチップの性能、あるいはＩＣカードのオペレーティングシステムの設計等によってその結果は異なる。また、本実施例では、マルチアプリケーション型のＩＣカードを例示して説明したが、これに限定されず、単一のアプリケーションを搭載したＩＣカードであってもよい。また、上位装置との通信は、例示した非接触方式のＩＣカードに限らず、接触方式のＩＣカードであってもよい。
【０１１９】
以上、実施例を用いて、本発明の実施の形態を説明したが、本発明は、本実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲の設計変更があっても本発明に含まれる。すなわち、当業者であれば、当然なしえるであろう各種変形、修正もまた本発明に含まれることは勿論である。
【産業上の利用可能性】
【０１２０】
本発明のＩＣカードは、複数のアプリケーションを搭載してあっても、そのうちの単一の特定アプリケーションの使用頻度が高いマルチアプリケーション型のＩＣカード、あるいは単一のアプリケーションを搭載したＩＣカードを用いたＩＣカード通信システムに利用可能である。
【図面の簡単な説明】
【０１２１】
【図１】本発明のＩＣカードのコマンドメッセージおよびレスポンスメッセージの処理過程を説明するフローチャート。
【図２】本発明のＩＣカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージがすべて一致する場合のデータ処理を説明する図。
【図３】本発明のＩＣカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合のデータ処理を説明する図。
【図４】本発明のＩＣカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数を超える場合のデータ処理を説明する図。
【図５】本発明のＩＣカードに係る各受信コマンドメッセージの内容、レスポンスメッセージの内容、およびそのデータ長を示す図。
【図６】本発明のＩＣカードに係る１ｂｙｔｅあたりのコマンドメッセージ比較処理に要する処理時間を示す図。
【図７】本発明のＩＣカードに係る１ｂｙｔｅあたりの格納メッセージ組書き込み処理に要する処理時間を示す図。
【図８】本発明のＩＣカードに係る各受信コマンドメッセージのコマンドメッセージ比較処理、および格納メッセージ組書き込み処理に要する処理時間を示す図。
【図９】従来のＩＣカードに係るデータ処理で各受信コマンドメッセージを実行した場合の、データ処理に要する処理時間を示す図である。
【図１０】受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合、本発明のＩＣカードに係るオペレーティングシステムが実行するデータ処理の処理内容および処理時間を示す図。
【図１１】本発明のＩＣカードのデータ処理に要する処理時間と、従来のＩＣカードのデータ処理に要する処理時間との比較を示す図。
【図１２】ＩＣカードに内蔵されたＩＣチップ内の書き換え可能な不揮発性メモリの所定の領域に格納されるデータのデータ構造の一例を示す概略図。
【図１３】ＩＣカードのオペレーティングシステムが上位装置から受信した受信コマンドメッセージを実行処理するプロセスを模式的に示した図。
【図１４】上位装置とＩＣカード間の通信におけるコマンドメッセージおよびレスポンスメッセージの送受信を実行するシーケンスの一例を示した概略図。
【図１】
2010122877.tif 000003
【図２】
2010122877.tif 000004
【図３】
2010122877.tif 000005
【図４】
2010122877.tif 000006
【図５】
2010122877.tif 000007
【図６】
2010122877.tif 000008
【図７】
2010122877.tif 000009
【図８】
2010122877.tif 000010
【図９】
2010122877.tif 000011
【図１０】
2010122877.tif 000012
【図１１】
2010122877.tif 000013
【図１２】
2010122877.tif 000014
【図１３】
2010122877.tif 000015
【図１４】
2010122877.tif 000016