(57)【要約】【課題】  ジャバ変換加速装置および方法が提供される。【解決手段】  本発明の実施形態によるジャバ変換加速装置は、バイトコードとバイトコードに対応する原始コードが配列された索引テーブルと、索引テーブルで入力されたバイトコードが変換される原始コードに対するポインタを生成するデコーダと、デコーダに含まれながら、パラメータバイトコードを検出して索引テーブルで定数挿入に必要な原始コードに対するポインタを生成するパラメータバイトコード処理ユニットと、パラメータバイトコード処理ユニットがポインタを生成した原始コードに定数を挿入する定数挿入ユニットと、デコーダまたは定数挿入ユニットが生成した原始コードを保存する原始コードバッファを含む。【選択図】図１
2008299835.tif 000002
【特許請求の範囲】
【請求項１】
バイトコードと前記バイトコードに対応する原始コードが配列された索引テーブルと、
前記索引テーブルで入力されたバイトコードが変換される原始コードに対するポインタを生成するデコーダと、
前記入力されたバイトコードのうちパラメータバイトコードを検出して前記索引テーブルで定数挿入に必要な原始コードに対するポインタを生成するパラメータバイトコード処理ユニットと、
前記パラメータバイトコード処理ユニットがポインタを生成した原始コードに定数を挿入する定数挿入ユニット、および
前記デコーダまたは前記定数挿入ユニットが生成した原始コードを保存する原始コードバッファを含むジャバ変換加速装置。
【請求項２】
前記パラメータバイトコード処理ユニットは、パラメータバイトコードのリストを保存する請求項１に記載のジャバ変換加速装置。
【請求項３】
前記パラメータバイトコード処理ユニットは、パラメータバイトコードのパラメータ値を検討する請求項１に記載のジャバ変換加速装置。
【請求項４】
前記定数挿入ユニットは、定数値を使用するキー命令を識別する請求項１に記載のジャバ変換加速装置。
【請求項５】
前記定数挿入ユニットは、保存されたキー命令の変換パターンを読込み定数を挿入する請求項１に記載のジャバ変換加速装置。
【請求項６】
前記索引テーブルは、キー命令に対する情報を保存する請求項１に記載のジャバ変換加速装置。
【請求項７】
前記索引テーブルは、キー命令の変換パターンを保存する請求項１に記載のジャバ変換加速装置。
【請求項８】
前記デコーダは、入力されたバイトコードが前記索引テーブルに存在するのか検討する請求項１に記載のジャバ変換加速装置。
【請求項９】
前記原始コードバッファは、前記生成された原始コードと共に前記入力されたバイトコードを保存し、前記デコーダは、入力されたバイトコードが前記原始コードバッファに存在するのか検討する請求項１に記載のジャバ変換加速装置。
【請求項１０】
入力されたバイトコードがパラメータバイトコードなのか判断する段階と、
前記パラメータバイトコードに対応する定数挿入に必要な原始コードを呼出す段階と、
前記呼出された原始コードでキー命令を識別する段階、および
前記識別されたキー命令に定数値を挿入する段階を含むジャバ変換加速方法。
【請求項１１】
前記パラメータバイトコードのパラメータ値が原始命令の即時フィールドに適合するのか判断する段階をさらに含む請求項１０に記載のジャバ変換加速方法。
【請求項１２】
前記キー命令に対する保存された変換パターンを読込む段階をさらに含む請求項１０に記載のジャバ変換加速方法。
【請求項１３】
前記入力されたバイトコードが、原始コードバッファに存在するのか判断する段階をさらに含む請求項１０に記載のジャバ変換加速方法。
【請求項１４】
前記入力されたバイトコードが、索引テーブルに存在するのか判断する段階をさらに含む請求項１０に記載のジャバ変換加速方法。
【請求項１５】
前記定数値を挿入した原始コードを原始コードバッファに保存する段階をさらに含む請求項１０に記載のジャバ変換加速方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はジャバ変換加速装置および方法に関するもので、より詳細にバイトコードに対する最適化された原始コードを生成するジャバ変換加速装置および方法に関するものである。
【背景技術】
【０００２】
本発明はジャバ変換加速装置および方法に関するもので、より詳細にバイトコードに対する最適化された原始コードを生成するジャバ変換加速装置および方法に関するものである。
【０００３】
ＪＡＶＡ（登録商標）はサンマイクロシステムズによって開発されたオブジェクト指向言語である。ジャバのプラットホーム独立、サンドボックス（ｓａｎｄｂｏｘ）モデルの保安性、コードの簡潔性は伝統的なプログラミング言語を越えるジャバの長所である。ジャバコードは小さくて簡単であり、保安性が優秀で、プラットホームと運営体制を行き来する移植性がある。
【０００４】
伝統的なプログラミング言語はコンパイラによって、ソースコードを機械語やプロセッサ命令（ｐｒｏｃｅｓｓｏｒ  ｉｎｓｔｒｕｃｔｉｏｎ）に変換させる。翻訳されたコードは原始命令（ｎａｔｉｖｅ  ｉｎｓｔｒｕｃｔｉｏｎ）を含む。例えば、ｘ８６システムでコンパイルされた命令はｘ８６システムでだけ実行される。
【０００５】
反面ジャバコンパイラはジャバプログラムをバイトコード（ｂｙｔｅｃｏｄｅ）で作る。コンパイラが特定のプロセッサのための機械語を作らない。バイトコードは機械語のような命令だが、あるプロセッサに特定されたものではない。このようなバイトコードを実行するためにはバーチャルマシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）が必要である。
【０００６】
バーチャルマシンはジャババイトコードを翻訳し（ｉｎｔｅｒｐｒｅｔ）対応する原始コード（ｎａｔｉｖｅ  ｃｏｄｅ）に変換する。バイトコードは特定のアーキテクチャー（ａｒｃｈｉｔｅｃｔｕｒｅ）にしばられないため、バイトコードはジャババーチャルマシンが存在する限りいかなるアーキテクチャーでも実行され得る。
【０００７】
ジャバの弱点は実行速度にある。特定アーキテクチャーのためにコンパイルされたプログラムはバイトコードよりさらにはやく実行される。ジャババイトコードの場合、それを実行するために、中央処理装置で実行されるジャババーチャルマシンはまずバイトコードを原始命令に変換しなければならない。
【０００８】
ジャババイトコード実行速度を向上させるためにいくつかの技術がある。そのうちの一つは「Ｊｕｓｔ  ｉｎ  Ｔｉｍｅ（ＪＩＴ）」インタープリタのような技術によってジャババーチャルマシンの速度を向上させるものである。しかし遅い実行速度とＪＩＴのオーバーヘッドは問題点となる。
【０００９】
これを改善するためにジャバハードウェア加速器が使用された。ジャバハードウェア加速器は索引テーブルを使用してジャババイトコードを原始コードに変換した。すなわち、バイトコードを索引テーブルから得られた原始コードに変換して、速度を向上させた。
【００１０】
しかし、ジャバハードウェア加速器を使用しても最小限のメモリ使用と低電力消費は依然として要求される。したがってバイトコードを変換して得られた原始コードを最適化する方法が必要となった。
【特許文献１】大韓民国公開公報第２００６−０１１０９７１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は前記した問題点を改善するために考案されたもので、本発明が解決しようとする課題はバイトコードに対する最適化された原始コードを生成することである。
【００１２】
本発明の目的は以上で言及した目的に制限されず、言及されていないまた他の目的は次の記載から当業者に明確に理解できるであろう。
【課題を解決するための手段】
【００１３】
前記目的を達成するために、本発明の実施形態によるジャバ変換加速装置は、バイトコードとバイトコードに対応する原始コードが配列された索引テーブルと、索引テーブルで入力されたバイトコードが変換される原始コードに対するポインタを生成するデコーダと、デコーダに含まれパラメータバイトコードを検出して索引テーブルで定数挿入に必要な原始コードに対するポインタを生成するパラメータバイトコード処理ユニットと、パラメータバイトコード処理ユニットがポインタを生成した原始コードに定数を挿入する定数挿入ユニットと、デコーダまたは定数挿入ユニットが生成した原始コードを保存する原始コードバッファを含む。
【００１４】
前記目的を達成するために、本発明の実施形態によるジャバ変換加速方法は、入力されたバイトコードがパラメータバイトコードなのか判断する段階と、パラメータバイトコードに対応する定数挿入に必要な原始コードを呼出す段階と、原始コードでキー命令を識別する段階と、キー命令に定数値を挿入する段階を含む。
その他実施形態の具体的な事項は詳細な説明および図に含まれている。
【発明の効果】
【００１５】
本発明のジャバ変換加速装置および方法によれば次のような効果が一つあるいはそれ以上ある。
一番目に、パラメータバイトコードに対する最適化された原始コードを生成し、メモリ使用量が減るという長所がある。
二番目に、パラメータバイトコードに対する最適化された原始コードを生成し、変換速度を向上させる長所もある。
三つ目に、索引テーブルに保存される原始コードを減らし、保存空間を節約する長所もある。
【００１６】
本発明の効果は以上で言及した効果に制限されず、言及されていないまた他の効果は請求範囲の記載から当業者に明確に理解できるであろう。
【発明を実施するための最良の形態】
【００１７】
本発明の利点および特徴、そしてそれらを達成する方法は添付される図面と共に詳細に後述されている実施形態を参照すれば明確になるだろう。しかし本発明は以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で具現され、単に本実施形態は本発明の開示が完全なようにして、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されているもので、本発明は請求項の範囲によってのみ定義される。明細書全体にかけて同一参照符号は同一構成要素を指称する。
【００１８】
以下、本発明の実施形態によって、ジャバ変換加速装置および方法を説明するための図を参照し、本発明に対して説明するようにする。
【００１９】
この時、処理フローチャート図の各ブロックとフローチャート図の組合はコンピュータプログラムインストラクションによって遂行され得ることを理解し得るものである。これらコンピュータプログラムインストラクションは凡庸コンピュータ、特殊用コンピュータまたはその他プログラム可能なデータプロセシング装備のプロセッサに搭載され得るため、コンピュータまたはその他プログラム可能なデータプロセシング装備のプロセッサを通して遂行されるそのインストラクションがフローチャートブロックで説明された機能を遂行する手段を生成するようになる。
【００２０】
これらコンピュータプログラムインストラクションは特定方式で機能を具現するためにコンピュータまたはその他プログラム可能なデータプロセシング装備を指向できるコンピュータ利用可能またはコンピュータ判読可能メモリに保存されるのも可能なため、そのコンピュータ利用可能またはコンピュータ判読可能メモリに保存されたインストラクションはフローチャートブロックで説明された機能を遂行するインストラクション手段を内包する製造品目を生産することも可能である。
【００２１】
コンピュータプログラムインストラクションはコンピュータまたはその他プログラム可能なデータプロセシング装備上に搭載されるのも可能なため、コンピュータまたはその他プログラム可能なデータプロセシング装備上で一連の動作段階が遂行されてコンピュータで実行されるプロセスを生成し、コンピュータまたはその他プログラム可能なデータプロセシング装備を遂行するインストラクションはフローチャートブロックで説明された機能を実行するための段階を提供することも可能である。
【００２２】
また、各ブロックは特定された論理的機能を実行するための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を示し得る。また、いくつかの代替実行例ではブロックで言及された機能が順序に反して、発生することも可能であることに注目しなければならない。例えば、次々に図示されている二つのブロックは事実実質的に同時に遂行されることも可能であり、またはそのブロックが時には該当する機能により逆順で遂行されることも可能である。
【００２３】
一方、本発明に対する説明を容易にするために本発明と関連した基本的な概念を定義するようにする。
バイトコード（ｂｙｔｅｃｏｄｅ）はジャバプログラムのコンパイルされた形態を意味する。一旦ジャバプログラムがバイトコードに変換されるとネットワークを通して伝送され得もしきジャバ仮想マシンによって実行され得る。
【００２４】
原始コード（ｎａｔｉｖｅ  ｃｏｄｅ）は機械語を意味し、特定プラットホームで実行されるコードを意味する。ジャバの場合バイトコードがバーチャルマシンなどによって変換されたことを意味する。
【００２５】
パラメータバイトコード（ｐａｒａｍｅｔｅｒｉｚｅｄ  ｂｙｔｅ  ｃｏｄｅ）はパラメータ値を有するバイトコードを意味する。すなわち、バイトコードのうち特定値に依存して実行されるバイトコードを意味する。
【００２６】
キー命令（ｋｅｙ  ｉｎｓｔｒｕｃｔｉｏｎ）はパラメータバイトコードに対応する原始コードの集合でパラメータ値に該当する定数値を挿入する原始命令を意味する。
【００２７】
図１は本発明の一実施形態によるジャバ変換加速装置の構成を示す図である。
索引テーブル１１０はバイトコードとこれに対応する原始コードが配列される。原始コードは中央処理装置によって変更しえる、それぞれのバイトコードに対応する原始コードは一つ以上の原始命令の集合である。
【００２８】
索引テーブル１１０はデコーダ１２０やパラメータバイトコード処理ユニット１３０が入力されたバイトコードに対する原始コードを把握するのに使用される。
【００２９】
索引テーブル１１０にはすべての種類のバイトコードは保存されていない。したがって、デコーダ１２０は入力されたバイトコードが索引テーブル１１０に存在するのか検討するのが好ましい。
【００３０】
索引テーブル１１０は定数挿入が必要な原始命令であるキー命令に対する情報を保存することが好ましい。保存されたキー命令に対する情報は定数挿入ユニット１４０がキー命令を識別するために使用される。
【００３１】
索引テーブル１１０はキー命令の変換パターンを保存するのが好ましい。保存されたキー命令の変換パターンは定数挿入ユニット１４０が原始コードに定数を挿入する時に挿入位置を識別するために使用される。
【００３２】
デコーダ１２０は、入力されたバイトコードが変換される原始コードに対するポインタを索引テーブル１１０に生成する。索引テーブル１１０に生成されたポインタは索引テーブル１１０から原始コード集合を抽出するのに役立つ。
【００３３】
デコーダ１２０は入力されたバイトコードが原始コードバッファ１５０に存在するのか検討するのが好ましい。入力されたバイトコードが原始コードバッファ１５０に存在する場合、該当する原始コードを中央処理装置にリターンし処理速度を向上させることができる。
【００３４】
デコーダ１２０は入力されたバイトコードが索引テーブル１１０に存在するのか検討するのが好ましい。索引テーブル１１０はすべての種類のバイトコードに対する原始コードを含んでいないため入力されたバイトコードが索引テーブル１１０に存在しない場合、ソフトウェアインタープリタ１６０がこれを処理することができるようにする。
【００３５】
デコーダ１２０はパラメータバイトコード処理ユニット１３０を含む。
パラメータバイトコード処理ユニット１３０はパラメータバイトコードを検出する。入力されたバイトコードがパラメータバイトコードの場合、パラメータバイトコード処理ユニット１３０は索引テーブル１１０で定数挿入が必要な原始コードに対するポインタを生成する。すなわち、バイトコードの定数バージョンに対応する原始命令を呼出す。パラメータバイトコードを、パラメータを有する原始コードでなく固定された値を有する原始コードに変換するものである。
【００３６】
パラメータバイトコード処理ユニット１３０はパラメータバイトコードのリストを保存するのが好ましい。
【００３７】
ジャババイトコードがＡＲＭ  ＣＰＵで処理される場合を例としてあげてみる。ジャババイトコードＩＬＯＡＤ  １０はＩＬＯＡＤがスタックで地域変数１０に保存された値をロードしなければならないということを意味する。従来技術によればＩＬＯＡＤ  １０が入力された場合、ＩＬＯＡＤに対応する原始コードが作成され地域変数の住所に対する計算が成される。
【００３８】
従来技術によるＩＬＯＡＤに対応する原始コードは次のとおり。
ＬＤＲＢ  ｒｅｇ１、［ｒｅｇ２］、＃ｏｆｆｓｅｔ
ＬＤＲ  ｒｅｇ１、［ｒｅｇ２＋ｒｅｇ３  ｓｈｉｆｔ  ＃ｎ］
ＳＴＲ  ｒｅｇ１、［ｒｅｇ２＋ｏｆｆｓｅｔ］
しかし、本発明によればＩＬＯＡＤ  １０はパラメータバイトコードであるためパラメータバイトコード処理ユニット１３０は定数挿入に必要な原始コードに対するポインタを生成する。すなわち、ＩＬＯＡＤ  １０に対してＩＬＯＡＤ＿０に対応する原始命令を呼出すようになる。
【００３９】
本発明によるＩＬＯＡＤ＿０に対応する原始コードは次のとおり。
ＬＤＲ  ｒ０、［ＶＭ＿ｌｐ、＃０］
ＳＴＲ  ｒ０、［ＶＭ＿ｓｐ、＃４］！
従来技術と比較するとバイトコードが変換される原始コードが３個から２個に減るようになりメモリ使用量が減って変換速度が向上する。
【００４０】
パラメータバイトコード処理ユニット１３０はパラメータバイトコードのパラメータ値を検討するのが好ましい。パラメータバイトコードのパラメータ値は原始命令内の即時フィールド（ｉｍｍｅｄｉａｔｅ  ｆｉｅｌｄ）に適合しなければならない。前記のような例で各々の住所は４の増加量を有しているため即時フィールドに可能なビットの有効な数は９−２＝７である。このようにパラメータ値が１２８より小さい場合にだけ直ちに被演算子（ｉｍｍｅｄｉａｔｅ  ｏｐｅｒａｎｄ）で符号化（ｅｎｃｏｄｅ）される。すなわちＩＬＯＡＤ  １０で１０は１２８より小さいためＩＬＯＡＤ＿０に対応する原始命令を呼出すようになる。
【００４１】
パラメータバイトコード処理ユニット１３０はパラメータ値が原始命令内の即時フィールドに適合しない場合、従来技術にしたがい入力されたバイトコードに対応する原始コードに対するポインタを生成する。
【００４２】
定数挿入ユニット１４０はパラメータバイトコード処理ユニット１３０がポインタを生成した原始コードに定数を挿入する。ポインタが生成された原始コードの終わりに入力されたパラメータ値に対応される定数を挿入する。すなわち、バイトコードのパラメータ値は原始コードの即時フィールドで符号化される。
【００４３】
定数挿入ユニット１４０は定数値を使用するキー命令を識別するのが好ましい。ポインタが生成された原始コードは一つ以上の原始命令の集合であるため、その中で定数値が挿入される原始命令のキー命令を識別する。キー命令に対する情報は索引テーブル１１０に保存するのが好ましい。
【００４４】
前記のような例でＩＬＯＡＤ＿０に対応する原始命令コードは次のとおり。
ＬＤＲ  ｒ０、［ＶＭ＿ｌｐ、＃０］
ＳＴＲ  ｒｏ、［ＶＭ＿ｓｐ、＃４］！
このうちキー命令はＬＤＲ  ｒ０、［ＶＭ＿ｌｐ、＃０］となり、ここにパラメータ値である１０に対応される定数を挿入すれば次のとおり。
ＬＤＲ  ｒ０、［ＶＭ＿ｌｐ、＃４０］
ＳＴＲ  ｒ０、［ＶＭ＿ｓｐ、＃４］！
これは従来技術にしたがいＩＬＯＡＤ  １０が変換された次のような原始コードと同一である。
ＬＤＲＢ  ｒ０、［ＶＭ＿ｉｐ］、＃１
ＬＤＲ  ｒ０、［ＶＭ＿ｌｐ、ｒ０、ＬＳＬ  ＃２］
ＳＴＲ  ｒ０、［ＶＭ＿ｓｐ、＃４］！
それぞれの変換された結果を比較すれば同等なプロセスを遂行するが原始コードが３個から２個に減るようになりメモリ使用量が減って変換速度が向上する。
【００４５】
また、索引テーブル１１０にＩＬＯＡＤ＿１、ＩＬＯＡＤ＿２、ＩＬＯＡＤ＿３に対応する原始コードが保存されるのを防止することができる。このようなすべてのＩＬＯＡＤはＩＬＯＡＤ＿０から生成され得る。このようにＩＬＯＡＤ＿１、ＩＬＯＡＤ＿２、ＩＬＯＡＤ＿３を保存するのに必要な空間を節約し他のバイトコードを保存させることができる。
【００４６】
定数挿入ユニット１４０は索引テーブル１１０に保存されたキー命令の変換パターンを読込み、定数値を挿入するのが好ましい。大部分の場合、即時フィールドは固定された位置にあるがそのような場合でなければ複雑な過程が必要である。したがってキー命令の変換パターンを索引テーブル１１０に保存して定数挿入ユニット１４０が定数挿入時にこれを読込んで参考とする。
【００４７】
原始コードバッファ１５０はデコーダ１２０または定数挿入ユニット１４０が生成した原始コードを保存する。原始コードバッファ１５０は原始コードを保存してから中央処理処置に供給する。
【００４８】
原始コードバッファ１５０は原始コードと共に入力されたバイトコードを保存するのが好ましい。入力されたバイトコードが原始コードバッファ１５０に存在する場合、デコーダ１２０の要請により該当する原始コードを中央処理装置に返還する。
【００４９】
この時、本発明の実施形態によるジャバ変換加速装置の各々の構成要素はソフトウェアまたはハードウェア、ファームウェアで具現され得る。しかし、各々の構成要素はソフトウェアまたはハードウェア、ファームウェアに限定されるものではない。各々の構成要素はアドレッシングできる保存媒体にあるように構成され得るがまたはそれ以上のプロセッサを再生させるように構成され得る。構成要素中で提供される機能はさらに小さい数の構成要素に結合したり追加的な構成要素にさらに分離され得る。
【００５０】
また、本発明の実施形態によるジャバ変換加速装置は中央処理装置に含まれ、一体で構成され得る。
【００５１】
図２は本発明の一実施形態によるジャバ変換加速方法を示すフローチャートである。
中央処理装置から変換されるバイトコードがデコーダ１２０に入力される（Ｓ２１０）。
中央処理装置から変換されるバイトコードが入力されると、デコーダ１２０は入力されたバイトコードを検討する（Ｓ２２０）。
【００５２】
デコーダ１２０が入力されたバイトコードを検討すれば、パラメータバイトコード処理ユニット１３０はパラメータバイトコードを識別し原始コードを呼出す（Ｓ２３０）。
【００５３】
パラメータバイトコード処理ユニット１３０が原始コードを呼出せば、定数挿入ユニット１４０は呼出された原始コードに定数値を挿入する（Ｓ２４０）。
【００５４】
原始コードバッファ１５０はデコーダ１２０または定数挿入ユニット１４０が生成した原始コードを保存する（Ｓ２５０）。原始コードバッファ１５０は原始コードと共に入力されたバイトコードを保存するのが好ましい。
原始コードバッファ１５０はバッファに保存された原始コードを中央処理装置に返還する（Ｓ２６０）。
【００５５】
以下、図３ないし図５を参照して前記各段階を詳細に、説明する。
【００５６】
図３は本発明の一実施形態によるジャバ変換加速方法で入力されたバイトコードを検討する方法を示すフローチャートである。
デコーダ１２０は入力されたバイトコードが原始コードバッファ１５０に存在するのか判断する（Ｓ３１０）。入力されたバイトコードが原始コードバッファ１５０に存在すれば該当する原始コードを中央処理装置に返還し（Ｓ２６０）処理速度を向上させることができる。
【００５７】
デコーダ１２０は入力されたバイトコードが索引テーブル１１０に存在するのか判断する（Ｓ３２０）。索引テーブル１１０はすべての種類のバイトコードに対する原始コードを含んでいないため入力されたバイトコードが索引テーブル１１０に存在しない場合、ソフトウェアインタープリタ１６０がこれを処理し得るようにする（Ｓ３３０）。
【００５８】
図４は本発明の一実施形態によるジャバ変換加速方法でパラメータバイトコードを識別して原始コードを呼出す方法を示すフローチャートである。
【００５９】
パラメータバイトコード処理ユニット１３０は入力されたバイトコードがパラメータバイトコードなのか判断する（Ｓ４１０）。パラメータバイトコード処理ユニット１３０は保存されたパラメータバイトコードのリストを参考にしてパラメータバイトコードを検出する。
【００６０】
パラメータバイトコードでない場合、デコーダ１２０が索引テーブル１１０で入力されたバイトコードが変換される原始コードに対するポインタを生成してこれを呼出す（Ｓ４２０）。
パラメータバイトコード処理ユニット１３０はパラメータバイトコードのパラメータ値を検討して、原始命令内の即時フィールドに適合するのか判断する（Ｓ４３０）。
【００６１】
パラメータバイトコード処理ユニット１３０はパラメータ値が原始命令内の即時フィールドに適していない場合、入力されたバイトコードに対応する原始コードに対するポインタを生成してこれを呼出す（Ｓ４２０）。
【００６２】
パラメータバイトコード処理ユニット１３０は索引テーブル１１０で定数挿入が必要な原始コードに対するポインタを生成してこれを呼出す（Ｓ４４０）。すなわち、バイトコードの定数バージョンに対応する原始命令を呼出す。パラメータバイトコードをパラメータを有する原始コードでなく固定された値を有する原始コードに変換するものである。
【００６３】
図５は本発明の一実施形態によるジャバ変換加速方法で呼出された原始コードに定数値を挿入する方法を示すフローチャートである。
【００６４】
定数挿入ユニット１４０は呼出された原始コードで定数値を使用するキー命令を識別する（Ｓ５１０）。定数挿入ユニット１４０は索引テーブル１１０に保存されたキー命令に対する情報を読込み参照する。ポインタが生成された原始コードは一つ以上の原始命令の集合であるためその中で定数値が挿入される原始命令のキー命令を識別する。
【００６５】
定数挿入ユニット１４０は索引テーブル１１０に保存されたキー命令の変換パターンを読込む（Ｓ５２０）。大部分の場合、即時フィールドは固定された位置にあるが、そのような場合でなければ複雑な過程が必要である。したがってキー命令の変換パターンを索引テーブル１１０に保存し定数挿入ユニット１４０がこれを読込み定数挿入時に参考にする。
【００６６】
定数挿入ユニット１４０はキー命令に定数を挿入する（Ｓ５３０）。ポインタが生成された原始コードの終わりに入力されたパラメータ値に対応される定数を挿入する。すなわち、バイトコードのパラメータ値は原始コードの即時フィールドで符号化される。
【００６７】
本発明の内容はジャバだけでなく、他のインタープリタ言語またはバーチャルマシンが私用される言語に適用され得る。
【００６８】
本発明が属する技術分野の通常の知識を有する者は本発明がその技術的思想や必須の特徴を変更せずとも、他の具体的な形態で実施されるということを理解するはずである。したがって以上で記述した実施形態はすべての面で例示的なものであり、限定的ではないものと理解しなければならない。
【００６９】
本発明の範囲は前記詳細な説明よりは後述する特許請求の範囲によって示され、特許請求の範囲の意味および範囲そしてその均等概念から導き出されるすべての変更または変形された形態が本発明の範囲に含まれるものと解釈されなければならない。
【図面の簡単な説明】
【００７０】
【図１】本発明の一実施形態によるジャバ変換加速装置の構成を示す図である。
【図２】本発明の一実施形態によるジャバ変換加速方法を現わすフローチャートである。
【図３】本発明の一実施形態によるジャバ変換加速方法で入力されたバイトコードを検討する方法を示すフローチャートである。
【図４】本発明の一実施形態によるジャバ変換加速方法でパラメータバイトコードを識別して、原始コードを呼出す方法を示すフローチャートである。
【図５】本発明の一実施形態によるジャバ変換加速方法で呼出された原始コードに定数値を挿入する方法を示すフローチャートである。
【符号の説明】
【００７１】
１１０      索引テーブル
１２０      デコーダ
１３０      パラメータバイトコード処理ユニット
１４０      定数挿入ユニット
１５０      原始コードバッファ
【図１】
2008299835.tif 000003
【図２】
2008299835.tif 000004
【図３】
2008299835.tif 000005
【図４】
2008299835.tif 000006
【図５】
2008299835.tif 000007