(57)【特許請求の範囲】
【請求項１】
データを格納する不揮発性メモリと、
所定の処理を実行する第１の実行部と、
所定のプログラミング言語で記述されたプログラムを逐次的に解釈し、第１の形式のコードに変換するコード変換部と、
前記コード変換部により変換された前記第１の形式のコードを、前記第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を実行する第２の実行部と、
前記第２の形式のコードに含まれているコードの中から、前記不揮発性メモリの同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する検索部と、を備え、
前記第２の実行部は、前記第２の形式のコードに基づいて所定の処理を実行する際に、前記検索部により検索された命令コードが複数個検索され、かつ前記検索された命令コードによって書き込まなくてもよいと判断した場合、前記検索された命令コードのうちの最後の命令コードのみを命令コードとして実行するＩＣチップ。
【請求項２】
前記検索部は、前記第２の形式のコードにおいて、所定のコード数の中から前記命令コードを検索する請求項１記載のＩＣチップ。
【請求項３】
データを格納する不揮発性メモリと、
所定の処理を実行する第１の実行部と、
所定のプログラミング言語で記述されたプログラムを逐次的に解釈し、第１の形式のコードに変換するコード変換部と、
前記コード変換部により変換された前記第１の形式のコードを、前記第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を実行する第２の実行部と、
前記第１の形式のコードに含まれているコードの中から、前記不揮発性メモリの同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する検索部と、
前記検索部により検索された命令コードが複数個検索され、かつ検索された命令コードによって書き込まなくてもよいと判断した場合、前記検索された命令コードのうちの最後の命令コード以外の命令コードが含まれないように前記コード変換部により変換された前記第１の形式のコードを再生成する再生成部を備え、
前記第２の実行部は、前記再生成部により前記第１の形式のコードが再生成された場合、当該再生成された第１の形式のコードを、前記第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を実行するＩＣチップ。
【請求項４】
請求項１から３までのいずれか１項に記載のＩＣチップを備えるＩＣカード。
【請求項５】
所定のプログラミング言語で記述されたプログラムを逐次的に解釈し、第１の形式のコードに変換するコード変換工程と、
前記コード変換工程により変換された前記第１の形式のコードを、所定の処理を実行する第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を第２の実行部により実行する実行工程と、
前記第２の形式のコードに含まれているコードの中から、データを格納する不揮発性メモリの同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する検索部により検索する検索工程と、を備え、
前記実行工程は、前記第２の形式のコードに基づいて所定の処理を実行する際に、前記検索工程により検索された命令コードが複数個検索され、かつ前記検索された命令コードによって書き込まなくてもよいと判断した場合、前記検索された命令コードのうちの最後の命令コードのみを命令コードとして実行するＩＣチップの制御方法。
【請求項６】
コンピュータに、
所定のプログラミング言語で記述されたプログラムを逐次的に解釈し、第１の形式のコードに変換するコード変換工程と、
前記コード変換工程により変換された前記第１の形式のコードを、所定の処理を実行する第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を第２の実行部に実行させる実行工程と、
前記第２の形式のコードに含まれているコードの中から、データを格納する不揮発性メモリの同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する検索部により検索させる検索工程とを行わせ、
前記実行工程は、前記第２の形式のコードに基づいて所定の処理を実行する際に、前記検索工程により検索された命令コードが複数個検索され、かつ前記検索された命令コードによって書き込まなくてもよいと判断した場合、前記検索された命令コードのうちの最後の命令コードのみを命令コードとして実行する制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
所定のプログラム言語で記述されたプログラムを処理するＩＣチップと、当該ＩＣチップを備えるＩＣカードと、当該ＩＣチップの制御方法と、当該ＩＣチップの制御プログラムに関する。
【背景技術】
【０００２】
情報機器は、制御部と、揮発性メモリと、不揮発性メモリ（例えば、ＮＡＮＤ型フラッシュメモリ）を協調して動作させることによって、所定のプログラミング言語で記述されたプログラムを処理し、所定の動作（例えば、動画を再生処理する動作）を実行している。
【０００３】
ＮＡＮＤ型フラッシュメモリは、書き換え回数に制限があり、書き換え回数が増加すると処理速度が低下する問題がある。特に、インタプリタで動作するプログラム（Ｊａｖａ（登録商標）、Ｒｕｂｙ等）においては、生成されたコードを順序どおりに実行することが基本的な動作になるため、ＮＡＮＤ型フラッシュメモリの同一領域への書き込みが頻発する場合がある。このような場合には、ＮＡＮＤ型フラッシュメモリは、書き込みが頻発する領域の寿命が他の領域に比して低下してしまう問題がある。
【０００４】
ここで、特許文献１では、書き換え可能回数が大きい不揮発性メモリ（Ａ）と、不揮発性メモリ（Ａ）に比較して書き換え可能回数が小さい不揮発性メモリ（Ｂ）を備えるデータ記憶装置が記載されている。このデータ記憶装置は、不揮発性メモリ（Ａ）にデータを蓄積しておいて、一定条件下に不揮発性メモリ（Ｂ）にデータを移行することによって、不揮発性メモリ（Ｂ）の寿命を低下させないようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−９２１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、このデータ記憶装置は、不揮発性メモリを２つ備えるので、装置の小型化と、コストダウンを図れない問題がある。
【０００７】
そこで、本発明は、不揮発性メモリへの負担を軽減させつつ、所定のプログラミング言語で記述されたプログラムを処理し、所定の動作を実行することができるＩＣチップ、ＩＣカード、制御方法及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。請求項１の発明は、データを格納する不揮発性メモリ（２１）と、所定の処理を実行する第１の実行部（２２）と、所定のプログラミング言語で記述されたプログラムを逐次的に解釈し、第１の形式のコードに変換するコード変換部（２３）と、前記コード変換部により変換された前記第１の形式のコードを、前記第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を実行する第２の実行部（２４）と、前記第２の形式のコードに含まれているコードの中から、前記不揮発性メモリの同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する検索部（２５）と、を備え、前記第２の実行部は、前記第２の形式のコードに基づいて所定の処理を実行する際に、前記検索部により検索された命令コードが複数個検索され、かつ前記検索された命令コードによって書き込まなくてもよいと判断した場合、前記検索された命令コードのうちの最後の命令コードのみを命令コードとして実行するＩＣチップ（１０）である。
【００１０】
請求項２の発明は、請求項１に記載のＩＣチップにおいて、前記検索部は、前記第２の形式のコードにおいて、所定のコード数の中から前記命令コードを検索するＩＣチップ（１０）である。
【００１１】
請求項３の発明は、データを格納する不揮発性メモリ（２１）と、所定の処理を実行する第１の実行部（２２）と、所定のプログラミング言語で記述されたプログラムを逐次的に解釈し、第１の形式のコードに変換するコード変換部（２３）と、前記コード変換部により変換された前記第１の形式のコードを、前記第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を実行する第２の実行部（２４）と、前記第１の形式のコードに含まれているコードの中から、前記不揮発性メモリの同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する検索部（２５）と、前記検索部により検索された命令コードが複数個検索され、かつ検索された命令コードによって書き込まなくてもよいと判断した場合、前記検索された命令コードのうちの最後の命令コード以外の命令コードが含まれないように前記コード変換部により変換された前記第１の形式のコードを再生成する再生成部（２６）を備え、前記第２の実行部は、前記再生成部により前記第１の形式のコードが再生成された場合、当該再生成された第１の形式のコードを、前記第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を実行するＩＣチップ（１０）である。
【００１２】
請求項４の発明は、請求項１から３までのいずれか１項に記載のＩＣチップ（１０）を備えるＩＣカード（１）である。
【００１３】
請求項５の発明は、所定のプログラミング言語で記述されたプログラムを逐次的に解釈し、第１の形式のコードに変換するコード変換工程と、前記コード変換工程により変換された前記第１の形式のコードを、所定の処理を実行する第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を第２の実行部により実行する実行工程と、前記第２の形式のコードに含まれているコードの中から、データを格納する不揮発性メモリの同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する検索部により検索する検索工程と、を備え、前記実行工程は、前記第２の形式のコードに基づいて所定の処理を実行する際に、前記検索工程により検索された命令コードが複数個検索され、かつ前記検索された命令コードによって書き込まなくてもよいと判断した場合、前記検索された命令コードのうちの最後の命令コードのみを命令コードとして実行するＩＣチップ（１０）の制御方法である。
【００１４】
請求項６の発明は、コンピュータに、所定のプログラミング言語で記述されたプログラムを逐次的に解釈し、第１の形式のコードに変換するコード変換工程と、前記コード変換工程により変換された前記第１の形式のコードを、所定の処理を実行する第１の実行部により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の前記第２の形式のコードに基づいて所定の処理を第２の実行部に実行させる実行工程と、前記第２の形式のコードに含まれているコードの中から、データを格納する不揮発性メモリの同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する検索部により検索させる検索工程とを行わせ、前記実行工程は、前記第２の形式のコードに基づいて所定の処理を実行する際に、前記検索工程により検索された命令コードが複数個検索され、かつ前記検索された命令コードによって書き込まなくてもよいと判断した場合、前記検索された命令コードのうちの最後の命令コードのみを命令コードとして実行する制御プログラムである。
【発明の効果】
【００１５】
不揮発性メモリへの負担を軽減させつつ、所定のプログラミング言語で記述されたプログラムを処理し、所定の動作を実行することができる。
【図面の簡単な説明】
【００１６】
【図１】ＩＣカードの構成を示す図である。
【図２】ＩＣカードが備える制御処理部の構成を示す機能ブロック図である。
【図３】実行コードを実行する際のＣＰＵと不揮発性メモリの動作についての説明に供する図である。
【図４】実行コードを実行する際の第２の実行処理部と不揮発性メモリの動作についての説明に供する図である。
【発明を実施するための形態】
【００１７】
以下、図面等を参照しながら、本発明の実施の形態について詳しく説明する。図１は、外部機器（ホスト機器）と通信を行うＩＣチップ１０を内蔵するＩＣカード１の外観を模式的に示す図である。なお、図１には、ＩＣチップ１０に接続される制御処理部２０を模式的に示している。
【００１８】
ＩＣチップ１０は、図１に示すように、８個の外部接触端子（端子Ｃ１〜端子Ｃ８）が設けられている。端子Ｃ１及び端子Ｃ５は、それぞれ、ＩＣカード１の制御処理部（不図示）のＶＣＣパッド及びＧＮＤパッドに接続されており、内蔵されている制御処理部２０に電力を供給する。また、端子Ｃ４及び端子Ｃ８は、それぞれマイクロコントローラのＤ＋及びＤ−に接続されている。ＩＣカード１では、この端子Ｃ４及び端子Ｃ５をＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）により規定される通信端子に利用する。端子Ｃ２は、リセット（ＲＳＴ）信号が入力される端子であり、端子Ｃ３は、クロック（ＣＬＫ）信号が入力される端子である。また、端子Ｃ６は、不揮発性メモリ（例えば、ＥＥＰＲＯＭ）に対するプログラム電圧（Ｖｐｐ）が供給される端子であり、端子Ｃ７は、データが入出力（Ｉ／Ｏ）される端子である。
【００１９】
また、本実施形態に係るＩＣカード１は、外部装置に挿入されて、外部機器から送信される所定のプログラムを実行処理する機能を有している。
ここで、プログラムの実行処理の概略について説明する。なお、プログラムとは、Ｊａｖａを代表とするバイトコードを用いて実行されるプログラムを意味する。このようなプログラムは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やマイクロプロセッサ（制御処理部）に依存することなく、どのようなプラットフォームでも動作するように設計されている。
【００２０】
特に、Ｊａｖａで記述されたソースコードは、コンパイル時にＪａｖａバイトコードと呼ばれる中間コードにいったん変換される。この中間コードは、実行時にＪａｖａ仮想マシン（以下、制御処理部という。）によって、実行するプラットフォームに対応した形式のコード（ネイティブコード）に変換され、実行される。プラットフォーム間の違いは、制御処理部が吸収するので、外部装置は、ＩＣカード１のプラットフォームを意識せずにプログラムをＩＣカード１に送信することができる。なお、Ｊａｖａを代表とするバイトコードを用いて実行されるプログラムは、実際にはインタプリタで動作するものである。
【００２１】
ここで、ＩＣカード１は、上述したプログラムが実行される場合に、データをメモリに書き込む処理が発生する。具体的には、インタプリタで動作するコードは、制御処理部によって１命令ずつ中間コード又は実行プログラムを解釈しながら実行される。そのため、制御処理部は、コードが以下のようなパターンであった場合、パターン１とパターン３において、メモリＡに同じデータｘの書き込みを行うことになる。
コード１．メモリＡにデータｘを書き込む
コード２．メモリＢにデータｙを読み込む
コード３．メモリＡにデータｘを書き込む
【００２２】
また、メモリＡが書き換え回数に制限のあるＥＥＰＲＯＭ等の不揮発性メモリの場合、メモリＡは、このようなコードが実行されると、製品の寿命が大幅に短くなる恐れがある。
また、コード１．の書き込み処理を制限し、コード３．の書き込み処理のみを実行した場合には、書き込み回数が１／２に低減され、メモリＡの製品寿命が倍になる計算になる。
【００２３】
本実施形態に係るＩＣカード１は、特にバイトコードやインタプリタで動作するプログラムにおいて、書換えを予測等することにより、不揮発性メモリに対する書換え回数を制御する機能を有する。
【００２４】
ここで、上述した機能を発揮するための制御処理部２０の具体的な構成と動作について詳細に説明する。
制御処理部２０は、図２に示すように、不揮発性メモリ２１と、第１の実行部２２と、コード変換部２３と、第２の実行部２４を備える。なお、制御処理部２０は、ＩＣチップ１０の端子Ｃ７を介してデータが外部機器から入力され、当該端子Ｃ７を介してデータを外部機器に出力する。
【００２５】
不揮発性メモリ２１は、データを格納する機能を有しており、電源の供給が無くても格納されているデータを保持することができる。第１の実行部２２は、所定の処理を実行する。例えば、第１の実行部２２は、電源の供給が行われたときに他のメモリに格納されているＯＳを読み出し、起動する処理を実行する。
【００２６】
コード変換部２３は、所定のプログラミング言語（例えば、Ｊａｖａ）で記述されたプログラムを逐次的に解釈し、第１の形式のコードに変換する。
第２の実行部２４は、コード変換部２３により変換された第１の形式のコードを、第１の実行部２２により所定の処理が実行される環境に基づいて第２の形式のコード（ネイティブコード）に変換し、変換後の第２の形式のコードに基づいて所定の処理を実行する。
【００２７】
また、第２の実行部２４は、第２の形式のコードに基づいて所定の処理を実行する際に、不揮発性メモリ２１の同一のエリアに対して同一のデータを書き込むことを命ずる命令コードが複数個検索された場合、最後の命令コードのみを命令コードとして実行する。
【００２８】
このように構成されることによって、ＩＣカード１は、上述したようなコード１．からコード３．を実行する場合には、コード１．を実行せず、コード３．のみを実行する。したがって、ＩＣカード１は、不揮発性メモリ２１への負担を軽減させつつ、所定のプログラミング言語で記述されたプログラムを処理し、所定の動作を実行することができる。
【００２９】
なお、第２の実行部２４は、不揮発性メモリ２１の同一のエリアに対して同一のデータを書き込むことを命ずる命令コードが複数個検索された場合、最後の命令コードのみを命令コードとして実行しても問題が生じないことを事前に確認する処理を実行しても良い。また、第２の実行部２４は、問題が生じない範囲で命令コードの数を低減するような構成であっても、不揮発性メモリ２１の寿命を延ばすことができる。
【００３０】
また、ＩＣカード１は、図２に示すように、第２の形式のコードに含まれているコードの中から、不揮発性メモリ２１の同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する検索部２５を備える構成であっても良い。
【００３１】
このような構成の場合には、第２の実行部２４は、第２の形式のコードに基づいて所定の処理を実行する際に、検索部２５により命令コードが複数個検索された場合、最後の命令コードのみを命令コードとして実行する。
【００３２】
具体的には、検索部２５は、インタプリタの実行時において、書き込み命令が発生した場合に、複数の実行コードの中から命令コードを検索し、同一の書き込み命令が存在するかどうかを検索する。そして、第２の実行部２４は、検索部２５による検索結果から同様の書き込み命令が複数存在する場合には、同一領域への書き込みであるかどうかを判定し、同一領域への書き込みであり、かつ書き換えずとも問題ないと判断した場合には、その命令コードにしたがって書き換えを実行しない。
【００３３】
このように構成されることによって、ＩＣカード１は、不揮発性メモリ２１への負担を軽減させつつ、命令コードの数の低減を動的に行い、所定のプログラミング言語で記述されたプログラムを処理し、所定の動作を実行することができる。
【００３４】
また、検索部２５は、第２の形式のコードにおいて、所定のコード数の中から命令コードを検索する。具体的には、検索部２５は、第２の形式のコードを１００コード先読みして、その１００コードの中に当該命令コードが複数含まれているかどうかを検索する。
【００３５】
このように構成されることにより、ＩＣカード１は、全体のスループットが書き込み命令数により低下する可能性を排除して、命令コードの数の低減を動的に行い、所定のプログラミング言語で記述されたプログラムを処理し、所定の動作を実行することができる。
【００３６】
また、検索部２５は、第１の形式のコードに含まれているコードの中から、不揮発性メモリ２１の同一のエリアに対して同一のデータを書き込むことを命ずる命令コードを検索する構成であっても良い。
【００３７】
このような構成の場合には、ＩＣカード１は、図２に示すように、検索部２５により命令コードが複数個検索された場合、最後の命令コード以外の命令コードが含まれないようにコード変換部２３により変換された第１の形式のコードを再生成する再生成部２６を備える。なお、本実施形態では、再生成部２６は、ＩＣカード１の内部に備えられるものとして説明するが、ＩＣカード１の各構成要素と協調して動作する構成であれば良く、例えば、外部に備えられていても良い。
【００３８】
また、第２の実行部２４は、再生成部２６により第１の形式のコードが再生成された場合、当該再生成された第１の形式のコードを、第１の実行部２２により所定の処理が実行される環境に基づいて第２の形式のコードに変換し、変換後の第２の形式のコードに基づいて所定の処理を実行する。
【００３９】
具体的には、検索部２５は、インタプリタで実行される中間コードを実行前に確認し、不揮発性メモリ２１の同一領域への書き換えが複数あるかどうかを確認する。再生成部２６は、検索部２５によって、不揮発性メモリ２１の同一領域への書き換えを命ずる命令コードが複数確認され、そのうち書き換えが低減可能（書き換えずとも結果に変化がない）な場合、書き換え回数を低減した状態の中間コードを再生成する。そして、第２の実行部２４は、再生成された中間コードを実行する。
【００４０】
このように構成されることによって、ＩＣカード１は、不揮発性メモリ２１への負担を軽減させつつ、命令コードの数の低減を静的に行い、所定のプログラミング言語で記述されたプログラムを処理し、所定の動作を実行することができる。
【００４１】
＜実施例＞
ここで、実行コードに対する具体的な処理について説明する。なお、以下の実施例では、制御処理部２０は、ＥＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）としての不揮発性メモリ２１の他、プログラムの格納領域としてのＲＯＭ２７と、ワーキングメモリとしてのＲＡＭ２８を備えている。
【００４２】
また、ＲＯＭ２７又は不揮発性メモリ２１には、コード実行のためのインタプリタ及び実行コードが保持されているものとする。また、実行コードは、インタプリタ上で動作するものであり、不揮発性メモリ２１への書き込み処理が存在するコードであるものとする。以下に、実行コードの一例を示す。
【００４３】
コード１．ＡＤＤ  ａ，ａ，ｂ  ／／ａ＝ａ＋ｂ
コード２．ＣＭＰ  ａ，ｂ  ／／ａ＞ｂ？
コード３．ＢＰＬ  ＬＡＢＥＬ１０  ／／ＹＥＳ：ＬＡＢＥＬ１０へ
コード４．ＭＯＶ  ｘ，ａ  ／／ｘ＝ａ
コード５．ＬＡＢＥＬ１０：
コード６．ＭＯＶ  ａ，ｘ  ／／ａ＝ｘ
コード７．ＳＨＴＬ  ｂ  ／／ｂ＜＜１
コード８．ＡＤＤ  ａ，ａ，ｂ  ／／ａ＝ａ＋ｂ
コード９．ＭＯＶ  ｘ，ａ  ／／ｘ＝ａ
コード１０．ＳＵＢ  ａ，ｘ，ｂ  ／／ａ＝ｘ−ｂ
コード１１．ＭＯＶ  ｘ，ａ  ／／ｘ＝ａ
【００４４】
なお、「ａ」及び「ｂ」は、それぞれＲＡＭ２８に確保される変数であり、「ｘ」は、不揮発性メモリ２１に確保される変数であるとする。ここで、ＲＡＭ２８は、例えば、スタック（ｓｔａｃｋ）により構成されている。
【００４５】
検索部２５は、例えば、実行コードの中から「ＭＯＶ」で示される実行コードを検索する。検索部２５は、コード４、コード６、コード９及びコード１１を発見する。
ここで、コード４、コード９及びコード１１は、不揮発性メモリ２１の変数「ｘ」に値「ａ」を格納し、不揮発性メモリ２１を更新することを命ずるコードである。
【００４６】
また、逐次実行するインタプリタの場合、「ＭＯＶ」で示される実行コード（コード４、コード６及びコード１１）を実行すると、「ｘ」に対して３回の書込み処理が発生する（図３を参照）。なお、図３においては、ＣＰＵが不揮発性メモリに書き込み処理を実行するとして、模式的に示している。
【００４７】
ところで、「ＭＯＶ」で示される実行コード（コード４、コード９及びコード１１）は、不揮発性メモリ２１の同一領域への書き込み命令であり、かつ書き換えずとも問題が生じないものである。
【００４８】
本実施形態に係るＩＣカード１は、このような場合において、前２回の書き込み処理（コード４及びコード９）を実行せず、最後の実行コード（コード１１）のみを実行する（図４を参照）。このように構成されることにより、ＩＣカード１は、不揮発性メモリ２１への負担を軽減させつつ、命令コードの数の低減を静的又は動的に行い、所定のプログラミング言語で記述されたプログラムを処理し、所定の動作を実行することができる。
【００４９】
なお、本実施例では、実行コードに含まれる「ＭＯＶ」コマンドのみを低減する対象にしたが、これに限られず他のコマンドであっても良い。
【００５０】
また、第２の実行部２４は、前２回の書き込み処理（コード４及びコード９）を実行せず、最後の実行コード（コード１１）のみを実行するものとしているが、これに限られない。例えば、第２の実行部２４と不揮発性メモリ２１との間に不揮発性メモリ２１に書き込み処理を実行する書込処理部を備える構成であっても良い。
【００５１】
このような構成の場合には、第２の実行部２４は、書込処理部を介して不揮発性メモリ２１に書き込み処理を命令する。書込処理部は、例えば、上述の実施例によれば、第２の実行部２４から命令される３回の書き込み処理に対して、前２回の書き込み処理（コード４及びコード９）を実行せず、最後の実行コード（コード１１）のみを実行する。
【符号の説明】
【００５２】
１  ＩＣカード
１０  ＩＣチップ
２０  制御処理部
２１  不揮発性メモリ
２２  第１の実行部
２３  コード変換部
２４  第２の実行部
２５  検索部
２６  再生成部
２７  ＲＯＭ
２８  ＲＡＭ
【図１】
0005454232.tif 000002
【図２】
0005454232.tif 000003
【図３】
0005454232.tif 000004
【図４】
0005454232.tif 000005