Flash memory controller and associated control method
US-2024377989-A1 · Nov 14, 2024 · US
US2018356997A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2018356997-A1 |
| Application number | US-201815954198-A |
| Country | US |
| Kind code | A1 |
| Filing date | Apr 16, 2018 |
| Priority date | Jun 12, 2017 |
| Publication date | Dec 13, 2018 |
| Grant date | — |
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 system and method is disclosed for managing data in a non-volatile memory. The system may include a non-volatile memory having multiple non-volatile memory sub-drives. A controller of the memory system is configured to route incoming host data to a desired sub-drive, keep data within the same sub-drive as its source during a garbage collection operation, and re-map data between sub-drives, separate from any garbage collection operation, when a sub-drive overflows its designated amount logical address space. The method may include initial data sorting of host writes into sub-drives based on any number of hot/cold sorting functions. In one implementation, the initial host write data sorting may be based on a host list of recently written blocks for each sub-drive and a second write to a logical address encompassed by the list may trigger routing the host write to a hotter sub-drive than the current sub-drive.
Opening claim text (preview).
We claim: 1 . A non-volatile memory system comprising: a non-volatile memory having a plurality of sub-drives, each of the plurality of sub-drives associated with superblocks of data within a respective data temperature range; a controller in communication with the plurality of sub-drives, the controller configured to: sort data as it is received in a host write command into one of the plurality of sub-drives based on a determined data temperature of data in the host write command; for each respective sub-drive of the plurality of sub-drives, other than for a sub-drive associated with a hottest data temperature range, maintain a list of superblocks containing most recently written data for that respective sub-drive; and when a logical address of data in a received host write command is present in the list for that respective sub-drive, automatically route the data in the received host write command to a different one of the plurality of sub-drives associated with a hotter data temperature range than a data temperature range of that respective sub-drive. 2 . The non-volatile memory system of claim 1 , wherein the controller is further configured to, when the logical address of data in the received host write command is absent from the list for that respective sub-drive, route the data in the received host write command to a same sub-drive as currently contains data associated with the logical address of the data in the received host write command. 3 . The non-volatile memory system of claim 2 , wherein each list for each respective sub-drive comprises a list of superblocks containing logical addresses of data in most recent host writes to the respective sub-drive. 4 . The non-volatile memory system of claim 3 , wherein the controller is further configured to only relocate valid data during a garbage collection operation within a same sub-drive. 5 . The non-volatile memory system of claim 4 , wherein each list includes both most recent host writes and most recent garbage collection writes to the respective sub-drive. 6 . The non-volatile memory system of claim 3 , wherein each list comprises a first in first out (FIFO) list having a fixed length of entries. 7 . The non-volatile memory of claim 6 , wherein each list comprises a same fixed length. 8 . The non-volatile memory of claim 6 , wherein each list comprises a different fixed length. 9 . The non-volatile memory of claim 8 , wherein the controller is further configured to: when the logical address of data in the received host write command is absent from the list, and when the data for the received host write is routed to a respective sub-drive and the list for the respective sub-drive is filled to the fixed length for the respective sub-drive, push an oldest entry off of an end of the list and insert a new entry at a beginning of the list. 10 . The non-volatile memory of claim 6 , wherein the controller is further configured to: after initially routing data from a host write command to a sub-drive, only physically copy data from a superblock in a respective sub-drive to another superblock in the respective sub-drive during a garbage collection operation; and only logically remap data already written to the respective sub-drive to another of the plurality of sub-drives when a logical capacity assigned to the respective sub-drive is exceeded. 11 . A method for initially sorting data in a non-volatile memory system, wherein the non-volatile memory system has a plurality of sub-drives each associated with a different data temperature range, comprising a controller of the non-volatile memory system: maintaining a list of most recent host writes for one of the plurality of sub-drives; comparing logical addresses of data in a received host write command to logical addresses of data in the list of most recent host writes for the one of the plurality of sub-drives; and when a logical address of data in the received host write command is present in the list, automatically routing the data in the received host write command to a different one of the plurality of sub-drives associated with a hotter data temperature range than the one of the plurality of sub-drives. 12 . The method of claim 11 , further comprising, when the logical address of the data in the received host write command is not present in the list, automatically routing the data in the received host write command to a same sub-drive as currently contains data associated with the logical address. 13 . The method of claim 11 , wherein the list comprises a list of superblocks containing the logical address of data in the most recent host data writes. 14 . The method of claim 13 , wherein: the list comprises a first in first out list having a fixed length of write entries; and when the list is filled to the fixed length, pushing an oldest write entry off of an end of the list and inserting a new write entry at a beginning of the list when the logical address of data in the received host write command is absent from the list. 15 . The method of claim 13 , wherein the list includes both recent host data writes and recent garbage collection writes. 16 . The method of claim 13 , wherein maintaining the list of most recent host writes comprises maintaining lists of most recent host writes for each of the plurality of sub-drives other than a hottest data temperature range sub-drive of the plurality of sub-drives. 17 . The method of claim 11 , further comprising: logically remapping a coldest superblock from the different one of the plurality of sub-drives, to the one of the plurality of sub-drives, when routing the data in the received host write command to the different one of the plurality of sub-drives results in the different one of the plurality of sub-drives exceeding a predetermined logical address space. 18 . The method of claim 15 , further comprising: only physically copying data from one superblock in a respective sub-drive to another superblock in the respective sub-drive during a garbage collection operation; and only moving data from one of the plurality of sub-drives to another of the plurality of sub-drives via logical remapping. 19 . A non-volatile memory system comprising: a non-volatile memory having a plurality of sub-drives, each of the plurality of sub-drives associated with superblocks of data within a respective data temperature range; means for maintaining, for a portion of the plurality of sub-drives, separate lists of most recently written data from a host; means for initially routing data associated with an incoming host write command to a particular one of the plurality of sub-drives based on the separate lists of most recently written data from the host; means for only physically moving data already stored in any of the plurality of sub-drives between superblocks in a same sub-drive; and means for only moving data already stored in a sub-drive to another sub-drive by logical remapping. 20 . The non-volatile memory system of claim 19 , wherein: the plurality of sub-drives comprises a first sub-drive associated with superblocks of data in a hottest data temperature range and multiple sub-drives each associated with superblocks of data in respective different temperature range lower than the hottest data temperature range; and the portion of the plurality of sub-drives comprises all sub-drives other than the first sub-drive.
at area level, e.g. provisioning of virtual or logical volumes · CPC title
Management of blocks · CPC title
in relation to life time, e.g. increasing Mean Time Between Failures [MTBF] · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
Space efficiency improvement · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.