Patents by Inventor Vasanth Bala

Vasanth Bala has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7313824
    Abstract: A content processor application is loaded into memory from a master image to form a runtime content processor application image. An integration agent dynamically integrates a protection agent into the loaded runtime content processor application image to form a customized content processor application with extended functionality. Only the runtime content processor application image is extended with the protection agent—the application master image remains unaltered.
    Type: Grant
    Filed: July 11, 2002
    Date of Patent: December 25, 2007
    Assignee: Liquid Machines, Inc.
    Inventors: Vasanth Bala, Michael D. Smith
  • Patent number: 7111285
    Abstract: An application module is rewritten by overwriting executable code at identified authorization points with control transfers to a managed challenge system such that a rewritten application module results. The managed challenge system is constructed to include the overwritten executable code, and performs an authorization check upon acquiring control from an authorization point. The managed challenge system is linked to the rewritten application module.
    Type: Grant
    Filed: July 16, 2002
    Date of Patent: September 19, 2006
    Assignee: Liquid Machines, Inc.
    Inventors: Michael D. Smith, Vasanth Bala
  • Publication number: 20060047974
    Abstract: A method for executing on a first computer an application having an installed image prepared on a second computer, wherein the installed image is virtually installed on the first computer, is disclosed. The method includes emulating on the first computer a native environment of the second computer. The method further includes detecting an operation of the application upon data, wherein the operation requires an operation on data located on the first computer, and wherein a copy of the data is located in the virtually installed image. The method further includes directing the operation of the application to operate on the data located in the virtually installed image.
    Type: Application
    Filed: August 30, 2004
    Publication date: March 2, 2006
    Inventors: Bowen Alpern, Joshua Auerbach, Vasanth Bala, Thomas Frauenhofer, Jobi George, Todd Mummert, Michael Pigott
  • Patent number: 6898787
    Abstract: A ? function provides a mechanism for static single assignment in the presence of predicated code. Guards placed on each source operand of the ? function indicate the condition under which the corresponding source operand is live and provide correct materialization of the ? functions after code reordering. For control functions ?c representing a confluence of live reaching definitions at a join point in the control flow graph, the guards indicate the basic block which is the source of the edge associated with the source operand. The ?c operands are paired with the source basic block of the incoming edge(s) along which they are live. The operands are also ordered according to a topological ordering of their associated block. This ordering is maintained through subsequent code transformations. In the topological ordering, the source of the edge from which the definition was passed is defined.
    Type: Grant
    Filed: March 22, 2001
    Date of Patent: May 24, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Carol Linda Thompson, Vatsa Santhanam, Dz-Ching Ju, Vasanth Bala
  • Publication number: 20050097178
    Abstract: A first container executing on a first computer determines, by using one or more messages defined by an open-standard protocol and communicated over one or more networks coupled to the second computer, whether the second container, executing on a second computer, can communicate using messages having a portion not defined by the open-standard protocol and having a portion defined by the open-standard protocol. The first container communicates, with the second container, at least one additional message having the portion not defined by the open-standard protocol and having the portion defined by the open-standard protocol. The portion not defined by the open-standard protocol occupies a predetermined part of the message that would be defined by the open-standard protocol if the open-standard protocol were used for the predetermined part.
    Type: Application
    Filed: October 31, 2003
    Publication date: May 5, 2005
    Applicant: International Business Machines Corporation
    Inventor: Vasanth Bala
  • Patent number: 6813705
    Abstract: An optimization scheme used at run-time or compile-time is capable of identifying partially redundant loads and determining whether the load is truly redundant. The truly redundant load may be replaced with a register copy instruction to reduce the memory traffic and save CPU cycle time.
    Type: Grant
    Filed: January 5, 2001
    Date of Patent: November 2, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Evelyn Duesterwald, Vasanth Bala, Sanjeev Banerjia
  • Patent number: 6785801
    Abstract: A method for growing a secondary trace out of a cache of translations for a program during the program's execution in a dynamic translator, comprising the steps of: maintaining execution counts for translation heads that are executed from a code cache; when an execution count for one of said translation heads exceeds a threshold, designated as a hot translation head, beginning a mode of operation in which, as following code translations are executed from the code cache after the execution of the hot translation head, storing in a history buffer information identifying each of the following code translations in sequence; terminating the storing of information in the history buffer in relation to the hot translation head when a termination condition is met; and linking together the translation head and the sequence of following code translations identified in the history buffer to form a larger code translation.
    Type: Grant
    Filed: January 5, 2001
    Date of Patent: August 31, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Evelyn Duesterwald, Vasanth Bala, Sanjeev Banerjia
  • Patent number: 6725335
    Abstract: In a system and method for linking and unlinking code fragments stored in a code cache, a memory area is associated with a branch in a first code fragment that branches outside the cache. If the branch can be set to branch to a location in a second code fragment stored in the cache, branch reconstruction information is stored in the memory area associated with the branch, and the branch instruction is updated to branch to the location in the second code fragment, thereby linking the first code fragment to the second code fragment. If it is determined that the previously linked branch should be unlinked, the first and second code fragments at that branch are unlinked by reading the information stored in the associated memory area at the time of linking, and using that information to reset the branch to its state prior to the linking.
    Type: Grant
    Filed: January 5, 2001
    Date of Patent: April 20, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Vasanth Bala, Evelyn Duesterwald, Sanjeev Banerjia
  • Publication number: 20040015919
    Abstract: A &PHgr; function provides a mechanism for static single assignment in the presence of predicated code. Guards placed on each source operand of the &PHgr; function indicate the condition under which the corresponding source operand is live and provide correct materialization of the &PHgr; functions after code reordering. For control functions &PHgr;c representing a confluence of live reaching definitions at a join point in the control flow graph, the guards indicate the basic block which is the source of the edge associated with the source operand. The &PHgr;c operands are paired with the source basic block of the incoming edge(s) along which they are live. The operands are also ordered according to a topological ordering of their associated block. This ordering is maintained through subsequent code transformations. In the topological ordering, the source of the edge from which the definition was passed is defined.
    Type: Application
    Filed: March 22, 2001
    Publication date: January 22, 2004
    Inventors: Carol Linda Thompson, Vatsa Santhanam, Dz-Ching Ju, Vasanth Bala
  • Publication number: 20030182653
    Abstract: Systems and methods for verifying execution of translated code operative on a host computer system different from the computer system designated for the original program code. In one arrangement, the system and method fetch program code, translate program code, emit the translated program code into at least one code cache, execute the translated code within the at least one code cache, interpret the program code, and compare a translator generated state with an interpreter generated state to confirm desired code execution.
    Type: Application
    Filed: March 22, 2002
    Publication date: September 25, 2003
    Inventors: Giuseppe Desoli, Vasanth Bala, Evelyn Duesterwald
  • Publication number: 20030110478
    Abstract: A method of producing a caching dynamic translator with portable run-time code synthesis includes programming hardware independent replacement functions in a high level programming language for the caching dynamic translator, and compiling the hardware independent replacement functions to produce hardware dependent computer executable replacement functions.
    Type: Application
    Filed: November 21, 2001
    Publication date: June 12, 2003
    Inventors: Evelyn Duesterwald, Giuseppe Desoli, Vasanth Bala
  • Publication number: 20030101439
    Abstract: The present disclosure relates to a system and method for emulating a computer system. In one arrangement, the system and method pertain to fetching program code, translating program code, emitting translated program code into at least one code cache, and executing translated code within the at least one code cache in lieu of associated program code when a semantic function of the associated program code is requested. Operation of the system and method can be facilitated with an application programming interface that, in one arrangement, can comprise a set of functions available to the translator including an emit fragment function with which the translator can emit code fragments into code caches of the dynamic execution layer interface, and an execute function with which the translator can request execution of code fragments contained within the at least one code cache.
    Type: Application
    Filed: November 29, 2001
    Publication date: May 29, 2003
    Inventors: Giuseppe Desoli, Vasanth Bala, Evelyn Duesterwald
  • Publication number: 20030033593
    Abstract: Apparatus for dynamically transforming and caching at least one computer program. The apparatus comprises computer executable instructions stored on one or more computer readable storage media. The apparatus includes instructions for dynamically transforming and caching code fragments and for causing the code fragments to be executed by at least one computer processor. The apparatus also includes instructions providing an application programming interface enabling the at least one computer program to activate the instructions for dynamically transforming code fragments and the instructions for caching code fragments.
    Type: Application
    Filed: August 8, 2001
    Publication date: February 13, 2003
    Inventors: Evelyn Duesterwald, Giuseppe Desoli, Paolo Faraboschi, Joseph A. Fisher, Vasanth Bala
  • Publication number: 20030018906
    Abstract: An application module is rewritten by overwriting executable code at identified authorization points with control transfers to a managed challenge system such that a rewritten application module results. The managed challenge system is constructed to include the overwritten executable code, and performs an authorization check upon acquiring control from an authorization point. The managed challenge system is linked to the rewritten application module.
    Type: Application
    Filed: July 16, 2002
    Publication date: January 23, 2003
    Applicant: Liquid Machines, Inc.
    Inventors: Michael D. Smith, Vasanth Bala
  • Publication number: 20020184618
    Abstract: The present invention provides for native execution of an application on a client using code segments transmitted from a server over a network. The server includes an application code source, and a server code segment manager. The server may also include an application code transformation manager if the code source is not in the native binary format of the client. The client includes a client code segment manager, a code cache linker and manager, a code cache, and a CPU. When the client seeks to execute an application, code segments are transmitted from the server to the client and are stored in the code cache. The CPU then executes the code segments natively. When a code segment branches to a segment not in the cache, control passes to the client code segment manager, which requests the needed code segment from the server code segment manager of the server.
    Type: Application
    Filed: June 4, 2001
    Publication date: December 5, 2002
    Inventors: Vasanth Bala, Paolo Faraboschi, Giuseppe Desoli
  • Patent number: 6470492
    Abstract: A method and apparatus for selecting hot traces for translation and/or optimization is described in the context of a caching dynamic translator. The code cache stores hot traces. Profiling is done at locations that satisfy a start-of-trace condition, e.g., the targets of backward taken branches. A hot target of a backward taken branch is speculatively identified as the beginning of a hot trace, without the need to profile the blocks that make up the trace. The extent of the speculatively selected hot trace is determined by an end-of-trace condition, such as a backward taken branch or a number of interpreted or native instructions. The interpreter is augmented with a mode in which it emits native instructions that are cached. A trace is cached by identifying a hot start of a trace and then continuing interpretation while storing the emitted native instruction stream until an end-of-trace condition is met.
    Type: Grant
    Filed: May 14, 1999
    Date of Patent: October 22, 2002
    Assignee: Hewlett-Packard Company
    Inventors: Vasanth Bala, Evelyn Duesterwald
  • Publication number: 20020104075
    Abstract: A method and apparatus for selecting hot traces for translation and/or optimization is described in the context of a caching dynamic translator. The code cache stores hot traces. Profiling is done at locations that satisfy a start-of-trace condition, e.g., the targets of backward taken branches. A hot target of a backward taken branch is speculatively identified as the beginning of a hot trace, without the need to profile the blocks that make up the trace. The extent of the speculatively selected hot trace is determined by an end-of-trace condition, such as a backward taken branch or a number of interpreted or native instructions. The interpreter is augmented with a mode in which it emits native instructions that are cached. A trace is cached by identifying a hot start of a trace and then continuing interpretation while storing the emitted native instruction stream until an end-of-trace condition is met.
    Type: Application
    Filed: May 14, 1999
    Publication date: August 1, 2002
    Inventors: VASANTH BALA, EVELYN DUESTERWALD
  • Publication number: 20020066081
    Abstract: A system and method for growing a hot trace in a program during the program's execution in a dynamic translator, comprising the steps of: identifying an initial block as the first block in a trace to be selected; until an end-of-trace condition is reached, applying static branch prediction rules to the terminating branch of a last block in the trace to identify a next block to be added to the selected trace; and adding the identified next block to the selected trace.
    Type: Application
    Filed: January 5, 2001
    Publication date: May 30, 2002
    Inventors: Evelyn Duesterwald, Vasanth Bala, Sanjeev Banerjia
  • Patent number: 6351844
    Abstract: A method is shown for selecting active, or hot, code traces in an executing program for storage in a code cache. A trace is a sequence of dynamic instructions characterized by a start address and a branch history which allows the trace to be dynamically disassembled. Each trace is terminated by execution of a trace terminating condition which is a backward taken branch, an indirect branch, or a branch whose execution causes the branch history for the trace to reach a predetermined limit. As each trace is generated by the executing program, it is loaded into a buffer for processing. When the buffer is full, a counter corresponding to the start address of each trace is incremented. When the count for a start address exceeds a threshold, then the start address is marked as being hot. Each hot trace is then checked to see if the next trace in the buffer shares the same start address, in which case the hot trace is cyclic.
    Type: Grant
    Filed: November 5, 1998
    Date of Patent: February 26, 2002
    Assignee: Hewlett-Packard Company
    Inventor: Vasanth Bala
  • Publication number: 20020013938
    Abstract: A link-time optimization scheme is capable of removing from dead code from code fragments in a program which arise after the linking of code fragments. The scheme may be applied runtime to fragments which are linked in a caching dynamic translator or applied when linking fragments subsequent to the compilation of object code. The removal of dead code may be facilitated by the use of epilogs corresponding to exits from a fragment and prologs corresponding to entries into a fragment.
    Type: Application
    Filed: January 5, 2001
    Publication date: January 31, 2002
    Inventors: Evelyn Duesterwald, Vasanth Bala, Sanjeev Banerjia