CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority under 35 U.S.C. § 119 to Korean Patent Application No. 10-2019-0176645 filed on Dec. 27, 2019, which is incorporated herein by reference in its entirety.

BACKGROUND

1. Field

Embodiments relate to a memory system, and more particularly, to an apparatus and method for improving throughput of a memory system through an interleaving operation on a plurality of memory dies.

2. Discussion of the Related Art

Recently, a computer environment paradigm has shifted to ubiquitous computing, which enables a computer system to be accessed virtually anytime and everywhere. As a result, the use of portable electronic devices such as mobile phones, digital cameras, notebook computers and the like increases. Such portable electronic devices typically use or include a memory system that uses or embeds at least one memory device, i.e., a data storage device. The data storage device can be used as a main storage device or an auxiliary storage device of a portable electronic device.

In a computing device, unlike a hard disk, a data storage device used as a nonvolatile semiconductor memory device is advantageous in that it has excellent stability and durability because it has no mechanical driving part (e.g., a mechanical arm), and has high data access speed and low power consumption. Examples of such a data storage device include a universal serial bus (USB) memory device, a memory card having various interfaces, and a solid state drive (SSD).

SUMMARY

Various embodiments are directed to a memory system capable of rapidly and stably processing data into a memory device by minimizing the complexity and degradation in throughput of the memory system, and maximizing the use efficiency of the memory device, and an operation method thereof.

Also, various embodiments are directed to an apparatus and method for improving input and output (I/O) throughput of a memory system by inputting and outputting data through an interleaving operation on a plurality of memory dies in the memory system.

Also, various embodiments are directed to an apparatus and method capable of improving the stability of operation and the lifetime of a memory system by more efficiently utilizing a plurality of dies, even though physical locations in which data are to be stored are not limited to an interleaving operation during a process of storing data in a plurality of memory dies in the memory system.

Also, various embodiments are directed to an apparatus and method which can dynamically determine whether to perform or skip a correlation operation in response to the configuration of a memory system and the characteristic of the correlation operation for data read and write operations performed in the memory system, thereby reducing an unnecessary overhead.

Also, various embodiments are directed to an apparatus and method capable of improving the utilization of channels by performing a read operation on an idle memory die within a memory system.

The effects of the apparatus and method in accordance with the present embodiments will be described as follows.

The memory system and the operation method thereof in accordance with the present embodiments can reduce an overhead for an interleaving operation within the memory system while removing or reducing address limitations on a physical location within the memory system for the interleaving operation.

Furthermore, the memory system and the operation method thereof can reduce address limitations on physical limitations within the memory system for an interleaving operation while improving I/O throughput of the memory system through the interleaving operation, thereby improving the efficiency and lifetime of the memory device.

In accordance with an embodiment, a memory system includes a plurality of memory dies configured to store data therein; and a controller coupled with the plurality of memory dies via a plurality of channels and configured to perform a correlation operation on at least some read requests among a plurality of read requests inputted from a host so that the plurality of memory dies output plural pieces of data corresponding to the plurality of read requests via the plurality of channels in an interleaving way, wherein the controller is configured to determine when to perform the correlation operation based on the number of the plurality of read requests, and wherein the plurality of read requests include a read request for an internal operation of the controller and a read request received from a host.

The controller may determine an idle channel among the plurality of channels and may perform the correlation operation on the plurality of read requests except for the read request for the internal operation, which is related to the idle channel, among the plurality of read requests.

The controller may transfer the read request for the internal operation which is related to the idle channel to the plurality of memory dies through the idle channel, and the correlation operation is not performed.

The controller may determine a transferring order of the read request for the internal operation related to the idle channel, based on a receiving order of the read request for the correlation operation.

The controller may set a transferring priority of the read request having the earliest receiving order as the highest priority.

The memory system may further comprise a plurality of channel buffers configured to temporarily store the plurality of read requests to be transferred to the plurality of channels, and corresponding to the respective channels.

The controller may determine a channel as an idle channel corresponding to a channel buffer which stores the plurality of read requests when a number of the plurality of requests is less than a target value, among the plurality of channel buffers.

The data corresponding to the plurality of read requests is outputted to the plurality of channels from the plurality of memory dies in response to the plurality of read requests.

The controller may output data, corresponding to a read request received from the host, to the host among the data corresponding to the plurality of read requests.

The memory system may further comprise an output buffer configured to temporarily store data to be outputted to the host.

The controller is configured to perform the correlation operation when the number of pieces of data stored in the output buffer, to be outputted to the host, is greater than a set value.

The output buffer may include a queue capable of outputting stored data according to an input sequence of the stored data, and the controller may determine the set value, based on a first data input/output speed between the host and the memory system and a second data input/output speed between the controller and the plurality of memory dies.

The controller is configured to perform the correlation operation when the number of the plurality of read requests transferred for the correlation operation is greater than the number of the plurality of channels.

The controller is configured to stop the correlation operation on remaining read requests not yet correlated when the number of remaining read requests is less than the number of the plurality of memory dies.

The controller may determine whether to perform or skip a correlation operation on the plurality of read requests, based on the number of the plurality of read requests transferred for the correlation operation, and transfer a correlated read request earlier than an uncorrelated read request among the plurality of read requests.

The controller may perform the correlation operation to correlate the plurality of read requests by the number of the plurality of channels.

In accordance with an embodiment, an operation method of a memory system includes determining when to perform a correlation operation based on the number of a plurality of read requests for the correlation operation; performing the correlation operation on the plurality of read requests, based on a determination result; transferring the correlated read requests to a plurality of channels coupled to a plurality of memory dies; and receiving data corresponding to the correlated read request from the plurality of memory dies via the plurality of channels in an interleaving way, wherein the plurality of read requests comprise a read request for an internal operation of the memory system and a read request received from a host.

The performing of the correlation operation on the plurality of read requests may include determining an idle channel among the plurality of channels; and performing the correlation operation on the plurality of read requests except for the read request for the internal operation, which is related to the idle channel, among the plurality of read requests.

The operation method may further comprise transferring the read request for the internal operation which is related to the idle channel to the plurality of memory dies through the idle channel and the correlation operation is not performed.

The transferring of the read request for the internal operation, may comprise determining a transferring order of the read request for the internal operation related to the idle channel, based on a receiving order of the read request for the correlation operation.

The determining of the transferring order may include setting a transferring priority of the read request having the earliest receiving order as the highest priority.

The determining of the idle channel may include temporarily storing read requests to be transferred to the plurality of channels, and checking the numbers of read requests stored in a plurality of channel buffers corresponding to the plurality of channels, respectively; and determining a channel as an idle channel corresponding to a channel buffer which stores the plurality of read requests when a number of the plurality of read request is less than a target value, among the plurality of channel buffers.

The operation method may further include outputting data, corresponding to a read request received from the host, to the host among the data corresponding to the plurality of read requests.

The determining when to perform a correlation operation may include performing the correlation operation when the number of pieces of data stored in an output buffer, to be outputted to the host, is greater than a set value, the set value is determined based on a first data input/output speed between the host and the memory system and a second data input/output speed between the controller and the plurality of memory dies.

The determining when to perform a correlation operation may include stopping the correlation operation on remaining read requests not yet correlated when the number of remaining read requests is less than the number of the plurality of memory dies.

The performing of the correlation operation may include determining whether to perform or skip a correlation operation on the plurality of read requests, based on the number of the plurality of read requests transferred for the correlation operation.

The performing of the correlation operation may include transferring a correlated read request earlier than an uncorrelated read request among the plurality of read requests.

The performing of the correlation operation may include performing the correlation operation to correlate the plurality of read requests by the number of the plurality of channels.

