MEMORY CONTROLLER AND MEMORY SYSTEM INCLUDING THE SAME

A memory system is provided to include a memory device including a first memory block and a second memory block, and a memory controller configured, in response to a read request from a host, to control the memory device to read data stored in a first page corresponding to a first logical address included in the read request, update a read count of the first memory block including the first page, and perform a refresh operation of copying data stored in pages of the first memory block to the second memory block based on the read count of the first memory block. The memory controller is further configured to control a priority of the refresh operation on any page based on the number of times logical addresses corresponding to the pages of the first memory block that are received from the host.

PRIORITY CLAIM AND CROSS-REFERENCE TO RELATED APPLICATION

This patent document claims priority under 35 U.S.C. § 119(a) to This patent document claims priority to and benefits of the Korean patent application number 10-2023-0124553, filed on Sep. 19, 2023, which is incorporated herein by reference in its entirety.

TECHNICAL FIELD

The present disclosure relates to an electronic device, and more particularly, to a memory controller and a memory system including the same.

BACKGROUND

A memory system is a device that stores data under control of a host device such as a computer or a smartphone. The memory system may include a memory device in which data is stored and a memory controller controlling the memory device. The memory device is classified into a volatile memory device and a nonvolatile memory device.

The nonvolatile memory device is a device in which data is not lost even though power is cut off, and the nonvolatile memory device includes a read only memory (ROM), a programmable ROM (PROM), an electrically programmable ROM (EPROM), an electrically erasable and programmable ROM (EEPROM), a flash memory, and the like.

The nonvolatile memory device may store data in a plurality of memory blocks. The number of error bits of data stored in any one memory block may increase according to the number of times data is read. When the number of error bits included in the data increases, reliability of the data may be reduced. In order to increase reliability of data, a nonvolatile memory device may perform a refresh operation of copying data stored in any one memory block to another memory block.

SUMMARY

Various embodiments of the present disclosure provide a memory controller and a memory system including the same, which are capable of providing data requested from a host in a predetermined time.

In one aspect, a memory system is provided to include a memory device including a first memory block and a second memory block, and a memory controller in communication with the memory device and configured, in response to a read request from a host, to control the memory device to read data stored in a first page corresponding to a first logical address included in the read request, update a read count of the first memory block including the first page, and perform a refresh operation of copying data stored in pages of the first memory block to the second memory block based on the read count of the first memory block. The memory controller is further configured to control a priority of the refresh operation on any page among the pages of the first memory block, based on the number of times logical addresses corresponding to the pages of the first memory block that are received from the host.

In another aspect, a memory controller for controlling operations of a memory device is provided to include a host interface configured to receive a read request including a logical address from a host, a metadata manager configured to update a read count of a first memory block including a first page corresponding to the logical address, and an operation controller in communication with the memory device including a first memory block of pages of memory cells and a second memory block of pages of memory cells and configured to control a memory device including a first memory block and a second memory block to perform a refresh operation of copying data stored in pages of the first memory block to the second memory block based on a read count of the first memory block. The operation controller is further configured to control a priority of the refresh operation on one or more pages among the pages of the first memory block based on the read count of the first memory block, the read count increasing based on the number of times of receiving read requests after the refresh operation is started.

In another aspect, a memory system is provided to include a memory device including a first memory block and a second memory block, and a memory controller in communication with a host and the memory device and configured, in response to a read request from the host, to control the memory device to read data stored in a first page corresponding to a logical address included in the read request, update a read count of the first memory block including the first page, and perform a refresh operation of copying data stored in pages of the first memory block to the second memory block based on the read count of the first memory block. The memory controller is further configured to control a priority of the refresh operation on the first page corresponding to the logical address among the pages of the first memory block in response to the read request that is received from the host and after entering a host read blocking state delaying performance of a read operation corresponding to the read request based on the read count of the first memory block, the read count increasing after the refresh operation is started.

According to the present technology, a memory controller and a memory system including the same capable of providing data requested from a host in a predetermined time.

DETAILED DESCRIPTION

Specific structural or functional descriptions of embodiments of the disclosed technology are illustrated for the examples only. Various embodiments may be carried out in various forms and should not be construed as being limited to the embodiments described in this patent document.

FIG.1is a diagram illustrating a memory system including a memory controller and a memory device based on some implementations of the disclosed technology.

Referring toFIG.1, the memory system50may include the memory device100, the memory controller200, and a buffer memory300. The memory system50may be included in a mobile phone, a computer, a vehicle infotainment, or the like. The memory system50may be a device that stores data under control of a host400, which is an external device.

The memory system50may be manufactured as various types of storage devices such as a solid state drive (SSD) and a universal flash storage (UFS) according to a communication method with the host400. The memory system50may be manufactured as various types of package types such as a system on chip (SOC).

The memory device100may store data. The memory device100may operate in response to control of the memory controller200. In an embodiment, the memory device100may be a nonvolatile memory device.

The memory device100may receive a command and an address from the memory controller200and may perform an operation instructed by the command with respect to an area selected by the address. The memory device100may perform a program operation (write operation) of storing data in an area selected by the address, a read operation of reading data, or an erase operation of deleting data.

The memory controller200may control an overall operation of the memory system50.

When power is applied to the memory system50, the memory controller200may execute firmware (FW). In an embodiment, the memory controller200may execute firmware to control communication between the host400and the memory device100. In an embodiment, the memory controller200may convert a logical address of the host into a physical address of the memory device.

The memory controller200may control the memory device100to perform the program operation, the read operation, the erase operation, or the like according to a request of the host400. The memory controller200may provide a command, a physical address, or data to the memory device100according to the write operation, the read operation, or the erase operation.

In an embodiment, the memory controller200may generate a command, an address, and data independently regardless of the request from the host400and transmit the command, the address, and the data to the memory device100. For example, the memory controller200may provide the command, the address, and the data for performing the read operation and the program operation accompanying in performing wear leveling, read reclaim, garbage collection, or the like, to the memory device100.

The buffer memory300may temporarily store data provided from the host400or may temporarily store data read from the memory device100. In an embodiment, the buffer memory300may be a volatile memory device. For example, the buffer memory300may be a dynamic random access memory (DRAM) or a static random access memory (SRAM). In an embodiment, the buffer memory300may be positioned outside the memory controller200or may be positioned inside the memory controller200.

In an embodiment, the buffer memory300may store metadata. The metadata may be data including information used to operate the memory system50.

In an embodiment, the buffer memory300may include a map data storage310and a read count information storage320. The map data storage310may store map data indicating a correspondence relationship between a logical address of the host and a physical address of the memory device. The physical address may be an address indicating a position where data is stored in the memory device100. The physical address may be a block address indicating an address of a memory block included in the memory device100. The physical address may be a page address indicating an address of a page included in the memory block.

The read count information storage320may store read count information on each of a plurality of memory blocks included in the memory device. The read count information may be information indicating the number of times a read operation is performed on each of the plurality of memory blocks.

In an embodiment, the memory controller200may include a host interface210, a metadata manager220, and an operation controller230.

The host interface210may receive a request including the logical address from the host400. The request received from the host400may be a program request or a read request. The host interface210may provide the logical address received from the host400to the metadata manager220.

The metadata manager220may manage metadata used in an operation of the memory system50. In an embodiment, the metadata manager220may identify the physical address corresponding to the logical address received from the host400using the map data. The metadata manager220may provide the physical address corresponding to the logical address to the operation controller230.

In an embodiment, the metadata manager220may update the read count information on each of the plurality of memory blocks included in the memory device. In an embodiment, the metadata manager220may increase a read count of a memory block including a page having a physical address corresponding to a logical address included in the read request.

In an embodiment, the operation controller230may control an operation of the memory device100. The operation controller230may generate a read command in response to the read request received from the host. The operation controller230may provide the read command and the physical address to the memory device100.

In an embodiment, the operation controller230may control a refresh operation on the memory device100. The refresh operation may be an operation of copying data stored in any one memory block among the plurality of memory blocks to another memory block. In an embodiment, the refresh operation may be garbage collection or read reclaim.

In an embodiment, the operation controller230may control the memory device100to perform the refresh operation based on the read count information. The operation controller230may control the memory device100to perform a refresh operation of copying data stored in a memory block having a read count value greater than a threshold count among the plurality of memory blocks to another memory block.

The host400may communicate with the memory system50using various communication methods.

FIG.2is a diagram illustrating super blocks including the plurality of memory blocks based on some implementations of the disclosed technology.

Referring toFIG.2, the memory device100shown inFIG.1may include a plurality of memory dies101to108. The plurality of memory dies101to108may include a plurality of memory blocks BLK1to BLK16. InFIG.2, for convenience of description, each of the plurality of memory dies101to108includes two memory blocks as an example. The memory controller200may be connected to the plurality of memory dies101to108through first and second channels CH1to CH2. The number of channels or the number of memory dies connected to each channel can be modified in various manners without being limited to that shown inFIG.2.

The first to fourth memory dies101to104may be commonly connected to the first channel CH1. The first to fourth memory dies101to104may communicate with the memory controller200through the first channel CH1. The fifth to eighth memory dies105to108may be commonly connected to the second channel CH2. The fifth to eighth memory dies105to108may communicate with the memory controller200through the second channel CH2.

In one implementation, the memory system50including a plurality of memory dies may perform an operation using an interleaving method. The interleaving method may perform an operation of reading or storing data from each of the plurality of memory dies in a structure in which a plurality of memory dies share one channel. In an embodiment, the memory controller200may distribute and allocate data corresponding to consecutive logical addresses to each of the plurality of memory dies.

In an embodiment, the memory controller200may transmit a command, an address, or data to the first memory die101through the first channel CH1. The memory controller200may transmit a command, an address, or data to the second memory die102while the first memory die101performs an operation in response to the command.

In an embodiment, the memory controller200may configure super blocks. Each of the super blocks may include at least one memory blocks included in different memory dies. In an embodiment, the memory controller200may configure at least one or more memory blocks included in each of the first to fourth memory dies101to104into a first super block SPBLK1and a second super block SPBLK2. In an embodiment, the first super block SPBLK1may include the first memory block BLK1included in the first memory die101, the second memory block BLK2included in the second memory die102, the third memory block BLK3included in the third memory die103, and the fourth memory block BLK4included in the fourth memory die104.

In another embodiment, the memory controller200may configure at least one or more memory blocks included in each of the fifth to eighth memory dies105to108into a third super block SPBLK3and a fourth super block SPBLK4. In an embodiment, the third super block SPBLK3may include the ninth memory block BLK9included in the fifth memory die105, the tenth memory block BLK10included in the sixth memory die106, the eleventh memory block BLK11included in the seventh memory die107, and the twelfth memory block BLK12included in the eighth memory die108.

FIG.3is a diagram illustrating the read operation using the map data based on some implementations of the disclosed technology.

InFIG.3, map data related to a first memory block among the plurality of memory blocks is described as an example. Referring toFIG.3, the map data storage310may store the map data related to the first memory block BLK1. First to tenth logical addresses LA1to LA10may correspond to first to tenth page addresses PADDR1to PADDR10, respectively. The first to tenth page addresses PADDR1to PADDR10may be addresses of first to tenth pages Page1 to Page10 included in the first memory block BLK1.

In an embodiment, the host interface210ofFIG.1may receive the logical address included in the read request from the host400. The host interface210may provide the logical address to the metadata manager220.

Thereafter, the metadata manager220may read the map data stored in the map data storage310. The metadata manager220may identify a physical address corresponding to the logical address received from the host400using the map data. For example, when the metadata manager220receives the tenth logical address LA10from the host400, the metadata manager220may identify that a physical address corresponding to the tenth logical address LA10is the tenth page address PADDR10. The tenth page address PADDR10may be an address of the tenth page Page10.

The metadata manager220may provide the tenth page address PADDR10to the operation controller230. The operation controller230may generate a read command and provide the read command and the tenth page address PADDR10to the memory device100. The memory device100may select the tenth page Page10 among the first to tenth pages Page1 to Page10 included in the first memory block BLK1based on the tenth page address PADDR10, and read tenth data Data10stored in the tenth page Page10. The memory device100may provide the tenth data Data10read from the tenth page Page10 to the operation controller230. The operation controller230may provide the tenth data Data10to the host400through the host interface210.

FIG.4is a diagram illustrating an operation of updating a read count of a memory block based on some implementations of the disclosed technology.

FIG.4is described with reference toFIGS.1and3. Referring toFIG.4, the read count information storage320may store read count information (Read Count Info) indicating the number of times a read operation on each of the plurality of memory blocks is performed. The read count information (Read Count Info) may be updated after data stored in the plurality of pages included in each of the plurality of memory blocks is read.

In an embodiment, the metadata manager220ofFIG.1may read the read count information (Read Count Info) from the read count information storage320after the tenth data (Data10) stored in the tenth page Page10 is read. The metadata manager220may identify a read count (Read Cnt) of the first memory block including the tenth page (Page10) based on the read count information. The metadata manager220may increase the read count of the first memory block after the read operation on the tenth page Page10 is performed. For example, when the tenth data (Data10) is read from the tenth page (Page10), the metadata manager220may increase the read count of the first memory block from99to100. Thereafter, the metadata manager220may store read count information (Read Count Info) in which the read count of the first memory block is updated in the read count information storage320.

In an embodiment, the metadata manager220may increase the read count of the first memory block based on the number of times the first to tenth data (Data1to Data10) stored in the first to tenth pages (Page1 to Page10) included in the first memory block BLK1are read. In an embodiment, the metadata manager220may increase the read count of the first memory block based on the number of times the first to tenth logical addresses (LA1to LA10) corresponding to the first to tenth page addresses (PADDR1to PADDR10), which are addresses of the first to tenth pages (Page1 to Page10), are received from the host400.

FIG.5is a diagram illustrating a refresh operation of copying data stored in any one super block to another super block based on some implementations of the disclosed technology.

Referring toFIG.5, the first super block (SPBLK1) ofFIG.2may include first to fourth memory blocks included in different memory dies. The third super block (SPBLK3) may include ninth to twelfth memory blocks included in different memory dies. The ninth to twelfth memory blocks may be free blocks in which data is not stored.

In an embodiment, the operation controller230ofFIG.1may control the memory device100to perform the refresh operation based on the read count information. When the read count of any one memory block among the plurality of memory blocks is greater than the threshold count, the operation controller230may control the memory device100to perform the refresh operation of copying data stored in a super block including any one memory block to another super block.

In an embodiment, the operation controller230may read the read count information from the read count information storage320and identify read counts of the first to fourth memory blocks (BLK1to BLK4). In an embodiment, the operation controller230may control the memory device100to perform a refresh operation on the first super block (SPBLK1) including the first memory block (BLK1) when the read count of the first memory block (BLK1) is greater than the threshold count. After performing the refresh operation, data stored in first to fortieth pages (Page1 to Page40) included in the first to fourth memory blocks (BLK1to BLK4) may be stored in the ninth to twelfth memory blocks (BLK9to BLK12) included in the third super block (SPBLK3) through the refresh operation.

FIG.6is a diagram illustrating a sequence in which the refresh operation is performed based on some implementations of the disclosed technology.

Referring toFIGS.5and6, before the refresh operation, first to fortieth data (Data1to Data40) may be stored in the first super block (SPBLK1). The first to fortieth data (Data1to Data40) may be stored in the first to fortieth pages (Page1 to Page40), respectively.

In an embodiment, the operation controller230ofFIG.1may control the memory device100to sequentially copy the first to fortieth data (Data1to Data40) stored in the first super block (SPBLK1) to the third super block (SPBLK3) during the refresh operation.

In an embodiment, the operation controller230may control the memory device100to sequentially copy data according to a sequence of page addresses corresponding to pages included in each memory block.

The operation controller230may control the memory device100to sequentially copy data from pages having first page addresses in the respective first to fourth memory blocks BLK1to BLK4to pages having last page addresses in the respective first to fourth memory blocks (BLK1to BLK4). The data copied from the first to fourth memory blocks (BLK1to BLK4) is stored in the ninth to twelfth memory blocks (BLK9to BLK12).

In the implementation as shown inFIG.6, the pages having the first page address in the respective first to fourth memory blocks (BLK1to BLK4) are the first page (Page1), the eleventh page (Page11), the twenty-first page (Page21), and the thirty-first page (Page31). For example, as described with reference toFIG.3, the first to tenth pages (Page1 to Page10) included in the first memory block may respectively correspond to the first to tenth page addresses (PADDR1to PADDR10). The first page (Page1) may have the smallest page address among the first to tenth pages (Page1 to Page10) included in the first memory block (BLK1).

In an embodiment, the operation controller230may control the memory device during the refresh operation to copy the first data (Data1), the eleventh data (Data11), the twenty-first data (Data21), and the thirty-first data (Data31), which are respectively included in the first to fourth memory blocks (BLK1to BLK4), to the ninth to twelfth memory blocks (BLK9to BLK12) (see operation, {circle around (1)} Copy data, as shown inFIG.6).

Thereafter, the operation controller230may control the memory device to copy the second data (Data2), the twelfth data (Data12), the twenty-second data (Data22), and the thirty-second data (Data32), which are stored in the second pages respectively included in the first to fourth memory blocks BLK1to BLK4, to the ninth to twelfth memory blocks BLK9to BLK12(see operation, {circle around (2)} Copy data, as shown inFIG.6).

Next, the operation controller230may control the memory device to sequentially copy data from third pages respectively included in the first to fourth memory blocks (BLK1to BLK4) to ninth pages respectively included in the first to fourth memory blocks (BLK1to BLK4), to the ninth to twelfth memory blocks BLK9to BLK12.

Among the pages respectively included in the first to fourth memory blocks BLK1to BLK4, the pages having the last page addresses, which include the tenth page (Page10), the twentieth page (Page20), the thirtieth page (Page30), and the fortieth (Page40), may be copied last. The tenth data (Data10), the twentieth data (Data20), the thirtieth data (Data30), and the fortieth data (Data40), which are stored in the last pages respectively included in the first to fourth memory blocks BLK1to BLK4, may be copied to the ninth to twelfth memory blocks BLK9to BLK12during the refresh operation (see operation, {circle around (10)} Copy data, as shown inFIG.6).

The refresh operation may end once the tenth data (Data10), the twentieth data (Data20), the thirtieth data (Data30), and the fortieth data (Data40), which is stored in the tenth page (Page10), the twentieth page (Page20), the thirtieth page (Page30), and the fortieth page (Page40), are copied to the ninth to twelfth memory blocks BLK9to BLK12.

FIG.7is a diagram illustrating the refresh operation performed based on the read count of the memory block increasing according to a repeatedly received read request based on some implementations of the disclosed technology.

Referring toFIGS.1,6, and7, the read count of the memory block may increase based on the number of times the read request including the logical address is received. With reference toFIG.7, a case where the read request (Read Request) including a tenth logical address (LA10) is repeatedly received from the host400is described as an example.

In an embodiment, the host interface210may repeatedly receive the read request (Read Request) including the tenth logical address (LA10) from the host400. The operation controller230may control the memory device100to read data stored in the tenth page Page10 having the tenth page address (PADDR10) corresponding to the tenth logical address LA10, and provide the read data to the host400. The metadata manager220may increase the read count of the first memory block BLK1including the tenth page (Page10).

In an embodiment, the read count of the first memory block (BLK1) may increase based on the number of times the read request including the tenth logical address (LA10) is received from the host400. The read count of the first memory block (BLK1) may increase by the number of times the read request including the tenth logical address (LA10) is repeatedly received from the host400.

In an embodiment, the read count of the first memory block BLK1may reach a first threshold count (th_cnt1) as the read request including the tenth logical address LA10is repeatedly received from the host400. When the read count of the first memory block (BLK1) is equal to or greater than the first threshold count (th_cnt1), the operation controller230may control the memory device100to perform a test read operation of reading data stored in at least one page included in the first memory block BLK1.

During the test read operation, the operation controller230may count the number of error bits included in data read from a page included in the first memory block BLK1. The operation controller230may determine whether to perform the refresh operation based on a result of comparing the number of error bits included in the data read from the page included in the first memory block BLK1with the first threshold number of bits. The first threshold number of bits may be the number of bits less than the number of error-correctable bits, which is the number of bits that allows an error correction operation to pass without a failure. In an embodiment, the operation controller230may not perform the refresh operation when the number of error bits included in the data read from the first memory block BLK1is less than the first threshold number of bits, at a time point when the read count of the first memory block BLK1reaches the first threshold count th_cnt1.

Thereafter, the read count of the first memory block BLK1may reach a second threshold count th_cnt2as the read request including the tenth logical address LA10is repeatedly received from the host400. The operation controller230may control the memory device100to perform the test read operation on the first memory block BLK1when the read count of the first memory block BLK1is equal to or greater than the second threshold count th_cnt2.

In an embodiment, when the number of error bits included in the data read from the first memory block BLK1is greater than the first threshold number of bits, the operation controller230may control the memory device100to perform the refresh operation of copying data stored in the first super block SPBLK1including the first memory block BLK1to the third super block SPBLK3. The refresh operation may be ended when data is copied, to the third super block (SPBLK3), from the first pages to the last pages of the respective first to fourth memory blocks BLK1to BLK4included in the first super block (SPBLK1).

In an embodiment, the host interface210may repeatedly receive the read request including the tenth logical address (LA10) while performing the refresh operation of copying the data stored in the first super block (SPBLK1) to the third super block SPBLK3. In an embodiment, the operation controller230may control the memory device100to read the data corresponding to the tenth logical address (LA10) included in the read request when the read request is received from the host400while performing the refresh operation. Specifically, with reference toFIGS.5and6, the operation controller230may receive the read request including the tenth logical address (LA10) while copying the first data (Data1), the eleventh data (Data11), the twenty-first data (Data21), and the thirty-first data (Data31), which is stored in the first page (Page1), the eleventh page (Page11), the twenty-first page (Page21), and the thirty-first page (Page31), respectively, to the ninth to twelfth memory blocks BLK9to BLK12included in the third super block SPBLK3. In this case, e.g., receiving the read request including the tenth logical address (LA10) while coping the data (Data1, Data11, Data21, Data31), the operation controller230may control the memory device100to read the data corresponding to the tenth logical address (LA10) after copying the first data (Data1), the eleventh data (Data11), the twenty-first data (Data21), and the thirty-first data (Data31) to the ninth to twelfth memory blocks (BLK9to BLK12) Thereafter, the operation controller230may control the memory device100to copy the second data (Data2), the twelfth data (Data12), the twenty-second data (Data22), and the thirty-second data (Data32), which is stored in the second page (Page2), the twelfth page (Page12), the twenty-second page (Page22), and the thirty-second page (Page32), to the ninth to twelfth memory blocks (BLK9to BLK12) after providing the data corresponding to the tenth logical address (LA10) read from the memory device100to the host400. Thus, the read count of the first memory block (BLK1) may increase as the read request including the tenth logical address (LA10) is repeatedly received while the refresh operation is performed.

The read count of the first memory block (BLK1) may reach a third threshold count (th_cnt3) as the read request including the tenth logical address (LA10) is repeatedly received while the refresh operation is performed. The operation controller230may enter the host read blocking state when the read count of the first memory block (BLK1) is equal to or greater than the third threshold count (th_cnt3).

The host read blocking state may be a state in which the read operation according to the read request received from the host400is not performed when the read count of the memory block including the page having the physical address corresponding to the logical address included in the read request received from the host is equal to or greater than the third threshold count (th_cnt3).

In an embodiment, when the operation controller230enters the host read blocking state, the operation controller230may not read the data corresponding to the tenth logical address (LA10) from the first memory block (BLK1) even though the read request including the tenth logical address (LA10) is received from the host. When the operation controller230enters the host read blocking state, the operation controller230may not perform the read operation even though the read request is received and may not provide the data corresponding to the read request to the host400. The read operation according to the read request received from the host400may be delayed until the host read blocking state is released.

When the read count of the first memory block (BLK1) is a fourth threshold count (th_cnt4), the number of error bits included in the data stored in the first memory block (BLK1) may be greater than the number of error-correctable bits. When the read count of the first memory block (BLK1) becomes equal to or greater than the fourth threshold count (th_cnt4), error correction for the data read from the first memory block (BLK1) may fail (ECC Fail). Accordingly, when the read count of the first memory block reaches the third threshold count (th_cnt3), which is less than the fourth threshold count (th_cnt4), the operation controller230may enter the host blocking state and may prevent the read count from increasing.

In some implementations, the host read blocking state may be released when the data corresponding to the tenth logical address (LA10) is copied from the first super block (SPBLK1) to the third super block (SPBLK3). When the host read blocking state is released, the read operation according to the read request received from the host400may be performed. When the host read blocking state is released, the operation controller230may control the memory device100to the read data corresponding to the tenth logical address (LA10) from the third super block (SPBLK3). Since the memory blocks included in the third super block (SPBLK3) are free blocks, the read count of the memory blocks included in the third super block (SPBLK3) may be less than the third threshold count (th_cnt3).

In an embodiment, when the read request including the tenth logical address (LA10) is received from the host400after the refresh operation on the first super block (SPBLK1) is started, the operation controller230may copy the data corresponding to the tenth logical address (LA10) from the first super block (SPBLK1) to the third super block (SPBLK3), release the host read blocking state, read the data corresponding to the tenth logical address (LA10) from the third super block (SPBLK3), and then provide the data corresponding to the tenth logical address (LA10) to the host400.

However, when the refresh operation is performed sequentially according to the sequence of the physical addresses of each page as described with reference toFIG.6, the data stored in the tenth page (Page10) having the tenth page address corresponding to the tenth logical address (LA10) may be copied from the first super block (SPBLK1) to the third super block (SPBLK3) later than data stored in other pages included in the first memory block (BLK1). As the page address corresponding to the logical address included in the read request becomes larger, such as the tenth page address, the timing at which the data corresponding to the logical address is copied to the third super block (SPBLK3) may be delayed. Thus, the time delay for copying the data corresponding to the logical address to the third super block (SPBLK3) may be dependent on the page address corresponding to the logical address included in the read request, e.g., how many other pages exist before the page address corresponding to the logical address.

As the copying of the data corresponding to the tenth logical address LA10from the first super block SPBLK1to the third super block SPBLK3gets delayed, the time for the operation controller230to maintain the host read blocking state increases.

As the time for the operation controller230to maintain the host read blocking state increases, a time required to provide the data corresponding to the tenth logical address LA10to the host400may be increased. When a response including the data corresponding to the tenth logical address LA10is not received within a predetermined time from when the host400provides the read request to the memory system50, the host400may determine or process that the corresponding read request is failed.

In order to prevent the memory system50from not providing the data corresponding to the read request received from the host within a predetermined time due to the increase of the time of maintaining the host read blocking state, when the memory system50receives the read request including the tenth logical address LA10from the host while performing the refresh operation, the memory system50may copy the data corresponding to the tenth logical address LA10to the third super block SPBLK3prior to copying other data stored in the first super block SPBLK1.

FIG.8is a diagram illustrating a sequence in which the refresh operation is performed in the host read blocking state.

Referring toFIGS.1,7, and8, when the read count of the first memory block (BLK1) is equal to or greater than the second threshold count (th_cnt2), the operation controller230may control the memory device100to perform the read operation on the first memory block (BLK1). When the number of error bits included in the data read from the first memory block (BLK1) is greater than the first threshold number of bits, the operation controller230may control the memory device100to perform the refresh operation of copying the data stored in the first super block (SPBLK1) including the first memory block BLK1to the third super block (SPBLK3).

When the read request including the tenth logical address LA10is repeatedly received from the host400while performing the refresh operation, the read count of the first memory block BLK1in which the tenth data (Data10) corresponding to the tenth logical address (LA10) is stored may increase.

In an embodiment, the operation controller230may control a priority of the refresh operation on the tenth page (Page10) in which the tenth data (Data10) corresponding to the tenth logical address (LA10) is stored based on the number of times the read request including the tenth logical address (LA10) is received after the refresh operation is started.

Specifically, the read count of the first memory block (BLK1) may reach the third threshold count (th_cnt3) as the read request including the tenth logical address (LA10) is repeatedly received while performing the refresh operation. The operation controller230may enter the host read blocking state when the read count of the first memory block (BLK1) is equal to or greater than the third threshold count (th_cnt3). When the operation controller230enters the host read blocking state, the operation controller230may ignore the read request including the tenth logical address (LA10) received from the host400.

In an embodiment, the operation controller230may copy data stored in the first to fourth memory blocks (BLK1to BLK4) to the ninth to twelfth memory blocks (BLK9to BLK12) according to the sequence of the page addresses. In an embodiment, the operation controller230may enter the host read blocking state as the read count of the first memory block (BLK1) reaches the third threshold count (th_cnt3) while copying the first data (Data1), the eleventh data (Data11), the twenty-first data (Data21), and the thirty-first data (Data31), which is stored in the first to fourth memory blocks BLK1to BLK4, to the ninth to twelfth memory blocks (BLK9to BLK12) (see operation, {circle around (1)} Copy data, as shown inFIG.8) and copying the second data (Data2), the twelfth data (Data12), the twenty-second data (Data22), and the thirty-second data (Data32) (see operation, {circle around (2)} Copy data, as shown inFIG.8) to the ninth to twelfth memory blocks BLK9to BLK12.

In an embodiment, the operation controller230may change the sequence in which the refresh operation is performed when the read request including the tenth logical address (LA10) is received from the host400after entering the host read blocking state. Specifically, in the host read blocking state, when the read request including the tenth logical address (LA10) is received from the host400, the operation controller230may control the memory device100to copy the tenth data (Data10) stored in the tenth page (Page10) having the tenth page address corresponding to the tenth logical address (LA10) to the third super block (SPBLK3) prior to copying the third data (Data3) stored in the third page Page3.

As described with reference toFIG.6, if the operation controller230performs the refresh operation without any change of the sequence such that the refresh operation performs in the sequence of page addresses, after the second data Data2, the twelfth data Data12, the twenty-second data Data22, and the thirty-second data Data32are copied to the ninth to twelfth memory blocks BLK9to BLK12, the operation controller230copies the third data (Data3), the thirteenth data (Data13), the twenty-third data (Data23), and the thirty-third data (Data33) to the ninth to twelfth memory blocks BLK9to BLK12.

However, in some implementations, the operation controller230changes the sequence of the refresh operation. In this case, when the operation controller230, which is in the host read blocking state, receivers the read request corresponding to the tenth logical address (LA10) from the host400, the operation controller230may control the memory device100to copy the tenth data (Data10), the twentieth data (Data20), the thirtieth data (Data30), and the fortieth data (Data40) to the ninth to twelfth memory blocks (BLK9to BLK12) (see operation, {circle around (3)} Copy data, as shown inFIG.8. Thus, the copying of the tenth data (Data10), the twentieth data (Data20), the thirtieth data (Data30), and the fortieth data (Data40) to the ninth to twelfth memory blocks (BLK9) is performed prior to copying the third data (Data3), the thirteenth data (Data13), the twenty-third data (Data23), and the thirty-third data (Data33).

The operation controller230may control the memory device100to read the tenth data (Data10) corresponding to the tenth logical address (LA10) received from the host400after copying the tenth data (Data10), the twentieth data (Data20), the thirtieth data (Data30), and the fortieth data (Data40), which is stored in the first to fourth memory blocks (BLK1to BLK4), to the ninth to twelfth memory blocks (BLK9to BLK12). The operation controller230may provide the tenth data (Data10) read from the tenth page (Page10) to the host400.

Thereafter, the operation controller230may control the memory device100to copy the third data (Data3), the thirteenth data (Data13), the twenty-third data (Data23), and the thirty-third data (Data33), which is stored in the first to fourth memory blocks (BLK1to BLK4), to the ninth to twelfth memory blocks (BLK9to BLK12) (see operation, {circle around (4)} Copy data, as shown in FIG.8).

FIG.9is a diagram illustrating the read operation according to the read request received from the host while performing the refresh operation based on some implementations of the disclosed technology.

Referring toFIGS.7,8, and9, the host interface210may receive the read request Read Request including the tenth logical address LA10from the host400. The metadata manager220may identify the tenth page address (PADDR10) corresponding to the tenth logical address (LA10) and provide the tenth page address (PADDR10) to the operation controller230. The operation controller230may provide the read command (CMD) and the tenth page address (PADDR10) to the memory device100. The memory device100may read the tenth data (Data10) stored in the tenth page (Page10) corresponding to the tenth page address (PADDR10) in response to the read command (CMD) and provide the tenth data (Data10) to the operation controller230. The operation controller230may provide the tenth data (Data10) to the host400through the host interface210.

The metadata manager220may read the read count information from the read count information storage320. The metadata manager220may increase the read count of the first memory block (BLK1) including the tenth page (Page10) on which the read operation is performed.

The read count of the first memory block (BLK1) may reach the second threshold count (th_cnt2) as the read request including the tenth logical address (LA10) is repeatedly received. The operation controller230may control the memory device100to perform the test read operation of reading the data stored in the first memory block (BLK1) when the read count of the first memory block (BLK1) is equal to or greater than the second threshold count (th_cnt2). When the number of error bits included in the data read from the first memory block (BLK1) is greater than the first threshold number of bits, the operation controller230may control the memory device100to perform the refresh operation of copying the first to tenth data (Data1to Data10) stored in the first memory block (BLK1) to the ninth memory block (BLK9). In an embodiment, the first memory block (BLK1) and the ninth memory block (BLK9) may be included in different super blocks. In an embodiment, memory cells included in the ninth memory block (BLK9) may store bits of the number less than those of memory cells included in the first memory block (BLK1). For example, the memory cells included in the ninth memory block (BLK9) may be single level cells (SLCs), and the memory cells included in the first memory block BLK1may be triple level cells (TLCs).

When the read request including the tenth logical address (LA10) is received while performing the refresh operation, the operation controller (230) may stop the refresh operation, read the tenth data (Data10) corresponding to the tenth logical address (LA10), and then provide the tenth data (Data10) to the host400.

The operation controller230may control the priority of the refresh operation on the tenth page in which the tenth data (Data10) corresponding to the tenth logical address (LA10) based on the number of times the tenth logical address (LA10) is received after the refresh operation of copying the first to tenth data (Data1to Data10), which is stored in the first memory block (BLK1) to the ninth memory block (BLK9), is started.

Specifically, when the read request including the tenth logical address (LA10) is repeatedly received while performing the refresh operation, the read count of the first memory block (BLK1) may reach the third threshold count (th_cnt3) greater than the second threshold count (th_cnt2). When the read count of the first memory block (BLK1) is equal to or greater than the third threshold count (th_cnt3), the operation controller230may enter the host read blocking state in which the tenth data (Data10) corresponding to the tenth logical address (LA10) is not read from the first memory block (BLK1).

When the read request including the tenth logical address (LA10) is received in the host read blocking state, the operation controller230may control the memory device100to copy the tenth data (Data10) corresponding to the tenth logical address (LA10) to the ninth memory block (BLK9) prior to other data stored in the first memory block (BLK1). Specifically, when the operation controller230receives the read request including the tenth logical address LA10in a state in which the first data (Data1) and the second data (Data2), which is stored in the first memory block BLK1, are copied to the ninth memory block BLK9, the operation controller230may control the memory device100to copy the tenth data (Data10) to the ninth memory block (BLK9) prior to the third to ninth data (Data3to Data9).

The operation controller230may release the host read blocking state after copying the tenth data (Data10) stored in the first memory block (BLK1) to the ninth memory block (BLK9). The operation controller230may control the memory device100to read the tenth data (Data10) from the ninth memory block (BLK9). The operation controller230may provide the tenth data (Data10) read from the ninth memory block (BLK9) to the host400.

FIG.10is a flowchart illustrating the refresh operation performed based on the read count of the memory block based on some implementations of the disclosed technology.

Referring toFIG.10, in step S1001, the memory system50may receive the read request including the logical address from the host.

In step S1003, the memory system50may read the data stored in the first page having the physical address corresponding to the logical address. The physical address may be a page address indicating the address of the first page. The memory system50may provide the data read from the first page to the host.

In step S1005, the memory system50may update the read count of the first memory block including the first page. The read count of the first memory block may increase based on the number of times the logical address corresponding to the physical address indicating the first memory block is received from the host.

In step S1007, the memory system50may identify whether the read count of the first memory block is equal to or greater than the first threshold count. When the read count of the first memory block is equal to or greater than the first threshold count, step S1009may be performed. When the read count of the first memory block is less than the first threshold count, step S1001may be performed.

In step S1009, the memory system50may perform the test read operation on the first memory block when the read count of the first memory block is equal to or greater than the first threshold count. The test read operation may include an operation of reading the data stored in at least one page included in the first memory block and counting the number of error bits included in the read data.

In step S1011, the memory system50may perform the refresh operation of copying the data stored in the first memory block to the second memory block. The refresh operation may be performed when the read count of the first memory block is equal to or greater than the first threshold count, and the number of error bits included in the data read from the first memory block is greater than the first threshold number.

FIG.11is a flowchart illustrating an operation of copying the data corresponding to the read request prior to other data based on the read count of the memory block.

In an embodiment, a step shown inFIG.11may be performed after step S1011ofFIG.10. Referring toFIG.11, in step S1101, the memory system50may receive the read request including the logical address from the host while performing the refresh operation of copying the data stored in the first memory block to the second memory block.

In step S1103, the memory system50may identify the read count of the first memory block including the first page having the physical address corresponding to the logical address. The read count of the first memory block may increase according to the number of times the logical address corresponding to the physical address indicating the first memory block is received from the host.

In step S1105, the memory system50may identify whether the read count of the first memory block is equal to or greater than the second threshold count. When the read count of the first memory block is equal to or greater than the second threshold count, step S1107may be performed. When the read count of the first memory block is less than the second threshold count, step S1111may be performed.

In step S1107, when the read count of the first memory block is equal to or greater than the second threshold count, the memory system50may copy the data stored in the first page to the second memory block prior to remaining data stored in the first memory block.

In step S1109, the memory system50may provide the data read from the second memory block to the host.

In step S1111, when the read count of the first memory block is less than the second threshold count, the memory system50may provide the data read from the first page to the host.

In step S1113, the memory system50may update the read count of the first memory block including the first page.

FIG.12is a diagram illustrating the memory controller.

Referring toFIG.12, the memory controller1200may include a processor1210, a RAM1220, an error correction circuit1230, a host interface1240, a ROM1250, and a memory interface1260.

The processor1210may control an overall operation of the memory controller1200. The processor1210may control an operation of the memory controller1200to store data requested from the host400in the memory device100. In an embodiment, the processor1210may control the memory device to perform the refresh operation of copying the data stored in any one of the plurality of memory blocks to another memory block based on the read count of the plurality of memory blocks. The refresh operation may be garbage collection or read reclaim. The processor1210may increase the read count of the memory block based on the number of times the read request including the logical address is received from the host400.

The RAM1220may be used as a buffer memory, a cache memory, an operation memory, or the like of the memory controller1200. In an embodiment, the RAM1220may store the map data indicating the correspondence relationship between the logical address of the host400and the physical address of the memory device100. The RAM1220may store the read count information indicating the number of times the read operation on each of the plurality of memory blocks is performed.

The error correction circuit1230may perform error correction. The error correction circuit1230may perform error correction encoding (ECC encoding) based on data to be written to the memory device100through the memory interface1260. The error correction encoded data may be transferred to the memory device100through the memory interface1260. The error correction circuit1230may perform error correction decoding (ECC decoding) on data received from the memory device100through the memory interface1260.

The ROM1250may store various pieces of information required for the memory controller1200to operate in a form of firmware.

The memory controller1200may communicate with an external device (for example, the host400, an application processor, or the like) through the host interface1240. The memory controller1200may receive data through the host interface1240. In an embodiment, the host interface1240may receive the read request including the logical address from the host400.

The memory controller1200may communicate with the memory device100through the memory interface1260. The memory controller1200may transmit a command, an address, and data to the memory device100through the memory interface1260. The memory interface1260may provide a command for performing a refresh operation to the memory device100.

FIG.13is a diagram illustrating a memory die.

Referring toFIG.13, the memory die1000may be any one of the first to eighth memory dies101to108shown inFIG.2. The memory die1000may include a memory cell array110, a peripheral circuit120, and a control logic130.

The memory cell array110may include a plurality of memory blocks BLK1to BLKz. The plurality of memory blocks BLK1to BLKz may be connected to an address decoder121through row lines RL. The plurality of memory blocks BLK1to BLKz may be connected to a page buffer group123through bit lines BL1to BLm. Each of the plurality of memory blocks BLK1to BLKz may include a plurality of memory cells. In an embodiment, the plurality of memory cells may be nonvolatile memory cells.

The peripheral circuit120may drive the memory cell array110. For example, the peripheral circuit120may drive the memory cell array110to perform the program operation, the read operation, and the erase operation under control of the control logic130. As another example, the peripheral circuit120may apply various operation voltages to the row lines RL and the bit lines BL1to BLm or discharge the applied voltages according to the control of the control logic130.

The peripheral circuit120may include the address decoder121, a voltage generation circuit122, the page buffer group123, and a data input/output circuit124.

The address decoder121may be connected to the memory cell array110through row lines RL. The row lines RL may include drain select lines, dummy word lines, a plurality of word lines, and source select lines.

The address decoder121may be configured to operate in response to the control of the control logic130. The address decoder121may receive an address from the control logic130.

The address decoder121may be configured to decode a row address of the received address. The address decoder121may select at least one word line of a selected memory block by applying voltages provided from the voltage generation circuit122to at least one word line according to the row address.

The address decoder121may be configured to decode a column address of the address. The column address may be transferred to the page buffer group123. In an embodiment, the address decoder121may include the address decoder160ofFIG.2.

During the program operation, the address decoder121may apply the program voltage to a selected word line and apply a pass voltage having a level less than that of the program voltage to unselected word lines. During a program verify operation, the address decoder121may apply a verify voltage to the selected word line and apply a verify pass voltage having a level greater than that of the verify voltage to the unselected word lines.

During the read operation, the address decoder121may apply a read voltage to the selected word line and apply a read pass voltage having a level greater than that of the read voltage to the unselected word lines.

The voltage generation circuit122may generate a plurality of operation voltages using an external power voltage supplied to the memory die1000. The voltage generation circuit122may operate in response to control of the control logic130. In an embodiment, the voltage generation circuit122may include the voltage generation circuit150ofFIG.2.

In an embodiment, the voltage generation circuit122may generate various operation voltages used for the program, read, and erase operations. For example, the voltage generation circuit122may generate a plurality of erase voltages, a plurality of program voltages, a plurality of pass voltages, a plurality of select read voltages, and a plurality of unselect read voltages. The operation voltages may be supplied to the memory cell array110by the address decoder121.

The page buffer group123may include first to m-th page buffers PB1to PBm. The first to m-th page buffers PB1to PBm may be connected to the memory cell array110through first to m-th bit lines BL1to BLm, respectively. The first to m-th page buffers PB1to PBm may operate in response to the control of the control logic130.

The first to m-th page buffers PB1to PBm may communicate data with the data input/output circuit124. At a time of program, the first to m-th page buffers PB1to PBm may receive the data through the data input/output circuit124and data lines DL.

During the program operation, the first to m-th page buffers PB1to PBm may transmit the data received through the data input/output circuit124to the selected memory cells through the bit lines BL1to BLm. The memory cells of the selected page may be programmed according to the transmitted data. A memory cell connected to a bit line to which a program allowable voltage (for example, a ground voltage) is applied may have an increased threshold voltage. A threshold voltage of a memory cell connected to a bit line to which a program inhibit voltage (for example, a power voltage) is applied may be maintained. During the program verify operation, the first to m-th page buffers PB1to PBm may read the data stored in the memory cells from the selected memory cells through the bit lines BL1to BLm.

During the read operation, the page buffer group123may sense the data from the memory cells of the selected word line through the bit lines BL1to BLm, and store the sensed data to the first to m-th page buffers PB1to PBm.

The data input/output circuit124may be connected to the first to m-th page buffers PB1to PBm through the data lines DL. The data input/output circuit124may operate in response to the control of the control logic130. During the program operation, the data input/output circuit124may receive data to be stored from the memory controller200. During the read operation, the data input/output circuit124may output the data sensed in the first to m-th page buffers PB1to PBm to the memory controller200.

The control logic130may be connected to the address decoder121, the voltage generation circuit122, the page buffer group123, and the data input/output circuit124. The control logic130may be configured to control all operations of the memory device100. The control logic130may operate in response to a command CMD transferred from the memory controller200. The control logic130may control the peripheral circuit120by generating various signals in response to the command CMD and an address ADDR.

In addition to the above described specific examples of embodiments of the disclosed technology, variations of the above described embodiments and other embodiments may be made based on what is disclosed and/or illustrated in this patent document.