JP2016151914A - Electronic information storage medium, application replacement method, and program - Google Patents
Electronic information storage medium, application replacement method, and program Download PDFInfo
- Publication number
- JP2016151914A JP2016151914A JP2015029357A JP2015029357A JP2016151914A JP 2016151914 A JP2016151914 A JP 2016151914A JP 2015029357 A JP2015029357 A JP 2015029357A JP 2015029357 A JP2015029357 A JP 2015029357A JP 2016151914 A JP2016151914 A JP 2016151914A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- identification number
- application
- number indicating
- indicating
- 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.)
- Granted
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は、アプリケーションに記述された識別番号を実行順に取得し該取得した識別番号が示す命令に応じた処理を実行する仮想マシンを備えるICチップ等の電子情報記憶媒体の技術に関する。 The present invention relates to a technique of an electronic information storage medium such as an IC chip that includes a virtual machine that acquires identification numbers described in an application in the order of execution and executes processing according to a command indicated by the acquired identification number.
近年のICカードに搭載されるICチップは、Java Cardに対応しているものが多い。Java Cardは、Java(登録商標)で記述されたアプリケーションを、Global Platformの規格に定められたINSTALLコマンドによって、ICチップにダウンロードし、ICチップ上で動作させるためのOS機構である。Javaといったプログラム言語は、ハードウェアの依存性を吸収するために、C言語のようにコンパイルによってソースコードからネイティブコード(機械語)に変換されるものと異なり、コンパイラによって中間言語と呼ばれる実行形式であるバイトコードに変換される。バイトコードとは、算術や分岐といった命令を示す識別番号である。このバイトコードは、仮想マシン(Virtual Machine)により実行される。 Many IC chips mounted on recent IC cards are compatible with Java Card. The Java Card is an OS mechanism for downloading an application written in Java (registered trademark) to an IC chip and operating it on the IC chip by an INSTALL command defined in the Global Platform standard. A programming language such as Java is different from the one that is converted from source code to native code (machine language) by compilation like C language in order to absorb the dependency of hardware. Converted to a certain byte code. The byte code is an identification number indicating an instruction such as arithmetic or branch. This bytecode is executed by a virtual machine.
さて、上述したプログラム言語において、アプリケーション作成のために定義された(つまり、サポートされている)命令(言い換えれば、バイトコード)は約200種類ある。アプリケーションの作りによって依存はするものの、1つのアプリケーションに占めるバイトコードの数は、偏っていることが多い。例えば、あるアプリケーションのバイトコードを集計した結果、アプリケーションを構成するバイトコード(アプリケーションに記述されるバイトコード)の総数が36015個であり、使用されたバイトコードの種類が185種類であった。そのうち、10種類のバイトコードで、アプリケーションを構成する全体のバイトコードの約5割を占めていることが判明した。この結果はあくまで一例であるが、傾向としては特定のバイトコードが頻繁に呼ばれることはよくある。 In the programming language described above, there are approximately 200 types of instructions (in other words, byte codes) defined (that is, supported) for creating an application. Although it depends on the creation of the application, the number of byte codes in one application is often biased. For example, as a result of totaling the byte codes of a certain application, the total number of byte codes (byte codes described in the application) constituting the application is 36015, and the number of used byte codes is 185. Of these, 10 types of byte codes were found to occupy about 50% of the total byte codes constituting the application. This result is only an example, but as a trend, a specific byte code is often called frequently.
ところで、ICチップにインストールされるアプリケーションに対する速度要求は、特に決済処理の用途などにおいて、高くなってきている。一方、ICチップに搭載されるCPUの動作クロック(一般的に数MHz〜数十MHz)は、一般的なパソコンに搭載されるCPUの動作クロック(数GHz)と比較して遥かに小さい。その上、メモリの量もパソコン等に比べて遥かに少ない。そのため、リソースがある程度必要なコンパイル機能を搭載するには向いていない。 By the way, the speed requirement for the application installed in the IC chip is increasing particularly in the use of the payment processing. On the other hand, the CPU operating clock (generally several MHz to several tens of MHz) mounted on the IC chip is much smaller than the CPU operating clock (several GHz) mounted on a general personal computer. In addition, the amount of memory is much smaller than that of personal computers. Therefore, it is not suitable for installing a compilation function that requires some resources.
一般的なJavaの高速実行方式としては、Just In Timeコンパイラ方式がある。ただし、この方式はインタプリタで動作させておきつつバックグラウンドでコンパイルしておくという処理が必要となり、CPUの処理が一般のパソコンのCPUに比べて脆弱なICチップにおいては向いていない。 As a general Java high-speed execution method, there is a Just In Time compiler method. However, this method requires processing of compiling in the background while operating with an interpreter, and is not suitable for an IC chip in which the CPU processing is weaker than the CPU of a general personal computer.
インタプリタにおける他の高速実行方式としては、オリジナルバイトコードを定義する方法がある。例えば、特許文献1には、第1のインストラクションと、第2のインストラクションを実行するインタプリタを備えるICカードと、第2のインストラクションを第1のインストラクションに変換するコンバーターを有する端末を備えるICカードシステムが開示されている。 As another high-speed execution method in the interpreter, there is a method of defining an original byte code. For example, Patent Document 1 discloses an IC card system including an IC card including an interpreter that executes a first instruction and a second instruction, and a terminal having a converter that converts the second instruction into the first instruction. It is disclosed.
しかしながら、特許文献1に開示されたような、ICカードに対向する端末においてコンバーターがリナンバリングといった置き換え処理を行うには、実際のユースケースを想定すると十分ではない。例えば、携帯電話機に搭載されるSIMカード等において、決済機能を実現するアプリケーションを、SIMカードに格納する場合などがある。この場合、アプリケーション、携帯電話機、及びSIMカードなどは、それぞれ別の会社が開発する場合が多い。そのため、アプリケーションに対して、アプリケーションの開発会社や携帯電話機の製造会社における特殊な最適化は望めない。結果として、ICチップが、単体で、インストールされたアプリケーションの解析を行い、最適化する形態が望まれる。ただし、前述のように、従来から広まっているJust In Timeコンパイラ方式では、ICチップのような脆弱なCPU、少ないリソース環境において、実現が困難である。 However, it is not sufficient to assume an actual use case for the converter to perform replacement processing such as renumbering in a terminal facing the IC card as disclosed in Patent Document 1. For example, in a SIM card or the like mounted on a mobile phone, an application that realizes a settlement function may be stored in the SIM card. In this case, applications, mobile phones, SIM cards, and the like are often developed by different companies. Therefore, special optimization cannot be expected for the application at the application development company or the mobile phone manufacturer. As a result, it is desired that the IC chip alone analyze the installed application and optimize it. However, as described above, the conventional Just In Time compiler method is difficult to implement in a fragile CPU such as an IC chip and a small resource environment.
そこで、本発明は、上記点に鑑みてなされたものであり、リソースが少ない環境で、アプリケーションを解析、最適化し、パフォーマンスを向上させることが可能な電子情報記憶媒体、アプリケーション置換方法、及びプログラムを提供することを課題とする。 Therefore, the present invention has been made in view of the above points. An electronic information storage medium, an application replacement method, and a program capable of analyzing and optimizing an application and improving performance in an environment with few resources are provided. The issue is to provide.
上記課題を解決するために、請求項1に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体であって、前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記アプリケーションに記述された複数の前記識別番号のうちから取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、を備えることを特徴とする。 In order to solve the above problem, the invention according to claim 1 stores an application describing an identification number indicating each of a plurality of instructions selected from a plurality of kinds of instructions defined for creating an application. An electronic information storage medium comprising: a nonvolatile memory; and an execution unit that acquires the identification numbers described in the application in the order of execution and executes processing according to the instructions indicated by the acquired identification numbers, The nonvolatile memory includes an identification number indicating a first instruction selected as an inspection target from among the plurality of types of instructions, and an identification number indicating one or more second instructions to be linked to the first instruction. An identification number indicating a third instruction obtained by concatenating the first instruction and the second instruction is stored in association with each other, and a plurality of the identifiers described in the application are stored. When the identification number acquired from among the numbers is an identification number indicating the first instruction, the other identification number in which the execution order is continuous with respect to the identification number is the first instruction Check instruction processing means for determining whether or not the second instruction to be connected is an identification number, and the other identification number is an identification number indicating the second instruction by the inspection instruction processing means. If it is determined, in the application, the identification number indicating the first instruction is changed to the identification number indicating the first instruction and the third instruction associated with the identification number indicating the second instruction. Rewriting means for rewriting the identification number shown.
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記実行手段が前記アプリケーションから前記識別番号を順次取得し、当該識別番号を取得するごとに当該識別番号が示す前記命令に応じた処理を実行する前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、前記検査命令処理手段は、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定することを特徴とする。 According to a second aspect of the present invention, in the electronic information storage medium according to the first aspect, the execution unit sequentially acquires the identification number from the application, and the identification number indicates each time the identification number is acquired. When the identification number acquired during the processing period of the application that executes processing according to the instruction is an identification number indicating the first instruction, the inspection instruction processing means It is characterized in that it is determined whether or not the other identification number having a continuous execution order is an identification number indicating the second instruction to be linked to the first instruction.
請求項3に記載の発明は、請求項2に記載の電子情報記憶媒体において、前記電子情報記憶媒体は、データを一時的に記憶するための揮発性メモリを備え、当該揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とする。 According to a third aspect of the present invention, in the electronic information storage medium according to the second aspect, the electronic information storage medium includes a volatile memory for temporarily storing data, and the volatile memory includes: When the buffer area set to a capacity smaller than the size of the entire application is set, and the inspection instruction processing means determines that the other identification number is an identification number indicating the second instruction, The identification information indicating the first instruction is associated with specific information capable of specifying the position in the application, the identification number indicating the first instruction, and the identification number indicating the second instruction in the nonvolatile memory. In addition, the identification number indicating the third instruction is written in the buffer area, and when the application process is completed, the identification number is written in the buffer area. The specific information and the identification number are written in a predetermined area in the nonvolatile memory, and the rewriting unit is configured to write the specific information and the specific information written in the predetermined area at a reset timing of the electronic information storage medium or an application start timing. Based on an identification number indicating a third instruction, the identification number indicating the first instruction is rewritten to an identification number indicating the third instruction.
請求項4に記載の発明は、請求項2に記載の電子情報記憶媒体において、前記電子情報記憶媒体は、データを一時的に記憶するための揮発性メモリを備え、当該揮発性メモリには、前記アプリケーション全体のサイズより少ない容量に設定されたバッファ領域が設定されており、前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることを特徴とする。 According to a fourth aspect of the present invention, in the electronic information storage medium according to the second aspect, the electronic information storage medium includes a volatile memory for temporarily storing data, and the volatile memory includes: When a buffer area set to a capacity smaller than the size of the entire application is set, and the inspection instruction processing means determines that the other identification number is not an identification number indicating the second instruction, The identification information indicating the first instruction and the identification information indicating the position in the application and the identification number indicating the first instruction and indicating that it has been inspected are written in the buffer area, and the application process Is finished, the specific information written in the buffer area and the identification number are written in a predetermined area in the nonvolatile memory, The rewriting means indicates the specific information and the first instruction written in the predetermined area at the reset timing of the electronic information storage medium or the start timing of the application, and based on an identification number indicating that it has been inspected. Then, the identification number indicating the first instruction is rewritten to an identification number indicating the first instruction and indicating that it has been inspected.
請求項5に記載の発明は、請求項3または4に記載の電子情報記憶媒体において、前記検査命令処理手段は、前記アプリケーションの処理期間中に取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、前記バッファ領域に空きが有るか否かを判定し、当該バッファ領域に空きが有ると判定した場合、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定することを特徴とする。 According to a fifth aspect of the present invention, in the electronic information storage medium according to the third or fourth aspect, the inspection command processing means is configured such that the identification number acquired during the processing period of the application is the first command. If it is determined whether the buffer area is empty, and if it is determined that the buffer area is empty, the other identifications in which the execution order is continuous with respect to the identification number It is determined whether or not the number is an identification number indicating the second instruction to be linked to the first instruction.
請求項6に記載の発明は、請求項4に記載の電子情報記憶媒体において、前記実行手段は、前記アプリケーションの2回目以降の前記処理期間中に取得した前記識別番号が、前記第1の命令を示し且つ検査済であることを示す識別番号であるとき、当該識別番号が示す前記命令に応じた処理を実行し、前記検査命令処理手段は、前記第1の命令と連結させる前記第2の命令を示す識別番号であるか否かの判定を行うことなく、当該実行手段は、次の前記識別番号を取得し当該識別番号が示す前記命令に応じた処理を実行することを特徴とする。 According to a sixth aspect of the present invention, in the electronic information storage medium according to the fourth aspect, the execution means is configured such that the identification number acquired during the second or later processing period of the application is the first command. When the identification number indicates that it has been inspected and the inspection instruction processing means executes processing according to the instruction indicated by the identification number, and the inspection instruction processing means is connected to the first instruction. The execution means acquires the next identification number and executes a process according to the instruction indicated by the identification number without determining whether the identification number indicates an instruction.
請求項7に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段とを備える電子情報記憶媒体におけるアプリケーション置換方法であって、前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記アプリケーションに記述された複数の前記識別番号のうちから取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定し、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換えることを特徴とする。 According to a seventh aspect of the present invention, there is provided a non-volatile memory for storing an application describing an identification number indicating each of a plurality of instructions selected from a plurality of kinds of instructions defined for creating an application, and the application. An application replacement method in an electronic information storage medium comprising execution means for acquiring the described identification numbers in execution order and executing processing according to the instructions indicated by the acquired identification numbers, wherein the nonvolatile memory is , An identification number indicating a first instruction selected as an inspection target from among the plurality of types of instructions, an identification number indicating one or more second instructions to be linked to the first instruction, and the first And an identification number indicating a third instruction obtained by concatenating the second instruction and the second instruction, and storing a plurality of instructions described in the application When the identification number acquired from the identification number is an identification number indicating the first instruction, the other identification number in which the execution order is continuous with respect to the identification number is the first identification number. In the application, it is determined whether or not the second instruction to be linked with the instruction is an identification number indicating the second instruction, and when the other identification number is determined to be an identification number indicating the second instruction, The identification number indicating the first instruction is rewritten to an identification number indicating the third instruction associated with an identification number indicating the first instruction and an identification number indicating the second instruction. To do.
請求項8に記載の発明は、アプリケーション作成のために定義された複数種類の命令の中から選択された複数の命令それぞれを示す識別番号を記述するアプリケーションを記憶する不揮発性メモリと、コンピュータとを備える電子情報記憶媒体において前記コンピュータを、前記アプリケーションに記述された前記識別番号を実行順に取得し該取得した前記識別番号が示す前記命令に応じた処理を実行する実行手段として機能させるプログラムであって、前記不揮発性メモリは、前記複数種類の命令群の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、前記プログラムは、さらに、前記コンピュータを、前記アプリケーションに記述された複数の前記識別番号のうちから取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定し、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換えるように機能させることを特徴とする。 According to an eighth aspect of the present invention, there is provided a non-volatile memory for storing an application describing an identification number indicating each of a plurality of instructions selected from a plurality of kinds of instructions defined for creating an application, and a computer. A program that causes the computer to function as an execution unit that acquires the identification numbers described in the application in the order of execution and executes processing according to the command indicated by the acquired identification number in an electronic information storage medium provided The non-volatile memory indicates an identification number indicating a first instruction selected as an inspection target from the plurality of types of instruction groups, and one or more second instructions to be linked to the first instruction. An identification number and an identification number indicating a third instruction obtained by connecting the first instruction and the second instruction are stored in association with each other. The program further causes the computer to respond to the identification number when the identification number acquired from the plurality of identification numbers described in the application is an identification number indicating the first instruction. It is determined whether or not the other identification number in which the execution order is continuous is an identification number indicating the second instruction to be linked to the first instruction, and the other identification number is the second If it is determined that the identification number indicates an instruction, the identification number indicating the first instruction is associated with the identification number indicating the first instruction and the identification number indicating the second instruction in the application. It is made to function so that it may rewrite to the identification number which shows the said 3rd command.
本発明によれば、リソースが少ない環境で、アプリケーションを解析、最適化し、パフォーマンスを向上させることができる。 According to the present invention, it is possible to analyze and optimize an application and improve performance in an environment with few resources.
以下、図面を参照して本発明の実施形態について詳細に説明する。先ず、図1等を参照して、ICカード1に搭載されたICチップ1aの概要構成及び機能について説明する。図1(A)は、ICチップ1aのハードウェア構成例を示す図であり、図1(B)は、ICチップ1aの機能ブロック例を示す図である。なお、ICカード1は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ICチップ1aは本発明における電子情報記憶媒体を構成するが、この電子情報記憶媒体は通信機器の回路基板上に直接組み込んで構成するようにしてもよい。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. First, with reference to FIG. 1 etc., the outline | summary structure and function of IC chip 1a mounted in IC card 1 are demonstrated. 1A is a diagram illustrating a hardware configuration example of the IC chip 1a, and FIG. 1B is a diagram illustrating a functional block example of the IC chip 1a. The IC card 1 is used as a cash card, credit card, employee card or the like. Alternatively, the IC card 1 is incorporated into a communication device such as a smartphone or a mobile phone. The IC chip 1a constitutes an electronic information storage medium in the present invention, but this electronic information storage medium may be directly incorporated on a circuit board of a communication device.
図1(A)に示すように、ICチップ1aは、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、データを一時的に記憶するための揮発性メモリであるRAM(Random Access Memory)12、不揮発性メモリであるフラッシュメモリ13、及びI/O回路14を備えて構成される。なお、フラッシュメモリの代わりに「Electrically Erasable Programmable Read-Only Memory」であっても構わない。I/O回路14は、外部端末2とのインターフェイスを担う。これにより、ICチップ1aは、ICリーダ・ライタを備える外部端末2との間で接触または非接触で通信を行うことができる。接触式のICチップ1aの場合、I/O回路14には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子(ICチップ1aへ電源供給する端子)、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部端末2との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末2の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップ1aが通信機器に組み込まれる場合、外部端末2には通信機器の機能を担う制御部が該当する。 As shown in FIG. 1A, an IC chip 1a includes a CPU (Central Processing Unit) 10, a ROM (Read Only Memory) 11, and a RAM (Random Access Memory) that is a volatile memory for temporarily storing data. ) 12, a flash memory 13 which is a nonvolatile memory, and an I / O circuit 14. Instead of the flash memory, “Electrically Erasable Programmable Read-Only Memory” may be used. The I / O circuit 14 serves as an interface with the external terminal 2. As a result, the IC chip 1a can communicate with or without contact with the external terminal 2 including the IC reader / writer. In the case of the contact type IC chip 1a, the I / O circuit 14 includes, for example, eight terminals C1 to C8. For example, the C1 terminal communicates with the power supply terminal (terminal for supplying power to the IC chip 1a), the C2 terminal with the reset terminal, the C3 terminal with the clock terminal, the C5 terminal with the ground terminal, and the C7 terminal with the external terminal 2. Terminal. On the other hand, in the case of the non-contact type IC chip 1a, the I / O circuit 14 includes, for example, an antenna and a modulation / demodulation circuit. Examples of the external terminal 2 include an IC card issuing machine, ATM, ticket gate, authentication gate, and the like. Alternatively, when the IC chip 1a is incorporated in a communication device, the external terminal 2 corresponds to a control unit responsible for the function of the communication device.
CPU10は、コンピュータの一例であり、図1(B)に示すハードウェアとして、フラッシュメモリ13に記憶された各種プログラムを実行する演算装置である。各種プログラムには、OS(Operating System)、仮想マシンプログラム、Java(登録商標)等のプログラム言語で記述されるアプリケーションが含まれる。OS、及び仮想マシンプログラムは、複数のネイティブコード(実行コード群)で記述される。OSは、ICチップ1aの動作を直接コントロールするソフトウェアであり、ROM11に記憶されてもよい。 The CPU 10 is an example of a computer, and is an arithmetic device that executes various programs stored in the flash memory 13 as hardware illustrated in FIG. The various programs include applications described in a program language such as an OS (Operating System), a virtual machine program, and Java (registered trademark). The OS and the virtual machine program are described by a plurality of native codes (execution code groups). The OS is software that directly controls the operation of the IC chip 1 a and may be stored in the ROM 11.
仮想マシンプログラムは、CPU10を仮想マシン(本発明の実行手段の一例)として機能させるプログラムである。OS上で動作する仮想マシンは、ソースコードとネイティブコードとの間の中間コードであるバイトコード(識別番号の一例、インデックスともいう)を解釈、実行する。バイトコードは、例えばJava(登録商標)の場合、1バイトで構成される。このため、定義可能な命令(言い換えれば、バイトコード)は、255種類となるが、実際には、約200種類の命令が定義されており、その他は未定義になっている。命令は、例えば、「SLOAD_0」、「SLOAD_1」、「BSPUSH」、「INVOKESPECIAL」、「GOTO」というように、人間に理解容易なソースコードで表される。このような命令は、アプリケーション作成のために定義された(サポートされている)複数種類の命令の中から、プログラマーによって選択、使用される。プログラマーにより作成されたアプリケーションには、上述したソースコードが例えば実行順に記述される。そして、このようなアプリケーションは、コンパイラによって仮想マシンの実行形式に変換(つまり、ソースコードからバイトコードに変換)され、インストール(フラッシュメモリ13に記憶)されることになる。このため、フラッシュメモリ13に記憶されているアプリケーションは、複数の命令それぞれを示すバイトコードを例えば実行順に記述する。 The virtual machine program is a program that causes the CPU 10 to function as a virtual machine (an example of execution means of the present invention). A virtual machine operating on the OS interprets and executes a byte code (an example of an identification number, also referred to as an index) that is an intermediate code between a source code and a native code. For example, in the case of Java (registered trademark), the byte code is composed of one byte. For this reason, there are 255 types of instructions that can be defined (in other words, bytecodes), but in practice, about 200 types of instructions are defined, and the others are undefined. The instructions are expressed in source code that is easy to understand for humans, such as “SLOAD — 0”, “SLOAD — 1”, “BSPUSH”, “INVOKESPECIAL”, and “GOTO”. Such an instruction is selected and used by a programmer from a plurality of types of instructions defined (supported) for creating an application. In the application created by the programmer, the above-described source code is described in the order of execution, for example. Such an application is converted into an execution format of the virtual machine by the compiler (that is, converted from the source code to the byte code) and installed (stored in the flash memory 13). For this reason, the application stored in the flash memory 13 describes byte codes indicating each of a plurality of instructions in the order of execution, for example.
仮想マシンは、アプリケーションに記述されたバイトコードを実行順に取得し、該取得したバイトコードを解釈して当該バイトコードが示す命令に応じた処理を実行する。バイトコードが示す命令に応じた処理の内容(処理プログラム)は、仮想マシンプログラムに規定されている。また、仮想マシンは、アプリケーションに記述された複数のバイトコードのうち、次に実行するべきバイトコードの位置(アプリケーションにおける位置)を特定可能な特定情報を指し示すプログラムカウンタを備える。ここで、特定情報の例として、バイトコードのアドレス(バイトコードが記憶されたフラッシュメモリ13におけるアドレス)、バイトコードのオフセット、バイトコードのラベル値が挙げられる。例えば、公知のComputed gotoアルゴリズムでは、GNU C対応の拡張機能であるlabel as valueにより、ラベル値としてのアドレスに直接ジャンプすることができる。 The virtual machine acquires byte codes described in the application in the order of execution, interprets the acquired byte codes, and executes processing according to the instruction indicated by the byte codes. The contents of the processing (processing program) according to the instruction indicated by the bytecode are defined in the virtual machine program. The virtual machine also includes a program counter that indicates specific information that can specify the position of the byte code to be executed next (position in the application) among the plurality of byte codes described in the application. Here, examples of the specific information include a byte code address (an address in the flash memory 13 in which the byte code is stored), a byte code offset, and a byte code label value. For example, in the known computed goto algorithm, it is possible to jump directly to an address as a label value by means of label as value which is an extended function corresponding to GNU C.
本実施形態では、従来、上述した複数種類の命令の中に定義されていなかった新たな命令を特殊命令(第3の命令の一例)として定義する。この特殊命令は、上述した複数種類の命令の中に定義されていた既存の複数の命令を連結した命令である。連結される命令の組み合わせは、例えば一般的なアプリケーションにおいて実行順が連続する命令の組合せの出現頻度等に基づき、例えばICチップの発行元等により選定される。特殊命令の例として、「SLOAD_0」と「SLOAD_1」とを連結した特殊命令(「SLOAD_0_1」と新たに定義)、および、「SLOAD_0」と「IFNE」とを連結した特殊命令(「SLOAD_0_IFNE」と新たに定義)などが挙げられる。また、特殊命令には、上述した複数種類の命令の中に定義されていた既存の命令を示すバイトコードとは重複しないバイトコード(例えば、255種類のバイトコードのうち、未定義のバイトコード)が割り当てられ、当該割り当てられたバイトコードは、当該特殊命令を示すことになる。また、特殊命令に応じた処理の内容(特殊命令処理プログラム)は、上述した仮想マシンプログラムに予め規定される(つまり、仮想マシンに、特殊命令に応じた処理内容が組み込まれる)。 In the present embodiment, a new instruction that has not conventionally been defined among the above-described plural types of instructions is defined as a special instruction (an example of a third instruction). This special instruction is an instruction obtained by concatenating a plurality of existing instructions defined in the above-described plurality of types of instructions. The combination of instructions to be linked is selected by, for example, an IC chip issuer based on, for example, the frequency of appearance of combinations of instructions whose execution order continues in a general application. Examples of special instructions include a special instruction that concatenates "SLOAD_0" and "SLOAD_1" (newly defined as "SLOAD_0_1"), and a special instruction that concatenates "SLOAD_0" and "IFNE" ("SLOAD_0_IFNE" and new Definition). In addition, the special instruction includes a byte code that does not overlap with the byte code indicating the existing instruction defined in the plurality of types of instructions described above (for example, an undefined byte code among 255 types of byte codes). Is assigned, and the assigned byte code indicates the special instruction. Further, the processing content (special command processing program) corresponding to the special command is defined in advance in the above-described virtual machine program (that is, the processing content corresponding to the special command is incorporated in the virtual machine).
ここで、特殊命令に応じた処理は、例えば、データの読み出し、データの書き込み、プログラムカウンタの更新、次の命令へのジャンプなどを簡略化した処理である。また、特殊命令に応じた処理は、少なくとも連結された各命令を示すバイトコードがもともと更新していたプログラムカウンタの数だけ更新を行う処理を有する。例えば、命令Aを示すバイトコードで1、命令Bを示すバイトコードで2、プログラムカウンタを更新していた場合、命令Aと命令Bとを連結した特殊命令ABを示すバイトコードでは、プログラムカウンタが3だけ更新される。図2(A)は、連続した命令「SLOAD_0」及び「SLOAD_1」に応じた処理の内容の一例を示す図であり、図2(B)は、「SLOAD_0」と「SLOAD_1」とを連結した特殊命令「SLOAD_0_1」に応じた処理の内容の一例を示す図である。図3(A)は、連続した命令「SLOAD_0」及び「IFNE」に応じた処理の内容の一例を示す図であり、図3(B)は、「SLOAD_0」と「IFNE」とを連結した特殊命令「SLOAD_0_IFNE」に応じた処理の内容の一例を示す図である。図2及び図3に示すように、連結後の処理の内容(図2(B)と図3(B))は、連結前の処理の内容(図2(A)と図3(A))に比べて処理手順が簡略化(最適化)されているものの、処理結果は同様になる。つまり、特殊命令では、複数の命令を1つの命令として処理しており、高速処理が可能となる。 Here, the processing according to the special instruction is, for example, a process that simplifies reading of data, writing of data, updating of a program counter, jump to the next instruction, and the like. Further, the processing corresponding to the special instruction includes processing for updating at least the number of program counters originally updated by the bytecode indicating each linked instruction. For example, if the byte counter indicating instruction A is 1, the byte code indicating instruction B is 2, and the program counter is updated, the byte counter indicating the special instruction AB in which the instruction A and the instruction B are concatenated, Only 3 is updated. FIG. 2 (A) is a diagram showing an example of the contents of processing corresponding to consecutive instructions “SLOAD_0” and “SLOAD_1”, and FIG. 2 (B) is a special case in which “SLOAD_0” and “SLOAD_1” are concatenated. FIG. 11 is a diagram illustrating an example of processing contents according to an instruction “SLOAD_0_1”. FIG. 3A is a diagram showing an example of processing contents corresponding to consecutive instructions “SLOAD_0” and “IFNE”, and FIG. 3B is a special case in which “SLOAD_0” and “IFNE” are connected. FIG. 11 is a diagram illustrating an example of the content of processing according to an instruction “SLOAD_0_IFNE”. As shown in FIGS. 2 and 3, the contents of the process after the connection (FIGS. 2B and 3B) are the contents of the process before the connection (FIGS. 2A and 3A). Although the processing procedure is simplified (optimized) as compared with FIG. That is, in the special instruction, a plurality of instructions are processed as one instruction, and high-speed processing is possible.
本実施形態では、処理手順の簡略化(最適化)を実現するために、上述した複数種類の命令の中から検査対象として選定された検査命令(第1の命令の一例)を示すバイトコードと、当該検査命令と連結させる1つ以上の非検査命令(第2の命令の一例)を示すバイトコードと、検査命令と非検査命令とを連結した特殊命令を示すバイトコードと、が対応付けられてフラッシュメモリ13に記憶される。図4(A)は、検査命令を示すバイトコードと、非検査命令を示すバイトコードと、特殊命令を示すバイトコードと、を対応付けて保持するテーブルの一例を示す図である。図4(A)の例では、1つの検査命令に対して、連結させる命令が複数ある場合を示している。なお、このようなテーブルには、それぞれのバイトコードの代わりに、バイトコードのアドレスやラベル値が識別番号として保持されるように構成してもよい。 In the present embodiment, in order to realize the simplification (optimization) of the processing procedure, a byte code indicating an inspection instruction (an example of a first instruction) selected as an inspection target from the above-described plural types of instructions; , A byte code indicating one or more non-inspection instructions (an example of a second instruction) to be linked to the inspection instruction, and a byte code indicating a special instruction in which the inspection instruction and the non-inspection instruction are combined And stored in the flash memory 13. FIG. 4A is a diagram illustrating an example of a table that holds a byte code indicating a check instruction, a byte code indicating a non-check instruction, and a byte code indicating a special instruction in association with each other. In the example of FIG. 4A, a case where there are a plurality of instructions to be linked with respect to one inspection instruction is shown. In addition, such a table may be configured such that an address or a label value of a byte code is held as an identification number instead of each byte code.
更に、フラッシュメモリ13には、アプリケーションに記述された複数のバイトコードのうちから、上記検査命令が取得されたときの検査命令処理を規定する検査命令処理プログラム、及び検査命令の置換処理を規定する置換処理プログラムが記憶される。検査命令処理プログラム、及び置換処理プログラムは、アプリケーションの最適化を図るためのプログラムであり、CPU10を、検査命令処理部(本発明における検査命令処理手段の一例)、及び置換部(本発明における書換手段の一例)として機能させるプログラムである。なお、検査命令処理部及び置換部は、仮想マシンに備えられてもよい。フラッシュメモリ13に記憶されているアプリケーションに記述された複数のバイトコードのうちから取得された(読み出された)バイトコードが、検査命令を示すバイトコードであるとき、CPU10は、検査命令処理を実行することにより、当該検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードであるか否かを、例えばテーブルを参照することにより判定する。そして、上記他のバイトコードが非検査命令を示すバイトコードであると判定された場合、CPU10は、置換処理を実行することにより、上記アプリケーションにおいて、当該検査命令を示すバイトコードを、例えば図4(A)に示すように、当該検査命令を示すバイトコード及び当該非検査命令を示すバイトコードに対応付けられた特殊命令を示すバイトコードに書き換える。 Further, the flash memory 13 defines a test instruction processing program that defines a test command process when the test command is acquired from a plurality of byte codes described in the application, and a test command replacement process. A replacement processing program is stored. The inspection instruction processing program and the replacement processing program are programs for optimizing the application. The CPU 10 is replaced with an inspection instruction processing section (an example of inspection instruction processing means in the present invention) and a replacement section (rewriting in the present invention). It is a program that functions as an example of a means. Note that the inspection command processing unit and the replacement unit may be provided in a virtual machine. When the byte code acquired (read) from the plurality of byte codes described in the application stored in the flash memory 13 is a byte code indicating a check instruction, the CPU 10 performs the check instruction process. For example, refer to the table to determine whether or not another bytecode whose execution order is continuous with the bytecode indicating the inspection instruction is a bytecode indicating a non-inspection instruction to be linked to the inspection instruction. Determine by doing. When it is determined that the other byte code is a byte code indicating a non-inspection instruction, the CPU 10 executes a replacement process, whereby the byte code indicating the inspection instruction is changed to, for example, FIG. As shown in (A), the byte code indicating the inspection instruction and the byte code indicating the special instruction associated with the byte code indicating the non-inspection instruction are rewritten.
一方、上記他のバイトコードが非検査命令を示すバイトコードでないと判定された場合、CPU10は、置換処理を実行することにより、上記アプリケーションにおいて、当該検査命令を示すバイトコードを、当該検査済み命令を示すバイトコードに書き換える。ここで、検査済み命令を示すバイトコードとは、上記取得された検査命令を示し且つ検査済であることを示すバイトコードであることを意味する。検査済み命令を示すバイトコードは、特殊命令を示すバイトコードと同様、上述した複数種類の命令の中に定義されていた既存の命令を示すバイトコードとは重複しないバイトコードである。また、検査済み命令に応じた処理の内容は、これに対応する検査命令に応じた処理の内容と同一である。ただし、アプリケーションに記述された複数のバイトコードのうちから取得したバイトコードが、検査済み命令を示すバイトコードであるとき、検査済であるため、検査命令処理プログラムが実行されない(つまり、当該処理に応じた通常の処理が行われるだけとなる)。 On the other hand, if it is determined that the other byte code is not a byte code indicating a non-inspection instruction, the CPU 10 executes a replacement process, whereby the byte code indicating the inspection instruction is converted into the inspected instruction in the application. Rewrite the byte code to indicate. Here, the byte code indicating the inspected instruction means a byte code indicating the acquired inspection instruction and indicating inspection. The byte code indicating the inspected instruction is a byte code that does not overlap with the byte code indicating the existing instruction defined in the plurality of types of instructions as in the case of the byte code indicating the special instruction. Further, the content of the process according to the inspected instruction is the same as the content of the process according to the corresponding inspection instruction. However, when the byte code acquired from the plurality of byte codes described in the application is the byte code indicating the inspected instruction, the inspection instruction processing program is not executed because the inspection has been completed (that is, the processing is not performed) Only normal processing will be performed).
なお、検査命令処理は、アプリケーションの処理期間外に実行されてもよいが、アプリケーションの処理期間中(つまり、アプリケーション実行中)に実行されることが望ましい。ここで、アプリケーションの処理期間とは、仮想マシンが例えば外部端末2から受信されたコマンドに応じて、アプリケーションからバイトコードを順次取得し当該バイトコードを取得するごとに当該バイトコードが示す命令に応じた処理を実行する期間をいう。検査命令処理がアプリケーションの処理期間中に実行される場合、RAMには、アプリケーション全体のサイズより少ない容量(バッファサイズ)に設定されたバッファ領域が設定される。なお、バッファ領域の容量は、アプリケーションのユーザによって任意に設定可能としてもよい。 The inspection command process may be executed outside the application processing period, but is preferably executed during the application processing period (that is, during application execution). Here, the processing period of the application corresponds to an instruction indicated by the byte code every time the byte code is sequentially acquired from the application according to a command received from the external terminal 2 by the virtual machine. The period during which the process is executed. When the inspection instruction process is executed during the processing period of the application, a buffer area set to a capacity (buffer size) smaller than the size of the entire application is set in the RAM. The capacity of the buffer area may be arbitrarily set by an application user.
図4(B)は、RAMのバッファ領域を示す概念図である。図4(B)に示す例では、バッファ領域には、検査命令を示すバイトコードのアドレスと特殊命令を示すバイトコードとの組(セット)、及び検査命令を示すバイトコードのアドレスと検査済み命令を示すバイトコードとの組が書き込まれている。なお、バイトコードのアドレスの代わりに、バイトコードのラベル値が書き込まれてもよい。検査命令処理において、検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、検査命令と連結させる非検査命令を示すバイトコードであると判定された場合、当該検査命令を示すバイトコードのアドレスと特殊命令を示すバイトコードとの組がバッファ領域に書き込まれる。一方、検査命令処理において、検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードでないと判定された場合、当該検査命令を示すバイトコードのアドレスと検査済み命令を示すバイトコードとの組がバッファ領域に書き込まれる。このようにバッファ領域に書き込まれたデータは、置換処理で用いられる。 FIG. 4B is a conceptual diagram showing a buffer area of the RAM. In the example shown in FIG. 4B, the buffer area includes a set of a byte code address indicating a check instruction and a byte code indicating a special instruction, and a byte code address indicating a check instruction and a checked instruction. A pair with a byte code indicating is written. Instead of the byte code address, a byte code label value may be written. In the inspection instruction processing, when it is determined that another bytecode whose execution order is continuous with the bytecode indicating the inspection instruction is a bytecode indicating a non-inspection instruction to be linked to the inspection instruction, the inspection instruction is indicated. A set of a byte code address and a byte code indicating a special instruction is written in the buffer area. On the other hand, in the inspection instruction processing, when it is determined that the other byte code whose execution order is continuous with the byte code indicating the inspection instruction is not the byte code indicating the non-inspection instruction to be linked to the inspection instruction, the inspection instruction A pair of a byte code indicating the address and a byte code indicating the inspected instruction is written in the buffer area. The data written in the buffer area in this way is used in the replacement process.
次に、図5を参照して、ICチップ1aの動作について説明する。図5(A)は、アプリケーションの処理期間中に実行される検査命令処理の一例を示すフローチャートである。図5(B)は、アプリケーションの処理が終了した後、ICチップ1aのリセットタイミングまたはアプリケーションの起動タイミングで実行される置換処理の一例を示すフローチャートである。例えば、外部端末2からコマンドが受信されると、アプリケーションが起動してアプリケーションの処理が開始される。このとき、バッファ領域が初期化される。これにより、バッファ領域は、空き状態(例えば、全てFFの状態、或いは全て00の状態)となる。また、アプリケーションの処理が開始されると、図4(A)に示すようなテーブルがフラッシュメモリ13から読み出されRAMのワーク領域に記憶される。 Next, the operation of the IC chip 1a will be described with reference to FIG. FIG. 5A is a flowchart illustrating an example of the inspection command process executed during the processing period of the application. FIG. 5B is a flowchart showing an example of a replacement process executed at the reset timing of the IC chip 1a or the application activation timing after the application process is completed. For example, when a command is received from the external terminal 2, the application is activated and application processing is started. At this time, the buffer area is initialized. As a result, the buffer area becomes empty (for example, all FFs or all 00s). When application processing is started, a table as shown in FIG. 4A is read from the flash memory 13 and stored in the work area of the RAM.
そして、アプリケーションの処理期間中(つまり、アプリケーション実行中)に、仮想マシンは、プログラムカウンタが指し示す特定情報(例えばアドレス)に従って、バイトコードをアプリケーションから取得し(例えばフラッシュメモリ13またはRAMから読み出し)、当該取得したバイトコードが、検査命令を示すバイトコード(つまり、テーブルに記憶される検査命令を示すバイトコード)であるとき、CPU10は、図5(A)に示す検査命令処理を開始する。一方、取得したバイトコードが、検査命令を示すバイトコードでない場合、仮想マシンは、当該バイトコードが示す命令に応じた処理(通常の処理)を実行する。 Then, during the processing period of the application (that is, during execution of the application), the virtual machine acquires the bytecode from the application (for example, reads from the flash memory 13 or the RAM) according to the specific information (for example, address) indicated by the program counter, When the acquired byte code is a byte code indicating a check instruction (that is, a byte code indicating a check instruction stored in a table), the CPU 10 starts a check instruction process shown in FIG. On the other hand, if the acquired byte code is not a byte code indicating an inspection instruction, the virtual machine executes processing (normal processing) according to the instruction indicated by the byte code.
図5(A)に示す検査命令処理では、仮想マシンは、当該検査命令を示すバイトコードが示す命令に応じた処理を実行する(ステップS1)。次いで、検査命令処理部は、バッファ領域に空きが有るか否かを判定する(ステップS2)。例えば、当該検査命令を示すバイトを示すバイトコードのアドレスと特殊命令を示すバイトコード(または検査済み命令を示すバイトコード)との組分のデータ量以上の空き容量がバッファ領域にある場合、バッファ領域に空きが有ると判定される。検査命令処理部は、バッファ領域に空きが有ると判定した場合(ステップS2:YES)、ステップS3へ進む。一方、検査命令処理部は、バッファ領域に空きが無いと判定した場合(ステップS2:NO)、当該検査命令処理を終了する。これにより、プログラムカウンタが進められて次のバイトコードの処理へ進む。 In the inspection instruction process shown in FIG. 5A, the virtual machine executes a process according to the instruction indicated by the byte code indicating the inspection instruction (step S1). Next, the inspection instruction processing unit determines whether or not there is a vacancy in the buffer area (step S2). For example, if there is free space in the buffer area that is equal to or more than the data amount of the set of the byte code address indicating the inspection instruction and the byte code indicating the special instruction (or the byte code indicating the inspected instruction), the buffer It is determined that there is a space in the area. If the inspection instruction processing unit determines that there is an empty buffer area (step S2: YES), the inspection instruction processing unit proceeds to step S3. On the other hand, when it is determined that there is no space in the buffer area (step S2: NO), the inspection instruction processing unit ends the inspection instruction processing. As a result, the program counter is advanced to proceed to processing of the next byte code.
ステップS3では、検査命令処理部は、プログラムカウンタに基づき前後のバイトコードを確認する。そして、検査命令処理部は、当該検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードであるか否かを判定する(ステップS4)。例えば、現在のプログラムカウンタが示す特定情報の直前または直後の特定情報により特定されたバイトコードが、上記検査命令と連結させる非検査命令を示すバイトコードとして上記テーブルで対応付けられている場合、当該検査命令と連結させる非検査命令を示すバイトコードであると判定される。 In step S3, the inspection instruction processing unit confirms the preceding and following byte codes based on the program counter. Then, the check instruction processing unit determines whether another byte code whose execution order is continuous with respect to the byte code indicating the check instruction is a byte code indicating a non-check instruction to be linked to the check instruction. (Step S4). For example, when the byte code specified by the specific information immediately before or after the specific information indicated by the current program counter is associated in the table as a byte code indicating a non-inspection instruction to be linked to the inspection instruction, It is determined that the byte code indicates a non-inspection instruction to be linked with the inspection instruction.
検査命令処理部は、当該検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードであると判定した場合(ステップS4:YES)、当該検査命令を示すバイトコードのアドレスと、上記テーブルにおいて当該検査命令を示すバイトコード及び当該非検査命令を示すバイトコードに対応付けられた特殊命令を示すバイトコードとをバッファ領域に書き込み(つまり、アドレスとバイトコードの組を格納し)(ステップS5)、当該検査命令処理を終了する。これにより、プログラムカウンタが進められて次のバイトコードの処理へ進める。なお、バイトコードのアドレスの代わりに、バイトコードのラベル値が書き込まれてもよい。 When the inspection instruction processing unit determines that another byte code whose execution order is continuous with respect to the byte code indicating the inspection instruction is a byte code indicating a non-inspection instruction to be linked to the inspection instruction (step S4: YES), the byte code address indicating the check instruction, and the byte code indicating the check instruction and the byte code indicating the special instruction associated with the byte code indicating the non-check instruction in the table are written in the buffer area. (In other words, a set of address and byte code is stored) (step S5), and the inspection instruction process is terminated. As a result, the program counter is advanced to proceed to processing of the next byte code. Instead of the byte code address, a byte code label value may be written.
一方、検査命令処理部は、当該検査命令を示すバイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードでないと判定した場合(ステップS4:NO)、当該検査命令を示すバイトコードのアドレスと、検査済み命令を示すバイトコードとをバッファ領域に書き込み(ステップS6)、当該検査命令処理を終了する。これにより、プログラムカウンタが進められ、次のバイトコードの処理へ進む。 On the other hand, when the check instruction processing unit determines that the other byte code whose execution order is continuous with the byte code indicating the check instruction is not the byte code indicating the non-check instruction to be linked to the check instruction (step S4). : NO), the address of the byte code indicating the inspection instruction and the byte code indicating the inspected instruction are written in the buffer area (step S6), and the inspection instruction processing is terminated. As a result, the program counter is advanced, and the processing proceeds to the next byte code.
以上のようにして、図5(A)に示す検査命令処理は、検査命令を示すバイトコードが読み出される度に実行されることになる。そして、上記アプリケーションの処理が終了した場合、検査命令処理部は、上記ステップS5またはステップS6でバッファ領域に書き込まれた、検査命令を示すバイトコードのアドレス及び特殊命令を示すバイトコード(または、検査済み命令を示すバイトコード)の組をフラッシュメモリ13における一時保存領域(所定領域の一例)に書き込む。これは、ICカード1aへの電源供給断になった場合でも、アドレスとバイトコードの組が消去しないようにするためである。 As described above, the inspection instruction process shown in FIG. 5A is executed every time the byte code indicating the inspection instruction is read. When the processing of the application is completed, the inspection instruction processing unit writes the address of the byte code indicating the inspection instruction and the byte code indicating the special instruction (or inspection) written in the buffer area in step S5 or S6. A set of byte codes indicating a completed instruction) is written in a temporary storage area (an example of a predetermined area) in the flash memory 13. This is to prevent the address / byte code pair from being erased even when the power supply to the IC card 1a is cut off.
当該アドレスとバイトコードの組の一時保存領域への書き込み後、CPU10は、ICカード1aのリセットタイミングまたはアプリケーションの起動タイミングで、図5(B)に示す置換処理を開始する。図5(B)に示す置換処理では、置換部は、フラッシュメモリ13における一時保存領域を確認し(ステップS11)、当該一時保存領域が全て空き状態であるか否かを判定する(ステップS12)。例えば一時保存領域が全てFFの状態、或いは全て00の状態である場合、当該一時保存領域が全て空き状態であると判定される。置換部は、当該一時保存領域が全て空き状態であると判定した場合(ステップS12:YES)、当該置換処理を終了する。一方、置換部は、当該一時保存領域が全て空き状態でないと判定した場合(ステップS12:NO)、ステップS13へ進む。 After writing the address / byte code pair into the temporary storage area, the CPU 10 starts the replacement process shown in FIG. 5B at the reset timing of the IC card 1a or the application activation timing. In the replacement process shown in FIG. 5B, the replacement unit checks the temporary storage area in the flash memory 13 (step S11), and determines whether or not the temporary storage area is all empty (step S12). . For example, if all the temporary storage areas are in the FF state or all 00 states, it is determined that the temporary storage areas are all empty. When it is determined that the temporary storage area is all empty (step S12: YES), the replacement unit ends the replacement process. On the other hand, when the replacement unit determines that all the temporary storage areas are not empty (step S12: NO), the replacement unit proceeds to step S13.
ステップS13では、置換部は、当該一時保存領域に書き込まれている検査命令を示すバイトコードのアドレス及び特殊命令を示すバイトコード(または、検査済み命令を示すバイトコード)に基づいて、検査命令を示すバイトコードを、特殊命令を示すバイトコード(または、検査済み命令を示すバイトコード)に書き換える。つまり、検査命令を示すバイトコードのアドレスに基づいて、当該検査命令を示すバイトコードのアプリケーションにおける位置が特定され、特定された位置に特殊命令を示すバイトコード(または、検査済み命令を示すバイトコード)が書き込まれる(フラッシュメモリ13に書き込まれる)ことで検査命令を示すバイトコードが書き換えられる。次いで、置換部は、消去処理を行って一時保存領域を空き状態にし(ステップS14)、当該置換処理を終了する。 In step S13, the replacement unit executes the inspection instruction based on the byte code address indicating the inspection instruction written in the temporary storage area and the byte code indicating the special instruction (or the byte code indicating the inspected instruction). The indicated byte code is rewritten to a byte code indicating a special instruction (or a byte code indicating an inspected instruction). That is, based on the address of the byte code indicating the inspection instruction, the position of the byte code indicating the inspection instruction in the application is specified, and the byte code indicating the special instruction at the specified position (or the byte code indicating the inspected instruction) ) Is written (written to the flash memory 13), the byte code indicating the inspection instruction is rewritten. Next, the replacement unit performs an erasing process to make the temporary storage area empty (step S14), and ends the replacement process.
図6は、検査命令を示すバイトコードが置換される前と後のアプリケーションを示す概念図である。図6の例では、説明の便宜上、ソースコードで記述されているが、実際にはバイトコードで記述される。図6(A)の例は、初期(インストール時)のアプリケーションを示し、図6(B)の例は、1回目の実行後のアプリケーションを示し、図6(C)の例は、2回目の実行後のアプリケーションを示す。図6(A),(B)に示すように、初期に対して1回目の実行後のアプリケーションでは、1番目の検査命令(SLOAD_0)が特殊命令(SLOAD_0_1)に置き換えられており(51部)、2番目の検査命令(SLOAD_0)が検査済み命令(SLOAD_0_inspected)に置き換えられている(52部)。これは、上述したようにバッファ領域の上限サイズが設定されているため、当該アプリケーションの1回目の実行では、1番目と2番目の検査命令に係る2組分のデータがバッファ領域に書き込まれることで3番目以降の検査命令が取得されたときには、バッファ領域に空きが無い(ステップS2:NO)と判定されるためである。このため、図6(B),(C)に示すように、1回目の実行後に対して2回目の実行後のアプリケーションでは、3番目の検査命令(SLOAD_0)が特殊命令(SLOAD_0_1)に置き換えられており(53部)、4番目の検査命令(SLOAD_0)が検査済み命令(SLOAD_0_inspected)に置き換えられている(54部)。このようにバッファ領域の上限サイズを設定することで、一度に置き換える上限値を定め、また、リセットの直後といったタイミングで更新することにより、1つのアプリケーションに検査命令が集中していた場合であっても、アプリケーションの実行処理速度が遅くなることを回避し、ICチップ1aにおけるコマンド処理を迅速に実行させることができるとともに、アプリカーションが実行される度に特殊命令が増えていくので、アプリケーションが実行される回数に応じてアプリケーションの実行処理速度を速くしていくことができる。ただし、例えば、アプリケーションの実行処理速度が要求されない環境においては、バッファ領域を設けずに、逐次、バイトコードを置き換えるように構成しても構わない。 FIG. 6 is a conceptual diagram showing an application before and after the byte code indicating the inspection instruction is replaced. In the example of FIG. 6, for convenience of explanation, it is described in source code, but is actually described in byte code. The example in FIG. 6A shows an initial (installation) application, the example in FIG. 6B shows an application after the first execution, and the example in FIG. 6C shows the second application. Indicates the application after execution. As shown in FIGS. 6A and 6B, in the application after the first execution with respect to the initial stage, the first check instruction (SLOAD_0) is replaced with a special instruction (SLOAD_0_1) (51 copies). The second inspection instruction (SLOAD_0) is replaced with the inspected instruction (SLOAD_0_inspected) (52 copies). As described above, since the upper limit size of the buffer area is set as described above, two sets of data related to the first and second check instructions are written to the buffer area in the first execution of the application. This is because when the third and subsequent inspection instructions are acquired, it is determined that there is no space in the buffer area (step S2: NO). Therefore, as shown in FIGS. 6B and 6C, in the application after the second execution, the third check instruction (SLOAD_0) is replaced with a special instruction (SLOAD_0_1) after the first execution. (53 parts), the fourth inspection instruction (SLOAD_0) is replaced with the inspected instruction (SLOAD_0_inspected) (54 parts). By setting the upper limit size of the buffer area in this way, the upper limit value to be replaced at one time is determined, and updating is performed at a timing such as immediately after reset, so that inspection instructions are concentrated in one application. However, it is possible to avoid slowing down the execution processing speed of the application, and to quickly execute the command processing in the IC chip 1a, and the number of special instructions increases each time the application carnation is executed. The execution processing speed of the application can be increased according to the number of times of execution. However, for example, in an environment where the execution processing speed of the application is not required, the byte code may be sequentially replaced without providing a buffer area.
また、図6(B),(C)に示すように、検査命令(SLOAD_0)と連続した非検査命令(SLOAD_1)はアプリケーションに残っている。しかし、この非検査命令(SLOAD_1)は、上述したように、当該特殊命令のプログラムカウンタ更新の際に飛ばされるため、以降読み出されることは無い。なお、アプリケーションにおいて読み出されなくなった命令を詰めることも可能ではあるが、上述した本実施形態によれば、当該命令を詰める処理及びメソッドのサイズを減らす処理などの書き込み処理を低減でき、その結果、処理時間を低減し、書き込み保証機能(Transaction)のバッファサイズを低減することができる。 Further, as shown in FIGS. 6B and 6C, the non-inspection instruction (SLOAD_1) continued from the inspection instruction (SLOAD_0) remains in the application. However, since the non-inspection instruction (SLOAD_1) is skipped when the program counter of the special instruction is updated as described above, it is not read out thereafter. Although it is possible to pack instructions that are no longer read in the application, according to the above-described embodiment, it is possible to reduce write processing such as processing to pack the commands and processing to reduce the size of the method, and as a result. The processing time can be reduced, and the buffer size of the write guarantee function (Transaction) can be reduced.
また、図6(B),(C)に示すように、検査命令(SLOAD_0)が特殊命令(SLOAD_0_1)に置き換えられなくとも、検査済み命令(SLOAD_0_inspected)に置き換えることにより、当該アプリケーションの2回目以降の実行中に取得されたバイトコードが、検査済み命令を示すバイトコードであるとき、当該検査済み命令に応じた通常の処理が実行されるが、検査命令と連結させる非検査命令を示すバイトコードであるか否かの判定が行われることなく、次の命令に応じた処理に移行される。このため、重複した置換処理が行われることを回避することができる。 In addition, as shown in FIGS. 6B and 6C, even if the inspection instruction (SLOAD_0) is not replaced with the special instruction (SLOAD_0_1), the inspection instruction (SLOAD_0_inspected) is replaced with the second and subsequent times of the application. When the bytecode obtained during execution of is a bytecode indicating a checked instruction, normal processing is executed according to the checked instruction, but a bytecode indicating a non-check instruction to be linked with the check instruction Without determining whether or not, the process proceeds to processing according to the next instruction. For this reason, it is possible to avoid duplicated replacement processing.
以上説明したように、上記実施形態によれば、ICチップ1aは、インストールされたアプリケーションに記述された複数のバイトコードのうちから取得されたバイトコードが、検査命令を示すバイトコードであるとき、当該バイトコードに対して実行順が連続する他のバイトコードが、当該検査命令と連結させる非検査命令を示すバイトコードであるか否かを判定し、他のバイトコードが当該非検査命令を示すバイトコードである場合、当該アプリケーションにおいて、当該検査命令を示すバイトコードを、当該検査命令を示すバイトコード及び当該非検査命令を示すバイトコードに対応付けられた特殊命令を示すバイトコードに書き換えるように構成したので、リソースが少ない環境で、アプリケーションを解析、最適化し、パフォーマンスを向上させることができる。また、図5(A)を用いて説明したように検査命令処理をアプリケーションの処理期間中(つまり、アプリケーション実行中)に実行するように構成することで、動的に効率良くアプリケーションを最適化することができる。 As described above, according to the above-described embodiment, the IC chip 1a has the byte code acquired from the plurality of byte codes described in the installed application as the byte code indicating the inspection instruction. It is determined whether another byte code whose execution order is continuous with respect to the byte code is a byte code indicating a non-inspection instruction to be linked to the inspection instruction, and the other byte code indicates the non-inspection instruction. If it is a byte code, the application may rewrite the byte code indicating the inspection instruction into a byte code indicating a special instruction associated with the byte code indicating the inspection instruction and the byte code indicating the non-inspection instruction. Now that you have configured your application in a low resource environment, It is possible to improve the scan. Further, as described with reference to FIG. 5A, the configuration is such that the inspection command processing is executed during the processing period of the application (that is, during execution of the application), thereby optimizing the application dynamically and efficiently. be able to.
1 ICカード
2 外部端末
1a ICチップ
10 CPU
11 ROM
12 RAM
13 フラッシュメモリ
14 I/O回路
1 IC Card 2 External Terminal 1a IC Chip 10 CPU
11 ROM
12 RAM
13 Flash memory 14 I / O circuit
Claims (8)
前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
前記アプリケーションに記述された複数の前記識別番号のうちから取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定する検査命令処理手段と、
前記検査命令処理手段により前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換える書換手段と、
を備えることを特徴とする電子情報記憶媒体。 A nonvolatile memory for storing an application describing an identification number indicating each of a plurality of instructions selected from a plurality of types of instructions defined for creating an application, and the identification numbers described in the application in the order of execution An electronic information storage medium comprising: execution means for acquiring and executing processing according to the instruction indicated by the acquired identification number;
The non-volatile memory includes an identification number indicating a first instruction selected as an inspection target from among the plurality of types of instructions, and an identification number indicating one or more second instructions to be linked to the first instruction. And an identification number indicating a third instruction obtained by concatenating the first instruction and the second instruction in association with each other,
When the identification number acquired from among the plurality of identification numbers described in the application is an identification number indicating the first instruction, the other execution sequence that is consecutive with respect to the identification number A test instruction processing means for determining whether the identification number is an identification number indicating the second instruction to be linked to the first instruction;
When it is determined by the inspection instruction processing means that the other identification number is an identification number indicating the second instruction, in the application, an identification number indicating the first instruction is assigned to the first instruction. Rewriting means for rewriting the identification number indicating the third instruction associated with the identification number indicating the second instruction and the identification number indicating the second instruction;
An electronic information storage medium comprising:
前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号であると判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、前記不揮発性メモリにおいて当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第3の命令を示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第3の命令を示す識別番号に書き換えることを特徴とする請求項2に記載の電子情報記憶媒体。 The electronic information storage medium includes a volatile memory for temporarily storing data, and in the volatile memory, a buffer area set to a capacity smaller than the size of the entire application is set,
When the inspection command processing means determines that the other identification number is an identification number indicating the second command, specific information that can identify the position of the identification number indicating the first command in the application And an identification number indicating the third instruction associated with an identification number indicating the first instruction and an identification number indicating the second instruction in the nonvolatile memory, and writing the application to the buffer area When the process is completed, the specific information written in the buffer area and the identification number are written in a predetermined area in the nonvolatile memory,
The rewriting means outputs the first instruction based on the specific information written in the predetermined area and the identification number indicating the third instruction at a reset timing of the electronic information storage medium or an application activation timing. The electronic information storage medium according to claim 2, wherein the identification number indicated is rewritten to an identification number indicating the third instruction.
前記検査命令処理手段は、前記他の前記識別番号が前記第2の命令を示す識別番号でないと判定した場合、前記第1の命令を示す識別番号の前記アプリケーションにおける位置を特定可能な特定情報と、当該第1の命令を示し且つ検査済であることを示す識別番号とを前記バッファ領域に書き込み、前記アプリケーションの処理が終了した場合、前記バッファ領域に書き込まれた前記特定情報及び前記識別番号を前記不揮発性メモリにおける所定領域に書き込み、
前記書換手段は、前記電子情報記憶媒体のリセットタイミングまたはアプリケーションの起動タイミングで、前記所定領域に書き込まれた前記特定情報及び前記第1の命令を示し且つ検査済であることを示す識別番号に基づいて、前記第1の命令を示す識別番号を、前記第1の命令を示し且つ検査済であることを示す識別番号に書き換えることを特徴とする請求項2に記載の電子情報記憶媒体。 The electronic information storage medium includes a volatile memory for temporarily storing data, and in the volatile memory, a buffer area set to a capacity smaller than the size of the entire application is set,
The inspection command processing means, when it is determined that the other identification number is not an identification number indicating the second command, specific information capable of specifying a position in the application of the identification number indicating the first command; The identification number indicating the first instruction and indicating that it has been inspected is written in the buffer area, and when the processing of the application is completed, the specific information and the identification number written in the buffer area are Writing to a predetermined area in the non-volatile memory;
The rewriting means indicates the specific information and the first instruction written in the predetermined area at the reset timing of the electronic information storage medium or the start timing of the application, and based on an identification number indicating that it has been inspected. The electronic information storage medium according to claim 2, wherein the identification number indicating the first instruction is rewritten to an identification number indicating the first instruction and indicating that the inspection has been completed.
前記不揮発性メモリは、前記複数種類の命令の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
前記アプリケーションに記述された複数の前記識別番号のうちから取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定し、
前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換えることを特徴とするアプリケーション置換方法。 A nonvolatile memory for storing an application describing an identification number indicating each of a plurality of instructions selected from a plurality of types of instructions defined for creating an application, and the identification numbers described in the application in the order of execution An application replacement method in an electronic information storage medium comprising execution means for acquiring and executing processing according to the instruction indicated by the acquired identification number,
The non-volatile memory includes an identification number indicating a first instruction selected as an inspection target from among the plurality of types of instructions, and an identification number indicating one or more second instructions to be linked to the first instruction. And an identification number indicating a third instruction obtained by concatenating the first instruction and the second instruction in association with each other,
When the identification number acquired from among the plurality of identification numbers described in the application is an identification number indicating the first instruction, the other execution sequence that is consecutive with respect to the identification number Determining whether the identification number is an identification number indicating the second instruction to be linked to the first instruction;
When it is determined that the other identification number is an identification number indicating the second instruction, in the application, an identification number indicating the first instruction, an identification number indicating the first instruction, and the An application replacement method comprising rewriting an identification number indicating the third instruction associated with an identification number indicating a second instruction.
前記不揮発性メモリは、前記複数種類の命令群の中から検査対象として選定された第1の命令を示す識別番号と、当該第1の命令と連結させる1つ以上の第2の命令を示す識別番号と、前記第1の命令と前記第2の命令とを連結した第3の命令を示す識別番号と、を対応付けて記憶し、
前記プログラムは、さらに、前記コンピュータを、
前記アプリケーションに記述された複数の前記識別番号のうちから取得された前記識別番号が、前記第1の命令を示す識別番号であるとき、当該識別番号に対して前記実行順が連続する他の前記識別番号が、当該第1の命令と連結させる前記第2の命令を示す識別番号であるか否かを判定し、
前記他の前記識別番号が前記第2の命令を示す識別番号であると判定された場合、前記アプリケーションにおいて、前記第1の命令を示す識別番号を、当該第1の命令を示す識別番号及び当該第2の命令を示す識別番号に対応付けられた前記第3の命令を示す識別番号に書き換えるように機能させることを特徴とするプログラム。 An electronic information storage medium comprising: a non-volatile memory for storing an application describing an identification number indicating each of a plurality of instructions selected from a plurality of kinds of instructions defined for creating an application; and a computer. A program that acquires the identification numbers described in the application in the order of execution and functions as an execution unit that executes processing according to the command indicated by the acquired identification number,
The nonvolatile memory has an identification number indicating a first instruction selected as an inspection target from the plurality of types of instruction groups, and an identification indicating one or more second instructions to be linked to the first instruction. A number and an identification number indicating a third instruction obtained by concatenating the first instruction and the second instruction in association with each other;
The program further causes the computer to
When the identification number acquired from among the plurality of identification numbers described in the application is an identification number indicating the first instruction, the other execution sequence that is consecutive with respect to the identification number Determining whether the identification number is an identification number indicating the second instruction to be linked to the first instruction;
When it is determined that the other identification number is an identification number indicating the second instruction, in the application, an identification number indicating the first instruction, an identification number indicating the first instruction, and the A program for causing a function to be rewritten to an identification number indicating the third instruction associated with an identification number indicating a second instruction.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015029357A JP6447219B2 (en) | 2015-02-18 | 2015-02-18 | Electronic information storage medium, application replacement method, program, and IC card |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015029357A JP6447219B2 (en) | 2015-02-18 | 2015-02-18 | Electronic information storage medium, application replacement method, program, and IC card |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016151914A true JP2016151914A (en) | 2016-08-22 |
JP6447219B2 JP6447219B2 (en) | 2019-01-09 |
Family
ID=56695454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015029357A Active JP6447219B2 (en) | 2015-02-18 | 2015-02-18 | Electronic information storage medium, application replacement method, program, and IC card |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6447219B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002312177A (en) * | 2001-04-18 | 2002-10-25 | Nec Corp | Interpreter high-speed execution device and method for executing interpreter at high speed used therefor |
JP2003202995A (en) * | 2001-10-31 | 2003-07-18 | Aplix Corp | Intermediate code preprocessing apparatus, intermediate code execution system, intermediate code preprocessing program and intermediate code execution program |
-
2015
- 2015-02-18 JP JP2015029357A patent/JP6447219B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002312177A (en) * | 2001-04-18 | 2002-10-25 | Nec Corp | Interpreter high-speed execution device and method for executing interpreter at high speed used therefor |
JP2003202995A (en) * | 2001-10-31 | 2003-07-18 | Aplix Corp | Intermediate code preprocessing apparatus, intermediate code execution system, intermediate code preprocessing program and intermediate code execution program |
Also Published As
Publication number | Publication date |
---|---|
JP6447219B2 (en) | 2019-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6355699B2 (en) | Writing data in the smart card's non-volatile memory | |
JP5457496B2 (en) | Memory management of portable data storage media | |
US20060080655A1 (en) | System and method for post-issuance code update employing embedded native code | |
JP5225054B2 (en) | IC card | |
US6779732B2 (en) | Method and apparatus for linking converted applet files | |
JP4896842B2 (en) | Portable electronic device | |
JP6447219B2 (en) | Electronic information storage medium, application replacement method, program, and IC card | |
JP6798157B2 (en) | Electronic information storage medium, anomaly detection method, and anomaly detection program | |
CN101840520B (en) | Intelligent card and method for accessing flash memory of intelligent card | |
JP2006338311A (en) | Computer system for processing device loaded with multiple applications, device and computer program | |
JP6201521B2 (en) | Information storage medium, bytecode execution method, and program for information storage medium | |
JP2018060455A (en) | Electronic information storage medium, command processing method, and command processing program | |
JP7021465B2 (en) | Electronic information storage device, IC card, data recovery method, and data recovery program | |
JP2010211516A (en) | Portable electronic device and access control method in the same | |
CN107743614B (en) | Method for modifying the execution of a platform-independent method for an integrated circuit card | |
JP2006293706A (en) | Multi-application ic card with application updating function | |
JP2016153945A (en) | Electronic information storage medium, counter rewriting method and counter rewriting program | |
JP7040053B2 (en) | Information processing method and OS using electronic information storage medium, IC card, electronic information storage medium | |
JP5943036B2 (en) | Information processing apparatus, information processing method, and program | |
JP6984328B2 (en) | Electronic information storage medium, IC card, external device, data writing method and data writing program | |
JP6915338B2 (en) | IC card | |
JP4810108B2 (en) | IC card and control method thereof | |
JP2007034434A (en) | Ic card, method for writing data to ic card, and ic card program | |
JP2018014014A (en) | Electronic information storage medium, information processing method, and information processing program | |
JP6428003B2 (en) | Writing apparatus, writing method, writing processing program, and information storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180820 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180828 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181029 |
|
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: 20181106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181119 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6447219 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |