Method and apparatus for creating a virtual data copy
First Claim
1. A method comprising:
- copying data from a memory region of a first memory to a memory region of a second memory;
setting a first bit in memory that corresponds to the memory region of the second memory, wherein the first bit is set to indicate that the memory region of the second memory stores data copied from the memory region of first memory;
modifying data stored in the memory region of the second memory after data is copied from the memory region of the first memory to the memory region of the second memory;
setting a second bit in memory, wherein the second bit is set to indicate that the data stored in the memory region of the second memory has been modified since data stored in the memory region of the second memory was copied from the memory region of the first memory.
7 Assignments
0 Petitions
Accused Products
Abstract
A virtual copy of data stored in a first memory is created in a second memory. Creating the virtual copy includes, in one embodiment, creating first and second tables in memory each one of which comprises a plurality of multibit entries. Each entry of the first table corresponds to a respective memory region of the first memory. Each entry of the second table corresponds to a respective memory region of the second memory. The first bit of the first and second tables indicates whether the corresponding memory region of the first and second memories, respectively, contains valid data. The second bit of the first and second tables indicates whether data in the corresponding memory region of the first and second memories, respectively, has been modified since the creation of the first and second tables, respectively.
14 Citations
27 Claims
-
1. A method comprising:
-
copying data from a memory region of a first memory to a memory region of a second memory; setting a first bit in memory that corresponds to the memory region of the second memory, wherein the first bit is set to indicate that the memory region of the second memory stores data copied from the memory region of first memory; modifying data stored in the memory region of the second memory after data is copied from the memory region of the first memory to the memory region of the second memory; setting a second bit in memory, wherein the second bit is set to indicate that the data stored in the memory region of the second memory has been modified since data stored in the memory region of the second memory was copied from the memory region of the first memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer readable memory for storing instructions executable by a computer system, wherein the computer system performs a method in response to executing the instructions, the method comprising:
-
creating a first virtual copy of data stored in a first memory, wherein the first virtual copy is created using a second memory; creating a second virtual copy of data stored in the first memory, wherein the second virtual copy is created using a third memory, and wherein the second virtual copy is created after the creation of the first virtual copy; converting the first virtual copy into a first real copy by copying all data stored in the first memory to the second memory.
-
-
10. A computer readable memory for storing instructions executable by a computer system, wherein a method is performed in response to executing the instructions, the method comprising;
-
creating a virtual copy of data stored in a first memory, wherein the virtual copy of data stored in the first memory is created using a second memory in response to a request to create a copy of all data stored in the first memory; copying first data from the first memory to the second memory in response to generation of a request to modify the first data in the first memory; modifying the first data in the first memory after the first data is copied from the first memory to the second memory. - View Dependent Claims (11)
-
-
12. A computer readable memory for storing instructions executable by a computer system, wherein a method is performed in response to executing the instructions, the method comprising:
-
creating a virtual copy of data stored in a first memory, wherein the virtual copy of data is created in response to a request to create a copy of data stored in the first memory; creating first and second tables in memory each one of which comprises a plurality of multibit entries; wherein each entry of the first table corresponds to a respective memory region of the first memory; wherein each entry of the second table corresponds to a respective memory region of a second memory; wherein each first bit of the first table indicates whether the corresponding memory region of the first memory contains data; wherein each second bit of the first table indicates whether data in the corresponding memory region of the first memory has been modified since the first table was created; wherein each first bit of the second table indicates whether the corresponding memory region of the second memory contains data copied from the first memory; wherein each second bit of the second table indicates whether data in the corresponding memory region of the second memory has been modified since the second table was created. - View Dependent Claims (13, 17)
-
-
14. A computer readable memory for storing instructions executable by a computer system, wherein a method is performed in response to executing the instructions, the method comprising:
-
copying data from a memory region of the first memory to a memory region of a second memory; setting a first bit in memory that corresponds to the memory region of the second memory, wherein the first bit is set to indicate that the memory region of the second memory stores data copied from the memory region of first memory; modifying data stored in the memory region of the second memory after data is copied from the memory region of the first memory to the memory region of the second memory; setting a second bit in memory, wherein the second bit is set to indicate that the data stored in the memory region of the second memory has been modified since data was copied from the memory region of the first memory to the memory region of the second memory. - View Dependent Claims (15, 16)
-
-
18. A system comprising:
-
a computer system; a first data storage system coupled to the computer system, wherein the first data storage system comprises a first memory; a second data storage system coupled to the computer system, wherein the second data storage system comprises a second memory; wherein the computer system comprises a processor for executing instructions and a memory that stores instructions executable by the processor to implement a method, the method comprising; creating a virtual copy of data stored in the first memory, wherein the virtual copy of data stored in the first memory is created using the second memory in response to generation of a request to create a copy of the data stored in the first memory; copying first data from the first memory to the second memory in response to generation of a request to modify the first data in the first memory; modifying the first data in the first memory after the first data is copied from the first memory to the second memory.
-
-
19. An apparatus comprising:
-
a first memory; a second memory coupled the first memory, wherein a total memory space of the second memory is equal to or greater than a total memory space of the first memory; means for creating a virtual copy of data stored in the first memory, wherein the virtual copy of data stored in the first memory is created using the second memory in response to generation of a request to create a copy of the data stored in the first memory; means for copying first data from the first memory to the second memory in response to generation of a request to modify the first data in the first memory; means for modifying the first data in the first memory after the first data is copied from the first memory to the second memory.
-
-
20. A computer readable memory for storing instructions executable by a computer system, wherein a method is performed in response to executing the instructions, the method comprising:
-
creating a virtual copy of data stored in a first memory, wherein the virtual copy of data stored in the first memory is created in response to a request to create a copy of all data stored in the first memory; copying data from a memory region of the first memory to a memory region of a second memory; setting a first bit in memory that corresponds to the memory region of the second memory, wherein the first bit is set to indicate that the memory region of the second memory stores data copied from the memory region of first memory; modifying data stored in the memory region of the second memory after data is copied from the memory region of the first memory to the memory region of the second memory; setting a second bit in memory, wherein the second bit is set to indicate that the data stored in the memory region of the second memory has been modified since data was copied from the memory region of the first memory to the memory region of the second memory. - View Dependent Claims (21, 22)
-
-
23. A system comprising:
-
means for copying data from a memory region of a first memory to a memory region of a second memory; means for setting a first bit in memory that corresponds to the memory region of the second memory, wherein the first bit is set to indicate that the memory region of the second memory stores data copied from the memory region of first memory; means for modifying data stored in the memory region of the second memory after data is copied from the memory region of the first memory to the memory region of the second memory; means for setting a second bit in memory, wherein the second bit is set to indicate that the data stored in the memory region of the second memory has been modified since data stored in the memory region of the second memory was copied from the memory region of the first memory.
-
-
24. A computer readable memory for storing instructions executable by a computer system, wherein the computer system performs a method in response to executing the instructions, the method comprising:
-
creating a first virtual copy of data stored in a first memory; creating a second virtual copy of data stored in the first memory, wherein the second virtual copy is created after the creation of the first virtual copy; modifying first data in the first memory in response to generation of a request to modify the first data; copying the first data to respective memories that are used to store data of the first and second virtual copies before the first data in the first memory is modified.
-
-
25. A computer readable memory for storing instructions executable by a computer system, wherein a method is performed in response to executing the instructions, the method comprising:
-
creating a virtual copy of data stored in a first memory in response to generation of a request to create a copy of all data stored in the first memory; converting the virtual copy into a real copy of the data stored in the first memory by copying all data stored in the first memory to a second memory; modifying first data in the first memory in response to generation of a request to modify the first data; copying the first data to the second memory before the first data is modified.
-
-
26. A computer readable memory for storing instructions executable by a computer system, wherein a method is performed in response to executing the instructions, the method comprising:
-
creating nmax first entries in memory; creating nmax second entries in memory; creating nmax third entries in memory; wherein each of the first entries corresponds to a respective memory region of the first memory; wherein each respective pair of the second and third entries corresponds to a respective memory region of a second memory; wherein each first entry comprises data indicting whether its corresponding memory region of the first memory contains data that has been modified since creation of the second and third entries; wherein each second entry comprises data indicating whether its corresponding memory region of the second memory contains data copied from a respective memory region of the first memory; wherein each third entry comprises data indicting whether its corresponding memory region of the second memory contains data that has been modified since creation of the second and third entries.
-
-
27. A method comprising:
-
creating nmax first entries in memory; creating nmax second entries in memory; creating nmax third entries in memory; wherein each of the first entries corresponds to a respective memory region of the first memory; wherein each respective pair of the second and third entries corresponds to a respective memory region of a second memory; wherein each first entry comprises data indicting whether its corresponding memory region of the first memory contains data that has been modified since creation of the second and third entries; wherein each second entry comprises data indicating whether its corresponding memory region of the second memory contains data copied from a respective memory region of the first memory; wherein each third entry comprises data indicting whether its corresponding memory region of the second memory contains data that has been modified since creation of the second and third entries.
-
Specification