Patent ID: 12250004

DETAILED DESCRIPTION

Below, example embodiments of the present disclosure will be described in detail and clearly to such an extent that an ordinary one in the art easily implements the present disclosure. Below, the term “and/or” is interpreted as including any one of items listed with regard to the term, or a combination of some of the listed items.

FIG.1illustrates a storage device100according to an example embodiment of the present disclosure. Referring toFIG.1, the storage device100may include a nonvolatile memory device110, a memory controller120, and an external buffer130. The nonvolatile memory device110may include a plurality of memory cells. Each of the plurality of memory cells may store two or more bits.

For example, the nonvolatile memory device110may include at least one of various nonvolatile memory devices such as a flash memory device, a phase change memory device, a ferroelectric memory device, a magnetic memory device, and a resistive memory device.

The memory controller120may receive various requests for writing data in the nonvolatile memory device110or reading data from the nonvolatile memory device110from an external host device. The memory controller120may store (or buffer) user data, which are transmitted/received to/from the external host device, in the external buffer130and may store metadata for managing the storage device100in the external buffer130.

The memory controller120may access the nonvolatile memory device110through first signal lines SIGL1and second signal lines SIGL2. For example, the memory controller120may send a command and an address to the nonvolatile memory device110through the first signal lines SIGL1. The memory controller120may exchange data with the nonvolatile memory device110through the first signal lines SIGL1.

The memory controller120may send a first control signal to the nonvolatile memory device110through the second signal lines SIGL2. The memory controller120may receive a second control signal from the nonvolatile memory device110through the second signal lines SIGL2.

In an example embodiment, the memory controller120may be configured to control two or more nonvolatile memory devices. The memory controller120may provide first signal lines and second signal lines for each of the two or more nonvolatile memory devices.

As another example, the memory controller120may share the first signal lines with respect to the two or more nonvolatile memory devices. The memory controller120may share some of the second signal lines with respect to the two or more nonvolatile memory devices and may separately provide the others thereof.

The external buffer130may include a random access memory. For example, the external buffer130may include at least one of a dynamic random access memory, a phase change random access memory, a ferroelectric random access memory, a magnetic random access memory, or a resistive random access memory.

The memory controller120may include a bus121, a host interface122, an internal buffer123, a processor124, a buffer controller125, a memory manager126, and an error correction code (ECC) block127.

The bus121may provide communication channels between the components in the memory controller120. The host interface122may receive various requests from the external host device and may parse the received requests. The host interface122may store the parsed requests in the internal buffer123.

The host interface122may send various responses to the external host device. The host interface122may exchange signals with the external host device in compliance with a given communication protocol. The internal buffer123may include a random access memory. For example, the internal buffer123may include a static random access memory or a dynamic random access memory.

The processor124may drive an operating system or firmware for an operation of the memory controller120. The processor124may read the parsed requests stored in the internal buffer123and may generate command and addresses for controlling the nonvolatile memory device110. The processor124may provide the generated command and addresses to the memory manager126.

The processor124may store various metadata for managing the storage device100in the internal buffer123. The processor124may access the external buffer130through the buffer controller125. The processor124may control the buffer controller125and the memory manager126such that the user data stored in the external buffer130are provided to the nonvolatile memory device110.

The processor124may control the host interface122and the buffer controller125such that the data stored in the external buffer130are provided to the external host device. The processor124may control the buffer controller125and the memory manager126such that the data received from the nonvolatile memory device110are stored in the external buffer130. The processor124may control the host interface122and the buffer controller125such that the data received from the external host device are stored in the external buffer130.

Under control of the processor124, the buffer controller125may write data in the external buffer130or may read data from the external buffer130. The memory manager126may communicate with the nonvolatile memory device110through the first signal lines SIGL1and the second signal lines SIGL2under control of the processor124.

The memory manager126may access the nonvolatile memory device110under control of the processor124. For example, the memory manager126may access the nonvolatile memory device110through the first signal lines SIGL1and the second signal lines SIGL2. The memory manager126may communicate with the nonvolatile memory device110, based on a protocol that is defined in compliance with the standard or is defined by a manufacturer.

The error correction code block127may perform error correction encoding on data to be transmitted to the nonvolatile memory device110by using an error correction code ECC. The error correction code block127may perform error correction decoding on data received from the nonvolatile memory device110by using the error correction code ECC.

In an example embodiment, the storage device100may not include the external buffer130and the buffer controller125. When the external buffer130and the buffer controller125are not included in the storage device100, the above functions of the external buffer130and the buffer controller125may be performed by the internal buffer123.

FIG.2is a block diagram illustrating a nonvolatile memory device200according to an example embodiment of the present disclosure. Referring toFIG.2, the nonvolatile memory device200includes a memory cell array210, a row decoder block220, a page buffer block230, a pass/fail check block (PFC)240, a data input and output block250, a buffer block260, and a control logic block270. The term “block” may be used to express the components of the nonvolatile memory device200, but the “block” may include a circuit implemented with hardware or may include a circuit implemented with hardware and software or firmware driven on the circuit.

The memory cell array210includes a plurality of memory blocks BLK1 to BLKz. Each of the memory blocks BLK1 to BLKz includes a plurality of memory cells. Each of the memory blocks BLK1 to BLKz may be connected with the row decoder block220through at least one ground selection line GSL, word lines WL, and at least one string selection line SSL. Some of the word lines WL may be used as dummy word lines. Each of the memory blocks BLK1 to BLKz may be connected with the page buffer block230through a plurality of bit lines BL. The plurality of memory blocks BLK1 to BLKz may be connected in common with the plurality of bit lines BL.

In an example embodiment, each of the memory blocks BLK1 to BLKz may be a unit of an erase operation. Memory cells belonging to each of the memory blocks BLK1 to BLKz may be erased at the same time. As another example, each of the memory blocks BLK1 to BLKz may be divided into a plurality of sub-blocks. Each of the plurality of sub-blocks may correspond to a unit of the erase operation.

The row decoder block220is connected with the memory cell array210through the ground selection lines GSL, the word lines WL, and the string selection lines SSL. The row decoder block220operates under control of the control logic block270(e.g., the row recorder block receives commands from the control logic block270and operates based on the received commands).

The row decoder block220may decode a row address RA received from the buffer block260and may control voltages to be applied to the string selection lines SSL, the word lines WL, and the ground selection lines GSL based on the decoded row address.

The page buffer block230is connected with the memory cell array210through the plurality of bit lines BL. The page buffer block230is connected with the data input and output block250through a plurality of data lines DL. The page buffer block230operates under control of the control logic block270.

In a program operation, the page buffer block230may store data to be written in memory cells (e.g., the page buffer block230may temporarily store data until it is written in the memory cells). The page buffer block230may apply voltages to the plurality of bit lines BL based on the stored data. In a read operation or in a verify read operation that is performed in the program operation or the erase operation, the page buffer block230may sense voltages of the bit lines BL and may store a sensing result.

In the verify read operation associated with the program operation or the erase operation, the pass/fail check block240may verify the sensing result of the page buffer block230. For example, in the verify read operation associated with the program operation, the pass/fail check block240may count the number of values (e.g., the number of 0s) respectively corresponding to on-cells that are not programmed to a target threshold voltage or more.

In the verify read operation associated with the erase operation, the pass/fail check block240may count the number of values (e.g., the number of 1s) respectively corresponding to off-cells that are not erased to a target threshold voltage or less. When a counting result is greater than or equal to a threshold value, the pass/fail check block240may output a signal indicating a fail to the control logic block270. When the counting result is smaller than the threshold value, the pass/fail check block240may output a signal indicating a pass to the control logic block270. Depending on a verification result of the pass/fail check block240, a program loop of the program operation may be further performed, or an erase loop of the erase operation may be further performed.

The data input and output block250is connected with the page buffer block230through the plurality of data lines DL. The data input and output block250may receive a column address CA from the buffer block260. The data input and output block250may output the data read by the page buffer block230to the buffer block260depending on the column address CA. The data input and output block250may provide the data received from the buffer block260to the page buffer block230, based on the column address CA.

Through the first signal lines SIGL1, the buffer block260may receive a command CMD and an address ADDR from an external device and may exchange data “DATA” with the external device. The buffer block260may operate under control of the control logic block270. The buffer block260may provide the command CMD to the control logic block270. The buffer block260may provide the row address RA of the address ADDR to the row decoder block220and may provide the column address CA of the address ADDR to the data input and output block250. The buffer block260may exchange the data “DATA” with the data input and output block250.

The control logic block270may exchange a control signal CTRL with the external device through the second signal lines SIGL2. The control logic block270may allow the buffer block260to route the command CMD, the address ADDR, and the data “DATA”. The control logic block270may decode the command CMD received from the buffer block260and may control the nonvolatile memory device200based on the decoded command.

In an example embodiment, the nonvolatile memory device200may be manufactured in a bonding manner. The memory cell array210may be manufactured at a first wafer, and the row decoder block220, the page buffer block230, the data input and output block250, the buffer block260, and the control logic block270may be manufactured at a second wafer. The nonvolatile memory device200may be implemented by coupling the first wafer and the second wafer such that an upper surface of the first wafer and an upper surface of the second wafer face each other.

For another example, the nonvolatile memory device200may be manufactured in a cell over peri (COP) manner A peripheral circuit including the row decoder block220, the page buffer block230, the data input and output block250, the buffer block260, and the control logic block270may be implemented on a substrate. The memory cell array210may be implemented over the peripheral circuit. The peripheral circuit and the memory cell array210may be connected by using through vias.

FIG.3is a circuit diagram illustrating an example of one memory block BLKa of the memory blocks BLK1 to BLKz ofFIG.2. Referring toFIG.3, a plurality of cell strings CS11, CS12, CS21, and CS22may be arranged on a substrate SUB in rows and columns. Each row may extend in a first direction. Each column may extend in a second direction. The second direction may be perpendicular to the first direction. The plurality of cell strings CS11, CS12, CS21, and CS22may be connected in common with a common source line CSL formed on (or in) the substrate SUB. InFIG.3, a location of the substrate SUB is depicted as an example for better understanding of the structure of the memory block BLKa.

Cell strings of each row may be connected in common with the ground selection line GSL and may be connected with corresponding string selection lines of first and string selection lines SSL1aand SSL1band second string selection lines SSL2ato SSL2b. Cell strings of each column may be connected with a corresponding bit line of first and second bit lines BL1and BL2.

Each cell string may include at least one ground selection transistor GST connected with the ground selection line GSL, and a plurality of memory cells MC1to MC8respectively connected with a plurality of word lines WL1to WL8. Cell strings of a first row may further include string selection transistors SSTa and SSTb connected with the first string selection lines SSL1aand SSL1b. Cell strings of a second row may further include string selection transistors SSTa and SSTb connected with the second string selection lines SSL2aand SSL2b.

In each cell string, the ground selection transistor GST, the memory cells MC1to MC8, and the string selection transistors SSTa and SSTb may be connected in series in a direction perpendicular to the substrate SUB, for example, a third direction and may be stacked, for example sequentially stacked, in the direction perpendicular to the substrate SUB. the third direction may be perpendicular to the first and second directions. In each of the cell strings CS11, CS12, CS21, and CS22, at least one of the memory cells MC1to MC8may be used as a dummy memory cell. The dummy memory cell may not be programmed (e.g., may be program-inhibited) or may be programmed differently from the remaining memory cells of the memory cells MC1to MC8other than the dummy memory cell.

In an example embodiment, memory cells that are placed at the same height and are associated with one string selection line SSL1a, SSL1b, SSL2a, or SSL2bmay form one physical page. Memory cells of one physical page may be connected with one sub word line. Sub-word lines of physical pages located at the same height may be connected in common with one word line. Below the term “word line” may be used to indicate a word line or a sub-word line and may be interpreted based on the context.

An example embodiment in which the memory block BLKa includes the cell strings CS11, CS12, CS21, and CS22at intersections of a first row corresponding to the first string selection lines, a second row corresponding to the second string selection lines, a first column corresponding to the first bit line BL, and a second column corresponding to the second bit line BL2is illustrated, but rows and columns of cell strings included in the memory block BLKa are not limited in number.

FIG.4is a diagram illustrating an example of threshold voltages of memory cells MC. InFIG.4, a horizontal axis represents a threshold voltage VTH of the memory cells MC, and a vertical axis represents the number of memory cells MC. Referring toFIGS.1,2,3, and4, in response to a write command from the memory controller120, the nonvolatile memory device110or200may perform the write operation such that each of the memory cells MC selected for the write operation (e.g., selected by the address ADDR) has a threshold voltage corresponding to one of an erase state “E”, a first program state P1, a second program state P2, a third program state P3, a fourth program state P4, a fifth program state P5, a sixth program state P6, and a seventh program state P7.

In response to a read command from the memory controller120, the nonvolatile memory device110or200may perform the read operation to identify states of threshold voltages of the memory cells MC selected for the read operation (e.g., selected by the address ADDR) by using a first voltage V1, a second voltage V2, a third voltage V3, a fourth voltage V4, a fifth voltage V5, a sixth voltage V6, and a seventh voltage V7.

The data that the memory controller120reads from the nonvolatile memory device110or200may include an error. For example, in the write operation, there may occur an error that the threshold voltages of the memory cells MC are programmed to be higher or lower than a voltage range of a target state. In the read operation, there may occur an error that the threshold voltages of the memory cells MC have a state different from the target state. Also, there may occur the following error: after the memory cells MC are programmed to have threshold voltages within a threshold voltage range of the target state, the threshold voltages of the memory cells MC may increase or decrease.

To correct the above errors, the memory controller120may use the error correction code block127. The error correction code block127may include a circuit implemented with hardware or may include a circuit implemented with hardware and software or firmware driven on the circuit. The memory controller120may attempt to correct the error of the read data by performing error correction decoding by using the error correction code block127. When the error correction performed by the error correction code block127fails, the memory controller120may perform subsequent operations for error correction depending on a given error correction policy.

The memory controller120of the storage device100according to an example embodiment of the present disclosure may perform error correction with an improved speed by adaptively determining a procedure of the error correction operation instead of performing the error correction operation depending on a given procedure.

FIG.5illustrates an example of an operating method of the storage device100according to an example embodiment of the present disclosure. Referring toFIGS.1,2,3,4, and5, in operation S110, the storage device100may perform the read operation. For example, the memory controller120may send a read command to the nonvolatile memory device110or200. The nonvolatile memory device110or200may perform the read operation in response to the read command. The read operation may be performed by using default read voltages or by using read voltages determined based on a read history (e.g., including read voltages of at least one previous read operation). The nonvolatile memory device110or200may send the read data to the memory controller120.

In operation S120, the memory controller120of the storage device100may estimate an error rate of the read data. In operation S130, the memory controller120of the storage device100may select and perform one of different sub-operations of the error correction operation based on the estimated error rate.

Error correction decoding on the read data uses time and consumes power and thus may lead to delays in further operations with the read data and may increase power consumption of the storage device100. The memory controller120of the storage device100according to an example embodiment of the present disclosure may estimate the error rate before the error correction decoding. The memory controller120may determine whether to perform or omit the error correction decoding, based on the estimated error rate.

For example, when the memory controller120determines that the error correction decoding will fail, the memory controller120may reduce the time and power consumption of the error correction decoding by omitting the error correction decoding. When the memory controller120determines that the error correction decoding will succeed, the memory controller120may quickly obtain the error-corrected data by performing the error correction decoding. That is, the storage device100according to an example embodiment of the present disclosure may improve a speed at which the error correction operation is performed, by adaptively adjusting and performing the procedure of the error correction operation.

FIG.6is a diagram illustrating an example of a first error correction operation. Referring toFIGS.1and6, in operation S210, the memory controller120may receive the read request from the external host device. In response to the read request, in operation S215, the memory controller120may send a first read command to the nonvolatile memory device110.

In response to the first read command, in operation S220, the nonvolatile memory device110may perform a first read operation. In an example embodiment, as described with reference toFIG.4, the nonvolatile memory device110may perform the read operation by using one read voltage between two adjacent states. The read voltage may be a default read voltage or a read voltage that is determined based on a read history. In operation S225, the nonvolatile memory device110may send first read data to the memory controller120.

In operation S230, the memory controller120may perform syndrome calculation. For example, the memory controller120may calculate a syndrome vector (e.g., a one-dimensional matrix) by multiplying the first read data and a parity check matrix together. The syndrome vector may include a value of “0” or “1”. The memory controller120may estimate the ratio of “1” in the syndrome vector as an error rate ER.

In operation S235, the memory controller120may determine whether the estimated error rate ER is greater than a first threshold value VCR1. In an example embodiment, the first threshold value VCR1may be input to the memory controller120in the process of manufacturing the storage device100or may be set and adjusted by the external host device.

When the estimated error rate ER is greater than the first threshold value VCR1, the memory controller120may omit the error correction decoding and may perform a second error correction operation ofFIG.9. When the estimated error rate ER is not greater than the first threshold value VCR1, that is, when the estimated error rate ER is equal to or smaller than the first threshold value VCR1, in operation S240, the memory controller120may perform LDPC (Low Density Parity Check) decoding. In an example embodiment, the LDPC decoding in operation S240may be hard decision decoding.

In operation S245, the memory controller120may determine whether an error of the first read data is corrected. When the memory controller120determines that the error of the first read data is corrected, in operation S250, the memory controller120may output the error-corrected first read data to the external host device. Afterwards, the read operation and the error correction operation according to the read request in operation S210may end.

When the memory controller120determines that the error of the first read data is not corrected, in operation S255, the memory controller120may determine whether the hard decision decoding is performed as much as the maximum (or alternatively, threshold) number of times of iteration ITR. For example, the maximum (or alternatively, threshold) number of times of iteration ITR may be a positive integer of 1 or more. When the memory controller120determines that the hard decision decoding is performed as much as the maximum (or alternatively, threshold) number of times of iteration ITR, the memory controller120may determine that the hard decision decoding fails. When the hard decision decoding fails, the memory controller120may perform the second error correction operation ofFIG.9or a third error correction operation ofFIG.13.

The memory controller120may be implemented to perform the second error correction operation ofFIG.9or the third error correction operation ofFIG.13when the hard decision decoding fails. The memory controller120may be implemented to perform the second error correction operation ofFIG.9and the third error correction operation ofFIG.13when the hard decision decoding fails. Hard decision decoding, which will be performed by the memory controller120when the hard decision decoding fails, from among the second error correction operation ofFIG.9and the third error correction operation ofFIG.13may be set by the external host device.

When the memory controller120determines that the hard decision decoding is not performed as much as the maximum (or alternatively, threshold) number of times of iteration ITR, the memory controller120may again perform operation S230. As another example, the memory controller120may again return to operation S240. The memory controller120may perform the LDPC decoding in a state of fixing or adjusting a decoding parameter of the LDPC decoding. The decoding parameter may include parameters or initial likelihood values that are used to generate a C2V message at a check node or to generate a V2C message at a variable node.

As another example, the memory controller120may again return to operation S215. The memory controller120may again send the first read command including information of levels of read voltages to the nonvolatile memory device110such that the nonvolatile memory device110changes levels of read voltages to perform the read operation.

As another example, the memory controller120may send a command to the nonvolatile memory device110such that the nonvolatile memory device110performs a valley search operation to detect voltage levels of valleys. The memory controller120may receive the valley voltage levels from the nonvolatile memory device110. The memory controller120may again send the first read command including information of levels of read voltages corresponding to the valley voltage levels to the nonvolatile memory device110.

FIG.7is a diagram illustrating an example of a read voltage. InFIG.7, a horizontal axis represents threshold voltages Vth of memory cells, and a vertical axis represents the number of memory cells. A first state S1may be one of the erase state “E”, the first program state P1, the second program state P2, the third program state P3, the fourth program state P4, the fifth program state P5, and the sixth program state P6ofFIG.4. A second state S2may be adjacent to the first state S1, may have a higher threshold voltage range than the first state S1, and may be one of the first program state P1, the second program state P2, the third program state P3, the fourth program state P4, the fifth program state P5, the sixth program state P6, and the seventh program state P7.

Referring toFIGS.1,2,6, and7, the nonvolatile memory device110may perform the read operation by a first read voltage VR1(S220). The hard decision decoding that the memory controller120performs on first read data read by using the first read voltage VR1may fail. When the hard decision decoding fails, the memory controller120may perform valley search and may again perform operation S215.

FIG.8is a diagram illustrating an example in which a valley search operation is performed. InFIG.8, a horizontal axis represents threshold voltages Vth of memory cells, and a vertical axis represents the number of memory cells. Referring toFIGS.1,2,6, and8, the nonvolatile memory device110may perform the read operation by using a second read voltage VR2and a third read voltage VR3lower than the first read voltage VR1and a fourth read voltage VR4and a fifth read voltage VR5higher than the first read voltage VR1.

The nonvolatile memory device110may count the number of memory cells whose threshold voltages are between adjacent read voltages. For example, the nonvolatile memory device110may count the number of memory cells whose threshold voltages are between the third read voltage VR3and the second read voltage VR2, the number of memory cells whose threshold voltages are between the second read voltage VR2and the first read voltage VR1, the number of memory cells whose threshold voltages are between the first read voltage VR1and the fourth read voltage VR4, and the number of memory cells whose threshold voltages are between the fourth read voltage VR4and the fifth read voltage VR5.

The nonvolatile memory device110may determine the fourth read voltage VR as a valley based on changes of count values. The nonvolatile memory device110may output information about the level of the fourth read voltage VR4, a first count value CT1indicating the number of memory cells in a period adjacent to the valley, and a second count value CT2indicating the number of memory cells in a period adjacent to the valley.

As another example, the nonvolatile memory device110may output count values or read results to the memory controller120. The memory controller120may determine the fourth read voltage VR as a valley based on the count values or the read results.

In an example embodiment, the memory controller120may determine whether the valley search succeeds, based on the first count value CT1and the second count value CT2. When the first count value CT1and the second count value CT2are greater than a reference value, the memory controller120may determine that the valley search fails. When the first count value CT1and the second count value CT2are equal to or smaller than the reference value, the memory controller120may determine that the valley search succeeds. The reference value may be input to the memory controller120in the process of manufacturing the storage device100or may be set and adjusted by the external host device. When the valley search fails, the memory controller120may again perform the valley search or may perform any other error correction operation.

The valley search described with reference toFIGS.7and8may be performed in respective periods between the erase state “E” and the first program state P1, between the first program state P1and the second program state P2, between the second program state P2and the third program state P3, between the third program state P3and the fourth program state P4, between the fourth program state P4and the fifth program state P5, between the fifth program state P5and the sixth program state P6, and between the sixth program state P6and the seventh program state P7or may be performed in at least one of the periods. A read voltage between states that does not experience the valley search may be calculated by adding an offset to a voltage level of a valley between states that experience the valley search.

In an example embodiment, in operation S235ofFIG.6, when the error rate ER is greater than the first threshold value VCR1, the memory controller120may be implemented to perform the valley search instead of performing the second error correction operation ofFIG.9. The memory controller120may adjust levels of read voltages through the valley search and may return to operation S210.

In an example embodiment, the memory controller120may be implemented to perform operation S210after performing the valley search. In an example embodiment, when the first error correction operation ends in a state where the valley search is not performed, the valley search may be performed before the second error correction operation or the third error correction operation is performed.

FIG.9is a diagram illustrating an example of a second error correction operation. Referring toFIGS.1and9, in operation S310, the memory controller120may send a second read command to the nonvolatile memory device110. The second read command may be different from the first read command. In response to the second read command, in operation S320, the nonvolatile memory device110may perform a second read operation. The second read operation may be different to the first read operation.

In the second read operation, the nonvolatile memory device110may generate second read data and third read data. The size of each of the second read data and the third read data may be equal to the size of the first read data. In operation S330, the nonvolatile memory device110may send the second read data to the memory controller120. In operation S340, the nonvolatile memory device110may send the third read data to the memory controller120.

In operation S350, the memory controller120may perform soft decision decoding (e.g., first soft decision decoding). The memory controller120may perform the soft decision decoding based on the first read data, the second read data, and the third read data. Because both the second read data and the third read data for the soft decision decoding are obtained through one read operation (S320), the soft decision decoding in operation S350may be referred to as “fast soft decision decoding”.

In operation S360, the memory controller120may determine whether an error of the first read data is corrected. When the memory controller120determines that the error of the first read data is corrected, in operation S370, the memory controller120may output the error-corrected first read data to the external host device. Afterwards, the read operation and the error correction operation according to the read request in operation S210may end.

When the error of the first read data is not corrected, the memory controller120may perform the third error correction operation ofFIG.12.

FIG.10is a diagram illustrating an example of read voltages necessary for soft decision decoding. InFIG.10, a horizontal axis represents a threshold voltage VTH of a memory cell, and a vertical axis represents the number of memory cells.

The fourth read voltage VR4may correspond to a valley. In an example embodiment, the fourth read voltage VR4may be identified by the valley search described with reference toFIG.8. Under control of the memory controller120, the nonvolatile memory device110may generate the second read data and the third read data corresponding to results of the read operations that use the sixth read voltage VR6lower than the fourth read voltage VR4and the seventh read voltage VR7higher than the fourth read voltage VR4.

FIG.11is a diagram illustrating an example of the process in which the nonvolatile memory device200generates a second read voltage and a third read voltage. Referring toFIGS.2,3,10, and11, in a precharge period, the row decoder block220may apply a turn-off voltage VOFF to a selected string selection line SSL and a selected ground selection line GSL, may apply the turn-off voltage VOFF to an unselected string selection line SSL and an unselected ground selection line GSL, may apply the turn-off voltage VOFF to a selected word line WL, and may apply the turn-off voltage VOFF to an unselected word line WL.

The turn-off voltage VOFF may turn off relevant string selection transistors SSTa and SSTb, relevant ground selection transistors GST, and relevant memory cells MC1to MC8. In the precharge period, the page buffer block230may apply a precharge voltage VPRE to the bit lines BL after applying a ground voltage VSS to the bit lines BL.

In a develop period, the row decoder block220may apply a turn-on voltage VON to the selected string selection lines SSL and the selected ground selection lines GSL. The turn-on voltage VON may turn on relevant string selection transistors SSTa and SSTb and relevant ground selection transistors GST.

In the develop period, the row decoder block220may apply the seventh read voltage VR7to the selected word line WL and may apply a read pass voltage VREAD to the unselected word lines WL. The read pass voltage VREAD may turn on the relevant memory cells MC1to MC8.

Memory cells each having a threshold voltage higher than the seventh read voltage VR7from among memory cells connected with a selected word line may be turned off. Accordingly, a voltage of the bit line BL connected with a relevant memory cell from among the bit lines BL may be maintained at the precharge voltage VPRE.

In a latch period, the page buffer block230may latch read data (e.g., the second read data or the third read data) corresponding to the seventh read voltage VR7. In a recovery period, the voltages of the string selection lines SSL, the ground selection lines GSL, and the word lines WL, and the bit lines BL may be recovered.

A memory cell (e.g., a ninth memory cell) having a threshold voltage (e.g., a first threshold voltage) slightly lower than the seventh read voltage VR7from among memory cells connected with a selected word line may be weakly turned on. Accordingly, a voltage of the bit line BL connected with the ninth memory cell from among the bit lines BL may slowly decrease like a first line L1.

The amount of cell current flowing through a memory cell (e.g., a tenth memory cell) having a threshold voltage (e.g., a second threshold voltage) lower than the first threshold voltage from among the memory cells connected with the selected word line may be greater than the amount of cell current flowing through the ninth memory cell having the first threshold voltage. Accordingly, a voltage of the bit line BL connected with the tenth memory cell from among the bit lines BL may decrease relatively quickly like a second line L2, compared to the first line L1.

The amount of cell current flowing through a memory cell (e.g., an eleventh memory cell) having a threshold voltage (e.g., a third threshold voltage) lower than the second threshold voltage from among the memory cells connected with the selected word line may be greater than the amount of cell current flowing through the tenth memory cell having the second threshold voltage. Accordingly, a voltage of the bit line BL connected with the eleventh memory cell from among the bit lines BL may decrease relatively quickly like a third line L3, compared to the second line L2.

In an example embodiment, when the voltage of the bit line BL is lower than a reference voltage VREF, the page buffer block230may identify that the memory cell connected with the bit line BL is turned on. When the voltage of the bit line BL is equal to or higher than the reference voltage VREF, the page buffer block230may identify that the memory cell connected with the bit line BL is turned off.

In the case of sensing the voltage of the bit line BL after a first time T1, the nonvolatile memory device200may identify that all of the ninth memory cell, the tenth memory cell, and the eleventh memory cell are turned on. In the case of sensing the voltage of the bit line BL between the first time T1and a second time T2, the nonvolatile memory device200may identify that the ninth memory cell is turned off and the tenth memory cell and the eleventh memory cell are turned on.

As described above, when the voltage of the bit line BL is sensed before the first time T1, a similar effect occurs as the voltage applied to the selected word line WL is lowered. By adjusting the timing to latch, the page buffer block230may generate read data (e.g., the third read data or the second read data) corresponding to data that are read when the sixth read voltage VR6is applied to the selected word line WL.

FIG.12is a diagram illustrating an example of a third error correction operation. Referring toFIGS.1and12, in operation S410, the memory controller120may send a third read command to the nonvolatile memory device110. The third read command may be different from the first read command or the second read command. The third read command may include information about a level of a read voltage (e.g., the sixth read voltage VR6). In response to the third read command, in operation S415, the nonvolatile memory device110may perform a third read operation. For example, the nonvolatile memory device110may perform the read operation by using the sixth read voltage VR6.

In the third read operation, the nonvolatile memory device110may generate fourth read data. In operation S420, the nonvolatile memory device110may send the third read data to the memory controller120.

In operation S425, the memory controller120may send a fourth read command to the nonvolatile memory device110. The fourth read command may be different from the first read command, the second read command, or the third read command. The fourth read command may include information about a level of a read voltage (e.g., the seventh read voltage VR7). In response to the fourth read command, in operation S430, the nonvolatile memory device110may perform a fourth read operation. For example, the nonvolatile memory device110may perform the read operation by using the seventh read voltage VR7. In the fourth read operation, the nonvolatile memory device110may generate fifth read data. In operation S435, the nonvolatile memory device110may send the fifth read data to the memory controller120.

In operation S440, the memory controller120may perform soft decision decoding (e.g., second soft decision decoding). The memory controller120may perform the soft decision decoding based on the first read data, the fourth read data, and the fifth read data.

In operation S445, the memory controller120may determine whether an error of the first read data is corrected. When the memory controller120determines that the error of the first read data is corrected, in operation S450, the memory controller120may output the error-corrected first read data to the external host device. Afterwards, the read operation and the error correction operation according to the read request in operation S210may end.

When the error of the first read data is not corrected, the memory controller120may end the third error correction operation. Afterwards, the memory controller120may notify the external host device that an uncorrectable error occurs. Alternatively, the memory controller120may further perform a subsequent error correction operation defined by the error correction policy.

The third error correction operation is performed based on the fourth read data and the fifth read data that are respectively read by using the sixth read voltage VR6and the seventh read voltage VR7. Accordingly, the reliability of the third error correction operation may be higher than the reliability of the second error correction operation.

As described above, a storage device according to an example embodiment of the present disclosure is configured to perform hard decision decoding or fast soft decision decoding based on an estimated error rate. Accordingly, a time taken for the storage device100to perform error correction is shortened.

FIG.13is a diagram illustrating an example in which the storage device100estimates an error rate within loops of error correction decoding and adaptively ends the loops of the error correction decoding depending on the estimated error rate. Referring toFIGS.1and13, in operation S510, the memory controller120may perform an LDPC decoding loop. For example, the LDPC decoding loop may include generating a V2C message to update a check node and generating a C2V message to update a variable node.

In operation S520, the memory controller120may perform syndrome calculation. For example, the memory controller120may calculate a syndrome vector (e.g., a one-dimensional matrix) by multiplying a result of the LDPC decoding loop and the parity check matrix together. The syndrome vector may include a value of “0” or “1”. The memory controller120may estimate the ratio of “1” in the syndrome vector as the error rate ER.

In operation S530, the memory controller120may determine whether the estimated error rate ER is “0”. When the estimated error rate ER is “0”, in operation S540, the memory controller120may determine that the error is corrected and may end the LDPC decoding.

When the estimated error rate ER is not “0”, in operation S550, the memory controller120may determine whether the estimated error rate ER is greater than a second threshold value VCR2. The second threshold value VCR2, for example, an initial value of the second threshold value VCR2may be input to the memory controller120in the process of manufacturing the storage device100or may be set and adjusted by the external host device.

When the estimated error rate ER is greater than the second threshold value VCR2, in operation S580, the memory controller120may determine that the error is not corrected and may end the LDPC decoding. When the estimated error rate ER is not greater than the second threshold value VCR2, that is, when the estimated error rate ER is equal to or smaller than the second threshold value VCR2, in operation S560, the memory controller120may determine whether an LDPC decoding loop is a max loop.

When the memory controller120determines that the LDPC decoding loop is the max loop, in operation S580, the memory controller120may determine that the error is not corrected and may end the LDPC decoding. When the memory controller120determines that the LDPC decoding loop is not the max loop, in operation5570, the memory controller120may decrease the second threshold value VCR2. Afterwards, the memory controller120may return to operation S510.

In an example embodiment, when the LDPC decoding loops are correctly performed, as the LDPC decoding loop is iterated, the reliability of a result of the LDPC decoding loop may increase, and the error rate may decrease. By decreasing the second threshold value VCR2as the LDPC decoding loop is iterated, whether the LDPC decoding loop is not correctly performed in a state of failing to decrease the error rate may be determined.

In an example embodiment, the operations of estimating the error rate ER and comparing the estimated error rate ER and the second threshold value VCR2may be performed at a period composed of two or more LDPC decoding loops. The operation of decreasing the second threshold value VCR2may be performed at a period composed of two or more LDPC decoding loops or at a period composed of two or more operations of comparing the estimated error rate ER and the second threshold value VCR2.

FIG.14is a diagram of a system1000to which a storage device is applied, according to an example embodiment. The system1000ofFIG.14may basically be a mobile system, such as a portable communication terminal (e.g., a mobile phone), a smartphone, a tablet personal computer (PC), a wearable device, a healthcare device, or an Internet of things (IOT) device. However, the system1000ofFIG.14is not necessarily limited to the mobile system and may be a PC, a laptop computer, a server, a media player, or an automotive device (e.g., a navigation device).

Referring toFIG.14, the system1000may include a main processor1100, memories (e.g.,1200aand1200b), and storage devices (e.g.,1300aand1300b). In addition, the system1000may include at least one of an image capturing device1410, a user input device1420, a sensor1430, a communication device1440, a display1450, a speaker1460, a power supplying device1470, and a connecting interface1480.

The main processor1100may control all operations of the system1000, more specifically, operations of other components included in the system1000. The main processor1100may be implemented as a general-purpose processor, a dedicated processor, or an application processor.

The main processor1100may include at least one CPU core1110and further include a controller1120configured to control the memories1200aand1200band/or the storage devices1300aand1300b. In some example embodiments, the main processor1100may further include an accelerator1130, which is a dedicated circuit for a high-speed data operation, such as an artificial intelligence (AI) data operation. The accelerator1130may include a graphics processing unit (GPU), a neural processing unit (NPU) and/or a data processing unit (DPU) and be implemented as a chip that is physically separate from the other components of the main processor1100.

The memories1200aand1200bmay be used as main memory devices of the system1000. Although each of the memories1200aand1200bmay include a volatile memory, such as static random access memory (SRAM) and/or dynamic RAM (DRAM), each of the memories1200aand1200bmay include non-volatile memory, such as a flash memory, phase-change RAM (PRAM) and/or resistive RAM (RRAM). The memories1200aand1200bmay be implemented in the same package as the main processor1100.

The storage devices1300aand1300bmay serve as non-volatile storage devices configured to store data, regardless of whether power is supplied thereto, and have larger storage capacity than the memories1200aand1200b. The storage devices1300aand1300bmay respectively include storage controllers (STRG CTRL)1310aand1310band NVMs (Non-Volatile Memories)1320aand1320bconfigured to store data via the control of the storage controllers1310aand1310b. Although the NVMs1320aand1320bmay include flash memories having a two-dimensional (2D) structure or a three-dimensional (3D) V-NAND structure, the NVMs1320aand1320bmay include other types of NVMs, such as PRAM and/or RRAM.

The storage devices1300aand1300bmay be physically separated from the main processor1100and included in the system1000or implemented in the same package as the main processor1100. In addition, the storage devices1300aand1300bmay have types of solid-state devices (SSDs) or memory cards and be removably combined with other components of the system1000through an interface, such as the connecting interface1480that will be described below. The storage devices1300aand1300bmay be devices to which a standard protocol, such as a universal flash storage (UFS), an embedded multi-media card (eMMC), or a non-volatile memory express (NVMe), is applied, without being limited thereto.

The image capturing device1410may capture still images or moving images. The image capturing device1410may include a camera, a camcorder, and/or a webcam.

The user input device1420may receive various types of data input by a user of the system1000and include a touch pad, a keypad, a keyboard, a mouse, and/or a microphone.

The sensor1430may detect various types of physical quantities, which may be obtained from the outside of the system1000, and convert the detected physical quantities into electric signals. The sensor1430may include a temperature sensor, a pressure sensor, an illuminance sensor, a position sensor, an acceleration sensor, a biosensor, and/or a gyroscope sensor.

The communication device1440may transmit and receive signals between other devices outside the system1000according to various communication protocols. The communication device1440may include an antenna, a transceiver, and/or a modem.

The display1450and the speaker1460may serve as output devices configured to respectively output visual information and auditory information to the user of the system1000.

The power supplying device1470may appropriately convert power supplied from a battery (not shown) embedded in the system1000and/or an external power source and supply the converted power to each of components of the system1000.

The connecting interface1480may provide connection between the system1000and an external device, which is connected to the system1000and capable of transmitting and receiving data to and from the system1000. The connecting interface1480may be implemented by using various interface schemes, such as advanced technology attachment (ATA), serial ATA (SATA), external SATA (e-SATA), small computer small interface (SCSI), serial attached SCSI (SAS), peripheral component interconnection (PCI), PCI express (PCIe), NVMe, IEEE 1394, a universal serial bus (USB) interface, a secure digital (SD) card interface, a multi-media card (MMC) interface, an eMMC interface, a UFS interface, an embedded UFS (eUFS) interface, and a compact flash (CF) card interface.

In an example embodiment, the storage device100described with reference toFIGS.1to13may be implemented with the storage devices1300aand1300b. The storage devices1300aand1300bmay differently perform the error correction operation based on an error rate. When the error rate is greater than the first threshold value VCR1, the storage devices1300aand1300bmay omit hard decision decoding and may again perform the read retry operation. The read retry operation may be performed for the valley search or the second error correction operation. When the error rate is not greater than the first threshold value VCR1, the storage devices1300aand1300bmay perform hard decision decoding.

In the above example embodiments, components according to the present disclosure are described by using the terms “first”, “second”, “third”, etc. However, the terms “first”, “second”, “third”, etc. may be used to distinguish components from each other and do not limit the present disclosure. For example, the terms “first”, “second”, “third”, etc. do not involve an order or a numerical meaning of any form.

In the above example embodiments, components according to example embodiments of the present disclosure are referenced by using blocks. The blocks may be implemented with various hardware devices, such as an integrated circuit, an application specific IC (ASIC), a field programmable gate array (FPGA), and a complex programmable logic device (CPLD), firmware driven in hardware devices, software such as an application, or a combination of a hardware device and software. Also, the blocks may include circuits implemented with semiconductor elements in an integrated circuit, or circuits enrolled as an intellectual property (IP).

According to the present disclosure, when an estimated error rate is high, a storage device may omit decoding and may perform read retry. Accordingly, a storage device performing error correction at an improved speed and an operating method of the storage device are provided.

Any of the elements and/or functional blocks disclosed above may include or be implemented in processing circuitry such as hardware including logic circuits; a hardware/software combination such as a processor executing software; or a combination thereof. For example, the memory manager126, controller1120, accelerator1130, and STRG CTRL1310a,1310bmay be implemented as processing circuitry. The processing circuitry specifically may include, but is not limited to, a central processing unit (CPU), an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a System-on-Chip (SoC), a programmable logic unit, a microprocessor, application-specific integrated circuit (ASIC), etc. The processing circuitry may include electrical components such as at least one of transistors, resistors, capacitors, etc. The processing circuitry may include electrical components such as logic gates including at least one of AND gates, OR gates, NAND gates, NOT gates, etc.

Processor(s), controller(s), and/or processing circuitry may be configured to perform actions or steps by being specifically programmed to perform those action or steps (such as with an FPGA or ASIC) or may be configured to perform actions or steps by executing instructions received from a memory, or a combination thereof.

While the present disclosure has been described with reference to example embodiments thereof, 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.