(57)【要約】【課題】誤ったインストラクションあるいはデータを用いて間違った処理が行なわれることを防止することができる携帯可能電子装置およびＩＣカードを提供する。【解決手段】ＥＥＰＲＯＭと、このＥＥＰＲＯＭに対するアクセスを行なうＣＰＵと、このＣＰＵの動作プログラムが格納されたＲＯＭと、インストラクションを格納するインストラクションバッファと、プログラムカウンタとを有するＩＣカードにおいて、ＣＰＵがＲＯＭ内のプログラムを実行する際に、現在プログラムカウンタに指定されているインストラクションの次に実行されるインストラクションをインストラクションバッファに格納しておき、プログラムカウンタが次のアドレスに進んだときに、インストラクションバッファ内のインストラクションと現在プログラムカウンタが指定しているインストラクションとを照合し、両インストラクションが一致した場合にＣＰＵによる当該インストラクションの実行を許可する。【選択図】      図４
2006301935.tif 000002
【特許請求の範囲】
【請求項１】
書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、インストラクションを先読みして格納しておくためのインストラクションバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第２のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタに指定されているアドレスのインストラクションの次に実行されるインストラクションをあらかじめインストラクションバッファに格納しておく手段と、
プログラムカウンタが次のアドレスに進んだときに、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスのインストラクションとを照合する照合手段と、
この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項２】
書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、現在のインストラクションを格納しておくためのインストラクションバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第２のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタが指定しているアドレスのインストラクションをインストラクションバッファに格納する手段と、
次のインストラクションの実行に際し、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのインストラクションとを照合する照合手段と、
この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項３】
書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、現在のインストラクションを格納しておくためのインストラクションバッファと、現在のアドレスを格納しておくためのアドレスバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第２のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタが指定しているアドレスをアドレスバッファに格納する手段と、
現在アドレスバッファに格納されているアドレスが指定しているインストラクションをインストラクションバッファに格納する手段と、
次のインストラクションに進んだときに、プログラムカウンタが指定しているアドレスのインストラクションを読出し、インストラクションバッファに格納する手段と、
アドレスバッファに格納されている１つ前のアドレスが指定しているインストラクションを読出し、この読出したインストラクションとインストラクションバッファに格納されているインストラクションとを照合する照合手段と、
この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項４】
前記照合手段による照合の結果、両インストラクションの間に所定の関係が成立しなかった場合、処理を中断して動作停止状態になることを特徴とする請求項１〜請求項３のうちいずれかに記載の携帯可能電子装置。
【請求項５】
書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、現在のデータを格納しておくためのデータバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第１のメモリに格納されたデータを読出す際に、現在プログラムカウンタが指定しているアドレスのデータをデータバッファに格納する手段と、
次のインストラクションの実行に際し、データバッファに格納されているデータと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのデータとを照合する照合手段と、
この照合手段による照合の結果、両データの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項６】
書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、現在のデータを格納しておくためのデータバッファと、現在のアドレスを格納しておくためのアドレスバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、
プロセッサが第１のメモリに格納されたデータを読出す際に、現在プログラムカウンタが指定しているアドレスをアドレスバッファに格納する手段と、
現在アドレスバッファに格納されているアドレスが指定しているデータをデータバッファに格納する手段と、
次のインストラクションに進んだときに、プログラムカウンタが指定しているアドレスのデータを読出し、データバッファに格納する手段と、
アドレスバッファに格納されている１つ前のアドレスが指定しているデータを読出し、この読出したデータとデータバッファに格納されているデータとを照合する照合手段と、
この照合手段による照合の結果、両データの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項７】
前記照合手段による照合の結果、両データの間に所定の関係が成立しなかった場合、処理を中断して動作停止状態になることを特徴とする請求項１または請求項２記載の携帯可能電子装置。
【請求項８】
書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、インストラクションを先読みして格納しておくためのインストラクションバッファと、プログラムカウンタと、プロセッサが第２のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタに指定されているアドレスのインストラクションの次に実行されるインストラクションをあらかじめインストラクションバッファに格納しておく手段と、プログラムカウンタが次のアドレスに進んだときに、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスのインストラクションとを照合する照合手段と、この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【請求項９】
書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、現在のインストラクションを格納しておくためのインストラクションバッファと、プログラムカウンタと、プロセッサが第２のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタが指定しているアドレスのインストラクションをインストラクションバッファに格納する手段と、次のインストラクションの実行に際し、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのインストラクションとを照合する照合手段と、この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【請求項１０】
書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、現在のデータを格納しておくためのデータバッファと、プログラムカウンタと、プロセッサが第１のメモリに格納されたデータを読出す際に、現在プログラムカウンタが指定しているアドレスのデータをデータバッファに格納する手段と、次のインストラクションの実行に際し、データバッファに格納されているデータと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのデータとを照合する照合手段と、この照合手段による照合の結果、両データの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、書込み、書換えが可能な不揮発性メモリとしてのＥＥＰＲＯＭおよび制御素子としてのＣＰＵなどを有し、選択的に外部との間でデータの入出力を行なう手段を備えたＩＣチップを内蔵した、いわゆるＩＣカードと称される携帯可能電子装置に関する。
【背景技術】
【０００２】
最近、携帯可能電子装置として、不揮発性メモリとしてのＥＥＰＲＯＭ、揮発性メモリとしてのＲＡＭ、これらのメモリに対してアクセス（データの読出しおよびまたは書込み等）を行なう制御素子としてのＣＰＵ、および、ＣＰＵの動作用プログラム等を格納したＲＯＭを有し、選択的に外部との間でデータの入出力を行なう手段を備えたＩＣチップを内蔵したＩＣカードが産業各方面で利用されている。  
一般に、この種のＩＣカードは、コマンドやレスポンスを用いて、外部装置（ＩＣカードリーダ・ライタ）との間でデータの入出力を行なうようになっている。
【０００３】
ところで、このようなＩＣカードでは、通常、ＲＯＭやＥＥＰＲＯＭに対するインストラクションやデータの読出し処理はフェッチサイクルごとに１回のみ行なわれ、直ぐに処理が実行されていた。  
ここに、フェッチサイクルとは、周知のように、ＣＰＵがインストラクション（命令）を解読するために、メモリからインストラクションを読出し、当該インストラクションを実行し終わるまでの処理過程である。
【特許文献１】特開２００３−２４９０８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、従来のＩＣカードにあっては、上述したように、ＲＯＭやＥＥＰＲＯＭに対する読出し処理はフェッチサイクルごとに１回のみ行なわれ、直ぐに処理が実行されていたので、読出したインストラクションあるいはデータが正しくなかった場合は、間違った処理が行なわれてしまうという問題がある。
【０００５】
そこで、本発明は、誤ったインストラクションあるいはデータを用いて間違った処理が行なわれることを防止することができる携帯可能電子装置およびＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の携帯可能電子装置は、書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、インストラクションを先読みして格納しておくためのインストラクションバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、プロセッサが第２のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタに指定されているアドレスのインストラクションの次に実行されるインストラクションをあらかじめインストラクションバッファに格納しておく手段と、プログラムカウンタが次のアドレスに進んだときに、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスのインストラクションとを照合する照合手段と、この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを具備している。
【０００７】
また、本発明の携帯可能電子装置は、書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、現在のインストラクションを格納しておくためのインストラクションバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、プロセッサが第２のメモリに格納されたプログラムを実行する際に、現在プログラムカウンタが指定しているアドレスのインストラクションをインストラクションバッファに格納する手段と、次のインストラクションの実行に際し、インストラクションバッファに格納されているインストラクションと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのインストラクションとを照合する照合手段と、この照合手段による照合の結果、両インストラクションの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを具備している。
【０００８】
さらに、本発明の携帯可能電子装置は、書換え可能な不揮発性の第１のメモリと、この第１のメモリに対するアクセス等を行なうためのプロセッサと、このプロセッサが動作するためのプログラム等が格納されている書換え不可能な不揮発性の第２のメモリと、現在のデータを格納しておくためのデータバッファと、プログラムカウンタとを有して構成された携帯可能電子装置において、プロセッサが第１のメモリに格納されたデータを読出す際に、現在プログラムカウンタが指定しているアドレスのデータをデータバッファに格納する手段と、次のインストラクションの実行に際し、データバッファに格納されているデータと現在プログラムカウンタが指定しているアドレスよりも手前のアドレスのデータとを照合する照合手段と、この照合手段による照合の結果、両データの間に所定の関係が成立した場合、プロセッサによる当該インストラクションの実行を許可する手段とを具備している。
【発明の効果】
【０００９】
本発明によれば、たとえば、ＲＯＭ（第２のメモリ）やＥＥＰＲＯＭ（第１のメモリ）の読出し処理をフェッチサイクルをずらして２回実施することで、読出したインストラクションあるいはデータが正しいかどうか照合することにより、誤ったインストラクションあるいはデータを用いて間違った処理が行なわれることを防止することができる携帯可能電子装置およびＩＣカードを提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図面を参照して説明する。  
図１は、本実施の形態に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すものである。このＩＣカードシステムは、ＩＣカード１０１をカードリーダ・ライタ１０２を介してパーソナルコンピュータなどの端末装置１０３と接続可能にするとともに、端末装置１０３にキーボード１０４、ＣＲＴ表示部１０５、プリンタ１０６を接続して構成される。
【００１１】
図２は、ＩＣカード１０１の構成を示すもので、制御素子（プロセッサ）としてのＣＰＵ２０１、第１のメモリとしてのデータメモリ２０２、ワーキングメモリ２０３、第２のメモリとしてのプログラムメモリ２０４、および、カードリーダ・ライタ１２との通信を行なう通信部２０５によって構成されている。そして、これらのうち、破線内の部分（ＣＰＵ２０１、データメモリ２０２、ワーキングメモリ２０３、プログラムメモリ２０４）は１つ（あるいは複数）のＩＣチップで構成され、さらに、このＩＣチップと通信部２０５とが一体的にＩＣモジュール化されて、ＩＣカード本体２００内に埋設されている。
【００１２】
データメモリ２０２は、各種データの記憶に使用され、たとえば、ＥＥＰＲＯＭなどの記憶内容が書換え可能な不揮発性メモリで構成されている。以下、データメモリ２０２を単にＥＥＰＲＯＭともいう。
【００１３】
ワーキングメモリ２０３は、ＣＰＵ２０１が処理を行なう際の処理データなどを一時的に保持するための作業用メモリであり、たとえば、ＲＡＭなどで構成される。以下、ワーキングメモリ２０３を単にＲＡＭともいう。
【００１４】
プログラムメモリ２０４は、たとえば、マスクＲＯＭなどの記憶内容が書換え不可能な不揮発性メモリで構成されており、ＣＰＵ２０１の動作プログラムおよび複数のアプリケーションプログラムなどを記憶するものである。以下、プログラムメモリ２０４を単にＲＯＭともいう。
【００１５】
図３は、ＣＰＵ２０１の周辺部における第１の具体回路を示すもので、インストラクションを先読みして格納しておくためのインストラクションバッファ２０６およびプログラムカウンタ２０７を有している。
【００１６】
このような構成において、図３の回路の動作を図４に示すフローチャートを参照して説明する。  
まず、ＣＰＵ２０１がＲＯＭ２０４に格納されたプログラムを実行する際に、現在のプログラムカウンタ２０７に指定されているアドレスのインストラクションの次に読出されるインストラクションをあらかじめインストラクションバッファ２０６に格納する（ステップＳ１）。
【００１７】
次に、プログラムカウンタ２０７が次のアドレスに進んだときに、プログラムカウンタ２０７の指定しているアドレスのインストラクションを読出す（ステップＳ２）。  
次に、ステップＳ２で読出したインストラクションとインストラクションバッファ２０７に格納されているインストラクションとを照合する（ステップＳ３）。
【００１８】
次に、ステップＳ３における照合の結果、両インストラクションの間に所定の関係が成立した場合、例えばこの例では両インストラクションが一致した場合、ＣＰＵ２０１による当該インストラクションの実行を許可する（ステップＳ４）。すなわち、ＣＰＵ２０１が当該インストラクションを実行する。  
なお、ステップＳ４でのインストラクションの処理が完了すると、プログラムカウンタ２０７により指定される次のアドレスに対する処理へと移行する。
【００１９】
ステップＳ３における照合の結果、両インストラクションの間に所定の関係が成立しなかった場合、例えばこの例では両インストラクションが不一致の場合、処理を中断し、ホルト（ＨＡＬＴ）状態になる（ステップＳ５）。
【００２０】
図５は、ＣＰＵ２０１の周辺部における第２の具体回路を示すもので、現在のインストラクションを格納しておくためのインストラクションバッファ２０８、現在のアドレスを格納しておくためのアドレスバッファ２０９、および、プログラムカウンタ２０７を有している。
【００２１】
このような構成において、図５の回路の動作を図６に示すフローチャートを参照して説明する。  
まず、ＣＰＵ２０１がＲＯＭ２０４に格納されたプログラムを実行する際に、現在のプログラムカウンタ２０７が指定しているアドレスをアドレスバッファ２０９に格納する（ステップＳ１１）。
【００２２】
次に、現在のプログラムカウンタ２０７が指定しているアドレスのインストラクションをインストラクションバッファ２０８に格納する（ステップＳ１２）。次に、プログラムカウンタ２０７をインクリメントする（ステップＳ１３）。  
次に、インクリメントしたプログラムカウンタ２０７が指定しているアドレスのインストラクションを読出し、インストラクションバッファ２０８に格納する（ステップＳ１４）。
【００２３】
次に、アドレスバッファ２０９に格納されている１つ前のアドレスが指定しているインストラクションを読出し、この読出したインストラクションとインストラクションバッファ２０８に格納されているインストラクションとを照合する（ステップＳ１５）。
【００２４】
次に、ステップＳ１５における照合の結果、両インストラクションの間に所定の関係が成立した場合、例えばこの例では両インストラクションが一致した場合、ＣＰＵ２０１による当該インストラクションの実行を許可する（ステップＳ１６）。すなわち、ＣＰＵ２０１が当該インストラクションを実行する。  
なお、ステップＳ１６でのインストラクションの処理が完了すると、プログラムカウンタ２０７により指定される次のアドレスに対する処理へと移行する。
【００２５】
ステップＳ１５における照合の結果、両インストラクションの間に所定の関係が成立しなかった場合、例えばこの例では両インストラクションが不一致の場合、処理を中断し、ホルト（ＨＡＬＴ）状態になる（ステップＳ１７）。
【００２６】
図７は、ＣＰＵ２０１の周辺部における第３の具体回路を示すもので、現在のデータを格納しておくためのデータバッファ２１０、現在のアドレスを格納しておくためのアドレスバッファ２０９、および、プログラムカウンタ２０７を有している。
【００２７】
このような構成において、図７の回路の動作を図８に示すフローチャートを参照して説明する。  
まず、ＣＰＵ２０１がＥＥＰＲＯＭに格納されたデータを読出す際に、現在のプログラムカウンタ２０７が指定しているアドレスをアドレスバッファ２０９に格納する（ステップＳ２１）。
【００２８】
次に、現在のプログラムカウンタ２０７が指定しているアドレスのデータをデータバッファ２１０に格納する（ステップＳ２２）。次に、プログラムカウンタ２０７をインクリメントする（ステップＳ２３）。  
次に、インクリメントしたプログラムカウンタ２０７が指定しているアドレスのデータを読出し、データバッファ２１０に格納する（ステップＳ２４）。
【００２９】
次に、アドレスバッファ２０９に格納されている１つ前のアドレスが指定しているデータを読出し、この読出したデータとデータバッファ２１０に格納されているデータとを照合する（ステップＳ２５）。
【００３０】
次に、ステップＳ２５における照合の結果、両データの間に所定の関係が成立した場合、例えばこの例では両データが一致した場合、ＣＰＵ２０１による当該インストラクションの実行を許可する（ステップＳ２６）。すなわち、ＣＰＵ２０１が当該インストラクションを実行する。  
なお、ステップＳ２６でのインストラクションの処理が完了すると、プログラムカウンタ２０７により指定される次のアドレスに対する処理へと移行する。
【００３１】
ステップＳ２５における照合の結果、両データの間に所定の関係が成立しなかった場合、例えばこの例では両データが不一致の場合、処理を中断し、ホルト（ＨＡＬＴ）状態になる（ステップＳ２７）。
【００３２】
以上説明したように、上記実施の形態によれば、ＲＯＭやＥＥＰＲＯＭの読出し処理をフェッチサイクルをずらして２回実施することで、読出したインストラクションあるいはデータが正しいかどうか照合することにより、誤ったインストラクションあるいはデータを用いて間違った処理が行なわれることを防止することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態に係るＩＣカードを取扱うＩＣカードシステムの構成を概略的に示すブロック図。
【図２】ＩＣカードの構成を概略的に示すブロック図。
【図３】ＣＰＵの周辺部における第１の具体回路を示すブロック図。
【図４】図３の回路の動作を説明するフローチャート。
【図５】ＣＰＵの周辺部における第１の具体回路を示すブロック図。
【図６】図５の回路の動作を説明するフローチャート。
【図７】ＣＰＵの周辺部における第１の具体回路を示すブロック図。
【図８】図７の回路の動作を説明するフローチャート。
【符号の説明】
【００３４】
１０１…ＩＣカード（携帯可能電子装置）、１０２…カードリーダ・ライタ（外部装置）、１０３…端末装置、１０４…キーボード、１０５…ＣＲＴ表示部、１０６…プリンタ、２００…ＩＣカード本体、２０１…ＣＰＵ（プロセッサ）、２０２…データメモリ（ＥＥＰＲＯＭ、第１のメモリ）、２０３…ワーキングメモリ（ＲＡＭ）、２０４…プログラムメモリ（ＲＯＭ、第２のメモリ）、２０５…通信部、２０６…インストラクションバッファ、２０７…プログラムカウンタ、２０８…インストラクションバッファ、２０９…アドレスバッファ、２１０…データバッファ。
【図１】
2006301935.tif 000003
【図２】
2006301935.tif 000004
【図３】
2006301935.tif 000005
【図４】
2006301935.tif 000006
【図５】
2006301935.tif 000007
【図６】
2006301935.tif 000008
【図７】
2006301935.tif 000009
【図８】
2006301935.tif 000010