Patents by Inventor David Wallman
David Wallman 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: 7941802Abstract: Techniques for implementing virtual machine instructions suitable for execution in virtual machines are disclosed. The inventive virtual machine instructions can effectively represent the complete set of operations performed by the conventional Java Bytecode instruction set. Moreover, the operations performed by conventional instructions can be performed by relatively fewer inventive virtual machine instructions. Thus, a more elegant, yet robust, virtual machine instruction set can be implemented. This, in turn, allows implementation of relatively simpler interpreters as well as allowing alternative uses of the limited 256 (28) Bytecode representation (e.g., a macro representing a set of commands). As a result, the performance of virtual machines, especially, those operating in systems with limited resources, can be improved by using the inventive virtual machine instructions.Type: GrantFiled: August 14, 2006Date of Patent: May 10, 2011Inventors: Stepan Sokolov, David Wallman
-
Publication number: 20090276600Abstract: One embodiment of the present invention provides a system that determines memory usage for a computing device. Within the computing device, an operating system manages memory allocation, and speculatively allocates otherwise-unused memory in an attempt to improve performance. During operation, the system receives a request to estimate the memory usage for the computing device. In response, the system determines an active subset of the computing device's memory, for instance by determining the set of memory pages that have been accessed within a specified recent timeframe. The system then uses this active subset to produce an estimate of actively-used memory for the computing device. By producing an estimate of actively-used memory, which does not include inactive program memory and inactive memory speculatively-allocated for the operating system, the system facilitates determining the actual amount of additional memory available for programs on the computing device.Type: ApplicationFiled: May 5, 2008Publication date: November 5, 2009Applicant: ORACLE INTERNATIONAL CORPORATIONInventor: David Wallman
-
Patent number: 7543288Abstract: Techniques for implementing virtual machine instructions suitable for execution in virtual machines are disclosed. The inventive virtual machine instructions can effectively represent the complete set of operations performed by the conventional Java Bytecode instruction set. Moreover, the operations performed by conventional instructions can be performed by relatively fewer inventive virtual machine instructions. Thus, a more elegant, yet robust, virtual machine instruction set can be implemented. This, in turn, allows implementation of relatively simpler interpreters as well as allowing alternative uses of the limited 256 (28) Bytecode representation (e.g., a macro representing a set of commands). As a result, the performance of virtual machines, especially, those operating in systems with limited resources, can be improved by using the inventive virtual machine instructions.Type: GrantFiled: March 27, 2001Date of Patent: June 2, 2009Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 7197750Abstract: Improved techniques for determining Java hashcode values for Java objects are disclosed. The techniques can be implemented to use a new Java Bytecode instruction which is suitable for execution by a Java virtual machine. As such, the new Java Bytecode instruction can be executed to determine Java hashcode value. Moreover, as will be appreciated, the Java hashcode values can be determined without invoking the Java method which is conventionally used to determine hashcode values. This means that the costly overhead associated with repeatedly invoking Java methods is avoided. In other words, operations that are conventionally performed each time this method is invoked need not be performed. As a result, the performance of virtual machines, especially those operating with limited resources (e.g., embedded systems), can be improved.Type: GrantFiled: June 28, 2001Date of Patent: March 27, 2007Assignee: Sun Microsystems, Inc.Inventors: David Wallman, Stepan Sokolov
-
Patent number: 7181724Abstract: Improved techniques for representation of Java data types in virtual machines are disclosed. The techniques can be implemented to represent signatures of Java methods as arrays of references. Each of the references in an array can represent a parameter for a Java method. Accordingly, a signature can be represented as an array of references, wherein each reference in the array can reference a Java type indicator or an internal class representation. The Java type indicator represents a Java primitive type (e.g., byte, integer, double, etc.) The internal class representation is typically the representation of a Java class as represented in a virtual machine. As will be appreciated, an array organization allows for more efficient access to information. Thus, unlike conventional techniques, there is no need to start at the beginning of the signature and sequentially read it to find a particular parameter's data type.Type: GrantFiled: June 20, 2001Date of Patent: February 20, 2007Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Publication number: 20060277543Abstract: Techniques for implementing virtual machine instructions suitable for execution in virtual machines are disclosed. The inventive virtual machine instructions can effectively represent the complete set of operations performed by the conventional Java Bytecode instruction set. Moreover, the operations performed by conventional instructions can be performed by relatively fewer inventive virtual machine instructions. Thus, a more elegant, yet robust, virtual machine instruction set can be implemented. This, in turn, allows implementation of relatively simpler interpreters as well as allowing alternative uses of the limited 256 (28) Bytecode representation (e.g., a macro representing a set of commands). As a result, the performance of virtual machines, especially, those operating in systems with limited resources, can be improved by using the inventive virtual machine instructions.Type: ApplicationFiled: August 14, 2006Publication date: December 7, 2006Applicant: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 7124407Abstract: Techniques for increasing the performance of virtual machines are disclosed. It can be determined whether a program instruction which is to be executed by the virtual machine is a branch instruction, and whether a basic block of code is present in a code cache. If so, the basic block of code can be executed. The basic block includes code that can be executed for the program instruction. A cache can be used to store the basic block for program instructions that are executed by the virtual machine. The program instruction may be a bytecode and the code cache can be implemented as a native code cache.Type: GrantFiled: August 16, 2000Date of Patent: October 17, 2006Assignee: Sun Microsystems, Inc.Inventor: David Wallman
-
Patent number: 7117489Abstract: Techniques for customization of JAVA runtime environments are disclosed. The techniques can be used to provide JAVA runtime environments that are specifically tailored for various JAVA applications. Accordingly, for a particular JAVA application, an optimized runtime environment can be created. One or more optional attributes which represent the desired runtime customizations are generated. As will be appreciated, the optional attributes can be generated in the attribute table in the class file. The optional attributes can then be parsed and appropriate features can be loaded into the virtual machine. In this way, JAVA runtime environments can be customized based on a particular JAVA application requirement. Moreover, customizations can be automated using a runtime performance manager that interacts with various other components that operate to first generate and then load optional attributes into the JAVA runtime environment.Type: GrantFiled: June 20, 2001Date of Patent: October 3, 2006Assignee: Sun Microsystems, Inc.Inventors: David Wallman, Stepan Sokolov
-
Patent number: 7096466Abstract: Improved techniques for loading class files into virtual computing machines are disclosed. The techniques seek to provide a mechanism that will generally improve the efficiency of virtual machines by selectively loading information into a virtual machine. A new class attribute (“load-attribute”) is defined and implemented for class files. This can be, for example, implemented as a “load-attribute” table that lists the components that have been selected for loading into the virtual machine. In addition, the load-attribute may provide references to the selected components in the class file. Accordingly, various components of the class file can be marked for loading and selectively loaded.Type: GrantFiled: March 26, 2001Date of Patent: August 22, 2006Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 7096467Abstract: Techniques for initialization of Java classes are disclosed. As such, the techniques can be implemented in a Java virtual machine to initialize Java classes represented in Java class files. A Java class loader suitable for loading class files into the Java virtual machine is disclosed. As will be appreciated, the Java class loader facilitates loading and execution of the Java initialization methods that need to be executed in order to initialize Java classes. Moreover, the Java class loader operates to remove the Java initialization methods after they have been executed and no longer serve a useful purpose. This means that the virtual machine can utilize its memory space more efficiently. As a result, the performance of virtual machines, especially those operating with limited resources is improved.Type: GrantFiled: June 28, 2001Date of Patent: August 22, 2006Assignee: Sun Microsystems, Inc.Inventors: David Wallman, Stepan Sokolov
-
Patent number: 7082597Abstract: Improved techniques for representation of objects in a Java™ programming environment are disclosed. The techniques are highly suitable for representation of Java™ objects inside virtual machines, especially those that operate with limited resources (e.g., embedded systems). In accordance with one embodiment, a Java™ object representation is disclosed. As will be appreciated, the Java™ object representation provides a reference that can be used to directly access the internal class representation associated with the object. The internal class representation provides information regarding the Java™ object (e.g., object size, object type, static fields, etc.) As a result, information regarding Java™ objects can quickly be accessed. This means that the processing time conventionally needed to access information regarding Java™ objects is reduced. Thus, performance of virtual machines, especially in systems with limited computing power and/or memory, can be enhanced.Type: GrantFiled: June 20, 2001Date of Patent: July 25, 2006Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 7065747Abstract: An enhanced Java Bytecode verifier suitable for operation in a Java computing environment is disclosed. The enhanced Java Bytecode verifier operates to determine whether one or more Java conventional Bytecode commands within a stream of Bytecodes are likely to place a reference to a Java object on the execution stack. In one embodiment, the conventional Java Bytecode commands identified as such are translated by the enhanced Java Bytecode verifier into one or more corresponding Java commands. When a corresponding command is executed, the reference associated with the conventional Java command is placed on a reference stack as well as the execution stack.Type: GrantFiled: May 8, 2001Date of Patent: June 20, 2006Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 7036120Abstract: Improved techniques for representation of objects in a Java™ programming environment are disclosed. The techniques are highly suitable for representation of Java™ objects inside virtual machines, especially those that operate with limited resources (e.g., embedded systems). A cluster of Java™ object representations is disclosed. Each of the Java™ object representations provide a reference to a Java™ object and a reference to the class associated with the Java™ object. Accordingly, a two-tier representation is provided which allows efficient implementation of applications which need to access information regarding both Java™ objects and classes. As a result, quick access to information regarding Java™ objects can be achieved.Type: GrantFiled: July 31, 2001Date of Patent: April 25, 2006Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 7020874Abstract: Improved techniques for loading class files into virtual computing machines are disclosed. These techniques provide a mechanism that will generally improve the efficiency of virtual machines by selectively loading information into a virtual machine. As will be appreciated, this allows a better use of the resources of the virtual machine. This is especially effective in virtual machines that operate with limited memory resources (e.g., embedded systems). In one embodiment, class files suitable for loading into a virtual machine are initially loaded into a memory portion (e.g., heap memory). Then, information that is needed to be loaded into the virtual machine is selected. Finally, only the selected information is loaded into the virtual machine.Type: GrantFiled: March 26, 2001Date of Patent: March 28, 2006Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 6996813Abstract: Improved frameworks for loading and execution of portable, platform independent programming instructions within a virtual machine are described. The improved frameworks provides a mechanism that will generally improve the runtime performance of virtual machines by eliminating the need to always traverse a constant pool at runtime to execute a Java™ instruction. In addition, specific data structures that are suitable for use within a virtual machine and methods for creating such data structures are described. Accordingly, an enhanced Java™ bytecode representation having a pair of Java™ bytecode streams is disclosed. The enhanced Java™ bytecode has a Java™ code stream suitable for storing various Java™ commands as bytecodes within a code stream. A Java™ data stream of the enhanced Java™ bytecode representation is used to store the data parameters associated with the Java™ commands in the code stream. Actual parameter values, or references to actual parameter values can be provided in the data stream.Type: GrantFiled: October 31, 2000Date of Patent: February 7, 2006Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 6988261Abstract: Techniques for generation of Java™ macro instructions suitable for use in Java™ computing environments are disclosed. As such, the techniques can be implemented in a Java™ virtual machine to efficiently execute Java™ instructions. As will be appreciated, a Java™ macro instruction can be substituted for two or more Java™ Bytecode instructions. This, in turn, reduces the number of Java™ instructions that are executed by the interpreter. As a result, the performance of virtual machines, especially those operating with limited resources, is improved. A Java™ macro instruction can be generated for conventional Java™ instruction sequences or sequences of Java™ instruction that are provided in a reduced set of instruction. In any case, sequences that are frequently encountered can be replaced by a Java™ macro instruction. These sequences are typically encountered when Java™ objects are instantiated, during programming loops, and when a local variables are assigned a value.Type: GrantFiled: August 24, 2001Date of Patent: January 17, 2006Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 6978456Abstract: Improved frameworks for loading and execution of portable, platform independent programming instructions within a virtual machine are disclosed. The improved frameworks provide a mechanism that will generally improve the runtime performance of virtual machines by eliminating the need to always traverse a constant pool at runtime to execute a Java instruction. In effect, the described system contemplates doing some extra work during the loading of a class into a virtual machine by obtaining the information from the constant pool during loading and representing that information in a form that can be used more efficiently at runtime. Accordingly, methods for creating data structures suitable for use by a virtual machine to execute load constant commands, as well as methods for execution of Java load constant instructions are disclosed.Type: GrantFiled: October 31, 2000Date of Patent: December 20, 2005Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Patent number: 6971097Abstract: Methods and apparatus for implementing a virtual machine that supports the execution of more than one application per virtual machine process are described. According to one aspect of the present invention, a computing system includes a processor, a memory, and a virtual machine that is in communication with the processor. The virtual machine is arranged to enable one or more jobs to run on the virtual machine, and is further arranged to create a heap in the memory for each job that runs on the virtual machine. In one embodiment, the virtual machine includes a jobs manager, a class manager, and a heap manager. In such an embodiment, the heap manager manages substantially all heaps in the memory that are created by the virtual machine.Type: GrantFiled: June 9, 2000Date of Patent: November 29, 2005Assignee: Sun Microsystems, Inc.Inventor: David Wallman
-
Patent number: 6964033Abstract: Techniques for customization of Java runtime environments are disclosed. The techniques can be used to provide Java runtime environments that are specifically tailored for various Java applications. Accordingly, for a particular Java application, an optimized runtime environment can be created. One or more optional attributes which represent the desired runtime customizations are generated. As will be appreciated, the optional attributes can be generated in the attribute table in the class file. The optional attributes can then be parsed and appropriate features can be loaded into the virtual machine. In this way, Java runtime environments can be customized based on a particular Java application requirement. Moreover, customizations can be automated using a runtime performance manager that interacts with various other components that operate to first generate and then load optional attributes into the Java runtime environment.Type: GrantFiled: June 20, 2001Date of Patent: November 8, 2005Assignee: Sun Microsystems, Inc.Inventors: David Wallman, Stepan Sokolov
-
Patent number: 6959430Abstract: The present invention pertains to techniques for creating and maintaining objects in object-oriented environments. The techniques are especially well suited for Java programming environments. In accordance with one aspect of the invention, specialized Java heaps are disclosed. In contrast to conventional heaps, the specialized Java heap is designated for storing Java objects with similar traits in the same memory portion. As such, objects with similar traits can be allocated and maintained in a designated memory portion. Another aspect of the invention provides methods for allocating objects in the heap memory. These methods can be used to create and associate objects with similar traits in a specialized heap. As will be appreciated, objects can be created and maintained more efficiently in this manner. As a result, the performance of virtual machines, especially those operating with relatively limited resources (e.g., embedded systems), is improved.Type: GrantFiled: May 9, 2001Date of Patent: October 25, 2005Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman