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
The disk 4 shown in the embodiment of
In yet another embodiment, the execution time of the NVSM may be based on the frequency of access to each individual memory device within the NVSM. For example, if a number of access commands in the NVSM command queue are targeted to a single memory device within the NVSM, it will reduce the throughput of the NVSM and therefore increase the execution time of the NVSM command queue.
In the example of
An error may also occur when accessing the NVSM (during write or read operations) which may significantly extend the actual execution time of an access command. For example, a write/read error to a page in a target block may require the entire block be relocated to a new block which may take a significant amount of time. Accordingly, in one embodiment when an actual execution time of an NVSM access command is substantially longer than an estimated execution time, one or more access commands are transferred from the NVSM command queue to the disk command queue in order to balance the execution times.
In one embodiment, one or more of the access commands may be ineligible for transfer because they identify LBAs that are pinned to one of the disk or the NVSM. For example, LBAs that identify certain operating system data may be pinned to the NVSM to ensure the performance benefit of accessing the system data from the NVSM is maintained. The access commands that are eligible for transfer may be selected using any suitable algorithm, including one of embodiments disclosed below with reference to
Any suitable algorithm may be employed to select access commands to transfer between the command queues in order to balance the execution times.
Access commands may be received from a host, and in one embodiment, a large host access command may be split into two access commands in order to balance the execution times of the command queues. In one embodiment, a large host access command may be divided in half and the two resulting access commands inserted into the NVSM command queue or the disk command queue in order to balance the execution times. In another embodiment, a large host access command may be divided by a fraction that is based on the execution times of the command queues. For example, to balance the execution times two-thirds of a host access command may be inserted into the NVSM command queue and the remaining third inserted into the disk command queue (or vice versa depending on the execution times of the command queues).
In another embodiment, access commands may be generated internally by the hybrid drive. For example, in one embodiment the NVSM may require periodic garbage collection wherein the valid pages of previously written blocks are copied to new blocks so that the old blocks may be erased and reused. Accordingly, the garbage collection operation may generate internal read commands to read valid data corresponding to valid pages of an old block, and internal write commands to write the valid data to a new block or to the disk.
In an embodiment illustrated in
In an embodiment illustrated in
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 co-pending provisional U.S. Patent Application Ser. No. 61/378,842, filed on Aug. 31, 2010, the specification of which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5333138 | Richards et al. | Jul 1994 | A |
5420998 | Horning | May 1995 | A |
5457786 | Roush | Oct 1995 | A |
5581785 | Nakamura et al. | Dec 1996 | A |
5586291 | Lasker et al. | Dec 1996 | A |
5636355 | Ramakrishnan et al. | Jun 1997 | A |
5682273 | Hetzler | Oct 1997 | A |
5905901 | Klein | May 1999 | A |
5913067 | Klein | Jun 1999 | A |
5954820 | Hetzler | Sep 1999 | A |
6044439 | Ballard et al. | Mar 2000 | A |
6115200 | Allen et al. | Sep 2000 | A |
6236527 | Uchiike et al. | May 2001 | B1 |
6275949 | Watanabe | Aug 2001 | B1 |
6295577 | Anderson et al. | Sep 2001 | B1 |
6408357 | Hanmann et al. | Jun 2002 | B1 |
6429990 | Serrano et al. | Aug 2002 | B2 |
6437935 | Johnson et al. | Aug 2002 | B1 |
6614616 | Michel et al. | Sep 2003 | B1 |
6661591 | Rothberg | Dec 2003 | B1 |
6662267 | Stewart | Dec 2003 | B2 |
6687850 | Rothberg | Feb 2004 | B1 |
6725397 | Emberty et al. | Apr 2004 | B1 |
6732241 | Riedel | May 2004 | B2 |
6754021 | Kisaka et al. | Jun 2004 | B2 |
6798599 | Dykes et al. | Sep 2004 | B2 |
6807630 | Lay et al. | Oct 2004 | B2 |
6845456 | Menezes et al. | Jan 2005 | B1 |
6892313 | Codilian et al. | May 2005 | B1 |
6909574 | Aikawa et al. | Jun 2005 | B2 |
6928518 | Talagala | Aug 2005 | B2 |
6968450 | Rothberg et al. | Nov 2005 | B1 |
7003620 | Avraham et al. | Feb 2006 | B2 |
7017037 | Fortin et al. | Mar 2006 | B2 |
7028174 | Atai-Azimi et al. | Apr 2006 | B1 |
7076605 | Son | Jul 2006 | B1 |
7082494 | Thelin et al. | Jul 2006 | B1 |
7107444 | Fortin et al. | Sep 2006 | B2 |
7114029 | Thelin | Sep 2006 | B1 |
7120806 | Codilian et al. | Oct 2006 | B1 |
7139933 | Hsu et al. | Nov 2006 | B2 |
7142385 | Shimotono et al. | Nov 2006 | B2 |
7206948 | Brauer | Apr 2007 | B2 |
7231198 | Loughran | Jun 2007 | B2 |
7254721 | Tobias et al. | Aug 2007 | B1 |
7275166 | Kaiju et al. | Sep 2007 | B2 |
7334082 | Grover et al. | Feb 2008 | B2 |
7340647 | Aasheim et al. | Mar 2008 | B2 |
7350105 | Aasheim et al. | Mar 2008 | B2 |
7392340 | Dang et al. | Jun 2008 | B1 |
7395452 | Nicholson et al. | Jul 2008 | B2 |
7411757 | Chu et al. | Aug 2008 | B2 |
7421552 | Long | Sep 2008 | B2 |
7425810 | Hobbet et al. | Sep 2008 | B2 |
7461202 | Forrer, Jr. 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 |
7552347 | Schutte | Jun 2009 | B2 |
7610438 | Lee et al. | Oct 2009 | B2 |
7610445 | Manus et al. | Oct 2009 | B1 |
7613876 | Bruce et al. | Nov 2009 | B2 |
7644231 | Recio et al. | Jan 2010 | B2 |
7647513 | Tobias et al. | Jan 2010 | B2 |
7685360 | Brunnett et al. | Mar 2010 | B1 |
7698586 | Kim et al. | Apr 2010 | B2 |
7752491 | Liikanen et al. | Jul 2010 | B1 |
7774556 | Karamcheti et al. | Aug 2010 | B2 |
7984259 | English | Jul 2011 | B1 |
8060707 | Fairhurst et al. | Nov 2011 | B2 |
8245003 | Suzuki et al. | Aug 2012 | B2 |
8286018 | Chang et al. | Oct 2012 | B2 |
20020083264 | Coulson | Jun 2002 | A1 |
20030140198 | Ninose et al. | Jul 2003 | A1 |
20050108473 | Le Moal et al. | May 2005 | A1 |
20050120251 | Fukumori | Jun 2005 | A1 |
20060075185 | Azzarito et al. | Apr 2006 | A1 |
20060195657 | Tien et al. | Aug 2006 | A1 |
20070006021 | Nicholson et al. | Jan 2007 | A1 |
20070050540 | Klein | Mar 2007 | A1 |
20070162693 | Nam | Jul 2007 | A1 |
20080024899 | Chu et al. | Jan 2008 | 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 |
20080288714 | Salomon et al. | Nov 2008 | A1 |
20080307270 | Li | Dec 2008 | A1 |
20090019218 | Sinclair et al. | Jan 2009 | A1 |
20090024793 | Fontenot et al. | Jan 2009 | A1 |
20090031072 | Sartore | Jan 2009 | A1 |
20090089501 | Ahn et al. | Apr 2009 | A1 |
20090103203 | Yoshida | Apr 2009 | A1 |
20090106518 | Dow | Apr 2009 | A1 |
20090144501 | Yim et al. | Jun 2009 | A2 |
20090150599 | Bennett | Jun 2009 | A1 |
20090172249 | Matthews | Jul 2009 | A1 |
20090172324 | Han et al. | Jul 2009 | A1 |
20090172499 | Olbrich et al. | Jul 2009 | A1 |
20090198940 | Ash et al. | Aug 2009 | A1 |
20090249168 | Inoue | Oct 2009 | A1 |
20090271562 | Sinclair | Oct 2009 | A1 |
20090327603 | McKean et al. | Dec 2009 | A1 |
20100067138 | Ooi et al. | Mar 2010 | A1 |
20100088459 | Arya et al. | Apr 2010 | A1 |
20100122030 | Peters et al. | May 2010 | A1 |
20100169541 | Freikorn | Jul 2010 | A1 |
20100191922 | Dickey et al. | Jul 2010 | A1 |
20100195243 | Zhu et al. | Aug 2010 | A1 |
20100325352 | Schuette et al. | Dec 2010 | A1 |
20110010490 | Kwon et al. | Jan 2011 | A1 |
20110106804 | Keeler et al. | May 2011 | A1 |
20110283128 | Farhan et al. | Nov 2011 | A1 |
20120317338 | Yi et al. | Dec 2012 | A1 |
20130024650 | Ambat et al. | Jan 2013 | A1 |
Entry |
---|
DongKyu Lee; Koh, K.; “PDC-NH: Popular data concentration on NAND flash and hard disk drive,” 2009 10th IEEE/ACM International Conference on Grid Computing, pp. 196-200, Oct. 13-15, 2009. |
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. |
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. |
Payer, et al., “Combo Drive: Optimizing Cost and Performance in a Heterogeneous Storage Device”, http://csl.cse.psu.edu/wish2009—papers/Payer.pdf., Proceedings First Workshop on Integrating Solid-State Memory into the Storage Hierarchy, WISH 2009, Mar. 7, 2009, Washington DC, pp. 1-8. |
Xiaojian Wu, A. L. Narasimha Reddy, “Managing Storage Space in a Flash and Disk Hybrid Storage System”, Symposium on Modeling, Analysis & Simulation of Computer and Telecommunication Systems 2009 (MASCOTS '09), Sep. 21-23, 2009, pp. 1-4. |
Number | Date | Country | |
---|---|---|---|
61378842 | Aug 2010 | US |