Stored memory recovery system
First Claim
1. A method for accessing a group of memory locations in a computer system, the method comprising:
- maintaining, for said group of memory locations, a first data structure that has a plurality of entries, the plurality of entries including one or more entries dedicated to each memory status type in a set of two or more memory status types, wherein the one or more entries dedicated to a given memory status type include an indication of any and all memory locations in said group of memory locations that currently have a status corresponding to the given memory status type;
receiving a write request to a first memory location within said group of memory locations;
reading from a first group of one or more entries within said first data structure to determine whether said first memory location is indicated as having a protected memory status, wherein the first group of one or more entries are dedicated to one or more memory status types indicative of a protected memory status; and
redirecting said write request to a second memory location if said one or more entries indicate that said first memory location has a protected memory status, wherein said redirecting preserves the contents of the first memory location for a first recovery point.
5 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments of systems and methods for preserving saved memory states to which a computer system can be restored are disclosed. In certain embodiments, the systems and methods intercept write operations to protected memory locations and redirect them to alternate memory locations. Embodiments of the systems and methods include creation of a table for each memory state. Certain embodiments additionally include a recovery capability, by which the protected memory in the computer system is capable of being restored or recovered to a recovery point that represents a saved memory state. Further embodiments relate to systems and methods for preventing protected memory locations from being overwritten that utilize a plurality of memory state values.
117 Citations
62 Claims
-
1. A method for accessing a group of memory locations in a computer system, the method comprising:
-
maintaining, for said group of memory locations, a first data structure that has a plurality of entries, the plurality of entries including one or more entries dedicated to each memory status type in a set of two or more memory status types, wherein the one or more entries dedicated to a given memory status type include an indication of any and all memory locations in said group of memory locations that currently have a status corresponding to the given memory status type; receiving a write request to a first memory location within said group of memory locations; reading from a first group of one or more entries within said first data structure to determine whether said first memory location is indicated as having a protected memory status, wherein the first group of one or more entries are dedicated to one or more memory status types indicative of a protected memory status; and redirecting said write request to a second memory location if said one or more entries indicate that said first memory location has a protected memory status, wherein said redirecting preserves the contents of the first memory location for a first recovery point. - 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, 24)
-
-
25. A method of storing a group of memory locations in a computer system, the method comprising:
-
maintaining, for said group of memory locations, a first data structure that has a plurality of entries, the plurality of entries including one or more entries dedicated to each memory status type in a set of two or more memory status types, wherein the one or more entries dedicated to a given memory status type include an indication of any and all memory locations in said group of memory locations that currently have a status corresponding to the given memory status type; selecting a first addressable memory location within said group of memory locations as part of a first recovery point, wherein said first memory location is indicated as having a protected memory status in said first data structure; receiving a write request to said first addressable memory location; and redirecting said write request to a second addressable memory location within said group of memory locations. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
-
-
33. A method of protecting a group of memory locations in a computer system from being overwritten, the method comprising:
-
maintaining, for said group of memory locations, a first data structure that has a plurality of entries, the plurality of entries including one or more entries dedicated to each memory status type in a set of two or more memory status types, wherein the one or more entries dedicated to a given memory status type include an indication of any and all memory locations in said group of memory locations that currently have a status corresponding to the given memory status type; receiving a write request to a first memory location within said group of memory locations; reading from one or more entries within said first data structure to determine whether said first memory location is indicated as having a protected memory status, wherein the one or more entries are dedicated to one or memory status types indicative of a protected memory status; redirecting said write request to a second memory location if said one or more entries indicate that said first memory location has a protected memory status; writing to a first entry within said first data structure to indicate that said second memory location has a protected memory status; redirecting a write request to said second memory location to a third memory location; and writing to a second entry within said first data structure to indicate that said second memory location has a protected memory status; wherein the set of memory status types includes two or more memory status types. - View Dependent Claims (34, 35, 36)
-
-
37. A computer, comprising:
-
a processor; and a memory coupled to the processor, wherein the memory stores instructions executable by the processor to; maintain a first data structure indicating the current memory status types of each of a group of memory locations, wherein the first data structure includes one or more entries dedicated to each memory status type in a set of two or more memory status types, wherein the one or more entries dedicated to a given memory status type include an indication of any and all memory locations in said group of memory locations that currently have a status corresponding to the given memory status type; receive one or more write requests to the group of memory locations; update said first data structure in response to the one or more write requests to the group of memory locations. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44)
-
-
45. A method for creating a plurality of recovery points for a computer system having a group of memory locations, the method comprising:
-
creating an initial data structure indicating an original state of said group of memory locations, wherein said initial data structure corresponds to an initial recovery point for said computer system; receiving information identifying a new recovery point for said computer system, wherein said new recovery point is subsequent in time to said initial recovery point; creating a new data structure corresponding to said new recovery point, wherein said creating includes using states of said group of memory locations indicated by said initial data structure to indicate states of said group of memory locations within said new data structure, and wherein said creating includes; if said initial data structure indicates that one or more of said group of memory locations were unused at said initial recovery point but in use at said new recovery point, indicating in said new data structure that said one or more memory locations are protected; wherein both said initial data structure and said new data structure have a plurality of entries, each of the data structures having one or more entries dedicated to each memory status type of a set of two or more memory status types, wherein the one or more entries dedicated to a given memory status type include an indication of any and all memory locations in said group of memory locations that currently have a status corresponding to the given memory status type. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54)
-
-
55. A computer readable storage medium including program instructions for accessing a group of memory locations in a computer system, wherein said program instructions are executable to:
-
maintain, for said group of memory locations, a first data structure that has a plurality of entries, the plurality of entries including one or more entries dedicated to each memory status type in a set of two or more memory status types, wherein the one or more entries dedicated to a given memory status type include an indication of any and all memory locations in said group of memory locations that currently have a status corresponding to the given memory status type; receive a write request to a first memory location within said group of memory locations; read from one or more entries within said first data structure to determine whether said first memory location is indicated as having a protected memory status, wherein the one or more entries are dedicated to one or more memory status types indicative of a protected memory status; and redirect said write request to a second memory location if said one or more entries indicate that said first memory location has a protected memory status, wherein said write request is redirected such that the contents of the first memory location are preserved for a first recovery point. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62)
-
Specification