Data storage device and operation method thereof
1. A memory controller, comprising:
an interface in communication with a memory device, the memory device comprising a plurality of memory chips, each memory chip comprising a plurality of memory locations;
an optimum read voltage retry controller generating a first optimum read voltage corresponding to a physical address of a memory location for which a read operation has failed among a plurality of read operations for the memory device; and
a read failure controller in communication with the optimal read voltage retry controller and the interface and controlling the memory device to perform an optimal read voltage retry operation on another memory location using the first optimal read voltage from the optimal read voltage retry controller,
wherein the plurality of read operations are performed in response to the same read request provided from the host.
2. The memory controller of claim 1, wherein the read failure controller determines a recovery algorithm to be applied to a read operation for a memory location for which the optimal read voltage retry operation has failed, according to whether a physical address of the memory location for which the read operation using the first optimal read voltage has failed is the same as a physical address of the memory location for which the read operation has failed.
3. The memory controller of claim 1, wherein the read failure controller controls the memory device to perform soft decoding on a read operation having a physical address that is the same as a physical address of the memory location for which the read operation has failed.
4. The memory controller of claim 1, wherein the read failure controller generates a second optimal read voltage corresponding to a physical address of at least one memory location that is different from a physical address of the memory location at which the read operation has failed.
5. The memory controller of claim 4, wherein the read failure controller performs a read operation using the second optimal read voltage on a physical address of a memory location that is different from a physical address of the memory location for which the read operation has failed.
6. The memory controller of claim 1, wherein the optimal read voltage retry controller comprises an optimal read voltage calculator that calculates the first optimal read voltage by using gaussian modeling in a threshold voltage distribution of memory cells corresponding to a physical address of the memory location where the read operation has failed.
7. The memory controller of claim 1, wherein the optimal read voltage retry controller comprises an optimal read voltage storage device that stores the first optimal read voltage and a physical address of the memory location where the read operation has failed.
8. The memory controller of claim 1, further comprising:
an error correction component that performs error correction decoding on read data obtained by a read operation using the first optimal read voltage.
9. The memory controller of claim 1, wherein the physical address of the memory location comprises a chip address mapped to any of the plurality of memory chips.
10. The memory controller of claim 1, wherein the physical address of the memory location comprises a plane address mapped to any one of the plurality of planes.
11. The memory controller of claim 1, wherein the multiple planes are memory locations independently controlled by the memory controller to perform different operations simultaneously.
12. The memory controller of claim 2, wherein the recovery algorithm comprises a read retry operation, an optimal read voltage retry operation, a soft decode operation, and a chip kill recovery operation.
13. A data storage device comprising:
a plurality of memory chips, each memory chip comprising a plurality of planes; and
a memory controller that executes a recovery algorithm that recovers data corresponding to a failed read operation among read operations performed on the plurality of memory chips,
wherein the memory controller generates a read voltage to be used in a first recovery algorithm using an address related to a selected read operation among the failed read operations and executes the first recovery algorithm on a memory location associated with the failed read operation using the read voltage.
14. The data storage device of claim 13, wherein the memory controller performs a second recovery algorithm on an address of a memory location that is the same as an address associated with a selected read operation among read operations that failed to recover data by the first recovery algorithm.
15. The data storage device of claim 13, wherein the memory controller again performs the first recovery algorithm on addresses of memory locations that are different from addresses related to selected read operations among read operations that failed to recover data by the first recovery algorithm.
16. The data storage device of claim 14, wherein the second recovery algorithm takes longer to execute than the first recovery algorithm.
17. The data storage device of claim 14, wherein the second recovery algorithm is more computationally intensive than the first recovery algorithm.
18. A method of operating a data storage device, the data storage device comprising a plurality of memory chips, the method comprising:
generating an optimal read voltage corresponding to a physical address of a memory location, of which a read operation has failed, among a plurality of read operations that read data stored in the plurality of memory chips; and is
Performing the plurality of read operations using the optimal read voltage,
wherein the multiple read operations are read operations performed in response to the same read request provided from the host.
19. The method of claim 18, wherein generating the optimal read voltage comprises:
calculating the optimal read voltage using Gaussian modeling in a threshold voltage distribution of memory cells corresponding to a physical address of the memory location for which the read operation has failed; and is
Storing the optimal read voltage and a physical address of the memory location where the read operation has failed.
20. The method of claim 18, further comprising:
determining a recovery algorithm to be applied to a read operation of a memory location, for which a read operation using the optimal read voltage has failed, according to whether a physical address of the memory location, for which the read operation using the optimal read voltage has failed, is the same as a physical address of the memory location, for which the read operation has failed.
Background
The data storage device may include a memory device to store data and a controller to allow a host device, such as a computer or smart phone, to read data from and/or write data to the data storage medium. Memory devices may be characterized as either volatile memory devices or nonvolatile memory devices, depending on their ability to retain stored data even when power is turned off.
Volatile memory devices can retain stored data only when power is turned on. Examples of volatile memory devices include Static Random Access Memory (SRAM) and Dynamic Random Access Memory (DRAM).
Non-volatile memory devices can retain stored data even in the absence of power. Examples of non-volatile memory devices include read-only memory (ROM), Programmable ROM (PROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), and flash memory.
Disclosure of Invention
Embodiments of the disclosed technology provide a data storage device that, among other features and benefits, may avoid unnecessary decoding and computational overhead and complexity during read operations.
A memory controller in accordance with embodiments of the disclosed technology may include: an interface to communicate with a memory device comprising a plurality of memory chips, each memory chip comprising a plurality of memory locations; an optimal read voltage retry controller configured to generate a first optimal read voltage corresponding to a physical address of a memory location for which a read operation has failed among a plurality of read operations of the memory device; and a read failure controller in communication with the optimal read voltage retry controller and the interface and configured to control the memory device to perform an optimal read voltage retry operation on another memory location using a first optimal read voltage from the optimal read voltage retry controller, and may perform a plurality of read operations in response to the same read request provided from the host.
A data storage device according to an embodiment of the disclosed technology may include: a plurality of memory chips, each memory chip comprising a plurality of planes; and a memory controller configured to execute a recovery algorithm that recovers data corresponding to a failed read operation among read operations performed on the plurality of memory chips, and the memory controller may generate a read voltage to be used in the first recovery algorithm using an address related to a selected read operation among the failed read operations and perform the first recovery algorithm on a memory location associated with the failed read operation using the read voltage.
A method of operating a data storage device including a plurality of memory chips in accordance with embodiments of the disclosed technology may include: generating an optimal read voltage corresponding to a physical address of a memory location, of which a read operation has failed, among a plurality of read operations that read data stored in a plurality of memory chips; and performing a plurality of read operations using the optimal read voltage, and the plurality of read operations may be read operations performed in response to the same read request provided from the host.
Drawings
Fig. 1 is a block diagram illustrating an exemplary configuration of a data storage device based on an embodiment of the disclosed technology.
FIG. 2 illustrates an example of the read failure processor shown in FIG. 1.
FIG. 3 illustrates an example of the operation of a data storage device based on an embodiment of the disclosed technology.
Fig. 4 shows the default (ideal) read voltage.
FIG. 5 illustrates an exemplary method of obtaining an optimal read voltage.
Fig. 6 shows an example of a soft read voltage used in a soft decoding process.
FIG. 7 illustrates an example of the memory device shown in FIG. 1, in accordance with some embodiments of the disclosed technology.
Fig. 8 illustrates an example of the memory block shown in fig. 7.
Fig. 9A to 9C illustrate examples of the data storage device for storing the optimum read voltage as shown in fig. 2.
FIG. 10 is a flow chart illustrating operation of a data storage device in accordance with an embodiment of the disclosed technology.
FIG. 11 is a block diagram illustrating an example of a memory card system implemented based on embodiments of the disclosed technology.
FIG. 12 is a block diagram illustrating an example of a Solid State Drive (SSD) system implemented in accordance with an embodiment of the disclosed technology.
FIG. 13 is a block diagram illustrating an example of a user system implemented based on embodiments of the disclosed technology.
Detailed Description
The techniques disclosed in this patent document may be implemented in some embodiments to provide a data storage device and method of operating the same that, among other features and benefits, may reduce the overhead and complexity associated with decoding read data.
Fig. 1 is a block diagram showing a configuration of a data storage device based on an embodiment of the disclosed technology.
In some embodiments, data storage device 50 may include a memory controller 200 and a memory device 100.
The data storage device 50 may be coupled to or in communication with a host 400, such as a mobile phone, a smart phone, an MP3 player, a laptop computer, a desktop computer, a game console, a TV, a tablet PC, or a vehicle infotainment system, to store data transmitted from the host 400 or to provide stored data to the host 400 upon request.
The data storage device 50 may be implemented in one of various types of data storage devices compatible with a host interface for communicating with the host 400. For example, the data storage device 50 may be a SSD, a multimedia card in the form of an MMC, an eMMC, an RS-MMC, and a micro MMC, a secure digital card in the form of an SD, a mini SD, and a micro SD, a Universal Serial Bus (USB) storage device, a universal flash memory (UFS) device, a Personal Computer Memory Card International Association (PCMCIA) card type storage device, a Peripheral Component Interconnect (PCI) card type storage device, a PCI express (PCI-E) card type storage device, a Compact Flash (CF) card, a smart media card, or a memory stick.
The package type of the data storage device 50 may include, for example, a Package On Package (POP), a System In Package (SIP), a System On Chip (SOC), a multi-chip package (MCP), a Chip On Board (COB), a wafer level manufacturing package (WFP), and a wafer level package on package (WSP).
The memory controller 200 may control the overall operation of the data storage device 50. The memory controller 200 may run Firmware (FW) when the data storage device 50 is powered on. In some embodiments, the firmware may include a Flash Translation Layer (FTL). When the memory device 100 includes a flash memory device, the memory controller 200 may manage the operation of the memory device 100 using an FTL between a general file system and the flash memory device. In some implementations, the FTL controls how data is stored to the memory device 100 and retrieved from the memory device 100. The hard disk drive is a main storage device, and thus a file system for the hard disk drive is used as a general file system. Memory systems with flash memory devices may utilize such a general file system, but they are not optimal for several reasons, such as erase block and wear leveling. For example, flash memory blocks need to be erased before they can be written, so a memory system with flash memory devices needs to have information associated with the erased blocks, which is not needed by a hard disk drive. Thus, the FTL is used between a general file system and a flash memory device.
Upon receiving a write request from the host 400, the memory controller 200 may receive write data to be stored in the memory device 100 and a Logical Address (LA) for identifying the corresponding write data from the host 400. The memory controller 200 may convert a Logical Address (LA) into a Physical Address (PA) indicating a physical address of a memory cell storing write data among memory cells included in the memory device 100. In an embodiment, one Physical Address (PA) may correspond to one physical page. The memory controller 200 may provide a program command, a physical address, and write data for storing data to the memory device 100.
In an embodiment, upon receiving a read request from the host 400, the memory controller 200 may receive a Logical Address (LA) corresponding to the read request from the host 400. Here, a Logical Address (LA) corresponding to a read request may be used to identify data requested to be read. The memory controller 200 may obtain a Physical Address (PA) mapped to a Logical Address (LA) corresponding to the read request from mapping data indicating a mapping relationship between the Logical Address (LA) provided by the host 400 and the Physical Address (PA) of the memory device 100. Thereafter, the memory controller 200 may provide a read command and a Physical Address (PA) to the memory device 100. In various embodiments, during an erase operation, the memory controller 200 may provide an erase command and a Physical Address (PA) of a memory block to be erased to the memory device 100.
In an embodiment, the memory controller 200 may control the memory device 100 to independently perform a program operation, a read operation, or an erase operation regardless of a request from the host 400. For example, the memory controller 200 may control the memory device 100 to perform background operations such as wear leveling, garbage collection, or read reclamation.
The memory device 100 may store data. The memory device 100 operates under the control of the memory controller 200. The memory device 100 may include a plurality of memory chips. Each of the plurality of memory chips may include a plurality of planes. The planes may be areas that can be independently operated. Each plane can independently perform any one of a program operation, a read operation, and an erase operation.
In the examples described herein, the word "plane" may indicate a set of memory cells that may be subject to concurrent (current) operations. The word "memory block" may indicate the minimum unit that can be erased, and the word "page" may indicate the minimum unit that can be programmed (or written to) or read. In some embodiments, each memory chip includes one or more planes, and each plane includes a plurality of blocks. Each block includes a plurality of pages.
Specifically, in fig. 1, the memory device 100 may include a memory cell array including a plurality of memory cells that may store data. The memory cell array may include a plurality of memory blocks. Each memory block may include a plurality of memory cells. The memory block may be the smallest unit that can be erased. That is, the erase operation is performed on a memory block basis, and data stored in the same memory block can be simultaneously erased. In an embodiment, a memory block may include a plurality of pages. A page may be the smallest unit for storing data in the memory device 100 or reading data stored in the memory device 100. That is, a program (write) operation and a read operation are performed on a page basis, and a physical address provided from the memory controller 200 to the memory device 100 during the program operation or the read operation may be an address for identifying a specific page.
In an embodiment, the memory device 100 may be a double data rate synchronous dynamic random access memory (DDR SDRAM), a low power double data rate 4(LPDDR4) SDRAM, a Graphics Double Data Rate (GDDR) SDRAM, a low power DDR (LPDDR), Rambus Dynamic Random Access Memory (RDRAM), NAND flash memory, vertical NAND flash memory, NOR flash memory devices, Resistive Random Access Memory (RRAM), phase change memory (PRAM), Magnetoresistive Random Access Memory (MRAM), Ferroelectric Random Access Memory (FRAM), or spin transfer torque random access memory (STT-RAM), among others. As an example, the memory device 100 may be a NAND flash memory, as will be described below.
In an embodiment, the memory device 100 may be implemented in a three-dimensional array structure. Flash memory devices may include a charge storage layer, a conductive Floating Gate (FG) formed of a conductive material, or a charge extraction layer formed of a dielectric material.
In an embodiment, each of the memory cells included in the memory device 100 may operate as one of a single-layer cell (SLC) storing one data bit, a multi-layer cell (MLC) storing two data bits, a triple-layer cell (TLC) storing three data bits, or a quadruple-layer cell (QLC) storing four data bits.
In embodiments of the disclosed technology, the memory controller 200 may include a read failure processor 210.
The read request provided from the host 400 indicates where the data to be read is located. In an example, the host 400 requests the memory device 100 to provide raw data stored by the host 400 in the data storage device 50. The memory controller 200 performs error correction encoding on the original data, generating write data including parity data for error correction. The memory controller 200 may control the memory device 100 such that write data is stored in the memory device 100.
Thereafter, in response to a read request from the host 400, the memory controller 200 may provide a read command and a physical address that is used to locate the memory cell from which data is to be read.
The memory device 100 may perform a read operation using a default read voltage. The read voltage may be a voltage applied to identify data stored in the memory cell. The default read voltage may be a read voltage determined by testing during the manufacturing process of the memory device 100.
In the context of this patent document, a "default" read voltage may indicate an initial read voltage value given for a default condition of memory device 100. In some cases, the word "default" may be used to indicate an ideal value, so the default read voltage may indicate a set of read threshold voltages that may distinguish different threshold voltage distributions of the memory cell under ideal conditions.
The memory device 100 may provide data stored in the memory cell corresponding to the received physical address to the memory controller 200 using a default read voltage. The data read out from the memory device 100 will be referred to as read data. The read data may indicate a value read from the memory device; for example, in a binary storage scheme, a single read operation on a memory location (memory cell) may produce a binary value of zero or one. During a read operation, the memory controller 200 may perform error correction decoding on the read data.
When the read data includes one or more erroneous bits, such errors may be corrected by performing an error correction operation on the read data. In other words, error correction decoding may be an operation of correcting one or more erroneous bits included in read data to restore original data. If the number of error bits included in the read data exceeds the maximum number of correctable error bits, error correction decoding may not be able to recover the original data. When the number of error bits included in the read data is equal to or less than the maximum number of correctable error bits, error correction decoding can successfully recover the original data. When the error correction decoding is successful, the original data corresponding to the logical address requested to be read by the host 400 can be obtained. In some embodiments, whether error correction decoding was successful or not may be indicated as a "pass" or a "fail" for the corresponding read operation. Thus, when error correction decoding is successful, the read operation performed by the memory device 100 may be indicated as a "pass". When error correction decoding is unsuccessful, the original data may not be restored and the read operation performed by memory device 100 may be indicated as "failed".
When a read operation fails, the read failure processor 210 may execute a plurality of recovery algorithms until the original data is successfully restored. The plurality of recovery algorithms may be executed in a preset order. Generally, the more complex the recovery algorithm, the higher the probability of recovering the original data. However, as the number of operation iterations or computations performed by the memory controller 200 increases, the overhead of operations and computations may also increase. In an embodiment, the read failure processor 210 may execute the recovery algorithms in order from a recovery algorithm with low complexity to a recovery algorithm with high complexity. When the original data is restored by any one of the recovery algorithms, the remaining recovery algorithms may not be executed.
In an embodiment, the plurality of recovery algorithms may include, for example, a read retry operation, an optimal read voltage retry operation, a soft decode operation, and a chip kill recovery operation.
The read retry may be an operation of retrying a read operation using a read voltage (read threshold voltage) different from a default read voltage. In some embodiments, the read voltage used in the read retry may be stored in advance in the memory device 100 or the memory controller 200.
The optimal read voltage retry may be an operation of calculating an optimal read voltage and performing a read operation using the calculated optimal read voltage. Here, the optimum read voltage may be calculated by various methods. In an embodiment, the optimal read voltage may be calculated using gaussian modeling. Alternatively, the optimum read voltage may be calculated according to the number of "0" s or "1" s included in read data read out using a plurality of read voltages.
In the context of this patent document, the words "optimal," "optimized," and "best" used in connection with a threshold or memory system performance indicate a value or condition that provides better performance (e.g., higher reliability, fewer detected errors, etc.) for a memory device than existing thresholds or conditions. In this sense, the words "optimal," "optimized," or "best" may or may not convey the best possible performance achievable by the memory device.
The soft decoding may be an operation of performing a read operation using a plurality of soft read voltages. Here, the plurality of soft read voltages may be determined based on a default read voltage or an optimal read voltage. For example, the plurality of soft read voltages may be voltages whose magnitudes increase or decrease at predetermined intervals with reference to a default read voltage or an optimal read voltage.
The chip kill recovery operation may be an operation to recover data stored in a page in which the read operation failed using data stored in other pages.
In an embodiment of the disclosed technology, when multiple read operations fail, the read failure processor 210 may control the memory device 100 to perform an optimal read voltage retry on memory cells for which the read operations have failed. The read failure processor 210 may calculate an optimal read voltage using threshold voltage distributions of memory cells corresponding to any failed read operation. The read failure processor 210 may control the memory device 100 to perform an optimal read voltage retry on other memory cells, for which a read operation has failed, using an optimal read voltage obtained by using a threshold voltage distribution associated with the failed read operation. Accordingly, the read failure processor 210 implemented based on some embodiments of the disclosed technology does not consider all failed read operations when obtaining an optimal read voltage, and thus may reduce overhead for calculating an optimal read voltage.
In an embodiment, the read failure processor 210 may selectively perform soft decoding on memory cells that have failed a read operation associated with an optimal read voltage retry. That is, the read failure processor 210 may compare the physical address of the memory cell for which the read operation associated with the optimal read voltage retry has failed with the physical address of the read operation used to calculate the optimal read voltage. When the physical address of the memory cell, for which the read operation associated with the optimal read voltage retry has failed, and the physical address of the read operation used to calculate the optimal read voltage belong to the same plane, the read failure processor 210 may perform soft decoding and repeat the optimal read voltage retry operation for the read operations belonging to different planes. Therefore, the failure of the optimum read voltage retry does not necessarily result in soft decoding, and thus, the overhead of operations and calculations can be reduced as compared to the case where soft decoding is performed on all memory cells in which the optimum read voltage retry fails.
Host 400 may communicate with data storage device 50 using at least one of a variety of communication methods such as: universal Serial Bus (USB), serial AT attachment (SATA), serial SCSI (sas), high speed inter-chip (HSIC), Small Computer System Interface (SCSI), Peripheral Component Interconnect (PCI), PCI express (pcie), non-volatile memory express (NVMe), universal flash memory (UFS), Secure Digital (SD), multimedia card (MMC), embedded MMC (emmc), dual in-line memory module (DIMM), registered DIMM (rdimm), and reduced load DIMM (lrdimm).
FIG. 2 illustrates an example of the read failure processor shown in FIG. 1.
In some embodiments, the read failure processor 210 may include a read failure controller 211, an optimal read voltage retry controller 212, and a soft decoding controller 213.
The optimal read voltage retry controller 212 may further include an optimal read voltage calculator 212-1 and an optimal read voltage storage device 212-2.
In fig. 2, the read failure processor 210 includes a read failure controller 211, an optimal read voltage retry controller 212, and a soft decoding controller 213. In some embodiments, read failure processor 210 may further include an error correction component (not shown) that performs error correction decoding to determine whether the read operation performed "passed" or "failed".
The read failure controller 211 may determine a recovery algorithm to be performed to recover the original data for the failed read operation. The read failure controller 211 may determine a recovery algorithm to be performed on the failed read operation among a plurality of recovery algorithms in a preset order. The plurality of recovery algorithms may include read retries, optimum read voltage retries, soft decoding, and chip kill recovery operations. However, for convenience of description, in fig. 2, it is assumed that the read failure controller 211 determines a recovery algorithm to be performed on a failed read operation among optimal read voltage retries and soft decoding.
When the read operation using the default read voltage fails, the read failure controller 211 may control the optimal read voltage retry controller 212 to perform the optimal read voltage retry. The optimal read voltage retry controller 212 may calculate an optimal read voltage based on a threshold voltage distribution of memory cells corresponding to a physical address of a failed read operation. The optimal read voltage retry controller 212 may store the calculated optimal read voltage along with the physical address on which the calculation is based.
In some implementations, the optimal read voltage calculator 212-1 can calculate the optimal read voltage based on a threshold voltage distribution of memory cells corresponding to the physical address of the failed read operation. In an embodiment, the optimal read voltage calculator 212-1 may calculate the optimal read voltage using Gaussian modeling. For example, the optimal read voltage calculator 212-1 may calculate an average voltage of the threshold voltage distribution using a plurality of sampling voltages. The optimal read voltage calculator 212-1 may calculate an average voltage of the threshold voltage distribution using the number of "0" or "1" of the sample data obtained using the plurality of sample voltages, or the amount of change in the number of "0" or "1". The optimal read voltage calculator 212-1 may use the average voltage to calculate an optimal read voltage. The optimal read voltage calculator 212-1 may determine a median value of average voltages of threshold voltage distributions adjacent to each other (1/2 of the sum of the average voltages) as an optimal read voltage. In various embodiments, the optimal read voltage calculator 212-1 may calculate the optimal read voltage using various methods other than the calculation method using gaussian modeling, and thus, the scope of the disclosed technology is not limited to the method of calculating the optimal read voltage using gaussian modeling.
The optimal read voltage storage device 212-2 may store the optimal read voltage calculated by the optimal read voltage calculator 212-1 together with a physical address on which the optimal read voltage is calculated. Here, the physical address stored together with the optimal read voltage may include at least one of a chip address, a plane address, or a block address.
The read failure controller 211 may control the memory device 100 to perform the optimal read voltage retry using the optimal read voltage calculated by the optimal read voltage retry controller 212.
In an embodiment, multiple read operations may be performed in accordance with a read request provided by a host. For example, when the memory controller 200 detects memory blocks belonging to different memory devices 100 or different planes as one super block, a plurality of read operations may be performed concurrently. Alternatively, when the logical addresses of the read requests provided by the host are sequential reads, multiple read operations may be performed according to the order or priority of the read requests. In this case, two or more failed read operations may occur among the plurality of read operations. When a plurality of read operations fail, the read failure controller 211 may not calculate an optimal read voltage for each read operation. The read failure controller 211 may calculate an optimal read voltage for any one of the selected read operations and then perform an optimal read voltage retry for the remaining memory cells for which the read operation has failed using the calculated optimal read voltage for the selected read operation.
The read failure controller 211 may control the soft decoding controller 213 to perform soft decoding on the memory cells in which the read operation associated with the optimal read voltage retry has failed. In an embodiment, the read failure controller 211 may determine whether to repeat the optimal read voltage retry or perform soft decoding on the memory cell for which the read operation associated with the optimal read voltage retry has failed, according to a result of comparing the physical address of the memory cell for which the read operation associated with the optimal read voltage retry has failed with the physical address of the memory cell selected for the read operation on which the optimal read voltage is calculated.
In particular, the read failure controller 211 may compare the physical address of the memory cell for which the read operation associated with the optimal read voltage retry has failed with the physical address of the selected read operation stored in the optimal read voltage storage device 212-2. When the plane address of the memory cell, for which the read operation associated with the optimal read voltage retry has failed, is the same as the plane address of the selected read operation, the read failure controller 211 may control the soft decoding controller 213 to perform soft decoding on the memory cell, for which the read operation associated with the optimal read voltage retry has failed. In contrast, when the plane address of the memory cell, for which the read operation associated with the optimal read voltage retry has failed, is different from the plane address of the selected read operation, the read failure controller 211 may control the optimal read voltage retry controller 212 to postpone performing soft decoding and perform the optimal read voltage retry again.
In various embodiments, when at least one of a chip address, a plane address, or a block address of a read operation for which an optimal read voltage retry fails is the same as a chip address, a plane address, or a block address of a selected read operation, the read failure controller 211 may control the soft decoding controller 213 to perform soft decoding on a memory cell for which the read operation associated with the optimal read voltage retry has failed. When the chip address, plane address, or block address of a memory cell for which a read operation associated with the optimal read voltage retry has failed is different from the chip address, plane address, or block address of the selected read operation, the read failure controller 211 may control the optimal read voltage retry controller 212 to postpone performing soft decoding and perform the optimal read voltage retry again.
When the optimum read voltage used in the optimum read voltage retry is calculated for the read operation belonging to the same plane, chip, or block, there is a high possibility that the optimum read voltage retry fails even if the optimum read voltage retry is repeated. In contrast, when the optimum read voltage used in the optimum read voltage retry is calculated for the read operation belonging to another plane, chip, or block, it may be necessary to perform the optimum read voltage retry using the newly calculated optimum read voltage. Performing the selective soft decoding may reduce the overhead of operations and computations of the memory controller because soft decoding requires more computations and operations than optimal read voltage retries.
FIG. 3 illustrates an example of the operation of a data storage device based on an embodiment of the disclosed technology.
In fig. 3, it is assumed that the data storage device includes one memory device, and that the one memory device includes four planes 1 through 4. However, this is for ease of description, and in various embodiments, the disclosed techniques may be applied to a data storage device including a plurality of memory devices.
Referring to fig. 2 and 3, the data storage device may perform a plurality of read operations in the order of requests from the host. Assuming that multiple read operations fail on multiple planes, a soft decoding or optimal read voltage retry operation may be performed on memory cells for which the read operations have failed. The memory cells for which the read operation has failed belong to a read failure group. Assume that such a failed read operation has been performed using a default read voltage. The example shown in fig. 3 is as follows: (1) the first READ operation READ1 and the third READ operation READ3 belonging to the READ failure group are READ operations performed on a page included in the first Plane 1; (2) the second READ operation READ2, the fourth READ operation READ4, and the seventh READ operation READ7 are READ operations performed on a page included in the second Plane 2; (3) the fifth READ operation READ5 is a READ operation performed on a page included in the third Plane 3; and (4) the sixth READ operation READ6 is a READ operation performed on a page included in the fourth Plane 4.
The READ failure controller 211 may generate an optimal READ voltage for the first READ operation READ 1. Gaussian modeling can be used to generate the optimal read voltage. The READ failure controller 211 may control the memory device 100 to perform an optimal READ voltage retry operation on memory cells associated with the first to seventh READ operations READ1 to READ7 using an optimal READ voltage.
It is assumed that as a result of performing the optimal READ voltage retry, the optimal READ voltage retry for the memory cells associated with the first, third, fifth, and sixth READ operations READ1, READ3, READ5, and READ6 fails, and the optimal READ voltage retry for the memory cells associated with the second, fourth, and seventh READ operations READ2, READ4, and READ7 succeeds or passes.
In some embodiments of the disclosed technology, soft decoding is performed when a memory cell that has failed a read operation is in the same plane as the memory cell used to obtain the optimal read voltage for the failed read operation. Since the first and third READ operations READ1 and READ3 are READ operations for pages included in the first Plane plate 1, the first and third READ operations READ1 and READ3 are READ operations for the same Plane as the first READ operation READ1 on which the optimal READ voltage is calculated. Accordingly, the READ failure controller 211 may perform soft decoding on the first READ operation READ1 and the third READ operation READ 3.
In some embodiments of the disclosed technology, an optimal read voltage retry operation is performed when a memory cell whose read operation has failed is in a different plane than a memory cell used to obtain an optimal read voltage for the failed read operation. The fifth READ operation READ5 and the sixth READ operation READ6 are READ operations for a Plane address different from the first Plane1, and the first Plane1 is a Plane address of the first READ operation READ1 on which the optimum READ voltage is calculated. Accordingly, the optimum READ voltage retry is performed again for the fifth and sixth READ operations READ5 and READ 6. Accordingly, the READ failure controller 211 may perform the optimal READ voltage retry operation again on the memory cells associated with the fifth and sixth READ operations READ5 and READ 6. In this case, the READ failure controller 211 may generate a new optimum READ voltage for the fifth READ operation READ 5. The READ failure controller 211 may perform the optimum READ voltage retry again on the memory cells associated with the fifth READ operation READ5 and the sixth READ operation READ6 using the new optimum READ voltage for the fifth READ operation READ 5.
As an example, optimum read voltage retry and soft decoding are described with reference to fig. 2 and 3, however, this method can be applied to various recovery algorithms. That is, the read failure controller 211 may perform the first recovery algorithm by applying the read voltage determined for the selected read operation among the plurality of failed read operations to the remaining failed read operations. In addition, the read failure controller 211 may selectively apply the second recovery algorithm only to read operations having the same tendency as the read operations that are the basis of determining the read voltage of the previously applied first recovery algorithm, instead of applying the second recovery algorithm having higher complexity and slower processing speed to all the read operations.
Fig. 4 shows the default (ideal) read voltage.
In fig. 4, the horizontal axis represents the threshold voltage of the memory cell, and the vertical axis represents the number of memory cells.
In fig. 4, for convenience of description, it is assumed that the memory cell is programmed as a multi-level cell (MLC) storing two data bits, but the disclosed technology is not limited thereto.
Through the program operation, the memory cells included in one physical page may have threshold voltages belonging to the erase state E and a threshold voltage distribution of any one of the first through third program states P1 through P3.
When the threshold voltages of the memory cells are sensed using the default read voltages R1, R2, and R3, each memory cell may be divided into the erase state E and any one of the first to third program states P1 to P3 according to data stored in the memory cell. R1 may be a default read voltage for dividing the erase state E and the first program state P1, R2 may be a default read voltage for dividing the first program state P1 and the second program state P2, and R3 may be a default read voltage for dividing the second program state P2 and the third program state P3. The level of the default read voltage may be determined as a specific voltage value through a test in a manufacturing process of the memory device, and the determined voltage value may be stored in the memory device.
In an initial period in which the program operation is completed, the threshold voltage distribution of the memory cell has the form of fig. 4. However, the threshold voltage may be changed (disturbed) because data stays (remains) for a long time after being programmed or due to an excessive operation on another memory region.
Therefore, as the change in the threshold voltage of the memory cell increases, many erroneous bits may be included in the read data sensed by the default read voltage, and thus the cases of a read operation failure may increase.
FIG. 5 illustrates an exemplary method of obtaining an optimal read voltage.
Fig. 5 is a diagram summarizing and expressing threshold voltage distributions of states adjacent to each other among the erase state E and the first through third program states P1 through P3 of fig. 4.
In some implementations, the threshold voltage distributions on the left represent the threshold voltage distributions of memory cells in the P (x) state, and the threshold voltage distributions on the right represent the threshold voltage distributions of memory cells in the P (x +1) state.
The threshold voltages of memory cells in the P (x) state and the P (x +1) state may change much more than when the initial programming is complete, and thus the threshold voltage distributions of the two states may overlap. In this case, even if the read operation is performed using the default read voltage Vr _ default, many error bits may be included in the read data.
The memory controller may obtain an average voltage of the threshold voltage distribution in the p (x) state by performing a read operation using the plurality of sampling voltages. For example, the memory controller may calculate the average voltage of the threshold voltage distribution using the number of "0" or "1" or the amount of change in the number of "0" or "1" of the sampling data obtained using a plurality of sampling voltages.
At this time, the memory controller may determine a median value (1/2 of the sum of average voltages) of the average values (Vmean (x) and Vmean (x +1)) of the threshold voltage distributions adjacent to each other as the optimum read voltage Vgm.
Fig. 6 shows an example of a soft read voltage used in a soft decoding process.
In some implementations, the threshold voltage of a memory cell in the P (x) state and the threshold voltage of a memory cell in the P (x +1) state may change more than in the case of fig. 5. In this case, even if the read operation is performed with the optimum read voltage Vgm, the read operation may fail.
The soft decoding may be a recovery algorithm that performs a read operation using a plurality of soft read voltages having different voltage levels. The plurality of soft read voltages used in the soft decoding may be voltages having a constant offset with respect to the optimal read voltage Vgm.
The memory controller may perform the read operation while changing the read voltage in the order of the first soft read voltage Vsoft1 to the fourth soft read voltage Vsoft 4.
In various embodiments, the plurality of soft read voltages for soft decoding may be voltages having a constant offset with reference to the default read voltage Vr _ default described by fig. 5, instead of voltages having a constant offset with reference to the optimal read voltage Vgm.
FIG. 7 illustrates an example of the memory device 100 shown in FIG. 1, in accordance with some embodiments of the disclosed technology.
In some implementations, a memory device can include a memory cell array 710, peripheral circuitry 720, and control logic 730.
The memory cell array 710 includes a plurality of memory blocks BLK1 through BLKz. A plurality of memory blocks BLK1 through BLKz are connected to row decoder 721 through row lines RL. The memory blocks BLK1 through BLKz may be connected to the page buffer group 723 through bit lines BL1 through BLn. Each of the plurality of memory blocks BLK1 through BLKz includes a plurality of memory cells. As an embodiment, the plurality of memory cells are non-volatile memory cells. Memory cells connected to the same wordline can be defined as one page. Thus, one memory block may include a plurality of pages.
The row lines RL may include at least one source select line, a plurality of word lines, and at least one drain select line.
Each of the memory cells included in the memory cell array 710 may be configured as a single-layer cell (SLC) storing one data bit, a multi-layer cell (MLC) storing two data bits, a triple-layer cell (TLC) storing three data bits, or a quadruple-layer cell (QLC) storing four data bits.
Peripheral circuitry 720 may be configured to perform a program operation, a read operation, or an erase operation on a selected region of memory cell array 710 under the control of control logic 730. Peripheral circuitry 720 may drive memory cell array 710. For example, peripheral circuit 720 may apply or discharge various operating voltages to row line RL and bit lines BL1 through BLn under the control of control logic 730.
Any one of the memory blocks included in the memory cell array 710 may include information on a default read voltage.
The peripheral circuits 720 may include a row decoder 721, a voltage generator 722, a page buffer group 723, a column decoder 724, and an input/output circuit 725.
The row decoder 721 is connected to the memory cell array 710 by a row line RL. The row lines RL may include at least one source select line, a plurality of word lines, and at least one drain select line. In an embodiment, the word lines may include a normal word line and a dummy word line. In an embodiment, the row line RL may further include a pipe select line.
The row decoder 721 is configured to operate in response to control by the control logic 730. The row decoder 721 receives a row address RADD from the control logic 730.
The row decoder 721 is configured to decode a row address RADD. The row decoder 721 selects at least one memory block among the memory blocks BLK1 through BLKz according to the decoded address. In addition, the row decoder 721 may select at least one word line of the selected memory block according to the decoded address to apply the voltage generated by the voltage generator 722 to the at least one word line WL.
For example, during a program operation, the row decoder 721 may apply a program voltage to a selected word line and apply a program pass voltage having a level lower than the program voltage to unselected word lines. During a program verify operation, the row decoder 721 may apply a verify voltage to a selected word line and a verify pass voltage higher than the verify voltage to unselected word lines. During a read operation, the row decoder 721 may apply a read voltage to a selected word line and apply a read pass voltage higher than the read voltage to unselected word lines.
In an embodiment, the erase operation of the memory device 100 is performed in units of memory blocks. During an erase operation, the row decoder 721 may select one memory block according to the decoded address. During an erase operation, the row decoder 721 may apply a ground voltage to word lines connected to a selected memory block.
The voltage generator 722 operates in response to control by the control logic 730. The voltage generator 722 is configured to generate a plurality of voltages using an external power supply voltage supplied to the memory device. Specifically, the voltage generator 722 may generate various operation voltages Vop used in a program operation, a read operation, and an erase operation in response to the operation signal OPSIG. For example, the voltage generator 722 may generate a program voltage, a verify voltage, a pass voltage, a read voltage, an erase voltage, etc. in response to control by the control logic 730.
As an embodiment, the voltage generator 722 may generate the internal supply voltage by adjusting the external supply voltage. The internal power supply voltage generated by the voltage generator 722 is used as an operation voltage of the memory device 100.
As an embodiment, the voltage generator 722 may generate a plurality of voltages using an external power supply voltage or an internal power supply voltage.
For example, the voltage generator 722 may include a plurality of pumping capacitors that receive the internal supply voltage and selectively enable the plurality of pumping capacitors to generate the plurality of voltages in response to control by the control logic 730.
The generated plurality of voltages may be supplied to the memory cell array 710 by the row decoder 721.
The buffer group 723 includes first to nth page buffers PB1 to PBn. The first to nth page buffers PB1 to PBn are connected to the memory cell array 710 through first to nth bit lines BL1 to BLn, respectively. The first to nth page buffers PB1 to PBn operate under the control of the control logic 730. Specifically, the first to nth page buffers PB1 to PBn may operate in response to the page buffer control signals PBSIGNALS. For example, the first to nth page buffers PB1 to PBn may temporarily store data received through the first to nth bit lines BL1 to BLn, or may sense voltages or currents of the bit lines BL1 to BLn during a read operation or a verify operation.
Specifically, during a program operation, when a program pulse is applied to a selected wordline, the first to nth page buffers PB1 to PBn may transfer DATA received through the input/output circuit 725 to a selected memory cell through the first to nth bit lines BL1 to BLn. The memory cells of the selected page are programmed according to the transferred DATA. A memory cell connected to a bit line to which a program enable voltage (e.g., a ground voltage) is applied may have an increased threshold voltage. The threshold voltage of the memory cell connected to the bit line to which the program-inhibit voltage (e.g., power supply voltage) is applied may remain unchanged. During a program verify operation, the first to nth page buffers PB1 to PBn read page data from selected memory cells through the first to nth bit lines BL1 to BLn.
During a read operation, the first to nth page buffers PB1 to PBn read DATA from the memory cells of the selected page through the first to nth bit lines BL1 to BLn and output the read DATA to the input/output circuit 725 under the control of the column decoder 724.
The first to nth page buffers PB1 to PBn may float the first to nth bit lines BL1 to BLn during an erase operation.
The column decoder 724 may transfer data between the input/output circuit 725 and the page buffer group 723 in response to a column address CADD. For example, the column decoder 724 may exchange data with the first to nth page buffers PB1 to PBn through the data line DL, or may exchange data with the input/output circuit 725 through the column line CL.
The input/output circuit 725 may transfer a command CMD and an address ADDR received from the memory controller 200 described with reference to fig. 1 to the control logic 730, or may exchange DATA with the column decoder 724.
The sensing circuit 726 may generate a reference current in response to the enable bit signal VRYBIT during a read operation or a verify operation, and may compare the sensing voltage VPB received from the page buffer group 723 with a reference voltage generated by the reference current to output a PASS signal PASS or a FAIL signal FAIL.
The control logic 730 may output an operation signal OPSIG, a row address RADD, a page buffer control signal PBSIGNALS, and an enable bit VRYBIT to control the peripheral circuits 120 in response to the command CMD and the address ADDR.
Fig. 8 illustrates an example of the memory block shown in fig. 7.
The memory block BLKi is any one of the memory blocks BLK1 through BLKz of fig. 7.
Referring to fig. 8, a plurality of word lines arranged in parallel with each other may be connected between a first selection line and a second selection line. Here, the first selection line may be a source selection line SSL, and the second selection line may be a drain selection line DSL. More specifically, the memory block 110 may include a plurality of strings ST connected between the bit lines BL1 to BLn and the source lines SL. The bit lines BL1 to BLn may be respectively connected to the strings ST, and the source lines SL may be commonly connected to the strings ST. Since the strings ST may be configured to be identical to each other, the string ST connected to the first bit line BL1 will be specifically described as an example.
The string ST may include a source select transistor SST, a plurality of memory cells MC1 to MC16, and a drain select transistor DST connected in series between a source line SL and a first bit line BL 1. One string ST may include at least one source select transistor SST and at least one drain select transistor DST, and may include more memory cells MC1 through MC16 than the number shown in the drawings.
A source of the source selection transistor SST may be connected to a source line SL, and a drain of the drain selection transistor DST may be connected to a first bit line BL 1. The memory cells MC1 through MC16 may be connected in series between the source select transistor SST and the drain select transistor DST. The gates of the source select transistors SST included in the different strings ST may be connected to a source select line SSL, the gates of the drain select transistors DST may be connected to a drain select line DSL, and the gates of the memory cells MC1 through MC16 may be connected to a plurality of word lines WL1 through WL 16. A group of memory cells connected to the same word line among memory cells included in different strings ST may be referred to as a page PG. Accordingly, the memory block BLKi may include the number of pages PG of the word lines WL1 to WL 16.
One memory cell may store one bit of data. This is commonly referred to as single-level cell (SLC). In this case, one physical page PG may store one Logical Page (LPG) data. One Logical Page (LPG) data may include the same number of data bits as cells included in one physical page PG.
One memory cell may store two or more bits of data. In this case, one physical page PG may store two or more Logical Page (LPG) data.
Fig. 9A to 9C illustrate examples of the data storage device for storing the optimum read voltage as shown in fig. 2.
Fig. 9A shows a state in which the Optimum Read Voltage is stored in the Optimum Read Voltage storage 212-2(1) together with the chip address in the memory device or the memory chip at which the Optimum Read Voltage is calculated. In embodiments, each of the memory chips may include two or more planes. In this case, the chip address and the plane address may be stored together in the optimum read voltage storage device 212-2 (1).
Fig. 9B shows a state in which the Optimum Read Voltage is stored in the Optimum Read Voltage storage device 212-2(2) together with the plane address in the memory chip at which the Optimum Read Voltage is calculated. Fig. 9B assumes that one memory chip is included in one memory device, but the disclosed technology is not limited thereto. In an embodiment, two or more memory chips may be included in a memory device.
Fig. 9C shows a state in which the Optimum Read Voltage is stored in the Optimum Read Voltage storage device 212-2(3) together with the block address in the memory chip at which the Optimum Read Voltage is calculated. In various embodiments, the chip address, the plane address, and the block address may be stored together in the optimal read voltage storage device 212-2 (3).
FIG. 10 is a flow chart illustrating operation of a data storage device in accordance with an embodiment of the disclosed technology.
In some embodiments, in step S1001, the data storage device calculates an optimal read voltage for a selected read operation among a plurality of read operations. Here, the plurality of read operations may be read operations in which a read operation using a default read voltage fails.
In step S1003, the data storage device may perform a plurality of read operations using the optimal read voltage for the selected read operation. Specifically, the data storage device may calculate an optimal read voltage for reading a memory cell included in a physical address of a selected read operation, and perform optimal read voltage retries for a plurality of read operations using the calculated optimal read voltage. The optimal read voltage retry may be to perform a read operation using the optimal read voltage.
In step S1005, the data storage device may determine whether the optimal read voltage retry passes. That is, when the number of error bits included in read data in which a read operation is performed with an optimal read voltage exceeds the number of correctable error bits, an optimal read voltage retry may fail. In contrast, when the number of error bits included in read data in which a read operation is performed with the optimum read voltage is equal to or less than the number of correctable error bits, the optimum read voltage retry may pass. As a result of the determination in step S1005, when the optimum read voltage retries pass, the operation ends because the original data is obtained. In contrast, when the optimum read voltage retry fails, the operation proceeds to step S1007.
In step S1007, the data storage device may determine whether the plane address of the read operation for which the optimum read voltage retry fails is the same as the plane address of the selected read operation. As a result of the determination, the plane address of the read operation for which the optimum read voltage retry fails is the same as the plane address of the selected read operation, and the operation proceeds to step S1009, otherwise, the operation proceeds to step S1011.
In step S1009, the data storage device may perform soft decoding on a read operation in which the plane address of the read operation for which the optimum read voltage retry fails is the same as the plane address of the selected read operation.
In step S1011, the data storage device may again select any one of the read operations for which the optimum read voltage retry fails, and in step S1013, the data storage device may perform the optimum read voltage retry on the failed read operation using the optimum read voltage of the again selected read operation.
FIG. 11 is a block diagram illustrating an example of a memory card system implemented based on embodiments of the disclosed technology.
In some implementations, the memory card system 2000 includes a memory controller 2100, a memory device 2200, and a connector 2300.
The memory controller 2100 is connected to the memory device 2200. The memory controller 2100 is configured to access the memory device 2200. For example, the memory controller 2100 is configured to perform read operations, program operations, and erase operations, or to control background operations of the memory device 2200. The memory controller 2100 is configured to provide an interface between the memory device 2200 and a host. The memory controller 2100 is configured to drive firmware for controlling the memory device 2200. The memory controller 2100 may be implemented identically to the memory controller 200 described with reference to fig. 1.
For example, memory controller 2100 may include components such as Random Access Memory (RAM), a processor, a host interface, a memory interface, and an error corrector.
The memory controller 2100 may communicate with external devices through the connector 2300. The memory controller 2100 may communicate with an external device (e.g., a host) according to a particular communication standard. For example, the memory controller 2100 is configured to communicate with external devices through at least one of various communication standards such as: universal Serial Bus (USB), multimedia card (MMC), embedded MMC (mcm), Peripheral Component Interconnect (PCI), PCI express (PCI-E), Advanced Technology Attachment (ATA), serial ATA, parallel ATA, Small Computer System Interface (SCSI), Enhanced Small Disk Interface (ESDI), electronic Integrated Drive (IDE), firewire, universal flash memory (UFS), Wi-Fi, bluetooth, and NVMe. For example, the connector 2300 may be defined by at least one of the various communication standards described above.
For example, memory device 2200 may be implemented as various non-volatile memory elements such as: electrically erasable programmable rom (eeprom), NAND flash memory, NOR flash memory, phase change RAM (pram), resistive RAM (reram), ferroelectric RAM (fram), and spin torque magnetic RAM (STT-MRAM).
For example, the memory controller 2100 or the memory device 2200 may be packaged in a method such as the following and provided as one semiconductor package: package on package (PoP), Ball Grid Array (BGA), Chip Scale Package (CSP), Plastic Leaded Chip Carrier (PLCC), plastic dual in-line package (PDIP), die in waffle pack (die in wafer pack), die in wafer form, Chip On Board (COB), ceramic dual in-line package (CERDIP), plastic Metric Quad Flat Package (MQFP), Thin Quad Flat Package (TQFP), Small Outline (SOIC), Shrink Small Outline Package (SSOP), thin system-in-package (TSOP), thin system-in-package (SIP), multi-chip package (MCP), wafer-level fabricated package (WFP), or wafer-level processed package on package (WSP). Alternatively, the memory device 2200 may include a plurality of nonvolatile memory chips, and the plurality of nonvolatile memory chips may be packaged and provided as one semiconductor package based on the above-described packaging method.
For example, the memory controller 2100 and the memory device 2200 may be integrated into one semiconductor device. For example, the memory controller 2100 and the memory device 2200 may be integrated into one semiconductor device to configure a Solid State Drive (SSD). The memory controller 2100 and the memory device 2200 may be integrated into one semiconductor device to configure a memory card. For example, the memory controller 2100 and the memory device 2200 may be integrated into one semiconductor device to configure a memory card such as the following: PC card (personal computer memory card international association (PCMCIA)), compact flash Card (CF), smart media card (SM or SMC), memory stick, multimedia card (MMC, RS-MMC, micro MMC or eMMC), SD card (SD, mini SD, micro SD or SDHC), and universal flash memory (UFS).
For example, the memory device 2200 may be the memory device 100 described with reference to fig. 1.
FIG. 12 is a block diagram illustrating an example of a Solid State Drive (SSD) system implemented in accordance with an embodiment of the disclosed technology.
In some implementations, SSD system 3000 includes host 3100 and SSD 3200. The SSD3200 exchanges signals SIG with the host 3100 through the signal connector 3001, and receives power PWR through the power connector 3002. The SSD3200 includes an SSD controller 3210, a plurality of flash memories 3221 to 322n, an auxiliary power supply device 3230, and a buffer memory 3240.
In an embodiment, the SSD controller 3210 may perform the functions of the memory controller 200 described with reference to fig. 1.
The SSD controller 3210 may control the plurality of flash memories 3221 to 322n in response to a signal SIG received from the host 3100. For example, signal SIG may be a signal based on an interface between host 3100 and SSD 3200. For example, the signal SIG may be a signal defined by at least one of the following interfaces such as: universal Serial Bus (USB), multi-media card (MMC), embedded MMC (emmc), Peripheral Component Interconnect (PCI), PCI express (PCI-E), Advanced Technology Attachment (ATA), serial ATA, parallel ATA, Small Computer System Interface (SCSI), Enhanced Small Disk Interface (ESDI), Integrated Drive Electronics (IDE), firewire, universal flash memory (UFS), Wi-Fi, bluetooth, and NVMe.
The auxiliary power supply device 3230 is connected to the host 3100 through a power supply connector 3002. The auxiliary power supply device 3230 may receive power PWR from the host 3100 and may be charged. When the power supply from the host 3100 is not smooth, the auxiliary power supply device 3230 may supply the power of the SSD 3200. For example, the auxiliary power supply device 3230 may be located in the SSD3200 or may be located outside the SSD 3200. For example, the auxiliary power supply device 3230 may be located on a motherboard and may supply auxiliary power to the SSD 3200.
The buffer memory 3240 serves as a buffer memory of the SSD 3200. For example, the buffer memory 3240 may temporarily store data received from the host 3100 or data received from the plurality of flash memories 3221 to 322n, or may temporarily store metadata (e.g., a mapping table) of the flash memories 3221 to 322 n. The buffer memory 3240 may include volatile memory such as DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, and GRAM, or non-volatile memory such as FRAM, ReRAM, STT-MRAM, and PRAM.
For example, the nonvolatile memories 3321 to 322n may be the memory device 100 described with reference to fig. 1.
FIG. 13 is a block diagram illustrating an example of a user system implemented based on embodiments of the disclosed technology.
In some embodiments, the user system 4000 includes an application processor 4100, a memory module 4200, a network module 4300, a storage module 4400, and a user interface 4500.
The application processor 4100 may drive components, an Operating System (OS), user programs, and the like included in the user system 4000. For example, the application processor 4100 may include a controller, an interface, a graphic engine, and the like that control components included in the user system 4000. The application processor 4100 may be provided as a system on chip (SoC).
The memory module 4200 may operate as a main memory, an operating memory, a buffer memory, or a cache memory of the user system 4000. The memory module 4200 may include volatile random access memory such as DRAM, SDRAM, DDR2 SDRAM, DDR3SDRAM, LPDDR SDARM LPDDR2 SDRAM, and LPDDR 3SDRAM, or non-volatile random access memory such as PRAM, ReRAM, MRAM, and FRAM. For example, the application processor 4100 and the memory module 4200 may be packaged and provided as one semiconductor package based on a Package On Package (POP).
The network module 4300 may communicate with an external device. For example, the network module 4300 may support wireless communications such as: code Division Multiple Access (CDMA), Global System for Mobile communications (GSM), Wideband CDMA (WCDMA), CDMA-2000, Time Division Multiple Access (TDMA), Long term evolution, Wimax, WLAN, UWB, Bluetooth and WI-FI. For example, the network module 4300 may be included in the application processor 4100.
The memory module 4400 may store data. For example, the memory module 4400 may store data received from the application processor 4100. Alternatively, the memory module 4400 may transmit data stored in the memory module 4400 to the application processor 4100. For example, the memory module 4400 may be implemented as a nonvolatile semiconductor memory element such as: phase change ram (pram), magnetic ram (mram), resistive ram (rram), NAND flash memory, NOR flash memory, and three-dimensional NAND flash memory. For example, the memory module 4400 may be provided as a removable data storage device (removable drive) such as a memory card and an external drive of the user system 4000.
For example, the memory module 4400 may include a plurality of non-volatile memory devices, and the plurality of non-volatile memory devices may be the memory device 100 described with reference to fig. 1.
The user interface 4500 may include an interface for inputting data or instructions to the application processor 4100 or for outputting data to an external device. For example, the user interface 4500 may include a user input interface such as a keyboard, keypad, button, touch panel, touch screen, touch pad, touch ball, camera, microphone, gyroscope sensor, vibration sensor, and piezoelectric element. The user interface 4500 may include a user output interface such as a Liquid Crystal Display (LCD), an Organic Light Emitting Diode (OLED) display device, an active matrix OLED (amoled) display device, an LED, a speaker, and a monitor.
Only limited examples, features, and embodiments of the disclosed technology are provided herein. Other features, embodiments, and variations may be realized based on the disclosure.