US-12619543-B2 - Error correcting memory device and method of operating the same
Abstract
Provided herein is a memory controller for controlling a memory device. The memory controller includes a workload detector configured to determine a change in workload based on reception of a changed request from a host or a change in clock received from an external device, a device performance controller configured to determine, if the workload is determined as changed, read performance based on a ratio of a size of data output to the host to a size of data requested from the host every preset period and configured to output a read-look-ahead (RLA) command to the memory device based on the determined read performance, a buffer memory configured to store data read from the memory device in response to the RLA command and a memory size controller configured to control a size of the buffer memory. The RLA command instructs to output data which is frequently requested from the host.
Inventors
- Na Young LEE
- Ku Ik KWON
- Kyeong Seok Kim
- Byong Woo Ryu
Assignees
- MIMIRIP LLC
Dates
- Publication Date
- 20260505
- Application Date
- 20230411
- Priority Date
- 20210222
Claims (18)
- 1 . A memory system comprising: a non-volatile memory device; and a controller, the controller configured to: provide a read-look-ahead (RLA) command to the non-volatile memory device in response to a change in a workload, wherein the workload is associated with a type of request, and wherein the type of request includes one of: a first type of request that involves a first amount of memory operations and a second type of request that involves a second amount of memory operations that is different than the first amount; and allocate, in response to the RLA command, at least a portion of volatile memory as a cache area for storing data read from the non-volatile memory device, wherein the data is read from the non-volatile memory device in response to the RLA command and wherein a size of the volatile memory allocated as the cache area is variable and based on a read performance of the memory system and based on detecting the change in the workload, and wherein the size of the volatile memory allocated as the cache area is increased until an amount of data output by the memory system is the same as an amount of data requested by a host coupled to the controller.
- 2 . The memory system according to claim 1 , wherein the controller is further configured to increase the size of volatile memory allocated as the cache area until a value corresponding to the read performance of the memory system is greater than or equal to a predetermined read performance value.
- 3 . The memory system according to claim 2 , wherein the value corresponding to the read performance is based on an amount of data output by the memory system during a period of time and a size of data requested by the host coupled to the controller during the period of time.
- 4 . The memory system according to claim 1 , wherein the controller is further configured to increase the size of the volatile memory allocated as the cache area until the read performance of the memory system is maximized.
- 5 . The memory system according to claim 1 , wherein the controller includes the volatile memory.
- 6 . The memory system according to claim 1 , wherein the controller does not include the volatile memory.
- 7 . The memory system according to claim 1 , wherein, when an amount of memory operations performed by the memory system reduces to a predetermined workload amount, the controller is further configured to stop providing the RLA command to the non-volatile memory device and de-allocate volatile memory allocated as the cache area.
- 8 . A memory system comprising: a non-volatile memory device; and a controller, the controller configured to: perform a read-look-ahead (RLA) operation in response to a change in a workload, wherein the workload is associated with a type of request, and wherein the type of request includes one of: a first type of request that involves a first amount of memory operations and a second type of request that involves a second amount of memory operations that is different than the first amount wherein the RLA operation includes caching data read from the non-volatile memory device in a volatile memory in response to a RLA command, and wherein the volatile memory consists of a default area and a variable area, and is allocated for the RLA operation; and increase a size of the variable area of the volatile memory until a value corresponding to a read performance of the memory system is greater than or equal to a predetermined read performance value, wherein the size of the variable area of the volatile memory is increased until an amount of data output by the memory system is the same as an amount of data requested by a host coupled to the controller, and wherein the RLA operation includes a corresponding data transfer that is performed in response to the RLA command.
- 9 . The memory system according to claim 8 , wherein, when the workload of the memory system reduces to a preset workload, the controller is further configured to stop performing the RLA operation and decrease the size of the variable area of the volatile memory.
- 10 . The memory system according to claim 9 , wherein the controller is further configured to decrease the size of the variable area of the volatile memory until the variable area of the volatile memory is de-allocated.
- 11 . The memory system according to claim 8 , wherein the value corresponding to the read performance is based on an amount of data output by the memory system during a period of time and a size of data requested by the host coupled to the controller during the period of time.
- 12 . The memory system according to claim 8 , wherein the controller includes the volatile memory.
- 13 . A memory system comprising: a non-volatile memory device; and a controller configured to: allocate a first cache area of a volatile memory; perform a read-look-ahead (RLA) operation on data stored in the non-volatile memory device in response to a change in a workload, wherein the workload is associated with a type of request, and wherein the type of request includes one of: a first type of request that involves a first amount of memory operations and a second type of request that involves a second amount of memory operations that is different than the first amount; and allocate a second cache area of the volatile memory, wherein the data read from the non-volatile memory device by the RLA operation is stored in at least some parts of the first cache area and the second cache area of the volatile memory; wherein a size of the second cache area of the volatile memory is adjustable based on a read performance of the memory system, and wherein the size of second cache area of the volatile memory is increased until an amount of data output by the memory system is the same as an amount of data requested by a host coupled to the controller, and wherein the RLA operation includes a corresponding data transfer that is performed in response to a RLA command.
- 14 . The memory system according to claim 13 , wherein the controller is further configured to increase the size of the second cache area until a value corresponding to the read performance reaches a predetermined read performance value.
- 15 . The memory system according to claim 14 , wherein the value corresponding to the read performance is based on an amount of data output by the memory system during a period of time and a size of data requested by the host coupled to the controller during the period of time.
- 16 . The memory system according to claim 13 , wherein the controller is further configured to decrease the size of the second cache area until a value corresponding to the read performance of the memory system reaches a predetermined read performance value.
- 17 . The memory system according to claim 13 , wherein, when the workload of the memory system reduces to a predetermined workload amount, the controller is further configured to stop performing the RLA operation and de-allocate the second cache area of the volatile memory.
- 18 . The memory system according to claim 13 , wherein the controller includes the volatile memory.
Description
CROSS-REFERENCE TO RELATED APPLICATION This application is a continuation of U.S. patent application Ser. No. 17/443,671 filed on Jul. 27, 2021, which claims priority under 35 U.S.C. § 119(a) to Korean patent application number 10-2021-0023616 filed on Feb. 22, 2021, the entire disclosure of which is incorporated by reference herein. BACKGROUND Field of Invention Various embodiments of the present disclosure generally relate to an electronic device, and more particularly, to a memory controller and a method of operating the memory controller. Description of Related Art Generally, a storage device is a device which stores data under control of a host device such as a computer, a smartphone, or a smart pad. According to the type of device provided to store data, examples of the storage device may be classified into a device such as a hard disk drive (HDD) which stores data in a magnetic disk, and a device such as a solid state drive (SSD) or a memory card which stores data in a semiconductor memory, particularly, a nonvolatile memory. The storage device may include a memory device in which data is stored, and a memory controller configured to store data in the memory device. Memory devices may be classified into volatile memories and nonvolatile memories. Representative examples of the nonvolatile memories may include a read only memory (ROM), a programmable ROM (PROM), an electrically programmable ROM (EPROM), an electrically erasable and programmable ROM (EEPROM), a flash memory, a phase-change random access memory (PRAM), a magnetic RAM (MRAM), a resistive RAM (RRAM), a ferroelectric RAM (FRAM), etc. SUMMARY Various embodiments of the present disclosure are directed to a memory controller and a method of operating the memory controller, which are intended to enhance the performance of a storage device by changing the size of a buffer memory depending on the read performance of the storage device. An embodiment of the present disclosure may provide for a memory controller for controlling a memory device, the memory controller including a workload detector configured to determine a change in workload based on reception of a changed request from a host or a change in clock received from an external device, a device performance controller configured to determine, if the workload is determined as changed, read performance based on a ratio of a size of data output to the host to a size of data requested from the host every preset period and configured to output a read-look-ahead (RLA) command to the memory device based on the determined read performance, a buffer memory configured to store data read from the memory device in response to the RLA command and a memory size controller configured to control a size of the buffer memory, wherein the RLA command instructs to output data which is frequently requested from the host. An embodiment of the present disclosure may provide for a method of operating a memory controller configured to control a memory device, the method including determining a change in workload based on reception of a changed request from a host or a change in clock received from an external device, determining, if the workload is determined as changed, read performance based on a ratio of a size of data output to the host to a size of data requested from the host every preset period, outputting a read-look-ahead (RLA) command to the memory device based on the determined read performance and storing data read from the memory device in response to the RLA command in a buffer memory, wherein the RLA command instructs to output data which is frequently requested from the host. An embodiment of the present disclosure may provide for a memory system comprising: a memory device configured to store data, a cache configured to cache data read from the device and to be provided to an external and a controller configured to, perform, according to a current read performance of the system, a read-look-ahead (RLA) operation on data stored in the device when the system has a heavy workload, and adjust, according to a current read performance of the system, a size of the cache when the system has a light workload, wherein the controller is further configured to adjust the size according to a current read performance of the system during the RLA operation, and wherein the current read performance is a ratio of a first amount to a second amount during a current amount of time, the first amount being a data amount output from the system in response to one or more requests from the external and the second amount being a data amount requested by the requests. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram illustrating a storage device in accordance with an embodiment of the present disclosure. FIG. 2 is a diagram illustrating the configuration of a memory device of FIG. 1, in accordance with an embodiment of the present disclosure. FIG. 3 is a diagram illustrating an embodiment of a memory cell array of