Systems and methods for intelligent flash management

US9355022B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9355022-B2
Application numberUS-201313784429-A
CountryUS
Kind codeB2
Filing dateMar 4, 2013
Priority dateDec 7, 2012
Publication dateMay 31, 2016
Grant dateMay 31, 2016

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.

Systems and method for performing intelligent flash management are disclosed. A controller may determine if a write pattern exists between a set of writes associated with a first data chunk and a set of writes associated with a second data chunk based on whether a number of writes for first data chunk is equal to a number of writes for second data chunk; a degree to which a sequence of logical block address for the first data chunk matches the sequence of logical block addresses for the second data chunk; and a degree to which a size of each write for the first data chunk matches a size of each write for the second data chunk. The controller may then perform storage management operations based on whether or not a write pattern exists.

First claim

Opening claim text (preview).

The invention claimed is: 1. In a processor of a storage system, a method for performing storage management operations, the method comprising: determining whether a number of writes to a storage device to store a first data chunk at the storage device is equal to a number of writes to the storage device to store a second data chunk at the storage device; determining a degree to which a sequence of logical block addresses where the first data chunk is stored at the storage device matches a sequence of logical block addresses where the second data chunk is stored at the storage device; determining a degree to which a size of each write of data to store the first data chunk at the storage device matches a size of each write of data to store the second data chunk at the storage device; determining whether or not a write pattern exists based on at least one of the determination of whether the number of writes to store the first data chunk is equal to the number of writes to store the second data chunk, the degree to which the sequence of logical block addresses where the first data chunk is stored matches the sequence of logical block addresses where the second data chunk is stored, or the degree to which the size of each write to store the first data chunk matches the size of each write to store the second data chunk; and performing storage management operations within the storage device based on the determination of whether or not a write pattern exists. 2. The method of claim 1 , wherein determining whether or not a write pattern exists comprises: determining a write pattern does not exist based on at least one of: determining that the number of writes to store the first data chunk is not equal to the number of writes to store the second data chunk, determining that the degree to which the sequence of logical block where addresses the first data chunk is stored matches the sequence of logical block addresses where the second data chunk is stored is less than a first threshold, or determining that the degree to which the size of each write to store the first data chunk matches the size of each write to store the second data chunk is less than a second threshold. 3. The method of claim 2 , wherein performing storage management operations within the storage device based on the determination of whether or not a write pattern exists comprises: maintaining logical block addresses associated with at least one of the first data chunk and the second data chunk in an update block based on the determination that a write pattern does not exist. 4. The method of claim 1 , wherein determining whether or not a write pattern exists comprises: determining a write pattern exists based on determining the number of writes to store the first data chunk is equal to the number of writes to store the second data chunk, determining the degree to which the sequence of logical block addresses where the first data chunk is stored matches the sequence of logical block addresses where the second data chunk is stored meets or exceeds a first threshold, and determining the degree to which the size of each write to store the first data chunk matches the size of each write to store the second data chunk meets or exceeds a second threshold. 5. The method of claim 4 , further comprising: predicting one or more logical block addresses where writes will occur after a period of time based on the determination that a write pattern exists; wherein performing storage management operations comprises restoring data stored at the one or more predicted logical block addresses in the update block. 6. The method of claim 4 , further comprising: predicting one or more logical block addresses where no writes will occur within a period of time based on the determination that a write pattern exists; wherein performing storage management operations comprises writing data stored at the one or more predicted logical block addresses to a data block. 7. The method of claim 4 , further comprising: after determining that a write pattern exists: determining whether a number of writes to the storage device to store the first data chunk is equal to a number of writes to the storage device to store a third data chunk; determining a degree to which a sequence of logical block addresses where the first data chunk is stored matches a sequence of logical block addresses where the third data chunk is stored; determining a degree to which a size of each write of data to store the first data chunk matches a size of each write of data to store the third data chunk; and determining that the write pattern has ceased based on at least one of: determining that the number of writes to store the first data chunk is not equal to the number of writes to store the third data chunk, determining that the degree to which the sequence of logical block addresses where the first data chunk is stored matches the sequence of logical block addresses where the third data chunk is stored is less than the first threshold, or determining that the degree to which the size of each write to store the first data chunk matches the size of each write of data to store the third data chunk is less than the second threshold. 8. The method of claim 4 , further comprising: predicting a misaligned page boundary write associated with a third data chunk based on the determined write pattern; and adjusting, based on the predicted misaligned page boundary write, one or more writes of data to the storage device associated with the third data chunk to avoid a misaligned page boundary write. 9. The method of claim 1 , further comprising: determining whether a number of writes to the storage device to store the first data chunk is equal to a number of writes to the storage device to store a third data chunk; determining a degree to which a sequence of logical block addresses where the first data chunk is stored matches a sequence of logical block addresses where the third data chunk is stored; and determining a degree to which a size of each write of data to store the first data chunk matches a size of each write of data to store the third data chunk; wherein determining whether or not a write pattern exists comprises determining whether or not a write pattern exists based on at least one of: the determination of whether the number of writes to store the first data chunk is equal to the number of writes to store the second data chunk, the degree to which the sequence of logical block addresses where the first data chunk is stored matches the sequence of logical block addresses where the second data chunk is stored, the degree to which the size of each write to store the first data block matches the size of each write to store the second data chunk; the determination of whether the number of writes to store the first data chunk is equal to the number of writes to store the third data chunk, the degree to which the sequence of logical block addresses where the first data chunk is stored matches the sequence of logical block addresses where the third data chunk, or the degree to which the size of each write to store the first data chunk matches the size of each write to store the third data chunk. 10. The method of claim 9 , wherein determining whether or not a write pattern exists comprises determining a write pattern exists based on: determining that the number of writes to store the first data chunk is equal to the number of writes to store the second data chunk, determining that the degree to which the sequence of logical block addresses where the first data chunk is stored matches the sequence of logical block addresses where the second data chunk is stored meets or exceeds a

Assignees

Inventors

Classifications

  • G06F12/023Primary

    Free address space management · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • Management of blocks · CPC title

  • Improving I/O performance · 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 US9355022B2 cover?
Systems and method for performing intelligent flash management are disclosed. A controller may determine if a write pattern exists between a set of writes associated with a first data chunk and a set of writes associated with a second data chunk based on whether a number of writes for first data chunk is equal to a number of writes for second data chunk; a degree to which a sequence of logical …
Who is the assignee on this patent?
Sandisk Technologies Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/023. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 31 2016 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).