Method of managing copy operations in flash memories
First Claim
Patent Images
1. A method of managing a memory device, comprising:
- (a) including a flash memory in the memory device;
(b) sending to the memory device, by a host of the memory device, a first data chunk, said first data chunk being one version of data among one or more versions of data sharing a common logical address;
(c) providing a signature to identify the version of said first data chunk, wherein the signature is generated by cyclically incrementing a signature of a prior version of said first data chunk;
(d) storing said first data chunk in a first erase block in said flash memory;
(e) copying said first data chunk to a second erase block in said flash memory, thereby producing a copy of said first data chunk with the common logical address, said copy of said first data chunk being the same version as the first data chunk;
(f) assigning to said copy a signature that matches said signature of said first data chunk;
wherein a plurality of said first data chunks are sent to the memory device, assigned respective signatures, stored in respective first erase blocks and copied to respective second erase blocks, and wherein each said copy is assigned a respective said signaturewherein each said first data chunk has a respective logical address, the method further comprising the step of;
(g) in seeking to erase an erase block of said flash memory that includes at least two of said first data chunks;
(i) for each said first data chunk that is included in said erase block of said flash memory;
seeking all said copies that have said logical address of said each first data chunk; and
(ii) erasing said erase block of said flash memory only if, for each said first data chunk that is included in said erase block of said flash memory, said signature of one of said copies that has said logical address of said each data chunk matches said signature of said each data chunk.
4 Assignments
0 Petitions
Accused Products
Abstract
Upon the arrival at a memory device of one or more data chunks associated with respective logical addresses, each data chunk is assigned a signature, stored in a first location, and copied to a second location. The copy is assigned a signature that matches the signature of its parent data chunk. Before erasing a memory block that includes one or more data chunks, it first is verified that those data chunks have been copied, i.e., that copies of all the data chunks in the block, with matching signatures, exist in the memory device.
39 Citations
12 Claims
-
1. A method of managing a memory device, comprising:
-
(a) including a flash memory in the memory device; (b) sending to the memory device, by a host of the memory device, a first data chunk, said first data chunk being one version of data among one or more versions of data sharing a common logical address; (c) providing a signature to identify the version of said first data chunk, wherein the signature is generated by cyclically incrementing a signature of a prior version of said first data chunk; (d) storing said first data chunk in a first erase block in said flash memory; (e) copying said first data chunk to a second erase block in said flash memory, thereby producing a copy of said first data chunk with the common logical address, said copy of said first data chunk being the same version as the first data chunk; (f) assigning to said copy a signature that matches said signature of said first data chunk; wherein a plurality of said first data chunks are sent to the memory device, assigned respective signatures, stored in respective first erase blocks and copied to respective second erase blocks, and wherein each said copy is assigned a respective said signature wherein each said first data chunk has a respective logical address, the method further comprising the step of; (g) in seeking to erase an erase block of said flash memory that includes at least two of said first data chunks; (i) for each said first data chunk that is included in said erase block of said flash memory;
seeking all said copies that have said logical address of said each first data chunk; and(ii) erasing said erase block of said flash memory only if, for each said first data chunk that is included in said erase block of said flash memory, said signature of one of said copies that has said logical address of said each data chunk matches said signature of said each data chunk. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of managing a memory device, comprising:
-
(a) including a flash memory in the memory device; (b) sending to the memory device, by a host of the memory device, a first data chunk, said first data chunk being one version of data among one or more versions of data sharing a common logical address; (c) providing a signature to identify the version of said first data chunk, wherein the signature is generated by cyclically incrementing a signature of a prior version of said first data chunk; (d) storing said first data chunk in a first erase block in said flash memory; (e) copying said first data chunk to a second erase block in said flash memory, thereby producing a copy of said first data chunk with the common logical address, said copy of said first data chunk being the same version as the first data chunk; (f) assigning to said copy a signature that matches said signature of said first data chunk; wherein a plurality of said first data chunks are sent to the memory device, assigned respective signatures, stored in respective first locations and copied to respective second locations, and wherein all said copies are assigned a common signature that matches all said respective signatures of said first data chunks wherein each said first data chunk has a respective logical address, the method further comprising the step of; (g) in seeking to erase an erase block of said flash memory that includes at least one two of said first data chunks; (i) for each said first data chunk that is included in said erase block of said main flash memory;
seeking all said copies that have said logical address of said each first data chunk; and(ii) erasing said erase block of said main memory only if, for each said first data chunk that is included in said erase block of said flash memory, said signature of one of said copies that have said logical address of said each data chunk matches said signature of said each data chunk. - View Dependent Claims (7, 8)
-
-
9. A memory device for storing a first data chunk, said first data chunk being one version of data among one or more versions of data sharing a common logical address, said first data chunk being sent to the memory device by a host, comprising:
-
(a) a flash memory having a plurality of erase blocks, an erase block storing a plurality of data chunks; and (b) a controller operative; (i) to assign to the first data chunk a signature identifying the version of the data chunk, wherein the signature is generated by cyclically incrementing a signature of a prior version of the data chunk; (ii) to store the first data chunk in a first erase block in said memory; (iii) to copy the first data chunk to a second erase block in said memory, thereby producing a copy of the first data chunk with the common logical address said copy of said first data chunk being the same version as the first data chunk; (iv) to assign to said copy a signature that matches said signature of the first data chunk; (v) to subsequently, prior to erase of the first erase block, seek all copies of the first data chunk having the signature; and (vi) to only erase the first erase block after the copy of the first data chunk in the second erase block having the signature is found. - View Dependent Claims (10, 11, 12)
-
Specification