JP2005011350A - 未解決命令解決 - Google Patents
未解決命令解決 Download PDFInfo
- Publication number
- JP2005011350A JP2005011350A JP2004180370A JP2004180370A JP2005011350A JP 2005011350 A JP2005011350 A JP 2005011350A JP 2004180370 A JP2004180370 A JP 2004180370A JP 2004180370 A JP2004180370 A JP 2004180370A JP 2005011350 A JP2005011350 A JP 2005011350A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- resolution
- operand
- logic
- unresolved
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
【課題】電力消費および実現スペースに限りがある多機能電子機器(例えば携帯電話)のメモリ使用量および電力消費量を削減する。
【解決手段】機能を実現する命令のオペランドが未解決参照を含むか否かを判別し、未解決命令をその参照解決コードに関連するオペランドを含む所定の命令で置き換える。先行する命令を置換した置き換え命令を含む命令を受け取ると、その置き換え命令が有する参照コードを識別するオペランドを使用して参照コード解決を実行する。
【選択図】図1
【解決手段】機能を実現する命令のオペランドが未解決参照を含むか否かを判別し、未解決命令をその参照解決コードに関連するオペランドを含む所定の命令で置き換える。先行する命令を置換した置き換え命令を含む命令を受け取ると、その置き換え命令が有する参照コードを識別するオペランドを使用して参照コード解決を実行する。
【選択図】図1
Description
本発明は一般的にプロセッサに係わり、更に詳細にはプロセッサで実行されるマシン語命令に関する。
多くの電子機器はバッテリー駆動であるため、出来るだけ電力消費が少ないのが好ましい。1例はセルラ電話機である。更に、セルラ電話機の様な電子機器においては種々のマルチメディア機能を搭載することが望ましい。マルチメディア機能の例として、これに限定するわけではないが、ゲーム、オーディオ復号器、デジタル・カメラなどが挙げられる。従って、他の全てが同等であれば、高速で、出来る限り電力消費が少なく、また必要なメモリも可能な限り少なくなるやり方でその様な機能を電子機器を実現することが望ましい。この分野における改善が望まれる。
好適な実施例によれば、1つの方法は、命令が未解決参照を含むか否かを判定し、その未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換えることを含む。
別の実施例では、1つの方法は、1つの先行命令が置き換えられた置換命令を少なくとも1つの命令が含む複数の命令を受け取り、受け取った命令のいずれかが置換命令を含むか否かを判定し、受け取った命令が置換命令を含むという判定に基づき、解決コードを実行して参照を解決することを含む。置換命令は解決コードを識別するオペランドを含む。
更に別の実施例では、プロセッサが復号ロジックと参照解決実行ロジックとを含む。この復号ロジックは複数の命令を復号し、命令のいずれかが所定の命令を含むか否かを判定する。所定の命令は変換コードに関連するオペランドを含む。1つの命令が所定の命令であることを復号ロジックが判定すると、参照解決実行ロジックが変換コードを実行しメモリ参照を解決する。
(表記方法および専門用語)
特定の用語が以下の説明および特許請求の範囲を通して、特定のシステム構成要素を示すために使用されている。当業者には理解されるように、半導体製造会社は構成要素を異なる名称で呼ぶ場合がある。本文書は機能は同じであるが名称の異なる構成要素を区別することは意図していない。以下の説明および特許請求の範囲の中で、用語「含む:including」および「包含する:comprising」は制約無しで使用されており、従って「含むが、これに限定するわけではなく..」と解釈されるべきである。また用語「結合する:couple」または「結合する:couples」は、直接または間接接続のいずれかを意味するように意図している。従って、第1装置が第2装置に結合する場合、その接続は直接接続を通して、または他の装置または接続を介しての間接接続を通しての接続である。
特定の用語が以下の説明および特許請求の範囲を通して、特定のシステム構成要素を示すために使用されている。当業者には理解されるように、半導体製造会社は構成要素を異なる名称で呼ぶ場合がある。本文書は機能は同じであるが名称の異なる構成要素を区別することは意図していない。以下の説明および特許請求の範囲の中で、用語「含む:including」および「包含する:comprising」は制約無しで使用されており、従って「含むが、これに限定するわけではなく..」と解釈されるべきである。また用語「結合する:couple」または「結合する:couples」は、直接または間接接続のいずれかを意味するように意図している。従って、第1装置が第2装置に結合する場合、その接続は直接接続を通して、または他の装置または接続を介しての間接接続を通しての接続である。
本発明の好適な実施例を更に詳細に説明するために、添付図を参照する。
以下の説明は本発明の種々の実施例を提示している。1つまたはいくつかのこれらの実施例は好適であるが、開示されているこれらの実施例は、特に断りの無い限り、特許請求の範囲を含む開示の範囲を制限するように解釈または使用されるべきではない。加えて、当業者は理解されるように以下の説明は広範な応用範囲を有し、全ての実施例の説明はその実施例の例のみの意味であり、特許請求の範囲を含む開示の範囲をその実施例に制限することを示すことを意図していない。
此処に開示されている主題はプログラム可能な電子機器であって、例えばスタックベース言語(例えばJava(登録商標))に関連するコンピュータ・プログラムが格納されているメモリを有するプロセッサを意図している。コンピュータ・プログラムは、ハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの両方で実現される「仮想」マシンを通して実行される。仮想マシンはコンピュータ・プログラムをマシンコード(例えばJavaバイトコード)に変換し、これがプロセッサで実行される。
Javaバイトコードは「命令」と呼ばれる基本コンピュータ操作を含む。各命令は2つのフィールド、すなわち、操作コード(“オプコード(opcode)”)と1つまたは複数のオペランドとを含む。オプコードは、仮想マシンに対して命令によって要求される基本コンピュータ操作を識別する。例えば、操作「IINC」(整数増分:integer increment)はオプコード“132”で表される。仮想マシンがオプコード“132”を含むJavaバイトコードを復号する際、整数増分操作がその命令に関連するオペランドに対して実施される。
各々のオペランドには2つの明確なフィールド、すなわち、「具象(concrete)」または「シンボリック(symbolic)」がある。物理的構成要素(例えば定数値)を直接含む具象オペランドは、具象直接オペランドと呼んでもよい。物理的構成要素への参照を含む具象オペランドは、具象間接オペランドと呼んでもよい。具象間接オペランドは、参照されている物理的構成要素が存在しているメモリ位置に対するポインタおよびオフセットを含む。マシン(例えばプロセッサ、仮想マシン)は命令が復号されると直ちに具象オペランドを具備した命令を実行する。
具象オペランドとは異なり、シンボリック・オペランドは間接的に、参照される構成要素の仮想位置を通して構成要素を参照する。シンボリック参照は、その内のいくつかが未だメモリ内にロードされていないコンピュータ・プログラムの構成要素にアクセスするために使用される。目標構成要素がメモリ内にロードされていない場合、その構成要素に対する具象参照(例えば、その物理的アドレス)は利用できない。シンボリック形式で表現されたメソッドシグネチュアはシンボリック参照の1例である。シンボリック参照を共なった命令を実行するために、マシンはシンボリックに参照された構成要素であるメモリの位置を確認し、必要に応じてメモリ内にロードしなければならない。一度、その構成要素がメモリ内にロードされると、そのシンボリック参照が具象オペランドと置き換えられて命令が実行される。シンボリック参照を具象オペランドと置き換える処理過程は、此処では参照解決(reference resolution)と呼ばれている。シンボリック・オペランドを共なった全ての操作は、未解決(unresolved)命令と呼ばれ、実行する前に参照解決が必要である。
以下にシステムの実施例の操作を説明するが、その中でコンピュータ・プログラムはマシン上で実行する前に参照解決を実行する。この開示および以下の特許請求の範囲はシステムおよびマシンの特定の型式を限定するものでは無いが、システムおよびプロセッサの実施例を以下に説明する。プロセッサの説明に続き、仮想マシンの使用に関する詳細を説明する。
此処に記述されているプロセッサは、特にJavaバイトコードまたは同等のコードを実行するのに適したものである。良く知られているように、Javaは特に組込型アプリケーションに適している。Javaは比較的高密度(dense)な言語であり、これは平均的に各々の命令が種々の他のプログラミング言語に比較して多数の機能を実行することを意味する。Javaのこの高密度な性質は特に、スペースおよび電力消費を節約するために出来るだけ少ないメモリを含むことが好適な、携帯可能で、バッテリー駆動の機器に恩恵を与える。しかしながらJavaコードを実行させる理由は、本開示または添付の特許請求の範囲に本質的なものではない。
次に図1を参照すると、本発明の実施例に基づくシステム100が示されている。図示されるように、このシステムは少なくとも2つのプロセッサ102および104を含む。プロセッサ102は本開示の目的によりJavaスタックマシン(Java Stack Machine:“JSM”)と呼ばれ、プロセッサ104は主プロセッサ装置(Main Processor Unit:“MPU”)と呼ばれる。システム100はまたメモリ106を含み、これはJSM102およびMPU104の両方に接続されており、従って両プロセッサからアクセス可能である。メモリ106の少なくとも一部は両プロセッサで共有されていて、これは両プロセッサが同一の共有メモリ位置をアクセス出来ることを意味する。更に、もし必要で有ればメモリ106の一部を1つのプロセッサまたは他方に専用に割り当てることも可能である。システム100はまたJava仮想マシン(Java Virtual Machine:“JVM”)108、コンパイラ110,およびディスプレイ114を含む。JSM102は好適にキーボードのような1つまたは複数の入力/出力(「I/O」)装置に対するインタフェースを含み、使用者がシステム100の種々の態様を制御出来るようにしている。加えて、データ・ストリームがI/O空間からJSM102の中に取り込まれ、JSM102で処理される。他の構成要素(特に図示せず)も必要に応じて含まれる。システム100は広範な電子機器システムを代表したり適合することが可能であるが、此処に例として揚げる実施例ではバッテリー駆動で、通信機器である、例えば移動体セルラ電話機を含むものとする。
図1の参照を続けると、一般的に良く知られているように、Javaコードは複数の「バイトコード」112を含む。バイトコード112はJVM108に供給され、コンパイラ110でコンパイルされ、JSM102および/またはMPU104に供給されてそこで実行される。本発明の実施例に依れば、JSM102は少なくともいくつかの、また一般的にはほとんどのJavaバイトコードを実行する。しかしながら必要に応じて、JSM102は、JSM102で実行されないかまたは実行可能でない1つまたは複数のJavaバイトコードをMPU104で実行するように要求する。Javaバイトコードの実行に加えて、MPU104は非Java命令も実行する。MPU104はまたオペレーティング・システム(「O/S」)(特には図示せず)の対応も行い、これはシステム・メモリ管理、JVM108およびシステム上で実行されるほとんどのまたは全ての基本タスクのスケジューリングを行うシステム・タスク管理、ディスプレイ114の管理、入力機器からの入力受け取り等を含む、種々の機能を実行する。制限無しに、Javaコードは、マルチメディア、ゲームまたはウェブ使用アプリケーションを含む種々のアプリケーションの任意の1つをシステム100内で実行するために使用可能であり、一方、O/Sおよびその他の基本アプリケーションを含む非Javaコードはシステム上のMPU104上で継続して実行可能である。
JVM108は一般的にソフトウェアとハードウェアとの組み合わせを含む。ソフトウェアにはコンパイラ110が含まれ、ハードウェアにはJSM102が含まれる。JVMはクラス・ローダ(Class Loader)、バイトコード・ベリファイヤ(Bytecode Verifier)、ガーベイジ・コレクタ(Garbage Collector)、およびJSMプロセッサ102上で実行されないバイトコードを解釈するためのバイトコード・インタプリタ・ループを含む。
本発明の好適な実施例によれば、JVM108は此処に説明する参照解決技術を実行するために2つの命令セットを使用する。1つの命令セットは実行命令セット(execution instruction set“E−IS”)と呼ばれ、もう一方の命令は解決命令セット(resolution instruction set“R−IS”)と呼ばれる。R−ISはJVM108用に設計された命令を含み、シンボリック参照を具象オペランドに置き換え、標準Javaバイトコードとシステム設計者が望ましいと見なす追加バイトコードとを使用することにより、参照解決を効率的に実行する。この追加バイトコードは、開示された方法を実現するシステム上で参照解決の目的のために考案されたマシン語命令を表す。現在解決されていない命令は、参照解決のためにR−ISから命令を使用する。更に、R−IS内の1つの命令のオペランドは未解決命令のオペランドに関連するシンボリック参照を含む。
E−ISは標準Javaバイトコードと同様に「未解決識別子命令(unresolved identifier instruction)」と呼ばれる命令とを含む。未解決識別子命令は、シンボリック参照を含むJavaバイトコード内の命令に関連してよく、オプコードとオペランドとを含んでもよい。未解決識別子命令のオプコードは標準Javaバイトコード内で使用されないオプコードを含み、一般的にその命令を未解決識別子命令として識別する。オペランドは以下に説明するように、未解決命令に対する参照解決命令を有するR−ISコード内の位置を含む。
実施例によれば、Javaバイトコードは一般的に2つの段を通される。これら2つの段は準備段(preparation stage)と参照解決実行段とを含む。これら2つの段は実行過程の種々の時刻およびシステム100内の種々の機能ユニット(例えばJSM102)の中で生じる。これら2つの段は好適にはJSM102および/またはMPU104で命令が実際に実行される前にいつでも生じる。従って、2つの命令セットは種々の構成要素の中に組み込まれているか、または関連するシステムの種々の構成要素の中に分散されてよい。
次に図2を参照すると、準備段の例が図示されている。図2の例ではバイトコード112(図2の左側に配置されている)は2つの命令212および214を含む。命令212はオプコード216と具象オペランド218を含み、これは参照解決は必要ない。命令214はオプコード220とシンボリック・オペランド222とを含み、これは参照解決を必要とする。シンボリック・オペランド222はシンボルテーブル223に含まれるシンボリック・データ224を含むか、示す。準備段の間、バイトコード112はE−ISに変換されてよい。更に詳細には、この準備段はシンボリック参照を含む全ての命令を識別し、その様な命令を先に説明した未解決識別子命令で置換することを含む。従って、図2に図示されるように、シンボリック・オペランド222を共なった命令214は未解決識別子命令226で置き換えられ、未解決識別子命令226は未解決識別子命令オプコード228と関連するオペランド230とを含む。未解決識別子命令オペランド230はR−ISコード内の参照命令234を示す。参照命令234は参照オプコード236を含む。参照命令オペランド232は、初期に、命令214に関連するシンボル・データ224を含んでもよい。
参照変換を必要としない命令212は、準備段で修正変更することなくE−ISに変換されてよい。説明を容易にするために2つの命令が示されているが、準備段は任意の数のバイトコードと実現するシステムに応じて種々のサイズのバイトコードを準備してよい。
図2に図示されている準備段は、置き換えロジックに結合された復号を含むプロセッサの様なシステムで実行される。復号ロジックと置き換えロジックとは共に動作し、シンボリック参照(好適には復号ロジック)を含む命令を識別し、かかる命令を未解決識別子(好適には置き換えロジック)を具備する命令で置き換え、先に述べたように解決コードを生成する。準備段を実行するシステムはJSMのようなプロセッサを含んでよい。システムはまた、参照解決段を実行する以下に説明する任意のまたは全ての構成要素を含んでよい。
図3は本発明に基づく参照解決実行段の例を図示する。この段においては、全ての未解決参照が、参照解決コードを実行することで変換される。図3の左側は先にE−IS内に準備されたバイトコード112を示す。実行段は、最初にバイトコード112を復号することにより、準備段終了後任意の時刻に開始されてよい。図3の例の中でオプコード216は復号ロジック240で復号される。復号ロジック240はJVM108および/またはJSM102の中で実行される。次にオペランド218が実行ロジック242に送られ、そこで命令が実行される。復号ロジック240と同様、実行ロジック242はJVM108および/またはJSM102の中で実行される。
命令212の実行中または実行後、未解決識別子命令オプコード228が復号ロジック240に供給される。復号ロジック240はその命令を未解決識別子命令と認識し、参照解決命令234の位置を含む関連するオペランド230が実行ロジック242に供給されるようにする。これに応じて、実行ロジック242は未解決オペランド230を復号ロジック244に供給する。復号ロジック244は次に変換命令234を取り出し、オペランド232を変換することが可能な実行ロジックとして実行ロジック246を識別する。解決命令234はシンボリック参照を対応する具象オペランドを決定することで解決するように実行される。次に解決オペランド232は、解決命令234を実行する解決実行ロジック246に供給されてよい。解決命令234が実行された結果、具象オペランドが供給されるかまたは解決オペランド232で参照されるオブジェクトに対して得られる。次に未解決オプコード228が、準備段の前に元のオプコード220(図2)に書き換えられるかまたはE−IS内の他の全てのオプコードに書き換えられる。具象オペランドが未解決オペランド222を置き換えてよく、これにより命令226を解決する。実行ロジック242または複合ロジック244が次に解決された命令226を実行してよい。
本発明の好適な実施例によれば、例として示す実行段はまた、先に決定された具象オペランドを将来の参照解決に再利用してよい。例えば、図4は解決命令234を利用する未解決命令226と260を示す。解決命令234による命令226の解決中に、具象オペランドが決定される。この具象オペランドは解決オペランド232の中に格納されるか、または変換テーブル248のエントリー250の中に格納される。解決命令234は、此処で具象オペランド232を含むかまたは変換テーブル248内で利用可能な具象データを有してよく、解決命令234は解決されたものと見なされる。解決された解決命令234による命令260の解決中、解決された解決命令234が実行される必要はない。代わって、命令260が先に解決された命令226で書き換えられる。
当業者は以上の説明を完全に理解することにより多数の変形および修正変更が明らかであろう。例えば、JSM102は先に説明した1つまたは複数の参照変換技術を実行する。以下の特許請求の範囲はそれら全ての変形および修正変更を包含するものと解釈されることを意図している。
以上の説明に関して更に以下の項を開示する。
(1)復号ロジックと、
上記復号ロジックに接続された置き換えロジックと、
参照変換ロジックと、を含むシステムであって、
上記復号ロジックと置き換えロジック機能とが共に、1つの命令が未解決参照を含むか否かを判別し、未解決参照を有する命令を参照解決コードに関連するオペランドを含む所定の命令で置き換え、
上記復号ロジックが複数の命令を復号し、いずれかの命令が上記所定の命令を含むか否かを判別し、上記復号ロジックが命令が上記所定の命令であることを判別すると、上記参照解決実行ロジックが上記その解決コードを実行してメモリ参照を解決する、上記システム。
(1)復号ロジックと、
上記復号ロジックに接続された置き換えロジックと、
参照変換ロジックと、を含むシステムであって、
上記復号ロジックと置き換えロジック機能とが共に、1つの命令が未解決参照を含むか否かを判別し、未解決参照を有する命令を参照解決コードに関連するオペランドを含む所定の命令で置き換え、
上記復号ロジックが複数の命令を復号し、いずれかの命令が上記所定の命令を含むか否かを判別し、上記復号ロジックが命令が上記所定の命令であることを判別すると、上記参照解決実行ロジックが上記その解決コードを実行してメモリ参照を解決する、上記システム。
(2)第1項記載のシステムにおいて、置き換えロジックが未解決参照を有する全ての命令を、参照解決コードに関連する1つのオペランドを含む上記所定の命令で置き換える、上記システム。
(3)第1項記載のシステムにおいて、上記所定の命令のオペランドが参照解決コードを含むメモリ位置を含む、上記システム。
(4)第1項記載のシステムにおいて、上記所定の命令が解決された命令で置き換えられる、上記システム。
(5)第1項記載のシステムにおいて、参照解決実行ロジックが参照解決を変換テーブルの中に格納するかまたは置き換え命令のオペランドの中に直接格納し、後に行われるメモリ参照の解決で使用する、上記システム。
(6)第1項記載のシステムにおいて、復号ロジックと置き換えロジックと参照解決実行ロジックとが仮想マシンの中で実現されている、上記システム。
(7)第1項記載のシステムがプロセッサ・コアを含み、上記復号ロジックと上記置き換えロジックとが上記コアの中で実現されている、前記システム。
(8)命令が未解決参照を含むか否かを判別するステップと、
未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換るステップと、
少なくとも1つの命令が先行する命令を置き換えた置き換え命令を含む複数の命令を受け取るステップと、
受け取った命令が上記置き換え命令を含むか否かを判別するステップと、
受け取った命令が置き換え命令を含むと判別すると、参照を解決するために解決コードを実行するステップと、を含む方法。
未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換るステップと、
少なくとも1つの命令が先行する命令を置き換えた置き換え命令を含む複数の命令を受け取るステップと、
受け取った命令が上記置き換え命令を含むか否かを判別するステップと、
受け取った命令が置き換え命令を含むと判別すると、参照を解決するために解決コードを実行するステップと、を含む方法。
(9)第8項記載の方法が更に、解決参照を有する全ての命令を、参照解決コードに関連する1つのオペランドを含む所定の命令で置き換えることを含む、上記方法。
(10)第8項記載の方法において、上記所定の命令のオペランドが参照解決コードを含むメモリ位置を含む、上記方法。
(11)第8項記載の方法において、参照を解決するために上記解決コードを実行した後、上記置き換え命令を完全に解決された命令に置き換える、上記方法。
(12)第8項記載の方法において、参照を解決するために上記解決コードを実行した後、上記解決された参照を変換テーブルに格納するかまたは、再帰的に、後続の参照変換に対する置き換え命令のオペランドの中に格納する、上記方法。
(13)命令が未解決参照を含むか否かを判別するステップと、
未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換えるステップと、を含む、方法。
未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換えるステップと、を含む、方法。
(14)第13項記載の方法が更に、未解決参照を有する全ての命令を、参照解決コードに関連するオペランドを含む上記所定の命令で置き換えるステップを含む、上記方法。
(15)第13項記載の方法において、上記所定の命令のオペランドが参照解決コードを含むメモリ位置を含む、上記方法。
(16)少なくとも1つの命令が先行する命令を置き換えた置き換え命令を含む複数の命令を受け取るステップと、
上記受け取った命令のいずれかが、上記置き換え命令を含むか否かを判別するステップと、
受け取られた命令が上記置き換え命令を含むと判別すると、参照を解決するために解決コードを実行するステップと、を含む方法において、
上記置き換え命令が参照コードを識別するオペランドを含む、上記方法。
上記受け取った命令のいずれかが、上記置き換え命令を含むか否かを判別するステップと、
受け取られた命令が上記置き換え命令を含むと判別すると、参照を解決するために解決コードを実行するステップと、を含む方法において、
上記置き換え命令が参照コードを識別するオペランドを含む、上記方法。
(17)第16項記載の方法において、上記解決コードを実行して参照を解決した後、上記置き換え命令を完全に解決された命令で置き換える、上記方法。
(18)第16項記載の方法において、置き換え命令のオペランドが上記解決コードに対する位置を含む、前記方法。
(19)第16項記載の方法において、上記解決コードを実行して参照を解決した後、解決された参照を変換テーブルの中に格納するかまたは、後続の参照解決に対する上記置き換え命令のオペランドの中に直接格納する、上記方法。
(20)システムであって、
復号ロジックと、
参照解決実行ロジックとを含む、上記システムにおいて、
上記復号ロジックが複数の命令を復号し、いずれかの命令が解決コードに関連するオペランドを含む所定の命令を含むか否かを判別し、復号ロジックが或る命令が上記所定の命令であると判別するとそれに応じて上記参照変換実行ロジックが解決コードを実行してメモリ参照を変換する、上記システム。
復号ロジックと、
参照解決実行ロジックとを含む、上記システムにおいて、
上記復号ロジックが複数の命令を復号し、いずれかの命令が解決コードに関連するオペランドを含む所定の命令を含むか否かを判別し、復号ロジックが或る命令が上記所定の命令であると判別するとそれに応じて上記参照変換実行ロジックが解決コードを実行してメモリ参照を変換する、上記システム。
(21)第20項記載のシステムにおいて、上記所定の命令が返還された命令で置き換えられる、上記システム。
(22)第20項記載のシステムにおいて、参照解決実行ロジックが参照解決を変換テーブルの中に格納するかまたは、メモリ参照の解決の中で引き続き使用する上記置き換え命令のオペランドの中に直接格納する、上記システム。
(23)第20項記載のシステムにおいて、上記復号ロジックおよび参照解決実行ロジックが仮想マシンの中に実現されている、上記システム。
(24)第20項記載のシステムにおいて、システムがプロセッサを含む、上記システム。
(25)システムであって、
複数の命令を受け取りそして復号する復号ロジックと、
上記復号ロジックに接続された置き換えロジックと、を含む上記システムにおいて、
上記復号ロジック機能と置き換えロジック機能とが共に、1つの命令が未解決参照を含むか否かを判別し、未解決参照を有する命令を参照解決コードに関連するオペランドを含む所定の命令で置き換える、前記システム。
複数の命令を受け取りそして復号する復号ロジックと、
上記復号ロジックに接続された置き換えロジックと、を含む上記システムにおいて、
上記復号ロジック機能と置き換えロジック機能とが共に、1つの命令が未解決参照を含むか否かを判別し、未解決参照を有する命令を参照解決コードに関連するオペランドを含む所定の命令で置き換える、前記システム。
(26)第25項記載のシステムにおいて、置き換えロジックが未解決参照を有する全ての命令を、参照解決コードに関連する1つのオペランドを含む上記所定の命令で置き換える、上記システム。
(27)第25項記載のシステムにおいて、上記所定の命令のオペランドが、参照解決コードを含むメモリ位置の場所を含む、上記システム。
(28)第25項記載のシステムにおいて、上記復号ロジックおよび置き換えロジックが仮想マシンの中に実現されている、上記システム。
(29)第25項記載のシステムがプロセッサ・コアを含み、上記復号ロジックおよび置き換えロジックが前記コアの中に実現されている、上記システム。
(30)準備方法は、1つの命令が未解決参照を含むか否かを判別し、未解決命令を参照解決コードに関連するオペランドを含む所定の命令で置き換えることを含む。解決実行方法は、少なくとも1つの命令が先行する命令を置き換えた置き換え命令を含む複数の命令を受け取り、受け取った命令が置き換え命令を含むことを判別するとそれに応じて、参照を解決するために解決コードを実行することを含む。置き換え命令は解決コードを識別するオペランドを含む。これらの方法に関連するプロセッサも開示されている。
100 システム
102 Javaスタックマシン
104 主プロセッサ装置
106 メモリ
108 Java仮想マシン
110 コンパイラ
112 バイトコード
114 ディスプレイ
212 命令
214 命令
226 未解決識別子命令
234 参照解決命令
102 Javaスタックマシン
104 主プロセッサ装置
106 メモリ
108 Java仮想マシン
110 コンパイラ
112 バイトコード
114 ディスプレイ
212 命令
214 命令
226 未解決識別子命令
234 参照解決命令
Claims (2)
- 復号ロジックと、
前記復号ロジックに接続された置き換えロジックと、
参照変換ロジックと、を備えたシステムであって、
前記復号ロジックと前記置き換えロジックとが共に、1つの命令が未解決参照を含むか否かを判別し、未解決参照を有する命令を参照解決コードに関連するオペランドを含む所定の命令で置き換え、
前記復号ロジックが、複数の命令を復号し、いずれかの命令が前記所定の命令を含むか否かを判別し、
命令が前記所定の命令であることを前記復号ロジックが判別すると、前記参照解決実行ロジックが前記解決コードを実行してメモリ参照を解決する、
前記システム。 - 命令が未解決参照を含むか否かを判別するステップと、
未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換えるステップと、
少なくとも1つの命令が先行する命令を置き換えた置き換え命令を含む複数の命令を受け取るステップと、
受け取った命令が前記置き換え命令を含むか否かを判別するステップと、
受け取った命令が前記置き換え命令を含むと判別すると、参照を解決するために解決コードを実行するステップと、
を備えた方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03291503A EP1489492A1 (en) | 2003-06-19 | 2003-06-19 | Two-step instruction resolution |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005011350A true JP2005011350A (ja) | 2005-01-13 |
Family
ID=33396042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004180370A Abandoned JP2005011350A (ja) | 2003-06-19 | 2004-06-18 | 未解決命令解決 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20040260911A1 (ja) |
EP (1) | EP1489492A1 (ja) |
JP (1) | JP2005011350A (ja) |
KR (1) | KR20040111139A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7743371B1 (en) * | 2004-03-10 | 2010-06-22 | Apple Inc. | System and method for dynamically loading object modules |
WO2006084247A2 (en) * | 2005-02-04 | 2006-08-10 | Cellfire, Inc. | Delivering targeted advertising to mobile devices |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367685A (en) * | 1992-12-22 | 1994-11-22 | Firstperson, Inc. | Method and apparatus for resolving data references in generated code |
US6382846B1 (en) * | 1998-01-09 | 2002-05-07 | Industial Technology Research Institute | Intermediate instruction execution processor which resolves symbolic references without modifying intermediate instruction code |
DE60019529T2 (de) * | 1999-04-23 | 2006-02-02 | Koninklijke Philips Electronics N.V. | Elektrisches gerät mit batteriehalter |
US7076771B2 (en) * | 2000-12-01 | 2006-07-11 | Arm Limited | Instruction interpretation within a data processing system |
-
2003
- 2003-06-19 EP EP03291503A patent/EP1489492A1/en not_active Withdrawn
-
2004
- 2004-04-23 US US10/831,470 patent/US20040260911A1/en not_active Abandoned
- 2004-06-18 JP JP2004180370A patent/JP2005011350A/ja not_active Abandoned
- 2004-06-18 KR KR1020040045355A patent/KR20040111139A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP1489492A1 (en) | 2004-12-22 |
KR20040111139A (ko) | 2004-12-31 |
US20040260911A1 (en) | 2004-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11385872B2 (en) | Extending a virtual machine instruction set architecture | |
JP3945829B2 (ja) | 仮想マシン命令を実行するための処理装置 | |
US8024554B2 (en) | Modifying an instruction stream using one or more bits to replace an instruction or to replace an instruction and to subsequently execute the replaced instruction | |
KR100529416B1 (ko) | 스택기반컴퓨터를위한명령폴딩방법및장치 | |
EP1557760A2 (en) | Method and system for improving performance of java virtual machine | |
US9038039B2 (en) | Apparatus and method for accelerating java translation | |
US20040015912A1 (en) | Method of byte code quickening: quick instructions for method invocation | |
US7565385B2 (en) | Embedded garbage collection | |
KR100493893B1 (ko) | 자바 프로그램에서 클래스 로딩 과정을 단축시키는 시스템및 방법 | |
JP2005267640A (ja) | 機能を呼び出す方法と装置 | |
JP2005011350A (ja) | 未解決命令解決 | |
WO2003005187A1 (en) | Method and apparatus for executing stack-based programs | |
US7194612B2 (en) | System and method to export pre-boot system access data to be used during operating system runtime | |
Ko et al. | A double-issue Java processor design for embedded applications | |
Glossner et al. | Delft-Java dynamic translation | |
EP1387256B1 (en) | Program counter adjustment based on the detection of an instruction prefix | |
Agosta et al. | Jelatine: a virtual machine for small embedded systems | |
Glossner et al. | A Java-Enabled DSP | |
WO2004109506A2 (en) | Proximity-based addressing for supporting in-place execution in virtual machines | |
Shen et al. | A server-side pre-linking mechanism for updating embedded clients dynamically | |
WO2002048864A2 (en) | System registers for an object-oriented processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070618 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20090916 |