Claims
- 1. For operating a computer system including memory as a garbage collector, a method comprising:
A) treating at least a portion of a garbage-collected heap in the memory as divided into cards with which the garbage collector associates respective card-object-table entries; B) maintaining the card-object-table entries with values selected from a value range that includes at least one of:
i) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the locations of references in the card with which that entry is associated; and ii) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the location within the card at which is located a predetermined field of an object that begins somewhere between the ends of the card with which that entry is associated; C) basing on those interpretations a determination of which locations in the cards contain references; D) determining the reachability of objects from the contents of locations thereby determined to contain references; and E) reclaiming memory space occupied by objects thereby determined not to be potentially reachable.
- 2. A method as defined in claim 1 wherein the collector interprets one value in the set of possible values of the locator information, when that value is assumed by a card-object-table entry, as indicating that the card contains no references.
- 3. A method as defined in claim 1 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the location at which is located a predetermined field of an object in which a predetermined location in the given card is located.
- 4. A method as defined in claim 3 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the location of the start of an object in which the given card starts.
- 5. A method as defined in claim 1 wherein the collector:
A) determines whether a multiple-card-object-table-entry sequence that includes the card-object-table entry with which that card is associated satisfies a predetermined common-object criterion; and B) if that multiple-card-object-entry sequence is thereby determined to satisfy the common-object criterion, interprets that multiple-card-object-entry sequence as an indicator of the location of an object in which the card begins.
- 6. A method as defined in claim 1 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the length of a sequence of references with which the given card begins.
- 7. A method as defined in claim 1 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the lengths of respective sequences of references and non-reference fields with which the given card begins.
- 8. A method as defined in claim 1 wherein the garbage collector interprets each value in a set of possible values of the locator information in a given card-object-table entry as indicating that a card-object-table entry ahead of the given card-object-table entry is an indicator of the location of an object in which the card associated with the given card-object-table entry begins.
- 9. A method as defined in claim 1 wherein the garbage collector interprets at least one possible value of the locator information in a given card-object-table entry as indicating that a multiple-card-object-table-entry sequence ahead of the given card-object-table entry is an indicator of the location of an object in which the card associated with the given card-object-table entry begins.
- 10. A computer system comprising:
A) processor circuitry operable to execute processor instructions; and B) memory circuitry, to which the processor circuitry is responsive, that contains processor instructions readable by the processor circuitry to configure the computer system to operate as a garbage collector that:
i) treats at least a portion of a garbage-collected heap in the memory as divided into cards with which the garbage collector associates respective card-object-table entries; ii) maintains the card-object-table entries with values selected from a value range that includes at least one of:
a) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the locations of references in the card with which that entry is associated; and b) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the location within the card at which is located a predetermined field of an object that begins somewhere between the ends of the card with which that entry is associated; iii) bases on those interpretations a determination of which locations in the cards contain references; iv) determines the reachability of objects from the contents of locations thereby determined to contain references; and C) reclaims memory space occupied by objects thereby determined not to be potentially reachable.
- 11. A computer system as defined in claim 10 wherein the collector interprets one value in the set of possible values of the locator information, when that value is assumed by a card-object-table entry, as indicating that the card contains no references.
- 12. A computer system as defined in claim 10 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the location at which is located a predetermined field of an object in which a predetermined location in the given card is located.
- 13. A computer system as defined in claim 12 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the location of the start of an object in which the given card starts.
- 14. A computer system as defined in claim 10 wherein the collector:
A) determines whether a multiple-card-object-table-entry sequence that includes the card-object-table entry with which that card is associated satisfies a predetermined common-object criterion; and B) if that multiple-card-object-entry sequence is thereby determined to satisfy the common-object criterion, interprets that multiple-card-object-entry sequence as an indicator of the location of an object in which the card begins.
- 15. A computer system as defined in claim 10 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the length of a sequence of references with which the given card begins.
- 16. A computer system as defined in claim 10 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the lengths of respective sequences of references and non-reference fields with which the given card begins.
- 17. A computer system as defined in claim 10 wherein the garbage collector interprets each value in a set of possible values of the locator information in a given card-object-table entry as indicating that a card-object-table entry ahead of the given card-object-table entry is an indicator of the location of an object in which the card associated with the given card-object-table entry begins.
- 18. A computer system as defined in claim 10 wherein the garbage collector interprets at least one possible value of the locator information in a given card-object-table entry as indicating that a multiple-card-object-table-entry sequence ahead of the given card-object-table entry is an indicator of the location of an object in which the card associated with the given card-object-table entry begins.
- 19. A storage medium containing instructions readable by a computer system that includes memory to configure the computer system to operate as a garbage collector that:
A) treats at least a portion of a garbage-collected heap in the memory as divided into cards with which the garbage collector associates respective card-object-table entries; B) maintains the card-object-table entries with values selected from a value range that includes at least one of:
i) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the locations of references in the card with which that entry is associated; and ii) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the location within the card at which is located a predetermined field of an object that begins somewhere between the ends of the card with which that entry is associated; C) bases on those interpretations a determination of which locations in the cards contain references; D) determines the reachability of objects from the contents of locations thereby determined to contain references; and E) reclaims memory space occupied by objects thereby determined not to be potentially reachable.
- 20. A storage medium as defined in claim 19 wherein the collector interprets one value in the set of possible values of the locator information, when that value is assumed by a card-object-table entry, as indicating that the card contains no references.
- 21. A storage medium as defined in claim 19 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the location at which is located a predetermined field of an object in which a predetermined location in the given card is located.
- 22. A storage medium as defined in claim 21 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the location of the start of an object in which the given card starts.
- 23. A storage medium as defined in claim 19 wherein the collector:
A) determines whether a multiple-card-object-table-entry sequence that includes the card-object-table entry with which that card is associated satisfies a predetermined common-object criterion; and B) if that multiple-card-object-entry sequence is thereby determined to satisfy the common-object criterion, interprets that multiple-card-object-entry sequence as an indicator of the location of an object in which the card begins.
- 24. A storage medium as defined in claim 19 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the length of a sequence of references with which the given card begins.
- 25. A storage medium as defined in claim 19 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the lengths of respective sequences of references and non-reference fields with which the given card begins.
- 26. A storage medium as defined in claim 19 wherein the garbage collector interprets each value in a set of possible values of the locator information in a given card-object-table entry as indicating that a card-object-table entry ahead of the given card-object-table entry is an indicator of the location of an object in which the card associated with the given card-object-table entry begins.
- 27. A storage medium as defined in claim 19 wherein the garbage collector interprets at least one possible value of the locator information in a given card-object-table entry as indicating that a multiple-card-object-table-entry sequence ahead of the given card-object-table entry is an indicator of the location of an object in which the card associated with the given card-object-table entry begins.
- 28. An electromagnetic signal representing sequences of instructions that, when executed by a computer system that includes memory, cause it to operate as a garbage collector that:
A) treats at least a portion of a garbage-collected heap in the memory as divided into cards with which the garbage collector associates respective card-object-table entries; B) maintains the card-object-table entries with values selected from a value range that includes at least one of:
i) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the locations of references in the card with which that entry is associated; and ii) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the location within the card at which is located a predetermined field of an object that begins somewhere between the ends of the card with which that entry is associated; C) bases on those interpretations a determination of which locations in the cards contain references; D) determines the reachability of objects from the contents of locations thereby determined to contain references; and E) reclaims memory space occupied by objects thereby determined not to be potentially reachable.
- 29. An electromagnetic signal as defined in claim 28 wherein the collector interprets one value in the set of possible values of the locator information, when that value is assumed by a card-object-table entry, as indicating that the card contains no references.
- 30. An electromagnetic signal as defined in claim 28 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the location at which is located a predetermined field of an object in which a predetermined location in the given card is located.
- 31. An electromagnetic signal as defined in claim 30 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the location of the start of an object in which the given card starts.
- 32. An electromagnetic signal as defined in claim 28 wherein the collector:
A) determines whether a multiple-card-object-table-entry sequence that includes the card-object-table entry with which that card is associated satisfies a predetermined common-object criterion; and B) if that multiple-card-object-entry sequence is thereby determined to satisfy the common-object criterion, interprets that multiple-card-object-entry sequence as an indicator of the location of an object in which the card begins.
- 33. An electromagnetic signal as defined in claim 28 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the length of a sequence of references with which the given card begins.
- 34. An electromagnetic signal as defined in claim 28 wherein the collector interprets each value of a set of possible values of the locator information, when that value is assumed by a card-object-table entry associated with a given card, as representing the lengths of respective sequences of references and non-reference fields with which the given card begins.
- 35. An electromagnetic signal as defined in claim 28 wherein the garbage collector interprets each value in a set of possible values of the locator information in a given card-object-table entry as indicating that a card-object-table entry ahead of the given card-object-table entry is an indicator of the location of an object in which the card associated with the given card-object-table entry begins.
- 36. An electromagnetic signal as defined in claim 28 wherein the garbage collector interprets at least one possible value of the locator information in a given card-object-table entry as indicating that a multiple-card-object-table-entry sequence ahead of the given card-object-table entry is an indicator of the location of an object in which the card associated with the given card-object-table entry begins.
- 37. A garbage collector comprising:
A) means for treating at least a portion of a garbage-collected heap in a computer system's memory as divided into cards with which the garbage collector associates respective card-object-table entries; B) means for maintaining the card-object-table entries with values selected from a value range that includes at least one of:
i) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the locations of references in the card with which that entry is associated; and ii) a set of values of which the collector interprets each, when that value is assumed by a card-object-table entry, as locator information representing the location within the card at which is located a predetermined field of an object that begins somewhere between the ends of the card with which that entry is associated; C) means for basing on those interpretations a determination of which locations in the cards contain references; D) means for determining the reachability of objects from the contents of locations thereby determined to contain references; and E) means for reclaiming memory space occupied by objects thereby determined not to be potentially reachable.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to commonly owned co-pending U.S. Pat. No. ______ of Alexander T. Garthwaite for Combining Entries in a Card Object Table, which was filed on the same date as this application and was assigned Cesari and McKenna Docket No. 112047-0107.