Apparatus for obsolete mapping counting in NAND-based storage devices
US-11199983-B2 · Dec 14, 2021 · US
US12475032B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12475032-B2 |
| Application number | US-202318355124-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 19, 2023 |
| Priority date | Feb 24, 2023 |
| Publication date | Nov 18, 2025 |
| Grant date | Nov 18, 2025 |
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.
The present disclosure generally relates to improved consolidation in dual-layer FTL. In preparation for the next control sync, the controller will generate a copy the uRegions uHeaders and will continue updating the uLayer uRegion with new uRun entries. After completing the control sync operation, the controller will then select the best consolidation candidate based on comparing the uRegion uHeaders with their copy and determining the uRegion with the maximum uRuns difference or the greatest number of uRun updates in case the uRun updates difference is less than a threshold. The controller then reads the selected mSets from the flash memory to its cache and merges the updated uRuns with the cached mSets.
Opening claim text (preview).
What is claimed is: 1 . A data storage device, comprising: a memory device; and a controller coupled to the memory device, wherein the controller is configured to: manage a dual-layered FTL mapping consisting of a master layer (mLayer) and an update layer (uLayer), wherein the mLayer is further divided to mSets and the uLayer is further divided to uRegions, each uRegion includes uRun updates of mSets listed in a uRegion uHeader and a copy of the uRegion uHeader; perform a control sync operation; select a uRegion for consolidation according to a selection criteria, wherein the selection criteria comprises comparing the uRegion uHeaders to their copy of the uRegion uHeaders, select the uRegion with max uRuns difference based on the comparison of the uRegion uHeaders to the copy of the uRegion uHeaders, and wherein if the difference between the uRuns in the uHeaders is the same for two uRegions, select the uRegion with max number of uRuns; and perform consolidation. 2 . The data storage device of claim 1 , wherein the consolidation comprises reading a selected mSet from a flash memory to a cache. 3 . The data storage device of claim 2 , wherein the consolidation comprises merging additional uRuns to an mSet stored in the uLayer. 4 . The data storage device of claim 2 , wherein the consolidation comprises storing an mSet in the memory device after merging and removing the merged uRuns from the uLayer. 5 . The data storage device of claim 2 , wherein the uRegion uHeaders include uRun updates and other uRegion information. 6 . The data storage device of claim 1 , wherein the copy of uRegion uHeaders is created prior to the control sync operation while preparing for the control sync operation. 7 . The data storage device of claim 6 , wherein the copy of uHeaders is retained after completion of the control sync operation. 8 . The data storage device of claim 7 , wherein the copy of uHeaders are identical to a corresponding uHeader prior to the control sync operation. 9 . The data storage device of claim 1 , wherein the controller is further configured to accumulate additional uRuns for the uRegion during preparing and performing a non-blocking control sync operation. 10 . A data storage device, comprising: a memory device; and a controller coupled to the memory device, wherein the controller is configured to: perform a first consolidation on a first uRegion, wherein the first uRegion is a uRegion that has a greatest number of uRuns updated compared to other uRegions; save a first mSet to cache, wherein the mSet includes uRuns from the first uRegion; determine that another uRegion is ready for a second consolidation, wherein determining that another uRegion is read ready for a second consolidation comprises comparing uRegion uHeaders to a copy of the uRegion uHeaders, selecting the uRegion with max uRuns difference based on the comparison of the uRegion uHeaders to the copy of the uRegion uHeaders, and wherein if the difference between the uRuns in the uHeaders is the same for two uRegions, selecting the uRegion with max number of uRuns; and perform the second consolidation on the another uRegion. 11 . The data storage device of claim 10 , wherein the another uRegion is the first uRegion. 12 . The data storage device of claim 10 , wherein prior to the second consolidation, uRuns from the first uRegion are merged with the first mSet. 13 . The data storage device of claim 10 , wherein the another uRegion is a uRegion that has a greatest number of uRuns updated compared to other uRegions. 14 . The data storage device of claim 10 , wherein the controller is configured to perform a consolidation operation prior to performing a control sync operation. 15 . The data storage device of claim 14 , wherein the control sync operation involves creating a copy of uHeaders. 16 . The data storage device of claim 15 , wherein the copy of uHeaders is retained during the first consolidation. 17 . A data storage device, comprising: means to store data; and a controller coupled to the means to store data, wherein the controller is configured to: retain a copy of uHeaders utilized during control sync operations for use during a consolidation operation; and select a uRegion for the consolidation operation based upon a difference between the copy of uHeaders and uHeaders for uRuns, wherein the uRegion with max uRuns difference is selected, and wherein if the difference between the uRuns in the uHeaders is the same for two uRegions, the uRegion with max number of uRuns is selected. 18 . The data storage device of claim 17 , wherein the controller is further configured to: delay writing mSets to the means to store data; and write the mSets to cache prior to writing the mSets to the means to store data. 19 . The data storage device of claim 17 , wherein the data storage device is dynamic random access memory (DRAM) less.
Management of blocks · CPC title
Improving I/O performance · CPC title
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Performance improvement · CPC title
Logical to physical mapping or translation of blocks or pages · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.