JPH11296381A5 - - Google Patents
Info
- Publication number
- JPH11296381A5 JPH11296381A5 JP1998096204A JP9620498A JPH11296381A5 JP H11296381 A5 JPH11296381 A5 JP H11296381A5 JP 1998096204 A JP1998096204 A JP 1998096204A JP 9620498 A JP9620498 A JP 9620498A JP H11296381 A5 JPH11296381 A5 JP H11296381A5
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- virtual machine
- sequence
- branch
- machine instruction
- 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.)
- Pending
Links
Description
また、実施形態5〜8では、各命令ブロック格納領域はユニークな識別子を保持していたが、本明細書発明の骨子が基本ブロックの識別にあることに照らし合わせれば、各命令ブロック格納領域の識別子が、他の場所に格納されている仮想マシン命令列への参照になっており、これにより該当仮想マシン命令が基本ブロックの先頭であることを識別するような方法も考えられる。
さらに、本発明に係る仮想マシン、仮想マシンコンパイラ及びその場式コンパイラは、いずれも、汎用のコンピュータによって実行されるプログラムとして実現することができるので、これら発明に係るプログラムをCD-ROM等の記録媒体に収納したり、伝送路を介して通信したりすることによって、流通させることができるのは言うまでもない。
さらに、本発明に係る仮想マシン、仮想マシンコンパイラ及びその場式コンパイラは、いずれも、汎用のコンピュータによって実行されるプログラムとして実現することができるので、これら発明に係るプログラムをCD-ROM等の記録媒体に収納したり、伝送路を介して通信したりすることによって、流通させることができるのは言うまでもない。
Claims (21)
- 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンと共に用いられ、実行対象となる一部の仮想マシン命令列をその実行に先立って実マシン命令列に変換するその場式コンパイラであって、
前記仮想マシン命令列を構成する仮想マシン命令それぞれについて、前記仮想マシン命令列を基本ブロックに分割した場合の各基本ブロックの先頭となる仮想マシン命令であるか否かを示すブロック先頭情報の入力を受け付けるブロック先頭情報獲得手段と、
前記仮想マシン命令列を構成する仮想マシン命令それぞれについて、対応する実マシン命令列に変換する変換手段と、
前記変換手段によって得られた実マシン命令列における実マシン命令であって、前記ブロック先頭情報獲得手段が受け付けたブロック先頭情報によって特定された基本ブロックの先頭となる仮想マシン命令に対応する実マシン命令が、前記実マシンによってアドレシングされ得ない位置に配置される命令であるか否かを判定する分岐違反判定手段と、
前記分岐違反判定手段によって前記実マシン命令が前記位置に配置される命令であると判定された場合に、前記実マシン命令が前記位置に配置されないよう1個以上の無動作命令を前記実マシン命令列に追加挿入して出力する出力手段と
を備えることを特徴とするコンパイラ。 - 前記出力手段は、前記実マシン命令が前記実マシンによってアドレシングされ得る後続位置にずらせるために必要な個数の無動作命令を前記実マシン命令列における基本ブロックの先頭位置に追加挿入することを特徴とする請求項1記載のコンパイラ。
- 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンであって、
実行対象となる仮想マシン命令列を記憶する命令記憶手段と、
前記命令記憶手段から次に実行すべき仮想マシン命令を読み出す読み出し手段と、
読み出された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりからなり、
各命令ブロックは、その命令ブロックの前記命令記憶手段における先頭位置を特定するための識別子を格納した識別子領域と、対応する基本ブロックの非分岐命令だけを格納した非分岐命令領域と、対応する基本ブロックの分岐命令を格納した分岐命令領域とを含み、
前記分岐命令領域に格納された分岐命令は、その分岐先が前記識別子によって指定され、
前記解読実行手段は、読み出された仮想マシン命令が前記分岐命令である場合には、その分岐先として指定されている識別子に対応する命令ブロックの非分岐命令領域の先頭に実行制御を分岐させることを特徴とする仮想マシン。 - 前記解読実行手段は、
次に読み出すべき仮想マシン命令が属する命令ブロックの識別子を格納する識別子レジスタと、その仮想マシン命令のその命令ブロックにおける相対的な記憶位置を示すオフセットを格納するオフセットカウンタとからなるプログラムカウンタを備え、
前記読み出し手段は、前記プログラムカウンタに格納された識別子とオフセットに基づいて前記仮想マシン命令を読み出し、
前記解読実行手段は、読み出された仮想マシン命令が前記分岐命令である場合には、その分岐先として指定されている識別子を前記識別子レジスタに書き込むと共に前記オフセットカウンタを初期値にリセットし、読み出された仮想マシン命令が前記非分岐命令である場合には、前記オフセットカウンタを増加させ、
前記読み出し手段は、前記解読実行手段によって更新されたプログラムカウンタの識別子とオフセットに基づいて次に実行すべき仮想マシン命令を読み出すことを特徴とする請求項3記載の仮想マシン。 - 前記解読実行手段はさらに、対象とする全ての種類の仮想マシン命令それぞれに対応する実マシン命令列を記憶する実マシン命令列記憶部を備え、
前記命令記憶手段の各命令ブロックはさらに、その命令ブロックの非分岐命令領域及び分岐命令領域に格納された仮想マシン命令それぞれに対応する実マシン命令列を前記実マシン命令列記憶部に記憶された実マシン命令列から特定するためのデコードデータを含むデコードデータ列を格納したデコードデータ列領域を含み、
前記読み出し手段は、デコードデータ列が格納された命令ブロックについては前記仮想マシン命令に代えて前記デコードデータを読み出し、デコードデータ列が格納されていない命令ブロックについては仮想マシン命令を読み出した後に、その仮想マシン命令に対応する実マシン命令列を前記実マシン命令列記憶部に記憶された実マシン命令列から特定するためのデコードデータを生成し、
前記解読実行手段は、前記読み出し手段から読み出し又は生成されたデコードデータによって特定される実マシン命令列を前記実マシン命令列記憶部から読み出して実行することを特徴とする請求項4記載の仮想マシン。 - 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンにおいて、実行対象となる仮想マシン命令列を格納しておくための命令記憶手段における前記格納方法であって、
前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりからなり、
各命令ブロックは、その命令ブロックの前記命令記憶手段における先頭位置を特定するための識別子を格納した識別子領域と、対応する基本ブロックの非分岐命令だけを格納した非分岐命令領域と、対応する基本ブロックの分岐命令を格納した分岐命令領域とを含み、
前記分岐命令領域に格納された分岐命令は、その分岐先が前記識別子によって指定されていることを特徴とする仮想マシン命令列の格納方法。 - コンピュータを仮想マシンとして機能させるためのプログラムを記録した記録媒体であって、
前記仮想マシンは、
実行対象となる仮想マシン命令列を記憶する命令記憶手段と、
前記命令記憶手段から次に実行すべき仮想マシン命令を読み出す読み出し手段と、
読み出された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりからなり、
各命令ブロックは、その命令ブロックの前記命令記憶手段における先頭位置を特定するための識別子を格納した識別子領域と、対応する基本ブロックの非分岐命令だけを格納した非分岐命令領域と、対応する基本ブロックの分岐命令を格納した分岐命令領域とを含み、
前記分岐命令領域に格納された分岐命令は、その分岐先が前記識別子によって指定され、
前記解読実行手段は、読み出された仮想マシン命令が前記分岐命令である場合には、その分岐先として指定されている識別子に対応する命令ブロックの非分岐命令領域の先頭に実行制御を分岐させることを特徴とする記録媒体。 - 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンにおいて、実行対象となる仮想マシン命令列を格納しておくための命令記憶手段における前記格納方法であって、
前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりと、少なくともひとつ以上の前記仮想マシン命令列からなり、
各命令ブロックは、その命令ブロックの前記仮想マシン命令列の基本ブロックの先頭位 置を特定するための識別子を格納した識別子領域を含み、
前記仮想マシン命令列に格納された分岐命令の分岐先が前記識別子によって指定されていることを特徴とする仮想マシン命令列の格納方法。 - 実マシンによる制御の下で仮想マシン命令を実行するスタック型仮想マシンであって、
データを後入れ先出し方式で一時的に記憶するためのスタック手段と、
実行対象となる仮想マシン命令列と、それら仮想マシン命令それぞれに対応づけられた情報であって、対応づけられた仮想マシン命令に後続する仮想マシン命令が実行された場合の前記スタック手段でのデータの格納状態の変化を示す先行命令情報とを記憶する命令記憶手段と、
前記命令記憶手段から次に実行すべき仮想マシン命令及び対応する先行命令情報を読み出す読み出し手段と、
読み出された仮想マシン命令と先行命令情報との組み合わせに対応する演算処理を特定し実行する解読実行手段と
を備えることを特徴とする仮想マシン。 - 前記解読実行手段は、
対象とする全ての種類の仮想マシン命令と全ての種類の先行命令情報との組み合わせそれぞれに対応する実マシン命令列を記憶する実マシン命令列記憶部と、
前記読み出し手段によって読み出された仮想マシン命令と先行命令情報との組み合わせに対応する実マシン命令列を前記実マシン命令列記憶部に記憶された実マシン命令列から特定する特定部と、
特定された実マシン命令列を実行する実行部と
を有することを特徴とする請求項9記載の仮想マシン。 - 前記先行命令情報は、対応する仮想マシン命令に後続する仮想マシン命令が実行された場合の前記スタック手段に格納されるデータ数の増減を示し、
前記実マシン命令列記憶部に記憶された実マシン命令列には、対応する先行命令情報に基づいて前記スタック手段を先行処理する実マシン命令が含まれていることを特徴とする請求項10記載の仮想マシン。 - 前記実マシン命令列記憶部に記憶された実マシン命令列は、前記スタック手段において最後に格納されたデータと最後から2番目に格納されたデータそれぞれを記憶する領域が前記実マシンが備える2つのレジスタに割り当てられていることを前提とする内容であることを特徴とする請求項11記載の仮想マシン。
- 前記命令記憶手段は、前記仮想マシン命令列と前記先行命令情報とを、対応する1つの仮想マシン命令と1つの先行命令情報との組を1つの拡張仮想マシン命令とする拡張仮想マシン命令列として記憶し、
前記読み出し手段は、前記命令記憶手段から拡張仮想マシン命令を読み出し、
前記解読実行手段は、読み出された拡張仮想マシン命令に対応する演算処理を特定し実行することを特徴とする請求項9記載の仮想マシン。 - スタック型仮想マシンを対象とするコンパイラであって、
ソースプログラムを前記仮想マシンが実行する仮想マシン命令列に変換する命令列変換手段と、
変換によって得られた仮想マシン命令列を構成する仮想マシン命令それぞれについて、後続する仮想マシン命令が前記仮想マシンによって実行された場合の前記スタック手段でのデータの格納状態の変化を示す先行命令情報を生成する先行命令情報生成手段と、
生成された先行命令情報と対応する仮想マシン命令とを関連付けて出力する関連付け手段と
を備えることを特徴とする仮想マシンコンパイラ。 - 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンであって、
実行対象となる仮想マシン命令列を記憶する命令記憶手段と、
前記命令記憶手段から次に実行すべき仮想マシン命令を読み出す読み出し手段と、
読み出された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
前記解読実行手段は、
読み出された仮想マシン命令が実行制御の流れを分岐させる分岐命令であるか否かを判定する分岐命令判定部と、
分岐命令であると判定される度に、その分岐命令の実行に加えて、この仮想マシンへの割込み要求の発生の有無の検出と、発生している場合の割込み処理とを実行する割込み処理部とを有することを特徴とする仮想マシン。 - 前記解読実行手段はさらに、
対象とする全ての種類の仮想マシン命令に対応する実マシン命令列とこの仮想マシンへの割込み要求に対処するための実マシン命令列を記憶する実マシン命令列記憶部と、
指定された実マシン命令列を実行する実行部とを備え、
前記割込み処理部は、前記分岐命令判定部によって分岐命令であると判定される度に、前記実行部に、前記割込み要求に対処するための実マシン命令列を実行させた後に前記分岐命令に対応する実マシン命令列を実行させることを特徴とする請求項15記載の仮想マシン。 - 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンであって、
実行対象となる仮想マシン命令列を記憶する命令記憶手段と、
前記命令記憶手段から次に実行すべき仮想マシン命令を読み出す読み出し手段と、
読み出された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
前記解読実行手段は、
読み出された仮想マシン命令が一定個数の仮想マシン命令の集まりをブロックとした場合の各ブロックを代表する仮想マシン命令に相当するか否かを判定するブロック判定部を備え、
各ブロックを代表する仮想マシン命令であると判定される度に、その仮想マシン命令の実行に加えて、この仮想マシンへの割込み要求の発生の有無の検出と、発生している場合の割込み処理とを実行する割込み処理部とを有することを特徴とする仮想マシン。 - 前記解読実行手段はさらに、
対象とする全ての種類の仮想マシン命令に対応する実マシン命令列とこの仮想マシンへの割込み要求に対処するための実マシン命令列を記憶する実マシン命令列記憶部と、
指定された実マシン命令列を実行する実行部とを備え、
前記ブロック判定部は、仮想マシン命令が読み出される度に、それまでに読み出された仮想マシン命令の総数が一定値の倍数に一致するか否か比較し、一致する場合に、前記仮想マシン命令は各ブロックを代表する仮想マシン命令に相当すると判定し、
前記割込み処理部は、前記分岐命令判定部によって各ブロックを代表する仮想マシン命令であると判定される度に、前記実行部に、前記割込み要求に対処するための実マシン命令列を実行させた後に前記仮想マシン命令に対応する実マシン命令列を実行させることを特徴とする請求項17記載の仮想マシン。 - 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンであって、
実行対象となる仮想マシン命令列を圧縮符号で記憶する命令記憶手段と、
前記命令記憶手段から次に実行すべき仮想マシン命令の圧縮符号を読み出し、対応する仮想マシン命令に復号する読み出し手段と、
復号された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりからなり、
各命令ブロックは、その命令ブロックの前記命令記憶手段における先頭位置を特定するための識別子を格納した識別子領域と、対応する基本ブロックの非分岐命令だけを格納した非分岐命令領域と、対応する基本ブロックの分岐命令を格納した分岐命令領域とを含み、
前記分岐命令領域に格納された分岐命令は、その分岐先が前記識別子によって指定され、
前記解読実行手段は、復号された仮想マシン命令が前記分岐命令である場合には、その分岐先として指定されている識別子に対応する命令ブロックの非分岐命令領域の先頭に実行制御を分岐させることを特徴とする仮想マシン。 - 実マシンによる制御の下で仮想マシン命令を実行するスタック型仮想マシンにおいて、実行対象となる仮想マシン命令列を格納しておくための命令記憶手段における前記格納方法であって、
実行対象となる仮想マシン命令列と、それら仮想マシン命令それぞれに対応づけられた情報であって、対応づけられた仮想マシン命令に後続する仮想マシン命令が実行された場合の前記スタックでのデータの格納状態の変化を示す先行命令情報とを関連付けて格納することを特徴とする仮想マシン命令列の格納方法。 - コンピュータをスタック型仮想マシンとして機能させるためのプログラムを記録した記録媒体であって、
前記仮想マシンは、
データを後入れ先出し方式で一時的に記憶するためのスタック手段と、
実行対象となる仮想マシン命令列と、それら仮想マシン命令それぞれに対応づけられた情報であって、対応づけられた仮想マシン命令に後続する仮想マシン命令が実行された場合の前記スタック手段でのデータの格納状態の変化を示す先行命令情報とを記憶する命令記憶手段と、
前記命令記憶手段から次に実行すべき仮想マシン命令及び対応する先行命令情報を読み出す読み出し手段と、
読み出された仮想マシン命令と先行命令情報との組み合わせに対応する演算処理を特定し実行する解読実行手段と
を備えることを特徴とする記録媒体。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10096204A JPH11296381A (ja) | 1998-04-08 | 1998-04-08 | 仮想マシン及びコンパイラ |
| EP99302715A EP0949564A3 (en) | 1998-04-08 | 1999-04-07 | High speed virtual machine and compiler |
| US10/403,600 US6799315B2 (en) | 1998-04-08 | 2003-03-31 | High speed virtual machine and compiler |
| US10/403,917 US20030233386A1 (en) | 1998-04-08 | 2003-03-31 | High speed virtual machine and compiler |
| US10/899,920 US20040268348A1 (en) | 1998-04-08 | 2004-07-27 | High speed virtual machine and compiler |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10096204A JPH11296381A (ja) | 1998-04-08 | 1998-04-08 | 仮想マシン及びコンパイラ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11296381A JPH11296381A (ja) | 1999-10-29 |
| JPH11296381A5 true JPH11296381A5 (ja) | 2005-09-15 |
Family
ID=14158751
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10096204A Pending JPH11296381A (ja) | 1998-04-08 | 1998-04-08 | 仮想マシン及びコンパイラ |
Country Status (3)
| Country | Link |
|---|---|
| US (3) | US6799315B2 (ja) |
| EP (1) | EP0949564A3 (ja) |
| JP (1) | JPH11296381A (ja) |
Families Citing this family (60)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001009715A2 (en) * | 1999-07-28 | 2001-02-08 | Sun Microsystems, Inc. | A single-compiler architecture |
| GB2358261B (en) * | 2000-01-17 | 2004-06-09 | Advanced Risc Mach Ltd | Data processing with native and interpreted program instruction words |
| AU2001241487A1 (en) * | 2000-02-14 | 2001-08-27 | Chicory Systems, Inc. | Transforming a stack-based code sequence to a register based code sequence |
| AU2001236976A1 (en) * | 2000-02-14 | 2001-08-27 | Chicory Systems, Inc. | Delayed update of a stack pointer and program counter |
| WO2001061477A1 (en) * | 2000-02-14 | 2001-08-23 | Chicory Systems, Inc. | Predecoding instructions to determine stack change information |
| JP4558879B2 (ja) * | 2000-02-15 | 2010-10-06 | 富士通株式会社 | テーブルを用いたデータ処理装置および処理システム |
| AU2001245661A1 (en) * | 2000-03-13 | 2001-09-24 | Chicory Systems, Inc. | Device and method for eliminating redundant stack operations |
| DE10205523A1 (de) * | 2002-02-08 | 2003-08-28 | Systemonic Ag | Verfahren zum Bereitstellen einer Entwurfs-, Test- und Entwicklungsumgebung sowie ein System zur Ausführung des Verfahrens |
| US7577722B1 (en) * | 2002-04-05 | 2009-08-18 | Vmware, Inc. | Provisioning of computer systems using virtual machines |
| US7039908B2 (en) * | 2002-06-26 | 2006-05-02 | Microsoft Corporation | Unification-based points-to-analysis using multilevel typing |
| US7065743B2 (en) * | 2002-07-11 | 2006-06-20 | International Business Machines Corporation | Apparatus and method for caching analyzed program information |
| GB0220282D0 (en) * | 2002-08-31 | 2002-10-09 | Ibm | Improved just in time compilation of java software methods |
| US7086038B2 (en) * | 2002-10-07 | 2006-08-01 | Hewlett-Packard Development Company, L.P. | System and method for creating systolic solvers |
| US7228543B2 (en) * | 2003-01-24 | 2007-06-05 | Arm Limited | Technique for reaching consistent state in a multi-threaded data processing system |
| US7140003B2 (en) * | 2003-02-14 | 2006-11-21 | International Business Machines Corporation | Method and system for specifying sets of instructions for selection by an instruction generator |
| CA2430763A1 (en) * | 2003-05-30 | 2004-11-30 | Ibm Canada Limited - Ibm Canada Limitee | Efficiently releasing locks when an exception occurs |
| US7890464B2 (en) * | 2003-06-20 | 2011-02-15 | Innopath Software, Inc. | Processing software images and generating difference files |
| CA2434280A1 (en) * | 2003-07-03 | 2005-01-03 | Zhong L. Wang | Method and apparatus to guarantee type and initialization safety in multihreaded programs |
| US7114153B2 (en) * | 2003-09-10 | 2006-09-26 | Qualcomm Inc. | Method and apparatus for continuation-passing in a virtual machine |
| TW200518070A (en) * | 2003-10-10 | 2005-06-01 | Matsushita Electric Industrial Co Ltd | Recording medium, reproduction device, program, and reproduction method |
| WO2005041028A1 (ja) * | 2003-10-23 | 2005-05-06 | Fujitsu Limited | ソフトウェア開発ツールプログラム |
| US7689987B2 (en) * | 2004-06-30 | 2010-03-30 | Microsoft Corporation | Systems and methods for stack-jumping between a virtual machine and a host environment |
| JP4871598B2 (ja) * | 2006-01-19 | 2012-02-08 | キヤノン株式会社 | 画像処理装置および画像処理装置の起動方法およびプログラム |
| US20080077652A1 (en) * | 2006-09-06 | 2008-03-27 | Credit Suisse Securities (Usa) Llc One Madison Avenue | Method and system for providing an enhanced service-oriented architecture |
| US8068602B1 (en) * | 2006-09-29 | 2011-11-29 | Verint Americas, Inc. | Systems and methods for recording using virtual machines |
| WO2008072178A1 (en) * | 2006-12-11 | 2008-06-19 | Nxp B.V. | Pipelined processor and compiler/scheduler for variable number branch delay slots |
| US8108845B2 (en) * | 2007-02-14 | 2012-01-31 | The Mathworks, Inc. | Parallel programming computing system to dynamically allocate program portions |
| JP4339371B2 (ja) * | 2007-03-22 | 2009-10-07 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理方法 |
| US8171485B2 (en) | 2007-03-26 | 2012-05-01 | Credit Suisse Securities (Europe) Limited | Method and system for managing virtual and real machines |
| US20080244607A1 (en) * | 2007-03-27 | 2008-10-02 | Vladislav Rysin | Economic allocation and management of resources via a virtual resource market |
| US8767535B2 (en) * | 2007-07-11 | 2014-07-01 | Hewlett-Packard Development Company, L.P. | Dynamic feedback control of resources in computing environments |
| US7844954B2 (en) * | 2007-11-06 | 2010-11-30 | Vmware, Inc. | Using branch instruction counts to facilitate replay of virtual machine instruction execution |
| US7979685B1 (en) * | 2007-11-27 | 2011-07-12 | Oracle America, Inc. | Multiple instruction execution mode resource-constrained device |
| US9027003B2 (en) * | 2008-03-31 | 2015-05-05 | Vmware, Inc. | Precise branch counting in virtualization systems |
| US8424082B2 (en) | 2008-05-08 | 2013-04-16 | Google Inc. | Safely executing an untrusted native code module on a computing device |
| US8219358B2 (en) | 2008-05-09 | 2012-07-10 | Credit Suisse Securities (Usa) Llc | Platform matching systems and methods |
| US20090313160A1 (en) * | 2008-06-11 | 2009-12-17 | Credit Suisse Securities (Usa) Llc | Hardware accelerated exchange order routing appliance |
| US8122441B2 (en) * | 2008-06-24 | 2012-02-21 | International Business Machines Corporation | Sharing compiler optimizations in a multi-node system |
| US8214814B2 (en) * | 2008-06-24 | 2012-07-03 | International Business Machines Corporation | Sharing compiler optimizations in a multi-node system |
| US20100017801A1 (en) * | 2008-07-18 | 2010-01-21 | Vmware, Inc. | Profile based creation of virtual machines in a virtualization environment |
| US9164749B2 (en) * | 2008-08-29 | 2015-10-20 | Red Hat, Inc. | Differential software provisioning on virtual machines having different configurations |
| US20100318977A1 (en) * | 2009-06-10 | 2010-12-16 | International Business Machines Corporation | Jit compilation with continous apu execution |
| GB2483903A (en) | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Instruction which specifies the type of the next instruction to be executed |
| US8468524B2 (en) * | 2010-10-13 | 2013-06-18 | Lsi Corporation | Inter-virtual machine time profiling of I/O transactions |
| WO2012103373A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Variable caching structure for managing physical storage |
| KR101612594B1 (ko) | 2011-01-27 | 2016-04-14 | 소프트 머신즈, 인크. | 프로세서의 변환 룩 어사이드 버퍼를 이용하는 게스트 명령-네이티브 명령 레인지 기반 매핑 |
| WO2012103367A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Guest to native block address mappings and management of native code storage |
| WO2012103245A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines Inc. | Guest instruction block with near branching and far branching sequence construction to native instruction block |
| WO2012103359A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
| WO2012103253A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Multilevel conversion table cache for translating guest instructions to native instructions |
| US10264058B1 (en) | 2011-06-30 | 2019-04-16 | Emc Corporation | Defining virtual application templates |
| US10042657B1 (en) * | 2011-06-30 | 2018-08-07 | Emc Corporation | Provisioning virtual applciations from virtual application templates |
| US10686677B1 (en) * | 2012-05-18 | 2020-06-16 | Amazon Technologies, Inc. | Flexible capacity reservations for network-accessible resources |
| JP5987501B2 (ja) * | 2012-06-29 | 2016-09-07 | 富士通株式会社 | 分岐アドレス管理プログラム、方法、及び装置 |
| KR101761498B1 (ko) | 2013-03-15 | 2017-07-25 | 인텔 코포레이션 | 추론을 지원하는 게스트 반환 주소 스택 에뮬레이션을 위한 방법 및 장치 |
| WO2014151652A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines Inc | Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor |
| CN103763403B (zh) * | 2013-12-30 | 2017-03-15 | 华为技术有限公司 | 报文流量控制方法及相关装置和计算节点 |
| EP3021221A1 (en) * | 2014-11-13 | 2016-05-18 | Gemalto Sa | Method for optimizing the execution of a platform-independent method by means of a virtual machine of an integrated circuit card |
| JP2016103252A (ja) * | 2014-11-27 | 2016-06-02 | 正仁 櫨田 | コンピュ−タ−のcpuの高速化法 |
| US10802854B2 (en) * | 2019-08-30 | 2020-10-13 | Alibaba Group Holding Limited | Method and apparatus for interpreting bytecode instruction stream |
Family Cites Families (47)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4096568A (en) * | 1976-09-24 | 1978-06-20 | Sperry Rand Corporation | Virtual address translator |
| US4177514A (en) | 1976-11-12 | 1979-12-04 | General Electric Company | Graph architecture information processing system |
| US4285040A (en) * | 1977-11-04 | 1981-08-18 | Sperry Corporation | Dual mode virtual-to-real address translation mechanism |
| JPS55112651A (en) * | 1979-02-21 | 1980-08-30 | Fujitsu Ltd | Virtual computer system |
| JPS59501684A (ja) | 1982-10-22 | 1984-10-04 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像 |
| US5428754A (en) * | 1988-03-23 | 1995-06-27 | 3Dlabs Ltd | Computer system with clock shared between processors executing separate instruction streams |
| CA2002201C (en) | 1988-12-06 | 1999-04-27 | John Charles Goettelmann | Translation technique |
| JP3039953B2 (ja) * | 1989-04-28 | 2000-05-08 | 株式会社日立製作所 | 並列化装置 |
| US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
| US5381535A (en) * | 1990-10-24 | 1995-01-10 | International Business Machines Corporation | Data processing control of second-level quest virtual machines without host intervention |
| IL100987A (en) | 1991-02-27 | 1995-10-31 | Digital Equipment Corp | Method and apparatus for compiling code |
| IL100990A (en) * | 1991-02-27 | 1995-10-31 | Digital Equipment Corp | Multilanguage optimizing compiler using templates in multiple pass code generation |
| JPH0512126A (ja) * | 1991-07-05 | 1993-01-22 | Hitachi Ltd | 仮想計算機のアドレス変換装置及びアドレス変換方法 |
| DE69231278T2 (de) * | 1992-01-02 | 2001-01-18 | Amdahl Corp., Sunnyvale | Anwendungs-software für hardware-unterbrechungen. |
| US5659690A (en) | 1992-10-15 | 1997-08-19 | Adaptec, Inc. | Programmably configurable host adapter integrated circuit including a RISC processor |
| US5561785A (en) * | 1992-10-29 | 1996-10-01 | International Business Machines Corporation | System for allocating and returning storage and collecting garbage using subpool of available blocks |
| EP0671685B1 (en) * | 1994-03-08 | 1998-11-04 | Digital Equipment Corporation | Method and apparatus for detecting and executing cross-domain calls in a computer system |
| DE4435183C2 (de) * | 1994-09-30 | 2000-04-20 | Siemens Ag | Verfahren zum Betrieb eines Magnetresonanzgeräts |
| US5819057A (en) * | 1995-01-25 | 1998-10-06 | Advanced Micro Devices, Inc. | Superscalar microprocessor including an instruction alignment unit with limited dispatch to decode units |
| US5881278A (en) * | 1995-10-30 | 1999-03-09 | Advanced Micro Devices, Inc. | Return address prediction system which adjusts the contents of return stack storage to enable continued prediction after a mispredicted branch |
| US5933104A (en) | 1995-11-22 | 1999-08-03 | Microsoft Corporation | Method and system for compression and decompression using variable-sized offset and length fields |
| US6151618A (en) | 1995-12-04 | 2000-11-21 | Microsoft Corporation | Safe general purpose virtual machine computing system |
| US6026485A (en) * | 1996-01-24 | 2000-02-15 | Sun Microsystems, Inc. | Instruction folding for a stack-based machine |
| US6065108A (en) | 1996-01-24 | 2000-05-16 | Sun Microsystems Inc | Non-quick instruction accelerator including instruction identifier and data set storage and method of implementing same |
| US6301652B1 (en) * | 1996-01-31 | 2001-10-09 | International Business Machines Corporation | Instruction cache alignment mechanism for branch targets based on predicted execution frequencies |
| TW470915B (en) | 1996-03-12 | 2002-01-01 | Matsushita Electric Industrial Co Ltd | Optimization apparatus which removes transfer instructions by a global analysis of equivalence relations |
| US6381739B1 (en) * | 1996-05-15 | 2002-04-30 | Motorola Inc. | Method and apparatus for hierarchical restructuring of computer code |
| US5859982A (en) * | 1996-06-05 | 1999-01-12 | Sun Microsystems, Inc. | Computer system and method for executing methods of downloaded programs with reduced run-time memory space requirements |
| DK0938703T3 (da) * | 1996-11-13 | 2003-08-18 | Paran Arik | Accelerator for tidstro programsprog |
| JPH10232788A (ja) * | 1996-12-17 | 1998-09-02 | Fujitsu Ltd | 信号処理装置及びソフトウェア |
| US5889986A (en) | 1997-01-28 | 1999-03-30 | Samsung Electronics Co., Ltd. | Instruction fetch unit including instruction buffer and secondary or branch target buffer that transfers prefetched instructions to the instruction buffer |
| US6044222A (en) | 1997-06-23 | 2000-03-28 | International Business Machines Corporation | System, method, and program product for loop instruction scheduling hardware lookahead |
| US6035118A (en) * | 1997-06-23 | 2000-03-07 | Sun Microsystems, Inc. | Mechanism to eliminate the performance penalty of computed jump targets in a pipelined processor |
| US6088786A (en) * | 1997-06-27 | 2000-07-11 | Sun Microsystems, Inc. | Method and system for coupling a stack based processor to register based functional unit |
| US6513156B2 (en) | 1997-06-30 | 2003-01-28 | Sun Microsystems, Inc. | Interpreting functions utilizing a hybrid of virtual and native machine instructions |
| US6078744A (en) * | 1997-08-01 | 2000-06-20 | Sun Microsystems | Method and apparatus for improving compiler performance during subsequent compilations of a source program |
| US5923892A (en) * | 1997-10-27 | 1999-07-13 | Levy; Paul S. | Host processor and coprocessor arrangement for processing platform-independent code |
| US5903761A (en) * | 1997-10-31 | 1999-05-11 | Preemptive Solutions, Inc. | Method of reducing the number of instructions in a program code sequence |
| US6170083B1 (en) * | 1997-11-12 | 2001-01-02 | Intel Corporation | Method for performing dynamic optimization of computer code |
| US6075935A (en) | 1997-12-01 | 2000-06-13 | Improv Systems, Inc. | Method of generating application specific integrated circuits using a programmable hardware architecture |
| US6158048A (en) * | 1998-05-29 | 2000-12-05 | Intel Corporation | Method for eliminating common subexpressions from java byte codes |
| US6289506B1 (en) * | 1998-06-30 | 2001-09-11 | Intel Corporation | Method for optimizing Java performance using precompiled code |
| US6704925B1 (en) * | 1998-09-10 | 2004-03-09 | Vmware, Inc. | Dynamic binary translator with a system and method for updating and maintaining coherency of a translation cache |
| US6463582B1 (en) * | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
| GB9825102D0 (en) * | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
| US6336213B1 (en) * | 1998-12-03 | 2002-01-01 | International Business Machines Corporation | Method and apparatus for dynamic selection of which bytecodes should be just in time compiled |
| US6530075B1 (en) * | 1998-12-03 | 2003-03-04 | International Business Machines Corporation | JIT/compiler Java language extensions to enable field performance and serviceability |
-
1998
- 1998-04-08 JP JP10096204A patent/JPH11296381A/ja active Pending
-
1999
- 1999-04-07 EP EP99302715A patent/EP0949564A3/en not_active Withdrawn
-
2003
- 2003-03-31 US US10/403,600 patent/US6799315B2/en not_active Expired - Fee Related
- 2003-03-31 US US10/403,917 patent/US20030233386A1/en not_active Abandoned
-
2004
- 2004-07-27 US US10/899,920 patent/US20040268348A1/en not_active Abandoned
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5712996A (en) | Process for dividing instructions of a computer program into instruction groups for parallel processing | |
| US8176478B2 (en) | Process for running programs on processors and corresponding processor system | |
| US8578351B2 (en) | Hybrid mechanism for more efficient emulation and method therefor | |
| EP1050803A1 (en) | Guarded computer instruction execution | |
| EP0269980A2 (en) | Data processor for parallelly executing conflicting instructions | |
| JP2005182825A5 (ja) | ||
| KR930022193A (ko) | 파이프라인 프로세서에서 다중 명령어를 무리짓고, 그룹화된 명령어를 동시에 발행하고, 그룹화된 명령어를 실행시키는 방법 및 장치 | |
| US5381531A (en) | Data processor for selective simultaneous execution of a delay slot instruction and a second subsequent instruction the pair following a conditional branch instruction | |
| CN111399912A (zh) | 一种面向多周期指令的指令调度方法、系统及介质 | |
| US7194734B2 (en) | Method of executing an interpreter program | |
| TWI770079B (zh) | 向量產生指令 | |
| KR950027561A (ko) | 처리 시스템 및 그의 동작 방법 | |
| JPH0682320B2 (ja) | データ処理装置 | |
| CN108959180B (zh) | 一种数据处理方法及系统 | |
| KR900010587A (ko) | 생산라인의 고성능 명령어 실행방법 및 장치 | |
| JPH0689173A (ja) | ブランチ・ヒストリーを持つ命令実行処理装置 | |
| JP4462676B2 (ja) | プログラム変換装置、コンパイラ装置およびプログラム変換プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
| CN119473394A (zh) | 一种基于循环依赖分析的avx指令模拟执行优化方法 | |
| GB2362730A (en) | Using store instructions to watch registers | |
| CN1177138A (zh) | 程序执行方法和程序执行装置 | |
| JP2000181707A (ja) | 命令制御装置及びその方法 | |
| JP2581565B2 (ja) | ガード付命令を実行するデータ処理装置 | |
| JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
| JP2536615B2 (ja) | 情報処理装置 | |
| JP3102846B2 (ja) | ロードアドレスキャッシュ装置及び方法 |