Just-in-time Compiling Or Dynamic Compiling (e.g., Compiling Java Bytecode On A Virtual Machine) Patents (Class 717/148)
  • Patent number: 8473935
    Abstract: Pre-compiling postdominating functions. Some embodiments may be practiced in a computing environment including a runtime compilation. For example one method includes acts for compiling functions. The method includes determining that a function of an application has been called. A control flow graph is used to determine one or more postdominance relationships between the function and one or more other functions. The one or more other functions are assigned to be pre-compiled based on the postdominance relationship.
    Type: Grant
    Filed: April 21, 2008
    Date of Patent: June 25, 2013
    Assignee: Microsoft Corporation
    Inventor: Matthew B. Grice
  • Publication number: 20130159983
    Abstract: Methods, systems, and products are disclosed for optimizing just-in-time (‘JIT’) compiling for a Java application executing on a compute node, the compute node having installed upon it a Java Virtual Machine (‘JVM’) capable of supporting the Java application, that include: identifying, by an application manager, a particular portion of the Java application; assigning, by the application manager, a JIT level to the particular portion of the Java application; and jitting, by the JVM installed on the compute node, the particular portion of the Java application in dependence upon the JIT level assigned to that particular portion of the Java application.
    Type: Application
    Filed: February 15, 2013
    Publication date: June 20, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: International Business Machines Corporation
  • Publication number: 20130152063
    Abstract: A system and method for early platform dependency preparation of intermediate code representation during bytecode compilation in a virtual machine (VM), or other runtime environment, and particularly for use in a system that includes a Java Virtual Machine (JVM). Current techniques for separating the platform dependent intermediate representation from the platform independent intermediate representation using a watertight abstraction layer gives non-optimal side effects (such as compiler source code duplication or inefficiency in the generated code). Embodiments of the present invention enable the compiler to construct platform dependent idioms using medium level intermediate code, and maintain the platform dependent construct all the way to the final native code.
    Type: Application
    Filed: January 7, 2013
    Publication date: June 13, 2013
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventor: Oracle International Corporation
  • Patent number: 8464228
    Abstract: The subject matter of this specification can be embodied in, among other things, a process that includes receiving, during a computer programming process for a software program, a specification of a software module having a defined functionality for use by the software program. The software module is stored in a central repository having different versions of the software module. The process also includes compiling the software program. The compilation initiates steps including filtering versions of the software module that do not meet the specification. The specification corresponds to more than one version of the software module. The steps also include selecting, from versions that have not been filtered out, a version of the software module. The selection is based on one or more predetermined rules. The process also includes returning the selected version of the software module for local storage with the software program.
    Type: Grant
    Filed: August 23, 2007
    Date of Patent: June 11, 2013
    Assignee: Accenture Global Services Limited
    Inventor: Craig Campbell
  • Patent number: 8464233
    Abstract: The present invention extends to methods, systems, and computer program products for compile time interpretation of markup codes. Embodiments of the invention can be used to specify custom behaviors to be taken in response to any of a number of ways that markup codes (e.g., XML data) can be constructed and in response to any number of ways that markup codes can be accessed. At compile time, the construction of objects and/or the modes of access for objects using mark up codes are known. As such, the compiler, type-system and development environment can use a known set of custom behaviors to regulate or give feedback on what constructions or modes of access are allowed, and what their characteristics are.
    Type: Grant
    Filed: June 21, 2010
    Date of Patent: June 11, 2013
    Assignee: Microsoft Corporation
    Inventors: Lucian Jules Wischik, Avner Y. Aharoni
  • Patent number: 8458670
    Abstract: A system and method for automatically analyzing virtual machine bytecode of a software application and adding additional bytecode operable to determine information regarding network communication performed by the software application are described. According to one embodiment of the method, program code of a software application may be received, wherein the program code includes bytecode for a virtual machine. The bytecode may be automatically analyzed to detect network communication functionality. The method may operate to automatically add additional bytecode to the bytecode of the software application, where the added bytecode is operable to determine information regarding the network communication.
    Type: Grant
    Filed: September 27, 2007
    Date of Patent: June 4, 2013
    Assignee: Symantec Corporation
    Inventors: Brian Day, Daryl Hoyt
  • Publication number: 20130139133
    Abstract: An adjustment apparatus includes a storage device, an execution target program, an execution unit, a first API, a second API, a profiler, and a dynamic compiler. The execution unit interprets the program, and calls and executes a function of an API in response to the API description. The first and second API are callable by the execution unit, to respectively allocate an array of a predetermined size, and extend the array. The first and second APIs are converted into code to store an array allocation call context of the pre-extension array into a profile information storage area of the allocated array. The profiler profiles access to arrays. The dynamic compiler inline-expands an array allocation call context included in a code part to be dynamically compiled and embeds an array size determined based on context based access information, as an allocation initial size of the array, into the code part.
    Type: Application
    Filed: November 29, 2012
    Publication date: May 30, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: INTERNATIONAL BUSINESS MACHINES CORP
  • Patent number: 8453126
    Abstract: A system and method for automated conversion of a SAS runtime macro language (RML) program to a target language program such as JAVA. RML macros are identified and converted for inclusion in the RML program. A lexer is applied to generate a stream of tokens, including a token type for ambiguous tokens. A context dependent parsing module, including a token filter to resolve ambiguous tokens, assists the parser in generating an abstract syntax tree (AST), which is modified to express RML specific control flow constructs with target language program elements. The elements of the modified AST are replaced with target language templates from a library, with template parameters filled from the corresponding AST element. A run time library is provided for execution of the target language program.
    Type: Grant
    Filed: July 30, 2009
    Date of Patent: May 28, 2013
    Assignee: Dulles Research LLC
    Inventor: Pavel Ganelin
  • Patent number: 8453129
    Abstract: A method, computer system, and computer program product for using one or more hardware interrupts to drive dynamic binary code recompilation. The execution of a plurality of instructions is monitored to detect a problematic instruction. In response to detecting the problematic instruction, a hardware interrupt is thrown to a dynamic interrupt handler. A determination is made whether a threshold for dynamic binary code recompilation is satisfied. If the threshold for dynamic code recompilation is satisfied, the dynamic interrupt handler optimizes at least one of the plurality of instructions.
    Type: Grant
    Filed: April 24, 2008
    Date of Patent: May 28, 2013
    Assignee: International Business Machines Corporation
    Inventors: Mark W. Stephenson, Ram Rangan
  • Patent number: 8453130
    Abstract: Memory management for object oriented applications during run time includes loading an object oriented application into a computer memory. The object oriented application includes a plurality of nodes in a classification tree, the nodes including key value pairs. The nodes are aggregated in the classification tree by a computer. The aggregating includes eliminating redundant keys and creating a composite node. The composite node is loaded into the computer memory. The plurality of nodes in the classification tree are removed from the computer memory in response to loading the composite node into the computer memory.
    Type: Grant
    Filed: February 9, 2011
    Date of Patent: May 28, 2013
    Assignee: International Business Machines Corporation
    Inventors: Priya B. Benjamin, David N. Brauneis, Jr., Jared P. Jurkiewicz, Radoslava G. McDougald, Polyxeni Mountrouidou
  • Patent number: 8453128
    Abstract: A method for implementing a just-in-time compiler involves obtaining high-level code templates in a high-level programming language, where the high-level programming language is designed for compilation to an intermediate language capable of execution by a virtual machine, and where each high-level code template represents an instruction in the intermediate language. The method further involves compiling the high-level code templates to native code to obtain optimized native code templates, where compiling the high-level code templates is performed, prior to runtime, using an optimizing static compiler designed for runtime use with the virtual machine. The method further involves implementing the just-in-time compiler using the optimized native code templates, where the just-in-time compiler is configured to substitute an optimized native code template when a corresponding instruction in the intermediate language is encountered at runtime.
    Type: Grant
    Filed: September 28, 2007
    Date of Patent: May 28, 2013
    Assignee: Oracle America, Inc.
    Inventors: Laurent Daynes, Bernd J. Mathiske, Gregory M. Wright, Mario I. Wolczko
  • Patent number: 8448151
    Abstract: A method for binarizing initial script on an operating system includes: calling shell script to be binarized in a secondary memory unit; generating an execution table by translating the called shell script; generating a source program by merging a previously prepared source code template with the execution table; and combining a command sub-routine with the source program and binarizing the shell script by performing compile and building operations. According to the above, it is possible to minimize a booting delay time without using a fork & exec technique by applying the binary script instead of the shell script during performing system initialization while booting.
    Type: Grant
    Filed: December 3, 2009
    Date of Patent: May 21, 2013
    Assignee: Electronics and Telecommunications Research Institute
    Inventors: Seungmin Park, Chaedeok Lim, Hojoon Park, Dongwook Kang
  • Publication number: 20130125102
    Abstract: In dynamic compilation, timing of compiling is set for each method in accordance with information such as an execution frequency for each method so that methods having a large influence on the execution performance of the entire application program are compiled earlier. Thereby, the balance of execution is optimized between execution by an interpreter and execution based on native codes, and the execution performance immediately after the activation of an application program becomes stable.
    Type: Application
    Filed: October 26, 2012
    Publication date: May 16, 2013
    Inventor: Fujitsu Limited
  • Patent number: 8443349
    Abstract: A runtime system implemented in accordance with the present invention provides an application platform for parallel-processing computer systems. Such a runtime system enables users to leverage the computational power of parallel-processing computer systems to accelerate/optimize numeric and array-intensive computations in their application programs. This enables greatly increased performance of high-performance computing (HPC) applications.
    Type: Grant
    Filed: February 9, 2012
    Date of Patent: May 14, 2013
    Assignee: Google Inc.
    Inventors: Matthew N. Papakipos, Brian K. Grant, Morgan S. McGuire, Christopher G. Demetriou
  • Patent number: 8443348
    Abstract: A runtime system implemented in accordance with the present invention provides an application platform for parallel-processing computer systems. Such a runtime system enables users to leverage the computational power of parallel-processing computer systems to accelerate/optimize numeric and array-intensive computations in their application programs. This enables greatly increased performance of high-performance computing (HPC) applications.
    Type: Grant
    Filed: March 5, 2007
    Date of Patent: May 14, 2013
    Assignee: Google Inc.
    Inventors: Morgan S. McGuire, Christopher G. Demetriou, Brian K. Grant, Matthew N. Papakipos
  • Patent number: 8438404
    Abstract: The disclosure is applied to a generic microprocessor architecture with a set (e.g., one or more) of controlling elements (e.g., MPEs) and a set of groups of sub-processing elements (e.g., SPEs). Under this arrangement, MPEs and SPEs are organized in a way that a smaller number MPEs control the behavior of a group of SPEs using program code embodied as a set of virtualized control threads. The arrangement also enables MPEs delegate functionality to one or more groups of SPEs such that those group(s) of SPEs will act as pseudo MPEs. The pseudo MPEs will utilize pseudo virtualized control threads to control the behavior of other groups of SPEs. In a typical embodiment, the apparatus includes a MCP coupled to a power supply coupled with cores to provide a supply voltage to each core (or core group) and controlling-digital elements and multiple instances of sub-processing elements.
    Type: Grant
    Filed: September 30, 2008
    Date of Patent: May 7, 2013
    Assignee: International Business Machines Corporation
    Inventors: Karl J. Duvalsaint, Harm P. Hofstee, Daeik Kim, Moon J. Kim
  • Patent number: 8438554
    Abstract: A system, method, and computer program product are provided for removing a synchronization statement. In use, synchronization statements are identified. Additionally, the synchronization statements are analyzed. Furthermore, the synchronization statements are removed based on the analysis.
    Type: Grant
    Filed: December 11, 2008
    Date of Patent: May 7, 2013
    Assignee: NVIDIA Corporation
    Inventors: Vinod Kumar Grover, John Stratton
  • Patent number: 8432562
    Abstract: An image forming apparatus has a new application management system. A platform provided in the image forming apparatus manages applications also provided in the image forming apparatus. An operation screen display application included in the application managed by the platform displays operation screens. Objects to be operated by the operation screens are the applications managed by the platform.
    Type: Grant
    Filed: February 15, 2005
    Date of Patent: April 30, 2013
    Assignee: Ricoh Company, Ltd.
    Inventors: Mitsuo Ando, Kunihiro Akiyoshi
  • Publication number: 20130104111
    Abstract: Methods, apparatuses, and computer program products for real-time temperature sensitive machine level code compilation and execution are provided. Embodiments include compiling and executing, by a just-in-time (JIT) compiler, machine level code; during execution of the machine level code, determining, by the JIT compiler, an execution temperature for the machine level code, including reading temperature measurements from one or more processor temperature sensors; based on the determined execution temperature, identifying, by the JIT compiler, a portion of the machine level code that, when executed, caused temperature measurements of one or more processor temperature sensors to exceed a predetermined threshold temperature; recompiling, by the JIT compiler, the machine level code including modifying the identified portion to generate a new execution temperature that is lower than the previously determined execution temperature; and executing, by the JIT compiler, the recompiled machine level code.
    Type: Application
    Filed: December 11, 2012
    Publication date: April 25, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: INTERNATIONAL BUSINESS MACHINES CORPORATION
  • Patent number: 8429629
    Abstract: Embodiments of the present invention provide an architecture for efficiently loading and executing byte code generated from a general programming language. In particular, a byte code interpreter implements a virtual machine that executes the byte code and is divided into a kernel component and one or more user components. The kernel component of the virtual machine is integrated into the operating system kernel. The user component runs in the same virtual address space as the applet, provides support for executing an applet and couples the applet to the operating system. In addition, the kernel component of the virtual machine may share code with multiple user components.
    Type: Grant
    Filed: November 30, 2005
    Date of Patent: April 23, 2013
    Assignee: Red Hat, Inc.
    Inventor: Ulrich Drepper
  • Patent number: 8429630
    Abstract: In at least one embodiment, the computing network may include multiple different data centers and/or server grids which are deployed different geographic locations. In at least one embodiment, at least some of the 20 server grids may be operable to provide on-demand, grid and/or utility computing resources for hosting various types of distributed applications. In at least one embodiment, a distributed application may be characterized as an application made up of distinct components (e.g., virtual appliances, virtual machines, virtual interfaces, virtual volumes, virtual network connections, etc.) in separate runtime environments. In at least one embodiment, different 25 ones of the distinct components of the distributed application may be hosted or deployed on different platforms (e.g., different servers) connected via a network. In some embodiments, a distributed application may be characterized as an application that runs on two or more networked computers.
    Type: Grant
    Filed: March 9, 2009
    Date of Patent: April 23, 2013
    Assignee: CA, Inc.
    Inventors: Peter Nickolov, Bert Armijo
  • Publication number: 20130091496
    Abstract: Methods, systems, and products are disclosed for optimizing just-in-time (‘JIT’) compiling for a Java application executing on a compute node, the compute node having installed upon it a Java Virtual Machine (‘JVM’) capable of supporting the Java application, that include: identifying, by an application manager, a particular portion of the Java application; assigning, by the application manager, a JIT level to the particular portion of the Java application; and jitting, by the JVM installed on the compute node, the particular portion of the Java application in dependence upon the JIT level assigned to that particular portion of the Java application.
    Type: Application
    Filed: November 27, 2012
    Publication date: April 11, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: International Business Machines Corporation
  • Patent number: 8418144
    Abstract: A system for fast rendering of an applet in a Web browser environment. A server process pre-determines the order in which the applet classes are loaded by the applet. The server process determines the classes of the applet that are required for applet start-up, and these startup classes are bundled into an initial JAR file on the server for the applet, along with a list of other class files belonging to the original JAR files. After the initial JAR file is downloaded, and while the JVM on the client system is loading the applet classes from the initial JAR file to bring up the applet, the rest of the applet classes (i.e. non-startup classes) are downloaded from the server to the client in the background. As each such non-startup class is received by the client system, it is loaded into the correct JAR file based on the class list.
    Type: Grant
    Filed: September 6, 2007
    Date of Patent: April 9, 2013
    Assignee: International Business Machines Corporation
    Inventors: Aruna Kalagnanam, Shuti Kumar, Venkat R. Vellaisamy
  • Publication number: 20130086565
    Abstract: A medium and method is disclosed for compiling vector programs. A compiler receives program code that includes a function invocation. The compiler determines the vector width of a target computer system and creates a width-specific executable version of the program code by mapping the function invocation to a width-specific implementation of the function. The width-specific implementation corresponds to the vector width of the target computer system.
    Type: Application
    Filed: September 29, 2011
    Publication date: April 4, 2013
    Inventors: Benedict R. Gaster, Lee W. Howes
  • Publication number: 20130086566
    Abstract: A medium, method, and apparatus are disclosed for eliding superfluous function invocations in a vector-processing environment. A compiler receives program code comprising a width-contingent invocation of a function. The compiler creates a width-specific executable version of the program code by determining a vector width of a target computer system and omitting the function from the width-specific executable if the vector width meets one or more criteria. For example, the compiler may omit the function call if the vector width is greater than a minimum size.
    Type: Application
    Filed: September 29, 2011
    Publication date: April 4, 2013
    Inventors: Benedict R. Gaster, Lee W. Howes
  • Patent number: 8413125
    Abstract: A computer is programmed to automatically have multiple sessions update a common counter which is shared therebetween, when interpreting a given method so that system-wide statistics are collected for each method. The single counter is commonly accessed for updating by the respective interpreters in the multiple sessions which are executing the method. The computer is further programmed to asynchronously compile the method (regardless of the state of the multiple sessions), to obtain compiled software in the form of executable machine instructions. Specifically, asynchronous compilation starts dynamically, whenever a method's common multi-session counter satisfies a predetermined condition. Finally, each session is informed when compilation is completed so that the next time the method needs to be run, it is not interpreted and instead the compiled software is executed. The compiled software is kept in a shared memory which is accessible to each session.
    Type: Grant
    Filed: January 26, 2007
    Date of Patent: April 2, 2013
    Assignee: Oracle International Corporation
    Inventors: Robert H. Lee, David Unietis, Mark Jungerman
  • Publication number: 20130081005
    Abstract: Optimized memory management settings may be derived from a mathematical model of an execution environment. The settings may be optimized for each application or workload, and the settings may be implemented per application, per process, or with other granularity. The settings may be determined after an initial run of a workload, which may observe and characterize the execution. The workload may be executed a second time using the optimized settings. The settings may be stored as tags for the executable code, which may be in the form of a metadata file or as tags embedded in the source code, intermediate code, or executable code. The settings may change the performance of memory management operations in both interpreted and compiled environments. The memory management operations may include memory allocation, garbage collection, and other related functions.
    Type: Application
    Filed: August 10, 2012
    Publication date: March 28, 2013
    Applicant: CONCURIX CORPORATION
    Inventors: Alexander G. Gounares, Ying Li, Charles D. Garrett
  • Patent number: 8392898
    Abstract: Managing just-in-time compilation is provided. The process designates a set of compilation threads for exclusively performing compilation functions associated with an application. A set of computation threads is designated for executing the application. Processor cycles are dynamically allocated during runtime between the set of compilation threads and the set of computation threads to maintain a ratio of processor cycles consumed by the set of compilation threads to processor cycles consumed by the set of computation threads.
    Type: Grant
    Filed: February 6, 2012
    Date of Patent: March 5, 2013
    Assignee: International Business Machines Corporation
    Inventor: Marius Pirvu
  • Patent number: 8387016
    Abstract: Disclosed is a process to generate and execute relevant, non-redundant test cases starting with an execution trace. An execution trace may be collected. A sequence of actions and the data involved in the actions may then be extracted from the execution trace and persisted separately from one another. Code for a non-deterministic program (“NDP”) may be generated, comprising the sequence of actions but without determining the data. A systematic program analysis of the NDP may be made, exploring possible execution paths and beginning from the path exercised by the persisted data. A new test case may be generated which fixes particular test inputs for the NDP.
    Type: Grant
    Filed: May 1, 2009
    Date of Patent: February 26, 2013
    Assignee: Microsoft Corporation
    Inventors: Nikolai Tillmann, Jonathan Paul de Halleux
  • Patent number: 8387027
    Abstract: A method for compiling source code, involving: obtaining a statement of the source code comprising a method call, where the source code is composed in a statically-typed programming language; determining whether the method call is a dynamic method call; upon determining that the method call is a dynamic method call, compiling a dynamic method invocation without performing type checking on the method call; upon determining that the method call is not a dynamic method call: performing type checking on the method call, selecting a target method to invoke, and compiling a static method invocation to invoke the target method.
    Type: Grant
    Filed: January 15, 2010
    Date of Patent: February 26, 2013
    Assignee: Oracle America, Inc. formerly Sun Microsystems, Inc.
    Inventors: Alexander R. Buckley, John Rose, Joseph D. Darcy
  • Patent number: 8387030
    Abstract: A back-end service adaptation system provides access to normalized data in a data repository for a consumer runtime environment sending a query request for denormalized data. The back-end service adaptation system can include a data access service layer, a parser layer, and a back-end service adaptation runtime layer. The consumer runtime can use a service adaptation definition language (SADL), and the parser and data access service can be configured to convert and translate the SADL request for the back-end service adaptation runtime layer.
    Type: Grant
    Filed: December 28, 2009
    Date of Patent: February 26, 2013
    Assignee: SAP AG
    Inventors: Frank Brunswig, Thomas Fiedler, Oswald Gschnitzer, Marcel Hermanns, Markus Viol, Jens Weiler, Gerhard Wenzel
  • Patent number: 8387031
    Abstract: A mechanism is provided for operating a computing system, in which an inner virtual machine translates first instructions, which are supported by the inner virtual machine, into second instructions, which are supported by an outer virtual machine. The mechanism encodes, in the inner virtual machine, third instructions into the second instructions into which the first instructions are translated, the third instructions including hints for facilitating an execution of the second instructions, and, in an event the hints are supported by the outer virtual machine, initiating the execution of the second instructions while utilizing the hints by the outer virtual machine to achieve an increased efficiency of the execution of the second instructions.
    Type: Grant
    Filed: January 23, 2009
    Date of Patent: February 26, 2013
    Assignee: International Business Machines Corporation
    Inventors: Derek B. Inglis, Marcel Mitran, Ali I. Sheikh, Kevin A. Stoodley
  • Patent number: 8387020
    Abstract: One embodiment of the present invention provides a system that verifies that a program method has been implemented for a program written in a dynamic programming language. During operation, the system receives a user request to check for an implementation of a program method (or method) that is called in the program. The system uses information in this user request to generate a testing method that determines whether a class associated with the method responds to a specific request. This testing method is executed at run-time to verify that the method is implemented for the program.
    Type: Grant
    Filed: July 25, 2007
    Date of Patent: February 26, 2013
    Assignee: Google Inc.
    Inventors: David MacLachlan, Thomas E. Van Lenten
  • Patent number: 8387032
    Abstract: Methods, systems, and apparatus, including computer programs encoded on computer storage media, for captive runtime deployment. In one aspect, a method performed by data processing apparatus employing a runtime environment includes accessing software code of a software application that relies on a runtime of the runtime environment to operate; selecting a proper subset of the runtime, including sharable library code, based on information associated with the software application; combining the software code and the proper subset of the runtime to form a computer program configured to effect the software application using a version of the runtime captive to the computer program, the captive version of the runtime including the proper subset of the runtime; and storing the computer program on a computer-readable medium coupled with a processor.
    Type: Grant
    Filed: March 4, 2009
    Date of Patent: February 26, 2013
    Assignee: Adobe Systems Incorporated
    Inventors: Oliver Goldman, Edward R. W. Rowe
  • Patent number: 8380939
    Abstract: In a virtualized system using memory page sharing, a method is provided for maintaining sharing when Guest code attempts to write to the shared memory. In one embodiment, virtualization logic uses a pattern matcher to recognize and intercept page zeroing code in the Guest OS. When the page zeroing code is about to run against a page that is already zeroed, i.e., contains all zeros, and is being shared, the memory writes in the page zeroing code have no effect. The virtualization logic skips over the writes, providing an appearance that the Guest OS page zeroing code has run to completion but without performing any of the writes that would have caused a loss of page sharing. The pattern matcher can be part of a binary translator that inspects code before it executes.
    Type: Grant
    Filed: August 19, 2011
    Date of Patent: February 19, 2013
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Patent number: 8381224
    Abstract: In general, this disclosure is directed to a software virtual machine that provides high-performance transactional data acceleration optimized for multi-core computing platforms. The virtual machine utilizes an underlying parallelization engine that seeks to maximize the efficiencies of multi-core computing platforms to provide a highly scalable, high performance (lowest latency), virtual machine. In some embodiments, the virtual machine may be viewed as an in-memory virtual machine with an ability in its operational state to self organize and self seek, in real time, available memory work boundaries to automatically optimize maximum available throughput for data processing acceleration and content delivery of massive amounts of data.
    Type: Grant
    Filed: June 15, 2012
    Date of Patent: February 19, 2013
    Assignee: uCIRRUS
    Inventors: Raymond J. Huetter, Alka Yamarti
  • Publication number: 20130036410
    Abstract: Methods, apparatuses, and computer program products for real-time temperature sensitive machine level code compilation and execution are provided. Embodiments include compiling and executing, by a just-in-time (JIT) compiler, machine level code; during execution of the machine level code, determining, by the JIT compiler, an execution temperature for the machine level code, including reading temperature measurements from one or more processor temperature sensors; based on the determined execution temperature, identifying, by the JIT compiler, a portion of the machine level code that, when executed, caused temperature measurements of one or more processor temperature sensors to exceed a predetermined threshold temperature; recompiling, by the JIT compiler, the machine level code including modifying the identified portion to generate a new execution temperature that is lower than the previously determined execution temperature; and executing, by the JIT compiler, the recompiled machine level code.
    Type: Application
    Filed: August 2, 2011
    Publication date: February 7, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Cary L. Bates, Nicholas P. Johnson, Justin K. King
  • Patent number: 8370819
    Abstract: A mechanism is provided for making information about the virtual disk image file and/or its associated virtual image configuration file more readily available to a user. The virtual disk image file format is expanded to include fields in which information about the data in the file can be stored. Extensible information on file content, compatible HW configurations, compatible host OSes, timeout status, DRM status, patch state, and network topology, tag data for indexing, configuration files, saved state files, operation history data, and the like is stored in a location within a virtual disk image file that can be read without executing the virtual machine. This information can then be used to search the contents of the virtual disk image, to enforce usage policies, to provide extensibility for vendors, and the like.
    Type: Grant
    Filed: March 25, 2005
    Date of Patent: February 5, 2013
    Assignee: Microsoft Corporation
    Inventors: Parag Chakraborty, Eric P. Traut
  • Patent number: 8365153
    Abstract: A server is disclosed that includes an interface to a data communication network, a compiler library that stores a plurality of different compilers, and compiler selection logic responsive to data received at the interface and including logic. The compiler selection logic is configured to select one of the plurality of different compilers based on an evaluation of the received data. The selected compiler generates compiled output data and the compiled output data is communicated over the data communication network to a client.
    Type: Grant
    Filed: October 26, 2007
    Date of Patent: January 29, 2013
    Assignee: QUALCOMM Incorporated
    Inventors: Lingjun Chen, Guofang Jiao, Yun Du, Chun Yu
  • Patent number: 8365157
    Abstract: A system and method for early platform dependency preparation of intermediate code representation during bytecode compilation in a virtual machine (VM), or other runtime environment, and particularly for use in a system that includes a Java Virtual Machine (JVM). Current techniques for separating the platform dependent intermediate representation from the platform independent intermediate representation using a watertight abstraction layer gives non-optimal side effects (such as compiler source code duplication or inefficiency in the generated code). Embodiments of the present invention enable the compiler to construct platform dependent idioms using medium level intermediate code, and maintain the platform dependent construct all the way to the final native code.
    Type: Grant
    Filed: October 22, 2007
    Date of Patent: January 29, 2013
    Assignee: Oracle International Corporation
    Inventor: Marcus Lagergren
  • Patent number: 8365154
    Abstract: A method in a software development environment for developing product runtime code having at least two code components written in different runtime languages, the method comprising: providing a programming interface for development of the code components in a single development language: translating developed code components in the development language back to the respective runtime language for execution.
    Type: Grant
    Filed: May 28, 2010
    Date of Patent: January 29, 2013
    Assignee: International Business Machines Corporation
    Inventor: Manvendra Gupta
  • Patent number: 8359317
    Abstract: A method and device index resource content in a computer network. The computer network includes at least a first computer as a search engine and at least a second computer as a resource content site where a resource content of a user is stored. A determination is made as to whether the resource content is linked to a user-defined indexing code. The user-defined indexing code is used to process the resource content to obtain a set of information describing the resource content. The user-defined indexing code is executed in response to determining that the resource content is linked to the user-defined indexing code. The set of information describing the resource content is obtained as an indexing result in response to the executing.
    Type: Grant
    Filed: February 16, 2009
    Date of Patent: January 22, 2013
    Assignee: International Business Machines Corporation
    Inventors: Ling Zhang, Shen Yu
  • Patent number: 8359582
    Abstract: Method, computer readable medium, and system for specifying before-compiled code, compiling the before-compiled code into a compiled code snippet, specifying an insertion point in a compiled code block of a computer program, and inserting the compiled code snippet into the compiled code block at the specified insertion point while the computer program is running.
    Type: Grant
    Filed: September 27, 2008
    Date of Patent: January 22, 2013
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Tavis Elliott
  • Patent number: 8359496
    Abstract: The present disclosure relates to techniques for potentially increasing the reliability and/or stability of systems having virtual machines that support multiple modes of execution. For example, as described herein, a virtual machine partitions a plurality of program instructions into a plurality of traces for execution by a virtual machine operating on a computing device, wherein the virtual machine has first and second modes of execution, and wherein each of the plurality of traces comprises one or more of the plurality of program instructions. The virtual machine applies the second mode of execution to a first trace in the plurality of traces and determines an error condition that is caused by the application of the second mode of execution to the first trace. After determining the error condition, the virtual machine applies the first mode of execution to the first trace to recover the virtual machine from the error condition.
    Type: Grant
    Filed: August 31, 2010
    Date of Patent: January 22, 2013
    Assignee: Google Inc.
    Inventors: Daniel R. Bornstein, Ben C. Cheng, William B. Buzbee
  • Patent number: 8359590
    Abstract: A computer system has a runtime environment (e.g. Java) and a deployment unit (e.g. in a Spring framework layer) arranged to deploy the application into the runtime environment. The application comprises bundles (e.g. OSGi bundles) with manifest metadata having export statements defining exported packages. The deployment unit comprises a receiver unit to receive the bundles, an extractor unit to examine the metadata and extract the export statements, a converter unit to convert each of the export statements into a corresponding import statement, and a creator unit to add a synthetic bundle having the import statements inserted in its metadata. The deployment unit sets a thread context class loader to delegate class loading to a class loader of the synthetic bundle. Thus, at runtime, classes of the application are only loaded when they are explicitly exported packages as defined by the synthetic bundle.
    Type: Grant
    Filed: March 10, 2009
    Date of Patent: January 22, 2013
    Assignee: VMware, Inc.
    Inventors: Samuel Hugh Brannen, Jr., Adrian Mark Colyer, Rob Harrop, Glyn Normington, Andy Wilkinson
  • Patent number: 8356351
    Abstract: A method for pre-verification of a code module when the code module is installed or updated in a virtual machine, comprising: loading codes in the installed or updated code module; performing code verification on the codes in the code module; if the code verification is passed, generating a certificate of the code module; and storing the code module passing the code verification and its certificate. The present invention also discloses a method for verification of a code module at runtime of the code module in a virtual machine, comprising loading codes in the code module; generating a certificate of the code module based on the loaded codes; if the generated certificate of the code module and a pre-stored certificate of the code module are identical, verifying the code module to be valid; otherwise performing a pre-verification on the code module.
    Type: Grant
    Filed: January 18, 2008
    Date of Patent: January 15, 2013
    Assignee: International Business Machines Corporation
    Inventors: Rong Yao Fu, Hai Tao Long, William J. Tracey, David Alvra Wood, III
  • Patent number: 8352415
    Abstract: The different illustrative embodiments provide a method, computer program product, and apparatus for converting a first image for a virtual machine formatted for a first virtual environment. A second image is created, wherein the second image is non-specific to any virtual environment. A determination is made whether a portion of files to be copied from the first virtual image to the second virtual image should be replaced using a compatibility matrix, wherein the compatibility matrix identifies changes between the first virtual environment and a second virtual environment. A replacement for the portion of the files is copied to the second image using the compatibility matrix responsive to a determination that the portion of the files in the set of files should be replaced. The file is copied to the second image responsive to an absence of a determination that the each file in the set of files should be replaced.
    Type: Grant
    Filed: June 15, 2010
    Date of Patent: January 8, 2013
    Assignee: International Business Machines Corporation
    Inventors: Yulia Gaponenko, Alexey Miroshkin, Indrajit Poddar, Vladislav B. Ponomarev, Igor Sukharev
  • Patent number: 8352911
    Abstract: Techniques for constructing and using run-time JAVA Archive (JAR) files for JAVA Stored Procedures (JSPs) are provided. JSP methods referenced by an application via a plurality of different JAR files are extracted and packed into a single packed JAR file. When the application tries to execute a JSP, the attempt to process the JSP methods is redirected to a new JSP that calls the single packed JAR file.
    Type: Grant
    Filed: November 21, 2007
    Date of Patent: January 8, 2013
    Assignee: Teradata US, Inc.
    Inventors: John Douglas Frazier, Like Gao, Yu Long, Michael Leon Reed
  • Patent number: 8352929
    Abstract: A method for preventing the unauthorized modification of a software or unauthorized modification of runtime data. According to this method, a converter, which is capable of converting the software into a generalized machine code is provided. The converter is designed such that it cannot be reverse engineered, by using a conversion process that causes data loss. An interpreter, which the knowledge of its process method is kept restricted, is also provided. The interpreter interprets the general machine code into a specific machine code, while reconstructing the lost data during the interpretation process.
    Type: Grant
    Filed: March 30, 2006
    Date of Patent: January 8, 2013
    Assignee: Microsoft Corporation
    Inventors: Keren Asipov, Boris Asipov
  • Patent number: 8347270
    Abstract: A computer-implemented software self-assembled system and method for providing an external override and monitoring capability to dynamically self-assembling software containing machines that self-assemble execution sequences and data structures. The method provides an external override machine that can be introduced into a system of self-assembling machines while the machines are executing such that the functionality of the executing software can be changed or paused without stopping the code execution and modifying the existing code. Additionally, a monitoring machine can be introduced without stopping code execution that can monitor specified code execution functions by designated machines and communicate the status to an output device.
    Type: Grant
    Filed: October 25, 2007
    Date of Patent: January 1, 2013
    Assignee: Sandia Corporation
    Inventors: Ann M. Bouchard, Gordon C. Osbourn