Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time

Information

  • Patent Grant
  • 9058280
  • Patent Number
    9,058,280
  • Date Filed
    Wednesday, May 11, 2011
    13 years ago
  • Date Issued
    Tuesday, June 16, 2015
    9 years ago
Abstract
A hybrid drive is disclosed comprising a head actuated over a disk comprising a plurality of data tracks, and a non-volatile semiconductor memory (NVSM). An access command is received from a host, the access command identifying at least one target logical block address (LBA). When the target LBA is mapped to a target data track on the disk, the head is positioned over the target data track and an accumulated access time is updated for the target LBA. The accumulated access time is compared to a first threshold, and the target LBA is migrated to the NVSM in response to the comparison.
Description
BACKGROUND

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).





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1A shows a disk drive according to an embodiment of the present invention comprising a head actuated over disk, and a non-volatile semiconductor memory (NVSM).



FIG. 1B is a flow diagram according to an embodiment of the present invention wherein a seek time is accumulated for a target LBA mapped to the disk, and when the accumulated seek time exceeds a threshold, the target LBA is migrated to the NVSM.



FIG. 2 is a flow diagram according to an embodiment of the present invention wherein the accumulated access time is decreased when the target LBA is written.



FIG. 3 shows an embodiment of the present invention wherein the accumulated access time is biased in response to a number of consecutive LBAs in an access command.



FIG. 4A shows an embodiment of the present invention wherein an accumulated access time is maintained for a plurality of LBA ranges, wherein an LBA ranges is migrated to the NVSM when its accumulated access time exceeds a threshold.



FIG. 4B shows an embodiment of the present invention wherein the accumulated access time is biased based on the length of seeks (within an LBA range or between LBA ranges).



FIG. 5 is a flow diagram according to an embodiment of the present invention wherein when the access time of single access command is less than a threshold (short seek), the accumulated access time is decreased to reduce the chance of migrating the LBA to the NVSM.



FIG. 6 shows an embodiment of the present invention wherein the migration threshold is increased as the life remaining of the NVSM decreases.



FIG. 7 shows an embodiment of the present invention wherein the migration threshold is decreased as the disk workload increases.



FIG. 8 shows an embodiment of the present invention wherein the migration threshold is decreased as an access frequency of the target LBA increases.





DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION


FIG. 1A shows a hybrid drive comprising a head 2 actuated over a disk 4 comprising a plurality of data tracks 6, and a non-volatile semiconductor memory (NVSM) 8. The hybrid drive further comprises control circuitry 10 operable to execute the flow diagram of FIG. 1B wherein an access command is received from a host (step 12), the access command identifying at least one target logical block address (LBA). When the target LBA is mapped to a target data track on the disk (step 14), the head is positioned over the target data track (step 16) and an accumulated access time is updated for the target LBA (step 18). The accumulated access time is compared to a first threshold (step 20), and the target LBA is migrated to the NVSM in response to the comparison (step 22).


In the embodiment of FIG. 1A, the disk 4 comprises embedded servo sectors 240-24N that define the data tracks 6. The control circuitry 10 processes a read signal 26 emanating from the head 2 to demodulate the servo sectors 240-24N and generate a position error signal (PES) representing an error between the actual position of the head and a target position relative to a target track. The control circuitry 10 filters the PES using a suitable compensation filter to generate a control signal 28 applied to a voice coil motor (VCM) 30 which rotates an actuator arm 32 about a pivot in order to actuate the head 2 radially over the disk in a direction that reduces the PES.


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. The NVSM 8 typically provides better performance because it avoids the access latency of the disk (seek and rotational latency). However, since the capacity of the NVSM 8 is limited, in one embodiment the data migrated from the disk 4 to the NVSM 8 is selected based on the accumulated access time for the data.


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 accumulated access time is biased based on the frequency that the data is written to the disk such that frequently written data is less likely to be migrated to the NVSM. This embodiment is understood with reference to the flow diagram of FIG. 2 wherein when the access command received from the host (step 12) is a read command (step 34), the data for the LBA is read from the disk (step 36) and the accumulated access time adjusted by a first value (step 38). If the accumulated access time exceeds a threshold (step 40), then the data is migrated (written) to the NVSM and the LBA mapping updated to reflect the migration (step 42). If the access command received from the host is a write command (step 34), then the data for the LBA is written to the disk (step 44) and the accumulated access time adjusted by a second value less than the first value (step 46). In the embodiment of FIG. 2, the second value decreases the accumulated access time (step 46) which reduces the likelihood that the data will be migrated to the NVSM.


Other factors may bias the accumulated access time, or bias the threshold, or otherwise bias the comparison that determines whether to migrate data from the disk to the NVSM. FIG. 3 shows an embodiment of the present invention wherein the control circuitry maps the LBAs of an access command to physical block addresses (PBAs) representing data sectors in the target data track. The comparison for migrating the data is biased in response to a number of consecutive PBAs so as to reduce the likelihood of migrating the data of long consecutive PBAs to the NVSM. In the example of FIG. 3, the accumulated access time is decreased (lesser weighting) for longer sequences of PBAs and increased (higher weighting) for shorter sequences of PBAs. In one embodiment, the disk provides better performance when accessing long sequences of PBAs so there is less benefit of migrating long sequences of PBAs to the NVSM.


In one embodiment, an accumulated access time is maintained for each LBA and updated each time the LBA is accessed, and in one embodiment the degree to which the accumulated access time is adjusted is based on the access time for the current access command (which is based on the seek and rotational latency for the current access command). Referring again to the example of FIG. 3, when the first three LBAs are accessed as part of a long sequence, the accumulated access time for each LBA is adjusted by a first value (e.g., the access time divided by the total number of LBAs in the sequence), and when the first three LBAs are accessed as part of a shorter sequence, the accumulated access time for each LBA is adjusted by a second value greater than the first value (e.g., the access time divided by the lesser number of LBAs in the shorter sequence). In one embodiment, the first value may be a negative value so that the accumulated access time is reduced when an LBA is accessed as part of a long consecutive sequence of PBAs.



FIG. 4A shows an embodiment of the present invention wherein a plurality of PBA ranges are defined, and each PBA range spans a plurality of consecutive PBAs. An accumulated access time is maintained for each PBA range, and when the accumulated access time exceeds a threshold, the LBAs assigned to the entire PBA range are migrated to the NVSM. In one embodiment, the accumulated access time is increased slower or even decreased the longer the head remains within a PBA range. This embodiment is understood with reference to the flow diagram of FIG. 5 in view of FIG. 4B. When an access command is received from the host (step 12) and the access time is greater than a threshold (step 48) (e.g., due to a long seek from PBA range 2 to PBA range 6 of FIG. 4B), the accumulated access time for the target PBA range is increased (step 50). If the accumulated access time for the PBA range exceeds a threshold (step 52), the LBAs mapped to the PBA range are migrated to the NVSM (step 54). If the access time is less than the threshold (step 48) (e.g., due to a short seek within the same PBA range), the accumulated access time for the target PBA range is decreased (step 56) thereby reducing the likelihood of migration to the NVSM. Referring again to FIG. 4B, if the head remains within PBA range 2 for an extended period but periodically seeks to PBA range 6 and then back to PBA range 2, the accumulated access time for PBA range 6 will eventually exceed the migration threshold. After migrating the LBAs mapped to PBA range 6 to the NVSM, the seeks to PBA range 6 are avoided thereby increasing the performance of the hybrid drive.


In one embodiment, the hybrid drive employs static LBA mapping wherein each LBA remains statically mapped to a corresponding PBA of the disk (unless a data sector is relocated due to a grown defect). In another embodiment, the hybrid drive employs dynamic LBA mapping (log structured) wherein the LBAs are mapped to different PBAs during each write operation. For example, dynamic LBA mapping may employ a circular buffer on the disk wherein the LBAs of a new write command are mapped to the PBAs corresponding to the head of the circular buffer. In this manner, a seek to a target data track may be needed to read previously written LBAs but not to service a new write command if the head is already located at the head of the circular buffer. In one embodiment, the PBA ranges shown in FIG. 4A correspond to sections of the same circular buffer. In an alternative embodiment, the PBA ranges shown in FIG. 4A each correspond to a different circular buffer, wherein an LBA range is assigned to each circular buffer.


In one embodiment, after migrating an LBA (or LBAs of a PBA range) to the NVSM, the control circuitry tracks how frequently the migrated LBAs are accessed. When the access frequency of a migrated LBA falls below a threshold, the control circuitry migrates the LBA (or LBAs) back to the disk in order to free space in the NVSM.



FIG. 6 shows an embodiment of the present invention wherein the migration threshold is increased as the life remaining of the NVSM decreases (due to the number of program/erase cycles increasing). This embodiment biases the comparison of the accumulated access time so as to reduce the likelihood of migration as the life remaining of the NVSM decreases, thereby extending the life of the NVSM by reducing write amplification.



FIG. 7 shows an embodiment of the present invention wherein the migration threshold is decreased as the workload of disk access commands increases. This embodiment biases the comparison of the accumulated access time so as to increase the likelihood of migration when the disk workload increases. The disk workload may be determined in any suitable manner, such as by evaluating the frequency of access commands or an estimated execution time for the access commands pending in a disk command queue.



FIG. 8 shows an embodiment of the present invention wherein the migration threshold is decreased as an access frequency of a target LBA increases. This embodiment biases the comparison of the accumulated access time so as to increase the likelihood of migration when a particular LBA is accessed frequently relative to a predetermined number of consecutive access commands. If an LBA is accessed infrequently, there is less performance benefit derived from migrating the LBA to the NVSM.


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.

Claims
  • 1. A hybrid drive comprising: a disk comprising a plurality of data tracks;a head actuated over the disk;a non-volatile semiconductor memory (NVSM); andcontrol circuitry programmed to: receive an access command from a host, the access command identifying at least one target logical block address (LBA);when the target LBA is mapped to a target data track on the disk, seek the head to the target data track and update an accumulated access time for the target LBA based at least in part on a latency of the seek;compare the accumulated access time to a first threshold;migrate the target LBA to the NVSM in response to the comparison;adjust the accumulated access time by a first value for read commands; andadjust the accumulated access time by a second value for write commands;wherein the first value is greater than the second value.
  • 2. The hybrid drive as recited in claim 1, wherein the first value increases the accumulated access time and the second value decreases the accumulated access time.
  • 3. The hybrid drive as recited in claim 1, wherein when the access command comprises a read command, the control circuitry is further programmed to: execute the read command by reading data from the target data track; andmigrate the target LBA to the NVSM by writing the data to the NVSM.
  • 4. The hybrid drive as recited in claim 1, wherein the control circuitry is further programmed to: map a plurality of LBAs of the access command to corresponding physical block addresses (PBAs) representing data sectors in the target data track; andadjust the accumulated access time in response to a number of consecutive PBAs.
  • 5. The hybrid drive as recited in claim 1, wherein the control circuitry is further programmed to: map a plurality of LBAs of the access command to corresponding physical block addresses (PBAs) representing data sectors in the target data track; andbias the comparison in response to a number of consecutive PBAs.
  • 6. The hybrid drive as recited in claim 1, wherein the control circuitry is further programmed to: map a plurality of LBAs of the access command to corresponding physical block addresses (PBAs) representing data sectors in the target data track;define a plurality of PBA ranges, wherein each PBA range spans a plurality of consecutive PBAs;maintain an accumulated access time for each PBA range; andwhen the accumulated access time of a first PBA range exceeds the first threshold, migrate the LBAs mapped to the PBAs of the first PBA range to the NVSM.
  • 7. The hybrid drive as recited in claim 1, wherein the control circuitry is further programmed to: generate an access time for the target LBA of the access command;when the access time is greater than a second threshold, adjust the accumulated access time by a first value; andwhen the access time is less than the second threshold, adjust the accumulated access time by a second value;wherein the first value is greater than the second value.
  • 8. The hybrid drive as recited in claim 7, wherein the first value increases the accumulated access time and the second value decreases the accumulated access time.
  • 9. The hybrid drive as recited in claim 1, wherein the control circuitry is further programmed to bias the comparison in response to a life remaining of the NVSM decreasing.
  • 10. The hybrid drive as recited in claim 1, wherein the control circuitry is further programmed to bias the comparison in response to a workload of disk access commands.
  • 11. The hybrid drive as recited in claim 1, wherein the control circuitry is further programmed to bias the comparison in response to an access frequency of the target LBA.
  • 12. A method of operating a hybrid drive comprising a head actuated over a disk comprising a plurality of data tracks, and a non-volatile semiconductor memory (NVSM), the method comprising: receiving an access command from a host, the access command identifying at least one target logical block address (LBA);when the target LBA is mapped to a target data track on the disk, seeking the head to the target data track and updating an accumulated access time for the target LBA based at least in part on a latency of the seeking;comparing the accumulated access time to a first threshold;migrating the target LBA to the NVSM in response to the comparison;adjusting the accumulated access time by a first value for read commands; andadjusting the accumulated access time by a second value for write commands;wherein the first value is greater than the second value.
  • 13. The method as recited in claim 12, wherein the first value increases the accumulated access time and the second value decreases the accumulated access time.
  • 14. The method as recited in claim 12, wherein when the access command comprises a read command, further comprising: executing the read command by reading data from the target data track; andmigrating the target LBA to the NVSM by writing the data to the NVSM.
  • 15. The method as recited in claim 12, further comprising: mapping a plurality of LBAs of the access command to corresponding physical block addresses (PBAs) representing data sectors in the target data track; andadjusting the accumulated access time in response to a number of consecutive PBAs.
  • 16. The method as recited in claim 12, further comprising: mapping a plurality of LBAs of the access command to corresponding physical block addresses (PBAs) representing data sectors in the target data track; andbiasing the comparison in response to a number of consecutive PBAs.
  • 17. The method as recited in claim 12, further comprising: mapping a plurality of LBAs of the access command to corresponding physical block addresses (PBAs) representing data sectors in the target data track;defining a plurality of PBA ranges, wherein each PBA range spans a plurality of consecutive PBAs;maintaining an accumulated access time for each PBA range; andwhen the accumulated access time of a first PBA range exceeds the first threshold, migrating the LBAs mapped to the PBAs of the first PBA range to the NVSM.
  • 18. The method as recited in claim 12, further comprising: generating an access time for the target LBA of the access command;when the access time is greater than a second threshold, adjusting the accumulated access time by a first value; andwhen the access time is less than the second threshold, adjusting the accumulated access time by a second value;wherein the first value is greater than the second value.
  • 19. The method as recited in claim 18, wherein the first value increases the accumulated access time and the second value decreases the accumulated access time.
  • 20. The method as recited in claim 12, further comprising biasing the comparison in response to a life remaining of the NVSM decreasing.
  • 21. The method as recited in claim 12, further comprising biasing the comparison in response to a workload of disk access commands.
  • 22. The method as recited in claim 12, further comprising biasing the comparison in response to an access frequency of the target LBA.
  • 23. A hybrid drive comprising: a disk comprising a plurality of data tracks;a head actuated over the disk;a non-volatile semiconductor memory (NVSM); andcontrol circuitry programmed to: receive an access command from a host, the access command identifying at least one target logical block address (LBA);when the target LBA is mapped to a target data track on the disk, seek the head to the target data track and update an accumulated access time for the target LBA based at least in part on a latency of the seek;compare the accumulated access time to a first threshold;migrate the target LBA to the NVSM in response to the comparison;map a plurality of LBAs of the access command to corresponding physical block addresses (PBAs) representing data sectors in the target data track; andadjust the accumulated access time in response to a number of consecutive PBAs.
  • 24. A hybrid drive comprising: a disk comprising a plurality of data tracks;a head actuated over the disk;a non-volatile semiconductor memory (NVSM); andcontrol circuitry programmed to: receive an access command from a host, the access command identifying at least one target logical block address (LBA);when the target LBA is mapped to a target data track on the disk, seek the head to the target data track and update an accumulated access time for the target LBA based at least in part on a latency of the seek;compare the accumulated access time to a first threshold;migrate the target LBA to the NVSM in response to the comparison; andbias the comparison in response to a workload of disk access commands.
  • 25. A method of operating a hybrid drive comprising a head actuated over a disk comprising a plurality of data tracks, and a non-volatile semiconductor memory (NVSM), the method comprising: receiving an access command from a host, the access command identifying at least one target logical block address (LBA);when the target LBA is mapped to a target data track on the disk, seeking the head to the target data track and updating an accumulated access time for the target LBA based at least in part on a latency of the seeking;comparing the accumulated access time to a first threshold;migrating the target LBA to the NVSM in response to the comparison;mapping a plurality of LBAs of the access command to corresponding physical block addresses (PBAs) representing data sectors in the target data track; andadjusting the accumulated access time in response to a number of consecutive PBAs.
  • 26. A method of operating a hybrid drive comprising a head actuated over a disk comprising a plurality of data tracks, and a non-volatile semiconductor memory (NVSM), the method comprising: receiving an access command from a host, the access command identifying at least one target logical block address (LBA);when the target LBA is mapped to a target data track on the disk, seeking the head to the target data track and updating an accumulated access time for the target LBA based at least in part on a latency of the seeking;comparing the accumulated access time to a first threshold;migrating the target LBA to the NVSM in response to the comparison; andbiasing the comparison in response to a workload of disk access commands.
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority from provisional U.S. Patent Application Ser. No. 61/373,753, filed on Aug. 13, 2010, the specification of which is incorporated herein by reference.

US Referenced Citations (240)
Number Name Date Kind
5333138 Richards et al. Jul 1994 A
5420998 Horning May 1995 A
5457786 Roush Oct 1995 A
5471604 Hasbun et al. Nov 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
6856556 Hajeck Feb 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
7126857 Hajeck Oct 2006 B2
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
7430136 Merry, Jr. et al. Sep 2008 B2
7447807 Merry et al. Nov 2008 B1
7461202 Forrer, Jr. et al. Dec 2008 B2
7468854 Yamashita et al. Dec 2008 B2
7472222 Auerbach et al. Dec 2008 B2
7477477 Maruchi et al. Jan 2009 B2
7483234 Shimozato Jan 2009 B2
7502256 Merry, Jr. et al. Mar 2009 B2
7509441 Merry et al. Mar 2009 B1
7509471 Gorobets Mar 2009 B2
7516346 Pinheiro et al. Apr 2009 B2
7552347 Schutte Jun 2009 B2
7596643 Merry, Jr. et al. Sep 2009 B2
7610438 Lee et al. Oct 2009 B2
7610445 Manus et al. Oct 2009 B1
7613876 Bruce et al. Nov 2009 B2
7620773 Nicholson et al. Nov 2009 B2
7644231 Recio et al. Jan 2010 B2
7647513 Tobias et al. Jan 2010 B2
7653778 Merry, Jr. et al. Jan 2010 B2
7685337 Merry, Jr. et al. Mar 2010 B2
7685338 Merry, Jr. et al. Mar 2010 B2
7685360 Brunnett et al. Mar 2010 B1
7685374 Diggs et al. Mar 2010 B2
7698586 Kim et al. Apr 2010 B2
7719785 Taniguchi et al. May 2010 B2
7733712 Walston et al. Jun 2010 B1
7752491 Liikanen et al. Jul 2010 B1
7765373 Merry et al. Jul 2010 B1
7774556 Karamcheti et al. Aug 2010 B2
7797487 Lubbers et al. Sep 2010 B2
7817372 Takahashi Oct 2010 B2
7835104 Yamashita et al. Nov 2010 B2
7890696 Lawson Feb 2011 B2
7898855 Merry, Jr. et al. Mar 2011 B2
7912991 Merry et al. Mar 2011 B1
7936603 Merry, Jr. et al. May 2011 B2
7962792 Diggs et al. Jun 2011 B2
7984259 English Jul 2011 B1
8060707 Fairhurst et al. Nov 2011 B2
8078918 Diggs et al. Dec 2011 B2
8090899 Syu Jan 2012 B1
8095851 Diggs et al. Jan 2012 B2
8098451 Graef Jan 2012 B2
8108692 Merry et al. Jan 2012 B1
8122185 Merry, Jr. et al. Feb 2012 B2
8127048 Merry et al. Feb 2012 B1
8135903 Kan Mar 2012 B1
8139307 Kim et al. Mar 2012 B2
8151020 Merry, Jr. et al. Apr 2012 B2
8161227 Diggs et al. Apr 2012 B1
8166245 Diggs et al. Apr 2012 B2
8169726 Wilson May 2012 B2
8243525 Kan Aug 2012 B1
8244975 DeCenzo Aug 2012 B2
8245003 Suzuki et al. Aug 2012 B2
8254172 Kan Aug 2012 B1
8261012 Kan Sep 2012 B2
8286018 Chang et al. Oct 2012 B2
8296625 Diggs et al. Oct 2012 B2
8312207 Merry, Jr. et al. Nov 2012 B2
8316176 Phan et al. Nov 2012 B1
8341339 Boyle et al. Dec 2012 B1
8375151 Kan Feb 2013 B1
8392635 Booth et al. Mar 2013 B2
8397107 Syu et al. Mar 2013 B1
8407449 Colon et al. Mar 2013 B1
8423722 Deforest et al. Apr 2013 B1
8433858 Diggs et al. Apr 2013 B1
8443167 Fallone et al. May 2013 B1
8447920 Syu May 2013 B1
8458435 Rainey, III et al. Jun 2013 B1
8478930 Syu Jul 2013 B1
8489854 Colon et al. Jul 2013 B1
8503237 Horn Aug 2013 B1
8521972 Boyle et al. Aug 2013 B1
8549236 Diggs et al. Oct 2013 B2
8583835 Kan Nov 2013 B1
8601311 Horn Dec 2013 B2
8601313 Horn Dec 2013 B1
8612644 Kumasawa et al. Dec 2013 B2
8612669 Syu et al. Dec 2013 B1
8612804 Kang et al. Dec 2013 B1
8615681 Horn Dec 2013 B2
8638602 Horn Jan 2014 B1
8639872 Boyle et al. Jan 2014 B1
8683113 Abasto et al. Mar 2014 B2
8700834 Horn et al. Apr 2014 B2
8700950 Syu Apr 2014 B1
8700951 Call et al. Apr 2014 B1
8706985 Boyle et al. Apr 2014 B1
8707104 Jean Apr 2014 B1
8713066 Lo et al. Apr 2014 B1
8713357 Jean et al. Apr 2014 B1
8719501 Flynn et al. May 2014 B2
8719531 Strange et al. May 2014 B2
8724422 Agness et al. May 2014 B1
8725931 Kang May 2014 B1
8745277 Kan Jun 2014 B2
8751728 Syu et al. Jun 2014 B1
8769190 Syu et al. Jul 2014 B1
8769232 Suryabudi et al. Jul 2014 B2
8773802 Anderson et al. Jul 2014 B1
8775720 Meyer et al. Jul 2014 B1
8782327 Kang et al. Jul 2014 B1
8782334 Boyle et al. Jul 2014 B1
8788778 Boyle Jul 2014 B1
8788779 Horn Jul 2014 B1
8788880 Gosla et al. Jul 2014 B1
8793429 Call et al. Jul 2014 B1
20020083264 Coulson Jun 2002 A1
20030140198 Ninose et al. Jul 2003 A1
20030145167 Tomita 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
20080049354 Nitta 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
20090213486 Takahashi 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
20100174849 Walston et al. Jul 2010 A1
20100191922 Dickey et al. Jul 2010 A1
20100195243 Zhu et al. Aug 2010 A1
20100250793 Syu Sep 2010 A1
20100325352 Schuette et al. Dec 2010 A1
20110010490 Kwon et al. Jan 2011 A1
20110099323 Syu Apr 2011 A1
20110106804 Keeler et al. May 2011 A1
20110283049 Kang et al. Nov 2011 A1
20110283128 Farhan et al. Nov 2011 A1
20120170435 Trantham Jul 2012 A1
20120260020 Suryabudi et al. Oct 2012 A1
20120278531 Horn Nov 2012 A1
20120284460 Guda Nov 2012 A1
20120290779 Eleftheriou et al. Nov 2012 A1
20120317338 Yi et al. Dec 2012 A1
20120324191 Strange et al. Dec 2012 A1
20130024650 Ambat et al. Jan 2013 A1
20130117520 Ryu May 2013 A1
20130132638 Horn et al. May 2013 A1
20130145106 Kan Jun 2013 A1
20130173850 Song Jul 2013 A1
20130290668 Na Oct 2013 A1
20130290793 Booth et al. Oct 2013 A1
20140059405 Syu et al. Feb 2014 A1
20140101369 Tomlin et al. Apr 2014 A1
20140115427 Lu Apr 2014 A1
20140133220 Danilak et al. May 2014 A1
20140136753 Tomlin et al. May 2014 A1
20140149826 Lu et al. May 2014 A1
20140157078 Danilak et al. Jun 2014 A1
20140181432 Horn Jun 2014 A1
20140223255 Lu et al. Aug 2014 A1
Non-Patent Literature Citations (8)
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.
DongKyu Lee; Koh, K.; “PDC-NH: Popular data concentration on NAND flash and hard disk drive,” 2009 10thIEEE/ACM International Conference on Grid Computing, pp. 196-200, Oct. 13-15, 2009.
Boyle, et. al., U.S. Appl. No. 12/824,959, filed Jun. 28, 2010, 21 pages.
Provisional Applications (1)
Number Date Country
61373753 Aug 2010 US