Nvm read redo model training method and device based on deep learning, and prediction method and device
By optimizing the selection of read redo parameters through the NVM read redo model training method based on deep learning, the problems of long read error handling time and low efficiency in storage devices are solved, achieving more efficient error handling and extended device life.
Patent Information
- Application Number
- CN202011059540.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-09-30
- Publication Date
- 2025-11-25
- Estimated Expiration
- 2040-09-30
AI Technical Summary
In the prior art, when storage devices handle read errors from NVM chips, the error handling time is long, the storage command processing unit is overloaded, and the read re-processing parameter selection is not optimized enough, resulting in low read command processing efficiency.
A deep learning-based NVM read-redo model training method is adopted. By acquiring the characteristic information and error bit information of the NVM chip, a convolutional neural network is used for training to optimize the read-redo parameter selection and realize an intelligent read-redo process.
It shortens error handling time, reduces the error rate of storage devices, extends device lifespan, and improves the processing efficiency of read commands.
Smart Images

Figure CN114333966B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to machine learning technology, in particular, to a deep learning-based NVM read redo model training method and prediction method and device. BACKGROUND
[0002] Figure 1 A block diagram of a storage device is shown. The storage device 102 is coupled to a host to provide storage capability for the host. The host and the storage device 102 can be coupled in various ways, including but not limited to connecting the host and the storage device 102 through, for example, SATA (Serial Advanced Technology Attachment), SCSI (Small Computer System Interface), SAS (Serial Attached SCSI), IDE (Integrated Drive Electronics), USB (Universal Serial Bus), PCIE (Peripheral Component Interconnect Express), NVMe (NVM Express), Ethernet, Fibre Channel, wireless communication network, etc. The host can be an information processing device capable of communicating with the storage device through the above-mentioned ways, such as a personal computer, a tablet computer, a server, a portable computer, a network switch, a router, a cellular phone, a personal digital assistant, etc. The storage device 102 includes an interface 103, a control component 104, one or more NVM chips 105, and a DRAM (Dynamic Random Access Memory) 110.
[0003] NAND flash memory, phase change memory, FeRAM (Ferroelectric RAM), MRAM (Magnetic Random Access Memory), RRAM (Resistive Random Access Memory), XPoint memory, etc. are common NVMs. The data stored in the NVM will be damaged to some extent, in order to overcome such problems, when accessing the NVM, the data stored on the NVM is usually protected by error correction code (ECC). Common error correction codes include BCH code, LDPC, RS code, etc.
[0004] The interface 103 can be adapted to exchange data with the host through, for example, SATA, IDE, USB, PCIE, NVMe, SAS, Ethernet, Fibre Channel, etc.
[0005] The control component 104 is configured to control data transfer between the interface 103, the NVM chip 105, and the DRAM 110, and is also configured to perform storage management, mapping of host logical addresses to flash physical addresses, wear leveling, bad block management, etc. The control component 104 can be implemented in various manners, such as software, hardware, firmware, or a combination thereof. For example, the control component 104 can be in the form of an FPGA (Field-programmable gate array), an ASIC (Application Specific Integrated Circuit), or a combination thereof. The control component 104 can also include a processor or a controller, in which software is executed to manipulate the hardware of the control component 104 to process IO (Input / Output) commands. The control component 104 can also be coupled to the DRAM 110 and can access data of the DRAM 110. The DRAM can store the FTL table and / or buffered IO command data.
[0006] The control component 104 includes a flash interface controller (or referred to as a media interface controller, a flash channel controller) coupled to the NVM chip 105 and issuing commands to the NVM chip 105 in a manner complying with an interface protocol of the NVM chip 105 to operate the NVM chip 105 and receive results of command execution output from the NVM chip 105. Known NVM chip interface protocols include “Toggle”, “ONFI”, etc.
[0007] The NVM chip includes one or more LUNs (Logic Units). The NVM chip package can include one or more dies. Typically, a LUN corresponds to a single die. A LUN can include multiple planes. Multiple planes within a LUN can be accessed in parallel, while multiple LUNs within the NVM chip can independently execute commands and report status. In the case of a 3D NAND flash, a LUN can correspond to a single 3D NAND die, and a plane can correspond to a single layer of the 3D NAND die.
[0008] The "Open NAND Flash Interface Specification (Revision 3.0)" available at http: / / www.micron.com / ~ / media / Documents / Products / Other%20Documents / ONFI3_0Gold.as hx provides the meaning of target, logical unit, plane, which are part of the prior art.
[0009] NVM chips typically store and read data in pages. Data is erased in blocks. A block (also referred to as a physical block) contains multiple pages (also referred to as physical pages). A physical page has a fixed size, for example, 17664 bytes. A physical page can also have other sizes.
[0010] Figure 2 A detailed block diagram of the control component of the storage device is shown.
[0011] The host accesses the storage device with IO commands following a storage protocol. The control component generates one or more storage commands following the storage protocol from the IO command from the host and provides the storage commands to the media interface controller. The media interface controller generates storage media access commands (e.g., program command, read command, erase command) following the interface protocol of the NVM chip from the storage commands. The control component also tracks that all the storage commands generated from an IO command are completed and indicates the result of the IO command to the host.
[0012] Referring to Figure 2 , the control component includes, for example, a host interface, a host command processing unit, a storage command processing unit, a media interface controller, and a storage media management unit. The host interface obtains the IO command provided by the host and generates storage commands to the storage command processing unit. The storage commands access, for example, storage space of the same size, for example, 4KB. A data unit of the data accessed by a storage command recorded in the NVM chip is referred to as a data frame. A physical page records one or more data frames. For example, the size of a physical page is 17664 bytes and the size of a data frame is 4KB, then one physical page can store 4 data frames.
[0013] The storage media management unit maintains the conversion of logical address to physical address for each storage command. For example, the storage media management unit includes an FTL table. For a read command, the storage media management unit outputs the physical address corresponding to the logical address accessed by the storage command. For a write command, the storage media management unit allocates an available physical address for it and records the mapping relationship between the logical address accessed by it and the allocated physical address. The storage media management unit also maintains the functions required for managing the NVM chip, such as garbage collection, wear leveling, etc.
[0014] The storage command processing unit operates the media interface controller to issue storage media access commands to the NVM chip based on the physical addresses provided by the storage media management unit. For the purpose of clarity, the commands sent by the storage command processing unit to the media interface controller are referred to as media interface commands, while the commands sent by the media interface controller to the NVM chip are referred to as storage media access commands. The storage media access commands follow the interface protocol of the NVM chip.
[0015] Taking a read data as an example, when the media interface controller is operating, the storage command processing unit provides media interface commands to the media interface controller. The media interface generates storage media access (read) commands to the NVM chip. Since the read data is not necessarily correct, the media interface also provides the read data outputted by the NVM chip to the ECC decoding unit. As an example, the ECC decoding unit fails to decode, the media interface controller notifies the storage command processing unit of the decoding failure. The storage command processing unit starts an error handling process, for example, error correction by read retry, provides the media interface controller with a media interface command indicating read retry, the media interface generates a storage media access (read) command indicating read retry to the NVM chip. Read retry is a kind of read command that the NVM chip can handle, which has a specified read retry parameter. The read retry command carries, for example, a read retry parameter to indicate the read retry voltage to be used. By adjusting the read retry parameter, there is a chance to adapt the characteristics of the storage media of the NVM chip (random noise, wear, electron escape, etc.) so that the probability of reading correct data is improved. By adjusting the read retry parameter, there is a chance to adapt the characteristics of the storage media of the NVM chip (random noise, wear, electron escape, etc.) so that the probability of reading correct data is improved. In response to the storage media access (read) command indicating read retry, the NVM chip outputs read data, the media interface provides the read data to the ECC decoding unit for ECC decoding again. As an example, if this time the ECC decoding succeeds, the decoded data is moved to the memory. If the ECC decoding fails again, read retry is repeated.
[0016] In yet some examples, the media interface controller spontaneously implements read retry. In response to the ECC decoding unit failing to decode, the media interface controller directly tries other one or more read retry parameters by media interface commands indicating read retry. SUMMARY
[0017] The storage command processing unit has the capability to implement complex error recovery procedures, but the back-and-forth error handling procedures between the storage command processing unit and the media interface controller lengthen the error handling time and also increase the load on the storage command processing unit. In the case where the storage command processing unit is implemented by running software, this increase in load becomes particularly severe, both lengthening the read command processing time and limiting the processing capability of the storage command processing unit due to the increased load. And in the case where the media interface controller implements read redo on its own initiative, the media interface controller is limited in complexity and so attempts fewer types of read redo or is unable to implement complex search read redo parameter strategies.
[0018] Optionally or further, in some cases, the supplier of the control component of the storage device delivers a programmable control component to the storage device manufacturer. The storage device manufacturer programs the storage command processing unit, while the control component supplier implements the media interface controller. The supplier of the media interface controller typically has a more complete understanding of the characteristics of the NVM chip and so is better able to implement error recovery procedures for read commands, including using more optimal read redo commands to more quickly or efficiently complete processing of the read command. The storage device manufacturer, on the other hand, can have a relatively lower understanding of the characteristics of the NVM chip. It is thus desirable for the media interface controller to provide more guidance for the error recovery procedure and intelligently select or suggest read redo parameters for use in read redo to shorten the error handling time, reduce the error rate of the storage device, and extend the useful life of the storage device.
[0019] The NVM chip manufacturer typically provides one or more read redo sequences. A read redo sequence includes a plurality of read redo parameters arranged in a sequence. In response to read data being in error, the read redo commands are generated using the read redo parameters in the sequence starting from a specified position in the read redo sequence until the read data can be correctly error correction code decoded. Such an error handling procedure incurs a large delay because multiple read redo commands are issued to the NVM chip. Moreover, as the NVM chip is used, the efficiency of the strategy provided by the NVM chip manufacturer using the read redo sequence becomes less efficient because the scenarios in which the read data is in error become less frequent and cause the error rate of reading data using the read redo sequence to increase as the NVM chip is used for a longer period of time. In response to this situation, current practice is to merely adjust the read redo sequence provided by the manufacturer, but the read redo is still not optimal. Because for the diversity of scenarios in which the read data is in error, it is desirable to select the more optimal read redo parameters or more quickly find the read redo parameters in the read redo sequence that successfully read the data.
[0020] To solve the above technical problems, according to a first aspect of the present application, a first training method of a deep learning-based NVM read redo model according to the first aspect of the present application is provided, comprising: obtaining NVM information, the NVM information comprising characteristic information and / or error bit information of an NVM chip; preprocessing the NVM information to obtain a data set, the data set comprising a training set and a test set, the data set comprising the preprocessed NVM information; wherein the obtaining of the data set comprises obtaining annotation information corresponding to the NVM information, the annotation information comprising expected output of sample data of the data set; training a convolutional neural network model using the training set to obtain an NVM read redo model.
[0021] According to the first training method of the deep learning-based NVM read redo model of the first aspect of the present application, a second training method of the deep learning-based NVM read redo model according to the first aspect of the present application is provided, and the training of the convolutional neural network model using the training set to obtain the NVM read redo model comprises: inputting the training set into the convolutional neural network model; performing convolution operation on the NVM information in the training set using a convolution kernel to obtain first data; inputting the first data into the activation function to obtain second data after non-linearization; inputting the second data into a normalization exponential function to obtain a prediction value; calculating the error between the prediction value and its corresponding annotation information using a cross-entropy loss function; and updating the parameters of the convolutional neural network model according to the error.
[0022] According to the second training method of the deep learning-based NVM read redo model of the first aspect of the present application, a third training method of the deep learning-based NVM read redo model according to the first aspect of the present application is provided, and the training of the convolutional neural network model using the training set is stopped after the error is less than a specified value or the number of times of modifying the parameters of the convolutional neural network model reaches a specified number, wherein the current convolutional neural network model is the NVM read redo model.
[0023] According to one of the first to third training methods of the deep learning-based NVM read redo model of the first aspect of the present application, a fourth training method of the deep learning-based NVM read redo model according to the first aspect of the present application is provided, and the obtaining of the NVM information comprises: performing wear processing on the NVM chip and recording characteristic information generated during the wear processing.
[0024] According to one of the first to fourth training methods of the deep learning-based NVM read redo model of the first aspect of the present application, a fifth training method of the deep learning-based NVM read redo model according to the first aspect of the present application is provided, and the preprocessing of the characteristic information to obtain a data set comprises: performing normalization processing on the NVM information to obtain the data set.
[0025] According to the fifth training method of the NVM read-repair model based on deep learning of the first aspect of the present application, the sixth training method of the NVM read-repair model based on deep learning of the first aspect of the present application is provided, and the data set includes multiple sample data, each sample data includes characteristic information and / or error bit information of a physical page or a part of a physical page, wherein the error bit information is obtained after reading the data of the physical page or the part of the physical page according to at least one read-repair parameter respectively.
[0026] According to one of the first to sixth training methods of the NVM read-repair model based on deep learning of the first aspect of the present application, the seventh training method of the NVM read-repair model based on deep learning of the first aspect of the present application is provided, and after obtaining the data set, the method further includes: selecting sample data of a first part of the data set as a training set, and selecting sample data of a second part of the data set as a test set.
[0027] According to the first to seventh training methods of the NVM read-repair model based on deep learning of the first aspect of the present application, the eighth training method of the NVM read-repair model based on deep learning of the first aspect of the present application is provided, and the obtaining of the data set further includes: labeling the sample data using the labeling information; wherein the labeling information corresponding to the sample data is a category label, and the category label indicates one read-repair sequence in the plurality of read-repair sequences, or the category label indicates one read-repair parameter.
[0028] According to the eighth training method of the NVM read-repair model based on deep learning of the first aspect of the present application, the ninth training method of the NVM read-repair model based on deep learning of the first aspect of the present application is provided, and the labeling of the sample data includes: comparing the plurality of error bit information corresponding to the sample data, the plurality of error bit information being obtained after reading the data of the physical page or the part of the physical page according to the plurality of read-repair parameters respectively; obtaining the category label corresponding to the error bit number with the smallest error bit information in the plurality of error bit information corresponding to the sample data; and labeling the sample data using the obtained category label.
[0029] According to the eighth or ninth training method of the NVM read-repair model based on deep learning of the first aspect of the present application, the tenth training method of the NVM read-repair model based on deep learning of the first aspect of the present application is provided, and the labeling of the sample data comprises: obtaining N read-repair sequences, each read-repair sequence comprising a plurality of read-repair parameters, wherein N is an integer greater than or equal to 1; performing read-repair on the physical page or part of the physical page corresponding to the sample data using the N read-repair sequences; recording the time required for each read-repair sequence to read out correct data when read-repair is performed using the N read-repair sequences; obtaining the class label of the read-repair sequence with the shortest time; and labeling the sample data using the obtained class label.
[0030] According to one of the eighth to tenth training methods of the NVM read-repair model based on deep learning of the first aspect of the present application, the second training method of the NVM read-repair model based on deep learning of the eleventh aspect of the present application is provided, and the labeling of the sample data comprises: obtaining N read-repair sequences, each read-repair sequence comprising a plurality of read-repair parameters, wherein N is an integer greater than or equal to 1; performing read-repair on the physical page or part of the physical page corresponding to the sample data using the N read-repair sequences; processing the N read-repair results corresponding to the sample data using an evaluation function to obtain the result of the evaluation function; obtaining the class label corresponding to the optimal read-repair sequence in the N read-repair sequences according to the result of the evaluation function; and labeling the sample data using the obtained class label.
[0031] According to the tenth or eleventh training method of the NVM read-repair model based on deep learning of the first aspect of the present application, the twelfth training method of the NVM read-repair model based on deep learning of the first aspect of the present application is provided, and for performing read-repair on the physical page or part of the physical page corresponding to the sample data using the N read-repair sequences, if a correct result is read out from the physical page or part of the physical page corresponding to the sample data using a first read-repair parameter, the position of the first read-repair parameter in the read-repair sequence to which it belongs is updated.
[0032] According to one of the tenth to twelfth training methods of the NVM read-repair model based on deep learning of the first aspect of the present application, the second training method of the NVM read-repair model based on deep learning of the thirteenth aspect of the present application is provided, and for performing read-repair on the physical page or part of the physical page corresponding to the sample data using the N read-repair sequences, if a correct result is read out from the physical page or part of the physical page corresponding to the sample data using a first read-repair parameter, and the data read out from the physical page or part of the physical page corresponding to the sample data using the first read-repair parameter has the smallest number of error bits in the read-repair sequence to which the first read-repair parameter belongs, the position of the first read-repair parameter in the read-repair sequence to which it belongs is updated.
[0033] According to one of the eighth to thirteenth training methods of the deep learning-based NVM read-repair model of the first aspect of the present application, the fourteenth training method of the deep learning-based NVM read-repair model of the first aspect of the present application is provided, and the labeling of the sample data comprises: obtaining a read-repair sequence, a read-repair sequence comprising a plurality of read-repair parameters; using a read-repair sequence, performing read-repair on the physical page or part of the physical page corresponding to the sample data; recording the position of the read-repair parameter used to read the correct data when the correct data of the physical page or part of the physical page corresponding to the sample data is read out in a read-repair sequence; or, recording the error bit information of the read-out data corresponding to the sample data; using the obtained category label to label each sample data; wherein the obtained category label is the position of the read-repair parameter with the smallest number of error bits in the read-out data in a read-repair sequence or the position of the read-repair parameter.
[0034] According to one of the eighth to thirteenth training methods of the deep learning-based NVM read-repair model of the first aspect of the present application, the fifteenth training method of the deep learning-based NVM read-repair model of the first aspect of the present application is provided, and the labeling of the sample data comprises: obtaining N read-repair sequences, each read-repair sequence comprising at least one read-repair parameter, wherein N is an integer greater than or equal to 1; using the N read-repair sequences, performing read-repair on the physical page or part of the physical page corresponding to the sample data, respectively; recording the time required for each read-repair voltage sequence to read out the correct data when the sample data is read-repaired using the N read-repair sequences; and / or recording the read-repair parameter when the correct data is read out when the sample data is read-repaired using the N read-repair sequences; generating a first read-repair sequence according to the recorded time required for reading out the correct data and / or according to the recorded read-repair parameter when the correct data is read out; determining the read-repair sequence corresponding to the category label as the read-repair sequence with the shortest time required for reading out the correct data or the first read-repair sequence.
[0035] According to the fifteenth training method of the deep learning-based NVM read-repair model of the first aspect of the present application, the sixteenth training method of the deep learning-based NVM read-repair model of the first aspect of the present application is provided, and the first read-repair sequence is generated when the recorded time required for reading out the correct data exceeds a specified threshold.
[0036] According to one of the sixth to sixteenth training methods of the NVM read redo model based on deep learning of the first aspect of the present application, the second training method of the NVM read redo model based on deep learning according to the seventeenth aspect of the present application is provided, and the convolutional neural network model is trained using the training set, including: training the convolutional neural network using 1 sample data in the training set in each training cycle.
[0037] According to one of the eighth to sixteenth training methods of the NVM read redo model based on deep learning of the first aspect of the present application, the eighteenth training method of the NVM read redo model based on deep learning according to the first aspect of the present application is provided, and when the category label indicates one read redo sequence in the plurality of read redo sequences, the number of category labels is less than or equal to the number of read redo sequences; when the category label indicates one read redo parameter in one read redo sequence, the number of category labels is less than or equal to the number of read redo parameters in one read redo sequence.
[0038] According to the second aspect of the present application, the first parameter prediction method of the NVM chip read redo according to the second aspect of the present application is provided, including: obtaining characteristic information of the NVM chip; preprocessing the characteristic information, so that the preprocessed characteristic information matches the NVM chip read redo model, and the NVM chip read redo model is executed according to any one of the methods in the first aspect; input the preprocessed characteristic information into the NVM chip read redo model to obtain a category label; according to the category label, obtain a read redo sequence, and the read redo sequence indicates at least one read redo parameter.
[0039] According to the third aspect of the present application, the first parameter prediction method of the NVM chip read redo according to the third aspect of the present application is provided, including: obtaining characteristic information and error bit information of the NVM chip; preprocessing the characteristic information and the error bit information, so that the preprocessed characteristic information and error bit information match the NVM chip read redo model, and the NVM chip read redo model is executed according to any one of the methods in the first aspect; input the preprocessed characteristic information and error bit information into the NVM chip read redo model to obtain a category label; according to the category label, obtain a read redo parameter from a read redo sequence.
[0040] According to a fourth aspect of the present application, there is provided a training apparatus for the first deep learning based flash read-repair model according to the fourth aspect of the present application, comprising: an obtaining module configured to obtain NVM information, the NVM information comprising characteristic information of a flash memory chip and / or error bit number information; a preprocessing module configured to preprocess the NVM information, and obtain a data set, the data set comprising a training set and a test set, the data set comprising the preprocessed NVM information; and a training module configured to train a convolutional neural network model using the training set, and obtain a flash read-repair model.
[0041] According to a fifth aspect of the present application, there is provided a first electronic device according to the fifth aspect of the present application, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the method according to any one of the first aspect of the present application when executing the computer program.
[0042] According to a sixth aspect of the present application, there is provided a first electronic device according to the sixth aspect of the present application, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the method according to the second aspect or the third aspect of the present application when executing the computer program. BRIEF DESCRIPTION OF DRAWINGS
[0043] In order to more clearly illustrate the technical solutions of the embodiments of the present application or the prior art, the drawings needed in the embodiment or prior art description will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments described in the present application, and other drawings can also be obtained by those skilled in the art based on these drawings.
[0044] Figure 1 a block diagram of a storage device in the prior art;
[0045] Figure 2 a block diagram of a control component of a storage device in the prior art;
[0046] Figure 3 a schematic diagram of training a neural network model provided by an embodiment of the present application;
[0047] Figure 4 a flowchart of a training method of a deep learning based NVM read-repair model provided by an embodiment of the present application;
[0048] Figure 5 a flowchart of training a convolutional neural network model using a training set provided by an embodiment of the present application;
[0049] Figure 6A a block diagram of a control component provided by an embodiment of the present application;
[0050] Figure 6B Block diagram of a media interface controller provided for embodiments of the present application;
[0051] Figure 7 Flowchart of a parameter prediction method for NVM chip read-remap provided for embodiments of the present application;
[0052] Figure 8 Flowchart of a parameter prediction method for NVM chip read-remap provided for embodiments of the present application;
[0053] Figure 9 Structure diagram of a training apparatus for a flash memory read-remap model based on deep learning provided for embodiments of the present application. DETAILED DESCRIPTION
[0054] The technical solutions in embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative work fall within the scope of protection of the present application.
[0055] Figure 3 A schematic diagram of training a neural network model is shown according to embodiments of the present application.
[0056] As an example, a host is coupled to a storage device. The host obtains a dataset required for training a neural network by instructing the storage device to send a storage media access command to an NVM chip. Part of the obtained dataset is used as a training set for training the neural network, and another part of the dataset is used as a test set for testing the trained neural network.
[0057] The host includes a machine learning module based on deep learning, which includes a neural network model to be trained. For example, software running on a CPU of the host implements the machine learning module and its neural network model. Alternatively, an FPGA / ASIC implements the machine learning module and its neural network model.
[0058] According to embodiments of the present application, the method of training a neural network model (e.g. an NVM read-remap model) is also implemented by, for example, software running on a CPU of the host.
[0059] According to embodiments of the present application, there is also provided a method of predicting a read-remap sequence or read-remap parameters to be used using the trained neural network. The method is implemented by software running on the host, or by a control component of the storage device.
[0060] Figure 4A flowchart of a training method of the NVM read redo model based on deep learning provided in the embodiments of the present application is shown.
[0061] As shown in Figure 4 Step S401, NVM information is acquired, which includes characteristic information and / or error bit information of the NVM chip.
[0062] Specifically, the characteristic information of the NVM chip includes channel address (CHA), chip enable address (CEA), logical unit address (LUNA), plane address (PLNA), block address (BLKA), wordline address (WLA), page in wordline (PIW), erase cycle, erase interval time, placement time, write data seed generation number, command time, programming time, read time and erase time, etc.
[0063] The error bit information includes the number of error bits corresponding to the data read out each time when each physical page in the NVM chip is read and read redo is performed.
[0064] Table 1
[0065]
[0066] Table 2
[0067]
[0068]
[0069] Table 1 exemplarily shows the characteristic information of the NVM chip. In Table 1, PT is the plane type, PE is the number of erase cycles, PI is the erase interval time, RTNT is the placement time, PRBS is the write data seed generation number, CMDT is the command type, RDT is the read time, CMDTIME is the command time, PROTM is the programming time, and ERATM is the erase time. For example, in Page 6, the chip enable address CEA is 0, the logical channel address is 0, the channel address is 2, the plane address is 0, the block address is 718, the wordline address is 0, the page in wordline is 2, the plane type is TLC, the erase time is 1000us, the erase interval time is 0, the placement time is 0, the write data seed generation number is 5, the command type is read, the command time is 73us, the read time is 0, the programming time is 0, and the erase time is 4888us.
[0070] Table 2 shows the error bit information. As an example, Table 2 shows the error bit numbers of 3 Pages (physical pages) of an NVM chip. EBCO represents the error bit number of the read data when a read operation is performed. EBC1 to EBC6 are the error bit numbers of the read data when a read retry is performed using 6 different read retry parameters, respectively.
[0071] In Table 2, EBC1 represents a read retry using the first read retry parameter, EBC2 represents a read retry using the second read retry parameter, and so on, EBC6 represents a read retry using the sixth read retry parameter.
[0072] For each physical page, which is 16KB in size, it is further divided into 16 ECC blocks. Each ECC block is, for example, 1KB in size. An ECC block is a data unit for which an error check is performed by the media interface controller. Each ECC block is independently error check decoded. Table 2 of Table 2 records 16 data, each of which represents the error bit number of one of the 16 ECC blocks of the physical page.
[0073] For example, referring to Table 2, when a read retry is performed on Page 2 using the second read retry parameter, the error bit numbers obtained from the 16 ECC blocks are recorded as [4, 0, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 0, 3, 1, 2], which represents that the number of error data bits when reading the first ECC block is 4, the number of error data bits when reading the second ECC block is 0, and so on, the number of error data bits when reading the sixteenth ECC block is 2.
[0074] Table 3
[0075]
[0076]
[0077] Table 3 shows another form of error bit information. As an example, Table 3 shows 3 Pages (physical pages) of an NVM chip. EBCO represents the error bit number of the read data when a read operation is performed. EBC1 to EBC6 are the error bit numbers of the read data when a read retry is performed. The difference from Table 2 is that Table 3 records only one value in each table entry, which means the error bit number of the physical page corresponding to the row in which the table entry is located, i.e., the error bit number of the entire physical page is recorded after reading 1 complete physical page. For example, a physical page is 17664 bytes in size, the error bit number of Page 3 after a read operation is 21, and the error bit number obtained when a read retry is performed using the sixth read retry parameter is 5476.
[0078] Optionally, the embodiment can acquire the NVM information by wearing the NVM chip, and record the characteristic information of the NVM chip generated in the wearing process. The wearing process includes a large number of (e.g. 500 times) erase-write operations on the NVM chip, and heating the NVM chip to age it, etc. Optionally, the NVM information provided by the manufacturer of the NVM chip or the NVM information collected in the process of normally using the NVM chip can also be acquired. Optionally, when the wearing process includes the operation of reading data, the error bit information is also recorded in the wearing process.
[0079] In step S402, the NVM information is preprocessed to acquire a data set.
[0080] Specifically, the data set includes a training set and a test set. The data set includes the preprocessed NVM information. For example, the NVM information in Table 1 and Table 2 is normalized to acquire the data set. The normalization can use the following formula:
[0081]
[0082] X is any data in the NVM information, X min is the minimum value in the data of the same type as X, X max is the maximum value in the data of the same type as X. For example, BLKA and PE in Table 1 belong to different types, and thus cannot be normalized together. For another example, EBC0-EBC6 in Table 2 all represent the number of error bits, and thus belong to the same type.
[0083] In the embodiment, the data set includes multiple sample data, and each sample data includes, for example, all the characteristic information and / or all the error bit information corresponding to 1 physical page. Alternatively, each sample data includes part of the characteristic information and / or part of the error bit information in the all the characteristic information corresponding to 1 physical page. For example, 1 sample data includes all the characteristic information and / or all the error bit information corresponding to Page3. In another example, 1 sample data includes the characteristic information and / or the error bit information corresponding to 1 or 4 ECC blocks of Page3.
[0084] The error bit information is obtained by reading the data of the physical page or part of the physical page according to at least one read redo parameter.
[0085] Further, after obtaining the dataset, a first portion of the sample data of the dataset is selected as a training set, and a second portion of the sample data of the dataset is selected as a test set. For example, 90% of the sample data in the dataset is selected as the training set, and the remaining 10% of the sample data is selected as the test set. The ratio of the training set and the test set in the present application can be adjusted according to actual conditions, which is not limited herein. Alternatively, after obtaining the data, a portion of the sample data of the dataset can be selected as the training set, another portion of the sample data as a validation set, and another portion of the sample data as the test set. For example, 80% of the sample data is randomly selected as the training set, 10% of the sample data as the validation set, and 10% of the sample data as the test set.
[0086] Alternatively, obtaining the dataset further includes obtaining annotation information corresponding to the NVM information, the annotation information including expected outputs for the sample data of the dataset. Table 4 shows a category label table, which includes, for example, 13 category labels, and the meaning represented by each category label. As an example, category label 3 represents that a read-verify operation using read-verify parameter 3 is preferred, which will be more conducive to reading out data that can be correctly error correction decoding; and category label 8 represents that using read-verify sequence 1 is preferred, in which read-verify sequence 1, 3 read-verify parameters are sequentially issued in the order of read-verify parameter 1, read-verify parameter 2, and read-verify parameter 3. Among them, read-verify parameter 1 corresponds to, for example, EBC1 of Table 2, and read-verify parameter 2 corresponds to, for example, EBC2 of Table 2.
[0087] Table 4
[0088] Class label Meaning 1 Read operation 2 Read redo (with read redo parameter 1) 3 Read redo (with read redo parameter 2) 4 Read redo (with read redo parameter 3) 5 Read redo (with read redo parameter 4) 6 Read redo (with read redo parameter 5) 7 Read redo (with read redo parameter 6) 8 Read redo sequence 1 (using read redo parameters 1-2-3) 9 Read redo sequence 2 (using read redo parameters 4-5-6) 10 Read redo sequence 3 (using read redo parameters 6-3-1) 11 Read redo sequence 5 (using read redo parameters 4-5) 12 Read redo sequence 2 (using read redo parameters 3-2) 13 Read redo sequence 7 (using read redo parameters 1-2-3-4-5-6)
[0089] According to an embodiment of the present application, each piece of data in the dataset is annotated to attach a data label to each piece of data, and the attached data label indicates the preferred read-verify parameter or read-verify sequence for the parameter data.
[0090] Alternatively, the used set of data labels can include other number of category labels (different from the 13 shown in Table 4). Still alternatively, the used data label can only indicate read-verify parameters (without including read-verify sequences), or only indicate read-verify sequences.
[0091] According to an embodiment of the present application, the category label is used as the expected output of the neural network processing each piece of sample data. For example, also referring to Table 3, for page2, the EBC2 column corresponding to the 2nd read-verify parameter has a small value, so when reading Page2, the read-verify operation using the 2nd read-verify parameter is the preferred operation, and the corresponding category label is 3 (see Table 4). Thus, for the sample data in the dataset representing reading page2 of Table 3, the category label of the expected output is annotated as 3.
[0092] As another example, also referring to Table 2, for reading page 2, the sum of the 16 data of the EBCO column corresponding to the read operation is the smallest, thus, when reading page 2, the read operation is the preferred operation, and the category label corresponding thereto is 1 (also refer to Table 3). Thus, for the sample data representing reading page 2 of Table 2, the category label of the expected output is labeled as 1.
[0093] As still another example, for error recovery, a plurality of read-recovery sequences are preset in the storage device, each read-recovery sequence including one or more read-recovery parameters. At this time, each sample data includes the error bit number of the data read using one, more or each of the preset read-recovery sequences. For each read-recovery sequence used in the sample data, the sum of the error bit numbers corresponding to the plurality of read-recovery parameters thereof is calculated, and the category label corresponding to the read-recovery sequence having the smallest sum is used to label the sample data.
[0094] As still another example, each sample data includes the error bit number of the data read using one, more or each of the preset read-recovery sequences. For each read-recovery sequence used in the sample data, the time consumed by the read operation to read the correct data that can be error correction decoded is calculated, and the category label corresponding to the read-recovery sequence having the smallest time is used to label the sample data.
[0095] After the labeling information is obtained, the sample data is labeled using the labeling information. Taking Table 3 as an example, EBCO-EBC6 correspond to category labels 0-6, respectively, and each time the data is read, a category label is obtained, but when labeling, only the expected output of the sample data is labeled, i.e., for each sample data, only the category label corresponding to, for example, the smallest error bit number is labeled. For example, the category label of Page 1 of Table 3 is labeled as 1, and the category labels of Page 2 and Page 3 are labeled as 3 (also refer to the meanings of the category labels provided in Table 4).
[0096] Optionally, labeling the sample data includes the following manners:
[0097] Manner 1, comparing a plurality of error bit numbers corresponding to the sample data, the plurality of error bit numbers being obtained after the plurality of read-recovery parameters read the data of the physical page or part of the physical page, respectively; obtaining the category label corresponding to the smallest error bit number among the plurality of error bit numbers corresponding to the sample data; and labeling the sample data using the obtained category label.
[0098] Specifically, taking Table 2 and Figure 3For example, the error bit information in Table 3 is taken as an example. Three sample data (Page1, Page2 and Page3 correspond to one sample data respectively) each correspond to seven error bit information. The seven error bit information is the error bit number of reading operation and six times of reading redo record. Compare the seven error bit information of each sample data. Table 3 can directly compare the size of the error bit number, so as to obtain the error bit information corresponding to the category label with the smallest error bit number, and label the sample data with the label. For example, the category label labeled by Page1 in Table 3 is 1.
[0099] For the error bit information as shown in Table 2, the error bit number in each error bit information needs to be summed up to obtain the total error bit number. Then compare the total error bit number to obtain the category label corresponding to the error bit information with the smallest total error bit number, and label it with the category label. For example, the category label labeled by Page1 in Table 2 is 3.
[0100] In mode 2, N read redo sequences are obtained, each read redo sequence includes a plurality of read redo parameters, and N is an integer greater than or equal to 1; the sample data corresponding to the physical page or part of the physical page is read and redone using the N read redo sequences; the time required for reading correct data corresponding to each read redo sequence is recorded when the read redo is performed using the N read redo sequences; the category label of the read redo sequence with the shortest time is obtained; and the sample data is labeled using the obtained category label.
[0101] In this embodiment, the sample data does not include error bit information. The obtained N read redo sequences can be preset read redo sequences or N read redo sequences produced according to a preset rule. After obtaining the N read redo sequences, the physical page corresponding to each sample data or the part of the physical page is read and redone using the N read redo sequences. The time required for reading correct data each time is recorded. The read redo sequence with the shortest time required for reading correct data is obviously the optimal read redo sequence, so the category label of the read redo sequence with the shortest time is obtained, and the sample data is labeled using the category label.
[0102] Optionally, each sample data is read and re-done by using N read and re-do sequences, and the physical page or part of the physical page corresponding to the sample data is read and re-done respectively by using the read and re-do sequences. If a correct result is read by using a first read and re-do parameter from the physical page or part of the physical page corresponding to the sample data, the position of the first read and re-do parameter in the read and re-do sequence to which the first read and re-do parameter belongs is updated. For example, the ith read and re-do sequence includes 10 read and re-do parameters, and the 8th read and re-do parameter reads a correct result, the position of the original 8th read and re-do parameter is adjusted from the 8th position to the 1st position, and the original 1st to 7th read and re-do parameters are sequentially shifted by 1 position, and the positions of the original 9th and 10th read and re-do parameters remain unchanged. In addition, according to the above embodiment, the sample data is labeled by using a category label. It can be understood that the labeled category label does not necessarily correspond to the ith read and re-do sequence, but indicates a read and re-do sequence (denoted as the jth read and re-do sequence) that requires a short time to read a correct result. Optionally, only the read and re-do parameter in the jth read and re-do sequence that reads a correct result is adjusted in the jth read and re-do sequence, and the other read and re-do sequences are not adjusted.
[0103] Optionally, for reading and re-doing the physical page or part of the physical page corresponding to the sample data by using the N read and re-do sequences, if a correct result is read by using a first read and re-do parameter from the physical page or part of the physical page corresponding to the sample data, and the data read by using the first read and re-do parameter from the physical page or part of the physical page corresponding to the sample data has the smallest number of error bits in the read and re-do sequence to which the first read and re-do parameter belongs, the position of the first read and re-do parameter in the read and re-do sequence to which the first read and re-do parameter belongs is updated. In this embodiment, only when the first read and re-do parameter reads a correct result and the number of error bits of the correct result is the smallest among the numbers of error bits corresponding to all read data in the read and re-do sequence, the position of the first read and re-do parameter is adjusted. The method of adjusting the position of the read and re-do parameter is described in the above embodiment, which is not repeated here. For example, a read and re-do sequence includes 20 read and re-do parameters, the 13th read and re-do parameter reads a correct result, but the 1st read and re-do parameter of the read and re-do sequence can also read a correct result, and the number of error bits of the correct result read by the 1st read and re-do parameter is smaller than the number of error bits of the correct result read by the 13th read and re-do parameter, so the position of the 13th read and re-do parameter is not adjusted.
[0104] In the third mode, N read-repair sequences are obtained, each read-repair sequence including a plurality of read-repair parameters, N being an integer greater than or equal to 1; the sample data corresponding physical page or part of the physical page is read-repaired by using the N read-repair sequences; the result of the evaluation function is obtained by processing the results of the N read-repair sequences of the sample data; the optimal read-repair sequence in the N read-repair sequences is determined according to the result of the evaluation function; and the sample data is labeled by using the obtained category label. For example, the evaluation function is to sum all the error bits in the result of each sequence of the N read-repair sequences, and the sum result is taken as the output of the evaluation function. Alternatively, the evaluation function meeting the evaluation purpose is set to compare the results of the N read-repair sequences.
[0105] In the embodiment, the way of obtaining N read-repair sequences and read-repairing by using the N read-repair sequences is the same as that in the second mode, and will not be described here. The difference from the second mode is that the N read-repair results are evaluated by using the evaluation function after read-repairing, so as to obtain the result of the evaluation function. It should be noted that even if one read-repair sequence includes at least one read-repair parameter, there are only two results of read-repairing, i.e., reading correct data (the correct data in the present application is the data that can be corrected by using error correction code) or read-repairing failure. The N read-repair results are processed by using the evaluation function, so as to obtain more accurate "correct data". Thus, the optimal read-repair sequence in the N read-repair sequences can be determined by using the result of the evaluation function, and the category label of the optimal read-repair sequence is obtained.
[0106] In the fourth mode, one read-repair sequence is obtained, the read-repair sequence including a plurality of read-repair parameters; the sample data corresponding physical page or part of the physical page is read-repaired by using the read-repair sequence; the position of the read-repair parameter used for reading correct data in the read-repair sequence is recorded when the sample data corresponding physical page or part of the physical page is read correctly; or, the error bit information of a plurality of read data corresponding to the sample data is recorded; each sample data is labeled by using the obtained category label; and the obtained category label is the position of the read-repair parameter with the minimum error bit number in the read-repair sequence.
[0107] In the embodiment, only one read-repair sequence is obtained, which is preset or generated according to a preset rule. After read-repairing by using the read-repair sequence, the position of the read-repair sequence corresponding to the correct data is recorded. Or, the error bit number of each read data is recorded. If the position of the read-repair sequence corresponding to the correct data is recorded, the position is the required category label. If a plurality of error bit numbers are recorded, the position of the read-repair parameter corresponding to the minimum error bit number in the read-repair sequence is the required category label.
[0108] Option 5, obtaining N read-repair sequences, each read-repair sequence including at least one read-repair parameter, N being an integer greater than or equal to 1; using the N read-repair sequences to perform read-repair on the physical page or part of the physical page corresponding to the sample data respectively; recording the time required for each preset read-repair voltage sequence to read out correct data when the sample data is read-repaired using the N read-repair sequences; and / or recording the read-repair parameter when correct data is read out when the sample data is read-repaired using the N read-repair sequences; generating a first read-repair sequence according to the recorded time required for reading out correct data and / or according to the recorded read-repair parameter when correct data is read out; determining the read-repair sequence corresponding to the category label as the read-repair sequence with the shortest time required for reading out correct data or the first read-repair sequence.
[0109] In this embodiment, the way of obtaining N read-repair sequences and performing read-repair using N read-repair sequences is the same as that in Option 2, which will not be described here. The difference is that the time required for reading out correct data and / or the read-repair parameter of reading out correct data is recorded after read-repair. A read-repair sequence is generated according to the recorded information. After the first read-repair sequence is generated, there are N+1 read-repair sequences in total, and the category label is N+1. For example, the ith read-repair sequence of the N read-repair sequences has the shortest time required for reading out correct data, and in the ith read-repair sequence, the correct data is read out using the mth to nth read-repair parameter (m and n are integers), therefore, the mth to nth read-repair parameter of the ith read-repair sequence is recorded in the generated first read-repair sequence. It can be seen that the newly generated first read-repair sequence is a sub-sequence of the ith read-repair sequence.
[0110] Optionally, the first read-repair sequence is generated when the recorded time required for reading out correct data exceeds a specified threshold. For example, the recorded time required for reading out correct data is 100 ms, and the specified threshold is 80 ms, which means that the existing read-repair sequence is not the optimal read-repair sequence, and therefore the first read-repair sequence is generated.
[0111] Step S403, training the convolutional neural network model using the training set to obtain an NVM read-repair model
[0112] Figure 5 A flowchart of training the convolutional neural network model using the training set is given. As shown in FIG. 5, training the convolutional neural network model using the training set includes the following steps: Figure 5
[0113] Step S501, initializing the convolutional neural network model.
[0114] Specifically, the convolutional neural network model is configured according to preset parameters. The initialized convolutional neural network model includes an input layer, a convolutional layer, a max-pooling layer, a full connection layer, and an output layer.
[0115] Table 5
[0116] Pre-set parameter Value Convolution kernel sliding window size 3,4,5 Convolution kernel number 128 Batch size 32 Word vector dimension 128 Regularization term limit 0.0 Dropout ratio 0.5 Class number 13 Optimization function Adam Dictionary size 37 Initial learning rate 0.001 Maximum iteration number 50
[0117] Table 5 exemplarily shows preset parameters used when configuring the convolutional neural network model. As shown in Table 5, the preset parameters include a convolution kernel sliding window size, a convolution kernel number, a batch size, a word vector dimension, a regularization term limit, a Dropout ratio, a class number, an optimization function, a dictionary size, an initial learning rate, and a maximum iteration number. The batch size is the number of sample data input to the convolutional neural network model each time, specifically 32. The word vector dimension is the number of rows of sample data, and the dictionary size is the number of columns of each sample data. If the number of rows of actual sample data is less than the word vector dimension, for example, the sample data in Table 1 has only 12 rows, which is less than 128 rows, the 13th to 128th rows are filled with 0.
[0118] In step S502, the training set is input to the convolutional neural network model.
[0119] The input layer matrix of the initialized convolutional neural network model can be expressed as:
[0120] x 1:n ∈R n×k
[0121] wherein n is the length of the NVM information of each sample data (i.e., the number of columns of sample data), k is the number of rows of sample data, x 1:n is the input sample data, and R is a real number set.
[0122] In step S503, the NVM information in the training set is convoluted by using a convolution kernel to obtain first data.
[0123] In this embodiment, the convolution kernel obtains the local features of the input NVM information by window sliding. For example, when the sliding window size is 3 in Table 5, a 3*3 window is used to convolute the input sample data. The convolution filter is:
[0124] m∈R h×k
[0125] m refers to the weight matrix obtained by convoluting the k-dimensional word vector with a window . is the convolution kernel sliding window size. In this embodiment, the first data obtained is the weight matrix.
[0126] Step S504, inputting the first data into the activation function to obtain second data after non-linearization.
[0127] For example, the first data is input into the following formula:
[0128] c i = f(m x + b)
[0129] wherein f is an activation function Relu, m is a weight matrix, b is a bias vector, c i is a component of the second data, i is [1, n-h+1], x is sample data.
[0130] The second data can be expressed as:
[0131] C = [c1, c2, …, ch-1, ch] n-h+1 ], C ∈ R n-h+1
[0132] Optionally, after obtaining the second data, the second data is input into a pooling layer, and the second data is processed by a max-pooling operation. The max-pooling operation can be performed by the following formula:
[0133]
[0134] Step S505, inputting the second data into a normalized exponential function to obtain a predicted value.
[0135] The normalized exponential function in the embodiment is as follows:
[0136]
[0137] wherein y is the predicted value, is the second data after the max-pooling operation, w s and b s are a weight matrix and a bias respectively.
[0138] In the embodiment, the normalized exponential function is located in a fully connected layer.
[0139] Step S506, calculating an error between the predicted value and label information corresponding to sample data to which the predicted value belongs by using a cross-entropy loss function.
[0140] Optionally, the cross-entropy loss function is shown in the following formula:
[0141]
[0142] wherein L loss is the error, y i is the label information, is the predicted value, and λ is a regular term limit, and ||θ||2 is a regularization term.
[0143] At step S507, the parameters of the convolutional neural network model are updated according to the error.
[0144] In this embodiment, steps S506 and S507 are to update the parameters of the convolutional neural network by using the Adam optimization algorithm to backpropagate the error. In actual training, steps S505-S507 are repeatedly executed until the training error reaches a requirement or the number of times of executing steps S505-S507 reaches a specified number (e.g., a preset maximum number of iterations), and the training is stopped. The convolutional neural network model at the time of stopping the training is the NVM read-repair model. For example, the maximum number of iterations is 50, and steps S505-S507 are executed at most 50 times. For another example, the training error is 3%, and after steps S505-S507 are executed 10 times, it is determined that the training error is 1%, and the model training is stopped. The updated parameters are as shown in Table 5. It should be noted that the convolutional neural network model in this application is an untrained model, and the read-repair model is a trained convolutional neural network model.
[0145] Optionally, in each training cycle, the convolutional neural network is trained using 1 sample data in the training set. Alternatively, the initialized convolutional neural network model receives 32 sample data each time, and in each training cycle, the convolutional neural network model is trained using 32 sample data.
[0146] In this embodiment, the number of categories is the number of category labels. Optionally, when the category label indicates one read-repair sequence in the plurality of read-repair sequences, the number of category labels is less than or equal to the number of the plurality of read-repair sequences. When the category label indicates one read-repair parameter in one read-repair sequence, the number of category labels is less than or equal to the number of read-repair parameters in one read-repair sequence. For example, each read-repair sequence includes 21 read-repair parameters, the number of categories is less than or equal to 21, and the number of categories is a positive integer. When the number of categories is less than the number of read-repair sequences or the number of read-repair parameters, the error bit number of the read-repair sequence or the read-repair parameter without the category label is large, i.e., the probability of obtaining correct data by using the read-repair sequence or the read-repair parameter without the category label is very low. By reducing the number of samples, the model training time is shortened, and the prediction accuracy is improved.
[0147] Figure 6A is a block diagram of a control component according to an embodiment of the application.
[0148] According to an embodiment of the application, the read-repair parameters used are also predicted according to the generated NVM chip read-repair model.
[0149] See Figure 6, same Figure 2 The control unit shown in Figure 6, in the embodiment, also includes a read redo model unit. The read redo model unit is coupled to the storage media management unit, receives characteristic information (also see Table 1) from the storage media management unit for reading the NVM chip, generates predicted category labels using the trained read redo model, and determines whether to generate a read operation or a read redo operation, along with the corresponding read redo parameters, based on the category labels. The predicted category labels or indications for read / read redo operations are provided by the storage command processing unit to the media interface controller, which then uses the read operation or read redo operation to access the NVM chip to read data.
[0150] Figure 6B This is a block diagram of a media interface controller according to yet another embodiment of this application.
[0151] according to Figure 6B In one embodiment, the read redo model generated according to the embodiments of this application is set in the media interface controller.
[0152] See Figure 6B The media interface controller of the control unit includes a media interface, an ECC encoding unit, and an ECC decoding unit. The media interface is coupled to the NVM chip, providing storage media access commands to the NVM chip and retrieving data from the NVM chip based on storage media access read commands. The media interface is coupled to the ECC encoding unit and the ECC decoding unit. The media interface controller processes data from the storage command processing unit (see also...). Figure 2 The media interface controller receives the media interface command, generates and provides storage media access commands to the NVM chip. When writing data to the NVM chip, the media interface controller moves the data to be written from the memory to the NVM chip. When reading data from the NVM chip, the media interface controller moves the data read from the NVM chip to the memory. The ECC encoding unit performs ECC encoding on the data to be written, and the ECC decoding unit performs ECC decoding on the data read from the NVM chip. The decoding result is written to the memory.
[0153] The memory is either DRAM or SRAM, which is coupled to the control unit.
[0154] See Figure 6BFor example, the media interface command indicates the physical address of the NVM chip to be accessed, and the media interface controller further obtains the corresponding plane type, number of erase cycles, programming time, etc. according to the physical address.
[0155] In one example, in response to receiving the media interface command, the characteristic information of the NVM chip is directly provided to the read redo model, and a predicted category label is obtained, and it is determined according to the category label whether to generate a read operation, a read redo operation (and corresponding read redo parameters) or a read redo sequence (and corresponding multiple read redo parameters). The media interface generates a storage medium access command according to the prediction result and sends it to the NVM chip.
[0156] In another example, in response to receiving the media interface command, the media interface first generates a corresponding storage medium access command according to the indication of the media interface command and provides it to the NVM chip (without obtaining a predicted category label through the read redo model unit). If the ECC decoding unit indicates that the data read out from the NVM chip according to the storage medium access command fails to be decoded, the media interface provides the characteristic information of the NVM chip to the read redo model unit to obtain a predicted category label, and generates a corresponding one or more storage medium access commands according to the indication of the category label (corresponding to the indication of the read redo sequence by the predicted category label) and sends them to the NVM chip.
[0157] It can be understood that, Figure 6A With Figure 6B The read redo model unit is only used for prediction and not for training, so the calculation is less, the required computing resources are less, and the hardware is provided by the control component or the media interface controller. Alternatively, the read redo model unit is implemented by a CPU core running software.
[0158] Figure 7 A flowchart of the parameter prediction method of the read redo of the NVM chip is given. As shown in Figure 7 The parameter prediction method of the read redo of the NVM chip provided by the embodiments of the present application includes the following steps:
[0159] S701, obtaining the characteristic information of the NVM chip.
[0160] Table 6
[0161] Page CEA LUNA CHA PLNA BLKA WLA PIW PT 1 0 0 0 0 718 0 0 TLC 2 0 0 0 0 718 0 1 TLC 3 0 0 0 0 718 0 2 TLC 4 0 0 2 0 718 0 0 TLC
[0162] Table 7
[0163]
[0164]
[0165] Table 8
[0166]
[0167] As an example, Table 6, Table 7 and Table 8 show optional acquired NVM characteristic information. The NVM characteristic information of Table 6, Table 7 and Table 8 is different. Among them, Table 6 only includes information of the NVM chip itself, Table 7 adds command processing time information of the NVM chip on the basis of Table 6, and Table 8 further adds erase-write times and command interval time information on the basis of Table 7. The manner of acquiring NVM characteristic information in the embodiment is the same as that in the above-mentioned embodiments, and will not be described here.
[0168] S702, pre-processing the characteristic information, so that the pre-processed characteristic information matches the NVM chip read-repair model, and the NVM chip read-repair model executes the method acquired in the above-mentioned embodiments.
[0169] The manner of pre-processing the characteristic information in the embodiment can refer to the description in the above-mentioned embodiments, and will not be expanded here.
[0170] S703, inputting the pre-processed characteristic information into the NVM chip read-repair model to acquire a category label.
[0171] S704, acquiring a read-repair parameter or a read-repair sequence according to the category label, the read-repair sequence indicating at least one read-repair parameter.
[0172] In the embodiment according to Figure 7 The characteristic information input into the NVM chip read-repair model does not include error bit information.
[0173] The category label acquired in step S704 corresponds to, for example, one of the read-repair parameters or one of the read-repair sequences.
[0174] The category label indicates a specific read redo sequence in the N read redo sequences, so that after the category label is predicted, the specific read redo sequence can be obtained according to the category label. Referring to Table 4, the read redo parameter or the read redo sequence corresponding to the predicted category label of the read redo model output is obtained by, for example, querying the category label table. When the predicted category label corresponds to the read redo parameter, the read redo parameter is used to generate a read redo command provided to the NVM chip to be accessed. When the predicted category label corresponds to the read redo sequence, each read redo parameter in the read redo sequence is obtained, and the read redo command is generated in sequence using each read redo parameter and provided to the NVM chip to be accessed.
[0175] Figure 8 A flowchart of another parameter prediction method of NVM chip read redo is given. As shown in Figure 8 The another parameter prediction method of NVM chip read redo provided by the embodiment of the present application comprises the following steps:
[0176] S801, obtaining characteristic information and error bit information of an NVM chip.
[0177] The characteristic information of the NVM chip obtained in the embodiment is, for example, the characteristic information in Table 6, Table 7 and Table 8. The obtained error bit information is shown in Table 2 and Table 3.
[0178] S802, preprocessing the characteristic information and the error bit information, so that the preprocessed characteristic information and error bit information are matched with the NVM chip read redo model, and the NVM chip read redo model is executed as obtained by the method in the above embodiment.
[0179] S803, inputting the preprocessed characteristic information and error bit information into the NVM chip read redo model to obtain a category label.
[0180] S804, obtaining a read redo parameter from a read redo sequence according to the category label.
[0181] Figure 9 A structure diagram of a training device of a flash read redo model based on deep learning in the embodiment of the present application is given. As shown in Figure 9 The training device 90 of the flash read redo model based on deep learning comprises an obtaining module 91, a preprocessing module 92 and a training module 93.
[0182] The acquisition module 91 is configured to acquire NVM information, where the NVM information includes characteristic information of a flash memory chip and / or error bit number information. The preprocessing module 92 is configured to preprocess the NVM information to obtain a data set. The data set includes a training set and a test set, and the data set includes the preprocessed NVM information. The training module 93 is configured to train a convolutional neural network model by using the training set to obtain a flash read-repair model. The training apparatus 90 of the flash read-repair model based on deep learning in this embodiment can perform the training method of the NVM read-repair model based on deep learning in the above-described embodiments.
[0183] The embodiments of the present application further provide an electronic device, including a memory, a processor, and a computer program stored in the memory and capable of running on the processor, and the processor implements the steps of the training method of the NVM read-repair model based on deep learning in the above-described embodiments when executing the computer program.
[0184] The embodiments of the present application further provide an electronic device, including a memory, a processor, and a computer program stored in the memory and capable of running on the processor, and the processor implements the steps of the parameter prediction method of the NVM chip read-repair in the above-described embodiments when executing the computer program.
[0185] Although the examples described with reference to the present application are only for the purpose of explanation and not for the limitation of the present application, changes, additions and / or deletions of the embodiments can be made without departing from the scope of the present application.
[0186] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited to this. Any person skilled in the art can easily think of changes or replacements within the technical range disclosed in the present application, which should be covered in the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
Claims
1. A method for training a deep learning-based NVM read redo model, characterized in that, The method comprises: obtaining NVM information, the NVM information comprising characteristic information and / or error bit information of an NVM chip; preprocessing the NVM information to obtain a data set, the data set comprising a training set and a test set, and the data set comprising the preprocessed NVM information; wherein the obtaining of the data set comprises obtaining label information corresponding to the NVM information, the label information comprising an expected output of sample data of the data set; training a convolutional neural network model using the training set to obtain an NVM read-retry model; the obtaining of the data set further comprises labeling sample data using the label information; wherein the label information corresponding to the sample data is a category label; wherein the category label is a category label of a read-retry parameter with the smallest number of error bits in a plurality of error bit information corresponding to the sample data, or a category label of a read-retry sequence with the shortest time required for reading correct data, or a category label corresponding to a read-retry sequence with the optimal result of an evaluation function, or a position of a read-retry parameter used for reading correct data in a read-retry sequence, or a position of a read-retry parameter with the smallest number of error bits in a plurality of read data in a read-retry sequence.
2. The method of claim 1, wherein, The training of the convolutional neural network model using the training set to obtain the NVM read-retry model comprises: inputting the training set into the convolutional neural network model; performing convolution operation on the NVM information in the training set using a convolution kernel to obtain first data; inputting the first data into an activation function to obtain second data that is nonlinearized; inputting the second data into a normalization exponential function to obtain a prediction value; calculating an error between the prediction value and its corresponding label information using a cross-entropy loss function; updating parameters of the convolutional neural network model according to the error.
3. The method of claim 1, wherein, The obtaining of the NVM information comprises: performing wear-out processing on the NVM chip and recording characteristic information generated during the wear-out processing.
4. The method of claim 3, wherein, The data set comprises a plurality of sample data, each sample data comprising characteristic information and / or error bit information of a physical page or a part of a physical page, wherein the error bit information is obtained by reading data of the physical page or the part of the physical page using at least one read-retry parameter.
5. The method of claim 1, wherein, The obtaining of the data set comprises: labeling sample data using the label information; wherein the label information corresponding to the sample data is a category label, and the category label indicates one of a plurality of read-retry sequences, or the category label indicates one read-retry parameter.
6. The method of claim 5, wherein, The labeling of the sample data comprises: comparing a plurality of error bit information corresponding to the sample data, the plurality of error bit information being obtained by reading data of the physical page or the part of the physical page using the plurality of read-retry parameters; obtaining a category label corresponding to the smallest number of error bits in the plurality of error bit information corresponding to the sample data; labeling the sample data using the obtained category label.
7. The method of claim 5 or 6, wherein, The labeling of the sample data comprises: obtaining one read-retry sequence, the one read-retry sequence comprising a plurality of read-retry parameters; performing read-retry on the physical page or the part of the physical page corresponding to the sample data using the one read-retry sequence; The read-repair parameter used to read the correct data is located in a read-repair sequence when the correct data corresponding to the physical page or part of the physical page of the sample data is read; or, error bit information of multiple read data corresponding to the sample data is recorded; Each sample data is labeled by using the obtained category label. The obtained category label is the position of the read-repair parameter with the minimum number of error bits in the multiple read data in a read-repair sequence.
8. A method for predicting parameters of NVM chip read retry, characterized in that, It includes: Obtain the characteristic information and error bit information of the NVM chip; Preprocess the characteristic information and error bit information, so that the preprocessed characteristic information and error bit information match the NVM chip read-repair model, and the NVM chip read-repair model is executed as in any one of claims 1-7; Input the preprocessed characteristic information and error bit information into the NVM chip read-repair model to obtain a category label; According to the category label, obtain the read-repair parameter from the read-repair sequence. 9.A training apparatus of a deep learning-based flash read redo model, characterized in that, It includes: The acquisition module is configured to acquire NVM information, wherein the NVM information includes characteristic information and / or error bit number information of a flash memory chip; The preprocessing module is configured to preprocess the NVM information to obtain a data set, wherein the data set includes a training set and a test set, and the data set includes the preprocessed NVM information; The training module is configured to train a convolutional neural network model using the training set to obtain a flash read-repair model; wherein The preprocessing module obtains the data set, and further includes: labeling sample data using labeling information; wherein the labeling information corresponding to the sample data is a category label; wherein the category label is the category label of the read-repair parameter with the minimum number of error bits in the multiple error bit information corresponding to the sample data, or the category label of the read-repair sequence with the shortest time required to read the correct data, or the category label corresponding to the read-repair sequence with the optimal result of the evaluation function, or the position of the read-repair parameter used to read the correct data in a read-repair sequence, or the position of the read-repair parameter with the minimum number of error bits in the multiple read data in a read-repair sequence.
10. An electronic device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, The processor executes the computer program to implement the steps of the method of any one of claims 1-7.
Citation Information
Patent Citations
Convolutional neural network-based unmanned air vehicle to-ground specific target recognition method
CN108009525A
Intelligent re-reading command generation
CN109582490A