説明

携帯可能電子装置およびICカード

【課題】誤ったインストラクションあるいはデータを用いて間違った処理が行なわれることを防止することができる携帯可能電子装置およびICカードを提供する。
【解決手段】EEPROMと、このEEPROMに対するアクセスを行なうCPUと、このCPUの動作プログラムが格納されたROMと、インストラクションを格納するインストラクションバッファと、プログラムカウンタとを有するICカードにおいて、CPUがROM内のプログラムを実行する際に、現在プログラムカウンタに指定されているインストラクションの次に実行されるインストラクションをインストラクションバッファに格納しておき、プログラムカウンタが次のアドレスに進んだときに、インストラクションバッファ内のインストラクションと現在プログラムカウンタが指定しているインストラクションとを照合し、両インストラクションが一致した場合にCPUによる当該インストラクションの実行を許可する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、たとえば、書込み、書換えが可能な不揮発性メモリとしてのEEPROMおよび制御素子としてのCPUなどを有し、選択的に外部との間でデータの入出力を行なう手段を備えたICチップを内蔵した、いわゆるICカードと称される携帯可能電子装置に関する。
【背景技術】
【0002】
最近、携帯可能電子装置として、不揮発性メモリとしてのEEPROM、揮発性メモリとしてのRAM、これらのメモリに対してアクセス(データの読出しおよびまたは書込み等)を行なう制御素子としてのCPU、および、CPUの動作用プログラム等を格納したROMを有し、選択的に外部との間でデータの入出力を行なう手段を備えたICチップを内蔵したICカードが産業各方面で利用されている。
一般に、この種のICカードは、コマンドやレスポンスを用いて、外部装置(ICカードリーダ・ライタ)との間でデータの入出力を行なうようになっている。
【0003】
ところで、このようなICカードでは、通常、ROMやEEPROMに対するインストラクションやデータの読出し処理はフェッチサイクルごとに1回のみ行なわれ、直ぐに処理が実行されていた。
ここに、フェッチサイクルとは、周知のように、CPUがインストラクション(命令)を解読するために、メモリからインストラクションを読出し、当該インストラクションを実行し終わるまでの処理過程である。
【特許文献1】特開2003−249084号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところが、従来のICカードにあっては、上述したように、ROMやEEPROMに対する読出し処理はフェッチサイクルごとに1回のみ行なわれ、直ぐに処理が実行されていたので、読出したインストラクションあるいはデータが正しくなかった場合は、間違った処理が行なわれてしまうという問題がある。
【0005】
そこで、本発明は、誤ったインストラクションあるいはデータを用いて間違った処理が行なわれることを防止することができる携帯可能電子装置およびICカードを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の携帯可能電子装置は、書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、インストラクションを先読みして格納しておくためのインストラクションバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、プロセッサが第2のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタに指定されているアドレスのインストラクションの次に実行されるインストラクションをあらかじめインストラクションバッファに格納しておく手段と、プログラムカウンタが次のアドレスに進んだときに、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスのインストラクションとを照合する照合手段と、この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを具備している。
【0007】
また、本発明の携帯可能電子装置は、書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、現在のインストラクションを格納しておくためのインストラクションバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、プロセッサが第2のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタが指定しているアドレスのインストラクションをインストラクションバッファに格納する手段と、次のインストラクションの実行に際し、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのインストラクションとを照合する照合手段と、この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを具備している。
【0008】
さらに、本発明の携帯可能電子装置は、書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、現在のデータを格納しておくためのデータバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、プロセッサが第1のメモリに格納されたデータを読出す際に、現在プログラムカウンタが指定しているアドレスのデータをデータバッファに格納する手段と、次のインストラクションの実行に際し、データバッファに格納されているデータと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのデータとを照合する照合手段と、この照合手段による照合の結果、両データの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを具備している。
【発明の効果】
【0009】
本発明によれば、たとえば、ROM(第2のメモリ)やEEPROM(第1のメモリ)の読出し処理をフェッチサイクルをずらして2回実施することで、読出したインストラクションあるいはデータが正しいかどうか照合することにより、誤ったインストラクションあるいはデータを用いて間違った処理が行なわれることを防止することができる携帯可能電子装置およびICカードを提供できる。
【発明を実施するための最良の形態】
【0010】
以下、本発明の実施の形態について図面を参照して説明する。
図1は、本実施の形態に係る携帯可能電子装置としてのICカードを取扱うICカードシステムの構成例を示すものである。このICカードシステムは、ICカード101をカードリーダ・ライタ102を介してパーソナルコンピュータなどの端末装置103と接続可能にするとともに、端末装置103にキーボード104、CRT表示部105、プリンタ106を接続して構成される。
【0011】
図2は、ICカード101の構成を示すもので、制御素子(プロセッサ)としてのCPU201、第1のメモリとしてのデータメモリ202、ワーキングメモリ203、第2のメモリとしてのプログラムメモリ204、および、カードリーダ・ライタ12との通信を行なう通信部205によって構成されている。そして、これらのうち、破線内の部分(CPU201、データメモリ202、ワーキングメモリ203、プログラムメモリ204)は1つ(あるいは複数)のICチップで構成され、さらに、このICチップと通信部205とが一体的にICモジュール化されて、ICカード本体200内に埋設されている。
【0012】
データメモリ202は、各種データの記憶に使用され、たとえば、EEPROMなどの記憶内容が書換え可能な不揮発性メモリで構成されている。以下、データメモリ202を単にEEPROMともいう。
【0013】
ワーキングメモリ203は、CPU201が処理を行なう際の処理データなどを一時的に保持するための作業用メモリであり、たとえば、RAMなどで構成される。以下、ワーキングメモリ203を単にRAMともいう。
【0014】
プログラムメモリ204は、たとえば、マスクROMなどの記憶内容が書換え不可能な不揮発性メモリで構成されており、CPU201の動作プログラムおよび複数のアプリケーションプログラムなどを記憶するものである。以下、プログラムメモリ204を単にROMともいう。
【0015】
図3は、CPU201の周辺部における第1の具体回路を示すもので、インストラクションを先読みして格納しておくためのインストラクションバッファ206およびプログラムカウンタ207を有している。
【0016】
このような構成において、図3の回路の動作を図4に示すフローチャートを参照して説明する。
まず、CPU201がROM204に格納されたプログラムを実行する際に、現在のプログラムカウンタ207に指定されているアドレスのインストラクションの次に読出されるインストラクションをあらかじめインストラクションバッファ206に格納する(ステップS1)。
【0017】
次に、プログラムカウンタ207が次のアドレスに進んだときに、プログラムカウンタ207の指定しているアドレスのインストラクションを読出す(ステップS2)。
次に、ステップS2で読出したインストラクションとインストラクションバッファ207に格納されているインストラクションとを照合する(ステップS3)。
【0018】
次に、ステップS3における照合の結果、両インストラクションの間に所定の関係が成立した場合、例えばこの例では両インストラクションが一致した場合、CPU201による当該インストラクションの実行を許可する(ステップS4)。すなわち、CPU201が当該インストラクションを実行する。
なお、ステップS4でのインストラクションの処理が完了すると、プログラムカウンタ207により指定される次のアドレスに対する処理へと移行する。
【0019】
ステップS3における照合の結果、両インストラクションの間に所定の関係が成立しなかった場合、例えばこの例では両インストラクションが不一致の場合、処理を中断し、ホルト(HALT)状態になる(ステップS5)。
【0020】
図5は、CPU201の周辺部における第2の具体回路を示すもので、現在のインストラクションを格納しておくためのインストラクションバッファ208、現在のアドレスを格納しておくためのアドレスバッファ209、および、プログラムカウンタ207を有している。
【0021】
このような構成において、図5の回路の動作を図6に示すフローチャートを参照して説明する。
まず、CPU201がROM204に格納されたプログラムを実行する際に、現在のプログラムカウンタ207が指定しているアドレスをアドレスバッファ209に格納する(ステップS11)。
【0022】
次に、現在のプログラムカウンタ207が指定しているアドレスのインストラクションをインストラクションバッファ208に格納する(ステップS12)。次に、プログラムカウンタ207をインクリメントする(ステップS13)。
次に、インクリメントしたプログラムカウンタ207が指定しているアドレスのインストラクションを読出し、インストラクションバッファ208に格納する(ステップS14)。
【0023】
次に、アドレスバッファ209に格納されている1つ前のアドレスが指定しているインストラクションを読出し、この読出したインストラクションとインストラクションバッファ208に格納されているインストラクションとを照合する(ステップS15)。
【0024】
次に、ステップS15における照合の結果、両インストラクションの間に所定の関係が成立した場合、例えばこの例では両インストラクションが一致した場合、CPU201による当該インストラクションの実行を許可する(ステップS16)。すなわち、CPU201が当該インストラクションを実行する。
なお、ステップS16でのインストラクションの処理が完了すると、プログラムカウンタ207により指定される次のアドレスに対する処理へと移行する。
【0025】
ステップS15における照合の結果、両インストラクションの間に所定の関係が成立しなかった場合、例えばこの例では両インストラクションが不一致の場合、処理を中断し、ホルト(HALT)状態になる(ステップS17)。
【0026】
図7は、CPU201の周辺部における第3の具体回路を示すもので、現在のデータを格納しておくためのデータバッファ210、現在のアドレスを格納しておくためのアドレスバッファ209、および、プログラムカウンタ207を有している。
【0027】
このような構成において、図7の回路の動作を図8に示すフローチャートを参照して説明する。
まず、CPU201がEEPROMに格納されたデータを読出す際に、現在のプログラムカウンタ207が指定しているアドレスをアドレスバッファ209に格納する(ステップS21)。
【0028】
次に、現在のプログラムカウンタ207が指定しているアドレスのデータをデータバッファ210に格納する(ステップS22)。次に、プログラムカウンタ207をインクリメントする(ステップS23)。
次に、インクリメントしたプログラムカウンタ207が指定しているアドレスのデータを読出し、データバッファ210に格納する(ステップS24)。
【0029】
次に、アドレスバッファ209に格納されている1つ前のアドレスが指定しているデータを読出し、この読出したデータとデータバッファ210に格納されているデータとを照合する(ステップS25)。
【0030】
次に、ステップS25における照合の結果、両データの間に所定の関係が成立した場合、例えばこの例では両データが一致した場合、CPU201による当該インストラクションの実行を許可する(ステップS26)。すなわち、CPU201が当該インストラクションを実行する。
なお、ステップS26でのインストラクションの処理が完了すると、プログラムカウンタ207により指定される次のアドレスに対する処理へと移行する。
【0031】
ステップS25における照合の結果、両データの間に所定の関係が成立しなかった場合、例えばこの例では両データが不一致の場合、処理を中断し、ホルト(HALT)状態になる(ステップS27)。
【0032】
以上説明したように、上記実施の形態によれば、ROMやEEPROMの読出し処理をフェッチサイクルをずらして2回実施することで、読出したインストラクションあるいはデータが正しいかどうか照合することにより、誤ったインストラクションあるいはデータを用いて間違った処理が行なわれることを防止することができる。
【図面の簡単な説明】
【0033】
【図1】本発明の実施の形態に係るICカードを取扱うICカードシステムの構成を概略的に示すブロック図。
【図2】ICカードの構成を概略的に示すブロック図。
【図3】CPUの周辺部における第1の具体回路を示すブロック図。
【図4】図3の回路の動作を説明するフローチャート。
【図5】CPUの周辺部における第1の具体回路を示すブロック図。
【図6】図5の回路の動作を説明するフローチャート。
【図7】CPUの周辺部における第1の具体回路を示すブロック図。
【図8】図7の回路の動作を説明するフローチャート。
【符号の説明】
【0034】
101…ICカード(携帯可能電子装置)、102…カードリーダ・ライタ(外部装置)、103…端末装置、104…キーボード、105…CRT表示部、106…プリンタ、200…ICカード本体、201…CPU(プロセッサ)、202…データメモリ(EEPROM、第1のメモリ)、203…ワーキングメモリ(RAM)、204…プログラムメモリ(ROM、第2のメモリ)、205…通信部、206…インストラクションバッファ、207…プログラムカウンタ、208…インストラクションバッファ、209…アドレスバッファ、210…データバッファ。

【特許請求の範囲】
【請求項1】
書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、インストラクションを先読みして格納しておくためのインストラクションバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第2のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタに指定されているアドレスのインストラクションの次に実行されるインストラクションをあらかじめインストラクションバッファに格納しておく手段と、
プログラムカウンタが次のアドレスに進んだときに、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスのインストラクションとを照合する照合手段と、
この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項2】
書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、現在のインストラクションを格納しておくためのインストラクションバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第2のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタが指定しているアドレスのインストラクションをインストラクションバッファに格納する手段と、
次のインストラクションの実行に際し、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのインストラクションとを照合する照合手段と、
この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項3】
書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、現在のインストラクションを格納しておくためのインストラクションバッファと、現在のアドレスを格納しておくためのアドレスバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第2のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタが指定しているアドレスをアドレスバッファに格納する手段と、
現在アドレスバッファに格納されているアドレスが指定しているインストラクションをインストラクションバッファに格納する手段と、
次のインストラクションに進んだときに、プログラムカウンタが指定しているアドレスのインストラクションを読出し、インストラクションバッファに格納する手段と、
アドレスバッファに格納されている1つ前のアドレスが指定しているインストラクションを読出し、この読出したインストラクションとインストラクションバッファに格納されているインストラクションとを照合する照合手段と、
この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項4】
前記照合手段による照合の結果、両インストラクションの間に所定の関係が成立しなかった場合、処理を中断して動作停止状態になることを特徴とする請求項1〜請求項3のうちいずれかに記載の携帯可能電子装置。
【請求項5】
書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、現在のデータを格納しておくためのデータバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第1のメモリに格納されたデータを読出す際に、現在プログラムカウンタが指定しているアドレスのデータをデータバッファに格納する手段と、
次のインストラクションの実行に際し、データバッファに格納されているデータと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのデータとを照合する照合手段と、
この照合手段による照合の結果、両データの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項6】
書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、現在のデータを格納しておくためのデータバッファと、現在のアドレスを格納しておくためのアドレスバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第1のメモリに格納されたデータを読出す際に、現在プログラムカウンタが指定しているアドレスをアドレスバッファに格納する手段と、
現在アドレスバッファに格納されているアドレスが指定しているデータをデータバッファに格納する手段と、
次のインストラクションに進んだときに、プログラムカウンタが指定しているアドレスのデータを読出し、データバッファに格納する手段と、
アドレスバッファに格納されている1つ前のアドレスが指定しているデータを読出し、この読出したデータとデータバッファに格納されているデータとを照合する照合手段と、
この照合手段による照合の結果、両データの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項7】
前記照合手段による照合の結果、両データの間に所定の関係が成立しなかった場合、処理を中断して動作停止状態になることを特徴とする請求項1または請求項2記載の携帯可能電子装置。
【請求項8】
書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、インストラクションを先読みして格納しておくためのインストラクションバッファと、プログラムカウンタと、プロセッサが第2のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタに指定されているアドレスのインストラクションの次に実行されるインストラクションをあらかじめインストラクションバッファに格納しておく手段と、プログラムカウンタが次のアドレスに進んだときに、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスのインストラクションとを照合する照合手段と、この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。
【請求項9】
書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、現在のインストラクションを格納しておくためのインストラクションバッファと、プログラムカウンタと、プロセッサが第2のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタが指定しているアドレスのインストラクションをインストラクションバッファに格納する手段と、次のインストラクションの実行に際し、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのインストラクションとを照合する照合手段と、この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。
【請求項10】
書換え可能な不揮発性の第1のメモリと、この第1のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第2のメモリと、現在のデータを格納しておくためのデータバッファと、プログラムカウンタと、プロセッサが第1のメモリに格納されたデータを読出す際に、現在プログラムカウンタが指定しているアドレスのデータをデータバッファに格納する手段と、次のインストラクションの実行に際し、データバッファに格納されているデータと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのデータとを照合する照合手段と、この照合手段による照合の結果、両データの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−301935(P2006−301935A)
【公開日】平成18年11月2日(2006.11.2)
【国際特許分類】
【出願番号】特願2005−122514(P2005−122514)
【出願日】平成17年4月20日(2005.4.20)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】