METHOD AND DEVICE FOR DETERMINING WHEN THE ACTUAL WEAR OF A FLASH STORAGE DEVILS FROM RELIABILITY CONDITIONS FOR THE FLASH STORAGE DEVIL

A neural network-based method predicts flash storage device reliability states to address TVSO mismatches and firmware issues, ensuring consistent SSD performance by adjusting TVSO values and flagging deviations, thus maintaining optimal bandwidth and latency.

DE112021004294B4Active Publication Date: 2025-12-31MICROCHIP TECHNOLOGY INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE112021004294
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-26
Filing Date
2021-04-30
Publication Date
2025-12-31
Estimated Expiration
2041-04-30

AI Technical Summary

Technical Problem

Conventional flash storage devices face issues with incorrect threshold voltage shift offset (TVSO) values due to mismatched physical structures, firmware corruption, and unmonitored offline dwell time and temperature, leading to read errors that affect bandwidth, latency, and quality of service (QoS).

Method used

A method and device using a classification neural network (CNN) model to predict flash storage device reliability states by monitoring current physical characteristics and TVSO values, enabling accurate TVSO adjustments and flagging deviations from expected conditions.

Benefits of technology

The solution provides real-time monitoring and faster recovery from firmware corruption, ensuring accurate TVSO values and maintaining optimal SSD performance by identifying and correcting mismatches in physical structures and offline conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Method for generating a classification neural network (CNN) model for reliability states of a flash memory device (33) that can be read by sending a threshold voltage shift read instruction (24) to the flash memory device (33) which includes a threshold voltage shift offset (TVSO) value for each threshold voltage region required to read the flash memory device (33), wherein the method comprises: Receiving (102) an input specifying a framework for the reliability state CNN model, wherein the framework includes test criteria and a training algorithm; Receiving (103) training data files that specify for each of a plurality of different word lines a Flash Characterization Test Error (FCT-ERROR) value, which specifies a number of Flash Characterization Test Errors, wherein a marker specifies one of a plurality of reliability states and a set of minimum threshold voltage shift offset (TVSOmin) values; Performing (105) the training to generate the reliability state CNN model using a training dataset that includes the received training data files, wherein the reliability state CNN model is configured to predict the reliability state of the flash storage device (33); Testing (106) the reliability state CNN model to determine whether the reliability state CNN model can predict each of the reliability states using the training data set, the testing including determining whether the test criteria are met for each of the reliability states; If the trained neural classification network model fails to meet the test criteria for a particular reliability state, remove (108) from the training data files corresponding to the reliability state that fails to meet the test criteria in a particular TVSO region, from training data files with a non-zero TVSO value to form an updated training dataset, and repeat the training and testing using the updated training dataset; and If test criteria for each of the reliability states are met, save (109) configuration files for the reliability state CNN model.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED REGISTRATIONS

[0001] The present application claims priority over the preliminary US patent application filed on November 20, 2020, with serial number 63 / 116,303, and the non-preliminary US patent application filed on March 26, 2021, with serial number 17 / 213,675. BACKGROUND

[0002] Some solid-state drives (SSDs) incorporate flash controllers that use threshold voltage shift reads to read flash memory devices, achieving low levels of uncorrectable bit error rate (UBER) required for client and enterprise SSDs. Threshold voltage shift reads are performed by sending a threshold voltage shift read instruction to the flash memory device to be read. One or more threshold voltage shift offsets (TVSOs) are sent with the threshold voltage shift read instruction. The TVSO value specifies the amount by which each threshold voltage used to perform the read operation should be shifted relative to a corresponding standard threshold voltage specified by the flash memory device manufacturer.Multi-level cell (MLC) flash memory devices store two bits of information in each cell and require three TVSO values ​​for each read operation; triple-level cell (TLC) flash memory devices store three bits of information in each cell and require seven TVSO values ​​for each read operation; quad-level cell (QLC) flash memory devices store four bits of information in each cell and require 15 TVSO values ​​for each read operation; and penta-level cell (PLC) flash memory devices store five bits of information in each cell and require 31 TVSO values ​​for each read operation.

[0003] A flash characterization test process is performed to identify the best TVSO values ​​to use when performing read operations on a given flash storage device. These values ​​are commonly referred to as minimum threshold voltage shift offset (TVSOmin) values. TVSOmin values ​​are typically a set of TVSO values ​​that produce the fewest errors when reading the flash storage device under test conditions that correspond to a specific reliability state. However, there are many different processes for determining TVSOmin values, and in many cases, the sets of TVSOmin values ​​identified during flash characterization testing are not necessarily the actual TVSO values ​​that produce the fewest errors. Instead, they are sets of TVSO values ​​that meet one or more performance metrics, such as a specific raw bit error rate (RBER).

[0004] Flash controllers that use threshold voltage shift read instructions to perform read operations typically include firmware to monitor physical characteristics of the flash memory devices and use the monitored physical characteristics to determine the TVSO value(s) to use when performing read operations on each flash memory device. The TVSO value(s) to be used to perform the read operation (hereinafter referred to as "TVSO Read Current" values ​​or TVSO RC values) is / are typically determined by the flash memory controller prior to each read operation based on the physical location to be read (e.g.,The TVSO-RC values ​​are determined by performing a lookup operation in a lookup table using the physical location to be read and the measured current physical characteristics of the flash memory device (e.g., number of program / erase cycles, dwell time, and / or number of read errors for the block to be read). The TVSO-RC values ​​are typically one of the sets of TVSOmin values ​​identified during flash characterization tests. Although monitoring the physical characteristics yields good results in most situations, if a flash device's physical structure does not match what would be expected given the measured physical characteristics (e.g.,If the structure on the flash device ages prematurely, the TVSO-RC value used to perform the read may be incorrect, resulting in a read error. When this occurs, the firmware or software stack controlling / managing the flash storage devices does not detect the error to the flash controller until an error correction code (ECC) located in or associated with the flash controller corrects a page that is currently being read. This means that recovering user data requires ECC error recovery processes or, in some cases, processes for a redundant array of independent disks (RAID). This has a significant impact on the SSD's bandwidth, latency, and quality of service (QoS).

[0005] Another problem with conventional systems is that if the flash controller's firmware image is corrupted during a firmware update or upgrade, the flash controller must perform a foreground threshold voltage shift calibration on all blocks of all flash memory devices in the SSD upon startup. This is a lengthy process. The user cannot access the SSD until this process is complete and the reliability state is restored, which also affects the SSD's bandwidth, latency, and QoS.

[0006] Some flash controllers monitor dwell time and temperature. A problem with such systems is that dwell time and temperature are only monitored when the SSD is operating. However, when the SSD is in a low-power or shutdown state, the dwell time during this state, commonly referred to as "offline dwell time," is unknown, as is the temperature (offline temperature) during this time. This can lead to the use of an incorrect TVSO-RC value to perform a read operation, which can result in read errors and thus affect the drive's bandwidth, latency, and QoS.

[0007] Accordingly, there is a need for a method and a device that can provide an indication when the physical structure of a flash device does not correspond to what would be expected based on the measured physical characteristics of the device. Furthermore, there is a need for a method and a device that enable faster recovery if the firmware image is corrupted during a firmware update or upgrade. Additionally, there is a need for a method and a device that compensate for the effects of offline time and offline temperature when the SSD is in a low-power or shutdown state.

[0008] Document US 2020 / 0 210 831 A1 discloses a computer-implemented method for optimizing read thresholds of a storage device using a deep neural network engine.

[0009] ABE, Masaki, et al.: Computational approximate storage with neural network-based error patrol of 3D-TLC NAND flash memory for machine learning applications. In: 2020 IEEE International Memory Workshop (IMW), 2020, 1-4, reveals a computational approximate storage solution for machine learning. BRIEF SUMMARY OF THE INVENTION

[0010] The invention is defined in the independent patent claims.

[0011] A method for generating a classification neural network (CNN) model for the reliability states of a flash memory device, which can be read by sending a threshold voltage shift read instruction that includes a TVSO value for each threshold voltage region required to read the flash memory device, includes displaying test criteria and a training algorithm. Training data files are received that specify, for each of a variety of distinct word lines, a Flash Characterization Test Error (FCT-ERROR) value indicating the number of Flash Characterization Test Errors, a marker indicating one of the reliability states, and a set of TVSOmin values ​​specifying a TVSOmin value for each threshold voltage region required to read the flash memory device.Training is performed to generate the reliability state CNN model using a training dataset that includes the received training data files. The reliability state CNN model is configured to predict the reliability state of the flash storage device. The reliability state CNN model is then tested to determine whether it can predict each of the reliability states using the training dataset. This testing includes verifying that the test criteria are met for each of the reliability states.If the trained neural classification network model fails to meet the test criteria for a particular reliability state, the procedure involves removing training data files with a non-zero TVSO value from the training data files corresponding to the reliability state that fails to meet the test criteria in a specific TVSO region, in order to create an updated training dataset. The training and test steps are then repeated using the updated training dataset. If the test criteria for each of the reliability states are met, configuration files for the reliability state CNN model are saved. Optionally, one or more sets of FCR TVSO values ​​that were not removed from the training dataset are also identified and saved.

[0012] A method for determining when the actual wear of a flash storage device deviates from one of a variety of reliability states for the flash storage device involves storing configuration files of a reliability state neural classification network (CNN) model on a flash controller or on a storage device coupled to the flash controller, wherein the reliability state CNN model is configured to identify the reliability states for the flash storage device; store one or more threshold voltage shift offset (TVSO) values; monitor the operation of the flash storage device to identify one or more current physical characteristics of the flash storage device; and identify a set of TVSO values ​​currently being used to perform read operations on the flash storage device.A read operation of the flash storage device is performed on the stored one or more TVSO values ​​to determine a number of failures for the flash storage device. A neural network operation of the reliability state CNN model is performed, using as input the set of TVSO values ​​currently used to read the flash storage device and the determined number of failures for the flash storage device to identify a predicted reliability state. The identified current physical characteristics are compared with corresponding tags associated with the predicted reliability state. A flag or other indication is stored if the comparison shows that the identified current physical characteristics do not match the respective tags associated with the predicted reliability state.

[0013] A flash controller includes a write module configured to write data to a flash storage device; a read module configured to perform a read operation on the flash storage device by sending a threshold voltage offset read instruction to the flash storage device, which includes a threshold voltage offset (TVSO) value for each threshold voltage region required to read the flash storage device; a decode module configured to decode the results of the read operation; and a status module to monitor the operation of the flash storage device in order to identify one or more current physical characteristics.A data storage module is configured to store configuration files for a reliability state neural classification network (CNN) model. This model is configured to identify reliability states for the flash storage device and to store one or more TVSO values ​​used in training the reliability state CNN model. A control module is coupled to the data storage module. The control module is configured to identify a set of TVSO values ​​currently used to perform read operations on the flash storage device and to instruct the read module to perform a read operation on the flash storage device using the stored one or more TVSO values.In response to the instruction, the read module is configured to perform a read from the flash memory device using the stored one or more TVSO values, and the decode module is configured to determine a number of errors using the results of the one or more read operations. A neural processing module is coupled to the data storage module and the control module. The neural processing module is configured to perform a neural network operation using the stored configuration files and taking as input the identified set of TVSO values ​​currently used to perform reads from the flash memory device and the determined number of errors to identify a predicted reliability state.The control module is configured to compare the identified current physical characteristics with corresponding tags associated with the predicted reliability state, and to store a flag or other indication if the comparison indicates that the identified current physical characteristics do not match the tags associated with the predicted reliability state. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] The accompanying drawings are included to provide a further understanding of the invention and are incorporated into and form part of this specification. The drawings illustrate various embodiments. Fig. Figure 1 is a block diagram illustrating an SSD. Fig. Figure 2 is a diagram illustrating a flash controller and a NAND flash memory device and illustrating the communication between the flash controller and the flash memory device according to an embodiment of the present invention. Fig. Figure 3 is a diagram illustrating a test and model generation system. Fig. Figure 4 is a block diagram illustrating a procedure for generating a reliability state CNN model. Fig. 5A-5E are block diagrams illustrating example training datasets. Fig. Figure 6 is a graph illustrating exemplary threshold voltage shift reading error curves generated from an exemplary threshold voltage shift reading training dataset. Fig. Figure 7 is a graph illustrating exemplary smoothed threshold voltage shift reading error curves generated from an exemplary smoothed threshold voltage shift reading training dataset. Fig. Figure 8 is a block diagram illustrating a reliability state CNN inference model with a single output neuron. Fig. Figure 9 is a block diagram illustrating a reliability state CNN inference model with one output neuron for each reliability state. Fig. Figure 10 is a block diagram illustrating a procedure for determining when actual wear of a flash memory device deviates from one of a variety of reliability states for the flash memory device. DETAILED DESCRIPTION

[0015] An SSD 11 is in Fig. Figure 1 shows a flash controller 3 coupled to a plurality of flash memory devices 2 for storing data. In the present embodiment, the flash memory devices 2 are NAND devices, and the SSD 11 includes one or more printed circuit boards to which a host connector 14, the flash controller 3, and the flash memory devices 2 are attached. The SSD 11 may also include one or more memory devices 13, such as a dynamic random access memory (DRAM), which may be a separate device with integrated circuitry attached to one or more printed circuit boards and electrically coupled to the flash controller 3.

[0016] The Flash Controller 3 is configured to receive read and write instructions from a host computer through the host connector 14 and to perform programming, erase, and read operations on memory cells of flash storage devices 2 to execute the instructions from the host computer. For example, upon receiving a write instruction from the host computer through the host connector 14, the Flash Controller 3 can be operated to store data in the SSD 11 by performing programming operations (and, if necessary, erase operations) to program codewords into one or more flash storage devices 2.

[0017] Flash control 3 includes data storage module 4, status module 5, read module 6, decode module 7, write module 8, neural processing module 10, and control module 9. Control module 9 is coupled to data storage module 4, status module 5, read module 6, decode module 7, write module 8, and neural processing module 10. Status module 5 is coupled to data storage module 4, read module 6, decode module 7, write module 8, control module 9, and neural processing module 10. Data storage module 4 stores configuration files for the reliability state CNN model 12, the optional TVSO selection table 17, and one or more optional flags 16. The TVSO selection table 17 is coupled to read module 6. TVSO selection table 17 includes one or more index and corresponding TVSO values ​​to be used when performing read operations (e.g.an index corresponding to a block, word line or page, and TVSO values ​​for each threshold voltage region required to perform a read operation).

[0018] The read module 6 is further coupled to the control module 9, the neural processing module 10, and the decode module 7. The control module 9 is further coupled to the decode module 7, the neural processing module 10, and the data storage module 4. The data storage module 4 includes flags 16, the optional TVSO selection table 17, tags 18, and TVSO values ​​19 (all of which are coupled to the control module 9). The neural processing module 10 is coupled to the data storage module 4 in such a way that configuration files of the reliability state CNN model 12 can be loaded onto it.

[0019] In one example, the neural processing module 10 includes a specialized hardware module (e.g., a specialized configurable accelerator) specifically configured to perform a neural network operation, sometimes referred to as a neural network engine (e.g., a programmable logic circuit). Alternatively, the neural processing module 10 may include a processor 34 and software for performing neural network operations.

[0020] In the present embodiment, the flash controller 3 is an integrated circuit device, and some or all of the modules 5-10 include circuits that may be dedicated circuits for performing operations. Some or all of the modules 5-10 may be firmware containing instructions that are executed on one or more processors 34 to perform operations of the flash controller 3. The instructions are stored in registers 21 of one or more of the modules 5-10 and / or in the data storage module 4 or the storage device 13. In this embodiment, some of the modules 5-10 include processors 34 for executing instructions, and one or more firmware images are loaded into the flash controller 3 before it is operated (e.g.,through the host connector 14), wherein the firmware image includes instructions to be carried out by one or more of the modules 5-10.

[0021] Each flash memory device 2 can be an enclosed semiconductor die or “chip” coupled to the flash controller 3 via conductive traces that couple instructions, data, and other information between each flash memory device 2 and the flash controller 3. In the Fig. In the embodiment shown in Figure 2, each flash memory device 2 (e.g., a NAND device) includes a register 21, a microcontroller 22, and a memory array 23, and is coupled to the flash controller 3 by a chip enable signal line (CE#), a command latch enable signal line (CLE), a read enable signal line (RE#), an address latch enable signal line (ALE), a write enable signal line (WE#), a read / occupied signal line (R / B), and input and output signal lines (DQ). Upon receiving a write instruction from a host computer, the write module 8 is operational to encode received data into a codeword, which is sent to the registers 21 along with a corresponding programming instruction. The microcontroller 22 is programmed by coding cells of the memory array 23 (e.g.,(as the logical side) is operational to execute the requested programming instruction, retrieve the codeword from register 21, and store the codeword in memory array 23. Microcontroller 22 is also operational to erase cells of memory array 23.

[0022] In one example, each flash storage device 2 encloses NAND memory cells organized into blocks and pages, each block consisting of NAND strings that share the same group of word lines. Each logical page consists of cells belonging to the same word line; however, in MLC flash storage devices, multiple logical pages can correspond to a single word line. The number of logical pages within each logical block is typically a multiple of 16 (e.g., 64, 128). In the present embodiment, a logical page is the smallest addressable unit for reading from and writing to the NAND memory cells of each flash storage device 2, and a logical block is the smallest erasable unit. It is understood, however, that in various embodiments, programming less than an entire logical page may be possible, depending on the structure of the NAND array.Although the flash memory devices 2 are illustrated as NAND devices, it is understood that the flash memory devices 2 can be any type of storage device that uses a threshold voltage to read memory cells of the flash memory device 2. The terms programming and writing are used interchangeably throughout this document.

[0023] The flash memory devices 2 can be SLC, MLC, TLC, or PLC NAND devices. In the present embodiment, the flash memory devices 2 are capable of performing a wide range of threshold voltage shift read operations, including read operations specified by integer offset values ​​such as -n...-2, -1, 0, +1, +2,...n, without limitation.

[0024] A deleted block of a flash memory device 2 can be referred to as a "free block". When data is programmed into a block that has been deleted, the block is referred to as an "open block" until all pages of the block have been programmed. After all pages of the block have been programmed, the block is referred to as a "closed block" until it is deleted again.

[0025] Fig. Figure 3 illustrates a test and model generation system 30 that can be used to generate a reliability state CNN model. The system includes an input 31, an output 32, a processor 34, a data storage module 39, a machine learning module 28, and a minimum search program 27, which are interconnected via a network 29. The minimum search program 27 is a software program that runs on the processor 34 and can therefore represent electronically readable instructions. The data storage module 39 includes test results 25, configuration files of reliability state CNN model(s) 38, and a training database 35.

[0026] The test and model generation system 30 also includes a test bench test program 26 that can represent electronically readable instructions executable on the processor 34 for testing representative flash memory devices 33, such that the number of defects occurring during the aging of the representative flash memory devices 33 is identified. Representative flash memory devices 33 can be inserted into one or more test fixtures coupled to the test and model generation system 30. Representative flash memory devices 33 are devices similar to or identical with the flash memory devices 2 and can be the same device type (e.g., the same type of NAND device) manufactured by the same manufacturer as the flash memory devices 2.The machine learning module 28 can represent electronically readable instructions that can be executed on the processor 34 to generate a neural network model, such as the neural network model represented by configuration files of the reliability state CNN model(s) 38, and can include a computer program that is executable on the processor 34. The machine learning module 28 can be a software program that is executable on the processor 34 and that can generate neural network models as known in the art.

[0027] Fig. Figure 4 illustrates a procedure (100) for generating a reliability state CNN model to determine when the actual wear of a flash memory device deviates from one of a multitude of reliability states for the flash memory device. Representative flash memory devices are tested (101) to identify a number of flash characterization test errors (FCT-ERROR values) for each word line for each of a multitude of cycle conditions (where each cycle condition corresponds to a specific reliability state). The term cycle condition refers to a combination of PE cycles (PE), dwell time (RET), read fault cycles (RD), and temperature (T). Since the number of cycle conditions is infinite, they are simplified by dividing them into ranges.In one example, the test and model generation system 30 is operational to test representative flash memory devices 33 to identify FCT-ERROR values ​​by performing read operations of all word lines of each representative flash memory device 33 at several different TVSO values ​​under test conditions corresponding to the specified reliability state. In one embodiment, the TVSO values ​​and the FCT-ERROR features are characterized for all reliability states.

[0028] The testing in step 101 also determines TVSO values ​​for each reliability state, which are to be used to perform read operations during that reliability state, hereafter referred to as "TVSOmin values." In the present embodiments, TVSOmin values ​​are the TVSO values ​​that provide the minimum number of read errors when memory cells (e.g., of a particular word line and / or block) are read under test conditions corresponding to a particular reliability state. Alternatively, TVSOmin values ​​may be values ​​that satisfy a particular error target, such as a specific RBER.The term “TVSOmin”, as used in the present application, is a value that specifies a TVSO to be used for performing read operations of a certain threshold voltage region of a flash memory device 2 that generates a minimum number of errors or meets a certain error target when used to read the certain flash memory device 2 under test conditions corresponding to a certain reliability state.

[0029] In the following examples, TVSO values ​​are specified using the format "TVSOn", where n represents the threshold voltage region specified by a manufacturer of the flash memory device 2.Specifically, the values ​​of the first TVSO region (TVSO1) specify a TVSO for reading a first threshold voltage region, the values ​​of the second TVSO region (TVSO2) specify a TVSO for reading a second threshold voltage region, the values ​​of the third TVSO region (TVSO3) specify a TVSO for reading a third threshold voltage region, the values ​​of the fourth TVSO region (TVSO4) specify a TVSO for reading a fourth threshold voltage region, the values ​​of the fifth TVSO region (TVSO5) specify a TVSO for reading a fifth threshold voltage region specified by a flash memory manufacturer, the values ​​of the sixth TVSO region (TVSO6) specify a TVSO for reading a sixth threshold voltage region, the values ​​of the seventh TVSO region (TVSO7) specify a TVSO for reading a seventh threshold voltage region, and so on.

[0030] The TVSO value(s) used to perform a read operation in step 101 to identify the number of FCT errors is / are referred to as Flash Characterization Read Threshold Voltage Shift Offset (FCR-TVSO) values ​​and may be in the form FCR-TVSO (TVSO1) for a read operation of a non-volatile representative SLC flash memory device 33, FCR-TVSO (TVSO1, TVSO2, TVSO3) for a read operation of a non-volatile MLC memory device 33, FCR-TVSO (TVSO1, TVSO2, TVSO3, TVSO4, TVSO5, TVSO6, TVSO7) for a read operation of a non-volatile TLC memory device 33; FCR-TVSO (TVSO1, TVSO2, TVSO3, TVSO4, TVSO5, ... TVSO 15 ) for a read operation of a non-volatile TLC storage device 33, and FCR-TVSO (TVSO1, TVSO2, TVSO3, TVSO4, TVSO5, ... TVSO 31 ) for a read operation of a non-volatile PLC storage device 33.

[0031] In one example, a word line is tested by reading each side of the word line at every TVSO value that the representative flash memory device 33 is capable of reading. If the representative flash memory device 33 is capable of reading at threshold voltage displacement offsets between -n and +n, reads of each side of the word line under test are performed by a "sample operation," performing reads at offsets between -n and +n for each TVSO region required to read the particular representative flash memory device 33.

[0032] In an example where each page of a word line under test is read once at each of the values ​​from -24 to +24, forty-nine records 60a are generated for each word line under test conditions corresponding to each reliability state, where the representative flash memory device 33 is an SLC device. Specifically, a first read operation is performed at an FCR-TVSO (-24) to obtain a value indicating the number of errors in the read operation (a first FCT-ERROR value), a second read operation is performed at an FCR-TVSO (-23) to obtain a value indicating the number of errors in the second read operation (a second FCT-ERROR value), and so on, with read operations being performed and the number of errors in read operations being identified at a TVSO1 value of: -24, -23, -22, -21, -20...0, +1, +2...+24.

[0033] If more than one threshold voltage region is required to read a particular word line, sampling is performed by setting one TVSO region to a sample value and setting the other TVSO regions to zero. The sample value is initially set to the lowest TVSO value that the representative flash memory device 33 can read after each read operation and is incremented by one. The sampling process is repeated for each TVSO region required to read the representative flash memory device 33. In an example where the flash memory device 33 is an MLC device, three samples are performed from each word line, with one sample required for each TVSO region to read the word line.For example, for a first word line and a first reliability state, an initial sampling is performed by conducting a first read at: FCR-TVSO1 = -24, FCR-TVSO2 = 0, and FCR-TVSO3 = 0, which can be represented in the form FCR-TVSO(-24, 0, 0) to obtain a first FCT-ERROR value; performing a second read at FCR-TVSO(-23, 0, 0) to obtain a second FCT-ERROR value; and performing read operations at FCR-TVSO (-22,0,0), FCR-TVSO (-21,0,0), FCR-TVSO (-20,0,0) ... FCR-TVSO (0,0,0), (FCR-TVSO (+1,0,0), FCR-TVSO (+2,0,0), ... FCR-TVSO (+24,0,0) to obtain a total of 49 FCT-ERROR values ​​for the first word line and the first reliability state. A second sampling is performed by reading the first word line at FCR-TVSO (0,-24,0), FCR-TVSO (0,-23,0), FCR-TVSO (0,-22,0), ... FCR-TVSO (0,-1,0), FCR-TVSO (0,+1,0) ...FCR-TVSO (0,+23,0), FCR-TVSO (0,+24,0) is performed for a total of 48 additional reads (since (0,0,0) was read previously) to obtain 48 additional FCT-ERROR values ​​for the first word line and the first reliability state. A third sampling is performed by reading FCR-TVSO (0,0,-24), FCR-TVSO (0,0,-23), FCR-TVSO (0,0,-22), ... FCR-TVSO (0,0-1), FCR-TVSO (0,0,+1), ... FCR-TVSO (0,0,+23), FCR-TVSO (0,0,+24) to obtain 48 additional FCT-ERROR values ​​(since 0,0,0 was read previously). Thus, the three word line samples perform 145 read operations and provide 145 FCT-ERROR values ​​for the first word line and the first reliability state. This process is repeated for each word line of each representative flash memory device 33 to be tested and for each reliability state.

[0034] In an example where each word line to be tested is read only once at TVSO values ​​from -24 to +24, where the representative flash memory device 33 is a TLC flash device, seven samples are performed on each word line, one sample for each TVSO region required to read the word line. For example, for each word line, an initial sample is taken, sampling TVSO1 from -24 to +24, while the other TVSO regions are set to a value of "0" on each read (e.g., a read at FCR-TVSO (-24,0,0,0,0,0,0) to obtain a first FCT-ERROR value; a read at FCR-TVSO (-23,0,0,0,0,0,0) to obtain a second FCT-ERROR value; and so on, for a total of 49 reads and 49 corresponding FCT-ERROR values).A second sampling is performed, sampling TVSO2 from -24 to +24 (without "0", since FCR-TVSO = 0,0,0,0,0,0,0 has already been read), while the other FCR-TVSO regions are set to a value of "0" on each read (e.g., a read at FCR-TVSO (0,-24,0,0,0,0,0) to obtain a first FCT-ERROR value; a read at FCR-TVSO (0,-23,0,0,0,0,0) to obtain a second FCT-ERROR value, and so on for a total of 48 additional reads and 48 additional records for the first word line). A third sampling is performed, in which TVSO3 includes sampled values, while the other TVSO regions are set to a value of "0" on each read operation for a total of 48 additional reads and 48 corresponding ERROR values ​​for the first word line and the first reliability state.A fourth sample is performed, including sampled values ​​from TVSO4, while the other TVSO regions are set to a value of "0" on each read. A fifth sample is performed, including sampled values ​​from TVSO5, while the other TVSO regions are set to a value of "0" on each read; a sixth sample is performed, including sampled values ​​from TVSO6, while the other TVSO regions are set to a value of "0" on each read; and a seventh sample is performed, including sampled values ​​from TVSO7, while the other TVSO regions are set to a value of "0" on each read.

[0035] In an example where each representative flash storage device 33 is a QLC flash device, fifteen samples are performed on each word line, one sample for each TVSO region required to read the word line. For example, for a first word line and a first reliability state, an initial sample is taken in which TVSO1 is sampled from -24 to +24, while the other TVSO regions are set to a value of "0" with each first word line read (e.g., by performing a read at FCR-TVSO (-24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) to obtain a first FCT-ERROR value; performing a read at FCR-TVSO (-23,0,0,0,0,0,0,0,0,0,0,0,0,0,0) to obtain a second FCT-ERROR value; and so on, for a total of 49 reads and 49 corresponding FCT-ERROR values).Subsequent scans are performed in the same way as with a QLC flash memory device until all fifteen TVSO regions have been scanned.

[0036] In an example where the representative flash memory device 33 is a PLC flash device, thirty-three samples are performed on each word line, one sample for each TVSO region required to read the word line. As in the preceding examples, a first sample is performed for each word line, in which FCR-TVSO1 is sampled from -24 to +24, while the other TVSO regions are set to a value of "0" on each read; a second sample is performed, in which FCR-TVSO2 is sampled from -24 to +24 (excluding 0), while the other TVSO regions are set to a value of "0" on each read; and so on.

[0037] Fig. Figure 6 shows an example of threshold-voltage-shift read-error (TVS-RE) curves generated by sampling representative flash memory devices 33 with FCR-TVSO values ​​from -24 to +24, where each TVS-RE curve identifies a number of errors as a function of FCR-TVSO values. Specifically, the number of errors is shown on the y-axis and the FCR-TVSO on the x-axis.

[0038] At the in Fig. In the embodiment shown in Figure 3, the test bench test program 26 is operational using test conditions corresponding to each reliability state to test representative flash memory devices 33 in order to identify TVSOmin values ​​for performing word line reads in each block for each reliability state, and the calculated TVSOmin values ​​are stored in the test results 25. In one example, each sample for a given word line and a given reliability state generates a curve as shown in Figure 3. Fig. 6 illustrates.

[0039] In one example, each block uses a single set of TVSOmin values ​​for each reliability state to read word lines of the given block, with the minimum search program 27 being operational to use the computed TVSOmin values ​​for each word line to identify a TVSOmin for each block of representative flash memory devices 33. Accordingly, SLC flash memory devices have a single TVSOmin for each block for each reliability state; the MLC flash memory devices have three TVSOmin values ​​for each block (TVSO1min, TVSO2min, TVSO3min), where TVSO1min is the TVSOmin value for reading a first threshold voltage region, TVSO2min is the TVSOmin value for reading a second threshold voltage region, and TVSO3min is the TVSOmin value for reading a third threshold voltage region of a word line in the given block.TLC flash memory devices have seven TVSOmin values ​​(TVSO1min, TVSO2min, TVSO3min, TVSO4min, TVSO5min, TVSO6min, TVSO7min) for each block. QLC flash memory devices have fifteen TVSOmin values ​​(TVSO1min, TVSO2min... TVSO15min) for each block. PLC flash memory devices have thirty-one TVSOmin values ​​(TVSO1min, TVSO2min... TVSO31min) for each block. In other embodiments, a set of TVSOmin values ​​is provided for each word line or for groups of word lines in each block for each reliability state.

[0040] An input specifying a framework for a neural network classification (CNN) model is received (102). The framework includes test criteria and a training algorithm. In one example, one or more files specifying the CNN model framework are received through input 31 and temporarily stored in data storage module 39. Alternatively, input 31 includes a graphical user interface that allows input from step 102. In one example, the framework includes one or more files specifying one or more of the following: hyperparameters for the neural network model, the number of input neurons, the number of hidden neurons, the number of output neurons, the connections between neurons, initial bias values, initial weight values, test criteria, and the training algorithm to be used (e.g., a specific classification algorithm).

[0041] Training data files are received (103) that specify, for each of a variety of different word lines, TVSO values ​​for each threshold voltage region required to read the flash memory device, an FCT-ERROR value indicating a number of flash characterization test errors, and a marker indicating a corresponding reliability state. The TVSO values ​​received in step 103 can be the TVSOmin values ​​calculated in step 101, providing a minimum number of errors, or they can meet a specific error target for the block containing the particular word line.

[0042] In one example, testing of step 101 is performed on one or more representative flash memory devices 33 by reading each word line of the representative flash memory device 33 under cycle conditions corresponding to one of the reliability states. The reads are performed at different FCR-TVSO values, and the results of the reads are used to form the training data files received in step 103. The training data files received in step 103 include a training record corresponding to each read, which includes an index value identifying the word line read, an FCT-ERROR value, and a TVSOmin for each threshold voltage region required to read the word line. Each record also includes an index value indicating a reliability state (RSI) corresponding to the cycle conditions of the read performed.

[0043] Fig. 5A shows a training data set 60a for an SLC flash memory device, which includes an index value that identifies a word line (WORDLINE INDEX) 61, an FCT-ERROR value 62, a TVSOmin value (TVSO1min) 63a that specifies the offset for reading the representative flash memory device 33, and an index value (RSI) 64 that specifies the reliability state corresponding to the cycle conditions of the read operation.

[0044] Fig. Figure 5B shows a training data set 60b for an MLC flash memory device, which includes a word line (WORDLINE INDEX) 61, an FCT-ERROR value 62, a TVSO1min value 63a, a TVSO2min value 63b, a TVSO3min value 63c, and an index value (RSI) 64, which indicates the corresponding reliability state (e.g., the reliability state corresponding to the cycle conditions used to determine the FCT-ERROR value 62).

[0045] Fig. 5C shows a training data set 60c for a TLC flash memory device, which includes an index value that identifies a word line (WORDLINE INDEX) 61, an FCT ERROR value 62, a TVSOlmin value 63a, a TVSO2min value 63b, a TVSO3min value 63c, a TVSO4min value, a TVSO5min value, a TVSO6min value, a TVSO7min value 63d and an index value (RSI) 64.

[0046] Fig. 5D shows a training data set 60d for a QLC flash memory device, which includes a WORDLINE INDEX 61, an FCT-ERROR value 62, a TVSO1min value 63a, a TVSO2min value 63b, a TVSO3min value 63c and so on up to a fifteenth TVSOmin value (TVSO15min) 63e and an index value (RSI) 64.

[0047] Fig. 5E shows a training data set 60e for a PLC flash memory device which includes the WORDLINE INDEX 61, an FCT-ERROR value 62, a TVSO1min value 63a, a TVSO2min value 63b, a TVSO3min value 63c and so on up to a thirty-first TVSO31min value 63f and an index value (RSI) 64.

[0048] In an example training data file, (either training data sets 60a, 60b, 60c, 60d or 60e) are stored in a training database 35.

[0049] Training is performed using a training dataset (105) that includes the received training data files (or optionally a threshold voltage shift read training dataset that includes smoothed training data) to generate the reliability state CNN model. The reliability state CNN model 12 is configured to identify the reliability states. In one example, the training algorithm is a random forest algorithm. The generated reliability state CNN model is tested (106) to determine whether the reliability state CNN model can identify each of the reliability states using data in the training data files (or the smoothed training data), with testing including determining whether the test criteria are met for each of the reliability states.The tests may involve performing neural network operations using the FTC-ERROR and TVSOmin values ​​from some or all of the training datasets to predict a reliability state for each training dataset. Each predicted reliability state is then compared to the reliability state specified in the corresponding training dataset to determine whether the correct reliability state is being predicted. In one example, testing step 106 includes determining a percentage of correct classifications for each reliability state, and the test criteria include a percentage threshold.If, in this example, a percentage threshold of 95 percent is received without restriction in step 102, then if the percentage of correct classifications is below the percentage threshold of 95 percent, the test does not meet the test criteria for the specified reliability state.

[0050] As in Fig. As can be seen in Figure 6, due to the nature of the NAND flash read switching logic, there are fluctuations (noise) in the number of errors in each valley. This noise interferes with the learning process of the CNN inference model, which can lead to false classification errors. To avoid this problem, a smoothing function (e.g., an algorithm such as a moving average or multipolynomial interpolation) is optionally applied to the training dataset, as shown in optional step 104, to generate a smoothed threshold voltage shift read training dataset (smoothing the shape of the valleys represented by the target dataset). In an example, one or more FCT-ERROR values ​​in the received training datasets are modified to create smoothed training datasets that can be stored in the training database 35. Fig. Figure 7 shows an example of TVS-RE curves generated from an exemplary smoothed threshold voltage shift read training dataset. Because the smoothing function (104) is performed before training (105), the CNN inference model is not trained to predict the classification corresponding to the exact number of defects measured during the device characterization step (performed in step 101 to form a training data file input in step 103), but is instead trained to predict the reliability state corresponding to the smoothed threshold voltage shift read training dataset.

[0051] If the trained reliability state CNN model does not meet the test criteria for a particular reliability state, the training data files corresponding to the reliability state that does not meet the test criteria are modified (108) by removing training records (or smoothed training records) corresponding to one or more of the threshold voltage regions required to read the flash memory device, and the training and testing of steps 105-106 is repeated (110). Removing training records (or smoothed training records) corresponding to a particular TVSO region effectively removes that particular TVSO region (which may be referred to below as the “effectively removed TVSO region”) from the feature set of the CNN model for which the reliability state does not meet the test criteria, but not for other reliability states.

[0052] If the architecture of the representative flash memory device 33 is known, such that the threshold voltage regions corresponding to the different sides are known, threshold voltage regions for sides that are less responsive to a particular current physical characteristic can be selected for removal from the training dataset. In an example of a TLC, the training datasets are removed according to TVSO values ​​required to read the top side (e.g., TVSO1, TVSO3, TVSO5, and TVSO7), the training datasets according to the TVSO values ​​required to read the middle side, or the training datasets according to the TVSO values ​​required to read the bottom side.

[0053] For example, if flash characterization tests have shown that the top side is more sensitive to retention, and if the reliability state is one where retention is greater than zero, removing records with non-zero TVSO values ​​in threshold voltage regions corresponding to the bottom or middle side can produce better results. In some flash memory devices, the bottom side corresponds to TVSO4, and the middle side corresponds to TVSO2 and TVSO6. In one example, the first iteration of step 108 removes training records where the TVSO4 values ​​are non-zero (e.g.,All training datasets generated in the fourth sample that have an index of 64, corresponding to the reliability state that failed to meet the test criteria in step 105, are removed to eliminate noise related to the bottom side (feature sets for other reliability states are not modified), and the training and testing process of steps 105-106 is repeated. If the test criteria are still not met, training datasets with non-zero TVSO2 or TVSO6 values ​​(e.g., all training datasets from the second and sixth samples) for the reliability state that failed to meet the test criteria in step 106 are removed to eliminate noise related to the middle side, and the training and testing process of steps 105-106 is repeated again.In this example, the resulting training dataset includes only non-zero values ​​for TVSO1, TVSO3, TVSO5 and TVSO7, which are sensitive to retention (TVSO values ​​required to read the top side), and removes those threshold voltage regions that mainly add noise to the classification model.

[0054] If the architecture of the flash storage device 33 is unknown, the determination of which TVSO regions must be effectively removed can be made iteratively. Alternatively, a sensitivity analysis is performed to identify the TVSO regions that vary the least during test conditions corresponding to each reliability state, and the identified TVSO regions that vary the least for a given reliability state that does not meet the test criteria in step 106 are selected for effective removal.

[0055] The process of steps 105-108 is repeated until test criteria for each of the reliability states are met. When test criteria for each of the reliability states are met, configuration files for the reliability state classification CNN model are saved (109) and procedure 100 ends.

[0056] Optionally, one or more TVSO values ​​are also stored in step 109. In one embodiment, all sets of FCT-TVSO values ​​that do not include a non-zero value in an effectively removed TVSO region are stored in step 109. In this embodiment, all TVSO regions that are not effectively removed TVSO regions are represented in the stored set(s) of FCT-TVSO values, such that the stored FCT-TVSO value sets represent only the TVSO regions that effectively remain in the feature set for all reliability states in the last iteration produced by the stored CNN. Thus, the stored TVSO value(s) are one or more sets of FCT-TVSO values ​​that were not removed from an instance of the training dataset set in step 108.In the previous example, one or all of the sets of FCR-TVSO values ​​for the top side (TVSO1, TVSO3, TVSO5 and TVSO7) can be stored in step 109, such as one of the sets of FCR-TVSO values ​​in the first sample, one of the sets of FCR-TVSO values ​​in the third sample, one of the sets of FCR-TVSO values ​​in the fifth sample, or one of the sets of FCR-TVSO values ​​in the seventh sample.

[0057] In one example, the machine learning module 28 is operational to perform steps 106-108 and to store configuration files of the resulting reliability state CNN model 38 and TVSO values ​​(step 109) in the data storage module 39. Specifically, the machine learning module 28 is operational to generate the initial reliability state CNN model, with the framework input into the machine learning module 28 controlling the generation and testing of the machine learning module 28 during the process of steps 103-109.

[0058] Once the test criteria are met, the configuration files for the reliability state CNN model 12 are optionally fine-tuned by removing unnecessary elements to obtain the final reliability state CNN model 12. For example, sections of the configuration file related to generating the reliability state CNN model 12 (e.g., hyperparameters) are removed, and the remaining elements of the reliability state CNN model 12 are converted to a different data format (e.g., from floating point to 40-bit fixed point) to improve the inference time of the final reliability state CNN model 12. Converting from floating point to fixed point allows for a neural processing module 10 with a lower gate count and reduces latency.

[0059] The Fig. Figures 8-9 illustrate examples of neural classification network models for reliability states, constructed in accordance with Procedure 100. The reliability state CNN model 40 of Fig. Figure 8 includes an input layer 41, which includes input neurons 41a-c, an output layer 45, which includes an output neuron 45a, and layers 42-44 of hidden neurons 42a, 43a, and 44a. In this embodiment, a first input neuron 41a receives a number that identifies the word line, such as a word line index. A second input neuron 41b receives a number of errors as input, i.e., it receives the FTC-ERROR value during training and can be referred to hereafter as the "error input neuron" (ERROR).The other input neurons (which may be referred to below as "TVSO input neurons") 41c receive TVSO values ​​(all TVSO values ​​required to read the flash memory device 2), wherein a first TVSO input neuron 41c is configured to receive a first TVSO value corresponding to a first threshold voltage region of a flash memory device 2, a second TVSO input neuron 41c is configured to receive a second TVSO value corresponding to a second threshold voltage region of a flash memory device 2, and so on, such that n TVSO values ​​are received as input.

[0060] Fig. Figure 9 shows an embodiment in which the output layer 85 includes one output neuron 85a for each reliability state. The reliability state CNN model has an input layer 41, which includes input neurons 41a-c, an output layer 85, which includes a plurality of output neurons 85a, and layers 82-84 of hidden neurons 82a, 83a, and 84a. In this embodiment, the number of output neurons 85a is equal to the number of reliability states, and each output neuron 85a provides a number corresponding to the probability that the class represented by the given output node is the correct class. In this embodiment, the output with the highest numerical value indicates the predicted reliability state. In one example, an activation function is applied to the output layer 85 (e.g.,the softmax activation function) was applied to ensure that the sum of the probabilities equals one.

[0061] Fig. Figure 10 illustrates a method 200 for determining when the actual wear of a flash storage device deviates from one of a variety of reliability states for the flash storage device. The actual wear of the flash storage device, usually measured by the RBER, which generally increases with increasing flash aging, responds to the reliability state. A reliability state CNN model (201) is generated that is configured to identify reliability states for a flash storage device. The term “reliability state CNN model,” as used in this application, includes all CNN models configured to predict a reliability state and specifically includes one or more reliability state CNN models 12 trained according to method 100.In one example, the reliability state CNN model 12 is used as in procedure 100 of . Fig. 1 shown by the test and model generation system 30, which is generated in Fig. 3 is shown.

[0062] Configuration files of the reliability state CNN model are stored on a flash controller or on a storage device coupled to the flash controller (202). The reliability state CNN model 12 is configured to identify reliability states for the flash storage device 2. In one example, the data storage module 4 is configured to store configuration files of the reliability state CNN model 12. In one embodiment, the reliability state CNN model 12 is initially stored in the form of configuration files in the data storage module 39. The generation of the reliability state CNN model 12 can be performed prior to the sale and use of an SSD 11 and prior to the delivery of a flash controller 3 to a customer for use in the manufacture of an SSD 11.If it is performed before the sale and use of an SSD 11 and before the delivery of a Flash Controller 3 to a customer for use in the manufacture of an SSD 11, it can be performed using a test and model generation system and downloaded for installation into the SSD 11 as configuration files of the Reliability State CNN Model 12.

[0063] One or more TVSO values ​​and tags corresponding to each reliability state are also stored in step 202 on the flash memory controller or on a storage device coupled to the flash controller. In one example, tags 18 and TVSO values ​​19 are stored in data storage module 4. In another example, the TVSO value(s) stored in step 202 are some or all of the sets of FCR TVSO values ​​that are optionally stored in step 109.

[0064] The operation of a flash storage device is monitored (203) to identify one or more current physical characteristics of the flash storage device. In one example, the status module 5 is operational to monitor the operation of each flash storage device 2 to identify one or more physical characteristics of the flash storage devices 2. The determined current physical characteristics can be stored in the data storage module 4, in flash storage devices 2, or in the storage device 13. The term "current physical characteristic," as used in the present invention, is a value determined by the flash controller 3 during the use of a flash storage device 2, which can influence the threshold voltage distribution, such as...a value that indicates the current age / physical deterioration of the location to be read, such as the number of P / E cycles of a particular location to be read, or the current transitory properties of the location to be read (e.g. reading impairment and dwell time).

[0065] In the present embodiments, current physical characteristics include a read fault value. In one example, each time a block is closed, the status module 5 is operational to count the number of read operations on the block while the block is closed, and this number of read operations is stored as a read fault value. When a block is deleted, the read fault value of the deleted block is reset to zero.

[0066] In the present embodiment, current physical parameters include a dwell time value. In one example, each time a block is closed, the status module 5 is operational to start a timer to determine the time elapsed since the block was closed. The elapsed time, as determined by the timer at any given time, is defined as the dwell time value. When a block is deleted, the timer for that block is stopped, and the dwell time value of the deleted block is reset to zero.

[0067] In the present embodiment, the current physical characteristics include a count that indicates the number of programming and erasing operations for each block. For example, the status module 5 is capable of counting the number of programming and erasing cycles for each block of the flash memory device 2 throughout the lifetime of the flash memory device 2 and of storing the count in the data storage module 4 or data storage 13.

[0068] A set of TVSO-RC values, i.e., the TVSO values ​​currently used to perform read operations on flash memory, is identified (204). In an example, the read module 6 of Fig. 1. Operational to identify one or more TVSO-RC values ​​to be used to perform the read operation by looking up a word line (or block) to be read in TVSO selection table 17, according to the normal read process of the Flash controller 3. For example, TVSO-RC values ​​can be determined immediately before each read operation based on the physical location to be read (e.g., block / page to be read) and the current physical characteristics of the flash storage device 2 to be read, as identified by the Flash controller 3 by performing a lookup operation in lookup table 17 using the physical location to be read and the identified current physical characteristics of the flash storage device 2 (e.g., number of program / erase cycles, dwell time, read error value for the block to be read).In one example, the control module 9 instructs the status module 5 to provide the current physical characteristics for the block to be read from flash storage device 2. The status module 5 responds with the current physical characteristics of the block to be read from flash storage device 2 (e.g., the current number of P / E cycles, dwell time, and read error value for the block to be read). The control module 9 then performs a lookup operation in the TVSO selection table 17 to identify the TVSO-RC values ​​to use for performing the read. The TVSO-RC values ​​may initially be the TVSOmin values ​​identified in step 101 for the word line and the block to be read, but may be different values ​​depending on how the flash control 3 adapts to the changing conditions of flash storage devices 2.

[0069] One or more read operations of the flash memory device are performed using the TVSO value(s) stored in step 202 (205) to determine a number of errors for the flash memory device. In one embodiment, in step 202, the set of TVSO value(s) is stored in the data storage module 4, and the control module 9 is operational to retrieve them and send them, along with a read instruction, to the read module 6. The read module 6 then sends a threshold voltage shift read instruction 24 to the flash memory device 2 to be read, specifying the TVSO value(s) stored in step 202 to be used for performing the read operation, along with a specification of the word line and the page to be read. In response, the microcontroller 22 reads the respective memory array 23 and outputs the read results to the registers 21.The read results are received at the read module 6, which sends them to the decode module 7. The decode module 7 is operational to decode the read results in order to obtain the stored codeword and identify the number of errors in the read operation, which can be referred to as the current read error or "CR-ERROR".

[0070] The read operation in step 205 could use any set of FCT-TVSO values ​​used to train the CNN model. However, there is a possibility that the selected FCT-TVSO was effectively removed from the feature set relating to a particular reliability state (e.g., a remote TVSO region) during the CNN generation process, potentially leading to an incorrect prediction of the reliability state. To prevent this possibility, the read operation in step 202 uses one of the sets of TVSO values ​​selected in step 109. Fig. 4 are stored (one of the sets of FCT-TVSO values ​​that does not contain a non-zero value in an effectively remote TVSO region). Although each set of FCT-TVSO values ​​that does not contain a non-zero value in an effectively remote TVSO region could be stored in step 202 and used for the read operation of step 205, in one embodiment only one set of FCT-TVSO values ​​is stored in step 202 and used for the read operation of step 205 (e.g., a single set of TVSO values ​​that does not include a non-zero value in an effectively remote TVSO region).

[0071] A CNN reliability state neural network operation is performed (206) by using the identified set of TVSO-RC values ​​and CR-ERROR as input to identify a predicted reliability state. In an example, neural processing module 10 is configured to perform a neural network operation using the stored configuration files and the TVSO-RC values ​​and the CR-ERROR value to identify a predicted reliability state. In the example of Fig. 1. Control module 9 is operational to load the configuration files of the reliability state CNN model 12 into neural processing module 10 to form a reliability state CNN core, where the term reliability state CNN core refers to a loaded reliability state model. Control module 9 couples the input required for the neural network operation to the reliability state CNN core in neural processing module 10, and neural network operation is performed by neural processing module 10 on the reliability state CNN core. In the Fig. In the embodiment shown in Figures 8-9, the word line index of the word line read in step 205 is provided to input neuron 41a, the CR-ERROR value being input to neuron 41b, and TVSO-RC values ​​being input to input neurons 41c. Specifically, for a TLC flash memory device 2, a first TVSO input neuron 41c receives as input a TVSO-RC1 value corresponding to a first threshold voltage region of a flash memory device 2, a second TVSO input neuron 41c receives as input a TVSO-RC2 value corresponding to a second threshold voltage region of a flash memory device 2, a third input neuron 41c receives as input a TVSO-RC3 value corresponding to a third threshold voltage region of a flash memory device 2, and so on, up to the TVSO-RC n -value corresponding to a seventh threshold voltage region of flash memory device 2. If the reliability state is CNN 40 or 80 of Fig. 7-8, used to classify QLC flash memory devices, CNN 40 includes fifteen TVSO input neurons 41c that receive fifteen TVSO RC values. If the reliability state of CNN 40 or 80 of Fig. 7-8 is used to classify PLC flash memory devices; fifteen TVSO input neurons 41c receive fifteen corresponding TVSO RC values. If the reliability state of CNN 40 or 80 of Fig. 7-8 used to classify PLC flash memory devices, thirty-one TVSO input neurons 41c receive thirty-one corresponding TVSO RC values.

[0072] In the Fig. In the embodiment shown in Figure 8, the output neuron 45a generates an output value that identifies the predicted reliability state. For example, an output value of 1 indicates a first predicted reliability state, an output of 2 indicates a second predicted reliability state, and so on. In the embodiment shown in Figure 8, the output neuron 45a generates a value that identifies the predicted reliability state. Fig. In the embodiment shown in Figure 9, an output is generated at each of the output neurons 85a, and the control module 9 is operational to identify the output with the highest value as the predicted reliability state.

[0073] The identified current physical characteristics are compared with corresponding tags (207) associated with the predicted reliability state. In one example, control module 9 is configured to compare the identified current physical characteristics with corresponding tags associated with the predicted reliability state. In another example, tags corresponding to each reliability state are stored in a table 18 in data storage module 4, where the table includes the corresponding RSI. In this example, control module 9 identifies the tags corresponding to the predicted reliability state by performing a lookup operation in the stored table 18 using the RSI for the predicted reliability state.

[0074] A flag or other indication is stored (208, 211) if the comparison in step 207 indicates that the identified current physical characteristics do not correspond to the respective tags assigned to the predicted reliability state. In an example, control module 9 is configured to generate and store a flag 16 if the comparison indicates that the identified current physical characteristics do not correspond to the tags assigned to the predicted reliability state.

[0075] If the current physical characteristics match the respective tags, the word line and / or page is changed (209), and the process of steps 203-209 is repeated, as shown by line 210. In one example, steps 203-208 are performed in the background on the same word line, and in subsequent iterations, the page is changed to read a word line more than once (e.g., if a word line includes more than one page, so that all pages of the word line under test are read). Once all pages of a word line have been read, the word line is changed in step 209, so that the process of steps 203-209 runs cyclically through some or all word lines in a Flash Memory Device 2. In one example, the page and / or word line is changed in step 209 to test all pages of all word lines of a Flash Memory Device 2.The process of steps 203-209 then continues with another Flash Memory Device 2, so that all Flash Memory Devices 2 are tested.

[0076] In one example, the identified current physical characteristics include a number of P / E cycles, and the tags associated with the predicted reliability state include a tag that specifies a range of P / E cycles; and the comparison of step 207 determines that the identified current physical characteristics do not correspond to the tags associated with the predicted reliability state if the identified number of P / E cycles is not within the range of P / E cycles.

[0077] In one example, the identified current physical characteristics include a residence time value, and the tags associated with the predicted reliability state include a tag that specifies a range of residence times; and the comparison of step 207 determines that the identified current physical characteristics do not match the tags associated with the predicted reliability state if the residence time value is not within the range of residence times.

[0078] In one example, the identified current physical characteristics include the number of P / E cycles and the residence time value, and the comparison of step 207 determines that the identified current physical characteristics do not match the tags associated with the predicted reliability state if the number of P / E cycles is not within the range of P / E cycles or if the residence time value is not within the range of residence times.

[0079] In another example, the identified current physical characteristics include a read error value, and the tags associated with the predicted reliability state include a tag that specifies a range of read error values; and the comparison of step 207 determines that the identified current physical characteristics do not correspond to the tags associated with the predicted reliability state if the read error value is not within the range of read error values.

[0080] In another example, the identified current physical characteristics include a temperature value, and the tags associated with the predicted reliability state include a tag that specifies a range of temperature values; and the comparison of step 207 determines that the identified current physical characteristics do not correspond to the tags associated with the predicted reliability state if the temperature value is not within the range of temperature values.

[0081] In another example, the identified current physical characteristics include the number of P / E cycles, the dwell time value, and the read error value; and the comparison of step 207 determines that the identified current physical characteristics do not correspond to the tags associated with the predicted reliability state if the number of P / E cycles is not within the range of P / E cycles, if the dwell time value is not within the range of dwell times, or if the read error value is not within the range of read error values.

[0082] In one example, the control module 9 is configured to store flag 16 in the data storage module 4. For instance, one or more files might include the stored flag 16. The specification could also be an input to a bad block table stored in the data storage module 4 or in a corresponding flash memory device 2. If the specification includes marking a block as a "bad block," the block is withdrawn and is not used to store data in subsequent operations. In another embodiment, the control module 9 might instead perform other operations, such as a deep-read voltage reference calibration to attempt to recover the block, or a fine-grained read voltage threshold calibration process to restore the block's RBER. Example A

[0083] In one example, P / E cycles are divided into two ranges: 0,000–1,000 P / E cycles and 1,000–2,000 P / E cycles. The dwell time (RET) is divided into two ranges: 0–12 hours and 12–24 hours. The read error (RD) is divided into two ranges: 0–100,000 errors and 100,000–200,000 errors. The temperature (T) is divided into two ranges: 25–40 degrees Celsius (C) and 40–70 degrees Celsius (C). In this example, the total number of reliability states is 16, so the following tags are stored, with the last number after the arrow being the RSI: P / E=0k-1k, RET=0h-12h, RD=0-100k, T=25C-40C → 0 P / E=0k-1k, RET=0h-12h, RD=0-100k, T=40C-70C → 1 P / E=0k-1k, RET=0h-12h, RD=100-200k, T=25C-40C → 2 P / E=0k-1k, RET=0h-12h, RD=100-200k, T=40C-70C → 3 P / E=0k-1k, RET=12h-24h, RD=0-100k, T=25C-40C → 4 P / E=0k-1k, RET=12h-24h, RD=0-100k, T=40C-70C → 5 P / E=0k-1k, RET=12h-24h, RD=100-200k, T=25C-40C → 6 P / E=0k-1k, RET=12h-24h, RD=100-200k, T=40C-70C → 7 P / E=1k-2k, RET=0h-12h, RD=0-100k, T=25C-40C → 8 P / E=1k-2k, RET=0h-12h, RD=0-100k, T=40C-70C → 9 P / E=1k-2k RET=0h-12h, RD=100-200k, T=25C-40C → 10 P / E=1k-2k, RET=0h-12h, RD=100-200k, T=40C-70C → 11 P / E=1k-2k, RET=12h-24h, RD=0-100k, T=25C-40C → 12 P / E=1k-2k, RET=12h-24h, RD=0-100k, T=40C-70C → 13 P / E=1k-2k, RET=12h-24h, RD=100-200k, T=25C-40C → 14 P / E=1k-2k, RET=12h-24h, RD=100-200k, T=40C-70C → 15.

[0084] In one embodiment, if during a firmware update or upgrade there is an indication that the firmware image is corrupted, some or all of the steps of Method 200 are performed during drive startup to determine whether identified current physical characteristics correspond to the respective tags associated with the predicted reliability state. If the method determines that all reliability states are in accordance with or within an acceptable range(s) of predicted reliability states, normal operation begins before performing the foreground threshold voltage shift calibration on all blocks of all flash memory devices 2 in the SSD 11. This enables a faster startup and allows subsequent background threshold voltage shift calibration.This allows the user to access the SSD 11 faster, thereby improving the drive's bandwidth, latency, and QoS.

[0085] Since the neural network operations of step 206 involve errors from one or more recent read operations and the TVSO-CR values, the present embodiments take into account the offline dwell time and offline temperature as reflected in the predicted reliability state. Accordingly, the method and the device compensate for the offline dwell time and offline temperature to prevent the use of an incorrect TVSO value to perform a read operation, which could lead to read errors.

[0086] In the preceding examples, a single read operation is used to generate each training dataset. However, since the characterization test in Step 101 tests a number of representative flash storage devices, resulting in numerous datasets, the number of datasets can be reduced by performing the preceding sample-read process for each of the flash storage devices under test and averaging the results. In one embodiment, read operations are combined such that the FTC-ERROR value represents the errors of read operations from more than one representative storage device for a given set of TVSO values.

[0087] Although embodiments of the present invention are described as "firmware," it is understood that embodiments of the present invention may or may not contain firmware, wherein software implementations include one or more software programs for performing some or all of the methods of the present invention. In a specific embodiment of the present invention, a software stack is stored in the data storage module 4, which is executable on one or more processors (e.g., in the control module 9) to perform the methods of the present application.

[0088] The methods and setup of the present invention provide an indication of the age of structures of flash memory devices 2 independent of the measured physical characteristics of the flash memory device 2; enable faster recovery if the firmware image is corrupted during a firmware update or upgrade; and compensate for the effects of offline dwell time and offline temperature when the SSD 11 is in a low-performance state or is shut down.

[0089] Numerous specific details are set forth in the description for explanatory purposes, in order to provide a comprehensive understanding of the present invention. However, it is obvious to the person skilled in the art that the present invention can be implemented without these specific details. In some cases, well-known structures and devices are shown in the form of a block diagram and not in detail, so as not to obscure the present invention. These embodiments are described in sufficient detail to enable the person skilled in the art to implement the invention, and it is understood that other embodiments may be used and that logical, mechanical, electrical, and other modifications may be made without derogating from the scope of protection of the present invention.

Claims

[1] Method for generating a classification neural network (CNN) model for reliability states of a flash memory device (33) that can be read by sending a threshold voltage shift read instruction (24) to the flash memory device (33) which includes a threshold voltage shift offset (TVSO) value for each threshold voltage region required to read the flash memory device (33), wherein the method comprises: Receiving (102) an input specifying a framework for the reliability state CNN model, wherein the framework includes test criteria and a training algorithm; Receiving (103) training data files that specify for each of a plurality of different word lines a Flash Characterization Test Error (FCT-ERROR) value, which specifies a number of Flash Characterization Test Errors, wherein a marker specifies one of a plurality of reliability states and a set of minimum threshold voltage shift offset (TVSOmin) values; Performing (105) the training to generate the reliability state CNN model using a training dataset that includes the received training data files, wherein the reliability state CNN model is configured to predict the reliability state of the flash storage device (33); Testing (106) the reliability state CNN model to determine whether the reliability state CNN model can predict each of the reliability states using the training data set, the testing including determining whether the test criteria are met for each of the reliability states; If the trained neural classification network model fails to meet the test criteria for a particular reliability state, remove (108) from the training data files corresponding to the reliability state that fails to meet the test criteria in a particular TVSO region, from training data files with a non-zero TVSO value to form an updated training dataset, and repeat the training and testing using the updated training dataset; and If test criteria for each of the reliability states are met, save (109) configuration files for the reliability state CNN model. [2] Method according to claim 1, further comprising performing (104) a smoothing function on the received training data files to generate a smoothed training data set, wherein the training is carried out using the smoothed training data set. [3] Method according to claim 1, wherein the removal (108) of training data files with a non-zero TVSO value in a specific TVSO region further comprises the removal of all training data files with a non-zero TVSO value in a TVSO region required to read a specific page type. [4] Method according to claim 1, wherein the testing (106) determines a percentage of correct classifications for each reliability state and the test criteria include a percentage threshold. [5] Method according to claim 1, further comprising testing (101) representative flash memory devices (33) to identify the FCT-ERROR values ​​(62) and the set of TVSOmin values. [6] The method of claim 3, further comprising: If test criteria for each of the reliability states are met, store one or more sets of TVSO values. [7] Method for determining when the actual wear of a flash memory device (33) deviates from one of a plurality of reliability states for the flash memory device (33), the method comprising: Storing (202) configuration files of a reliability state neural classification network (CNN) model on a flash controller or on a storage device coupled to the flash controller, wherein the reliability state CNN model is configured to identify the reliability states for the flash storage device (33); Storing one or more threshold voltage displacement offset (TVSO) values; Monitoring (203) the operation of the flash storage device (33) to identify one or more current physical characteristics of the flash storage device (33); Identifying (204) a set of TVSO values ​​currently used to perform read operations on the flash storage device (33); Performing (205) a read operation of the flash storage device (33) on the stored one or more TVSO values ​​to determine a number of errors for the flash storage device (33); Performing (206) a neural network operation of the reliability state CNN model using the set of TVSO values ​​currently used to perform read operations for the flash storage device (33) and the specified number of failures for the flash storage device (33) to identify a predicted reliability state; Comparing (207) the identified current physical characteristics with corresponding tags (18) that are assigned to the predicted reliability state; and Storing (211) a flag (16) or other information when the comparison indicates that the identified current physical characteristics do not correspond to the respective tags assigned to the predicted reliability state. [8] Method according to claim 7, wherein the identified current physical characteristics include a number of programming and erasing cycles and wherein the tags (18) associated with the predicted reliability state include a first tag that specifies a range of programming and erasing cycles, wherein the comparison determines that the identified current physical characteristics do not correspond to the tags (18) associated with the predicted reliability state if the number of programming and erasing cycles is not within the range of programming and erasing cycles. [9] Method according to claim 8, wherein the identified current physical characteristics include a residence time value and wherein the tags (18) associated with the predicted reliability state include a second tag specifying a range of residence times, wherein the comparison determines that the identified current physical characteristics do not correspond to the tags (18) associated with the predicted reliability state if the residence time value is not within the range of residence times. [10] Method according to claim 9, wherein the identified current physical characteristics include a read error value and wherein the tags (18) associated with the predicted reliability state include a third tag that specifies a range of read error values, wherein the comparison determines that the identified current physical characteristics do not correspond to the tags (18) associated with the predicted reliability state if the read error value is not within the range of read error values. [11] Method according to claim 7, wherein storing one or more TVSO values ​​further comprises storing a set of Flash Characterization Read Threshold Voltage Shift Offset (FCR-TVSO) values ​​that were used in training and that were not removed from the training data set (60a-e) during training. [12] Flash controller comprising a write module configured to write data to a flash storage device (33); wherein a read module is configured to perform a read operation of the flash storage device (33) by sending a threshold voltage shift read instruction (24) to the flash storage device (33) which includes a threshold voltage shift offset (TVSO) value for each threshold voltage region required to read the flash storage device (33), a decode module configured to decode the results of the read operation, and a status module for monitoring the operation of the flash storage device (33) to identify one or more current physical characteristics, wherein the flash controller comprises: a data storage module (39) configured to store configuration files of a neural classification network (CNN) model for reliability states, which is configured to to identify reliability states for the flash storage device (33), and is configured to store one or more TVSO values ​​used in training the reliability state CNN model; a control module coupled to the data storage module (39), wherein the control module is configured to identify a set of TVSO values, which are currently used to perform read operations for the flash memory device (33), and is configured to instruct the read module to perform a read operation of the flash memory device (33) on the stored one or more TVSO values, wherein, in response to the instruction, the read module is configured to read the flash memory device (33) at the stored one or to perform multiple TVSO readings, and the decoding module is configured to determine a number of errors using the results of one or more read operations; and a neural processing module (10) coupled to the data storage module (39) and the control module, wherein the neural processing module (10) is configured to perform a neural network operation using the stored configuration files and to use as input for the neural network operation the identified set of TVSO values ​​currently used to perform read operations of the flash storage device (33) and the specified number of errors to identify a predicted reliability state, wherein the control module is configured to compare the identified current physical characteristics with corresponding tags (18) that are associated with the predicted reliability state, and is configured to store a flag (16) or other indication if the comparison indicates that the identified current physical characteristics do not correspond to the tags (18) that are associated with the predicted reliability state. [13] Flash control according to claim 12, wherein the control module is configured to store the flag (16) in the data storage module (39). [14] Flash controller according to claim 12, wherein the identified current physical characteristics include a number of programming and erasing cycles, and wherein the tags (18) associated with the predicted reliability state include a first tag that specifies a range of programming and erasing cycles, wherein the comparison determines that the identified current physical characteristics do not correspond to the tags (18) associated with the predicted reliability state if the number of programming and erasing cycles is not within the range of programming and erasing cycles. [15] Flash control according to claim 12, wherein the identified current physical characteristics include a residence time value and wherein the tags (18) associated with the predicted reliability state include a second tag that specifies a range of residence times, wherein the comparison determines that the identified current physical characteristics do not correspond to the tags (18) associated with the predicted reliability state if the residence time value is not within the range of residence times. [16] Flash control according to claim 12, wherein the identified current physical characteristics include a temperature value and wherein the tags (18) associated with the predicted reliability state include a tag (18) that specifies a range of temperature values, wherein the comparison determines that the identified current physical characteristics do not correspond to the tags (18) associated with the predicted reliability state if the temperature value is not within the range of temperature values. [17] Flash control according to claim 12, wherein the identified current physical characteristics include a read error value and wherein the tags (18) associated with the predicted reliability state include a second tag that specifies a range of read error values, wherein the comparison determines that the identified current physical characteristics do not correspond to the tags (18) associated with the predicted reliability state if the read error value is not within the range of read error values. [18] Flash control according to claim 12, wherein the stored one or multiple TVSO values ​​were used in the training of the reliability state CNN model and were not effectively removed from the training data set (60a-e) during the training of the reliability state CNN model.

Citation Information

Patent Citations

  • Storage device performance optimization using deep learning

    US20200210831A1