This application claims the benefits, under 35 U.S.C §119, of Korean Patent Application No. 10-2010-0058196 filed Jun. 18, 2010, the entirety of which is incorporated by reference herein.
1. Field of the Invention
Exemplary embodiments relate to data storage devices, and more particularly, relate to a system and method to compress data prior to storing it in 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 a 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 high density and low cost memories are often used. For example, other memory systems include magnetic disk storage systems. In the case of magnetic disk storage systems, generally, access times are in the order of tens of milliseconds, which is relatively slow. On the other hand, in case of main memory that are comprised of semiconductor devices, the access times are in the order of hundreds of nanoseconds, which is significantly faster than the access times for magnetic disk storage systems. Disk storage is typically 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”, which is 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 synchronous dynamic RAM (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 type of SSD uses volatile memory, it typically incorporates an 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 the SDRAM to a backup disk. Upon the restoration of power, data is copied back from the backup disk to the SDRAM 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 in replacement of a hard disk drive.
Because SSD memory is very fast, its use is generally preferred over that of hard disk drives. Since it is also very costly, its use has been limited. A system and method to increase storage capacity of SSD memory would make it less costly to use SSD memory because less memory would have to be purchased.
The present general inventive concept provides a data storage device which comprises a storage media; and a controller to compress raw data to be stored in the storage media, wherein the controller adds header information to the compressed data.
The foregoing and/or other features and utilities of the present general inventive concept may be achieved by providing a write method of a data storage device including a storage media; and a controller to control the storage media. The write method comprises configuring raw data to be stored in the storage media to logical units; compressing raw data of the logical units, respectively; adding header information to compressed data of each of the logical units; and continuously storing the compressed data of the respective logical units each having the header information in physical units of the storage media.
The above and other features and utilities of the present general inventive concept will become apparent and more readily appreciated from the following description of the embodiments with reference to the following figures, wherein like reference numerals refer to like parts throughout the various figures unless otherwise specified, and wherein
These and/or other aspects and advantages of the present general inventive concept will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:
The 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, 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.
Referring to
The controller 2000 is configured to control the storage media 1000 in response to external requests. The controller 2000 is configured to compress data from an external device and to store the compressed data in the storage media 1000. The data compressing method and system according to an exemplary embodiment enables the storage media 1000 to be used with greater efficiency. For example, the storage media 1000 can store a larger amount of data, with compression as discussed herein, without increasing cost. Further, with the data compressing system and method according to an exemplary embodiment, the amount of data that is required to be transferred between the storage media 1000 and the controller 2000 can be reduced, thereby reducing a transfer time taken to transfer data between the storage media 1000 and the controller 2000.
Referring to
The first interface 2100 is configured to interface with an external device (or, 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 the FTL executed by the CPU 2300) and is configured to compress data in the buffer 2400. The compressed data is stored in the storage media 1000 via the second interface 2200. The compressed data can be stored temporarily within the compression block 2500 or within the buffer 2400. The compression block 2500 operates responsive to the control of the CPU 2300 (or, the control of the FTL executed by the CPU 2300) and is configured to decompress data read out from the storage media 1000.
Referring to
Upon receipt of a write request of an external device (for example, a host) by controller 2000, in operation S100, uncompressed/raw data is provided to a data storage device from the external device. The uncompressed/raw data provided to the data storage device is stored in a buffer 2400 via the first interface 2100 under the control of CPU 2300. In operation S110, the uncompressed/raw data stored in the buffer 2400 is divided into a plurality of logical units LU under the control of the CPU 2300 (or, the control of FTL firmware executed by the CPU 2300). For purposes of illustration only, in
In operation S120, each of the logical units LU1˜LU4 of the uncompressed/raw data are compressed by the compression block 2500, respectively. To compressed data CD1, as illustrated in
In operation S130, each compressed data CD including the header information SRD is configured to physical units PU under the control of the CPU 2300 (or, FTL firmware executed by the CPU 2300). For example, as illustrated in the physical layer portion of
Merely for the purpose of convenience, an example has been shown and described with respect to
According to an exemplary embodiment of the present general inventive concept, header information SRD may be formed of a bit string of a pattern that is not included in the compressed data. For example, the header information SRD may be generated using the Huffman algorithm such that it is formed of a bit string of a pattern that is not included in compressed data. Addition of the header information SRD is made by the compression block 2500 or by the CPU 2300. The header information SRD can be formed to include additional information together with information (or mark) indicative of a start of compressed data. For example, the additional information may include information indicating the order of logical units constituting uncompressed data, a length of compressed data, among other information.
According to an exemplary embodiment of the present general inventive concept, a logical unit LU is the same as or smaller in size than a physical unit PU. Further, it is possible to change the size of a physical unit PU. For example, the size of a physical unit can be set to be the same as a sector, a page, a block, a super-block, or the like, according to whatever constraints might be available in the non-volatile memory as used in the storage media 1000. If a non-volatile memory has an M-plane array structure (M being an integer equal to or greater than 2), a super-block can be formed of M memory blocks each in M planes in the same row.
The write method of
A write operation of a data storage device according to another exemplary embodiment of the inventive concept, for example, includes an update operation to data stored in a storage media 1000, that is, compressed data. For example, it is assumed that an update operation to data (for example, CD1) stored in the storage media 1000 is requested from an external device (that is, host). Raw data to be updated may be stored in a buffer 2400 via the first interface 2100. Then, in operation S200, a read operation occurs with respect to a physical unit PU1 that includes data CD1 that is to be updated. According to the read result, both compressed data CD1 and CD2_1 of logical units LU1 and LU2 are read out from the physical unit PU1. The read data CD1 and CD2_1 is temporarily stored in the buffer 2400 through the second interface 2200. Because an update operation has been requested only for compressed data CD1 that corresponds to a logical unit LU1, the partial data CD2_1 of compressed data CD2 that corresponds to a logical unit LU2 is only read out. That is, no read operation is carried out with respect to the remaining data CD2_2 of the compressed data CD2 corresponding to the logical unit LU2.
In operation S210, a compression block 2500 decompresses compressed data CD1 based on header information SRD and footer information ERD, and the appropriate part of the decompressed data is revised with the new data such that CD1 is now updated. In operation S220, the compression block 2500 compresses updated data CD1, and the compressed data CD1′ is configured to one or more physical unit(s) together with the compressed data CD2_1. As above described, header information SRD and/or footer information ERD may be added to the compressed data CD1′ of the logical unit LU1. The compressed data CD1′ and CD2_1 configured to one or more physical units may be stored in one or more new physical units of the storage media 1000. For example, the compressed data CD1′ and CD2_1 can be stored in two physical units. Alternatively, the compressed data CD1′ and CD2_1 can be stored in one physical unit. The former case corresponds to the situation in which the amount of compressed data CD1′ increases. This case is shown in
According to a further exemplary embodiment, as illustrated in
A write operation of a data storage device according to another embodiment of the present general inventive concept, for example, can include an update operation to the data stored in a storage media 1000, that is, compressed data. For example, presume that an update operation is requested from an external device (that is, a host) not to just a portion or part of some data (for example, compressed data CD1) stored in the storage media 1000, but to all of the compressed data CD1. Raw data to be updated is stored in a buffer 2400 through the first interface 2100. In operation S300, there is carried out a read operation with respect to a physical unit PU1 including data CD1 to be updated. As a read result, compressed data CD2_1 of a logical unit LU2 in the physical unit PU1 is read out. Since an update operation to all of compressed data CD1 is requested, compressed data CD1 is not read out from the physical unit PU1.
In operation S310, a compression block 2500 compresses new data of the logical unit LU1. That is, all of the original CD1 data is to be disregarded and replaced by an entire new data CD1 that corresponds to logical unit LU1. As described above, header information SRD and/footer information ERD may be added to compressed new data CD1′ of the logical unit LU1. In operation S320, the compressed new data CD1′ may be configured to one or more physical units together with the compressed data CD2_1. The compressed new data CD1′ and compressed data CD2_1 is configured to one or more physical units and may be stored in the storage media 1000. For example, the compressed new data CD1′ and compressed data CD2_1 can be stored in two physical units. Alternatively, the compressed new data CD1′ and compressed data CD2_1 can be stored in one physical unit. The former case is the situation in which the amount of compressed new data CD1′ increases as marked by 1000C in
In an exemplary embodiment, as illustrated in
Referring to
The processing unit 2501 configures header information SRD based on the detected pattern number from the comparator 2505 and adds the header information SRD to compressed data CD stored in the second buffer 2504. The header information SRD may include information (bit pattern) indicative of a start of compressed data, information indicative of a detected pattern number, the order that a logical unit of compressed data belongs to raw data, among other types of information. Furthermore, information indicative of the detected pattern number can also be used to detect an end of compressed data, upon reading of compressed data from a physical unit. The processing unit 2501 is configured to add footer information ERD to compressed data CD together with the header information SRD. The footer information ERD is used to detect an end of compressed data, upon reading of compressed data from a physical unit. If the footer information ERD is added, the comparator 2505 detects the number of patterns being identical to the footer information ERD and adds the detected pattern number to the header information SRD.
In an exemplary embodiment, the processing unit 2501 is independent from CPU 2300 described in
Referring to
The compression block 2500B illustrated in
A data storage device according to an exemplary embodiment of the inventive concept may be a solid state drive SSD. A block diagram showing a storage apparatus 4010 using an SSD 4000 as a data storage device is illustrated in
An SSD 4000 according to an exemplary embodiment of the inventive concept can be used as a storage for use with a controller, computer, and server, among other types of processing devices. As illustrated in
Referring to
Referring to
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 can include LZ77&LZ78, LZW, Entropy encoding, Huffman coding, Adaptive Huffman coding, Arithmetic coding, DEFLATE, JPEG, among other types of compression algorithms.
In an exemplary embodiment, the 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 can include 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, among other bus types. 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, RapidIO, FCIP, among other bus standard types. 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, I2C, SPI, EIA/RS-485, USB, Camera Link, External PCIe, Light Peak, Multidrop Bus, among other iFCPPeripheral bus standard types.
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 general inventive concept have been shown and described, it will 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 appended claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
10-2010-0058196 | Jun 2010 | KR | national |