Patents by Inventor Ole Agesen

Ole Agesen 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: 6799191
    Abstract: With better knowledge of the behavior of objects in a running application, it is possible to improve execution environment decisions that affect management of such objects. For example, if available, object lifetime statistics could be employed in decisions that affect how and where objects are placed, e.g., on allocation or during operation of automatic dynamic memory management facilities such as a garbage collector. Typically, instrumenting all objects to sample lifetimes or other characteristics would impose an impractical level of overhead. We present a technique for dynamic sampling of a subset of allocated objects that incurs low runtime overheads. Coupled with automatic memory management or collection facilities, this technique allows us to improve the efficiency of a collector by segregating objects, sampled and non-sampled alike, based on observed characteristics such as object lifetime. The sampling techniques facilitate tracking of many kinds of object information.
    Type: Grant
    Filed: May 15, 2001
    Date of Patent: September 28, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Ole Agesen, Alexander T. Garthwaite, Timothy L. Harris
  • Patent number: 6711672
    Abstract: A sequence of input language (IL) instructions of a guest system is converted, for example by binary translation, into a corresponding sequence of output language (OL) instructions of a host system, which executes the OL instructions. In order to determine the correct return address after any IL call to a subroutine, the corresponding OL return address is stored in an array at a location determined by a hash function. After completion of execution of the OL translation of the IL subroutine, execution is transferred to the address stored in the array at the location where the correct OL return address was previously stored. This location may have been overwritten by some other OL return address.
    Type: Grant
    Filed: September 22, 2000
    Date of Patent: March 23, 2004
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Patent number: 6560619
    Abstract: A multiprocessor, multi-program, stop-the-world garbage collection program is described. The system initially over partitions the root sources, and then iteratively employs static and dynamic work balancing. Garbage collection threads compete dynamically for the initial partitions. Work stealing double-ended queues, where contention is reduced, are described to provide dynamic load balancing among the threads. Contention is resolved by using atomic instructions. The heap is broken into a young and an old generation where parallel semi-space copying is used to collect the young generation and parallel mark-compacting the old generation. Speed and efficiency of collection is enhanced by use of card tables and linking objects, and overflow conditions are efficiently handled by linking using class pointers. The garbage collection termination employs a global status word.
    Type: Grant
    Filed: November 1, 2000
    Date of Patent: May 6, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Christine H. Flood, Ole Agesen
  • Patent number: 6529919
    Abstract: A garbage collector collects a train-managed heap in accordance with the train algorithm. In doing so, it concentrates into a respective train the heap-located objects that belong to garbage cycles even if those cycles additionally include certain types of objects that are outside the train-managed heap. It does so by using objects within the heap as proxies for those extra-heap objects, and it evacuates into a proxy object's train any collection-set objects referred to by the extra-heap objects for which the proxy object is a proxy. The objects in those garbage cycles containing the extra-heap objects can thereby be collected incrementally despite the extra-heap references to them.
    Type: Grant
    Filed: February 15, 2000
    Date of Patent: March 4, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Ole Agesen, Alexander T. Garthwaite
  • Publication number: 20020147872
    Abstract: A sequentially performed implementation of a compound compare-and-swap (nCAS) operation has been developed. In one implementation, a double compare-and-swap (DCAS) operation does not result in a fault, interrupt, or trap in the situation where memory address A2 is invalid and the contents of memory address A1 are unequal to C1. In some realizations, memory locations addressed by a sequentially performed nCAS or DCAS instruction are reserved (e.g., locked) in a predefined order in accordance with a fixed total order of memory locations. In this way, deadlock between concurrently executed instances of sequentially performed nCAS instructions can be avoided. Other realizations defer responsibility for deadlock avoidance to the programmer.
    Type: Application
    Filed: April 9, 2001
    Publication date: October 10, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Guy L. Steele, Ole Agesen, Nir N. Shavit
  • Patent number: 6449626
    Abstract: A garbage collector collects a generation of a collected heap in accordance with the train algorithm. It employs remembered sets associated with respective car sections to keep track of references into the associated car sections. Each remembered set contains entries that identify respective regions in the generation that contain references into the associated car section. In some collection cycles, the collector collects a collection set of more than one car section. When it does, it processes the remembered-set entries by searching the regions specified thereby not only for references into the associated car sections but also for references into other car sections in the collection set. The collector further treats the generation as divided into segments, for each of which it maintains a Boolean value that indicates whether the segment has been searched during the current collection cycle.
    Type: Grant
    Filed: August 19, 1999
    Date of Patent: September 10, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Alexander T. Garthwaite, Ole Agesen
  • Patent number: 6415302
    Abstract: A garbage collector collects a generation of a collected heap in accordance with the train algorithm. It employs remembered sets associated with respective car sections to keep track of references into the associated car sections. Each remembered set contains entries that identify respective regions in the generation that contain references into the associated car section. When the collector collects a car section, it reclaims the car section's objects for which there are no references, looking only in regions that the car section's remembered set specifies. Additionally, the collector treats the generation as divided into segments, for each of which it maintains a farthest-forward-car value that identifies which, among the car sections into which the respective segment contains a reference, is closest to collection.
    Type: Grant
    Filed: August 19, 1999
    Date of Patent: July 2, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Alexander T. Garthwaite, Ole Agesen
  • Publication number: 20020019716
    Abstract: With better knowledge of the behavior of objects in a running application, it is possible to improve execution environment decisions that affect management of such objects. For example, if available, object lifetime statistics could be employed in decisions that affect how and where objects are placed, e.g., on allocation or during operation of automatic dynamic memory management facilities such as a garbage collector. Typically, instrumenting all objects to sample lifetimes or other characteristics would impose an impractical level of overhead. We present a technique for dynamic sampling of a subset of allocated objects that incurs low runtime overheads. Coupled with automatic memory management or collection facilities, this technique allows us to improve the efficiency of a collector by segregating objects, sampled and non-sampled alike, based on observed characteristics such as object lifetime. The sampling techniques facilitate tracking of many kinds of object information.
    Type: Application
    Filed: May 15, 2001
    Publication date: February 14, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Ole Agesen, Alexander T. Garthwaite, Timothy L. Harris
  • Publication number: 20010044856
    Abstract: Run time sampling techniques have been developed whereby representative object lifetime statistics may be obtained and employed to adaptively affect tenuring decisions, memory object promotion and/or storage location selection. In some realizations, object allocation functionality is dynamically varied to achieve desired behavior on an object category-by-category basis. In some realizations, phase behavior affects sampled lifetimes e.g., for objects allocated at different phases of program execution, and the dynamic facilities described herein provide phase-specific adaptation tenuring decisions, memory object promotion and/or storage location selection. In some realizations, reversal of such decisions is provided.
    Type: Application
    Filed: May 15, 2001
    Publication date: November 22, 2001
    Applicant: Sun Microsystems, Inc.
    Inventors: Ole Agesen, Alexander T. Garthwaite, Timothy L. Harris
  • Patent number: 6314563
    Abstract: An object structure's header (40) allocates a two-bit synchronization-state field (42) solely to monitor data for implementing synchronization on that object. When the object is locked by a particular execution thread, or when one or more execution threads are waiting for a lock or notification on that object, its header contains a pointer to monitor resources in the form of a linked list of lock records (50, 52, 54) associated with the threads involved. The synchronization-state field (42) ordinarily contains an indication of whether such a linked list exists and, if so, whether its first member is associated with a thread that has a lock on the object. When a thread attempts to gain access to that linked list, it employs an atomic swap operation to place a special busy value in that lock-state field (42) and write its execution-environment pointer into the object's header (40).
    Type: Grant
    Filed: March 31, 1999
    Date of Patent: November 6, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Ole Agesen, David L. Detlefs, Alex Garthwaite
  • Patent number: 6253215
    Abstract: Methods, systems, and articles of manufacture consistent with the present invention provide a program component including a set of instructions native to the system, include in the set of native instructions an instruction to maintain information on use of a particular object, and permit reuse of memory resources corresponding to the particular object based on an indication from a source that the particular object is no longer being used, the source being different from any source used to provide information on use of objects associated with non-native instructions of the program component. Additionally, garbage collection is not permitted during native code operations to read or write data in object fields because during such operations an indication exists that such collection may be inaccurate and could possibly reclaim or relocate objects referenced by native code though not specified as such in the native code stack and global variables.
    Type: Grant
    Filed: August 17, 1998
    Date of Patent: June 26, 2001
    Assignee: Sun Microsystems
    Inventors: Ole Agesen, David L. Detlefs, Derek R. White
  • Patent number: 6223335
    Abstract: A system for providing a double compare and swap operation is disclosed. In the disclosed system, a first single compare and swap operation is performed. If a contents of a first variable is equal to an old value for the first variable, then the first compare and swap operation writes a value to the first variable indicating that the variable is not accessible and indicates success. A second single compare and swap operation is executed in the event that the first single compare and swap operation indicates success. If a contents of a second variable is equal to an old value for the second variable, then the second single compare and swap operation writes a new value for the second variable into the second variable and indicates success. If the second single compare and swap operation indicates success, a new value for the first variable is written to the first variable.
    Type: Grant
    Filed: December 9, 1998
    Date of Patent: April 24, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Robert S. Cartwright, Jr., Ole Agesen
  • Patent number: 6192517
    Abstract: In accordance with the present invention a method for modifying a sequence of instructions to improve memory management within a storage device during execution of the instructions, comprises the steps, performed by a processor, of (a) analyzing the sequence of instructions for a conflict indicating an undeterminable variable type, (b) determining the type of conflict, and (c) modifying the sequence of instructions to eliminate the conflict based on the determination.
    Type: Grant
    Filed: November 9, 1999
    Date of Patent: February 20, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Ole Agesen, David L. Detlefs
  • Patent number: 6173442
    Abstract: An object structure's header (40) allocates a two-bit synchronization-state field (42) solely to monitor data for implementing synchronization on that object. When the object is locked by a particular execution thread, or when one or more execution threads are waiting for a lock or notification on that object, its header contains a pointer to monitor resources in the form of a linked list of lock records (50, 52, 54) associated with the threads involved. The synchronization-state field (42) ordinarily contains an indication of whether such a linked list exists and, if so, whether its first member is associated with a thread that has a lock on the object. When a thread attempts to gain access to that linked list, it employs an atomic swap operation to place a special busy value in that lock-state field (42) and write its execution-environment pointer into the object's header (40).
    Type: Grant
    Filed: February 5, 1999
    Date of Patent: January 9, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Ole Agesen, David L. Detlefs, Alex Garthwaite, Ross C. Knippel, Y. Srinivas Ramakrishna, Derek White
  • Patent number: 6161217
    Abstract: A computer system (10) is configured as a compiler to translate source code (FIG. 4) into object code (FIG. 6). The source code calls a polymorphic method on a receiver object. The compiler inlines the polymorphic method and guards the inlining with guard code that causes the executing microprocessor to skip the inlining in favor of a virtual method call when it determines that the inlined code is not appropriate for the receiver object. To make that determination, the guard code compares the address of the method version that has been inlined with the receiver object's pointer to its version of the polymorphic method.
    Type: Grant
    Filed: September 14, 1998
    Date of Patent: December 12, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: David L. Detlefs, Ole Agesen
  • Patent number: 6105040
    Abstract: In accordance with the present invention a method is provided for managing objects during a garbage collection operation. The process comprises the steps of compacting objects in a memory, allocating an available memory location for a surviving object and a corresponding hash field, storing the surviving object in the available memory location by copying the surviving object from a previous memory location to the available memory location, and storing a hash value for the surviving object in the hash field. The hash value includes a memory address for the previous memory location. In accordance with another aspect of the present invention, a method is provided for managing objects stored in memory. The method comprises the steps of receiving an instruction to allocate an object, locating space in a memory for the object, storing the object at the located space, and including in the stored object a header portion reflecting a hash status.
    Type: Grant
    Filed: June 30, 1997
    Date of Patent: August 15, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: Ole Agesen
  • Patent number: 6101580
    Abstract: In computer systems which do not inherently distinguish between references and primitive values within a program stack a method and apparatus to assist exact garbage collection techniques utilizes a stack tag cache which operates in conjunction with a program stack and supplies a tag item for every entry in the process stack. The value of a tag item indicates whether the stack entry is either a reference to another memory location or a primitive value, i.e. integer or floating point number. The arrangements and values of the tag items are correlated with changes to the program stack. The stack tag cache includes facilities for swapping the contents of the cache in the event of a trap or context switch, as well as means for redundantly verifying the tag value with intended instruction operand types.
    Type: Grant
    Filed: April 23, 1997
    Date of Patent: August 8, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ole Agesen, Steve Heller, Michael O'Connor, Guy Steele, Marc Tremblay
  • Patent number: 6047125
    Abstract: In accordance with the present invention a method for modifying a sequence of instructions to improve memory management within a storage device during execution of the instructions, comprises the steps, performed by a processor, of (a) analyzing the sequence of instructions for a conflict indicating an undeterminable variable type, (b) determining the type of conflict, and (c) modifying the sequence of instructions to eliminate the conflict based on the determination.
    Type: Grant
    Filed: October 1, 1997
    Date of Patent: April 4, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ole Agesen, David L. Detlefs
  • Patent number: 5909579
    Abstract: Live pointer information for a stream of bytecodes is precomputed for each bytecode. The precomputed full live pointer information is stored only for bytecodes at predetermined intervals in the stream. Between the bytecodes for which full live pointer information is stored, changes in the live pointer information produced by each bytecode are encoded using a suitable compressive coding and stored. Later, when a program which needs the live pointer information, such as garbage collection, is initiated, the full live pointer information for the nearest bytecode preceding the desired bytecode boundary is retrieved along with the intervening coded changes. The changes are decoded and applied to the retrieved live pointer information to generate the live pointer information at the desired bytecode boundary.
    Type: Grant
    Filed: April 23, 1997
    Date of Patent: June 1, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Ole Agesen, David Ungar
  • Patent number: 5873105
    Abstract: A write barrier to stores into a partially relocated large or popular memory object facilitates bounded pause time implementations of relocating garbage collectors, including e.g., copying collectors, generational collectors, and collectors providing compaction. Such a write barrier allows a garbage collector implementation to interrupt relocation of large or popular memory objects so as to meet bounded pause time guarantees. A partially relocated object identifier store including "copy from" identifier storage accessible to write barrier logic allows the write barrier logic to maintain consistency between FromSpace and ToSpace instances of a partially relocated memory object. "Copy from" identifier storage allows the write barrier logic, or a trap handler responsive thereto, to broadcast a store-oriented memory access targeting the FromSpace instance to both FromSpace and ToSpace instances.
    Type: Grant
    Filed: June 26, 1997
    Date of Patent: February 16, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, James Michael O'Connor, Guy L. Steele, Jr., Sanjay Vishin, Ole Agesen, Steven Heller, Derek R. White