Photo
Patents

Text of patents is confidential until patent has been granted. Therefore, some documents are only available from the internal IBM version of this page.

Issued and Filed patent applications are available from the U.S. Patent and Trademark Office Database.


Patents

Patent (PDF) Method for Detection of Unused Cyclic Data Structures in Linear Time

United States Patent number 6879991, issued April 12, 2005.
D. Bacon
Docket number YOR8-2000-1143, filed 11 December 2000.

An algorithm for collecting cyclic garbage in linear time.

Patent (PDF) Method to Provide Concurrency Control over Objects Without Atomic Operations on Non-Shared Objects

United States Patent number 6772153, issued August 3, 2004.
D. Bacon and S. Fink
Docket number YOR8-1999-0473, filed August 7, 2000.

A lazy locking protocol that normally avoids any global synchronization when most potentially shared objects are in fact only locked by one thread.

Patent (PDF) Removal of Unreachable Methods in Object-oriented Applications Based on Program Interface Analysis

United States Patent number 6654951, issued November 11, 2003.
D. Bacon, C. Laffra, P. Sweeney, and F. Tip
Docket number YO998-511, filed December 14, 1998.

Rapid Type Analysis for incomplete programs using interface specifications -- a variation of the algorithm from my thesis.

Patent (PDF) Method for Determining Reachable Methods in Object-Oriented Applications that use Class Libraries

United States Patent number 6463581, issued 8 October 2002.
D. Bacon, C. Laffra, P. Sweeney, and F. Tip
Docket number YO998-511, filed December 14, 1998.

Rapid Type Analysis for incomplete programs -- a variation of the algorithm from my thesis.

Patent (PDF) Locking and Unlocking Mechanism for Controlling Concurrent Access to Objects

D. Bacon
United States Patent number 6247025, issued 12 June 2001.
IBM docket number YO997-225, filed July 18, 1997.

Fast nested locking technology developed for Java. For more information, see the paper and the presentation.

Patent (PDF) Object-Oriented Dispatch Optimization

D. Bacon, M. Wegman, and K. Zadeck
United States Patent number 6041179, issued 21 March 2000.
IBM Docket number YO995-073, filed 3 October 1996.

Method for converting virtual to statically-dispatched calls in object oriented languages. This technique is generally known as rapid type analysis (RTA) and is described in a paper and in my thesis.


Patents Pending

Text (MS Word) Figure (MS Word) Breaking Read Barrier to Apply Optimizations

D. Bacon, P. Cheng, and V. Rajan
Docket number YOR9-2003-0177, filed 15 December 2003.

In the Metronome, breaking up the steps of a read barrier allows the application of optimizations which leacd to greatly reduced read barrier overhead.

Text (MS Word) Method and Apparatus for Optimizing Away a Null Check

D. Bacon, P. Cheng, and V. Rajan
Docket number YOR9-2003-0178, filed 15 December 2003.

In the Metronome the null check associated with a read barrier can be optimized away by "sinking" the check to the first reference to the pointer, at which point the system performs an implicit null check, usually using a hardware trap with no overhead when not triggered.

Text (MS Word) Garbage Collector with Eager Read Barrier

D. Bacon, P. Cheng, and V. Rajan
Docket number YOR9-2003-0179, filed 15 December 2003.

Read barriers have typically been "lazy", that is, they are applied when a pointer is used. In the Metronome pointers are forwarded eagerly, greatly reducing the overhead, as when an array pointer is used in a loop.

Text (MS Word) Figure (MS Word) Method and Apparatus for Dynamic Incremental Defragmentation of Memory

D. Bacon, P. Cheng, and V. Rajan
Docket number YOR9-2003-0180, filed 15 December 2003.

Incremental defragmentation in the Metronome allows the construction of a collector that is able to move objects but usually only moves a few percent of the total objects on each collection.

Text (MS Word) Figure (MS Word) Method and Apparatus for Scheduling and Performing Garbage Collection in a Real-time System with Guaranteed Space Bounds

D. Bacon, P. Cheng, and V. Rajan
Docket number YOR9-2003-0181, filed 15 December 2003.

Method used in the Metronome to ensure that the time-based scheduling of the incremental collector meets the space bounds set for the system.

Text (MS Word) Figure (MS Word) Method and Apparatus for Efficient Implementation of Discontiguous Objects

M. Arnold, D. Bacon, P. Cheng, and V. Rajan
Docket number YOR9-2003-0182, filed 15 December 2003.

In the Metronome, large objects are stored as discontiguous data to avoid external fragmentation and large pauses when atomically copying an object. This invention shows how discontiguous objects can be implemented for almost the same cost as contiguous objects.

Text (Lotus Word Pro) Figure (PDF) Space-Efficient Object Models for Object-Oriented Programming Languages

D. Bacon, S. Fink, and D. Grove
Docket number YOR9-2002-0300, filed 10 December 2002.

A method for compact representation of objects in an object-oriented language or system.

Text (Lotus Word Pro) Figures (Lotus Freelance) Method for Concurrent Detection of Unused Cyclic Data Structures

D. Bacon and V.T. Rajan
Docket number YOR8-2000-1142, filed 11 December 2000.

An algorithm for concurrently collecting cyclic garbage in linear time.

Text (Lotus Word Pro) Figures (Lotus Freelance) A Serially Reusable Virtual Machine

D. Dillenberger, A. Webb, R. Berry, D. Schmidt, B. Hutchison, J. West, R. Bordawekar, D. Bacon, and S. Paice
Docket number YOR8-1999-0507.

A technique for efficiently reusing a virtual machine context in a transactional environment so that every transaction sees a "clean" virtual machine. The basis of IBM's Shiraz virtual machine.


Disclosures

Text (Lotus Word Pro) Figures (Lotus Freelance) Lazy Generation of Hash Codes in a Garbage Collected System

D. Bacon and M. Wegman
Abandoned due to prior art.

Technique for representing a hash code with only two bits per object.