Dynamic logical groups for mapping flash memory
First Claim
Patent Images
1. A flash memory device comprising:
- a non-volatile storage having an array of memory blocks storing data; and
a controller in communication with the non-volatile storage, the controller is configured for;
accessing a global address table (GAT) that utilizes a large logical group size for each entry of the GAT for indexing a large chunk of sequential data;
receiving a request for data to be written;
indexing the data to be written in the entries of the GAT with the large logical group size when the data to be written is sequential;
creating, when the data to be written is fragmented, an additional GAT index comprising entries utilizing a smaller logical group size for indexing fragmented data;
modifying, when the data to be written is fragmented an entry of the GAT to include a pointer to the additional GAT index, so that an entry of the GAT index points to the additional GAT index for the fragmented data rather than indexing the fragmented data using the entries with the large logical group size; and
indexing, when the data to be written is fragmented, the data to be written through the entries with the smaller logical group size in the additional GAT index rather than indexing the fragmented data using the entries with the large logical group size from the GAT.
2 Assignments
0 Petitions
Accused Products
Abstract
A memory system or flash card may include a controller that indexes a global address table (GAT) with a single data structure that addresses both large and small chunks of data. The GAT may include both large logical groups and smaller logical groups for optimizing write amplification. The addressing space may be organized with a large logical group size for sequential data. For fragmented data, the GAT may reference an additional GAT page or additional GAT chunk that has a smaller logical group size.
15 Citations
19 Claims
-
1. A flash memory device comprising:
a non-volatile storage having an array of memory blocks storing data; and
a controller in communication with the non-volatile storage, the controller is configured for;accessing a global address table (GAT) that utilizes a large logical group size for each entry of the GAT for indexing a large chunk of sequential data; receiving a request for data to be written; indexing the data to be written in the entries of the GAT with the large logical group size when the data to be written is sequential; creating, when the data to be written is fragmented, an additional GAT index comprising entries utilizing a smaller logical group size for indexing fragmented data; modifying, when the data to be written is fragmented an entry of the GAT to include a pointer to the additional GAT index, so that an entry of the GAT index points to the additional GAT index for the fragmented data rather than indexing the fragmented data using the entries with the large logical group size; and indexing, when the data to be written is fragmented, the data to be written through the entries with the smaller logical group size in the additional GAT index rather than indexing the fragmented data using the entries with the large logical group size from the GAT. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. A method for evaluating flash memory in a memory device comprising:
in the memory device having a controller and blocks of memory, the controller; utilizes a global address table (GAT) with entries having a large logical group size; receives a request for data to be written; determines whether the data to be written is sequential or fragmented; indexes the data in one or more of the entries having the large logical group size in the GAT when the data is determined to be sequential; and indexes, when the data is determined to be fragmented, the data with an additional GAT index that has entries utilizing a smaller logical group size than the large logical group size of the GAT, wherein the entries of the GAT include sequential data indexed with the large logical group size or includes a pointer to the additional GAT index for indexing the fragmented data with the entries indexed with the smaller logical group size from the additional GAT index. - View Dependent Claims (10, 11, 12, 13, 14)
-
15. A flash memory device comprising:
-
a non-volatile storage having an array of memory blocks storing data; and a controller in communication with the non-volatile storage, the controller is configured for; accessing a global address table (GAT) index that utilizes a large logical group size for indexing a large chunk of data; accessing a second GAT index that utilizes a first smaller logical group size for indexing a smaller chunk of data than the large chunk of data; accessing a third GAT index that utilizes an second smaller logical group size that is smaller than the first smaller logical group size; indexing sequential data with the GAT index; and indexing random data with either the second GAT index or the third GAT index. - View Dependent Claims (16, 17, 18, 19)
-
Specification