Claims
- 1. A method of managing information about a storage property for an object, comprising the computer-implemented steps of:
storing the object in a memory; creating a reference to the object by storing, in an base address portion of the reference, a location of the object within the memory; and storing, in a tag portion of the reference, the information about the storage property for the object, wherein the tag portion of the reference includes one or more bits of the reference that are less significant than bits for the address portion.
- 2. The method of claim 1, wherein the step of storing the object in a memory includes the step of storing the object in a memory at an N-bit aligned address.
- 3. The method of claim 2, wherein the tag portion includes the N least significant bits of the reference.
- 4. The method of claim 2, further comprising the step of retrieving the information about the storage property for the object by accessing the tag portion of the reference to the object.
- 5. The method of claim 2, wherein the step of storing, in a tag portion of the reference, the information about the storage property for the object includes the step of storing, in the tag portion, information about a lifetime of the object.
- 6. The method of claim 2, wherein the step of storing, in the tag portion, information about a lifetime of the object includes the step of storing, in the tag portion, information indicating whether the object has existed for at least a prescribed number of garbage collection events.
- 7. The method of claim 2, wherein the step of storing, in a tag portion of the reference, the information about the storage property for the object includes the step of storing, in the tag portion, information about a storage format of the object.
- 8. The method of claim 7, wherein:
the object contains a reference; and the step of storing, in the tag portion, information about a storage format of the object includes the step of storing, in the tag portion, information about a format of the reference contained within the object.
- 9. The method of claim 8, wherein the step of storing, in the tag portion, information about a format of the reference contained within the object includes the step of storing, in the tag portion, information indicating whether the reference contained therein is stored as a machine pointers or as a numeric reference.
- 10. The method of claim 2, wherein the step of storing, in a tag portion of the reference, the information about the storage property for the object includes the step of storing, in the tag portion, information about the contiguity of the object.
- 11. The method of claim 10, wherein the step of storing, in the tag portion, information about the contiguity of the object includes the step of storing, in the tag portion, information indicating whether the object is stored in a plurality of pages.
- 12. The method of claim 11, wherein the step of storing, in the tag portion, information indicating whether the object is stored in a plurality of pages includes the step of storing, in the tag portion, information indicating whether the object is stored in at least one page that is not contiguous to any other of the pages.
- 13. The method of claim 2, wherein the step of storing, in a tag portion of the reference, the information about the storage property for the object includes the step of storing, in the tag portion, either of (a) information indicating both a lifetime of the object and that a references contained in the object is stored in a first format and (b) information indicating both a contiguity of the object and that the reference contained in the object is stored in a second format other than the first format.
- 14. The method of claim 1, wherein N is exactly three.
- 15. The method of claim 1, wherein the step of creating a reference includes the step of initializing a machine pointer.
- 16. The method of claim 1, wherein the step of creating a reference includes the step of initializing a numeric reference.
- 17. A method of managing memory for a plurality of objects, comprising the computer-implemented steps of:
allocating the objects in a first memory area; migrating some of the objects from the first memory area to a second memory area based on respective lifetimes of said some of the objects; and maintaining a data structure about which second objects in the second memory area reference first objects in the first memory area by:
determining whether a first object is allocated in the first memory area and a second object is allocated in the second memory area based on first information contained within a first reference to a first object and second information contained within a second reference to a second object, without dereferencing a memory pointer; wherein either of the first memory area and the second memory area includes a respective plurality of noncontiguous pages.
- 18. The method of claim 17, wherein the step of determining whether a first object is allocated in the first memory area and a second object is allocated in the second memory area based on a first reference to a first object and a second reference to a second object, without dereferencing a memory pointer, includes the steps of:
extracting first one or more bits of the first reference, said first one or more bits being less significant than bits for storing an address of the first object; extracting second one or more bits of the second reference, said second one or more bits being less significant than bits for storing an address of the first object; and determining whether the first object is allocated in the first memory area and the second object is allocated in the second memory area based on the first one or more bits and the second one or more bits.
- 19. The method of claim 18, wherein the step of determining whether the first object is allocated in the first memory area and the second object is allocated in the second memory area based on the first one or more bits and the second one or more bits includes the step of comparing on the first one or more bits and the second one or more bits for a prescribed inequality.
- 20. The method of claim 18, wherein:
the step extracting first one or more bits of the first reference includes the step of extracting the one or more least significant bits of the first reference; and the step extracting second one or more bits of the first reference includes the step of extracting the one or more least significant bits of the second reference.
- 21. A computer-readable medium bearing instructions for managing information about a storage property for an object, said instructions arranged, when executed, to cause one or more processors to perform the steps of:
storing the object in a memory; creating a reference to the object by storing, in an base address portion of the reference, a location of the object within the memory; and storing, in a tag portion of the reference, the information about the storage property for the object, wherein the tag portion of the reference includes one or more bits of the reference that are less significant than bits for the address portion.
- 22. The computer-readable medium of claim 21, wherein the step of storing the object in a memory includes the step of storing the object in a memory at an N-bit aligned address.
- 23. The computer-readable medium of claim 22, wherein the tag portion includes the N least significant bits of the reference.
- 24. The computer-readable medium of claim 22, wherein the instructions are further arranged, when executed, to cause the one or more processors to perform the step of retrieving the information about the storage property for the object by accessing the tag portion of the reference to the object.
- 25. The computer-readable medium of claim 22, wherein the step of storing, in a tag portion of the reference, the information about the storage property for the object includes the step of storing, in the tag portion, information about a lifetime of the object.
- 26. The computer-readable medium of claim 22, wherein the step of storing, in the tag portion, information about a lifetime of the object includes the step of storing, in the tag portion, information indicating whether the object has existed for at least a prescribed number of garbage collection events.
- 27. The computer-readable medium of claim 22, wherein the step of storing, in a tag portion of the reference, the information about the storage property for the object includes the step of storing, in the tag portion, information about a storage format of the object.
- 28. The computer-readable medium of claim 27, wherein:
the object contains a reference; and the step of storing, in the tag portion, information about a storage format of the object includes the step of storing, in the tag portion, information about a format of the reference contained within the object.
- 29. The computer-readable medium of claim 28, wherein the step of storing, in the tag portion, information about a format of the reference contained within the object includes the step of storing, in the tag portion, information indicating whether the reference contained therein is stored as a machine pointers or as a numeric reference.
- 30. The computer-readable medium of claim 22, wherein the step of storing, in a tag portion of the reference, the information about the storage property for the object includes the step of storing, in the tag portion, information about the contiguity of the object.
- 31. The computer-readable medium of claim 30, wherein the step of storing, in the tag portion, information about the contiguity of the object includes the step of storing, in the tag portion, information indicating whether the object is stored in a plurality of pages.
- 32. The computer-readable medium of claim 31, wherein the step of storing, in the tag portion, information indicating whether the object is stored in a plurality of pages includes the step of storing, in the tag portion, information indicating whether the object is stored in at least one page that is not contiguous to any other of the pages.
- 33. The computer-readable medium of claim 22, wherein the step of storing, in a tag portion of the reference, the information about the storage property for the object includes the step of storing, in the tag portion, either of (a) information indicating both a lifetime of the object and that a references contained in the object is stored in a first format and (b) information indicating both a contiguity of the object and that the reference contained in the object is stored in a second format other than the first format.
- 34. The computer-readable medium of claim 21, wherein N is exactly three.
- 35. The computer-readable medium of claim 21, wherein the step of creating a reference includes the step of initializing a machine pointer.
- 36. The computer-readable medium of claim 21, wherein the step of creating a reference includes the step of initializing a numeric reference.
- 37. A computer-readable medium bearing instructions for managing memory for a plurality of objects, said instructions being arranged, when executed, to cause one or more processors to perform the steps of:
allocating the objects in a first memory area; migrating some of the objects from the first memory area to a second memory area based on respective lifetimes of said some of the objects; and maintaining a data structure about which second objects in the second memory area reference first objects in the first memory area by:
determining whether a first object is allocated in the first memory area and a second object is allocated in the second memory area based on first information contained within a first reference to a first object and second information contained within a second reference to a second object, without dereferencing a memory pointer; wherein either of the first memory area and the second memory area includes a respective plurality of noncontiguous pages.
- 38. The computer-readable medium of claim 37, wherein the step of determining whether a first object is allocated in the first memory area and a second object is allocated in the second memory area based on a first reference to a first object and a second reference to a second object, without dereferencing a memory pointer, includes the steps of:
extracting first one or more bits of the first reference, said first one or more bits being less significant than bits for storing an address of the first object; extracting second one or more bits of the second reference, said second one or more bits being less significant than bits for storing an address of the first object; and determining whether the first object is allocated in the first memory area and the second object is allocated in the second memory area based on the first one or more bits and the second one or more bits.
- 39. The computer-readable medium of claim 38, wherein the step of determining whether the first object is allocated in the first memory area and the second object is allocated in the second memory area based on the first one or more bits and the second one or more bits includes the step of comparing on the first one or more bits and the second one or more bits for a prescribed inequality.
- 40. The computer-readable medium of claim 38, wherein:
the step extracting first one or more bits of the first reference includes the step of extracting the one or more least significant bits of the first reference; and the step extracting second one or more bits of the first reference includes the step of extracting the one or more least significant bits of the second reference.
RELATED APPLICATIONS
[0001] The present application is related to the following applications:
[0002] U.S. patent application Ser. No. ______, entitled “A Machine Independent Memory Management System Within a Run-Time Environment,” filed on even date herewith by Harlan Sexton et al. (docket no. 50277-172; OID-1997-48-02), the contents of which are hereby incorporated by reference.
[0003] U.S. patent application Ser. No. ______, entitled “Address Calculation of Invariant References Within a Run-Time Environment,” filed on even date herewith by Harlan Sexton et al. (docket no. 50277-179; OID-199748-03), the contents of which are hereby incorporated by reference.
[0004] U.S. patent application Ser. No. ______, entitled “A Paged Memory Management System Within a Run-Time Environment,” filed on even date herewith by Harlan Sexton et al. (docket no. 50277-261; OID-1997-48-17), the contents of which are hereby incorporated by reference.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09248295 |
Feb 1999 |
US |
Child |
10102844 |
Mar 2002 |
US |