IP Library › Patent Application 12394194
Patent Application
App. No. 12/394,194

Configurable object graph traversal with redirection for garbage collection

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/394,194
Abstract

A configurable object graph traversal component with redirection capability for use in garbage collectors and other related applications. The component may be implemented in either hardware or in software, and provides an interface that allows reuse of the same component for the various traversal tasks performed during garbage collection. The interface supports redirecting traversal to new copies of moved objects, updating referring cells, performing cycle detection efficiently, and in some embodiments also supports selecting the direction of traversal, handling exits from the traversed memory region specially, and providing access to the old address of copied cells.

Claims (51)

1 . A machine comprising: at least one configurable traversal component for traversing an object graph stored in one or more memory devices, the component comprising:

a means for starting the traversal

a means for inputting the initial cell

an interface for signaling from the traversal component to at least one configuration component, the interface comprising:

a means for passing the memory address of the cell currently being examined, and

a means for indicating when the address is valid;

an interface for signaling from at least one configuration component to the traversal component, the interface comprising:

a means for indicating that traversing can continue by recursing into the current cell

a means for indicating that traversing can continue by skipping the current cell

a means for redirecting the traversal to a cell other than the one received from the traversal component;

a means for reading information from the memory devices in which the object graph is stored; and

a means for indicating when the traversal is complete.

2 . The machine of claim 1 , wherein at least one configuration component comprises a cycle detection means.

3 . The machine of claim 1 , wherein at least one traversal component further comprises:

a means for inputting the start address and size of the memory region to traverse, and

a means for indicating to the configuration component when an exit from the region being traversed is encountered.

4 . The machine of claim 1 , wherein at least one traversal component further comprises:

a means for indicating in which direction to traverse the cells within each object.

5 . The machine of claim 1 , wherein at least one traversal component further comprises:

a means for indicating whether non-heap cells should be indicated to the configuration component.

6 . The machine of claim 1 , wherein at least one traversal component further comprises:

a means for indicating the size of the current cell to the configuration means.

7 . The machine of claim 1 , wherein at least one traversal component further comprises:

a means for indicating to the configuration component the old address of a cell in an object that has been redirected to a new address.

8 . The machine of claim 1 , wherein the stack of at least one traversal component has fixed size.

9 . The machine of claim 1 , wherein the traversal component is implemented at least partially in semiconductor logic.

10 . The machine of claim 1 , wherein the stack is semiconductor memory embedded within the traversal component.

11 . The machine of claim 1 , wherein the traversal component is implemented at least partially in computer executable software stored in one or more memory devices in the machine.

12 . A method of traversing an object graph stored in one or more memory devices in a computing device, the method comprising:

inputting the initial cell to be traversed to a traversal component

initializing, by the traversal component, a range from the initial cell

while unprocessed cells remain in the range, performing the following steps repeatedly by the traversal component:

computing the address of the current cell to traverse and reading the current cell

invoking a configuration component, and supplying the current cell and its address to the configuration component

obtaining a new address to which traversal is to be redirected from the configuration component

if the new address is a special value indicating that the current cell should not be traversed, continuing with the next cell

pushing the current range on stack if it still contains unprocessed cells

computing a new range from the new address returned by the configuration component; and

while the stack is not empty, popping a range from the stack and repeating the above step.

13 . The method of claim 12 , wherein also the size of the object denoted by the current cell is supplied to the configuration component.

14 . A computer readable medium having a computer program embodied therein, the computer program operable to control a computing device to perform:

inputting the initial cell to be traversed

initializing a range from the initial cell

while unprocessed cells remain in the range:

computing the address of the current cell to traverse and reading the current cell

invoking a configuration component, and supplying the current cell and its address to the configuration component

obtaining a new address to which traversal is to be redirected from the configuration component

if the new address is a special value indicating that the current cell should not be traversed, continuing with the next cell

pushing the current range on stack if it still contains unprocessed cells

computing a new range from the new address returned by the configuration component; and

while the stack is not empty, popping a range from the stack and repeating the above step.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2012
From: TATU YLONEN OY
To: CLAUSAL COMPUTING OY
Reel/Frame 028391/0707 →