USPatent applicationPatented

Method and apparatus for flash cache management

Granted 3 Nov 2015 · no office action yet

Current assignee: Dell International L.L.C. · originally Dell Inc.

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Anat Eyal, Assaf Natanzon, Arieh Don, Philip Derbeko +2 · Examiner: Christine Tu · AU 2117 · TC 2100

Application· this page
14/041,290
filed 30 Sep 2013
Publication
Not published
not published
Patent
US 9,177,670
granted 3 Nov 2015

Life of the application

14 dated events
⤢ drag to zoom20142016201820202022202420262028203020322034ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

Example embodiments of the present invention relate to a method and a system for improving performance of flash cache memory, such as in a host of a storage environment, for example, by preventing a cache cell from reaching an operation limit. The method includes determining that a number of operations to a first cell of a flash memory has reached a threshold and managing the flash memory according to the determination to prevent a failure of a second cell of the flash memory.

Description

7 parts
›A portion of the disclosure of this patent…

A portion of the disclosure of this patent document may contain command formats and other computer language listings, all of which are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

›TECHNICAL FIELD

This application relates to caching using flash memory.

›BACKGROUND

Flash memory is valued in many applications as a storage medium due to its fast access speeds, low-power, nonvolatility, and rugged operation. The flash translation layer (FTL) is the driver that works in conjunction with an existing operating system (or, in some embedded applications, as the operating system) to make linear flash memory appear to the system like a disk drive. It does that be doing a number of things. First, it creates “virtual” small blocks of data, or sectors, out of flash's large erase blocks. Next, it manages data on the flash so that it appears to be “write in place” when in fact it is being stored in different spots in the flash. Finally, FTL manages the flash so there are clean/erased places to store data.

›SUMMARY

Example embodiments of the present invention relate to a method and a system for improving performance of flash cache memory, such as in a host of a storage environment, for example, by preventing a cache cell from reaching an operation limit. The method includes determining that a number of operations to a first cell of a flash memory has reached a threshold and managing the flash memory according to the determination to prevent a failure of a second cell of the flash memory.

›BRIEF DESCRIPTION OF THE DRAWINGS

The above and further advantages of the present invention may be better under stood by referring to the following description taken into conjunction with the accompanying drawings in which:

FIG. 1 is a block diagram of a storage area network (SAN) according to an example embodiment of the present invention;

FIGS. 2A and 2B are block diagrams of a host flash controller according to example embodiments of the present invention;

FIGS. 3A-3D are block diagrams illustrating respective states of an array of flash cells according to example embodiments of the present invention;

FIGS. 4-6 are flow diagrams illustrating methods accordingly to example embodiments of the present invention;

FIG. 7 is a block diagram of an apparatus according to an example embodiment of the present invention; and

FIG. 8 is an illustration of an example embodiment of the present invention embodied as a computer program product.

›DETAILED DESCRIPTION · 1 of 2

The flash translation layer (FTL) remaps the data to the physical location at which the data is to be written. This allows the file system to treat flash like any other block storage device and remain ignorant of flash device characteristics. FTL appears to simply take the data from the file system and write it at the specified location (sector). In reality, however, FTL places the data at a free/erased location on the flash media and notes the real location of the data. It also invalidates the cell that previously contained the cell's data (if any). So when the file system asks for the data that was written out, FTL finds and reads back the proper data.

However, flash storage has a number of inherent limitations. Such limitations include is the read-disturb and write-disturb effects, in which the respective methods used to read from and write to flash memory can cause nearby cells in the same memory block to change over time (i.e., become programmed unintentionally). While the threshold number of read/write operations generally may be in the hundreds of thousands between intervening erase operations, if performing continuous operations on one cell, that cell will not fail but rather one of the surrounding cells will fail on a subsequent operation.

Traditional solutions to flash limitations, many of which are handled by FTL, come with a significant performance penalty. For example, to avoid the read-disturb effect, the flash controller typically will count the total number of reads to a cell since the last erase of that cell (or the block containing that cell if the flash memory is limited to block erasure). When the count exceeds a target limit, the affected cell/block is copied over to a new block, erased, and then released to the block pool, thereby leaving the original block as good as new after the erase.

However, such traditional solutions impart a performance penalty by requiring the flash controller find a place in the flash memory to move the data based on the block size (i.e., the flash controller must move not only the data for the affected cell but also all cells on its block). Example embodiments of the present invention overcome these and other deficiencies by providing a method and an apparatus that improve performance of flash cache memory, such as in a host of a storage environment, for example, by preventing a cache cell from reaching a read-disturb limit.

FIG. 1 is a block diagram of a storage area network (SAN) 100 according to an example embodiment of the present invention. As illustrated in FIG. 1 , the SAN 100 may include a plurality of storage arrays 120 1 - 120 N ( 120 generally) and a plurality of storage resource management hosts 130 1 - 130 m ( 130 generally) that may host applications for clients 190 using the storage 120 . In certain embodiments, respective hosts 130 may include flash memory 160 for storing data and a controller 140 for managing the flash memory 160 . In a preferred embodiment, the flash memory 160 in the host 130 is flash cache memory 160 and the controller 140 manages the flash cache memory 160 .

FIGS. 2A and 2B are block diagrams of a portion of the SAN of FIG. 1 including a host 230 and storage 220 according to example embodiments of the present invention. Similar to FIG. 1 , the host 230 may include a controller 240 and flash cache memory 260 . The host flash controller 240 may include a counter module 242 and a manager module 244 . As will be described in greater detail below, the counter module 242 may be configured to keep track of the number of operations to respective cells of the flash cache memory 260 and the manager module 244 may be configured to manage the flash cache memory 260 according to the determination by the counter module 242 of the number of operations to respective cells of the flash cache memory 260 .

FIGS. 2A and 2B are described below in conjunction with FIGS. 3A-3D and 4 - 6 . FIGS. 3A-3D are block diagrams illustrating respective states of an array 360 of flash cells 362 0 - 362 N ( 362 generally) according to example embodiments of the present invention. FIGS. 4-6 are flow diagrams illustrating methods accordingly to example embodiments of the present invention.

As illustrated in FIGS. 2A , 2 B, 3 A, 3 B, and 4 , (1) a client 290 may send a plurality of operations 264 to the host 230 which may be received 364 by a particular cell (a first cell) 362 1 . As understood in the art, such repeated operations 364 to the first cell 362 1 can cause a disturb effect 366 (e.g., read-disturb or write-disturb depending on the operation type) on its adjacent cells (e.g., cells 362 0 and 362 2 ). The counter module 242 may keep track of the number of operations 364 to the first cell 362 1 and determine whether the number of operations 364 to the first cell 362 has reached a threshold ( 410 ). It should be understood that the counter module 242 may keep track of the number of read operations or the number of write operations, or a combination of the number of read operations and the number of write operations.

The manager module 244 then may manage the flash memory 260 / 360 according to the determination by the counter module 242 to prevent a disturb failure of a second cell of the flash memory 260 / 360 (i.e., one of the adjacent cells 362 0 and 362 2 ) ( 420 ). At a time when the counter module 242 reaches a pre-defined value where a disturb effect's risk becomes high but is still below the threshold at which the disturb effect would affect the adjacent cells 362 0 and 362 2 , (2) the counter module 242 may send a limit notification 268 to the manager module 244 .

As illustrated in FIGS. 2A , 3 C, and 5 , (3) the manager module 244 may evict 272 the data from the first cell 362 1 ( 530 ). In other words, the manager module 244 may remove the entry from the caching layer as well as erase it from the flash device. Accordingly, example embodiments of the present invention take advantage of the fact that data stored on the flash cache memory 260 / 360 is a copy of the data stored on the storage 220 in the storage area network 200 (i.e., it is not being used as primary storage but rather is caching data from the storage 220 in the storage area network 200 ) and may be erased from the flash cache memory 260 / 360 without causing data loss at the storage 220 .

›DETAILED DESCRIPTION · 2 of 2

It should be understood that, at a later time, the host 230 may receive a read operation for the data evicted from the first cell 362 1 and the controller 240 may determine that the data previously cached in the first cell 362 1 is no longer cached at the first cell 362 1 ( 540 ). As illustrated in FIG. 3C , the manager module 244 may cause the data to be recached in a third cell 362 4 of the flash cache memory 260 / 360 , such as by (4) reading 274 the data from the storage 220 storing the data previously cached in the first cell 362 1 , (5) receiving the data 276 from the storage 220 , and (6) caching the data 278 read from the storage 220 in the third cell 362 4 ( 550 ).

As illustrated in FIGS. 2B , 3 C, and 6 , in certain embodiments, the host 230 also may include a cache manager 280 to manage the flash cache memory 260 . For example, the cache manager 280 may provide cache management operations, such as those provided by XtremSW™ from EMC Corporation of Hopkinton, Mass. Accordingly, in this example embodiment, (3) the manager module 244 may offload cache management to the cache manager 280 ( 630 ), such as by performing a registration operation with the cache manager 280 and notifying the cache manager of the determination of the reached threshold. Therefore, the cache manager 280 may (4) evict the data from the first cell 362 1 .

It should be understood that, similar to the operation of the manager module 244 , at a later time, the host 230 may receive a read operation for the data evicted from the first cell 362 1 and the cache manager 280 may determine that the data previously cached in the first cell 362 1 is no longer cached at the first cell 362 1 ( 640 ). As illustrated in FIG. 3C , the cache manager 280 may cause the data to be recached in a third cell 362 4 of the flash cache memory 260 / 360 , such as by (5) reading 274 the data from the storage 220 storing the data previously cached in the first cell 362 1 , (6) receiving the data 276 from the storage 220 , and (7) caching the data 278 read from the storage 220 in the third cell 362 4 ( 650 ).

Accordingly, as illustrated in FIG. 3D , any subsequent operations 364 for the data will be directed to the third cell 362 4 rather than the first cell 362 1 and the disturb effect threshold for the cells adjacent to the cell previously stored in the data 362 1 will be avoided because the data was recached to the third cell 362 4 . Therefore, it should be understood that, as subsequent operations arrive, the counter module 242 treats the third cell 362 4 as it previously treated the first cell 362 1 and counts the number of operations performed on the third cell 362 4 because the disturb effect 366 now will be experienced by the cells adjacent to the third cell 362 4 (e.g., cells 362 3 and 362 5 ) rather than the cells adjacent to the first cell 362 1 (e.g., cells 362 0 and 362 2 ). Further, it should be understood that, at a later time, the cache page (not shown) storing the first cell 362 1 for which the data was evicted will be erased and re-written anew.

FIG. 7 is a block diagram of an example embodiment apparatus 705 according to the present invention. The apparatus 705 may be part of a system 700 and includes memory 710 storing program logic 715 , a processor 720 for executing a process 725 , and a communications I/O interface 730 , connected via a bus 735 .

The methods and apparatus of this invention may take the form, at least partially, of program code (i.e., instructions) embodied in tangible non-transitory media, such as floppy diskettes, CD-ROMs, hard drives, random access or read only-memory, or any other machine-readable storage medium. When the program code is loaded into and executed by a machine, such as the computer of FIG. 7 , the machine becomes an apparatus for practicing the invention. When implemented on one or more general-purpose processors, the program code combines with such a processor to provide a unique apparatus that operates analogously to specific logic circuits. As such, a general purpose digital machine can be transformed into a special purpose digital machine.

FIG. 8 shows program logic 855 embodied on a computer-readable medium 860 as shown, and wherein the logic 855 is encoded in computer-executable code configured for carrying out the methods of this invention, thereby forming a computer program product 800 .

The logic for carrying out the method may be embodied as part of the aforementioned system, which is useful for carrying out a method described with reference to embodiments shown. For purposes of illustrating the present invention, the invention is described as embodied in a specific configuration and using special logical arrangements, but one skilled in the art will appreciate that the device is not limited to the specific configuration but rather only by the claims included with this specification.

Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present implementations are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

1 of 7 part labels are ours — the grant heads the rest

Claims as granted

20 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

4 codes
IPC · International Patent Classification
Section G — Physics
  • G11C29/00
  • G11C29/08
  • G06F11/00
  • G06F11/07

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomOct 2013Jan 2014Apr 2014Jul 2014Oct 2014Jan 2015Apr 2015Jul 2015Oct 2015Jan 2016USPTOApplicantNotice of allowance
USPTOApplicanthover for detail · click to open
Pendency
2.1 y
764 days filing → grant
Office actions
0
none on record
Examiner
Christine Tu
art unit 2117 · TC 2100
Citations: 4 back · 76 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom2016201820202022202420262028203020322034Owner 2liens, releases & corrections
TitleLienReleasehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock