WO2012170236A3 - Binding executable code at runtime - Google Patents

Binding executable code at runtime Download PDF

Info

Publication number
WO2012170236A3
WO2012170236A3 PCT/US2012/039884 US2012039884W WO2012170236A3 WO 2012170236 A3 WO2012170236 A3 WO 2012170236A3 US 2012039884 W US2012039884 W US 2012039884W WO 2012170236 A3 WO2012170236 A3 WO 2012170236A3
Authority
WO
WIPO (PCT)
Prior art keywords
runtime
binding
aspects
executable code
execution
Prior art date
Application number
PCT/US2012/039884
Other languages
French (fr)
Other versions
WO2012170236A2 (en
Inventor
Amit Kumar Agarwal
Weirong Zhu
Yosseff Levanoni
Original Assignee
Microsoft Corporation
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
Application filed by Microsoft Corporation filed Critical Microsoft Corporation
Priority to EP12796911.1A priority Critical patent/EP2718808B1/en
Priority to CN201280028424.8A priority patent/CN103620553B/en
Publication of WO2012170236A2 publication Critical patent/WO2012170236A2/en
Publication of WO2012170236A3 publication Critical patent/WO2012170236A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. 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
    • G06F9/4552Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable

Abstract

The present invention extends to methods, systems, and computer program products for binding executable code at runtime. Embodiments of the invention include late binding of specified aspects of code to improve execution performance. A runtime dynamically binds lower level code based on runtime information to optimize execution of a higher level algorithm. Aspects of a higher level algorithm having a requisite (e.g., higher) impact on execution performance can be targeted for late binding. Improved performance can be achieved with minimal runtime costs using late binding for aspects having the requisite execution performance impact.
PCT/US2012/039884 2011-06-10 2012-05-29 Binding executable code at runtime WO2012170236A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP12796911.1A EP2718808B1 (en) 2011-06-10 2012-05-29 Binding executable code at runtime
CN201280028424.8A CN103620553B (en) 2011-06-10 2012-05-29 Operationally place's binding executable code

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/158,226 2011-06-10
US13/158,226 US8468507B2 (en) 2011-06-10 2011-06-10 Binding executable code at runtime

Publications (2)

Publication Number Publication Date
WO2012170236A2 WO2012170236A2 (en) 2012-12-13
WO2012170236A3 true WO2012170236A3 (en) 2013-01-31

Family

ID=47294254

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/039884 WO2012170236A2 (en) 2011-06-10 2012-05-29 Binding executable code at runtime

Country Status (4)

Country Link
US (1) US8468507B2 (en)
EP (1) EP2718808B1 (en)
CN (1) CN103620553B (en)
WO (1) WO2012170236A2 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782627B2 (en) * 2007-11-29 2014-07-15 Microsoft Corporation Path specializations for runtime code with phase behavior
US8990515B2 (en) 2011-06-14 2015-03-24 Microsoft Technology Licensing, Llc Aliasing buffers
US8752018B2 (en) * 2011-06-21 2014-06-10 Nvidia Corporation Emitting coherent output from multiple threads for printf
WO2014011163A1 (en) * 2012-07-11 2014-01-16 Empire Technology Development Llc Network congestion reduction
US9710245B2 (en) 2014-04-04 2017-07-18 Qualcomm Incorporated Memory reference metadata for compiler optimization
US9733978B2 (en) 2015-08-27 2017-08-15 Qualcomm Incorporated Data management for multiple processing units using data transfer costs
US9778961B2 (en) 2015-09-14 2017-10-03 Qualcomm Incorporated Efficient scheduling of multi-versioned tasks
US10360063B2 (en) 2015-09-23 2019-07-23 Qualcomm Incorporated Proactive resource management for parallel work-stealing processing systems
US10303493B2 (en) 2016-11-04 2019-05-28 International Business Machines Corporation Performance acceleration in mixed-language applications
US10417734B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10417731B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
EP3567600B8 (en) * 2018-05-08 2024-02-21 Siemens Healthineers AG Improving a runtime environment for imaging applications on a medical device
US10635439B2 (en) 2018-06-13 2020-04-28 Samsung Electronics Co., Ltd. Efficient interface and transport mechanism for binding bindless shader programs to run-time specified graphics pipeline configurations and objects
US11442712B2 (en) * 2020-06-11 2022-09-13 Indian Institute Of Technology Delhi Leveraging unspecified order of evaluation for compiler-based program optimization

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080276262A1 (en) * 2007-05-03 2008-11-06 Aaftab Munshi Parallel runtime execution on multiple processors
US20090100416A1 (en) * 2003-07-15 2009-04-16 Transitive Limited Dynamic native binding
US20090328013A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Componentization of compiler functionality
US20100299660A1 (en) * 2009-05-21 2010-11-25 Microsoft Corporation Dynamic binding directed by static types

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339419A (en) * 1990-06-25 1994-08-16 Hewlett-Packard Company ANDF compiler using the HPcode-plus compiler intermediate language
US5339430A (en) 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
US6748587B1 (en) * 1998-01-02 2004-06-08 Hewlett-Packard Development Company, L.P. Programmatic access to the widest mode floating-point arithmetic supported by a processor
US6665865B1 (en) 2000-04-27 2003-12-16 Microsoft Corporation Equivalence class based synchronization optimization
US6970985B2 (en) * 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US6961840B2 (en) 2002-09-30 2005-11-01 International Business Machines Corporation Method and apparatus for managing a dynamic alias page table
US7536682B2 (en) * 2003-04-22 2009-05-19 International Business Machines Corporation Method and apparatus for performing interpreter optimizations during program code conversion
US7543284B2 (en) * 2003-04-22 2009-06-02 Transitive Limited Partial dead code elimination optimizations for program code conversion
US7463259B1 (en) 2003-12-18 2008-12-09 Nvidia Corporation Subshader mechanism for programming language
GB2424092A (en) * 2005-03-11 2006-09-13 Transitive Ltd Switching between code translation and execution using a trampoline
US8037281B2 (en) 2005-04-07 2011-10-11 Advanced Micro Devices, Inc. Miss-under-miss processing and cache flushing
US7447869B2 (en) 2005-04-07 2008-11-04 Ati Technologies, Inc. Method and apparatus for fragment processing in a virtual memory system
GB2426840A (en) * 2005-06-04 2006-12-06 Transitive Ltd Method of executing program code where a portion of the target code calls a native code portion which then calls a second target code portion.
GB2427045B (en) * 2005-06-06 2007-11-21 Transitive Ltd Method and apparatus for converting program code with access coordination for a shared resource
US8276164B2 (en) 2007-05-03 2012-09-25 Apple Inc. Data parallel computing on multiple processors
US20090024986A1 (en) 2007-07-19 2009-01-22 Microsoft Corporation Runtime code modification
US20090070753A1 (en) 2007-09-07 2009-03-12 International Business Machines Corporation Increase the coverage of profiling feedback with data flow analysis
US8736617B2 (en) 2008-08-04 2014-05-27 Nvidia Corporation Hybrid graphic display
US8245210B2 (en) * 2009-05-22 2012-08-14 Microsoft Corporation Compile-time context for dynamically bound operations
US8990515B2 (en) 2011-06-14 2015-03-24 Microsoft Technology Licensing, Llc Aliasing buffers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090100416A1 (en) * 2003-07-15 2009-04-16 Transitive Limited Dynamic native binding
US20080276262A1 (en) * 2007-05-03 2008-11-06 Aaftab Munshi Parallel runtime execution on multiple processors
US20090328013A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Componentization of compiler functionality
US20100299660A1 (en) * 2009-05-21 2010-11-25 Microsoft Corporation Dynamic binding directed by static types

Also Published As

Publication number Publication date
US20120317558A1 (en) 2012-12-13
WO2012170236A2 (en) 2012-12-13
CN103620553A (en) 2014-03-05
CN103620553B (en) 2016-10-12
EP2718808B1 (en) 2020-06-10
US8468507B2 (en) 2013-06-18
EP2718808A2 (en) 2014-04-16
EP2718808A4 (en) 2015-04-29

Similar Documents

Publication Publication Date Title
WO2012170236A3 (en) Binding executable code at runtime
WO2012173772A3 (en) Optimizing execution of kernels
WO2013186266A3 (en) Next instruction access intent instruction
EP4290377A3 (en) Hardware acceleration method, compiler, and device
BRPI0919132A2 (en) code generated by storage execution.
GB2491768B (en) Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations
NZ776770A (en) Adam6 mice
WO2011142933A3 (en) Real time mission planning
PH12016502073A1 (en) Multi-specific antigen-binding molecule having alternative function to function of blood coagulation factor viii
EP2749225A4 (en) System for diagnosing bloodflow characteristics, method thereof, and computer software program
WO2012088364A3 (en) Satisfying application dependencies
GB201302443D0 (en) Detecting malicious computer code in an executing program module
WO2008085977A3 (en) Computation of elementwise expression in parallel
GB2485725A (en) Systems and methods for optimizing enterprise performance
EP2727437A4 (en) Load driver, processor controlled load driver, and computer program
MX2014001629A (en) Runtime system.
WO2012088171A3 (en) Method for checkpointing and restoring program state
GB0818165D0 (en) Instruction Cache
WO2012082661A3 (en) Instruction optimization
EP2840497A4 (en) Method, system and an executable piece of code for the virtualisation of a hardware resource associated with a computer system
WO2012113547A3 (en) Method for operating a microprocessor unit, in particular in a mobile terminal
WO2012061090A3 (en) Conditional execution of regular expressions
WO2012099758A3 (en) Code advisor for web compatibility and interoperability
WO2012092211A3 (en) Emulating pointers
TW200703099A (en) CPU structure with enhanced branch forecasting capability

Legal Events

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

Ref document number: 12796911

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE