Data storage device and method for using a modular model to infer a read threshold

A modular model system with a base model and add-on models for corner cases addresses the variability in read thresholds due to NAND process shrinking and varying conditions, enhancing data storage device performance by reducing bit error rates and optimizing throughput and power consumption.

JP2026012628AActive Publication Date: 2026-01-27SANDISK TECHNOLOGIES LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2025067371
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-15
Filing Date
2025-04-16
Publication Date
2026-01-27
Estimated Expiration
2045-04-16

AI Technical Summary

Technical Problem

The challenge of maintaining process uniformity in NAND process shrinking and three-dimensional stacking, coupled with varying operating conditions, leads to significant variability in read thresholds across memory dies, blocks, and pages, resulting in increased bit error rates and degraded performance in data storage devices.

Method used

Implementing a modular model system that includes a base model for typical conditions and add-on models for corner cases, using machine learning techniques to infer read thresholds, ensuring accurate read operations under varying conditions.

Benefits of technology

The modular model system reduces bit error rates, improves throughput and quality of service, and optimizes power consumption by providing precise read thresholds for both common and rare conditions without increasing hardware or computational resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026012628000001_ABST
    Figure 2026012628000001_ABST
Patent Text Reader

Abstract

To provide a data storage device and a method for maintaining process uniformity.SOLUTION: The method is characterized in that system and sample data (750) are provided to the basic model (760) in addition to the input features, and the controller then determines (770) whether the system and sample data satisfy a condition and, if so, applies (780) an additional model to the basic model Otherwise, the inferred read threshold is output (790).SELECTED DRAWING: Figure 7B
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] One of the main challenges posed by NAND process shrinking and three-dimensional stacking is maintaining process uniformity. In addition, data storage devices may need to support a wide range of operating conditions (such as different program / erase cycles, retention times, and temperatures), which can lead to increased variability between memory dies, blocks, and pages across different operating conditions. Due to these variations, the read threshold (RT) used to read a memory page in some data storage devices is not fixed and can vary significantly as a function of physical location and operating conditions, especially for less mature memory nodes. [Brief explanation of the drawings]

[0002] [Figure 1A] FIG. 2 is a block diagram of a data storage device according to an embodiment. [Figure 1B] FIG. 2 is a block diagram illustrating a storage module of one embodiment. [Figure 1C] FIG. 1 is a block diagram illustrating a hierarchical storage system of one embodiment. [Figure 2A] 1B is a block diagram illustrating components of a controller of the data storage device illustrated in FIG. 1A according to one embodiment. [Figure 2B] 1B is a block diagram illustrating components of the data storage device illustrated in FIG. 1A, according to one embodiment. [Figure 3] FIG. 2 is a block diagram of a host and a data storage device of one embodiment. [Figure 4] FIG. 1 is an illustrative diagram of a constant forest solution of one embodiment. [Figure 5] FIG. 10 is an illustration of an additive forest model for an open word line / block corner case of one embodiment. [Figure 6] FIG. 10 is an illustration of an additive model with table-based add-ons for the open wordline / block corner case. [Figure 7A] 1 is a flowchart of a method of one embodiment. [Figure 7B] 1 is a flowchart of a method of one embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0003] The following embodiments generally relate to data storage devices and methods for using modular models to infer read thresholds. In one embodiment, a data storage device is provided that includes a memory and one or more processors. The one or more processors are configured, individually or in combination, to determine whether a condition exists in the data storage device that triggers use of at least one add-on model as a modular addition to a base model, and in response to determining that the condition does not exist, to infer a first read threshold using the base model and read the memory using the first read threshold, and in response to determining that the condition exists, to infer a second read threshold using the at least one add-on module and the base model and read the memory using the second read threshold.

[0004] In another embodiment, a method is provided that is performed in a data storage device having a memory, the method including determining to use at least one add-on model in addition to a base model, inferring a read threshold using the at least one add-on model in addition to the base model, and reading the memory using the read threshold.

[0005] In yet another embodiment, a data storage device comprises a memory and means for inferring a read threshold using at least one additional model in addition to the base model and reading the memory using the read threshold.

[0006] Other embodiments are possible, and each of the embodiments can be used alone or together in combination. Accordingly, various embodiments will now be described with reference to the accompanying drawings.

[0007] Embodiment The following embodiments relate to data storage devices (DSDs). As used herein, "data storage device" refers to a non-volatile device that stores data. Examples of DSDs include, but are not limited to, hard disk drives (HDDs), solid state drives (SSDs), tape drives, hybrid drives, etc. More details about DSDs are provided below.

[0008] Examples of data storage devices suitable for use in implementing aspects of these embodiments are shown in FIGS. 1A-1C. Note that these are examples only and other implementations may be used. FIG. 1A is a block diagram illustrating a data storage device 100 according to one embodiment. Referring to FIG. 1A, the data storage device 100 in this example includes a controller 102 coupled to nonvolatile memory, which may be comprised of one or more nonvolatile memory dies 104. As used herein, the term die refers to a collection of nonvolatile memory cells and associated circuitry for managing the physical operation of those nonvolatile memory cells formed on a single semiconductor substrate. The controller 102 interfaces with a host system and sends command sequences for read, program, and erase operations to the nonvolatile memory dies 104. Also, as used herein, the phrases "communicating with" or "coupled with" can mean communicating / coupled directly or communicating / coupled indirectly through one or more components, which may or may not be shown or described herein. The communication / coupling may be wired or wireless.

[0009] The controller 102 (which may be a non-volatile memory controller (e.g., flash, resistive random-access memory (ReRAM), phase-change memory (PCM), or magnetoresistive random-access memory (MRAM) controller)) may include one or more components, individually or in combination, configured to perform certain functions, including but not limited to, those described herein and illustrated in the flowcharts. For example, as shown in FIG. 2A , the controller 102 may include one or more processors 138, individually or in combination, configured to perform functions, including but not limited to, those described herein and illustrated in the flowcharts, by executing computer-readable program code stored in one or more non-transitory memories 139 (e.g., random access memory (RAM) 116 or read-only memory (ROM) 118) internal to the controller 102 and / or external to the controller 102. As another example, one or more components may include circuits such as, but not limited to, logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers.

[0010] In one exemplary embodiment, the non-volatile memory controller 102 is a device that manages data stored in non-volatile memory and communicates with a host, such as a computer or electronic device having any suitable operating system. The non-volatile memory controller 102 can have a variety of functions in addition to the specific functions described herein. For example, the non-volatile memory controller can format the non-volatile memory to ensure that the memory is operating properly, map out bad non-volatile memory cells, and allocate spare cells to replace future failed cells. Some of the spare cells can be used to hold firmware (and / or other metadata used for housekeeping and tracking) to operate the non-volatile memory controller and implement other features. During operation, the host can communicate with the non-volatile memory controller when it needs to read data from or write data to the non-volatile memory. If the host provides a logical address where data is to be read / written, the non-volatile memory controller can translate the logical address received from the host into a physical address within the non-volatile memory. The non-volatile memory controller may also perform various memory management functions such as, but not limited to, wear leveling (distributing writes to avoid wearing out particular blocks of memory that would otherwise be repeatedly written to) and garbage collection (moving only valid pages of data to a new block after a block becomes full so that the full block can be erased and reused).

[0011] The non-volatile memory die 104 may include any suitable non-volatile storage medium, including resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), phase change memory (PCM), NAND flash memory cells, and / or NOR flash memory cells. The memory cells may take the form of solid-state (e.g., flash) memory cells and may be programmable once, a few times, or many times. The memory cells may also be single-level cells (SLC), multi-level cells (MLC) (e.g., dual-level cells, triple-level cells (TLC), quad-level cells (QLC), etc.), or may use other memory cell level technologies now known or later developed. The memory cells may also be fabricated using two-dimensional or three-dimensional methods.

[0012] The interface between the controller 102 and the non-volatile memory die 104 may be any suitable flash interface, such as toggle mode 200, 400, or 800. In one embodiment, the data storage device 100 may be a card-based system, such as a secure digital (SD) or micro-secure digital (microSD) card. In another embodiment, the data storage device 100 may be part of an embedded data storage device.

[0013] 1A, data storage device 100 (sometimes referred to herein as a storage module) includes a single channel between controller 102 and non-volatile memory die 104, although the subject matter described herein is not limited to having a single memory channel. For example, in some architectures (such as those shown in FIGS. 1B and 1C), two, four, eight, or more memory channels may exist between the controller and the memory device, depending on the capabilities of the controller. In any of the embodiments described herein, even when a single channel is shown in the drawings, there may be two or more channels between the controller and the memory die.

[0014] 1B illustrates a storage module 200 including multiple non-volatile data storage devices 100. Accordingly, the storage module 200 may include a storage controller 202 that interfaces with a host and a data storage device 204 including multiple data storage devices 100. The interface between the storage controller 202 and the data storage device 100 may be a bus interface such as a serial advanced technology attachment (SATA), a peripheral component interconnect express (PCIe) interface, a double-data-rate (DDR) interface, or a serial attached small scale compute interface (SAS / SCSI). The storage module 200, in one embodiment, may be a solid-state drive (SSD) or a non-volatile dual in-line memory module (NVDIMM) such as those found in server PCs or portable computing devices such as laptop and tablet computers.

[0015] FIG. 1C is a block diagram illustrating a hierarchical storage system. The hierarchical storage system 250 includes multiple storage controllers 202, each of which controls a respective data storage device 204. A host system 252 may access memory in the storage system 250 through a bus interface. In one embodiment, the bus interface may be a Non-Volatile Memory Express (NVMe) or Fibre Channel over Ethernet (FCoE) interface. In one embodiment, the system illustrated in FIG. 1C may be a rack-mountable mass storage system accessible by multiple host computers, such as those found in data centers or other locations where mass storage is needed.

[0016] Referring again to FIG. 2A , the controller 102 in this example also includes a front-end module 108 that interfaces with the host, a back-end module 110 that interfaces with one or more non-volatile memory dies 104, and various other components or modules, such as, but not limited to, a buffer manager / bus controller module that manages buffers in RAM 116 and controls internal bus arbitration for the controller 102. The modules may include one or more processors or components, as discussed above. ROM 118 may store system boot code. While illustrated in FIG. 2A as being located separately from the controller 102, in other embodiments, one or both of the RAM 116 and the ROM 118 may be located within the controller 102. In still other embodiments, portions of the RAM 116 and the ROM 118 may be located both within and outside the controller 102.

[0017] The front-end module 108 includes a host interface 120 and a physical layer interface (PHY) 122 that provide an electrical interface with a host or next-level storage controller. The choice of host interface 120 type may depend on the type of memory being used. Examples of host interfaces 120 include, but are not limited to, SATA, SATA Express, serially attached small computer system interface (SAS), Fibre Channel, universal serial bus (USB), PCIe, and NVMe. The host interface 120 typically facilitates the transfer of data, control signals, and timing signals.

[0018] The back-end module 110 includes an error correction code (ECC) engine 124 that encodes data bytes received from the host and decodes and corrects errors in data bytes read from the non-volatile memory. A command sequencer 126 generates command sequences, such as program and erase command sequences, that are sent to the non-volatile memory die 104. A redundant array of independent drives (RAID) module 128 manages the generation of RAID parity and the recovery of failed data. RAID parity can be used as an additional level of integrity protection for data being written to the memory device 104. In some cases, the RAID module 128 can be part of the ECC engine 124. A memory interface 130 provides command sequences to the non-volatile memory die 104 and receives status information from the non-volatile memory die 104. In one embodiment, the memory interface 130 can be a double data rate (DDR) interface, such as a toggle mode 200, 400, or 800 interface. The controller 102 in this example also includes a media management layer 137 and a flash control layer 132 that controls the overall operation of the backend module 110 .

[0019] Data storage device 100 also includes other discrete components 140, such as an external electrical interface, external RAM, resistors, capacitors, or other components that may interface with controller 102. In alternative embodiments, one or more of physical layer interface 122, RAID module 128, media management layer 138, and buffer management / bus controller are optional components not required for controller 102.

[0020] FIG. 2B is a block diagram illustrating the components of the non-volatile memory die 104 in more detail. The non-volatile memory die 104 includes peripheral circuitry 141 and non-volatile memory array 142. The non-volatile memory array 142 includes non-volatile memory cells used to store data. The non-volatile memory cells may be any suitable non-volatile memory cells, including ReRAM, MRAM, PCM, NAND flash memory cells, and / or NOR flash memory cells in two-dimensional and / or three-dimensional configurations. The non-volatile memory die 104 also includes a data cache 156 that caches data and address decoders 148, 150. The peripheral circuitry 141 in this example includes a state machine 152 that provides status information to the controller 102. The peripheral circuitry 141 may also include one or more components, individually or in combination, configured to perform certain functions, including, but not limited to, the functions described and illustrated in the flowcharts herein. 2B, memory die 104 may include one or more processors 168 individually or in combination configured to execute computer-readable program code stored in one or more non-transitory memories 169, stored in memory array 142, or stored external to memory die 104. As another example, the one or more components may include circuits such as, but not limited to, logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers.

[0021] In addition to or instead of one or more processors 138 (or, more generally, components) in the controller 102 and one or more processors 168 (or, more generally, components) in the memory die 104, the data storage device 100 may include another set of one or more processors (or, more generally, components). Generally, one or more processors (or, more generally, components) in the data storage device 100, wherever they are located and however many there are, may be configured, individually or in combination, to perform various functions, including, but not limited to, the functions described herein and illustrated in the flowcharts. For example, one or more processors (or components) may be in the controller 102, the memory device 104, and / or elsewhere in the data storage device 100. Also, different functions may be performed using different processors (or components) or combinations of processors (or components). Furthermore, means for performing a function may be implemented using a controller that includes one or more components (e.g., the processors or other components described above).

[0022] Returning again to FIG. 2A , flash control layer 132 (referred to herein as flash translation layer (FTL)) handles flash errors and interfaces with the host. In particular, the FTL, which may be an algorithm in firmware, handles the internals of memory management and translates writes from the host into writes to memory 104. The FTL may be needed because memory 104 may have limited endurance, may only be written to multiple pages, and / or may not be written to unless erased as a block. The FTL understands these potential limitations of memory 104, which may be invisible to the host. Thus, the FTL attempts to translate writes from the host into writes to memory 104.

[0023] The FTL may include a logical-to-physical address (L2P) map (sometimes referred to herein as a table or data structure) and allocated cache memory. In this manner, the FTL translates logical block addresses ("LBA") from the host into physical addresses in memory 104. The FTL may include other features such as, but not limited to, power-off recovery (so that the FTL's data structures can be recovered in the event of a sudden power loss) and wear leveling (so that wear across memory blocks is uniform to prevent excessive wear in any one block that would result in a greater likelihood of failure).

[0024] Referring again to the drawings, FIG. 3 is a block diagram of a host 300 and a data storage device 100 in one embodiment. The host 300 may take any suitable form, including, but not limited to, a computer, a mobile phone, a tablet, a wearable device, a digital video recorder, a surveillance system, etc. The host 300 (here, a computing device) in this embodiment comprises one or more processors 330 and one or more memories 340. In one embodiment, computer-readable program code stored in the one or more memories 340 configures the one or more processors 330 to perform the operations described herein as being performed by the host 300. Accordingly, actions performed by the host 300 may be referred to herein as being performed by an application (computer-readable program code) executing on the host 300. For example, the host 300 may be configured to send data (e.g., initially stored in the host's memory 340) to the data storage device 100 for storage in the data storage device's memory 104.

[0025] As mentioned above, one of the main challenges posed by NAND process shrinking and three-dimensional stacking is maintaining process uniformity. In addition, data storage devices may need to support a wide range of operating conditions (such as different program / erase cycles, retention times, and temperatures), which can lead to increased variability between memory dies, blocks, and pages across different operating conditions. Due to these variations, the read threshold (RT) used to read a memory page in some data storage devices is not fixed and can vary significantly as a function of physical location and operating conditions, especially for newer, less mature memory nodes.

[0026] Reads using an inaccurate read threshold can lead to a higher bit error rate (BER), which can degrade performance and quality of service (QoS) due to decoding failures, which may require invoking high-latency recovery flows that can cause delays and hiccups in performance. The challenge of maintaining an optimal read threshold can be particularly important for enterprise memory systems with very stringent quality of service requirements, as well as for mobile, internet of things (IoT), and automotive memory systems, where the required range of operating conditions is wide and the frequency of condition changes (e.g., temperature) can be high. This problem is even more difficult during the transition to newer, less mature memory nodes.

[0027] Current solutions for read threshold calibration, such as BER estimation scan (BES) and valley search (VS), are high-latency operations aimed at optimizing the read threshold for a particular word line, which is good for infrequent read recovery flows in the event of data decoding failure, but may not be suitable for frequent operations in the event of frequent read threshold changes. Therefore, to address this issue, flash memory systems can implement a read threshold management scheme that attempts to track read threshold changes in the background via a maintenance process to ensure that the appropriate read threshold is used when the host issues a read command.

[0028] One approach is to track read thresholds for groups of blocks that share the same conditions. More specifically, blocks that are written at approximately the same time and temperature are grouped into time and temperature (TT) groups. Read thresholds are tracked for each time-temperature group, typically taken for several representative word lines from the blocks in the group. When the host performs a read operation, the read threshold associated with the time-temperature group corresponding to the read block is used, and additional adaptation to the read threshold by the specific read word line is performed based on a pre-calibrated word line zoning table.

[0029] Some read threshold management schemes may not adequately track the read threshold under frequently changing conditions and high variation between memory pages. Various solutions to address this issue are possible. For example, U.S. Patent Application No. 17 / 838,481, filed June 13, 2022, which is incorporated herein by reference, describes a read threshold calibration method that applies a machine learning (ML) predictive model, specifically including a system and method for inferring optimal read thresholds from various available information, including time and temperature group information, temperature information, bit error rate (BER) information, program-erase count (PEC) information, and physical page location.

[0030] As another example, U.S. Patent Application Nos. 17 / 899,073, filed August 30, 2022, 18 / 220,363, filed July 11, 2023, and 18 / 242,061, filed September 5, 2023, which are incorporated herein by reference, describe methods enabling implementation of an inference engine for faster and more accurate acquisition of read thresholds. In one embodiment described therein, a binary tree model is used to efficiently store only a subset of relevant correction data. Furthermore, direct reads from memory are not required to perform threshold calibration, and therefore, it is much faster than BES / VS-based calibration. The unique structure of the binary tree enables a fast, low-area, and low-power solution.

[0031] Furthermore, U.S. Patent Application No. 18 / 658,074, filed May 8, 2024, which is incorporated herein by reference, describes hardware implementations. Hardware implementations may impose severe limitations on the complexity of the implemented predictive models. Therefore, as described in the references of the above-mentioned patent application, efficient predictive model-based ensembles of symmetric trees may be used. However, while symmetric predictive tree models may be capable of describing complex nonlinear functions of input features, they may have the inherent drawback of being discrete (non-continuous). This characteristic of random forest models may limit their predictive accuracy, as they have only a finite number of potential output values. The impact of this limitation on model performance may increase as hardware requirements become more stringent.

[0032] As described above, read threshold selection can be a complex task that may be well suited to machine learning techniques. Therefore, an artificial intelligence-based read threshold (ART) mode can be used to replace legacy read threshold schemes. One implementation of ART is a multi-model inference engine that can infer from multiple different types of models in real time with high accuracy and minimal latency. Other partial implementations may include firmware derivatives of this approach.

[0033] In one of the applications referenced above, a new concept of read threshold calibration was presented by applying a machine learning (ML) predictive model, particularly including a system and method for inferring optimal read thresholds from all available information, including time and temperature group information, temperature information, bit error rate (BER) information, program erase count (PEC) information, and physical page location. FIG. 4 is an illustrative diagram of a constant forest solution of one embodiment, hereinafter sometimes referred to as the base model. More specifically, FIG. 4 depicts a fully homogeneous model of K trees, in which all trees are used for inference, regardless of the features or conditions used. One of the applications referenced above described an implementation of an inference engine for faster and more accurate acquisition of read thresholds. This method uses a binary tree model to efficiently store only a subset of relevant correction data. Furthermore, it does not need to read directly from non-volatile memory to perform threshold calibration, and therefore can operate much faster than BES / VS-based calibration. The unique structure of the binary tree enables a high-speed, low-area, and low-power solution.

[0034] A good machine learning model may need to cover a variety of data storage device conditions and condition stackings, and therefore may need to cover many corner cases. For example, open blocks and especially open word lines (e.g., the most recently written word line in a block) have unique physical properties that distinguish them from closed blocks and induce very different optimal read thresholds. However, open blocks and especially open word lines may be very rare. This may pose a problem for machine learning solutions because data collection may be very difficult due to limited sample set sizes, which are usually the main challenge in such cases. Second, the impact of this rare data on the model may be small. In practice, this limitation can be largely alleviated by oversampling or using higher weights for such samples, but this only addresses the impact on the model output and does not solve the coverage problem.

[0035] It would be beneficial to enable a modular design that retains a main model for common use cases but also has special handling for interesting corner cases as well as important rare events. Handling of such cases can be guaranteed not to require complex special processing or flows. Some conventional solutions are based on one large model under the assumption that the model has good coverage of the data, the data space is easy to sample, and corner cases get different handling (e.g., special firmware flows to handle such cases).

[0036] The following embodiments can be used to handle both common data and corner cases with high accuracy using simple hardware for all input feature combinations, addressing the relatively rare issues of open blocks and open word lines. More specifically, one embodiment provides a modular model system for flexible read threshold prediction. Such a modular design can consist of a base model that covers typical conditions and further includes add-on models that cover specific conditions. Such specific conditions can be, for example, open word lines, open blocks, or any other corner cases that can be predefined and are too rare to be covered by a common model. Each add-on model can be specifically trained or calibrated to cover a specific use case or group of use cases.

[0037] In one exemplary implementation, the controller 102 of the data storage device 100 uses (a) a base common model to cover typical conditions and infer read thresholds, and (b) one or more add-on models on top of the common model to cover corner cases and difficult conditions. The add-on models can take the form of offline characterized tables that are pre-stored within the data storage device 100 (e.g., in dedicated internal memory (e.g., RAM)) or loaded online on demand from memory 104 within the data storage device 100, from a host memory buffer (HMB) within the host 300, or from another location.

[0038] As discussed above, the ART model is a tree-based model designed to capture all system features and use them to infer optimal read thresholds. Input features can include one or more of addressing, temperature data, data retention (DR) data, program-erase count (PEC), bit error rate (BER) measurements, BER estimates or proxies such as ECC syndrome weights (SW), previous read thresholds, samples or estimates of read thresholds in offline calibrated state tables, word line numbers, plane numbers, string numbers, logical page numbers, etc. This model has a simple hardware implementation that enables low-latency parallel and piped inference to traverse many trees and efficiently add their correction terms. This implementation can infer results for a single model for up to K trees, where K is a predefined parameter. As discussed further below, by using its additive behavior, this implementation can be used to provide modular models with common and add-on models.

[0039] In one embodiment directed to model-based add-ons, to mitigate corner or rare cases where data collection is difficult or data is sparse, a machine learning (ML) model may be split into two or more models, where a common model is trained on all available common data to provide optimal results for these cases, and one or more additional models are trained for specific corner cases using the available data. The additional models are used as add-ons to the base model when input features or other metadata indicate such a corner case is at hand. In this particular ART implementation, the common model and add-ons are forest-based models (e.g., gradient boosting, bagging, etc.), although other suitable types of models may also be used.

[0040] An additive topology can have one or more of the following characteristics: the common model can have one or more trees, there can be one or more add-on models, each add-on model can be a forest made up of one or more trees, certain corner cases can use the common model and one or more add-on models, and the use of additional models can be triggered by certain indications (e.g., open word lines, open blocks, read / write temperatures above a threshold, program erase counts (PEC) above a threshold, certain system state status (e.g., recovery from a power cycle), certain data addresses, etc.).

[0041] FIG. 5 is an illustrative diagram of an additive forest model for the open word line / block corner case of one embodiment. This diagram depicts an additive model with a maximum size of K trees, where some of the trees are used for general-case inference and others can be used as add-ons. In this example, of the K trees supported by the system, K-minus-2 trees are used as a common forest model trained on closed block data. Tree K-minus-1 is used as a forest of one tree dedicated to correcting read thresholds on open word lines, and tree K is used as a forest of one tree dedicated to correcting read thresholds on non-open word lines in an open block. These two cases are mutually exclusive in this example, so there are three modes of operation: (1) common model, (2) common model + open word line model, and (3) common model + non-open word lines in an open block model.

[0042] Turning now to one embodiment relating to table-based add-ons, to mitigate corner or rare cases where data collection is difficult or data is scarce, a machine learning model can be split into two or more parts. A first part can be a common model trained on all available common data and producing optimal results for these cases, and one or more additional models can be trained for specific corner cases using the available data. If input features or other metadata indicate such a corner case is at hand, the one or more additional parts are used as add-ons to the base model.

[0043] In this particular ART implementation, the common model is forest-based (e.g., gradient boosting, bagging, etc.), and the add-ons are table-based data. As explained above, traversing a tree is equivalent to building an index into a lookup table, and values ​​are read from large memory according to that index. Therefore, by modifying the logic that generates the index or by creating the index externally, either statically or dynamically, the same memory can also be accessed directly and thus function as a table. Each table can therefore replace one or more trees in the base model. Tables are, by their nature, smaller and denser. Therefore, they have limited coverage but can be trained using a smaller amount of data to fully cover corner cases.

[0044] The table-based add-on topology may have one or more of the following characteristics: the common model may have one or more trees, there may be one or more add-on tables, each add-on table may be a different size and may use different logic for indexing, the index may be based on one or more of the input features, certain corner cases may use the common model and one or more add-on tables, and the indication for use of the add-on table may be based on certain conditions (e.g., open word line, open block, read / write temperature above a threshold, PEC above a threshold, certain system state status (e.g., recovery from a power cycle), certain data addresses, etc.).

[0045] 6 is an illustration of an additive model with table-based add-ons for the open word line / block corner case. In this exemplary implementation, of the K trees supported by the system, K−2 trees are used as a common forest model trained on closed block data. Table 1 is used in place of one tree to correct the read threshold of the open word line, and Table 2 is used in place of one tree to correct the read threshold of the non-open word line in the open block. These two cases are mutually exclusive in this example, so there are three modes of operation: (1) common model, (2) common model + open word line table, and (3) common model + non-open word line table in the open block.

[0046] Another embodiment relates to a relatively simple hardware / firmware implementation. During inference, the values ​​of all trees are summed, allowing the hardware / firmware-based solution to treat the entire range as one large forest, agnostic to the underlying semantics of each additional add-on. This mode of operation may require an indication of which trees to add to the final sum (or which trees to calculate). Thus, a modular model implementation can reuse typical model implementations, adding an indication method. For example, if a model holds K trees, a common use case can indicate adding the results of trees 1 through 58. For an open word line, an indication can be given to add trees 1 through 59. For non-open word lines in an open block, an indication can be given to add trees 1 through 58 and 60.

[0047] In yet another embodiment, models can be trained to take into account the predictions of previous models so that the results are complementary. Thus, each model can take into account the corrections made by its predecessor, which is the case when behaviors are coupled. Alternatively, models or tables can be trained under the assumption that the correction terms are independent. Thus, a purely additive method can be used, and each of the components can be trained or calibrated independently.

[0048] In other use cases, additive models can be trained using pre-calibrated tables. Some aspects of NAND behavior can be measured for other applications, i.e., open wordline / open block cases. Therefore, instead of training corner cases on hard-to-collect data that includes all other features, specific trees or forests can be trained to learn these measurements.

[0049] Referring again to the drawings, Figures 7A and 7B are flowcharts of a method of one embodiment. In the method shown in Figure 7A, input features (710) are provided to a base model (720), which outputs an inferred read threshold (730). In the method shown in Figure 7B, system and sample data (750) in addition to the input features are provided to the base model (760). The controller 102 then determines (770) whether the system and sample data meet a condition. If so, the controller 102 applies (780) an additional model to the base model. If not, the controller 102 outputs (790) an inferred read threshold.

[0050] There are several advantages associated with these embodiments. For example, using a dedicated predictive model to cover corner cases can provide improved thresholds, which can result in reduced bit error rates without expanding hardware, cost, and computational resources (e.g., firmware overhead). Also, better read thresholds can translate into improved throughput, quality of service (QoS), and power consumption (e.g., due to shorter decoding durations), which can be important for data storage device operation and meeting end-user requirements.

[0051] Finally, as mentioned above, any suitable type of memory can be used. Semiconductor memory devices include volatile memory devices such as dynamic random access memory ("DRAM") or static random access memory ("SRAM") devices, non-volatile memory devices such as resistive random access memory ("ReRAM"), electrically erasable programmable read only memory ("EEPROM"), flash memory (which can also be considered a subset of EEPROM), ferroelectric random access memory ("FRAM"), and magnetoresistive random access memory ("MRAM"), as well as other semiconductor elements capable of storing information. Each type of memory device can have a different configuration. For example, flash memory devices can be configured in a NAND or NOR configuration.

[0052] Memory devices can be formed from passive and / or active elements in any combination. By way of non-limiting example, passive semiconductor memory elements include ReRAM device elements, which in some embodiments include a resistivity-switching storage element such as an antifuse, a phase-change material, and optionally a steering element such as a diode. Further, by way of non-limiting example, active semiconductor memory elements include EEPROM and flash memory device elements, which in some embodiments include elements that include charge storage regions such as floating gates, conductive nanoparticles, or charge storage dielectric materials.

[0053] Multiple memory elements may be configured so that they are connected in series or so that each element is individually accessible. As a non-limiting example, a NAND-configured flash memory device (NAND memory) typically includes memory elements connected in series. A NAND memory array may be configured so that the array is made up of multiple strings of memory, where a string is made up of multiple memory elements that share a single bit line and are accessed as a group. Alternatively, the memory elements may be configured so that each element is individually accessible (e.g., a NOR memory array). NAND and NOR memory configurations are examples, and memory elements may be configured in other ways.

[0054] The semiconductor memory elements located in and / or on the substrate may be arranged in two or three dimensions, such as in a two or three dimensional memory structure.

[0055] In a two-dimensional memory structure, semiconductor memory elements are arranged in a single plane or a single memory device level. Typically, in a two-dimensional memory structure, the memory elements are arranged in a plane (e.g., an xz-direction plane) that extends substantially parallel to a major surface of a substrate that supports the memory elements. The substrate may be a wafer on or in which a layer of memory elements is formed, or may be a carrier substrate to which the memory elements are attached after they are formed. As a non-limiting example, the substrate may include a semiconductor such as silicon.

[0056] The memory elements may be arranged in an ordered array, such as multiple rows and / or columns, in a single memory device level. However, the memory elements may be arranged in an irregular or non-orthogonal configuration. The memory elements may each have two or more electrodes or contact lines, such as bit lines and word lines.

[0057] A three-dimensional memory array is one in which memory elements are arranged to occupy multiple planes or multiple memory device levels, thereby forming a three-dimensional (i.e., x, y, and z directions, where the y direction is substantially perpendicular to the major surface of the substrate and the x and z directions are substantially parallel to the major surface of the substrate) structure.

[0058] As a non-limiting example, a three-dimensional memory structure can be arranged vertically as a stack of multiple two-dimensional memory device levels. As another non-limiting example, a three-dimensional memory array can be arranged as multiple vertical columns (e.g., columns extending substantially perpendicular to the major surface of the substrate, i.e., in the y-direction), with each column having multiple memory elements within each column. The columns can be arranged in a two-dimensional configuration, e.g., in the xz plane, resulting in a three-dimensional arrangement of memory elements with elements on multiple vertically stacked memory planes. Other configurations of three-dimensional memory elements can also make up a three-dimensional memory array.

[0059] As a non-limiting example, in a three-dimensional NAND memory array, memory elements can be coupled together to form NAND strings within a single horizontal (e.g., xz) memory device level. Alternatively, memory elements can be coupled together to form vertical NAND strings that traverse multiple horizontal memory device levels. Other three-dimensional configurations can be envisioned, in which some NAND strings contain memory elements within a single memory level and other strings contain memory elements that span multiple memory levels. Three-dimensional memory arrays can also be designed in NOR and ReRAM configurations.

[0060] Typically, in a monolithic three-dimensional memory array, one or more memory device levels are formed above a single substrate. Optionally, the monolithic three-dimensional memory array may also have one or more memory layers at least partially within the single substrate. As a non-limiting example, the substrate may include a semiconductor such as silicon. In a monolithic three-dimensional array, the layers making up each memory device level of the array are typically formed on layers of the memory device level below the array. However, layers of adjacent memory device levels of a monolithic three-dimensional memory array may be shared or may have intervening layers between the memory device levels.

[0061] Again, two-dimensional arrays can be formed separately and then packaged together to form a non-monolithic memory device having multiple memory layers. For example, a non-monolithic stacked memory can be constructed by forming memory levels on separate substrates and then stacking the memory levels on top of each other. The substrate may be thinned or removed from the memory device levels before stacking, but the resulting memory array is not a monolithic three-dimensional memory array because the memory device levels are first formed on separate substrates. Furthermore, multiple two-dimensional or three-dimensional memory arrays (monolithic or non-monolithic) can be formed on separate chips and then packaged together to form a stacked chip memory device.

[0062] Associated circuitry is typically required for operation of and communication with the memory elements. As a non-limiting example, a memory device may have circuitry used to control and drive the memory elements to accomplish functions such as programming and reading. This associated circuitry may be on the same substrate as the memory elements and / or on a separate substrate. For example, a controller for memory read-write operations may be located on a separate controller chip and / or on the same substrate as the memory elements.

[0063] Those skilled in the art will recognize that the present invention is not limited to the two-dimensional and three-dimensional structures described, but rather encompasses all relevant memory structures within the spirit and scope of the present invention as described herein and as understood by those skilled in the art.

[0064] The foregoing detailed description is intended to be understood as an illustration of selected forms that the invention can take, rather than as a definition of the invention. It is only the following claims, including all equivalents, that are intended to define the scope of the invention as claimed. Finally, it should be noted that any aspect of any of the embodiments described herein can be used alone or in combination with each other.

Claims

1. 1. A data storage device comprising: Memory and and one or more processors, said one or more processors individually or in combination: determining whether a condition exists within the data storage device that triggers the use of at least one add-on model as a modular addition to a base model; In response to determining that the condition does not exist, using the base model to infer a first read threshold; reading the memory using the first read threshold; In response to determining that the condition exists, inferring a second read threshold using the at least one add-on module and the base model; The data storage device is configured to read the memory using the second read threshold.

2. The data storage device of claim 1 , wherein the condition comprises an open word line.

3. The data storage device of claim 1 , wherein the condition includes an open block.

4. The data storage device of claim 1 , wherein the condition comprises a read / write temperature above a threshold.

5. The data storage device of claim 1 , wherein the condition comprises a program-erase count (PEC) above a threshold.

6. The data storage device of claim 1 , wherein the condition includes a particular system health status.

7. The data storage device of claim 1 , wherein two of the at least one add-on module are mutually exclusive.

8. The data storage device of claim 1 , wherein the base model comprises a subset of trees in a forest-based model, and the at least one add-on model comprises a remaining subset of trees in the forest-based model.

9. The data storage device of claim 1 , wherein the at least one add-on model includes at least one table.

10. The data storage device of claim 1 , wherein the at least one add-on model is trained against predictions of a previous model.

11. The data storage device of claim 1 , wherein the at least one add-on model is trained independently.

12. 2. The data storage device of claim 1, wherein input features of the base model include one or more of addressing, temperature data, data retention (DR) data, program erase count (PEC), bit error rate (BER) measurements, BER estimates or proxies such as ECC syndrome weights (SW), previous read thresholds, samples or estimates of read thresholds in an offline calibrated state table, word line number, plane number, string number, and logical page number.

13. The data storage device of claim 1 , wherein the memory comprises a three-dimensional memory.

14. 1. A method, in a data storage device comprising a memory, comprising: determining to use at least one add-on model in addition to the base model; inferring a read threshold using the at least one add-on model in addition to the base model; and and using the read threshold to read the memory.

15. The method of claim 14 , wherein an open word line triggers use of the at least one add-on model.

16. The method of claim 14 , wherein an open block triggers the use of the at least one add-on model.

17. The method of claim 14 , wherein the at least one add-on model is stored on the data storage device.

18. The method of claim 14 , wherein the at least one add-on model is stored in a host memory buffer within the host.

19. The method of claim 14 , wherein the at least one add-on model and the base model comprise a forest-based model.

20. 1. A data storage device comprising: Memory and inferring a read threshold using at least one additional model in addition to the base model; means for using the read threshold to read the memory.

Citation Information

Patent Citations

  • Memory system

    JP2021149995A

  • Methods of predicting reliability information of storage devices and methods of operating storage devices

    US20220253749A1