Media management based on effective access count
By using media management based on effective access counts, and taking into account factors such as the block location and manufacturing process of non-volatile memory cells, the access counts are adjusted, thus solving the problems of data quality degradation and read failures in the memory subsystem in the prior art, and improving the performance and reliability of the memory subsystem.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-24
- Publication Date
- 2026-03-31
AI Technical Summary
Existing memory subsystems fail to effectively consider the differences in physical location and performance between blocks when selecting blocks for refresh, resulting in data quality degradation and read failures, especially exhibiting undesirable performance degradation in space-constrained mobile memory deployments.
By determining the corresponding health characteristics of blocks of non-volatile memory cells, including access counts and effective health factors such as topology factors, manufacturing process factors, and test factors, access counts are adjusted to perform media management operations based on effective access counts, and appropriate blocks are selected for refresh or a subset of dies is selected to improve manufacturing yield.
It improves the performance and reliability of the memory subsystem, reduces read failures and data degradation, and enhances the overall quality and performance consistency of the memory device, especially in memory subsystems deployed in mobile computing architectures.
Smart Images

Figure CN115729453B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this disclosure generally relate to memory subsystems, and more specifically, to media management based on valid access counts. Background Technology
[0002] The memory subsystem may include one or more memory devices for storing data. The memory devices may be, for example, non-volatile memory devices and volatile memory devices. Generally, a host system may use the memory subsystem to store data at the memory devices and retrieve data from the memory devices. Summary of the Invention
[0003] In one aspect, this application provides a method for media management based on valid access counts, comprising: determining a corresponding health characteristic value of a block of non-volatile memory cells in a non-volatile memory device; determining a valid corresponding health characteristic value of the block of non-volatile memory cells based on the corresponding health characteristic value and at least one valid health factor of the block of non-volatile memory cells; and performing media management operations on a block of non-volatile memory cells in the block of non-volatile memory cells having a valid corresponding health characteristic value that conforms to a health criterion, based on the valid corresponding health characteristic value.
[0004] In another aspect, this application provides an apparatus for media management based on valid access counts, comprising: a valid access count media management component configured to: determine corresponding access counts of a plurality of blocks of non-volatile memory cells in a non-volatile memory device; determine at least one valid health factor for each of the plurality of blocks of the non-volatile memory cells; modify the corresponding access counts based on the at least one valid health factor to determine valid corresponding access counts of the plurality of blocks of the non-volatile memory cells; and perform media management operations involving blocks of the non-volatile memory cells having valid corresponding access counts that conform to health criteria based on the valid corresponding access counts.
[0005] In another aspect, this application provides a system for media management based on valid access counts, comprising: a plurality of memory components arranged to form a stackable cross-mesh array comprising a plurality of blocks of non-volatile memory cells; and a processing means coupled to the plurality of memory components, the processing means performing operations including: determining access counts of the plurality of blocks of non-volatile memory cells; determining a valid health factor for the plurality of blocks of non-volatile memory cells; modifying the access counts based on the valid health factor to obtain valid corresponding access counts for the plurality of blocks of non-volatile memory cells; determining that the valid access counts of a particular block of non-volatile memory cells conform to a health criterion; and performing media management operations relating to the particular block of non-volatile memory cells having valid access counts conforming to the health criterion. Attached Figure Description
[0006] This disclosure will be more fully understood from the detailed descriptions given below and from the accompanying drawings of various embodiments thereof.
[0007] Figure 1 An example computing system including a memory subsystem is shown according to some embodiments of the present disclosure.
[0008] Figure 2 A flowchart corresponding to media management based on valid access counts according to some embodiments of the present disclosure is shown.
[0009] Figure 3 Another flowchart corresponding to media management based on valid access counts according to some embodiments of this disclosure is shown.
[0010] Figure 4 A flowchart corresponding to a method for media management based on valid access counts, according to some embodiments of the present disclosure, is shown.
[0011] Figure 5 This is a block diagram of an example computer system in which embodiments of the present disclosure may operate. Detailed Implementation
[0012] This disclosure relates to media management based on valid access counts, and more specifically, to a memory subsystem comprising a media management component based on valid access counts. The memory subsystem may be a storage system, a storage device, a memory module, or a combination thereof. Examples of memory subsystems include, for example, storage systems such as solid-state drives (SSDs). The following is combined with… Figure 1And other diagrams illustrating examples of storage devices and memory modules. Typically, a host system may use a memory subsystem containing one or more components, such as a memory device for storing data. The host system can provide data to be stored in the memory subsystem and can request data to be retrieved from the memory subsystem.
[0013] Memory devices can be non-volatile memory devices. An example of a non-volatile memory device is a NAND flash memory device (also known as flash memory technology). The following section combines... Figure 1 Other examples of non-volatile memory devices are described. A non-volatile memory device is a package of one or more dies. Each die may consist of one or more planes. Planes may be grouped into logical units (LUNs). For some types of non-volatile memory devices (e.g., NAND devices), each plane consists of a set of physical blocks. Each block consists of a set of pages. Each page consists of a set of memory cells (“cells”). A cell is an electronic circuit for storing information. Hereinafter, a block refers to a cell of a memory device used to store data and may contain groups of memory cells, groups of word lines, word lines, or individual memory cells. For some memory devices, a block (also referred to below as a “memory block”) is the smallest erasable area. Pages cannot be erased individually; only the entire block can be erased.
[0014] Each memory device may contain one or more arrays of memory cells. Depending on the cell type, one or more bits of binary information can be written into the cells, and each bit has various logical states associated with the number of bits being stored. Logical states can be represented by binary values (e.g., "0" and "1") or combinations of such values. Various types of cells exist, such as single-level cells (SLC), multi-level cells (MLC), three-level cells (TLC), and four-level cells (QLC). For example, an SLC can store one bit of information and has two logical states.
[0015] Some memory devices employ a floating gate architecture, where memory access is controlled based on a relative voltage change between the bit line and the word line. Other examples of memory devices may employ an alternative gate architecture that may include a word line layout, which allows for the trapping of charges corresponding to data values within the memory cell based on the properties of the material used to construct the word lines.
[0016] Due to inherent characteristics of memory devices (e.g., NAND memory devices), the data quality within memory cells of a memory device can degrade over time. For example, as the program erase cycle (PEC) count of a block of memory cells (referred to herein as a "block") increases, the data quality within that block may decrease. This data quality degradation can make the memory cells more susceptible to failure. For instance, over time, the threshold voltage (V...T The voltage level may shift. Because V T Level offset, after experiencing V T Read operations performed on memory cells with level offsets may fail or return corrupted or incorrect data values.
[0017] To mitigate data degradation, some methods randomly select blocks or select blocks based on a given PEC count, and then perform a block refresh involving the selected blocks. Performing a block refresh involving the selected blocks can alleviate some of the problems associated with data degradation. However, such block selection may not take into account other inherent differences between blocks that may alter the actual performance of the blocks. For example, blocks are typically physically located at different locations on the die and / or within the memory device. Such differences in physical location may result in different data paths, different temperature distributions, and / or may otherwise affect the performance of the blocks, such as the tendency for data on the blocks to degrade. Similarly, different blocks may have different base performance characteristics (e.g., after manufacturing time) and / or different actual performance characteristics (e.g., when the blocks are used during their operational lifetime). Such differences in base performance characteristics and / or actual performance characteristics can also affect the performance of the blocks, such as the tendency for data on the blocks to degrade.
[0018] Furthermore, as mentioned, some methods employ PEC counting when selecting blocks to mitigate data degradation. For example, this method might select the block with the highest relative PEC count. However, therefore, even though the PEC count of the unselected block is lower than that of the selected block, the unselected block (e.g., with a lower PEC count) will not be flushed, and thus, the data in the unselected block may continue to degrade at a faster rate than that in the selected block (e.g., due to differences in physical block location, accessing the block due to the data path associated with accessing the block, temperature changes the block may experience during operation, etc.), leading to read failures or the return of corrupt or incorrect data values.
[0019] Furthermore, it has been found that blocks that have undergone memory operations (e.g., write, read, and / or erase operations) during manufacturing and have undergone (e.g., subsequently) specific processing steps (e.g., infrared reflow soldering, etc.) may be particularly prone to subsequent errors. For example, blocks may be particularly prone to errors after undergoing memory operations and subsequently undergoing processing steps during manufacturing and / or when they exhibit health characteristics that meet (e.g., are equal to or greater than) health criteria, such as health characteristics of the PEC standard.
[0020] Therefore, this disclosure relates to media management of memory subsystems and / or computing systems based on effective access counts. It is noteworthy that such media management based on effective access counts can account for differences in physical block locations, differences in the basic and / or actual performance characteristics of blocks, and thus differences in the memory subsystems where blocks are deployed, and / or whether a block has undergone a specific processing operation (e.g., a memory operation following a specific processing operation), rather than relying solely on a given PEC count or random block selection employed by some methods. By doing so, memory operations can be performed based on effective health characteristics such as the effective access count of a block, compared to other methods such as those relying solely on PEC counts or randomly selecting blocks to be refreshed, and thereby providing improved data degradation mitigation. Therefore, by employing the techniques described herein, errors that may occur in the aforementioned methods (e.g., read failures or returning corrupt or incorrect data values) can be prevented.
[0021] Conversely, for media management methods that do not employ effective access count-based approaches, the memory subsystem may suffer from performance degradation. This degradation can be undesirable, especially in critical applications and / or applications that demand very high memory subsystem performance. Furthermore, this performance degradation that may occur in such approaches can be further exacerbated in mobile (e.g., smartphones, IoT, etc.) memory deployments where the amount of space available to house the memory subsystem is limited compared to traditional computing architectures.
[0022] This disclosure addresses the aforementioned and other deficiencies by: determining the corresponding health characteristic value (e.g., corresponding access count) of a block of non-volatile memory cells; determining the effective corresponding health characteristic value of the block of non-volatile memory cells; and performing media management operations involving the block of non-volatile memory cells based on the effective corresponding health characteristic value. For example, the effective corresponding access count of a block of non-volatile memory cells can be determined based on the corresponding access count of the block of non-volatile memory cells and at least one effective health factor. In this way, the corresponding health characteristic value of the block of non-volatile memory cells, such as its corresponding access count, can be adjusted (e.g., increased or decreased) based on at least one effective health factor (e.g., topology factor, manufacturing process factor, test factor, runtime factor, etc.) of the block of non-volatile memory cells. As used herein, an effective health factor refers to a value that modifies the corresponding health characteristic value. For example, the corresponding health characteristic value can be multiplied by the effective health factor or otherwise modified by the effective health factor, as detailed herein.
[0023] In some instances, performing media management operations involving blocks of non-volatile memory cells may include performing block refreshes on those blocks of non-volatile memory cells. Compared to other methods, such as those that rely solely on PEC counts or random block selection to perform media management operations, the performance of the memory subsystem can be improved by performing aspects of media management based on valid access counts, as detailed herein. The embodiments described herein can be applied to mobile memory architectures to further improve the reliability of memory subsystems deployed in mobile computing architectures.
[0024] Some embodiments may include aspects of performing media management based on effective access counts to select a subset of dies from those associated with a memory device for inclusion in the memory device after manufacturing multiple dies. In this way, die manufacturing yield can be improved, for example, by selecting some dies with lower performance characteristics (relative to other dies in the subset). However, this selection of the die subset may be performed to ensure that the aggregate quality of the die subset (e.g., the average quality or sum of the quality of the various dies) meets operational and / or performance criteria (e.g., latency less than a given latency, compliance with criteria relating to the physical location of the dies in the memory device layout, compliance with criteria relating to access counts based on layout characteristics and / or the execution of applications that may affect die performance characteristics, etc.).
[0025] Figure 1 An example computing system 100 including a memory subsystem 110 is illustrated according to some embodiments of the present disclosure. The memory subsystem 110 may include media, such as one or more volatile memory devices (e.g., memory device 140), one or more non-volatile memory devices (e.g., memory device 130), or a combination thereof.
[0026] The memory subsystem 110 may be a storage device, a memory module, or a combination of a storage device and a memory module. Examples of storage devices include solid-state drives (SSDs), flash drives, universal serial bus (USB) flash drives, embedded multimedia controller (eMMC) drives, universal flash storage (UFS) drives, secure digital cards (SD cards), and hard disk drives (HDDs). Examples of memory modules include dual in-line memory modules (DIMMs), small form factor DIMMs (SO-DIMMs), and various types of non-volatile dual in-line memory modules (NVDIMMs).
[0027] The computing system 100 may be a computing device, such as a desktop computer, laptop computer, server, web server, mobile device, vehicle (e.g., airplane, drone, train, car or other means of transport), Internet of Things (IoT) enabled device, embedded computer (e.g., embedded computer contained in a vehicle, industrial equipment or networked business device), or such computing device containing memory and processing devices.
[0028] The computing system 100 may include a host system 120 coupled to one or more memory subsystems 110. In some embodiments, the host system 120 is coupled to different types of memory subsystems 110. Figure 1 An example of a host system 120 coupled to a memory subsystem 110 is shown. As used herein, “coupled to” or “coupled with” generally refers to a connection between components, which can be an indirect or direct communication connection (e.g., without an intermediate component), whether wired or wireless, and includes connections such as electrical, optical, magnetic, etc.
[0029] Host system 120 may include a processor chipset and a software stack executed by the processor chipset. The processor chipset may include one or more cores, one or more caches, a memory controller (e.g., an SSD controller), and a storage protocol controller (e.g., a PCIe controller, a SATA controller). Host system 120 uses memory subsystem 110, for example, to write data to memory subsystem 110 and to read data from memory subsystem 110.
[0030] Host system 120 can be coupled to memory subsystem 110 via a physical host interface. Examples of physical host interfaces include, but are not limited to, Serial Advanced Technology Attachment (SATA) interfaces, Peripheral Component Interconnect High Speed (PCIe) interfaces, Universal Serial Bus (USB) interfaces, Fibre Channel, Serial Attached SCSI (SAS), Small Computer System Interface (SCSI), Dual Data Rate (DDR) memory bus, Dual In-line Memory Module (DIMM) interfaces (e.g., DIMM sockets supporting Dual Data Rate (DDR)), Open NAND Flash Interface (ONFI), Dual Data Rate (DDR), Low Power Dual Data Rate (LPDDR), or any other interface. The physical host interface can be used to transfer data between host system 120 and memory subsystem 110. When memory subsystem 110 is coupled to host system 120 via a PCIe interface, host system 120 can further use an NVM High Speed (NVMe) interface to access components (e.g., memory device 130). The physical host interface provides an interface for transferring control, address, data, and other signals between memory subsystem 110 and host system 120. Figure 1Memory subsystem 110 is shown as an example. Typically, host system 120 can access multiple memory subsystems via the same communication connection, multiple separate communication connections, and / or combinations of communication connections.
[0031] Memory devices 130 and 140 may comprise any combination of different types of non-volatile memory devices and / or volatile memory devices. Volatile memory devices (e.g., memory device 140) may be, but are not limited to, random access memory (RAM), such as dynamic random access memory (DRAM) and synchronous dynamic random access memory (SDRAM).
[0032] Some examples of non-volatile memory devices (e.g., memory device 130) include NAND flash memory and in-place write memory, such as three-dimensional cross-point (“3D cross-point”) memory devices, which are cross-point arrays of non-volatile memory cells. Cross-point arrays of non-volatile memory can perform bit storage based on changes in volume resistance in conjunction with stackable cross-grid data access arrays. Furthermore, compared to many flash-based memories, cross-point non-volatile memory can perform in-place write operations, where non-volatile memory cells can be programmed without pre-erasing them. NAND-type flash memory includes, for example, two-dimensional NAND (2DN NAND) and three-dimensional NAND (3D NAND).
[0033] Each of the memory devices 130 and 140 may include one or more arrays of memory cells. One type of memory cell, such as a single-level cell (SLC), may store one bit per cell. Other types of memory cells, such as multi-level cell (MLC), three-level cell (TLC), four-level cell (QLC), and five-level cell (PLC), may store multiple bits per cell. In some embodiments, each of the memory devices 130 may include one or more arrays of memory cells, such as SLC, MLC, TLC, QLC, or any combination thereof. In some embodiments, a particular memory device may include an SLC portion, an MLC portion, a TLC portion, a QLC portion, or a PLC portion of memory cells. The memory cells of the memory device 130 may be grouped into pages, which refer to logical units of the memory device used for storing data. For some types of memory (e.g., NAND), pages may be grouped to form blocks.
[0034] Although a non-volatile memory component, such as a three-dimensional cross-point array of non-volatile memory cells and NAND-type memories (e.g., 2D NAND, 3D NAND), is described, memory device 130 may be based on any other type of non-volatile memory or storage device, such as read-only memory (ROM), phase-change memory (PCM), auto-select memory, other chalcogenide-based memories, ferroelectric transistor random access memory (FeTRAM), ferroelectric random access memory (FeRAM), magnetic random access memory (MRAM), spin-transfer torque (STT)-MRAM, conductive bridged RAM (CBRAM), resistive random access memory (RRAM), oxide-based RRAM (OxRAM), NOR flash memory, and electrically erasable programmable read-only memory (EEPROM).
[0035] The memory subsystem controller 115 (or simply controller 115) can communicate with the memory device 130 to perform operations such as reading data, writing data, or erasing data at the memory device 130, and other such operations. The memory subsystem controller 115 may include hardware, such as one or more integrated circuits and / or discrete components, buffer memories, or combinations thereof. The hardware may include a digital circuit system with dedicated (i.e., hard-decoded) logic to perform the operations described herein. The memory subsystem controller 115 may be a microcontroller, dedicated logic circuitry (e.g., field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), etc.), or other suitable processor.
[0036] The memory subsystem controller 115 may be a processor 117 (e.g., a processing device) configured to execute instructions stored in local memory 119. In the illustrated example, the local memory 119 of the memory subsystem controller 115 includes embedded memory configured to store instructions for executing various processes, operations, logical flows, and routines that control the operation of the memory subsystem 110 (including handling communication between the memory subsystem 110 and the host system 120).
[0037] In some embodiments, local memory 119 may include memory registers storing memory pointers, retrieved data, etc. Local memory 119 may also include read-only memory (ROM) for storing microcode. Although Figure 1 The instance memory subsystem 110 in the present disclosure is shown to include a memory subsystem controller 115, but in another embodiment of the present disclosure, the memory subsystem 110 does not include a memory subsystem controller 115, but may rely on external control (e.g., provided by an external host or by a processor or controller separate from the memory subsystem).
[0038] Generally, the memory subsystem controller 115 can receive commands or operations from the host system 120 and can translate these commands or operations into instructions or appropriate commands to achieve the desired access to memory devices 130 and / or 140. The memory subsystem controller 115 may be responsible for other operations, such as wear leveling, garbage collection, error detection and error correction code (ECC) operations, encryption, caching, and address translation between logical addresses (e.g., logical block addresses, namespaces) and physical addresses (e.g., physical block addresses, physical media addresses) associated with memory device 130. The memory subsystem controller 115 may further include a host interface circuitry for communicating with the host system 120 via a physical host interface. The host interface circuitry can translate commands received from the host system into command instructions to access memory devices 130 and / or 140, and translate responses associated with memory devices 130 and / or 140 into information for the host system 120.
[0039] The memory subsystem 110 may also include additional circuitry or components not shown. In some embodiments, the memory subsystem 110 may include a cache memory or buffer (e.g., DRAM) and an address circuitry (e.g., row decoder and column decoder) that can receive addresses from the memory subsystem controller 115 and decode the addresses to access memory device 130 and / or memory device 140.
[0040] In some embodiments, memory device 130 includes a local media controller 135 that operates together with memory subsystem controller 115 to perform operations on one or more memory cells of memory device 130. An external controller (e.g., memory subsystem controller 115) may externally manage memory device 130 (e.g., perform media management operations on memory device 130). In some embodiments, memory device 130 is a managed memory device, which is a raw memory device combined with a local controller (e.g., local controller 135) for media management within the same memory device package. An example of a managed memory device is a managed NAND (MNAND) device.
[0041] Memory subsystem 110 may include a media management component 113 based on valid access counts. Although not shown in the accompanying drawings to avoid confusion... Figure 1As shown, but the media management component 113 based on valid access counts may include various circuitry to determine the corresponding health characteristics (e.g., access counts) of blocks of non-volatile memory cells, determine the valid corresponding health characteristics of blocks of non-volatile memory cells, and perform media management operations involving blocks of non-volatile memory cells (e.g., physical blocks of non-volatile memory cells) based on the valid corresponding health characteristics. For example, the media management component 113 based on valid access counts may perform media management operations involving blocks of non-volatile memory cells having valid corresponding health characteristics that conform to health criteria. In some embodiments, the media management component 113 based on valid access counts may include dedicated circuitry in the form of ASICs, FPGAs, state machines, and / or other logic circuitry systems that may allow the media management component 113 based on valid access counts to orchestrate and / or perform the operations described herein.
[0042] In some embodiments, the memory subsystem controller 115 includes at least a portion of a media management component 113 based on valid access counts. For example, the memory subsystem controller 115 may include a processor 117 (processing means) configured to execute instructions stored in local memory 119 for performing the operations described herein. In some embodiments, the media management component 113 based on valid access counts is part of the memory subsystem 110, an application, or an operating system.
[0043] In a non-limiting example, a device (e.g., computing system 100) may include a media management component 113 based on valid access counts. The media management component 113 based on valid access counts may reside on a memory subsystem 110. As used herein, the term "resides on" means something is physically located on a particular component. For example, "resides on memory subsystem 110" for the media management component 113 based on valid access counts means that the hardware circuitry including the media management component 113 based on valid access counts is physically located on the memory subsystem 110. Similarly, a memory component (e.g., memory device 130) may reside on a mobile computing device. The term "resides on" may be used interchangeably herein with other terms such as "deployed on" or "located on".
[0044] The media management component 113, based on valid access counts, can be configured to determine corresponding health characteristic values, such as the corresponding PEC counts of blocks of non-volatile memory cells. As used herein, a “PEC count” generally refers to the number of times a block (e.g., a NAND block) has been accessed (e.g., programmed and / or erased), which is an indicator of block wear. For example, among other possibilities, the PEC count of the corresponding block of a memory cell associated with a physical block and / or logical block can be determined. In some embodiments, the PEC count may be an incrementing value in a table such as a lookup table, or a value otherwise stored or accessible by the memory subsystem.
[0045] As described above, the memory component may be a memory die or memory package forming at least a portion of the memory device 130. In some embodiments, memory cell blocks may form one or more “superblocks.” As used herein, a “superblock” generally refers to a set of data blocks written in an interleaved manner across multiple memory dies. For example, in some embodiments, each of a plurality of interleaved NAND memory blocks may be deployed across multiple memory dies having multiple planes and / or pages associated therewith. In the context of this disclosure, the terms “superblock,” “block,” “memory cell block,” and / or “interleaved NAND memory block,” and variations thereof, are used interchangeably.
[0046] The media management component 113 based on valid access counts can be further configured to determine valid response health characteristics, such as valid response access counts of blocks of non-volatile memory cells. For example, the media management component 113 based on valid access counts can be further configured to determine valid response access counts based on the response access counts of blocks of non-volatile memory cells and at least one valid health factor, as detailed herein.
[0047] In some embodiments, at least one valid health factor includes a topology factor, a manufacturing process factor, a test factor, a runtime factor, and any combination thereof. Each given valid health factor may have a corresponding indicator. For example, each valid health factor may have a corresponding state of a flag, a bit pattern, a value stored in a bit, a value stored in a table or other data storage structure, and / or any other type of indicator. For example, a value (e.g., "1") may indicate that a block of non-volatile memory cells has not undergone a specific type of manufacturing process, while another value (e.g., a value greater than 1) may indicate that a block of non-volatile memory cells has undergone a specific type of manufacturing process. Similarly, a value (e.g., "1") may indicate that a block of non-volatile memory cells is not close to an edge or other location on the die, while another value (e.g., a value greater than 1) may indicate that a block of non-volatile memory cells is close to an edge or other location on the die.
[0048] In some embodiments, at least one effective health factor includes a manufacturing process factor. As used herein, a “manufacturing process factor” is an indicator of whether a block of non-volatile memory cells and / or a die containing a block of non-volatile memory cells has undergone a particular manufacturing process during the manufacture of the die and / or the apparatus containing the die. Examples of manufacturing processes include various soldering and / or bonding processes. Manufacturing processes may employ heat, chemicals, or both to attach or mount various components, such as dies, to circuit boards or other components.
[0049] In some instances, the soldering process may be an infrared (IR) reflow soldering process. IR reflow soldering processes can employ solder that is heated (allowing the solder to become viscous / liquid) and subsequently cooled to allow for the attachment of various components / circuit systems using solder. It is not desirable to be bound by theory, but it is believed that the heat and / or chemicals used in manufacturing processes (such as IR reflow soldering) can make a die or block of non-volatile memory cells that has undergone a manufacturing process more susceptible to errors during the operational life of a device containing such a die or block of non-volatile memory cells. Therefore, PEC counts may not accurately reflect the actual state of a die that has undergone a manufacturing process. Therefore, as detailed herein, media management based on valid access counts can interpret whether a die or block of non-volatile memory cells has undergone a manufacturing process. As mentioned, the status of a tag, a value stored in a bit, a value stored in a table or other data storage structure, and / or any other type of indicator can indicate whether a die or block of non-volatile memory cells has undergone a manufacturing process.
[0050] In some embodiments, a manufacturing process factor can indicate whether a block of non-volatile memory cells has undergone a specific manufacturing process at a given point in time. For example, a manufacturing process factor can indicate whether a block of non-volatile memory cells has undergone a specific manufacturing process after a memory operation involving the block of non-volatile memory cells has been performed. For example, a memory operation involving a block of non-volatile memory cells may include storing data in the block of non-volatile memory cells of the memory component before manufacturing or assembling a memory array containing memory components and / or before incorporating the memory components into a device and / or electronic device (e.g., a mobile computing device or other type of electronic device).
[0051] In such cases, the manufacturing process factor can indicate whether a block of non-volatile memory cells has undergone a specific manufacturing process after a memory operation involving the block of non-volatile memory cells has been performed. As mentioned, dies that have undergone manufacturing processes such as IR reflow soldering are more prone to errors, so the PEC count associated with the die may not accurately reflect the actual state of the die after the manufacturing process. Furthermore, it has been found that subjecting a block of non-volatile memory cells to a specific manufacturing process after performing memory operations (e.g., write, read, and / or erase operations associated with a block of non-volatile memory cells) may exacerbate the effects of the specific manufacturing process on the block of non-volatile memory cells and may have a lasting impact on the health characteristics of the block of non-volatile memory cells.
[0052] For example, compared to other blocks of non-volatile memory cells that have undergone manufacturing processes (e.g., soldering) that have not, but have not, undergone any manufacturing process (e.g., IR reflow soldering or other processes that may affect the quality and / or lifespan of the memory die and / or the blocks that form the memory die), blocks of non-volatile memory cells that have undergone manufacturing processes may experience increased data degradation / rate. Therefore, the manufacturing process factor value of a block of non-volatile memory cells that has undergone manufacturing processes can be greater than the manufacturing process factor value of a block of non-volatile memory cells that has not undergone any manufacturing processes. Similarly, the manufacturing process factor value of a block of non-volatile memory cells that has undergone a specific manufacturing process after a memory operation can be greater than the manufacturing process factor value of a block of non-volatile memory cells that has not undergone a specific manufacturing process after a memory operation.
[0053] In some embodiments, the effective health factor includes a topology factor. As used herein, a "topology factor" refers to an indicator of the physical location of a block of non-volatile memory cells in a device, the relative location of a die (containing a block of non-volatile memory cells) in a device, or both. In some instances, the value of a topology factor can indicate the relative location of a block of non-volatile memory cells within a die. For example, the value of a topology factor can indicate proximity or distance to an edge, midpoint, or other physical location on the die containing the block of non-volatile memory cells.
[0054] For example, the value of a topology factor can indicate the physical edge between a block of nonvolatile memory cells and the die containing that block. In such cases, a block of nonvolatile memory cells closer to the die edge may have a different topology factor value than another block of nonvolatile memory cells farther from the die edge. Having different topology factor values can explain the impact of topology differences on the health characteristics of the block of nonvolatile memory cells. For example, a block of nonvolatile memory cells closer to the die edge may experience increased data degradation / rate compared to other blocks of nonvolatile memory cells farther from the die edge. In this instance, the topology factor value of a block of nonvolatile memory cells closer to the die edge can be greater than the topology factor value of a block of nonvolatile memory cells farther from the die edge, and vice versa. In this way, among other possibilities, an increasing value (e.g., a value greater than "1") can indicate the degree of proximity to the die edge.
[0055] In some embodiments, the effective health factor may include a test factor. As used herein, a “test factor” is an indicator of the post-manufacturing performance of a block of non-volatile memory cells. The test factor can determine the basic performance characteristics of a block of non-volatile memory cells. For example, the value of the test factor can be initially determined after the die containing the block of non-volatile memory cells has been manufactured.
[0056] A test factor can indicate the reliability testing performed on a block of non-volatile memory cells, such as reliability testing performed on a single die. Examples of reliability testing include testing for various errors (e.g., read / write errors) and / or testing for corrupted or incorrect data values. In some instances, the test factor can indicate the specific reliability test performance of a block of non-volatile memory cells. Therefore, a block of non-volatile memory cells with low reliability test performance (e.g., more corrupted or incorrect data) may have a different test factor value than another block of non-volatile memory cells. Thus, the test factor value can explain the impact of differences in the test performance of blocks of non-volatile memory cells on the health characteristics of those blocks. For example, a block of non-volatile memory cells with low reliability test performance may experience increased data degradation / rate compared to other blocks with higher reliability test performance. Therefore, the test factor value of a block of non-volatile memory cells with low reliability test performance can be greater than the test factor value of a block of non-volatile memory cells with high reliability test performance, and vice versa.
[0057] Furthermore, as mentioned, some embodiments may include aspects of performing media management based on valid access counts to select a subset of dies from a plurality of dies in the memory device and / or memory subsystem. A subset can be selected to be included in the device. In this way, die manufacturing yield can be increased, for example, by using some dies with lower reliability characteristics (relative to other dies in the die subset) in the die subset. However, this selection of the die subset can ensure that the aggregate quality of the die subset (e.g., the average quality or sum of the qualities of the various dies) meets a standard. For example, a die subset can be selected where each die has a given performance such that the aggregate or average performance of the die subset meets (e.g., is greater than) a reliability testing standard. As used herein, a compliance standard can be a threshold. In this case, a compliance standard can refer to a value exceeding or falling below the threshold.
[0058] In some embodiments, at least one effective health factor may also include a runtime factor. As used herein, a "runtime factor" is an indicator of the runtime performance of a block of non-volatile memory cells contained in the memory array of an electronic device. For example, a runtime factor may indicate the reliability testing performed on a block of non-volatile memory cells during or after end-user operation of the electronic device. Thus, a runtime factor can determine the actual performance characteristics of a block of non-volatile memory cells. Runtime factors can vary and can be updated over the operational lifetime of a block of non-volatile memory cells. A block of non-volatile memory cells with low runtime reliability performance (e.g., with more corrupted or incorrect data) may have a different runtime factor value than another block of non-volatile memory cells. Runtime factor values can account for any impact on the health characteristic values of a block of non-volatile memory cells due to differences in the actual runtime test performance of the blocks. For example, a block of non-volatile memory cells with low reliability test performance during runtime operation may experience increased data degradation / rate compared to blocks of other non-volatile memory cells that may have higher reliability test performance during runtime operation. Therefore, the runtime factor value of a block of non-volatile memory cells with low reliability test performance during runtime operation can be greater than the runtime factor value of a block of non-volatile memory cells with high reliability test performance during runtime operation of an electronic device having a memory array containing non-volatile memory cells, and vice versa.
[0059] In some embodiments, the media management component 113 based on valid access counts may be further configured to perform media management operations on blocks of non-volatile memory cells within a block of non-volatile memory cells. For example, the media management component 113 based on valid access counts may perform media management operations on blocks of non-volatile memory cells based on valid response health characteristic values. For example, the media management component 113 based on valid access counts may perform media management operations on blocks of non-volatile memory cells having valid response access counts that conform to health criteria.
[0060] In other words, the media management component 113 based on valid access counts can be further configured to determine that blocks of non-volatile memory cells (e.g., physical blocks and / or logical blocks of non-volatile memory cells) exhibit health characteristics that conform to health criteria. As used herein, a "health characteristic" generally refers to a quantifiable attribute of a memory cell within a block of non-volatile memory cells, which corresponds to the quality, expected lifespan, and / or other attributes of the memory cell that can affect its ability to accurately store data. Non-limiting examples of health characteristics or health metrics may include the raw bit error rate (RBER) associated with a memory cell, wear leveling characteristics associated with a memory cell, and / or the total number of program erase cycles that the memory cell has undergone, etc. Therefore, various scans, such as background scans, RBER scans, read scans, and / or integrity scans, can be employed to determine a given health characteristic. For example, determining a health characteristic may include determining at least one of the PEC count, erase count, lifespan, or any combination thereof of a block of non-volatile memory cells.
[0061] The media management component 113 based on valid access counts can be further configured to selectively perform media management operations involving blocks of non-volatile memory cells. Media management operations can be selectively performed in response to determining that a block of non-volatile memory cells exhibits health characteristics that conform to health criteria. For example, in some embodiments, the media management component 113 based on valid access counts can be further configured to perform block refresh on data stored in blocks of non-volatile memory cells. As mentioned, performing block refresh can mitigate data degradation problems when used in conjunction with other aspects herein.
[0062] Figure 2A flowchart corresponding to media management based on valid access counts according to some embodiments of the present disclosure is shown. Flow 221 may be executed by processing logic, which may include hardware (e.g., processing device, circuit system, dedicated logic, programmable logic, microcode, device hardware, integrated circuit, etc.), software (e.g., instructions that run or execute on the processing device), or a combination thereof. In some embodiments, flow 221 is performed by… Figure 1 The media management operation component 113, based on valid access counts, is executed. Although shown in a specific order or sequence, the order of processes may be modified unless otherwise specified. Therefore, it should be understood that the illustrated embodiments are merely examples, and the illustrated processes may be executed in different orders, and some processes may be executed in parallel. Furthermore, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0063] In operation 222, health characteristic values of one or more blocks of non-volatile memory cells can be determined. For example, a corresponding access count, such as a corresponding PEC count of a block of non-volatile memory cells, can be determined. For example, among other possibilities, a PEC count of a corresponding block of NAND memory cells can be determined. In some embodiments, the PEC count or other health characteristic value may be a value written to and / or stored in a data structure such as a table (e.g., a lookup table), or otherwise written to, stored, or otherwise made accessible to the memory subsystem, and may increment in response to the operations described herein. In some embodiments, this may be achieved through a media management component, such as... Figure 1 The media management component 113 shown determines the memory subsystem (e.g., as described herein) based on valid access counts. Figure 1 The operational characteristics of some or all components in the memory subsystem 110 shown.
[0064] In some embodiments, a corresponding access count for a block of non-volatile memory cells can be determined. Examples of access counts include the total number of read operations, the total number of write operations, the total number of erase operations, the PEC count, or any combination thereof. The corresponding access count can vary over the lifetime of the device (e.g., a memory subsystem) containing the blocks of non-volatile memory cells. For example, the corresponding PEC count value can be stored in a table or other data structure that can increment in response to a programmed erase cycle. Each block of non-volatile memory cells can have a corresponding access count, such as a corresponding PEC count associated with it. For example, a physical block of non-volatile memory cells with a corresponding physical address can each have a corresponding access count.
[0065] In operation 224, valid health factors can be determined. For example, as detailed herein, topology factors, manufacturing process factors, testing factors, runtime factors, and any combination thereof can be determined. In operation 226, the corresponding health characteristic value (e.g., the corresponding access count) can be modified based on at least one valid health factor to determine the valid corresponding health characteristic value (e.g., the valid corresponding access count) of a block of non-volatile memory cells.
[0066] In some embodiments, the effective health factor can have a value greater than 1. In such cases, modifying the corresponding health characteristic value (e.g., represented by "X") may involve multiplying the corresponding health characteristic value by the effective health factor (e.g., the value of the test factor is "1.5") to determine the resulting effective corresponding health characteristic value (e.g., equal to 1.5*X). Therefore, a determined health characteristic value, such as a corresponding access count (e.g., PEC count), can be increased based on the value of at least one effective health factor (e.g., a manufacturing process factor, etc.) to determine the effective health characteristic value. While the above description pertains to individual effective health factors, the total number of effective health factors can be increased (e.g., 2, 3, etc.), and in such cases, the corresponding access count can be modified by (e.g., multiplying by) each effective health factor.
[0067] In operation 228, media management operations can be performed on blocks of non-volatile memory cells. For example, media management operations can be performed on blocks of non-volatile memory cells that have valid response health characteristic values (e.g., valid response access counts) that meet health criteria. For example, in some embodiments, among other possibilities, media management operations may involve blocks of non-volatile memory cells that have the highest valid response access counts.
[0068] In some embodiments, media management operations can be performed on blocks of non-volatile memory cells that have corresponding health characteristic values (e.g., corresponding access counts) that do not conform to (e.g., are less than) health criteria, but the blocks have valid health characteristic values (e.g., valid corresponding access counts) that conform to (e.g., are greater than) health criteria. Therefore, when selecting blocks for media management operations, different underlying performance characteristics (e.g., different test factor values, different topology factor values, and / or different manufacturing process values) and / or different actual performance characteristics (e.g., different real-time factor values) can be explained compared to other methods, such as those that rely solely on determined PEC counts to select blocks for media management operations.
[0069] Figure 3A diagram is shown corresponding to a process 331 for media management based on valid access counts according to some embodiments of the present disclosure. Process 331 may be executed by processing logic, which may include hardware (e.g., processing device, circuit system, dedicated logic, programmable logic, microcode, device hardware, integrated circuit, etc.), software (e.g., instructions that run or execute on the processing device), or a combination thereof. In some embodiments, process 331 is... Figure 1 The media management operation component 113, based on valid access counts, is executed. Although shown in a specific order or sequence, the order of processes may be modified unless otherwise specified. Therefore, it should be understood that the illustrated embodiments are merely examples, and the illustrated processes may be executed in different orders, and some processes may be executed in parallel. Furthermore, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0070] In operation 332, the corresponding access counts for blocks of non-volatile memory cells can be determined. As described herein, access counts may include corresponding health characteristic values. For example, at least one of the following can be determined: a PEC count, an erase count, a lifetime, or any combination thereof for a corresponding block of non-volatile memory cells. In some embodiments, this can be achieved through a media management component, such as... Figure 1 The media management component 113 shown determines the memory subsystem (e.g., as described herein) based on valid access counts. Figure 1 The operational characteristics of some or all components in the memory subsystem 110 shown.
[0071] In operation 334, at least one valid health factor can be determined, as detailed herein. In operation 336, a valid corresponding health characteristic value, such as a valid corresponding access count, can be determined. For example, a valid health characteristic can be determined by modifying the corresponding health characteristic value (e.g., the corresponding access count). The corresponding health characteristic value can be modified based on the valid health factor. For example, a determined health characteristic value, such as a corresponding access count (e.g., a corresponding PEC count), can be increased based on the value of at least one valid health factor (e.g., a manufacturing process factor) to determine a valid corresponding health characteristic value. That is, in various embodiments, the valid corresponding health characteristic value can be greater than the initially determined corresponding health characteristic value. For example, the valid PEC count can be greater than the corresponding determined PEC count. Therefore, media management based on valid access counts can interpret differences in physical block location, performance characteristics, and / or whether a block has undergone memory operations after undergoing a processing step (e.g., an IR soldering operation), rather than relying solely on a given determined PEC count (e.g., an incrementally increasing PEC count) or random block selection to perform media management operations.
[0072] In operation 338, a valid response health characteristic value can be compared with a health criterion to allow determination of whether the valid response health characteristic value meets (e.g., is greater than or less than) the health criterion. For example, a valid response access count, such as a valid response PEC count, can be compared with a PEC criterion to allow determination of whether the valid response PEC count meets the PEC criterion. As used herein, "PEC criterion" generally refers to the total number of a particular programmable erase cycles. In some embodiments, the PEC criterion can be equal to 500, 1000, 1500, 2000, 3000, 4000, 5000, 10,000, 50,000, or 100,000 programmable erase cycles, and other possible values.
[0073] If it is determined that the health characteristic value does not meet the health criteria, process 331 can return to operation 332. However, if it is determined that the health characteristic value meets the health criteria, process 331 can proceed to operation 340. In operation 340, media management operations can be performed. For example, based on the health characteristic value, such as a valid corresponding PEC count that meets the health criteria (e.g., the PEC criterion), media management operations can be performed on blocks of non-volatile memory cells. The non-volatile memory cells can be NAND memory cells, NOR memory cells, or both. After performing the media management operations, process 331 can return to operation 332.
[0074] Figure 4 This is a flowchart corresponding to a method 450 for media management based on valid access counts, according to some embodiments of the present disclosure. Method 450 may be executed by processing logic, which may include hardware (e.g., processing device, circuit system, dedicated logic, programmable logic, microcode, device hardware, integrated circuit, etc.), software (e.g., instructions running or executed on the processing device), or a combination thereof. In some embodiments, method 450 is performed by… Figure 1 The media management operation component 113, based on valid access counts, is executed. Although shown in a specific order or sequence, the order of processes may be modified unless otherwise specified. Therefore, it should be understood that the illustrated embodiments are merely examples, and the illustrated processes may be executed in different orders, and some processes may be executed in parallel. Furthermore, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0075] In operation 452, health characteristics (e.g., PEC counts) or other health characteristics of blocks of non-volatile memory cells can be determined. For example, a corresponding health characteristic, such as a corresponding PEC count, can be determined for each physical block, each logical block, or both in the memory subsystem. In some embodiments, the memory subsystem may be similar to... Figure 1 The memory subsystem 110 is shown. As described above, the memory components may be memory dies or memory packages, which are coupled to each other to create a memory cell array, such as a three-dimensional stackable cross-mesh memory cell array used by the memory subsystem to store data.
[0076] Method 450 may include determining valid access counts after a user uses an electronic device comprising blocks of non-volatile memory cells, determining valid access counts before shipping the electronic device, or both. As used herein, the phrase "user use" of an electronic device refers to an operation performed by an end user, such as host access to blocks of non-volatile memory cells in the electronic device. As used herein, the phrase "before shipping" refers to performing manufacturing or other testing before shipping the electronic device to the point of sale and / or end user. Valid health factor values may be determined, and in some cases, these valid health factor values may be updated throughout the entire lifecycle of the electronic device. For example, test factor values, manufacturing process factor values, and / or topology factor values may be determined before shipping an electronic device comprising blocks of non-volatile memory cells, while, among other possibilities, health factor values may be determined after a user uses the electronic device.
[0077] In some embodiments, corresponding health characteristics, such as corresponding access counts, can be modified by an amount conforming to (e.g., less than or greater than) a modification criterion. For example, a modification criterion could be a percentage of the broadcast and / or design capabilities of the array and / or electronics. For instance, a given array may have broadcast and / or design capabilities, for example, intended to operate at least in a given manner until a quantitative (e.g., 100,000) PEC cycle occurs. Therefore, any modification to the corresponding access counts of non-volatile memory blocks (and any subsequent media management operations performed on blocks of non-volatile memory cells) can be limited to ensure the array remains within a given amount of broadcast and / or design capabilities. For example, any modification to the corresponding access counts of non-volatile memory blocks prior to shipment (e.g., before the end user uses the electronics) can be constrained by using a modification criterion. Modification criteria can be within a given percentage range of broadcast and / or design values. Examples of suitable modification criterion values include various percentages, such as 3%, 5%, 10%, 15%, 20%, 25%, or 50%, and other possible values.
[0078] In operation 454, a valid corresponding health characteristic value for a block of non-volatile memory cells can be determined. As mentioned, the valid corresponding health characteristic value can be determined based on the corresponding health characteristic value and at least one valid health factor of the block of non-volatile memory cells. The valid corresponding health characteristic value for a block of non-volatile memory cells can be determined in response to the determination of the PEC count or other health characteristic value of the block of non-volatile memory cells, as in 452. However, in some instances, the valid corresponding access count for a block of non-volatile memory cells can be determined in response to the determination of at least one valid health factor. Therefore, in some embodiments, the valid corresponding health characteristic value for a block of non-volatile memory cells can be determined in response to the determination (or change) of the corresponding health characteristic value, the determination (or change) of the valid health factor value, or both.
[0079] Compared to other methods, such as those that rely solely on PEC counts, effective response health characteristics, such as effective response PEC counts, can accurately represent the level of increase in the lifetime of a block of non-volatile memory cells over a period of time. Accurately representing the level of increase in the lifetime of a block of non-volatile memory cells, compared to other memory management methods that do not employ effective access counts, allows for the selective and accurate application of memory management operations (e.g., those involving block refresh) on blocks of non-volatile memory cells. Due to the higher effective response health characteristics, data degradation problems may be more easily encountered, thereby improving the performance of the memory subsystem (e.g., mitigating read failures and / or returning corrupt or incorrect data values).
[0080] In operation 456, method 450 may include performing media management operations involving blocks of non-volatile memory cells having valid corresponding access counts that conform to a health criterion. For example, as detailed herein, in operation 454, a valid corresponding health characteristic value may be determined, and subsequent determinations may be made to determine whether the valid corresponding health characteristic value is greater than a health criterion. For example, a media management operation may be performed on a block of non-volatile memory cells based on the fact that the PEC count of a block of non-volatile memory cells (e.g., a block of NAND memory cells) is greater than the corresponding health criterion (PEC criterion).
[0081] In some embodiments, a block refresh may be performed on a block of non-volatile memory cells in response to determining that the block has a valid corresponding health characteristic value that conforms to health criteria. As used herein, a block refresh typically refers to copying data from one part of a NAND device to another, such as copying data written to one block of memory cells to another block of memory cells. In some embodiments, a block refresh may be part of media management operations, such as garbage collection operations, static and / or dynamic wear leveling, etc. Performing a block refresh on blocks of non-volatile memory cells determined to have valid corresponding health characteristic values that conform to health criteria can mitigate the aforementioned data degradation problem compared to other media management methods that do not employ valid access count-based methods.
[0082] Figure 5 This is a block diagram of an example computer system 500 operable according to embodiments of the present disclosure. For example, Figure 5 An example machine is shown as a computer system 500, within which a set of instructions for causing the machine to perform any one or more of the methods discussed herein is executable. In some embodiments, the computer system 500 may correspond to including, coupled to, or utilizing a memory subsystem (e.g., Figure 1 The host system (e.g., memory subsystem 110) Figure 1 The host system 120, or a system that can be used to perform controller operations (e.g., run an operating system to perform operations related to...). Figure 1 (Operation corresponding to the media management component 113 based on valid access counts). In alternative embodiments, the machine may be connected (e.g., networked) to other machines in a LAN, intranet, extranet, and / or the Internet. The machine may operate as a peer machine in a peer-to-peer (or distributed) network environment or as a server or client machine in a cloud computing infrastructure or environment, with the capabilities of a server or client machine in a client-server network environment.
[0083] The machine may be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, network device, server, network router, switch, or bridge, or any machine capable of executing a set of instructions (sequentially or otherwise) specifying actions to be performed by the machine. Furthermore, although a single machine is shown, it should also be understood that the term "machine" includes any set of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any or more of the methods discussed herein.
[0084] The example computer system 500 includes a processing device 502, a main memory 504 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 506 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage system 518 that communicates with each other via a bus 503.
[0085] Processing device 502 represents one or more general-purpose processing devices, such as microprocessors, central processing units, etc. More specifically, the processing device may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor implementing other instruction sets, or a combination of instruction sets. Processing device 502 may also be one or more special-purpose processing devices, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, etc. Processing device 502 is configured to execute instructions 526 for performing the operations and steps discussed herein. Computer system 500 may further include a network interface device 508 for communication via network 511.
[0086] Data storage system 518 may include machine-readable storage medium 524 (also referred to as computer-readable medium) on which one or more sets of instructions 526 or software embodying any one or more of the methods or functions described herein are stored. Instructions 526 may also reside wholly or at least partially in main memory 504 and / or processing device 502 during execution by computer system 500, which also constitute machine-readable storage medium. Machine-readable storage medium 524, data storage system 518, and / or main memory 504 may correspond to... Figure 1 The memory subsystem 110.
[0087] In one embodiment, instruction 526 includes implementing a media management component (e.g., Figure 1 The machine-readable storage medium 524 is shown as a single medium in the exemplary embodiment, but the term "machine-readable storage medium" should be considered to include a single medium or multiple media storing one or more sets of instructions. The term "machine-readable storage medium" should also be considered to include any medium capable of storing or encoding a set of instructions executable by a machine and causing the machine to perform any one or more of the methods of this disclosure. The term "machine-readable storage medium" may include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0088] Some parts of the previously described algorithms and symbolic representations of operations on data bits within computer memory have been presented. Those skilled in the art of data processing use these algorithms to describe and represent the main points of their work in the most effective way to communicate them to others skilled in the art. An algorithm herein is generally considered to be a self-consistent sequence of operations that produce a desired result. These operations are those requiring physical manipulation of physical quantities. These quantities are typically, but not necessarily, in the form of electrical or magnetic signals that can be stored, combined, compared, and otherwise manipulated. Sometimes, primarily for general reasons, it has proven convenient to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, etc.
[0089] However, it should be remembered that all these and similar terms should be associated with appropriate physical quantities and are merely convenient notations applied to those quantities. This disclosure can refer to the actions and processes of a computer system or similar electronic computing device that manipulate and transform data represented as physical (electronic) quantities within the registers and memories of a computer system into other data similarly represented as physical quantities within the computer system's memory or registers or other such information storage systems.
[0090] This disclosure also relates to apparatus for performing the operations described herein. Such apparatus may be specifically constructed for a desired purpose, or may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in a computer. Such computer programs may be stored in computer-readable storage media, such as, but not limited to, any type of disk, including floppy disks, optical disks, CD-ROMs and magneto-optical disks, read-only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic cards or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
[0091] The algorithms and displays presented herein are not inherently related to any particular computer or other device. Various general-purpose systems can be used with the programs taught herein, or it may prove convenient to construct more specialized devices to perform the methods described herein. Structures for these various systems will be presented as described below. Furthermore, this disclosure is described without reference to any particular programming language. It will be understood that the teachings of this disclosure as described herein can be implemented using a variety of programming languages.
[0092] This disclosure can be provided as a computer program product or software, which may include a machine-readable medium having instructions stored thereon that can be used to program a computer system (or other electronic device) to perform processes according to this disclosure. The machine-readable medium includes any mechanism for storing information in a machine-readable (e.g., computer-readable) form. In some embodiments, the machine-readable (e.g., computer-readable) medium includes machine-readable (e.g., computer-readable) storage media, such as read-only memory (“ROM”), random access memory (“RAM”), disk storage media, optical storage media, flash memory devices, etc.
[0093] In the foregoing description, embodiments of this disclosure have been described with reference to specific examples thereof. It will be apparent that various modifications can be made to this disclosure without departing from the broader spirit and scope of the embodiments set forth in the appended claims. Therefore, the description and drawings should be viewed in an illustrative rather than restrictive sense.
Claims
1. A method (450) for media management based on effective access counts, comprising: determining a respective program-erase cycle (PEC) count for a block of non-volatile memory cells, wherein the block of non-volatile memory cells is NAND memory cells, or NOR memory cells, or both; determining at least one effective health factor for each of the blocks of non-volatile memory cells, wherein the at least one effective health factor includes a topological factor indicating a distance from a block of non-volatile memory cells to a die edge, and a manufacturing process factor indicating whether the block of non-volatile memory cells has undergone a soldering process; in response to the determination of the topological factor and the manufacturing process factor for each of the blocks of non-volatile memory cells, modifying the respective PEC count to yield an effective respective PEC count for the block of non-volatile memory cells; and based on the effective respective PEC counts for the blocks of non-volatile memory cells, performing a media management operation involving non-volatile memory cells of the blocks of non-volatile memory cells having the effective respective PEC counts that meet a health criterion.
2. The method of claim 1, wherein the manufacturing process factor indicates whether the block of non-volatile memory cells has undergone the soldering process after performing a memory operation associated with the block of non-volatile memory cells.
3. The method of claim 2, wherein the PEC count corresponds to a total amount of write operations, a total amount of read operations, a total amount of erase operations, a total amount of program-erase cycles, or any combination thereof.
4. The method of claim 2, wherein the soldering process further comprises an infrared (IR) reflow soldering process.
5. The method of claim 1, wherein a state of a flag, a bit pattern, a value stored in a bit, a value stored in a table indicates an increased effective respective PEC count for the block of non-volatile memory cells after the block of non-volatile memory cells has undergone the soldering process.
6. The method of claim 1, wherein the topological factor indicates a physical location of the block of non-volatile memory cells relative to the die edge.
7. The method of claim 6, wherein a value of the topological factor indicates the distance from the block of non-volatile memory cells to a physical edge of a die containing the block of non-volatile memory cells.
8. The method of claim 1, wherein the effective health factor further includes a test factor, a runtime factor, or both.
9. An apparatus for media management based on effective access counts, comprising: a media management component (113) for effective access counts configured to: determine respective program-erase cycle (PEC) counts for a plurality of blocks of non-volatile memory cells, wherein the plurality of blocks of non-volatile memory cells are NAND memory cells, or NOR memory cells, or both; determine at least one effective health factor for each of the plurality of blocks of non-volatile memory cells, wherein the at least one effective health factor includes a topological factor indicating a distance from a block of non-volatile memory cells to a die edge, and a manufacturing process factor indicating whether the block of non-volatile memory cells has undergone a soldering process; determining at least one effective health factor for each of the plurality of blocks of non-volatile memory cells, wherein the at least one effective health factor includes a topography factor indicative of a distance from a block of non-volatile memory cells to a die edge, and a manufacturing process factor indicative of whether the block of the plurality of non-volatile memory cells has undergone a soldering process prior to shipment of an electronic device including the plurality of blocks of non-volatile memory cells; in response to the determination of the topography factor and the manufacturing process factor for each of the plurality of blocks of non-volatile memory cells, modifying the respective PEC count to yield an effective respective PEC count for the plurality of blocks of non-volatile memory cells; and based on the effective respective PEC count for the block of memory cells, performing a media management operation involving the block of non-volatile memory cells having the effective respective PEC count that meets a health criterion.
10. The apparatus of claim 9, wherein the at least one effective health factor further includes the topography factor, a test factor, a runtime factor, or any combination thereof.
11. The apparatus of claim 9, wherein the PEC count corresponds to a total amount of write operations, a total amount of read operations, a total amount of erase operations, a total amount of program-erase cycles, or any combination thereof.
12. The apparatus of claim 9, further comprising determining the effective respective PEC count after an end user uses an electronic device including the plurality of blocks of non-volatile memory cells.
13. The apparatus of claim 9, further comprising determining the effective respective PEC count prior to the shipment of the electronic device including the plurality of blocks of non-volatile memory cells.
14. The apparatus of claim 13, wherein the effective access count media management component is configured to modify the respective PEC count based on a modification criterion.
15. A system (100) for media management based on effective access counts, comprising: a plurality of memory components (130) arranged to form a stackable cross- grid array including a plurality of blocks of non-volatile memory cells, wherein the plurality of blocks of non-volatile memory cells are NAND memory cells, or NOR memory cells, or both; and a processing device (502) coupled to the plurality of memory components, the processing device performing operations including: determining respective program-erase cycle (PEC) counts for the plurality of blocks of non-volatile memory cells; determining at least one effective health factor for each of the plurality of blocks of non-volatile memory cells, wherein the at least one effective health factor further includes a topography factor, and a manufacturing process factor indicative of whether a block of non-volatile memory cells has undergone a soldering process prior to shipment of the system; in response to the determination of the topography factor and the manufacturing process factor for each of the plurality of blocks of non-volatile memory cells, modifying the respective PEC count of the plurality of blocks to yield an effective respective PEC count; and based on the effective respective PEC counts of the plurality of blocks, performing a media management operation involving the blocks of non-volatile memory cells having the effective PEC counts that meet the operational health criteria.
16. The system of claim 15, wherein the plurality of memory components reside on a mobile computing device.
17. The system of claim 15, wherein the effective respective PEC count represents a level of increased age of the plurality of blocks of non-volatile memory cells over a period of time.
18. The system of claim 15, wherein the topography factor indicates a distance from the block of non-volatile memory cells to a physical edge of a die containing the block of non-volatile memory cells.
Citation Information
Patent Citations
Storage System And Managing Method Thereof
CN106205671A
System and method for refreshing data in memory device
CN106663046A
Tag-based wear leveling for a data storage device
US20160170682A1