(57)【要約】【課題】本発明は、実行対象となるアプリケーションプログラムの処理にかかる時間の短縮および利便性の向上を図ることが可能なＩＣカード等の半導体装置を提供することを目的とする。【解決手段】コマンドが受信される受信手段（３１）と、前記コマンドに対応する情報を送信する送信手段（３２）と、前記コマンドの次に受信されるべきコマンドを予測するコマンド予測手段（３３）と、前記コマンド予測手段（３３）によって予測された予測コマンドを実行する制御手段（３５）と、前記情報を前記送信手段（３１）によって送信した後に、前記受信手段（３２）によって次のコマンドである次コマンドを受信し、当該次コマンドと前記コマンド予測手段（３３）によって予測された前記予測コマンドとを比較するコマンド比較手段（３４）とを具備する構成である。【選択図】図２
2011034408.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置において、
コマンドが受信される受信手段と、
前記コマンドに対応する情報を送信する送信手段と、
前記コマンドの次に受信されるべきコマンドを予測するコマンド予測手段と、
前記コマンド予測手段によって予測された予測コマンドを実行する制御手段と、
前記情報を前記送信手段によって送信した後に、前記受信手段によって次のコマンドである次コマンドを受信し、当該次コマンドと前記コマンド予測手段によって予測された前記予測コマンドとを比較するコマンド比較手段とを具備し、
前記制御手段は、前記コマンド比較手段によって比較された前記次コマンドと前記予測コマンドとが一致する場合には、前記制御手段によって実行された前記予測コマンドの実行結果である予測処理結果情報を前記送信手段を介して送信し、前記コマンド比較手段によって比較された前記次コマンドと前記予測コマンドとが一致しない場合には、前記次コマンドを実行することを特徴とする半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記半導体装置が待機状態にある、前記コマンドに対応する前記情報の送信後であって前記次コマンドが受信されるまでの期間に、前記コマンド予測手段は前記予測コマンドを予測することを特徴とする半導体装置。
【請求項３】
請求項１または２に記載の半導体装置において、
前記コマンド予測手段は、前記コマンド予測手段が実行される直前に前記受信手段によって受信された前記コマンド、および、予め定められた静的予測パターンに基づいて受信されるべき予測コマンドを予測することを特徴とする半導体装置。
【請求項４】
請求項１乃至請求項３の何れか一項に記載の半導体装置において、
前記コマンド予測手段が実行される前に前記受信手段によって受信された前記コマンドの履歴情報に基づく動的予測パターンを生成する動的予測パターン生成手段を更に具備し、
前記コマンド予測手段は、少なくとも２つ以上の前記コマンドを前記受信手段を介して受信した場合に、前記履歴情報の少なくとも一部が前記動的予測パターンの少なくとも一部と一致する場合には、前記動的予測パターンに基づいて次に受信されるべき前記予測コマンドを予測することを特徴とする半導体装置。
【請求項５】
請求項４に記載の半導体装置において、
前記静的予測パターンと前記動的予測パターンの少なくとも何れか一方は、前記アプリケーションプログラム毎に生成されることを特徴とする半導体装置。
【請求項６】
請求項１乃至請求項５の何れか一項に記載の半導体装置において、
前記予測処理結果情報を生成するための情報は、暗号演算処理における少なくとも一部の処理結果情報であることを特徴とする半導体装置。
【請求項７】
請求項１乃至請求項６の何れか一項に記載の半導体装置において、
前記暗号演算処理における少なくとも一部の処理結果情報は、暗号演算処理における誤り検出処理、鍵拡張処理、乱数発生処理の少なくとも何れか一つの処理結果情報であることを特徴とする半導体装置。
【請求項８】
少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置の制御方法において、
コマンドが受信される受信工程と
前記コマンドに対応する情報を送信する送信工程と、
前記コマンドの次に受信されるべきコマンドを予測するコマンド予測工程と、
前記コマンド予測工程において予測された予測コマンドを実行する制御工程と、
前記情報を前記送信工程において送信した後に、前記受信工程において次のコマンドである次コマンドを受信し、当該次コマンドと前記コマンド予測工程において予測された前記予測コマンドとを比較するコマンド比較工程とを具備し、
前記制御工程では、前記コマンド比較工程において比較された前記次コマンドと前記予測コマンドとが一致する場合には、前記制御工程において実行された前記予測コマンドの実行結果である予測処理結果情報を前記送信工程において送信し、前記コマンド比較工程において比較された前記次コマンドと前記予測コマンドとが一致しない場合には、前記次コマンドを実行することを特徴とする半導体装置の制御方法。
【請求項９】
少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置に含まれるコンピュータを、
コマンドが受信される受信手段、
前記コマンドに対応する情報を送信する送信手段、
前記コマンドの次に受信されるべきコマンドを予測するコマンド予測手段、
前記コマンド予測手段によって予測された予測コマンドを実行する制御手段、
前記情報を前記送信手段によって送信した後に、前記受信手段によって次のコマンドである次コマンドを受信し、当該次コマンドと前記コマンド予測手段によって予測された前記予測コマンドとを比較するコマンド比較手段として機能させ、
前記制御手段は、前記コマンド比較手段によって比較された前記次コマンドと前記予測コマンドとが一致する場合には、前記制御手段によって実行された前記予測コマンドの実行結果である予測処理結果情報を前記送信手段を介して送信し、前記コマンド比較手段によって比較された前記次コマンドと前記予測コマンドとが一致しない場合には、前記次コマンドを実行する機能を有することを特徴とする半導体装置の制御プログラム。
【請求項１０】
請求項１乃至７の何れか一項に記載の前記半導体装置はＩＣ（Ｉｎｔｅｇｒａｔｅ  Ｃｉｒｃｕｉｔ）チップを搭載したＩＣカードであることを特徴とする半導体装置。
【請求項１１】
請求項１乃至７の何れか一項に記載の前記半導体装置は携帯端末であることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩＣカードに関し、特に、ＣＰＵとメモリとを有し、メモリ内に格納された複数のアプリケーションプログラムを、ＣＰＵによって選択的に実行することができるＩＣカードに関する。
【背景技術】
【０００２】
キャッシュカードやクレジットカードとして利用されてきた磁気カードに代わって、光カードやＩＣカードが普及し始めている。特に、ＣＰＵを内蔵したＩＣカードは、高度なセキュリティを確保することができるため、高額な商取引にも利用することができる利点を有する。
【０００３】
現在、一般に利用されているＣＰＵを有するＩＣカードには、メモリとして、ＲＯＭ，ＥＥＰＲＯＭ，ＲＡＭが内蔵されている。通常、ＲＯＭには、ＣＰＵに実行させるべき基本的なプログラムが格納され、ＥＥＰＲＯＭには、ユーザデータや種々のアプリケーションプログラムが格納され、ＲＡＭはＣＰＵの作業領域として利用される。ＥＥＰＲＯＭは書換可能なメモリであるため、ここにユーザごとに必要なデータやアプリケーションプログラムを格納することができる。
【０００４】
ＩＣカードにデータやプログラムを書き込んだり、これらを読み出したりする際には、いわゆるリーダライタ装置と呼ばれる外部装置が用いられる。この外部装置とＩＣカードとの間では、物理的な伝送線を介してまたは非接触な伝送路を介して、相互にデータやプログラムの伝送が行われる。通常、外部装置からＩＣカードへの情報伝送は、コマンドという形式で与えられ、種々の指示やデータは、このコマンドの中の一情報としてＩＣカード側へと伝えられる。これに対して、ＩＣカードから外部装置への情報伝送は、レスポンスという形式で与えられ、処理結果やデータは、このレスポンスの中の一情報として外部装置側へと伝えられる。
【０００５】
ＥＥＰＲＯＭなどのメモリの集積度は年々向上してきているため、現在の一般的なＩＣカードでは、複数のアプリケーションプログラムをＥＥＰＲＯＭ内に格納することができる。たとえば、電子決済アプリケーションプログラム、入退出管理アプリケーソン、医療診断アプリケーションプログラム、など、用途に応じた複数のアプリケーションプログラムを、それぞれＥＥＰＲＯＭ内に格納しておけば、これらを選択的に実行することにより、同一のＩＣカードを、電子決済カード、入退出管理カード、診察カードとして利用することが可能になる。
【０００６】
ＩＣカードの利用形態は、今後も益々多様化してゆくことが予想され、予め格納された複数のアプリケーションプログラムの中から、必要なアプリケーションプログラムを選択して実行するような利用形態が一般化するものと思われる。このため、ＩＣカードを外部装置に接続して、アクセスを開始する際には、まず、いずれかのアプリケーションプログラムを選択する操作が必要になる。
【０００７】
また、ＩＣカードは通常、コマンドにより外部（一例としてリーダライタ装置である場合がある）から命令が与えられ、そのコマンドに準じた動作を内部で処理し、処理結果をレスポンスコマンドという形式で外部に返送する。この時、ＩＣカードはコマンドに対する処理を完了した後、次のコマンドを受信するまで動作を停止する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−１６３５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したように、従来のＩＣカードは、「１コマンド−１レスポンス」の原則に基づき、１つの処理が完了し、レスポンスをカードの外部へ送信した後は待機状態で機能を一時停止する。
【００１０】
電力が供給されている(Ｒ／Ｗ（リーダライタ装置）に挿入されている)限り、もしくはリセット信号が入力されない限り内部状態(揮発性、不揮発性メモリ値など)は保持されたまま動作は停止される。
【００１１】
このように、従来の動作ではコマンドを受信しなければ動作を開始することができず、時間がかかる処理の場合、レスポンスまでに多くの時間を必要とするという問題があった。
【００１２】
また、コマンドの伝送、ＩＣカード内部での選択処理、レスポンスの伝送、という処理には、ある程度の時間が必要となり、本来の作業を開始できるようになるまで、待ち時間が発生せざるを得ない。
【００１３】
そこで本発明は、実行対象となるアプリケーションプログラムの処理にかかる時間の短縮および利便性の向上を図ることが可能なＩＣカード等の半導体装置、半導体装置の制御方法および半導体装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するため、本発明は次のような構成を採用する。
【００１５】
すなわち、請求項１に係る発明は、少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置（１）において、コマンドが受信される受信手段（３１）と、前記コマンドに対応する情報を送信する送信手段（３２）と、前記コマンドの次に受信されるべきコマンドを予測するコマンド予測手段（３３）と、前記コマンド予測手段（３３）によって予測された予測コマンドを実行する制御手段（３５）と、前記情報を前記送信手段（３１）によって送信した後に、前記受信手段（３２）によって次のコマンドである次コマンドを受信し、当該次コマンドと前記コマンド予測手段（３３）によって予測された前記予測コマンドとを比較するコマンド比較手段（３４）とを具備し、前記制御手段（３５）は、前記コマンド比較手段（３４）によって比較された前記次コマンドと前記予測コマンドとが一致する場合には、前記制御手段（３５）によって実行された前記予測コマンドの実行結果である予測処理結果情報を前記送信手段（３１）を介して送信し、前記コマンド比較手段（３４）によって比較された前記次コマンドと前記予測コマンドとが一致しない場合には、前記次コマンドを実行することを特徴とする。
【００１６】
また、請求項２に係る発明は、請求項１に記載の半導体装置（１）において、前記半導体装置（１）が待機状態にある、前記コマンドに対応する前記情報の送信後であって前記次コマンドが受信されるまでの期間に、前記コマンド予測手段（３３）は前記予測コマンドを予測することを特徴とする。
【００１７】
さらに、請求項３に係る発明は、請求項１または２に記載の半導体装置（１）において、前記コマンド予測手段（３３）は、前記コマンド予測手段（３３）が実行される直前に前記受信手段（３１）によって受信された前記コマンド、および、予め定められた静的予測パターンに基づいて受信されるべき予測コマンドを予測することを特徴とする。
【００１８】
さらに、請求項４に係る発明は、請求項１乃至請求項３の何れか一項に記載の半導体装置（１）において、前記コマンド予測手段（３３）が実行される前に前記受信手段（３１）によって受信された前記コマンドの履歴情報に基づく動的予測パターンを生成する動的予測パターン生成手段（３６）を更に具備し、前記コマンド予測手段（３３）は、少なくとも２つ以上の前記コマンドを前記受信手段（３１）を介して受信した場合に、前記履歴情報の少なくとも一部が前記動的予測パターンの少なくとも一部と一致する場合には、前記動的予測パターンに基づいて次に受信されるべき前記予測コマンドを予測することを特徴とする。
【００１９】
さらに、請求項５に係る発明は、請求項４に記載の半導体装置（１）において、前記静的予測パターンと前記動的予測パターンの少なくとも何れか一方は、前記アプリケーションプログラム毎に生成されることを特徴とする。
【００２０】
さらに、請求項６に係る発明は、請求項１乃至請求項５の何れか一項に記載の半導体装置（１）において、前記予測処理結果情報を生成するための情報は、暗号演算処理における少なくとも一部の処理結果情報であることを特徴とする。
【００２１】
さらに、請求項７に係る発明は、請求項１乃至請求項６の何れか一項に記載の半導体装置（１）において、前記暗号演算処理における少なくとも一部の処理結果情報は、暗号演算処理における誤り検出処理、鍵拡張処理、乱数発生処理の少なくとも何れか一つの処理結果情報であることを特徴とする。
【００２２】
さらに、請求項８に係る発明は、少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置（１）の制御方法において、コマンドが受信される受信工程（３１）と、前記コマンドに対応する情報を送信する送信工程（３２）と、前記コマンドの次に受信されるべきコマンドを予測するコマンド予測工程（３３）と、前記コマンド予測工程に（３３）おいて予測された予測コマンドを実行する制御工程（３５）と、前記情報を前記送信工程（３２）において送信した後に、前記受信工程（３１）において次のコマンドである次コマンドを受信し、当該次コマンドと前記コマンド予測工程（３３）において予測された前記予測コマンドとを比較するコマンド比較工程（３４）とを具備し、前記制御工程（３５）では、前記コマンド比較工程（３４）において比較された前記次コマンドと前記予測コマンドとが一致する場合には、前記制御工程（３５）において実行された前記予測コマンドの実行結果である予測処理結果情報を前記送信工程（３２）において送信し、前記コマンド比較工程（３４）において比較された前記次コマンドと前記予測コマンドとが一致しない場合には、前記次コマンドを実行することを特徴とする。
【００２３】
さらに、請求項９に係る発明は、少なくとも２つ以上のアプリケーションプログラムを備えるデータ情報を処理する半導体装置（１）に含まれるコンピュータを、コマンドが受信される受信手段（３１）、前記コマンドに対応する情報を送信する送信手段（３２）、前記コマンドの次に受信されるべきコマンドを予測するコマンド予測手段（３３）、前記コマンド予測手段（３３）によって予測された予測コマンドを実行する制御手段（３５）、前記情報を前記送信手段（３２）によって送信した後に、前記受信手段（３１）によって次のコマンドである次コマンドを受信し、当該次コマンドと前記コマンド予測手段（３３）によって予測された前記予測コマンドとを比較するコマンド比較手段（３４）として機能させ、前記制御手段（３５）は、前記コマンド比較手段（３４）によって比較された前記次コマンドと前記予測コマンドとが一致する場合には、前記制御手段（３５）によって実行された前記予測コマンドの実行結果である予測処理結果情報を前記送信手段（３２）を介して送信し、前記コマンド比較手段（３４）によって比較された前記次コマンドと前記予測コマンドとが一致しない場合には、前記次コマンドを実行する機能を有することを特徴とする。
【００２４】
さらに、請求項１０に係る発明は、請求項１乃至７の何れか一項に記載の前記半導体装置（１）はＩＣ（Integrate  Circuit）チップを搭載したＩＣカードであることを特徴とする。
【００２５】
さらに、請求項１１に係る発明は、請求項１乃至７の何れか一項に記載の前記半導体装置（１）は携帯端末であることを特徴とする。
【発明の効果】
【００２６】
本発明によれば、ＩＣカード等の半導体装置において、実行対象となるアプリケーションプログラムの処理にかかる時間の短縮および利便性の向上を図ることが可能となる。
【００２７】
例えば、半導体装置を汎用(他の用途と共用させた場合)した場合には、アプリケーションプログラムが相当数含まれる場合もあるが、アプリケーションプログラムに必要とされるコマンドを適切に予測し、事前に予測実行することが可能になる。
【００２８】
また、必要なタイミングの有効なデジタル情報だけが記憶部に記憶されるので、限られた記憶領域を有効に活用することが可能になる。
【００２９】
また、ＩＣカードがレスポンスを送信してから、次のコマンドを受信するまでの間は、従来のＩＣカードの動作は停止状態となる。この処理を実行しない停止状態の間に、本発明におけるＩＣカードでは次のコマンドを予測し、投機的に処理を実行し、次のコマンドの処理時間を短縮することが可能になる。
【００３０】
また、次のコマンドの予測は、製造業者、アプリケーションプログラム提供者等によって予め記憶された静的予測パターンを使用することができるので、ＩＣカードの使い始めからすぐに、次のコマンドを予測し、投機的に処理を実行し、次のコマンドの処理時間を短縮することが可能になる。
【００３１】
また、次のコマンドの予測は、ＩＣカード使用者のＩＣカード使用履歴を記憶した動的予測パターンを使用することができるので、ＩＣカード使用者に最適な次のコマンドを予測し、投機的に処理を実行するので、ＩＣカード使用者ごとに次のコマンドの処理時間を効率的に短縮することが可能になる。
【００３２】
また、次のコマンドの予測は、ＩＣカード使用者のＩＣカード使用履歴を記憶した動的予測パターンの少なくとも一部を使用することができるので、次のコマンドはより迅速かつ的確に予測されることが可能になる。また、動的予測パターンの少なくとも一部とすることで、使用履歴の予測範囲を可変とすることができるので、次のコマンドは迅速かつ的確に予測されることが可能になる。
【００３３】
また、次のコマンドの予測は、アプリケーションプログラムごとに形成された予測パターンに基づいて予測するので、ＩＣカード使用者ごとに適した最適な次のコマンドを予測し、投機的に処理を実行し、次のコマンドの処理時間を効率的に短縮することが可能になる。
【００３４】
また、予測処理結果情報を生成するための情報は、暗号演算処理における少なくとも一部の処理結果情報であるので、暗号演算が予測された場合であって、暗号演算における対称データを受信する前であっても、その対称データとなるデータを予測することで、実行対象となるアプリケーションプログラムの処理にかかる時間の短縮および利便性の向上を図ることが可能となる。
【００３５】
また、暗号演算が予測された場合であって、暗号演算における対称データを受信する前であっても、その対称データとなるデータを使用する前までの処理を予め実行することで、実行対象となるアプリケーションプログラムの処理にかかる時間の短縮および利便性の向上を図ることが可能となる。
【００３６】
さらに、前記暗号演算処理における少なくとも一部の処理結果情報は、暗号演算処理における誤り検出処理、鍵拡張処理、乱数発生処理の少なくとも何れか一つの処理結果情報であるので、暗号演算が予測された場合であって、暗号演算における対称データを受信する前であっても、予備的な演算を確実に投機実行することで、実行対象となるアプリケーションプログラムの処理にかかる時間の短縮および利便性の向上を図ることが可能となる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施形態に係る半導体装置の全体を示すブロック図である。
【図２】本発明の実施形態に係る機能概要を示す図である。
【図３】（ａ）、（ｂ）は本発明に係わる実施形態の静的予測パターンおよび動的予測パターンの一例を示す図である。
【図４】本発明の実施形態に係る動的予測パターンの他の一例を示す図である。
【図５】本発明の実施形態に係る動作を示すフローチャートである。
【図６】本発明の第１実施形態に係る予測結果が一致した場合の動作を示す図である。
【図７】本発明の第１実施形態に係る予測結果が一致しない場合の動作を示す図である。
【図８】本発明の第２実施形態に係る動作を示す図である。
【発明を実施するための形態】
【００３８】
以下、図面を参照して本発明を実施するための最良の形態について説明する。
【００３９】
但し、本発明は多くの異なる態様で実施することが可能であり、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本実施の形態の記載内容に限定して解釈されるものではない。なお、実施の形態を説明するための全図において、同一部分又は同様な機能を有する部分には同一の符号を付し、その繰り返しの説明は省略する。
【００４０】
（実施形態）
本実施の形態では、ＩＣカードがレスポンスを送信してから、次のコマンドを受信するまでの間は、従来のＩＣカードの動作は停止状態となる。この処理を実行しない停止状態の間に、本発明におけるＩＣカードでは次のコマンドを予測し、投機的に処理を実行し、次のコマンドの処理時間を短縮する。この本発明におけるＩＣカードの装置構成及び、フローチャートについて説明する。
【００４１】
ここで、当該機能を発揮するための構成について、図１に示す機能ブロック図を用いて説明する。
【００４２】
図１は、本発明における、コマンド予測機能（これまでに実行されたコマンドから、次に実行されるコマンドを推測するための機能である。コマンドを予測するために使う受信済みのコマンドは少なくとも１つ以上であり、またリセット信号入力前のコマンド、または、あらかじめ設定されたコマンドなども利用可能である。）および投機実行機能（ＡＴＲ（Answer to Reset）、ＰＰＳ（Protocol and Parameter Selection）送信後、またはコマンドレスポンス送信後に発生する待ち時間(停止時間)において予測したコマンドを実行するための機能である。予測機能にて決定されたコマンドを、待ち時間(停止時間)中に実行し、結果を保持する。この場合の結果とは、予測したコマンドのコマンドレスポンスや、予測したコマンドの実行に必要だと想定される演算やデータアクセス(読み出し、書き込み、バックアップなど)を示す。）を搭載するＩＣチップを含む半導体装置を示す図である。なお、以下の実施形態においては、一例として半導体装置としてＩＣカードについて説明するが、半導体装置はＩＣカードに限られず、任意の携帯型の情報処理装置（携帯端末を含む）を半導体装置とすることが可能である。
【００４３】
以下、本発明を図示する実施形態に基づいて説明する。
【００４４】
図１は、一般的なＩＣカード１と、外部装置（リーダライタ装置）２０との間で、情報の伝送を行っている状態を示すブロック図である。この例では、ＩＣカード１は、種々の演算処理機能をもったＣＰＵ１１と、リーダライタ装置２０に対する情報の送受を行うＩ／Ｏインターフェース部１２と、ＲＯＭ１３，ＥＥＰＲＯＭ１４，ＲＡＭ１５なるメモリとを備えている。
【００４５】
すなわち、半導体装置としてのＩＣカード１には、記憶手段としての記憶部２（ＲＯＭ１３、ＥＥＰＲＯＭ１４、ＲＡＭ１５が含まれる）、コマンド予測手段、コマンド比較手段、制御手段、動的予測パターン生成手段としての演算部３（ＣＰＵ１１が含まれる）および受信手段並びに送信手段としての入出力インターフェース部１２とが含まれる。
【００４６】
ＲＯＭ１３は書換不能な不揮発性メモリであり、ＣＰＵ１１は、このＲＯＭ１３内に格納されている基本プログラムに基づいて所定の処理を実行する。ＥＥＰＲＯＭ１４は、書換可能な不揮発性メモリであり、ユーザデータや種々のアプリケーションプログラムが格納される。ＲＡＭ１５は、ＣＰＵ１１が種々の処理を実行する際の作業領域として利用される書換可能な揮発性メモリである。
【００４７】
ＩＣカード１とリーダライタ装置（外部装置）２０とは、物理的な信号線による接続、赤外線による接続、電磁気を利用した非接触型接続、などの方法によって互いに接続され、情報の送受が行われる。外部装置２０からＩＣカード１へは、コマンドという形式で情報が送信される。送信されたこのコマンドは、Ｉ／Ｏインターフェース部１２を介してＣＰＵ１１に与えられる。逆に、ＩＣカード１０からリーダライタ装置２０へは、与えられたコマンドに対するレスポンスという形式で情報が送信される。このレスポンスは、ＣＰＵ１１からＩ／Ｏインターフェース部１２を介して、リーダライタ装置２０へと送信される。
【００４８】
この実施形態では、アプリケーションプログラムは、ＥＥＰＲＯＭ１４内に設けられたアプリケーション格納領域（図示せず）に格納される。アプリケーション格納領域の各区画（図示せず）に、それぞれのアプリケーションプログラムが格納されている。本発明の特徴のひとつとして、ＩＣカード１のユーザ毎に受信コマンドの履歴情報を記憶部２に記憶することがあげられるが、本発明はこれに限定されるわけではなく、各アプリケーションプログラムにＩＣカードのユーザ毎に受信コマンドの履歴情報を記憶部２に記憶することも可能である。この場合には履歴情報を格納するための区画（図示せず）をアプリケーションプログラム毎に設け、アプリケーションプログラム毎に履歴情報を各区画に記録する。これらの区画には、それぞれアプリケーションプログラム毎の履歴情報が記録されることになる。
【００４９】
ここで、当該機能を発揮するための構成について、図２に示す機能ブロック図を用いて説明する。ＩＣカード１は、受信部３１および送信部３２を含むＩ／Ｏインターフェース部１２と、コマンド予測部３３、コマンド比較部３４、制御部３５、動的予測パターン生成部３６を含むＣＰＵ１１と、記憶部２とを備える。
【００５０】
受信部３１は、リーダライタ装置２０等の外部装置からのコマンドが受信される機能を有する。
【００５１】
送信部３２は、受信部３１で受信されたコマンドに対応する情報を送信する機能を有する。また、予測コマンドの実行結果である予測処理結果情報を送信する機能をも有する。
【００５２】
受信部３１で受信されたコマンドに対応する情報はＣＰＵ１１において演算される。
【００５３】
受信部３１および送信部３２は、ＩＳＯ７８１６等の入出力インターフェースによって構成されるが、本発明はこれに限定されるわけではなく、前述したように物理的な信号線による接続、赤外線による接続、電磁気を利用した非接触型接続、などの任意の方法によってＩＣカード１０とリーダライタ装置（外部装置）２０との間で情報の送受が行われる。
【００５４】
コマンド予測部３３は、（受信部３１で受信された）コマンドの次に受信されるべきコマンドを予測する機能を有する。
【００５５】
すなわち、受信部３１においてリーダライタ装置からのコマンドが受信され、そのコマンドに対応する情報が送信部３２を介して送信された後の、次のコマンドが受信部３１を介して受信されるまでのＩＣカードが待機状態（コマンド待ち状態または停止状態とも称する）にある期間に次に受信されるべき予測コマンドを予測する機能を有する。
【００５６】
また、コマンド予測部３３は、コマンド予測部３３が実行される直前に受信部３１によって受信されたコマンド、および、予め定められた静的予測パターン（図３（ａ）に基づいて後述する）に基づいて受信されるべき予測コマンドを予測する機能を有する。
【００５７】
静的予測パターンは、ＩＣカード１がユーザによって使用される前に、製造者、アプリケーションプログラム提供者等の静的予測パターン提供者によって、記憶部２内のＥＥＰＲＯＭ１４等に記憶される。
【００５８】
静的予測パターンの一例を図３（ａ）に示す。
【００５９】
図３（ａ）では、ＩＣカード１のアプリケーションプログラムが（機密性が要求される建物等の領域への）入退出アプリケーションプログラムである場合の一例が示されている。
【００６０】
図３（ａ）の表の左側列の番号はＩＣカード１の受信部３１において受信されるコマンドの順番を示す。
【００６１】
すなわち、最初にＲｅｓｅｔコマンド（リセット命令）が受信部３１において受信され、その次にＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンド（アプリケーションプログラムの選択命令）が受信部３１において受信され、その次にＲｅａｄ  Ｒｅｃｏｒｄ  Ａコマンド（レコードＡの読み取り命令）が受信部３１において受信されることが示されている。
【００６２】
図３（ａ）の表の中央列は、受信部３１において受信される上記受信コマンドの種類が順番に記載されている。
【００６３】
図３（ａ）の表の右側列は予測コマンドが記載されている。例えば、図３（ａ）の表において受信コマンドがＲｅｓｅｔコマンドである場合には、予測コマンドはＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドである。すなわち、図３（ａ）の静的予測パターンを使用した場合に、受信部３１においてＲｅｓｅｔコマンドを受信すると、コマンド予測部３３は、予測コマンドとしてＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドを予測する。
【００６４】
例えば、ＩＣカード１の電源が最初に投入された場合には、リーダライタ装置２０からＲｅｓｅｔコマンドが受信されるので、図３（ａ）の静的予測パターンを使用するコマンド予測部３３は、Ｓｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドを予測する。
【００６５】
また、例えば、図３（ａ）の表において受信コマンドがＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドである場合には、予測コマンドはＲｅａｄ  Ｒｅｃｏｒｄ  Ａコマンドコマンドである。すなわち、図３（ａ）の静的予測パターンを使用した場合に、受信部３１においてＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドを受信すると、コマンド予測部３３は、予測コマンドとしてＲｅａｄ  Ｒｅｃｏｒｄ  Ａコマンドを予測する。
【００６６】
また、例えば、図３（ａ）の表において受信コマンドがＲｅａｄ  Ｒｅｃｏｒｄ  Ａコマンドである場合には、予測コマンドはＷｒｉｔｅ  Ｒｅｃｏｒｄ  Ａコマンドである。すなわち、図３（ａ）の静的予測パターンを使用した場合に、受信部３１においてＲｅａｄ  Ｒｅｃｏｒｄ  Ａコマンドを受信すると、コマンド予測部３３は、予測コマンドとしてＷｒｉｔｅ  Ｒｅｃｏｒｄ  Ａコマンドを予測する。
【００６７】
さらに、例えば、図３（ａ）の表において受信コマンドがＳｅｌｅｃｔ  Ｆｉｌｅコマンドの次にＲｅａｄ  Ｒｅｃｏｒｄコマンドが受信される場合には、予測コマンドはＳｅｌｅｃｔ  Ｆｉｌｅコマンドである。
【００６８】
さらに、コマンド予測部３３は、少なくとも２つ以上のコマンドを受信部３１を介して受信した場合に、（受信したコマンドの）履歴情報の少なくとも一部が動的予測パターンの少なくとも一部と一致する場合には、動的予測パターンに基づいて次に受信されるべき予測コマンドを予測する機能を有する（この機能については以下の実施形態において詳述する）。
【００６９】
コマンド比較部３４は、（受信部３１で受信されたコマンドに対応する）情報を送信部３２によって送信した後に、受信部３１によって次のコマンドである次コマンドを受信し、当該次コマンドとコマンド予測部３３によって予測された予測コマンドとを比較する機能を有する。
【００７０】
すなわち、コマンド比較部３４は、コマンド予測部３３が予め定められた静的予測パターン（図３（ａ）参照）または前記動的予測パターンに基づいて予測した予測コマンドと、実際に受信部３１が受信した次（の）コマンドとを比較する。
【００７１】
コマンド比較部３４は、予測コマンドと次コマンドとを比較した結果である比較情報を制御部３５に送信する。
【００７２】
制御部３５は、コマンド比較部３４によって比較された次コマンドと予測コマンドとが一致する場合には記憶部２の予測処理結果情報を送信部３２を介して送信し、コマンド比較部３４によって比較された次コマンドと予測コマンドとが一致しない場合には、次コマンドを実行する機能を有する。
【００７３】
この場合に、コマンド比較部３４によって比較された次コマンドと予測コマンドとが一致しない場合には記憶部２に記憶された予測処理結果情報は消去されてもよいし、消去されなくともよい。予測処理結果情報が記憶部２から消去されない場合には、後の受信コマンドに対する予測処理に使用することが可能であり、ＩＣカード１の処理の高速化が可能になる。
【００７４】
また、制御部３５は、コマンド予測部３３によって予測された予測コマンドを実行する機能を有する。予測コマンドを実行した結果は予測処理結果情報として記憶部２へ制御部３５が記憶する。
【００７５】
動的予測パターン生成部３６は、コマンド予測部３３が実行される前に受信部３１によって受信されたコマンドの履歴情報に基づく動的予測パターンを生成する機能を有する。
【００７６】
動的予測パターンは、静的予測パターンとは異なり、ユーザがＩＣカード１を使用することによって蓄積されるユーザのＩＣカード１の使用履歴である。
【００７７】
具体的には、動的予測パターンは、ユーザがＩＣカード１を使用するたびに、リーダライタ装置２０等の外部装置から送信され、ＩＣカード１の受信部３１において受信されたコマンドの履歴情報である。動的予測パターンは、制御部３５によって記憶部２内のＥＥＰＲＯＭ１４等に記憶される。
【００７８】
動的予測パターンの一例を図３（ｂ）に示す。
【００７９】
図３（ｂ）では、ＩＣカード１におけるアプリケーションプログラムとして（機密性が要求される建物等の領域への）入退出アプリケーションプログラムのみを利用し、電子決済アプリケーション等の他のアプリケーションプログラムをほとんど使わない利用者Ａが携帯するＩＣカード１の動的予測パターンの一例が示されている。なお、利用者ＡのＩＣカード１には、入退出アプリケーションプログラムおよび電子決済アプリケーション等の他のアプリケーションプログラムを含む少なくとも２つ以上のアプリケーションプログラムが記憶部２に記憶されている。
【００８０】
図３（ｂ）の表の左側列の番号はＩＣカード１の受信部３１において受信されたコマンドの順番が示されている（図３（ｂ）の場合の順番１から番号が大きくなるに従って最近受信したコマンドを示す）。
【００８１】
すなわち、ＩＣカード１を利用する利用者Ａが、入室のためにＩＣカード１をリーダライタ装置２０に挿入または近づけたので、最初にリーダライタ装置２０からＲｅｓｅｔコマンドが受信部３１において受信され、その次にＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンド（アプリケーションプログラムの選択命令）が受信部３１において受信され、その次にＲｅａｄ  Ｒｅｃｏｒｄ  Ａコマンド（レコードＡの読み取り命令）が受信部３１において受信され、その次にＷｒｉｔｅ  Ｒｅｃｏｒｄ  Ａコマンド（レコードＡの書き込み命令）が受信部３１において受信されたことが示されている。
【００８２】
その後、ＩＣカード１を利用する利用者Ａは、退室のため（または、別の領域への入室のため）にＩＣカード１をリーダライタ装置２０に挿入または近づけたので、リーダライタ装置２０からＲｅｓｅｔコマンドが受信部３１において受信され、その次にＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンド（アプリケーションプログラムの選択命令）が受信部３１において受信され、その次にＲｅａｄ  Ｒｅｃｏｒｄ  Ａコマンド（レコードＡの読み取り命令）が受信部３１において受信され、その次にＷｒｉｔｅ  Ｒｅｃｏｒｄ  Ａコマンド（レコードＡの書き込み命令）が受信部３１において受信されたことが示されている。
【００８３】
すなわち、図３（ｂ）では、ユーザである利用者ＡがＩＣカード１を用いて、２回の操作を行った場合にＩＣカード１が受信したコマンドの履歴情報が動的予測パターンとして記録されたことが示されている。
【００８４】
また、図３（ｂ）の表の各行には、受信部３１が受信した受信コマンドの次に利用された（実行された）コマンドが記載されており、受信番号、受信コマンドおよび受信コマンドの次に利用されたコマンドが紐づけられて記憶部２に記憶される。
【００８５】
ここでは、コマンド予測部３３が動的予測を実行する場合の一例として、直近の過去４例(図３（ｂ）の左側列の番号（受信番号）が５〜８)のコマンドを予測値として利用する場合について説明する。
【００８６】
この場合において、ＩＣカード１がＲｅｓｅｔコマンドを受信した場合には、コマンド予測部３３は図３（ｂ）の動的予測パターンの受信番号５の直後に利用されたコマンドとして記録されているＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドを予測コマンドとして予測する。
【００８７】
また、ＩＣカード１がＲｅｓｅｔコマンドを受信した後にＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドを受信した場合には、コマンド予測部３３は図３（ｂ）の動的予測パターンの受信番号６の直後に利用されたコマンドとして記録されているＲｅａｄ  Ｒｅｃｏｒｄ  Ａコマンドを予測コマンドとして予測する。
【００８８】
この図３（ｂ）の動的予測パターンを利用した場合には、図３（ａ）の静的予測パターンを利用した場合と、コマンド予測部３３が予測する予測コマンドは同一となる。
【００８９】
次に、静的予測パターンを利用した場合とは、コマンド予測部３３が予測する予測コマンドが異なる動的予測パターンの一例を図４に示す。
【００９０】
図４では、ＩＣカード１におけるアプリケーションプログラムとして入退出アプリケーションプログラムも利用するが、それ以上に電子決済アプリケーションを使用する利用者Ｂが携帯する動的予測パターンの一例が示されている。
【００９１】
図４の受信番号１から４までは、コマンド図３（ｂ）の受信番号１から４と同じコマンドであるので説明を省略する。
【００９２】
図４の受信番号５において、ＩＣカード１を利用する利用者Ｂは、電子決済のためにＩＣカード１をリーダライタ装置２０に挿入または近づけたので、リーダライタ装置２０からＲｅｓｅｔコマンドが受信部３１において受信され、その次にＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンド（電子決済アプリケーションプログラムの選択命令）が受信部３１において受信され、その次にＶｅｒｉｆｙコマンド（チェック命令）が受信部３１において受信され、その次にＲｅａｄ  Ｒｅｃｏｒｄ  Ａコマンド（レコードＡの読み込み命令）が受信部３１において受信されたことが示されている。
【００９３】
図４の動的予測パターンを用いてコマンド予測部３３が動的予測を実行する場合の一例として、図３（ｂ）の動的予測と同様に直近の過去４例(図４の左側列の番号（受信番号）が５〜８)のコマンドを予測値として利用する場合について説明する。
【００９４】
この場合において、ＩＣカード１がＲｅｓｅｔコマンドを受信した場合には、コマンド予測部３３は図４の動的予測パターンの受信番号５の直後に利用されたコマンドとして記録されているＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドを予測コマンドとして予測する。この場合には、Ａｐｐｌｉｃａｔｉｏｎとして電子決済アプリケーションプログラムが選択されるので、Ａｐｐｌｉｃａｔｉｏｎとして入退出アプリケーションプログラムが選択される図３（ａ）の静的予測および図３（ｂ）の動的予測とは予測結果が異なる。
【００９５】
また、ＩＣカード１がＲｅｓｅｔコマンドを受信した後にＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎ（電子決済アプリケーションプログラム）コマンドを受信した場合には、コマンド予測部３３は図４の動的予測パターンの受信番号６の受信コマンドの直後に利用されたコマンドとして記録されているＶｅｒｉｆｙコマンドを予測コマンドとして予測する。
【００９６】
この場合にも、Ｓｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドが選択される図３（ａ）の静的予測および図３（ｂ）の動的予測とは予測結果が異なる。
【００９７】
以上説明したように、利用者Ａの場合には静的予測と予測結果が変わらないが、利用者Ｂの場合には動的予測を優先した場合には、電子決済アプリケーションプログラムの処理が優先されるようになる。
【００９８】
したがって、動的予測を利用した場合、利用者ごとのＩＣカード１の使用履歴に基づいて予測コマンドが予測されるので、利用者によって予測結果が最適化される。また、この場合には静的予測と動的予測のどちらを優先するかによっても、予測コマンドの予測結果が変化する。
【００９９】
また、図３（ｂ）および図４に一例として示される動的予測パターンに基づいて（動的予測パターンを使用して）コマンド予測部３３が動的予測を実行する場合には、直前に受信部３１が受信したコマンド一つに基づいて（使用して）動的予測をしてもよいし、直前に受信部３１が受信した少なくとも２つ以上のコマンドを使用して、その受信部３１が受信したコマンドの順番（パターン）と動的予測パターンのコマンドの順番（パターン）とが一致した場合に動的予測パターンを使用して受信部３１が次に受信するであろう予測コマンドを予測してもよい。この場合に動的予測パターンの一致する部分が作成された時期を制限することが可能である（一例として直近の受信コマンドからさかのぼっていくつまでのコマンドの受信履歴を使用する、または、直近の受信コマンドからさかのぼって何時までのコマンドの受信履歴を使用する等）し、また動的予測パターンの一致する部分が作成された時期を制限しないことも可能である。
【０１００】
記憶部２は、制御部３５によって実行された予測コマンドの実行結果である予測処理結果情報を記憶する機能を有する。
【０１０１】
リーダライタ装置２０は、ＩＣカード１との間でデータの送受信を行い、必要に応じてさらに外部のネットワーク端末等の電子機器との間でデータの送受信を行う。リーダライタ装置２０とＩＣカード１との間のデータ送受信は、ＵＳＢ、ＩＳＯ７８１６等の予め規定されている規格に基づいて実施されるように構成されてもよい。
【０１０２】
なお、本発明でいうコンピュータとは、記憶部、制御部等を備えた情報処理装置をいい、ＩＣカード１では、ＣＰＵ１１、記憶部２等を備えて構成される。
【０１０３】
また、本発明に係るＩＣカード１は、上述のような構成を有することにより、コマンドを受信し、コマンドに対応する情報を送信し、受信したコマンドの次に受信されるべきコマンドを予測し、予測された予測コマンドを実行し、予測コマンドの実行結果である予測処理結果情報を記憶し、その情報を送信し、次のコマンドである次コマンドを受信し、その次コマンドと予測された予測コマンドとを比較し、次コマンドと予測コマンドとが一致する場合には予測処理結果情報を送信し、次コマンドと予測コマンドとが一致しない場合には、次コマンドを実行する機能を有する。
【０１０４】
次に、図１におけるＩＣカードにこれらの機能を実装し、実行対象となるアプリケーションプログラムの処理にかかる時間の短縮および利便性の向上を図る機能などを実現する処理動作の一部を、図５乃至図７と対応させながら説明する。
【０１０５】
図５は、本実施形態のコマンド予測機能および投機実行機能が実行されるタイミングを示す処理フロー図である。
【０１０６】
ステップＳ１では、ＩＣカード１はリーダライタ装置２０から受信部３１を介してリセット信号を受信する。
【０１０７】
ステップＳ２では、ＩＣカード１はステップＳ１において受信したリセット信号に対応する情報としてＡＴＲを送信部３２を介してリーダライタ装置２０へ送信する。
【０１０８】
ステップＳ３では、ＩＣカード１はリーダライタ装置２０からの次のコマンドを待つ待機状態に移行するので、ＩＣカード１はコマンド予測機能および投機実行機能を実行する。
【０１０９】
このタイミングでは、ＡＴＲ直後に実行されるコマンドを予想する。ここでは、先行して実行されるコマンドが存在しないので、あらかじめ静的に指定された（予め定められた（記憶された））静的予測パターン（図３（ａ）参照）から「ファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンド」が次に実行されるコマンドであると予測する。そして、「ファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅ」に対応する処理を（投機）実行する。すなわち、ＩＣカード１はファイルＡに対する選択およびＦＣＩ（File Control Information）を呼び出し、これらを専用の投機実行用ＲＡＭ領域（図示せず）に保存する。
【０１１０】
ステップＳ４では、ＩＣカード１はリーダライタ装置２０から受信部３１を介してファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンドを受信する。
【０１１１】
ステップＳ５では、ステップＳ４において受信した「ファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンド」と、ステップＳ３において先行して実行した予測コマンドとが一致するために、ＩＣカード１はこのコマンドに対する処理は実行せず、投機実行用ＲＡＭ領域の内容を実行領域（図示せず）に書き戻し、また投機実行用ＲＡＭ領域に保持されたＦＣＩをレスポンスデータとして送信する準備をする。
【０１１２】
ステップＳ６では、ＩＣカード１は、ステップＳ５において準備したファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンドのコマンドレスポンス（投機実行用ＲＡＭ領域から実行領域に書き戻されたＦＣＩ）を送信部３２を介してリーダライタ装置２０へ送信する。
【０１１３】
ステップＳ７では、ＩＣカード１はリーダライタ装置２０からの次のコマンドを待つ待機状態に移行するので、ＩＣカード１はコマンド予測機能および投機実行機能を実行する。
【０１１４】
先ず、ＩＣカード１はファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンドの次に実行されるであろうコマンドを予測する。先に実行されたコマンドはリセット信号およびファイルＡ に対するＳｅｌｅｃｔ  Ｆｉｌｅ コマンドのみであり、この直前に受信したコマンドの情報および静的に設定された情報（静的予測パターン（図３（ａ）の受信番号２参照））、またはこれまでに蓄積された実行情報がある場合にはその実行情報（動的予測パターン（図３（ｂ）の受信番号５、６を参照））を利用して、「レコードＡに対するＲｅａｄ  Ｒｅｃｏｒｄコマンド」が次に実行されるコマンドであると予想する。
【０１１５】
そして、「レコードＡに対するＲｅａｄ  Ｒｅｃｏｒｄコマンド」に対応する処理を実行する。すなわち、ＩＣカード１はレコードＡの情報を読み出し、専用の投機実行用ＲＡＭ領域に保存する。
【０１１６】
ステップＳ８では、ＩＣカード１はリーダライタ装置２０から受信部３１を介してレコードＦに対するＲｅａｄ  Ｒｅｃｏｒｄコマンドを受信する。
【０１１７】
ＩＣカード１は受信したコマンド「レコードＦに対するＲｅａｄ  Ｒｅｃｏｒｄコマンド」が、先行して実行した予測コマンド「レコードＡに対するＲｅａｄ  Ｒｅｃｏｒｄコマンド」とは異なるため、予測は失敗と判断し、投機実行用ＲＡＭ領域に格納されている情報は破棄する（破棄せずにそのまま投機実行用ＲＡＭ領域に格納しておいてもよい）。
【０１１８】
ステップＳ９では、ＩＣカード１はステップＳ１において受信したレコードＦに対するＲｅａｄ  Ｒｅｃｏｒｄコマンドを実行する。
【０１１９】
ステップＳ１０では、ＩＣカード１はレコードＦに対するＲｅａｄ  Ｒｅｃｏｒｄコマンドのコマンドレスポンスを送信部３２を介してリーダライタ装置２０へ送信する。
【０１２０】
ステップＳ１１では、ＩＣカード１はリーダライタ装置２０からの次のコマンドを待つ待機状態に移行するので、ＩＣカード１はコマンド予測機能および投機実行機能を実行する。
【０１２１】
ステップＳ１１のタイミングでは、レコードＦに対するＲｅａｄ  Ｒｅｃｏｒｄコマンドの次に実行されるであろうコマンドを予測する。先に受信され、実行されたコマンドはファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンド、レコードＦに対するＲｅａｄ  Ｒｅｃｏｒｄコマンドであり、これらのコマンドの情報および静的に設定された情報（静的予測パターン（図３（ａ）の受信番号４参照））、またはこれまでに蓄積された実行情報がある場合にはその実行情報（動的予測パターン（図３（ｂ）の受信番号５、６、７、８参照））を利用して次に実行されるコマンドを予想する。静的予測パターンでは「ファイルＢに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンド」が次に実行されるコマンドであると予想され、動的予測パターンでは「レコードＦに対するＷｒｉｔｅ  Ｒｅｃｏｒｄコマンド」が次に実行されるコマンドであると予想される。予測手法を以下に詳述する。
【０１２２】
静的予測パターン（図３（ａ）の受信番号４参照）から、ＩＣカード１は「ファイルＢに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンド」を予想し、対応する処理を実行する。図３（ａ）の受信番号４では、Ｓｅｌｅｃｔ  Ｆｉｌｅコマンドの次にＲｅａｄ  Ｒｅｃｏｒｄコマンドが受信されることが予測パターンとして格納されて、それらに対応するコマンドがステップＳ４、ステップＳ８において順番に受信されたＳｅｌｅｃｔ  ＦｉｌｅコマンドおよびＲｅａｄ  Ｒｅｃｏｒｄコマンドに対応するので、予測コマンドとしてＳｅｌｅｃｔ  Ｆｉｌｅコマンドが予測される。
【０１２３】
また、図３（ａ）の受信番号４に記載のコマンドに対するファイル名およびレコード名と実際に受信されたコマンドに対するファイル名およびレコード名とは異なるが、図３（ａ）の受信番号４では受信されたＳｅｌｅｃｔ  Ｆｉｌｅ  ＣからＳｅｌｅｃｔ  ＦｉｌｅＤが予測コマンドとして格納されているので、ＩＣカード１は対応した対象ファイル名の変化を予測し、ステップ４において受信されたＳｅｌｅｃｔ  Ｆｉｌｅ  ＡからＳｅｌｅｃｔ  Ｆｉｌｅ  Ｂを予測することが可能となる。
【０１２４】
動的予測パターンでは（図３（ｂ）の受信番号５、６、７、８参照）では、Ｒｅｓｅｔ、Ｓｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎ、Ｒｅａｄ  Ｒｅｃｏｒｄコマンドの次にＷｒｉｔｅ  Ｒｅｃｏｒｄコマンドが予測されているので、Ｗｒｉｔｅ  Ｒｅｃｏｒｄコマンドが予測コマンドとして予測される。ＩＣカード１は対応した対象ファイル名の変化を予測（図３（ｂ）の受信番号７においてＲｅａｄとＷｒｉｔｅコマンドに対するレコード名は変化していない）し、レコードＦに対するＲｅａｄ  Ｒｅｃｏｒｄコマンドの予測コマンドとして「レコードＦに対するＷｒｉｔｅ  Ｒｅｃｏｒｄコマンド」を次に実行されるコマンドであると予想する。
【０１２５】
このように、ＩＣカード１は、コマンドの対象となるファイル名およびレコード名を静的予測パターンおよび動的予測パターンから推測することも可能である。
【０１２６】
以上説明したように、コマンド予測機能では、次に実行されるであろうコマンドを予測し、投機実行機能では予測された予測コマンドに関する処理を次のコマンドが受信されるまで実行する。ここでは、シーケンスにおける（処理フローにおける）ステップＳ３、ステップＳ７、ステップＳ１１のタイミングで次コマンドを予測し、予測コマンドに対応する処理を実行する。
【０１２７】
（実施形態１）
次に図６を用いて、本実施形態の一部を示すフローチャートについて説明する。
【０１２８】
図６のフローチャートでは、ＩＣ１におけるコマンド予測機能によって予測された予測コマンドと次コマンドとが一致した場合について、各処理動作部に基づいて説明する。
【０１２９】
ステップＳ２１では、ＩＣカード１はリーダライタ装置２０から受信部３１を介してリセット信号を受信する。
【０１３０】
ステップＳ２２では、ＩＣカード１は受信したリセット信号に対応する情報としてＡＴＲを送信部３２を介してリーダライタ装置２０へ送信する。
【０１３１】
ステップＳ２３では、ＩＣカード１はリーダライタ装置２０からの次のコマンドを待つ待機状態に移行するので、ＩＣカード１の制御部３５は次のコマンドを予測するようにコマンド予測部３３に命令する。
【０１３２】
ステップＳ２４では、コマンド予測部３３は次のコマンドに相当する予測コマンドを予測する。
【０１３３】
ステップＳ２５では、コマンド予測部３３が予測コマンドと決定したＳｅｌｅｃｔ  Ｆｉｌｅ Ａコマンドを制御部３５へ転送する。
【０１３４】
ステップＳ２６では、制御部３５は、「ファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅ」に対応する処理を実行する。すなわち、ＩＣカード１はファイルＡに対する選択およびＦＣＩ(File Control Information) を呼び出し、これらを専用の投機実行用ＲＡＭ領域（図示せず）に保存する。
【０１３５】
ステップＳ２７では、制御部３５は、「ファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅ」に対応する処理の実行が完了したことをコマンド比較部３４に転送する。
【０１３６】
ステップＳ２８では、ＩＣカード１はリーダライタ装置２０から受信部３１を介してファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンドを受信する。
【０１３７】
ステップＳ２９では、コマンド比較部３４は、予測コマンドと受信した次コマンドとが一致することを確認する。
【０１３８】
ステップＳ３０では、コマンド比較部３４から制御部３５へ、予測コマンドの投機実行処理結果（予測処理結果情報）を反映するように命令する。
【０１３９】
ステップＳ３１では、ＩＣカード１はこのコマンド（「ファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンド」）に対する処理は実行せず、投機実行用ＲＡＭ領域の内容を実行領域に書き戻し、また投機実行用ＲＡＭ領域に保持されたＦＣＩをレスポンスデータとして送信する準備をする。
【０１４０】
ステップＳ３２では、制御部３５から入出力インターフェース部１２へ予測コマンドの投機実行処理結果（予測処理結果情報）の反映が完了したことを転送するとともに、レスポンスデータを転送する。
【０１４１】
ステップＳ３３では、ＩＣカード１は、ステップＳ３１において準備したファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンドのコマンドレスポンス（投機実行用ＲＡＭ領域から実行領域書き戻されたＦＣＩ）を送信部３２を介してリーダライタ装置２０へ送信する。
【０１４２】
次に図７を用いて、本実施形態の他の一部を示すフローチャートについて説明する。
【０１４３】
図７のフローチャートでは、ＩＣ１におけるコマンド予測機能によって予測された予測コマンドと次コマンドとが一致しない場合について、各処理動作部に基づいて説明する。
【０１４４】
ステップＳ４１では、ＩＣカード１はコマンドレスポンスを送信部３２を介してリーダライタ装置２０へ送信する。
【０１４５】
ステップＳ４２では、ＩＣカード１はリーダライタ装置２０からの次のコマンドを待つ待機状態に移行するので、ＩＣカード１の制御部３５は次のコマンドを予測するようにコマンド予測部３３に命令する。
【０１４６】
ステップＳ４３では、コマンド予測部３３は次のコマンドに相当する予測コマンドを予測する。
【０１４７】
ステップＳ４４では、コマンド予測部３３が予測コマンドと決定したＲｅａｄ  Ｒｅｃｏｒｄ Ｃコマンドを制御部３５へ転送する。
【０１４８】
ステップＳ４５では、制御部３５は、「レコードＣに対するＲｅａｄ  Ｒｅｃｏｒｄ」に対応する処理を実行する。すなわち、ＩＣカード１はレコードＣの情報を読み出し、専用の投機実行用ＲＡＭ領域に保存する。
【０１４９】
ステップＳ４６では、制御部３５は、「レコードＣに対するＲｅａｄ  Ｒｅｃｏｒｄ」に対応する処理の実行が完了したことをコマンド比較部３４に転送する。
【０１５０】
ステップＳ４７では、ＩＣカード１はリーダライタ装置２０から受信部３１を介してレコードＦに対するＲｅａｄ  Ｒｅｃｏｒｄコマンドを受信する。
【０１５１】
ステップＳ４８では、コマンド比較部３４は、予測コマンドと受信した次コマンドとが一致しないことを確認する。
【０１５２】
ステップＳ４９では、ＩＣカード１はＲｅａｄ  Ｒｅｃｏｒｄ Ｆコマンド実行する。
【０１５３】
ステップＳ５０では、ＩＣカード１は、ファイルＦに対するＲｅａｄ  Ｒｅｃｏｒｄコマンドのコマンドレスポンスを送信部３２を介してリーダライタ装置２０へ送信する。
【０１５４】
このように図６および図７に関わる動作によれば、ＡＴＲ後のコマンドは予測が一致し、先行して実行した結果をそのまま反映／送信することが可能になる。しかし、ファイルＡに対するＳｅｌｅｃｔ  Ｆｉｌｅコマンド後のコマンドは予測が外れたため、先行して実行した結果を破棄し、改めて受信したコマンドを実行する。この例のように、予測が一致した場合は先行した結果をそのまま反映できるため処理速度の向上が見込める。予測が外れた場合は先行した結果を利用できないが、結果を利用せずに改めて実行すればよいので従来の構成例よりも処理速度が大きく遅れることはない。そのため、予測が外れたコマンドがあったとしても、全体として処理速度の向上が可能となる。
【０１５５】
（実施形態２）
次に、ＩＣカード１として暗号を演算する機能を搭載したカードを想定する。
【０１５６】
本実施形態では、以下のシーケンスを例に説明する。
【０１５７】
１.Ｒｅｓｅｔ信号を受信する。２.ＡＴＲを送信する。３.アプリケーションプログラムＡに対するＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンドを受信する。４.待機状態に遷移する。５.暗号演算コマンドであるＥｎｃ（Ｅｎｃｏｄｅ）Ｄａｔａコマンドを受信する。
【０１５８】
一般的に、暗号演算は他の処理と比較して実行に時間がかかる。そのため、暗号演算が実行されることが予想された場合、あらかじめ待機時間中に暗号演算を先行して実行することにより、実行時間を大幅に短縮することが可能となる。
【０１５９】
ここでは、３番目のＳｅｌｅｃｔ  Ａｐｐｌｉｃａｔｉｏｎコマンド後に５番目のＥｎｃ  Ｄａｔａコマンドが送信されると予測したとする。
【０１６０】
Ｅｎｃ  Ｄａｔａコマンドでは暗号処理が演算されるため、先行して暗号演算を実行する(投機実行)。この時、コマンドから与えられるデータを用いてまたはコマンドから与えられるデータを用いずに暗号演算を実行する。
【０１６１】
この場合、以下の２通りの方法にて投機実行を実現する。
【０１６２】
一つの投機実行方法は暗号演算に利用する値を予測し、その値を用いて暗号を演算する方法である。
【０１６３】
もう一つの投機実行方法は、与えられたデータを必要としない部分の演算を先行して実行し、データが与えられたらすぐに以降の演算を継続して実行できるようにする方法である。
【０１６４】
値を予測する場合では、その値を用いて暗号演算処理を実行する。コマンドにて送られてきたデータが予測した値と一致した場合には、そのまま結果を利用する。一致しない場合は結果を破棄する。
【０１６５】
一部のみ暗号演算処理を実行する場合では、コマンドを必要としない部分(鍵がわかっている場合は鍵拡張処理など)を先行して実行する。コマンドからデータが与えられてから、残りの部分を実行する。これらの手法により、時間がかかる暗号処理をより高速に実行することが可能となる。
【０１６６】
このように、暗号処理の一部の処理だけを実施する場合の例として、以下のような処理が挙げられる。
【０１６７】
一つはＩＣカード内部で保持する鍵が壊れていないことを確認するためのＣＲＣチェックである。
【０１６８】
他の一つは、ＡＥＳ（Advanced Encryption Standard）などの暗号における、鍵拡張処理（カード内で保持する鍵から、拡張鍵を作成する処理である。外部のデータが不要な場合があるために、次のコマンドを受信する前に先行して実行が可能となる）である。
【０１６９】
さらに他の一つは、マスク情報の作成(カード内の演算処理を外部に漏洩させないため、乱数によるマスク処理を実施する場合がある。この時に利用する乱数をあらかじめ生成し、ＲＡＭ上に展開させる)処理である。
【０１７０】
このような処理を先行して実行することにより、処理速度の向上が見込める。
【０１７１】
一例として、以下の処理フローで実行される暗号演算が想定される。
【０１７２】
１．カード内部に保持する鍵のＣＲＣをチェックする。２．次に暗号鍵を利用した鍵拡張処理を実施する。３．暗号処理に利用するマスク用乱数値を生成する。４．コマンドより暗号化するデータを受け取り、暗号処理を実施する。５．結果をレスポンスとして送信する。
【０１７３】
上記のようなフローの場合、１，２，３はコマンドから与えられるデータがなくとも先行して処理が実施可能である。投機実行機能にて１から３までの処理を先行して実行し、当該コマンドを受信した後、４および５の処理を継続して実施することが可能となる。１から３までの処理は場合によって時間がかかる処理もあるため、全体として処理速度の向上が見込める。
【０１７４】
実施形態２の処理フローを図８に示す。このフローでは、Ｓｅｌｅｃｔコマンドに対する応答後からの処理フローであって、予測が成功した場合の処理フローである。
【０１７５】
ステップＳ５１では、ＩＣカード１は受信したリセット信号に対応する情報としてＡＴＲを送信部３２を介してリーダライタ装置２０へ送信する。
【０１７６】
ステップＳ５２では、ＩＣカード１はリーダライタ装置２０からの次のコマンドを待つ待機状態に移行するので、ＩＣカード１の制御部３５は次のコマンドを予測するようにコマンド予測部３３に命令する。
【０１７７】
ステップＳ５３では、コマンド予測部３３は次のコマンドに相当する予測コマンドを予測する。
【０１７８】
ステップＳ５４では、コマンド予測部３３が予測コマンドと決定したＥｎｃ  ｄａｔａコマンドを制御部３５へ転送する。
【０１７９】
ステップＳ５５では、制御部３５は、「Ｅｎｃ  ｄａｔａコマンド」に対応する処理を実行する。すなわち、ＩＣカード１の内部で保持する鍵が壊れていないことを確認するためのＣＲＣチェックを実行し、鍵拡張処理を実行し、マスク情報の作成処理を実行し、後の処理に必要な情報をＲＡＭ１５上に展開させる。
【０１８０】
ステップＳ５６では、制御部３５は、「Ｅｎｃ  ｄａｔａ」に対応する処理の一部の実行が完了したことをコマンド比較部３４に転送する。
【０１８１】
ステップＳ５７では、ＩＣカード１はリーダライタ装置２０から受信部３１を介してＥｎｃ  ｄａｔａコマンドを受信する。
【０１８２】
ステップＳ５８では、コマンド比較部３４は、予測コマンドと受信した次コマンドとが一致することを確認する。
【０１８３】
ステップＳ５９では、コマンド比較部３４から制御部３５へ、ステップＳ５５において実行した一部の「Ｅｎｃ  ｄａｔａ」に対応する処理に引き続く処理を実行するように命令する。
【０１８４】
また、ステップＳ５７において受信した「Ｅｎｃ  ｄａｔａコマンド」を処理するために必要なデータを制御部３５へ送付する。
【０１８５】
ステップＳ６０では、ＩＣカード１の制御部３５はステップＳ５５において実行した一部の「Ｅｎｃ  ｄａｔａ」に対応する処理結果情報を利用（ＲＡＭ１５上に展開されたデータを利用することも含む）して、「Ｅｎｃ  ｄａｔａコマンド」の処理を完了させる。
【０１８６】
ステップＳ６１では、制御部３５から入出力インターフェース部１２へ予測コマンドである「Ｅｎｃ  ｄａｔａコマンド」の処理が完了したことを転送するとともに、レスポンスデータを転送する。
【０１８７】
ステップＳ３３では、ＩＣカード１は、コマンドレスポンスを送信部３２を介してリーダライタ装置２０へ送信する。
【０１８８】
このように図８に関わる動作によれば、少なくとも一部の暗号演算処理（コマンドを必要としない部分(鍵がわかっている場合は鍵拡張処理など)）を先行して実行し、コマンドを受信してから与えられたデータを使用して残りの部分を実行する。これらの手法により、時間がかかる暗号処理をより高速に実行することが可能となる。
【０１８９】
以上のように、本発明の半導体装置は物品であればどのようなものにでも設けて使用し
てもよく、ほかにも免許証、保険証、定期券、キャッシュカード、クレジットカード、電
子キー、電子マネー等に使用することができる。
【０１９０】
また上記の処理により、ＩＣカード等の半導体装置において、実行対象となるアプリケーションプログラムの処理にかかる時間の短縮および利便性の向上を図ることが可能となる。
【０１９１】
なお、図５乃至図８における動作手順を、ハードディスク等の記録媒体に予め記録しておき、或いはインターネット等のネットワークを介して予め記録しておき、これを汎用のマイクロコンピュータ等により読み出して実行することにより、当該汎用のマイクロコンピュータ等を実施形態に係わるＣＰＵとして機能させることも可能である。
【０１９２】
さらに、本発明は上記実施例に限定されるものではなく、本発明の要旨の範囲内において種々変更可能である。
【０１９３】
さらに、本明細書に記載および図示されている実施形態は具体例としてのものであるに過ぎず、本発明の範囲を限定するものと考えるべきではないと理解すべきである。本発明の精神および範囲にしたがって上述以外の変更および修正を施すことも可能である。
【符号の説明】
【０１９４】
１  ＩＣカード
２  記憶部
３  演算部
１１  ＣＰＵ
１２  入出力インターフェース部
１３  ＲＯＭ部
１４  ＥＥＰＲＯＭ部
１５  ＲＡＭ部
２０  リーダライタ装置
【図１】
2011034408.tif 000003
【図２】
2011034408.tif 000004
【図３】
2011034408.tif 000005
【図４】
2011034408.tif 000006
【図５】
2011034408.tif 000007
【図６】
2011034408.tif 000008
【図７】
2011034408.tif 000009
【図８】
2011034408.tif 000010