Data storage device and method for flash block management

US9600408B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9600408-B2
Application numberUS-201213484228-A
CountryUS
Kind codeB2
Filing dateMay 30, 2012
Priority dateMay 18, 2012
Publication dateMar 21, 2017
Grant dateMar 21, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • Wear leveling · CPC title

  • in block erasable memory, e.g. flash memory · CPC title

  • Cleaning, compaction, garbage collection, erase control · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9600408B2 cover?
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…
Who is the assignee on this patent?
Cheng Chang-Kai, Lin Yen-Hung, Silicon Motion Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0246. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 21 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).