Memory performance evaluation using address mapping information
US-2024394164-A1 · Nov 28, 2024 · US
US9600408B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9600408-B2 |
| Application number | US-201213484228-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 30, 2012 |
| Priority date | May 18, 2012 |
| Publication date | Mar 21, 2017 |
| Grant date | Mar 21, 2017 |
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 invention provides a data storage device. In one embodiment, the data storage device is coupled to a host, and comprises a flash memory and a controller. The flash memory comprises a spare block pool and a data block pool, wherein the spare block pool comprises a plurality of spare blocks, and the data block pool comprises a plurality of data blocks. The controller receives target data from the host, writes the target data to a current programming data block, determines whether a current programming page is a first page of the current programming data block, determines whether data move information is set when the current page is not the first page, and when the data move information is set, perform a data move process according to the data move information within a limited time period.
Opening claim text (preview).
What is claimed is: 1. A data storage device, coupled to a host, comprising: a flash memory, comprising a spare block pool and a data block pool, wherein the spare block pool comprises a plurality of spare blocks, and the data block pool comprises a plurality of data blocks; and a controller, receiving target data from the host, writing the target data to a current programming data block, determining whether a current programming page is a first page of the current programming data block, wherein the current programming page is a physical page, determining whether data move information is set when the current page is not the first page, and when the data move information is set, performing a data move process according to the data move information within a limited time period, wherein the limited time period is determined by a standard for data transmission between the data storage device and the host, wherein the data move process is a data merge process. 2. The data storage device as claimed in claim 1 , wherein when the current programming page is the first page, the controller determines whether the spare block count is less than a spare block count threshold, and sets the data move information for the data merge process when the spare block count is less than the spare block count threshold, wherein the data move information for the data merge process comprises physical addresses of a plurality of source data blocks and physical addresses of a destination spare block. 3. The data storage device as claimed in claim 2 , wherein when the controller sets the data move information for the data merge process, the controller selects the data blocks with minimum valid page counts from the data block pool as the source data blocks, and obtains the destination spare block from the spare block pool. 4. The data storage device as claimed in claim 1 , wherein the data move information for the data merge process comprises physical addresses of a plurality of source data blocks and a destination spare block, and when the controller performs the data merge process, the controller merges data stored in the source data blocks to obtain merged data, writes the merged data to the destination spare block. 5. The data storage device as claimed in claim 1 , wherein when the current page is the first page, the controller determines whether the hot block count is greater than zero, and sets data move information for the wear-leveling process when the hot spare block count is greater than zero, wherein the data move information for the wear-leveling process comprises physical addresses of a plurality of source data blocks and physical addresses of a plurality of destination spare blocks. 6. The data storage device as claimed in claim 5 , wherein when the controller sets the data move information for the wear-leveling process, the controller selects the data block with minimum erase count from the data block pool as the source data blocks, and selects the hot block from the spare block pool as the destination spare block. 7. The data storage device as claimed in claim 5 , wherein when the controller performs a portion of the wear-leveling process within the limited time period, the controller selects a target page from the source data block and copies data from the target page to the destination spare block within the limited time period. 8. A method for flash block management, wherein a data storage device is coupled to a host and comprises a flash memory and a controller, the flash memory comprises a spare block pool and a data block pool, the spare block pool comprises a plurality of spare blocks, and the data block pool comprises a plurality of data blocks, the method comprising: receiving target data from the host; writing the target data to a current programming data block; determining whether a current programming page is a first page of the current data block, wherein the current programming page is a physical page; determining whether data move information is set when the current page is not the first page; and when the data move information is set, performing a data move process according to the data move information within a limited time period, wherein the limited time period is determined by a standard for data transmission between the data storage device and the host, wherein the data move process is a data merge process. 9. The method as claimed in claim 8 , wherein the method further comprises: when the current page is the first page, determining whether a spare block count is less than a spare block count threshold; setting the data move information for the data merge process when the spare block count is less than the spare block count threshold; wherein the data move information for the data merge process comprises physical addresses of a plurality of source data blocks and physical addresses of a destination spare block. 10. The method as claimed in claim 9 , wherein setting of the data move information for the data merge process comprises: selecting the data blocks with minimum valid page counts from the data block pool as the source data blocks; and obtaining the destination spare block from the spare block pool. 11. The method as claimed in claim 10 , wherein the data move information for the data merge process comprises physical addresses of a plurality of source data blocks and a destination spare block, and performing of the data merge process comprises: merging data stored in the source data blocks to obtain merged data; and writing the merged data to the destination spare block. 12. The method as claimed in claim 8 , wherein the method further comprises: when the current programming page is the first page, determining whether the hot block count is greater than zero; setting data move information for the wear-leveling process when the hot spare block count is greater than zero; wherein the data move information for the wear-leveling process comprises physical addresses of a plurality of source data blocks and physical addresses of a plurality of destination spare blocks. 13. The method as claimed in claim 12 , wherein setting of the data move information for the wear-leveling process comprises: selecting the data block with minimum erase counts from the data block pool as the source data block; and selecting the hot block erase count from the spare block pool as the destination spare block. 14. The method as claimed in claim 13 , wherein performing of the wear-leveling process within the limited time period comprises: selecting a target page from the source data block; and copying data from the target page to the destination spare block within the limited time period.
Wear leveling · CPC title
in block erasable memory, e.g. flash memory · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.