JP6690811B2 - ランアヘッドランタイムゲスト命令変換/デコードプロセスと、ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスとを実施するシステム変換器 - Google Patents
ランアヘッドランタイムゲスト命令変換/デコードプロセスと、ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスとを実施するシステム変換器 Download PDFInfo
- Publication number
- JP6690811B2 JP6690811B2 JP2017503998A JP2017503998A JP6690811B2 JP 6690811 B2 JP6690811 B2 JP 6690811B2 JP 2017503998 A JP2017503998 A JP 2017503998A JP 2017503998 A JP2017503998 A JP 2017503998A JP 6690811 B2 JP6690811 B2 JP 6690811B2
- Authority
- JP
- Japan
- Prior art keywords
- guest
- code
- converter
- instruction
- native
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 98
- 238000013519 translation Methods 0.000 title claims description 96
- 230000008569 process Effects 0.000 title claims description 81
- 238000006243 chemical reaction Methods 0.000 claims description 69
- 239000000872 buffer Substances 0.000 claims description 63
- 238000013507 mapping Methods 0.000 claims description 59
- 230000015654 memory Effects 0.000 description 84
- 238000010586 diagram Methods 0.000 description 46
- 238000005457 optimization Methods 0.000 description 17
- 230000001052 transient effect Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000012546 transfer Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 7
- 241000535595 Dweet mottle virus Species 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 235000019633 pungent taste Nutrition 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- 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
- G06F9/45516—Runtime code conversion or optimisation
-
- 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/3802—Instruction prefetching
-
- 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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
- 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
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
Description
(項目1)
アグノスティックランタイムアーキテクチャのためのシステムであって、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
変換器とを備え、システムエミュレーション/仮想化変換器及びアプリケーションコード変換器がシステムエミュレーションプロセスを実施し、上記システム変換器が、ゲストイメージからのコードを実行するためにシステム及びアプリケーション変換プロセスを実施し、上記システム変換器又は上記システムエミュレータが、
変換/デコードプロセス等のランアヘッドランタイムゲストと、
ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスと、
を実施する、システム。
(項目2)
ゲストコードが上記命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされる、項目1に記載のシステム。
(項目3)
最も頻繁に遭遇するゲスト命令及びそれらのマッピングが低レベルキャッシュ構造に記憶される、項目1に記載のシステム。
(項目4)
マッピングテーブルを用いて、ルックアップされたゲスト命令フォーマットのための等価な命令フォーマットを提供する、項目1に記載のシステム。
(項目5)
上記動的シーケンスブロックベースの命令マッピング構成部が、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
システム変換器とを更に備え、上記システムエミュレーション/仮想化変換器及び上記アプリケーションコード変換器がシステムエミュレーションプロセスを実施し、上記システム変換器が、ゲストイメージからのコードを実行するためにシステム変換プロセスを実施する、項目1に記載のシステム。
(項目6)
上記ゲストコードが、実行のためのアプリケーションコード及びオペレーティングシステム/システム固有のコードを含むゲストイメージを含む、項目1に記載のシステム。
(項目7)
ゲストフェッチバッファに結合された第1のレベルの変換テーブル及び第2のレベルの変換テーブルを含み、上記ゲストコードを対応するネイティブコードに変換するための複数の変換テーブルを更に備える、項目1に記載のシステム。
(項目8)
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
変換器とを備え、システムエミュレーション/仮想化変換器及びアプリケーションコード変換器がシステムエミュレーションプロセスを実施し、上記システム変換器が、ゲストイメージからのコードを実行するためにシステム及びアプリケーション変換プロセスを実施し、上記システム変換器又は上記システムエミュレータが、
変換/デコードプロセス等のランアヘッドランタイムゲストと、
ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスと、
を実施する、マイクロプロセッサ。
(項目9)
ゲストコードが上記命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされる、項目8に記載のマイクロプロセッサ。
(項目10)
最も頻繁に遭遇するゲスト命令及びそれらのマッピングが低レベルキャッシュ構造に記憶される、項目8に記載のマイクロプロセッサ。
(項目11)
マッピングテーブルを用いて、ルックアップされたゲスト命令フォーマットのための等価な命令フォーマットを提供する、項目8に記載のプロセッサ。
(項目12)
上記動的シーケンスブロックベースの命令マッピング構成部は、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
システム変換器とを更に備え、上記システムエミュレーション/仮想化変換器及び上記アプリケーションコード変換器がシステムエミュレーションプロセスを実施し、上記システム変換器が、ゲストイメージからのコードを実行するためにシステム変換プロセスを実施する、項目8に記載のマイクロプロセッサ。
(項目13)
上記ゲストコードが、実行のためのアプリケーションコード及びオペレーティングシステム/システム固有のコードを含むゲストイメージを含むゲストイメージを含む、項目8に記載のマイクロプロセッサ。
(項目14)
ゲストフェッチバッファに結合された第1のレベルの変換テーブル及び第2のレベルの変換テーブルを含み、上記ゲストコードを対応するネイティブコードに変換するための複数の変換テーブルを更に備える、項目8に記載のマイクロプロセッサ。
(項目15)
コア及び複数のキャッシュを有するマイクロプロセッサを備えるコンピュータシステムであって、上記マイクロプロセッサは、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
変換器とを更に備え、システムエミュレーション/仮想化変換器及びアプリケーションコード変換器がシステムエミュレーションプロセスを実施し、上記システム変換器が、ゲストイメージからのコードを実行するためにシステム及びアプリケーション変換プロセスを実施し、上記システム変換器又は上記システムエミュレータが、
変換/デコードプロセス等のランアヘッドランタイムゲストと、
ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスと、
を実施する、コンピュータシステム。
(項目16)
ゲストコードが上記命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされる、項目15に記載のコンピュータシステム。
(項目17)
最も頻繁に遭遇するゲスト命令及びそれらのマッピングが低レベルキャッシュ構造に記憶される、項目15に記載のコンピュータシステム。
(項目18)
マッピングテーブルを用いて、ルックアップされたゲスト命令フォーマットのための等価な命令フォーマットを提供する、項目15に記載のコンピュータシステム。
(項目19)
上記動的シーケンスブロックベースの命令マッピング構成部が、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
システム変換器とを更に備え、上記システムエミュレーション/仮想化変換器及び上記アプリケーションコード変換器がシステムエミュレーションプロセスを実施し、上記システム変換器が、ゲストイメージからのコードを実行するためにシステム変換プロセスを実施する、項目15に記載のコンピュータシステム。
(項目20)
ゲストフェッチバッファに結合された第1のレベルの変換テーブル及び第2のレベルの変換テーブルを含み、上記ゲストコードを対応するネイティブコードに変換するための複数の変換テーブルを更に備える、項目15に記載のコンピュータシステム。
Claims (11)
- アグノスティックランタイムアーキテクチャのためのシステムであって、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
システム変換器とを備え、システムエミュレーション/仮想化変換器及びアプリケーションコード変換器がシステムエミュレーションプロセスを実施し、前記システム変換器が、ゲストイメージからのコードを実行するためにシステム及びアプリケーション変換プロセスを実施し、前記システムエミュレーションプロセス又は前記システム及びアプリケーション変換プロセスが、
ゲストコードを対応するネイティブコードに変換する変換/デコードプロセスと、
前記ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスと、
を含み、
最も頻繁に遭遇するゲスト命令及びそれらのマッピングが低レベルキャッシュ構造に記憶される、
システム。 - マッピングテーブルを用いて、ルックアップされたゲスト命令フォーマットのための等価な命令フォーマットを提供する、請求項1に記載のシステム。
- 前記ゲストコードが、実行のためのアプリケーションコード及びオペレーティングシステム/システム固有のコードを含む、請求項1に記載のシステム。
- ゲストフェッチバッファに結合された第1のレベルの変換テーブル及び第2のレベルの変換テーブルを含み、前記ゲストコードを前記対応するネイティブコードに変換するための複数の変換テーブルを更に備える、請求項1に記載のシステム。
- システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
システム変換器とを備え、システムエミュレーション/仮想化変換器及びアプリケーションコード変換器がシステムエミュレーションプロセスを実施し、前記システム変換器が、ゲストイメージからのコードを実行するためにシステム及びアプリケーション変換プロセスを実施し、前記システムエミュレーションプロセス又は前記システム及びアプリケーション変換プロセスが、
ゲストコードを対応するネイティブコードに変換する変換/デコードプロセスと、
前記ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスと、
を含み、
最も頻繁に遭遇するゲスト命令及びそれらのマッピングが低レベルキャッシュ構造に記憶される、
マイクロプロセッサ。 - マッピングテーブルを用いて、ルックアップされたゲスト命令フォーマットのための等価な命令フォーマットを提供する、請求項5に記載のマイクロプロセッサ。
- 前記ゲストコードが、実行のためのアプリケーションコード及びオペレーティングシステム/システム固有のコードを含む、請求項5に記載のマイクロプロセッサ。
- ゲストフェッチバッファに結合された第1のレベルの変換テーブル及び第2のレベルの変換テーブルを含み、前記ゲストコードを前記対応するネイティブコードに変換するための複数の変換テーブルを更に備える、請求項5に記載のマイクロプロセッサ。
- コア及び複数のキャッシュを有するマイクロプロセッサを備えるコンピュータシステムであって、前記マイクロプロセッサは、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
システム変換器とを更に備え、システムエミュレーション/仮想化変換器及びアプリケーションコード変換器がシステムエミュレーションプロセスを実施し、前記システム変換器が、ゲストイメージからのコードを実行するためにシステム及びアプリケーション変換プロセスを実施し、前記システムエミュレーションプロセス又は前記システム及びアプリケーション変換プロセスが、
ゲストコードを対応するネイティブコードに変換する変換/デコードプロセスと、
前記ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスと、
を含み、
最も頻繁に遭遇するゲスト命令及びそれらのマッピングが低レベルキャッシュ構造に記憶される、
コンピュータシステム。 - マッピングテーブルを用いて、ルックアップされたゲスト命令フォーマットのための等価な命令フォーマットを提供する、請求項9に記載のコンピュータシステム。
- ゲストフェッチバッファに結合された第1のレベルの変換テーブル及び第2のレベルの変換テーブルを含み、前記ゲストコードを前記対応するネイティブコードに変換するための複数の変換テーブルを更に備える、請求項9に記載のコンピュータシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462029383P | 2014-07-25 | 2014-07-25 | |
US62/029,383 | 2014-07-25 | ||
US14/807,353 US10353680B2 (en) | 2014-07-25 | 2015-07-23 | System converter that implements a run ahead run time guest instruction conversion/decoding process and a prefetching process where guest code is pre-fetched from the target of guest branches in an instruction sequence |
US14/807,353 | 2015-07-23 | ||
PCT/US2015/042032 WO2016014962A1 (en) | 2014-07-25 | 2015-07-24 | A system converter that implements a run ahead run time guest instruction conversion/decoding process and a prefetching process where guest code is pre-fetched from the target of guest branches in an instruction sequence |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017528802A JP2017528802A (ja) | 2017-09-28 |
JP6690811B2 true JP6690811B2 (ja) | 2020-04-28 |
Family
ID=55163847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017503998A Active JP6690811B2 (ja) | 2014-07-25 | 2015-07-24 | ランアヘッドランタイムゲスト命令変換/デコードプロセスと、ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスとを実施するシステム変換器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10353680B2 (ja) |
EP (1) | EP3172664B1 (ja) |
JP (1) | JP6690811B2 (ja) |
KR (1) | KR101882346B1 (ja) |
CN (1) | CN106796528B (ja) |
WO (1) | WO2016014962A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275721A1 (en) * | 2012-04-17 | 2013-10-17 | Industrial Technology Research Institute | Reconfigurable instruction encoding method, execution method, and electronic apparatus |
US10353680B2 (en) * | 2014-07-25 | 2019-07-16 | Intel Corporation | System converter that implements a run ahead run time guest instruction conversion/decoding process and a prefetching process where guest code is pre-fetched from the target of guest branches in an instruction sequence |
US11281481B2 (en) | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
KR101882255B1 (ko) * | 2014-07-25 | 2018-07-26 | 소프트 머신즈, 인크. | 변환 룩 어사이드 버퍼를 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현 |
US20160026484A1 (en) * | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | System converter that executes a just in time optimizer for executing code from a guest image |
US9733909B2 (en) | 2014-07-25 | 2017-08-15 | Intel Corporation | System converter that implements a reordering process through JIT (just in time) optimization that ensures loads do not dispatch ahead of other loads that are to the same address |
US9852202B1 (en) * | 2016-09-23 | 2017-12-26 | International Business Machines Corporation | Bandwidth-reduced coherency communication |
US10133655B1 (en) * | 2017-06-12 | 2018-11-20 | Sony Interactive Entertainment Inc. | Emulation of target system using JIT compiler and bypassing translation of selected target code blocks |
US10599571B2 (en) * | 2017-08-07 | 2020-03-24 | Intel Corporation | Instruction prefetch mechanism |
US20190163642A1 (en) | 2017-11-27 | 2019-05-30 | Intel Corporation | Management of the untranslated to translated code steering logic in a dynamic binary translation based processor |
GB2570161B (en) * | 2018-01-16 | 2020-03-25 | Advanced Risc Mach Ltd | Simulation of exclusive instructions |
Family Cites Families (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4456954A (en) | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
AU6629894A (en) | 1993-05-07 | 1994-12-12 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
WO1994027214A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding sequences of guest instructions for a host computer |
US5517651A (en) | 1993-12-29 | 1996-05-14 | Intel Corporation | Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes |
US5708837A (en) * | 1995-06-30 | 1998-01-13 | International Business Machines Corporation | Method and apparatus for register renaming in a computer system using a separate arithmetic available queue |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US5742802A (en) | 1996-02-16 | 1998-04-21 | International Business Machines Corporation | Method and system for efficiently mapping guest instruction in an emulation assist unit |
US6199152B1 (en) | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US6139199A (en) | 1997-06-11 | 2000-10-31 | Sun Microsystems, Inc. | Fast just-in-time (JIT) scheduler |
US6094716A (en) * | 1998-07-14 | 2000-07-25 | Advanced Micro Devices, Inc. | Register renaming in which moves are accomplished by swapping rename tags |
US6662273B1 (en) * | 2000-09-29 | 2003-12-09 | Intel Corporation | Least critical used replacement with critical cache |
US7620955B1 (en) | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
JP3808755B2 (ja) * | 2001-11-07 | 2006-08-16 | 富士通株式会社 | Jitコンパイラを備えた仮想計算機 |
US7203932B1 (en) | 2002-12-30 | 2007-04-10 | Transmeta Corporation | Method and system for using idiom recognition during a software translation process |
US6981128B2 (en) | 2003-04-24 | 2005-12-27 | International Business Machines Corporation | Atomic quad word storage in a simultaneous multithreaded system |
US20050149915A1 (en) | 2003-12-29 | 2005-07-07 | Intel Corporation | Methods and apparatus for optimizing a program undergoing dynamic binary translation using profile information |
US7216220B2 (en) | 2004-07-14 | 2007-05-08 | Stexar Corp. | Microprocessor with customer code store |
US20060026371A1 (en) | 2004-07-30 | 2006-02-02 | Chrysos George Z | Method and apparatus for implementing memory order models with order vectors |
US7302527B2 (en) | 2004-11-12 | 2007-11-27 | International Business Machines Corporation | Systems and methods for executing load instructions that avoid order violations |
US9058292B2 (en) * | 2004-12-29 | 2015-06-16 | Intel Corporation | System and method for one step address translation of graphics addresses in virtualization |
US7734895B1 (en) | 2005-04-28 | 2010-06-08 | Massachusetts Institute Of Technology | Configuring sets of processor cores for processing instructions |
US7450131B2 (en) | 2005-09-30 | 2008-11-11 | Intel Corporation | Memory layout for re-ordering instructions using pointers |
US7913236B2 (en) | 2006-09-29 | 2011-03-22 | Intel Corporation | Method and apparatus for performing dynamic optimization for software transactional memory |
CN107368285B (zh) | 2006-11-14 | 2020-10-09 | 英特尔公司 | 多线程架构 |
US8327354B1 (en) | 2007-05-31 | 2012-12-04 | Hewlett-Packard Development Company, L.P. | Virtualization with binary translation |
US8453128B2 (en) | 2007-09-28 | 2013-05-28 | Oracle America, Inc. | Method and system for implementing a just-in-time compiler |
US7844954B2 (en) * | 2007-11-06 | 2010-11-30 | Vmware, Inc. | Using branch instruction counts to facilitate replay of virtual machine instruction execution |
US9189233B2 (en) | 2008-11-24 | 2015-11-17 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US8959277B2 (en) * | 2008-12-12 | 2015-02-17 | Oracle America, Inc. | Facilitating gated stores without data bypass |
US8078854B2 (en) | 2008-12-12 | 2011-12-13 | Oracle America, Inc. | Using register rename maps to facilitate precise exception semantics |
US8667476B1 (en) | 2009-01-20 | 2014-03-04 | Adaptmicrosys LLC | Instruction grouping and ungrouping apparatus and method for an adaptive microprocessor system |
US8060722B2 (en) | 2009-03-27 | 2011-11-15 | Vmware, Inc. | Hardware assistance for shadow page table coherence with guest page mappings |
US8443156B2 (en) | 2009-03-27 | 2013-05-14 | Vmware, Inc. | Virtualization system using hardware assistance for shadow page table coherence |
US9766911B2 (en) | 2009-04-24 | 2017-09-19 | Oracle America, Inc. | Support for a non-native application |
US8099566B2 (en) | 2009-05-15 | 2012-01-17 | Oracle America, Inc. | Load/store ordering in a threaded out-of-order processor |
US8335911B2 (en) | 2009-05-21 | 2012-12-18 | Oracle America, Inc. | Dynamic allocation of resources in a threaded, heterogeneous processor |
TWI389026B (zh) * | 2009-06-08 | 2013-03-11 | Rdc Semiconductor Co Ltd | 暫存器更名表的回復方法與回復系統 |
US9158566B2 (en) | 2009-09-18 | 2015-10-13 | International Business Machines Corporation | Page mapped spatially aware emulation of computer instruction set |
US8949106B2 (en) | 2009-09-18 | 2015-02-03 | International Business Machines Corporation | Just in time compiler in spatially aware emulation of a guest computer instruction set |
US8364461B2 (en) | 2009-11-09 | 2013-01-29 | International Business Machines Corporation | Reusing invalidated traces in a system emulator |
US8984231B2 (en) * | 2009-12-22 | 2015-03-17 | Intel Corporation | Methods and apparatus to perform adaptive pre-fetch operations in managed runtime environments |
US8595471B2 (en) | 2010-01-22 | 2013-11-26 | Via Technologies, Inc. | Executing repeat load string instruction with guaranteed prefetch microcode to prefetch into cache for loading up to the last value in architectural register |
US9658890B2 (en) | 2010-10-08 | 2017-05-23 | Microsoft Technology Licensing, Llc | Runtime agnostic representation of user code for execution with selected execution runtime |
KR101581702B1 (ko) * | 2010-12-23 | 2016-01-11 | 인텔 코포레이션 | 테스트, 검증, 및 디버그 아키텍처 |
WO2012103373A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Variable caching structure for managing physical storage |
WO2012103253A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Multilevel conversion table cache for translating guest instructions to native instructions |
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 |
CN103620547B (zh) * | 2011-01-27 | 2018-07-10 | 英特尔公司 | 使用处理器的转换后备缓冲器的基于客户指令到本机指令范围的映射 |
WO2012103367A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Guest to native block address mappings and management of native code storage |
WO2012103359A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
US8673689B2 (en) * | 2011-01-28 | 2014-03-18 | Marvell World Trade Ltd. | Single layer BGA substrate process |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US8756589B2 (en) | 2011-06-14 | 2014-06-17 | Microsoft Corporation | Selectable dual-mode JIT compiler for SIMD instructions |
WO2013077872A1 (en) * | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer and dependency reordering method |
KR101703401B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
US9558092B2 (en) * | 2011-12-12 | 2017-01-31 | Microsoft Technology Licensing, Llc | Runtime-agnostic management of applications |
JP5840014B2 (ja) * | 2012-02-01 | 2016-01-06 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コンパイル方法、プログラムおよび情報処理装置 |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
CN104303168B (zh) | 2012-04-25 | 2016-12-07 | 英派尔科技开发有限公司 | 用于灵活资源需求应用的认证 |
WO2013188306A1 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
US10157063B2 (en) | 2012-09-28 | 2018-12-18 | Intel Corporation | Instruction and logic for optimization level aware branch prediction |
US9141361B2 (en) * | 2012-09-30 | 2015-09-22 | Intel Corporation | Method and apparatus for performance efficient ISA virtualization using dynamic partial binary translation |
US9424046B2 (en) * | 2012-10-11 | 2016-08-23 | Soft Machines Inc. | Systems and methods for load canceling in a processor that is connected to an external interconnect fabric |
US8856769B2 (en) | 2012-10-23 | 2014-10-07 | Yong-Kyu Jung | Adaptive instruction prefetching and fetching memory system apparatus and method for microprocessor system |
US9569342B2 (en) | 2012-12-20 | 2017-02-14 | Microsoft Technology Licensing, Llc | Test strategy for profile-guided code execution optimizers |
US9690640B2 (en) | 2013-09-26 | 2017-06-27 | Intel Corporation | Recovery from multiple data errors |
JP2016534431A (ja) | 2013-10-25 | 2016-11-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | ロード/記憶ユニット及びデータキャッシュの順序付け及びバンド幅の向上 |
US9183018B2 (en) | 2013-12-30 | 2015-11-10 | Andrew T Jennings | Dynamic on/off just-in-time compilation in a dynamic translator using instruction code translation |
US9524178B2 (en) | 2013-12-30 | 2016-12-20 | Unisys Corporation | Defining an instruction path to be compiled by a just-in-time (JIT) compiler |
US9213563B2 (en) | 2013-12-30 | 2015-12-15 | Unisys Corporation | Implementing a jump instruction in a dynamic translator that uses instruction code translation and just-in-time compilation |
US9201635B2 (en) * | 2013-12-30 | 2015-12-01 | Unisys Corporation | Just-in-time dynamic translation for translation, compilation, and execution of non-native instructions |
US9703948B2 (en) * | 2014-03-28 | 2017-07-11 | Intel Corporation | Return-target restrictive return from procedure instructions, processors, methods, and systems |
US9483295B2 (en) | 2014-03-31 | 2016-11-01 | International Business Machines Corporation | Transparent dynamic code optimization |
US9514045B2 (en) | 2014-04-04 | 2016-12-06 | International Business Machines Corporation | Techniques for implementing barriers to efficiently support cumulativity in a weakly-ordered memory system |
US10353680B2 (en) * | 2014-07-25 | 2019-07-16 | Intel Corporation | System converter that implements a run ahead run time guest instruction conversion/decoding process and a prefetching process where guest code is pre-fetched from the target of guest branches in an instruction sequence |
US20160026486A1 (en) | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | An allocation and issue stage for reordering a microinstruction sequence into an optimized microinstruction sequence to implement an instruction set agnostic runtime architecture |
US9733909B2 (en) | 2014-07-25 | 2017-08-15 | Intel Corporation | System converter that implements a reordering process through JIT (just in time) optimization that ensures loads do not dispatch ahead of other loads that are to the same address |
KR101882255B1 (ko) * | 2014-07-25 | 2018-07-26 | 소프트 머신즈, 인크. | 변환 룩 어사이드 버퍼를 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현 |
US20160026484A1 (en) | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | System converter that executes a just in time optimizer for executing code from a guest image |
US11281481B2 (en) | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
US10358565B2 (en) | 2014-09-26 | 2019-07-23 | Lg Chem, Ltd. | UV-curable ink composition, method for producing bezel pattern of display substrate using same, and bezel pattern produced thereby |
-
2015
- 2015-07-23 US US14/807,353 patent/US10353680B2/en active Active
- 2015-07-24 CN CN201580052960.5A patent/CN106796528B/zh not_active Expired - Fee Related
- 2015-07-24 WO PCT/US2015/042032 patent/WO2016014962A1/en active Application Filing
- 2015-07-24 JP JP2017503998A patent/JP6690811B2/ja active Active
- 2015-07-24 KR KR1020177003193A patent/KR101882346B1/ko active IP Right Grant
- 2015-07-24 EP EP15825094.4A patent/EP3172664B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3172664A4 (en) | 2018-04-11 |
CN106796528B (zh) | 2021-08-24 |
EP3172664B1 (en) | 2021-12-08 |
KR101882346B1 (ko) | 2018-07-27 |
US10353680B2 (en) | 2019-07-16 |
US20160026445A1 (en) | 2016-01-28 |
JP2017528802A (ja) | 2017-09-28 |
CN106796528A (zh) | 2017-05-31 |
WO2016014962A1 (en) | 2016-01-28 |
KR20170028407A (ko) | 2017-03-13 |
EP3172664A1 (en) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6690812B2 (ja) | 複数の変換テーブルを用いた命令セットアグノスティックランタイムアーキテクチャの実施 | |
KR101900763B1 (ko) | 명령어 집합의 애그노스틱 런타임 아키텍처를 구현하도록 마이크로명령어 시퀀스를 최적화된 마이크로명령어 시퀀스로 재정렬하는 할당 및 발행 스테이지 | |
JP6690811B2 (ja) | ランアヘッドランタイムゲスト命令変換/デコードプロセスと、ゲストコードが、命令シーケンスにおけるゲスト分岐のターゲットからプリフェッチされるプリフェッチプロセスとを実施するシステム変換器 | |
JP6690813B2 (ja) | 変換ルックアサイドバッファを用いた命令セットアグノスティックランタイムアーキテクチャの実施 | |
JP6641556B2 (ja) | ロードが同じアドレスに対する他のロードの前にディスパッチしないことを確実にするjit最適化を通じたリオーダリングプロセスを実施するシステム変換器 | |
JP6683321B2 (ja) | ゲストイメージからのコードを実行するための実行時オプティマイザを実行するシステム変換器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20170512 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170524 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180723 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190716 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190730 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191112 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200212 |
|
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: 20200310 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200325 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6690811 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |