JP4290978B2 - IC card - Google Patents

IC card Download PDF

Info

Publication number
JP4290978B2
JP4290978B2 JP2002379731A JP2002379731A JP4290978B2 JP 4290978 B2 JP4290978 B2 JP 4290978B2 JP 2002379731 A JP2002379731 A JP 2002379731A JP 2002379731 A JP2002379731 A JP 2002379731A JP 4290978 B2 JP4290978 B2 JP 4290978B2
Authority
JP
Japan
Prior art keywords
processing speed
application program
card
instruction
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002379731A
Other languages
Japanese (ja)
Other versions
JP2004213180A (en
Inventor
晋健 平野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2002379731A priority Critical patent/JP4290978B2/en
Publication of JP2004213180A publication Critical patent/JP2004213180A/en
Application granted granted Critical
Publication of JP4290978B2 publication Critical patent/JP4290978B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【0001】
本発明は、複数のアプリケーションを搭載可能なICカードに関するものである。
【0002】
【従来の技術】
近年、ICカードに搭載されるICチップの高性能化に伴い、複数のアプリケーションを実行することができる利便性の高いマルチアプリケーションICカードが実用化されている。このようなICカードは、アプリケーション毎に専用の外部装置から電源を得るとともに、処理情報のやりとりを行いながら、目的の処理を実行する。ICカードは、外部装置との接続後に通信路の確立のために設定されるクロックに同期して通信及び処理を行っていた。
【0003】
ICカードに搭載されている複数のアプリケーションは、その用途毎に、必要とする仕様が異なり、例えば、あるアプリケーションでは、処理速度は遅くても消費電力を小さく抑えることが優先するが、別のアプリケーションでは、消費電力が大きくても処理速度を速くすることが優先する場合がある。
【0004】
特に、RSA、DES等のデータの暗号化、復号を行う処理は、計算量が多いため、ソフトウェア上で計算を行うと、ICカードの処理速度が遅くなる。この場合には、専用のハードウェアとしてICカード内のコプロセッサを使用すれば、処理速度を速くすることが可能であるが消費電力が増大する。
従って、処理速度の速さを優先したアプリケーションを搭載したICカードは、据え置き型等の消費電力が制限されていない外部装置においては、使用可能であるが、消費電流の推奨負荷ピーク値が定められている電池を電源とする携帯電話等、消費電力に制限のある外部装置において使用できず、汎用性に欠けるという問題があった。
この問題を解決するために、外部装置の種別に応じて、処理速度の基準となる内部クロックの周波数を変更する従来のICカードがある。
【0005】
【特許文献1】
特開2001−209764(第2−3頁、第1図)
【0006】
【発明が解決しようとする課題】
しかし、従来のICカードでは、アプリケーションに含まれる複数の処理において、消費電力が最大となる処理に合わせてすべての処理における処理速度を一律に調整するため、処理の遅延を招くおそれがある。つまり、ICカードが、消費電力に制限がある外部装置に接続され、アプリケーションに、暗号化及び復号の処理が含まれる場合には、内部クロックの周波数を低く設定しなければならず、この低い周波数に同期して、アプリケーションに含まれる他の処理を行わなければならないという問題があった。
【0007】
本発明の課題は、利便性及び汎用性が高く、処理の迅速化を図ることが可能なICカードを提供することである。
【0008】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。すなわち、請求項1の発明は、アプリケーションプログラムを記憶するアプリケーションプログラム記憶手段(63、63−2)と、前記アプリケーションプログラム記憶手段に記憶されているアプリケーションプログラムを実行するアプリケーションプログラム実行手段(51)とを備えるICカードであって、前記アプリケーションプログラム実行手段によって実行されているアプリケーションプログラムに処理速度変更指示があった場合に、前記処理速度変更指示に応じて前記アプリケーションプログラム実行手段の処理速度を変更する処理速度変更手段(52、52−2)を備え、前記処理速度変更指示は、既存の他の意味を有する命令であって、前記既存の他の意味を消す引数が指定されていること、を特徴とするICカード(1−2)である。
【0009】
請求項2の発明は、アプリケーションプログラムを記憶するアプリケーションプログラム記憶手段(63)と、前記アプリケーションプログラム記憶手段によって記憶されているアプリケーションプログラムを実行するアプリケーションプログラム実行手段(51)とを備えるICカードであって、外部装置(2−1、2−2)から処理速度変更要求を受信した場合に、前記処理速度変更要求に応じて前記アプリケーションプログラム実行手段の処理速度を変更する処理速度変更手段(52−3)を備え、前記処理速度変更要求は、既存の他の意味を有する要求であって、前記既存の他の意味を消す引数が指定されていること、を特徴とするICカード(1−3)である。
【0010】
請求項3の発明は、請求項1又は請求項2に記載のICカードにおいて、前記アプリケーションプログラム実行手段(51)は、アプリケーションプログラムに応じて演算を行う演算手段(511)を備え、前記処理速度変更手段は、前記処理速度変更指示又は前記処理速度変更要求に応じて前記演算手段の処理速度を変更すること、を特徴とするICカード(1、1−2、1−3)である。
【0011】
請求項4の発明は、請求項1から請求項3までのいずれか1項に記載のICカードにおいて、前記処理速度変更手段は、前記処理速度変更指示又は前記処理速度変更要求に応じて、前記アプリケーションプログラムの一又は複数の処理単位で処理速度を変更すること、を特徴とするICカード(1、1−2、1−3)である。
【0019】
【発明の実施の形態】
以下、図面等を参照しながら、本発明の実施の形態について、更に詳しく説明する。
(第1実施形態)
図1は、本発明によるICカードの第1実施形態を示すブロック図である。
図1に示すように、ICカード1は、カード内部に設けられているアンテナ10と、カード表面に設けられている接触端子20とを備え、外部装置2−1のR/Wから送信された電磁波を搬送波として、アンテナ10を介して電力及びクロックの授受を非接触状態で行う非接触式通信機能及び接触端子20がATM等の外部装置2−2のリーダライタ(以下、「リーダライタ」を「R/W」という。)の端子と接触した状態でデータ、電力及びクロックの授受を行う接触式通信機能を備える接触/非接触型ICカードである。また、ICカード1は、アンテナ10及び接触端子20に接続されている接触/非接触式共用のICチップ30を備え、複数のアプリケーションを搭載可能ないわゆるマルチアプリケーションICカードである。
外部装置2−1は、入退室管理装置等、ICカード1と非接触式で通信を行うR/Wを備える情報処理装置であり、外部装置2−2は、ATM等、ICカード1と接触式で通信を行うR/Wを備える情報処理装置である。
【0020】
アンテナ10は、導体が電気的に接触しないように複数回巻かれ、ICチップ30のインターフェイス部40(以下、「インターフェイス」を「I/F」という。)に接続されている巻線コイル等であって、交流電磁波及び交流電力の相互変換を行う。
接触端子20は、外部装置2−2のR/Wの端子と接触して電気的導通を行う複数の端子を備え、ICチップ30のI/F部40に接続され、電源電圧、外部クロック等の供給を受け、情報の授受を行う、ICチップ30及び外部装置2−2間における接触式での通信を媒介する接触式通信手段である。
【0021】
ICチップ30は、CPU50と、CPU50に接続されているI/F部40、コプロセッサ71、RAM61、ROM62及びNVM(Non Volatile Memory)63等を備えている。
I/F部40は、アンテナ20を介して入力する交流電力から、クロック成分、つまり、RAM61等の周辺回路間で同期をとるためのテンポである外部クロック(基本クロック)を抽出するためのクロックパルス生成回路等を含む基本クロック生成部41と、基本クロック生成部41に接続されているクロック生成部42とを備えている。また、I/F部40は、アンテナ20を介して交流電力から電源電圧となる電力成分を抽出するための整流回路等と、CPU50へ入力するデータ成分を抽出するための復調回路等と、交流電力に対してCPU50から出力されるデータに応じた負荷変調等を行い、アンテナ20へ出力する変調回路等とを備えている(図示しない)。
【0022】
クロック生成部42は、基本クロック生成部41又は接触端子20から入力する基本クロック(外部クロック)から複数のクロックを生成し、いずれか一のクロックを内部クロックとしてCPU50へ入力する。
図2は、クロック生成部42を示すブロック図である。
図2に示すように、クロック生成部42は、基本クロック生成部41から入力される基本クロックを8倍(以下、基本クロックのX倍の周波数のクロックを「X逓倍クロック」という。)の周波数に高める逓倍回路421と、逓倍回路421から入力される8逓倍クロックを1/2の周波数に低減する分周回路422と、分周回路422から入力される4逓倍クロックを1/2の周波数に低減する分周回路423と、選択器424とを備えている。
【0023】
選択器424は、基本クロック生成部41、逓倍回路421、分周回路422,423及びCPU50等に接続され、CPU50から入力される選択信号に基づき、接続を切り替え、逓倍回路421等によって入力される4種類のクロック(基本クロック、8逓倍クロック、4逓倍クロック及び2逓倍クロック)のうち、いずれか一のクロックを内部クロックとしてCPU50へ入力する。なお、ICカード1の初期状態において、選択器424は、基本クロックをCPU50へ入力する。
【0024】
図1に示すように、RAM61、ROM62及びNVM63は、プログラム、データ等のCPU50の処理に必要な情報を記憶するための記憶手段である。RAM61は、揮発性メモリであり、CPU50が処理を行う作業領域として使用される。ROM62は、不揮発性の読み出し専用メモリであって、オペレーティングシステム(以下、ICカード1に記憶されているオペレーティングシステムを「OS−1」という。)等のプログラム及びパラメータ等のプログラムの実行に必要なデータを記憶している。オペレーティングシステムとは、基本ソフトウェアであって、CPU50が実行することによって、CPU50、周辺機器等のハードウェアを制御し、アプリケーションプログラムがこれを利用できるようにするプログラム及びプログラムの実行に必要なデータである。
NVM63は、EEPROM、フラッシュメモリ、FRAM等の随時書き換え可能な不揮発性のメモリであり、通常ユーザのワークエリア、プログラムエリア等として使用され、複数のアプリケーションを記憶することが可能である。
【0025】
CPU50は、ROM62、NVM63等のメモリに記憶されているOS−1等のプログラムを実行することによって、ICカード1を統括制御し、アプリケーション実行部51、処理速度制御部52等を実現する。
アプリケーション実行部51は、NVM63に記憶されているアプリケーションプログラムを実行するアプリケーションプログラム実行手段であり、アプリケーションプログラムの実行に係る算術演算、論理演算等の演算を行う演算部511を備えている。演算部511は、選択器424からCPU50へ提供される内部クロックに同期して処理を行う。
【0026】
処理速度制御部52は、アプリケーション実行部51が実行しているアプリケーションプログラムに処理速度変更指示があった場合に、選択器424へクロック識別情報を含む選択信号を送信して選択器424を制御し、CPU50へ入力する内部クロックを切り替えることによって、演算部511の処理速度を変更する等、CPU50の処理速度の制御を行う。処理速度変更指示とは、処理速度を変更する命令であって、本実施形態においては、CPU50に入力するクロックを変更する命令であり、変更後にCPU50へ入力すべき内部クロックを示すクロック識別情報を含んでいる。クロック識別情報は、クロック生成部42がCPU50へ入力可能な4種類のクロックから一のクロックを識別するための情報である。命令とは、CPU50に動作をさせるための指示であって、関数を含む。
コプロセッサ71は、CPU50を補完し、性能を強化するプロセッサであって、データの暗号化、復号等の計算量の多い処理を専用に行う演算手段である。
【0027】
図3は、本発明によるオペレーティングシステム及びアプリケーションプログラムの第1実施形態を説明するための図であって、図3(a)は、ROM62に記憶されているOS−1のアプリケーションプログラムインターフェイス(以下、「API」という。)を説明するための図である。
図3(a)に示すように、OS−1のAPIは、引数「Lv」(レベル)に対応するクロックを示すクロック識別情報を含む選択信号を選択器424に送信する、つまり、処理速度制御部52をCPU50に実現させるOS−1の機能を呼び出す「DNP.util.setClock(BYTE Lv)」という命令(以下、この命令を「命令DUS」という。)を含んでいる。命令DUSは、CPU50の処理速度の変更を指示する処理速度変更指示である。
【0028】
命令DUSの引数の値(Lvで指定できる値)は、DEFAULT、HIGH、MIDDLE及びLOWの4種類の値であり、ラベルとして、それぞれI/F部40がCPU50へ提供できる4種類のクロック(基本クロック、8逓倍クロック、4逓倍クロック及び2逓倍クロック)に対応するクロック識別情報である。DEFAULTは、基本クロック(外部クロック)に、HIGH、MIDDLE及びLOWは、I/F部40が基本クロックから生成した複数のクロックのうち、それぞれ周波数の高い順で、8逓倍クロック、4逓倍クロック及び2逓倍クロックにそれぞれ対応している。
なお、この対応関係は、命令DUSで指定できる4種類の引数に、IF部40が提供できる4種類のクロックをそれぞれ関連づけてROM62、NVM63等のメモリに記憶していてもよく、記憶せずに、CPU50がOS−1を実行することによって、関連づけを動的に行ってもよい。また、いずれのクロックをいずれの引数の値に関連づけるかは、任意であって限定されない。
【0029】
図3(b)は、本発明によるアプリケーションプログラムの一部を示す図である。本発明によるアプリケーションプログラムは、ICカード1のNVM63に記憶され、Java言語で記述されているAP−1である。なお、「heavyFunction()」とは、RSAの暗号化、復号等のCPU50に高い負荷がかかる処理を行わせる命令(以下、この命令を「命令HF」という。)である。
図3(b)に示すように、AP−1は、命令HFの前に引数「HIGH」が指定されている命令DUS、命令HFの後に引数「DEFAULT」が指定されている命令DUSを含んでいる。従って、CPU50は、命令HFの処理を8逓倍クロックに同期して行い、その後の処理を基本クロックに同期して行う。
従って、処理速度制御部52は、処理速度変更指示である命令DUSに応じて、一又は複数の処理単位で処理速度を変更することが可能である。処理単位とは、AP−1の命令単位等、ハードウェア資源を使う処理における実行の最小単位(タスク)である。
【0030】
図4は、第1実施形態における、本発明によるICカードの動作、オペレーティングシステム及びアプリケーションプログラムを示すフローチャートである。
ステップ100(以下、「ステップ」を「S」という。)において、ICカード1は、外部装置2−1(外部装置2−2でもよい。)に接続され、電力、クロックの供給を受け、AP−1を選択している状態にある。
S110において、ICカード1は、外部装置2−1からコマンドを受信する。アプリケーション実行部51は、選択されているAP−1に含まれる、このコマンドに対応するプログラム(以下、「コマンド処理プログラム」という。)の実行を開始する(S120)。処理速度制御部52は、コマンド処理プログラムに命令DUSが含まれる場合には、選択器424へ選択信号を送信し、処理速度を変更する(S130,S140)。演算部511は、変更された処理速度でその後の処理を行い(S150)、コマンド処理プログラムの実行が終了するまで同様の処理を繰り返す(S130からS160まで)。ICカード1は、この処理結果をレスポンスとして外部装置2−1へ送信し(S170)、次のコマンドを受信するまで待機状態となり、外部装置2−1との接続が切断されるまで同様の処理(S110からS170まで)を繰り返す。
【0031】
第1実施形態によれば、AP−1に含まれる命令DUSに従って、一又は複数の処理単位でI/F部40がCPU50へ提供するクロックを変更するため、予めAP−1において処理内容に応じて処理単位でCPU50の処理速度を設定することによって、効率的に処理の迅速化を図ることが可能となった。
図5は、アプリケーションプログラムの実行における処理の経過時間(横軸)と、ICカードの消費電流(縦軸)との関係を示すグラフであって、図5(a)は、従来のICカードにおける消費電流を示し、図5(b)は、ICカード1における消費電流を示している。
つまり、図5(a)に示すように、従来のICカードでは、消費電流の推奨負荷ピーク値が定められている電池を電源とする携帯電話等、消費電力に制限のある外部装置2−2において使用することができない。一方、ICカード1は、図5(b)に示すように、消費電流(消費電力)が大きい処理(p4)については、処理速度を低速に、消費電流(消費電力)が小さい処理(p1、p2、p3)については処理速度を高速として処理を行う等、消費電力に応じて処理単位でCPU50の処理速度を変更することによって、消費電力に制限のある外部装置2−1,2−2において使用でき、汎用性及び利便性の向上を図るとともに、効率的に処理の迅速化を図ることが可能となった。
また、APIにおいて、命令DUSの引数(DEFAULT、HIGH、MIDDLE、LOW)の示す意味(8逓倍等)は、個々のカードで任意であるため、複数のクロックを生成でき、OS−1を搭載していれば、生成するクロックの種類、数は、限定されず、AP−1をより多くのICカードで使用することができ、汎用性を向上することが可能となった。
【0032】
(第2実施形態)
図6は、本発明によるICカードの第2実施形態を示すブロック図である。
なお、前述した実施形態と同様の機能を果たす部分には、同一の符号を付して、重複する説明を適宜省略する。
図6に示すように、ICカード1−2は、CPU50−2、ROM62−2、NVM63−2等を備えている。
CPU50−2は、ROM62−2、NVM63−2に記憶されているプログラムを実行することによって、処理速度制御部52−2を実現する。
ROM62−2は、オペレーティングシステムであるOS−2を記憶し、NVM63−2は、アプリケーションプログラムであるAP−2を記憶している。
【0033】
図7は、本発明によるオペレーティングシステム及びアプリケーションプログラムの第2実施形態を説明するための図であって、アプリケーションプログラムの一部を示している。なお、本発明によるOS及びアプリケーションプログラムは、OS−2及びAP−2である。
図7に示すように、AP−2は、引数「src」で示されるアドレスにあるデータ列を引数「len」で示される容量分、引数「dst」で示されるアドレスへコピーする機能をCPU50−2に実現させる、JavaOS等(「JAVA」は、登録商標)の従来の一般的なOS(ICカード)においても実行可能な汎用性のある「standard.arrayCopy(REFERENCE src,REFERENCE dst,short len)」という命令(以下、この命令を「命令SAC」という。)を含んでいる。
【0034】
OS−2は、引数「len」に、命令SACのデータ列をコピーするという既存の意味を消す引数(既存の処理が無意味となる引数)「0」が指定され、AP−2から呼び出しがあった場合には、8逓倍クロックを示すクロック識別情報を含む選択信号を選択器424へ送信する独自の機能を備え、処理速度制御部52−2をCPU50−2に実現させる。意味を消す(無意味)とは、命令に応じた処理において、処理対象のデータ(引数「dst」又は「src」で示されるアドレスのデータ)の内容が変わらない等、実質的な処理が行われないことである。
なお、従来のOSがAP−2から呼び出しを受けた場合には、コピーするデータ列の容量がゼロであるため、この命令に応じた処理を行わない、又は、行った場合であっても処理前後において、処理対象のデータ(dst又はsrcで示されるアドレスのデータ)の内容が変わらず、処理結果が、エラーとなることもない。
【0035】
また、AP−2は、命令SAC同様に情報のコピーをCPU50−2に実現させる、汎用性のある命令であって、処理前の状態においてデータ列のバックアップを取らないという点で命令SACと異なる「standard.arrayCopyNonatomic(REFERENCE src,REFERENCEdst,short len)」という命令(以下、この命令を「命令SACN」という。)を含んでいる。
OS−2は、引数「len」に、命令SACNのデータ列をコピーするという本来の意味を消す引数(既存の処理が無意味となる引数)「0」が指定されて、AP−2から呼び出しがあった場合には、基本クロックを示すクロック識別情報を含む選択信号を選択器424へ送信する独自の機能を備え、処理速度制御部52−2をCPU50−2に実現させる。
【0036】
AP−2は、命令HFの前に引数「len」に「0」が指定されている命令SAC、命令HFの後に引数「len」に「0」が指定されている命令SACNを含んでいる。
このAP−2のプログラムの実行手順について説明する。先ず、処理速度制御部52−2は、CPU50−2へ提供するクロックを8逓倍クロックへ変更し(#1)、次に、演算部511が8逓倍クロックに同期して演算を行う等、アプリケーション実行部51は、命令HFに対応する処理を8逓倍クロックに同期して行い(#2)、処理速度制御部52−2は、クロックを基本クロックへ変更する(#3)。
【0037】
第2実施形態によれば、第1実施形態の効果に加え、汎用性の高い既存の命令である命令SAC及び命令SACNにおいて本来の意味を消す引数を指定することによって、OS−2の独自の機能の呼び出しを行うため、この独自の機能を備えていない従来のOSを備えるICカード上でAP−2を実行することが可能であり、AP−2の汎用性を向上することが可能となった。
【0038】
(第3実施形態)
図8は、本発明によるICカードの第3実施形態を示すブロック図である。
図8に示すように、ICカード1−3は、CPU50−3、ROM62−3等を備えている。
ROM62−3は、オペレーティングシステムであるOS−3を記憶している。
CPU50−3は、アプリケーション実行部51の処理速度の変更を要求する、クロック識別情報を含む処理速度変更要求を外部装置2−1、2−2から受信した場合に、この要求に応じてクロック識別情報を含む選択信号を選択器424へ送信する処理速度制御部52−3を備えている。本実施形態において、処理速度変更要求は、DUSコマンドであって、第1実施形態において命令DUSがOS−1から呼び出す機能と同様の機能をOS−3から呼び出すコマンドである。CPU50−3は、OS−3のDUSコマンドに対応するコマンド処理プログラムを実行することによって、処理速度制御部52−3を実現する。また、DUSコマンドは、クロック識別情報等、命令DUSと同様に引数(Lv)が指定される。
【0039】
図9は、第3実施形態における、本発明によるICカードの動作、オペレーティングシステム及びアプリケーションプログラムを示すフローチャートである。
S200において、ICカード1−3は、外部装置2−1(外部装置2−2でもよい。)に接続され、電力、クロックの供給を受けている状態にある。
S210において、ICカード1−3は、外部装置2−1からコマンドを受信する(S210)。受信したコマンドがDUSコマンドである場合には、処理速度制御部52−3は、処理速度を変更し(S220,S230)、その他のコマンドである場合には、受信したコマンドに対応するコマンド処理プログラムを実行する(S220,S240)。ICカード1−3は、この処理結果をレスポンスとして外部装置2−1へ送信し(S250)、次のコマンドを受信するまで待機状態となり、外部装置2−1との接続が切断されるまで同様の処理(S220からS250まで)を繰り返す。
なお、処理速度の変更(S220)後に、認証コマンド等のその他のコマンドを受信した場合(S210)に、演算部511は、認証コマンドに対応するコマンド処理プログラムの実行に係る演算を変更後のクロックに同期して行う(S240)。
【0040】
第3実施形態によれば、第1実施形態と同様の効果に加え、例えば、携帯電話等の消費電力のピーク値に制限がある外部装置2−1,2−2が、DUSコマンドによって処理速度を低速に変更して消費電力を抑える等、外部装置2−1,2−2側から消費電力及び処理速度をコマンド毎、つまり、ジョブ(一又は複数の処理単位)毎に調整することができ、汎用性及び利便性の向上を図るとともに、効率的に処理の迅速化を図ることが可能となった。
【0041】
(変形形態)
以上説明した実施形態に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。例えば、ICカード1は、外部装置2−1,2−2とアンテナ10又は接触端子20を介して通信を行う接触/非接触式共用のICチップ30を備えているが、これに限られず、非接触型ICチップでもよく、接触型ICチップであってもよい。また、ICカード1は、静電結合方式により外部装置と通信を行うアンテナ及びI/F部を備えていてもよく、通信方法は、限定されない。
【0042】
各実施形態において、I/F部40は、基本クロック、2逓倍クロック、4逓倍クロック及び8逓倍クロックの4種類のクロックを生成するが、1/2倍、3倍、5.5倍、10倍等、基本クロックの他の倍数の周波数を有するクロックを生成してもよく、2種類のクロック、5種類以上のクロックを生成してもよく、複数の種類のクロックを生成することができれば、その周波数、種類の数は、限定されない。
【0043】
また、外部装置2−1,2−2から供給される外部クロックに基づいて、I/F部40がCPU50,50−2,50−3に提供する複数の種類のクロックを生成する代わりに、CPU50,50−2,50−3等のICカード内部で外部クロックの干渉を受けない独自の基本クロックを生成し、基本クロックを逓倍等することによって、複数の種類のクロックを生成してもよい。
【0044】
更に、クロック生成部42は、基本クロックの周波数を8倍した後に1/2倍、1/2倍して、周波数を調整し、4種類の周波数を有するクロックを生成しているが、これに限られず、例えば、基本クロックの周波数が高い場合には、1/2倍、1/2倍して複数のクロックを生成してもよく、周波数の異なる複数の種類のクロックを生成する方法は、限定されない。
【0045】
各実施形態において、処理速度制御部52は、CPU50,50−2,50−3へ提供するクロックを変更することによって、アプリケーション実行部51(演算部511)の処理速度を変更しているが、同様に、コプロセッサ71を使用してアプリケーションプログラムを実行する場合(コプロセッサ71がアプリケーションプログラム実行手段を備える場合)には、コプロセッサ71に提供するクロックを変更することによって、アプリケーションプログラム実行手段の処理速度を変更してもよい。
【0046】
また、処理速度制御部52は、クロック生成部42から、CPU50及びコプロセッサ71にそれぞれ異なる周波数のクロックを供給してもよい。より詳細に処理速度を変更することが可能となり、処理の効率化、処理速度の迅速化、最大消費電力の抑制を図ることが可能となる。
【0047】
各実施形態において、命令DUS、命令SAC、命令SACN、DUSコマンドは、命令又は要求後の処理について処理速度を切り替える命令又は要求であるが、命令又は要求において、クロック及び変更後のクロックに同期して行う処理を指定してもよく、命令又は要求において、変更後のクロックを示唆する情報と、いずれの処理について変更後のクロックに同期して処理を行うかを示す情報とを含んでいれば、命令又は要求の規定の内容は、限定されない。
【0048】
各実施形態において、ICカード1,1−2,1−3は、AP−1、AP−2等のアプリケーションプログラムをNVM63,63−2に記憶するが、ROM62,62−2,62−3に記憶していてもよく、RAM61に記憶していてもよい。アプリケーションプログラムを実行可能なように記憶していれば、記憶方法は、限定されない。OSについても同様である。
【0049】
第2実施形態において、引数「len」に「0」が指定されている命令SAC及び命令SACNを処理速度変更指示として例示したが、命令SAC又は命令SACNの引数「src」及び「dst」が同一の場合に、処理速度変更指示としてもよく、また、他の既存の処理をCPU50−2に実行させる命令であってもよく、その命令において、既存の処理が無意味となる引数が指定された場合に、処理速度変更指示とする規定であれば、命令の種類及び引数の意味づけは、限定されない。
【0050】
また、アプリケーションプログラム内における他の命令との関連において、既存の処理が無意味となる引数が指定されている命令を処理速度変更指示としてもよい。例えば、図10に示すように、AP−3は、引数「len」に「5」が指定されている命令SACが2度繰り返し記述されている(#4,#5)。この2回目の命令SAC(#5)を処理速度変更指示としてもよい。従来のOSがAP−3から呼び出しを受けた場合には、引数「gSrc」で示されるアドレスにあるデータ列を5バイト分、引数「gDst」で示されるアドレスへコピーする処理を2度繰り返しCPU50−2に実行させる。従って、1回目の命令SAC(#4)と同一の引数が指定されている2回目の命令SAC(#5)にかかる処理は、無意味なものとなる。
【0051】
第2実施形態において、AP−2は、命令SAC、命令SACNを含んでいるが、OS−2が他の独自の機能を備える場合には、クロックを変更する以外の他の独自の機能又は汎用性のある機能をOS−2から呼び出す命令であって、汎用性のある機能が無意味となる引数が指定されている場合に、他の独自の機能の呼び出しを行う命令を含んでいてもよい。
命令が呼び出す独自の機能の内容については、限定されず、APIに任意に規定することが可能である。なお、独自の機能とは、従来のOSが備えていない、汎用性のない機能である。
様々な独自の機能をOSから呼び出す命令を含むAP−2は、従来のOSを搭載している従来のICカードに記憶され、実行することが可能であるため、汎用性が高いとともに、OS−2を搭載しているICカード1−2においては、様々な機能を発揮することができ、利便性を向上することが可能となる。
【0052】
第3実施形態において、処理速度制御部52−3は、第2実施形態における命令SAC、命令SACNがOS−2から呼び出す機能と同様の機能を呼び出すコマンドであって、既存の処理が無意味となる引数が指定されている場合に処理速度変更要求となる、汎用性のあるSACコマンド、SACNコマンドを受信した場合に、アプリケーション実行部51の処理速度を変更してもよい。
外部装置から従来のICカードにSAC、SACNコマンドを送信した場合には、ICカードにおいて、実質的な処理が行われないとともに、エラーとならず、また、ICカード1−3にSACコマンド、SACNコマンドを送信した場合には、処理速度変更要求となり、第3実施形態と同様の効果に加え、外部装置の汎用性の向上を図ることが可能である。
【0053】
【発明の効果】
以上詳しく説明したように、本発明によれば、以下の効果を得ることが可能となった。
(1)アプリケーションプログラムに処理速度変更指示があった場合に、アプリケーションプログラム実行手段(演算手段、CPU)の処理速度を変更するため、アプリケーションプログラムに含まれる処理内容に応じて処理速度を変更し、消費電力及び処理速度を調整することによって、ICカード及び外部装置の汎用性及び利便性の向上を図るとともに、効率的にICカードにおける処理の迅速化を図る。
(2)外部装置から受信した処理速度変更要求に基づいて、アプリケーションプログラム実行手段(演算手段、CPU)の処理速度を変更するため、外部装置側から消費電力及び処理速度を要求内容に応じて調整することによって、ICカード及び外部装置の汎用性及び利便性の向上を図るとともに、効率的にICカードにおける処理の迅速化を図る。
(3)また、処理単位で処理速度を変更するため、詳細に消費電力及び処理速度を調整することによって、消費電力に制限のある外部装置において使用可能とする等、汎用性及び利便性の向上を図るとともに、効率的に処理の迅速化を図る。
(4)アプリケーションプログラムが、既存の他の意味を有する命令(既存の他の処理を実行させる命令)であって、既存の他の意味を消す引数(既存の他の処理が無意味となる引数)が指定されている処理速度変更指示を含み、この処理速度変更指示に基づいて処理速度の変更を行うため、処理速度変更指示に対応するオペレーティングシステムを記憶するICカードのみならず、従来のオペレーティングシステムを記憶するICカードでもこのアプリケーションプログラムを利用することができ、汎用性の向上を図る。
(5)同様に、他の意味を有する要求であって、他の意味を消す引数が指定されている処理速度変更要求に基づいて処理速度の変更を行うため、外部装置は、処理速度変更要求に対応するオペレーティングシステム(アプリケーションプログラム)を備えるICカードのみならず、従来のオペレーティングシステム(アプリケーションプログラム)を記憶するICカードにおいても、この要求を行うことができ、汎用性の向上を図る。
(6)汎用性のある機能を呼び出す命令の引数にこの機能が無意味となる引数が指定されている場合に、独自の機能をオペレーティングシステムから呼び出すため、この命令を含むアプリケーションプログラムを、従来のOSを搭載しているICカードで使用可能とするとともに、独自の機能を備えるOSを搭載しているICカードにおいては、独自の機能を発揮させ、汎用性及び利便性の向上を図る。
【図面の簡単な説明】
【図1】本発明によるICカードの第1実施形態を示すブロック図である。
【図2】クロック生成部42を示すブロック図である。
【図3】本発明によるオペレーティングシステム及びアプリケーションプログラムの第1実施形態を説明するための図である。
【図4】第1実施形態における、本発明によるICカードの動作、オペレーティングシステム及びアプリケーションプログラムを示すフローチャートである。
【図5】アプリケーションプログラムの実行における処理の経過時間と、ICカードの消費電流との関係を示すグラフである。
【図6】本発明によるICカードの第2実施形態を示すブロック図である。
【図7】本発明によるオペレーティングシステム及びアプリケーションプログラムの第2実施形態を説明するための図である。
【図8】本発明によるICカードの第3実施形態を示すブロック図である。
【図9】第3実施形態における、本発明によるICカードの動作、オペレーティングシステム及びアプリケーションプログラムを示すフローチャートである。
【図10】本発明によるオペレーティングシステム及びアプリケーションプログラムの変形形態を説明するための図である。
【符号の説明】
1,1−2,1−3 ICカード
2−1,2−2 外部装置
10 アンテナ
20 接触端子
30,30−2,30−3 ICチップ
40 インターフェイス部
41 基本クロック生成部
42 クロック生成部
50 CPU
51 アプリケーション実行部
52 処理速度制御部
61 RAM
62,62−2,62−3 ROM
63,63−2 NVM
71 コプロセッサ
424 選択器
511 演算部
[0001]
The present invention relates to multiple applications can be mounted IC card.
[0002]
[Prior art]
In recent years, with the improvement in performance of IC chips mounted on IC cards, highly convenient multi-application IC cards capable of executing a plurality of applications have been put into practical use. Such an IC card obtains power from a dedicated external device for each application, and executes target processing while exchanging processing information. The IC card performs communication and processing in synchronization with a clock set for establishing a communication path after connection with an external device.
[0003]
A plurality of applications mounted on an IC card have different specifications depending on their uses. For example, in some applications, priority is given to reducing power consumption even if the processing speed is slow, but other applications Then, even if power consumption is large, priority may be given to increasing the processing speed.
[0004]
In particular, the processing for encrypting and decrypting data such as RSA and DES requires a large amount of calculation, so that if the calculation is performed on software, the processing speed of the IC card becomes slow. In this case, if the coprocessor in the IC card is used as dedicated hardware, the processing speed can be increased, but the power consumption increases.
Therefore, an IC card equipped with an application that gives priority to the speed of processing speed can be used in an external device such as a stationary type whose power consumption is not limited, but the recommended load peak value of current consumption is determined. There is a problem that it cannot be used in an external device with limited power consumption, such as a mobile phone using a battery as a power source, and lacks versatility.
In order to solve this problem, there is a conventional IC card that changes the frequency of an internal clock serving as a reference for processing speed in accordance with the type of external device.
[0005]
[Patent Document 1]
Japanese Patent Laid-Open No. 2001-209764 (page 2-3, FIG. 1)
[0006]
[Problems to be solved by the invention]
However, in the conventional IC card, in the plurality of processes included in the application, the processing speed in all the processes is uniformly adjusted according to the process that maximizes the power consumption, which may cause a process delay. In other words, when the IC card is connected to an external device with limited power consumption and the application includes encryption and decryption processing, the frequency of the internal clock must be set low. There is a problem that other processing included in the application must be performed in synchronization with the application.
[0007]
An object of the present invention, convenience and versatile, is to provide an IC card capable of achieving rapid processing.
[0008]
The present invention solves the above problems by the following means. In addition, in order to make an understanding easy, although the code | symbol corresponding to embodiment of this invention is attached | subjected and demonstrated, it is not limited to this. That is, the invention of claim 1 includes application program storage means (63, 63-2) for storing application programs, and application program execution means (51) for executing application programs stored in the application program storage means. The processing speed of the application program executing means is changed according to the processing speed change instruction when the processing speed changing instruction is given to the application program executed by the application program executing means. Processing speed changing means (52, 52-2) , wherein the processing speed change instruction is an instruction having another existing meaning, and an argument for deleting the other existing meaning is designated. Characteristic IC card (1 -2).
[0009]
The invention of claim 2 is an IC card comprising an application program storage means (63) for storing an application program and an application program execution means (51) for executing the application program stored in the application program storage means. When the processing speed change request is received from the external device (2-1, 2-2), the processing speed changing means (52-) for changing the processing speed of the application program execution means in response to the processing speed change request. 3), and the processing speed change request is a request having another existing meaning, and an argument for erasing the other existing meaning is designated. ).
[0010]
According to a third aspect of the present invention, in the IC card according to the first or second aspect, the application program execution means (51) includes a calculation means (511) for performing a calculation according to the application program, and the processing speed The changing means is an IC card (1, 1-2, 1-3) that changes the processing speed of the computing means in response to the processing speed change instruction or the processing speed change request.
[0011]
According to a fourth aspect of the present invention, in the IC card according to any one of the first to third aspects, the processing speed changing means is configured to respond to the processing speed change instruction or the processing speed change request. An IC card (1, 1-2, 1-3) characterized in that the processing speed is changed in one or a plurality of processing units of an application program.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in more detail with reference to the drawings.
(First embodiment)
FIG. 1 is a block diagram showing a first embodiment of an IC card according to the present invention.
As shown in FIG. 1, the IC card 1 includes an antenna 10 provided inside the card and a contact terminal 20 provided on the card surface, and is transmitted from the R / W of the external device 2-1. A non-contact communication function for performing transmission and reception of power and clock through the antenna 10 in a non-contact state using electromagnetic waves as a carrier wave and a contact terminal 20 is a reader / writer (hereinafter referred to as “reader / writer”) of an external device 2-2 such as an ATM. It is a contact / non-contact type IC card having a contact type communication function for exchanging data, power, and a clock in contact with a terminal of “R / W”. Further, the IC card 1 is a so-called multi-application IC card that includes a contact / non-contact type IC chip 30 connected to the antenna 10 and the contact terminal 20 and is capable of mounting a plurality of applications.
The external device 2-1 is an information processing device including an R / W that communicates with the IC card 1 in a non-contact manner, such as an entrance / exit management device, and the external device 2-2 is in contact with the IC card 1, such as an ATM. It is an information processor provided with R / W which communicates by a formula.
[0020]
The antenna 10 is wound by a plurality of turns so that the conductor does not come into electrical contact, and is connected to an interface section 40 (hereinafter, “interface” is referred to as “I / F”) of the IC chip 30. Therefore, mutual conversion of AC electromagnetic wave and AC power is performed.
The contact terminal 20 includes a plurality of terminals that are in electrical contact with the R / W terminal of the external device 2-2, and is connected to the I / F unit 40 of the IC chip 30. Is a contact-type communication means for mediating contact-type communication between the IC chip 30 and the external device 2-2.
[0021]
The IC chip 30 includes a CPU 50, an I / F unit 40 connected to the CPU 50, a coprocessor 71, a RAM 61, a ROM 62, an NVM (Non Volatile Memory) 63, and the like.
The I / F unit 40 extracts a clock component, that is, a clock for extracting an external clock (basic clock) which is a tempo for synchronizing between peripheral circuits such as the RAM 61 from the AC power input via the antenna 20. A basic clock generation unit 41 including a pulse generation circuit and the like, and a clock generation unit 42 connected to the basic clock generation unit 41 are provided. Further, the I / F unit 40 includes a rectifier circuit for extracting a power component that becomes a power supply voltage from AC power via the antenna 20, a demodulator circuit for extracting a data component to be input to the CPU 50, an AC A modulation circuit that performs load modulation or the like on the electric power according to data output from the CPU 50 and outputs the electric power to the antenna 20 is provided (not shown).
[0022]
The clock generation unit 42 generates a plurality of clocks from the basic clock (external clock) input from the basic clock generation unit 41 or the contact terminal 20, and inputs any one of the clocks to the CPU 50 as an internal clock.
FIG. 2 is a block diagram showing the clock generation unit 42.
As shown in FIG. 2, the clock generation unit 42 has a frequency eight times the basic clock input from the basic clock generation unit 41 (hereinafter, a clock having a frequency X times the basic clock is referred to as an “X multiplied clock”). Frequency multiplication circuit 421, frequency dividing circuit 422 for reducing the frequency multiplied by 8 clock input from frequency multiplication circuit 421 to 1/2 frequency, and frequency multiplied by 4 frequency input from frequency dividing circuit 422 to 1/2 frequency. A frequency dividing circuit 423 for reduction and a selector 424 are provided.
[0023]
The selector 424 is connected to the basic clock generation unit 41, the multiplier circuit 421, the frequency divider circuits 422 and 423, the CPU 50, and the like. The selector 424 switches the connection based on the selection signal input from the CPU 50 and is input by the multiplier circuit 421 and the like. Any one of four types of clocks (basic clock, 8-times clock, 4-times clock, and 2-times clock) is input to the CPU 50 as an internal clock. In the initial state of the IC card 1, the selector 424 inputs a basic clock to the CPU 50.
[0024]
As shown in FIG. 1, the RAM 61, the ROM 62, and the NVM 63 are storage means for storing information necessary for processing of the CPU 50 such as programs and data. The RAM 61 is a volatile memory, and is used as a work area where the CPU 50 performs processing. The ROM 62 is a nonvolatile read-only memory, and is necessary for executing a program such as an operating system (hereinafter, an operating system stored in the IC card 1 is referred to as “OS-1”) and a program such as a parameter. I remember the data. The operating system is basic software that is executed by the CPU 50 to control hardware such as the CPU 50 and peripheral devices so that application programs can use the data and data necessary for executing the program. is there.
The NVM 63 is a non-volatile rewritable memory such as an EEPROM, a flash memory, or an FRAM, and is normally used as a user work area, a program area, etc., and can store a plurality of applications.
[0025]
The CPU 50 controls the IC card 1 by executing a program such as OS-1 stored in a memory such as the ROM 62 and the NVM 63, thereby realizing an application execution unit 51, a processing speed control unit 52, and the like.
The application execution unit 51 is an application program execution unit that executes an application program stored in the NVM 63, and includes an operation unit 511 that performs operations such as arithmetic operations and logical operations related to the execution of the application program. The calculation unit 511 performs processing in synchronization with an internal clock provided from the selector 424 to the CPU 50.
[0026]
The processing speed control unit 52 controls the selector 424 by transmitting a selection signal including clock identification information to the selector 424 when the application program executed by the application execution unit 51 is instructed to change the processing speed. The processing speed of the CPU 50 is controlled by switching the internal clock input to the CPU 50, for example, by changing the processing speed of the calculation unit 511. The processing speed change instruction is an instruction to change the processing speed. In this embodiment, the processing speed change instruction is an instruction to change the clock input to the CPU 50. Clock identification information indicating an internal clock to be input to the CPU 50 after the change is provided. Contains. The clock identification information is information for identifying one clock from the four types of clocks that the clock generator 42 can input to the CPU 50. The instruction is an instruction for causing the CPU 50 to operate, and includes a function.
The coprocessor 71 is a processor that complements the CPU 50 and enhances the performance, and is a calculation unit that exclusively performs processing with a large calculation amount such as data encryption and decryption.
[0027]
FIG. 3 is a diagram for explaining the first embodiment of the operating system and the application program according to the present invention. FIG. 3A is an application program interface (hereinafter, referred to as OS-1) stored in the ROM 62. It is a figure for demonstrating "API."
As shown in FIG. 3A, the API of OS-1 transmits a selection signal including clock identification information indicating a clock corresponding to the argument “Lv” (level) to the selector 424, that is, processing speed control. It includes an instruction “DNP.util.setClock (BYTE Lv)” (hereinafter, this instruction is referred to as “instruction DUS”) that calls a function of OS-1 that causes the CPU 50 to realize the unit 52. The command DUS is a processing speed change instruction that instructs the CPU 50 to change the processing speed.
[0028]
The value of the argument of the instruction DUS (value that can be specified by Lv) is four kinds of values of DEFAULT, HIGH, MIDDLE, and LOW. Clock identification information corresponding to a clock, an 8 × clock, a 4 × clock, and a 2 × clock. DEFAULT is a basic clock (external clock), and HIGH, MIDDLE, and LOW are a plurality of clocks generated from the basic clock by the I / F unit 40, respectively, in order from the highest frequency, an 8 × clock, 4 × clock, and Each corresponds to a double clock.
This correspondence relationship may be stored in a memory such as the ROM 62 or the NVM 63 by associating the four types of arguments that can be specified by the instruction DU with the four types of clocks that can be provided by the IF unit 40 without storing them. The association may be performed dynamically by the CPU 50 executing OS-1. Also, which clock is associated with which argument value is arbitrary and is not limited.
[0029]
FIG. 3B shows a part of the application program according to the present invention. The application program according to the present invention is AP-1 which is stored in the NVM 63 of the IC card 1 and described in the Java language. Note that “heavyFunction ()” is an instruction (hereinafter referred to as “instruction HF”) that causes the CPU 50 to perform processing that places a heavy load on the RSA, such as encryption and decryption.
As shown in FIG. 3B, AP-1 includes an instruction DU in which the argument “HIGH” is designated before the instruction HF, and an instruction DU in which the argument “DEFAULT” is designated after the instruction HF. Yes. Therefore, the CPU 50 performs the processing of the instruction HF in synchronization with the 8-fold clock, and performs the subsequent processing in synchronization with the basic clock.
Therefore, the processing speed control unit 52 can change the processing speed in one or a plurality of processing units according to the command DUS which is a processing speed change instruction. The processing unit is a minimum unit (task) of execution in processing using hardware resources such as an instruction unit of AP-1.
[0030]
FIG. 4 is a flowchart showing the operation of the IC card, the operating system, and the application program according to the present invention in the first embodiment.
In step 100 (hereinafter, “step” is referred to as “S”), the IC card 1 is connected to the external device 2-1 (or may be the external device 2-2), supplied with power and clock, and AP -1 is selected.
In S110, the IC card 1 receives a command from the external device 2-1. The application execution unit 51 starts executing a program (hereinafter referred to as “command processing program”) corresponding to this command, which is included in the selected AP-1 (S120). When the command processing program includes the instruction DUS, the processing speed control unit 52 transmits a selection signal to the selector 424 and changes the processing speed (S130, S140). The calculation unit 511 performs subsequent processing at the changed processing speed (S150), and repeats the same processing until the execution of the command processing program ends (from S130 to S160). The IC card 1 transmits this processing result as a response to the external device 2-1 (S170), enters a standby state until the next command is received, and performs the same processing until the connection with the external device 2-1 is disconnected. (S110 to S170) is repeated.
[0031]
According to the first embodiment, according to the instruction DUS included in AP-1, the clock provided to the CPU 50 by the I / F unit 40 in one or a plurality of processing units is changed. By setting the processing speed of the CPU 50 in units of processing, it becomes possible to efficiently speed up the processing.
FIG. 5 is a graph showing the relationship between the elapsed time of processing (horizontal axis) and the current consumption of the IC card (vertical axis) in the execution of the application program. FIG. FIG. 5B shows the current consumption in the IC card 1.
That is, as shown in FIG. 5 (a), in the conventional IC card, an external device 2-2 with limited power consumption, such as a mobile phone using a battery with a recommended load peak value of current consumption as a power source. Cannot be used in On the other hand, as shown in FIG. 5B, the IC card 1 has a process (p4) that consumes a large amount of current (power consumption) (p4). For the external devices 2-1 and 2-2 with limited power consumption, the processing speed of the CPU 50 is changed in units of processing according to the power consumption, such as processing at a high processing speed for p2, p3). It can be used, and the versatility and convenience can be improved, and the processing can be efficiently speeded up.
In addition, in the API, the meanings (e.g., multiplication by 8) indicated by the arguments (DEFAULT, HIGH, MIDDLE, LOW) of the instruction DUs are arbitrary for each card, so multiple clocks can be generated and OS-1 is installed. If so, the type and number of clocks to be generated are not limited, and AP-1 can be used with more IC cards, and versatility can be improved.
[0032]
(Second Embodiment)
FIG. 6 is a block diagram showing a second embodiment of the IC card according to the present invention.
In addition, the same code | symbol is attached | subjected to the part which fulfill | performs the same function as embodiment mentioned above, and the overlapping description is abbreviate | omitted suitably.
As shown in FIG. 6, the IC card 1-2 includes a CPU 50-2, a ROM 62-2, an NVM 63-2, and the like.
The CPU 50-2 implements the processing speed control unit 52-2 by executing programs stored in the ROM 62-2 and the NVM 63-2.
The ROM 62-2 stores OS-2, which is an operating system, and the NVM 63-2 stores AP-2, which is an application program.
[0033]
FIG. 7 is a diagram for explaining a second embodiment of the operating system and the application program according to the present invention, and shows a part of the application program. The OS and application program according to the present invention are OS-2 and AP-2.
As illustrated in FIG. 7, the AP-2 has a function of copying the data string at the address indicated by the argument “src” to the address indicated by the argument “dst” by the capacity indicated by the argument “len”. 2 is realized by “standard.arrayCopy (REFERENCE src, REFERENCE dst, short len), which is versatile and can be executed even in a conventional general OS (IC card) of JavaOS or the like (“ JAVA ”is a registered trademark). ”(Hereinafter, this command is referred to as“ command SAC ”).
[0034]
In OS-2, the argument “len” is designated with an argument “0” that deletes the existing meaning of copying the data string of the instruction SAC (an argument that makes the existing processing meaningless), and a call is made from AP-2. If there is, the CPU 50-2 has a unique function of transmitting a selection signal including clock identification information indicating the multiplied clock to the selector 424, and causes the CPU 50-2 to realize the processing speed control unit 52-2. The meaningless (meaningless) means that substantial processing is performed such as the content of the data to be processed (data at the address indicated by the argument “dst” or “src”) does not change in the processing according to the instruction. It is not to be missed.
Note that when the conventional OS receives a call from AP-2, the capacity of the data string to be copied is zero, so the processing according to this command is not performed or even if it is performed Before and after, the content of the data to be processed (data at the address indicated by dst or src) does not change and the processing result does not cause an error.
[0035]
AP-2 is a general-purpose instruction that causes the CPU 50-2 to copy information as in the case of the instruction SAC, and is different from the instruction SAC in that the data string is not backed up in the state before processing. It includes an instruction “standard.arrayCopyNonomic (REFERENCE src, REFERENCEDst, short len)” (hereinafter, this instruction is referred to as “instruction SACN”).
OS-2 is called from AP-2 when the argument “len” is designated with an argument “0” that erases the original meaning of copying the data string of the instruction SACN (an argument that makes the existing processing meaningless). If there is, a unique function of transmitting a selection signal including clock identification information indicating a basic clock to the selector 424 is provided, and the processing speed control unit 52-2 is realized by the CPU 50-2.
[0036]
AP-2 includes an instruction SAC in which “0” is designated in the argument “len” before the instruction HF, and an instruction SACN in which “0” is designated in the argument “len” after the instruction HF.
An execution procedure of the AP-2 program will be described. First, the processing speed control unit 52-2 changes the clock provided to the CPU 50-2 to an eight-fold clock (# 1), and then the calculation unit 511 performs an operation in synchronization with the eight-fold clock, for example. The execution unit 51 performs processing corresponding to the instruction HF in synchronization with the 8-fold clock (# 2), and the processing speed control unit 52-2 changes the clock to the basic clock (# 3).
[0037]
According to the second embodiment, in addition to the effects of the first embodiment, by specifying an argument that erases the original meaning in the instruction SAC and the instruction SACN, which are existing instructions having high versatility, the OS-2's original Since the function is called, AP-2 can be executed on an IC card having a conventional OS that does not have this unique function, and the versatility of AP-2 can be improved. It was.
[0038]
(Third embodiment)
FIG. 8 is a block diagram showing a third embodiment of the IC card according to the present invention.
As shown in FIG. 8, the IC card 1-3 includes a CPU 50-3, a ROM 62-3, and the like.
The ROM 62-3 stores OS-3 which is an operating system.
When the CPU 50-3 receives from the external devices 2-1 and 2-2 a request for changing the processing speed including the clock identification information, which requests a change in the processing speed of the application execution unit 51, the CPU 50-3 identifies the clock. A processing speed control unit 52-3 for transmitting a selection signal including information to the selector 424 is provided. In the present embodiment, the processing speed change request is a DUS command, and is a command for calling a function similar to the function called from the OS-1 by the instruction DUS from the OS-3 in the first embodiment. The CPU 50-3 implements the processing speed control unit 52-3 by executing a command processing program corresponding to the DUS command of OS-3. The DUS command is designated with an argument (Lv) like the instruction DUS, such as clock identification information.
[0039]
FIG. 9 is a flowchart showing the operation of the IC card, the operating system, and the application program according to the present invention in the third embodiment.
In S200, the IC card 1-3 is connected to the external device 2-1 (or the external device 2-2) and is in a state of receiving power and a clock.
In S210, the IC card 1-3 receives a command from the external device 2-1 (S210). If the received command is a DUS command, the processing speed control unit 52-3 changes the processing speed (S220, S230), and if it is another command, the command processing program corresponding to the received command. Are executed (S220, S240). The IC card 1-3 sends this processing result as a response to the external device 2-1 (S250), and is in a standby state until the next command is received, and so on until the connection with the external device 2-1 is disconnected. The process (from S220 to S250) is repeated.
When another command such as an authentication command is received after the processing speed is changed (S220) (S210), the calculation unit 511 changes the calculation related to the execution of the command processing program corresponding to the authentication command. (S240).
[0040]
According to the third embodiment, in addition to the same effects as those of the first embodiment, for example, the external devices 2-1 and 2-2 that have a restriction on the peak power consumption of a mobile phone or the like can be processed by a DUS command. The power consumption and processing speed can be adjusted for each command, that is, for each job (one or a plurality of processing units) from the external device 2-1 or 2-2, for example, by switching to a low speed. In addition to improving versatility and convenience, it has become possible to speed up processing efficiently.
[0041]
(Deformation)
The present invention is not limited to the embodiment described above, and various modifications and changes are possible, and these are also within the equivalent scope of the present invention. For example, the IC card 1 includes the contact / non-contact type IC chip 30 that communicates with the external devices 2-1 and 2-2 via the antenna 10 or the contact terminal 20, but is not limited thereto. A non-contact type IC chip or a contact type IC chip may be used. Further, the IC card 1 may include an antenna and an I / F unit that communicate with an external device by an electrostatic coupling method, and a communication method is not limited.
[0042]
In each embodiment, the I / F unit 40 generates four types of clocks, ie, a basic clock, a double clock, a quadruple clock, and an eighth clock. A clock having a frequency of another multiple of the basic clock such as a double frequency may be generated, two types of clocks, five or more types of clocks may be generated, and a plurality of types of clocks can be generated. The frequency and the number of types are not limited.
[0043]
Also, instead of generating a plurality of types of clocks that the I / F unit 40 provides to the CPUs 50, 50-2, and 50-3 based on the external clocks supplied from the external devices 2-1, 2-2, A plurality of types of clocks may be generated by generating a unique basic clock that is not affected by external clock interference inside an IC card such as the CPU 50, 50-2, or 50-3, and multiplying the basic clock. .
[0044]
Furthermore, the clock generator 42 adjusts the frequency by multiplying the frequency of the basic clock by 8 and then by 1/2 and 1/2 to generate a clock having four types of frequencies. For example, when the frequency of the basic clock is high, a plurality of clocks may be generated by multiplying by 1/2 or 1/2. A method for generating a plurality of types of clocks having different frequencies is as follows: It is not limited.
[0045]
In each embodiment, the processing speed control unit 52 changes the processing speed of the application execution unit 51 (calculation unit 511) by changing the clock provided to the CPUs 50, 50-2, and 50-3. Similarly, when an application program is executed using the coprocessor 71 (when the coprocessor 71 includes application program execution means), the clock provided to the coprocessor 71 is changed to change the application program execution means. The processing speed may be changed.
[0046]
Further, the processing speed control unit 52 may supply clocks having different frequencies from the clock generation unit 42 to the CPU 50 and the coprocessor 71, respectively. It becomes possible to change the processing speed in more detail, and it is possible to improve the processing efficiency, speed up the processing speed, and suppress the maximum power consumption.
[0047]
In each embodiment, the command DUS, the command SAC, the command SACN, and the DUS command are commands or requests for switching the processing speed for processing after the command or request, but are synchronized with the clock and the changed clock in the command or request. If the instruction or request includes information indicating the changed clock and information indicating which process is to be performed in synchronization with the changed clock The contents of the instruction or request are not limited.
[0048]
In each embodiment, the IC cards 1, 1-2, and 1-3 store application programs such as AP-1 and AP-2 in the NVMs 63 and 63-2, but in the ROMs 62, 62-2, and 62-3. You may memorize | store and you may memorize | store in RAM61. As long as the application program is stored so as to be executable, the storage method is not limited. The same applies to the OS.
[0049]
In the second embodiment, the instruction SAC and the instruction SACN in which “0” is specified for the argument “len” are exemplified as the processing speed change instruction. However, the arguments “src” and “dst” of the instruction SAC or the instruction SACN are the same. In this case, it may be a processing speed change instruction, or an instruction for causing the CPU 50-2 to execute another existing process, and an argument that makes the existing process meaningless is specified in the instruction. In this case, the type of instruction and the meaning of the argument are not limited as long as the instruction is a processing speed change instruction.
[0050]
In addition, in relation to other instructions in the application program, an instruction in which an argument for which existing processing is meaningless may be designated as a processing speed change instruction. For example, as shown in FIG. 10, in AP-3, an instruction SAC in which “5” is designated as an argument “len” is described twice (# 4, # 5). This second instruction SAC (# 5) may be used as a processing speed change instruction. When the conventional OS receives a call from AP-3, the CPU 50 repeats the process of copying the data string at the address indicated by the argument “gSrc” for 5 bytes to the address indicated by the argument “gDst” twice. -2 is executed. Therefore, the process related to the second instruction SAC (# 5) in which the same argument as the first instruction SAC (# 4) is specified is meaningless.
[0051]
In the second embodiment, AP-2 includes an instruction SAC and an instruction SACN, but when OS-2 has other unique functions, other unique functions other than changing the clock or general purpose A command for calling a unique function from OS-2, and when an argument that makes a general-purpose function meaningless is specified, a command for calling another unique function may be included. .
The content of the unique function called by the instruction is not limited and can be arbitrarily defined in the API. The unique function is a non-generic function that the conventional OS does not have.
AP-2, which includes instructions for calling various unique functions from the OS, can be stored and executed in a conventional IC card equipped with a conventional OS. In the IC card 1-2 on which 2 is mounted, various functions can be exhibited, and convenience can be improved.
[0052]
In the third embodiment, the processing speed control unit 52-3 is a command that calls a function similar to the function that the instruction SAC and the instruction SACN call from the OS-2 in the second embodiment, and the existing process is meaningless. The processing speed of the application execution unit 51 may be changed when a general-purpose SAC command or SACN command that is a processing speed change request is received.
When an SAC or SACN command is transmitted from an external device to a conventional IC card, no substantial processing is performed in the IC card and no error occurs, and a SAC command or SACN is sent to the IC card 1-3. When a command is transmitted, it becomes a processing speed change request, and in addition to the same effects as in the third embodiment, it is possible to improve the versatility of the external device.
[0053]
【The invention's effect】
As described above in detail, according to the present invention, the following effects can be obtained.
(1) In order to change the processing speed of the application program execution means (calculation means, CPU) when there is a processing speed change instruction in the application program, the processing speed is changed according to the processing content included in the application program, By adjusting the power consumption and the processing speed, the versatility and convenience of the IC card and the external device are improved, and the processing in the IC card is efficiently accelerated.
(2) In order to change the processing speed of the application program execution means (calculation means, CPU) based on the processing speed change request received from the external device, the power consumption and processing speed are adjusted from the external device side according to the request contents. As a result, the versatility and convenience of the IC card and the external device are improved, and the processing in the IC card is efficiently accelerated.
(3) Since the processing speed is changed in units of processing, the power consumption and the processing speed are adjusted in detail, so that it can be used in an external device with limited power consumption. And speed up processing efficiently.
(4) An instruction in which the application program has another existing meaning (an instruction to execute another existing process), and an argument that erases the other existing meaning (an argument that makes the other existing process meaningless) ) Is specified, and the processing speed is changed based on the processing speed change instruction. Therefore, not only the IC card storing the operating system corresponding to the processing speed change instruction but also the conventional operating This application program can also be used in an IC card that stores the system, thereby improving versatility.
(5) Similarly, since the processing speed is changed on the basis of the processing speed change request which is a request having another meaning and an argument for erasing the other meaning is designated, the external device requests the processing speed change request. This request can be made not only in an IC card having an operating system (application program) corresponding to the above, but also in an IC card storing a conventional operating system (application program), thereby improving versatility.
(6) When an argument that makes this function meaningless is specified as an argument of an instruction that calls a general-purpose function, an application program including this instruction is executed in order to call an original function from the operating system. In addition to being usable with an IC card equipped with an OS, an IC card equipped with an OS having an original function is intended to exhibit unique functions and improve versatility and convenience.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first embodiment of an IC card according to the present invention.
FIG. 2 is a block diagram showing a clock generation unit 42;
FIG. 3 is a diagram for explaining a first embodiment of an operating system and an application program according to the present invention.
FIG. 4 is a flowchart showing the operation of the IC card, the operating system, and the application program according to the present invention in the first embodiment.
FIG. 5 is a graph showing a relationship between an elapsed time of processing in execution of an application program and current consumption of an IC card.
FIG. 6 is a block diagram showing a second embodiment of the IC card according to the present invention.
FIG. 7 is a diagram for explaining a second embodiment of an operating system and an application program according to the present invention.
FIG. 8 is a block diagram showing a third embodiment of the IC card according to the present invention.
FIG. 9 is a flowchart showing an operation of an IC card, an operating system, and an application program according to the present invention in a third embodiment.
FIG. 10 is a diagram for explaining a variation of the operating system and the application program according to the present invention.
[Explanation of symbols]
1, 1-2, 1-3 IC card 2-1, 2-2 external device 10 antenna 20 contact terminals 30, 30-2, 30-3 IC chip 40 interface unit 41 basic clock generation unit 42 clock generation unit 50 CPU
51 Application Execution Unit 52 Processing Speed Control Unit 61 RAM
62, 62-2, 62-3 ROM
63, 63-2 NVM
71 Coprocessor 424 Selector 511 Operation Unit

Claims (4)

アプリケーションプログラムを記憶するアプリケーションプログラム記憶手段と、
前記アプリケーションプログラム記憶手段に記憶されているアプリケーションプログラムを実行するアプリケーションプログラム実行手段と、を備えるICカードであって、
前記アプリケーションプログラム実行手段によって実行されているアプリケーションプログラムに処理速度変更指示があった場合に、前記処理速度変更指示に応じて前記アプリケーションプログラム実行手段の処理速度を変更する処理速度変更手段を備え、
前記処理速度変更指示は、既存の他の意味を有する命令であって、前記既存の他の意味を消す引数が指定されていること、
を特徴とするICカード。
Application program storage means for storing an application program;
An application program execution means for executing an application program stored in the application program storage means, and an IC card comprising:
When a processing speed change instruction to an application program being executed by the application program execution means, Bei example the processing speed changing means for changing the processing speed of the application program execution means according to the processing speed change instruction,
The processing speed change instruction is an instruction having another existing meaning, and an argument for erasing the other existing meaning is designated;
IC card characterized by
アプリケーションプログラムを記憶するアプリケーションプログラム記憶手段と、
前記アプリケーションプログラム記憶手段によって記憶されているアプリケーションプログラムを実行するアプリケーションプログラム実行手段と、を備えるICカードであって、
外部装置から処理速度変更要求を受信した場合に、前記処理速度変更要求に応じて前記アプリケーションプログラム実行手段の処理速度を変更する処理速度変更手段を備え、
前記処理速度変更要求は、既存の他の意味を有する要求であって、前記既存の他の意味を消す引数が指定されていること、
を特徴とするICカード。
Application program storage means for storing an application program;
An application program execution means for executing an application program stored in the application program storage means, and an IC card comprising:
When receiving the processing speed change request from the external device, Bei example the processing speed changing means for changing the processing speed of the application program execution means according to the processing speed change request,
The processing speed change request is a request having another existing meaning, and an argument for deleting the other existing meaning is specified,
IC card characterized by
請求項1又は請求項2に記載のICカードにおいて、
前記アプリケーションプログラム実行手段は、アプリケーションプログラムに応じて演算を行う演算手段を備え、
前記処理速度変更手段は、前記処理速度変更指示又は前記処理速度変更要求に応じて前記演算手段の処理速度を変更すること、
を特徴とするICカード。
In the IC card according to claim 1 or 2,
The application program execution means includes calculation means for calculating according to the application program,
The processing speed changing means changes the processing speed of the computing means in response to the processing speed change instruction or the processing speed change request;
IC card characterized by
請求項1から請求項3までのいずれか1項に記載のICカードにおいて、
前記処理速度変更手段は、前記処理速度変更指示又は前記処理速度変更要求に応じて、前記アプリケーションプログラムの一又は複数の処理単位で処理速度を変更すること、
を特徴とするICカード。
In the IC card according to any one of claims 1 to 3,
The processing speed changing means changes the processing speed in one or a plurality of processing units of the application program in response to the processing speed change instruction or the processing speed change request.
IC card characterized by
JP2002379731A 2002-12-27 2002-12-27 IC card Expired - Lifetime JP4290978B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002379731A JP4290978B2 (en) 2002-12-27 2002-12-27 IC card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002379731A JP4290978B2 (en) 2002-12-27 2002-12-27 IC card

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008222416A Division JP4821822B2 (en) 2008-08-29 2008-08-29 IC card

Publications (2)

Publication Number Publication Date
JP2004213180A JP2004213180A (en) 2004-07-29
JP4290978B2 true JP4290978B2 (en) 2009-07-08

Family

ID=32816144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002379731A Expired - Lifetime JP4290978B2 (en) 2002-12-27 2002-12-27 IC card

Country Status (1)

Country Link
JP (1) JP4290978B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962397A (en) * 1995-08-30 1997-03-07 Nkk Corp Operating clock control system
JPH1115934A (en) * 1997-06-24 1999-01-22 Nippon Steel Corp Battery less rfid
JP3889158B2 (en) * 1998-06-29 2007-03-07 株式会社エヌ・ティ・ティ・データ IC mounted card and card system

Also Published As

Publication number Publication date
JP2004213180A (en) 2004-07-29

Similar Documents

Publication Publication Date Title
RU2357286C2 (en) Smart card operating system and its use
EP1564630A1 (en) IC card with built-in coprocessor for auxiliary arithmetic, and control method thereof
CN102200923A (en) Method of booting host device from MMC/SD device and associated devices
Dhem et al. Hardware and software symbiosis helps smart card evolution
CN104854883B (en) NFC device including configurable notification component and communication method thereof
US20020065574A1 (en) Data processor, semiconductor integrated circuit and CPU
US7197141B2 (en) RSA cryptographic processing apparatus for IC card
KR100618733B1 (en) Power controlled electronic circuit
JP4821822B2 (en) IC card
US7428651B2 (en) Electronic circuit with asynchronous clocking of peripheral units
Malina et al. Accelerated modular arithmetic for low-performance devices
JP4290978B2 (en) IC card
JPH10154021A (en) Clock switching device and clock switching method
EP1272974B1 (en) Data carrier having a chip including means for the controllable voltage supply to a further component of the data carrier
JPH1115934A (en) Battery less rfid
CN108304134A (en) Preview interface processing method and electronic equipment
CN111052085B (en) Information processing apparatus and information processing method
JP7444197B2 (en) Electronic information storage medium, cryptographic operation method selection method, and program
JP7487837B1 (en) ELECTRONIC INFORMATION STORAGE MEDIUM, IC CHIP, IC CARD, KEY DATA STORAGE METHOD, AND PROGRAM
JP4669262B2 (en) IC chip for IC card, IC card and IC card program
Ferreira et al. A High Performance Third Generation Crypto Card
JP5726700B2 (en) IC card and IC card processing method
JP5787692B2 (en) IC card, portable electronic device, and IC card control method
JP4703821B2 (en) IC card
JP2018157367A (en) Electronic information storage device, ic card, computation determination method, and computation determination program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051220

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090331

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090402

R150 Certificate of patent or registration of utility model

Ref document number: 4290978

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120410

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120410

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130410

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140410

Year of fee payment: 5