Hybrid drives are conventional disk drives augmented with a non-volatile semiconductor memory (NVSM) such as a flash which helps improve certain aspects of the disk drive. For example, the non-volatile semiconductor memory may store boot data in order to expedite the boot operation of a host computer. Another use of a NVSM may be to store frequently accessed data and/or non-sequential data for which the access time is typically much shorter than the disk (which suffers from mechanical latency including seek and rotational latency). Other policies may reduce write amplification of the NVSM in order to maximize its longevity, such as storing frequently written data to the disk (or data having a write/read ratio that exceeds a predetermined threshold).
In the embodiment of
Any suitable NVSM 8 may be employed in the embodiments of the present invention such as a suitable flash memory. In one embodiment, the NVSM 8 comprises a plurality of blocks, wherein each block comprises a plurality of memory segments referred to as pages, and each page may store one or more data sectors. The blocks are programmed a page at a time, and an entire block is erased in a unitary operation. In one embodiment, there is a limit to the number of times the blocks of the NVSM may be programmed and erased (referred to as endurance). When the NVSM reaches the limit of program/erase cycles it essentially reaches end of life (for subsequent write operations). Accordingly, in one embodiment of the present invention the disk cache helps extend the life of the NVSM by implementing a write cache that spans both the NVSM and the disk. In this manner, at least some of the write commands are cached in the disk cache which reduces write amplification in the NVSM.
In another embodiment of the present invention, implementing a write cache using both the disk and NVSM helps improve performance by writing data to both channels concurrently. For example, multiple write commands may be queued in a command queue (or a single large write command broken into multiple write commands) wherein a first part of the write data may be written to the disk cache while concurrently writing a second part of the write data to the NVSM cache.
Employing a write cache in a hybrid drive improves performance by avoiding the mechanical latency involved with accessing the disk (seek latency and rotational latency) when servicing non-sequential write commands. Instead of seeking the head around the disk to service non-sequential write commands, the write data is cached in one of the disk cache and the NVSM cache, and then later flushed to the non-cache area of the disk, for example, when the hybrid drive is idle or otherwise ready to flush the write cache. In one embodiment, the disk cache is implemented as a circular buffer so that non-sequential write commands can be written to sequential data sectors (thereby avoiding long seeks within the disk cache).
In the embodiment of
In one embodiment when flushing the data from the NVSM cache, the data may first be written to the disk cache in order to flush the NVSM cache quickly. The data may then be flushed from the disk cache to the non-cache area of the disk at a later time (e.g., while servicing access commands using the NVSM or while the hybrid drive is idle). In another embodiment when flushing the data from the NVSM cache, the data may be migrated to the non-cache area of the NVSM (instead of flushing the data to the disk) based on a migration policy. For example, if data stored in the NVSM cache is accessed several times by the host prior to being flushed to the disk, the migration policy may migrate the data by flushing it to the non-cache area of the NVSM instead of flushing the data to the non-cache area of the disk. In one embodiment, flushing the data from the NVSM cache to the non-cache area of the NVSM is implemented by copying the data between blocks. In an alternative embodiment, the blocks storing the cached data are simply re-assigned from the NVSM cache to the non-cache area of the NVSM.
In one embodiment, the NVSM cache can be used to cache write data of new write commands while old write data stored in the disk cache is flushed to the non-cache area of the disk. Conversely, the disk cache can be used to cache write data of new commands while old write data stored in the NVSM cache is flushed to the non-cache area of the disk. In one embodiment, the write commands routed to the NVSM cache and the disk cache may be selected based on a rotational position optimization (RPO) algorithm which attempts to minimize the access time to the non-cache area of the disk by minimizing the seek and rotational latency. For example, a first group of write commands having closest proximity may be cached in the disk cache, and a second group of write commands having closest proximity may be cached in the NVSM cache. In this manner, the access latency is minimized when flushing either the disk cache or the NVSM cache to the non-cache area of the disk. In one embodiment, the disk cache and the NVSM cache may be flushed together during the same flush operation in which case the write data is read in an optimal order from both caches based on the RPO algorithm.
In one embodiment, data may be stored in multiple locations. For example, data may be stored in the NVSM cache and in the non-cache area of the disk after flushing the NVSM cache and before erasing the NVSM cache. Similarly, data may be stored in the disk cache and in the non-cache area of the disk after flushing the disk cache and before overwriting the disk cache. In this manner, a decision may be made to read the data from the location that provides the best performance, and in one embodiment, the data for different read commands may be read concurrently from multiple locations (e.g., concurrently from the NVSM cache and from the disk). In one embodiment, after flushing the NVSM cache and/or the disk cache the old data remains in the cache as long as possible before erasing the block in the NVSM cache or overwriting the data in the disk cache. This embodiment improves performance by allowing the data to be read from either the write cache (NVSM or disk) and/or the non-cache area of the disk. In one embodiment, the data may be evicted from either write cache using any suitable eviction policy, such as evicting the least recently accessed data or least frequently accessed data.
Any suitable control circuitry may be employed to implement the flow diagrams in the embodiments of the present invention, such as any suitable integrated circuit or circuits. For example, the control circuitry may be implemented within a read channel integrated circuit, or in a component separate from the read channel, such as a disk controller and/or NVSM controller, or certain steps described above may be performed by a read channel and others by a disk controller and/or NVSM controller. In one embodiment, the read channel and controllers are implemented as separate integrated circuits, and in an alternative embodiment they are fabricated into a single integrated circuit or system on a chip (SOC). In addition, the control circuitry may include a suitable preamp circuit implemented as a separate integrated circuit, integrated into the read channel or disk controller circuit, or integrated into an SOC.
In one embodiment, the control circuitry comprises a microprocessor executing instructions, the instructions being operable to cause the microprocessor to perform the steps of the flow diagrams described herein. The instructions may be stored in any computer-readable medium. In one embodiment, they may be stored on a non-volatile semiconductor memory external to the microprocessor, or integrated with the microprocessor in a SOC. In another embodiment, the instructions are stored on the disk and read into a volatile semiconductor memory when the hybrid drive is powered on. In yet another embodiment, the control circuitry comprises suitable logic circuitry, such as state machine circuitry.
The present application claims priority from provisional U.S. Patent Application Ser. No. 61/373,488, filed on Aug. 13, 2010, the specification of which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5333138 | Richards et al. | Jul 1994 | A |
5581785 | Nakamura et al. | Dec 1996 | A |
5586291 | Lasker et al. | Dec 1996 | A |
5926834 | Carlson et al. | Jul 1999 | A |
6018788 | Ichikawa | Jan 2000 | A |
6044439 | Ballard et al. | Mar 2000 | A |
6046817 | Brown et al. | Apr 2000 | A |
6115200 | Allen et al. | Sep 2000 | A |
6275949 | Watanabe | Aug 2001 | B1 |
6429990 | Serrano et al. | Aug 2002 | B2 |
6594742 | Ezra | Jul 2003 | B1 |
6661591 | Rothberg | Dec 2003 | B1 |
6662267 | Stewart | Dec 2003 | B2 |
6687850 | Rothberg | Feb 2004 | B1 |
6711635 | Wang | Mar 2004 | B1 |
6754021 | Kisaka et al. | Jun 2004 | B2 |
6807630 | Lay et al. | Oct 2004 | B2 |
6909574 | Aikawa et al. | Jun 2005 | B2 |
6968450 | Rothberg et al. | Nov 2005 | B1 |
7017037 | Fortin et al. | Mar 2006 | B2 |
7028174 | Atai-Azimi et al. | Apr 2006 | B1 |
7082494 | Thelin et al. | Jul 2006 | B1 |
7107444 | Fortin et al. | Sep 2006 | B2 |
7120806 | Codilian et al. | Oct 2006 | B1 |
7142385 | Shimotono et al. | Nov 2006 | B2 |
7334082 | Grover et al. | Feb 2008 | B2 |
7395452 | Nicholson et al. | Jul 2008 | B2 |
7411757 | Chu et al. | Aug 2008 | B2 |
7461202 | Forrer, Jr. et al. | Dec 2008 | B2 |
7472219 | Tamura et al. | Dec 2008 | B2 |
7472222 | Auerbach et al. | Dec 2008 | B2 |
7477477 | Maruchi et al. | Jan 2009 | B2 |
7509471 | Gorobets | Mar 2009 | B2 |
7516346 | Pinheiro et al. | Apr 2009 | B2 |
7610438 | Lee et al. | Oct 2009 | B2 |
7613876 | Bruce et al. | Nov 2009 | B2 |
7644231 | Recio et al. | Jan 2010 | B2 |
7685360 | Brunnett et al. | Mar 2010 | B1 |
7752491 | Liikanen et al. | Jul 2010 | B1 |
20050044104 | Kaneda et al. | Feb 2005 | A1 |
20050278486 | Trika et al. | Dec 2005 | A1 |
20060195657 | Tien et al. | Aug 2006 | A1 |
20070162693 | Nam | Jul 2007 | A1 |
20070192539 | Kano et al. | Aug 2007 | A1 |
20080040537 | Kim | Feb 2008 | A1 |
20080059694 | Lee | Mar 2008 | A1 |
20080130156 | Chu et al. | Jun 2008 | A1 |
20080177938 | Yu | Jul 2008 | A1 |
20080222353 | Nam et al. | Sep 2008 | A1 |
20080256287 | Lee et al. | Oct 2008 | A1 |
20080307270 | Li | Dec 2008 | A1 |
20090019218 | Sinclair et al. | Jan 2009 | A1 |
20090027796 | Nitta | Jan 2009 | A1 |
20090031072 | Sartore | Jan 2009 | A1 |
20090103203 | Yoshida | Apr 2009 | A1 |
20090106518 | Dow | Apr 2009 | A1 |
20090144501 | Yim et al. | Jun 2009 | A2 |
20090150599 | Bennett | Jun 2009 | A1 |
20090172324 | Han et al. | Jul 2009 | A1 |
20090182933 | Jang et al. | Jul 2009 | A1 |
20090249168 | Inoue | Oct 2009 | A1 |
20090271562 | Sinclair | Oct 2009 | A1 |
20090327603 | McKean et al. | Dec 2009 | A1 |
20100088459 | Arya et al. | Apr 2010 | A1 |
20110088041 | Alameldeen et al. | Apr 2011 | A1 |
20110119498 | Guyot | May 2011 | A1 |
20120017034 | Maheshwari et al. | Jan 2012 | A1 |
20120023144 | Rub | Jan 2012 | A1 |
Entry |
---|
Hannes Payer, Marco A.A. Sanvido, Zvonimir Z. Bandic, Christoph M. Kirsch, “Combo Drive: Optimizing Cost and Performance in a Heterogeneous Storage Device”, http://csl.cse.psu.edu/wish2009—papers/Payer.pdf. |
Gokul Soundararajan, Vijayan Prabhakaran, Mahesh Balakrishan, Ted Wobber, “Extending SSD Lifetimes with Disk-Based Write Caches”, http://research.microsoft.com/pubs/115352/hybrid.pdf, Feb. 2010. |
Xiaojian Wu, A. L Narasimha Reddy, “Managing Storage Space in a Flash and Disk Hybrid Storage System”, http://www.ee.tamu.edu/˜reddy/papers/mascots09.pdf. |
Tao Xie, Deepthi Madathil, “SAIL: Self-Adaptive File Reallocation on Hybrid Disk Arrays”, The 15th Annual IEEE International Conference on High Performance Computing (HiPC 2008), Bangalore, India, Dec. 17-20, 2008. |
Non-Volatile Memory Host Controller Interface revision 1.0 specification available for download at http://www.intel.com/standards/nvmhci/index.htm. Ratified on Apr. 14, 2008, 65 pages. |
U.S. Appl. No. 12/720,568, filed Mar. 9, 2010, 22 pages. |
Number | Date | Country | |
---|---|---|---|
61373488 | Aug 2010 | US |