This application claims the benefit to priority, under 35 U.S.0 §119, of Korean Patent Application No. 10-2010-0032804 filed Apr. 9, 2010, the entirety of which is incorporated by reference herein.
1. Field of the Invention
The present general inventive concept relates to electronic devices, and more particularly, the present general inventive concept relates to a data storage device.
2. Description of the Related Art
As it is known in the art, computer systems generally use several types of memory systems. For example, computer systems generally use so called main memory comprised of semiconductor devices typically having the attribute that the devices can be randomly written to and read from with comparable and very fast access times and thus are commonly referred to as random access memories (RAM). However, since semiconductor memories are relatively expensive, other higher density and lower cost memories are often used. For example, other memory systems include magnetic disk storage systems. In case of magnetic disk storage systems, generally, access times are in the order of tens of milliseconds. On the other hand, in case of main memory, the access times are in the order of hundreds of nanoseconds. Disk storage is used to store large quantities of data which can be sequentially read into main memory as needed. Another type of disk-like storage is solid state disk storage (SSD, also called solid state drive). SSD is a data storage device that uses memory chips, such as SDRAM, to store data, instead of the spinning platters found in conventional hard disk drives.
The term “SSD” is used for two different kinds of products. The first type of SSD, based on fast, volatile memory such as SDRAM, is categorized by extremely fast data access and is used primarily to accelerate applications that are held back by the latency of disk drives. Since this SSD uses volatile memory, it typically incorporates internal battery and backup disk systems to ensure data persistence. If power is lost for whatever reason, the battery keeps the unit powered long enough to copy all data from RAM to backup disk. Upon the restoration of power, data is copied back from backup disk to RAM and the SSD resumes normal operation. The first type of SSD is especially useful on a computer which is already has the maximum amount of RAM. The second type of SSD uses flash memory to store data and is generally used as a replacement of a hard disk drive.
The present general inventive concept is directed to methods and apparatuses to store data in a storage media by compressing data according to physical space in the storage media, and maintaining an update region in the compressed data.
Additional aspects and utilities of the present general inventive concept will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the present general inventive concept.
Utilities of the present general inventive concept may be realized by a method of storing data in a storage media, the method including compressing raw data based on a physical storage unit of the storage media, and storing the compressed data in the storage media, wherein the physical storage unit of the storage media storing the compressed data includes an update region.
Utilities of the present general inventive concept may also be realized by a data storage device including a storage media, and a controller configured to compress data to be stored in the storage media by a compression unit. The controller may control the compression unit so that an update region exists within a physical storage unit of the storage media in which the compressed data is stored.
Utilities of the present general inventive concept may also be realized by a system which includes a plurality of solid state drives, wherein each of the solid state drives comprises a storage media, and a controller configured to compress data to be stored in the storage media by a compression unit, the controller controlling the compression unit so that an update region exists within a physical storage unit of the storage media in which the compressed data is stored.
Features and/or utilities of the present general inventive concept may also be realized by a method of storing data including detecting a predetermined storage unit of a data storage device, the predetermined storage unit being a segment of data storage of a predetermined size of the data storage device, determining a compression unit, the compression unit being a predetermined size of compressed data, and adjusting a size of the compression unit according to a reference condition including a size of the predetermined storage unit of the data storage device.
The reference condition may include a determination whether the compression unit corresponds to a predetermined percentage of the predetermined storage unit less than 100%.
The reference condition may include a determination whether the predetermined storage unit is of a sufficient size to include an update region having a predetermined size in addition to the compression unit.
The method may further include receiving streamed data, compressing the streamed data in increments of the compression unit, and storing the compression units of compressed data in respective predetermined storage units of the data storage device such that each of the predetermined units may include an update region to receive additional data.
The method may further include, after storing the compressed data in the predetermined storage units, receiving an update request to store additional data in at least one predetermined storage unit including the compressed data, determining whether a size of update data to be stored in the at least one predetermined storage unit in an update operation is equal to or less than a size of the update region of the at least one predetermined storage unit, and storing the update data in the update region of the at least one predetermined storage unit when it is determined that the size of the update data to be stored in the at least one predetermined storage unit is equal to or less than the size of the update region of the at least one predetermined storage unit.
The method may further include storing the compressed data of the at least one predetermined storage unit and the update data in at least a plurality of predetermined storage units having a storage capacity greater than the at least one predetermined storage unit when it is determined that the size of the update data to be stored in the at least one predetermined storage unit is greater than the update region of the at least one predetermined storage unit.
Features and/or utilities of the present general inventive concept may also be realized by a data storage unit including a data storage device to store data in increments of predetermined storage units, a compression device to receive data and to compress the data in increments of compression units, and a CPU to control the compression device to adjust a size of the compression units based on at least one reference condition including a size of the predetermined storage units.
The reference condition may include a determination whether the predetermined storage unit is of a sufficient size to include an update region having a predetermined size in addition to the compression unit.
The CPU may control the compression device to compress streamed data in increments of the compression unit and to transmit the compressed data to the data storage device, and the data storage device may store the compressed data in units of compression units in respective predetermined storage units.
The CPU may receive an update request to store additional data in at least one predetermined storage unit including the compressed data, the CPU may determine whether a size of update data to be stored in the at least one predetermined storage unit in an update operation is equal to or less than a size of the update region of the at least one predetermined storage unit, and the data storage device may store the update data in the update region of the at least one predetermined storage unit when it is determined that the size of the update data to be stored in the at least one predetermined storage unit is equal to or less than the size of the update region of the at least one predetermined storage unit.
The data storage device may store the compressed data of the at least one predetermined storage unit and the update data in at least a plurality of predetermined storage units having a storage capacity greater than the at least one predetermined storage unit when it is determined that the size of the update data to be stored in the at least one predetermined storage unit is greater than the update region of the at least one predetermined storage unit.
The above and other objects and features of the present general inventive concept 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:
The present general inventive concept is described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the inventive concept are shown. This inventive concept may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. 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. In the drawings, the size and relative sizes of layers and regions may be exaggerated for clarity. Like numbers refer to like elements throughout.
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, operations, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, operations, 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.
Referring to
In an exemplary embodiment, the controller 2000 is configured to adjust a compression unit (or, a division unit) of data provided from an external. Herein, the compression unit may correspond to a physical storage unit LWU of the storage media 1000. In particular, the compression unit may be determined such that after compressed data is stored, a free/remaining space (or, an update space) exists at a physical storage unit LWU of the storage media 1000. The compression rate of compressed data may be different according to characteristics of raw data (or, stream data) provided from an external device. For this reason, the compression unit may be controlled variably to provide a physical storage unit LWU of the storage media 1000 with a free/remaining space (or, an update space). The free/remaining/update space may be used to update data in a corresponding physical storage unit. This enables unnecessary operations (for example, generation of unused blocks, a merge operation, etc.) due to update request to be prevented.
In an exemplary embodiment, the physical storage unit of the storage media 1000 may be set to a block unit, a super-block unit, or the like of a non-volatile memory which is applied to the storage media 1000. In the event that a non-volatile memory has an M-plane array structure (M being an integer of 2 or more), the super-block is formed of N memory blocks in each of M planes and in the same row. N may be an integer less than M, and N may be greater than 1. Further, the physical storage unit (or, a compression/division unit) may be formed of a plurality of blocks in the same plane.
Referring to
The first interface 2100 is configured to interface with an external device (e.g., a host). The second interface 2200 is configured to interface with a storage media 1000 illustrated in
The buffer 2400 is used to temporarily store data transferred from an external device via the first interface 2100. The buffer 2400 is used to temporarily store data transferred from the storage media 1000 via the second interface 2200. The compression block 2500 operates responsive to the control of the CPU 2300 (or, the control of MTL executed by the CPU 2300) and is configured to compress data sequentially provided from the buffer 2400 by a division unit. Each of compressed data is stored in the storage media 1000 via the second interface 2200. The compression block 2500 is configured to compress data, transferred by a compression unit, in whole or in a page unit. Further, the compression block 2500 operates responsive to the control of the CPU 2300 (or, the control of MTL executed by the CPU 2300) and is configured to decompress data read out from the storage media 1000.
In an exemplary embodiment, a compression function of the compression block 2500 may be made optionally/selectively. In this case, stream data is stored in the storage media 1000 via the buffer 2400 without data compression. For example, a determination as to whether the compression block 2500 is turned ON or OFF may be made according to received stream data. If multimedia data being compressed data is provided to a data storage device or if a relatively large amount of energy is consumed during data compression due to a remarkably small size of data, the compression block 3500 may be set to an OFF state. The compression block 2500 may be turned ON or OFF by hardware (for example, a physical register) or by a software setting. Unlike the above description, externally provided data is able to be stored directly in the storage media 1000 via the first and second interfaces 2100 and 2200 without passing through the buffer 2400.
In operation S100, stream data externally provided upon write request is stored in a buffer 2400 via a first interface 2100 under the control of CPU 2300. In operation S110, the stream data stored in the buffer 2400 is compressed by the compression block 2500 before being stored in a storage media 1000. The stream data may be compressed in predetermined increments that may be referred to as “compression units” or “division units.” For example, the stream data in the buffer 2400 may be divided into a plurality of sub-groups and each sub-group may be the size of the predetermined division unit or compression unit. Data of each sub-group may be compressed by the compression block 2500.
In operation S120, the CPU 2300, or a Memory Translation Layer (MTL) executed by the CPU 2300, judges whether a size of the compressed data (CD) satisfies a reference condition. The reference condition may be determined according to a physical storage unit LWU of a storage media 1000. For example, the reference condition may include determining whether, after compressed data CD is stored in a physical storage unit LWU of the storage media 1000, the physical storage unit LWU has a free/update/remaining space. Alternatively, the reference condition may include determining whether a size of compressed data is identical to or less than (physical storage-a) (for example, 70% to 80% of the physical data storage). If a size of the compressed data (CD) is judged not to satisfy a reference condition, the procedure goes to operation S130, in which the size of the compression unit is adjusted. This may be accomplished according to the control of the MTL or the compression block 2500. For example, if it is determined that the compressed data CD is too large, so that there would not be sufficient space in a physical storage unit in which the compression data CD is stored to include an update space, then the size of the compression unit may be decreased. Afterwards, the procedure goes to the operation S110. The operations S110 to S130 are repeated until a size of the compressed data (CD) satisfies the reference condition.
Returning to operation S120, if a size of the compressed data (CD) is judged to satisfy the reference condition, the procedure goes to operation S140, in which compressed data is stored in the storage media 1000. Afterwards, the procedure is ended.
Determining that a size of the compressed data (CD) satisfies a reference condition means that a physical storage unit LWU has a free/update/remaining space after compressed data is stored therein. The free/update/remaining space is used when a request is received to update data stored in a physical storage unit LWU. An update may be made to store data in the update region when a size of the update data is within a range that does not exceed a size of the update region of the physical storage unit LWU. If the amount of data to be updated exceeds a size of the update region, data stored in an update-requested physical storage unit and data to be updated may be stored in a new storage region.
As understood from the above description, it is possible to prevent unnecessary operations (e.g., generation of unused blocks, a merge operation, etc.) when an update request is received by controlling a size of a compression unit such that an update/free/remaining space exists in a physical storage unit that includes the compressed data.
Referring to
In an exemplary embodiment, a part of functions (for example, a function of determining a division size) of the MTL may be made at a host level. In this case, information indicating a division size (or, a compression size) is provided to a data storage device together with stream data, and the data storage device performs a compression function according to the externally provided information (that is, a division size). Alternatively, it is possible to transfer data to the data storage device based on a division size (or, a compression size) determined at a host level.
In an exemplary embodiment, a physical storage unit LWU is formed of a writable unit WU or a plurality of writable units. For example, the physical storage unit LWU may be set to a block, a super-block, M blocks (M being 2 or more integer), or M super-blocks. The writable unit WU indicates a unit by which memory cells are programmed at the same time. The writable unit WU, for example, includes a word, a page, a plurality of sectors, etc.
Referring to
Later, if another update operation is requested to increase the size of the first compressed data, or to add additional data to the first compressed data, it may be determined whether the size of data to be added to the first compressed data is less than or equal to the update region 1010 of the physical storage LWU corresponding to the first and second blocks of the first compressed data.
When the size of update data is less than or equal to the update regions 1010 of the first and second blocks, then the update data may be added to the compressed data of the first and second blocks without re-arranging the compressed data of the first and second blocks. In other words, the data to be added to the compressed data may be stored in a free/update/remaining space 1010 of the block 2 or the blocks 1 and 2, as illustrated in
On the other hand, as illustrated in
Referring to
In an exemplary embodiment, a data storage device is configured such that the compression block 3500 may be turned ON and OFF as needed. For example, the ON/OFF state of the compression block 3500 may be set according to a received stream data. If multimedia data being compressed data is provided to a data storage device, or if a relatively large amount of energy is consumed upon data compression due to a small size of data being compressed, then the compression block 3500 may be set to an OFF state. When the compression block 3500 is disabled, data is transferred to a storage media 1000 via the buffer 3400. Alternatively, externally provided data may be stored directly in the storage media 1000 via the first and second interfaces 3100 and 3200. The ON/OFF state of the compression block 3500 may be set with hardware (for example, a physical register) or via software, such as code stored in memory and executed by a processor. Stream data provided via the first interface 3100 is able to be stored in both the buffer 3400 and a buffer of the compression block 3500. Either one of data in the buffer 3400 and data compressed by the compression block 3500 may be stored in the storage media 1000 according to whether a compression function is activated or inactivated.
First of all, referring to
With the above-described system, the host 1 sends data compressed by the compression block 2A to the data storage device 1, and the transferred data is stored in the storage media 1000 via the buffer 3400. In the event that data is transferred to the host 2 from the data storage device 1, compression of data read out from a storage media 1000 is released by a compression block 3500 of the data storage device 1, and decompressed data is sent to the host 2. The same compression algorithm may be applied to the compression blocks 2A and 3500.
On the other hand, as illustrated in
Referring to
An SSD 4000 according to an exemplary embodiment of the inventive concept is used to configure a storage. As illustrated in
Referring to
In the event that a solid state drive including a data storage device according to exemplary embodiments of the present general inventive concept is applied to a storage unit, as illustrated in
In case of a CAD file server which compresses large files and stores compressed data, processes of decompressing a file, updating the decompressed file, and re-compressing the updated file are needed to update only a part of the compressed file. In this case, such processes act as large burden to the CAD file server. For example, decompression, update, and re-compression for a 10 GB file burden a system when updating several kilo bytes of data among the 10 GB data. In case of exemplary embodiments of the present general inventive concept, it is easy to update less information at a server managing large files by controlling a compression unit such that an update region exists at each physical storage unit.
In an exemplary embodiment, a compression block 2500 of a controller 2000 may include one of the following compression algorithms or a combination of two or more compression algorithm. Compression algorithms may includes LZ77&LZ78, LZW, Entropy encoding, Huffman coding, Adpative Huffman coding, Arithmetic coding, DEFLATE, JPEG, etc.
In an exemplary embodiment, a first interface 2100 of a controller 2000 may be formed of one of computer bus standards, storage bus standards, and iFCPPeripheral bus standards, or a combination of two or more standards. The computer bus standards may includes S-100 bus, Mbus, Smbus, Q-Bus, ISA, Zorro II, Zorro III, CAMAC, FASTBUS, LPC, EISA, VME, VXI, NuBus, TURBOchannel, MCA, Sbus, VLB, PCI, PXI, HP GSC bus, CoreConnect, InfiniBand, UPA, PCI-X, AGP, PCIe, Intel QuickPath Interconnect, Hyper Transport, etc. The storage bus standards may include ST-506, ESDI, SMD, Parallel ATA, DMA, SSA, HIPPI, USB MSC, FireWire(1394), Serial ATA, eSATA, SCSI, Parallel SCSI, Serial Attached SCSI, Fibre Channel, iSCSI, SAS, RapidlO, FCIP, etc. The iFCPPeripheral bus standards may include Apple Desktop Bus, HIL, MIDI, Multibus, RS-232, DMX512-A, EIA/RS-422, IEEE-1284, UNI/O, 1-Wire, 12C, SPI, EIA/RS-485, USB, Camera Link, External PCIe, Light Peak, Multidrop Bus, etc.
The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the true spirit and scope. 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.
Although a few embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the general inventive concept, the scope of which is defined in the claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
10-2010-0032804 | Apr 2010 | KR | national |