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
Application number
JP1998096204A
Other languages
English (en)
Other versions
JPH11296381A (ja
Filing date
Publication date
Application filed filed Critical
Priority to JP10096204A priority Critical patent/JPH11296381A/ja
Priority claimed from JP10096204A external-priority patent/JPH11296381A/ja
Priority to EP99302715A priority patent/EP0949564A3/en
Publication of JPH11296381A publication Critical patent/JPH11296381A/ja
Priority to US10/403,600 priority patent/US6799315B2/en
Priority to US10/403,917 priority patent/US20030233386A1/en
Priority to US10/899,920 priority patent/US20040268348A1/en
Publication of JPH11296381A5 publication Critical patent/JPH11296381A5/ja
Pending legal-status Critical Current

Links

Description

また、実施形態5〜8では、各命令ブロック格納領域はユニークな識別子を保持していたが、本明細書発明の骨子が基本ブロックの識別にあることに照らし合わせれば、各命令ブロック格納領域の識別子が、他の場所に格納されている仮想マシン命令列への参照になっており、これにより該当仮想マシン命令が基本ブロックの先頭であることを識別するような方法も考えられる。
さらに、本発明に係る仮想マシン、仮想マシンコンパイラ及びその場式コンパイラは、いずれも、汎用のコンピュータによって実行されるプログラムとして実現することができるので、これら発明に係るプログラムをCD-ROM等の記録媒体に収納したり、伝送路を介して通信したりすることによって、流通させることができるのは言うまでもない。

Claims (21)

  1. 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンと共に用いられ、実行対象となる一部の仮想マシン命令列をその実行に先立って実マシン命令列に変換するその場式コンパイラであって、
    前記仮想マシン命令列を構成する仮想マシン命令それぞれについて、前記仮想マシン命令列を基本ブロックに分割した場合の各基本ブロックの先頭となる仮想マシン命令であるか否かを示すブロック先頭情報の入力を受け付けるブロック先頭情報獲得手段と、
    前記仮想マシン命令列を構成する仮想マシン命令それぞれについて、対応する実マシン命令列に変換する変換手段と、
    前記変換手段によって得られた実マシン命令列における実マシン命令であって、前記ブロック先頭情報獲得手段が受け付けたブロック先頭情報によって特定された基本ブロックの先頭となる仮想マシン命令に対応する実マシン命令が、前記実マシンによってアドレシングされ得ない位置に配置される命令であるか否かを判定する分岐違反判定手段と、
    前記分岐違反判定手段によって前記実マシン命令が前記位置に配置される命令であると判定された場合に、前記実マシン命令が前記位置に配置されないよう1個以上の無動作命令を前記実マシン命令列に追加挿入して出力する出力手段と
    を備えることを特徴とするコンパイラ。
  2. 前記出力手段は、前記実マシン命令が前記実マシンによってアドレシングされ得る後続位置にずらせるために必要な個数の無動作命令を前記実マシン命令列における基本ブロックの先頭位置に追加挿入することを特徴とする請求項記載のコンパイラ。
  3. 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンであって、
    実行対象となる仮想マシン命令列を記憶する命令記憶手段と、
    前記命令記憶手段から次に実行すべき仮想マシン命令を読み出す読み出し手段と、
    読み出された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
    前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりからなり、
    各命令ブロックは、その命令ブロックの前記命令記憶手段における先頭位置を特定するための識別子を格納した識別子領域と、対応する基本ブロックの非分岐命令だけを格納した非分岐命令領域と、対応する基本ブロックの分岐命令を格納した分岐命令領域とを含み、
    前記分岐命令領域に格納された分岐命令は、その分岐先が前記識別子によって指定され、
    前記解読実行手段は、読み出された仮想マシン命令が前記分岐命令である場合には、その分岐先として指定されている識別子に対応する命令ブロックの非分岐命令領域の先頭に実行制御を分岐させることを特徴とする仮想マシン。
  4. 前記解読実行手段は、
    次に読み出すべき仮想マシン命令が属する命令ブロックの識別子を格納する識別子レジスタと、その仮想マシン命令のその命令ブロックにおける相対的な記憶位置を示すオフセットを格納するオフセットカウンタとからなるプログラムカウンタを備え、
    前記読み出し手段は、前記プログラムカウンタに格納された識別子とオフセットに基づいて前記仮想マシン命令を読み出し、
    前記解読実行手段は、読み出された仮想マシン命令が前記分岐命令である場合には、その分岐先として指定されている識別子を前記識別子レジスタに書き込むと共に前記オフセットカウンタを初期値にリセットし、読み出された仮想マシン命令が前記非分岐命令である場合には、前記オフセットカウンタを増加させ、
    前記読み出し手段は、前記解読実行手段によって更新されたプログラムカウンタの識別子とオフセットに基づいて次に実行すべき仮想マシン命令を読み出すことを特徴とする請求項記載の仮想マシン。
  5. 前記解読実行手段はさらに、対象とする全ての種類の仮想マシン命令それぞれに対応する実マシン命令列を記憶する実マシン命令列記憶部を備え、
    前記命令記憶手段の各命令ブロックはさらに、その命令ブロックの非分岐命令領域及び分岐命令領域に格納された仮想マシン命令それぞれに対応する実マシン命令列を前記実マシン命令列記憶部に記憶された実マシン命令列から特定するためのデコードデータを含むデコードデータ列を格納したデコードデータ列領域を含み、
    前記読み出し手段は、デコードデータ列が格納された命令ブロックについては前記仮想マシン命令に代えて前記デコードデータを読み出し、デコードデータ列が格納されていない命令ブロックについては仮想マシン命令を読み出した後に、その仮想マシン命令に対応する実マシン命令列を前記実マシン命令列記憶部に記憶された実マシン命令列から特定するためのデコードデータを生成し、
    前記解読実行手段は、前記読み出し手段から読み出し又は生成されたデコードデータによって特定される実マシン命令列を前記実マシン命令列記憶部から読み出して実行することを特徴とする請求項記載の仮想マシン。
  6. 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンにおいて、実行対象となる仮想マシン命令列を格納しておくための命令記憶手段における前記格納方法であって、
    前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりからなり、
    各命令ブロックは、その命令ブロックの前記命令記憶手段における先頭位置を特定するための識別子を格納した識別子領域と、対応する基本ブロックの非分岐命令だけを格納した非分岐命令領域と、対応する基本ブロックの分岐命令を格納した分岐命令領域とを含み、
    前記分岐命令領域に格納された分岐命令は、その分岐先が前記識別子によって指定されていることを特徴とする仮想マシン命令列の格納方法。
  7. コンピュータを仮想マシンとして機能させるためのプログラムを記録した記録媒体であって、
    前記仮想マシンは、
    実行対象となる仮想マシン命令列を記憶する命令記憶手段と、
    前記命令記憶手段から次に実行すべき仮想マシン命令を読み出す読み出し手段と、
    読み出された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
    前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりからなり、
    各命令ブロックは、その命令ブロックの前記命令記憶手段における先頭位置を特定するための識別子を格納した識別子領域と、対応する基本ブロックの非分岐命令だけを格納した非分岐命令領域と、対応する基本ブロックの分岐命令を格納した分岐命令領域とを含み、
    前記分岐命令領域に格納された分岐命令は、その分岐先が前記識別子によって指定され、
    前記解読実行手段は、読み出された仮想マシン命令が前記分岐命令である場合には、その分岐先として指定されている識別子に対応する命令ブロックの非分岐命令領域の先頭に実行制御を分岐させることを特徴とする記録媒体。
  8. 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンにおいて、実行対象となる仮想マシン命令列を格納しておくための命令記憶手段における前記格納方法であって、
    前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりと、少なくともひとつ以上の前記仮想マシン命令列からなり、
    各命令ブロックは、その命令ブロックの前記仮想マシン命令列の基本ブロックの先頭位 置を特定するための識別子を格納した識別子領域を含み、
    前記仮想マシン命令列に格納された分岐命令の分岐先が前記識別子によって指定されていることを特徴とする仮想マシン命令列の格納方法。
  9. 実マシンによる制御の下で仮想マシン命令を実行するスタック型仮想マシンであって、
    データを後入れ先出し方式で一時的に記憶するためのスタック手段と、
    実行対象となる仮想マシン命令列と、それら仮想マシン命令それぞれに対応づけられた情報であって、対応づけられた仮想マシン命令に後続する仮想マシン命令が実行された場合の前記スタック手段でのデータの格納状態の変化を示す先行命令情報とを記憶する命令記憶手段と、
    前記命令記憶手段から次に実行すべき仮想マシン命令及び対応する先行命令情報を読み出す読み出し手段と、
    読み出された仮想マシン命令と先行命令情報との組み合わせに対応する演算処理を特定し実行する解読実行手段と
    を備えることを特徴とする仮想マシン。
  10. 前記解読実行手段は、
    対象とする全ての種類の仮想マシン命令と全ての種類の先行命令情報との組み合わせそれぞれに対応する実マシン命令列を記憶する実マシン命令列記憶部と、
    前記読み出し手段によって読み出された仮想マシン命令と先行命令情報との組み合わせに対応する実マシン命令列を前記実マシン命令列記憶部に記憶された実マシン命令列から特定する特定部と、
    特定された実マシン命令列を実行する実行部と
    を有することを特徴とする請求項記載の仮想マシン。
  11. 前記先行命令情報は、対応する仮想マシン命令に後続する仮想マシン命令が実行された場合の前記スタック手段に格納されるデータ数の増減を示し、
    前記実マシン命令列記憶部に記憶された実マシン命令列には、対応する先行命令情報に基づいて前記スタック手段を先行処理する実マシン命令が含まれていることを特徴とする請求項10記載の仮想マシン。
  12. 前記実マシン命令列記憶部に記憶された実マシン命令列は、前記スタック手段において最後に格納されたデータと最後から2番目に格納されたデータそれぞれを記憶する領域が前記実マシンが備える2つのレジスタに割り当てられていることを前提とする内容であることを特徴とする請求項11記載の仮想マシン。
  13. 前記命令記憶手段は、前記仮想マシン命令列と前記先行命令情報とを、対応する1つの仮想マシン命令と1つの先行命令情報との組を1つの拡張仮想マシン命令とする拡張仮想マシン命令列として記憶し、
    前記読み出し手段は、前記命令記憶手段から拡張仮想マシン命令を読み出し、
    前記解読実行手段は、読み出された拡張仮想マシン命令に対応する演算処理を特定し実行することを特徴とする請求項記載の仮想マシン。
  14. スタック型仮想マシンを対象とするコンパイラであって、
    ソースプログラムを前記仮想マシンが実行する仮想マシン命令列に変換する命令列変換手段と、
    変換によって得られた仮想マシン命令列を構成する仮想マシン命令それぞれについて、後続する仮想マシン命令が前記仮想マシンによって実行された場合の前記スタック手段でのデータの格納状態の変化を示す先行命令情報を生成する先行命令情報生成手段と、
    生成された先行命令情報と対応する仮想マシン命令とを関連付けて出力する関連付け手段と
    を備えることを特徴とする仮想マシンコンパイラ。
  15. 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンであって、
    実行対象となる仮想マシン命令列を記憶する命令記憶手段と、
    前記命令記憶手段から次に実行すべき仮想マシン命令を読み出す読み出し手段と、
    読み出された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
    前記解読実行手段は、
    読み出された仮想マシン命令が実行制御の流れを分岐させる分岐命令であるか否かを判定する分岐命令判定部と、
    分岐命令であると判定される度に、その分岐命令の実行に加えて、この仮想マシンへの割込み要求の発生の有無の検出と、発生している場合の割込み処理とを実行する割込み処理部とを有することを特徴とする仮想マシン。
  16. 前記解読実行手段はさらに、
    対象とする全ての種類の仮想マシン命令に対応する実マシン命令列とこの仮想マシンへの割込み要求に対処するための実マシン命令列を記憶する実マシン命令列記憶部と、
    指定された実マシン命令列を実行する実行部とを備え、
    前記割込み処理部は、前記分岐命令判定部によって分岐命令であると判定される度に、前記実行部に、前記割込み要求に対処するための実マシン命令列を実行させた後に前記分岐命令に対応する実マシン命令列を実行させることを特徴とする請求項15記載の仮想マシン。
  17. 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンであって、
    実行対象となる仮想マシン命令列を記憶する命令記憶手段と、
    前記命令記憶手段から次に実行すべき仮想マシン命令を読み出す読み出し手段と、
    読み出された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
    前記解読実行手段は、
    読み出された仮想マシン命令が一定個数の仮想マシン命令の集まりをブロックとした場合の各ブロックを代表する仮想マシン命令に相当するか否かを判定するブロック判定部を備え、
    各ブロックを代表する仮想マシン命令であると判定される度に、その仮想マシン命令の実行に加えて、この仮想マシンへの割込み要求の発生の有無の検出と、発生している場合の割込み処理とを実行する割込み処理部とを有することを特徴とする仮想マシン。
  18. 前記解読実行手段はさらに、
    対象とする全ての種類の仮想マシン命令に対応する実マシン命令列とこの仮想マシンへの割込み要求に対処するための実マシン命令列を記憶する実マシン命令列記憶部と、
    指定された実マシン命令列を実行する実行部とを備え、
    前記ブロック判定部は、仮想マシン命令が読み出される度に、それまでに読み出された仮想マシン命令の総数が一定値の倍数に一致するか否か比較し、一致する場合に、前記仮想マシン命令は各ブロックを代表する仮想マシン命令に相当すると判定し、
    前記割込み処理部は、前記分岐命令判定部によって各ブロックを代表する仮想マシン命令であると判定される度に、前記実行部に、前記割込み要求に対処するための実マシン命令列を実行させた後に前記仮想マシン命令に対応する実マシン命令列を実行させることを特徴とする請求項17記載の仮想マシン。
  19. 実マシンによる制御の下で仮想マシン命令を実行する仮想マシンであって、
    実行対象となる仮想マシン命令列を圧縮符号で記憶する命令記憶手段と、
    前記命令記憶手段から次に実行すべき仮想マシン命令の圧縮符号を読み出し、対応する仮想マシン命令に復号する読み出し手段と、
    復号された仮想マシン命令に対応する演算処理を特定し実行する解読実行手段とを備え、
    前記命令記憶手段は、前記仮想マシン命令列を構成する基本ブロックそれぞれに対応する命令ブロックの集まりからなり、
    各命令ブロックは、その命令ブロックの前記命令記憶手段における先頭位置を特定するための識別子を格納した識別子領域と、対応する基本ブロックの非分岐命令だけを格納した非分岐命令領域と、対応する基本ブロックの分岐命令を格納した分岐命令領域とを含み、
    前記分岐命令領域に格納された分岐命令は、その分岐先が前記識別子によって指定され、
    前記解読実行手段は、復号された仮想マシン命令が前記分岐命令である場合には、その分岐先として指定されている識別子に対応する命令ブロックの非分岐命令領域の先頭に実行制御を分岐させることを特徴とする仮想マシン。
  20. 実マシンによる制御の下で仮想マシン命令を実行するスタック型仮想マシンにおいて、実行対象となる仮想マシン命令列を格納しておくための命令記憶手段における前記格納方法であって、
    実行対象となる仮想マシン命令列と、それら仮想マシン命令それぞれに対応づけられた情報であって、対応づけられた仮想マシン命令に後続する仮想マシン命令が実行された場合の前記スタックでのデータの格納状態の変化を示す先行命令情報とを関連付けて格納することを特徴とする仮想マシン命令列の格納方法。
  21. コンピュータをスタック型仮想マシンとして機能させるためのプログラムを記録した記録媒体であって、
    前記仮想マシンは、
    データを後入れ先出し方式で一時的に記憶するためのスタック手段と、
    実行対象となる仮想マシン命令列と、それら仮想マシン命令それぞれに対応づけられた情報であって、対応づけられた仮想マシン命令に後続する仮想マシン命令が実行された場合の前記スタック手段でのデータの格納状態の変化を示す先行命令情報とを記憶する命令記憶手段と、
    前記命令記憶手段から次に実行すべき仮想マシン命令及び対応する先行命令情報を読み出す読み出し手段と、
    読み出された仮想マシン命令と先行命令情報との組み合わせに対応する演算処理を特定し実行する解読実行手段と
    を備えることを特徴とする記録媒体。
JP10096204A 1998-04-08 1998-04-08 仮想マシン及びコンパイラ Pending JPH11296381A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) ロードアドレスキャッシュ装置及び方法