Virtual container storage interface controller
US-12175078-B2 · Dec 24, 2024 · US
US9971514B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9971514-B2 |
| Application number | US-201414261925-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 25, 2014 |
| Priority date | Nov 21, 2013 |
| Publication date | May 15, 2018 |
| Grant date | May 15, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
We claim: 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. The device of claim 1 wherein the additional GAT page is referenced from the GAT by the pointer. 3. The device of claim 1 wherein the GAT and the additional GAT include different entries. 4. The device of claim 1 wherein the GAT comprises a flag for each entry that signifies whether physical data is addressed in the GAT or addressed in the additional page. 5. The device of claim 4 wherein the flag is a one bit value. 6. The device of claim 4 wherein when the physical data is addressed in the GAT, an entry includes a data block and a logical group offset. 7. The device of claim 4 wherein when the physical data is addressed in the additional GAT page, an entry includes a GAT block and the pointer comprises a GAT page offset for identifying the additional GAT page. 8. The device of claim 1 wherein the large logical group size comprises approximately four megabytes and the small logical group size comprises approximately four kilobytes. 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. 10. The method of claim 9 wherein the additional GAT index is located from an address in the pointer with the GAT. 11. The method of claim 9 wherein the GAT comprises a flag for each entry that signifies whether physical data is addressed in the GAT or addressed in the GAT additional page. 12. The method of claim 11 wherein the flag is a one bit value. 13. The method of claim 11 wherein when the physical data is addressed in the GAT, an entry includes a data block and a logical group offset. 14. The method of claim 11 wherein when the physical data is addressed in the additional GAT index, an entry includes a GAT block and a GAT page offset for identifying the additional GAT index. 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. 16. The flash memory device of claim 15 wherein the GAT index references the second GAT index and the second GAT index references the third GAT index. 17. The flash memory device of claim 16 wherein sequential portions of the random data is stored in the second GAT index, while further fragmented portions of the random data is stored in the third GAT index. 18. The flash memory device of claim 15 wherein the GAT index, the second GAT index, and the third GAT index include different entries. 19. The flash memory device of claim 15 wherein the logical group size corresponds with whether data is sequential or fragmented, such that larger portions of sequential data are indexed with the large logical group size of the GAT index and smaller portions of sequential data within the random data is indexed by the second GAT index or third GAT index.
Management of space entities, e.g. partitions, extents, pools · CPC title
Logical to physical mapping or translation of blocks or pages · CPC title
in relation to life time, e.g. increasing Mean Time Between Failures [MTBF] · CPC title
Improving I/O performance · CPC title
Performance improvement · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.