IP Library Granted Patent US 8,577,936
Granted Patent B2
US 8,577,936 · App. 12/955,271 · Granted Nov 5, 2013

Fixup cache tool for object memory compaction in an information handling system

Inventors: Peter Wiebe Burka (Ottawa, CA); Jeffrey Michael Disher (Ottawa, CA); Daryl James Maier (Unionville, CA); Aleksandar Micic (Ottawa, CA); Ryan Andrew Sciampacone (Nepean, CA)
Assignee: International Business Machines Corporation
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,577,936
App. No.
12/955,271
Granted
Nov 5, 2013
Kind
B2
Abstract

An operating system or virtual machine of an information handling system (IHS) initializes a garbage collector to provide object memory compaction during application execution. The operating system or virtual machine performs move and fixup management within heap or object memory stores. The garbage collector identifies holes or unused portions of heap memory and moves one or more objects during compaction operations. After the garbage collector moves the object, a fixup cache tool fixes up the object pointers within the object. The fixup cache tool maintains a fixup cache that includes pointer information corresponding to the objects that the garbage collector moves. The fixup cache tool employs the pointer information within the fixup cache to update or otherwise fixup the objects within the heap that the garbage collector moves during compaction operations. The fixup cache may provide predictive pointer update information during fixup operations for each object move within the heap.

Claims (36)

1. A method, comprising:

storing an object string in a memory heap, the object string including first and second objects, wherein the first object points to the second object, the second object pointing to another object;

moving, by a garbage collector, one of the first and second objects to a new location in the memory heap, thus providing a moved object;

storing in a fixup cache in a system memory, by a fixup cache tool associated with the garbage collector, location pointer information corresponding to the moved object;

wherein the fixup cache includes first and second cells, the first cell storing location pointer information pointing from the moved object to a preceding object in the object string, the second cell storing location pointer information pointing from the moved object to a next object in the object string;

wherein the fixup cache tool is external to the garbage collector tool; and

modifying the moved object, by the fixup cache tool, with the location pointer information stored in the fixup cache in the system memory and corresponding to the moved object; wherein the modifying step is performed immediately after the storing in a fixup cache step.

2. The method of claim 1 , wherein the modifying step is performed after the storing in a fixup cache step and before moving the another object.

3. The method of claim 1 , wherein the object string comprises a character string.

4. The method of claim 1 , wherein the garbage collector tool and fixup cache tool operate within a virtual machine.

5. An information handling system (IHS), comprising:

a processor;

a system memory, coupled to the processor, the system memory including:

a garbage collector tool that is configured to:

store an object string in a memory heap within the system memory, the object string including first and second objects, wherein the first object points to the second object, the second object pointing to another object;

move one of the first and second objects to a new location in the memory heap, thus providing a moved object;

the memory further including:

a fixup cache tool that is configured to:

store, in a fixup cache in the system memory, location pointer information corresponding to the moved object; and

modify the moved object with the location pointer information stored in the fixup cache in the system memory and corresponding to the moved object;

wherein the fixup cache includes first and second cells, the first cell storing location pointer information pointing from the moved object to a preceding object in the object string, the second cell storing location pointer information pointing from the moved object to a next object in the object string;

wherein the fixup cache tool is external to the garbage collector tool;

wherein the fixup cache tool modifies the moved object with the location pointer information stored in the fixup cache immediately after storing the location pointer information corresponding to the moved object in the fixup cache.

6. The IHS of claim 5 , wherein the fixup cache tool modifies the moved object with the location pointer information stored in the fixup cache after storing the location pointer information corresponding to the moved object in the fixup cache and before the garbage collector tool moves the another object.

7. The IHS of claim 5 , wherein the object string comprises a character string.

8. The IHS of claim 5 , wherein the garbage collector tool and fixup cache tool operate within a virtual machine in the system memory.

9. A computer program product, comprising:

a non-transitory computer readable storage medium;

first instructions that store an object string in a memory heap, the object string including first and second objects, wherein the first object points to the second object, the second object pointing to another object;

second instructions that move one of the first and second objects to a new location in the memory heap, thus providing a moved object;

third instructions that store, in a fixup cache in a system memory, location pointer information corresponding to the moved object;

wherein the fixup cache includes first and second cells, the first cell storing location pointer information pointing from the moved object to a preceding object in the object string, the second cell storing location pointer information pointing from the moved object to a next object in the object string;

wherein the fixup cache tool is external to the garbage collector tool; and

fourth instructions that modify the moved object with the location pointer information stored in the fixup cache in the system memory and corresponding to the moved object; wherein the fourth instructions modify the moved object with the location pointer information stored in the fixup cache immediately after the third instructions store location pointer information in the fixup cache location corresponding to the moved object;

wherein the first, second, third and fourth program instructions are stored on the computer readable storage medium.

10. The computer program product of claim 9 , wherein the fourth instructions modify the moved object with the location pointer information stored in the fixup cache after the third instructions store location pointer information in the fixup cache location corresponding to the moved object and before moving the another object.

Assignments (2)
CONVEYOR IS ASSIGNING UNDIVIDED 50% INTEREST Recorded Jan 11, 2018
From: INTERNATIONAL BUSINESS MACHINES
To: SERVICENOW, INC.; INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045047/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2010
From: BURKA, PETER WIEBE; DISHER, JEFFREY MICHAEL; MICIC, ALEKSANDAR; SCIAMPACONE, RYAN ANDREW; MAIER, DARYL JAMES
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 025763/0767 →
Continuity (1)
Related Publication 20120136906A1 · May 31, 2012