Method and apparatus for locating nodes in a carded heap using a card marking structure and a node advance value
First Claim
1. A computer controlled system having a central processing unit (CPU) and a memory coupled to said CPU, for locating a pointer in a node overlapping a first card within a carded heap memory area having a plurality of cards given a card identifier, said carded heap memory area containing a plurality of nodes each containing a node advance value, wherein said system comprises:
- a card maintenance mechanism configured to maintain a card marking structure indicating a first node header for a first node in a second card and a node offset specifying a location of said first node header in said second card;
a first card location mechanism configured to locate said first card given said card identifier, said first card subsequent to said second card in said carded heap memory area;
a second card location mechanism configured to locate said second card given said first card;
a first node location mechanism configured to locate said first node header in said second card using said node offset into said second card; and
a node scanning mechanism configured to scan forward starting with the first node through nodes within the second card using the node advance values of the nodes within the second card until a node that intersects the first card is found.
1 Assignment
0 Petitions
Accused Products
Abstract
Apparatus, methods, systems, and computer program products are disclosed that locate a modified pointer value in a carded heap memory. A plurality of nodes is allocated from the carded heap memory. The carded heap contains at least one structure that indicates the existence or non-existence of a node reference for each card. For those cards containing a node reference the structure also includes the offset from the start of the card to the node reference. A card index or pointer within a card (that is used to generate a card index) is given to the invention. The card index is used to specify a first card. A second card is found given the card index. The invention then follows, starting at the first node in the second card and using the node advance value for each followed node, the nodes in the carded memory area until it locates the node containing the pointer in the first card.
-
Citations
16 Claims
-
1. A computer controlled system having a central processing unit (CPU) and a memory coupled to said CPU, for locating a pointer in a node overlapping a first card within a carded heap memory area having a plurality of cards given a card identifier, said carded heap memory area containing a plurality of nodes each containing a node advance value, wherein said system comprises:
-
a card maintenance mechanism configured to maintain a card marking structure indicating a first node header for a first node in a second card and a node offset specifying a location of said first node header in said second card; a first card location mechanism configured to locate said first card given said card identifier, said first card subsequent to said second card in said carded heap memory area; a second card location mechanism configured to locate said second card given said first card; a first node location mechanism configured to locate said first node header in said second card using said node offset into said second card; and a node scanning mechanism configured to scan forward starting with the first node through nodes within the second card using the node advance values of the nodes within the second card until a node that intersects the first card is found. - View Dependent Claims (2, 3, 4)
-
-
5. A computer controlled method for locating a pointer in a node overlapping a first card within a carded heap memory area having a plurality of cards, said carded heap memory area containing a plurality of nodes each containing a node advance value, wherein said method comprises steps of:
-
(a) maintaining a card marking structure for indicating a first node header for a first node in a second card and a node offset for specifying a location of said first node header in said second card; (b) locating said first card given a card identifier, said first card located subsequent to said second card in said carded heap memory area; (c) locating said second card given said first card; (d) locating said first node header in said second card using said node offset; and (e) scanning forward starting with the first node through nodes within the second card using the node advance values of the nodes within the second card until a node that intersects the first card is found. - View Dependent Claims (6, 7, 8)
-
-
9. An apparatus having a central processing unit (CPU) and a memory coupled to said CPU for locating a pointer in a node overlapping a first card within a carded heap memory area having a plurality of cards given a card identifier, said carded heap memory area containing a plurality of nodes each containing a node advance value, wherein said apparatus comprises:
-
a card maintenance mechanism configured to maintain a card marking structure indicating a first node header for a first node in a second card and a node offset specifying a location of said first node header in said second card; a first card location mechanism configured to locate said first card from said card identifier, said first card located subsequent to said second card in said carded heap memory area; a second card location mechanism configured to locate said second card given said first card; a first node location mechanism configured to locate said first node header in said second card using said node offset into said second card; and a node scanning mechanism configured to scan forward starting with the first node through nodes within the second card using the node advance values of the nodes within the second card until a node that intersects the first card is found. - View Dependent Claims (10, 11, 12, 16)
-
-
13. A computer program product comprising:
a computer usable storage medium having computer readable code embodied therein for causing a computer to locate a pointer in a node overlapping a first card within a carded heap memory area having a plurality of cards given a card identifier, said carded heap memory area containing a plurality of nodes each containing a node advance value, said computer readable code comprising; computer readable program code devices configured to cause said computer to effect a card maintenance mechanism configured to maintain a card marking structure indicating a first node header for a first node in a second card and a node offset specifying a location of said first node header in said second card; computer readable program code devices configured to cause said computer to effect a first card location mechanism configured to locate said first card given said card identifier, said first card located subsequent to said second card in said carded heap memnory area; computer readable program code devices configured to cause said computer to effect a second card location mechanism configured to locate said second card given said first card; computer readable program code devices configured to cause said computer to effect a first node location mechanism configured to locate said first node header in said second card using said node offset into said second card; and computer readable program code devices configured to scan forward starting with the first node through nodes within the second card using the node advance values of the nodes within the second card until a node that intersects the first card is found. - View Dependent Claims (14, 15)
Specification