JP2006216069A - スタックを用いる演算マシンのための命令フォールディング処理 - Google Patents
スタックを用いる演算マシンのための命令フォールディング処理 Download PDFInfo
- Publication number
- JP2006216069A JP2006216069A JP2006051700A JP2006051700A JP2006216069A JP 2006216069 A JP2006216069 A JP 2006216069A JP 2006051700 A JP2006051700 A JP 2006051700A JP 2006051700 A JP2006051700 A JP 2006051700A JP 2006216069 A JP2006216069 A JP 2006216069A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stack
- operand
- cache
- virtual machine
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims description 200
- 238000012546 transfer Methods 0.000 claims description 5
- 239000000872 buffer Substances 0.000 description 64
- 230000008569 process Effects 0.000 description 38
- 238000007667 floating Methods 0.000 description 36
- 238000007726 management method Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 22
- 238000007792 addition Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 12
- 238000013519 translation Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000005055 memory storage Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 239000002957 persistent organic pollutant Substances 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 239000002131 composite material Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000001629 suppression Effects 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/451—Stack data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
【解決手段】JAVA仮想マシン命令の命令デコーダが、オペランドをスタックの一番上にプッシュする命令であって、単にスタックオペランドの一番上に作用する第2の命令の先行処理として実行されるに過ぎないものを、中心のオペレーションに一体化、即ちフォールディング処理する。この命令デコーダは、フォールディング処理可能な命令シーケンスを特定して、実行ユニットに一つの等価なフォールディング処理済オペレーションを供給する。
【選択図】 図11
Description
1.オブジェクト参照
2.渡される引数
3.ローカル変数
4.呼び出しを行ったメソッドコンテキスト
5.オペランドスタック
6.メソッドからの戻り値
である。
I/Oバス及びメモリインタフェースユニット110(図1)はインタフェースユニット110とも称し、ハードウェアプロセッサ100と、実施例においては外部メモリを含み、所望に応じてハードウェアプロセッサ100と同じチップ上のメモリストレージ及びインタフェース或いはその何れかを含み得るメモリ階層を実現する。この実施例においては、I/Oコントローラ111が外部I/Oデバイスに対してインタフェースし、メモリコントローラ112が、外部メモリに対してインタフェースする。ここで、外部メモリとは、ハードウェアプロセッサ100の外部にあるメモリを意味する。しかし、外部メモリは、ハードウェアプロセッサ100と同じチップ上に含められても良く、或いはハードウェアプロセッサ100を含みチップの外部に設けられても良く、又はチップの内外双方に設けられても良い。
命令キャッシュユニット
命令キャッシュユニット(ICU)120(図1)は、命令キャッシュ125から仮想マシン命令をフェッチして、その命令を命令デコードユニット130に供給する。この実施例においては、命令キャッシュヒット時に、命令キャッシュコントローラ121が、1サイクルにおいて、命令キャッシュ125から命令を命令バッファ124に転送し、そこでこの命令は定数実行ユニットIEU(後に完全に説明する)が命令を処理できるようになるまで保持する。これによって、ハードウェアプロセッサ100におけるパイプライン300(図3)のフェッチ段階301と残りの段階とが分離される。命令−バッファタイプの編成をサポートする複雑さを避けることが望ましくないならば、1命令レジスタが大抵の目的に十分である。しかし、後に説明するように、命令のフェッチング、キャッシング、及びバッファリングは、命令フォールディング処理をサポートできるだけの十分な命令バンド幅を提供するべきである。
上述したように、仮想マシン命令はパイプライン300のデコード段302(図3)においてデコードされる。典型的な実施例では、2バイトが、2つの仮想マシン命令に対応することができ、命令バッファ124(図1)からフェッチされる。2バイトは並列にデコードされ、2バイトが2つの仮想マシン命令、例えば、1つの等価な演算にフォールディングされることができる、第1のロードトップスタック命令及び第2のアドトップ2スタックエントリ命令、に対応するか否かを判定される。フォールディングは、2つ或いは3つ以上の仮想マシン命令に対応する1つの等価な演算を供給することである。
2.iload値2
3.iadd
4.istore
これらの命令については図9A〜図9Dを参照しつつ前に説明した。)で説明するように、命令iload及び命令istoreの双方は命令デコーダ1118によりフォールディングされて、命令iaddに対応する加算オペレーションに組み込まれる。命令デコーダ1118のオペレーションは、4つの命令のフォールディング可能なシーケンスを用いて示されているが、当業者は、本発明の適応対象がこの4つの命令に限定されないことは理解されよう。2、3、4、5、或いはそれ以上の命令から成るフォールディング可能なシーケンスが考えられる。例えば、命令istoreに類似した1以上の命令及び命令iloadに類似した2以上の命令がフォールディング可能なシーケンスに含められ得る。
1.デコードされた命令に対応するオペレーション、例えば整数加算を特定するノーマル命令デコード信号n_instr_decが、スイッチ1306の第1の入力端の組に供給される。
図1に示すように、整数実行ユニットIEUは、命令デコードユニット130、整数ユニット142並びにスタック管理ユニット150を含む、浮動小数点関連命令を除く、全ての仮想マシン命令の実行を支配する。浮動小数点関連命令は浮動小数点ユニット142において実行される。
スタック管理ユニット150は情報をストアし、実行ユニット140に対するオペランドを提供する。またスタック管理ユニット150はスタックキャッシュ155のオーバーフロー及びアンダーフロー条件を処理する。
データキャッシュユニット160(DCU)は、データキャッシュ165内のデータに対する全ての要求を管理する。データキャッシュ要求は、ドリブル管理部151或いは実行ユニット140から起こる。データキャッシュ制御部161は、実行ユニット要求に先行して与えられるこれらの要求間の調整をする。ある要求に応じて、データキャッシュ制御部161は、そのデータに対するアドレス、データ並びに制御信号を発生し、データキャッシュ165内のRAMにタグ付けする。データキャッシュヒットに対して、データキャッシュ制御部161はデータRAM出力をリオーダし、その正確なデータを与える。
1つの実施例において、データキャッシュユニット165はメモリ割当てアクセラレータ166を含む。一般に、新しいオブジェクトが生成されるとき、そのオブジェクトに対するフィールドは外部メモリからフェッチされ、データキャッシュ165内にストアされ、それからそのフィールドは0にクリアされる。これがメモリ割当てアクセラレータ166により削除される処理にかかる時間である。新しいオブジェクトが生成されるとき、いかなるフィールドも外部メモリから回収されない。むしろ、メモリ割当てアクセラレータ166は単に、データキャッシュ165内に0の列をストアし、データキャッシュ165のその列をダーティとしてマークする。メモリ割当てアクセラレータ166はライトバックキャッシュについて特に有利である。メモリ割当てアクセラレータ166は、新しいオブジェクトが生成される度に、外部メモリにアクセスすることを削除するので、ハードウエアプロセッサ100のパフォーマンスが向上する。
浮動小数点ユニット(FPU)143は、マイクロコードシーケンサ、入力/出力レジスタを有する入出力部分、浮動小数点加算器、すなわちALU、並びに浮動小数点乗算/除算ユニットを含む。マイクロコードシーケンサは、マイクロコードフロー及びマイクロコード分岐を制御する。入出力部分は入出力データトランザクションを制御し、入力データロードレジスタ及び出力データ非ロードレジスタを与える。またこれらのレジスタは中間結果記憶領域を与える。
付録IのJAVA仮想マシン仕様はハードウエアに依存しないので、仮想マシン命令は特定の汎用タイプのプロセッサ、例えば複雑命令セットコンピュータ(CISC)プロセッサ、或いは限定命令セットコンピュータ(RISC)プロセッサに対して最適化されてない。実際に、ある仮想マシン命令はCISC性を有し、他のものはRISC性を有する。この二重性は演算及びハードウエアプロセッサ100の最適化を複雑にする。
他の特定の機能ユニット及び種々の翻訳ルックアサイドバッファ(TLB)タイプの構造は、ハードウエアプロセッサ100に任意に含まれ、コンスタントプールへのアクセスを加速する。例えば、JAVA仮想マシン仕様は、実行時にオブジェクト内にフィールドをセットする、命令putfield、オペコード181、並びに実行時にオブジェクトからフィールドをフェッチする、命令getfield、オペコード180を定義する。これら両方の命令では、そのオペコードには、インデクスバイト1及びインデクスバイト2が後続する。オペランドスタック423は、命令getfieldの場合のオブジェクトに対する参照のみを除いて、命令putfieldに対する値により後続されるオブジェクトに対する参照を含む。
実行ユニット140内のバウンドチェックユニット147(図1)は、任意のハードウエア回路であり、配列(array)の要素への各アクセスをチェックし、そのアクセスがその配列内の位置に対するものであるか否かを判定する。そのアクセスがその配列内の位置に対するものであるとき、境界チェックユニット147は、実行ユニット140に対して、アクティブ配列境界例外信号を発行する。アクティブ配列境界例外信号に応じて、実行ユニット140は、マイクロコードROM141内にストアされた、その境界外配列アクセス(out of bounds array access)を処理する例外ハンドラの実行を開始する。
Claims (6)
- レジスタストレージに存在するデータを操作するべく動作可能な実行ユニットと、
複数の連続したスタックベースの命令をデコードし、デコードされた前記複数の連続したスタックベースの命令に対応する1個のレジスタベースのオペレーションを前記実行ユニットに実行させるべく動作可能な命令デコーダとを有することを特徴とする装置。 - 前記1個のレジスタベースのオペレーションが、前記レジスタストレージにおける処理結果の格納位置、及び前記レジスタストレージにおける2以上のソースの格納位置を明示的に特定することを特徴とする請求項1に記載の装置。
- 前記命令デコーダが、前記レジスタストレージの複数のエントリを選択するべく動作可能であり、選択された前記複数のエントリは、デコードされた前記複数の連続したスタックベースの命令によって明示的及び暗示的に標的とされるスタック及びローカル変数の格納位置の部分集合に対応することを特徴とする請求項1に記載の装置。
- 前記レジスタストレージにおけるスタック及びローカル変数の部分をさらに含み、デコードされた前記複数の連続したスタックベースの命令の少なくとも1つが、1つのローカル変数から前記スタックの先頭への情報の転送を定義することを特徴とする請求項1に記載の装置。
- スタックベースの命令のシーケンスをフェッチする過程と、
複数の連続したスタックベースのめ異例をデコードする過程と、デコードされた前記複数の連続したスタックベースの命令に対応する1個のレジスタベースのオペレーションを前記実行ユニットに実行させる過程とを含むことを特徴とする方法。 - コンピュータシステムであって、
命令ソースと、
レジスタストレージと、
プロセッサと、
前記命令ソースからスタックベースの命令を受け取り、前記プロセッサに、前記レジスタストレージにおけるソースと処理結果の位置に対する明示的な識別子を用いて前記レジスタに存在する存在するデータを操作させる手段であって、前記手段は、前記スタックベースの命令の一部である複数の連続した命令群を、1個の対応するレジスタベースのオペレーションに変換する、該手段とを有することを特徴とするコンピュータシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US1052796P | 1996-01-24 | 1996-01-24 | |
US64398496A | 1996-05-07 | 1996-05-07 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52705397A Division JP3801643B2 (ja) | 1996-01-24 | 1997-01-23 | スタックを用いる演算マシンのための命令フォールディング処理 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006216069A true JP2006216069A (ja) | 2006-08-17 |
JP4171496B2 JP4171496B2 (ja) | 2008-10-22 |
Family
ID=26681282
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52705397A Expired - Lifetime JP3801643B2 (ja) | 1996-01-24 | 1997-01-23 | スタックを用いる演算マシンのための命令フォールディング処理 |
JP2006051700A Expired - Lifetime JP4171496B2 (ja) | 1996-01-24 | 2006-02-28 | スタックを用いる演算マシンのための命令フォールディング処理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52705397A Expired - Lifetime JP3801643B2 (ja) | 1996-01-24 | 1997-01-23 | スタックを用いる演算マシンのための命令フォールディング処理 |
Country Status (6)
Country | Link |
---|---|
US (3) | US6026485A (ja) |
EP (1) | EP0976030B1 (ja) |
JP (2) | JP3801643B2 (ja) |
KR (1) | KR100529416B1 (ja) |
DE (1) | DE69738810D1 (ja) |
WO (1) | WO1997027536A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014194755A (ja) * | 2013-03-15 | 2014-10-09 | Intel Corp | 複数の試験ソースに対するor試験及びand試験機能を提供するために命令をフュージングする方法及び装置 |
JP2019519865A (ja) * | 2016-07-08 | 2019-07-11 | エイアールエム リミテッド | 並べ替え動作を実行するための装置および方法 |
Families Citing this family (185)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69734399D1 (de) * | 1996-01-24 | 2006-03-02 | Sun Microsystems Inc | Verfahren und vorrichtung zur stapel-cachespeicherung |
JPH1091443A (ja) * | 1996-05-22 | 1998-04-10 | Seiko Epson Corp | 情報処理回路、マイクロコンピュータ及び電子機器 |
AU731871B2 (en) * | 1996-11-04 | 2001-04-05 | Sun Microsystems, Inc. | Method and apparatus for thread synchronization in object-based systems |
EP0950216B1 (en) * | 1997-10-02 | 2003-11-26 | Koninklijke Philips Electronics N.V. | A processing device for executing virtual machine instructions |
KR100623403B1 (ko) * | 1997-10-02 | 2006-09-13 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 가상 머신 명령을 처리하기 위한 데이터 처리 장치 |
DE69836902T2 (de) * | 1997-10-02 | 2007-10-18 | Koninklijke Philips Electronics N.V. | Auf variable instruktionen eingestellter computer |
US5933635A (en) * | 1997-10-06 | 1999-08-03 | Sun Microsystems, Inc. | Method and apparatus for dynamically deoptimizing compiled activations |
JPH11296381A (ja) * | 1998-04-08 | 1999-10-29 | Matsushita Electric Ind Co Ltd | 仮想マシン及びコンパイラ |
US6237086B1 (en) * | 1998-04-22 | 2001-05-22 | Sun Microsystems, Inc. | 1 Method to prevent pipeline stalls in superscalar stack based computing systems |
US6434741B1 (en) | 1998-04-30 | 2002-08-13 | Hewlett-Packard Company | Method and apparatus for debugging of optimized code using emulation |
US6075942A (en) * | 1998-05-04 | 2000-06-13 | Sun Microsystems, Inc. | Encoding machine-specific optimization in generic byte code by using local variables as pseudo-registers |
US6397242B1 (en) | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
US6230311B1 (en) * | 1998-06-12 | 2001-05-08 | International Business Machines Corporation | Apparatus and method for disabling methods called on an object |
US7028163B2 (en) * | 1998-06-22 | 2006-04-11 | Samsung Electronics, Co., Ltd. | Apparatus for controlling multi-word stack operations using a multi-bank stack in digital data processors |
US6314445B1 (en) * | 1998-08-03 | 2001-11-06 | International Business Machines Coproration | Native function calling |
US6205578B1 (en) * | 1998-08-14 | 2001-03-20 | Ati International Srl | Interpreter for stack-based languages |
US8631066B2 (en) | 1998-09-10 | 2014-01-14 | Vmware, Inc. | Mechanism for providing virtual machines for use by multiple users |
US6349383B1 (en) * | 1998-09-10 | 2002-02-19 | Ip-First, L.L.C. | System for combining adjacent push/pop stack program instructions into single double push/pop stack microinstuction for execution |
US6289446B1 (en) * | 1998-09-29 | 2001-09-11 | Axis Ab | Exception handling utilizing call instruction with context information |
JP2000122875A (ja) * | 1998-10-19 | 2000-04-28 | Internatl Business Mach Corp <Ibm> | 例外処理方法およびシステム |
US7516453B1 (en) * | 1998-10-26 | 2009-04-07 | Vmware, Inc. | Binary translator with precise exception synchronization mechanism |
US6434575B1 (en) * | 1998-11-12 | 2002-08-13 | International Business Machines Corporation | Method of instrumenting garbage collection generating a trace file making a single pass analysis of object heap |
US6321377B1 (en) * | 1998-12-03 | 2001-11-20 | International Business Machines Corporation | Method and apparatus automatic service of JIT compiler generated errors |
US6233725B1 (en) * | 1998-12-03 | 2001-05-15 | International Business Machines Corporation | Method and apparatus to coordinate and control the simultaneous use of multiple just in time compilers with a java virtual machine |
US6332215B1 (en) * | 1998-12-08 | 2001-12-18 | Nazomi Communications, Inc. | Java virtual machine hardware for RISC and CISC processors |
US20050149694A1 (en) * | 1998-12-08 | 2005-07-07 | Mukesh Patel | Java hardware accelerator using microcode engine |
US6487652B1 (en) * | 1998-12-08 | 2002-11-26 | Sun Microsystems, Inc. | Method and apparatus for speculatively locking objects in an object-based system |
US7225436B1 (en) | 1998-12-08 | 2007-05-29 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
US6826749B2 (en) | 1998-12-08 | 2004-11-30 | Nazomi Communications, Inc. | Java hardware accelerator using thread manager |
US6415436B1 (en) * | 1998-12-11 | 2002-07-02 | Hewlett-Packard Company | Mechanism for cross validating emulated states between different emulation technologies in a dynamic compiler |
TW477936B (en) * | 1998-12-29 | 2002-03-01 | Ind Tech Res Inst | Instruction folding method and device used in a stack machine |
US6327702B1 (en) * | 1998-12-30 | 2001-12-04 | Microsoft Corporation | Generating a compiled language program for an interpretive runtime environment |
US8225002B2 (en) | 1999-01-22 | 2012-07-17 | Network Disk, Inc. | Data storage and data sharing in a network of heterogeneous computers |
US6487630B2 (en) | 1999-02-26 | 2002-11-26 | Intel Corporation | Processor with register stack engine that dynamically spills/fills physical registers to backing store |
FR2790844B1 (fr) * | 1999-03-09 | 2001-05-25 | Gemplus Card Int | Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme |
US6330635B1 (en) * | 1999-04-16 | 2001-12-11 | Intel Corporation | Multiple user interfaces for an integrated flash device |
US6507946B2 (en) * | 1999-06-11 | 2003-01-14 | International Business Machines Corporation | Process and system for Java virtual method invocation |
JP3648100B2 (ja) * | 1999-07-26 | 2005-05-18 | 理想科学工業株式会社 | 丁合装置 |
US6418310B1 (en) * | 1999-08-05 | 2002-07-09 | Ericsson Inc. | Wireless subscriber terminal using java control code |
DE19950249C1 (de) * | 1999-10-18 | 2001-02-01 | Siemens Ag | Elektronisches Gerät mit Softwareschutz |
US7219335B1 (en) * | 1999-12-08 | 2007-05-15 | Intel Corporation | Method and apparatus for stack emulation during binary translation |
WO2001069408A1 (en) * | 2000-03-16 | 2001-09-20 | World Wireless Communications, Inc. | An improved method of connecting devices to the internet |
US6675375B1 (en) * | 2000-04-28 | 2004-01-06 | Sun Microsystems, Inc. | Method and apparatus for optimized multiprocessing in a safe language |
US20020194267A1 (en) * | 2000-06-23 | 2002-12-19 | Daniel Flesner | Portal server that provides modification of user interfaces for access to computer networks |
US6766460B1 (en) | 2000-08-23 | 2004-07-20 | Koninklijke Philips Electronics N.V. | System and method for power management in a Java accelerator environment |
US6782407B1 (en) | 2000-09-26 | 2004-08-24 | Koninklijke Philips Electronics N.V. | System and method for low overhead boundary checking of java arrays |
US6704926B1 (en) * | 2000-09-28 | 2004-03-09 | International Business Machines Corporation | Bimodal Java just-in-time complier |
US7340592B1 (en) | 2000-09-29 | 2008-03-04 | Intel Corporation | Executing a translated block of instructions and branching to correction code when expected top of stack does not match actual top of stack to adjust stack at execution time to continue executing without restarting translating |
US20020069402A1 (en) * | 2000-10-05 | 2002-06-06 | Nevill Edward Colles | Scheduling control within a system having mixed hardware and software based instruction execution |
GB2367654B (en) * | 2000-10-05 | 2004-10-27 | Advanced Risc Mach Ltd | Storing stack operands in registers |
GB2367653B (en) | 2000-10-05 | 2004-10-20 | Advanced Risc Mach Ltd | Restarting translated instructions |
KR20020028814A (ko) * | 2000-10-10 | 2002-04-17 | 나조미 커뮤니케이션즈, 인코포레이티드 | 마이크로코드 엔진을 이용한 자바 하드웨어 가속기 |
US6996813B1 (en) * | 2000-10-31 | 2006-02-07 | Sun Microsystems, Inc. | Frameworks for loading and execution of object-based programs |
GB2369464B (en) | 2000-11-27 | 2005-01-05 | Advanced Risc Mach Ltd | A data processing apparatus and method for saving return state |
US7076771B2 (en) | 2000-12-01 | 2006-07-11 | Arm Limited | Instruction interpretation within a data processing system |
JP2002169696A (ja) | 2000-12-04 | 2002-06-14 | Mitsubishi Electric Corp | データ処理装置 |
US6968557B1 (en) * | 2000-12-18 | 2005-11-22 | Stratum8 Corporation | Reducing stack memory resources in a threaded computer system |
US6990567B1 (en) * | 2000-12-22 | 2006-01-24 | Lsi Logic Corporation | Use of internal general purpose registers of a processor as a Java virtual machine top of stack and dynamic allocation of the registers according to stack status |
US7873814B1 (en) | 2000-12-22 | 2011-01-18 | Lsi Corporation | Microcode based hardware translator to support a multitude of processors |
US7284274B1 (en) * | 2001-01-18 | 2007-10-16 | Cigital, Inc. | System and method for identifying and eliminating vulnerabilities in computer software applications |
US7055019B2 (en) * | 2001-02-13 | 2006-05-30 | Ellipsis Digital Systems, Inc. | Matched instruction set processor systems and method, system, and apparatus to efficiently design and implement matched instruction set processor systems by mapping system designs to re-configurable hardware platforms |
US7020874B2 (en) * | 2001-03-26 | 2006-03-28 | Sun Microsystems, Inc. | Techniques for loading class files into virtual machines |
US7096466B2 (en) | 2001-03-26 | 2006-08-22 | Sun Microsystems, Inc. | Loading attribute for partial loading of class files into virtual machines |
US6957428B2 (en) | 2001-03-27 | 2005-10-18 | Sun Microsystems, Inc. | Enhanced virtual machine instructions |
US7543288B2 (en) * | 2001-03-27 | 2009-06-02 | Sun Microsystems, Inc. | Reduced instruction set for Java virtual machines |
KR20040034601A (ko) * | 2001-04-23 | 2004-04-28 | 아트멜 코포레이숀 | 바이트 컴파일된 자바 코드를 실행하는 마이크로 프로세서 |
CA2346762A1 (en) * | 2001-05-07 | 2002-11-07 | Ibm Canada Limited-Ibm Canada Limitee | Compiler generation of instruction sequences for unresolved storage devices |
US6804681B2 (en) * | 2001-05-08 | 2004-10-12 | Sun Microsystems, Inc. | Identifying and tracking object references in a java programming environment |
US7065747B2 (en) * | 2001-05-08 | 2006-06-20 | Sun Microsystems, Inc. | Identifying references to objects during bytecode verification |
GB2376097B (en) | 2001-05-31 | 2005-04-06 | Advanced Risc Mach Ltd | Configuration control within data processing systems |
GB2376098B (en) * | 2001-05-31 | 2004-11-24 | Advanced Risc Mach Ltd | Unhandled operation handling in multiple instruction set systems |
GB2376099B (en) * | 2001-05-31 | 2005-11-16 | Advanced Risc Mach Ltd | Program instruction interpretation |
GB2376100B (en) * | 2001-05-31 | 2005-03-09 | Advanced Risc Mach Ltd | Data processing using multiple instruction sets |
US7231460B2 (en) * | 2001-06-04 | 2007-06-12 | Gateway Inc. | System and method for leveraging networked computers to view windows based files on Linux platforms |
DE10127195A1 (de) * | 2001-06-05 | 2002-12-19 | Infineon Technologies Ag | Prozessor mit interner Speicherkonfiguration |
US6934726B2 (en) * | 2001-06-20 | 2005-08-23 | Sun Microsystems, Inc. | Storing and retrieving of field descriptors in Java computing environments |
WO2003014921A1 (en) * | 2001-07-02 | 2003-02-20 | Nazomi Communications, Inc. | Intermediate language accelerator chip |
US20030023958A1 (en) * | 2001-07-17 | 2003-01-30 | Patel Mukesh K. | Intermediate language accelerator chip |
US6832307B2 (en) * | 2001-07-19 | 2004-12-14 | Stmicroelectronics, Inc. | Instruction fetch buffer stack fold decoder for generating foldable instruction status information |
US20030041319A1 (en) * | 2001-08-24 | 2003-02-27 | Sun Microsystems, Inc. | Java bytecode instruction for retrieving string representations of java objects |
US7058934B2 (en) * | 2001-08-24 | 2006-06-06 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions for instantiating Java objects |
US8769508B2 (en) | 2001-08-24 | 2014-07-01 | Nazomi Communications Inc. | Virtual machine hardware for RISC and CISC processors |
US7228533B2 (en) * | 2001-08-24 | 2007-06-05 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions for performing programming loops |
US7039904B2 (en) * | 2001-08-24 | 2006-05-02 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions for storing values into local variables |
US6988261B2 (en) * | 2001-08-24 | 2006-01-17 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions in Java computing environments |
US7131121B2 (en) * | 2001-11-14 | 2006-10-31 | Axalto, Inc. | Method and apparatus for linking converted applet files without relocation annotations |
US20040215444A1 (en) * | 2002-03-25 | 2004-10-28 | Patel Mukesh K. | Hardware-translator-based custom method invocation system and method |
US7379860B1 (en) * | 2002-03-29 | 2008-05-27 | Cypress Semiconductor Corporation | Method for integrating event-related information and trace information |
US6973644B2 (en) * | 2002-04-12 | 2005-12-06 | The Mathworks, Inc. | Program interpreter |
US6950838B2 (en) * | 2002-04-17 | 2005-09-27 | Sun Microsystems, Inc. | Locating references and roots for in-cache garbage collection |
US6990610B2 (en) * | 2002-05-15 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Combining commands to form a test command |
US7290080B2 (en) * | 2002-06-27 | 2007-10-30 | Nazomi Communications Inc. | Application processors and memory architecture for wireless applications |
US7131118B2 (en) * | 2002-07-25 | 2006-10-31 | Arm Limited | Write-through caching a JAVA® local variable within a register of a register bank |
EP1387277B1 (en) * | 2002-07-31 | 2009-07-15 | Texas Instruments Incorporated | Write back policy for memory |
EP1387258A3 (en) * | 2002-07-31 | 2008-01-02 | Texas Instruments Incorporated | Processor-processor synchronization |
EP1387274A3 (en) * | 2002-07-31 | 2004-08-11 | Texas Instruments Incorporated | Memory management for local variables |
US7747989B1 (en) * | 2002-08-12 | 2010-06-29 | Mips Technologies, Inc. | Virtual machine coprocessor facilitating dynamic compilation |
US7051322B2 (en) | 2002-12-06 | 2006-05-23 | @Stake, Inc. | Software analysis framework |
US7051324B2 (en) * | 2003-01-16 | 2006-05-23 | International Business Machines Corporation | Externalized classloader information for application servers |
JP3902147B2 (ja) * | 2003-03-04 | 2007-04-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ装置、コンパイル方法、コンパイラプログラム、及び記録媒体 |
GB2399897B (en) * | 2003-03-26 | 2006-02-01 | Advanced Risc Mach Ltd | Memory recycling in computer systems |
GB0315165D0 (en) * | 2003-05-02 | 2003-08-06 | Transitive Ltd | Improved architecture for generating intermediate representations for program code conversion |
GB2401217B (en) * | 2003-05-02 | 2005-11-09 | Transitive Ltd | Improved architecture for generating intermediate representations for program code conversion |
US8719242B2 (en) * | 2003-08-29 | 2014-05-06 | Sap Ag | System and method for a database access statement interceptor |
US7114153B2 (en) * | 2003-09-10 | 2006-09-26 | Qualcomm Inc. | Method and apparatus for continuation-passing in a virtual machine |
US20050066305A1 (en) * | 2003-09-22 | 2005-03-24 | Lisanke Robert John | Method and machine for efficient simulation of digital hardware within a software development environment |
US7496917B2 (en) * | 2003-09-25 | 2009-02-24 | International Business Machines Corporation | Virtual devices using a pluarlity of processors |
US7389508B2 (en) * | 2003-09-25 | 2008-06-17 | International Business Machines Corporation | System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment |
US7523157B2 (en) * | 2003-09-25 | 2009-04-21 | International Business Machines Corporation | Managing a plurality of processors as devices |
US7549145B2 (en) * | 2003-09-25 | 2009-06-16 | International Business Machines Corporation | Processor dedicated code handling in a multi-processor environment |
US7516456B2 (en) * | 2003-09-25 | 2009-04-07 | International Business Machines Corporation | Asymmetric heterogeneous multi-threaded operating system |
US7478390B2 (en) * | 2003-09-25 | 2009-01-13 | International Business Machines Corporation | Task queue management of virtual devices using a plurality of processors |
US20050071828A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for compiling source code for multi-processor environments |
US7415703B2 (en) * | 2003-09-25 | 2008-08-19 | International Business Machines Corporation | Loading software on a plurality of processors |
US7444632B2 (en) * | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
US20050138340A1 (en) * | 2003-12-22 | 2005-06-23 | Intel Corporation | Method and apparatus to reduce spill and fill overhead in a processor with a register backing store |
GB2412192B (en) * | 2004-03-18 | 2007-08-29 | Advanced Risc Mach Ltd | Function calling mechanism |
US7802080B2 (en) | 2004-03-24 | 2010-09-21 | Arm Limited | Null exception handling |
US7930526B2 (en) | 2004-03-24 | 2011-04-19 | Arm Limited | Compare and branch mechanism |
US7363475B2 (en) * | 2004-04-19 | 2008-04-22 | Via Technologies, Inc. | Managing registers in a processor to emulate a portion of a stack |
US7941807B2 (en) * | 2004-04-30 | 2011-05-10 | International Business Machines Corporation | Transitional resolution in a just in time environment |
US7421539B1 (en) * | 2004-05-18 | 2008-09-02 | Sun Microsystems, Inc. | Method and system for concurrent garbage collection and mutator execution |
US7350059B2 (en) * | 2004-05-21 | 2008-03-25 | Via Technologies, Inc. | Managing stack transfers in a register-based processor |
US7613881B2 (en) * | 2004-06-08 | 2009-11-03 | Dartdevices Interop Corporation | Method and system for configuring and using virtual pointers to access one or more independent address spaces |
US20050289329A1 (en) * | 2004-06-29 | 2005-12-29 | Dwyer Michael K | Conditional instruction for a single instruction, multiple data execution engine |
EP1622009A1 (en) * | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
US7506338B2 (en) * | 2004-08-30 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for simplifying the deployment and serviceability of commercial software environments |
KR100597413B1 (ko) * | 2004-09-24 | 2006-07-05 | 삼성전자주식회사 | 자바 바이트코드 변환 방법 및 상기 변환을 수행하는 자바인터프리터 |
JP4602047B2 (ja) * | 2004-10-29 | 2010-12-22 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
JP4486483B2 (ja) * | 2004-11-26 | 2010-06-23 | 古野電気株式会社 | Tdma通信装置 |
US20060200811A1 (en) * | 2005-03-07 | 2006-09-07 | Cheng Stephen M | Method of generating optimised stack code |
US7478224B2 (en) * | 2005-04-15 | 2009-01-13 | Atmel Corporation | Microprocessor access of operand stack as a register file using native instructions |
KR100725393B1 (ko) * | 2005-05-19 | 2007-06-07 | 삼성전자주식회사 | 자바 가상 머신에서 바이트 코드의 수행 시간을 줄이는시스템 및 방법 |
US7669191B1 (en) * | 2005-06-14 | 2010-02-23 | Xilinx, Inc. | Compile-time dispatch of operations on type-safe heterogeneous containers |
US7823151B2 (en) * | 2005-06-15 | 2010-10-26 | Intel Corporation | Method of ensuring the integrity of TLB entries after changing the translation mode of a virtualized operating system without requiring a flush of the TLB |
US7702855B2 (en) * | 2005-08-11 | 2010-04-20 | Cisco Technology, Inc. | Optimizing cached access to stack storage |
US7743370B1 (en) * | 2005-10-17 | 2010-06-22 | Unisys Corporation | System and methods for determination of independence of sub-graphs in a graph-based intermediate representation of program instructions |
US8104034B2 (en) * | 2005-11-30 | 2012-01-24 | Red Hat, Inc. | Purpose domain for in-kernel virtual machine for low overhead startup and low resource usage |
US8429629B2 (en) | 2005-11-30 | 2013-04-23 | Red Hat, Inc. | In-kernel virtual machine for low overhead startup and low resource usage |
US8612970B2 (en) * | 2005-11-30 | 2013-12-17 | Red Hat, Inc. | Purpose domain for low overhead virtual machines |
US7502029B2 (en) * | 2006-01-17 | 2009-03-10 | Silicon Integrated Systems Corp. | Instruction folding mechanism, method for performing the same and pixel processing system employing the same |
US8099724B2 (en) * | 2006-02-28 | 2012-01-17 | Oracle America, Inc. | Fast patch-based method calls |
US20070288909A1 (en) * | 2006-06-07 | 2007-12-13 | Hong Kong Applied Science and Technology Research Institute Company Limited | Hardware JavaTM Bytecode Translator |
US7756911B2 (en) * | 2006-06-09 | 2010-07-13 | International Business Machines Corporation | Method and system for executing a task and medium storing a program therefor |
EP1887462A1 (en) * | 2006-07-26 | 2008-02-13 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device, memory circuit, and machine language program generation device, and method for operating semiconductor device and memory circuit |
DE102006041002B4 (de) * | 2006-08-31 | 2009-01-02 | Infineon Technologies Ag | Verfahren, um ein Programm an einen Zwischenspeicher anzupassen, und Schaltungsanordnung |
US8613080B2 (en) | 2007-02-16 | 2013-12-17 | Veracode, Inc. | Assessment and analysis of software security flaws in virtual machines |
US7698534B2 (en) * | 2007-02-21 | 2010-04-13 | Arm Limited | Reordering application code to improve processing performance |
DE102007039425A1 (de) * | 2007-08-21 | 2009-02-26 | Beckhoff Automation Gmbh | Steuerknoten und Steuerung |
US7836282B2 (en) * | 2007-12-20 | 2010-11-16 | International Business Machines Corporation | Method and apparatus for performing out of order instruction folding and retirement |
CN101236489B (zh) * | 2008-02-26 | 2011-04-20 | 北京深思洛克软件技术股份有限公司 | 虚拟硬件系统及其指令执行方法、以及虚拟机 |
US8522015B2 (en) * | 2008-06-27 | 2013-08-27 | Microsoft Corporation | Authentication of binaries in memory with proxy code execution |
JP5355573B2 (ja) * | 2008-08-07 | 2013-11-27 | 三菱電機株式会社 | 半導体集積回路装置及び設備機器制御装置 |
US7853827B2 (en) * | 2008-08-29 | 2010-12-14 | International Business Machines Corporation | Isotropic processor |
US10802990B2 (en) * | 2008-10-06 | 2020-10-13 | International Business Machines Corporation | Hardware based mandatory access control |
US8321878B2 (en) | 2008-10-09 | 2012-11-27 | Microsoft Corporation | Virtualized storage assignment method |
US20100186024A1 (en) * | 2009-01-21 | 2010-07-22 | Telefonaktiebolaget Lm Ericsson (Publ) | System and Method of Invoking Multiple Remote Operations |
US8209523B2 (en) * | 2009-01-22 | 2012-06-26 | Intel Mobile Communications GmbH | Data moving processor |
US8312219B2 (en) * | 2009-03-02 | 2012-11-13 | International Business Machines Corporation | Hybrid caching techniques and garbage collection using hybrid caching techniques |
US7712093B1 (en) | 2009-03-19 | 2010-05-04 | International Business Machines Corporation | Determining intra-procedural object flow using enhanced stackmaps |
US9003377B2 (en) | 2010-01-07 | 2015-04-07 | Microsoft Technology Licensing, Llc | Efficient resumption of co-routines on a linear stack |
EP2482184A1 (en) * | 2011-02-01 | 2012-08-01 | Irdeto B.V. | Adaptive obfuscated virtual machine |
US9396117B2 (en) * | 2012-01-09 | 2016-07-19 | Nvidia Corporation | Instruction cache power reduction |
US9286063B2 (en) | 2012-02-22 | 2016-03-15 | Veracode, Inc. | Methods and systems for providing feedback and suggested programming methods |
US9552032B2 (en) | 2012-04-27 | 2017-01-24 | Nvidia Corporation | Branch prediction power reduction |
US9547358B2 (en) | 2012-04-27 | 2017-01-17 | Nvidia Corporation | Branch prediction power reduction |
WO2013187864A1 (en) * | 2012-06-11 | 2013-12-19 | Empire Technology Development Llc | Modulating dynamic optimizations of a computer program |
US9189399B2 (en) | 2012-11-21 | 2015-11-17 | Advanced Micro Devices, Inc. | Stack cache management and coherence techniques |
US9734059B2 (en) | 2012-11-21 | 2017-08-15 | Advanced Micro Devices, Inc. | Methods and apparatus for data cache way prediction based on classification as stack data |
RU2522019C1 (ru) | 2012-12-25 | 2014-07-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ обнаружения угроз в коде, исполняемом виртуальной машиной |
US8943462B2 (en) * | 2013-06-28 | 2015-01-27 | Sap Se | Type instances |
US10649775B2 (en) * | 2013-07-15 | 2020-05-12 | Texas Instrum Ents Incorporated | Converting a stream of data using a lookaside buffer |
WO2015057828A1 (en) | 2013-10-15 | 2015-04-23 | Mill Computing, Inc. | Computer processor employing cache memory storing backless cache lines |
CN104318135B (zh) * | 2014-10-27 | 2017-04-05 | 中国科学院信息工程研究所 | 一种基于可信执行环境的Java代码安全动态载入方法 |
US9460284B1 (en) * | 2015-06-12 | 2016-10-04 | Bitdefender IPR Management Ltd. | Behavioral malware detection using an interpreter virtual machine |
US10564929B2 (en) * | 2016-09-01 | 2020-02-18 | Wave Computing, Inc. | Communication between dataflow processing units and memories |
US11036509B2 (en) | 2015-11-03 | 2021-06-15 | Intel Corporation | Enabling removal and reconstruction of flag operations in a processor |
US20170123799A1 (en) * | 2015-11-03 | 2017-05-04 | Intel Corporation | Performing folding of immediate data in a processor |
US10191745B2 (en) * | 2017-03-31 | 2019-01-29 | Intel Corporation | Optimized call-return and binary translation |
US10915320B2 (en) | 2018-12-21 | 2021-02-09 | Intel Corporation | Shift-folding for efficient load coalescing in a binary translation based processor |
US11526357B2 (en) | 2019-01-21 | 2022-12-13 | Rankin Labs, Llc | Systems and methods for controlling machine operations within a multi-dimensional memory space |
US10901739B2 (en) * | 2019-01-21 | 2021-01-26 | Rankin Labs, Llc | Systems and methods for controlling machine operations using stack entries comprising instruction configuration parameters |
KR102263692B1 (ko) * | 2019-12-30 | 2021-06-14 | 충남대학교 산학협력단 | 이더리움 스마트계약 가상머신 바이트코드 보안성 향상 방법 |
US11809839B2 (en) | 2022-01-18 | 2023-11-07 | Robert Lyden | Computer language and code for application development and electronic and optical communication |
CN115686759B (zh) * | 2023-01-04 | 2023-04-07 | 恒丰银行股份有限公司 | 一种计算虚拟机唯一识别码的方法及系统 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3735363A (en) * | 1971-04-07 | 1973-05-22 | Burroughs Corp | Information processing system employing stored microprogrammed processors and access free field memories |
US3889243A (en) * | 1973-10-18 | 1975-06-10 | Ibm | Stack mechanism for a data processor |
JPS5569855A (en) * | 1978-11-20 | 1980-05-26 | Panafacom Ltd | Data processing system |
US4439828A (en) * | 1981-07-27 | 1984-03-27 | International Business Machines Corp. | Instruction substitution mechanism in an instruction handling unit of a data processing system |
US4530049A (en) * | 1982-02-11 | 1985-07-16 | At&T Bell Laboratories | Stack cache with fixed size stack frames |
US5043870A (en) * | 1982-02-24 | 1991-08-27 | At&T Bell Laboratories | Computer with automatic mapping of memory contents into machine registers during program execution |
US4849880A (en) * | 1985-11-18 | 1989-07-18 | John Fluke Mfg. Co., Inc. | Virtual machine programming system |
US4811208A (en) * | 1986-05-16 | 1989-03-07 | Intel Corporation | Stack frame cache on a microprocessor chip |
US5313614A (en) * | 1988-12-06 | 1994-05-17 | At&T Bell Laboratories | Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems |
US5187793A (en) * | 1989-01-09 | 1993-02-16 | Intel Corporation | Processor with hierarchal memory and using meta-instructions for software control of loading, unloading and execution of machine instructions stored in the cache |
US4951194A (en) * | 1989-01-23 | 1990-08-21 | Tektronix, Inc. | Method for reducing memory allocations and data copying operations during program calling sequences |
US5107457A (en) * | 1989-04-03 | 1992-04-21 | The Johns Hopkins University | Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack |
US5359507A (en) * | 1989-04-07 | 1994-10-25 | Mitsubishi Denki Kabushiki Kaisha | Sequence controller |
JP2818249B2 (ja) * | 1990-03-30 | 1998-10-30 | 株式会社東芝 | 電子計算機 |
US5471591A (en) * | 1990-06-29 | 1995-11-28 | Digital Equipment Corporation | Combined write-operand queue and read-after-write dependency scoreboard |
US5448707A (en) * | 1991-10-29 | 1995-09-05 | Intel Corporation | Mechanism to protect data saved on a local register cache during inter-subsystem calls and returns |
US5522051A (en) * | 1992-07-29 | 1996-05-28 | Intel Corporation | Method and apparatus for stack manipulation in a pipelined processor |
US5471602A (en) * | 1992-07-31 | 1995-11-28 | Hewlett-Packard Company | System and method of scoreboarding individual cache line segments |
US5367650A (en) * | 1992-07-31 | 1994-11-22 | Intel Corporation | Method and apparauts for parallel exchange operation in a pipelined processor |
WO1994027214A1 (en) * | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding sequences of guest instructions for a host computer |
US5499352A (en) * | 1993-09-30 | 1996-03-12 | Intel Corporation | Floating point register alias table FXCH and retirement floating point register array |
US5548776A (en) * | 1993-09-30 | 1996-08-20 | Intel Corporation | N-wide bypass for data dependencies within register alias table |
JPH07114473A (ja) * | 1993-10-19 | 1995-05-02 | Fujitsu Ltd | コンパイラの命令列最適化方法 |
US5604877A (en) * | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for resolving return from subroutine instructions in a computer processor |
DE4435183C2 (de) * | 1994-09-30 | 2000-04-20 | Siemens Ag | Verfahren zum Betrieb eines Magnetresonanzgeräts |
US5748964A (en) * | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
US5600726A (en) * | 1995-04-07 | 1997-02-04 | Gemini Systems, L.L.C. | Method for creating specific purpose rule-based n-bit virtual machines |
US5634118A (en) * | 1995-04-10 | 1997-05-27 | Exponential Technology, Inc. | Splitting a floating-point stack-exchange instruction for merging into surrounding instructions by operand translation |
US5862370A (en) * | 1995-09-27 | 1999-01-19 | Vlsi Technology, Inc. | Data processor system with instruction substitution filter for deimplementing instructions |
US5765035A (en) * | 1995-11-20 | 1998-06-09 | Advanced Micro Devices, Inc. | Recorder buffer capable of detecting dependencies between accesses to a pair of caches |
US5657486A (en) * | 1995-12-07 | 1997-08-12 | Teradyne, Inc. | Automatic test equipment with pipelined sequencer |
US5699537A (en) * | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
US5761408A (en) * | 1996-01-16 | 1998-06-02 | Parasoft Corporation | Method and system for generating a computer program test suite using dynamic symbolic execution |
-
1997
- 1997-01-23 US US08/786,351 patent/US6026485A/en not_active Expired - Lifetime
- 1997-01-23 JP JP52705397A patent/JP3801643B2/ja not_active Expired - Lifetime
- 1997-01-23 DE DE69738810T patent/DE69738810D1/de not_active Expired - Lifetime
- 1997-01-23 US US08/788,807 patent/US6021469A/en not_active Expired - Lifetime
- 1997-01-23 KR KR1019980705674A patent/KR100529416B1/ko not_active IP Right Cessation
- 1997-01-23 EP EP97904872A patent/EP0976030B1/en not_active Expired - Lifetime
- 1997-01-23 WO PCT/US1997/001221 patent/WO1997027536A1/en active IP Right Grant
- 1997-01-23 US US08/786,955 patent/US6125439A/en not_active Expired - Lifetime
-
2006
- 2006-02-28 JP JP2006051700A patent/JP4171496B2/ja not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014194755A (ja) * | 2013-03-15 | 2014-10-09 | Intel Corp | 複数の試験ソースに対するor試験及びand試験機能を提供するために命令をフュージングする方法及び装置 |
JP2019519865A (ja) * | 2016-07-08 | 2019-07-11 | エイアールエム リミテッド | 並べ替え動作を実行するための装置および方法 |
US11036502B2 (en) | 2016-07-08 | 2021-06-15 | Arm Limited | Apparatus and method for performing a rearrangement operation |
JP7084882B2 (ja) | 2016-07-08 | 2022-06-15 | アーム・リミテッド | 並べ替え動作を実行するための装置および方法 |
Also Published As
Publication number | Publication date |
---|---|
WO1997027536A1 (en) | 1997-07-31 |
EP0976030B1 (en) | 2008-07-02 |
KR100529416B1 (ko) | 2006-01-27 |
JP2000515269A (ja) | 2000-11-14 |
DE69738810D1 (de) | 2008-08-14 |
KR19990081956A (ko) | 1999-11-15 |
EP0976030A1 (en) | 2000-02-02 |
US6026485A (en) | 2000-02-15 |
US6125439A (en) | 2000-09-26 |
JP4171496B2 (ja) | 2008-10-22 |
JP3801643B2 (ja) | 2006-07-26 |
US6021469A (en) | 2000-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4171496B2 (ja) | スタックを用いる演算マシンのための命令フォールディング処理 | |
JP3634379B2 (ja) | スタックキャッシングのための方法及び装置 | |
US5925123A (en) | Processor for executing instruction sets received from a network or from a local memory | |
US6148391A (en) | System for simultaneously accessing one or more stack elements by multiple functional units using real stack addresses | |
EP0976050B1 (en) | Processor with array access bounds checking | |
US6038643A (en) | Stack management unit and method for a processor having a stack | |
US5970242A (en) | Replicating code to eliminate a level of indirection during execution of an object oriented computer program | |
US7080362B2 (en) | Java virtual machine hardware for RISC and CISC processors | |
JP4485198B2 (ja) | Javaアクセラレータを備えたプロセッサシステム | |
US6076141A (en) | Look-up switch accelerator and method of operating same | |
US6065108A (en) | Non-quick instruction accelerator including instruction identifier and data set storage and method of implementing same | |
KR100618718B1 (ko) | 스택메모리구조에서의캐싱방법및장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080408 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080703 |
|
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: 20080729 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080808 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
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: 20110815 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120815 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120815 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130815 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |