DATA STORAGE DEVICE AND OPERATING METHOD THEREOF

A data storage device includes a nonvolatile memory device; and a controller configured to generate a read command based on information on a memory region of the nonvolatile memory device corresponding to a read request and at least one memory region of the nonvolatile memory device corresponding to at least one stand-by read request, wherein the nonvolatile memory device simultaneously reads data stored in the memory region and data stored in the at least one memory region, in response to the read command.

CROSS-REFERENCES TO RELATED APPLICATION

The present application claims priority under 35 U.S.C. §119(a) to Korean application number 10-2016-0073725, filed on Jun. 14, 2016, in the Korean Intellectual Property Office, which is incorporated herein by reference in its entirety.

BACKGROUND

1. Technical Field

Various embodiments generally relate to a data storage device and, more particularly, to a data storage device including a nonvolatile memory device.

2. Related Art

Data storage devices store data provided by an external device response to a write request. Data storage devices also provide stored data to an external device in response to a read request. Examples of external devices that use data storage devices include computers, digital cameras, cellular phones and the like. Data storage devices may be embedded in an external device during manufacturing of the external devices or may be fabricated separately and then connected afterwards to an external device.

SUMMARY

In an embodiment, a data storage device may include: a nonvolatile memory device; and a controller configured to generate a read command based on information on a memory region of the nonvolatile memory device corresponding to a read request and at least one memory region of the nonvolatile memory device corresponding to at least one stand-by read request, wherein the nonvolatile memory device simultaneously reads data stored in the memory region and data stored in the at least one memory region, in response to the read command.

In an embodiment, a data storage device may include: a nonvolatile memory device; and a controller configured to determine, based on information on a memory region of the nonvolatile memory device corresponding to a read request and at least one memory region of the nonvolatile memory device corresponding to at least one stand-by read request among a plurality of stand-by read requests, whether the read request is possible to be linked with the at least one stand-by read request, and cause the read request to stand by when the read request is not possible to be linked with the at least one stand-by read request.

In an embodiment, a method for operating a data storage device may include: determining, based on information on a memory region corresponding to a read request and at least one memory region corresponding to at least one stand-by read request, whether the read request is possible to be linked with the at least one stand-by read request; and causing the read request to stand by, when the read request is not possible to be linked with the at least one stand-by read request.

DETAILED DESCRIPTION

Hereinafter, a data storage device and an operating method thereof according to the present invention will be described with reference to the accompanying drawings through exemplary embodiments of the present invention. The present invention may, however, be embodied in different forms and should not be construed being limited to the embodiments set forth herein. Rather, these embodiments are provided to describe the present invention in detail to the extent that a person skilled in the art to which the invention pertains can enforce the technical concepts of the present invention.

It is to be understood that embodiments of the present invention are not limited to the particulars shown in the drawings, that the drawings are not necessarily to scale, and, in some instances, proportions may have been exaggerated in order to more clearly depict certain features of the invention. While particular terminology is used, it is to be appreciated that the terminology used is for describing particular embodiments only and is not intended to limit the scope of the present invention. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present invention. As used herein, singular forms are intended to include the plural forms as well, unless the context dearly indicates otherwise. It will be further understood that the terms “comprises”, “comprising”, “includes”, and “including” when used in this specification, specify the presence of the stated elements and do not preclude the presence or addition of one or more other elements. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.

It is also noted, that in some instances, as would be apparent to those skilled in the relevant art, an element (also referred to as a feature) described in connection with one embodiment may be used singly or in combination with other elements of another embodiment, unless specifically indicated otherwise.

FIG. 1is a block diagram illustrating a data storage device10, in accordance with an embodiment of the present invention.

The data storage device10may be configured to store data la provided from an external device (not shown), in response to a write request from the external device. Also, the data storage device10may be configured to provide stored data to the external device, in response to a read request from the external device,

The data storage device10may be implemented in the form of a Personal Computer Memory Card International Association (PCMIA) card, a Compact Flash (CF) card, a smart media card, a memory stick, various multimedia cards (e.g., MMC, eMMC, RS-MMC, and MMC-Micro), various secure digital cards (e,g,, SD, Mini-SD, and Micro-SD), a Universal Flash Storage (UFS), a Solid State Drive (SSD) and the like.

The data storage device10may include a controller100and a nonvolatile memory device200.

The controller100may control the operations of the data storage device10. For example, the controller100may store data in the nonvolatile memory device200, read data from the nonvolatile memory device200and output the read data to the external device, according to respective program and read requests received from the external device.

The controller100may include a request generation unit110, a link unit120, and a command generation unit130.

The request generation unit110may generate a read request to read data from the nonvolatile memory device200. The request generation unit110may generate a read request for each of various reasons. For example, the request generation unit110may generate read requests to read data requested from the external device, to read data necessary for the operation of the controller100and to manage data stored in the nonvolatile memory device200. The read request may be generated by specifying the position of a memory region where a read operation is to be performed, in the nonvolatile memory device200.

The link unit120may selectively link read requests generated by the request generation unit110. For example, the link unit120may determine, based on a memory region corresponding to a read request and memory regions corresponding to one or more read requests waiting to be executed (also referred to hereinafter as stand-by read requests), whether the read request is possible to be linked with the stand-by read requests. When the read request is possible to be linked with the stand-by read requests, the link unit120may link the read request with the stand-by read requests. The link unit120may determine whether it is possible to perform linking, by determining whether the memory region corresponding to the read request and the memory regions corresponding to the stand-by read requests are possible to be read simultaneously. When a read request is not possible to be linked with at least one stand-by read request, the link unit120may delay execution of the read request and cause the read request to become a stand-by read request.

The command generation unit130may generate a read command based on a plurality of read requests linked by the link unit120, and transmit the generated read command to the nonvolatile memory device200.

That is to say, while the command generation unit130may transmit different read commands from respective read requests to the nonvolatile memory device200, so that the nonvolatile memory device200performs read operations a multitude of times, the command generation unit130may generate one read command for a plurality of linked read requests and transmit the generated read command to the nonvolatile memory device200so that the nonvolatile memory device200reads simultaneously, through one read operation, data corresponding to the plurality of linked read requests. The term “link” means to correlate read requests so as to simultaneously read memory regions corresponding to the respective read requests.

Therefore, according to the present embodiment, since read operations which are otherwise to be performed a multitude of times are incorporated into one read operation, the operating speed of the data storage device10may be increased, and power consumption of the data storage device10may be reduced.

According to an embodiment, when it is determined that the number of read requests to be linked is insufficient even though it is determined that the read requests are possible to be linked, the link unit120may cause the read requests to stand by. For example, the link unit120may determine, based on a maximum number of memory regions capable of being read simultaneously, whether the number of read requests which are currently possible to be linked is sufficient.

The nonvolatile memory device200may store data received from the controller100, and may read stored data and transmit the, read data to the controller100, according to control of the controller100.

The nonvolatile memory device200may include any one of a flash memory, such as a NAND flash or a NOR flash, a Ferroelectrics Random Access Memory (FeRAM), a Phase-Change Random Access Memory (PCRAM), a Magnetoresistive Random Access Memory (MRAM), a Resistive Random Access Memory (ReRAM), and the like.

While it is illustrated inFIG. 1that the data storage device10includes only one nonvolatile memory device200, it is to be noted that the embodiment is not limited thereto.

The nonvolatile memory device200may include a control unit210, a data input/output unit220, and a data storage unit230.

The control unit210may control the operations of the nonvolatile memory device200according to control of the controller100ofFIG. 1. The control unit210may read data from a memory region of the data storage unit230in response to a read command received from the controller100, and transmit the read data to the controller100.

The data input/output unit220may transmit/receive data between the control unit210and the data storage unit230. The la data input/output unit220may include a plurality of buffers BF0to BF3respectively corresponding to a plurality of planes PN0to PN3.

The data storage unit230may include the planes PN0to PN3. Each of the planes PN0to PN3may include a plurality of memory blocks BK0to BKn. Each of the memory blocks BK0to BKn may include a plurality of memory regions MR0to mRk. A memory region may be a memory unit by which data is read to a corresponding buffer. For example, the data stored in a selected memory region201among the plurality of memory regions MR0to MRk may be simultaneously read to the corresponding buffer BF0.

While it is illustrated inFIG. 2Athat the data storage unit230includes four planes PN0to PN3, it is to be noted that the embodiment is not limited thereto.

FIG. 28is a diagram illustrating a case where the nonvolatile memory device200performs a read operation simultaneously for the planes PN0to PN3.

Referring toFIG. 2B, the nonvolatile memory device200may perform a read operation simultaneously for the planes PN0to PN3. The nonvolatile memory device200may read the data stored in selected memory regions202of the planes PN0to PN3, to the respective buffers BF0to BF3due to the structural characteristic thereof. For example, the selected memory regions202may be memory regions which correspond to the same block address and the same row address in the respective planes PN0to PN3. For example, the selected memory regions202may be memory regions which may be simultaneously accessed through a common word line.

Referring again toFIG. 1, when memory regions corresponding to a plurality of read requests may be read multaneously as shown inFIG. 2B, the link unit120may link the read requests. As a result, one read command may be generated from the linked read requests, and the memory regions respectively corresponding to the read requests may be read simultaneously as shown inFIG. 2B, through the one read command. The link unit120may determine whether memory regions are possible to be simultaneously read, based on one or more among chip addresses, plane addresses, block addresses and row addresses of the memory regions.

While it is illustrated inFIG. 2Bthat a read operation is possibly to be performed simultaneously for all of the four planes PN0to PN3, it is to be noted that a read operation may be performed simultaneously for only some of the planes PN0to PN3.

FIG. 2Cis a diagram illustrates a case where read requests may not be linked.

Referring toFIG. 2C, selected memory regions203to206may not correspond to the same block address and the same row address in the respective planes PN0to PN3. The selected memory regions203to206may not be coupled to a common word line. In this case, the nonvolatile memory device200may not read simultaneously the selected memory regions203to206, due to the structural characteristic thereof.

Referring again toFIG. 1, when memory regions corresponding to read requests may not be read simultaneously as shown inFIG. 2C, the link unit120may not link the read requests and cause the read requests to stand by, i.e. delay their executions A stand-by read request may be processed by being linked with new read requests within a predetermined standby time, or may be processed solely without being linked with any read request, when the predetermined standby time passes.

FIG. 3is a diagram illustrating an example of a read request RQ generated by the request generation unit110shown inFIG. 1.

Referring toFIG. 3, the request generation unit110may generate, when it is necessary to read data from the nonvolatile memory device200, the read request RQ which includes a position information401on a memory region where the data is stored. The link unit120may determine whether it is possible to link read requests, by referring to the position information401included in the read request RQ.

According to an embodiment, the request generation unit110may set a link flag402by sorting a read request RQ which should be quickly processed, according to the attribute of the read request RQ. For example, the attribute of the read request RQ may be associated with the use of data to be read. That is, the attribute of the read request RQ may be associated with whether the data is to be transmitted to the external device or the data is to manage the nonvolatile memory device200. Otherwise, the attribute of the read request RQ may be associated with the priority of the, read request RQ.

In detail, when the read request RQ should be immediately processed by skipping the determination of the link unit120the request generation unit110may disable the link flag402. For example, the request generation unit110may set the link flag402to “0.” When processing of the read request RQ may be delayed more or less and read requests which are possible to be linked are to be generated successively, the request generation unit110may enable the link flag402. For example, the request generation unit110may set the link flag402to “1.” Therefore, the link unit120may determine whether the read request RQ is possible to be linked, when the link flag402is set to “1.” When the link flag402is set to “0,” the link unit120may control the command generation unit130such that the read request RQ may be processed immediately without being determined in terms of whether it is possible to be linked.

FIG. 4is a flow chart illustrating a method for operating the data storage device10ofFIG. 1.

Hereinbelow, the method for operating the data storage device10will be described in detail with reference toFIGS. 1 to 4.

At step S110, the request generation unit110may generate a read request to read data from the nonvolatile memory device200. The request generation unit110may generate the read request which includes a position information401on a memory region where the data to be read is stored. The request generation unit110may set a link flag402according to the attribute of the read request.

At step S120, the link unit120may determine whether the link flag402is enabled in the read request generated by the request generation unit110. When the link flag402is enabled, the process may proceed to step S130. When the link flag402is disabled, the process may proceed to step S180.

At step S180, when the link flag402is disabled (the step S120, No), the command generation unit130may generate a read command based on only the current read request. Namely, the determination of the link unit120as to whether the read request is possible to be linked may be skipped.

At step S130, when the link flag402is enabled (the step S120, Yes), the link unit120may determine, based on information on the memory region corresponding to the read request and one or more memory regions corresponding to one or more stand-by read requests, whether the read request is possible to be linked with at least one of the stand-by read requests. The link unit120may determine whether it is possible to link the read request with at least one of the stand-by read requests, by determining whether the memory region corresponding to the read request and a memory region corresponding to the at least one stand-by read request may be read simultaneously. For example, as stated memory regions that are accessible by the same word line may be accessed simultaneously. When the read request is possible to be linked with at least one stand-by read request, the link unit120may link the read request with the at least one stand-by read request. When the read request is possible to be linked with at least one stand-by read request (S130, Yes), the process proceeds to step S140. When the read request is not possible to be linked with at least one stand-by read request (S130, No), the process proceeds to step S150.

At the step S140, the link unit120may determine whether the number of read requests which are possible to be linked is sufficient. For example, the link unit120may determine whether the number of read requests which are possible to be linked is four, based on the number of the planes PN0to PN3ofFIG. 2A. When the number of read requests is sufficient (S140, Yes), the process may proceed to step S170. When the number of read requests is not sufficient (S140, No), the process may proceed to the step S150.

At the step S150, the link unit120may cause the read request to stand by. While the read request is put in stand-by, i.e., a mode in which the read request waits to be executed, read requests which are subsequently generated may be determined as to whether they are possible to be linked with the standby read request and may be linked with the stand-by read request, based on the process shown inFIG. 4.

At step S160, the link unit120may determine whether a wait time of the read request (also referred to as a standby time) exceeds a threshold time. When the standby time exceeds the threshold time (S160, Yes), the process may proceed to the step S170. When the standby time does not exceed the threshold time (S160No the process may remain at the step S160.

At step S170, the command generation unit130may generate a read command based on the linked read requests. If a read request is not linked with any read request while it is in stand-by mode, the command generation unit130may generate a read command based on only the read request.

At step S190, the command generation unit130may transmit the read command to the nonvolatile memory device200. Accordingly, when a read command is generated from the linked read requests, the nonvolatile memory device200may read data simultaneously from memory regions corresponding to the linked read requests.

FIG. 5is a block diagram illustrating a solid state drive (SSD)1000in accordance with an embodiment of the present invention.

The SSD1000may include a controller1100and a storage medium1200.

The controller1100may control data exchange between a host device1500and the storage medium1200. The controller1100may include a processor1110, a random access memory (RAM)1120, a read only memory (ROM)1130, an error correction code (ECC) unit1140, a host interface1150, and a storage medium interface1160.

A controller1100may operate substantially similarly to the controller100shown inFIG. 1. The controller1100may determine, based on a memory region of a nonvolatile memory device corresponding to a read request and memory regions of the nonvolatile memory device corresponding to one or more stand-by read requests, whether the read request is possible to be linked with at least one of the stand-by read requests. When the read request is possible to be linked with at least one stand-by read request, the controller1100may generate a read command based on the read request and the linked at least one stand-by read request. When the read request is not possible to be linked with at least one stand-by read request, the controller1100may cause the read request to stand by.

The processor1110may control the operations of the controller1100. For example, the processor1110may store data in the storage medium1200and read stored data from the storage medium1200, according to data processing requests from the host device1500. To efficiently manage the storage medium1200, the processor1110may control the internal operations of the SSD1000such as a merge operation, a wear leveling operation, and so forth.

The RAM1120may store programs and program data to be used by the processor1110. The RAM1120may temporarily store data received from the host interface1150before transferring it to the storage medium1200, and may temporarily store data received from the storage medium1200before transferring it to the host device1500.

The ROM1130may store program codes to be read by the processor1110. The program codes may include commands to be processed by the processor1110, for the processor1110to control the internal units of the controller1100.

The ECC unit1140may encode data to be stored in the storage medium1200, and may decode data read from the storage medium1200. The ECC unit1140may detect and correct an error occurred in data, according to an FCC algorithm.

The host interface1150may exchange data processing requests, data, etc. with the host device1500.

The storage medium interface1160may transmit control signals and data to the storage medium1200. The storage medium interface1160may receive data from the storage medium1200. The storage medium interface1160may be coupled with the storage medium1200through a plurality of channels CH0to CHn.

The storage medium1200may include a plurality of nonvolatile memory devices NVM0to NVMn. Each of the plurality of nonvolatile memory devices NVM0to NVMn may perform an operation, for example, a write operation and a read operation according to control of the controller1100.

FIG. 6is a block diagram illustrating a data processing system2000to which a data storage device in accordance with an embodiment is applied.

The data processing system2000may include a computer, a laptop, a netbook, a smart phone, a digital television (TV), a digital camera, a navigator, etc. The data processing system2000may include a main processor2100, a main memory device2200, a data storage device2300, and an input/output device2400. The internal units of the data processing system2000may exchange data, control signals etc. through a system bus2500.

The main processor2100may control general operations of the data processing system2000. The main processor2100may be a central processing unit such as a microprocessor. The main processor2100may execute a software such as an operation system, an application, a device driver, and so forth, on the main memory device2200.

The main memory device2200may store programs and program data to be used by the main processor2100. The main memory device2200may temporarily store data to be transmitted to the data storage device2300and the input/output device2400.

The data storage device2300may include a controller2310and a storage medium2320. The data storage device2300may be configured and operate in a manner substantially similar to the data storage device10shown inFIG. 1.

The input/output device2400may include a keyboard, a scanner, a touch screen, a screen monitor, a printer, a mouse, or the like, capable of exchanging data with a user, such as receiving a command from the user for controlling the data processing system2000or providing a processed result to the user.

According to an embodiment, the data processing system2000may communicate with at least one server2700through a network2600such as a local area network (LAN), a wide area network (WAN), a wireless network, and so on. The data processing system2000may include, a network interface (not shown) to access the network2600. While various embodiments have been described above, it will be understood to those skilled in the art that the embodiments described are examples only. Accordingly, the data storage device and the operating method thereof described herein should not be limited based on the described embodiments. It will be apparent to those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention as defined in the following claims.