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: 6910205Abstract: 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: GrantFiled: July 12, 2002Date of Patent: June 21, 2005Assignee: Sun Microsystems, Inc.Inventors: Lars Bak, Robert Griesemer
-
Publication number: 20040205712Abstract: 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: ApplicationFiled: April 18, 2001Publication date: October 14, 2004Inventors: Urs Holzle, Robert Griesemer, David Griswold
-
Patent number: 6742013Abstract: 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: GrantFiled: May 3, 2001Date of Patent: May 25, 2004Assignee: Sun Microsystems, Inc.Inventor: Robert Griesemer
-
Patent number: 6591416Abstract: 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: GrantFiled: September 26, 2000Date of Patent: July 8, 2003Assignee: Sun Microsystems, Inc.Inventors: Lars Bak, Robert Griesemer
-
Patent number: 6553426Abstract: 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: GrantFiled: October 6, 1997Date of Patent: April 22, 2003Assignee: Sun Microsystems, Inc.Inventors: Urs Hölzle, Robert Griesemer
-
Publication number: 20030033342Abstract: 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: ApplicationFiled: May 3, 2001Publication date: February 13, 2003Applicant: Sun Microsystems, Inc.Inventor: Robert Griesemer
-
Patent number: 6513156Abstract: 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: GrantFiled: June 30, 1997Date of Patent: January 28, 2003Assignee: Sun Microsystems, Inc.Inventors: Lars Bak, Robert Griesemer
-
Publication number: 20020184399Abstract: 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: ApplicationFiled: July 12, 2002Publication date: December 5, 2002Applicant: Sun Microsystems, Inc.Inventors: Lars Bak, Robert Griesemer
-
Patent number: 6467037Abstract: 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: GrantFiled: June 30, 1998Date of Patent: October 15, 2002Assignee: Sun Microsystems, Inc.Inventor: Robert Griesemer
-
Patent number: 6415381Abstract: 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: GrantFiled: October 12, 1999Date of Patent: July 2, 2002Assignee: Sun Microsystems, Inc.Inventors: Lars Bak, Robert Griesemer, Urs Hölzle
-
Publication number: 20020062400Abstract: 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: ApplicationFiled: October 6, 1997Publication date: May 23, 2002Inventors: URS HOLZE, ROBERT GRIESEMER
-
Patent number: 6385660Abstract: 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: GrantFiled: October 6, 1997Date of Patent: May 7, 2002Assignee: Sun Microsystems, Inc.Inventors: Robert Griesemer, Urs Hölzle
-
Publication number: 20020046298Abstract: 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: ApplicationFiled: June 30, 1997Publication date: April 18, 2002Inventors: LARS BAK, ROBERT GRIESEMER
-
Publication number: 20010011306Abstract: 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: ApplicationFiled: October 6, 1997Publication date: August 2, 2001Inventors: ROBERT GRIESEMER, URS HOLZLE
-
Patent number: 6237141Abstract: 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: GrantFiled: August 2, 1999Date of Patent: May 22, 2001Assignee: Sun Microsystems, Inc.Inventors: Urs Hölzle, Robert Griesemer, David Griswold
-
Patent number: 6192516Abstract: 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: GrantFiled: April 27, 1999Date of Patent: February 20, 2001Assignee: Sun Microsystems, Inc.Inventor: Robert Griesemer
-
Patent number: 6021273Abstract: 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: GrantFiled: June 30, 1997Date of Patent: February 1, 2000Assignee: Sun Microsystems, Inc.Inventor: Robert Griesemer
-
Patent number: 6009517Abstract: 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: GrantFiled: October 6, 1997Date of Patent: December 28, 1999Assignee: Sun Microsystems, Inc.Inventors: Lars Bak, Robert Griesemer, Urs Holzle
-
Patent number: 5995754Abstract: 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: GrantFiled: October 6, 1997Date of Patent: November 30, 1999Assignee: Sun Microsystems, Inc.Inventors: Urs Holzle, Robert Griesemer, David Griswold
-
Patent number: RE39519Abstract: 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: GrantFiled: July 1, 2004Date of Patent: March 13, 2007Assignee: Sun Microsystems, Inc.Inventors: Lars Bak, Robert Griesemer, Urs Hölzle