METHODS OF PREDICTING RELIABILITY INFORMATION OF STORAGE DEVICES AND METHODS OF OPERATING STORAGE DEVICES

In a method of operating a storage device including a plurality of nonvolatile memories, reliability information of the storage device is predicted. A read operation on the storage device is performed based on a result of predicting the reliability information. In the predicting the reliability information of the storage device, a model request signal is outputted by selecting one of a plurality of machine learning models as an optimal machine learning model based on deterioration characteristic information and deterioration phase information. The model request signal corresponds to the optimal machine learning model. The plurality of machine learning models are used to generate first reliability information related to the plurality of nonvolatile memories. First parameters of the optimal machine learning model may be received based on the model request signal. The first reliability information is generated based on the deterioration characteristic information and the first parameters.

CROSS-REFERENCE TO RELATED APPLICATION

This U.S. non-provisional application claims priority under 35 USC § 119 to Korean Patent Application No. 10-2021-0016498, filed on Feb. 5, 2021, in the Korean Intellectual Property Office (KIPO), the disclosure of which is incorporated by reference herein in its entirety.

BACKGROUND

1. Technical Field

The present disclosure relates generally to semiconductor integrated circuits, and more particularly to methods of predicting reliability information of storage devices and to methods of operating the storage devices.

2. Discussion of the Related Art

A storage device may be classified as either a volatile storage device that includes volatile memories, or as a nonvolatile storage device that includes nonvolatile memories. The classification may be based on whether data stored in the storage device is lost when a power is cut off or removed. A volatile memory may read and write faster, however, data stored in the volatile memory is lost when the power is cut off or removed. In contrast, data stored in the nonvolatile memory is retained when the power is cut off or removed. Therefore, the nonvolatile memory may be used to store persistent data that can be retrieved later if the supplied power is cut off or removed. As the nonvolatile memory is widely used, various methods for predicting reliability information of the storage device using machine learning models have been studied and are under study. However, in predicting the reliability information of the storage device, if a degree of deterioration of the nonvolatile memory included in the storage device is not considered, a reliability of result data according to the prediction may be lowered.

SUMMARY

Some example embodiments may provide methods for storage devices that are capable of predicting reliability information of a nonvolatile memory included in the storage device.

According to some example embodiments, in a method of predicting reliability of a storage device including a plurality of nonvolatile memories, a model request signal may be outputted by selecting one of a plurality of machine learning models as an optimal machine learning model with each of the plurality of machine learning models configured to generate first reliability information related to the plurality of nonvolatile memories and the selecting of the one of the plurality of machine learning models based on deterioration characteristic information obtained by accumulating deterioration information related to the plurality of nonvolatile memories and deterioration phase information representing a degree of deterioration of the plurality of nonvolatile memories. First parameters of the optimal machine learning model are received based on the model request signal. The first reliability information is generated based on the deterioration characteristic information and the first parameters.

According to example embodiments, in a method of operating a storage device including a plurality of nonvolatile memories, reliability information of the storage device is predicted. A read operation on the storage device is performed based on a result of predicting the reliability information. In the predicting the reliability information of the storage device, a model request signal is outputted by selecting one of a plurality of machine learning models as an optimal machine learning model with each of the plurality of machine learning models configured to generate first reliability information related to the plurality of nonvolatile memories and the selecting of the one of the plurality of machine learning models based on deterioration characteristic information obtained by accumulating deterioration information related to the plurality of nonvolatile memories and deterioration phase information representing a degree of deterioration of the plurality of nonvolatile memories. First parameters of the optimal machine learning model may be received based on the model request signal. The first reliability information is generated based on the deterioration characteristic information and the first parameters.

According to example embodiments, in a method of predicting reliability of a storage device including a plurality of nonvolatile memories, deterioration characteristic information is collected. The deterioration characteristic information is obtained by accumulating deterioration of the plurality of nonvolatile memories. Deterioration phase information is generated based on the deterioration characteristic information. The deterioration phase information represents a degree of the deterioration of the plurality of nonvolatile memories as a plurality of deterioration phases. One of a plurality of machine learning models is selected as an optimal machine learning model based on the deterioration phase information and the deterioration phase information. A model request signal is outputted by selecting one of a plurality of machine learning models as an optimal machine learning model based on deterioration characteristic information and deterioration phase information. The model request signal corresponds to the optimal machine learning model. The plurality of machine learning models are used to generate first reliability information related to the plurality of nonvolatile memories. The deterioration characteristic information is obtained by accumulating deterioration of the plurality of nonvolatile memories. The deterioration phase information represents a degree of the deterioration of the plurality of nonvolatile memories. First parameters of the optimal machine learning model are received based on the model request signal. The first reliability information is generated based on the deterioration characteristic information and the first parameters. A first machine learning model is selected from among the plurality of machine learning models as the optimal machine learning model when the deterioration phase information corresponds to an early deterioration phase, and a second machine learning model different from the first machine learning model is selected from among the plurality of machine learning models as the optimal machine learning model when the deterioration phase information corresponds to a middle deterioration phase that is subsequent to the early deterioration phase.

As described above, in methods of predicting reliability information of a storage device, a model request signal may be outputted based on deterioration characteristic information and deterioration phase information. The reliability information of the nonvolatile memory may be predicted by adaptively selecting an optimal machine learning model based on the model request signal, where the optimal machine learning model is selected from a plurality of machine learning models. The methods of predicting the reliability information of the storage device and other example embodiments described herein may more efficiently predict the reliability information of the nonvolatile memory by adaptively reading parameters of the optimal machine learning model in consideration of the degree of deterioration of the nonvolatile memory.

DETAILED DESCRIPTION

Various example embodiments will be described more fully hereinafter with reference to the accompanying drawings, in which some example embodiments are shown. In the drawings, like numerals refer to like elements throughout. The repeated descriptions may be omitted.

FIG. 1is a flowchart illustrating a method of predicting reliability information of a storage device according to some example embodiments.

Referring toFIG. 1, a method of predicting reliability information of a storage device may be performed by a storage controller configured to control a plurality of nonvolatile memories and a buffer memory. A configuration of the storage device including the storage controller, the plurality of nonvolatile memories, and the buffer memory will be described with reference toFIGS. 2 to 5.

In the method of predicting reliability information, a model request signal may be outputted by selecting one of a plurality of machine learning models as an optimal machine learning model, with the selection of the one of the plurality of machine learning models based on deterioration characteristic information and deterioration phase information (S100).

In some embodiments, the model request signal may correspond to the optimal machine learning model. The plurality of machine learning models may be used to generate first reliability information related to the plurality of nonvolatile memories. The deterioration characteristic information may be obtained by accumulating deterioration of the plurality of nonvolatile memories. The deterioration phase information may represent a degree of the deterioration of the plurality of nonvolatile memories.

In some embodiments, the deterioration characteristic information may include direct deterioration information and indirect deterioration information. For example, the direct deterioration information may include program/erase (P/E) cycles, read counts, and/or retention times for the plurality of nonvolatile memories. The indirect deterioration information may include the number of on-cells and the number of error bits for the plurality of nonvolatile memories. The direct deterioration information and the indirect deterioration information will be described with reference toFIG. 8.

In some embodiments, the deterioration phase information may represent the degree of deterioration of the plurality of nonvolatile memories as a plurality of deterioration phases. In this case, the plurality of deterioration phases may represent that the plurality of nonvolatile memories correspond to one of an early deterioration phase, a middle deterioration phase and a late deterioration phase, but this is merely an example. The deterioration phase information will be described with reference toFIG. 12.

In some embodiments, the plurality of machine learning models may be used to generate the first reliability information related to the plurality of nonvolatile memories. The plurality of machine learning models may be trained based on the same training dataset, the same verification dataset, and the same test dataset to generate various reliability information related to the plurality of nonvolatile memories.

One of the plurality of machine learning models may be selected as the optimal machine learning model. In this case, the plurality of machine learning models may be stored in separate volatile memories, and a plurality of parameters of the optimal machine learning model may be retrieved from the volatile memories based on the model request signal.

In some embodiments, the plurality of machine learning models may include a plurality of parameters, and sizes or numbers of the plurality of parameters included in the plurality of machine learning models may be different from each other. The plurality of machine learning models may be classified based on a size or number of parameters corresponding to each of the plurality of machine learning models, and parameters of each of the plurality of machine learning models may be stored into different areas of the plurality of volatile memories based on a result of the classification. The plurality of machine learning models and the optimal machine learning model will be described with reference toFIGS. 15 and 16.

First parameters of the optimal machine learning model may be received based on the model request signal (S200).

In some embodiments, the optimal machine learning model may be stored in one of the volatile memories as a machine learning model selected from among the plurality of machine learning models.

The first reliability information may be generated based on the deterioration characteristic information and the first parameters (S300).

In some embodiments, the first reliability information may be generated based on the optimal machine learning model.

In some embodiments, the deterioration characteristic information may be input as input data of the optimal machine learning model, and the first parameters may be configured as various parameters describing the optimal machine learning model.

In the method of predicting reliability information of the storage device according to example embodiments, operations S100, S200, and S300ofFIG. 1may be performed to predict more efficiently the reliability information of the nonvolatile memories included in the storage device. The method of predicting reliability information of the storage device outputs the model request signal based on the deterioration characteristic information and the deterioration phase information, and adaptively selects an optimal machine learning model that is one of the plurality of machine learning models based on the model request signal, and thus it may be possible to predict more efficiently the reliability information of the nonvolatile memories. That is, the method of predicting the reliability information of the storage device may more efficiently predict the reliability information of the nonvolatile memories by adaptively retrieving the parameters of the optimal machine learning model in consideration of the degree of the deterioration of the nonvolatile memories.

FIG. 2is a block diagram illustrating a storage device and a storage system including the storage device according to example embodiments.

Referring toFIG. 2, a storage system100may include a host device200and a storage device300. The host device200may include a host processor210and a host memory220. The storage device300may include a storage controller310, a plurality of nonvolatile memories320a,320band320c, and a buffer memory330.

The host device200may control overall operations of the storage system100, and the host processor210may control operations of the host device200.

In some embodiments, the host processor210may execute an operating system (OS). For example, the OS may include a file system for managing files and a device driver for controlling peripheral devices including the storage device300at an operating system level. For example, the host processor210may include at least one of various processing units, e.g., a central processing unit (CPU), or the like.

The host memory220may store instructions and/or data that are executed and/or processed by the host processor210. For example, the host memory220may include at least one of various volatile memories, e.g., a dynamic random access memory (DRAM), or the like.

The storage device300may be accessible by the host device200, and the storage controller310may control operations of the storage device300.

In some embodiments, the storage controller310may control operations of the plurality of nonvolatile memories320a,320band320cbased on request and data received from the host device200.

The storage controller310may include a reliability information predictor312to predict reliability information of the storage device300according to some example embodiments. The reliability information predictor312may perform operations S100, S200and S300described above with reference toFIG. 1.

The buffer memory330may store commands and data executed and processed by the storage controller310, and may temporarily store data stored in or to be stored in the plurality of nonvolatile memories320a,320band320c.

In some embodiments, the storage controller310may include a tightly-coupled memory (TCM)314and a first static random access memory (SRAM)316, and the buffer memory330may include a second SRAM332and a dynamic random access memory (DRAM)334.

In some embodiments, the plurality of machine learning models350described above with reference toFIG. 1may be based on at least one of a convolution network (CNN), a recurrent neural network (RNN), a support vector machine (SVM), a linear regression, a logistic regression, a naïve bayes classification, a random forest, a decision tree and/or k-nearest neighbor (KNN) algorithms, with the present disclosure not limited thereto.

In some embodiments, the plurality of parameters of the plurality of machine learning models350may be stored in the TCM314, the first SRAM316, the second SRAM332and the DRAM334. In some embodiments, the machine learning model stored in the TCM314may have a processing speed higher than that of the machine learning model stored in one of the first SRAM316, the second SRAM332and the DRAM334. The machine learning model stored in the DRAM334may have an accuracy higher than that of the machine learning model stored in one of the TCM314, the first SRAM316and the second SRAM332.

In some embodiments, sizes of the plurality of parameters included in the plurality of machine learning models350may be different from each other, and the plurality of machine learning models350may be classified into first machine learning models, second machine learning models and third machine learning models based on the sizes of the plurality of parameters. In some embodiments, the first machine learning models may be stored in the TCM314, the second machine learning models may be stored in one of the first SRAM316and the second SRAM332, and the third machine learning models may be stored in the DRAM334.

In some embodiments, the TCM314, the first SRAM316, the second SRAM332and the DRAM334may be referred to as a ‘learning model storage memory.’

In some embodiments, the plurality of nonvolatile memories320a,3420band320cmay store a plurality of data. For example, the plurality of nonvolatile memories320a,320band320cmay store metadata, other user data, or the like.

In some embodiments, each of the plurality of nonvolatile memories320a,320band320cmay include a NAND flash memory. In other example embodiments, each of the plurality of nonvolatile memories320a,320band320cmay include one of an electrically erasable programmable read only memory (EEPROM), a phase change random access memory (PRAM), a resistance random access memory (RRAM), a nano floating gate memory (NFGM), a polymer random access memory (PoRAM), a magnetic random access memory (MRAM), a ferroelectric random access memory (FRAM), or the like.

In some example embodiments, the storage device300may be a universal flash storage (UFS). In other example embodiments, the storage device300may be a solid state drive (SSD), a multi-media card (MMC), an embedded multi-media card (eMMC), or the like. In still other example embodiments, the storage device300may be one of a secure digital (SD) card, a micro SD card, a memory stick, a chip card, a universal serial bus (USB) card, a smart card, a compact flash (CF) card, or the like.

In some example embodiments, the storage device300may be connected to the host device200via a block accessible interface which may include, for example, a UFS, an eMMC, a serial advanced technology attachment (SATA) bus, a nonvolatile memory express (NVMe) bus, a serial attached SCSI (SAS) bus, or the like. The storage device300may use a block accessible address space that corresponds to an access size of the plurality of nonvolatile memories320a,320band320cto provide the block accessible interface to the host device200, thereby allowing the access in memory-block-sized units with respect to data stored in the plurality of nonvolatile memories320a,320band320c.

In some example embodiments, the storage system100may be any computing system, such as a personal computer (PC), a server computer, a data center, a workstation, a digital television, a set-top box, a navigation system, etc. In other example embodiments, the storage system100may be any mobile system, such as a mobile phone, a smart phone, a tablet computer, a laptop computer, a personal digital assistant (PDA), a portable multimedia player (PMP), a digital camera, a portable game console, a music player, a camcorder, a video player, a navigation device, a wearable device, an internet of things (IoT) device, an internet of everything (IoE) device, an e-book reader, a virtual reality (VR) device, an augmented reality (AR) device, a robotic device, a drone, etc.

FIG. 3is a block diagram illustrating an example of a storage controller, such as the storage controller310included in the storage device inFIG. 2.

Referring toFIG. 3, a storage controller400may include a processor410, a TCM412, an error correction code (ECC) engine420, a reliability information predictor430, a host interface440, a buffer memory interface450and a memory interface460.

The processor410may control overall operations of the storage controller400in response to requests received from the host device, e.g.,200inFIG. 2, through the host interface440.

In some embodiments, the processor410may control operations of the storage device, e.g.,300inFIG. 2, and may control each component by employing firmware configured to drive the storage device300.

In some embodiments, the processor410may include the TCM412. The TCM412may correspond to the TCM314described above with reference toFIG. 2, and the TCM412may function as a cache memory capable of operating at high speed. In this case, when a separate SRAM, e.g.,316inFIG. 2, serving as a cache memory is provided, the TCM412may communicate with the processor410through a dedicated TCM interface (not shown) that is distinct from an interface for performing communication with the SRAM.

The ECC engine430may be configured to perform error correction, and may perform ECC encoding and/or ECC decoding using a coded modulation such as a Bose-Chaudhuri-Hocquenghem (BCH) Code, a low density parity check (LDPC) code, a turbo code, a Reed-Solomon code, a convolution code, a recursive systematic code (RSC), a trellis-coded modulation (TCM), a block coded modulation (BCM), or other error correction codes.

The reliability information predictor430may perform operations S100, S200and S300described above with reference toFIG. 1.

In some embodiments, the reliability information predictor430may include a deterioration characteristic information collection circuit (DCCC)432, a deterioration phase information generation circuit DSIC434, a machine learning model selection circuit MLSC436and a reliability information generation circuit (RIC)438, and may perform operations S100, S200and S300described above with reference toFIG. 1using components432,434,436and438included in the reliability information predictor430.

The host interface440may provide a physical connection between the host device200and the storage device300. The host interface440may be configured to provide interfacing with the storage device300based on a bus format of the host device200.

In some embodiments, the bus format of the host device200may be SCSI or SAS. In other example embodiments, the bus format of the host device200may be an USB, a peripheral component interconnect express (PCIe), ATA, PATA, SATA, NVMe, or the like.

The memory interface460may exchange data with nonvolatile memories, e.g.,320a,320band320cinFIG. 2. The memory interface460may transmit data to the nonvolatile memories320a,320band320c, and may receive data read from the nonvolatile memories320a,320band320c. For example, the memory interface460may be implemented to comply with a standard protocol such as toggle or ONFI.

Although not shown, the storage controller400may further include an AES engine. The AES engine may perform at least one of an encryption operation and a decryption operation on data input to the storage controller400using a symmetric-key algorithm. Although not shown in detail, the AES engine may include an encryption module and a decryption module. In some embodiments, the encryption module and the decryption module may be implemented as separate modules or may be implemented as a single module.

FIG. 4is a block diagram illustrating an example of a nonvolatile memory included in the storage device inFIG. 2.

Referring toFIG. 4, a nonvolatile memory500includes a memory cell array510, an address decoder520, a page buffer circuit530, a data I/O circuit540, a voltage generator550and a control circuit560.

The memory cell array510is connected to the address decoder520via a plurality of string selection lines SSL, a plurality of wordlines WL and a plurality of ground selection lines GSL. The memory cell array510is connected to the page buffer circuit530via a plurality of bitlines BL. The memory cell array510may include a plurality of memory cells (e.g., a plurality of nonvolatile memory cells) that are connected to the plurality of wordlines WL and the plurality of bitlines BL. The memory cell array510may be divided into a plurality of memory blocks BLK1, BLK2, . . . , BLKz each of which may include memory cells. In addition, each of the plurality of memory blocks BLK1, BLK2, . . . , BLKz may be divided into a plurality of pages.

In some example embodiments, the plurality of memory cells included in the memory cell array510may be arranged in a two-dimensional (2D) array structure or a three-dimensional (3D) vertical array structure. The 3D vertical array structure may include vertical cell strings that are vertically oriented such that at least one memory cell is located over another memory cell. The at least one memory cell may comprise a charge trap layer. The following documents, which are hereby incorporated by reference in their entireties, describe suitable configurations for a memory cell array including a 3D vertical array structure, in which the three-dimensional memory array is configured as a plurality of levels, with wordlines and/or bitlines shared between levels: U.S. Pat. Nos. 7,679,133; 8,553,466; 8,654,587; 8,559,235; and US Pat. Pub. No. 2011/0233648.

The control circuit560may be configured to receive a command CMD and an address ADDR from an outside or external source, e.g., from the storage controller310inFIG. 2, and configured to control erasure, programming, and read operations of the nonvolatile memory500based on the command CMD and the address ADDR. An erasure operation may include performing a sequence of erase loops, and a program operation may include performing a sequence of program loops. Each program loop may include a program operation and a program verification operation. Each erase loop may include an erase operation and an erase verification operation. The read operation may include a normal read operation and data recover read operation.

For example, the control circuit560may generate control signals CON, which are used to control the voltage generator550, and may generate control signal PBC to control the page buffer circuit530, based on the command CMD, and may generate a row address R_ADDR and a column address C_ADDR based on the address ADDR. The control circuit560may provide the row address R_ADDR to the address decoder520and may provide the column address C_ADDR to the data I/O circuit540.

The address decoder520may be connected to the memory cell array510via the plurality of string selection lines SSL, the plurality of wordlines WL and the plurality of ground selection lines GSL.

In the data erase/write/read operations, based on the row address R_ADDR the address decoder520may determine or select at least one of the plurality of wordlines WL as a selected wordline, and may determine or designate the rest or remainder of the plurality of wordlines WL other than the selected wordline as unselected wordlines.

In addition, in the data erase/write/read operations, based on the row address R_ADDR the address decoder520may determine or select at least one of the plurality of string selection lines SSL as a selected string selection line, and may determine or designate the rest or remainder of the plurality of string selection lines SSL other than the selected string selection line as unselected string selection lines.

Further, in the data erase/write/read operations, based on the row address R_ADDR the address decoder520may determine or select at least one of the plurality of ground selection lines GSL as a selected ground selection line, and may determine or designate the rest or remainder of the plurality of ground selection lines GSL other than the selected ground selection line as unselected ground selection lines.

The voltage generator550may be configured to generate voltages VS that are required for an operation of the nonvolatile memory500based on a power PWR and the control signals CON. The voltages VS may be applied to the plurality of string selection lines SSL, the plurality of wordlines WL and the plurality of ground selection lines GSL via the address decoder520. In addition, the voltage generator550may generate an erase voltage VERS that is required for the data erase operation based on the power PWR and the control signals CON. The erase voltage VERS may be applied to the memory cell array510directly or via the bitline BL.

During the erase operation, the voltage generator550may apply the erase voltage VERS to a common source line and/or the bitline BL of a memory block, e.g., a selected memory block, and may apply an erase permission voltage, e.g., a ground voltage, to all wordlines of the memory block or a portion of the wordlines via the address decoder520. In addition, during the erase verification operation, the voltage generator550may apply an erase verification voltage simultaneously to all wordlines of the memory block or sequentially to the wordlines one by one.

During the program operation, the voltage generator550may apply a program voltage to the selected wordline and may apply a program pass voltage to the unselected wordlines via the address decoder520. In addition, during the program verification operation, the voltage generator550may apply a program verification voltage to the selected wordline and may apply a verification pass voltage to the unselected wordlines via the address decoder520.

In addition, during the normal read operation, the voltage generator550may apply a read voltage to the selected wordline and may apply a read pass voltage to the unselected wordlines via the address decoder520. During the data recover read operation, the voltage generator550may apply the read voltage to a wordline adjacent to the selected wordline and may apply a recover read voltage to the selected wordline via the address decoder520.

The page buffer circuit530may be connected to the memory cell array510via the plurality of bitlines BL. The page buffer circuit530may include a plurality of page buffers. In some example embodiments, each page buffer may be connected to one bitline. In other example embodiments, each page buffer may be connected to two or more bitlines.

The page buffer circuit530may store data DAT to be programmed into the memory cell array510and/or may read data DAT sensed from the memory cell array510. In other words, the page buffer circuit530may operate as a write driver and/or as a sensing amplifier according to an operation mode of the nonvolatile memory500.

The data I/O circuit540may be connected to the page buffer circuit530via data lines DL. The data I/O circuit540may provide the data DAT from an outside source of the nonvolatile memory500to the memory cell array510via the page buffer circuit530or may provide the data DAT from the memory cell array510to an outside destination of the nonvolatile memory500, based on the column address C_ADDR. In some embodiments, the outside source and the outside destination may be the same location or device.

Although the nonvolatile memory according to some example embodiments is described based on a NAND flash memory, the nonvolatile memory according to example embodiments may be any nonvolatile memory, e.g., a phase random access memory (PRAM), a resistive random access memory (RRAM), a nano floating gate memory (NFGM), a polymer random access memory (PoRAM), a magnetic random access memory (MRAM), a ferroelectric random access memory (FRAM), a thyristor random access memory (TRAM), or the like.

FIG. 5is a block diagram illustrating a nonvolatile memory and a memory system including the nonvolatile memory according to some example embodiments.

Referring toFIG. 5, a memory system600may include a memory device610and a memory controller620. The memory system600may support a plurality of channels CH1, CH2, . . . , CHm, and the memory device610may be connected to the memory controller620through the plurality of channels CH1 to CHm. For example, the memory system600may be implemented as a storage device, such as a universal flash storage (UFS), a solid state drive (SSD), or the like.

The memory device610may include a plurality of nonvolatile memories NVM11, NVM12, . . . , NVM1n, NVM21, NVM22, . . . , NVM2n, NVMm1, NVMm2, . . . , NVMmn. For example, the nonvolatile memories NVM11 to NVMmn may correspond to the nonvolatile memories320a,320band320cinFIG. 2. Each of the nonvolatile memories NVM11 to NVMmn may be connected to one of the plurality of channels CH1 to CHm through a way corresponding thereto. For instance, the nonvolatile memories NVM11 to NVM1n may be connected to the first channel CH1 through ways W11, W12, . . . , W1n, the nonvolatile memories NVM21 to NVM2n may be connected to the second channel CH2 through ways W21, W22, . . . , W2n, and the nonvolatile memories NVMm1 to NVMmn may be connected to the m-th channel CHm through ways Wm1, Wm2, . . . , Wmn. In some example embodiments, each of the nonvolatile memories NVM11 to NVMmn may be implemented as an arbitrary memory unit that may operate according to an individual command from the memory controller620. For example, each of the nonvolatile memories NVM11 to NVMmn may be implemented as a chip or a die, but the present disclosure is not limited thereto.

The memory controller620may transmit and receive signals to and from the memory device610through the plurality of channels CH1 to CHm. For example, the memory controller620may correspond to the storage controller310inFIG. 2. For example, the memory controller620may transmit commands CMDa, CMDb, . . . , CMDm, addresses ADDRa, ADDRb, . . . , ADDRm and data DATAa, DATAb, . . . , DATAm to the memory device610through the channels CH1 to CHm or may receive the data DATAa to DATAm from the memory device610.

The memory controller620may select one of the nonvolatile memories NVM11 to NVMmn, which is connected to each of the channels CH1 to CHm, by using a corresponding one of the channels CH1 to CHm, and may transmit and receive signals to and from the selected nonvolatile memory. For example, the memory controller620may select the nonvolatile memory NVM11 from among the nonvolatile memories NVM11 to NVM1n connected to the first channel CH1. The memory controller620may transmit the command CMDa, the address ADDRa and the data DATAa to the selected nonvolatile memory NVM11 through the first channel CH1 or may receive the data DATAa from the selected nonvolatile memory NVM11.

The memory controller620may transmit and receive signals to and from the memory device610in parallel through different channels. For example, the memory controller620may transmit the command CMDb to the memory device610through the second channel CH2 while transmitting the command CMDa to the memory device610through the first channel CH1. For example, the memory controller620may receive the data DATAb from the memory device610through the second channel CH2 while receiving the data DATAa from the memory device610through the first channel CH1.

The memory controller620may control overall operations of the memory device610. The memory controller620may transmit a signal to the channels CH1 to CHm and may control each of the nonvolatile memories NVM11 to NVMmn connected to the channels CH1 to CHm. For example, the memory controller620may transmit the command CMDa and the address ADDRa to the first channel CH1 and may control one selected from among the nonvolatile memories NVM11 to NVM1n.

Each of the nonvolatile memories NVM11 to NVMmn may operate under the control of the memory controller620. For example, the nonvolatile memory NVM11 may program the data DATAa based on the command CMDa, the address ADDRa, and the data DATAa provided from the memory controller620through the first channel CH1. For example, the nonvolatile memory NVM21 may read the data DATAb based on the command CMDb and the address ADDRb provided from the memory controller620through the second channel CH2 and may transmit the read data DATAb to the memory controller620through the second channel CH2.

AlthoughFIG. 5illustrates an example where the memory device610communicates with the memory controller620through m channels and includes n nonvolatile memories corresponding to each of the channels, the present disclosure is not limited thereto, and the number of channels and the number of nonvolatile memories connected to one channel may be variously changed according to example embodiments.

FIG. 6is a flowchart illustrating an example of outputting the model request signal inFIG. 1.FIG. 7is a flowchart illustrating an example of collecting the deterioration characteristic information inFIG. 6.

Referring toFIG. 6, in outputting the model request signal, deterioration characteristic information may be collected (S110). Deterioration phase information may be generated based on the deterioration characteristic information (S130). In some embodiments, the deterioration phase information may represent a degree of a deterioration of a plurality of nonvolatile memories as a plurality of deterioration phases.

Referring toFIG. 7, in collecting the deterioration characteristic information, the deterioration characteristic information is generated based on at least one of commands issued by a storage controller included in the storage device (S111). The deterioration characteristic information is updated based on at least one of the commands (S113).

In some embodiments, the deterioration characteristic information may include direct deterioration information and indirect deterioration information. Hereinafter, the deterioration characteristic information will be described.

FIGS. 8, 9 and 10are diagrams for describing a process of generating the deterioration characteristic information inFIG. 6.

InFIG. 8, and as examples, commands issued from a storage controller, P/E cycles, read counts, a retention time, the number of on-cells and the number of error bits for a plurality of nonvolatile memories are illustrated.

In some embodiments, P/E cycle information, read count information, retention time information, information on the number of on-cells, and information on the number of error bits may be generated by cumulatively counting the P/E cycle, the read counts, the number of on-cells and the number of error bits.

In some embodiments, the P/E cycle, the read counts, and the retention time may be included in direct deterioration information, and the number of on-cells and the number of error bits may be included in indirect deterioration information.

Referring toFIG. 8, for convenience of description, it is assumed that a program command PGM, a first read command RD1, a second read command RD2, an erase command ERS, a retention time generating command RTIC, and on-cell count generating command OCIC are sequentially issued.

In some embodiments, the number of P/E cycles may be cumulatively counted based on the program command PGM and the erase command ERS. For example, whenever the program command PGM and the erase command ERS corresponding to the program command PGM are issued, the number of program/erase cycles may be cumulatively increased. In this case, a first variable CI1for storing the number of P/E cycles may be generated or read according to the program command PGM, and a value of the first variable CI1may increase by one or incremented based on the erase command ERS.

In some embodiments, the number of read counts may be cumulatively counted based on the read command. For example, the number of read counts may be cumulatively increased when the first read command RD1is issued, and the number of reads may be cumulatively increased when the second read command RD2is issued. In this case, the second variable CI2for storing the read counts may be generated or read according to the first read command RD1and the second read command RD2, and a value of the second variable CI2may increase by one or incremented based on the first read command RD1and the second read command RD2.

In some embodiments, the retention time may be cumulatively counted based on the program command PGM and the retention time generating command RTIC. For example, when the program command PGM is issued, the third variable CI3for storing the retention time may be generated corresponding to the program command PGM. When the retention time generating command RTIC is issued, a value of the third variable CI3for storing the retention time may be increased by time from when the program command PGM is issued until the retention time generating command RTIC is issued.

In some embodiments, the number of on-cells may be cumulatively counted based on the on-cell count generating command OCIC. For example, when the on-cell count generating command OCIC is issued, the number of on-cells among the memory cells included in the plurality of non-volatile memories is counted, and a value of the fourth variable CI4for storing the number of on-cells may be increased by the counted number of on-cells.

In some embodiments, the number of error bits may be cumulatively counted based on the program command PGM and the read command RD1and RD2. For example, whenever the program command PGM, the first read command RD1and the second read command RD2are issued, the number of error bits may be cumulatively increased. In this case the fifth variable CI5for storing the number of error bits may be increased by the number of error bits according to results of performing ECC encoding or ECC decoding on data corresponding to the program command PGM, the first read command RD1and the second read command RD2, respectively.

In some embodiments, the P/E cycle information, the read counts information, the retention time information, the information on the number of on-cells, and the information on the number of error bits may be generated based on the first to fifth variables CI1to CI5. Referring toFIGS. 6, 8 and 9, in collecting the deterioration characteristic information (S110), the P/E cycles may be updated based on the program command PGM and the erase command ERS (S121), and the read counts may be updated based on the first read command RD1and the second read command RD2(S123). The retention time may be updated based on the program command PGM and the retention time generating command RTIC (S125), the number of on-cells may be updated based on the on-cell count generating command OCIC (S127), and the number of error bits may be updated based on at least one of the first read command RD1, the second read command RD2and the program command PGM (S129).

InFIG. 10, a first nonvolatile memory320aof the plurality of nonvolatile memories320a,320band320cdescribed above with reference toFIG. 2is illustrated as an example.

The first nonvolatile memory320amay include a plurality of memory blocks321-1,321-2,321-3and321-4, and each of the plurality of memory blocks321-1,321-2,321-3and321-4may include a plurality of memory cells323-1,323-2,323-3and323-4. Only some of the memory blocks321and memory cells323therein are shown inFIG. 10for ease of illustration.

Referring toFIG. 10, the P/E cycles, the read counts, the retention time, the number of on-cells and the number of error bits may be generated for the first nonvolatile memory320a. In some embodiments, the P/E cycles, the read counts, the retention time, the number of on-cells and the number of error bits may be generated for all or a portion of the plurality of memory blocks321-1,321-2,321-3and321-4, and in other example embodiments, the read counts, the retention time, the number of on-cells and the number of error bits may be generated for all or a portion of the plurality of memory cells323-1,323-2,323-3and323-4.

In some embodiments, the deterioration characteristic information may be stored in the plurality of nonvolatile memories320a,320band320cor in the DRAM334in the buffer memory330described above with reference toFIG. 2, but the present disclosure is not limited thereto.

FIG. 11is a flowchart illustrating an example of generating deterioration phase information inFIG. 6.FIG. 12is a diagram illustrating an example of a lookup table representing a relationship between the deterioration characteristic information and a plurality of deterioration phases.

Referring toFIG. 11, deterioration characteristic information may be retrieved (S131), and a lookup table representing a relationship between the deterioration characteristic information and the plurality of deterioration phases is retrieved (S133). A deterioration phase information may be generated based on the deterioration characteristic information and the lookup table (S135).

InFIG. 12, the deterioration characteristic information DCI_INFO and the deterioration phase information DSI_INFO are illustrated. Referring toFIG. 12, the deterioration characteristic information DCI_INFO may be generated by interpolating values accumulated in the first to fifth variables CI1to CI5described above with reference toFIGS. 8, 9 and 10based on predetermined coefficients.

In some embodiments, the deterioration characteristic information DCI_INFO may be represented by one of the first to tenth deterioration characteristic information DCI_INFO_1 to DCI_INFO_10 based on a result of the interpolation, and one the first to tenth deterioration characteristic information DCI_INFO_1 to DCI_INFO_10 may be represented as one of the first to tenth deterioration phases DSI_INFO_1 to DSI_INFO_10.

In some embodiments, the deterioration phase information may represent a degree of the deterioration of a plurality of nonvolatile memories as a plurality of deterioration phases. For example, the first deterioration phase DSI_INFO_1 may represent a case in which the deterioration of the plurality of nonvolatile memories has progressed the least, and the tenth deterioration phase DS_INFO_10 may represent a case in which the deterioration of the plurality of nonvolatile memories has progressed the most. The present disclosure is not limited thereto.

In some embodiments, when the plurality of nonvolatile memories correspond to one of the first to third deterioration phases DSI_INFO_1 to DSI_INFO_3, it may be determined that the plurality of nonvolatile memories corresponds to or is in an early deterioration phase. When the plurality of nonvolatile memories correspond to one of the fourth to sixth deterioration phases DSI_INFO_4 or DSI_INFO_6, it may be determined that the plurality of nonvolatile memories corresponds to or is in a middle deterioration phases. When the plurality of nonvolatile memories corresponds to one of the seventh to tenth deterioration phases DSI_INFO_7 to DSI_INFO_10, it may be determined that the plurality of nonvolatile memories corresponds to or is in a late deterioration phase. However, example embodiments are not limited thereto.

FIG. 13is a flowchart illustrating an example of outputting a model request signal inFIG. 1.FIG. 14is a diagram illustrating an example of an evaluation result obtained by evaluating a plurality of machine learning models according to a plurality of model evaluation criteria.FIG. 15is a diagram for describing a process of storing a plurality of parameters included in a plurality of machine learning models into different areas of a plurality of volatile memories included in the storage device.

Referring toFIG. 13, in outputting the model request signal inFIG. 1, a plurality of machine learning models may be evaluated according to a plurality of model evaluation criteria (S141).

InFIG. 14, an evaluation result obtained by evaluating a plurality of machine learning models MM1to MM10according to a plurality of model evaluation criteria is illustrated. In some embodiments, the plurality of model evaluation criteria may include a processing speed, an accuracy, a confusion matrix, a precision, a recall and a F1 score, with the present disclosure not limited thereto.

Referring toFIG. 14, the plurality of machine learning models may be evaluated according to at least one of the plurality of model evaluation criteria.

In some embodiments, as a result of evaluating the plurality of machine learning models MM1to MM10according to the processing speed, the machine learning model MM1may be identified to be the best or most optimal and the machine learning model MM10may be the worst or least optimal.

In some embodiments, as a result of evaluating the plurality of machine learning models MM1to MM10according to the accuracy, the machine learning model MM10may be identified to the best or most optimal and the machine learning model MM1may be the worst or least optimal.

In some embodiments, as a result of evaluating the plurality of machine learning models MM1to MM10according to the error matrix, the precision, the recall and the F1 score, the plurality of machine learning models MM1to MM10may be identified as illustrated inFIG. 14.

In some embodiments, the plurality of model evaluation criteria may include first to X-th model evaluation criteria, where X is an integer greater than or equal to two. Each of the first to X-th model evaluation criteria may be a criterion for sorting the plurality of machine learning models based on at least one of the processing speed, the accuracy, a confusion matrix, a precision, a recall and a F1 score of the plurality of machine learning models.

Referring back toFIG. 13, a plurality of parameters included in the plurality of machine learning models may be stored into different area of a plurality of volatile memories included in the storage device based on the evaluation result according to the plurality of model evaluation criteria (S143). One of the plurality of machine learning models is selected based on the deterioration phase information (S145).

Referring toFIG. 15, a plurality of machine learning models MM1to MM10are stored in a plurality of volatile memories710,730and750included in a storage device.

In some embodiments, a first volatile memory710of the plurality of volatile memories may correspond to the TCM314inFIG. 2. A second volatile memory730of the plurality of volatile memories may correspond to one of the SRAM316and SRAM332inFIG. 2. A third volatile memory750of the plurality of volatile memories may correspond to the DRAM334inFIG. 2.

In some embodiments, some or a first group of the machine learning models, e.g., MM1and MM2, with excellent processing speed may be stored in the first volatile memory710, some or a second group of the machine learning models, e.g., MM3to MMS, with the next best processing speed may be stored in the second volatile memory730, and the remaining or a third group of the machine learning models, e.g., MM6to MM10, with inferior processing speed may be stored in the third volatile memory750. The machine learning models stored in the first volatile memory710may be referred to as first machine learning models, the machine learning models stored in the second volatile memory730may be referred to as second machine learning models, and the machine learning models stored in the third volatile memory750may be referred to as third machine learning models. In some embodiments, a size or number of the plurality of parameters included in the first machine learning model is smaller than a size or number of the plurality of parameters included in the second machine learning model, and the size or number of the plurality of parameters included in the second machine learning model is smaller than a size or number of the plurality of parameters included in the third machine learning model.

In some embodiments, machine learning models based on a linear regression expressed as a first-order polynomial, a linear SVM, a shallow depth decision tree and an artificial neural network composed of a small number of layers and nodes may be stored in the first volatile memory710. Machine learning models based on a linear regression expressed as an exponential or a logarithmic, a SVM based on radial basis function (RBF) kernel, a deep depth decision tree and an artificial neural network composed of a large number of layers and nodes may be stored in the third volatile memory750.

Therefore, when it is determined based on the deterioration phase information that the plurality of nonvolatile memories correspond to an early deterioration phase, the first machine learning model may be selected from among the plurality of machine learning models as an optimal machine learning model. When it is determined based on the deterioration phase information that the plurality of nonvolatile memories correspond to a middle deterioration phase, the second machine learning model may be selected from among the plurality of machine learning models as the optimal machine learning model. When it is determined based on the deterioration phase information that the plurality of nonvolatile memories correspond to a late deterioration phase, the third machine learning model may be selected from among the plurality of machine learning models as the optimal machine learning model.

FIG. 16is a flowchart illustrating an example of receiving first parameters of the optimal machine learning model inFIG. 1.

Referring toFIG. 16, in receiving the first parameters of the optimal machine learning mode inFIG. 1, when a first machine learning model is selected as the optimal machine learning model, the first parameters may be received via a TCM interface (S510). When one of the second machine learning model and the third machine learning model is selected as the optimal machine learning model, the first parameters may be received via a buffer memory interface (S530).

In some embodiments, when a machine learning model is selected as the optimal machine learning model by performing operations S510and S530, the first parameters may be received from one of the first volatile memory710, the second volatile memory730, and the third volatile memory750described above with reference toFIG. 15. When the first machine learning model is selected as the optimal machine learning model, the first parameters may be received from the first volatile memory710. When the second machine learning model is selected as the optimal machine learning model, the first parameters may be received from the second volatile memory730. When the third machine learning model is selected as the optimal machine learning model, the first parameters may be received from the third volatile memory750.

FIGS. 17 and 18are diagrams for describing threshold voltages and read voltages of the nonvolatile memory included in the storage device according to some example embodiments.

InFIGS. 17 and 18, threshold voltage distributions and read voltages of a nonvolatile memory device including memory cells having a triple level cell (TLC) structure are illustrated in an example.

Referring toFIG. 17, memory cells included in the nonvolatile memory device may have one of an erase state E and first to seventh program states P1to P7. The read voltages VRD1to VRD7may be predetermined in consideration of characteristics of the memory cells.

In some embodiments, the read voltages VRD1to VRD7may be determined based on the threshold voltage distribution immediately after the memory cells are programmed, but in other example embodiments, after a predetermined time elapses subsequent to the memory cells being programmed, e.g., after the memory cells are stabilized, the read voltages VRD1to VRD7may be determined based on the threshold voltage distribution.

Referring toFIG. 18, when physical characteristics of memory cells included in the nonvolatile memory device are changed due to external factors, the threshold voltage distribution may be changed as illustrated inFIG. 18. For example, in a charge trap flash (CTF) memory cell, an initial verify shift (IVS) phenomenon in which a threshold voltage distribution of the memory cells decreases as a programming time elapses may occur. Furthermore, the threshold voltage distribution of the memory cells may overlap as illustrated inFIG. 18due to sudden power off (SPO) during programming of the memory cells. When the data stored in the nonvolatile memory device is retrieved based on the read voltages VRD1to VRD7, the read data may include a plurality of errors. Accordingly, when threshold voltages or read voltages of nonvolatile memories are predicted using the machine learning models described above with reference toFIG. 1, a number of errors that may be included in the read data may be effectively reduced.

FIGS. 19, 20, and 21are diagrams for describing an artificial neural network as an example of the plurality of machine learning models according to some example embodiments.

FIGS. 19, 20, and 21are diagrams for describing an example of a network structure used to perform deep learning by a homomorphic operation performing device according to some example embodiments.

Referring toFIG. 19, a general neural network (e.g., an ANN) may include an input layer IL, a plurality of hidden layers HL1, HL2, . . . , HLn and an output layer OL.

The input layer IL may include i input nodes x1, x2, . . . , xi, where i is a natural number. Input data (e.g., vector input data) IDAT whose length i may be input to the input nodes x1, x2, . . . , xisuch that each element of the input data IDAT is input to a respective one of the input nodes x1, x2, . . . , xi.

The output layer OL may include j output nodes y1, y2, . . . , yj, where j is a natural number. Each of the output nodes y1, y2, . . . , yjmay correspond to a respective one of classes to be categorized. The output layer OL may output output values (e.g., class scores or simply scores) associated with the input data IDAT for each of the classes. The output layer OL may be referred to as a fully-connected layer and may indicate, for example, a probability that the input data IDAT corresponds to a car.

A structure of the neural network illustrated inFIG. 19may be represented by information on branches (or connections) between nodes illustrated as lines, and a weighted value assigned to each branch, which are not illustrated. Nodes within one layer may not be connected to one another, but nodes of different layers may be fully or partially connected to one another.

Each node may receive an output of a previous node, may perform a computing operation, computation, or calculation on the received output, and may output a result of the computing operation, computation, or calculation as an output to a next node. For example, node h11may receive an output of a previous node x1, may perform a computing operation, computation, or calculation on the received output of the previous node x1, and may output a result of the computing operation, computation, or calculation as an output to a next node h21. Each node may calculate a value to be output by applying the input to a specific function, e.g., a nonlinear function.

Generally, the structure of the neural network may be set in advance, and the weighted values for the connections between the nodes are set appropriately using data having an already known answer of which class the data belongs to. The data with the already known answer is referred to as “training data,” and a process of determining the weighted value is referred to as “training.” The neural network “learns” during the training process. A group of an independently trainable structure and the weighted value is referred to as a “model,” and a process of predicting, by the model with the determined weighted value, which class the input data belongs to, and then outputting the predicted value, is referred to as a “testing” process.

The general neural network illustrated inFIG. 19may not be suitable for handling input image data (or input sound data) because each node (e.g., the node h11) is connected to all nodes of a previous layer (e.g., the nodes x1, x2, . . . , xiincluded in the layer IL) and then the number of weighted values drastically increases as the size of the input image data increases. Thus, a convolutional neural network (CNN), which is implemented by combining the filtering technique with the general neural network, has been researched such that two-dimensional image (e.g., the input image data) is efficiently trained by the CNN.

Referring toFIG. 20, a CNN may include a plurality of layers CONV1, RELU1, CONV2, RELU2, POOL1, CONV3, RELU3, CONV4, RELU4, POOL2, CONV5, RELU5, CONV6, RELU6, POOL3and FC. Here, CONV is a convolution layer, RELU is a Rectified Linear Unit, POOL is a pooling layer and FC is a fully connected layer.

Unlike the general neural network (e.g., that ofFIG. 19), each layer of the CNN may have three dimensions of width, height and depth, and thus data that is input to each layer may be volume data having three dimensions of width, height and depth. For example, if an input image inFIG. 20has a size of 32 widths (e.g., 32 pixels) and 32 heights and three color channels R, G and B, input data IDAT corresponding to the input image may have a size of 32*32*3. The input data IDAT inFIG. 20may be referred to as input volume data or input activation volume.

Each of convolutional layers CONV1, CONV2, CONV3, CONV4, CONV5, and CONV6may perform a convolutional operation on input volume data. In an image processing, the convolutional operation represents an operation in which image data is processed based on a mask with weighted values and an output value is obtained by multiplying input values by the weighted values and adding up the total multiplied values. The mask may be referred to as a filter, window, or kernel.

Particularly, parameters of each convolutional layer may include of a set of learnable filters. Every filter may be small spatially (along width and height), but may extend through the full depth of an input volume. For example, during the forward pass, each filter may be slid (more precisely, convolved) across the width and height of the input volume, and dot products may be computed between the entries of the filter and the input at any position. As the filter is slid over the width and height of the input volume, a two-dimensional activation map that gives the responses of that filter at every spatial position may be generated. As a result, an output volume may be generated by stacking these activation maps along the depth dimension. For example, if input volume data having a size of 32*32*3 passes through the convolutional layer CONV1having four filters with zero-padding, output volume data of the convolutional layer CONV1may have a size of 32*32*12 (e.g., a depth of volume data increases).

Each of RELU layers RELU1, RELU2, RELU3, RELU4, RELU5and RELU6may perform a rectified linear unit (RELU) operation that corresponds to an activation function defined by, e.g., a function f(x)=max(0, x) (e.g., an output is zero for all negative input x). For example, if input volume data having a size of 32*32*12 passes through the RELU layer RELU1to perform the rectified linear unit operation, output volume data of the RELU layer RELU1may have a size of 32*32*12 (e.g., a size of volume data is maintained).

Each of pooling layers POOL1, POOL2and POOL3may perform a down-sampling operation on input volume data along spatial dimensions of width and height. For example, four input values arranged in a 2*2 matrix formation may be converted into one output value based on a 2*2 filter. For example, a maximum value of four input values arranged in a 2*2 matrix formation may be selected based on 2*2 maximum pooling, or an average value of four input values arranged in a 2*2 matrix formation may be obtained based on 2*2 average pooling. For example, if input volume data having a size of 32*32*12 passes through the pooling layer POOL1having a 2*2 filter, output volume data of the pooling layer POOL1may have a size of 16*16*12 (e.g., width and height of volume data decreases, and a depth of volume data is maintained).

Typically, one convolutional layer (e.g., CONV1) and one RELU layer (e.g., RELU1) may form a pair of CONV/RELU layers in the CNN, pairs of the CONV/RELU layers may be repeatedly arranged in the CNN, and the pooling layer may be periodically inserted in the CNN, thereby reducing a spatial size of image and extracting a characteristic of image.

An output layer or a fully-connected layer FC may output results (e.g., class scores) of the input volume data IDAT for each of the classes. For example, the input volume data IDAT corresponding to the two-dimensional image may be converted into a one-dimensional matrix or vector as the convolutional operation and the down-sampling operation are repeated. For example, the fully-connected layer FC may represent probabilities that the input volume data IDAT corresponds to a car, a truck, an airplane, a ship and a horse.

The types and number of layers included in the CNN may not be limited to an example described with reference toFIG. 20and may be changed according to example embodiments. In addition, although not illustrated inFIG. 20, the CNN may further include other layers such as a softmax layer for converting score values corresponding to predicted results into probability values, a bias adding layer for adding at least one bias, or the like.

Referring toFIG. 21, a recurrent neural network (RNN) may include a repeating structure using a specific node or cell N illustrated on the left side ofFIG. 21.

A structure illustrated on the right side ofFIG. 21may represent that a recurrent connection of the RNN illustrated on the left side is unfolded (or unrolled). The term “unfolded” means that the network is written out or illustrated for the complete or entire sequence including all nodes NA, NB and NC. For example, if the sequence of interest is a sentence of 3 words, the RNN may be unfolded into a 3-layer neural network, one layer for each word (e.g., without recurrent connections or without cycles).

In the RNN inFIG. 21, X represents an input of the RNN. For example, Xtmay be an input at time step t, and Xt−1and Xt+1may be inputs at time steps t−1 and t+1, respectively.

In the RNN inFIG. 21, S represents a hidden state. For example, St may be a hidden state at the time step t, and St−1and St+1may be hidden states at the time steps t−1 and t+1, respectively. The hidden state may be calculated based on a previous hidden state (W) and an input at a current step (U). For example, St=f(UXt+WSt−1). For example, the function f may be usually a nonlinearity function such as tan h or RELU. S−1, which is required to calculate a first hidden state, may be typically initialized to all zeroes.

In the RNN inFIG. 21, O represents an output of the RNN. For example, Otmay be an output at the time step t, and Ot−1and Ot+1may be outputs at the time steps t−1 and t+1, respectively. For example, if it is required to predict a next word in a sentence, it would be a vector (V) of probabilities across a vocabulary. For example, Ot=softmax(VSt).

In the RNN inFIG. 21, the hidden state may be a “memory” of the network. In other words, the RNN may have a “memory” which captures information about what has been calculated so far. The hidden state St may capture information about what happened in all the previous time steps. The output Otmay be calculated solely based on the memory at the current time step t. In addition, unlike a traditional neural network, which uses different parameters at each layer, the RNN may share the same parameters across all time steps. This may represent the fact that the same task may be performed at each step, just with different inputs. This may greatly reduce the total number of parameters required to be trained or learned.

In some example embodiments, various services and/or applications such as a prediction of reliability information of storage device and the like may be executed and processed based on the reliability information predictor or the storage controller described above with reference toFIG. 3.

FIG. 22is a flowchart illustrating a method of operating the storage device according to example embodiments.

Referring toFIG. 22, in a method of operating the storage device, reliability information is predicted (S710), and a read operation is performed on the storage device based on a result of the predicting the reliability information (S730).

In some embodiments, the S710may be performed by the operations S100, S200and S300described above with reference toFIG. 1.

In some embodiments, the S710may be performed whenever at least one of a read operation, a program operation, a wear leveling, a garbage collection, and/or a read reclaim operation is performed while the storage device is be driven.

FIG. 23is a block diagram illustrating the storage device and the storage system according to some example embodiments.

Referring toFIG. 23, a storage system1000may include a host device1100and a storage device1200.

The storage device1100may control overall operations of the storage system1000. For example, the host device1100may include a host processor that controls operations of the host device1100and executes an operating system (OS) and a host memory that stores instructions executed and processed by the host processor and data.

The storage device1200may be accessed by the host device1100and may include a storage controller1210, a plurality of nonvolatile memories1220a,1220b, and1220c, and a buffer memory1230. The storage controller1210may control operations of the storage device1200. The plurality of nonvolatile memories1220a,1220b, and1220cmay store a plurality of data.

The buffer memory1230may store commands and data executed and processed by the storage controller1210, and temporarily store data stored in or to be stored in the plurality of nonvolatile memories1220a,1220b, and1220c.

The storage system100ofFIG. 2may be implemented in a form of the storage device1200, and the storage controller1210and the nonvolatile memories1220a,1220b, and1220cmay correspond to the storage controller310and the nonvolatile memories320a,320b, and320c, respectively.

The reliability information predictor SRIP included in the storage device1200may correspond to the reliability information predictor312ofFIG. 2. In some embodiments, the storage controller1210may further include a neural processing unit (NPU)1214for detecting an input/output pattern of write data.

In some embodiments, the storage device1200may be a solid state drive (SSD), an universal flash storage (UFS), a multi media card (MMC), an embedded MMC (eMMC), or the like. In other embodiments, the storage device1200may be implemented in a form of a secure digital (SD) card, a micro SD card, a memory stick, a chip card, an universal serial bus (USB) card, a smart card, a compact flash (CF) card or the like.

As described above, in the method of predicting reliability information of a storage device according to example embodiments, the operations S100, S200and S300ofFIG. 1may be performed to predict more efficiently reliability information of a nonvolatile memory included in the storage device. More specifically, in the method of predicting reliability information of the storage device, a model request signal may be outputted based on deterioration characteristic information and deterioration phase information. The reliability information of the nonvolatile memory may be predicted by adaptively selecting an optimal machine learning model that is one of a plurality of machine learning models based on the model request signal. That is, the method of predicting the reliability information of the storage device may efficiently predict the reliability information of the nonvolatile memory by adaptively reading parameters of the optimal machine learning model in consideration of the degree of deterioration of the nonvolatile memory.

The foregoing is illustrative of example embodiments and is not to be construed as limiting thereof. Although some example embodiments have been described, those skilled in the art will readily appreciate that many modifications are possible in the example embodiments without materially departing from the novel teachings and advantages of the example embodiments. Accordingly, all such modifications are intended to be included within the scope of the example embodiments as defined in the claims.