Back to results
US 9,542,111 B2Granted
Writable clone data structure
AssigneeSkyera, LLC
InventorQi Wu
Life of this patent
Estimating the term…
Abstract
A memory system including parent data and clone data is disclosed, where the clone data represents a clone of the parent data. The system determines whether clone data to be accessed is different from corresponding data in the parent. The system also determines a physical location of the data to be accessed based on whether the data to be accessed is different from the corresponding parent data. The system also accesses the data based on the physical location.
Claims21
A memory system, comprising:
- a memory controller;
- and
- a memory, wherein the memory is configured to store a plurality of data fragments at a plurality of first physical addresses of the memory, wherein each data fragment has a logical address, and wherein the memory is further configured to store mapping tree data, wherein the mapping tree data comprises the first physical addresses, wherein the first physical addresses are stored at second physical addresses of the memory, and wherein the second physical addresses may be determined based in part on the logical addresses of the data fragments;
- wherein a first portion of the mapping tree is associated with a first logically associated set of data fragments stored in the memory;
- wherein a second portion of the mapping tree is associated with a second logically associated set of data fragments stored in the memory, wherein the second set of data fragments is a first clone of the first set of data fragments, and the first set of data fragments is a parent of the first clone, and wherein the second portion of the mapping tree comprises one or more first clone change indicators, each indicating that a particular data fragment of the first clone associated with a particular logical address is different from a data fragment of the parent associated with the particular logical address;
- and
- wherein a third portion of the mapping tree is associated with a third logically associated set of data fragments stored in the memory, wherein the third set of data fragments is a second clone of the second set of data fragments, and the second set of data fragments is a parent of the second clone, and wherein the third portion of the mapping tree comprises one or more second clone change indicators, each indicating that a particular data fragment of the second clone associated with a particular logical address is different from a data fragment of the first clone associated with the particular logical address.
4 more elements
A method of accessing data in a memory, the method comprising:
- storing in the memory a plurality of data fragments at a plurality of first physical addresses of the memory, wherein each data fragment has a logical address;
- storing in the memory mapping tree data, wherein the mapping tree data comprises the first physical addresses, wherein the first physical addresses are stored at second physical addresses of the memory, and wherein the second physical addresses may be determined based in part on the logical addresses of the data fragments, wherein a first portion of the mapping tree is associated with a first logically associated set of data fragments stored in the memory, and wherein a second portion of the mapping tree is associated with a second logically associated set of data fragments stored in the memory, and wherein a third portion of the mapping tree is associated with a third logically associated set of data fragments stored in the memory,
- wherein the second set of data fragments is a first clone of the first set of data fragments, and the first set of data fragments is a parent of the first clone, and wherein the second portion of the mapping tree comprises one or more first clone change indicators, each indicating that a particular data fragment of the first clone associated with a particular logical address is different from a data fragment of the parent associated with the particular logical address, and wherein the data to be accessed is a member of the second set of data fragments and is associated with a particular logical address, wherein the third set of data fragments is a second clone of the second set of data fragments, and the second set of data fragments is a parent of the second clone, and wherein the third portion of the mapping tree comprises one or more second node change indicators, each indicating that a particular data fragment of the second clone associated with a particular logical address is different from a data fragment of the first clone associated with the particular logical address, and wherein the data to be accessed is a member of the third set of data fragments and is associated with a particular logical address;
- determining whether the data to be accessed is different from a data fragment of the first clone associated with the particular logical address based on an indicator associated with the data to be accessed;
- determining a physical location of the data to be accessed based on whether the data to be accessed is different from a corresponding data fragment of the first clone associated with the particular logical address;
- and
- accessing the data to be accessed based on the physical location.
4 more elements
A method of changing data of a clone in a memory, the method comprising:
- storing in the memory a plurality of data fragments at a plurality of first physical addresses of the memory, wherein each data fragment has a logical address;
- storing in the memory a mapping tree data, wherein the mapping tree data comprises the first physical addresses, wherein the first physical addresses are stored at second physical addresses of the memory, and wherein the second physical addresses may be determined based in part on the logical addresses of the data fragments, wherein a first portion of the mapping tree is associated with a first logically associated set of data fragments stored in the memory, wherein a second portion of the mapping tree is associated with a second logically associated set of data fragments stored in the memory, wherein the second set of data fragments is a first clone of the first set of data fragments, wherein a third portion of the mapping tree is associated with a third logically associated set of data fragments stored in the memory, wherein the third set of data fragments is a second clone of the second set of data fragments, and the first set of data fragments is a parent of the first clone, wherein the second portion of the mapping tree comprises a plurality of first clone change indicators associated with a plurality of logical addresses, wherein the first clone change indicators indicate whether the data fragment of the first clone is different from corresponding data fragments of the parent, wherein the third portion of the mapping tree comprises a plurality of second clone change indicators associated with a plurality of logical addresses, wherein the second clone change indicators indicate whether the data fragment of the second clone is different from corresponding data fragments of the first clone, and wherein the data to be changed is a member of the third set of data fragments and is associated with a particular logical address;
- changing the data to be changed;
- and
- generating a change indicator associated with the particular logical address, wherein the generated change indicator indicates that the data to be changed has been changed, and wherein the generated change indicator is associated with the particular logical address.
2 more elements
Dependencies are inferred from the claim text.