Method and apparatus for optimizing exact garbage collection using a bifurcated data structure
First Claim
1. A computer controlled method for locating a pointer value within a data structure that includes a header structure, wherein said method comprises steps of:
- (a) constructing said data structure whereby a pointer memory area is separated from a data value memory area by said header structure, said pointer memory area including a pointer variable containing said pointer value, said header structure containing a header value distinguishable from said pointer value and adjacent to said pointer memory area;
(b) scanning said pointer memory area to locate said pointer value; and
(c) advancing past said header structure and said data value memory area upon detection of said header value.
2 Assignments
0 Petitions
Accused Products
Abstract
Apparatus, methods, systems and computer program products are disclosed describing a data structure and associated processes that optimize garbage collection techniques. The disclosed data structure can be used as an instantiated object in an object-oriented programming environment. The data structure uses a data structure header to separate the portion of the data structure that contains pointer values from the portion of the data structure that contains non-pointer values. The contents of the first word of the data structure header is distinguishable from any pointer value. Thus, a garbage collection procedure can more rapidly locate the pointer values in the data structure. Another advantage of this data structure organization, when applied to instantiated objects, is that the position of an instance variable (with respect to the object header structure) remains constant for all instantiated objects including those based on subclasses of the original class.
142 Citations
21 Claims
-
1. A computer controlled method for locating a pointer value within a data structure that includes a header structure, wherein said method comprises steps of:
-
(a) constructing said data structure whereby a pointer memory area is separated from a data value memory area by said header structure, said pointer memory area including a pointer variable containing said pointer value, said header structure containing a header value distinguishable from said pointer value and adjacent to said pointer memory area; (b) scanning said pointer memory area to locate said pointer value; and (c) advancing past said header structure and said data value memory area upon detection of said header value. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus having a central processing unit (CPU) and a memory coupled to said CPU, for locating a pointer value within a data structure in said memory, said data structure including a header structure, wherein said apparatus comprises:
-
a construction mechanism configured to construct said data structure in said memory, said data structure comprising a pointer memory area separated from a data value memory area by said header structure, said pointer memory area including a pointer instance variable containing said pointer value, said header structure containing a header value distinguishable from said pointer value and adjacent to said pointer memory area; a scanning mechanism configured to scan said pointer memory area to locate said pointer value; a header detection mechanism configured to detect said header value during the operation of the scanning mechanism; and an advance mechanism configured to advance past said header structure and said data value memory area dependent on the header detection mechanism. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer system having a central processing unit (CPU) and a memory coupled to said CPU, for locating a pointer value within a data structure in said memory, said data structure including a header structure, wherein said computer system comprises:
-
a construction mechanism configured to construct said data structure in said memory, said data structure comprising a pointer memory area separated from a data value memory area by said header structure, said pointer memory area including a pointer variable containing said pointer value, said header structure containing a header value distinguishable from said pointer value and adjacent to said pointer memory area; a scanning mechanism configured to scan said pointer memory area to locate said pointer value; a header detection mechanism configured to detect said header value during the operation of the scanning mechanism; and an advance mechanism configured to advance past said header structure and said data value memory area dependent on the header detection mechanism. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer program product comprising:
-
a computer usable storage medium having computer readable code embodied therein for causing a computer to locate a pointer value within a data structure in said memory, said data structure including a header structure;
said computer readable code comprising;computer readable program code devices configured to cause said computer to effect a construction mechanism configured to construct said data structure in said memory, said data structure comprising a pointer memory area separated from a data value memory area by said header structure, said pointer memory area including a pointer variable containing said pointer value, said header structure containing a header value distinguishable from said pointer value and adjacent to said pointer memory area; computer readable program code devices configured to cause said computer to effect a scanning mechanism configured to scan said pointer memory area to locate said pointer value; computer readable program code devices configured to cause said computer to effect a header detection mechanism configured to detect said header value during the operation of the scanning mechanism; and computer readable program code devices configured to cause said computer to effect an advance mechanism configured to advance past said header structure and said data value memory area dependent on the header detection mechanism. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A memory containing an instantiated object data structure wherein said memory comprises:
-
a pointer memory area containing a pointer instance variable for storing a pointer value; a data value memory area for storing a non-pointer value; and an object header structure containing a header value distinguishable from said pointer value and adjacent to said pointer memory area the object header structure separating the pointer memory area and the data value memory area.
-
Specification