DISK DRIVE DATA CACHING USING A MULTI-TIERED MEMORY
First Claim
1. In a disk drive system comprising a magnetic medium and a multi-level cell (MLC) non-volatile memory module comprising a single-level cell (SLC) memory tier and an MLC memory tier, a method of caching data in the non-volatile memory, the method comprising:
- maintaining first and second candidate lists of data values corresponding to addresses in the magnetic medium to be considered for caching, the maintaining comprising;
in response to receiving a storage access command from a host, the storage access command comprising an address in the magnetic medium configured to store a data value, determining a metric corresponding to a frequency of access by the host; and
determining a placement of the data value in one of the first and second candidate lists based on a comparison of the metric to a threshold; and
selectively programming entries in the first and second candidate lists in the SLC memory tier or the MLC memory tier.
8 Assignments
0 Petitions
Accused Products
Abstract
A disk drive is disclosed that utilizes multi-tiered solid state memory for caching data received from a host. Data can be stored in a memory tier that can provide the required performance at a low cost. For example, multi-level cell (MLC) memory can be used to store data that is frequently read but infrequently written. As another example, single-level cell (SLC) memory can be used to store data that is frequently written. Improved performance, reduced costs, and improved power consumption can thereby be attained.
225 Citations
29 Claims
-
1. In a disk drive system comprising a magnetic medium and a multi-level cell (MLC) non-volatile memory module comprising a single-level cell (SLC) memory tier and an MLC memory tier, a method of caching data in the non-volatile memory, the method comprising:
-
maintaining first and second candidate lists of data values corresponding to addresses in the magnetic medium to be considered for caching, the maintaining comprising; in response to receiving a storage access command from a host, the storage access command comprising an address in the magnetic medium configured to store a data value, determining a metric corresponding to a frequency of access by the host; and determining a placement of the data value in one of the first and second candidate lists based on a comparison of the metric to a threshold; and selectively programming entries in the first and second candidate lists in the SLC memory tier or the MLC memory tier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A disk drive system for storing data received from a host, the system comprising:
-
a magnetic medium configured to store data; a non-volatile memory capable of supporting both a multi-level cell (MLC) memory tier and a single-level cell (SLC) memory tier; and a controller configured to access at least the non-volatile memory in response to receiving a storage access command from the host, the storage access command comprising an address in the magnetic medium configured to store a data value, the controller further configured to; determine a metric corresponding to a frequency of access by the host; determine a placement of the data value in one of first and second candidate lists based on a comparison of the metric to a threshold; and selectively program entries in the first and second candidate lists into the SLC memory tier or the MLC memory tier. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. In a disk drive system comprising a magnetic medium and non-volatile memory that comprises at least first and second tiers of storage, a method of caching data in the non-volatile memory, the method comprising:
-
maintaining first and second candidate lists of entries corresponding to logical address ranges in the magnetic medium to be considered for caching, the maintaining comprising; identifying a plurality of logical address ranges that are frequently accessed by a host, each logical address range in the plurality of logical address ranges corresponding to one or more locations in the magnetic medium; for each logical address range in the plurality of logical address ranges that are frequently accessed by the host; determining a metric corresponding to a combination of at least two of the following;
write frequency, write performance, read frequency, read performance, and retention duration;determining a placement of an entry corresponding to the logical address range in one of the first and second candidate lists based on a comparison of the metric to one or more thresholds, wherein entries in the first and second candidate lists are ordered according to their metrics; and programming entries in the first and second candidate lists in the non-volatile memory, the programming comprising; replacing a lowest priority entry in the first tier storage with a highest priority entry in the first candidate list when a metric of the highest priority entry in the first candidate list exceeds a metric of the lowest priority entry in the first tier storage; and replacing a lowest priority entry in the second tier storage with a highest priority entry in the second candidate list when a metric of the highest-priority entry in the second candidate list exceeds a metric of the lowest priority entry in the second tier storage. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A method of caching data in solid state memory of a disk drive, the method comprising:
-
receiving a unit of data from a host system; calculating at least one metric that represents a prediction of how the unit of data will be accessed by the host system, said metric being dependent upon at least (1) a write address used by the host system to write the unit of data to the disk drive, and (2) statistical data reflective of prior accesses by the host system to the disk drive; and selecting, based at least partly on the metric, a memory tier in which to cache the unit of data, wherein selecting the memory tier comprises selecting between at least a first tier composed of single-level cell (SLC) memory and a second tier composed of multi-level cell (MLC) memory.
-
Specification