IP Library › Granted Patent US 8,527,559
Granted Patent B2
US 8,527,559 · App. 13/111,830 · Granted Sep 3, 2013

Garbage collector with concurrent flipping without read barrier and without verifying copying

Inventor: Tatu J. Ylonen (Espoo, FI)
Assignee: Clausal Computing Oy
View Patent ↗
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 8,527,559
App. No.
13/111,830
Granted
Sep 3, 2013
Kind
B2
Abstract

In an object-relocating garbage collector, objects are copied and new copies taken into use concurrently with mutator execution without needing to use a read barrier, and importantly, without requiring verification (read-back) of each copied word and without requiring atomic instructions for the copying. Write barriers, thread-local write barrier buffers and processing them by the garbage collector, and write propagation are used for achieving this.

Claims (45)

1. A method comprising:

relocating, by a garbage collector, a plurality of objects from one or more old copy memory areas to one or more new copy memory areas, the original objects in the old copy memory areas being called the old copies of the objects, and the new copies of the objects in the new copy memory areas being called the new copies;

switching one or more mutators to use the new copies of the relocated objects concurrently with at least one mutator executing; and

achieving dynamic consistency between the old copies and the new copies without activating a read barrier to synchronize activities of the garbage collector and activities of the one or more mutators;

wherein the improvement comprises:

copying, during the relocating, objects from the old copies to the new copies without verifying copying of each copied word.

2. The method of claim 1 , wherein the improvement further comprises:

the copying is performed without using atomic instructions.

3. The method of claim 1 , wherein the improvement further comprises:

monitoring, during the copying, writes by mutators to the old copies of the objects using one or more write barriers;

during the monitoring, collecting information about which memory words in the old copies are written by the mutators during the copying in one or more thread-local data structures associated with one or more mutator threads;

obtaining the thread-local data structures from the one or more mutator threads; and

re-copying, by the garbage collector, the written memory words.

4. The method of claim 3 , wherein the improvement further comprises:

during the re-copying of at least one written memory word, propagating writes to the old objects to the new copies using one or more write barriers.

5. The method of 3 , wherein:

the re-copying uses an atomic instruction to ensure that a propagated value is not overwritten by re-copying a previously written value.

6. The method of claim 1 , wherein the improvement further comprises:

during the switching, propagating writes to the old objects to the new copies and writes to the new copies to the old copies using one or more write barriers.

7. The method of claim 1 , wherein the old copies reside on more than one node in a distributed system.

8. The method of claim 1 , wherein the old copy and the new copy of at least one of the objects reside on different nodes in a distributed system.

9. An apparatus comprising:

one or more processors; and

a memory comprising instructions for causing the one or more processors to:

copy, without verifying copying of each copied word, a plurality of objects from one or more old copy memory areas to one or more new copy memory areas, the original objects in the old copy memory areas being called the old copies of the objects, and the new copies of the objects in the new copy memory areas being called the new copies;

achieve dynamic consistency between the old copies and the new copies without activating a read barrier to synchronize activities of a garbage collector and activities of one or more mutators; and

switch one or more mutators to use the new copies concurrently with at least one mutator executing.

10. The apparatus of claim 9 , wherein the copying is configured to be performed without using atomic memory operations.

11. The apparatus of claim 9 , wherein:

a write barrier is further configured to monitor writes to the old copies and record information about which memory words in old copies have been written in one or more thread-local data structures associated with one or more mutator threads; and

the garbage collector is further configured to obtain the thread-local data structures from the one or more mutator threads, and re-copy the written memory words.

12. The apparatus of claim 9 , wherein the old copy and the new copy of at least one of the objects object reside on different nodes of a distributed system.

13. A computer control logic stored on non-transitory computer-readable medium operable to cause one or more processors to:

relocate a plurality of objects from one or more old copy memory areas to one or more new copy memory areas, the original objects in the old copy memory areas being called the old copies of the objects, and the new copies of the objects in the new copy memory areas being called the new copies;

switch one or more mutators to use the new copies of the relocated objects concurrently with at least one mutator executing; and

achieve dynamic consistency between the old copies and the new copies without activating a read barrier to synchronize activities of the garbage collector and activities of the one or more mutators;

wherein the improvement comprises:

copying, during the relocating, objects from the old copies to the new copies without verifying copying of each copied word.

14. The computer control logic of claim 13 , wherein the copying is performed without using atomic instructions.

15. The computer control logic of claim 13 , wherein the improvement further comprises the computer control logic being operable to:

monitor, during the copying, writes by mutators to the old copies of the objects using one or more write barriers;

during the monitoring, collect information about which memory words in the old copies are written by the mutators during the copying in one or more thread-local data structures associated with one or more mutator threads;

obtain the thread-local data structures from the one or more mutator threads; and

re-copy the written memory words.

16. The computer control logic of claim 13 , wherein the old copy and the new copy of at least one of the objects reside on different nodes in a distributed system.

Assignments (3)
NUNC PRO TUNC ASSIGNMENT Recorded Jan 31, 2023
From: CLAUSAL COMPUTING OY
To: POSTQ IPR OY
Reel/Frame 062540/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2012
From: TATU YLONEN OY
To: CLAUSAL COMPUTING OY
Reel/Frame 028391/0707 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2012
From: YLONEN, TATU J.
To: TATU YLONEN OY
Reel/Frame 028300/0721 →
Continuity (4)
Continuation In Part 13090643 · Apr 20, 2011
Provisional Application 61346594 · May 20, 2010
Provisional Application 61327374 · Apr 23, 2010
Related Publication 20110264713A1 · Oct 27, 2011