Mechanism to reduce the cost of forwarding pointer aliasing
First Claim
1. A data processing system for processing programs, the system comprising:
- memory for storing data objects, the data objects being referenced by pointers; and
a short-quasi-unique-identifier (SQUID) generator which generates SQUIDs for newly allocated data objects to be stored in the memory segment, pointers to a particular data object being associated with the data object'"'"'s SQUID.
2 Assignments
0 Petitions
Accused Products
Abstract
Short-quasi-unique-identifiers (SQUIDs) are generated and assigned to the data objects stored in memory. Pointers to a particular data object contain the data object'"'"'s assigned SQUID. If a data object is moved to a second allocated memory segment, a new pointer to the second allocated memory segment is placed at the original memory segment, so that any pointers to the original memory segment now point to the new pointer. The distribution of SQUIDs is uniform. SQUIDs can be generated by counting, generated randomly, generating through some hashing mechanism, or other means. In comparing two different pointers, it is determined that the two pointers do not reference the same data object if the SQUIDs are different. On the other hand, if the SQUIDs are identical and the address fields of the two pointers are identical, then the two pointers reference the same data object. In addition, a pointer is associated with a migration indicator field which indicates the number of migrations of the referenced data object prior to the pointer being created. The comparator determines that two pointers do not reference the same data object if their associated migration indicators indicate identical numbers of migrations and their corresponding addresses are different.
19 Citations
65 Claims
-
1. A data processing system for processing programs, the system comprising:
-
memory for storing data objects, the data objects being referenced by pointers; and
a short-quasi-unique-identifier (SQUID) generator which generates SQUIDs for newly allocated data objects to be stored in the memory segment, pointers to a particular data object being associated with the data object'"'"'s SQUID. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 58, 61, 63)
-
-
24. A data processing system for processing programs, the system comprising:
-
memory for storing data objects;
pointers to data objects stored in the memory;
migration indicators associated with pointers, a migration indicator indicating a number of migrations of a data object referenced by an associated pointer prior to said pointer being created; and
a comparator which determines that said two pointers do not reference the same data object if their associated migration indicators indicate identical numbers of migrations and their corresponding addresses are different.
-
-
29. A method for processing programs, the system comprising:
-
storing data objects in a memory, the data objects being referenced by pointers; and
generating a short-quasi-unique-identifier (SQUID) and assigning the SQUID to a data object stored in the memory segment, pointers to the data object being associated with the data object'"'"'s assigned SQUID.
-
-
52. A method for processing programs, the method comprising:
-
storing data objects in memory;
generating pointers to the stored data objects;
associating migration indicators with the pointers, a migration indicator indicating a number of migrations of a data object referenced by an associated pointer prior to said associated pointer being created; and
comparing two pointers and determining that said two pointers do not reference the same data object if their associated migration indicators indicate identical numbers of migrations and their corresponding addresses are different.
-
-
57. A data processing system for processing programs, the system comprising:
-
means for storing data objects in a memory, the data objects being referenced by pointers; and
means for generating a short-quasi-unique-identifier (SQUID) and assigning the SQUID to a data object stored in the memory segment, pointers to the data object containing the data object'"'"'s assigned SQUID.
-
-
59. A data processing system for processing programs, the method comprising:
-
means for storing data objects in memory;
means for generating pointers to the stored data objects;
means for associating migration indicators with the pointers, a migration indicator indicating a number of migrations of a data object referenced by an associated pointer prior to said associated pointer being created; and
means for comparing two pointers and determining that said two pointers do not reference the same data object if their associated migration indicators indicate identical numbers of migrations and their corresponding addresses are different.
-
-
60. A computer program product for processing programs, the computer program product comprising a computer usable medium having computer readable code thereon, including program code which:
-
stores data objects in a memory, the data objects being referenced by pointers; and
generates a short-quasi-unique-identifier (SQUID) and assigns the SQUID to a data object stored in the memory segment, pointers to the data object containing the data object'"'"'s assigned SQUID.
-
-
62. A computer data signal embodied in a carrier wave for processing programs, comprising:
-
a program code segment for storing data objects in a memory, the data objects being referenced by pointers; and
a program code segment for generating a short-quasi-unique-identifier (SQUID) and assigning the SQUID to a data object stored in the memory segment, pointers to the data object containing the data object'"'"'s assigned SQUID.
-
-
64. A computer program product for processing programs, the computer program product comprising a computer usable medium having computer readable code thereon, including program code which:
-
stores data objects in memory;
generates pointers to the stored data objects;
associates migration indicators with the pointers, a migration indicator indicating a number of migrations of a data object referenced by an associated pointer prior to said associated pointer being created; and
compares two pointers, determining that said two pointers do not reference the same data object if their associated migration indicators indicate identical numbers of migrations and their corresponding addresses are different.
-
-
65. A computer data signal embodied in a carrier wave for processing programs, comprising:
-
a program code segment for storing data objects in memory;
a program code segment for generating pointers to the stored data objects;
a program code segment for associating migration indicators with the pointers, a migration indicator indicating a number of migrations of a data object referenced by an associated pointer prior to said associated pointer being created; and
a program code segment for comparing two pointers, said segment determining that said two pointers do not reference the same data object if their associated migration indicators indicate identical numbers of migrations and their corresponding addresses are different.
-
Specification