US20160291888A1 - Hybrid-hdd that limits dirty data in nand - Google Patents
Hybrid-hdd that limits dirty data in nand Download PDFInfo
- Publication number
- US20160291888A1 US20160291888A1 US14/673,763 US201514673763A US2016291888A1 US 20160291888 A1 US20160291888 A1 US 20160291888A1 US 201514673763 A US201514673763 A US 201514673763A US 2016291888 A1 US2016291888 A1 US 2016291888A1
- Authority
- US
- United States
- Prior art keywords
- data
- storage device
- flash
- write
- magnetic storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 52
- 238000013500 data storage Methods 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 10
- 238000012005 ligant binding assay Methods 0.000 claims 9
- 230000014759 maintenance of location Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/253—Centralized memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/281—Single cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- Hybrid hard disk drive as one of storage devices include one or more rotating magnetic disks combined with nonvolatile solid-state (e.g., flash) memory.
- nonvolatile solid-state e.g., flash
- a hybrid HDD has both the capacity of a conventional HDD and the ability to access data as quickly as a solid-state drive, and for this reason hybrid HDDs are expected to be commonly used in laptop computers.
- NAND memory included in a hybrid HDD can be used as a large read and write cache that reduces the frequency of relatively time-consuming disk accesses.
- implementation of a write cache in NAND memory necessitates storing the only copy of data associated with recently received write commands in NAND memory cells.
- NAND memory cells may be unsuitable for long-term storage of the only copy of data in a data storage device.
- the improved performance provided to a hybrid HDD by a NAND-based write cache is offset by the fact that, under certain conditions, NAND memory cells are inherently less reliable than other storage media in the hybrid HDD.
- One or more embodiments provide systems and methods for storing data in a hybrid hard disk drive (HDD) that includes a magnetic storage medium and a nonvolatile solid-state device.
- a hybrid HDD limits the amount of “flash-only” data that the hybrid HDD stores, where flash-only data are data that are stored in the solid-state storage device but are not also stored in the magnetic storage device.
- flash-only data By limiting the flash-only data to as much as can be flushed to the magnetic storage medium within a specified time (for example, 3 seconds), the hybrid HDD can flush all flash-only data to the magnetic storage medium immediately prior to a power-off of the drive.
- the hybrid HDD can employ a write cache, which relies on storing flash-only data in the hybrid HDD, without the disadvantage of storing flash-only data after shut-down.
- a data storage device includes a nonvolatile solid-state device, a magnetic storage medium, and a controller.
- the controller is configured to track flash-only data, which are data that are stored in the solid-state storage device and are not also stored in the magnetic storage device, receive a write command, determine an estimated time to write for the flash-only data and write data associated with the write command to be stored in the magnetic storage device, cause the write data to be stored in the nonvolatile solid-state device if the estimated write time is less than a target write time, and cause the write data to be stored in the magnetic storage device if the estimated write time is greater than the target write time.
- a method of storing data is carried out in a data storage device that includes a nonvolatile solid-state device and a magnetic storage medium.
- the method includes tracking flash-only data, which are data that are stored in the solid-state storage device and are not also stored in the magnetic storage device, receiving a write command, determining an estimated write time for the flash-only data and write data associated with the write command to be stored in the magnetic storage device, causing the write data to be stored in the nonvolatile solid-state device if the estimated write time is less than a target write time, and causing the write data to be stored in the magnetic storage device if the estimated write time is greater than the target write time.
- FIG. 1 is a schematic view of an exemplary hybrid hard disk drive (HDD), according to one embodiment.
- HDD hard disk drive
- FIG. 2 illustrates an operational diagram of the hybrid HDD of FIG. 1 with elements of electronic circuits shown configured according to one embodiment.
- FIG. 3 sets forth a flowchart of method steps for storing data in the hybrid HDD of FIG. 1 , according to one or more embodiments.
- FIG. 4 sets forth a flowchart of method steps for flushing a write cache and related data in the hybrid HDD of FIG. 1 when the hybrid HDD receives a shutdown command, according to one or more embodiments.
- FIG. 5 sets forth a flowchart of method steps for storing data in a data storage device, according to one or more embodiments.
- FIG. 1 is a schematic view of an exemplary hybrid disk drive (HDD) 100 , according to one embodiment.
- Hybrid HDD 100 includes at least one storage disk 110 that is rotated by a spindle motor 114 and includes a plurality of concentric data storage tracks.
- Spindle motor 114 is mounted on a base plate 116 .
- An actuator arm assembly 120 is also mounted on base plate 116 , and has a slider 121 mounted on a flexure arm 122 with a read/write head 127 that reads data from and writes data to the data storage tracks.
- Flexure arm 122 is attached to an actuator arm 124 that rotates about a bearing assembly 126 .
- Voice coil motor 128 moves slider 121 relative to storage disk 110 , thereby positioning read/write head 127 over the desired concentric data storage track disposed on the surface 112 of storage disk 110 .
- Spindle motor 114 , read/write head 127 , and voice coil motor 128 are controlled by electronic circuits 130 , which are mounted on a printed circuit board 132 .
- Electronic circuits 130 include a read/write channel 137 , a microprocessor-based controller 133 , random-access memory (RAM) 134 (which may be a dynamic RAM and is used as a data buffer), and a flash memory device 135 and flash manager device 136 .
- RAM random-access memory
- read/write channel 137 and microprocessor-based controller 133 are included in a single chip, such as a system-on-chip 131 .
- hybrid HDD 100 may further include a motor-driver chip 125 , which accepts commands from microprocessor-based controller 133 and drives both spindle motor 114 and voice coil motor 128 .
- the read/write channel 137 communicates with the read/write head 127 via a preamplifier (not shown) that may be mounted on a flex-cable that is itself mounted on either the base plate 116 , or the actuator arm 120 or both.
- hybrid HDD 100 is illustrated with a single storage disk 110 and a single actuator arm assembly 120 .
- Hybrid HDD 100 may also include multiple storage disks and multiple actuator arm assemblies.
- each side of storage disk 110 may have an associated read/write head coupled to a flexure arm.
- actuator arm assembly 120 When data are transferred to or from storage disk 110 , actuator arm assembly 120 sweeps an arc between an inner diameter (ID) and an outer diameter (OD) of storage disk 110 .
- Actuator arm assembly 120 accelerates in one angular direction when current is passed in one direction through the voice coil of voice coil motor 128 and accelerates in an opposite direction when the current is reversed, thereby allowing control of the position of actuator arm assembly 120 and attached read/write head 127 with respect to storage disk 110 .
- Voice coil motor 128 is coupled with a servo system known in the art that uses the positioning data read from servo wedges on storage disk 110 by read/write head 127 to determine the position of read/write head 127 over a specific data storage track. The servo system determines an appropriate current to drive through the voice coil of voice coil motor 128 , and drives said current using a current driver and associated circuitry.
- Hybrid HDD 100 is configured as a hybrid HDD, in which nonvolatile data storage may be performed using storage disk 110 and/or flash memory device 135 .
- nonvolatile memory such as flash memory device 135
- flash memory device 135 supplements the spinning storage disk 110 to provide faster boot, hibernate, resume and other data read-write operations, as well as lower power consumption.
- flash memory device 135 is a nonvolatile storage medium, such as a NAND flash chip, that can be electrically erased and reprogrammed, and is sized to supplement storage disk 110 in hybrid HDD 100 as a nonvolatile storage medium.
- flash memory device 135 has data storage capacity that is orders of magnitude larger than RAM 134 , e.g., gigabytes (GB) vs. megabytes (MB).
- FIG. 2 illustrates an operational diagram of hybrid HDD 100 with elements of electronic circuits 130 shown configured according to one embodiment.
- hybrid HDD 100 includes RAM 134 , flash memory device 135 , a flash manager device 136 , system-on-chip 131 , and storage disk 110 .
- Hybrid HDD 100 is connected to a host 10 , such as a host computer, via a host interface 20 , such as a serial advanced technology attachment (SATA) bus.
- SATA serial advanced technology attachment
- flash manager device 136 controls interfacing of flash memory device 135 with a high-speed data path 138 and is connected to flash memory device 135 via a NAND interface bus 139 .
- System-on-chip 131 includes microprocessor-based controller 133 and other hardware (including read/write channel 137 ) for controlling operation of hybrid HDD 100 , and is connected to RAM 134 and flash manager device 136 via high-speed data path 138 .
- Microprocessor-based controller 133 is a control unit that may include one or more microcontrollers, such as ARM microprocessors, a hybrid HDD controller, and any control circuitry within hybrid HDD 100 .
- High-speed data path 138 is a high-speed bus known in the art, such as a double data rate (DDR) bus, a DDR2 bus, a DDR3 bus, or the like.
- DDR double data rate
- hybrid HDD 100 may be configured with different data interfaces and buses than those illustrated in FIG. 2 .
- Flash memory device 135 is configured to store flash-only data 201 and second copy data 202 .
- flash-only data 201 , second copy data 202 , or any combination of each may be stored in a particular memory block of flash memory device 135 . That is, specific memory blocks of flash memory device 135 are not dedicated to storing only flash-only data 201 while other memory blocks are dedicated to storing only second copy data 202 .
- flash-only data 201 and second copy data 202 may each be stored in non-contiguous memory blocks or other regions of flash memory device 135 .
- Flash-only data 201 include data that are stored in flash memory device 135 and are not stored on storage disk 110 , such as data used to populate a write cache for hybrid HDD 100 .
- write data data associated with a write command
- this write data may be written to flash memory device 135 into a so-called write cache rather than directly to storage disk 110 .
- the contents of the write cache may then be written to physical locations on storage disk 110 that correspond to the logical block addresses (LBAs) referenced by the write command, either subsequent to and/or in parallel with receipt of other write data.
- LBAs logical block addresses
- write data can be stored in a nonvolatile storage medium of hybrid HDD 100 much more quickly than when write data are received by hybrid HDD 100 and stored directly on storage disk 110 .
- the time to complete a write command for a page of write data may be on the order of a few hundred microseconds for flash memory device 135 and on the order of several milliseconds or more for storage disk 110 .
- flash-only data 201 may include other data besides data associated with a write cache.
- flash-only data 201 may include metadata or other data employed in the operation of flash memory device 135 , such as program-erase counts for the memory blocks of flash memory device 135 , or data associated with a logical-to-physical mapping function that maps cache entries in a read or write cache to physical addresses in flash memory device 135 . The loss of such data can render some or all data stored in flash memory device 135 unusable or otherwise adversely affect the operation of flash memory device 135 .
- Second copy data 202 include data that are stored in flash memory device 135 and are also stored on storage disk 110 .
- second copy data 202 are data for which a second copy exists on storage disk 110 .
- second copy data 202 may include data used to populate a read cache for hybrid HDD 100 .
- a read cache includes data that have been requested previously by host 10 and read from a slower permanent storage location, e.g., storage disk 110 .
- the read cache temporarily keeps a copy of such data in order to accelerate the fulfillment of future requests for that data. Therefore, by definition, the data in a read cache in flash memory device 135 is a second copy of data that are also stored on storage disk 110 .
- there is another copy available in hybrid HDD 100 of any read cache data that may be lost due to poor data retention by flash memory drive 135 , for example when hybrid HDD is stored for an extended period at an elevated temperature.
- the status of a particular set of data stored in hybrid HDD 100 is determined irrespective of the particular set of data being stored in RAM 134 or any other volatile medium.
- data may also be stored in RAM 134 during operation of hybrid HDD and still be considered to be flash-only data 201 .
- data that are determined to be flash-only data 201 are typically also initially stored in RAM 134 for some time interval after being received by hybrid HDD 100 .
- Storage disk 110 is configured with a user region 210 and a flush-cache region 220 .
- User region 210 is configured to store conventional user data, such as write data from host 10 that are transmitted to hybrid HDD 100 .
- each unit of such user data is associated with a unique LBA, and each LBA corresponds to a particular physical location (i.e., track and sector) of storage disk 110 .
- User region 210 generally includes all usable portions of storage disk 110 except for flush-cache region 220 , and makes up the vast majority of the storage capacity of storage disk 110 .
- user region 210 may include on the order of 100,000 data storage tracks or more, whereas flush-cache region 220 may include up to a few hundred data storage tracks.
- Flush-cache region 220 may be configured to store at least one copy of flash-only data 201 .
- flush-cache region 220 includes a first storage region 221 and, in some embodiments, a second storage region 222 .
- First storage region 221 and second storage region 222 each include sufficient data storage tracks to store a version of flash-only data 201 and associated metadata.
- first storage region 221 is sized to store flash-only data 201 A and metadata 251
- second storage region 222 is sized to store flash-only data 201 B and metadata 252 .
- flush-cache region 220 is located at the inner diameter of storage disk 110 , but may be at any other technically feasible portion of storage disk 110 .
- flush-cache region 220 may be located at the outer diameter of storage disk 110 , thereby allowing more data storage per rotation of storage disk 110 .
- flush-cache region 220 may be located in a central portion of storage disk 110 that is between the ID and OD of storage disk 110 . In such embodiments, the average seek time associated with moving to flush-cache region 220 may be reduced.
- Flash-only data 201 A is a previously written version of flash-only data 201 that may be considered obsolete once a more recent version of flash-only data 201 in flash memory device 135 has been updated with additional write data. Furthermore, flash-only data 201 A is a sequential write of a previous version of flash-only data 201 in first storage region 221 . Consequently, the write data included in flash-only data 201 A are not stored in the physical locations that correspond to the LBAs associated with this write data. Instead, flash-only data 201 A are stored as shown in first storage region 221 , even though the physical locations where flash-only data 201 A are nominally supposed to be written on storage disk 110 are actually in user region 210 .
- metadata 251 includes metadata indicating these physical locations (e.g. tracks and sectors) on storage disk 110 .
- metadata 251 may include the LBAs associated with flash-only data 201 A that correspond to these physical locations.
- flash-only data 201 B is a sequential write of a previous version of flash-only data 201 and is stored in second storage region 222
- metadata 252 includes metadata indicating the physical locations on storage disk 110 where flash-only data 201 B are supposed to be written and/or the LBAs associated with flash-only data 201 B that correspond to these physical locations.
- flush-cache region 220 is configured to store two or more copies of flash-only data 201 , so that the most recent version of flash-only data 201 can be written to alternate storage locations on storage disk 110 , i.e., first storage region 221 and second storage region 222 .
- first storage region 221 and second storage region 222 the oldest version of the two previous versions of flash-only data 201 is overwritten, while the most recent of the two previous version of flash-only data 201 remains intact.
- flash-only data 201 B is an older version of flash-only data 201 than flash-only data 201 A
- the new version of flash-only data 201 being stored in flush-cache region 220 is written to second storage region 222 . Consequently, if a serious fault occurs while the new version of flash-only data 201 is being written to flush-cache region 220 , the most recent version of flash-only data 201 on storage disk 110 (in this case flash-only data 201 A) is not corrupted, thereby reducing or minimizing data loss due to the fault. Instead, only the oldest version of flash-only data 201 stored on storage disk 110 , i.e., flash-only data 201 B, is corrupted. In such embodiments, if a serious fault occurs while the new version of flash-only data 201 is being written to flush-cache region 220 , such as an unexpected power loss, the most recent version of flash-only data 201 on storage disk 110 remains intact.
- hybrid HDD 100 can write the version of flash-only data 201 that is still in flash memory device 135 to flush-cache region 220 . If for some reason flash-only data 201 in flash memory device 135 is not available, hybrid HDD 100 still has the most recent version of flash-only data 201 previously written to storage disk 110 , which in the above example is flash-only data 201 A.
- hybrid HDD 100 In operation, when host 10 informs hybrid HDD 100 that shut-down is imminent (for example via a STANDBY IMMEDIATE command), flash-only data 201 are written to flush-cache region 220 in anticipation of hybrid HDD 100 being shut down. In this way, all data stored in flash memory device 135 are also stored in some location on storage disk 110 . Thus, if flash memory device 135 fails to retain all data stored therein after being powered off, for example due to storage in a high temperature environment, hybrid HDD 100 still includes a copy of any data lost by flash memory device 135 .
- hybrid HDD 100 after receiving a STANDBY IMMEDIATE command or other command from host 10 indicating shutdown, hybrid HDD 100 has a limited time to spin down storage disk 110 and park read/write head 127 .
- host 10 may crash, lock up, or otherwise fault if no response is received from hybrid HDD 100 to the issued command after more than five seconds.
- there is a target write time e.g., five seconds for hybrid HDD 100 to write flash-only data 201 to flush-cache region 220 after receiving any sort of shutdown command from host 10 .
- a maximum size of flush-cache region 220 and a maximum allowable size of flash-only data 201 may be based on the target write time, the rate at which hybrid HDD 100 can store flash-only data 201 in storage disk 110 , and other factors.
- the target write time may be shorter than the maximum time allowed without causing a fault in host 10 .
- the target write time may be selected based on what time is acceptable for a user to wait for hybrid HDD 100 to shut down, e.g. three seconds.
- the time required for hybrid HDD 100 to write flash-only data 201 to their correct physical locations in user region 210 depends not only on the total amount of data included in flush-cache data 201 , but also on how flash-only data 201 are organized and on the physical locations on storage disk 110 that correspond to the LBAs associated with flash-only data 201 . That is, the time required for hybrid HDD 100 to write flash-only data 201 to their correct physical locations in user region 210 is highly dependent on how randomly located flash-only data 201 is on storage disk 110 .
- hybrid HDD 100 can write flash-only data 201 to their correct physical locations in user region 210 in about three seconds.
- flash-only data 201 includes 300 megabytes (MB) of 32 kilobyte (KB) randomly located blocks of data
- hybrid HDD 100 may write flash-only data 201 to their correct physical locations in user region 210 in 45 seconds or more, which far exceeds any reasonable target write time.
- flash-only data 201 may include a relatively large quantity of data (on the order of a few hundred MBs) and still be written completely within the target write time.
- flash-only data 201 are written to flush-cache region 220 as one sequential write, and metadata associated therewith may be written as a second sequential write.
- hybrid HDD writes flash-only data 201 as flash-only data 201 A into a first group of contiguous data storage tracks of first storage region 221 , and writes metadata 251 in a second group of contiguous data storage tracks of first storage region 221 .
- flash-only data 201 A and metadata 251 may be written into a single group of contiguous data storage tracks of first storage region 221 as a single sequential write.
- flash-only data 201 can include a relatively large quantity of data, since flash-only data 201 is not written to storage disk 110 as a plurality of randomly located write commands in user region 220 .
- FIG. 3 sets forth a flowchart of method steps for storing data in a data storage device, such as hybrid HDD 100 , according to one or more embodiments.
- a data storage device such as hybrid HDD 100
- FIGS. 1 and 2 persons skilled in the art will understand that the method steps may be performed with other hybrid drives.
- the control algorithms for the method steps may reside in and/or be performed by controller 133 , flash manager device 136 , and/or any other suitable control circuit or system.
- hybrid HDD 100 is configured to operate with a particular target write time, such as three seconds, five seconds, etc.
- first storage region 221 and second storage region 222 are configured based on the particular target write time and the sequential write rate of hybrid HDD 100 , i.e., the rate at which hybrid HDD 100 can write data to storage disk 110 as a sequential write. For example, if data can be written sequentially to storage disk 110 at a rate of approximately 100 MB per second and the target write time for hybrid HDD 100 is three seconds, then first storage region 221 and second storage region 222 may each be sized to store approximately 300 MB of data.
- the quantity of flash-only data 201 stored in flash memory device 135 is constant and is based on the sequential write rate of hybrid HDD 100 and the target write time.
- method 300 begins at step 301 , where microprocessor-based controller 133 or other suitable control circuit or system receives a write command and data associated with the write command, i.e., write data, from host 10 .
- the write command references a sequential group of LBAs, indicating that host 10 requests that the data associated with these LBAs be stored in hybrid HDD 100 .
- step 302 microprocessor-based controller 133 determines an estimated time to write for flash-only data 201 and the write data received in step 301 to be stored on storage disk 110 .
- the estimated time to write is based on the tangential and radial location on storage disk 110 corresponding to each LBA associated with flash-only data 201 and on the relative position of these tangential and radial locations. Accurate determination of the estimated time to write is a compute-intensive task, and may be performed with write-reordering algorithms commonly employed by conventional HDDs and implemented in firmware.
- step 302 is performed for each write command received by hybrid HDD 100 . In other embodiments, to reduce the computational resources expended in determining the estimated time to write, step 302 may be performed either periodically, after a specific number of write commands have been received, or after a particular amount of write data have been received.
- microprocessor-based controller 133 determines whether the estimated write time determined in step 302 is less than the target write time for hybrid HDD 100 . If no, method 300 proceeds to step 305 . If yes, method 300 proceeds to step 304 . In step 304 , microprocessor-based controller 133 stores the write data associated with the write command in flash memory device 135 (NAND) and method 300 proceeds back to step 301 . In step 305 , microprocessor-based controller 133 stores the write data received in step 301 in user region 210 of storage disk 110 in the physical locations that correspond to the LBAs associated with the write command.
- flash-only data 201 and the write data received in step 301 can be stored to storage disk 110 in less than the target write time
- the write data are added to flash-only data 201 in flash memory device 135 .
- microprocessor-based controller 133 calculates that flash-only data 201 and the write data received in step 301 cannot be stored to storage disk 110 in less than the target write time
- the write data are written directly to storage disk 110 , even though adding this write data to the write cache in flash memory device 135 is a faster process.
- hybrid HDD 100 in response to receiving a write command from host 10 , how hybrid HDD 100 stores data associated with the write command is based on an estimated write time for the combination of flash-only data 201 and write data associated with the write command to be stored on storage disk 110 . If flash-only data 201 and the write data can be stored on storage disk 110 in less than a target write time, hybrid HDD 100 stores the write data associated with the new write command in flash memory device 135 , thereby adding the write data to flash-only data 201 .
- FIG. 4 sets forth a flowchart of method steps for flushing a write cache and related data in a data storage device when the data storage device, such as hybrid HDD 100 , receives a shutdown command, according to one or more embodiments.
- the method steps are described in conjunction with hybrid HDD 100 in FIGS. 1 and 2 , persons skilled in the art will understand that the method steps may be performed with other hybrid drives.
- the control algorithms for the method steps may reside in and/or be performed by controller 133 , flash manager device 136 , and/or any other suitable control circuit or system.
- method 400 begins at step 401 , where microprocessor-based controller 133 or other suitable control circuit or system receives a shutdown command from a host.
- the shutdown command may be a STANDBY-IMMEDIATE, a STANDBY command, or equivalent.
- a FLUSH-CACHE command may be received in step 401 rather than a shutdown command.
- microprocessor-based controller 133 determines whether an estimated write time for flash-only data 201 is less than a maximum write time for hybrid HDD 100 .
- the maximum write time may be a maximum allowable time or any other predetermined target time for hybrid HDD 100 to store flash-only data 201 in user region 210 of storage disk 110 . It is noted that storage of any data in user region 210 entails storage of the data in the physical locations in storage disk 110 (e.g., track and sector) that correspond to the LBAs associated with the data, and therefore is generally not a single sequential write, as occurs when flash-only data 201 are written to first storage region 221 or second storage region 222 .
- the maximum write time may be significantly shorter than the target write time for hybrid HDD 100 , for example on the order of one or two seconds.
- Step 402 is performed to determine whether flash-only data 201 can be stored in the appropriate locations in user region 210 upon shutdown, rather than being copied from flush-cache region 220 to user region 210 at a later time. If the estimated write time is less than the above-described maximum write time, method 400 proceeds to step 403 . If the estimated write time is greater than the maximum write time, method 400 proceeds to step 404 .
- step 403 microprocessor-based controller 133 causes flash-only data 201 to be stored in appropriate locations in user region 210 .
- flash-only data 201 are written in the physical locations in user region 210 that correspond to the LBAs associated with flash-only data 201 .
- Method 403 then proceeds to step 409 .
- microprocessor-based controller 133 determines a total estimated time to write for storing a selected portion of flash-only data 201 in user region 210 of storage disk 110 and a remainder portion of flash-only data 201 in flush-cache region 220 of storage disk 110 .
- the selected portion may include data in flash-only data 201 associated with write commands that exceed a minimum quantity of data, e.g., 1 MB, 2 MB, etc.
- the selected portion includes all write commands that exceed 2 MB, which are the write commands that can be most efficiently written to storage disk 110 .
- the selected portion may include write commands that correspond to locations on storage disk 110 that are proximate each other, e.g., on the same track or adjacent tracks.
- the remainder portion of flash-only data 201 includes all of flash-only data 201 except the above-described selected portion.
- the total estimated time to write is the time required for hybrid HDD 100 to store the selected portion of flash-only data 201 in user region 210 and remainder portion of flash-only data 201 in flush-cache region 220 . Because in some embodiments the selected portion of flash-only data 201 includes data that can be written to storage disk relatively quickly, the total estimated write time may be a relatively short time interval that is less than the target write time for hybrid HDD 100 , for example one or two seconds.
- microprocessor-based controller 133 determines whether the total estimated time to write is less than a maximum write time for hybrid HDD 100 .
- the maximum write time may be equal to or less than the target write time for hybrid HDD 100 . If the total estimated time to write is less than the maximum write time, method 400 proceeds to step 406 . If the total estimated time to write is greater than the maximum write time, method 400 proceeds to step 408 .
- microprocessor-based controller 133 causes the above-described selected portion of flash-only data 201 to be stored in user region 210 of storage disk 110 .
- the selected portion of flash-only data 201 is written in the physical locations in user region 210 that correspond to the LBAs associated with the selected portion of flash-only data 201 .
- microprocessor-based controller 133 causes the above-described remainder portion of flash-only data 201 to be stored in flush-cache region 220 in a single sequential write operation.
- the remainder portion of flash-only data 201 includes all data in flash-only data 201 that are not included in the selected portion of flash-only data 201 .
- the remainder portion of flash-only data 201 includes data associated with smaller write commands and write commands that are more randomly located on storage disk 110 . Because the remainder portion of flash-only data 201 are written as a single sequential write, the fact that these data are associated with LBAs that are located randomly across storage disk 110 has little effect on how quickly hybrid HDD 100 completes step 407 .
- metadata associated with flash-only data 201 are stored in flush-cache region 220 . Method 400 proceeds to step 409 .
- step 408 which is performed when the total estimated time to write is determined to be greater than the maximum write time, flash-only data 201 are stored in flush-cache region 220 of storage disk 110 .
- metadata associated with flash-only data 201 are stored in flush-cache region 220 .
- flush-cache region 220 includes two or more storage regions, e.g., first storage region 221 and second storage region 222 , flash-only data 201 and the associated metadata are stored in the storage region that includes the oldest previously written version of flash-only data 201 .
- Step 408 is completed in less than the target write time for hybrid HDD 100 , because the size of flash-only data 201 is controlled, in method 300 , so that all of flash-only data 201 can be written in flush-cache region 220 in less than the target write time.
- Method 400 proceeds to step 409 .
- microprocessor-based controller 133 parks read/write head 127 , spins down storage disk 110 , and sends an acknowledgment to host 10 that the shutdown is complete, all prior to expiration of the target write time.
- a total quantity of flash-only data 201 is limited during operation so that most or all of flash-only data 201 can be stored to the correct respective physical locations in user region 210 when a shutdown command is received from host 10 .
- the total quantity of flash-only data 201 may be limited to a few hundred MBs, a quantity of data that can usually be written to storage disk 110 in less than a typical target write time.
- FIG. 5 One such embodiment is illustrated in FIG. 5 .
- FIG. 5 sets forth a flowchart of method steps for storing data in a data storage device, such as hybrid HDD 100 , according to one or more embodiments.
- a data storage device such as hybrid HDD 100
- FIGS. 1 and 2 persons skilled in the art will understand that the method steps may be performed with other hybrid drives.
- the control algorithms for the method steps may reside in and/or be performed by controller 133 , flash manager device 136 , and/or any other suitable control circuit or system.
- method 500 begins at step 501 , where microprocessor-based controller 133 or other suitable control circuit or system receives a write command and data associated with the write command, i.e., write data, from host 10 .
- the write command references a sequential group of LBAs, indicating that host 10 requests that the data associated with these LBAs be stored in hybrid HDD 100 .
- microprocessor-based controller 133 determines a quantity of provisional flash-only data, where provisional flash-only data include the combination of the current flash-only data 201 and the write data received in step 501 .
- microprocessor-based controller 133 determines whether the quantity of provisional flash-only data determined in step 502 is less than a target quantity of data, for example 300 MBs. If no, method 500 proceeds to step 505 . If yes, method 500 proceeds to step 504 . In step 504 , microprocessor-based controller 133 stores the write data associated with the write command in flash memory device 135 (NAND) and method 500 proceeds back to step 501 . In step 505 , microprocessor-based controller 133 stores the write data received in step 501 in user region 210 of storage disk 110 in the physical locations that correspond to the LBAs associated with the write command.
- a target quantity of data for example 300 MBs.
- the total quantity of flash-only data 201 is not increased with the addition of the write data associated with a write command when such an increase causes the quantity of flash-only data 201 to exceed a particular target quantity of data. In this way, the quantity of data that may not be written to storage disk 110 in the event of a STANDBY-IMMEDIATE command is reduced or eliminated.
- microprocessor-based controller 133 receives a shutdown command from host 10 .
- the shutdown command may be a STANDBY-IMMEDIATE, a STANDBY command, or equivalent.
- a FLUSH-CACHE command may be received in step 510 rather than a shutdown command.
- microprocessor-based controller 133 causes a portion of flash-only data 201 to be written to storage disk 110 .
- the portion may be a specific quantity of data, for example 1 MB.
- microprocessor-based controller 133 determines if a target time for hybrid HDD 100 has been exceeded.
- step 513 microprocessor-based controller 133 halts the writing of flash-only data to storage disk 110 , since continuing to write flash-only data 201 to storage disk 110 after the target time has been exceeded can cause a fault to occur in host 10 . Thus, in some situations, a remainder portion of flash-only data 201 may not be written to storage disk 110 before hybrid HDD 100 shuts down.
- embodiments described herein provide systems and methods for storing data in a hybrid HDD that includes a magnetic storage medium and a nonvolatile solid-state device.
- the hybrid HDD limits the amount of flash-only data that the hybrid HDD stores, thereby ensuring that all such flash-only data can be copied to the magnetic storage device within a specified time in response to a shutdown command from a host. Consequently, the hybrid HDD can employ the nonvolatile solid-state device as a write cache without relying on the nonvolatile solid-state device for storing the only copy of write data after shutdown.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
- Hybrid hard disk drive (HDD) as one of storage devices include one or more rotating magnetic disks combined with nonvolatile solid-state (e.g., flash) memory. Generally, a hybrid HDD has both the capacity of a conventional HDD and the ability to access data as quickly as a solid-state drive, and for this reason hybrid HDDs are expected to be commonly used in laptop computers.
- However, a drawback of the NAND-based memory cells in solid-state drives and hybrid HDDs is that such memory cells are only operable for a limited number of program/erase cycles. Furthermore, at higher temperatures, data retention of NAND memory cells is greatly reduced. For example, when single-level cell (SLC) NAND memory cells are elevated to a temperature greater than 70 to 80° C., even short-term retention of data of these NAND cells may become unreliable, and they cannot be considered a dependable nonvolatile data storage medium. This is because data stored in NAND cells may be lost at anytime under such conditions. For a hybrid HDD that includes multi-level cell (MLC) NAND memory, reliability is even more of an issue, since MLC cell reliability may be compromised after fewer program/erase cycles and at lower temperatures than SLC cells.
- Reads from and writes to NAND memory are much faster than reads from and writes to a magnetic disk, so a significant advantage of hybrid HDDs over conventional HDDs is that the NAND memory included in a hybrid HDD can be used as a large read and write cache that reduces the frequency of relatively time-consuming disk accesses. However, implementation of a write cache in NAND memory necessitates storing the only copy of data associated with recently received write commands in NAND memory cells. As noted, under some conditions NAND memory cells may be unsuitable for long-term storage of the only copy of data in a data storage device. Thus, the improved performance provided to a hybrid HDD by a NAND-based write cache is offset by the fact that, under certain conditions, NAND memory cells are inherently less reliable than other storage media in the hybrid HDD.
- One or more embodiments provide systems and methods for storing data in a hybrid hard disk drive (HDD) that includes a magnetic storage medium and a nonvolatile solid-state device. Specifically, a hybrid HDD limits the amount of “flash-only” data that the hybrid HDD stores, where flash-only data are data that are stored in the solid-state storage device but are not also stored in the magnetic storage device. By limiting the flash-only data to as much as can be flushed to the magnetic storage medium within a specified time (for example, 3 seconds), the hybrid HDD can flush all flash-only data to the magnetic storage medium immediately prior to a power-off of the drive. Thus, the hybrid HDD can employ a write cache, which relies on storing flash-only data in the hybrid HDD, without the disadvantage of storing flash-only data after shut-down.
- A data storage device, according to embodiments, includes a nonvolatile solid-state device, a magnetic storage medium, and a controller. In one embodiment, the controller is configured to track flash-only data, which are data that are stored in the solid-state storage device and are not also stored in the magnetic storage device, receive a write command, determine an estimated time to write for the flash-only data and write data associated with the write command to be stored in the magnetic storage device, cause the write data to be stored in the nonvolatile solid-state device if the estimated write time is less than a target write time, and cause the write data to be stored in the magnetic storage device if the estimated write time is greater than the target write time.
- A method of storing data, according to an embodiment, is carried out in a data storage device that includes a nonvolatile solid-state device and a magnetic storage medium. The method includes tracking flash-only data, which are data that are stored in the solid-state storage device and are not also stored in the magnetic storage device, receiving a write command, determining an estimated write time for the flash-only data and write data associated with the write command to be stored in the magnetic storage device, causing the write data to be stored in the nonvolatile solid-state device if the estimated write time is less than a target write time, and causing the write data to be stored in the magnetic storage device if the estimated write time is greater than the target write time.
-
FIG. 1 is a schematic view of an exemplary hybrid hard disk drive (HDD), according to one embodiment. -
FIG. 2 illustrates an operational diagram of the hybrid HDD ofFIG. 1 with elements of electronic circuits shown configured according to one embodiment. -
FIG. 3 sets forth a flowchart of method steps for storing data in the hybrid HDD ofFIG. 1 , according to one or more embodiments. -
FIG. 4 sets forth a flowchart of method steps for flushing a write cache and related data in the hybrid HDD ofFIG. 1 when the hybrid HDD receives a shutdown command, according to one or more embodiments. -
FIG. 5 sets forth a flowchart of method steps for storing data in a data storage device, according to one or more embodiments. - For clarity, identical reference numbers have been used, where applicable, to designate identical elements that are common between figures. It is contemplated that features of one embodiment may be incorporated in other embodiments without further recitation.
-
FIG. 1 is a schematic view of an exemplary hybrid disk drive (HDD) 100, according to one embodiment. For clarity,hybrid HDD 100 is illustrated without a top cover. Hybrid HDD 100 includes at least onestorage disk 110 that is rotated by aspindle motor 114 and includes a plurality of concentric data storage tracks.Spindle motor 114 is mounted on abase plate 116. Anactuator arm assembly 120 is also mounted onbase plate 116, and has aslider 121 mounted on aflexure arm 122 with a read/writehead 127 that reads data from and writes data to the data storage tracks.Flexure arm 122 is attached to anactuator arm 124 that rotates about abearing assembly 126.Voice coil motor 128 movesslider 121 relative tostorage disk 110, thereby positioning read/writehead 127 over the desired concentric data storage track disposed on thesurface 112 ofstorage disk 110.Spindle motor 114, read/writehead 127, andvoice coil motor 128 are controlled byelectronic circuits 130, which are mounted on a printedcircuit board 132.Electronic circuits 130 include a read/writechannel 137, a microprocessor-basedcontroller 133, random-access memory (RAM) 134 (which may be a dynamic RAM and is used as a data buffer), and aflash memory device 135 andflash manager device 136. In some embodiments, read/writechannel 137 and microprocessor-basedcontroller 133 are included in a single chip, such as a system-on-chip 131. In some embodiments,hybrid HDD 100 may further include a motor-driver chip 125, which accepts commands from microprocessor-basedcontroller 133 and drives bothspindle motor 114 andvoice coil motor 128. The read/writechannel 137 communicates with the read/writehead 127 via a preamplifier (not shown) that may be mounted on a flex-cable that is itself mounted on either thebase plate 116, or theactuator arm 120 or both. - For clarity,
hybrid HDD 100 is illustrated with asingle storage disk 110 and a singleactuator arm assembly 120.Hybrid HDD 100 may also include multiple storage disks and multiple actuator arm assemblies. In addition, each side ofstorage disk 110 may have an associated read/write head coupled to a flexure arm. - When data are transferred to or from
storage disk 110,actuator arm assembly 120 sweeps an arc between an inner diameter (ID) and an outer diameter (OD) ofstorage disk 110.Actuator arm assembly 120 accelerates in one angular direction when current is passed in one direction through the voice coil ofvoice coil motor 128 and accelerates in an opposite direction when the current is reversed, thereby allowing control of the position ofactuator arm assembly 120 and attached read/writehead 127 with respect tostorage disk 110.Voice coil motor 128 is coupled with a servo system known in the art that uses the positioning data read from servo wedges onstorage disk 110 by read/writehead 127 to determine the position of read/writehead 127 over a specific data storage track. The servo system determines an appropriate current to drive through the voice coil ofvoice coil motor 128, and drives said current using a current driver and associated circuitry. - Hybrid HDD 100 is configured as a hybrid HDD, in which nonvolatile data storage may be performed using
storage disk 110 and/orflash memory device 135. In a hybrid HDD, nonvolatile memory, such asflash memory device 135, supplements thespinning storage disk 110 to provide faster boot, hibernate, resume and other data read-write operations, as well as lower power consumption. Such a hybrid HDD configuration is particularly advantageous for battery-operated computer systems, such as mobile computers or other mobile computing devices. In a preferred embodiment,flash memory device 135 is a nonvolatile storage medium, such as a NAND flash chip, that can be electrically erased and reprogrammed, and is sized to supplementstorage disk 110 inhybrid HDD 100 as a nonvolatile storage medium. For example, in some embodiments,flash memory device 135 has data storage capacity that is orders of magnitude larger thanRAM 134, e.g., gigabytes (GB) vs. megabytes (MB). -
FIG. 2 illustrates an operational diagram ofhybrid HDD 100 with elements ofelectronic circuits 130 shown configured according to one embodiment. As shown,hybrid HDD 100 includesRAM 134,flash memory device 135, aflash manager device 136, system-on-chip 131, andstorage disk 110. Hybrid HDD 100 is connected to ahost 10, such as a host computer, via ahost interface 20, such as a serial advanced technology attachment (SATA) bus. - In the embodiment illustrated in
FIG. 2 ,flash manager device 136 controls interfacing offlash memory device 135 with a high-speed data path 138 and is connected toflash memory device 135 via aNAND interface bus 139. System-on-chip 131 includes microprocessor-basedcontroller 133 and other hardware (including read/write channel 137) for controlling operation ofhybrid HDD 100, and is connected toRAM 134 andflash manager device 136 via high-speed data path 138. Microprocessor-basedcontroller 133 is a control unit that may include one or more microcontrollers, such as ARM microprocessors, a hybrid HDD controller, and any control circuitry withinhybrid HDD 100. High-speed data path 138 is a high-speed bus known in the art, such as a double data rate (DDR) bus, a DDR2 bus, a DDR3 bus, or the like. In other embodiments,hybrid HDD 100 may be configured with different data interfaces and buses than those illustrated inFIG. 2 . - Flash
memory device 135 is configured to store flash-only data 201 andsecond copy data 202. Generally, flash-only data 201,second copy data 202, or any combination of each may be stored in a particular memory block offlash memory device 135. That is, specific memory blocks offlash memory device 135 are not dedicated to storing only flash-only data 201 while other memory blocks are dedicated to storing onlysecond copy data 202. Thus, flash-onlydata 201 andsecond copy data 202 may each be stored in non-contiguous memory blocks or other regions offlash memory device 135. - Flash-
only data 201 include data that are stored inflash memory device 135 and are not stored onstorage disk 110, such as data used to populate a write cache forhybrid HDD 100. As data associated with a write command (referred to herein as “write data”) are received byhybrid HDD 100, this write data may be written toflash memory device 135 into a so-called write cache rather than directly tostorage disk 110. The contents of the write cache may then be written to physical locations onstorage disk 110 that correspond to the logical block addresses (LBAs) referenced by the write command, either subsequent to and/or in parallel with receipt of other write data. In this way, write data can be stored in a nonvolatile storage medium ofhybrid HDD 100 much more quickly than when write data are received byhybrid HDD 100 and stored directly onstorage disk 110. For instance, the time to complete a write command for a page of write data may be on the order of a few hundred microseconds forflash memory device 135 and on the order of several milliseconds or more forstorage disk 110. - In some embodiments, flash-only
data 201 may include other data besides data associated with a write cache. For example, flash-onlydata 201 may include metadata or other data employed in the operation offlash memory device 135, such as program-erase counts for the memory blocks offlash memory device 135, or data associated with a logical-to-physical mapping function that maps cache entries in a read or write cache to physical addresses inflash memory device 135. The loss of such data can render some or all data stored inflash memory device 135 unusable or otherwise adversely affect the operation offlash memory device 135. -
Second copy data 202 include data that are stored inflash memory device 135 and are also stored onstorage disk 110. Thus,second copy data 202 are data for which a second copy exists onstorage disk 110. For example, in some embodiments,second copy data 202 may include data used to populate a read cache forhybrid HDD 100. A read cache includes data that have been requested previously byhost 10 and read from a slower permanent storage location, e.g.,storage disk 110. The read cache temporarily keeps a copy of such data in order to accelerate the fulfillment of future requests for that data. Therefore, by definition, the data in a read cache inflash memory device 135 is a second copy of data that are also stored onstorage disk 110. As such, there is another copy available inhybrid HDD 100 of any read cache data that may be lost due to poor data retention byflash memory drive 135, for example when hybrid HDD is stored for an extended period at an elevated temperature. - It is noted that the status of a particular set of data stored in hybrid HDD 100 (i.e., flash-only
data 201 vs. second copy data 202) is determined irrespective of the particular set of data being stored inRAM 134 or any other volatile medium. Thus, data may also be stored inRAM 134 during operation of hybrid HDD and still be considered to be flash-only data 201. In fact, data that are determined to be flash-onlydata 201 are typically also initially stored inRAM 134 for some time interval after being received byhybrid HDD 100. -
Storage disk 110 is configured with a user region 210 and a flush-cache region 220. User region 210 is configured to store conventional user data, such as write data fromhost 10 that are transmitted tohybrid HDD 100. Generally, each unit of such user data is associated with a unique LBA, and each LBA corresponds to a particular physical location (i.e., track and sector) ofstorage disk 110. User region 210 generally includes all usable portions ofstorage disk 110 except for flush-cache region 220, and makes up the vast majority of the storage capacity ofstorage disk 110. For example, user region 210 may include on the order of 100,000 data storage tracks or more, whereas flush-cache region 220 may include up to a few hundred data storage tracks. - Flush-cache region 220 may be configured to store at least one copy of flash-only
data 201. To that end, flush-cache region 220 includes a first storage region 221 and, in some embodiments, a second storage region 222. First storage region 221 and second storage region 222 each include sufficient data storage tracks to store a version of flash-onlydata 201 and associated metadata. Thus, first storage region 221 is sized to store flash-onlydata 201A andmetadata 251, and second storage region 222 is sized to store flash-only data 201B andmetadata 252. In the embodiment illustrated inFIG. 2 , flush-cache region 220 is located at the inner diameter ofstorage disk 110, but may be at any other technically feasible portion ofstorage disk 110. For example in some embodiments, flush-cache region 220 may be located at the outer diameter ofstorage disk 110, thereby allowing more data storage per rotation ofstorage disk 110. In yet other embodiments, flush-cache region 220 may be located in a central portion ofstorage disk 110 that is between the ID and OD ofstorage disk 110. In such embodiments, the average seek time associated with moving to flush-cache region 220 may be reduced. - Flash-
only data 201A is a previously written version of flash-onlydata 201 that may be considered obsolete once a more recent version of flash-onlydata 201 inflash memory device 135 has been updated with additional write data. Furthermore, flash-onlydata 201A is a sequential write of a previous version of flash-onlydata 201 in first storage region 221. Consequently, the write data included in flash-onlydata 201A are not stored in the physical locations that correspond to the LBAs associated with this write data. Instead, flash-only data 201A are stored as shown in first storage region 221, even though the physical locations where flash-onlydata 201A are nominally supposed to be written onstorage disk 110 are actually in user region 210. To enable subsequent writing of flash-onlydata 201A to the correct physical locations that correspond to these LBAs,metadata 251 includes metadata indicating these physical locations (e.g. tracks and sectors) onstorage disk 110. Alternatively or additionally,metadata 251 may include the LBAs associated with flash-onlydata 201A that correspond to these physical locations. Similarly, flash-only data 201B is a sequential write of a previous version of flash-onlydata 201 and is stored in second storage region 222, andmetadata 252 includes metadata indicating the physical locations onstorage disk 110 where flash-only data 201B are supposed to be written and/or the LBAs associated with flash-only data 201B that correspond to these physical locations. - In some embodiments, flush-cache region 220 is configured to store two or more copies of flash-only
data 201, so that the most recent version of flash-onlydata 201 can be written to alternate storage locations onstorage disk 110, i.e., first storage region 221 and second storage region 222. Thus, when a new copy of flash-onlydata 201 is written to flush-cache region 220 ofstorage disk 110, the oldest version of the two previous versions of flash-onlydata 201 is overwritten, while the most recent of the two previous version of flash-onlydata 201 remains intact. For example, when flash-only data 201B is an older version of flash-onlydata 201 than flash-only data 201A, the new version of flash-onlydata 201 being stored in flush-cache region 220 is written to second storage region 222. Consequently, if a serious fault occurs while the new version of flash-onlydata 201 is being written to flush-cache region 220, the most recent version of flash-onlydata 201 on storage disk 110 (in this case flash-only data 201A) is not corrupted, thereby reducing or minimizing data loss due to the fault. Instead, only the oldest version of flash-onlydata 201 stored onstorage disk 110, i.e., flash-only data 201B, is corrupted. In such embodiments, if a serious fault occurs while the new version of flash-onlydata 201 is being written to flush-cache region 220, such as an unexpected power loss, the most recent version of flash-onlydata 201 onstorage disk 110 remains intact. - It is noted that in the case of such a fault, the copy of flash-only
data 201 stored inflash memory 135 is very likely still available, unlesshybrid HDD 100 remains powered off for an extended period of time of sufficient duration or at a sufficiently elevated temperature to compromise data retention inflash memory device 135. Therefore, providedhybrid HDD 100 is powered up after the above-described fault prior to data loss occurring inflash memory device 135,hybrid HDD 100 can write the version of flash-onlydata 201 that is still inflash memory device 135 to flush-cache region 220. If for some reason flash-onlydata 201 inflash memory device 135 is not available,hybrid HDD 100 still has the most recent version of flash-onlydata 201 previously written tostorage disk 110, which in the above example is flash-onlydata 201A. - In operation, when
host 10 informshybrid HDD 100 that shut-down is imminent (for example via a STANDBY IMMEDIATE command), flash-onlydata 201 are written to flush-cache region 220 in anticipation ofhybrid HDD 100 being shut down. In this way, all data stored inflash memory device 135 are also stored in some location onstorage disk 110. Thus, ifflash memory device 135 fails to retain all data stored therein after being powered off, for example due to storage in a high temperature environment,hybrid HDD 100 still includes a copy of any data lost byflash memory device 135. - Generally, after receiving a STANDBY IMMEDIATE command or other command from
host 10 indicating shutdown,hybrid HDD 100 has a limited time to spin downstorage disk 110 and park read/write head 127. For example, after issuing a command tohybrid HDD 100,host 10 may crash, lock up, or otherwise fault if no response is received fromhybrid HDD 100 to the issued command after more than five seconds. Thus, in some embodiments, there is a target write time (e.g., five seconds) forhybrid HDD 100 to write flash-onlydata 201 to flush-cache region 220 after receiving any sort of shutdown command fromhost 10. In such embodiments, a maximum size of flush-cache region 220 and a maximum allowable size of flash-onlydata 201 may be based on the target write time, the rate at whichhybrid HDD 100 can store flash-only data 201 instorage disk 110, and other factors. In some embodiments, the target write time may be shorter than the maximum time allowed without causing a fault inhost 10. For example, the target write time may be selected based on what time is acceptable for a user to wait forhybrid HDD 100 to shut down, e.g. three seconds. - It is noted that the time required for
hybrid HDD 100 to write flash-onlydata 201 to their correct physical locations in user region 210, instead of to the flush-cache region 220, depends not only on the total amount of data included in flush-cache data 201, but also on how flash-onlydata 201 are organized and on the physical locations onstorage disk 110 that correspond to the LBAs associated with flash-onlydata 201. That is, the time required forhybrid HDD 100 to write flash-onlydata 201 to their correct physical locations in user region 210 is highly dependent on how randomly located flash-onlydata 201 is onstorage disk 110. To wit, when flash-onlydata 201 includes 300 megabytes (MB) of sequential data, which may be written tostorage disk 110 at about 100 MB per second,hybrid HDD 100 can write flash-onlydata 201 to their correct physical locations in user region 210 in about three seconds. By contrast, when flash-onlydata 201 includes 300 megabytes (MB) of 32 kilobyte (KB) randomly located blocks of data,hybrid HDD 100 may write flash-onlydata 201 to their correct physical locations in user region 210 in 45 seconds or more, which far exceeds any reasonable target write time. However, because flash-only data 201 (plus metadata 251) may be written as a sequential write in flush-cache region 220, flash-onlydata 201 may include a relatively large quantity of data (on the order of a few hundred MBs) and still be written completely within the target write time. - In some embodiments, flash-only
data 201 are written to flush-cache region 220 as one sequential write, and metadata associated therewith may be written as a second sequential write. For example, in response to a STANDBY-IMMEDIATE command fromhost 10, hybrid HDD writes flash-onlydata 201 as flash-onlydata 201A into a first group of contiguous data storage tracks of first storage region 221, and writesmetadata 251 in a second group of contiguous data storage tracks of first storage region 221. Alternatively, flash-onlydata 201A andmetadata 251 may be written into a single group of contiguous data storage tracks of first storage region 221 as a single sequential write. In either case, flash-onlydata 201 can include a relatively large quantity of data, since flash-onlydata 201 is not written tostorage disk 110 as a plurality of randomly located write commands in user region 220. -
FIG. 3 sets forth a flowchart of method steps for storing data in a data storage device, such ashybrid HDD 100, according to one or more embodiments. Although the method steps are described in conjunction withhybrid HDD 100 inFIGS. 1 and 2 , persons skilled in the art will understand that the method steps may be performed with other hybrid drives. The control algorithms for the method steps may reside in and/or be performed bycontroller 133,flash manager device 136, and/or any other suitable control circuit or system. - Generally,
hybrid HDD 100 is configured to operate with a particular target write time, such as three seconds, five seconds, etc. In addition, first storage region 221 and second storage region 222 are configured based on the particular target write time and the sequential write rate ofhybrid HDD 100, i.e., the rate at whichhybrid HDD 100 can write data tostorage disk 110 as a sequential write. For example, if data can be written sequentially tostorage disk 110 at a rate of approximately 100 MB per second and the target write time forhybrid HDD 100 is three seconds, then first storage region 221 and second storage region 222 may each be sized to store approximately 300 MB of data. In some embodiments, the quantity of flash-onlydata 201 stored inflash memory device 135 is constant and is based on the sequential write rate ofhybrid HDD 100 and the target write time. - As shown,
method 300 begins atstep 301, where microprocessor-basedcontroller 133 or other suitable control circuit or system receives a write command and data associated with the write command, i.e., write data, fromhost 10. The write command references a sequential group of LBAs, indicating thathost 10 requests that the data associated with these LBAs be stored inhybrid HDD 100. - In
step 302, microprocessor-basedcontroller 133 determines an estimated time to write for flash-onlydata 201 and the write data received instep 301 to be stored onstorage disk 110. The estimated time to write is based on the tangential and radial location onstorage disk 110 corresponding to each LBA associated with flash-onlydata 201 and on the relative position of these tangential and radial locations. Accurate determination of the estimated time to write is a compute-intensive task, and may be performed with write-reordering algorithms commonly employed by conventional HDDs and implemented in firmware. In some embodiments,step 302 is performed for each write command received byhybrid HDD 100. In other embodiments, to reduce the computational resources expended in determining the estimated time to write, step 302 may be performed either periodically, after a specific number of write commands have been received, or after a particular amount of write data have been received. - In
step 303, microprocessor-basedcontroller 133 determines whether the estimated write time determined instep 302 is less than the target write time forhybrid HDD 100. If no,method 300 proceeds to step 305. If yes,method 300 proceeds to step 304. Instep 304, microprocessor-basedcontroller 133 stores the write data associated with the write command in flash memory device 135 (NAND) andmethod 300 proceeds back tostep 301. Instep 305, microprocessor-basedcontroller 133 stores the write data received instep 301 in user region 210 ofstorage disk 110 in the physical locations that correspond to the LBAs associated with the write command. - Thus, when flash-only
data 201 and the write data received instep 301 can be stored tostorage disk 110 in less than the target write time, the write data are added to flash-onlydata 201 inflash memory device 135. By contrast, when microprocessor-basedcontroller 133 calculates that flash-onlydata 201 and the write data received instep 301 cannot be stored tostorage disk 110 in less than the target write time, the write data are written directly tostorage disk 110, even though adding this write data to the write cache inflash memory device 135 is a faster process. - In sum, in response to receiving a write command from
host 10, howhybrid HDD 100 stores data associated with the write command is based on an estimated write time for the combination of flash-onlydata 201 and write data associated with the write command to be stored onstorage disk 110. If flash-onlydata 201 and the write data can be stored onstorage disk 110 in less than a target write time,hybrid HDD 100 stores the write data associated with the new write command inflash memory device 135, thereby adding the write data to flash-only data 201. -
FIG. 4 sets forth a flowchart of method steps for flushing a write cache and related data in a data storage device when the data storage device, such ashybrid HDD 100, receives a shutdown command, according to one or more embodiments. Although the method steps are described in conjunction withhybrid HDD 100 inFIGS. 1 and 2 , persons skilled in the art will understand that the method steps may be performed with other hybrid drives. The control algorithms for the method steps may reside in and/or be performed bycontroller 133,flash manager device 136, and/or any other suitable control circuit or system. - As shown,
method 400 begins atstep 401, where microprocessor-basedcontroller 133 or other suitable control circuit or system receives a shutdown command from a host. For example, the shutdown command may be a STANDBY-IMMEDIATE, a STANDBY command, or equivalent. In some embodiments, a FLUSH-CACHE command may be received instep 401 rather than a shutdown command. - In
step 402, microprocessor-basedcontroller 133 determines whether an estimated write time for flash-onlydata 201 is less than a maximum write time forhybrid HDD 100. The maximum write time may be a maximum allowable time or any other predetermined target time forhybrid HDD 100 to store flash-onlydata 201 in user region 210 ofstorage disk 110. It is noted that storage of any data in user region 210 entails storage of the data in the physical locations in storage disk 110 (e.g., track and sector) that correspond to the LBAs associated with the data, and therefore is generally not a single sequential write, as occurs when flash-onlydata 201 are written to first storage region 221 or second storage region 222. The maximum write time may be significantly shorter than the target write time forhybrid HDD 100, for example on the order of one or two seconds. Step 402 is performed to determine whether flash-only data 201 can be stored in the appropriate locations in user region 210 upon shutdown, rather than being copied from flush-cache region 220 to user region 210 at a later time. If the estimated write time is less than the above-described maximum write time,method 400 proceeds to step 403. If the estimated write time is greater than the maximum write time,method 400 proceeds to step 404. - In
step 403, microprocessor-basedcontroller 133 causes flash-onlydata 201 to be stored in appropriate locations in user region 210. Thus, flash-onlydata 201 are written in the physical locations in user region 210 that correspond to the LBAs associated with flash-onlydata 201.Method 403 then proceeds to step 409. - In
step 404, microprocessor-basedcontroller 133 determines a total estimated time to write for storing a selected portion of flash-onlydata 201 in user region 210 ofstorage disk 110 and a remainder portion of flash-onlydata 201 in flush-cache region 220 ofstorage disk 110. The selected portion may include data in flash-onlydata 201 associated with write commands that exceed a minimum quantity of data, e.g., 1 MB, 2 MB, etc. For example, in some embodiments, the selected portion includes all write commands that exceed 2 MB, which are the write commands that can be most efficiently written tostorage disk 110. Alternatively or additionally, the selected portion may include write commands that correspond to locations onstorage disk 110 that are proximate each other, e.g., on the same track or adjacent tracks. The remainder portion of flash-onlydata 201 includes all of flash-onlydata 201 except the above-described selected portion. The total estimated time to write is the time required forhybrid HDD 100 to store the selected portion of flash-onlydata 201 in user region 210 and remainder portion of flash-onlydata 201 in flush-cache region 220. Because in some embodiments the selected portion of flash-onlydata 201 includes data that can be written to storage disk relatively quickly, the total estimated write time may be a relatively short time interval that is less than the target write time forhybrid HDD 100, for example one or two seconds. - In
step 405, microprocessor-basedcontroller 133 determines whether the total estimated time to write is less than a maximum write time forhybrid HDD 100. The maximum write time may be equal to or less than the target write time forhybrid HDD 100. If the total estimated time to write is less than the maximum write time,method 400 proceeds to step 406. If the total estimated time to write is greater than the maximum write time,method 400 proceeds to step 408. - In
step 406, microprocessor-basedcontroller 133 causes the above-described selected portion of flash-onlydata 201 to be stored in user region 210 ofstorage disk 110. Thus, the selected portion of flash-onlydata 201 is written in the physical locations in user region 210 that correspond to the LBAs associated with the selected portion of flash-onlydata 201. - In
step 407, microprocessor-basedcontroller 133 causes the above-described remainder portion of flash-onlydata 201 to be stored in flush-cache region 220 in a single sequential write operation. The remainder portion of flash-onlydata 201 includes all data in flash-onlydata 201 that are not included in the selected portion of flash-onlydata 201. Typically, the remainder portion of flash-onlydata 201 includes data associated with smaller write commands and write commands that are more randomly located onstorage disk 110. Because the remainder portion of flash-onlydata 201 are written as a single sequential write, the fact that these data are associated with LBAs that are located randomly acrossstorage disk 110 has little effect on how quicklyhybrid HDD 100 completesstep 407. Instep 407, metadata associated with flash-onlydata 201 are stored in flush-cache region 220.Method 400 proceeds to step 409. - In
step 408, which is performed when the total estimated time to write is determined to be greater than the maximum write time, flash-onlydata 201 are stored in flush-cache region 220 ofstorage disk 110. In addition, metadata associated with flash-onlydata 201 are stored in flush-cache region 220. In embodiments in which flush-cache region 220 includes two or more storage regions, e.g., first storage region 221 and second storage region 222, flash-onlydata 201 and the associated metadata are stored in the storage region that includes the oldest previously written version of flash-onlydata 201. Step 408 is completed in less than the target write time forhybrid HDD 100, because the size of flash-onlydata 201 is controlled, inmethod 300, so that all of flash-onlydata 201 can be written in flush-cache region 220 in less than the target write time.Method 400 proceeds to step 409. - In
step 409, microprocessor-basedcontroller 133 parks read/write head 127, spins downstorage disk 110, and sends an acknowledgment to host 10 that the shutdown is complete, all prior to expiration of the target write time. - In some embodiments, a total quantity of flash-only
data 201 is limited during operation so that most or all of flash-onlydata 201 can be stored to the correct respective physical locations in user region 210 when a shutdown command is received fromhost 10. For example, the total quantity of flash-onlydata 201 may be limited to a few hundred MBs, a quantity of data that can usually be written tostorage disk 110 in less than a typical target write time. One such embodiment is illustrated inFIG. 5 . -
FIG. 5 sets forth a flowchart of method steps for storing data in a data storage device, such ashybrid HDD 100, according to one or more embodiments. Although the method steps are described in conjunction withhybrid HDD 100 inFIGS. 1 and 2 , persons skilled in the art will understand that the method steps may be performed with other hybrid drives. The control algorithms for the method steps may reside in and/or be performed bycontroller 133,flash manager device 136, and/or any other suitable control circuit or system. - As shown,
method 500 begins atstep 501, where microprocessor-basedcontroller 133 or other suitable control circuit or system receives a write command and data associated with the write command, i.e., write data, fromhost 10. The write command references a sequential group of LBAs, indicating thathost 10 requests that the data associated with these LBAs be stored inhybrid HDD 100. Instep 502, microprocessor-basedcontroller 133 determines a quantity of provisional flash-only data, where provisional flash-only data include the combination of the current flash-onlydata 201 and the write data received instep 501. Instep 503, microprocessor-basedcontroller 133 determines whether the quantity of provisional flash-only data determined instep 502 is less than a target quantity of data, for example 300 MBs. If no,method 500 proceeds to step 505. If yes,method 500 proceeds to step 504. Instep 504, microprocessor-basedcontroller 133 stores the write data associated with the write command in flash memory device 135 (NAND) andmethod 500 proceeds back tostep 501. Instep 505, microprocessor-basedcontroller 133 stores the write data received instep 501 in user region 210 ofstorage disk 110 in the physical locations that correspond to the LBAs associated with the write command. Thus, inmethod 500, the total quantity of flash-onlydata 201 is not increased with the addition of the write data associated with a write command when such an increase causes the quantity of flash-onlydata 201 to exceed a particular target quantity of data. In this way, the quantity of data that may not be written tostorage disk 110 in the event of a STANDBY-IMMEDIATE command is reduced or eliminated. - In
step 510, microprocessor-basedcontroller 133 receives a shutdown command fromhost 10. For example, the shutdown command may be a STANDBY-IMMEDIATE, a STANDBY command, or equivalent. In some embodiments, a FLUSH-CACHE command may be received instep 510 rather than a shutdown command. Instep 511, microprocessor-basedcontroller 133 causes a portion of flash-onlydata 201 to be written tostorage disk 110. In some embodiments, the portion may be a specific quantity of data, for example 1 MB. Instep 512, microprocessor-basedcontroller 133 determines if a target time forhybrid HDD 100 has been exceeded. If no,method 500 proceeds back to step 511; if yes,method 500 proceeds to step 513. Instep 513, microprocessor-basedcontroller 133 halts the writing of flash-only data tostorage disk 110, since continuing to write flash-onlydata 201 tostorage disk 110 after the target time has been exceeded can cause a fault to occur inhost 10. Thus, in some situations, a remainder portion of flash-onlydata 201 may not be written tostorage disk 110 beforehybrid HDD 100 shuts down. - In sum, embodiments described herein provide systems and methods for storing data in a hybrid HDD that includes a magnetic storage medium and a nonvolatile solid-state device. The hybrid HDD limits the amount of flash-only data that the hybrid HDD stores, thereby ensuring that all such flash-only data can be copied to the magnetic storage device within a specified time in response to a shutdown command from a host. Consequently, the hybrid HDD can employ the nonvolatile solid-state device as a write cache without relying on the nonvolatile solid-state device for storing the only copy of write data after shutdown.
- While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/673,763 US9459802B1 (en) | 2015-03-30 | 2015-03-30 | Hybrid-HDD that limits dirty data in NAND |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/673,763 US9459802B1 (en) | 2015-03-30 | 2015-03-30 | Hybrid-HDD that limits dirty data in NAND |
Publications (2)
Publication Number | Publication Date |
---|---|
US9459802B1 US9459802B1 (en) | 2016-10-04 |
US20160291888A1 true US20160291888A1 (en) | 2016-10-06 |
Family
ID=56995113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/673,763 Active 2035-04-02 US9459802B1 (en) | 2015-03-30 | 2015-03-30 | Hybrid-HDD that limits dirty data in NAND |
Country Status (1)
Country | Link |
---|---|
US (1) | US9459802B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190294356A1 (en) * | 2018-03-21 | 2019-09-26 | Micron Technology, Inc. | Hybrid memory system |
US10705963B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10809942B2 (en) * | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11287986B2 (en) * | 2018-12-31 | 2022-03-29 | Micron Technology, Inc. | Reset interception to avoid data loss in storage device resets |
US10629238B1 (en) * | 2019-03-01 | 2020-04-21 | Seagate Technology Llc | Managing storage device media data rates |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009075759A (en) | 2007-09-19 | 2009-04-09 | Hitachi Ltd | Storage device, and method for managing data in storage device |
US9223642B2 (en) | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
KR101465099B1 (en) | 2008-09-11 | 2014-11-25 | 시게이트 테크놀로지 엘엘씨 | A hybrid hard disk drive for reading files having specified conditions rapidly, and a control method adapted to the same, a recording medium adapted to the same |
US8578100B1 (en) | 2010-11-08 | 2013-11-05 | Western Digital Technologies, Inc. | Disk drive flushing write data in response to computed flush time |
WO2014061064A1 (en) * | 2012-10-18 | 2014-04-24 | Hitachi, Ltd. | Cache control apparatus and cache control method |
US9304930B2 (en) * | 2014-03-21 | 2016-04-05 | Seagate Technology Llc | HDD write buffer zone for vibration condition |
US9633233B2 (en) * | 2014-05-07 | 2017-04-25 | Sandisk Technologies Llc | Method and computing device for encrypting data stored in swap memory |
-
2015
- 2015-03-30 US US14/673,763 patent/US9459802B1/en active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190294356A1 (en) * | 2018-03-21 | 2019-09-26 | Micron Technology, Inc. | Hybrid memory system |
US10705963B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10809942B2 (en) * | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US11327892B2 (en) | 2018-03-21 | 2022-05-10 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US11340808B2 (en) | 2018-03-21 | 2022-05-24 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
Also Published As
Publication number | Publication date |
---|---|
US9459802B1 (en) | 2016-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9804784B2 (en) | Low-overhead storage of a hibernation file in a hybrid disk drive | |
US10776153B2 (en) | Information processing device and system capable of preventing loss of user data | |
US20140237164A1 (en) | Hybrid drive that implements a deferred trim list | |
US9923562B1 (en) | Data storage device state detection on power loss | |
US7411757B2 (en) | Disk drive with nonvolatile memory having multiple modes of operation | |
US9396755B2 (en) | Temperature-defined data-storage policy for a hybrid disk drive | |
US8554983B2 (en) | Devices and methods for operating a solid state drive | |
US9483203B2 (en) | Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation | |
US9703699B2 (en) | Hybrid-HDD policy for what host-R/W data goes into NAND | |
US9459802B1 (en) | Hybrid-HDD that limits dirty data in NAND | |
US20100293337A1 (en) | Systems and methods of tiered caching | |
US10140067B1 (en) | Data management for data storage device with multiple types of non-volatile memory media | |
US9536619B2 (en) | Hybrid-HDD with improved data retention | |
US10802739B1 (en) | Data storage device configuration for accessing data in physical realms | |
US9965181B2 (en) | Hybrid-HDD with multiple caching modes | |
US20150277764A1 (en) | Multi-mode nand-caching policy for hybrid-hdd | |
US8982499B1 (en) | Timing of power state change in a disk drive based on disk access history | |
US9940051B2 (en) | Power state change in disk drive based on disk access history | |
US9323467B2 (en) | Data storage device startup | |
US9870281B1 (en) | Power loss mitigation for data storage device | |
JP2014170523A (en) | System and method to fetch data during reading period in data storage unit | |
US9785563B1 (en) | Read command processing for data storage system based on previous writes | |
US9530436B1 (en) | Methods and systems for providing data security in data storage devices | |
US9123382B1 (en) | Non-volatile caching for sequence of data | |
JP2014164792A (en) | Data storage device and data storage method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TOSHIBA AMERICA ELECTRONIC COMPONENTS, INC., CALIF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BUDIMAN, MINE WONKYUNG;EHRLICH, RICHARD M.;SIGNING DATES FROM 20150204 TO 20150224;REEL/FRAME:035530/0871 Owner name: KABUSHIKI KAISHA TOSHIBA, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TOSHIBA AMERICA ELECTRONIC COMPONENTS, INC.;REEL/FRAME:035530/0868 Effective date: 20150225 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |