(57)【特許請求の範囲】
【請求項１】
バイトコードを受信する受信部と、
上記受信されたバイトコードに含まれるフラグを参照することにより上記受信されたバイトコードが第１ブロックの最後のバイトコードであるのかを確認する制御部と、
上記確認の結果、上記受信されたバイトコードが最後のコードであると確認された場合、上記第１ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコード中、最初のネイティブコードの住所を送信する送信部と、
上記ネイティブコードの住所を受信し、上記第１ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコードによる作業を遂行するプロセッサと、
を含み、
上記受信部は、前記第１ブロックに含まれたすべての作業が完了した後、上記第１ブロックとは異なる第２ブロックに含まれたバイトコードを受信する、作業遂行速度を向上させる装置。
【請求項２】
上記第１ブロック及び上記第２ブロックは少なくとも一つ以上の命令語中、分岐命令語の間に含まれた命令語に対するバイトコードを含む、請求項１に記載の作業遂行速度を向上させる装置。
【請求項３】
上記確認結果によってネイティブコードキャッシュに上記受信されたバイトコードに対するネイティブコードを保存するデータ管理部をさらに含む、請求項１に記載の作業遂行速度を向上させる装置。
【請求項４】
上記送信部は、上記ネイティブコードキャッシュに保存されたネイティブコード中、上記第１ブロックの最初のバイトコードに対応するネイティブコードの住所を送信する、請求項３に記載の作業遂行速度を向上させる装置。
【請求項５】
上記受信されたバイトコードに対応するネイティブコードの存在可否によって上記受信されたバイトコードに対応するネイティブコードを生成するインタープリタをさらに含む、請求項１に記載の作業遂行速度を向上させる装置。
【請求項６】
上記バイトコードはジャバコンパイラによって、コンパイルされたジャバコードを含む、請求項１に記載の作業遂行速度を向上させる装置。
【請求項７】
バイトコードを受信する段階と、
上記受信されたバイトコードに含まれるフラグを参照することにより上記受信されたバイトコードが第１ブロックの最後のバイトコードであるのかを確認する段階と、
上記確認の結果、上記受信されたバイトコードが最後のコードであると確認された場合、上記第１ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコード中、最初のネイティブコードの住所を送信する段階と、
上記ネイティブコードの住所を受信し、上記第１ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコードによる作業を遂行する段階と、
上記第１ブロックに含まれたすべての作業が完了した後、上記第１ブロックとは異なる第２ブロックに含まれたバイトコードを受信する段階と、
を含む作業遂行速度を向上させる方法。
【請求項８】
上記第１ブロック及び上記第２ブロックは少なくとも一つ以上の命令語中、分岐命令語の間に含まれた命令語に対するバイトコードを含む、請求項７に記載の作業遂行速度を向上させる方法。
【請求項９】
上記確認結果によってネイティブコードキャッシュに上記受信されたバイトコードに対するネイティブコードを保存する段階をさらに含む、請求項７に記載の作業遂行速度を向上させる方法。
【請求項１０】
上記送信する段階は上記ネイティブコードキャッシュに保存されたネイティブコード中、上記第１ブロックの最初のバイトコードに対応するネイティブコードの住所を送信する段階を含む、請求項９に記載の作業遂行速度を向上させる方法。
【請求項１１】
上記受信されたバイトコードに対応するネイティブコードの存在可否によって上記受信されたバイトコードに対応するネイティブコードを生成する段階をさらに含む、請求項７に記載の作業遂行速度を向上させる方法。
【請求項１２】
上記バイトコードはジャバコンパイラによってコンパイルされたジャバコードを含む、請求項７に記載の作業遂行速度を向上させる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業遂行速度を向上させる装置および方法に関するものであって、さらに詳細にはバイトコードでのコンパイルとネイティブコードの実行をバイトコード単位で遂行するようにするのではなく、一連のバイトコードのブロック単位で遂行するようにする作業遂行速度を向上させる装置および方法に関するものである。
【背景技術】
【０００２】
ジャバ（Ｊａｖａ）（登録商標）は、作成されたコードをプラットホーム独立的に遂行する客体指向プログラミング言語である。ここで、プラットホームはプログラムが実行されるハードウェアあるいはオペレーティングシステムのようなソフトウェア環境を言う。ジャバで作成されたコードはジャバコンパイラ（Ｊａｖａ（登録商標）  Ｃｏｍｐｉｌｅｒ）によってバイトコード（Ｂｙｔｅ  Ｃｏｄｅ）にコンパイルされ、バイトコードは多様なハードウェア基盤プラットホームにポーティングされたジャバ仮想マシン（Ｊａｖａ（登録商標）  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）によって実行される。
【０００３】
バイトコードは、機械語のような命令語として特定プロセッサに局限されない。このようなバイトコードを実行するため、仮想マシンが動作するようになるが、仮想マシンはバイトコードを翻訳し、対応するネイティブコードに変換する。バイトコードは、特定アーキテクチャに局限されないため、バイトコードを実行するジャバ仮想マシンが具備されたアーキテクチャでも実行され得、これにしたがい、二進（ｂｉｎａｒｙ）バイトコードファイルがプラットホーム独立的に実行され得るものである。
【０００４】
ジャバにおいての主要弱点としては実行速度にある。特定アーキテクチャにコンパイルされたプログラムはバイトコードよって速く実行されるが、これはそのようなプログラムがプロセッサアーキテクチャをまた他のプロセッサアーキテクチャ上でエミュレート（ｅｍｕｌａｔｅ）する必要なく、ハードウェア上で直接実行されるためである。
【０００５】
バイトコードにおいて、プロセッサ上で動作するジャバ仮想マシンはその動作以前にバイトコードをネイティブコードに変換しなければならない。
【０００６】
バイトコードの実行速度を増加させるためのハードウェアあるいはソフトウェア的な多様な技術が試みられている。ジャバ仮想マシンの速度を増加させるため、ＪＩＴ（Ｊｕｓｔ  Ｉｎ  Ｔｉｍｅ）あるいはこれよりさらに速いＨｏｔ  Ｓｐｏｔ  ＪＩＴｓのようなソフトウェア技術が利用されることもある。ここで、ＪＩＴはネイティブプロセッサ命令語を生成することにおいて、コンパイルオーバーヘッドおよびメモリーオーバーヘッドを随伴する。
【０００７】
バイトコードの翻訳速度を向上させるハードウェア的な技術として、プロセッサアーキテクチャを修正したり外部プロセッサを利用する技術が試みられている。
【０００８】
図１は、従来技術によってバイトコードをネイティブコードに変換し、実行する過程を示している。
その動作過程を察し見ると、プロセッサ（ＣＰＵ）上で動作するソフトウェアルーチンが先にバイトコードをロード（ｌｏａｄ）し、プロセッサはバイトコードあるいはバイトコードの住所をジャバ翻訳加速機に伝達する（Ｓ１０）。伝達される対象がバイトコードの住所の場合、該当位置にあるバイトコードが呼び出しされ得る。
【０００９】
そして、バイトコードはバイトコード翻訳機２２０の内部に具備された状態マシンに入力され、状態マシンはネイティブコードキャッシュを検索し、同一なバイトコードに対し、キャッシュされた翻訳本すなわち、ネイティブコードがあるのかを確認する（Ｓ２０）。そうして、万一存在すると、キャッシュされた位置の住所がプロセッサに伝達され（Ｓ６０）、該当位置からコードが実行される（Ｓ７０）。
【００１０】
一方、翻訳本に対するキャッシュが存在しない場合、状態マシンはルックアップテーブル２２５を検索する（Ｓ３０）。バイトコード翻訳ルックアップテーブルは、ネイティブコードのマッピングあるいは変換のため、保存された情報として、バイトコードがルックアップテーブルに存在するのかが確認される（Ｓ４０）。それで、万一バイトコードが存在しなければ、プロセスは終了され、バイトコードがルックアップテーブルに存在すると、ネイティブコードの翻訳本がネイティブコードキャッシュに複写される（Ｓ５０）。そして、プロセッサはネイティブコードキャッシュの保存位置中、該当ネイティブコードの住所を伝達された後（Ｓ６０）、該当位置からネイティブコードによる命令語を実行する（Ｓ７０）。
【００１１】
最終的に翻訳されたバイトコードに対するネイティブコードが実行されると、次のバイトコードの翻訳開始を担当するソフトウェアあるいはハードウェアルーチンに制御権が移転され、このようなハンドオフ（ｈａｎｄｏｆｆ）は翻訳されたバイトコードの実行の最後段階で遂行される。
【００１２】
しかし、ハンドオフはあるいは他のオーバーヘッドとして、性能の損失を招来するため、ハンドオフの回数を減少させることによってシステムの性能を向上させる発明の登場が要求される。
【００１３】
特許文献１はジャバプログラム実行時に頻繁に使用されるバイトコードをネイティブコードにコンパイルし保存しておき、その後にジャバプログラムを実行するとき該当バイトコードに対するネイティブコード呼び出し実行させることによって、バイトコードをコンパイルしネイティブコードを生成するのに所要される時間を減少させる発明を開示している。
【００１４】
しかし、開示された発明は頻繁に使用されるバイトコードだけをネイティブコードにコンパイルして保存するため、バイトコードの使用頻度によって時間短縮の効率が異なることがある。
【００１５】
したがって、バイトコードの使用頻度と無関係にコンパイル時間を短縮することができる発明の登場が要求される。
【特許文献１】大韓民国公開特許第１０−２００４−００７６０４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明は、バイトコードでのコンパイルとネイティブコードの実行を一連のバイトコードのブロック単位で遂行するようにすることをその目的とする。
【００１７】
本発明の開示は、以上で言及した目的に制限されず、言及されていないさらなる目的は下の記載によって当業者に明確に理解されるものである。
【課題を解決するための手段】
【００１８】
上記目的を達成するため、本発明の実施形態による作業遂行速度を向上させる装置はバイトコードを受信する受信部と、上記受信されたバイトコードがブロックの最後のバイトコードであるのかを確認する制御部、および上記確認結果によって上記ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコード中、最初のネイティブコードの住所を送信する送信部を含む。
【００１９】
本発明の実施形態による作業遂行速度を向上させる方法は、バイトコードを受信する段階と、上記受信されたバイトコードがブロックの最後のバイトコードであるのかを確認する段階、および上記確認結果によって上記ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコード中、最初のネイティブコードの住所を送信する段階を含む。
その他実施形態の具体的な事項は詳細な説明および図面に含まれている。
【発明の効果】
【００２０】
上記したような、本発明の作業遂行速度を向上させる装置および方法によると、バイトコードでのコンパイルとネイティブコードの実行を一連のバイトコードのブロック単位で遂行することによって作業遂行速度を向上させる長所がある。
【００２１】
本発明の利点および特徴、そして、それらを達成する方法は添付される図面と共に詳細に後述されている実施形態を参照すれば明確になるものである。しかし、本発明は以下で開始される実施形態に限定されるものではなく、互いに異なる多様な形態で具現され得、単に本実施形態は本発明の開示を完全にし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるため、提供されているものであって、本発明は請求項の範疇によってのみ定義される。明細書全体において、同一参照符号は同一構成要素を示す。
【００２２】
以下、添付された図面を参照し、本発明の望ましい実施形態を詳細に説明する。
【００２３】
図２は、本発明の実施形態による作業遂行速度を向上させる装置を示したブロック図として、作業遂行速度を向上させる装置（以下、加速装置と言う）はプロセッサ１００および翻訳加速機２００を含み構成され、翻訳加速機２００はネイティブコードキャッシュ２１０およびバイトコード翻訳機２２０を含み構成される。
【００２４】
プロセッサ１００は、翻訳加速機２００にバイトコード１１０を送信し、送信されたバイトコード１１０に対応するネイティブコード１３０を受信し、ネイティブコード１３０による命令語を実行する役割をする。ここで、バイトコード１１０はプログラミングコードがコンパイルされた機械語のような命令語として、特定プラットホームに局限されないコードを含む。
【００２５】
一方、プロセッサ１００はバイトコード１１０の代わりにバイトコード１１０の住所を翻訳加速機２００に送信することもできるが、バイトコード１１０の住所が送信された場合にもプロセッサ１００は該当バイトコード１１０に対応するネイティブコード１３０を受信し、ネイティブコード１３０による命令語を実行することができる。
【００２６】
ネイティブコード１３０による命令語を実行するため、プロセッサ１００は翻訳加速機２００から特定ネイティブコードの住所１２０を受信し、受信された住所１２０を始め、以後に存在するネイティブコード１３０による命令語を実行する。すなわち、プロセッサ１００は、一つのバイトコードを送信し、該当バイトコードに対応するネイティブコードを受信するものではなく、複数のバイトコードを送信し、複数のネイティブコードによる命令語を実行するところである。
【００２７】
ここで、プロセッサ１００による作業対象であるネイティブコード１３０は、所定のブロック単位で存在することができるが、ブロックの最後に位置しているネイティブコードには該当ネイティブコードがブロックの最後にあることを示す情報が含み得る。これにしたがい、プロセッサ１００は一つのブロックに含まれた一連のネイティブコードによる複数の命令語を実行するようになり、ブロックの最後まで作業を完了した場合、以後ブロックの最初のネイティブコードの住所を受信し、以後ブロックに対する作業を遂行するようになる。
【００２８】
翻訳加速機２００は、プロセッサ１００からバイトコード１１０を受信した後、受信されたバイトコード１１０を含むブロックの最初のネイティブコードの住所１２０をプロセッサ１００に送信する役割をする。
【００２９】
一方、翻訳加速機２００は、プロセッサ１００からバイトコード１１０の代わりにバイトコード１１０の住所を受信することもできるが、この時翻訳加速機２００は、該当住所に存在するバイトコードを利用し、ネイティブコードの住所１２０をプロセッサ１００に送信することができる。
【００３０】
バイトコード１１０を受信し、ネイティブコード１３０を送信するため、翻訳加速機２００にはバイトコード翻訳機２２０が含み得るが、バイトコード翻訳機２２０は、状態マシン３００およびルックアップテーブル２２５を含み構成される。
【００３１】
状態マシン３００は、プロセッサ１００から受信されたバイトコード１１０がブロックの最後のバイトコードであるのかを確認し、その結果によってネイティブコードの住所１２０をプロセッサ１００に送信する役割をする。
【００３２】
すなわち、受信されたバイトコード１１０がブロックの最後のバイトコードでない場合、ネイティブコードキャッシュ２１０に該当バイトコード１１０に対するネイティブコードを保存し、受信されたバイトコード１１０がブロックの最後のバイトコードの場合、ブロックの最初のバイトコードに対応するネイティブコードの住所１２０をプロセッサ１００に送信するものである。状態マシン３００に対する詳しい説明は図３によって後述することとする。
【００３３】
一方、本発明の実施形態による加速装置はプログラミングコードをコンパイル（ｃｏｍｐｉｌｅ）してバイトコードに変換し、バイトコードに対応するネイティブコードに翻訳（ｉｎｔｅｒｐｒｅｔ）した後翻訳されたネイティブコードを実行するが、プログラミングコードにはジャバコードが含み得る。しかし、これは本発明の加速装置がジャバコードに対する作業だけを遂行し得ることを意味するものではなく、コンパイルと翻訳をリアルタイムで遂行するすべての環境で動作し得ることを意味するものとして理解しなければならない。
【００３４】
図３は、図２の装置に含まれた状態マシン３００の詳細な構成を示したブロック図であって、状態マシン３００は受信部３１０、インタープリタ３２０、データ管理部３３０、制御部３４０、コード確認部３５０、ルックアップテーブル検索部３６０および送信部３７０を含み構成される。
【００３５】
受信部３１０は、プロセッサ１００からバイトコードを受信する役割をする。また、プロセッサ１００がバイトコードの住所を送信した場合、受信部３１０は、バイトコードの住所を受信することもできる。
【００３６】
コード確認部３５０は、ネイティブコードキャッシュ２１０に受信されたバイトコードに対応するネイティブコードが存在するのかを確認する役割をする。ネイティブコードキャッシュ２１０は速い速度で読みと書きが可能な保存空間であって臨時的にネイティブコードを保存する役割をするが、コード確認部３５０は、ネイティブコードキャッシュ２１０に保存された情報中、受信されたバイトコードに対応するネイティブコードが保存されているのかを確認するところである。
【００３７】
ルックアップテーブル検索部３６０は、ルックアップテーブル２２５を検索し、受信されたバイトコードが存在するのかを確認する役割をする。ルックアップテーブル２２５は、バイトコードとネイティブコード間の対応関係が明示されたテーブルであって、ルックアップテーブル検索部３６０は、ルックアップテーブル２２５を検索することによって特定バイトコードに対応するネイティブコードの存在可否および保存位置を確認することができるようになる。
【００３８】
インタープリタ３２０は、受信されたバイトコードをネイティブコードに翻訳する役割をする。コード確認部３５０の確認結果によってネイティブコードキャッシュ２１０に該当ネイティブコードが保存されなく、ルックアップテーブル検索部３６０の検索結果によって受信されたバイトコードに対応するネイティブコードが存在しない場合、インタープリタ３２０が受信されたバイトコードを分析し、ネイティブコードを生成するものである。
【００３９】
データ管理部３３０は、ネイティブコードキャッシュ２１０にネイティブコードを保存する役割をする。すなわち、データ管理部３３０は、ルックアップテーブル検索部３６０によって受信されたバイトコードに対応するネイティブコードの位置が確認された場合、該当ネイティブコードをネイティブコードキャッシュ２１０に保存するか、インタープリタ３２０によって、ネイティブコードが生成された場合、生成されたネイティブコードをネイティブコードキャッシュ２１０に保存するところである。
【００４０】
データ管理部３３０は、制御部３４０からネイティブコード保存に対する制御命令を受信することによってネイティブコードを保存するが、制御命令を受信した順序によるネイティブコードキャッシュ２１０の保存空間にネイティブコードを保存することができる。例えば、現在保存対象となるネイティブコードの保存位置は、以前に保存されたネイティブコードに隣接した次の番地の保存空間である。
【００４１】
また、保存可否および保存位置が明示されたインデックステーブルが具備され得るが、インデックステーブルが具備された場合、データ管理部３３０は、保存対象のネイティブコードをネイティブコードキャッシュ２１０の任意の位置に保存することができ、ネイティブコードが保存された場合、インデックステーブルを更新することができる。
【００４２】
制御部３４０は、受信されたバイトコードがブロックの最後のバイトコードであるのかを確認する役割をする。ブロックの最後のバイトコードには該当バイトコードが最後のバイトコードであることを示す情報が含み得るが、制御部３４０は、これを利用し、受信されたバイトコードがブロックの最後のバイトコードであるのかを確認するところである。例えば、すべてのバイトコードには最後のバイトコード可否を示すフラッグが含み得るものであって、フラッグの値が０であれば、最後のバイトコードではなく、フラッグの値が１であれば、最後のバイトコードと設定され得るものである。
【００４３】
また、制御部３４０は、受信部３１０、インタープリタ３２０、データ管理部３３０、コード確認部３５０、ルックアップテーブル検索部３６０および送信部３７０の全般的な制御を遂行する。
【００４４】
送信部３７０は、制御部３４０の確認結果によってブロックに含まれた少なくとも一つのバイトコードに対するネイティブコード中、最初のネイティブコードの住所をプロセッサ１００に送信する役割をする。
【００４５】
ネイティブコードの住所を受信することによって、プロセッサ１００は受信されたネイティブコードの住所を始め、該当ブロックに含まれたすべてのネイティブコードによる命令語を実行するようになる。この時、プロセッサ１００は、インデックステーブルを参照し、実行対象となるネイティブコードの順序と最後のネイティブコードの位置を確認することもできる。
【００４６】
図４は、本発明の実施形態によってネイティブコードがブロック単位で構成されるものを示した図面である。
前述したように、ネイティブコードキャッシュ２１０にはネイティブコードが保存されるが、ネイティブコードは図４に図示されたようにブロック単位で保存され得る。すなわち、少なくとも一つ以上のブロック４１０、４２０、４３０各々に少なくとも一つ以上のネイティブコードが含み得る。
【００４７】
受信部３１０によってバイトコードが受信された場合、コード確認部３５０およびルックアップテーブル検索部３６０は、受信されたバイトコードに対応するネイティブコードが存在するのかを確認し、その結果によってインタープリタ３２０はネイティブコードを生成し、データ管理部３３０は、別途の保存手段に保存されているネイティブコードあるいは生成されたネイティブコードをネイティブコードキャッシュ２１０にブロック単位で保存するところである。
【００４８】
そして、制御部３４０によって受信されたバイトコードがブロックの最後のバイトコードであると確認されると、制御部３４０は、該当ブロックの最初の位置に存在するネイティブコード（４１１、４２１、４３１）の住所を抽出した後、送信部３７０をとおし、プロセッサ１００に送信する。ここで、ネイティブコードの住所はネイティブコードキャッシュ２１０上の住所を意味するが、これを受信したプロセッサ１００は、該当住所に位置しているネイティブコードを始め、順次的にネイティブコードを抽出し、対応する命令語を実行する。これは、ブロックの最後に存在するネイティブコードによる命令語を実行する時まで進行され、ブロックに含まれたすべての作業が完了されると、受信部３１０は以後バイトコードを受信するようになる。
【００４９】
図５は、本発明の実施形態によるブロックが分岐命令語を基準として形成されたものであることを示した図面である。
本発明でブロックは命令語の集合として理解され得る。すなわち、ブロックに含まれた一連の命令語が順次に実行されるものである。したがって、コンパイルとインタープリタのハンドオフを減少させるためにはブロックにより多くの数のネイティブコードが含まれていることが望ましいが、実際にブロックは分岐命令語の位置によってその大きさが決定され得る。
【００５０】
例えば、ｉｆ命令語のような分岐命令語が一つのブロックに含まれた場合、以後作業はランタイム時の状態によって決定され得るため、以後の作業は別途のブロックに含まれるしかないものである。
【００５１】
結局、ブロックの最後に位置しているネイティブコードによる命令語は分岐命令語であり得るものであって、ブロックの分岐が遂行されることによって、少なくとも二以上の分岐されたブロックが形成される。
【００５２】
図５に図示されたように、第１ブロック５１０の最後に位置しているネイティブコードによる命令語が分岐命令語であるため、分岐点５０１から第２ブロック（５２０）と第３ブロック（５３０）に分岐される。
【００５３】
そして、第２ブロック５２０および第３ブロック５３０の最後に位置しているネイティブコードによる命令語が分岐命令語であるため、各分岐点５０２，５０３から第４ブロック５４０と第５ブロック５５０に分岐され、第６ブロック５６０と第７ブロック５７０に分岐されるものである。
【００５４】
以上、分岐点の位置は分岐命令語の位置により決定されるものと説明したが、設定によって任意の位置に分岐点が位置し得ることはもちろんである。
【００５５】
図６は、本発明の実施形態による作業遂行速度を向上させる過程を示したフローチャートである。
作業遂行速度を向上させるため、状態マシン３００の受信部３１０は、まずプロセッサ１００からバイトコードあるいはバイトコードの住所を受信する（Ｓ６１０）。
【００５６】
そして、コード確認部３５０は、受信されたバイトコードに対応するネイティブコードがネイティブコードキャッシュ２１０に保存されているのかを確認する（Ｓ６２０）。この時、バイトコードの住所が確認された場合、コード確認部３５０は該当バイトコードを呼び出した後、これを利用し、ネイティブコードの保存可否を確認することもできる。
【００５７】
ネイティブコードが保存されている場合、送信部３７０はプロセッサ１００にネイティブコードの住所すなわち、ネイティブコードが保存されているネイティブコードキャッシュ２１０上の住所をプロセッサ１００に送信する（Ｓ６９０）。
【００５８】
ネイティブコードの住所を受信することによって、プロセッサ１００は該当ネイティブコードを始め該当ブロックのすべてのネイティブコードによる命令語を実行する（Ｓ７００）。
【００５９】
一方、ネイティブコードがネイティブコードキャッシュ２１０に保存されていない場合、ルックアップテーブル検索部３６０は、ルックアップテーブル２２５を検索し（Ｓ６３０）、受信されたバイトコードが存在するのかを確認する（Ｓ６４０）。
【００６０】
そして、ルックアップテーブル２２５にバイトコードが含まれている場合、制御部３４０は受信されたバイトコードがブロックの最後のバイトコードであるのかを確認する（Ｓ６６０）。
【００６１】
一方、ルックアップテーブル２２５にバイトコードが含まれていない場合、制御権がインタープリタ３２０に移転され、インタープリタ３２０によって受信されたバイトコードに対応するネイティブコードが生成された後に（Ｓ６５０）制御部３４０は、該当バイトコードがブロックの最後のバイトコードであるのかを確認する（Ｓ６６０）。
【００６２】
受信されたバイトコードがブロックの最後のバイトコードの場合、送信部３７０はプロセッサ１００に該当バイトコードに対応するネイティブコードの住所をプロセッサ１００に送信する（Ｓ６９０）。
【００６３】
一方、受信されたバイトコードがブロックの最後のバイトコードでない場合、データ管理部３３０は受信されたバイトコードに対応するネイティブコードをネイティブコードキャッシュ２１０に保存する（Ｓ６７０）。この時、データ管理部３３０はネイティブコードの保存可否および保存位置が明示されたインデックステーブルを更新することができる。
【００６４】
ネイティブコードがネイティブコードキャッシュ２１０に保存され、インデックステーブルが更新されることによって、受信部３１０は、次のバイトコードあるいはバイトコードの住所を受信するようになり（Ｓ６８０）、受信されたバイトコードに対応するネイティブコードの存在可否およびブロックでのバイトコードの位置確認などが反復され、遂行される。
【００６５】
以上添付された図面を参照し、本発明の実施形態を説明したが、本発明が属する技術分野において通常の知識を有する者は本発明がその技術的思想や必須の特徴を変更せず、他の具体的な形態において実施されるということを理解し得るものである。したがって、以上述した実施形態はすべての面で例示的なものであって、限定的ではないことを理解しなければならない。
【図面の簡単な説明】
【００６６】
【図１】従来技術によってバイトコードをネイティブコードに変換し、実行する過程を示したフローチャートである。
【図２】本発明の実施形態による作業遂行速度を向上させる装置を示したブロック図である。
【図３】図２の装置に含まれた状態マシンの詳細な構成を示したブロック図である。
【図４】本発明の実施形態によってネイティブコードがブロック単位で構成されるものを示した図である。
【図５】本発明の実施形態によるブロックが分岐命令語を基準として形成されたものであることを示した図である。
【図６】本発明の実施形態による作業遂行速度を向上させる過程を示したフローチャートである。
【符号の説明】
【００６７】
１００      プロセッサ
２００      翻訳加速機
２１０      ネイティブコードキャッシュ
２２０      バイトコード翻訳機
３００      状態マシン
【図１】
0005508681.tif 000002
【図２】
0005508681.tif 000003
【図３】
0005508681.tif 000004
【図４】
0005508681.tif 000005
【図５】
0005508681.tif 000006
【図６】
0005508681.tif 000007