This application claims the benefits under 35 U.S.C. §119 of Korean Patent Application No. 10-2011-0087610 filed Aug. 31, 2011, the subject matter of which is hereby incorporated by reference.
The inventive concept relates generally to storage systems, and more particularly, to storage systems including a Hard Disk Drive (HDD) and a nonvolatile memory device.
HDDs have been widely used as bulk data storage devices. The typical HDD accesses data (i.e., reads data from a track or stores data according to a track on a magnetic disk) by moving an arm having an attached read/write head over the magnetic disk as it spins on a rotary spindle. Thus, writing data to and reading data from the HDD necessitates one or more mechanical operations, such as moving the arm and rotating the disk. As a result of these constituent mechanical operations, the HDD is characterized by relatively high power consumption and relatively slow data access speeds.
In contrast, the so-called Solid State Disk (SSD) requires no mechanical operations, but is a storage device implemented using nonvolatile memory device(s). Many contemporary SSDs transfer data in parallel via a plurality of channels, each channel being capable of independent operation. Each channel may configured for operation with multiple memory banks, and the data throughput of the SSD may be thus increased. Because the SSD does not perform a mechanical operation like the HDD, it is comparatively characterized by relatively less power consumption, greater data access speeds and less electrical noise.
Hybrid HDD storage systems provide many of the operational and functional benefits of the HDD and SSD. In general approach, hybrid HDD storage systems use a SSD as a cache device for a HDD. The management of cache data in relation to the SSD may be managed in various methods. For example, cache data may be managed using a cache algorithm, by copying data at a high read frequency for each data block of the SSD during a defined period, and/or in relation to a particular attribute of the data being stored. By effectively managing the cache-transfer of data from the SSD to the HDD, the size and complexity of the SSD may be minimized.
One aspect of embodiments of the inventive concept is directed to provide a system comprising a storage device including a first storage device including a hard disk drive (HDD), and a second storage device including a nonvolatile memory configured as cache device for the first storage device, and a host comprising a virtual system memory, and being configured to control data access operations for the storage device using a hybrid cache management operation that manages data shifts for data stored between the first storage device and the second storage device using the virtual system memory.
Another aspect of embodiments of the inventive concept is directed to provide a storage system comprising; a hard disk drive (HDD), a nonvolatile memory (NVM) used as a cache device for the HDD, and a host configured to generate a virtual block device driver controlling operation of a HDD driver and a NVM device driver, the host using a hybrid cache data management operation as defined by the virtual block device driver.
Another aspect of embodiments of the inventive concept is directed to provide a method managing data storage in a system comprising a host and a storage device including hard disk drive (HDD) and a nonvolatile memory (NVM) used as a cache device for the HDD. The method comprises; generating a virtual block device driver in the host that controls operation of a HDD driver and a NVM device driver resident in the host, and using a hybrid cache data management operation controlled by the virtual block device driver to manage a data shift between the HDD and the NVM using a virtual system memory.
The above and other objects and features will become apparent from the following description with reference to the following figures, wherein like reference numerals refer to like parts throughout the various figures unless otherwise specified, and wherein
Certain embodiments of the inventive concept will now be described in some additional detail with reference to the accompanying drawings. This inventive concept may, however, be embodied in many different forms and should not be construed as being limited to only the illustrated embodiments. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art. Throughout the written description and drawings, like reference numbers and labels are used to denote like or similar elements and features.
It will be understood that, although the terms first, second, third etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer or section from another region, layer or section. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the inventive concept.
Spatially relative terms, such as “beneath”, “below”, “lower”, “under”, “above”, “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if the device in the figures is turned over, elements described as “below” or “beneath” or “under” other elements or features would then be oriented “above” the other elements or features. Thus, the exemplary terms “below” and “under” can encompass both an orientation of above and below. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly. In addition, it will also be understood that when a layer is referred to as being “between” two layers, it can be the only layer between the two layers, or one or more intervening layers may also be present.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the inventive concept. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
It will be understood that when an element or layer is referred to as being “on”, “connected to”, “coupled to”, or “adjacent to” another element or layer, it can be directly on, connected, coupled, or adjacent to the other element or layer, or intervening elements or layers may be present. In contrast, when an element is referred to as being “directly on,” “directly connected to”, “directly coupled to”, or “immediately adjacent to” another element or layer, there are no intervening elements or layers present.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this inventive concept belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
Figure (FIG.) 1 is a block diagram illustrating a storage system according to an embodiment of the inventive concept. Referring to
The host 1100 may communicate with the storage device 1200 using USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI), etc. In certain embodiments, one interface for the storage device 1200 may perform a disk emulation function which enables the host 1100 to essentially recognize for purposes of data transfer the second storage device 1200 as the HDD.
The host 1100 illustrated in
The system memory 1120 operates under the control of the processor 1110, and may be used as one or more of a working memory, buffer memory, cache memory, etc. Further, the system memory 1120 may be used as a drive memory in conjunction with the operation of the first and second storage devices 1210 and 1220.
In a case where the system memory 1120 is used as a work memory, data processed by the processor 1110 may be temporarily stored in the system memory 1120. If the system memory 1120 is used as a buffer memory, it may be used to buffer data being transferred between the storage device 1200 and host 1100. As a cache memory, the system memory 1120 may enable operation of the low-speed storage device 1200 to operate at relatively higher speed. In the event that the system memory 1120 is used as a drive memory, it may be used in conjunction with the block device driver 1140.
The hybrid data cache manager 1130 may be used to manage a first device driver (not shown) controlling the first storage device 1210 (HDD) and a second device driver (not shown) controlling the second storage device 1220 SSD).
The block device driver 1140 may be commonly used to drive the first and second storage devices 1210 and 1220. As described above, the block device driver 1140 may operate in conjunction with the system memory 1120 under the control of the hybrid data cache manager 1130.
Upon initialization (or “booting”) of the storage system 1000 including the first storage device (HDD) 1210, the requisite “boot time” required to load data to the system memory 1120 may be unacceptably long. Further, the first storage device 1210 may only stably receive or transfer data once the rotational speed of the magnetic disk reaches a given level (e.g., 6000 rpm). Accordingly, the first storage device 1210 may necessitate a considerable period of time before data may be accessed (read and/or written) to the constituent magnetic disk. Further, the first storage device 1210 consumes a great quantity of power while performing the necessary mechanical operations such as arm shifting and disk rotation.
To compensate for the above-described drawbacks of the first storage device 1210, the storage system 1000 of
In contrast to the first storage device 1210, the boot time and/or the read time for the second storage device 1220 is relatively short. Further, data access operations for the second storage device 1220 do not necessitate one or more mechanical operation(s), power consumption is considerably less.
Further, in the event that the system memory 1120 for the host 1100 is used as a “host cache memory”, the second storage device 1220 may be used as a “first storage device (or HDD) cache memory”. Thus, the storage system 1000 of
The storage system software 2000 may be configured to manage cache data using the virtual block device driver 2200 (/dev/hybrid) and/or oen or more block device driver(s) 2300. In the illustrated embodiment of
The file system 2100 is assumed to run on the virtual block device driver 2100, and may include (e.g.,) such conventionally understood components as Ext3/4, ReiserFS, NTFS, etc.
In case of the storage system software 2000 of
In
The first access pattern information list may be managed by the system memory 1120. In contrast, a “second access pattern information list” associated with the second storage device (SSD) 1220 may be stored at location “R2”. here again, the configuration of the second access pattern information list may be made on the system memory 1120. Possible data configuration for the second storage device (SSD) 1220 will be more fully described with reference to
Data read from the second storage device 1220 may be stored using the virtual system memory. If a reference count for accessed data exceeds a threshold, it may be moved to a Most Recently Used (MRU) portion of the virtual memory system. This may mean that data is stored in the second storage device 1220.
If the reference count remains less than a defined threshold, hot read data may be stored in the second storage device 1220. If the threshold is relatively high, frequently read data having a given pattern may be stored in the second storage device 1220. Accordingly, as the threshold is raised, more frequently read data may be shifted. Accordingly, an operating performance of the second storage device 1220 may be improved.
If there is no available space in the second storage device 1220, a victim block from among an existing plurality of data blocks may be selected using the second access pattern information list. The victim block may be selected using a variety of factors and considerations. For example, a data block having a reference count of 0 may be selected from a Least Recently Used (LRU) portion of the virtual memory system.
Continuing with
Thus, a system according to embodiments of the inventive concept and comprising a storage device and connected host may use a hybrid cache management method that is essentially capable of adjusting a data read frequency by varying the storage assignment for incoming data as between a HDD and SSD of the storage device using a virtual system memory.
A storage system according to embodiments of the inventive concept may be incorporated into various products, such as electronic devices including personal computers, digital cameras, camcorders, handheld phones, MP3 players, PMPs, PSPs, PDAs, etc.
The host 3100 may write data in the memory card 3200 and read data from the memory card 3200. The host controller 3110 may send a command (e.g., a write command), a clock signal CLK generated from a clock generator (not shown) in the host 3100, and data to the memory card 3200 via the host connection unit 3120. The DRAM 3130 may be a main memory of the host 3100.
The memory card 3200 may include a card connection unit 3210, a card controller 3220, and a flash memory 3230. The card controller 3220 may store data in the flash memory 3230 in response to a command input via the card connection unit 3210. The data may be stored in synchronization with a clock signal generated from a clock generator (not shown) in the card controller 3220. The flash memory 3230 may store data transferred from the host 3100. For example, in a case where the host 3100 is a digital camera, the flash memory 3230 may store image data.
The hard disk driver 3300 may be an embedded HDD included in the host 3100 or an external HDD connected with the host 3100. The memory card system 3000 according to the inventive concept may be a hybrid storage system which uses the first storage device (HDD) 3300 as a main storage device and the second storage device (a memory card) 3300 as a cache device.
As described above, embodiments of the inventive concept may use a hybrid cache management method that is capable of adjusting a data read frequency, which is used to decide a shift into a second storage device (memory card) using a virtual system memory, and a reception adaptable to a workload pattern variation level via a threshold.
The host 4100 may write data in the HDD 4110 or the SSD 4200 or read data from the HDD 4110 or the SSD 4200. The host controller 4120 may transfer signals SGL such as a command, an address, a control signal, etc. to the SSD 4200 via the host interface 4111. The DRAM 4130 may be a main memory of the host 4100.
The SSD 4200 may exchange signals SGL with the host 4100 via the host interface 4211 and may be supplied with a power via a power connector 4221. The SSD 4200 may include a plurality of nonvolatile memories 4201 to 420n, an SSD controller 4210, and an auxiliary power supply 4220. Herein, the nonvolatile memories 4201 to 420n may be implemented using (e.g.,) flash memory, PRAM, MRAM, ReRAM, etc.
The plurality of nonvolatile memories 4201 to 420n may be used as a storage medium of the SSD 4200. The plurality of nonvolatile memories 4201 to 420n may be connected with the SSD controller 4210 via a plurality of channels CH1 to CHn. One channel may be connected with one or more nonvolatile memories. Nonvolatile memories connected with one channel may be connected with the same data bus.
The SSD controller 4210 may exchange signals SGL with the host 4100 via the host interface 4211. Herein, the signals SGL may include a command, an address, data, and the like. The SSD controller 4210 may be configured to write or read out data to or from a corresponding nonvolatile memory according to a command of the host 4100.
The auxiliary power supply 4220 may be connected with the host 4100 via the power connector 4221. The auxiliary power supply 4220 may be charged by a power PWR from the host 4100. The auxiliary power supply 4220 may be placed within the SSD 4200 or outside the SSD 4200. For example, the auxiliary power supply 4220 may be put on a main board to supply an auxiliary power to the SSD 4200.
The SSD system 4000 according to the inventive concept may be a hybrid storage system which uses the first storage device (HDD) 4110 as a main storage device and the second storage device (SSD) 4200 as a cache device.
The inventive concept may use a hybrid cache management method which is capable of adjusting a data read frequency, which is used to decide a shift into a second storage device SSD using a virtual system memory, and a reception adaptable to a workload pattern variation level via a threshold.
Referring to
The electronic device 5000 according to the inventive concept may be a hybrid storage system which uses the first storage device (HDD) 5250 as a main storage device and the second storage device (a memory system) 5100 as a cache device.
The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all modifications, enhancements, and other embodiments that fall within the scope of the inventive concept as defined by the attaché claims. Thus, to the maximum extent allowed by law, the scope is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.
Number | Date | Country | Kind |
---|---|---|---|
10-2011-0087610 | Aug 2011 | KR | national |