This application claims priority under 35 U.S.C. § 119 to Korean Patent Application No. 10-2024-0005848 filed on Jan. 15, 2024, in the Korean Intellectual Property Office, the disclosures of which being incorporated by reference herein in its entirety.
Embodiments of the present disclosure described herein relate to a memory system.
A memory device is used to store data and is classified as a volatile memory device or a nonvolatile memory device. As an example of the nonvolatile memory device, a flash memory device may be used in a mobile phone, a digital camera, a portable computer device, a stationary computer device, or any other device. As a data storage capacity necessary for an electronic device quickly increases, the capacity of the flash memory device is also quickly increasing.
Meanwhile, even though the flash memory device is a nonvolatile memory device, data stored in the flash memory device may be lost due to a program disturb, a read disturb, etc. Accordingly, it is advantageous to have a method of managing the flash memory device such that the disturb is minimized. In particular, as the capacity of the flash memory device greatly increases, the method of managing the flash memory device such that the disturb is minimized is even more advantageous.
It is an aspect to provide a memory system capable of minimizing a disturb.
According to an aspect of one or more embodiments, there is provided a memory system comprising a memory device including a plurality of blocks; and a memory controller configured to control the memory device. Each of the plurality of blocks includes a plurality of sub blocks with different sizes. In a write operation on a selected block among the plurality of blocks, the memory controller selects one of the plurality of sub blocks included in the selected block as a start sub block, in which the write operation is first to be performed, based on status information about the plurality of sub blocks included in the selected block.
According to an aspect of one or more embodiments, there is provided a memory system comprising a memory device including a plurality of blocks; and a memory controller configured to control the memory device. Each of the plurality of blocks includes a first sub block; a second sub block disposed adjacent to the first sub block; and a third sub block disposed adjacent to the second sub block. The memory controller includes a feature table including status information about the first sub block, the second sub block and the third sub block included in a selected block among the plurality of blocks; and a sub block selector configured to select one among the first sub block, the second sub block and the third sub block included in the selected block as a start sub block in which a write operation is first to be performed, based on the feature table.
According to an aspect of one or more embodiments, there is provided a operating method of a memory system which includes a plurality of blocks, the method comprising allocating a block, in which a write operation is to be performed, from among the plurality of blocks; selecting a start sub block, in which a write operation is first to be performed, from among a plurality of sub blocks included in the allocated block, based on status information of the plurality of sub blocks; and performing a write operation sequentially from the start sub block.
The above and other aspect will become apparent by describing in detail embodiments thereof with reference to the accompanying drawings.
Below, various embodiments will be described in detail and clearly to such an extent that an ordinary one in the art easily carries out the various embodiments. In this specification, the phrase “at least one of A, B, or C” includes within its scope “only A”, “only B”, “only C”, “A and B”, “A and C”, “B and C”, and “A, B, and C.”
The memory system 100 may include a plurality of blocks, and each of the plurality of blocks may include a plurality of sub blocks. In an embodiment, the plurality of sub blocks may have different sizes. When a write operation is performed, the memory system 100 may select a start sub block, in which the write operation is first to be performed, from among the plurality of sub blocks, based on status information about a plurality of sub blocks included in a block where the write operation is to be performed. Accordingly, a specific sub block may be prevented from being intensively used, and the disturb may be minimized.
The description will be given in detail with reference to
The memory system 100 may be an internal storage device embedded in an electronic device. For example, in an embodiment, the memory system 100 may include an embedded universal flash storage (UFS) device or an embedded multi-media card (eMMC).
In some embodiments, the memory system 100 may be an external storage device removable from an electronic device. For example, in some embodiments, the memory system 100 may include a UFS memory card, a compact flash (CF) card, a secure digital (SD) card, a micro-SD card, a mini-SD card, an extreme digital (xD) card, or a memory stick.
However, this is provided as an example. According to some embodiments, the memory system 100 may be referred to as a “personal computer”, a “data center”, “network attached storage” (NAS), an “internet of things (IoT) device”, a “portable electronic device”, etc.
The memory controller 110 may control the memory device 120 depending on a request of an external device (e.g., a host). For example, the memory controller 110 may transmit an address and a command to the memory device 120 depending on the request of the external device. The memory controller 110 may exchange data with the memory device 120 depending on the request of the external device.
Under control of the memory controller 110, the memory device 120 may store data or may output the stored data. For example, in some embodiments, the memory device 120 may be implemented with a memory device including a NAND flash memory. However, this is provided as an example, and embodiments are not limited thereto. As another example, in some embodiments, the memory device 120 may be implemented with a memory device, which includes nonvolatile memory elements, such as a NOR flash memory, an MRAM, a PRAM, an ReRAM, or an FRAM. As another example, in some embodiments, the memory device 120 may be implemented with a memory device, which includes volatile memory elements, such as a DRAM.
The memory device 120 may include a memory cell array 121, and the memory cell array 121 may include a plurality of blocks BLK1 to BLKm. The value of m may be an integer. Each of the plurality of blocks BLK1 to BLKm may include a plurality of memory cells. Each of the plurality of memory cells may be a single level cell (SLC) storing one data bit or may be a multi-level cell (MLC) storing at least two data bits.
Each of the plurality of blocks BLK1 to BLKm may include a plurality of sub blocks SB1 to SBn. The value of n may be an integer. In an embodiment, a sub block may denote a minimum unit by which an erase operation is capable of being performed. For example, the memory device 120 may perform the erase operation in units of sub block. However, this is provided as an example. According to an embodiment, the memory device 120 may perform the erase operation in units of block.
In some embodiments, each of the plurality of blocks BLK1 to BLKm may have the same size. According to an embodiment, a super block including a plurality of blocks may be implemented. A block or a super block may be used, for example, as a data management unit of a normal I/O operation such as a write operation or a read operation.
In some embodiments, the plurality of sub blocks SB1 to SBn may have different sizes. For example, due to a characteristic of a physical structure of each block, the plurality of sub blocks SB1 to SBn may have different sizes. As another example, in the process of dynamically setting the plurality of sub blocks SB1 to SBn in each block, the plurality of sub blocks SB1 to SBn may be set to have different sizes. However, this is provided as an example. According to an embodiment, the plurality of sub blocks SB1 to SBn may be implemented to have the same size.
In an embodiment, the memory controller 110 may include a sub block selector 111 and a feature table 112. The feature table 112 may include status information about a plurality of sub blocks included in each block. The sub block selector 111 may select a start sub block, in which the write operation is first to be performed, from among a plurality of sub blocks, based on the status information of the plurality of sub blocks included in the feature table 112.
In detail, in an embodiment, when there is performed the write operation on a selected block, the sub block selector 111 may select the start sub block, based on size information about a plurality of sub blocks. For example, the sub blocks included in the selected block may have similar sizes. In this case, the sub block selector 111 may select the start sub block among the plurality of sub blocks by using a random algorithm to be described below.
In an embodiment, when there is performed the write operation on the selected block, the sub block selector 111 may select the start sub block, based on status information corresponding to the previously performed write operation. For example, the sub block selector 111 may refer to an I/O pattern of data previously stored in the selected block by the previous write operation and/or whether a block closing operation is performed after the previous write operation.
In an embodiment, the block closing operation may refer to an operation of changing a state of a block, in which data are present, to a free block state or making the block changeable to a free block state anytime. For example, the block closing operation may include an operation of copying valid data stored in a relevant block to any other block, an operation of erasing a sub block, in which invalid data are stored, from among sub blocks included in the relevant block, or an operation of storing dummy data in an empty space of a sub block, in which data are not stored.
When data are stored only in some of the plurality of sub blocks by the previous write operation and the block closing operation is performed, the sub block selector 111 may select the start sub block among the plurality of sub blocks by using a wrap-around algorithm to be described below.
In an embodiment, when there is performed the write operation on the selected block, the sub block selector 111 may select the start sub block, based on erase count information about the plurality of sub blocks. For example, erase counts of the sub blocks included in the selected block may be different from each other. In this case, the sub block selector 111 may select the start sub block among the plurality of sub blocks by using an erase count algorithm to be described below.
In an embodiment, when there is performed the write operation on the selected block, the sub block selector 111 may calculate a penalty value of the plurality of sub blocks and may again select the start sub block among the plurality of sub blocks based on the calculated penalty value.
As described above, the memory system 100 according to an embodiment may select the start sub block, in which the write operation is first to be performed, from among the plurality of sub blocks, based on the status information about the plurality of sub blocks. For example, the memory system 100 may select an optimal algorithm among various algorithms based on the status information about the plurality of sub blocks and may select the start sub block by using the selected optimal algorithm. Accordingly, a specific sub block may be prevented from being intensively used, and the disturb may be minimized.
Referring to
The application 101 may include various programs which are driven on an operating system (OS) of the external device. For example, the application 101 may include various programs such as a text editor, an image player, and/or a web browser.
The file system 102 may perform a role of organizing files or data which are used by the application 101. For example, the file system 102 may provide an address of a file or data. In an embodiment, the address may be a logical address which is organized or managed by the external device.
The flash translation layer 103 provides an interface between the external device and the memory device 120 such that the memory device 120 is efficiently used. For example, the flash translation layer 103 may perform an operation of translating a logical address provided from the external device into a physical address usable in the memory device 120. For example, the flash translation layer 103 may manage the address translation operation through a mapping table.
In an embodiment, the sub block selector 111 (refer to
Referring to
The sub block selector 111 may select a start sub block, in which the write operation is first to be performed, from among a plurality of sub blocks, based on status information of the plurality of sub blocks. For example, the sub block selector 111 may select one algorithm among a random algorithm, a wrap-around algorithm, or an erase count algorithm based on the status information of the plurality of sub blocks and may select the start sub block by using the selected algorithm.
The feature table 112 may include status information about a plurality of sub blocks included in each plurality of blocks. For example, the feature table 112 may include information about the size of a sub block, information about a start sub block selected in a previous write operation, I/O pattern information about data stored in the previous write operation, and/or information about whether the block closing operation is performed after the previous write operation.
The processor 113 may control an overall operation of the memory controller 110. In an embodiment, the processor 113 may be processing circuitry configured to perform operations of the memory controller 110 described herein.
The SRAM 114 may be used as a buffer memory, a cache memory, or a working memory of the memory controller 110. However, this is provided as an example, and embodiments are not limited thereto. For example, according to an embodiment, the buffer memory, the cache memory, and the working memory may be provided independently of each other. According to an embodiment, as well as an SRAM, a volatile memory such as a DRAM or a nonvolatile memory may be used as the buffer memory, the cache memory, the working memory, etc.
The ROM 115 may store a variety of information, which is use for the memory controller 110 to operate, in the form of firmware.
The host interface circuit 116 may provide interfacing between the external device and the memory controller 110. For example, the host interface circuit 116 may be provided based on at least one of communication protocols such as universal serial bus (USB), multimedia card (MMC), eMMC (embedded MMC), peripheral component interconnection (PCI), PCI-express (PCI-E), advanced technology attachment (ATA), serial-ATA, parallel-ATA, small computer small interface (SCSI), enhanced small disk interface (ESDI), integrated drive electronics (IDE), Firewire, universal flash storage (UFS), non-volatile memory express (NVMe), and/or compute express link (CXL).
The memory interface circuit 117 may provide interfacing between the memory device 120 and the memory controller 110.
In an embodiment, the feature table 112 may be stored in the SRAM 114. In this case, the sub block selector 111 may select the start sub block among the plurality of sub blocks by referring to the feature table 112 stored in the SRAM 114.
In an embodiment, the sub block selector 111 may be a circuit implemented as processing circuitry independently of the processor 113. However, this is provided as an example. According to an embodiment, the sub block selector 111 may be implemented as a part of the processor 113. In some embodiments, the sub block selector 111 may be code stored in the SRAM 114 and may be read from the SRAM 114 and executed by the processor 113.
Referring to
The memory cell array 121 may include a plurality of blocks. Each of the plurality of blocks may include a plurality of strings. Each of the plurality of strings may include a plurality of memory cells, and the plurality of memory cells in each string may be respectively connected to a plurality of word lines WL. Each of the plurality of blocks may include a plurality of sub blocks. According to an embodiment, the plurality of sub blocks may have different sizes. According to an embodiment, some of the plurality of sub blocks may have similar sizes.
The address decoder 123 may be connected to the memory cell array 121 through the word lines WL, string selection lines SSL, ground selection lines GSL. The address decoder 123 may receive an address ADDR from the memory controller 110 and may decode the received address ADDR. The address decoder 123 may select at least one of the plurality of word lines WL based on the decoded address ADDR.
The page buffer circuit 124 may be connected to the memory cell array 121 through a plurality of bit lines BL. The page buffer circuit 124 may be connected to the input/output circuit 125 through a plurality of data lines DL. The page buffer circuit 124 may control the plurality of bit lines BL such that data “DATA” received through the plurality of data lines DL are written in the memory cell array 121. The page buffer circuit 124 may read data stored in the memory cell array 121 by sensing voltage changes of the plurality of bit lines BL and may provide the read data to the input/output circuit 125 through the plurality of data lines DL.
The input/output (I/O) circuit 125 may exchange the data “DATA” with the memory controller 110.
The control logic 126 may receive a command CMD from the memory controller 110 and may control an overall operation of the memory device 120 in response to the received command CMD.
In an embodiment, when the write operation on the selected block is performed, the memory device 120 may receive information about a start sub block from the memory controller 110. In this case, the control logic 126 may control the memory device 120 such that the write operation is performed sequentially in a direction from the start sub block to a next adjacent sub block.
Referring to
Each of the plurality of blocks BLK1 to BLKm may include the plurality of sub blocks SB1 to SBn. According to an embodiment, the size of each of the plurality of sub blocks SB1 to SBn may be variously implemented or set.
In an embodiment, the plurality of sub blocks SB1 to SBn may have different sizes. For example, the first sub block SB1 and the second sub block SB2 may have implemented to have physically different sizes. As another example, the first sub block SB1 may be dynamically allocated to have a first size, and the second sub block SB2 may be dynamically allocated to have a second size different from the first size.
In an embodiment, some of the plurality of sub blocks SB1 to SBn may have different sizes, and the others thereof may have the same size. For example, the size of the first sub block SB1 may be the same as the size of the second sub block SB2 and may be different from the size of the third sub block (not illustrated).
In an embodiment, each of the plurality of sub blocks SB1 to SBn may have the same size.
An example of one block BLKa among the blocks BLK1 to BLKm of
Referring to
An example in which the common source line CSL is connected to lower ends of the strings STR is illustrated in
The strings STR in each row may be connected in common to a ground selection line GSL1 or GSL2. For example, the strings STR in first and second rows may be connected in common to the first ground selection line GSL1, and strings STR in third and fourth rows may be connected in common to the second ground selection line GSL2. However, this is provided as an example. For another example, four different ground selection lines may be provided, and the strings STR in the first to fourth rows may be implemented to be connected to the four different ground selection lines.
The strings STR in each row may be connected with a corresponding string selection line among first to fourth string selection lines SSL1 to SSL4. The strings STR in each column may be connected with a corresponding bit line among first to fourth bit lines BL1 to BL4.
Each string STR may include at least one ground selection transistor GST connected to the ground selection line GSL1 or GSL2, a plurality of memory cells MC1 to MC7 respectively connected to a plurality of word lines WL1 to WL7, and a string selection transistor SST connected to the string selection line SSL1, SSL2, SSL3, or SSL4. Also, each string STR may include a sub block separation transistor SBST connected to a sub block separation line SBSL.
In each string STR, the ground selection transistor GST, the memory cells MC1 to MC7, the sub block separation transistor SBST, and the string selection transistor SST may be connected in series along a direction perpendicular to the substrate and may be sequentially stacked along the direction perpendicular to the substrate.
The sub block separation transistors SBST according to an embodiment may be disposed at various locations.
In an embodiment, the sub block separation transistors SBST may be disposed at a location where the size of the first sub block SB1 is defined to be smaller than the size of the second sub block SB2.
For example, as illustrated in
In an embodiment, the sub block separation transistors SBST may be disposed at a location where the size of the first sub block SB1 is defined to be larger than the size of the second sub block SB2.
For example, in each string STR, the sub block separation transistor SBST may be disposed between the fourth memory cell MC4 and the fifth memory cell MC5. In this case, the first to fourth memory cells MC1 to MC4 disposed below the sub block separation transistors SBST may be referred to as a “first sub block SB1”, and the fifth to seventh memory cells MC5 to MC7 disposed above the sub block separation transistors SBST may be referred to as a “second sub block SB2”.
Alternatively, in an embodiment, the sub block separation transistors SBST may be disposed at a location where the size of the first sub block SB1 is defined to be the same as the size of the second sub block SB2.
The sub block separation transistors SBST according to an embodiment may be allocated or formed in various schemes.
In an embodiment, at least one of a plurality of transistors included in the string STR formed on the substrate may be allocated to the sub block separation transistor SBST. In this case, the sub block separation transistor SBST may be dynamically allocated, and thus, the size of the first sub block SB1 and the size of the second sub block SB2 may be variously set depending on a usage mode.
In an embodiment, the sub block separation transistors SBST may be formed to be physically different from memory cells. For example, the sub block separation transistor SBST may be formed of an NMOS transistor, in which a charge storage layer is absent between a channel and a gate, unlike the memory cells.
In an embodiment, a channel structure constituting the string STR formed on the substrate may include a lower channel structure and an upper channel structure, and the lower channel structure and the upper channel structure may be formed by using different processes.
For example, when the memory device 120 is formed in a chip on peri (COP) structure, the diameter of the upper end of the lower channel structure may be larger than the diameter of the lower end of the upper channel structure. As another example, when the memory device 120 is formed in a chip to chip (C2C) structure, the diameter of the upper end of the lower channel structure may be smaller than the diameter of the lower end of the upper channel structure.
In the structure where the channel structure includes the lower channel structure and the upper channel structure, at least one of word lines located adjacent to the interface between the lower channel structure and the upper channel structure may be defined as a “sub block separation line SBSL”, and memory cells connected to the sub block separation line SBSL may be referred to as “sub block separation transistors SBST”.
In an embodiment, the sub block separation line SBSL may be formed at the upper end of the lower channel structure (or on an upper surface of the lower channel structure). For example, the ground selection lines GSL1 and GSL2, the first to third word lines WL1 to WL3, and the sub block separation line SBSL may correspond to the lower channel structure of each string STR, and the fourth to seventh word lines WL4 to WL7 and the string selection lines SSL1 to SSL4 may correspond to the upper channel structure of each string STR.
In an embodiment, the sub block separation line SBSL may be formed at the lower end of the upper channel structure (or on a lower surface of the upper channel structure). For example, the ground selection lines GSL1 and GSL2 and the first to third word lines WL1 to WL3 may correspond to the lower channel structure of each string STR, and the sub block separation line SBSL, the fourth to seventh word lines WL4 to WL7, and the string selection lines SSL1 to SSL4 may correspond to the upper channel structure of each string STR.
In an embodiment, a word line disposed on the upper surface of the lower channel structure may be set as a first sub channel selection line, and a word line disposed on the lower surface of the upper channel structure may be set as a second sub channel selection line.
In an embodiment, sub channels may be distinguished from each other in a way to bias a dummy word line, instead of setting a dedicated string selection transistor. For example, in the string STR including the lower channel structure and the upper channel structure, at least one of word lines disposed adjacent to the interface between the lower channel structure and the upper channel structure may be set as a dummy word line, and the first sub block SB1 and the second sub block SB2 may be distinguished from each other by biasing the dummy word line.
An example of the block BLKa in which the first sub block SB1 and the second sub block SB2 are capable of being distinguished from each other by the sub block separation line SBSL is illustrated in
Referring to
For example, in the erase operation on the first sub block SB1, an erase voltage (e.g., 22 V) may be provided through the common source line CSL, and a voltage (e.g., 16 V) lower than the erase voltage may be provided through the first and second ground selection lines GSL1 and GSL2. A ground voltage may be provided through the first bit line BL1, and the ground voltage may be provided through the first to fourth string selection lines SSL1 to SSL4. In this case, the sub block separation transistors SBST may be set to a non-conducting state. Accordingly, the erase operation on the first sub block SB1 may be performed.
As another example, in the erase operation on the second sub block SB2, the erase voltage (e.g., 22 V) may be provided through the first bit line BL1, and a voltage (e.g., 16 V) lower than the erase voltage may be provided through the first to fourth string selection lines SSL1 to SSL4. The ground voltage may be provided through the common source line CSL, and the ground voltage may be provided through the first and second ground selection lines GSL1 and GSL2. In this case, the sub block separation transistors SBST may be set to a non-conducting state. Accordingly, the erase operation on the second sub block SB2 may be performed.
As described above, the block BLKa may be divided into the first sub block SB1 and the second sub block SB2, and the erase operation may be performed in units of sub block.
As will be described below, according to an embodiment, when the write operation is performed, the write operation may be performed sequentially from a sub block selected as a start sub block from among the first sub block SB1 and the second sub block SB2.
An example of the block BLKa which is capable of being divided into first to fourth sub blocks SB1 to SB4 by the sub block separation line SBSL, the string selection lines SSL1 to SSL4, and the ground selection lines GSL1 and GSL2 is illustrated in
Referring to
For example, in the erase operation on the first sub block SB1, the erase voltage (e.g., 22 V) may be provided through the common source line CSL, a voltage (e.g., 16 V) lower than the erase voltage may be provided through the first ground selection line GSL1, and the ground voltage may be provided through the second ground selection line GSL2. The ground voltage may be provided through the first bit line BL1, and the ground voltage may be provided through the first to fourth string selection lines SSL1 to SSL4. In this case, the sub block separation transistors SBST may be set to a non-conducting state. Accordingly, the erase operation on the first sub block SB1 may be performed.
As another example, in the erase operation on the second sub block SB2, the erase voltage (e.g., 22 V) may be provided through the first bit line BL1, a voltage (e.g., 16 V) lower than the erase voltage may be provided through the first and second string selection lines SSL1 and SSL2, and the ground voltage may be provided through the third and fourth string selection lines SSL3 and SSL4. The ground voltage may be provided through the common source line CSL, and the ground voltage may be provided through the first and second ground selection lines GSL1 and GSL2. In this case, the sub block separation transistors SBST may be set to a non-conducting state. Accordingly, the erase operation on the second sub block SB2 may be performed.
As another example, in the erase operation on the third sub block SB3, the erase voltage (e.g., 22 V) may be provided through the common source line CSL, a voltage (e.g., 16 V) lower than the erase voltage may be provided through the second ground selection line GSL2, and the ground voltage may be provided through the first ground selection line GSL1. The ground voltage may be provided through the first bit line BL1, and the ground voltage may be provided through the first to fourth string selection lines SSL1 to SSL4. In this case, the sub block separation transistors SBST may be set to a non-conducting state. Accordingly, the erase operation on the third sub block SB3 may be performed.
As another example, in the erase operation on the fourth sub block SB4, the erase voltage (e.g., 22 V) may be provided through the first bit line BL1, a voltage (e.g., 16 V) lower than the erase voltage may be provided through the third and fourth string selection lines SSL3 and SSL4, and the ground voltage may be provided through the first and second string selection lines SSL1 and SSL2. The ground voltage may be provided through the common source line CSL, and the ground voltage may be provided through the first and second ground selection lines GSL1 and GSL2. In this case, the sub block separation transistors SBST may be set to a non-conducting state. Accordingly, the erase operation on the fourth sub block SB4 may be performed.
As described above, the block BLKa may be divided into the first to fourth sub blocks SB1 to SB4, and the erase operation may be performed in units of sub block.
As will be described below, according to an embodiment, when the write operation is performed, the write operation may be performed sequentially from a sub block selected as a start sub block from among the first to fourth sub blocks SB1 to SB4.
Referring to
In an embodiment, the feature table 112 may include sub block size information SB Size for each of the plurality of sub blocks SB1 to SBn. The sub block selector 111 may determine whether to use the random algorithm among various algorithms for determining a start sub block based on the sub block size information SB Size and may execute the random algorithm based on a determination result.
In an embodiment, the feature table 112 may include information about a previous write operation, such as start sub block information Start SB, I/O pattern information I/O Pattern, and/or block closing information BC, for each of the plurality of blocks BLK1 to BLKm. In an embodiment, the I/O pattern information I/O Pattern may indicate whether data stored by the previous write operation are burst data or non-burst data. The block closing information BC may indicate whether the block closing operation on a relevant block in which data are stored in the previous write operation is performed after the data are stored in the relevant block. In an embodiment, the block closing information BC may indicate whether the block closing operation on the relevant block is repeatedly performed in a plurality of write operations previously performed.
The sub block selector 111 may determine whether to use the wrap-around algorithm among the algorithms for determining a start sub block based on the start sub block information Start SB, the I/O pattern information I/O Pattern, and the block closing information BC associated with the previous write operation and may execute the wrap-around algorithm based on a determination result.
In an embodiment, the feature table 112 may include erase count information EC for each of the plurality of sub blocks SB1 to SBn. The sub block selector 111 may execute the erase count algorithm among the algorithms for determining a start sub block based on the erase count information EC.
As described above, the feature table 112 may include status information about each block or status information about sub blocks included in each block, and the sub block selector 111 may select an optimal algorithm among various algorithms by referring to the feature table 112 and may select a start sub block by using the selected optimal algorithm.
In operation S110, a block for the write operation may be allocated.
For example, the memory controller 110 (refer to
In operation S120, a start sub block may be selected based on status information of sub blocks.
For example, the sub block selector 111 (refer to
In operation S130, the write operation may be performed sequentially from the selected start sub block.
For example, the memory device 120 (refer to
Referring to
When it is determined that the sub blocks have similar sizes (S121, Yes), the random algorithm may be selected (S122). In this case, the sub block selector 111 may randomly select a start sub block among a plurality of sub blocks by using the random algorithm.
When it is determined that the sizes of the sub blocks are not similar to each other (S121, No), the procedure may proceed to operation S123.
In operation S123, whether data stored in sub blocks by a previous write operation are non-burst data and whether the block closing operation on a selected block is performed may be determined. For example, based on the I/O pattern information and the block closing information included in the feature table 112, the sub block selector 111 may determine whether the data stored in the sub blocks by the previous write operation are non-burst data and whether the block closing operation on the selected block is performed.
When it is determined that the data stored in the sub blocks by the previous write operation are non-burst data and the block closing operation on the selected block is performed (S123, Yes), the wrap-around algorithm may be selected (S124). In this case, the sub block selector 111 may select a start sub blocks by using the wrap-around algorithm. For example, when a first sub block is selected as a start sub block in the previous write operation, the sub block selector 111 may select a second sub block adjacent to the first sub block as a start sub block.
When it is determined that the data stored in the sub blocks by the previous write operation are burst data or the block closing operation on the selected block is not repeatedly performed (S123, No), the procedure may proceed to operation S125.
In operation S125, the erase count algorithm may be selected. The sub block selector 111 may select a sub block, in which the erase operation is smallest performed, as a start sub block by using the erase count algorithm.
As described above with reference to
For convenience of description, it is assumed that a k-th block BLK k is identically allocated to store data in each round. Also, it is assumed that the k-th block BLK k includes the first to third sub blocks SB1 to SB3 and the first to third sub blocks SB1 to SB3 are disposed adjacent to each other. Also, it is assumed that when each round starts, the first to third sub blocks SB1 to SB3 included in the k-th block BLK k are free sub blocks where data are not stored.
Referring to
In detail, referring to
For example, in a first round, the k-th block BLK k may be allocated to store data. The sub block selector 111 may select the first sub block SB1 among the first to third sub blocks SB1 to SB3 of the k-th block BLK k as a start sub block by using the random algorithm. In this case, in the first round, the write operation may proceed sequentially in the order of “SB1-SB3-SB2”.
For example, in a second round, the sub block selector 111 may select the first sub block SB1 as a start sub block by using the random algorithm, and the write operation may proceed sequentially in the order of “SB1-SB3-SB2”.
For example, in a third round, the sub block selector 111 may select the third sub block SB3 as a start sub block by using the random algorithm, and the write operation may proceed sequentially in the order of “SB3-SB2-SB1”.
For example, in an N-th round, the sub block selector 111 may select the second sub block SB2 as a start sub block by using the random algorithm, and the write operation may proceed sequentially in the order of “SB2-SB1-SB3”.
When the first to third sub blocks SB1 to SB3 have the same size or similar sizes, as described above, a start sub block may be randomly selected in each round. In the case of a related art write operation, the order of the write operation in each round may be always the same as, for example, the order of “SB3-SB2-SB1”. In contrast, according to an embodiment, the start sub block may be randomly selected in each round by using the random algorithm. Accordingly, as the round is repeated, the first to third sub blocks SB1 to SB3 may be uniformly used. This uniform use may mean that a specific sub block is prevented from being intensively used, that is, the disturb is capable of being minimized.
The description is given with reference to
As another example, when each round starts, the first to third sub blocks SB1 to SB3 included in the k-th block BLK k may be in a state where data are stored therein. When invalid data are present in a sub block where data are to be stored, the erase operation on the sub block may be first performed before data are stored therein. When valid data are present in a sub block where data are to be stored, an operation of copying the data present in the sub block to any other block and an operation of erasing the sub block may be first performed. This configuration and operation may be identically applied to embodiments of
For convenience of description, as in the above description given with reference to
Referring to
The data stored in the k-th block BLK k in the first round may be non-burst data. For example, data may be stored only in the third sub block SB3 among the first to third sub blocks SB1 to SB3 included in the k-th block BLK k.
After the non-burst data are stored in the k-th block BLK k in the first round, there may be no input/output of additional data for a long time. For example, after the non-burst data are stored in the third sub block SB3, there may be no input/output of additional data for a long time. In this case, the block closing operation on the k-th block BLK k may be performed.
In detail, for example, when the block closing operation is performed, the valid data present in the third sub block SB3 of the k-th block BLK k may be copied to any other block. In this case, the third sub block SB3 may be in a state where only invalid data are stored. That is, the third sub block SB3 may be in a state of being changeable into a free sub block through the erase operation anytime.
As another example, when the block closing operation is performed, the valid data present in the third sub block SB3 of the k-th block BLK k may be copied to any other block, and the erase operation on the third sub block SB3 may then be performed. Accordingly, there may be a state where all the first to third sub blocks SB1 to SB3 are free sub blocks.
As another example, when the block closing operation is performed, the valid data present in the third sub block SB3 of the k-th block BLK k may be copied to any other block, and dummy data may be stored in an empty space of the third sub block SB3. Afterwards, the erase operation on the third sub block SB3 may be performed. Accordingly, there may be a state where all the first to third sub blocks SB1 to SB3 are free sub blocks.
As described above, in the first round, the third sub block SB3 is selected as a start sub block, non-burst data are stored in the k-th block BLK k, and the block closing operation on the k-th block BLK k is performed. In this case, status information about a block selected in the first round and the first to third sub blocks SB1 to SB3 included in the selected block may be updated in a feature table 112B_1, as illustrated in
Referring to
In detail, the sub block selector 111 may check that the data I/O pattern are non-burst data and the block closing operation is performed, by referring to the feature table 112B_1 corresponding to the first round in which the previous write operation is performed. In this case, the sub block selector 111 may select a start sub block of the second round by using the wrap-around algorithm.
For example, as illustrated in
Referring to
In detail, the sub block selector 111 may check that the data I/O pattern are non-burst data and the block closing operation is performed, by referring to the feature table 112B_2 corresponding to the second round in which the previous write operation is performed. In this case, the sub block selector 111 may select a start sub block of the third round by using the wrap-around algorithm. For example, as illustrated in
As described above, when the block closing operation is performed in a state where data are stored only in some of a plurality of sub blocks in a previous write operation, a start sub block may be selected by using the wrap-around algorithm.
For convenience of description, as in the above description given with reference to
First, referring to
In the case of a related art write operation, the write operation may proceed in the fixed order of “SB3-SB2-SB1”. Accordingly, when a situation in which non-burst data are stored in the third sub block SB3 in each round is repeated, the write operation, the dummy write operation, and the erase operation may be intensively performed in the third sub block SB3.
In this case, as illustrated in
In contrast, a memory system according to an embodiment may use the first to third sub blocks SB1 to SB3 uniformly by using the wrap-around algorithm and may maintain the erase counts of the first to third sub blocks SB1 to SB3 uniformly.
For example, as illustrated in
As illustrated in
As a result, when the wrap-around algorithm according to an embodiment is applied, the erase count EC of each sub block may be maintained to be the same as “1”, without performing an unnecessary erase operation. Accordingly, a specific sub block may be prevented from being intensively used or erased. This may mean that the disturb is minimized.
For convenience of description, as in the above description given with reference to
Referring to
In this case, as illustrated in
When data are only stored in the second sub block SB2 in the M-th round and then there is no input/output of additional data for a long time, the block closing operation on the k-th block BLK k may be performed. In this case, the data stored in the second sub block SB2 may be copied to any other block, and then, only the second sub block SB2 may be erased. As a result, as only the second sub block SB2 with the smallest erase count EC is erased, the number of times of the erase operation of each of the first to third sub blocks SB1 to SB3 may be uniformly maintained.
Referring to
For example, as illustrated in
In operation S220, a start sub block may be selected based on status information of sub blocks.
For example, as illustrated in
In operation S230, a penalty value may be calculated.
For example, as illustrated in
In this case, to minimize the disturb, it may be advantageous to perform the erase operation on the second sub block SB2 adjacent to the third sub block SB3. Accordingly, the sub block selector 111 may set a negative value as a penalty value of the second sub block SB2 and may set a positive value as a penalty value of the first sub block SB1. For example, as illustrated in
In operation S240, whether a penalty value is greater than a threshold value may be determined.
When the penalty value is smaller than the threshold value (S240, No), operation S250 may be performed. In operation S250, the write operation may be performed sequentially from the start sub block selected in operation S220.
When the penalty value is greater than or equal to the threshold value (S240, Yes), operation S260 may be performed. In operation S260, a delay allocation algorithm may be applied, and a start sub block may be re-selected (i.e., a new sub block may be selected). Afterwards, in operation S270, the write operation may be performed sequentially from the re-selected start sub block (i.e., from the new sub block).
For example, referring to
According to the above description, a penalty value may be applied based on the status of each sub bock, and thus, the disturb may be minimized more effectively.
A memory system according to an embodiment may prevent a specific sub block from being intensively used by selecting a start sub block, in which a write operation is first to be performed, based on status information of sub blocks. Accordingly, the disturb may be minimized.
While various embodiments have been described with reference to the drawings, it will be apparent to those of ordinary skill in the art that various changes and modifications may be made thereto without departing from the spirit and scope of the present disclosure as set forth in the following claims.
| Number | Date | Country | Kind |
|---|---|---|---|
| 10-2024-0005848 | Jan 2024 | KR | national |