Patents by Inventor Steven K. Heller
Steven K. Heller 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: 7788242Abstract: A method for inserting an object into a concurrent set including obtaining a key associated with the object, traversing the concurrent set using a first thread containing the key, identifying a first insertion point while traversing the concurrent set, where the first insertion point is before a current node and after a predecessor node, obtaining a first lock for the predecessor node after identifying the first insertion point, validating the predecessor node and the current node after obtaining the lock, inserting a new node into the concurrent set after validating, where the new node is associated with the object, and releasing the first lock after inserting the new node.Type: GrantFiled: August 23, 2006Date of Patent: August 31, 2010Assignee: Oracle America, Inc.Inventors: Nir N. Shavit, Maurice Herlihy, Steven K. Heller, Victor M. Luchangco, Mark S. Moir
-
Patent number: 7599973Abstract: In a generational, copying garbage collector, young generation collection may be made more efficient by dynamically measuring object survival rates as a function of “fine-grained” allocation age, and choosing, on the basis of these survival rates, part of the young generation that will be not be collected, but instead scanned for pointers to objects in the rest of the young generation. The rest of the young generation, including objects referenced by the pointers, is then collected.Type: GrantFiled: January 12, 2006Date of Patent: October 6, 2009Assignee: Sun Microsystems, Inc.Inventors: David L. Detlefs, Antonios Printezis, Steven K. Heller
-
Patent number: 7428560Abstract: A garbage collector treats a heap as divided into regions. From a candidate set of those regions, it selects the collection sets on which it performs collection increments from among those regions in accordance with a selection criterion separate from the ages of the objects that those regions contain. It nonetheless segregates objects according to age, placing objects in such a manner that no candidate-set region containing an object whose age is less than some predetermined maximum also contains an object of a different age.Type: GrantFiled: November 11, 2004Date of Patent: September 23, 2008Assignee: Sun Microsystems, Inc.Inventors: David L. Detlefs, Steven K. Heller
-
Patent number: 7424477Abstract: A set of structures and techniques are described herein whereby an exemplary concurrent shared object, namely a shared skip list, can be implemented in a lock-free manner. Indeed, we have developed a number of interesting variants of a lock-free shared skip-list, including variants that may be employed to provide a lock-free shared dictionary. In some variants, a key-value dictionary is implemented.Type: GrantFiled: September 3, 2003Date of Patent: September 9, 2008Assignee: Sun Microsystems, Inc.Inventors: Paul A. Martin, Guy L. Steele, Jr., Nir N. Shavit, Steven K. Heller, Mark S. Moir, Victor M. Luchangco
-
Patent number: 7404182Abstract: The present invention provides a technique for reducing the number of write barriers without compromising garbage collector performance or correctness. To that end, a compiler defers emitting write barriers until it reaches a subsequent instruction in the mutator code. At this point, the compiler may elide repeated or unnecessary write-barrier code so as to emit only those write barriers that provide useful information to the garbage collector. By eliminating write-barrier code in this manner, the amount of write-barrier overhead in the mutator can be minimized, consequently enabling the mutator to execute faster and more efficiently. Further, collocating write barriers after the predetermined instruction also enables the compiler to generate object code having better cache performance and more efficient use of guard code than is possible using conventional write-barrier implementations.Type: GrantFiled: October 3, 2003Date of Patent: July 22, 2008Assignee: Sun Microsystems, Inc.Inventors: Alexander T. Garthwaite, Steven K. Heller
-
Publication number: 20080059470Abstract: A method for inserting an object into a concurrent set including obtaining a key associated with the object, traversing the concurrent set using a first thread containing the key, identifying a first insertion point while traversing the concurrent set, where the first insertion point is before a current node and after a predecessor node, obtaining a first lock for the predecessor node after identifying the first insertion point, validating the predecessor node and the current node after obtaining the lock, inserting a new node into the concurrent set after validating, where the new node is associated with the object, and releasing the first lock after inserting the new node.Type: ApplicationFiled: August 23, 2006Publication date: March 6, 2008Applicant: Sun Microsystems, Inc.Inventors: Nir N. Shavit, Maurice Herlihy, Steven K. Heller, Victor M. Luchangco, Mark S. Moir
-
Patent number: 7340494Abstract: A garbage collector treats a garbage-collected heap as divided into heap regions, for each of which it maintains a respective remembered set, whose entries list the locations where references located in the heap outside that region refer to references inside that region. The remembered sets are used during space-incremental collection operations on collection sets of those regions; if the garbage collector determines that objects in the collection set are not referred to directly or indirectly from outside the collection set, it reclaims the memory space that they occupy. It places entries into the remembered sets independently of the locations at which the references were found, so any region can be chosen for inclusion in any collection set; no predetermined collection order is required. Instead, the garbage collector performs global marking operations and uses the results to select for collection-set membership the regions that it can most likely collect efficiently.Type: GrantFiled: November 11, 2004Date of Patent: March 4, 2008Assignee: Sun Microsystems, Inc.Inventors: David L. Detlefs, Steven K. Heller, Alexander T. Garthwaite
-
Patent number: 7281112Abstract: One embodiment of the present invention provides a system that systematically monitors and records performance information in a computer system. During operation, the system periodically measures a number of performance parameters in the computer system. The system then stores data representing values for the measured performance parameters in a long-term storage space. Next, the system recurrently compresses data stored in the long-term storage space, thereby allowing additional data representing newly collected performance information to be stored in the long-term storage space.Type: GrantFiled: February 28, 2005Date of Patent: October 9, 2007Assignee: Sun Microsystems, Inc.Inventors: Kenny C. Gross, Steven K. Heller, Keith A. Whisnant, Aleksey M. Urmanov
-
Patent number: 7103887Abstract: In response to source code that represents instructions for dynamically allocating memory to objects, a compiler/interpreter produces instructions that implement a garbage collector. The garbage collector operates in garbage-collection cycles, which include parallel-execution operations such as locating reachable objects. Each thread maintains a respective task queue onto which it pushes identifiers of objects thus found and from which it pops those identifiers in order to begin the tasks of locating the further objects to which objects specified by the thus-popped identifiers refer. A thread's access to its respective task queue ordinarily occurs on a last-in, first-out basis, but the access mode switches to a first-in, first-out basis if the number of task-queue entries exceeds a predetermined threshold.Type: GrantFiled: June 27, 2001Date of Patent: September 5, 2006Assignee: Sun Microsystems, Inc.Inventors: Nir N. Shavit, Steven K. Heller, Christine H. Flood
-
Patent number: 6934741Abstract: A garbage collector employs a plurality of task queues for a parallel-execution operation in a garbage-collection cycle. Each task queue is associated with a different ordered pair of the threads that perform the parallel-execution operation in parallel. One of the threads, referred to as that task queue's “enqueuer” thread, is the only one that can “push” onto that queue an identifier of a dynamically identified task. The other thread, referred to as that task queue's “dequeuer,” is the only one that can “pop” tasks from that task queue for execution. Since, for each task queue, there is only one thread that can “push” task identifiers on to it and only one thread that can “pop” task identifiers from it, the garbage collector can share dynamically identified tasks optimally among its threads without suffering the cost imposed by making combinations of otherwise separate machine instructions atomic.Type: GrantFiled: June 27, 2001Date of Patent: August 23, 2005Assignee: Sun Microsystems, Inc.Inventors: Nir N. Shavit, Steven K. Heller, Christine H. Flood
-
Patent number: 6842838Abstract: A computer system (10) implements a memory allocator that employs a data structure (FIG. 3) to maintain an inventory of dynamically allocated memory available to receive new data. It receives from one or more programs requests that it allocate memory from a dynamically allocable memory “heap.” It responds to such requests by performing the requested allocation and removing the thus-allocated memory block from the inventory. Conversely, it adds to the inventory memory blocks that the supported program or programs request be freed. In the process, it monitors the frequencies with which memory blocks of various sizes are allocated, and it projects from those frequencies future-demand values for memory blocks of those sizes. It then splits larger blocks into smaller ones preemptively, i.e., before a request for the result of the splitting.Type: GrantFiled: March 21, 2002Date of Patent: January 11, 2005Assignee: Sun Microsystems, Inc.Inventors: Steven K. Heller, David L. Detlefs, Ross C. Knippel
-
Patent number: 6839822Abstract: A computer system (10) implements a memory allocator that employs a data structure (FIG. 3) to maintain an inventory of dynamically allocated memory available to receive new data. It receives from one or more programs requests that it allocate memory from a dynamically allocable memory “heap.” It responds to such requests by performing the requested allocation and removing the thus-allocated memory block from the inventory. Conversely, it adds to the inventory memory blocks that the supported program or programs request be freed. In the process, it monitors the frequencies with which memory blocks of different sizes are allocated, and it projects from those frequencies future demand for different-sized memory blocks. When it needs to coalesce multiple smaller blocks to fulfil an actual or expected request for a larger block, it bases its selection of which constituent blocks to coalesce on whether enough free blocks of a constituent block's size exist to meet the projected demand for them.Type: GrantFiled: October 29, 2001Date of Patent: January 4, 2005Assignee: Sun Microsystems, Inc.Inventors: Ross C. Knippel, Steven K. Heller, David L. Detlefs
-
Patent number: 6801990Abstract: A computer system (10) implements a memory allocator that employs a data structure (FIG. 3) to maintain an inventory of dynamically allocated memory available to receive new data. It receives from one or more programs requests that it allocate memory from a dynamically allocable memory “heap.” It responds to such requests by performing the requested allocation and removing the thus-allocated memory block from the inventory. Conversely, it adds to the inventory memory blocks that the supported program or programs request be freed. In the process, it monitors the frequencies with which memory blocks of various sizes are allocated, and it projects from those frequencies future demand for memory blocks of those sizes. To split a relatively large block in order to meet an actual or expected request for a smaller block, it bases its selection of the larger block to be split on whether the supply of free blocks of the larger block's size is great enough to meet the expected demand for such blocks.Type: GrantFiled: October 29, 2001Date of Patent: October 5, 2004Assignee: Sun Microsystems, Inc.Inventors: Ross C. Knippel, Steven K. Heller, David L. Detlefs
-
Patent number: 6791939Abstract: In accordance with methods and systems consistent with the present invention, an improved failure recovery system is provided that, upon detecting a failure, generates new routings for the network which (1) avoid the failure and (2) avoid deadlock. In this manner, after a failure is detected, the network remains as operational as possible while still avoiding deadlock. Thus, by using the improved failure recovery system, a network failure has a much less severe impact on the network than in conventional systems.Type: GrantFiled: June 2, 1999Date of Patent: September 14, 2004Assignee: Sun Microsystems, Inc.Inventors: Guy L. Steele, Jr., Steven K. Heller, Daniel Cassiday
-
Patent number: 6718492Abstract: A system is disclosed for providing, from an input data word comprising a plurality of input data units having an input arrangement and a mask word comprising a plurality of mask bits each associated with one of the data units, an output data word in which the data units are arranged according to the mask bits. The system includes a bit balancer module and a plurality of rearrangement modules. The bit balancer module is configured to divide the input data units comprising the input data word into a plurality of data word portions, each data unit being assigned to one of the data word portions based on a pattern of mask bits of the mask word relative to the mask bit associated with the respective data unit. Each rearrangement module is configured to provide, from one of the data word portions and associated mask bits, an output data word portion in which the data units are arranged according to the mask bits.Type: GrantFiled: April 7, 2000Date of Patent: April 6, 2004Assignee: Sun Microsystems, Inc.Inventors: Nir N. Shavit, Guy L. Steele, Jr., Steven K. Heller
-
Patent number: 6631421Abstract: Methods and systems consistent with the present invention provide a family of networks ranging from 2 nodes to 16 nodes that can be partitioned in an unconstrained manner. That is, where the number of nodes in one of these networks is N, subnetwork can contain any number of nodes from 1 to N−1 as long as the total number of nodes in both subnetworks equals N. Furthermore, each subnetwork can be partitioned repeatedly until reaching the atomic level (i.e., when the subnetwork contains a single node). In accordance with methods and systems consistent with the present invention, when a network is partitioned, each subnetwork has various desirable properties. For example, the maximum path length between any two nodes in each subnetwork nodes is 3, and each to subnetwork has a set of deadlock-free routings.Type: GrantFiled: June 2, 1999Date of Patent: October 7, 2003Assignee: Sun Microsystems, Inc.Inventors: Guy L. Steele, Jr., Steven K. Heller, Daniel Cassiday, Jon Wade
-
Patent number: 6603742Abstract: In accordance with methods and systems consistent with the present invention, an improved technique for reconfiguring networks is provided. By using this technique, a network administrator can reconfigure their network while it remains operational. As a result, users can continue to utilize the network during reconfiguration. Additionally, in accordance with methods and systems consistent with the present invention, a number of network topologies are provided that are designed to facilitate reconfiguration. When using one of these topologies, the network can be reconfigured with a minimal amount of recabling, thus reducing the amount of time required for reconfiguration.Type: GrantFiled: June 2, 1999Date of Patent: August 5, 2003Assignee: Sun Microsystems, Inc.Inventors: Guy L. Steele, Jr., Steven K. Heller, Daniel Cassiday, Jon Wade
-
Patent number: 6584073Abstract: In accordance with methods and systems consistent with the present invention, a number of improved network topologies are provided that have been selected to improve network performance based on various performance characteristics. The topologies are also selected to facilitate network reconfiguration, including adding nodes and removing, nodes. As a result, the network topologies in accordance with methods and systems consistent with the present invention do not follow a rigid, predefined pattern; rather, these topologies have been selected for network performance purposes as well as reconfiguration purposes.Type: GrantFiled: June 2, 1999Date of Patent: June 24, 2003Assignee: Sun Microsystems, Inc.Inventors: Guy L. Steele, Jr., Steven K. Heller, Jon Wade
-
Patent number: 6567856Abstract: In accordance with methods and systems consistent with the present invention, an improved deadlock-free routing system is provided to a family of network topologies where both the configuration of the networks and the routings are designed to optimize performance. In this system, each network utilizes static routing tables that perform deadlock-free routing in an optimized manner to reduce the amount of communication overhead when routing traffic. Specifically, the routings in accordance with methods and systems consistent with the present invention require no more than two hops for networks up to a size of 16 nodes. As a result, the deadlock-free routing provided in accordance with methods and systems consistent with the present invention incurs less communications overhead than some conventional systems while still avoiding deadlock.Type: GrantFiled: June 2, 1999Date of Patent: May 20, 2003Assignee: Sun Microsystems, Inc.Inventors: Guy L. Steele, Jr., Steven K. Heller, Daniel Cassiday
-
Patent number: RE38650Abstract: In brief summary, the invention provides a new message packet transfer system, which may be used in, for example, a multiprocessor computer system. The message packet transfer system comprises a plurality of switching nodes interconnected by communication links to define at least one cyclical packet transfer path having a predetermined diameter. The switching nodes may be connected to, for example, digital data processors and memory to form processing nodes in an multiprocessor computer system, and/or to other sources and destinations for digital data contained in the message packets. The switching nodes transfer message packets each from a respective one of the switching nodes as a respective source switching node to a respective one of the switching nodes as a respective destination switching node.Type: GrantFiled: March 2, 2001Date of Patent: November 9, 2004Assignee: Sun Microsystems, Inc.Inventors: Jon P. Wade, Steven K. Heller