JP2017527890A - 変換ルックアサイドバッファを用いた命令セットアグノスティックランタイムアーキテクチャの実施 - Google Patents
変換ルックアサイドバッファを用いた命令セットアグノスティックランタイムアーキテクチャの実施 Download PDFInfo
- Publication number
- JP2017527890A JP2017527890A JP2017504010A JP2017504010A JP2017527890A JP 2017527890 A JP2017527890 A JP 2017527890A JP 2017504010 A JP2017504010 A JP 2017504010A JP 2017504010 A JP2017504010 A JP 2017504010A JP 2017527890 A JP2017527890 A JP 2017527890A
- Authority
- JP
- Japan
- Prior art keywords
- guest
- native
- translation
- cache
- 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.)
- Granted
Links
- 230000009466 transformation Effects 0.000 title description 6
- 238000013519 translation Methods 0.000 claims abstract description 121
- 238000000034 method Methods 0.000 claims abstract description 71
- 238000006243 chemical reaction Methods 0.000 claims abstract description 60
- 238000013507 mapping Methods 0.000 claims abstract description 56
- 230000008569 process Effects 0.000 claims abstract description 50
- 230000004044 response Effects 0.000 claims abstract description 6
- 230000015654 memory Effects 0.000 claims description 89
- 230000006870 function Effects 0.000 claims description 18
- 238000012546 transfer Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 48
- 238000005457 optimization Methods 0.000 description 17
- 230000001052 transient effect Effects 0.000 description 13
- 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
- 238000004364 calculation method Methods 0.000 description 3
- 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
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000000977 initiatory effect Effects 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
- 230000003362 replicative effect Effects 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
- 238000005538 encapsulation Methods 0.000 description 1
- 206010016531 fetishism Diseases 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000000844 transformation Methods 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/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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
-
- 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/45533—Hypervisors; Virtual machine monitors
-
- 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/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
-
- 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
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)
Abstract
Description
Claims (20)
- アグノスティックランタイムアーキテクチャのためのシステムであって、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
変換器とを備え、システムエミュレーション/仮想化変換器及びアプリケーションコード変換器がシステムエミュレーションプロセスを実施し、前記システム変換器が、ゲストイメージからのコードを実行するためにシステム及びアプリケーション変換プロセスを実施し、前記システム変換器又は前記システムエミュレータは、
複数のゲスト分岐命令を含む複数のゲスト命令にアクセスし、
前記複数のゲスト命令をゲスト命令ブロックにアセンブルし、
前記ゲスト命令ブロックを対応するネイティブ変換ブロックに変換し、
前記ネイティブ変換ブロックをネイティブキャッシュに記憶し、
前記ゲスト命令ブロックと対応するネイティブ変換ブロックとのマッピングを変換ルックアサイドバッファに記憶し、
ゲスト命令のための後続の要求時に、前記変換ルックアサイドバッファをインデックス付けして、ヒットが発生したか否かを判断し、前記マッピングは前記ゲスト命令が前記ネイティブキャッシュ内に対応する変換されたネイティブ命令を有することを示し、
前記ヒットに応答して、前記変換されたネイティブ命令を実行のために転送する、システム。 - ハードウェアフェッチロジック構成部が、前記プロセッサと独立して前記複数のゲスト命令をフェッチする、請求項1に記載のシステム。
- 前記変換ルックアサイドバッファがキャッシュを備え、前記キャッシュが、交換ポリシを用いて、ゲスト命令ブロックと、前記キャッシュに記憶された対応するネイティブ変換ブロックとの最も頻繁に遭遇するマッピングを維持する、請求項1に記載のシステム。
- 変換バッファがシステムメモリ内に維持され、前記変換ルックアサイドバッファと前記変換バッファとの間でキャッシュコヒーレンシが維持される、請求項1に記載のシステム。
- 前記変換バッファが前記変換ルックアサイドバッファよりも大きく、前記変換バッファと前記変換ルックアサイドバッファとの間のコヒーレンシを維持するために書き戻しポリシが用いられる、請求項4に記載のシステム。
- 前記変換ルックアサイドバッファが、前記プロセッサのパイプラインに結合された高速低レイテンシキャッシュメモリとして実施される、請求項1に記載のシステム。
- アグノスティックランタイムアーキテクチャを有するマイクロプロセッサであって、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
変換器とを備え、システムエミュレーション/仮想化変換器及びアプリケーションコード変換器がシステムエミュレーションプロセスを実施し、前記システム変換器が、ゲストイメージからのコードを実行するためにシステム及びアプリケーション変換プロセスを実施し、前記システム変換器又は前記システムエミュレータは、
複数のゲスト分岐命令を含む複数のゲスト命令にアクセスし、
前記複数のゲスト命令をゲスト命令ブロックにアセンブルし、
前記ゲスト命令ブロックを対応するネイティブ変換ブロックに変換し、
前記ネイティブ変換ブロックをネイティブキャッシュに記憶し、
前記ゲスト命令ブロックと対応するネイティブ変換ブロックとのマッピングを変換ルックアサイドバッファに記憶し、
ゲスト命令のための後続の要求時に、前記変換ルックアサイドバッファをインデックス付けして、ヒットが発生したか否かを判断し、前記マッピングは前記ゲスト命令が前記ネイティブキャッシュ内に対応する変換されたネイティブ命令を有することを示し、
前記ヒットに応答して、前記変換されたネイティブ命令を実行のために転送する、マイクロプロセッサ。 - ハードウェアフェッチロジック構成部が、前記プロセッサと独立した前記複数のゲスト命令等である、請求項7に記載のマイクロプロセッサ。
- 前記変換ルックアサイドバッファがキャッシュを備え、前記キャッシュが、交換ポリシを用いて、前記キャッシュに記憶された最も頻繁に遭遇するマッピングを維持する、請求項7に記載のマイクロプロセッサ。
- 変換バッファがシステムメモリ内に維持され、前記変換ルックアサイドバッファと前記変換バッファとの間でキャッシュコヒーレンシが維持される、請求項7に記載のマイクロプロセッサ。
- 前記変換バッファが前記変換ルックアサイドバッファよりも大きく、前記変換バッファと前記変換ルックアサイドバッファとの間のコヒーレンシを維持するために書き戻しポリシが用いられる、請求項10に記載のマイクロプロセッサ。
- 犠牲キャッシュとして実装される変換ルックアサイドバッファを更に備える、請求項7に記載のマイクロプロセッサ。
- 命令を変換する方法を実施するマイクロプロセッサであって、
システムエミュレーション/仮想化変換器と、
アプリケーションコード変換器と、
変換器とを備え、システムエミュレーション/仮想化変換器及びアプリケーションコード変換器がシステムエミュレーションプロセスを実施し、前記システム変換器が、ゲストイメージからのコードを実行するためにシステム及びアプリケーション変換プロセスを実施し、前記システム変換器又は前記システムエミュレータは、
複数のゲスト分岐命令を含む複数のゲスト命令にアクセスし、
前記複数のゲスト命令をゲスト命令ブロックにアセンブルし、
前記ゲスト命令ブロックを対応するネイティブ変換ブロックに変換し、
前記ネイティブ変換ブロックをネイティブキャッシュに記憶し、
前記ゲスト命令ブロックと対応するネイティブ変換ブロックとのマッピングを変換ルックアサイドバッファに記憶し、
ゲスト命令のための後続の要求時に、前記変換ルックアサイドバッファをインデックス付けして、ヒットが発生したか否かを判断し、前記マッピングは前記ゲスト命令が前記ネイティブキャッシュ内に対応する変換されたネイティブ命令を有することを示し、
前記ヒットに応答して、前記変換されたネイティブ命令を実行のために転送する、マイクロプロセッサ。 - ハードウェアフェッチロジック構成部が、前記プロセッサと独立した前記複数のゲスト命令等である、請求項13に記載のマイクロプロセッサ。
- 前記変換ルックアサイドバッファがキャッシュを備え、前記キャッシュが、交換ポリシを用いて、前記キャッシュに記憶された最も頻繁に遭遇するネイティブ変換ブロックを維持する、請求項13に記載のマイクロプロセッサ。
- 変換バッファがシステムメモリ内に維持され、前記変換ルックアサイドバッファと前記変換バッファとの間でキャッシュコヒーレンシが維持される、請求項13に記載のマイクロプロセッサ。
- 前記変換バッファが前記変換ルックアサイドバッファよりも大きく、前記変換バッファと前記変換ルックアサイドバッファとの間のコヒーレンシを維持するために書き戻しポリシが用いられる、請求項16に記載のマイクロプロセッサ。
- 前記変換ルックアサイドバッファは、前記プロセッサのパイプラインに結合された高速低レイテンシキャッシュメモリとして実施される、請求項13に記載のマイクロプロセッサ。
- 前記複数のゲスト命令は、Java(登録商標)、JavaScript(登録商標)、x86、MIPS又はSPARCを含む、請求項13に記載の方法。
- 前記マイクロプロセッサ仮想命令セットプロセッサが、Java、JavaScript、x86、MIPS又はSPARCを含む前記ゲスト命令のうちの1つと共に機能することができ、その後、Java、JavaScript、x86、MIPS又はSPARCを含む前記ゲスト命令のうちの異なるものと共に機能することができる、請求項19に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462029383P | 2014-07-25 | 2014-07-25 | |
US62/029,383 | 2014-07-25 | ||
PCT/US2015/041851 WO2016014867A1 (en) | 2014-07-25 | 2015-07-23 | Using a conversion look aside buffer to implement an instruction set agnostic runtime architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017527890A true JP2017527890A (ja) | 2017-09-21 |
JP6690813B2 JP6690813B2 (ja) | 2020-04-28 |
Family
ID=55163806
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017504010A Expired - Fee Related JP6690813B2 (ja) | 2014-07-25 | 2015-07-23 | 変換ルックアサイドバッファを用いた命令セットアグノスティックランタイムアーキテクチャの実施 |
JP2017504000A Pending JP2017527019A (ja) | 2014-07-25 | 2015-07-23 | 命令セットアグノスティックランタイムアーキテクチャのためのシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017504000A Pending JP2017527019A (ja) | 2014-07-25 | 2015-07-23 | 命令セットアグノスティックランタイムアーキテクチャのためのシステム |
Country Status (6)
Country | Link |
---|---|
US (2) | US20160026487A1 (ja) |
EP (2) | EP3172667A4 (ja) |
JP (2) | JP6690813B2 (ja) |
KR (2) | KR101882429B1 (ja) |
CN (2) | CN106716363B (ja) |
WO (2) | WO2016014867A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017527020A (ja) * | 2014-07-25 | 2017-09-14 | インテル・コーポレーション | ゲストイメージからのコードを実行するための実行時オプティマイザを実行するシステム変換器 |
US11281481B2 (en) | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
EP3172667A4 (en) * | 2014-07-25 | 2018-03-21 | Intel Corporation | System for an instruction set agnostic runtime architecture |
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 |
US9951261B2 (en) | 2015-03-10 | 2018-04-24 | Baker Hughes, A Ge Company, Llc | Cement spacer system for wellbores, methods of making, and methods of use |
JP6358323B2 (ja) * | 2016-12-28 | 2018-07-18 | 日本電気株式会社 | 情報処理装置、情報処理方法、およびプログラム |
US10402112B1 (en) * | 2018-02-14 | 2019-09-03 | Alibaba Group Holding Limited | Method and system for chunk-wide data organization and placement with real-time calculation |
US10929160B1 (en) * | 2018-12-12 | 2021-02-23 | The Mathworks, Inc. | Composite-trace just-in-time compilation |
US20210081575A1 (en) * | 2019-09-12 | 2021-03-18 | Microsoft Technology Licensing, Llc | Hybrid mitigation of speculation based attacks based on program behavior |
Family Cites Families (59)
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 |
WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | 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 |
US5802373A (en) * | 1996-01-29 | 1998-09-01 | Digital Equipment Corporation | Method for providing a pipeline interpreter for a variable length instruction set |
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 |
US6139199A (en) | 1997-06-11 | 2000-10-31 | Sun Microsystems, Inc. | Fast just-in-time (JIT) scheduler |
US7620955B1 (en) * | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
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 |
US7069389B2 (en) * | 2003-11-26 | 2006-06-27 | Microsoft Corporation | Lazy flushing of translation lookaside buffers |
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 |
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 |
EP2122461A4 (en) | 2006-11-14 | 2010-03-24 | Soft Machines Inc | DEVICE AND METHOD FOR PROCESSING COMMUNICATIONS IN A MULTITHREAD ARCHITECTURE WITH CONTEXT CHANGES |
US8078827B2 (en) * | 2007-07-05 | 2011-12-13 | International Business Machines Corporation | Method and apparatus for caching of page translations for virtual machines |
US8453128B2 (en) * | 2007-09-28 | 2013-05-28 | Oracle America, Inc. | Method and system for implementing a just-in-time compiler |
US8959277B2 (en) * | 2008-12-12 | 2015-02-17 | Oracle America, Inc. | Facilitating gated stores without data bypass |
US8667476B1 (en) | 2009-01-20 | 2014-03-04 | Adaptmicrosys LLC | Instruction grouping and ungrouping apparatus and method for an adaptive microprocessor system |
US8335911B2 (en) | 2009-05-21 | 2012-12-18 | Oracle America, Inc. | Dynamic allocation of resources in a threaded, heterogeneous processor |
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 |
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 |
CN101968746B (zh) * | 2010-09-02 | 2016-03-02 | 北京航空航天大学 | 一种内核虚拟机组织架构模式的实现方法 |
US9658890B2 (en) * | 2010-10-08 | 2017-05-23 | Microsoft Technology Licensing, Llc | Runtime agnostic representation of user code for execution with selected execution runtime |
WO2012103209A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor |
WO2012103373A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Variable caching structure for managing physical 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 |
WO2012103367A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Guest to native block address mappings and management of native code storage |
US8673689B2 (en) | 2011-01-28 | 2014-03-18 | Marvell World Trade Ltd. | Single layer BGA substrate process |
US8756589B2 (en) | 2011-06-14 | 2014-06-17 | Microsoft Corporation | Selectable dual-mode JIT compiler for SIMD instructions |
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 |
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 | 英派尔科技开发有限公司 | 用于灵活资源需求应用的认证 |
EP2862068B1 (en) | 2012-06-15 | 2022-07-06 | Intel Corporation | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
US9141361B2 (en) | 2012-09-30 | 2015-09-22 | Intel Corporation | Method and apparatus for performance efficient ISA virtualization using dynamic partial binary translation |
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 |
KR20160074647A (ko) | 2013-10-25 | 2016-06-28 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 로드 및 저장 유닛과 데이터 캐시에 대한 순서화 및 대역폭 향상 |
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 |
US9201635B2 (en) | 2013-12-30 | 2015-12-01 | Unisys Corporation | Just-in-time dynamic translation for translation, compilation, and execution of non-native instructions |
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 |
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 |
US11281481B2 (en) * | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
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 |
EP3172667A4 (en) * | 2014-07-25 | 2018-03-21 | Intel Corporation | System for 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 |
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 |
-
2015
- 2015-07-23 EP EP15825498.7A patent/EP3172667A4/en not_active Withdrawn
- 2015-07-23 US US14/807,313 patent/US20160026487A1/en not_active Abandoned
- 2015-07-23 WO PCT/US2015/041851 patent/WO2016014867A1/en active Application Filing
- 2015-07-23 CN CN201580051976.4A patent/CN106716363B/zh not_active Expired - Fee Related
- 2015-07-23 WO PCT/US2015/041850 patent/WO2016014866A1/en active Application Filing
- 2015-07-23 CN CN201580051864.9A patent/CN107077368B/zh active Active
- 2015-07-23 EP EP15825210.6A patent/EP3172665A4/en not_active Withdrawn
- 2015-07-23 KR KR1020177003199A patent/KR101882429B1/ko active IP Right Grant
- 2015-07-23 JP JP2017504010A patent/JP6690813B2/ja not_active Expired - Fee Related
- 2015-07-23 JP JP2017504000A patent/JP2017527019A/ja active Pending
- 2015-07-23 US US14/807,271 patent/US9823939B2/en active Active
- 2015-07-23 KR KR1020177003197A patent/KR101882255B1/ko active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017527020A (ja) * | 2014-07-25 | 2017-09-14 | インテル・コーポレーション | ゲストイメージからのコードを実行するための実行時オプティマイザを実行するシステム変換器 |
US11281481B2 (en) | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
Also Published As
Publication number | Publication date |
---|---|
CN106716363A (zh) | 2017-05-24 |
JP6690813B2 (ja) | 2020-04-28 |
US9823939B2 (en) | 2017-11-21 |
WO2016014867A9 (en) | 2016-09-09 |
EP3172667A1 (en) | 2017-05-31 |
CN107077368A (zh) | 2017-08-18 |
CN107077368B (zh) | 2020-09-29 |
KR20170024110A (ko) | 2017-03-06 |
WO2016014867A1 (en) | 2016-01-28 |
WO2016014866A1 (en) | 2016-01-28 |
EP3172665A1 (en) | 2017-05-31 |
US20160026487A1 (en) | 2016-01-28 |
US20160026483A1 (en) | 2016-01-28 |
JP2017527019A (ja) | 2017-09-14 |
KR101882429B1 (ko) | 2018-07-27 |
EP3172667A4 (en) | 2018-03-21 |
KR101882255B1 (ko) | 2018-07-26 |
KR20170026620A (ko) | 2017-03-08 |
CN106716363B (zh) | 2021-04-09 |
EP3172665A4 (en) | 2018-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106716362B (zh) | 用于将微指令序列重排序为优化的微指令序列以实现指令集不可知的运行时架构的分配和发出级 | |
JP6690812B2 (ja) | 複数の変換テーブルを用いた命令セットアグノスティックランタイムアーキテクチャの実施 | |
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: 20180720 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190625 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190716 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191011 |
|
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: 6690813 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |