JP3605327B2 - プログラム実行装置 - Google Patents
プログラム実行装置 Download PDFInfo
- Publication number
- JP3605327B2 JP3605327B2 JP32804699A JP32804699A JP3605327B2 JP 3605327 B2 JP3605327 B2 JP 3605327B2 JP 32804699 A JP32804699 A JP 32804699A JP 32804699 A JP32804699 A JP 32804699A JP 3605327 B2 JP3605327 B2 JP 3605327B2
- Authority
- JP
- Japan
- Prior art keywords
- call unit
- optimization
- level
- unit
- program
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の属する技術分野】
本発明はプログラム実行装置に関し、特に、複数の呼び出し単位から構成されるプログラムを呼び出し単位毎に実行するプログラム実行装置に関する。
【0002】
【従来の技術】
コンピュータのプログラミング言語を大別すると、(1)コンパイラ型言語と(2)インタプリタ型言語に分類される。
【0003】
前者のコンパイラ型言語は、高級言語で記述されたソースプログラムをCPU(Central Processing Unit)が理解可能な低レベルな機械語に一括して変換し、実行するタイプの言語である。
【0004】
後者のインタプリタ型言語は、プログラムの実行時に、ソースプログラムを逐次解釈しながら実行するタイプの言語である。
前者のコンパイラ型言語は、コンパイル処理によってソースプログラムを機械語に一括して変換するので、インタプリタ型言語で記述されたプログラムよりも実行速度が速いという長所がある。
【0005】
一方、後者のインタプリタ型言語の場合、プログラムを実行する前にコンパイル処理を実行する必要がないため簡便であるという長所がある。
【0006】
【発明が解決しようとする課題】
ところで、後者のインタプリタ型言語は、実行時のオーバーヘッドが比較的大きいため、動作速度が遅いという問題点がある。
【0007】
そこで、プログラムを最適化して実行速度を向上させるための手法が種々提案されている。しかしながら、従来におけるこれらの手法は、プログラム全体を一定の最適化レベルで最適化処理するものであるので、ほとんど実行されない処理に対しても、頻繁に実行される処理に対しても同レベルの最適化が施されるため、効率的な最適化ができないという問題点があった。
【0008】
また、高レベルの最適化処理を施せば、その分だけアプリケーションプログラムの実行速度は向上するが、最適化処理自体に時間を要するため、どのレベルで最適化するかを見極めることが困難であるという問題点があった。
【0009】
本発明はこのような点に鑑みてなされたものであり、インタプリタ型言語によって記述されたアプリケーションプログラムを適切なレベルで最適化処理し、その実行速度を向上させることが可能なプログラム実行装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示す、複数の呼び出し単位から構成されるプログラム1を呼び出し単位毎に実行するプログラム実行装置において、前記プログラム1を構成する所定の呼び出し単位をコンパイルするコンパイル手段2と、前記コンパイル手段2によってコンパイルされた呼び出し単位を記憶する記憶手段3と、前記記憶手段3に記憶された所定の呼び出し単位を実行する実行手段4と、各呼び出し単位が実行された回数を計数する計数手段5と、前記計数手段5による計数結果が所定の閾値を上回ったか否かを判定する判定手段6と、前記判定手段6によって所定の閾値を上回ったと判定された場合には、該当する呼び出し単位を再度最適化する再最適化手段7と、を有することを特徴とするプログラム実行装置が提供される。
【0011】
ここで、コンパイル手段2は、プログラム1を構成する所定の呼び出し単位をコンパイルする。記憶手段3は、コンパイル手段2によってコンパイルされた呼び出し単位を記憶する。実行手段4は、記憶手段3に記憶された所定の呼び出し単位を実行する。計数手段5は、各呼び出し単位が実行された回数を計数する。判定手段6は、計数手段5による計数結果が所定の閾値を上回ったか否かを判定する。再最適化手段7は、判定手段6によって所定の閾値を上回ったと判定された場合には、該当する呼び出し単位を再度最適化する。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の動作原理を説明する原理図である。この図において、プログラム1は、複数の呼び出し単位から構成され、各呼び出し単位毎に呼び出されて実行される。ここで、呼び出し単位とは、関数、メソッド、プロシージャー等である。
【0013】
コンパイル手段2は、プログラム1から所定の呼び出し単位を取得してコンパイル処理を施し、実行可能なコードを生成する。
記憶手段3は、コンパイルされた呼び出し単位をコンパイル手段2から取得し、所定の領域に格納する。
【0014】
実行手段4は、記憶手段3に格納されている所定の呼び出し単位を実行する。
計数手段5は、実行手段4が実行した呼び出し単位の実行回数を計数する。
判定手段6は、計数手段5による計数値が所定の閾値を上回った場合には、その旨を再最適化手段7に通知する。
【0015】
再最適化手段7は、判定手段6から通知があった場合には、該当する呼び出し単位を更に高いレベルで最適化する。
次に、以上の原理図の動作について説明する。
【0016】
プログラム1の実行が開始されると、最初に実行されるべき呼び出し単位がコンパイル手段2によって取得され、コンパイル処理が施された後、記憶手段3の所定の領域に格納される。
【0017】
記憶手段3に格納された呼び出し単位は、実行手段4によって実行される。
このとき、計数手段5は、実行手段4によって実行された呼び出し単位の実行回数を計数する。例えば、呼び出し単位である「func1」が初めて実行されたとすると、func1に対応する計数値は“1”となる。
【0018】
判定手段6は、計数手段5の計数結果を受けて、その計数値が所定の閾値を上回っていないか否かを判定する。例えば、呼び出し単位「func2」の計数値が“102”である場合に、閾値が“100”であるとすると、判定手段6は、閾値を上回っていると判定して再最適化手段7に通知する。
【0019】
再最適化手段7は、該当する呼び出し単位を、その時点における最適化レベルよりも更に高いレベルで最適化する。例えば、前述の「func2」の例において、func2のその時点での最適化レベルが「低」であるとすると、最適化レベルが「中」となるように最適化処理が施される。なお、再最適化手段7による最適化処理は、プログラム1の実行処理と並行して実行され、また、最適化処理の優先度はプログラム1のそれよりも低く設定されているので、プログラム1の実行を遅滞させることなく、最適化処理を実行することが可能となる。
【0020】
そして、最適化処理が完了した場合には、最適化後の呼び出し単位が実行手段4の実行対象とされるので、プログラム1の実行速度を向上させることが可能となる。
【0021】
以上に説明したように、本発明のプログラム実行装置によれば、各呼び出し単位の実行回数を計数し、その計数値が所定の閾値を上回った場合には、該当する呼び出し単位を更に高い最適化レベルで最適化しなおすようにしたので、頻繁に実行される呼び出し単位ほど高いレベルで最適化されることになり、処理全体としての実行速度を向上させることが可能となる。
【0022】
また、再最適化手段7の処理を、プログラム1の実行処理と並行して行うとともに、再最適化手段7が実行する処理の優先度をプログラム1のそれよりも低く設定するようにしたので、プログラム1の実行を遅滞させることなく、最適化処理を実行することが可能となる。
【0023】
次に、図2を参照して、本発明の実施の形態の構成例について説明する。
この図において、記憶装置10は、例えば、HDD(Hard Disk Drive)によって構成されており、実行対象となるプログラムソースコード10aを記憶している。なお、このプログラムソースコード10aは複数の関数から構成されている。
【0024】
プログラムロード部11は、実行対象となる関数をプログラムソースコード10aから取得し、コンパイル部12に供給する。
コンパイル部12は、ソースコードで記述された関数に対してコンパイル処理を施し、実行可能形式のコードに変換する。
【0025】
最適化部13は、関数に対して低レベルの最適化処理を施し、メモリ14に供給する。
メモリ14は、例えば、RAM(Random Access Memory)等によって構成されており、最適化部13によって最適化された関数を格納する。
【0026】
プログラム実行部15は、メモリ14に格納されている関数を実行する。
最適化管理部16は、プログラム実行部15によって実行された各関数の実行回数を計数するとともに、計数値が所定の閾値を上回った場合には、より高レベルの最適化が必要である旨をバックグラウンド最適化部17に通知する。
【0027】
バックグラウンド最適化部17は、最適化管理部16から通知を受けた場合には、該当する関数に対して更に高レベルの最適化を施す。
次に、以上の実施の形態の動作について説明する。
【0028】
図3は、図2に示す実施の形態においてプログラムソースコード10aを実行する場合の処理の流れを説明するフローチャートである。このフローチャートが開始されると以下の処理が実行される。
[S1]プログラム実行部15は、実行対象の関数を特定する。
[S2]プログラム実行部15は、実行済みの関数であるか否かを判定し、実行済みである場合にはステップS7に進み、それ以外の場合にはステップS3に進む。
[S3]プログラム実行部15は、プログラムロード部11を制御して、対象となる関数を記憶装置10から読み込ませる。
[S4]コンパイル部12は、プログラムロード部11から供給された関数をコンパイルする。
[S5]最適化部13は、コンパイルされた関数に低レベルの最適化を施し、メモリ14の所定の領域に格納する。
[S6]最適化管理部16は、コンパイルされた関数の現最適化レベル(低レベル)を記憶する。
【0029】
図4は、最適化管理部16が管理している各関数の情報の一例である。この例では、各関数の名称、実行回数、現最適化レベル、および、必要最適化レベルが各関数毎に関連付けられて記憶されている。ここで、「実行回数」は、その関数が実行された回数であり、また、現最適化レベルは、その関数の現時点における最適化レベルである。更に、必要最適化レベルは、現在の実行回数から求められる必要な最適化レベルである。なお、必要最適化レベルと現最適化レベルが異なっているのは、関数の最適化処理には一定の処理時間を要するためである。
[S7]最適化管理部16は、該当する関数の実行回数(図4参照)をインクリメントする。
[S8]最適化管理部16は、実行回数が、最適化レベルを定めるための閾値を上回ったか否かを判定し、閾値を上回った場合にはステップS9に進み、それ以外の場合にはステップS10に進む。
【0030】
図5は、実行回数と必要最適化レベルとの対応関係の一例を示す図である。この例では、実行回数が“1”〜“50”の場合は、必要最適化レベルは「低」とされ、実行回数が“51”〜“100”の場合は、必要最適化レベルは「中」とされ、また、実行回数が“101”以上である場合は、必要最適化レベルは「高」とされる。
[S9]最適化管理部16は、必要最適化レベルを更新する。
【0031】
例えば、図4に示す「func2」の実行回数が“100”から“101”に変化した場合には、図5より必要最適化レベルは「高」の範疇に入るので、図4に示す必要最適化レベルが「高」に変更される。
[S10]最適化管理部16は、処理対象の関数の現最適化レベルを取得する。
[S11]最適化管理部16は、必要最適化レベルと現最適化レベルとを比較し、これらが等しい場合にはステップS13に進み、それ以外の場合にはステップS12に進む。
[S12]最適化管理部16は、バックグラウンド最適化部17を制御して、後述するバックグラウンド最適化処理を起動させる。
[S13]プログラム実行部15は、現最適化レベルの関数を実行する。
【0032】
例えば、最適化処理が終了していない場合には、これまで実行されていた関数が実行され、最適化が終了した場合には最適化後の関数が実行される。
[S14]プログラム実行部15は、処理を継続するか否か判定し、継続する場合にはステップS1に戻って前述の場合と同様の処理を繰り返し、それ以外の場合には処理を終了する。
【0033】
次に、図6を参照して、図3に示すステップS12で起動されるバックグラウンド最適化処理の詳細について説明する。なお、この処理は、図3に示す処理と並行して実行されるが、その優先度は図3に示す処理よりも低く設定されているので、図3の処理の負荷が高くない場合に実行される。
【0034】
図6に示すフローチャートが実行されると、以下の処理が実行される。
[S20]バックグラウンド最適化部17は、最適化処理の対象となる関数の必要最適化レベルを最適化管理部16から取得する。
[S21]コンパイル部12は、プログラムロード部11を介して処理対象の関数を記憶装置10のプログラムソースコード10aから取得し、コンパイル処理を実行する。
[S22]バックグラウンド最適化部17は、コンパイルが終了した関数をコンパイル部12から取得し、ステップS20において取得した必要最適化レベルに応じた最適化処理を施す。
【0035】
図7は、必要最適化レベルとその最適化処理との対応関係を示す図である。この図の例では、「低レベル最適化」では、ループ対象外の処理をループ外に追放する最適化が実行される。即ち、ループ処理に含まれている処理であって、ループ回数によらず処理内容が変化しない処理は、ループから除外することにより処理の高速化を図る。
【0036】
また、「中レベル最適化」では、レジスタ使用の効率化を図る最適化が実行される。即ち、レジスタに代入される値が既に代入されている値と同一である場合には、その代入処理を省略することにより、処理の高速化を図る。
【0037】
更に、「高レベル最適化」では、関数をインライン展開する最適化が実行される。即ち、手続きや関数を呼び出す代わりに、その手続きや関数を呼び出される場所に埋め込み、呼び出し時に必要な変数等の待避処理を省略して処理の高速化を図る。
[S23]バックグラウンド最適化部17は、メモリ14に格納されている最適化前の関数(現最適化レベルに対応する関数)と、ステップS22の処理により最適化された関数(必要最適化レベルに対応する関数)の入れ換えを行い、プログラム実行部15の実行対象を変更する。
【0038】
その結果、これ以降において、該当する関数が呼び出された場合には、プログラム実行部15は、ステップS22において最適化された関数を実行することになる。例えば、低レベル最適化関数14aが実行対象とされている場合に、中レベル最適化関数14bが生成された場合には、この中レベル最適化関数14bがプログラム実行部15の実行対象となる。
【0039】
以上の実施の形態によれば、呼び出し頻度が高い関数に対して、その頻度に応じたレベルの最適化を施すようにしたので、処理の高速化を図ることが可能となる。
【0040】
また、以上の実施の形態では、最適化処理の優先度をプログラムの実行処理の優先度よりも低く設定してこれらを並行して実行するとともに、最適化処理が終了した時点で、最適化後の関数を実行対象に変更するようにしたので、プログラムの実行処理に負担をかけることなく最適化を行うことが可能となる。
【0041】
なお、本発明は、マルチプロセッサ環境に好適であり、シングルプロセッサの場合に比較してより一層の処理速度の向上を期待することができる。
また、以上の実施の形態では、最適化処理として、例えば、ループ対象外の処理をループ外に追放する処理等を例に挙げたが、本発明はこのような場合のみに限定されるものではない。
【0042】
最後に、上記の処理機能は、コンピュータによって実現することができる。その場合、プログラム実行装置が有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場へ流通させる場合には、CD−ROM(Compact Disk Read Only Memory)やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【0043】
【発明の効果】
以上説明したように本発明では、複数の呼び出し単位から構成されるプログラムを呼び出し単位毎に実行するプログラム実行装置において、プログラムを構成する所定の呼び出し単位をコンパイルするコンパイル手段と、コンパイル手段によってコンパイルされた呼び出し単位を記憶する記憶手段と、記憶手段に記憶された所定の呼び出し単位を実行する実行手段と、各呼び出し単位が実行された回数を計数する計数手段と、計数手段による計数結果が所定の閾値を上回ったか否かを判定する判定手段と、判定手段によって所定の閾値を上回ったと判定された場合には、該当する呼び出し単位を再度最適化する再最適化手段と、を有するようにしたので、プログラムの実行処理を遅延することなく、最適化処理を実行することが可能となる。
【図面の簡単な説明】
【図1】本発明の動作原理を説明する原理図である。
【図2】本発明の実施の形態の構成例を示す図である。
【図3】図2に示す実施の形態においてプログラムを実行する場合の処理の流れを説明するフローチャートである。
【図4】最適化管理部が管理している関数の情報の一例である。
【図5】実行回数と必要最適化レベルとの対応関係の一例を示す図である。
【図6】図3に示すステップS12で起動されるバックグラウンド最適化処理の詳細を説明するフローチャートである。
【図7】必要最適化レベルとその最適化処理との対応関係を示す図である。
【符号の説明】
1 プログラム
2 コンパイル手段
3 記憶手段
4 実行手段
5 計数手段
6 判定手段
7 再最適化手段
10 記憶装置
10a プログラムソースコード
11 プログラムロード部
12 コンパイル部
13 最適化部
14 メモリ
15 プログラム実行部
16 最適化管理部
17 バックグラウンド最適化部
Claims (2)
- 複数の呼び出し単位から構成されるプログラムを呼び出し単位毎に実行するプログラム実行装置において、
呼び出し単位毎に、実行回数と、現最適化レベルと、必要最適化レベルとを対応付けて管理するテーブルと、
呼び出し単位をコンパイルするとともに指定されたレベルの最適化処理を行うコンパイル手段と、
前記コンパイル手段によってコンパイルされた呼び出し単位を記憶する記憶手段と、
呼び出し単位の実行時に、前記テーブルの当該呼び出し単位の実行回数をインクリメントする手段と、
呼び出し単位の実行時に、前記テーブルに格納されている当該呼び出し単位の実行回数と予め定められた実行回数と必要最適化レベルの複数の対応関係にもとづいて、前記テーブルの当該呼び出し単位の必要最適化レベルを更新する手段と、
呼び出し単位の実行時に、前記テーブルに格納されている当該呼び出し単位の現最適化レベルと必要最適化レベルを比較し、現最適化レベルが必要最適化レベルに達していない場合に、当該呼び出し単位を必要最適化レベルで最適化するために前記コンパイル手段を実行した後に前記テーブルの現最適化レベルを当該必要最適化レベルに変更する処理をバックグランドで起動する手段と、
呼び出し単位の実行時に、前記テーブルに格納されている当該呼び出し単位の現最適化レベルで最適化処理された実行単位を実行する手段と、
を有することを特徴とするプログラム実行装置。 - 複数の呼び出し単位から構成されるプログラムを呼び出し単位毎に実行する処理をコンピュータに実行させるプログラムを記録した記録媒体において、
コンピュータを、
呼び出し単位毎に、実行回数と、現最適化レベルと、必要最適化レベルとを対応付けて管理するテーブル、
呼び出し単位をコンパイルするとともに指定されたレベルの最適化処理を行うコンパイル手段、
前記コンパイル手段によってコンパイルされた呼び出し単位を記憶する記憶手段と、
呼び出し単位の実行時に、前記テーブルの当該呼び出し単位の実行回数をインクリメントする手段、
呼び出し単位の実行時に、前記テーブルに格納されている当該呼び出し単位の実行回数と予め定められた実行回数と必要最適化レベルの複数の対応関係にもとづいて、前記テーブルの当該呼び出し単位の必要最適化レベルを更新する手段、
呼び出し単位の実行時に、前記テーブルに格納されている当該呼び出し単位の現最適化レベルと必要最適化レベルを比較し、現最適化レベルが必要最適化レベルに達していない場合に、当該呼び出し単位を必要最適化レベルで最適化するために前記コンパイル手段を実行した後に前記テーブルの現最適化レベルを当該必要最適化レベルに変更する処理をバックグランドで起動する手段、
呼び出し単位の実行時に、前記テーブルに格納されている当該呼び出し単位の現最適化レベルで最適化処理された実行単位を実行する手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32804699A JP3605327B2 (ja) | 1999-11-18 | 1999-11-18 | プログラム実行装置 |
US09/626,372 US6848098B1 (en) | 1999-11-18 | 2000-07-26 | Process and apparatus for optimizing program written in interpretive language for each callable program part base on frequency of executions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32804699A JP3605327B2 (ja) | 1999-11-18 | 1999-11-18 | プログラム実行装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001142718A JP2001142718A (ja) | 2001-05-25 |
JP3605327B2 true JP3605327B2 (ja) | 2004-12-22 |
Family
ID=18205918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32804699A Expired - Fee Related JP3605327B2 (ja) | 1999-11-18 | 1999-11-18 | プログラム実行装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6848098B1 (ja) |
JP (1) | JP3605327B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509485B2 (en) * | 2002-09-04 | 2009-03-24 | Chou Hui-Ling | Method for loading a program module in an operating system |
JP4713820B2 (ja) * | 2003-05-28 | 2011-06-29 | パナソニック株式会社 | プログラム実行制御装置、プログラム実行制御方法 |
US7266813B2 (en) * | 2003-09-30 | 2007-09-04 | International Business Machines Corporation | Determining how many class-type checks to inline |
JP2007226589A (ja) * | 2006-02-24 | 2007-09-06 | Oki Electric Ind Co Ltd | プログラム変換システム |
JP5093509B2 (ja) * | 2008-10-28 | 2012-12-12 | 日本電気株式会社 | Cpuエミュレーションシステム、cpuエミュレーション方法及びcpuエミュレーションプログラム |
US9207921B2 (en) * | 2009-06-22 | 2015-12-08 | Oracle America, Inc. | Fault tolerant compilation with automatic optimization adjustment |
JP2011100388A (ja) * | 2009-11-09 | 2011-05-19 | Fujitsu Ltd | トレース情報収集装置,トレース情報処理装置,およびトレース情報収集方法 |
JP2012208655A (ja) * | 2011-03-29 | 2012-10-25 | Kddi Corp | 自己書き換え処理装置、自己書き換え処理方法、およびプログラム |
BR112016021037B1 (pt) * | 2014-03-11 | 2023-10-17 | IEX Group, Inc | Método e sistema para executar um aplicativo de modo expeditivo em pelo menos um processador computacional, método e sistema para permitir tolerância a falhas para um aplicativo de software |
JP2018028777A (ja) | 2016-08-17 | 2018-02-22 | Necプラットフォームズ株式会社 | エミュレーション装置、エミュレーション方法、及び、エミュレーションプログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59125444A (ja) | 1982-12-31 | 1984-07-19 | Omron Tateisi Electronics Co | インタ−プリタの割込条件チエツク方法 |
JPS63276127A (ja) | 1987-05-07 | 1988-11-14 | Fujitsu Ltd | ダイナミック命令生成方式 |
US5428793A (en) * | 1989-11-13 | 1995-06-27 | Hewlett-Packard Company | Method and apparatus for compiling computer programs with interproceduural register allocation |
US5457799A (en) * | 1994-03-01 | 1995-10-10 | Digital Equipment Corporation | Optimizer for program loops |
US5613118A (en) * | 1994-06-20 | 1997-03-18 | International Business Machines Corporation | Profile-based preprocessor for optimizing programs |
US5802373A (en) * | 1996-01-29 | 1998-09-01 | Digital Equipment Corporation | Method for providing a pipeline interpreter for a variable length instruction set |
US5805895A (en) * | 1996-06-09 | 1998-09-08 | Motorola, Inc. | Method and apparatus for code translation optimization |
US5854933A (en) * | 1996-08-20 | 1998-12-29 | Intel Corporation | Method for optimizing a computer program by moving certain load and store instructions out of a loop |
US5966537A (en) * | 1997-05-28 | 1999-10-12 | Sun Microsystems, Inc. | Method and apparatus for dynamically optimizing an executable computer program using input data |
US5970249A (en) | 1997-10-06 | 1999-10-19 | Sun Microsystems, Inc. | Method and apparatus for performing byte-code optimization during pauses |
JP3284956B2 (ja) * | 1998-01-26 | 2002-05-27 | 日本電気株式会社 | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
US6408433B1 (en) * | 1999-04-23 | 2002-06-18 | Sun Microsystems, Inc. | Method and apparatus for building calling convention prolog and epilog code using a register allocator |
-
1999
- 1999-11-18 JP JP32804699A patent/JP3605327B2/ja not_active Expired - Fee Related
-
2000
- 2000-07-26 US US09/626,372 patent/US6848098B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6848098B1 (en) | 2005-01-25 |
JP2001142718A (ja) | 2001-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8943346B2 (en) | Distributed advanced power management | |
US6223339B1 (en) | System, method, and product for memory management in a dynamic translator | |
JP3605327B2 (ja) | プログラム実行装置 | |
US20100268862A1 (en) | Reconfigurable processor and method of reconfiguring the same | |
JPH11272476A (ja) | バイトコードされたプログラムを動的に最適化するための方法及び装置 | |
CN110543338A (zh) | 一种文件的动态加载方法及装置 | |
JPH05204656A (ja) | スレッド固有データ保持方法 | |
CN111639044B (zh) | 一种支持中断优先级轮询仲裁派发的方法和装置 | |
US6996814B2 (en) | Method and apparatus for dynamically compiling byte codes into native code | |
CN101238442A (zh) | 进程控制程序以及进程控制方法 | |
CN105574141B (zh) | 一种对数据库进行数据迁移的方法和装置 | |
US20040226005A1 (en) | Method and system for register allocation | |
EP3577567A1 (en) | Multiple stage garbage collector | |
JP2011198363A (ja) | プログラムコンパイラ、プログラム設置装置、及びプログラム設置方法 | |
KR101612780B1 (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템의 메모리 관리 방법 | |
JP2001166947A (ja) | コンパイル処理方式 | |
JP2012038359A (ja) | バーチャルマシン内でコンパイルされたメソッドを実行する頻度を決定する方法と装置 | |
JP3992102B2 (ja) | コンパイラ装置、コンパイル方法、コンパイラプログラム、及び記録媒体 | |
JP2000163288A (ja) | データ記憶システム、データ再配置方法及び記録媒体 | |
Janapsatya et al. | Hardware/software managed scratchpad memory for embedded system | |
US11210193B2 (en) | Evaluating performance improvement of executing instructions in a first processor over execution on a second processor before compilation | |
KR101603202B1 (ko) | 이기종 멀티프로세서 시스템 온 칩에서의 rpc 데이터 배치 방법 및 장치 | |
WO2017206302A1 (zh) | 一种应用程序的运行方法和运行装置 | |
WO2021120068A1 (zh) | 管理存储器供电状态的方法及芯片 | |
JP5929353B2 (ja) | 例外処理方法、プログラム及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040629 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040825 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040928 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041001 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071008 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081008 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081008 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091008 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091008 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101008 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |