JP2012088909A - Converter and conversion method - Google Patents

Converter and conversion method Download PDF

Info

Publication number
JP2012088909A
JP2012088909A JP2010234673A JP2010234673A JP2012088909A JP 2012088909 A JP2012088909 A JP 2012088909A JP 2010234673 A JP2010234673 A JP 2010234673A JP 2010234673 A JP2010234673 A JP 2010234673A JP 2012088909 A JP2012088909 A JP 2012088909A
Authority
JP
Japan
Prior art keywords
instruction
native code
register
code
dalvik
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.)
Pending
Application number
JP2010234673A
Other languages
Japanese (ja)
Inventor
Shinobu Miwa
Hironori Nakajo
Atsushi Ota
忍 三輪
拓伯 中條
淳 太田
Original Assignee
Tokyo Univ Of Agriculture & Technology
国立大学法人東京農工大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Univ Of Agriculture & Technology, 国立大学法人東京農工大学 filed Critical Tokyo Univ Of Agriculture & Technology
Priority to JP2010234673A priority Critical patent/JP2012088909A/en
Publication of JP2012088909A publication Critical patent/JP2012088909A/en
Application status is Pending legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a converter and a conversion method for reducing a memory access.SOLUTION: A converter includes: a storage part for storing a register type byte code fetched from a memory; a first storage part for storing the template of a native code corresponding to the instruction code of the byte code; an instruction creation part for extracting the byte code from the storage part, and for creating one or more native codes corresponding to the byte code by using the template of the native code stored in the first storage part; and a second storage part for storing data showing a correspondence relation between a physical register and a register on the memory for storing the data corresponding to the data stored in the physical register based on the native code created by the instruction creation part. The instruction creation part omits the creation of the native code when it is determined that the created native code is a load instruction relating to the register on the memory included in the data stored in the second storage part.

Description

本発明は、レジスタ形式のバイトコードをネイティブコードに変換する変換器及び変換方法の技術に関する。 The present invention relates to techniques converter and conversion method for converting a byte code register format to native code.

近年、Google(登録商標)社の携帯情報端末向けプラットフォームAndroid(登録商標)を搭載した携帯電話が急速に普及している。 In recent years, mobile phones have spread rapidly equipped with Google (registered trademark) of the portable information terminal platform for Android (registered trademark). このような携帯電話で実行されるアプリケーションは、ポータビリティを高めるため、通常は、Java(登録商標)などの特定のコンピュータ及びオペレーティングシステムに依存しないプログラム言語により作成される。 Applications running on such a phone, to enhance the portability and is typically created by a program language which does not depend on a particular computer and operating system, such as Java (registered trademark). 当該プログラム言語では、すべてのプログラムは一度、中間言語であるバイトコードにコンパイルされる。 In the program language, all programs once, is compiled into bytecodes an intermediate language. Androidで採用されているバイトコードは、Javaバイトコードなどとは異なり、メモリ上に存在するレジスタ(領域)を直接指定して演算を行う、という特徴をもつ。 Bytecode employed by Android, unlike such as Java byte code, specify a register (area) existing in the memory directly performs an arithmetic operation, with the feature that. このようなバイトコードは、レジスタ形式のバイトコードと呼ばれている。 Such bytecode is called a byte code register format.

バイトコードは、特定のコンピュータ及びオペレーティングシステムに依存しないため、それを解釈及び実行できる環境があれば、任意のプロセッサ上で実行される。 Byte code does not depend on a particular computer and operating system, if any environment capable of interpreting it and run and executed on any processor. 通常、VM(Virtual Machine)が、バイトコードを逐次解釈し、実行する。 Normal, VM (Virtual Machine) is, sequentially interpret the byte code, to run.

このようなバイトコードの実行は、VMを介して行われるため、機械語で表されたネイティブコード(オブジェクトプログラムまたはオブジェクトコードとも呼ばれる)の実行と比べて遅い。 Performing such bytecode to be done via the VM, slower than the execution of the native code expressed in machine language (also called an object program or object code). そのため、バイトコードの実行を高速化する様々な手法がこれまでに提案されてきた。 Therefore, various methods to speed up the execution of the byte code have been proposed so far. 当該手法を開示する文献として、以下の非特許文献1が挙げられる。 As document disclosing the method include Non-Patent Document 1 below.

非特許文献1には、例えば、プロセッサの一部に、Javaバイトコードをネイティブコードに変換できるハードウェア(アクセラレータ)を追加することにより、バイトコードの実行を高速化する手法が開示されている。 Non-Patent Document 1, for example, a part of the processor, by adding hardware that can convert Java bytecodes into native code (accelerator) method to speed up the execution of the bytecode is disclosed. このようなアクセラレータが追加されることにより、バイトコードはネイティブコードに変換されるため、プロセッサは、VM等のソフトウェアを介さず、直接バイトコードを解釈及び実行することができるようになる。 By such accelerators are added, since the byte code is converted to native code, the processor, not through the software, such as VM, it is possible to interpret and execute directly bytecode. これによって、VM等のソフトウェアを介することによるオーバヘッドが削減される。 Thus, the overhead due to the through software, such as VM can be reduced.

しかしながら、上記非特許文献1において開示される技術により単純に実装されたアクセラレータは、レジスタ形式のバイトコードの場合、バイトコードの各オペランドがメモリ上に存在するため、多数のストア命令及びロード命令に関するネイティブコードを発行してしまう。 However, Non-Patent Document 1 simply implemented accelerator by the techniques disclosed in the case of bytecode register format, since the byte code each operand are present in the memory, for a number of store instruction and the load instruction resulting in issuing the native code. そのため、メモリアクセスの効率が悪い。 Therefore, the poor efficiency of memory access.

本発明は、このような点を考慮してなされたものであり、メモリアクセスを削減する変換器及び変換方法を提供することを目的とする。 The present invention has been made in consideration of these points, and an object thereof is to provide a converter and conversion method to reduce the memory access.

本発明は、上述した課題を解決するために、以下の構成を採用する。 The present invention, in order to solve the problems described above, adopts the following configurations.

すなわち、本発明の変換器は、メモリからフェッチしたレジスタ形式のバイトコードを保持する保持部と、バイトコードの命令コードに対応したネイティブコードのひな形を格納する第1記憶部と、保持部に保持されているバイトコードを取り出し、第1記憶部に格納されているネイティブコードのひな形を用いて、当該バイトコードに対応する1または複数のネイティブコードを作成する命令作成部と、物理レジスタの番号と、命令作成部が作成したネイティブコードにより当該番号の物理レジスタに格納されたデータに対応するデータを格納するメモリ上のレジスタの番号との対応関係を示すデータを格納する第2記憶部と、を備え、命令作成部は、作成するネイティブコードが、第2記憶部に格納されたメモリ上のレジスタの番号によ That is, the transducer of the present invention includes a first storage unit for storing a holding portion for holding the bytecode register format fetched from memory, the native code template that corresponds to the instruction code bytecode, the holding portion taking out byte code stored, using a model of native code stored in the first storage unit, an instruction generating unit configured to generate one or more native code corresponding to the byte code, the physical register number and a second storage unit for storing data indicating the correspondence between the number of registers in the memory for storing the native code by corresponding to the data stored in the physical register of the number data instruction creation unit creates comprises, instruction creation unit native code to be created, the number of registers in the memory stored in the second storage unit て特定されるアドレスに関するロード命令であると判定した場合、当該ネイティブコードの作成を省略することを特徴とする。 If it is determined that the load instruction related address specified Te, characterized by omitting the creation of the native code.

上記構成によれば、命令作成部は、第2記憶部に格納されたメモリ上のレジスタの番号によって特定されるアドレスに関するロード命令に関するネイティブコードの作成を省略する。 According to the above configuration, the instruction creation unit omits the creation of native code for the load instruction related address specified by the register number in the memory stored in the second storage unit. したがって、上記構成によれば、一部のロード命令に関するネイティブコードの発行が省かれるため、メモリアクセスを削減することができる。 Therefore, according to the above arrangement, since the issuance of the native code is omitted for some of the load instruction, it is possible to reduce the memory access.

また、上記命令作成部は、ネイティブコードを作成する際に必要な物理レジスタの番号を、第2記憶部に格納されたデータに含まれる物理レジスタの番号を用いて特定してもよい。 Further, the instruction creation unit, the number of physical registers needed to create native code may be identified using a number of physical registers contained in data stored in the second storage unit.

また、上記命令作成部は、作成するネイティブコードがメモリ上のレジスタに関するストア命令であると判定した場合、当該ネイティブコードの作成を省略してもよい。 Further, the instruction preparation unit, when the native code to create is determined to be a store instruction relating to the register in the memory may be omitted to create a the native code.

上記構成によれば、命令作成部は、メモリ上のレジスタに関するストア命令に関するネイティブコードの作成を省略する。 According to the above configuration, the instruction creation unit omits the creation of native code for store instructions related to the register in memory. したがって、上記構成によれば、一部のストア命令に関するネイティブコードの発行が省かれるため、メモリアクセスを削減することができる。 Therefore, according to the above arrangement, since the issuance of the native code is omitted for some store instruction, it is possible to reduce the memory access.

また、上記命令作成部は、物理レジスタを割り当てるネイティブコードのひな形を第1記憶部から取得した時、バイトコードに含まれるメモリ上のレジスタの番号と、当該アドレスに割り当てる物理レジスタの番号との対応関係を示すデータを作成し、当該データを第2記憶部に格納してもよい。 Further, the instruction preparation unit, when the model of native code acquired from the first storage unit to assign a physical register, and number of registers in the memory contained in the bytecode, the number of the physical registers to be allocated to the address create data indicating the correspondence relationship may be stored the data in the second storage unit.

上記構成によれば、命令作成部により作成されるネイティブコードにより対応付けられる物理レジスタとメモリ上のレジスタの番号との対応関係が第2記憶部に格納される。 According to the above configuration, the correspondence between the number of registers on the physical registers and memory which is associated with the native code created by the instruction preparation unit is stored in the second storage unit. つまり、第2記憶部は、ネイティブコードの実行状態に対応した、メモリ上のレジスタの番号と物理レジスタの番号との対応関係を示すデータが格納される。 That is, the second storage unit, corresponding to the execution state of the native code, data indicating the correspondence between the number of number and the physical registers of the register on the memory is stored. これにより、命令作成部は、ネイティブコードの実行状態に対応して、ロード命令に関するネイティブコードの作成を省略することができる。 Thus, the instruction preparation unit may correspond to the execution state of the native code, omitting the creation of native code for the load instruction.

また、上記命令作成部は、所定の時点において、第2記憶部に格納されているデータを削除し、当該削除するデータに含まれる番号の物理レジスタに格納されたデータを、当該削除するデータに含まれるメモリ上のレジスタの番号によって特定されるアドレスに書き込むストア命令のネイティブコードを作成してもよい。 Further, the instruction preparation unit, at predetermined time points, remove the data stored in the second storage unit, the data stored in the physical register number included in the data to the deletion, the data to be the deletion it may create a native code store instruction to be written to the address specified by the register number in the memory included.

上記構成によれば、メモリ上のレジスタの番号と物理レジスタの番号との対応関係を示すデータが削除される時に、物理レジスタに格納されたデータを、対応するメモリ上のレジスタの番号によって特定されるアドレスにストアすることができる。 According to the above arrangement, when the data indicating the correspondence between the number of number and the physical registers of the register in the memory is deleted, the data stored in the physical register data, identified by the number of registers on corresponding memory it can be stored in that address.

また、本発明の変換方法は、メモリからフェッチしたレジスタ形式のバイトコードを保持するステップと、保持したバイトコードを取り出し、バイトコードの命令コードに対応したネイティブコードのひな形を格納する第1記憶部に格納されているネイティブコードのひな形を用いて、当該バイトコードに対応する1または複数のネイティブコードを作成するネイティブコード作成ステップと、物理レジスタの番号と、ネイティブコード作成ステップにより作成されたネイティブコードにより当該番号の物理レジスタに格納されたデータに対応するデータを格納するメモリ上のレジスタの番号との対応関係を示すデータを第2記憶部に格納する記憶ステップと、を含み、ネイティブコード作成ステップでは、作成するネイティブコードが、第 The conversion method of the present invention includes the steps of holding the bytecode register format fetched from memory, retrieves the bytecode held, first memory for storing a model of native code corresponding to the instruction code bytecode using stationery native code stored in the part, the native code generation step of generating one or more native code corresponding to the byte code, the number of the physical registers, created by the native code generation step anda storage step of storing the data in the second storage unit which indicates the correspondence between the number of registers in the memory for storing data corresponding to the stored in the physical register number data by native code, native code the creation step, the native code to be created, the 記憶部に格納されたメモリ上のレジスタの番号に関するロード命令であると判定される場合、当該ネイティブコードの作成が省略されることを特徴とする。 If it is determined that a load instruction regarding number of registers on stored in the storage unit the memory, wherein the creation of the native code is omitted.

なお、本発明の別態様として、FPGA(Field-Programmable Gate Array)に読み込ませることにより以上の各構成を実現するプログラムであってもよい。 As another aspect of the present invention may be a program for realizing each component of the above by loading the FPGA (Field-Programmable Gate Array).

本発明によれば、メモリアクセスを削減する変換器及び変換方法を提供することができる。 According to the present invention, it is possible to provide a converter and conversion method to reduce the memory access.

実施の形態に係る変換器を含むプロセッサの構成を例示する図 Diagram illustrating the configuration of a processor comprising a converter according to the embodiment 実施の形態に係る変換器の構成を例示する図 Diagram illustrating the configuration of a converter according to the embodiment 変換テーブルと命令テーブルの一例を示す図 It illustrates an example of a conversion table and the instruction table DRMTの一例を示す図 It illustrates an example of a DRMT 1つ目の加算命令に関するバイトコードの変換例を示す図 It shows an example of conversion first byte code for the add instruction 2つ目の加算命令に関するバイトコードの変換例を示す図 It shows an example of conversion second byte code for the add instruction

以下、本発明の一側面に係る変換器及び変換方法を、実施の形態(以下、「本実施形態」とも表記する)として説明する。 Hereinafter, the converter and conversion method according to an aspect of the present invention, the embodiment will be described as a (hereinafter, also referred to as "the present embodiment"). ただし、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。 However, the embodiments listed below are exemplifications, and the present invention is not limited to the configurations of the following embodiments.

本実施形態の変換器を含むプロセッサは、その一例としてMIPSプロセッサである。 Processor including a converter of the present embodiment, a MIPS processor as an example. そして、本実施形態の変換器は、レジスタ形式のバイトコードの一例としてDalvikバイトコードを、MIPS命令セットに対応したネイティブコードに変換する。 The converter of the present embodiment converts the Dalvik bytecode as an example of a bytecode register format, the native code corresponding to the MIPS instruction set. Dalvikバイトコードとは、Androidにおいて用いられているJavaの実行モデルで採用されている命令セットである。 The Dalvik bytecode is an instruction set that is used in the Java execution model is used in Android.

なお、MIPS命令セットに対応したネイティブコードの命令長は32ビットである。 Incidentally, the instruction length of the native code corresponding to the MIPS instruction set is 32 bits. これに対して、Dalvikバイトコードの命令長は、可変長であり、最長80ビットである。 In contrast, the instruction length of Dalvik bytecode is variable length, the longest 80 bits. また、Dalvikバイトコードでは、各命令は、Dalvikレジスタに対して演算処理を行う。 Further, in the Dalvik bytecode, each instruction performs an operation process on Dalvik register. ここで、Dalvikレジスタは、物理レジスタを指すものではなく、メモリ上に割り当てられた領域を指す。 Here, Dalvik register is not intended to refer to a physical register, it refers to an area allocated on the memory. そして、当該領域のアドレスは、ベースアドレスと当該Dalvikレジスタの番号とによって特定される。 The address of the area is specified by the number of base address and the Dalvik register. Dalvikバイトコードにおける各命令では、0〜3個のDalvikレジスタをオペランドとして、これらの値を用いた演算が実施される。 Each instruction in Dalvik bytecode, 0-3 Dalvik registers as operands, computation using these values ​​is carried out.

§1 プロセッサの構成例 まず、本実施形態に係る変換器を含むプロセッサの構成例について説明する。 Configuration Example of §1 processor First, a configuration example of a processor including a converter according to the present embodiment. 図1は、本実施形態に係る変換器を含むプロセッサを例示する。 Figure 1 illustrates a processor comprising a converter according to the present embodiment. 図1に示されるとおり、本実施形態に係る変換器1を含むプロセッサ100は、変換器1、フェッチャ2、ステータスレジスタ3、ネイティブデコーダ4、演算装置5、及び物理レジスタ6を備える。 As shown in FIG. 1, a processor 100 including a converter 1 according to this embodiment includes the transducer 1, fetcher 2, status register 3, native decoder 4, the arithmetic unit 5, and the physical register 6.

フェッチャ2は、メモリ7に格納されたDalvikバイトコードまたはネイティブコードをフェッチする(読み出す)。 Fetcher 2 fetches Dalvik bytecode or native code stored in the memory 7 (read). フェッチしたDalvikバイトコードは、変換器1によってネイティブコードに変換される。 Dalvik bytecode fetched are converted into native code by the transducer 1. そして、変換器1によって変換された又はフェッチャ2が出力したネイティブコードは、ネイティブデコーダ4に入力される。 The native code is converted or Fetcher 2 outputted by the transducer 1 is input to the native decoder 4.

変換器1は、フェッチャ2がフェッチしたDalvikバイトコードをネイティブコードに変換する。 Converter 1 converts the Dalvik bytecode fetcher 2 fetches native code. 詳細は「§2 変換器の構成例」に後述する。 Details will be described later in "configuration example of §2 converter".

ステータスレジスタ3は、Dalvikバイトコードによる命令実行モードか、ネイティブコードによる命令実行モードかを特定する識別子を格納する。 Status register 3 or the instruction execution mode by Dalvik bytecode, stores an identifier for identifying whether the instruction execution mode by native code. このステータスレジスタ3により、上述したネイティブデコーダ4に入力されるネイティブコードの入力元が特定される。 The status register 3, the input source of native code to be input to the native decoder 4 described above are identified. ステータスレジスタ3は、例えば、ネイティブコードによる命令実行モードにおいて、演算装置5が行う所定の演算処理により、その格納する識別子をDalvikバイトコードによる命令実行モードを示す識別子に書き換えられる。 Status register 3, for example, in the instruction execution mode by native code, by a predetermined calculation processing by the arithmetic unit 5 performs rewritten an identifier thereof stored in the identifier indicating the instruction execution mode by Dalvik bytecode. また、ステータスレジスタ3は、例えば、Dalvikバイトコードによる命令実行モードにおいて、変換器1が、フェッチャ2がフェッチしたバイトコードをネイティブコードに変換できなかった時、その格納する識別子をネイティブコードによる命令実行モードを示す識別子に所定の方法によって書き換えられる。 Also, the status register 3, for example, in the instruction execution mode by Dalvik bytecode converter 1, when the fetcher 2 could not be converted bytecode fetched into native code, executable instructions an identifier thereof stored by the native code rewritten by a predetermined method to the identifier indicating the mode. このようにステータスレジスタ3の格納する値が書き換えられることにより、ネイティブデコーダ4にネイティブコードを入力する入力元が切り替えられる。 By thus value to be stored in the status register 3 is rewritten, an input source for inputting a native code natively decoder 4 is switched.

ネイティブデコーダ4は、フェッチャ2または変換器1により入力されるネイティブコードをデコードする。 Native decoder 4 decodes the native code input by the fetcher 2 or transducer 1.

演算装置5及び物理レジスタ6は、ネイティブデコーダ4のデコード結果に基づいて、所定の演算処理を行う。 Arithmetic unit 5 and the physical register 6, based on the decoding result of the native decoder 4 and performs prescribed processing.

なお、これらの構成は、例えば、不図示の制御装置によって制御される。 However, these functions, for example, is controlled by a control device (not shown).

§2 変換器の構成例 次に、本実施形態に係る変換器1の構成例について説明する。 Configuration Example of §2 converter Next, a configuration example of a converter 1 according to this embodiment. 図2は、本実施形態に係る変換器1の構成例を示す。 Figure 2 shows a configuration example of a converter 1 according to this embodiment.

変換器1は、図2に示されるとおり、そのハードウェア構成として、バイトコードバッファ11、命令作成部12、変換テーブル13、命令テーブル14、Dalvik Register Map Table(以下、「DRMT」と表記する)15、を有している。 Converter 1, as shown in FIG. 2, as a hardware configuration, the byte code buffer 11, the instruction creator 12, the conversion table 13, instruction table 14, Dalvik Register Map Table (hereinafter, referred to as "DRMT") It has a 15,.

<バイトコードバッファ11> <Byte code buffer 11>
バイトコードバッファ11は、フェッチャ2がフェッチして出力するDalvikバイトコードを保持する。 Byte code buffer 11 holds the Dalvik bytecode fetcher 2, and outputs the fetched. これにより、後述する命令作成部12は、Dalvikバイトコードを1つ取り出すことが可能となる。 Thus, the instruction creator 12 to be described later, it is possible to take out one Dalvik bytecode.

具体的に説明すると、MIPS命令セットに対応したネイティブコードの命令長は32ビットであるため、フェッチャ2がメモリ7からフェッチするデータ長は32ビットである。 More specifically, the instruction length of the native code corresponding to the MIPS instruction set for a 32-bit, data length fetcher 2 is fetched from the memory 7 is 32 bits. これに対して、Dalvikバイトコードの命令長は、可変長であり、最長80ビットである。 In contrast, the instruction length of Dalvik bytecode is variable length, the longest 80 bits. したがって、フェッチャ2は、1回のフェッチでDalvikバイトコードを1つ取り出すことができない場合がある。 Thus, fetcher 2 may not be able to retrieve one Dalvik bytecodes in one fetch. このため、1つのDalvikバイトコードをメモリ7から取り出すためには、フェッチャ2は複数回にわたりデータをフェッチする必要がある。 Therefore, in order to take out one Dalvik bytecodes from memory 7, fetcher 2 needs to fetch data multiple times. バイトコードバッファ11は、主に、このようなデータを保持するために用いられる。 Byte code buffer 11 is primarily used to hold such data. つまり、バイトコードバッファ11は、フェッチャ2が複数回にわたりメモリ7からフェッチしたデータを保持する。 In other words, the byte code buffer 11 holds data fetcher 2 is fetched from the memory 7 multiple times. これにより、後述する命令作成部12は、当該バイトコードバッファ11に保持されたデータからDalvikバイトコードを1つ取り出すことが可能となる。 Thus, the instruction creator 12 to be described later, it is possible to take out one Dalvik byte code from the data held in the byte code buffer 11.

なお、このような命令作成部12の処理を可能にするため、バイトコードバッファ11は、少なくともDalvikバイトコードの最長の命令長である80ビットのデータを保持する。 In order to enable the processing of such instructions creation unit 12, the byte code buffer 11 holds 80-bit data which is the longest instruction length of at least Dalvik bytecode.

<命令作成部12> <Instruction creation unit 12>
命令作成部12は、1つのDalvikバイトコードを、対応する1又は複数のネイティブコード(本実施形態では、MIPS命令列)へと変換する。 Instruction creation portion 12, one Dalvik bytecode (in this embodiment, MIPS instruction sequence) corresponding one or more native code converted to.

具体的には、命令作成部12は、変換テーブル13、及び命令テーブル14から読み出された1または複数のネイティブコードのひな形(MIPS命令列のひな形)と、Dalvikバイトコードから得られたオペランドにより、ネイティブコードを作成し、後続するユニット(本実施形態では、ネイティブデコーダ4)へ出力する。 Specifically, instruction creation unit 12, the conversion table 13, and stationery of one or more native code read out from the instruction table 14 (the template of MIPS instruction sequence) were obtained from Dalvik bytecode the operand create native code (in this embodiment, the native decoder 4) subsequent unit output to. ネイティブコードのひな形は、ネイティブコードのオペコード(命令コード)と、仮のオペランドとを有する。 Stationery native code has a native code opcode (opcode), and a temporary operands. 命令作成部12は、このネイティブコードのひな形に含まれる仮のオペランドを、バイトコードから得られたオペランド等を用いて所定のオペランドに置き換えることにより、ネイティブコードを作成する。 Instruction creation portion 12, by replacing the temporary operands included in template of the native code, a predetermined operand using the obtained operand like from bytecode to create native code. これにより、命令作成部12は、1つのDalvikバイトコードを、対応する1又は複数のネイティブコード(本実施形態では、MIPS命令列)へと変換する。 Thus, the instruction preparation unit 12, one Dalvik bytecode (in this embodiment, MIPS instruction sequence) corresponding one or more native code converted to.

また、命令作成部12は、当該ネイティブコードの作成の際、DRMT15を参照することにより、一部のロード命令に関するネイティブコードの発行を停止する。 The instruction creation unit 12, when the creation of the native code, by referring to the DRMT15, stopping issuing the native code of a portion of the load instruction. 言い換えると、命令作成部12は、DRMT15を参照することにより、一部のロード命令に関するネイティブコードの作成を省略する。 In other words, the instruction preparation unit 12, by referring to the DRMT15, omitted create native code for some of the load instruction. 具体的な処理については後述する。 It will be specifically described later process.

また、命令作成部12は、作成したネイティブコードが物理レジスタをDalvikレジスタに割り当てる命令である場合、当該Dalvikレジスタと物理レジスタの対応関係を示すデータ、具体的にはDalvikレジスタの番号と物理レジスタの番号とを保持するデータ(エントリ)をDRMT15に登録する。 The instruction creation unit 12, the native code generated if an instruction to assign a physical register to Dalvik register, data indicating a correspondence relationship of the Dalvik registers and physical registers, specifically the number and the physical register Dalvik register to register data (entry) to DRMT15 for holding the number. 具体的な処理については後述する。 It will be specifically described later process.

なお、物理レジスタをDalvikレジスタに割り当てる命令として、本実施形態では2つの命令が考えられる。 Incidentally, as an instruction to assign a physical register to Dalvik register, two instructions are contemplated in the present embodiment.

1つ目の命令は、Dalvikレジスタをロードする命令である。 The first instruction is an instruction to load the Dalvik register. 当該命令が実行されると、メモリ上のあるアドレスに格納されているデータ(本実施形態では、Dalvikレジスタに格納されているデータ)が、物理レジスタにロードされる。 When the instruction is executed (in this embodiment, data stored in Dalvik register) data stored in the address in the upper memory is loaded into the physical register. つまり、物理レジスタがDalvikレジスタに割り当てられる。 In other words, the physical register is assigned to Dalvik register. 命令作成部12は、このような命令のネイティブコードのひな形を取得した時、Dalvikレジスタの番号と物理レジスタの番号とを保持するデータ(エントリ)をDRMT15に登録する。 Instruction creation unit 12, when acquiring the stationery native code such instructions, registers data (entries) in DRMT15 for holding the number of number and the physical register Dalvik register.

2つ目の命令は、Dalvikバイトコードのデスティネーションオペランド(Dalvikレジスタ)に物理レジスタを割り当てる命令である。 The second instruction is an instruction to assign a physical register to Dalvik bytecode destination operand (Dalvik register). デスティネーションオペランドとは、そのバイトコードによる演算結果を格納するオペランドであり、Dalvikバイトコードの場合は先頭のオペランドがこれに該当する。 The destination operand is an operand for storing a calculation result of the byte code, in the case of Dalvik bytecode top of operand corresponds to this. このような命令も、上記ロード命令と同様に、物理レジスタがDalvikレジスタに割り当てられる。 Such instructions, as in the above load instruction, the physical register is assigned to Dalvik register. 命令作成部12は、このような命令のネイティブコードのひな形を取得した時、Dalvikレジスタの番号と物理レジスタの番号とを保持するデータ(エントリ)をDRMT15に登録する。 Instruction creation unit 12, when acquiring the stationery native code such instructions, registers data (entries) in DRMT15 for holding the number of number and the physical register Dalvik register. なお、このような命令であることは、 Note that it is such instruction,
変換テーブル13及び命令テーブル14のネイティブコードのひな形を格納するフィールド(後述する、Instフィールド)のデータフラグにより示される。 Field to store a model of native code conversion table 13 and the command table 14 (to be described later, Inst fields) indicated by the data flags. 命令作成部12は、このデータフラグにより、変換テーブル13又は命令テーブル14から取得したネイティブコードのひな形が、Dalvikバイトコードの先頭のオペランド(Dalvikレジスタ)に物理レジスタを割り当てる命令であることを認識する。 Instruction creation unit 12 recognizes that the data flag, the native code of stationery obtained from the conversion table 13 or instruction table 14, an instruction to assign a physical register to Dalvik bytecode top operands (Dalvik register) to.

また、命令作成部12は、変換テーブル13又は命令テーブル14から取得したネイティブコードのひな形がストア命令に関するひな形であって、Dalvikレジスタに対するストア命令のひな形である場合、当該ストア命令のネイティブコードの作成を省略する。 The instruction preparation unit 12, a model regarding model of native code store instruction obtained from the conversion table 13 or instruction table 14, if a template of the store instruction for Dalvik register, native of the store instruction It omitted the creation of the code. つまり、命令作成部12は、Dalvikレジスタに対するストア命令に関するネイティブコードのひな形に対して、オペランドの置き換えを行わず、ネイティブコードの作成をしない。 That is, the instruction creator 12, to the native code stationery relates store instructions for Dalvik register, without replacement of the operand, without the creation of native code. これにより、メモリアクセスが削減される。 Accordingly, memory access is reduced.

なお、本実施形態では、命令作成部12は、特定の時にDalvikレジスタに対するストア命令に関するネイティブコードを作成する。 In the present embodiment, the instruction creator 12 creates a native code for the store instruction to Dalvik register at a particular time. 特定の時とは、後述するDRMT15がDalvikレジスタの番号と物理レジスタの番号とを保持するデータ(エントリ)を削除する時である。 The case specific, it is time to be described later DRMT15 deletes the data (entries) for holding the number of number and the physical register Dalvik register. 命令作成部12は、後述するDRMT15がDalvikレジスタの番号と物理レジスタの番号とを保持するデータ(エントリ)を削除する時、当該物理レジスタに格納されるデータを当該Dalvikレジスタにストアする命令に関するネイティブコードを作成する。 Instruction creation unit 12, when described later DRMT15 is to remove data (entries) for holding the number of number and the physical register Dalvik register, native to the instruction to store the data stored in the physical register to the Dalvik register to create a code.

<変換テーブル13> <Conversion table 13>
変換テーブル13は、例えば、SRAM(Static Random Access Memory)により構成される。 Conversion table 13, for example, a SRAM (Static Random Access Memory). 変換テーブル13は、Dalvikバイトコードのオペコードに対応付けられたネイティブコードのひな形を格納する命令テーブル14へのポインタを格納する。 Conversion table 13 stores a pointer to the instruction table 14 that stores the model of native code associated with the operation code of Dalvik bytecode. また、変換テーブル13は、Dalvikバイトコードのオペコードに対応づけられた1又は複数のネイティブコードのひな形が変換テーブル13又は命令テーブル14に存在するかどうかを示すフラグを格納する。 The conversion table 13 stores a flag indicating whether the model of one or more native code associated with the opcode of Dalvik byte code exists in the conversion table 13 or instruction table 14. 言い換えると、変換テーブル13は、Dalvikバイトコードをネイティブコードに変換可能かどうかを示すフラグを格納する。 In other words, the conversion table 13 stores a flag that indicates whether convert Dalvik bytecode to native code.

ここで、変換テーブル13は、命令作成部12が命令テーブル14を参照してネイティブコードを作成する際のレイテンシの増加を抑えるため、命令テーブル14上の上記対応する1又は複数のネイティブコードのひな形の一部(例えば、数命令分のネイティブコードのひな形)を格納していてもよい。 Here, the conversion table 13, the instruction preparation unit 12 to suppress the increase of the latency in creating native code by referring to the instruction table 14, on the instruction table 14 of the corresponding one or more native code chick some shapes (e.g., native code template having an instruction content) may store. 本実施形態では、1命令分のネイティブコードを格納している。 In the present embodiment, it stores the native code of one instruction.

図3は、変換テーブル13及び後述する命令テーブル14の一例を示す。 Figure 3 shows an example of a conversion table 13 and described later instruction table 14. 図3に示されるとおり、一例としての変換テーブル13の各エントリは、Opフィールドと、Eフィールドと、Instフィールドと、NEXTフィールドと、を含む。 As shown in FIG. 3, each entry in the conversion table 13 as an example includes a Op field, and the E field, and Inst field, and NEXT field, a.

Opフィールドには、当該エントリに対応付けられたDalvikバイトコードのオペコードが格納される。 The Op field, the operation code of Dalvik byte code associated with the entry.

Eフィールドには、Dalvikバイトコードのオペコードに対応づけられた1又は複数のネイティブコードのひな形が変換テーブル13又は命令テーブル14に存在するかどうかを示すフラグが格納される。 The E field flag indicating whether model of one or more native code associated with the opcode of Dalvik byte code exists in the conversion table 13 or instruction table 14 is stored. 本実施形態では、Eフィールドには、オペコードに対応付けられた1又は複数のネイティブコードのひな形が変換テーブル13又は命令テーブル14に存在する場合に「1」が格納され、存在しない場合に「0」が格納される。 In the present embodiment, the E field, if model of one or more native code associated with the opcode "1" is stored when present in the conversion table 13 or instruction table 14, that does not exist " 0 "is stored.

Instフィールドには、1命令分のネイティブコードのひな形が格納される。 The Inst field, native code stationery one instruction is stored. なお、図3では、説明をわかり易くするため自然言語を用いてネイティブコードを表現している(図5及び図6、以下の説明においても同様)。 In FIG. 3, the native code expresses the using natural language for clarity of explanation (FIGS. 5 and 6, also applies to the following description).

NEXTフィールドには、当該ネイティブコードのひな形の次に続く命令(ネイティブコード)のひな形を格納する命令テーブルに含まれる所定のエントリへのポインタが格納される。 The NEXT field, a pointer to a predetermined entries in the instruction table for storing the model of the native code model next sequential instruction of (native code) is stored. なお、次に続く命令のひな形が存在しない場合、NEXTフィールドには、このようなポインタは格納されていない。 Incidentally, if the subsequent instruction stationery is not present, the NEXT field, such pointers are not stored. つまり、次に続く命令のひな形が存在しない場合、当該NEXTフィールドには何も格納されていない。 In other words, if the subsequent instruction stationery does not exist, to the NEXT field nothing is stored.

<命令テーブル14> <Instruction table 14>
命令テーブル14は、例えば、SRAMにより構成される。 Instruction table 14, for example, a SRAM. 命令テーブル14は、Dalvikバイトコードのオペコードに対応づけられた1又は複数のネイティブコードのひな形を格納する。 Command table 14 stores the model of one or more native code associated with the opcode of Dalvik bytecode. 例えば、命令テーブル14は、Dalvikバイトコードのオペコードに対応づけられた複数のネイティブコードのひな形を1つ1つのネイティブコードのひな形毎に実行される順にポインタでつないで格納する。 For example, the instruction table 14 stores by connecting a pointer in order to be executed stationery multiple native code associated with the opcode of Dalvik bytecode for each model of one single native code.

図3に示されるとおり、一例としての命令テーブル14の各エントリは、1命令分のネイティブコードのひな形(図中のInstフィールド)と、当該ネイティブコードのひな形の次に続く命令のひな形を格納する命令テーブルの所定のデータへのポインタ(図中のNEXTフィールド)と、を格納する。 As shown in FIG. 3, each entry in the instruction table 14 as an example, the native code of stationery one instruction (Inst field in the figure), stationery next sequential instruction stationery of the native code a pointer (NEXT field in the figure) to a predetermined command data table storing stores. 上述の変換テーブル13と同様に、次に続く命令のひな形が存在しない場合、当該NEXTフィールドには、このようなポインタは格納されていない。 Similar to the conversion table 13 described above, if the subsequent instruction stationery does not exist, the corresponding NEXT field, such pointers are not stored.

<DRMT15> <DRMT15>
DRMT15は、Dalvikレジスタと物理レジスタ(本実施形態では、物理レジスタ6)との対応関係を管理する。 DRMT15 (in the present embodiment, physical register 6) Dalvik register and physical register to manage the correspondence between the.

Dalvikバイトコードでは、すべてのDalvikレジスタのデータがメモリ上の所定の領域に存在するため、同一のDalvikレジスタに対するロード命令が頻繁に生じうる。 The Dalvik bytecode data for all Dalvik registers to present in a given area of ​​the memory, the load instruction for the same Dalvik register may frequently occur. このDRMT15は、主に、このような頻発するロード命令を削減するために用いられる。 This DRMT15 is mainly used to reduce the load instruction such frequent. つまり、後述するように、このDRMT15により、命令作成部12は、一部のロード命令の作成を省略する。 That is, as described later, this DRMT15, instruction creation unit 12 is omitted to create a portion of the load instruction. これにより、メモリアクセスが削減される。 Accordingly, memory access is reduced.

言い換えると、DRMT15は、不要なネイティブコードの作成を防止するため、既に行われたメモリアクセスを管理する。 In other words, DRMT15, in order to prevent the creation of unnecessary native code, to manage the already performed the memory access. 具体的には、DRMT15は、既に行われたメモリアクセスの管理するため、Dalvikレジスタがどの物理レジスタに対応づけられているかを示す情報を格納する。 Specifically, DRMT15 is to manage the already performed the memory access, stores information indicating whether the associated which physical registers Dalvik register.

図4は、DRMT15の一例を示す。 Figure 4 shows an example of DRMT15. DRMT15は、Dalvikレジスタがどの物理レジスタに対応づけられているかを示す情報として、図4に示される各情報を格納する。 DRMT15 as information indicating whether the associated which physical registers Dalvik register stores each information shown in FIG. DRMT15は、図4に示されるとおり、DMフィールド、Validフィールド、Dirtyフィールド、Timeフィールドを含む。 DRMT15, as shown in FIG. 4, includes DM field, Valid field, Dirty field, the Time field.

DMフィールドには、エントリに対応するDalvikレジスタの番号が格納される。 The DM field, number of Dalvik register corresponding to the entry. 命令作成部12は、Dalvikレジスタがどの物理レジスタに対応づけられているかを示す情報をDRMT15から検索するため、当該DMフィールドに格納されたDalvikレジスタの番号を用いる。 Instruction creation unit 12 for retrieving information indicating whether the associated which physical registers Dalvik register from DRMT15, using the number of the Dalvik register stored in the DM field.

Validフィールドには、エントリが有効であるか否かを示すValidビットが格納される。 The Valid field entry Valid bit indicating whether it is valid is stored. Validビットは、当該エントリが有効であることを「1」で示し、当該エントリが無効であることを「0」で示す。 Valid bit, that the entry is valid indicated by "1", indicates that the entry is invalid in "0".

Dirtyフィールドには、物理レジスタに格納されている値が、対応するDalvikレジスタに格納されている値よりも新しいか否かを示すDirtyビットが格納される。 The Dirty field, the value stored in the physical registers, Dirty bit indicating whether new or not than the corresponding value stored in Dalvik register is stored. Dirtyビットは、物理レジスタに格納されているデータが、対応するDalvikレジスタに格納されているデータよりも新しいことを「1」で示す。 Dirty bits, the data stored in physical registers, indicates that it is more recent than the data stored in the corresponding Dalvik register "1". また、Dirtyビットは、物理レジスタに格納されているデータが対応するDalvikレジスタに格納されているデータよりも新しくない(例えば、同一である)ことを「0」で示す。 Further, Dirty bit indicates not new than the data the data stored in the physical register is stored in the corresponding Dalvik register (e.g., identical) to that in the "0". なお、物理レジスタに格納されているデータが、対応するDalvikレジスタに格納されているデータよりも新しいとは、Dalvikレジスタに格納されているデータが物理レジスタにロードされた後に、所定の演算処理が行われることで、物理レジスタに格納されているデータがDalvikレジスタに格納されているデータと異なった状態を指す。 The data stored in physical registers, new and also than the data stored in the corresponding Dalvik register, after the data stored in Dalvik register is loaded into the physical register, predetermined arithmetic processing by performed, it refers to a state where data stored in the physical register is different from the data stored in Dalvik register. 本実施形態では、命令作成部12が、ストア命令に関するネイティブコードの作成を省略した時に、当該ストア命令に関するDalvikレジスタと同一の番号をDMフィールドに格納するエントリの当該Dirtyフィールドに格納される値を「1」に置き換える。 In the present embodiment, the instruction creation unit 12, when omitting the creation of native code for the store instruction, the value stored in the Dirty field of the entry that stores the same number and Dalvik register regarding the store instruction to the DM field replaced by "1".

Timeフィールドには、DMフィールドに格納された番号のDalvikレジスタに関する処理を命令作成部12が行った時刻を記録するタイムスタンプを格納する。 The Time field stores a time stamp recording the time at which the processing related Dalvik register stored in the DM field number command creation part 12 was performed. なお、本実施形態では、当該Timeフィールドに格納される値は、その値が大きいほど新しい時間を表す。 In the present embodiment, the value stored in the Time field indicates the new time greater the value.

DRフィールドには、DMフィールドに格納された番号のDalvikレジスタに対応する物理レジスタの番号が格納される。 The DR field number of the physical register corresponding to Dalvik register stored in the DM field number is stored.

命令作成部12は、このDRMT15を用いて、Dalvikレジスタと物理レジスタの対応関係を認識する。 Instruction creation portion 12 uses the DRMT15, recognizes the correspondence between the Dalvik registers and physical registers. つまり、命令作成部12は、DRMT15により、物理レジスタが割り当てられているDalvikレジスタの番号を、割り当てられている物理レジスタの番号と共に認識する。 That is, the instruction creator 12, due DRMT15, recognizes the number of Dalvik register physical register is allocated, the number of the physical register assigned.

なお、Dalvikレジスタに割り当てる物理レジスタは、例えば、オペレーティングシステムや所定のアプリケーションのために保持されておらず、自由に用いることができる物理レジスタから選ばれてもよい。 Incidentally, physical registers assigned to Dalvik register, for example, not being retained for the operating system and predetermined applications, may be selected from the physical register can be used freely.

また、Dalvikレジスタに割り当てる物理レジスタの数は任意でよい。 The number of physical registers assigned to Dalvik register may be arbitrary. 本実施形態では、Dalvikレジスタに割り当てることができる物理レジスタの数は12個であるとする。 In the present embodiment, the number of physical registers that can be assigned to Dalvik register is assumed to be 12. そして、物理レジスタの番号は、0番から11番までであるとする。 The number of the physical register is to be from 0 th to 11 th. このため、DRMT15は12のエントリを格納する記憶部である。 Therefore, DRMT15 is a storage unit that stores the 12 entries.

<まとめ> <Summary>
変換器1は、Dalvikバイトコードから1又は複数のネイティブコードを作成する。 Converter 1 generates one or more native code from Dalvik bytecode. この時、変換器1は、一部のロード命令に関するネイティブコードについては、その作成を実行しない。 In this case, the transducer 1, for native code for some of the load instruction does not execute its creation.

なお、バイトコードバッファ11は、本発明に係る「保持部」に相当する。 Note that the byte code buffer 11 corresponds to the "holding part" according to the present invention. また、変換テーブル13及び命令テーブル14は、本発明に係る「第1記憶部」に相当する。 Further, the conversion table 13 and the command table 14 corresponds to the present invention, "first storage portion". さらに、DRMT15は、本発明に係る「第2記憶部」に相当する。 Furthermore, DRMT15 corresponds to the present invention the "second storage portion".

§3 動作例 以下、図5及び図6を用いて、本実施形態に係る変換器1の動作例を説明する。 §3 operation example below, with reference to FIGS. 5 and 6, an operation example of the transducer 1 according to the present embodiment. 図5及び図6は、本実施形態に係る変換器1の動作例を示す。 5 and 6 illustrate an example of the operation of the converter 1 according to this embodiment. 以下、Dalvikレジスタを「Mx(x Below, the Dalvik register "Mx (x
は自然数であり、Dalvikレジスタの番号を示す)」で表す。 It is a natural number indicates the number of the Dalvik register) represented by ". 物理レジスタを「Rx(xは自然数であり、物理レジスタの番号を示す)」で表す。 The physical register "Rx (x is a natural number indicates the number of the physical register)" represented by. 仮の物理レジスタを「DRx(xは自然数であり、仮の物理レジスタの番号を示す)」で表す。 Physical registers of the temporary "DRx (x is a natural number indicates the number of the temporary physical register)" represented by. 仮のDalvikレジスタを「DMy(yは自然数、但し、yは、Dalvikバイトコードのオペランドの番号)」で表す。 The Dalvik register of provisional "DMy (y is a natural number, however, y is, Dalvik byte code of the number of operands)" represented by. 加算命令を「add」で表す。 Represent the addition instruction in the "add". ロード命令を「load」で表す。 Representing the load instruction in the "load". ストア命令を「store」で表す。 Representing the store instruction in the "store". ただし、これらは、より具体的には、それぞれのコードにおける所定の方法で指定される。 However, it is more specifically designated by the predetermined method in each code.

なお、簡単に説明するため、本動作例では、2つの連続する加算命令のDalvikバイトコードを、変換器1がネイティブコードに変換する例を示す。 Incidentally, for easy explanation, in this operation example, an example in which two Dalvik bytecode summing consecutive instructions, the transducer 1 is converted into native code. 2つの連続する加算命令とは、1つ目が「M0, add, M1, M2」(M0 = M1 + M2)であり、2つ目が「M3, add, M2, M0」(M3 = M2 + M0)である。 The two successive addition instruction, one eye "M0, the add, M1, M2" is (M0 = M1 + M2), 2 two eyes "M3, the add, M2, M0 '(M3 = M2 + a M0).

また、本動作例では、当初DRMT15には何も格納されていないものとして、当該2つの加算命令のネイティブコードが作成される処理手順の一例を説明する。 Further, in this operation example, as nothing is stored in the initially DRMT15, illustrating an example of processing procedures which the native code of the two addition instruction is created. 図5は、命令作成部12が1つ目の加算命令「M0, add, M1, M2」のネイティブコードを作成する時の処理手順の一例を示す。 Figure 5 shows an example of a processing procedure when the instruction creation unit 12 to create native code first addition instruction "M0, the add, M1, M2". また、図6は、命令作成部12が2つ目の加算命令「M3, add, M2, M0」のネイティブコードを作成する時の処理手順の一例を示す。 Also, FIG. 6 shows an example of a procedure when creating a native code two instruction creator 12 eyes of the addition instruction "M3, the add, M2, M0". なお、以下ではネイティブコードを1サイクルに1命令ずつ作成および出力することを想定して説明しているが、同一サイクルに複数の命令を作成および出力してもよい。 Note that the native code has been described on the assumption that create and output one instruction per cycle, may create and output a plurality of instructions in the same cycle in the following.

<1つ目の加算命令> <The first add instruction>
図5に示されるとおり、まず、命令作成部12は、バイトコードバッファ11からDalvikバイトコードを1つ分取得する(S100)。 As shown in FIG. 5, first, instruction creation unit 12, one minute to obtain a Dalvik bytecodes from the byte code buffer 11 (S100). 当該取得したDalvikバイトコードは、加算命令「M0, add, M1, M2」である。 Dalvik bytecode The acquisition, the addition instruction "M0, the add, M1, M2" is.

次に、命令作成部12は、取得したDalvikバイトコードのオペコード(add)を参照して、Opフィールドに当該オペコードを格納するエントリが変換テーブル13に存在するかどうかを検索する(S101)。 Next, the instruction preparation unit 12 refers to the operation code (the add) of Dalvik byte code obtained, the entry for storing the operation code to search whether there in the conversion table 13 to the Op field (S101). 本実施形態では、図5に示されるとおり、エントリが検索される。 In the present embodiment, as shown in FIG. 5, an entry is retrieved. なお、命令作成部12は、取得したDalvikバイトコードのオペコードに対応するエントリが変換テーブル13から検索できなかった場合、上記ステータスレジスタ3の格納する識別子をネイティブコードによる命令実行モードを示す識別子に所定の方法によって書き換えてもよい。 Incidentally, the instruction preparation unit 12, if an entry corresponding to the operation code of Dalvik byte code obtained can not be retrieved from the conversion table 13, a predetermined identifier to be stored in the status register 3 the identifier indicating the instruction execution mode by native code it may be rewritten by the way.

次に、命令作成部12は、変換テーブル13から検索したエントリのEフィールドに格納される値を参照し、当該オペコード(add)に対応する1又は複数のネイティブコードのひな形が変換テーブル13又は命令テーブル14に存在するかを判定する(S102)。 Next, the instruction preparation unit 12 refers to the value stored in the E field of the entry retrieved from the conversion table 13, model of one or more native code corresponding to the operation code (the add) the conversion table 13 or determines whether existing in the instruction table 14 (S102). 本実施形態では、図5に示されるとおり、Eフィールドには「1」が格納されているので、オペコード(add)に対応する1又は複数のネイティブコードのひな形が変換テーブル13又は命令テーブル14に存在すると判定される。 In the present embodiment, as shown in FIG. 5, since the E field stores "1", the operation code (the add) template of the corresponding one or more native code conversion table 13 or instruction table 14 It is determined to exist.

次に、命令作成部12は、変換テーブル13から検索したエントリのInstフィールドに格納されている1命令分のネイティブコードのひな形「load DR0, DM2」(ロード命令)を取得する(S103)。 Next, the instruction creator 12 acquires a native code stationery one instruction stored in the Inst field of the entry retrieved from the conversion table 13 'load DR0, DM2 "(load instruction) (S103).

次に、命令作成部12は、取得したひな形である「load DR0, DM2」の仮のオペランドの置き換えを行う(S104、S105)。 Next, the instruction creator 12 performs the replacement of the temporary operand is acquired stationery "load DR0, DM2" (S104, S105). ここで、「load DR0, DM2」の仮のオペランドは、「DR0」と「DM2」である。 Here, temporary operand of "load DR0, DM2" is a "DR0", "DM2".

まず、命令作成部12は、「DM2」に置き換えるオペランドを1つ目の加算命令であるDalvikバイトコード(M0, add, M1, M2)より取得する。 First, the instruction creator 12 acquires from the operand replaced by "DM2" first add instruction a is Dalvik bytecode (M0, add, M1, M2). 「DM2」は、Dalvikバイトコードの2番目のオペランドを指すため、命令作成部12は、「DM2」を、Dalvikバイトコードの2番目のオペランドである「M1」(Dalvikレジスタの1番)に置き換える。 "DM2" is to refer to a second operand of Dalvik bytecode instruction creation unit 12, the "DM2" is replaced with a second operand of Dalvik bytecode "M1" (No. 1 Dalvik register) . 次に、命令作成部12は、DRMT15から、当該DRMT15のDMフィールドに「1」(置き換えたオペランドのDalvikレジスタの番号)を格納したエントリを検索する(S104)。 Next, the instruction creator 12 from DRMT15, searches for an entry storing "1" (number of Dalvik register replacement operands) to the DM field of the DRMT15 (S104).

この時点では、DRMT15には何も格納されていないので、命令作成部12は、DMフィールドに「1」(Dalvikレジスタの1番)を格納したエントリを検索することはできない。 At this point, since the DRMT15 nothing is stored, the instruction creator 12 is "1" (# 1 Dalvik register) can not search for entries stored in the DM field. この場合、命令作成部12は、Dalvikレジスタの割り当てに用いられていない物理レジスタを所定の方法で割り当てる。 In this case, the instruction creator 12 allocates a physical register that is not used for assignment of Dalvik registers in a predetermined manner. 例えば、本実施形態のように、命令作成部12は、Dalvikレジスタに割り当てられていない物理レジスタの中から番号の一番小さい物理レジスタを割り当てる。 For example, as in the present embodiment, the instruction creator 12 allocates the smallest physical register number from the physical registers that are not assigned to Dalvik register. 具体的には、命令作成部12は、「DR0」を「R0」に置き換える。 Specifically, the instruction creation unit 12, replaces the "DR0" to "R0". これにより、命令作成部12は、ネイティブコード「load R0, M1」の作成を完了し、当該作成したネイティブコードをネイティブデコーダ4へ出力する(S105)。 Thus, the instruction preparation unit 12 completes the creation of the native code "load R0, M1", and outputs the native code the created to native decoder 4 (S105).

次に、命令作成部12は、作成したネイティブコード「load R0, M1」に基づいて、DRMT15にエントリを登録する(S106)。 Next, the instruction creator 12, based on the native code "load R0, M1" was created, and registers an entry in DRMT15 (S106). これは、当該ネイティブコード「load R0, M1」が実行されることにより、メモリアクセスが行われ、Dalvikレジスタの1番が物理レジスタの0番に割り当てられることによる。 This can be achieved by the native code "load R0, M1" is executed, the memory access is performed, due to the fact that No. 1 Dalvik register is assigned to No. 0 physical registers. 命令作成部12は、例えば、DMフィールドに「1」、Validフィールドに「1」、Dirtyフィールドに「0」、Timeフィールドに「1」、DRフィールドに「0」を格納したエントリをDRMT15に登録する。 Instruction creation portion 12 registers, for example, "1" to the DM field, "1" in the Valid field, "0" Dirty field, "1" in the Time field, the entry that stores "0" in the DR field DRMT15 to.

S104〜S106の処理により変換テーブル13から取得したひな形である「load DR0, DM2」に関する処理が完了する。 Treatment of S104~S106 a stationery obtained from the conversion table 13 process related "load DR0, DM2" is completed.

次に、命令作成部12は、変換テーブル13から検索したエントリのNEXTフィールドに格納されるポインタを用いて、当該ネイティブコードの次に続く命令のひな形を格納する命令テーブル14の所定のエントリを取得する(S107)。 Next, the instruction preparation unit 12 uses the pointer stored in the NEXT field of the entry retrieved from the conversion table 13, the predetermined entry in the instruction table 14 that stores the model of the next instruction following the said native code to get (S107).

次に、命令作成部12は、命令テーブル14から取得したエントリのInstフィールドからネイティブコードのひな形である「load DR1, DM3」(ロード命令)の仮のオペランドの置き換えを行う(S108、S109)。 Next, the instruction creator 12 performs the replacement of the temporary operands of a stationery native code "load DR1, DM3" (load instruction) from Inst field of the entry retrieved from the instruction table 14 (S108, S109) . ここで、「load DR1, DM3」の仮のオペランドは、「DR1」と「DM3」である。 Here, temporary operand of "load DR1, DM3" is a "DR1", "DM3".

まず、命令作成部12は、「DM3」に置き換えるオペランドを1つ目の加算命令であるDalvikバイトコード(M0 add, M1, M2)より取得する。 First, the instruction preparation unit 12, the operand replaced by "DM3" first add instruction a is Dalvik bytecode (M0 add, M1, M2) are obtained from. 「DM3」は、Dalvikバイトコードの3番目のオペランドを指すため、命令作成部12は、「DM3」を、Dalvikバイトコードの3番目のオペランドである「M2」に置き換える。 "DM3" is to refer to a third operands of Dalvik bytecode instruction creation unit 12, the "DM3", replaced with a third operand in Dalvik bytecode "M2". 次に、命令作成部12は、DRMT15から、当該DRMT15のDMフィールドに「2」を格納したエントリを検索する(S108)。 Next, the instruction creator 12 from DRMT15, searches for an entry storing the "2" to the DM field of the DRMT15 (S108).

この時点では、DRMT15には、DMフィールドに「1」を格納したエントリしか登録されていないので、上記と同様、命令作成部12は、DMフィールドに「2」を格納したエントリを検索することはできない。 At this point, the DRMT15, since only the entry that stores "1" to the DM field not registered, as described above, the instruction preparation unit 12, to find the entry that stores "2" to the DM field Can not. この場合、命令作成部12は、「DR1」を「R1」に置き換える。 In this case, the instruction generating unit 12, replaces the "DR1" to "R1". これにより、命令作成部12は、ネイティブコード「load R1, M2」の作成を完了し、当該作成したネイティブコードをネイティブデコーダ4へ出力する(S109)。 Thus, the instruction preparation unit 12 completes the creation of the native code "load R1, M2", and outputs the native code the created to native decoder 4 (S109).

次に、命令作成部12は、作成したネイティブコード「load R1, M2」に基づいて、DRMT15にエントリ登録をする(S110)。 Next, the instruction creator 12, based on the native code "load R1, M2" was created, the entry registered in DRMT15 (S110). これは、当該ネイティブコード「load R1, M2」が実行されることにより、メモリアクセスが行われ、Dalvikレジスタの2番が物理レジスタの1番に割り当てられることによる。 This can be achieved by the native code "load R1, M2" is executed, the memory access is performed, due to the fact that No. 2 Dalvik register is assigned to the No. 1 physical registers. 命令作成部12は、例えば、DMフィールドに「2」、Validフィールドに「1」、Dirtyフィールドに「0」、Timeフィールドに「2」、DRフィールドに「1」を格納したエントリをDRMT15に登録する。 Instruction creation portion 12 registers, for example, "2" to the DM field, "1" in the Valid field, "0" Dirty field, "2" in the Time field, the entry that stores "1" in the DR field DRMT15 to.

S108〜S110の処理により命令テーブル14から取得したひな形である「load D A stationery acquired from the instruction table 14 by the processing of S108~S110 "load D
R1, DM3」に関する処理が完了する。 R1, DM3 "process on is completed.

次に、命令作成部12は、S107で取得したエントリのNEXTフィールドに格納されるポインタを用いて、当該ネイティブコードの次に続く命令のひな形を格納する命令テーブル14の所定のエントリを取得する(S111)。 Next, the instruction preparation unit 12 uses the pointer stored in the NEXT field of the entry acquired in S107, to acquire the predetermined entry in the instruction table 14 that stores the model of the next instruction following the said native code (S111).

次に、命令作成部12は、命令テーブル14から取得したエントリのInstフィールドからネイティブコードのひな形である「add DR2, DR0, DR1」(加算命令)の仮のオペランドの置き換えを行う(S112、S113)。 Next, the instruction creator 12 performs the replacement of the temporary operands of a stationery native code "the add DR2, DR0, DR1" (add instruction) from Inst field of the entry retrieved from the instruction table 14 (S112, S113). ここで、「add DR2, DR0, DR1」の仮のオペランドは、「DR2」、「DR0」、「DR1」である。 Here, temporary operand of "add DR2, DR0, DR1" is "DR2", "DR0", "DR1". また、当該エントリのInstフィールドには、Dalvikバイトコードの先頭のオペランド(Dalvikレジスタ)に物理レジスタを割り当てる命令であることを示すデータフラグが存在する(不図示)。 In addition, the Inst field of the entry, there is a data flag indicating that the instruction to assign a physical register to Dalvik bytecode top operands (Dalvik register) (not shown).

命令作成部12は、当該データフラグの存在により、まずはDalvikバイトコードの先頭のオペランド「M0」を取得する。 Instruction creation unit 12, the presence of the data flag, first obtains the Dalvik bytecodes top operand of "M0". そして、命令作成部12は、DRMT15から、当該DRMT15のDMフィールドに「0」を格納したエントリを検索する(S112)。 The instruction creation unit 12, the DRMT15, retrieves an entry that stores "0" in the DM field of the DRMT15 (S112). これは、当該命令が、Dalvikバイトコードの先頭のオペランド(M0)に物理レジスタ(「DR2」に置き換えられる物理レジスタ)を割り当てる命令であることによる。 This the instruction, due to a command to Dalvik bytecode top operands (M0) assigning a physical register (physical register to be replaced by "DR2"). したがって、命令作成部12は、DRMT15のDMフィールドに「0」を格納したエントリを検索することにより、Dalvikレジスタ「M0」にすでに割り当てられた物理レジスタが存在するか否かを判定する。 Therefore, the instruction preparation unit 12, by searching the entry that stores "0" in the DM field of DRMT15, determines whether Dalvik register "M0" already allocated physical registers is present.

この時点では、DRMT15には、DMフィールドに「0」を格納したエントリは登録されていないので、上記と同様、命令作成部12は、DMフィールドに「0」を格納したエントリを検索することはできない。 At this point, the DRMT15, since entry that stores "0" in the DM field is not registered, as described above, the instruction preparation unit 12, to find the entry that stores "0" in the DM field Can not. この場合、Dalvikレジスタ「M0」にすでに割り当てられた物理レジスタが存在しないので、仮のオペランド「DR2」を適当な物理レジスタの番号に置き換える。 In this case, since there is already allocated physical registers Dalvik register "M0", replaces the provisional operand "DR2" to the number of the appropriate physical registers. この場合、命令作成部12は、「DR2」を「R2」に置き換える。 In this case, the instruction generating unit 12, replaces the "DR2" to "R2". なお、DRMT1 It should be noted, DRMT1
5からエントリが検索された場合、命令作成部12は、「DR2」を、検索されたエントリのDRフィールドに格納された物理レジスタの番号に置き換える。 If the 5 entry is retrieved, the instruction preparation unit 12, the "DR2" is replaced with the number of physical registers is stored in the DR field of the retrieved entry.

また、命令作成部12は、例えば、同一バイトコード内の別のネイティブコードと共通の番号が割り当てられている仮の物理レジスタを、当該別のネイティブコードにおいて割り当てた物理レジスタにより置き換える。 The instruction preparation unit 12, for example, replacing the separate physical register tentative native code common number is assigned in the same bytecode by the physical register allocated in the different native code. つまり、命令作成部12は、「DR0」を「R0」 In other words, the instruction creation unit 12, the "DR0", "R0"
(1番目のネイティブコードのひな形を参照)と置き換え、「DR1」を「R1」(2番目のネイティブコードのひな形を参照)と置き換える。 Replaced with (see the first of the native code stationery), replace "R1" (see the model of the second native code) the "DR1". これにより、命令作成部12は、ネイティブコード「add R2, R0, R1」の作成を完了し、当該完成したネイティブコードをネイティブデコーダ4へ出力する(S113)。 Thus, the instruction preparation unit 12 completes the creation of the native code "the add R2, R0, R1", and outputs the native code the completed to native decoder 4 (S113). なお、これらの仮の物理レジスタと物理レジスタとの対応関係(上記の「DR0」と「R0」との対応関係、および、「DR1」と「R1」との対応関係)は命令作成部12内のテーブル(不図示)によって管理される。 The correspondence relationship between these temporary physical registers and physical registers (correspondence between "DR0" above and "R0", and the corresponding relation between the "DR1" "R1") of the instruction preparation unit 12 is managed by a table (not shown).

次に、命令作成部12は、作成したネイティブコード「add R2, R0, R1」に基づいて、DRMT15にエントリ登録をする(S114)。 Next, the instruction creator 12, based on the native code "the add R2, R0, R1" was created, the entry registered in DRMT15 (S114). 当該命令は、上述のとおり、Dalvikバイトコードの先頭のオペランド(M0)に物理レジスタ(R2)を割り当てる命令であることによる。 The instruction is due to, as mentioned above, is a command to Dalvik bytecode top operands (M0) assigning a physical register (R2). 命令作成部12は、例えば、DMフィールドに「0」、Validフィールドに「1」、Dirtyフィールドに「1」、Timeフィールドに「3」、DRフィールドに「2」を格納したエントリをDRMT15に登録する。 Instruction creation portion 12 registers, for example, "0" to the DM field, "1" in the Valid field, "3", "1", in the Time field to Dirty field, an entry that stores "2" in the DR field DRMT15 to. なお、上述までのエントリと異なりDirtyフィールドに「1 In addition, "1 to Dirty field Unlike the entry of up to above
」を格納する理由は、この時点において、当該add命令によりR2(物理レジスタ)に格納されるデータがDalvikレジスタ(M0)にストアされていないからである。 The reason for storing the "in this time, because the data stored by the add instruction in R2 (physical register) is not stored in Dalvik register (M0). つまり、Dalvikレジスタ(M0)よりも、当該Dalvikレジスタ(M0)に割り当てられた物理レジスタ(R2)の方が新しいデータを格納しているからである。 In other words, than Dalvik register (M0), because towards the physical register (R2) assigned to the Dalvik register (M0) is storing the new data.

S112〜S114の処理により命令テーブル14から取得したひな形である「add DR2, DR0, DR1」に関する処理が完了する。 Treatment of S112~S114 a stationery acquired from the instruction table 14 process related "add DR2, DR0, DR1" is completed.

次に、命令作成部12は、S111で取得したエントリのNEXTフィールドに格納されるポインタを用いて、当該ネイティブコードの次に続く命令のひな形を格納する命令テーブル14の所定のエントリを取得する(S115)。 Next, the instruction preparation unit 12 uses the pointer stored in the NEXT field of the entry acquired in S111, to acquire the predetermined entry in the instruction table 14 that stores the model of the next instruction following the said native code (S115).

次に、命令作成部12は、命令テーブル14から取得したエントリのInstフィールドからネイティブコードのひな形である「store DR2, DM1」(ストア命令)の仮のオペランドの置き換えを行う。 Next, the instruction creator 12 performs the replacement of the temporary operands of a stationery native code "store DR2, DM1" (store instruction) from Inst field of the entry retrieved from the instruction table 14. ここで、「store DR2, DM1」の仮のオペランドは、「DR2」と「DM1」である。 Here, temporary operand of "store DR2, DM1" is a "DR2", "DM1". ただし、当該ネイティブコードのひな形は、Dalvikレジスタに対するストア命令に関するネイティブコードのひな形であるため、ネイティブコードの作成は省略される。 However, model of the native code are the template of native code for the store instruction to the Dalvik register, the creation of native code is omitted.

この時、命令作成部12は、ネイティブコードの作成については実行しないが、「DM1 At this time, the instruction generating unit 12 includes, but is not running for the creation of native code, "DM1
」に置き換えるはずであったオペランドを1つ目の加算命令であるDalvikバイトコード(M0 add, M1, M2)より取得する。 The supposed in a operand replaced by "first add instruction a is Dalvik bytecode (M0 add, M1, M2) are obtained from. 「DM1」は、Dalvikバイトコードの1番目のオペランドを指すため、命令作成部12は、「DM1」に置き換えるはずであったオペランドとして、 "DM1" is to refer to the first operand of Dalvik bytecode instruction creation unit 12, as would a be operands replaced by "DM1"
「M0」(Dalvikレジスタの0番)を取得する。 To get "M0" the (0 No. of Dalvik register). そして、命令作成部12は、当該Dalvikレジスタの番号「0」をDMフィールドに格納したエントリを検索する(S116)。 The instruction creation unit 12 searches the entry that stores the number "0" of the Dalvik register DM field (S116). 図5に示されるとおり、DMフィールドに「0」を格納したエントリが検索される。 As shown in FIG. 5, the entry that stores "0" in the DM field is searched. 命令作成部12は、検索したエントリのDirtyフィールドに格納された値を「1」に置き換える。 Instruction creation unit 12 replaces the data stored in the Dirty field of the entry retrieved value to "1". なお、この時点においてすでに当該エントリのDirtyフィールドに格納された値は「1」であるため、命令作成部12は、当該処理を省略してもよい。 Since already Dirty values ​​stored in the fields of the entry at this point is "1", the instruction creator 12 may be omitted the process.

以上までのS100〜S116の処理により、命令作成部12は、1つ目の加算命令「M0, add, M1, M2」のネイティブコードの作成を完了する。 Treatment of S100~S116 up above, the instruction creator 12, first add instruction "M0, the add, M1, M2" to complete the creation of native code. 具体的に、命令作成部12は、1つ目の加算命令「M0, add, M1, M2」に対して、「load R0, M1」、「load R1, M2」 Specifically, the instruction creator 12, with respect to first add instruction "M0, the add, M1, M2", "load R0, M1", "load R1, M2"
、「add R2, R0, R1」の3つのネイティブコードを作成する。 , To create three of the native code of "add R2, R0, R1".

<2つ目の加算命令> <The second addition instruction>
次に、図6を用いて、2つ目の加算命令「M3, add, M2, M0」(M3 = M2 + M0)のネイティブコードを作成するときの処理手順について説明する。 Next, with reference to FIG. 6, the second add instruction "M3, the add, M2, M0 '(M3 = M2 + M0) procedure for creating a native code will be described.

図6に示されるとおり、まず、命令作成部12は、バイトコードバッファ11からDalvikバイトコードを1つ分取得する(S200)。 As shown in FIG. 6, firstly, instruction creation unit 12, one minute to obtain a Dalvik bytecodes from the byte code buffer 11 (S200). 当該取得したDalvikバイトコードは、加算命令「M3, add, M2, M0」である。 Dalvik bytecode the acquired is an addition instruction "M3, the add, M2, M0".

次に、命令作成部12は、取得したDalvikバイトコードのオペコード(add)を参照して、変換テーブル3のOpフィールドに当該オペコードを格納するエントリが変換テーブル13に存在するかどうかを検索する(S201)。 Next, the instruction preparation unit 12 refers to the operation code (the add) of Dalvik byte code obtained, the entry for storing the operation code to search whether there in the conversion table 13 to the Op field of the conversion table 3 ( S201). 本実施形態では、図6に示されるとおり、エントリが検索される。 In the present embodiment, as shown in FIG. 6, the entry is searched.

次に、命令作成部12は、変換テーブル13から検索したエントリのEフィールドに格納される値を参照し、当該オペコード(add)に対応する1又は複数のネイティブコードのひな形が変換テーブル13又は命令テーブル14に存在するかを判定する(S202)。 Next, the instruction preparation unit 12 refers to the value stored in the E field of the entry retrieved from the conversion table 13, model of one or more native code corresponding to the operation code (the add) the conversion table 13 or determines whether existing in the instruction table 14 (S202). 本実施形態では、図6に示されるとおり、Eフィールドには「1」が格納されているので、オペコード(add)に対応する1又は複数のネイティブコードのひな形が変換テーブル13又は命令テーブル14に存在すると判定される。 In the present embodiment, as shown in FIG. 6, since the E field stores "1", the operation code (the add) template of the corresponding one or more native code conversion table 13 or instruction table 14 It is determined to exist.

次に、命令作成部12は、変換テーブル13から検索したエントリのInstフィールドに格納されている1命令分のネイティブコードのひな形「load DR0, DM2」(ロード命令)を取得する(S203)。 Next, the instruction creator 12 acquires a native code stationery one instruction stored in the Inst field of the entry retrieved from the conversion table 13 'load DR0, DM2 "(load instruction) (S203).

次に、命令作成部12は、取得したひな形である「load DR0, DM2」の仮のオペランドの置き換えを行う。 Next, the instruction generating unit 12 performs the replacement of the temporary operand of an acquired chicks forms "load DR0, DM2". ここで、「load DR0, DM2」の仮のオペランドは、「DR0」と「DM2」 Here, temporary operand of "load DR0, DM2" is, as "DR0", "DM2"
である。 It is.

まず、命令作成部12は、「DM2」に置き換えるオペランドを2つ目の加算命令であるDalvikバイトコード(M3, add, M2, M0)より取得する。 First, the instruction creator 12 acquires from the operand replaced by "DM2" second add instruction a is Dalvik bytecode (M3, add, M2, M0). 「DM2」は、Dalvikバイトコードの2番目のオペランドを指すため、命令作成部12は、「DM2」を、Dalvikバイトコードの2番目のオペランドである「M2」(Dalvikレジスタの2番)に置き換える。 "DM2" is to refer to a second operand of Dalvik bytecode instruction creation unit 12, the "DM2" is replaced with a second operand of Dalvik bytecode "M2" (No. 2 Dalvik register) . 次に、命令作成部12は、DRMT15から、当該DRMT15のDMフィールドに「2」(置き換えたオペランドのDalvikレジスタの番号)を格納したエントリを検索する(S204)。 Next, the instruction creator 12 from DRMT15, searches for an entry storing the "2" (number of Dalvik register replacement operands) to the DM field of the DRMT15 (S204).

この時点において、DRMT15にはDMフィールドに「2」(Dalvikレジスタの2番)を格納したエントリが検索される。 At this point, the entry that stores "2" (# 2 Dalvik register) DM field is searched in DRMT15. したがって、この時、命令作成部12は、当該ロード命令のネイティブコードの作成は省略される。 Therefore, at this time, the instruction creator 12, the creation of the native code of the load instruction is omitted. つまり、命令作成部12は、仮のオペランドの置き換えを実行せず、ネイティブコードの作成を実行しない。 That is, the instruction creation unit 12 does not execute the replacement of the temporary operand does not perform the creation of native code. この時点で、「load DR0, DM2」に関する処理が完了する。 At this point, processing related to "load DR0, DM2" is completed.

次に、命令作成部12は、変換テーブル13から検索したエントリのNEXTフィールドに格納されるポインタを用いて、当該ネイティブコードの次に続く命令のひな形を格納する命令テーブル14の所定のエントリを取得する(S205)。 Next, the instruction preparation unit 12 uses the pointer stored in the NEXT field of the entry retrieved from the conversion table 13, the predetermined entry in the instruction table 14 that stores the model of the next instruction following the said native code to get (S205).

次に、命令作成部12は、命令テーブル14から取得したエントリのInstフィールドからネイティブコードのひな形である「load DR1, DM3」(ロード命令)の仮のオペランドの置き換えを行う。 Next, the instruction creator 12 performs the replacement of the temporary operands of a stationery native code "load DR1, DM3" (load instruction) from Inst field of the entry retrieved from the instruction table 14. ここで、「load DR1, DM3」の仮のオペランドは、「DR1」と「DM3」である。 Here, temporary operand of "load DR1, DM3" is a "DR1", "DM3".

まず、命令作成部12は、「DM3」に置き換えるオペランドを2つ目の加算命令であるDalvikバイトコード「M3, add, M2, M0」より取得する。 First, the instruction creator 12 acquires from Dalvik bytecodes are second add instruction operands to replace the "DM3", "M3, the add, M2, M0". 「DM3」は、Dalvikバイトコードの3番目のオペランドを指すため、命令作成部12は、「DM3」を、Dalvikバイトコードの3番目のオペランドである「M0」に置き換える。 "DM3" is to refer to a third operands of Dalvik bytecode instruction creation unit 12, the "DM3", replaced with a third operand in Dalvik bytecode "M0". 次に、命令作成部12は、DRMT15から、当該DRMT15のDMフィールドに「0」を格納したエントリを検索する(S206)。 Next, the instruction creator 12 from DRMT15, retrieves an entry that stores "0" in the DM field of the DRMT15 (S206).

この時点において、DRMT15にはDMフィールドに「0」(Dalvikレジスタの0番)を格納したエントリが検索される。 At this point, the DRMT15 entry stores "0" (0 No. Dalvik register) DM field is searched. したがって、この時、命令作成部12は、当該ロード命令のネイティブコードの作成は省略される。 Therefore, at this time, the instruction creator 12, the creation of the native code of the load instruction is omitted. つまり、命令作成部12は、仮のオペランドの置き換えを実行せず、ネイティブコードの作成を実行しない。 That is, the instruction creation unit 12 does not execute the replacement of the temporary operand does not perform the creation of native code. この時点で、「load DR1, DM3」に関する処理が完了する。 At this point, processing related to "load DR1, DM3" is completed.

次に、命令作成部12は、S205で取得したエントリのNEXTフィールドに格納されるポインタを用いて、当該ネイティブコードの次に続く命令のひな形を格納する命令テーブル14の所定のエントリを取得する(S207)。 Next, the instruction preparation unit 12 uses the pointer stored in the NEXT field of the entry acquired in S205, to acquire the predetermined entry in the instruction table 14 that stores the model of the next instruction following the said native code (S207).

次に、命令作成部12は、命令テーブル14から取得したエントリのInstフィールドからネイティブコードのひな形である「add DR2, DR0, DR1」(加算命令)の仮のオペランドの置き換えを行う。 Next, the instruction creator 12 performs the replacement of the temporary operands of a stationery native code "the add DR2, DR0, DR1" (add instruction) from Inst field of the entry retrieved from the instruction table 14. ここで、「add DR2, DR0, DR1」の仮のオペランドは、「DR2」、「DR0」、「DR1」である。 Here, temporary operand of "add DR2, DR0, DR1" is "DR2", "DR0", "DR1". また、当該エントリのInstフィールドには、Dalvikバイトコードの先頭のオペランド(Dalvikレジスタ)に物理レジスタを割り当てる命令であることを示すデータフラグが存在する(不図示)。 In addition, the Inst field of the entry, there is a data flag indicating that the instruction to assign a physical register to Dalvik bytecode top operands (Dalvik register) (not shown).

命令作成部12は、当該データフラグの存在により、まずはDalvikバイトコードの先頭のオペランド「M3」を取得する。 Instruction creation unit 12, the presence of the data flag, first obtains the Dalvik bytecodes top operand of "M3". そして、命令作成部12は、DRMT15から、当該DRMT15のDMフィールドに「3」を格納したエントリを検索する(S208)。 The instruction creation unit 12, the DRMT15, searches for an entry storing the "3" to the DM field of the DRMT15 (S208). 以上のS112と同様の処理である。 It is similar to the processing of more than S112.

この時点では、DRMT15には、DMフィールドに「3」を格納したエントリは登録されていないので、上記と同様、命令作成部12は、DMフィールドに「3」を格納したエントリを検索することはできない。 At this point, the DRMT15, since the entry that stores the "3" to the DM field is not registered, as described above, the instruction preparation unit 12, to find the entry that stores "3" in the DM field Can not. この場合、Dalvikレジスタ「M3」にすでに割り当てられた物理レジスタが存在しないので、仮のオペランド「DR2」を適当な物理レジスタの番号に置き換える。 In this case, since there is already allocated physical registers Dalvik register "M3", replaces the provisional operand "DR2" to the number of the appropriate physical registers. この場合、命令作成部12は、「DR2」を「R3」に置き換える。 In this case, the instruction generating unit 12, replaces the "DR2" to "R3".

また、命令作成部12は、例えば、同一バイトコード内の別のネイティブコードと共通の番号が割り当てられている仮の物理レジスタを、当該別のネイティブコードにおいて割り当てた物理レジスタにより置き換える。 The instruction preparation unit 12, for example, replacing the separate physical register tentative native code common number is assigned in the same bytecode by the physical register allocated in the different native code. つまり、命令作成部12は、「DR0」を「R1」 In other words, the instruction creation unit 12, the "DR0", "R1"
(1番目のネイティブコードのひな形を参照)と置き換え、「DR1」を「R2」(2番目のネイティブコードのひな形を参照)と置き換える。 Replaced with (see the first of the native code stationery), replace "R2" (see the model of the second native code) the "DR1". なお、1番目及び2番目のネイティブコードは作成されていない。 Incidentally, the first and second native code is not created. 命令作成部12は、これらをDRMT15から取得する。 Instruction creation portion 12 obtains them from DRMT15. 命令作成部12は、1番目のネイティブコードのひな形「load DR0, DM2」に対する処理(S2 Instruction creation unit 12, the process for the first native code template "load DR0, DM2" (S2
04)の際、検索されたエントリ(DMフィールドに「2」を格納したエントリ)のDRフィールドから「1」を取得する。 04) When, acquires "1" from the DR field of the retrieved entry (entry stores "2" to the DM field). これにより、命令作成部12は、「DR0」と置き換える物理レジスタの番号を取得する。 Thus, the instruction creator 12 acquires the number of the physical registers to replace the "DR0". また、命令作成部12は、2番目のネイティブコードのひな形「load DR1, DM3」に対する処理(S206)の際、検索されたエントリ(DMフィールドに「0」を格納したエントリ)のDRフィールドから「2」を取得する。 The instruction creation unit 12, during the processing (S206) for the second native code template "load DR1, DM3", from the DR field of the retrieved entry (entry that stores "0" in the DM field) to get the "2". これにより、命令作成部12は、「DR1」と置き換える物理レジスタの番号を取得する。 Thus, the instruction creator 12 acquires the number of the physical registers to replace the "DR1". なお、これらの仮の物理レジスタ「DRx」と物理レジスタ「Rx」との対応関係は、命令作成部12内に存在するテーブル(不図示)によって管理されている。 The correspondence relationship of these temporary physical registers as "DRx" and the physical registers "Rx" is managed by a table (not shown) present in the instruction preparation unit 12.

これにより、命令作成部12は、ネイティブコード「add R3, R1, R2」の作成を完了し、当該完成したネイティブコードをネイティブデコーダ4へ出力する(S209)。 Thus, the instruction preparation unit 12 completes the creation of the native code "the add R3, R1, R2", and outputs the native code the completed to native decoder 4 (S209).

次に、命令作成部12は、作成したネイティブコード「add R3, R1, R2」に基づいて、DRMT15にエントリを登録する(S210)。 Next, the instruction creator 12, based on the native code "the add R3, R1, R2" created, and registers an entry in DRMT15 (S210). 当該命令は、上述のとおり、Dalvikバイトコードの先頭のオペランド(M3)に物理レジスタ(R3)を割り当てる命令であることによる。 The instruction is due to, as mentioned above, is a command to Dalvik bytecode top operands (M3) assigning a physical register (R3). 命令作成部12は、例えば、DMフィールドに「3」、Validフィールドに「1」、Dirtyフィールドに「1」、Timeフィールドに「4」、DRフィールドに「3」を格納したエントリをDRMT15に登録する。 Instruction creation portion 12 registers, for example, "3" to the DM field, "1" in the Valid field, "1" Dirty field, "4" in the Time field, the entry that stores "3" in the DR field DRMT15 to. この時点で「add DR2, DR0, DR1」に関する処理が完了する。 At this point "add DR2, DR0, DR1" process on is completed.

次に、命令作成部12は、S207で取得したエントリのNEXTフィールドに格納されるポインタを用いて、当該ネイティブコードの次に続く命令のひな形を格納する命令テーブル14の所定のエントリを取得する(S211)。 Next, the instruction preparation unit 12 uses the pointer stored in the NEXT field of the entry acquired in S207, to acquire the predetermined entry in the instruction table 14 that stores the model of the next instruction following the said native code (S211).

次に、命令作成部12は、命令テーブル14から取得したエントリのInstフィールドからネイティブコードのひな形である「store DR2, DM1」の仮のオペランドの置き換えを行う。 Next, the instruction creator 12 performs the replacement is a stationery native code provisional operands "store DR2, DM1" from Inst field of the entry obtained from the instruction table 14. ここで、「store DR2, DM1」の仮のオペランドは、「DR2」と「DM1」である。 Here, temporary operand of "store DR2, DM1" is a "DR2", "DM1". ただし、当該ネイティブコードのひな形は、Dalvikレジスタに関するストア命令に関するネイティブコードのひな形であるため、ネイティブコードの作成は省略される。 However, model of the native code are the template of native code for store instructions relating Dalvik register, the creation of native code is omitted.

この時、命令作成部12は、ネイティブコードの作成については実行しないが、「DM1 At this time, the instruction generating unit 12 includes, but is not running for the creation of native code, "DM1
」に置き換えるはずであったオペランドを2つ目の加算命令であるDalvikバイトコード「M3, add, M2, M0」より取得する。 Two would in a operand replaced by "eye Dalvik bytecode is an addition instruction" M3, add, M2, M0 "is obtained from. 「DM1」は、Dalvikバイトコードの1番目のオペランドを指すため、命令作成部12は、「DM1」に置き換えるはずであったオペランドとして、 "DM1" is to refer to the first operand of Dalvik bytecode instruction creation unit 12, as would a be operands replaced by "DM1"
「M3」(Dalvikレジスタの3番)を取得する。 To get "M3" (the third of Dalvik register). そして、命令作成部12は、当該Dalvikレジスタの番号「3」をDMフィールドに格納したエントリを検索する(S212)。 The instruction creation unit 12 searches the entry that stores the number "3" of the Dalvik register DM field (S212). 図6に示されるとおり、DMフィールドに「3」を格納したエントリが検索される。 As shown in FIG. 6, the entry that stores the "3" to the DM field is searched. 命令作成部12は、検索したエントリのDirtyフィールドに格納された値を「1」に置き換える。 Instruction creation unit 12 replaces the data stored in the Dirty field of the entry retrieved value to "1". なお、この時点においてすでに当該エントリのDirtyフィールドに格納された値は「1」であるため、命令作成部12は、当該処理を省略してもよい。 Since already Dirty values ​​stored in the fields of the entry at this point is "1", the instruction creator 12 may be omitted the process.

以上までのS200〜S212の処理により、命令作成部12は、2つ目の加算命令「M3, add, M2, M0」のネイティブコードの作成を完了する。 Treatment of S200~S212 up above, the instruction creator 12, the second add instruction "M3, the add, M2, M0" to complete the creation of native code. 具体的に、命令作成部12は、2つ目の加算命令「M3, add, M2, M0」に対して、「add DR2, DR0, DR1」の1つのネイティブコードを作成する。 Specifically, the instruction creator 12, for the second addition instruction "M3, the add, M2, M0 ', to create one native code" the add DR2, DR0, DR1 ".

<その他> <Others>
以上のようにして、命令作成部12は、Dalvikバイトコードからネイティブコードを作成する。 As described above, the instruction creator 12 creates a native code from Dalvik bytecode. また、以上のようにして、DRMT15にエントリが追加されていく。 In addition, as described above, entries will be added to the DRMT15. このように追加されるエントリについて、命令作成部12は、所定のタイミングでエントリの削除を行う。 For entries this is added to the instruction creator 12 performs deletion of an entry at a predetermined timing. 所定のタイミングとは、例えば、DRMT15のエントリが一杯で命令作成部12によるエントリの追加が出来ない時である。 The predetermined timing, for example, is when the entries DRMT15 is unable additional entries by the instruction creator 12 in full. この時、命令作成部12は、DRMT15から所定のエントリを削除し、当該エントリの追加を実行する。 At this time, instruction creation unit 12 deletes a predetermined entry from DRMT15, perform additional the entry. また、所定のタイミングの他の例として、バイトコードによる命令実行モードからネイティブコードによる命令実行モードに遷移する時が挙げられる。 As another example of the predetermined timing, and the like when transitioning from the instruction execution mode by bytecode instruction execution mode by native code. この時、命令作成部12はDRMT15の全エントリを削除する。 In this case, the instruction generating unit 12 to delete all entries of DRMT15.

なお、所定のエントリとは、例えば、登録されてから一番時間が経っているエントリである。 Note that the predetermined entry, for example, an entry that has passed the most time since their registration. 命令作成部12は、このようなエントリをTimeフィールドに格納されている時刻から判断する。 Instruction creation unit 12 determines the time stored such entry in the Time field. またその他の例として、所定のエントリとは、例えば、命令作成部12がランダムに選択したエントリである。 As another example, the predetermined entry, for example, an entry of instruction creation unit 12 randomly selected.

また、命令作成部12が削除するエントリの数は任意でよい。 The number of entries to delete instruction creation unit 12 may be arbitrary. 例えば、命令作成部12は、DRMT15のエントリを削除する時、一度に3つのエントリを削除してもよい。 For example, the instruction preparation unit 12, when deleting entries DRMT15, may be deleted three entries at a time.

なお、このようなDRMT15のエントリを削除する時、命令作成部12は、削除する対象のエントリのDirtyフィールドの値(Dirtyビット)を確認する。 Incidentally, when deleting the entry for such DRMT15, instruction creation unit 12 confirms the value of Dirty field of the subject of an entry to be deleted (Dirty bit).

削除する対象のエントリのDirtyフィールドに「0」が格納されている場合、当該エントリに含まれた番号の物理レジスタに格納されているデータは、当該エントリに含まれた番号のDalvikレジスタに格納されているデータと同一である。 If the Dirty field of the subject of an entry to be deleted "0" is stored, the data stored in the physical register included in the entry number is stored in Dalvik register contained in the entry number and that is the same as the data. すなわち、対応関係にあるDalvikレジスタと物理レジスタとは同一のデータを格納しているため、物理レジスタに格納されているデータをDalvikレジスタにストアする必要はない。 That is, since that store the same data and Dalvik registers and physical registers in correspondence need not be stored in Dalvik register the data stored in the physical register. したがって、この時、命令作成部12は、何らネイティブコードを作成しない。 Therefore, at this time, the instruction creation unit 12 does not create native code no.

他方、削除するエントリのDirtyフィールドに「1」が格納されている場合、当該エントリに含まれた番号の物理レジスタに格納されているデータは、更新されているため、当該エントリに含まれた番号のDalvikレジスタに格納されているデータと異なる。 On the other hand, if the "1" Dirty field of the entry to be deleted is stored, the data stored in the physical register included in the entry number, because it is updated and included in the entry number It differs from the stored in the Dalvik register data. すなわち、対応関係にあるDalvikレジスタと物理レジスタとは異なるデータを格納しているため、物理レジスタに格納されているデータをDalvikレジスタにストアする必要がある。 That is, since the store data different from Dalvik registers and physical registers in correspondence, it is necessary to store the data stored in the physical register Dalvik register. 命令作成部12は、当該物理レジスタに格納されるデータを当該Dalvikレジスタにストアする命令に関するネイティブコードを作成する。 Instruction creation portion 12 creates the native code to the instruction for storing the data stored in the physical register to the Dalvik register. 例えば、命令作成部12は、命令テーブル14等に格納されたストア命令に関するネイティブコードのひな形を取得する。 For example, the instruction creator 12 acquires a model of native code for the store instruction stored in the instruction table 14 or the like. そして、命令作成部12は、当該取得したネイティブコードのひな形に含まれた仮のオペランドを、当該削除する対象のエントリに含まれたDMフィールド及びDRフィールドに格納されている値で置き換える。 The instruction creation unit 12 is replaced by a temporary operands contained in stationery native code the acquired, stored in DM field and DR field included in the target entry that the deletion values. このようにして、命令作成部12は、削除する対象のエントリに含まれた番号の物理レジスタとDalvikレジスタとに関するストア命令のネイティブコードを作成する。 In this manner, the instruction creator 12 creates a native code store instruction and to a physical register and Dalvik register included in the subject of the entry to delete numbers. これにより、物理レジスタに格納されている新しいデータがDalvikレジスタ(メモリ)に格納される前に、当該新しいデータを格納する物理レジスタに別のDalvikレジスタが割り当てられることを防ぐことができる。 Thus, before the new data stored in the physical register is stored in Dalvik register (memory), it is possible to prevent the different in physical registers to store the new data Dalvik register is assigned.

§4 実施の形態に係る作用及び効果 以上によれば、本実施形態に係る変換器は、Dalvikバイトコードに対応するネイティブコードを作成する。 According to the above operation and effect according to the §4 embodiment, converter according to the present embodiment generates a native code corresponding to Dalvik bytecode. この時、命令作成部12は、DRMT15を参照して、一部のロード命令のネイティブコードの作成を省略する。 At this time, instruction creation unit 12 refers to DRMT15, omitted creation of native code portion of the load instruction. また、命令作成部12は、DRMT15からエントリを削除する時にのみDalvikレジスタに対するストア命令のネイティブコードの作成を行い、それ以外の時はDalvikレジスタに対するストア命令のネイティブコードの作成を省略する。 The instruction creation unit 12 performs creation of native code store instructions for Dalvik register only when deleting the entry from DRMT15, it omitted create native code store instruction for Dalvik register at other times. これにより、本実施形態に係る変換器によれば、ロード命令及びストア命令の発行を抑えることができ、メモリアクセスを削減することができる。 Thus, according to the converter according to the present embodiment, it is possible to suppress the issuance of load and store instructions, it is possible to reduce the memory access.

§5 補足 以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。 §5 supplement has been described the embodiment of the present invention in detail, merely illustrative of the description up above the present invention in all respects, not intended to limit the scope thereof. 本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。 It is of course possible to make various modifications and variations can be devised without departing from the scope of the present invention. 本発明は、特許請求の範囲によってのみその範囲が解釈される。 The invention, its scope only by the scope of the claims. また、当業者は、上記本実施形態の記載から、特許請求の範囲の記載および技術常識に基づいて等価な範囲を実施することができる。 Moreover, those skilled in the art from the description of the present embodiment, it is possible to implement equivalent scope based on the description and common technical knowledge of the appended claims. また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられる。 Also, terms used herein, and unless otherwise specified, is used in the sense commonly used in the art. したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解される意味と同じ意味を有する。 Therefore, unless otherwise defined, all terminology and technical terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. 両者が矛盾する場合、本明細書において使用される用語は、本明細書(定義を含めて)に記載された意味において理解される。 If they are inconsistent, the terms used herein will be understood in the sense described in the present specification (including definition).

1 変換器 2 フェッチャ 3 ステータスレジスタ 4 ネイティブデコーダ 5 演算装置 6 物理レジスタ 7 メモリ 11 バイトコードバッファ 12 命令作成部 13 変換テーブル 14 命令テーブル 15 DRMT(Dalvik Register Map Table) 1 converter 2 fetcher 3 Status register 4 native decoder 5 computing device physical register 7 memory 11 byte code buffer 12 instruction creation unit 13 a conversion table 14 command table 15 DRMT (Dalvik Register Map Table)
100 プロセッサ 100 processor

Claims (6)

  1. メモリからフェッチしたレジスタ形式のバイトコードを保持する保持部と、 A holding portion for holding the bytecode register format fetched from memory,
    バイトコードの命令コードに対応したネイティブコードのひな形を格納する第1記憶部と、 A first storage unit for storing a model of native code corresponding to the instruction code bytecode,
    保持部に保持されているバイトコードを取り出し、第1記憶部に格納されているネイティブコードのひな形を用いて、当該バイトコードに対応する1または複数のネイティブコードを作成する命令作成部と、 The byte code held in the holding section is taken out, and using a model of native code stored in the first storage unit, the instruction generating unit configured to generate one or more native code corresponding to the byte code,
    物理レジスタの番号と、命令作成部が作成したネイティブコードにより当該番号の物理レジスタに格納されたデータに対応するデータを格納するメモリ上のレジスタとの対応関係を示すデータを格納する第2記憶部と、を備え、 Second storage unit for storing the number of the physical registers, the data indicating the correspondence between the registers in the memory for storing data corresponding to the data stored in the physical register of the number by the native code created instruction creation unit and, with a,
    命令作成部は、作成するネイティブコードが、第2記憶部に格納されたデータに含まれるメモリ上のレジスタに関するロード命令であると判定した場合、当該ネイティブコードの作成を省略することを特徴とする変換器。 Instruction creation portion native code created is when it is determined that the load instruction related to the register in the memory included in the data stored in the second storage unit, characterized by omitting the creation of the native code converter.
  2. 命令作成部は、ネイティブコードに格納される物理レジスタの番号を、第2記憶部に格納されたデータに含まれる物理レジスタの番号を用いて特定することを特徴とする請求項1に記載の変換器。 Instruction creation unit converts according to claim 1, characterized in that identified using the number of physical registers to be stored in the native code, number of the physical registers contained in data stored in the second storage unit vessel.
  3. 命令作成部は、作成するネイティブコードがメモリ上のレジスタに関するストア命令であると判定した場合、当該ネイティブコードの作成を省略することを特徴とする請求項1または2に記載の変換器。 Instruction creation portion, when the native code to create is determined to be a store instruction relating to the register in memory, converter according to claim 1 or 2, characterized in omitting the creation of the native code.
  4. 命令作成部は、物理レジスタを割り当てるネイティブコードのひな形を第1記憶部から取得した時、バイトコードに含まれるメモリ上のレジスタの番号と、当該レジスタに割り当てる物理レジスタの番号との対応関係を示すデータを作成し、当該データを第2記憶部に格納することを特徴とする請求項1から3のいずれか1項に記載の変換器。 Instruction creation portion, when the model of native code assigning a physical register has been acquired from the first storage unit, and the number of registers in the memory contained in the bytecode, the correspondence between the number of the physical registers to be allocated to the register a transducer according to any one of claims 1 to 3 to create the data, characterized by storing the data in the second storage unit shown.
  5. 命令作成部は、所定の時点において、第2記憶部に格納されているデータを削除し、当該削除するデータに含まれる番号の物理レジスタに格納されたデータを、当該削除するデータに含まれるメモリ上のレジスタに書き込むストア命令のネイティブコードを作成することを特徴とする請求項4に記載の変換器。 Instruction creation unit, at predetermined time points include delete the data stored in the second storage unit, the data stored in the physical register number included in the data to the deletion, the data to the deletion memory a transducer according to claim 4, characterized in that to create a native code store instruction to write to the register above.
  6. メモリからフェッチしたレジスタ形式のバイトコードを保持するステップと、 A step of holding the bytecode register format fetched from memory,
    保持したバイトコードを取り出し、バイトコードの命令コードに対応したネイティブコードのひな形を格納する第1記憶部に格納されているネイティブコードのひな形を用いて、当該バイトコードに対応する1または複数のネイティブコードを作成するネイティブコード作成ステップと、 Removed bytecode held, using a model of native code stored in the first storage unit for storing a model of native code corresponding to the instruction code bytecode, one or more corresponding to the bytecode and native code generation step of generating native code,
    物理レジスタの番号と、ネイティブコード作成ステップにより作成されたネイティブコードにより物理レジスタに格納されたデータに対応するデータを格納するメモリ上のレジスタとの対応関係を示すデータを第2記憶部に格納する記憶ステップと、を含み、 The number of the physical registers to store data indicating a correspondence relationship between registers on the memory for storing data corresponding to the data stored in the physical register by the native code created by the native code creation step to the second storage unit comprising: a storage step, a
    ネイティブコード作成ステップでは、作成するネイティブコードが、第2記憶部に格納されたメモリ上のレジスタに関するロード命令またはストア命令であると判定される場合、当該ネイティブコードの作成が省略されることを特徴とする変換方法。 If the native code creation step, which is native code to create, it is determined that the load instruction or a store instruction relating to the register of the memory stored in the second storage unit, characterized in that the creation of the native code are omitted conversion method to be.
JP2010234673A 2010-10-19 2010-10-19 Converter and conversion method Pending JP2012088909A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010234673A JP2012088909A (en) 2010-10-19 2010-10-19 Converter and conversion method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010234673A JP2012088909A (en) 2010-10-19 2010-10-19 Converter and conversion method

Publications (1)

Publication Number Publication Date
JP2012088909A true JP2012088909A (en) 2012-05-10

Family

ID=46260472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010234673A Pending JP2012088909A (en) 2010-10-19 2010-10-19 Converter and conversion method

Country Status (1)

Country Link
JP (1) JP2012088909A (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02194439A (en) * 1989-01-24 1990-08-01 Nec Corp Program execution system
JPH04322329A (en) * 1991-04-23 1992-11-12 Hitachi Ltd System and method for information processing copying with many machine types
JPH0573398A (en) * 1991-09-13 1993-03-26 Matsushita Electric Ind Co Ltd Information processor
JP2002163116A (en) * 2000-10-10 2002-06-07 Nazomi Communications Inc Java (R) HARDWARE ACCELERATOR USING MICROCODE ENGINE
WO2003025743A1 (en) * 2001-09-12 2003-03-27 Hitachi, Ltd. Processor system having java accelerator
JP2004133641A (en) * 2002-10-10 2004-04-30 Renesas Technology Corp Information processor
JP2008269474A (en) * 2007-04-24 2008-11-06 Toshiba Corp Information processor and access control method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02194439A (en) * 1989-01-24 1990-08-01 Nec Corp Program execution system
JPH04322329A (en) * 1991-04-23 1992-11-12 Hitachi Ltd System and method for information processing copying with many machine types
JPH0573398A (en) * 1991-09-13 1993-03-26 Matsushita Electric Ind Co Ltd Information processor
JP2002163116A (en) * 2000-10-10 2002-06-07 Nazomi Communications Inc Java (R) HARDWARE ACCELERATOR USING MICROCODE ENGINE
WO2003025743A1 (en) * 2001-09-12 2003-03-27 Hitachi, Ltd. Processor system having java accelerator
JP2004133641A (en) * 2002-10-10 2004-04-30 Renesas Technology Corp Information processor
JP2008269474A (en) * 2007-04-24 2008-11-06 Toshiba Corp Information processor and access control method

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSNB201000599001; A.V.エイホ、M.S.ラム、R.セシィ、J.D.ウルマン: Information&Computing ex.38 コンパイラ[第2版]-原理・技法・ツール- 第2版, 20090525, p.552,586〜593, 株式会社サイエンス社 *
CSND200900628002; 中川輪土: '特集1 Androidによる組込み開発:第2章 Android高速化テクニック' 組込みプレス Vol.16, 20091001, pp.12〜13, 株式会社技術評論社 *
CSNG201000568020; 太田 淳、茂手木貴彦、三輪 忍、中條拓伯: 'DalvikアクセラレータのためのMIPSシミュレータを用いた評価環境' 先進的計算基盤システムシンポジウム SACSIS2010 論文集 Vol.2010,No.5, 20100520, p.113, 社団法人情報処理学会 *
JPN6014014537; 太田 淳、茂手木貴彦、三輪 忍、中條拓伯: 'DalvikアクセラレータのためのMIPSシミュレータを用いた評価環境' 先進的計算基盤システムシンポジウム SACSIS2010 論文集 Vol.2010,No.5, 20100520, p.113, 社団法人情報処理学会 *
JPN6014014538; A.V.エイホ、M.S.ラム、R.セシィ、J.D.ウルマン: Information&Computing ex.38 コンパイラ[第2版]-原理・技法・ツール- 第2版, 20090525, p.552,586〜593, 株式会社サイエンス社 *
JPN6014014539; 中川輪土: '特集1 Androidによる組込み開発:第2章 Android高速化テクニック' 組込みプレス Vol.16, 20091001, pp.12〜13, 株式会社技術評論社 *

Similar Documents

Publication Publication Date Title
EP0327196B1 (en) Processor simulation
US5991757A (en) Method and system for searching an array for an array value
US5301302A (en) Memory mapping and special write detection in a system and method for simulating a CPU processor
JP3801643B2 (en) Instruction folding processing for computing machines that use the stack
CN1161691C (en) Memory controller for detecting failure of speculation of component being addressed
US7080362B2 (en) Java virtual machine hardware for RISC and CISC processors
US6338160B1 (en) Constant pool reference resolution method
CN100397368C (en) Invalidating storage, clearing buffer entries
US7487330B2 (en) Method and apparatus for transferring control in a computer system with dynamic compilation capability
US7124286B2 (en) Establishing an operating mode in a processor
US6901505B2 (en) Instruction causing swap of base address from segment register with address from another register
US20030149963A1 (en) Condition code flag emulation for program code conversion
JP4485198B2 (en) Processor system with a Java accelerator
US20070118724A1 (en) Java hardware accelerator using microcode engine
US7533246B2 (en) Application program execution enhancing instruction set generation for coprocessor and code conversion with marking for function call translation
JP6108362B2 (en) Conversion to continuous instruction specified child of the non-consecutive instruction specifier
JP5536956B2 (en) Method for managing address space in a computing environment, a computer system, computer program
KR100816781B1 (en) Data processing using multiple instruction sets
US9092215B2 (en) Mapping between registers used by multiple instruction sets
JP5893012B2 (en) The method implemented in a computer for concealing the selected installed features of the multi-function instruction, the computer system, and computer program
US9946542B2 (en) Instruction to load data up to a specified memory boundary indicated by the instruction
US8041876B1 (en) Method and system for providing hardware support for memory protection and virtual memory address translation for a virtual machine
JP3820261B2 (en) External and internal instruction sets of the data processing system
US7568189B2 (en) Code translation and pipeline optimization
JP5680179B2 (en) Address mapping in the virtual processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140609

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141209