Patents by Inventor Stepan Sokolov

Stepan Sokolov 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: 6742109
    Abstract: One embodiment of the present invention provides a system for executing variable-size computer instructions, wherein a variable-size computer instruction includes an action component that specifies an operation to be performed and a data component of variable size that specifies data associated with the operation. The system operates by first retrieving the variable-size computer instruction from a computing device's memory. The system then decodes the variable-size computer instruction by separating the variable-size computer instruction into the action component and the data component. Next, the system stores the action component in a first store and the data component in a second store so they can be reused without repeated decoding. Finally, the system provides a first flow path for the action component and a second flow path for the data component.
    Type: Grant
    Filed: November 30, 2000
    Date of Patent: May 25, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Patent number: 6704746
    Abstract: One embodiment of the present invention provides a system for creating objects in a virtual machine. The system operates by receiving a request to create an object within an object-oriented programming system. Upon receiving the request, if a meta-class instance associated with the object does not already exist, the system creates a structure to represent the meta-class instance in a data space that is not subject to garbage collection. If an explicit instruction to create the meta-class instance is detected, the system creates the meta-class instance within a garbage-collected data space.
    Type: Grant
    Filed: December 12, 2000
    Date of Patent: March 9, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20040019672
    Abstract: A management system for a computer system is disclosed. The computer system operates or includes various products (e.g., software products) that can be managed in a management system or collectively by a group of management systems. Typically, the management system operates on a computer separate from the computer system being managed. The management system can make use of a knowledge base of causing symptoms for previously observed problems at other sites or computer systems. In other words, the knowledge base can built from and shared by different users across different products to leverage knowledge that is otherwise disparate. The knowledge base typically grows over time. The management system can use its ability to request information from the computer system being managed together with the knowledge base to infer a problem root cause in the computer system being managed.
    Type: Application
    Filed: April 10, 2003
    Publication date: January 29, 2004
    Inventors: Saumitra Das, Stepan Sokolov, Bill ?apos;Yuan-Chi?apos; Chiu
  • Publication number: 20040015855
    Abstract: Improved techniques for accessing Java class files are disclosed. The techniques provide a mechanism that will generally improve the efficiency of virtual machines by providing a directory for Java class files. The directory can be implemented as an attribute in the attribute portion of the Java class files. Various components of the Java class file can be accessed efficiently by using the directory. In addition, techniques for accessing various components of Java class files using directories are disclosed. The techniques utilize the directory to allow efficient access to the class file. Thus, unlike conventional techniques, there is no need to perform sequential reads in order to locate various components of the Java class file. This allows for better use of resources. As a result, the invention can improve the performance of virtual machines, especially those that operate with limited resources (e.g., embedded systems).
    Type: Application
    Filed: May 9, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: David Wallman, Stepan Sokolov
  • Publication number: 20040015935
    Abstract: 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: Application
    Filed: March 26, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20040015850
    Abstract: 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: Application
    Filed: May 9, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20040015873
    Abstract: 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: Application
    Filed: May 8, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Patent number: 6681234
    Abstract: One embodiment of the present mechanism provides a system for storing long-lived objects defined within an object-oriented programming system. These long-lived objects are created in a virtual machine used for executing platform-independent code and are ordinarily created during initialization of the virtual machine. The system works by allocating a storage area reserved for long-lived objects that is not subject to garbage collection. After the storage area is allocated, the system receives requests to create an object. The system then determines if the object is a long-lived object by referring to a table of long-lived objects. If the object is a long-lived object, it is created and placed in the reserved storage area.
    Type: Grant
    Filed: December 12, 2000
    Date of Patent: January 20, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Patent number: 6581077
    Abstract: One embodiment of the mechanism provides a system for storing short-lived objects defined within an object-oriented programming system. These short-lived objects are created in a virtual machine used for executing platform-independent code and are ordinarily created during normal operation of the virtual machine. The system works by allocating a storage area reserved for short-lived objects that uses a method of garbage collection optimized for short-lived objects. After the storage area is allocated, the system receives requests to create an object. The system then determines if the object is a short-lived object by referring to a table of short-lived objects. If the object is a short-lived object, it is created and placed in the reserved storage area.
    Type: Grant
    Filed: December 12, 2000
    Date of Patent: June 17, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20030079203
    Abstract: Techniques for executing synchronized Java methods are disclosed. As such, the techniques can be implemented in a Java virtual machine to efficiently execute Java instructions. As will be appreciated, monitors (e.g., locks) associated with Java objects for which the synchronized method are being performed are accessed quickly. In other words, the monitors can be quickly released without having to repeat several time-consuming operations which have to be performed in conventional systems. This, in turn, reduces the number of operations that need to be performed to execute synchronized Java methods. As a result, the performance of virtual machines, especially those operating with limited resources, is improved.
    Type: Application
    Filed: October 24, 2001
    Publication date: April 24, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Publication number: 20030079201
    Abstract: Techniques for type checking in Java computing environments are disclosed. As will be appreciated, the techniques can be used by a Java virtual machine to efficiently perform type checking. In one embodiment, a Java class hierarchy is implemented in an internal class representation. The Java class hierarchy represents the hierarchical relationship of the parent classes for the Java class. The Java class hierarchy can be implemented, for example, as an array of class references. The array of class references can be used to efficiently perform type checking in Java computing environments. As a result, the performance of Java virtual machines, especially those operating with limited resources, can be significantly enhanced.
    Type: Application
    Filed: October 24, 2001
    Publication date: April 24, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Publication number: 20030079202
    Abstract: Techniques for handling exceptions raised during the execution of Java computer programs are disclosed. The techniques can be used by a Java virtual machine to efficiently handle exceptions. A method descriptor is implemented in a Java method frame which is stored in the Java execution stack. The method descriptor provides one or more references to exception handlers associated with the Java method. The references can be used to quickly identify and invoke the appropriate exception handler. This can be achieved without having to use a native language execution stack. As a result, the overhead associated with several returns from native functions (routines or methods) can be avoided since the information needed to invoke the appropriate exception handler can be obtained efficiently from the Java execution stack. Accordingly, the performance of Java virtual machines, especially those operating with limited resources, can be significantly enhanced.
    Type: Application
    Filed: October 24, 2001
    Publication date: April 24, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Publication number: 20030079049
    Abstract: Improved techniques for representation of Java data types in Java computing environments are disclosed. A word consisting of four bytes is used to represent primitive and non-primitive Java data types. As will be appreciated, the Java data type representations can be used by a Java virtual machine to efficiently represent various Java data types encountered in Java computing environments. As a result, various components that can represent Java data types (e.g., signatures of Java methods) can efficiently be constructed.
    Type: Application
    Filed: October 24, 2001
    Publication date: April 24, 2003
    Inventor: Stepan Sokolov
  • Publication number: 20030041322
    Abstract: 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: Application
    Filed: August 24, 2001
    Publication date: February 27, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Publication number: 20030041320
    Abstract: 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: Application
    Filed: August 24, 2001
    Publication date: February 27, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Publication number: 20030041181
    Abstract: Improved techniques for representation of Java string objects are disclosed. The techniques are especially useful for representing Java objects in Java computing environments and can thereby improve the performance of a virtual machine, especially those operating with relatively limited resources (e.g., embedded systems with relatively smaller memory and computing power). The techniques can be implemented to create Java string objects as arrays of one-byte characters when it is appropriate. To create Java string objects, an enhanced constructor can be provided in a Java library that is available to application programs (or programmers). In addition, enhanced Java methods can also be provided in the Java library. An array representation flag can optionally be allocated in the Java string object representation. The array representation flag can indicate whether the Java string object is allocated as an array of one-byte or an array of two-byte characters.
    Type: Application
    Filed: August 24, 2001
    Publication date: February 27, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Publication number: 20030041319
    Abstract: Improved techniques for representing Java objects as strings are disclosed. An inventive Java Bytecode instruction suitable for execution by a Java virtual machine is disclosed. The inventive Java Bytecode instruction can be executed by a Java virtual machine to represent Java objects as strings. Moreover, Java objects can be represented as strings without invoking the Java “to_string” method which is conventionally used. This means that the costly overhead associated with repeatedly invoking Java method “to_string” is avoided. In other words, operations that are conventionally performed each time the Java “to_string” 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: Application
    Filed: August 24, 2001
    Publication date: February 27, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Publication number: 20030041321
    Abstract: 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: Application
    Filed: August 24, 2001
    Publication date: February 27, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20030041317
    Abstract: 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: Application
    Filed: August 24, 2001
    Publication date: February 27, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Publication number: 20030028861
    Abstract: One embodiment of the present invention provides a system that facilitates debugging a platform-independent virtual machine. The system operates by providing an agent on the platform-independent virtual machine, which provides a set of functions for accessing variables in the platform-independent virtual machine. The platform-independent virtual machine is adapted to call the set of functions within the agent. Next, the agent examines the current state of the variables in the platform-independent virtual machine. The agent communicates the current state of the variables to a host machine. An operator of the host machine can then analyze the current state of the variables.
    Type: Application
    Filed: June 28, 2001
    Publication date: February 6, 2003
    Inventors: David Wallman, Stepan Sokolov