(57)【要約】【課題】電力消費および実現スペースに限りがある多機能電子機器（例えば携帯電話）のメモリ使用量および電力消費量を削減する。【解決手段】機能を実現する命令のオペランドが未解決参照を含むか否かを判別し、未解決命令をその参照解決コードに関連するオペランドを含む所定の命令で置き換える。先行する命令を置換した置き換え命令を含む命令を受け取ると、その置き換え命令が有する参照コードを識別するオペランドを使用して参照コード解決を実行する。【選択図】図１
2005011350.tif 000002
【特許請求の範囲】
【請求項１】
復号ロジックと、
前記復号ロジックに接続された置き換えロジックと、
参照変換ロジックと、を備えたシステムであって、
前記復号ロジックと前記置き換えロジックとが共に、１つの命令が未解決参照を含むか否かを判別し、未解決参照を有する命令を参照解決コードに関連するオペランドを含む所定の命令で置き換え、
前記復号ロジックが、複数の命令を復号し、いずれかの命令が前記所定の命令を含むか否かを判別し、
命令が前記所定の命令であることを前記復号ロジックが判別すると、前記参照解決実行ロジックが前記解決コードを実行してメモリ参照を解決する、
前記システム。
【請求項２】
命令が未解決参照を含むか否かを判別するステップと、
未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換えるステップと、
少なくとも１つの命令が先行する命令を置き換えた置き換え命令を含む複数の命令を受け取るステップと、
受け取った命令が前記置き換え命令を含むか否かを判別するステップと、
受け取った命令が前記置き換え命令を含むと判別すると、参照を解決するために解決コードを実行するステップと、
を備えた方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にプロセッサに係わり、更に詳細にはプロセッサで実行されるマシン語命令に関する。
【背景技術】
【０００２】
多くの電子機器はバッテリー駆動であるため、出来るだけ電力消費が少ないのが好ましい。１例はセルラ電話機である。更に、セルラ電話機の様な電子機器においては種々のマルチメディア機能を搭載することが望ましい。マルチメディア機能の例として、これに限定するわけではないが、ゲーム、オーディオ復号器、デジタル・カメラなどが挙げられる。従って、他の全てが同等であれば、高速で、出来る限り電力消費が少なく、また必要なメモリも可能な限り少なくなるやり方でその様な機能を電子機器を実現することが望ましい。この分野における改善が望まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
好適な実施例によれば、１つの方法は、命令が未解決参照を含むか否かを判定し、その未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換えることを含む。
【０００４】
別の実施例では、１つの方法は、１つの先行命令が置き換えられた置換命令を少なくとも１つの命令が含む複数の命令を受け取り、受け取った命令のいずれかが置換命令を含むか否かを判定し、受け取った命令が置換命令を含むという判定に基づき、解決コードを実行して参照を解決することを含む。置換命令は解決コードを識別するオペランドを含む。
【０００５】
更に別の実施例では、プロセッサが復号ロジックと参照解決実行ロジックとを含む。この復号ロジックは複数の命令を復号し、命令のいずれかが所定の命令を含むか否かを判定する。所定の命令は変換コードに関連するオペランドを含む。１つの命令が所定の命令であることを復号ロジックが判定すると、参照解決実行ロジックが変換コードを実行しメモリ参照を解決する。
【０００６】
（表記方法および専門用語）
特定の用語が以下の説明および特許請求の範囲を通して、特定のシステム構成要素を示すために使用されている。当業者には理解されるように、半導体製造会社は構成要素を異なる名称で呼ぶ場合がある。本文書は機能は同じであるが名称の異なる構成要素を区別することは意図していない。以下の説明および特許請求の範囲の中で、用語「含む：ｉｎｃｌｕｄｉｎｇ」および「包含する：ｃｏｍｐｒｉｓｉｎｇ」は制約無しで使用されており、従って「含むが、これに限定するわけではなく．．」と解釈されるべきである。また用語「結合する：ｃｏｕｐｌｅ」または「結合する：ｃｏｕｐｌｅｓ」は、直接または間接接続のいずれかを意味するように意図している。従って、第１装置が第２装置に結合する場合、その接続は直接接続を通して、または他の装置または接続を介しての間接接続を通しての接続である。
【０００７】
本発明の好適な実施例を更に詳細に説明するために、添付図を参照する。
【実施例】
【０００８】
以下の説明は本発明の種々の実施例を提示している。１つまたはいくつかのこれらの実施例は好適であるが、開示されているこれらの実施例は、特に断りの無い限り、特許請求の範囲を含む開示の範囲を制限するように解釈または使用されるべきではない。加えて、当業者は理解されるように以下の説明は広範な応用範囲を有し、全ての実施例の説明はその実施例の例のみの意味であり、特許請求の範囲を含む開示の範囲をその実施例に制限することを示すことを意図していない。
【０００９】
此処に開示されている主題はプログラム可能な電子機器であって、例えばスタックベース言語（例えばＪａｖａ（登録商標））に関連するコンピュータ・プログラムが格納されているメモリを有するプロセッサを意図している。コンピュータ・プログラムは、ハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの両方で実現される「仮想」マシンを通して実行される。仮想マシンはコンピュータ・プログラムをマシンコード（例えばＪａｖａバイトコード）に変換し、これがプロセッサで実行される。
【００１０】
Ｊａｖａバイトコードは「命令」と呼ばれる基本コンピュータ操作を含む。各命令は２つのフィールド、すなわち、操作コード（“オプコード（ｏｐｃｏｄｅ）”）と１つまたは複数のオペランドとを含む。オプコードは、仮想マシンに対して命令によって要求される基本コンピュータ操作を識別する。例えば、操作「ＩＩＮＣ」（整数増分：ｉｎｔｅｇｅｒ  ｉｎｃｒｅｍｅｎｔ）はオプコード“１３２”で表される。仮想マシンがオプコード“１３２”を含むＪａｖａバイトコードを復号する際、整数増分操作がその命令に関連するオペランドに対して実施される。
【００１１】
各々のオペランドには２つの明確なフィールド、すなわち、「具象（ｃｏｎｃｒｅｔｅ）」または「シンボリック（ｓｙｍｂｏｌｉｃ）」がある。物理的構成要素（例えば定数値）を直接含む具象オペランドは、具象直接オペランドと呼んでもよい。物理的構成要素への参照を含む具象オペランドは、具象間接オペランドと呼んでもよい。具象間接オペランドは、参照されている物理的構成要素が存在しているメモリ位置に対するポインタおよびオフセットを含む。マシン（例えばプロセッサ、仮想マシン）は命令が復号されると直ちに具象オペランドを具備した命令を実行する。
【００１２】
具象オペランドとは異なり、シンボリック・オペランドは間接的に、参照される構成要素の仮想位置を通して構成要素を参照する。シンボリック参照は、その内のいくつかが未だメモリ内にロードされていないコンピュータ・プログラムの構成要素にアクセスするために使用される。目標構成要素がメモリ内にロードされていない場合、その構成要素に対する具象参照（例えば、その物理的アドレス）は利用できない。シンボリック形式で表現されたメソッドシグネチュアはシンボリック参照の１例である。シンボリック参照を共なった命令を実行するために、マシンはシンボリックに参照された構成要素であるメモリの位置を確認し、必要に応じてメモリ内にロードしなければならない。一度、その構成要素がメモリ内にロードされると、そのシンボリック参照が具象オペランドと置き換えられて命令が実行される。シンボリック参照を具象オペランドと置き換える処理過程は、此処では参照解決（ｒｅｆｅｒｅｎｃｅ  ｒｅｓｏｌｕｔｉｏｎ）と呼ばれている。シンボリック・オペランドを共なった全ての操作は、未解決（ｕｎｒｅｓｏｌｖｅｄ）命令と呼ばれ、実行する前に参照解決が必要である。
【００１３】
以下にシステムの実施例の操作を説明するが、その中でコンピュータ・プログラムはマシン上で実行する前に参照解決を実行する。この開示および以下の特許請求の範囲はシステムおよびマシンの特定の型式を限定するものでは無いが、システムおよびプロセッサの実施例を以下に説明する。プロセッサの説明に続き、仮想マシンの使用に関する詳細を説明する。
【００１４】
此処に記述されているプロセッサは、特にＪａｖａバイトコードまたは同等のコードを実行するのに適したものである。良く知られているように、Ｊａｖａは特に組込型アプリケーションに適している。Ｊａｖａは比較的高密度（ｄｅｎｓｅ）な言語であり、これは平均的に各々の命令が種々の他のプログラミング言語に比較して多数の機能を実行することを意味する。Ｊａｖａのこの高密度な性質は特に、スペースおよび電力消費を節約するために出来るだけ少ないメモリを含むことが好適な、携帯可能で、バッテリー駆動の機器に恩恵を与える。しかしながらＪａｖａコードを実行させる理由は、本開示または添付の特許請求の範囲に本質的なものではない。
【００１５】
次に図１を参照すると、本発明の実施例に基づくシステム１００が示されている。図示されるように、このシステムは少なくとも２つのプロセッサ１０２および１０４を含む。プロセッサ１０２は本開示の目的によりＪａｖａスタックマシン（Ｊａｖａ  Ｓｔａｃｋ  Ｍａｃｈｉｎｅ：“ＪＳＭ”）と呼ばれ、プロセッサ１０４は主プロセッサ装置（Ｍａｉｎ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ：“ＭＰＵ”）と呼ばれる。システム１００はまたメモリ１０６を含み、これはＪＳＭ１０２およびＭＰＵ１０４の両方に接続されており、従って両プロセッサからアクセス可能である。メモリ１０６の少なくとも一部は両プロセッサで共有されていて、これは両プロセッサが同一の共有メモリ位置をアクセス出来ることを意味する。更に、もし必要で有ればメモリ１０６の一部を１つのプロセッサまたは他方に専用に割り当てることも可能である。システム１００はまたＪａｖａ仮想マシン（Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：“ＪＶＭ”）１０８、コンパイラ１１０，およびディスプレイ１１４を含む。ＪＳＭ１０２は好適にキーボードのような１つまたは複数の入力／出力（「Ｉ／Ｏ」）装置に対するインタフェースを含み、使用者がシステム１００の種々の態様を制御出来るようにしている。加えて、データ・ストリームがＩ／Ｏ空間からＪＳＭ１０２の中に取り込まれ、ＪＳＭ１０２で処理される。他の構成要素（特に図示せず）も必要に応じて含まれる。システム１００は広範な電子機器システムを代表したり適合することが可能であるが、此処に例として揚げる実施例ではバッテリー駆動で、通信機器である、例えば移動体セルラ電話機を含むものとする。
【００１６】
図１の参照を続けると、一般的に良く知られているように、Ｊａｖａコードは複数の「バイトコード」１１２を含む。バイトコード１１２はＪＶＭ１０８に供給され、コンパイラ１１０でコンパイルされ、ＪＳＭ１０２および／またはＭＰＵ１０４に供給されてそこで実行される。本発明の実施例に依れば、ＪＳＭ１０２は少なくともいくつかの、また一般的にはほとんどのＪａｖａバイトコードを実行する。しかしながら必要に応じて、ＪＳＭ１０２は、ＪＳＭ１０２で実行されないかまたは実行可能でない１つまたは複数のＪａｖａバイトコードをＭＰＵ１０４で実行するように要求する。Ｊａｖａバイトコードの実行に加えて、ＭＰＵ１０４は非Ｊａｖａ命令も実行する。ＭＰＵ１０４はまたオペレーティング・システム（「Ｏ／Ｓ」）（特には図示せず）の対応も行い、これはシステム・メモリ管理、ＪＶＭ１０８およびシステム上で実行されるほとんどのまたは全ての基本タスクのスケジューリングを行うシステム・タスク管理、ディスプレイ１１４の管理、入力機器からの入力受け取り等を含む、種々の機能を実行する。制限無しに、Ｊａｖａコードは、マルチメディア、ゲームまたはウェブ使用アプリケーションを含む種々のアプリケーションの任意の１つをシステム１００内で実行するために使用可能であり、一方、Ｏ／Ｓおよびその他の基本アプリケーションを含む非Ｊａｖａコードはシステム上のＭＰＵ１０４上で継続して実行可能である。
【００１７】
ＪＶＭ１０８は一般的にソフトウェアとハードウェアとの組み合わせを含む。ソフトウェアにはコンパイラ１１０が含まれ、ハードウェアにはＪＳＭ１０２が含まれる。ＪＶＭはクラス・ローダ（Ｃｌａｓｓ  Ｌｏａｄｅｒ）、バイトコード・ベリファイヤ（Ｂｙｔｅｃｏｄｅ  Ｖｅｒｉｆｉｅｒ）、ガーベイジ・コレクタ（Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｏｒ）、およびＪＳＭプロセッサ１０２上で実行されないバイトコードを解釈するためのバイトコード・インタプリタ・ループを含む。
【００１８】
本発明の好適な実施例によれば、ＪＶＭ１０８は此処に説明する参照解決技術を実行するために２つの命令セットを使用する。１つの命令セットは実行命令セット（ｅｘｅｃｕｔｉｏｎ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ“Ｅ−ＩＳ”）と呼ばれ、もう一方の命令は解決命令セット（ｒｅｓｏｌｕｔｉｏｎ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ“Ｒ−ＩＳ”）と呼ばれる。Ｒ−ＩＳはＪＶＭ１０８用に設計された命令を含み、シンボリック参照を具象オペランドに置き換え、標準Ｊａｖａバイトコードとシステム設計者が望ましいと見なす追加バイトコードとを使用することにより、参照解決を効率的に実行する。この追加バイトコードは、開示された方法を実現するシステム上で参照解決の目的のために考案されたマシン語命令を表す。現在解決されていない命令は、参照解決のためにＲ−ＩＳから命令を使用する。更に、Ｒ−ＩＳ内の１つの命令のオペランドは未解決命令のオペランドに関連するシンボリック参照を含む。
【００１９】
Ｅ−ＩＳは標準Ｊａｖａバイトコードと同様に「未解決識別子命令（ｕｎｒｅｓｏｌｖｅｄ  ｉｄｅｎｔｉｆｉｅｒ  ｉｎｓｔｒｕｃｔｉｏｎ）」と呼ばれる命令とを含む。未解決識別子命令は、シンボリック参照を含むＪａｖａバイトコード内の命令に関連してよく、オプコードとオペランドとを含んでもよい。未解決識別子命令のオプコードは標準Ｊａｖａバイトコード内で使用されないオプコードを含み、一般的にその命令を未解決識別子命令として識別する。オペランドは以下に説明するように、未解決命令に対する参照解決命令を有するＲ−ＩＳコード内の位置を含む。
【００２０】
実施例によれば、Ｊａｖａバイトコードは一般的に２つの段を通される。これら２つの段は準備段（ｐｒｅｐａｒａｔｉｏｎ  ｓｔａｇｅ）と参照解決実行段とを含む。これら２つの段は実行過程の種々の時刻およびシステム１００内の種々の機能ユニット（例えばＪＳＭ１０２）の中で生じる。これら２つの段は好適にはＪＳＭ１０２および／またはＭＰＵ１０４で命令が実際に実行される前にいつでも生じる。従って、２つの命令セットは種々の構成要素の中に組み込まれているか、または関連するシステムの種々の構成要素の中に分散されてよい。
【００２１】
次に図２を参照すると、準備段の例が図示されている。図２の例ではバイトコード１１２（図２の左側に配置されている）は２つの命令２１２および２１４を含む。命令２１２はオプコード２１６と具象オペランド２１８を含み、これは参照解決は必要ない。命令２１４はオプコード２２０とシンボリック・オペランド２２２とを含み、これは参照解決を必要とする。シンボリック・オペランド２２２はシンボルテーブル２２３に含まれるシンボリック・データ２２４を含むか、示す。準備段の間、バイトコード１１２はＥ−ＩＳに変換されてよい。更に詳細には、この準備段はシンボリック参照を含む全ての命令を識別し、その様な命令を先に説明した未解決識別子命令で置換することを含む。従って、図２に図示されるように、シンボリック・オペランド２２２を共なった命令２１４は未解決識別子命令２２６で置き換えられ、未解決識別子命令２２６は未解決識別子命令オプコード２２８と関連するオペランド２３０とを含む。未解決識別子命令オペランド２３０はＲ−ＩＳコード内の参照命令２３４を示す。参照命令２３４は参照オプコード２３６を含む。参照命令オペランド２３２は、初期に、命令２１４に関連するシンボル・データ２２４を含んでもよい。
【００２２】
参照変換を必要としない命令２１２は、準備段で修正変更することなくＥ−ＩＳに変換されてよい。説明を容易にするために２つの命令が示されているが、準備段は任意の数のバイトコードと実現するシステムに応じて種々のサイズのバイトコードを準備してよい。
【００２３】
図２に図示されている準備段は、置き換えロジックに結合された復号を含むプロセッサの様なシステムで実行される。復号ロジックと置き換えロジックとは共に動作し、シンボリック参照（好適には復号ロジック）を含む命令を識別し、かかる命令を未解決識別子（好適には置き換えロジック）を具備する命令で置き換え、先に述べたように解決コードを生成する。準備段を実行するシステムはＪＳＭのようなプロセッサを含んでよい。システムはまた、参照解決段を実行する以下に説明する任意のまたは全ての構成要素を含んでよい。
【００２４】
図３は本発明に基づく参照解決実行段の例を図示する。この段においては、全ての未解決参照が、参照解決コードを実行することで変換される。図３の左側は先にＥ−ＩＳ内に準備されたバイトコード１１２を示す。実行段は、最初にバイトコード１１２を復号することにより、準備段終了後任意の時刻に開始されてよい。図３の例の中でオプコード２１６は復号ロジック２４０で復号される。復号ロジック２４０はＪＶＭ１０８および／またはＪＳＭ１０２の中で実行される。次にオペランド２１８が実行ロジック２４２に送られ、そこで命令が実行される。復号ロジック２４０と同様、実行ロジック２４２はＪＶＭ１０８および／またはＪＳＭ１０２の中で実行される。
【００２５】
命令２１２の実行中または実行後、未解決識別子命令オプコード２２８が復号ロジック２４０に供給される。復号ロジック２４０はその命令を未解決識別子命令と認識し、参照解決命令２３４の位置を含む関連するオペランド２３０が実行ロジック２４２に供給されるようにする。これに応じて、実行ロジック２４２は未解決オペランド２３０を復号ロジック２４４に供給する。復号ロジック２４４は次に変換命令２３４を取り出し、オペランド２３２を変換することが可能な実行ロジックとして実行ロジック２４６を識別する。解決命令２３４はシンボリック参照を対応する具象オペランドを決定することで解決するように実行される。次に解決オペランド２３２は、解決命令２３４を実行する解決実行ロジック２４６に供給されてよい。解決命令２３４が実行された結果、具象オペランドが供給されるかまたは解決オペランド２３２で参照されるオブジェクトに対して得られる。次に未解決オプコード２２８が、準備段の前に元のオプコード２２０（図２）に書き換えられるかまたはＥ−ＩＳ内の他の全てのオプコードに書き換えられる。具象オペランドが未解決オペランド２２２を置き換えてよく、これにより命令２２６を解決する。実行ロジック２４２または複合ロジック２４４が次に解決された命令２２６を実行してよい。
【００２６】
本発明の好適な実施例によれば、例として示す実行段はまた、先に決定された具象オペランドを将来の参照解決に再利用してよい。例えば、図４は解決命令２３４を利用する未解決命令２２６と２６０を示す。解決命令２３４による命令２２６の解決中に、具象オペランドが決定される。この具象オペランドは解決オペランド２３２の中に格納されるか、または変換テーブル２４８のエントリー２５０の中に格納される。解決命令２３４は、此処で具象オペランド２３２を含むかまたは変換テーブル２４８内で利用可能な具象データを有してよく、解決命令２３４は解決されたものと見なされる。解決された解決命令２３４による命令２６０の解決中、解決された解決命令２３４が実行される必要はない。代わって、命令２６０が先に解決された命令２２６で書き換えられる。
【００２７】
当業者は以上の説明を完全に理解することにより多数の変形および修正変更が明らかであろう。例えば、ＪＳＭ１０２は先に説明した１つまたは複数の参照変換技術を実行する。以下の特許請求の範囲はそれら全ての変形および修正変更を包含するものと解釈されることを意図している。
【００２８】
以上の説明に関して更に以下の項を開示する。
（１）復号ロジックと、
上記復号ロジックに接続された置き換えロジックと、
参照変換ロジックと、を含むシステムであって、
上記復号ロジックと置き換えロジック機能とが共に、１つの命令が未解決参照を含むか否かを判別し、未解決参照を有する命令を参照解決コードに関連するオペランドを含む所定の命令で置き換え、
上記復号ロジックが複数の命令を復号し、いずれかの命令が上記所定の命令を含むか否かを判別し、上記復号ロジックが命令が上記所定の命令であることを判別すると、上記参照解決実行ロジックが上記その解決コードを実行してメモリ参照を解決する、上記システム。
【００２９】
（２）第１項記載のシステムにおいて、置き換えロジックが未解決参照を有する全ての命令を、参照解決コードに関連する１つのオペランドを含む上記所定の命令で置き換える、上記システム。
【００３０】
（３）第１項記載のシステムにおいて、上記所定の命令のオペランドが参照解決コードを含むメモリ位置を含む、上記システム。
【００３１】
（４）第１項記載のシステムにおいて、上記所定の命令が解決された命令で置き換えられる、上記システム。
【００３２】
（５）第１項記載のシステムにおいて、参照解決実行ロジックが参照解決を変換テーブルの中に格納するかまたは置き換え命令のオペランドの中に直接格納し、後に行われるメモリ参照の解決で使用する、上記システム。
【００３３】
（６）第１項記載のシステムにおいて、復号ロジックと置き換えロジックと参照解決実行ロジックとが仮想マシンの中で実現されている、上記システム。
【００３４】
（７）第１項記載のシステムがプロセッサ・コアを含み、上記復号ロジックと上記置き換えロジックとが上記コアの中で実現されている、前記システム。
【００３５】
（８）命令が未解決参照を含むか否かを判別するステップと、
未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換るステップと、
少なくとも１つの命令が先行する命令を置き換えた置き換え命令を含む複数の命令を受け取るステップと、
受け取った命令が上記置き換え命令を含むか否かを判別するステップと、
受け取った命令が置き換え命令を含むと判別すると、参照を解決するために解決コードを実行するステップと、を含む方法。
【００３６】
（９）第８項記載の方法が更に、解決参照を有する全ての命令を、参照解決コードに関連する１つのオペランドを含む所定の命令で置き換えることを含む、上記方法。
【００３７】
（１０）第８項記載の方法において、上記所定の命令のオペランドが参照解決コードを含むメモリ位置を含む、上記方法。
【００３８】
（１１）第８項記載の方法において、参照を解決するために上記解決コードを実行した後、上記置き換え命令を完全に解決された命令に置き換える、上記方法。
【００３９】
（１２）第８項記載の方法において、参照を解決するために上記解決コードを実行した後、上記解決された参照を変換テーブルに格納するかまたは、再帰的に、後続の参照変換に対する置き換え命令のオペランドの中に格納する、上記方法。
【００４０】
（１３）命令が未解決参照を含むか否かを判別するステップと、
未解決参照を有する命令を、参照解決コードに関連するオペランドを含む所定の命令で置き換えるステップと、を含む、方法。
【００４１】
（１４）第１３項記載の方法が更に、未解決参照を有する全ての命令を、参照解決コードに関連するオペランドを含む上記所定の命令で置き換えるステップを含む、上記方法。
【００４２】
（１５）第１３項記載の方法において、上記所定の命令のオペランドが参照解決コードを含むメモリ位置を含む、上記方法。
【００４３】
（１６）少なくとも１つの命令が先行する命令を置き換えた置き換え命令を含む複数の命令を受け取るステップと、
上記受け取った命令のいずれかが、上記置き換え命令を含むか否かを判別するステップと、
受け取られた命令が上記置き換え命令を含むと判別すると、参照を解決するために解決コードを実行するステップと、を含む方法において、
上記置き換え命令が参照コードを識別するオペランドを含む、上記方法。
【００４４】
（１７）第１６項記載の方法において、上記解決コードを実行して参照を解決した後、上記置き換え命令を完全に解決された命令で置き換える、上記方法。
【００４５】
（１８）第１６項記載の方法において、置き換え命令のオペランドが上記解決コードに対する位置を含む、前記方法。
【００４６】
（１９）第１６項記載の方法において、上記解決コードを実行して参照を解決した後、解決された参照を変換テーブルの中に格納するかまたは、後続の参照解決に対する上記置き換え命令のオペランドの中に直接格納する、上記方法。
【００４７】
（２０）システムであって、
復号ロジックと、
参照解決実行ロジックとを含む、上記システムにおいて、
上記復号ロジックが複数の命令を復号し、いずれかの命令が解決コードに関連するオペランドを含む所定の命令を含むか否かを判別し、復号ロジックが或る命令が上記所定の命令であると判別するとそれに応じて上記参照変換実行ロジックが解決コードを実行してメモリ参照を変換する、上記システム。
【００４８】
（２１）第２０項記載のシステムにおいて、上記所定の命令が返還された命令で置き換えられる、上記システム。
【００４９】
（２２）第２０項記載のシステムにおいて、参照解決実行ロジックが参照解決を変換テーブルの中に格納するかまたは、メモリ参照の解決の中で引き続き使用する上記置き換え命令のオペランドの中に直接格納する、上記システム。
【００５０】
（２３）第２０項記載のシステムにおいて、上記復号ロジックおよび参照解決実行ロジックが仮想マシンの中に実現されている、上記システム。
【００５１】
（２４）第２０項記載のシステムにおいて、システムがプロセッサを含む、上記システム。
【００５２】
（２５）システムであって、
複数の命令を受け取りそして復号する復号ロジックと、
上記復号ロジックに接続された置き換えロジックと、を含む上記システムにおいて、
上記復号ロジック機能と置き換えロジック機能とが共に、１つの命令が未解決参照を含むか否かを判別し、未解決参照を有する命令を参照解決コードに関連するオペランドを含む所定の命令で置き換える、前記システム。
【００５３】
（２６）第２５項記載のシステムにおいて、置き換えロジックが未解決参照を有する全ての命令を、参照解決コードに関連する１つのオペランドを含む上記所定の命令で置き換える、上記システム。
【００５４】
（２７）第２５項記載のシステムにおいて、上記所定の命令のオペランドが、参照解決コードを含むメモリ位置の場所を含む、上記システム。
【００５５】
（２８）第２５項記載のシステムにおいて、上記復号ロジックおよび置き換えロジックが仮想マシンの中に実現されている、上記システム。
【００５６】
（２９）第２５項記載のシステムがプロセッサ・コアを含み、上記復号ロジックおよび置き換えロジックが前記コアの中に実現されている、上記システム。
【００５７】
（３０）準備方法は、１つの命令が未解決参照を含むか否かを判別し、未解決命令を参照解決コードに関連するオペランドを含む所定の命令で置き換えることを含む。解決実行方法は、少なくとも１つの命令が先行する命令を置き換えた置き換え命令を含む複数の命令を受け取り、受け取った命令が置き換え命令を含むことを判別するとそれに応じて、参照を解決するために解決コードを実行することを含む。置き換え命令は解決コードを識別するオペランドを含む。これらの方法に関連するプロセッサも開示されている。
【図面の簡単な説明】
【００５８】
【図１】図１は本発明の実施例に基づくシステムの図を示し、Ｊａｖａスタックマシン（“ＪＳＭ”）および主プロセッサ装置（“ＭＰＵ”）を含む。
【図２】図２は本発明の実施例に基づくマシン語命令解決用のプレパレーション段に関連するブロック図を示す。
【図３】図３は本発明の実施例に基づくマシン語命令解決用の実行段に関連するブロック図を示す。
【図４】図４は本発明の実施例に基づくマシン語命令解決用の実行段に関連し、変換テーブルを含むブロック図を示す。
【符号の説明】
【００５９】
１００  システム
１０２  Ｊａｖａスタックマシン
１０４  主プロセッサ装置
１０６  メモリ
１０８  Ｊａｖａ仮想マシン
１１０  コンパイラ
１１２  バイトコード
１１４  ディスプレイ
２１２  命令
２１４  命令
２２６  未解決識別子命令
２３４  参照解決命令
【図１】
2005011350.tif 000003
【図２】
2005011350.tif 000004
【図３】
2005011350.tif 000005
【図４】
2005011350.tif 000006