Claims Analysis
Total Claims: 24
Claim 1
Independent Claim
183 words
A method for detecting memory access errors which occur while executing a computer program, wherein the computer program includes a pointer to a data object, said method comprising the steps of: providing a spatial attribute for said data object, said spatial attribute defining an address space within which valid accesses may be made to said data object; associating said spatial attribute with said pointer; providing a temporal attribute for said data object, said temporal attribute defining a period of time within which valid accesses may be made to said data object, wherein the step of providing said temporal attribute comprises the steps of: providing a temporal validity number having a temporal validity number location; and providing a temporal capability number; associating said temporal capability number with said pointer; providing a dereference to said pointer; determining if said dereference falls outside said address space; if said dereference falls outside said address space, flagging a spatial error; determining from said temporal capability number and said temporal validity number whether a temporal error has occurred; and if a temporal error has occurred, flagging said temporal error.
Claim 2
Independent Claim
183 words
A method for detecting memory access errors which occur while executing a computer program, wherein the computer program includes a pointer to a data object, said method comprising the steps of: providing a spatial attribute for said data object, said spatial attribute defining an address space within which valid accesses may be made to said data object; associating said spatial attribute with said pointer; providing a temporal attribute for said data object, said temporal attribute defining a period of time within which valid accesses may be made to said data object, wherein the step of providing said temporal attribute comprises the steps of: providing a temporal validity number having a temporal validity number location; and providing a temporal capability number; associating said temporal capability number with said pointer; providing a dereference to said pointer; determining if said dereference falls outside said address space; if said dereference falls outside said address space, flagging a spatial error; determining from said temporal capability number and said temporal validity number whether a temporal error has occurred; and if a temporal error has occurred, flagging said temporal error.
Claim 3
Dependent Claim
27 words
The method according to claim 1, wherein the step of providing a spatial attribute comprises the step of providing a size attribute indicative of said address space.
Claim 4
Dependent Claim
28 words
The method according to claim 2, wherein the step of providing a spatial attribute further comprises the step of providing an address attribute indicative of a base address.
Claim 5
Dependent Claim
52 words
The method according to claim 1, wherein said address space has a lower bound and an upper bound and wherein the step of providing a spatial attribute comprises the steps of: providing a low-end address attribute indicative of said lower bound; and providing a high-end address attribute indicative of said higher bound.
Claim 6
Dependent Claim
24 words
The method according to claim 1, wherein the step of providing a temporal attribute further comprises the step of providing a storage class attribute.
Claim 7
Dependent Claim
29 words
The method according to claim 5, wherein the step of providing a storage class attribute comprises the step of specifying storage classes which distinguish heap and local data objects.
Claim 8
Dependent Claim
27 words
The method according to claim 6, wherein the step of providing a spatial attribute comprises the step of providing a size attribute indicative of the address space.
Claim 9
Dependent Claim
28 words
The method according to claim 7, wherein the step of providing a spatial attribute further comprises the step of providing an address attribute indicative of a base address.
Claim 10
Dependent Claim
52 words
The method according to claim 6, wherein said address space has a lower bound and an upper bound and wherein the step of providing a spatial attribute comprises the steps of: providing a low-end address attribute indicative of said lower bound; and providing a high-end address attribute indicative of said higher bound.
Claim 11
Independent Claim
162 words
A method of detecting a memory access error encountered when executing program code including a pointer pointing to a variable, the method comprising the steps of: assigning temporal attributes defining temporal status for said pointer, wherein the step of assigning temporal attributes comprises the steps of: providing a temporal validity number associated with said variable; providing a temporal capability number; and associating said temporal capability number with said pointer; assigning spatial attributes defining an address space valid for said pointer; executing a memory access check on a memory access, wherein the step of executing a memory access check comprises the steps of: determining from said temporal capability number and said temporal validity number whether a temporal error has occurred; and determining whether said memory access is to an address within said valid address space; if a temporal status has occurred, flagging said temporal error; and if said memory access is to an address outside said valid address space, flagging a spatial error.
Claim 12
Independent Claim
162 words
A method of detecting a memory access error encountered when executing program code including a pointer pointing to a variable, the method comprising the steps of: assigning temporal attributes defining temporal status for said pointer, wherein the step of assigning temporal attributes comprises the steps of: providing a temporal validity number associated with said variable; providing a temporal capability number; and associating said temporal capability number with said pointer; assigning spatial attributes defining an address space valid for said pointer; executing a memory access check on a memory access, wherein the step of executing a memory access check comprises the steps of: determining from said temporal capability number and said temporal validity number whether a temporal error has occurred; and determining whether said memory access is to an address within said valid address space; if a temporal status has occurred, flagging said temporal error; and if said memory access is to an address outside said valid address space, flagging a spatial error.
Claim 13
Dependent Claim
30 words
The method according to claim 10 wherein the step of determining whether a temporal error has occurred comprises the step of accessing said temporal validity number through a hash table.
Claim 14
Dependent Claim
69 words
The method according to claim 10 wherein the temporal validity number has a temporal validity number location; wherein the step of assigning temporal attributes further comprises the steps of: providing a backpointer specifying said temporal validity number location; and associating said backpointer with said pointer; and wherein the step of determining whether a temporal error has occurred comprises the step of accessing said temporal validity number via said backpointer.
Claim 15
Independent Claim
234 words
A method for detecting memory access errors which occur while executing a computer program, wherein the computer program includes a pointer to a data object, the method comprising the steps of: providing a counter having a count for tracking memory deallocations; providing a spatial attribute for said data object, said spatial attribute defining an address space within which valid accesses may be made to said data object; associating said spatial attribute with said pointer; associating said temporal attribute with said pointer; providing a temporal attribute for said data object, wherein the step of providing said temporal attribute comprises the steps of: providing a temporal validity number having a temporal validity number location; and providing a temporal capability number; associating said temporal capability number with said pointer; providing a first dereference and a second dereference to said pointer wherein said first dereference occurs prior to said second dereference; determining if said second dereference falls outside said address space; if said second dereference falls outside said address space, flagging a spatial error; determining if said count has changed since said fast dereference; and if said count has changed since said first dereference, verifying said temporal attributes, wherein the step of verifying said temporal attributes comprises the steps of: determining from said temporal capability number and said temporal validity number whether a temporal error has occurred; and if a temporal error has occurred, flagging said temporal error.
Claim 16
Independent Claim
234 words
A method for detecting memory access errors which occur while executing a computer program, wherein the computer program includes a pointer to a data object, the method comprising the steps of: providing a counter having a count for tracking memory deallocations; providing a spatial attribute for said data object, said spatial attribute defining an address space within which valid accesses may be made to said data object; associating said spatial attribute with said pointer; associating said temporal attribute with said pointer; providing a temporal attribute for said data object, wherein the step of providing said temporal attribute comprises the steps of: providing a temporal validity number having a temporal validity number location; and providing a temporal capability number; associating said temporal capability number with said pointer; providing a first dereference and a second dereference to said pointer wherein said first dereference occurs prior to said second dereference; determining if said second dereference falls outside said address space; if said second dereference falls outside said address space, flagging a spatial error; determining if said count has changed since said fast dereference; and if said count has changed since said first dereference, verifying said temporal attributes, wherein the step of verifying said temporal attributes comprises the steps of: determining from said temporal capability number and said temporal validity number whether a temporal error has occurred; and if a temporal error has occurred, flagging said temporal error.
Claim 17
Dependent Claim
31 words
The method according to claim 13 wherein the step of providing a temporal attribute further comprises the step of providing a storage class attribute which distinguishes heap and local data objects.
Claim 18
Independent Claim
114 words
A system for detecting a memory access error in a computer program executing on a computer, the system comprising: means for assigning object attributes to a pointer, wherein said object attributes comprise: a temporal capability number; and a spatial attribute defining an address space valid for said pointer; means for assigning a temporal validity number; means for adding memory access check instructions to said computer program, wherein said memory access check instructions comprise: instructions which determine from said temporal capability number and said temporal validity number whether a temporal error has occurred; and instructions which determine whether a memory access made within said computer program is to an address within said valid address space.
Claim 19
Independent Claim
114 words
A system for detecting a memory access error in a computer program executing on a computer, the system comprising: means for assigning object attributes to a pointer, wherein said object attributes comprise: a temporal capability number; and a spatial attribute defining an address space valid for said pointer; means for assigning a temporal validity number; means for adding memory access check instructions to said computer program, wherein said memory access check instructions comprise: instructions which determine from said temporal capability number and said temporal validity number whether a temporal error has occurred; and instructions which determine whether a memory access made within said computer program is to an address within said valid address space.
Claim 20
Dependent Claim
30 words
The system according to claim 15 wherein the instructions for determining whether a temporal error has occurred comprise an instruction for accessing said temporal validity number through a hash table.
Claim 21
Dependent Claim
61 words
The system according to claim 15 wherein: the temporal validity number has a temporal validity number location; the temporal attributes further include a backpointer specifying said temporal validity number location, wherein said backpointer is associated with said pointer; and the instructions for determining whether a temporal error has occurred comprise an instruction for accessing said temporal validity number via said backpointer.
Claim 22
Dependent Claim
31 words
The system according to claim 15 wherein the instructions for determining whether a temporal error has occurred comprise an instruction for determining whether a temporal memory access check can be elided.
Claim 23
Dependent Claim
31 words
The system according to claim 15 wherein the instructions for determining whether a spatial error has occurred comprise an instruction for determining whether a spatial memory access check can be elided.
Claim 24
Dependent Claim
31 words
The system according to claim 15 wherein the means for adding memory access check instructions to said computer program comprise means for determining whether a memory access check can be elided.