New! View global litigation for patent families

WO2007008506A3 - Selective pre-compilation of virtual code to enhance emulator performance - Google Patents

Selective pre-compilation of virtual code to enhance emulator performance

Info

Publication number
WO2007008506A3
WO2007008506A3 PCT/US2006/026081 US2006026081W WO2007008506A3 WO 2007008506 A3 WO2007008506 A3 WO 2007008506A3 US 2006026081 W US2006026081 W US 2006026081W WO 2007008506 A3 WO2007008506 A3 WO 2007008506A3
Authority
WO
Grant status
Application
Patent type
Prior art keywords
figure
code
pre
boot
process
Prior art date
Application number
PCT/US2006/026081
Other languages
French (fr)
Other versions
WO2007008506A2 (en )
Inventor
Victor Tan
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • G06F9/44Arrangements for executing specific programmes
    • G06F9/455Emulation; Software simulation, i.e. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • G06F9/44Arrangements for executing specific programmes
    • G06F9/455Emulation; Software simulation, i.e. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Abstract

A pre-boot scan (Figure 2, #201) of an emulated binary to detect a function and it's complexity level. Precompilation may occur during a boot-up process. A further threshold is used to determine if code is to be inlined (Figure 2, #209). Just-In-Time translation may be performed at runtime (Figure 2, #211).
PCT/US2006/026081 2005-07-08 2006-06-30 Selective pre-compilation of virtual code to enhance emulator performance WO2007008506A3 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11177130 US7389500B2 (en) 2005-07-08 2005-07-08 Selective pre-compilation of virtual code to enhance boot time emulator performance
US11/177,130 2005-07-08

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20060786289 EP1902364A4 (en) 2005-07-08 2006-06-30 Selective pre-compilation of virtual code to enhance emulator performance
JP2008520347A JP4294084B2 (en) 2005-07-08 2006-06-30 Method and a recording medium to execute the software application
CN 200680024664 CN101238438B (en) 2005-07-08 2006-06-30 Selective pre-compilation of virtual code to enhance emulator performance

Publications (2)

Publication Number Publication Date
WO2007008506A2 true WO2007008506A2 (en) 2007-01-18
WO2007008506A3 true true WO2007008506A3 (en) 2007-08-23

Family

ID=37619700

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/026081 WO2007008506A3 (en) 2005-07-08 2006-06-30 Selective pre-compilation of virtual code to enhance emulator performance

Country Status (6)

Country Link
US (1) US7389500B2 (en)
EP (1) EP1902364A4 (en)
JP (1) JP4294084B2 (en)
KR (1) KR20080023728A (en)
CN (1) CN101238438B (en)
WO (1) WO2007008506A3 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8157654B2 (en) * 2000-11-28 2012-04-17 Nintendo Co., Ltd. Hand-held video game platform emulation
US7987457B2 (en) * 2007-06-25 2011-07-26 Microsoft Corporation Targeted patching for native generation images
US8875114B2 (en) * 2007-09-21 2014-10-28 International Business Machines Corporation Employing identifiers provided by an operating system of a processing environment to optimize the processing environment
KR100964581B1 (en) * 2008-08-20 2010-06-21 주식회사 컴퍼니원헌드레드 Script language execution system using byte code based on two step register
US9239732B2 (en) * 2011-02-16 2016-01-19 Microsoft Technology Licensing Llc Unrolling aggregation operations in asynchronous programming code having multiple levels in hierarchy
US9075913B2 (en) * 2012-02-27 2015-07-07 Qualcomm Incorporated Validation of applications for graphics processing unit
EP2828747A4 (en) * 2012-03-22 2016-04-20 Intel Corp Hybrid emulation and kernel function processing systems and methods
US9378001B2 (en) 2014-05-02 2016-06-28 Microsoft Technology Licensing, Llc Matching program sections through feature extraction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6637025B1 (en) * 1998-12-03 2003-10-21 International Business Machines Corporation Dynamic selection/definition of which class/methods should or should not be jit'ed using information stored in a jar file
US6842894B1 (en) * 1999-04-05 2005-01-11 Gateway, Inc. Dynamic Compiling

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097407A (en) 1986-08-08 1992-03-17 Integrated Inference Machines Artificial intelligence processor
CN1266378A (en) 1998-04-27 2000-09-13 世嘉企业股份有限公司 Game implementing method using player data and game machine
US6354940B1 (en) 1999-04-30 2002-03-12 Square Co., Ltd. Game apparatus, game fight processing method, and computer readable storage medium storage program therefor
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
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
US6338160B1 (en) * 1998-12-08 2002-01-08 Nazomi Communications, Inc. Constant pool reference resolution method
US6774885B1 (en) 1999-01-20 2004-08-10 Motek B.V. System for dynamic registration, evaluation, and correction of functional human behavior
JP3191241B2 (en) 1999-07-14 2001-07-23 株式会社スクウェア Computer readable recording medium, a game control method and game apparatus
GB9921720D0 (en) * 1999-09-14 1999-11-17 Tao Group Ltd Loading object-oriented computer programs
US6704926B1 (en) * 2000-09-28 2004-03-09 International Business Machines Corporation Bimodal Java just-in-time complier
JP2002169696A (en) * 2000-12-04 2002-06-14 Mitsubishi Electric Corp Data processing apparatus
US7225456B2 (en) * 2001-04-23 2007-05-29 Sony Corporation Gateway screen for interactive television
WO2003015034A1 (en) 2001-08-10 2003-02-20 Stephen John Regelous A method of rendering an image and a method of animating a graphics character
US7228533B2 (en) * 2001-08-24 2007-06-05 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions for performing programming loops
GB0220282D0 (en) * 2002-08-31 2002-10-09 Ibm Improved just in time compilation of java software methods
US7090576B2 (en) 2003-06-30 2006-08-15 Microsoft Corporation Personalized behavior of computer controlled avatars in a virtual reality environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6637025B1 (en) * 1998-12-03 2003-10-21 International Business Machines Corporation Dynamic selection/definition of which class/methods should or should not be jit'ed using information stored in a jar file
US6842894B1 (en) * 1999-04-05 2005-01-11 Gateway, Inc. Dynamic Compiling

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1902364A2 *

Also Published As

Publication number Publication date Type
CN101238438B (en) 2010-12-08 grant
JP4294084B2 (en) 2009-07-08 grant
WO2007008506A2 (en) 2007-01-18 application
KR20080023728A (en) 2008-03-14 application
EP1902364A2 (en) 2008-03-26 application
US7389500B2 (en) 2008-06-17 grant
JP2009501368A (en) 2009-01-15 application
US20070011666A1 (en) 2007-01-11 application
CN101238438A (en) 2008-08-06 application
EP1902364A4 (en) 2009-01-21 application

Similar Documents

Publication Publication Date Title
Wartell et al. Binary stirring: Self-randomizing instruction addresses of legacy x86 binary code
Chess et al. An undetectable computer virus
US20060123244A1 (en) Proactive computer malware protection through dynamic translation
US5812823A (en) Method and system for performing an emulation context save and restore that is transparent to the operating system
Riley et al. Multi-aspect profiling of kernel rootkit behavior
US7478394B1 (en) Context-corrupting context switching
US20040024953A1 (en) Method of using a plurality of virtual memory spaces for providing efficient binary compatibility between a plurality of source architectures and a single target architecture
Vasudevan et al. Cobra: Fine-grained malware analysis using stealth localized-executions
US20050015754A1 (en) Method and system for multimode simulator generation from an instruction set architecture specification
US7124407B1 (en) Method and apparatus for caching native code in a virtual machine interpreter
Mulchandani Java for embedded systems
Bergeron et al. Static analysis of binary code to isolate malicious behaviors
US20110191848A1 (en) Preventing malicious just-in-time spraying attacks
US20080115011A1 (en) Method and system for trusted/untrusted digital signal processor debugging operations
US6473777B1 (en) Method for accelerating java virtual machine bytecode verification, just-in-time compilation and garbage collection by using a dedicated co-processor
US7765539B1 (en) System and method for trans-compiling video games
US20090007139A1 (en) Running Add-On Components in Virtual Enviroments
WO2002006928A3 (en) Computer immune system and method for detecting unwanted code in a computer system
Tang et al. Unsupervised anomaly-based malware detection using hardware features
US20070261039A1 (en) Translation block invalidation prehints in emulation of a target system on a host system
Chipounov et al. Reverse engineering of binary device drivers with RevNIC
Homescu et al. Librando: transparent code randomization for just-in-time compilers
CN101154259A (en) General automated shelling engine and method
US20080040093A1 (en) Register mapping in emulation of a target system on a host system
CN103177210A (en) Method of implanting dynamic stain analysis module in Android

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase in:

Ref document number: 2008520347

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase in:

Ref country code: DE