Patents by Inventor Robert Griesemer

Robert Griesemer 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: 6910205
    Abstract: Systems and methods for increasing the execution speed of virtual machine instructions for a function are provided. A portion of the virtual machine instructions of the function are compiled into native machine instructions so that the function includes both virtual and native machine instructions. Execution of the native machine instructions may be accomplished by overwriting a virtual machine instruction of the function with a virtual machine instruction that specifies execution of the native machine instructions. Additionally, the original virtual machine instruction may be stored so that the original virtual machine instructions can be regenerated.
    Type: Grant
    Filed: July 12, 2002
    Date of Patent: June 21, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Lars Bak, Robert Griesemer
  • Publication number: 20040205712
    Abstract: Methods and apparatus for dynamically determining whether portions of code should be interpreted or compiled in order to optimize a software application during run-time are disclosed. According to one aspect of the present invention, computer-implemented method for run-time processing of a computer program which includes byte-codes arranged as a plurality of methods includes invoking a first method selected from the plurality of methods. Invoking the first selected method involves interpreting the first selected method. An invocation tracker which is arranged to track the number of invocations of the first selected method is updated, and a determination is made regarding when the invocation tracker indicates that the number of invocations of the first selected method exceeds a threshold value. The first selected method is compiled when it is determined that the invocation tracker indicates that the number of invocations of the first selected method exceeds a threshold value.
    Type: Application
    Filed: April 18, 2001
    Publication date: October 14, 2004
    Inventors: Urs Holzle, Robert Griesemer, David Griswold
  • Patent number: 6742013
    Abstract: Using a subtraction without borrow operation, the first operand lowest order word is subtracted from a second operand lowest order word. If the result of the subtracting is not zero, then a zero (Z) flag is cleared such that a Z flag status is not set. If, however, the result of the subtracting is zero, then the Z flag is set as usual. Next, a first operand next higher order word is subtracted from a second operand next higher order word using a subtraction with borrow and a sticky not Z flag (SBBZ) instruction and, based upon the subtracting, the Z flag is updated accordingly such that it represents the result of the whole multi-word subtraction until the first operand highest order word is subtracted from the second operand highest order word. The comparing of the first operand and the second operand is then based upon the Z flag status, if needed, after the subtraction of the first operand highest order word is subtracted from the second operand highest order word.
    Type: Grant
    Filed: May 3, 2001
    Date of Patent: May 25, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Robert Griesemer
  • Patent number: 6591416
    Abstract: Systems and methods for increasing the execution speed of virtual machine instructions for a function are provided. A portion of the virtual machine instructions of the function are compiled into native machine instructions so that the function includes both virtual and native machine instructions. Execution of the native machine instructions may be accomplished by overwriting a virtual machine instruction of the function with a virtual machine instruction that specifies execution of the native machine instructions. Additionally, the original virtual machine instruction may be stored so that the original virtual machine instructions can be regenerated.
    Type: Grant
    Filed: September 26, 2000
    Date of Patent: July 8, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Lars Bak, Robert Griesemer
  • Patent number: 6553426
    Abstract: Methods and apparatus for efficiently enabling an alternate return address associated with a function call to essentially be stored such that the alternate return address may be readily accessed are disclosed. According to one aspect of the present invention, a method for enabling a return address associated with a function called by a routine to be efficiently stored includes calling the function from within the routine while the routine is executing. In general, the function is external to the routine. The function, once called, begins executing. Eventually, the function returns to the routine. Specifically, the function returns to a location in the routine that is identified by an expected return point, or normal return address. The instruction in the routine that corresponds to the expected return point is a dummy instruction that executes with a low computational overhead but does not affect program execution.
    Type: Grant
    Filed: October 6, 1997
    Date of Patent: April 22, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Urs Hölzle, Robert Griesemer
  • Publication number: 20030033342
    Abstract: Using a subtraction without borrow operation, the first operand lowest order word is subtracted from a second operand lowest order word. If the result of the subtracting is not zero, then a zero (Z) flag is cleared such that a Z flag status is not set. If, however, the result of the subtracting is zero, then the Z flag is set as usual. Next, a first operand next higher order word is subtracted from a second operand next higher order word using a subtraction with borrow and a sticky not Z flag (SBBZ) instruction and, based upon the subtracting, the Z flag is updated accordingly such that it represents the result of the whole multi-word subtraction until the first operand highest order word is subtracted from the second operand highest order word. The comparing of the first operand and the second operand is then based upon the Z flag status, if needed, after the subtraction of the first operand highest order word is subtracted from the second operand highest order word.
    Type: Application
    Filed: May 3, 2001
    Publication date: February 13, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Robert Griesemer
  • Patent number: 6513156
    Abstract: Systems and methods for increasing the execution speed of virtual machine instructions for a function are provided. A portion of the virtual machine instructions of the function are compiled into native machine instructions so that the function includes both virtual and native machine instructions. Execution of the native machine instructions may be accomplished by overwriting a virtual machine instruction of the function with a virtual machine instruction that specifies execution of the native machine instructions. Additionally, the original virtual machine instruction may be stored so that the original virtual machine instructions can be regenerated.
    Type: Grant
    Filed: June 30, 1997
    Date of Patent: January 28, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Lars Bak, Robert Griesemer
  • Publication number: 20020184399
    Abstract: Systems and methods for increasing the execution speed of virtual machine instructions for a function are provided. A portion of the virtual machine instructions of the function are compiled into native machine instructions so that the function includes both virtual and native machine instructions. Execution of the native machine instructions may be accomplished by overwriting a virtual machine instruction of the function with a virtual machine instruction that specifies execution of the native machine instructions. Additionally, the original virtual machine instruction may be stored so that the original virtual machine instructions can be regenerated.
    Type: Application
    Filed: July 12, 2002
    Publication date: December 5, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Lars Bak, Robert Griesemer
  • Patent number: 6467037
    Abstract: Methods and systems for executing instructions utilizing a program counter with one or more data counters are provided. A program counter specifies an instruction in an instruction section to be executed by the computer. A data counter specifies a data location in a data section that includes information to be utilized when the instruction specified by the program counter is executed. By utilizing both a program counter and a data counter, instructions can be efficiently executed without unnecessarily wasting memory space and without wasting time to access data that is not aligned.
    Type: Grant
    Filed: June 30, 1998
    Date of Patent: October 15, 2002
    Assignee: Sun Microsystems, Inc.
    Inventor: Robert Griesemer
  • Patent number: 6415381
    Abstract: Systems and methods for implementing an execution stack which stores frames for functions written in multiple programming languages are provided. The frames for functions written in different programming languages may be interleaved on the same execution stack. A data block on the execution stack may be utilized to traverse the execution stack around a frame by storing a stack pointer and frame pointer to a previous frame. Additionally, exceptions may be propagated, with conversion if necessary, through frames on the execution stack that are written in different programming languages.
    Type: Grant
    Filed: October 12, 1999
    Date of Patent: July 2, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Lars Bak, Robert Griesemer, Urs Hölzle
  • Publication number: 20020062400
    Abstract: Methods and apparatus for efficiently enabling an alternate return address associated with a function call to essentially be stored such that the alternate return address may be readily accessed are disclosed. According to one aspect of the present invention, a method for enabling a return address associated with a function called by a routine to be efficiently stored includes calling the function from within the routine while the routine is executing. In general, the function is external to the routine. The function, once called, begins executing. Eventually, the function returns to the routine. Specifically, the function returns to a location in the routine that is identified by an expected return point, or normal return address. The instruction in the routine that corresponds to the expected return point is a dummy instruction that executes with a low computational overhead but does not affect program execution.
    Type: Application
    Filed: October 6, 1997
    Publication date: May 23, 2002
    Inventors: URS HOLZE, ROBERT GRIESEMER
  • Patent number: 6385660
    Abstract: Systems and methods for implementing site specific message dispatch in an object-oriented environment are provided. Receiver type information may be saved at a message dispatch site in order to provide site specific message dispatch. By allowing message dispatch to vary at different call sites, object-oriented systems may be more efficient and flexible.
    Type: Grant
    Filed: October 6, 1997
    Date of Patent: May 7, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Robert Griesemer, Urs Hölzle
  • Publication number: 20020046298
    Abstract: Systems and methods for increasing the execution speed of virtual machine instructions for a function are provided. A portion of the virtual machine instructions of the function are compiled into native machine instructions so that the function includes both virtual and native machine instructions. Execution of the native machine instructions may be accomplished by overwriting a virtual machine instruction of the function with a virtual machine instruction that specifies execution of the native machine instructions. Additionally, the original virtual machine instruction may be stored so that the original virtual machine instructions can be regenerated.
    Type: Application
    Filed: June 30, 1997
    Publication date: April 18, 2002
    Inventors: LARS BAK, ROBERT GRIESEMER
  • Publication number: 20010011306
    Abstract: Systems and methods for implementing site specific message dispatch in an object-oriented environment are provided. Receiver type information may be saved at a message dispatch site in order to provide site specific message dispatch. By allowing message dispatch to vary at different call sites, object-oriented systems may be more efficient and flexible.
    Type: Application
    Filed: October 6, 1997
    Publication date: August 2, 2001
    Inventors: ROBERT GRIESEMER, URS HOLZLE
  • Patent number: 6237141
    Abstract: Methods and apparatus for dynamically determining whether portions of code should be interpreted or compiled in order to optimize a software application during run-time are disclosed. According to one aspect of the present invention, computer-implemented method for run-time processing of a computer program which includes byte-codes arranged as a plurality of methods includes invoking a first method selected from the plurality of methods. Invoking the first selected method involves interpreting the first selected method. An invocation tracker which is arranged to track the number of invocations of the first selected method is updated, and a determination is made regarding when the invocation tracker indicates that the number of invocations of the first selected method exceeds a threshold value. The first selected method is compiled when it is determined that the invocation tracker indicates that the number of invocations of the first selected method exceeds a threshold value.
    Type: Grant
    Filed: August 2, 1999
    Date of Patent: May 22, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Urs Hölzle, Robert Griesemer, David Griswold
  • Patent number: 6192516
    Abstract: Systems and methods for increasing the execution speed of interpreted programs which utilize an operand stack are provided. The value for the top of the operand stack is stored in one or more registers. A state of the interpreter indicates the data type of the value for the top of the operand stack stored in the one or more registers. An interpreter may be generated that is both fast and efficient in terms of the memory required for the interpreter.
    Type: Grant
    Filed: April 27, 1999
    Date of Patent: February 20, 2001
    Assignee: Sun Microsystems, Inc.
    Inventor: Robert Griesemer
  • Patent number: 6021273
    Abstract: Systems and methods for increasing the execution speed of interpreted programs which utilize an operand stack are provided. The value for the top of the operand stack is stored in one or more registers. A state of the interpreter indicates the data type of the value for the top of the operand stack stored in the one or more registers. An interpreter may be generated that is both fast and efficient in terms of the memory required for the interpreter.
    Type: Grant
    Filed: June 30, 1997
    Date of Patent: February 1, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: Robert Griesemer
  • Patent number: 6009517
    Abstract: Systems and methods for implementing an execution stack which stores frames for functions written in multiple programming languages are provided. The frames for functions written in different programming languages may be interleaved on the same execution stack. A data block on the execution stack may be utilized to traverse the execution stack around a frame by storing a stack pointer and frame pointer to a previous frame. Additionally, exceptions may be propagated, with conversion if necessary, through frames on the execution stack that are written in different programming languages.
    Type: Grant
    Filed: October 6, 1997
    Date of Patent: December 28, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Lars Bak, Robert Griesemer, Urs Holzle
  • Patent number: 5995754
    Abstract: Methods and apparatus for dynamically determining whether portions of code should be interpreted or compiled in order to optimize a software application during run-time are disclosed. According to one aspect of the present invention, computer-implemented method for run-time processing of a computer program which includes byte-codes arranged as a plurality of methods includes invoking a first method selected from the plurality of methods. Invoking the first selected method involves interpreting the first selected method. An invocation tracker which is arranged to track the number of invocations of the first selected method is updated, and a determination is made regarding when the invocation tracker indicates that the number of invocations of the first selected method exceeds a threshold value. The first selected method is compiled when it is determined that the invocation tracker indicates that the number of invocations of the first selected method exceeds a threshold value.
    Type: Grant
    Filed: October 6, 1997
    Date of Patent: November 30, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Urs Holzle, Robert Griesemer, David Griswold
  • Patent number: RE39519
    Abstract: Systems and methods for implementing an execution stack which stores frames for functions written in multiple programming languages are provided. The frames for functions written in different programming languages may be interleaved on the same execution stack. A data block on the execution stack may be utilized to traverse the execution stack around a frame by storing a stack pointer and frame pointer to a previous frame. Additionally, exceptions may be propagated, with conversion if necessary, through frames on the execution stack that are written in different programming languages.
    Type: Grant
    Filed: July 1, 2004
    Date of Patent: March 13, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Lars Bak, Robert Griesemer, Urs Hölzle