Patent ID: 12242734

DETAILED DESCRIPTION

Aspects of the present disclosure are directed to memory pattern management for improved data retention in memory devices. A memory sub-system can include one or more storage devices, memory modules, or a combination of storage devices and memory modules. Examples of storage devices and memory modules are described below in conjunction withFIGS.1A-1B. In general, a host system can utilize a memory sub-system that includes one or more memory components, such as memory devices that store data. The host system can provide data to be stored at the memory sub-system and can request data to be retrieved from the memory sub-system.

A memory sub-system can utilize one or more memory devices, including any combination of the different types of non-volatile memory devices and/or volatile memory devices, to store data (e.g., provided by a host system). In some embodiments, non-volatile memory devices can be provided by negative-and (NAND) type flash memory devices. Other examples of non-volatile memory devices are described below in conjunction withFIGS.1A-1B.

A non-volatile memory device is a package of one or more dice. Each die can include one or more planes (i.e., a portion of the memory device that includes multiple memory cells). Some memory devices can include two or more planes. For some types of non-volatile memory devices (e.g., NAND devices), each plane includes a set of blocks. A “block” can refer to a unit of the memory device used to store data and can include a group of memory cells. Each block can include a set of contiguous or non-contiguous pages. Each page includes a set of memory cells. An example of a “block” is an “erasable block,” which is the minimal erasable unit of memory, while “page” is a minimal writable unit of memory.

A memory cell is an electronic circuit that stores information. A memory cell can include a charge storage node that holds an electric charge and a transistor that acts as a switch controlling access to the charge storage node. The memory cells of a memory device can be arranged in a two-dimensional grid (i.e., in an array of columns and rows) or a three-dimensional grid (i.e., with multiple vertically-stacked layers).

An electric charge can be selectively placed on the memory cells in a memory device (e.g., by applying a programming voltage), which in turn, can affect a threshold voltage for each memory cell. Multiple logical states (or programming levels) can be established into which a memory cell can be placed (i.e., by precisely controlling the amount of electric charged stored by the memory cell). The particular logical state of a memory cell can be determined by comparing the measured threshold voltage exhibited by the memory cell (e.g., after it has been programmed) to one or more reference voltage levels (i.e., that separate the various logical states). In this way, the memory cell can carry one or more bits of information. A triple level cell (TLC), for example, may be placed into eight different logical states (Level 0 to Level 8, or L0 to L8) each representing 3 bits of data (“111”, “110”, “101”, “100”, “011”, “010”, “001”, “000” respectively). The lowest logical state (e.g., L0) is frequently referred to as an “erase” state.

In order to permit discrimination between logical states, a minimum “read window” must be maintained between the threshold voltage distributions of each logical state. The aggregate total of all read windows is referred to as a “read window budget” of the memory device. The read window budget of a memory device, however, can change over its lifetime, including throughout a production process involving the memory device. For example, as part of a production process, a memory device may be integrated within a storage device (e.g., a Universal Flash Storage (UFS) drive, an embedded Multi-Media Controller (eMMC) drive, etc.), which in turn, may be integrated into a computing system (e.g., a mobile phone). As part of the production process, the memory cells of a memory device may be subjected to high temperatures (e.g., during an infrared (IR) reflow process in which the memory device is integrated into a storage device, or in which the storage device is integrated into a computing system) and/or long periods of storage (e.g., before the memory device is integrated into a storage device, or before the storage device is integrated into a computing system), which may result in degradation to the memory cells with a concomitant reduction in the read window budget of the memory device.

Memory devices may be designed with regard to this reduced read window budget. Memory device specifications, for example, may specify performance characteristics that a memory device must possess at the end of the production process (i.e., the “beginning of life” of the computing system into which it may be integrated). A memory device specification, for example, may specify a beginning of life data retention requirement for the memory device under which data must be reliably stored (e.g., 3 years at 40 degrees Celsius without any resulting bit errors). This data retention requirement, in turn, imposes a minimum read window budget requirement for the memory device.

The read window budget of a memory device, however, places a constraint on other aspects of memory device performance. The read window budget, for example, dictates the precision with which a charge is to be placed on a memory cell (i.e., in terms of a threshold voltage distribution width), for example, through a programming or erase operation. A larger read window budget, for example, may lead to narrower threshold voltage distributions, whereas a smaller read window budget permits wider threshold voltage distributions. But the more precise an operation must be, the more time is required to perform the operation. A tradeoff, thus, must be made between aggressive programming and erase times and smaller read window budgets (and improved data retention properties).

Aspects of the present disclosure address the above and other deficiencies by placing a protective data pattern onto a memory device and maintaining the protective data pattern throughout the production process. The protective data pattern may place the memory cells into a state that is close to their neutral threshold voltage, thereby minimizing the amount of stress placed on the memory cells. Placing and maintaining the protective data pattern, thus, operates to minimize the amount of degradation experienced by the memory cells of the memory device. In some embodiments, memory cells of a memory device are placed and maintained in a TLC Level 2 state, where the charge carried by the cell is similar to a Level 2 state of a TLC memory cell. Memory cells that are placed and maintained in the TLC Level 2 state undergo less degradation during the production process (i.e., when subjected to high temperatures and/or long periods of storage) than they would otherwise (e.g., if maintained in some other state, such as a Level 0 state). Complicating matters, however, is the fact that production processes can involve a number of testing and qualification procedures, which may alter the state of a memory cell. Embodiments of the present disclosure, thus, look to maintain a Solid Level 2 (or SL2) pattern (i.e., where all (or nearly all) memory cells are in a TLC Level 2 state) throughout the production process, particularly before the memory cells experience long periods of storage and/or exposure to high temperatures. By reducing the amount of degradation experienced by the memory cell, the post-production read window budget of a memory device can be significantly improved. This improvement to the read window budget may allow for more aggressive programming and erase times and/or improved data retention characteristics, as well as other performance improvements that can be derived from an improved read window budget.

FIG.1illustrates an example computing system100that includes a memory sub-system110in accordance with some embodiments of the present disclosure. The memory sub-system110can include media, such as one or more volatile memory devices (e.g., memory device140), one or more non-volatile memory devices (e.g., memory device130), or a combination of such.

A memory sub-system110can include a storage device, a memory module, or a combination of a storage device and memory module. Examples of a storage device include a solid-state drive (SSD), a flash drive, a universal serial bus (USB) flash drive, an embedded Multi-Media Controller (eMMC) drive, a Universal Flash Storage (UFS) drive, a secure digital (SD) card, and a hard disk drive (HDD). Examples of memory modules include a dual in-line memory module (DIMM), a small outline DIMM (SO-DIMM), and various types of non-volatile dual in-line memory modules (NVDIMMs).

The computing system100can be a computing device such as a desktop computer, laptop computer, network server, mobile device, a vehicle (e.g., airplane, drone, train, automobile, or other conveyance), Internet of Things (IoT) enabled device, embedded computer (e.g., one included in a vehicle, industrial equipment, or a networked commercial device), or such computing device that includes memory and a processing device.

The computing system100can include a host system120that is coupled to one or more memory sub-systems110. In some embodiments, the host system120is coupled to different types of memory sub-systems110.FIG.1illustrates one example of a host system120coupled to one memory sub-system110. As used herein, “coupled to” or “coupled with” generally refers to a connection between components, which can be an indirect communicative connection or direct communicative connection (e.g., without intervening components), whether wired or wireless, including connections such as electrical, optical, magnetic, etc.

The host system120can include a processor chipset and a software stack executed by the processor chipset. The processor chipset can include one or more cores, one or more caches, a memory controller (e.g., NVDIMM controller), and a storage protocol controller (e.g., PCIe controller, SATA controller). The host system120uses the memory sub-system110, for example, to write data to the memory sub-system110and read data from the memory sub-system110.

The host system120can be coupled to the memory sub-system110via a physical host interface. Examples of a physical host interface include, but are not limited to, a serial advanced technology attachment (SATA) interface, a peripheral component interconnect express (PCIe) interface, universal serial bus (USB) interface, Fibre Channel, Serial Attached SCSI (SAS), a double data rate (DDR) memory bus, Small Computer System Interface (SCSI), a dual in-line memory module (DIMM) interface (e.g., DIMM socket interface that supports Double Data Rate (DDR)), etc. The physical host interface can be used to transmit data between the host system120and the memory sub-system110. The host system120can further utilize an NVM Express (NVMe) interface to access components (e.g., memory devices130) when the memory sub-system110is coupled with the host system120by the physical host interface (e.g., PCIe bus). The physical host interface can provide an interface for passing control, address, data, and other signals between the memory sub-system110and the host system120.FIG.1illustrates a memory sub-system110as an example. In general, the host system120can access multiple memory sub-systems via a same communication connection, multiple separate communication connections, and/or a combination of communication connections.

The memory devices130,140can include any combination of the different types of non-volatile memory devices and/or volatile memory devices. The volatile memory devices (e.g., memory device140) can be, but are not limited to, random access memory (RAM), such as dynamic random access memory (DRAM) and synchronous dynamic random access memory (SDRAM).

Some examples of non-volatile memory devices (e.g., memory device130) include negative-and (NAND) type flash memory and write-in-place memory, such as a three-dimensional cross-point (“3D cross-point”) memory device, which is a cross-point array of non-volatile memory cells. A cross-point array of non-volatile memory cells can perform bit storage based on a change of bulk resistance, in conjunction with a stackable cross-gridded data access array. Additionally, in contrast to many flash-based memories, cross-point non-volatile memory can perform a write in-place operation, where a non-volatile memory cell can be programmed without the non-volatile memory cell being previously erased. NAND type flash memory includes, for example, two-dimensional NAND (2D NAND) and three-dimensional NAND (3D NAND).

Each of the memory devices130can include one or more arrays of memory cells137. One type of memory cell, for example, single level cells (SLC) can store one bit per cell. Other types of memory cells, such as multi-level cells (MLCs), triple level cells (TLCs), quad-level cells (QLCs), and penta-level cells (PLCs) can store multiple bits per cell. In some embodiments, each of the memory devices130can include one or more arrays of memory cells such as SLCs, MLCs, TLCs, QLCs, PLCs or any combination of such. In some embodiments, a particular memory device can include an SLC portion, and an MLC portion, a TLC portion, a QLC portion, or a PLC portion of memory cells. The memory cells of the memory devices130can be grouped as pages that can refer to a logical unit of the memory device used to store data. With some types of memory (e.g., NAND), pages can be grouped to form blocks. Some types of memory, such as 3D cross-point, can group pages across dice and channels to form management units (MUs).

Although non-volatile memory components such as a 3D cross-point array of non-volatile memory cells and NAND type flash memory (e.g., 2D NAND, 3D NAND) are described, the memory device130can be based on any other type of non-volatile memory, such as read-only memory (ROM), phase change memory (PCM), self-selecting memory, other chalcogenide based memories, ferroelectric transistor random-access memory (FeTRAM), ferroelectric random access memory (FeRAM), magneto random access memory (MRAM), Spin Transfer Torque (STT)-MRAM, conductive bridging RAM (CBRAM), resistive random access memory (RRAM), oxide based RRAM (OxRAM), negative-or (NOR) flash memory, or electrically erasable programmable read-only memory (EEPROM).

A memory sub-system controller115(“controller”) can communicate with the memory devices130to perform operations such as reading data, writing data, or erasing data at the memory devices130and other such operations. The memory sub-system controller115can include hardware such as one or more integrated circuits and/or discrete components, a buffer memory, or a combination thereof. The hardware can include a digital circuitry with dedicated (i.e., hard-coded) logic to perform the operations described herein. The memory sub-system controller115can be a microcontroller, special purpose logic circuitry (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or other suitable processor.

The memory sub-system controller115can include a processing device, which includes one or more processors (e.g., processor117), configured to execute instructions stored in a local memory119. In the illustrated example, the local memory119of the memory sub-system controller115includes an embedded memory configured to store instructions for performing various processes, operations, logic flows, and routines that control operation of the memory sub-system110, including handling communications between the memory sub-system110and the host system120.

In some embodiments, the local memory119can include memory registers storing memory pointers, fetched data, etc. The local memory119can also include read-only memory (ROM) for storing micro-code. While the example memory sub-system110inFIG.1has been illustrated as including the memory sub-system controller115, in another embodiment of the present disclosure, a memory sub-system110does not include a memory sub-system controller115, and can instead rely upon external control (e.g., provided by an external host, or by a processor or controller separate from the memory sub-system).

In general, the memory sub-system controller115can receive commands or operations from the host system120and can convert the commands or operations into instructions or appropriate commands to achieve the desired access to the memory devices130. The memory sub-system controller115can be responsible for other operations such as wear leveling operations, garbage collection operations, error detection and error-correcting code (ECC) operations, encryption operations, caching operations, and address translations between a logical address (e.g., a logical block address (LBA), namespace) and a physical address (e.g., physical MU address, physical block address) that are associated with the memory devices130. The memory sub-system controller115, for example, may employ a Flash Translation Layer (FTL) to translate logical addresses to corresponding physical memory addresses, which can be stored in one or more FTL mapping tables. In some instances, the FTL mapping table can be referred to as a logical-to-physical (L2P) mapping table storing L2P mapping information. The memory sub-system controller115can further include host interface circuitry to communicate with the host system120via the physical host interface. The host interface circuitry can convert the commands received from the host system into command instructions to access the memory devices130as well as convert responses associated with the memory devices130into information for the host system120.

The memory sub-system110can also include additional circuitry or components that are not illustrated. In some embodiments, the memory sub-system110can include a cache or buffer (e.g., DRAM) and address circuitry (e.g., a row decoder and a column decoder) that can receive an address from the memory sub-system controller115and decode the address to access the memory devices130.

In some embodiments, the memory devices130include local media controllers135that operate in conjunction with memory sub-system controller115to execute operations on one or more memory cells of the memory devices130. An external controller (e.g., memory sub-system controller115) can externally manage the memory device130(e.g., perform media management operations on the memory device130). In some embodiments, memory sub-system110is a managed memory device, which is a raw memory device130having control logic (e.g., local media controller135) on the die and a controller (e.g., memory sub-system controller115) for media management within the same memory device package. An example of a managed memory device is a managed NAND (MNAND) device.

The memory sub-system110can include a data pattern management component113that can be used to place and maintain a protective data pattern on memory device130(i.e., by programming and/or erasing memory cells137). The protective data pattern may place the memory cells into a state that is close to their neutral threshold voltage, such that the amount of stress placed on the memory cells, and consequently damage experienced by the memory cells, is minimized. In some embodiments, for example, the data pattern management component113can be used to place and maintain a Solid Level 2 (SL2) pattern on memory device130, i.e., where all (or nearly all) of the memory cells of memory device130are in a TLC Level 2 state. That is, the charge carried by all of the memory cells, regardless of their type (i.e., SLC, MLC, TLC, etc.), is similar to a Level 2 state of a TLC memory cell. In some embodiments, for instance, the data pattern management component113may be configured to perform a program operation to place particular memory cells into the TLC Level 2 state. A program operation, however, is typically only capable of programming a single page of memory cells at a time. Accordingly, in some embodiments, the data pattern management component113may be configured to perform a “special erase” operation that is capable of placing an entire block of memory cells into a TLC Level 2 state. In this way, placing the protective data pattern on the entire memory device may be performed more efficiently. In some embodiments, the “special erase” operation may be performed using a relatively low voltage, when compared to a traditional erase operation (e.g., that would place the memory cells into a TLC Level 0 state), which may be closer to the neutral threshold voltage of the memory cells. While a program operation may affect a more precise TLC Level 2 programming (i.e., with a narrower threshold voltage distribution) compared to the special erase operation, the added precision only provides an incremental benefit to the post-production read window budget of the memory device, and the threshold voltage distribution affected by the special erase operation is still able to adequately protect the memory cells of the memory device.

In certain situations, it may not be possible to employ a “special erase” operation. A “special erase” operation, for example, may not be used where the memory cells are expected to be programmable, e.g., with host data, immediately thereafter (i.e., without first placing the memory cells into a lower threshold voltage state, for example, through a traditional erase operation). Accordingly, in some embodiments, the data pattern management component113may be configured to perform an SLC erase operation, in which the memory cells are programmed to a SLC Level 0 state, instead of TLC erase operation, in which the memory cells are placed into a much deeper erase state (i.e., TLC a Level 0 state). In doing so, the memory cells may be afforded at least some protection, and an improved read window budget may be realized.

In some embodiments, as illustrated inFIG.1A, the memory sub-system controller115includes at least a portion of the data pattern management component113. In some embodiments, the data pattern management component113is part of the host system120(e.g., as an application, or an operating system running thereon). In some embodiments, local media controller135includes at least a portion of data pattern management component113and is configured to perform the functionality described herein. In some embodiments, at least a portion of the data pattern management component113may be part of an external system that is configured to perform the functionality described herein. The data pattern management component113, for example, may be part of a wafer probe, or testing apparatus used in a production process involving memory device130, as described in the examples below.

FIG.1Bis a simplified block diagram of a first apparatus, in the form of a memory device130, in communication with a second apparatus, in the form of a memory sub-system controller115of a memory sub-system (e.g., memory sub-system110ofFIG.1A) in accordance with some embodiments of the present disclosure.

Memory device130includes an array of memory cells104logically arranged in rows and columns. Memory cells of a logical row are typically connected to the same access line (e.g., a wordline) while memory cells of a logical column are selectively connected to the same data line (e.g., a bitline). A single access line may be associated with more than one logical row of memory cells and a single data line may be associated with more than one logical column. Memory cells (not shown inFIG.1B) of at least a portion of array of memory cells104are capable of being programmed to one of at least two target data states.

Row decode circuitry108and column decode circuitry109are provided to decode address signals. Address signals are received and decoded to access the array of memory cells104. Memory device130also includes input/output (I/O) control circuitry160to manage input of commands, addresses and data to the memory device130as well as output of data and status information from the memory device130. An address register114is in communication with I/O control circuitry160and row decode circuitry108and column decode circuitry109to latch the address signals prior to decoding. A command register124is in communication with I/O control circuitry160and local media controller135to latch incoming commands.

A controller (e.g., the local media controller135internal to the memory device130) controls access to the array of memory cells104in response to the commands and generates status information for the external memory sub-system controller115. That is, the local media controller135is configured to perform access operations (e.g., read operations, write operations and/or erase operations) on the array of memory cells104. The local media controller135is in communication with row decode circuitry108and column decode circuitry109to control the row decode circuitry108and column decode circuitry109in response to the addresses.

The local media controller135is also in communication with a cache register118. Cache register118latches data, either incoming or outgoing, as directed by the local media controller135to temporarily store data while the array of memory cells104is busy writing or reading, respectively, other data. During a program operation, data may be passed from the cache register118to the data register170for transfer to the array of memory cells104; then new data may be latched in the cache register118from the I/O control circuitry160. During a read operation, data may be passed from the cache register118to the I/O control circuitry160for output to the memory sub-system controller115; then new data may be passed from the data register170to the cache register118. The cache register118and/or the data register170may form a portion of a page buffer of the memory device130. A page buffer may further include sensing devices (not shown inFIG.1B) to sense a data state of a memory cell of the array of memory cells204(e.g., by sensing a state of a data line connected to that memory cell). A status register122may be in communication with I/O control circuitry160and the local memory controller135to latch the status information for output to the memory sub-system controller115.

Memory device130receives control signals from the memory sub-system controller115at the local media controller135over a control link132. For example, the control signals can include a chip enable signal CE #, a command latch enable signal CLE, an address latch enable signal ALE, a write enable signal WE #, a read enable signal RE #, and a write protect signal WP #. Additional or alternative control signals (not shown) may be further received over control link132depending upon the nature of the memory device130. In one embodiment, memory device130receives command signals (which represent commands), address signals (which represent addresses), and data signals (which represent data) from the memory sub-system controller115over a multiplexed input/output (I/O) bus136and outputs data to the memory sub-system controller115over I/O bus136.

For example, the commands may be received over input/output (I/O) pins [7:0] of I/O bus136at I/O control circuitry160and may then be written into command register124. The addresses may be received over input/output (I/O) pins [7:0] of I/O bus136at I/O control circuitry160and may then be written into address register114. The data may be received over input/output (I/O) pins [7:0] for an 8-bit device or input/output (I/O) pins [15:0] for a 16-bit device at I/O control circuitry160and then may be written into cache register118. The data may be subsequently written into data register170for programming the array of memory cells104.

In an embodiment, cache register118may be omitted, and the data may be written directly into data register170. Data may also be output over input/output (I/O) pins [7:0] for an 8-bit device or input/output (I/O) pins [15:0] for a 16-bit device. Although reference may be made to I/O pins, they may include any conductive node providing for electrical connection to the memory device130by an external device (e.g., the memory sub-system controller115), such as conductive pads or conductive bumps as are commonly used.

It will be appreciated by those skilled in the art that additional circuitry and signals can be provided and that the memory device130ofFIGS.1A-1Bhas been simplified. It should also be recognized that the functionality of the various block components described with reference toFIGS.1A-1Bneed not be segregated to distinct components or component portions of an integrated circuit device. For example, a single component or component portion of an integrated circuit device could be adapted to perform the functionality of more than one block component ofFIGS.1A-1B. Similarly, one or more components or component portions of an integrated circuit device could be combined to perform the functionality of a single block component ofFIGS.1A-1B. Additionally, while specific I/O pins are described in accordance with popular conventions for receipt and output of the various signals, it is noted that other combinations or numbers of I/O pins (or other I/O node structures) may be used in the various embodiments.

FIG.2Aillustrates a portion of an array of memory cells200A that could be included in a memory device (e.g., as a portion of memory cells104) in accordance with some embodiments of the present disclosure. Memory array200A includes access lines, such as word lines2020to202N, and data lines, such as bitlines2040to204M. The word lines202can be connected to global access lines (e.g., global word lines), not shown inFIG.2A, in a many-to-one relationship. For some embodiments, memory array200A can be formed over a semiconductor that, for example, can be conductively doped to have a conductivity type, such as a p-type conductivity, e.g., to form a p-well, or an n-type conductivity, e.g., to form an n-well.

Memory array200A can be arranged in rows (each corresponding to a word line202) and columns (each corresponding to a bitline204). Each column can include a string of series-connected memory cells (e.g., non-volatile memory cells), such as one of NAND strings2060to206M. Each NAND string206can be connected (e.g., selectively connected) to a common source (SRC)216and can include memory cells2080to208N. The memory cells208can represent non-volatile memory cells for storage of data. The memory cells208of each NAND string206can be connected in series between a select gate210(e.g., a field-effect transistor), such as one of the select gates2100to210M(e.g., that can be source select transistors, commonly referred to as select gate source), and a select gate212(e.g., a field-effect transistor), such as one of the select gates2120to212M(e.g., that can be drain select transistors, commonly referred to as select gate drain). Select gates2100to210Mcan be commonly connected to a select line214, such as a source select line (SGS), and select gates2120to212Mcan be commonly connected to a select line215, such as a drain select line (SGD). Although depicted as traditional field-effect transistors, the select gates210and212can utilize a structure similar to (e.g., the same as) the memory cells208. The select gates210and212can represent a number of select gates connected in series, with each select gate in series configured to receive a same or independent control signal.

A source of each select gate210can be connected to common source216. The drain of each select gate210can be connected to a memory cell2080of the corresponding NAND string206. For example, the drain of select gate2100can be connected to memory cell2080of the corresponding NAND string2060. Therefore, each select gate210can be configured to selectively connect a corresponding NAND string206to the common source216. A control gate of each select gate210can be connected to the select line214.

The drain of each select gate212can be connected to the bitline204for the corresponding NAND string206. For example, the drain of select gate2120can be connected to the bitline2040for the corresponding NAND string2060. The source of each select gate212can be connected to a memory cell208Nof the corresponding NAND string206. For example, the source of select gate2120can be connected to memory cell208Nof the corresponding NAND string2060. Therefore, each select gate212can be configured to selectively connect a corresponding NAND string206to the corresponding bitline204. A control gate of each select gate212can be connected to select line215.

The memory array200A inFIG.2Acan be a quasi-two-dimensional memory array and can have a generally planar structure, e.g., where the common source216, NAND strings206and bitlines204extend in substantially parallel planes. Alternatively, the memory array200A inFIG.2Acan be a three-dimensional memory array, e.g., where NAND strings206can extend substantially perpendicular to a plane containing the common source216and to a plane containing the bitlines204that can be substantially parallel to the plane containing the common source216.

Typical construction of memory cells208includes a data-storage structure234(e.g., a floating gate, charge trap, and the like) that can determine a data state of the memory cell (e.g., through changes in threshold voltage), and a control gate236, as shown inFIG.2A. The data-storage structure234can include both conductive and dielectric structures while the control gate236is generally formed of one or more conductive materials. In some cases, memory cells208can further have a defined source/drain (e.g., source)230and a defined source/drain (e.g., drain)232. The memory cells208can have their control gates236connected to (and in some cases can form) a word line202.

A column of the memory cells208can be a NAND string206or a number of NAND strings206selectively connected to a given bitline204. A row of the memory cells208can be memory cells208commonly connected to a given word line202. A row of memory cells208can, but need not, include all the memory cells208commonly connected to a given word line202. Rows of the memory cells208can be divided into one or more groups of physical pages of memory cells208. Physical pages of the memory cells208can include every other memory cell208commonly connected to a given word line202. For example, the memory cells208commonly connected to word line202Nand selectively connected to even bitlines204(e.g., bitlines2040,2042,2044, etc.) can be one physical page of the memory cells208(e.g., even memory cells) while memory cells208commonly connected to word line202Nand selectively connected to odd bitlines204(e.g., bitlines2041,2043,2045, etc.) can be another physical page of the memory cells208(e.g., odd memory cells).

Although bitlines2043-2045are not explicitly depicted inFIG.2A, it is apparent from the figure that the bitlines204of the array of memory cells200A can be numbered consecutively from bitline2040to bitline204M. Other groupings of the memory cells208commonly connected to a given word line202can also define a physical page of memory cells208. For certain memory devices, all memory cells commonly connected to a given word line can be deemed a physical page of memory cells. The portion of a physical page of memory cells (which, in some embodiments, could still be the entire row) that is read during a single read operation or programmed during a single write operation (e.g., an upper or lower page of memory cells) can be deemed a logical page of memory cells. A block of memory cells can include those memory cells that are configured to be erased together, such as all memory cells connected to word lines2020-202N(e.g., all NAND strings206sharing common word lines202). Unless expressly distinguished, a reference to a page of memory cells herein refers to the memory cells of a logical page of memory cells. Although the example ofFIG.2Ais discussed in conjunction with NAND flash, the embodiments and concepts described herein are not limited to a particular array architecture or structure, and can include other structures (e.g., SONOS, phase change, ferroelectric, etc.) and other architectures (e.g., AND arrays, NOR arrays, etc.).

FIG.2Billustrates a portion of another array of memory cells200B that could be included in a memory device (e.g., as a portion of memory cells104) in accordance with some embodiments of the present disclosure. Like numbered elements inFIG.2Bcorrespond to the description as provided with respect toFIG.2A.FIG.2Bprovides additional detail of one example of a three-dimensional NAND memory array structure. The three-dimensional NAND memory array200B can incorporate vertical structures which can include semiconductor pillars where a portion of a pillar can act as a channel region of the memory cells of NAND strings206. The NAND strings206can be each selectively connected to a bitline2040-204Mby a select transistor212(e.g., that can be drain select transistors, commonly referred to as select gate drain) and to a common source216by a select transistor210(e.g., that can be source select transistors, commonly referred to as select gate source). Multiple NAND strings206can be selectively connected to the same bitline204. Subsets of NAND strings206can be connected to their respective bitlines204by biasing the select lines2150-215Kto selectively activate particular select transistors212each between a NAND string206and a bitline204. The select transistors210can be activated by biasing the select line214. Each word line202can be connected to multiple rows of memory cells of the memory array200B. Rows of memory cells that are commonly connected to each other by a particular word line202can collectively be referred to as tiers.

FIG.2Cillustrates a portion of yet another array of memory cells200C that could be included in a memory device (e.g., as a portion of memory cells104) in accordance with some embodiments of the present disclosure. Like numbered elements inFIG.2Ccorrespond to the description as provided with respect toFIG.2A. Channel regions (e.g., semiconductor pillars)23800and23801represent the channel regions of different strings of series-connected memory cells (e.g., NAND strings206ofFIGS.2A-2B) selectively connected to the bitline2040. Similarly, channel regions23810and23811represent the channel regions of different strings of series-connected memory cells (e.g., NAND strings206ofFIGS.2A-2B) selectively connected to the bitline2041. A memory cell (not depicted inFIG.2C) may be formed at each intersection of an wordline202and a channel region238, and the memory cells corresponding to a single channel region238may collectively form a string of series-connected memory cells (e.g., a NAND string206ofFIGS.2A-2B). Additional features might be common in such structures, such as dummy wordlines, segmented channel regions with interposed conductive regions, etc.

FIG.3Aillustrates a pair of memory cells as may be arranged in a memory device in accordance with some embodiments of the present disclosure. As illustrated inFIG.3A, a memory cell of a memory device can include a transistor, such as metal-oxide-semiconductor field effect transistor (MOSFET), having a source (S) electrode and a drain (D) electrode to pass electric current there through. The source and drain electrodes can be connected to a conductive bitline (BL), which can be shared by multiple memory cells. A memory device can include an array or memory cells that are connected to a plurality of wordlines (WL) and a plurality of bitlines (BL). A memory device can further include circuitry for selectively coupling WLs and BLs to voltage sources providing control gate and source-drain signals.

Referring again toFIG.3A, memory cells302and304can be connected to the same bitline N and two different conductive wordlines, M and M+1, respectively. A memory cell can further have a control gate (CG) electrode to receive a voltage signal VCGto control the magnitude of electric current flowing between the source electrode and the drain electrode. More specifically, there can be a threshold control gate voltage VT(herein also referred to as “threshold voltage” or simply as “threshold”) such that for VCG<VT, the source-drain electric current can be low, but which can increase substantially once the control gate voltage has exceeded the threshold voltage, VCG>VT. Transistors of the same memory device can be characterized by a distribution of their threshold voltages, P(VT)=dW/dVT, so that dW=P(VT)dVTrepresents the probability that any given transistor has its threshold voltage within the interval [VT, VT+dVT].

The memory cell can also include a charge storage node (e.g., a floating fate (FG)) that can be electrically isolated from the control gate, the source electrode, and the drain electrode by insulating layers (depicted as the dotted region inFIG.3A). In response to an appropriately chosen positive (i.e., relative to a source potential) control gate voltage VCG, the charge storage node can receive an electric charge Q, which can be permanently stored thereon even after power to the memory cell—and, consequently, the source-drain current—has ceased. The charge Q can affect a distribution of threshold voltages P(VT, Q). Generally, the presence of the electric charge Q shifts the distribution of threshold voltages towards higher voltages, compared with the distribution P(VT) for an uncharged charge storage node. This happens because a stronger positive control gate voltage VCGcan be needed to overcome a negative potential of the charge storage node charge Q.

Depending on its type, a memory cell can be selectively modified to carry one of a sequence of charges Qk, with 1≤k≤2N. The charges Qkare preferably selected to be sufficiently different from each other, such that any two adjacent voltage distributions P(VT, Qk) and P(VT, Qk+1) do not overlap and are separated by a valley margin. That is, 2Ndistributions P(VT, Qk) are interspaced with 2N−1 valley margins. The charge state Qkcan be determined during a readout operation by detecting that a control gate voltage VCGwithin the valley margin VMkis sufficient to open the cell to the source-drain current whereas a control gate voltage within the preceding valley margin VMk−1is not. Accordingly, a memory cell placed into a kthcharge state (i.e., having the charge Qkdeposited on its charge storage node) can be understood as storing a particular combination of N bits (e.g., 0110 for N=4). In this way, the memory cell can function as an N-bit storage unit. By way of example,FIG.3Billustrates an example set of threshold control gate voltage distributions for a memory cell capable of storing three bits of data by placing the memory cell into at least eight charge states that differ by the amount of charge on the charge storage node (i.e., floating gate) of the memory cell. More particularly,FIG.3Bshows distributions of threshold voltages P(VT, Qk) of a memory cell for 8 different charge states Qk(i.e., 23charge states) (also referred to as “programming levels”) and 7 valley margins VMk(i.e., with 23−1 valley margins) (also referred to as “read windows”). Memory cells can be classified by the number of bits that they can store. For instance, a single-level cell (SLC) can store one bit of data (N=1), a multi-level cell (MLC) can store up to two bits of data (N=2), a tri-level cell (TLC) can store up to three bits of data (N=3), a quad-level cell (QLC) can store up to four bits of data (N=4), and a penta-level cell (PLC) can store up to five bits of data (N=5).

FIG.4is a high-level flow diagram of an example production work flow400for producing a computing system to include a storage device with a memory in accordance with some embodiments of the present disclosure. As illustrated and described below, the production work flow400may involve four stages: a memory wafer fabrication stage, a storage device production stage, a computing system production stage, and a post production stage. In order to protect the memory and its cells from damage, a protective data pattern is placed and maintained on the memory throughout the production work flow400. The production process400, in particular, may seek to ensure that the memory carries a protective data pattern before entering stages in which the memory may be subjected to high temperatures and/or long periods of storage. In doing so, the production work flow400may be able to affect an improvement in the read window budget of the memory device, which in turn, may allow for more aggressive program and erase times and/or improved data retention characteristics. It will be understood that the illustrated embodiments are merely examples, and that the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes can be omitted in various embodiments. Thus, not all processes are required in every embodiment. Likewise, in some embodiments, one or more additional processes may be performed.

The production work flow400may begin at operation410with the fabrication of a memory wafer, i.e., where an array of memory cells (e.g., a 2D or 3D NAND array) are formed onto a silicon wafer. The memory wafer may undergo testing after its initial fabrication during which the basic operation and functionality of the memory cells is verified and electrical parameters regarding the memory cells is collected. The wafer testing may be performed by a piece of test equipment called a prober, and the process is often referred to as wafer probe (or wafer test). In testing the wafer, the prober may apply one or more test patterns to the memory wafers (e.g., by programming or erasing each of the memory cells to a particular state) and observe the response.

At operation420, upon completion of wafer testing, the memory wafer can be placed into storage where it will remain until it is needed at the next stage of the production work flow400. Typically, after all wafer testing has been completed, the memory wafer will carry an “erase” pattern (e.g., its memory cells will be in a TLC Level 0 state). However, in some embodiments of the present disclosure, wafer testing will complete with the memory wafer having a protective data pattern in place. A memory wafer, for example, may end wafer testing with a Solid Level 2 (SL2) pattern in place, i.e., where all memory cells are in a TLC Level 2 state. That is, the charge carried by the memory cells is similar to a Level 2 state of a TLC memory cell. Because the outgoing pattern of the memory wafer is a protective data pattern, damage to its memory cells can be minimized during storage.

The prober, for example, could program the memory to the desired protective state, but a program operation typically can only transition cells one page at a time. The prober, therefore, may employ a “special erase” operation that places the memory cells of an entire block into a state similar to TLC Level 2. Because the special erase operation can be performed block-by-block, an SL2 pattern for the memory device can be realized more efficiently (i.e., when compared to use of a program operation). And, while the threshold voltage distribution affected by the special erase operation may be less precise than a program operation (i.e., resulting in a wider threshold voltage distribution), it is still able to adequately protect the memory cells of the memory device (i.e., in order to realize a desired read window budget improvement).

The production work flow400may proceed to a storage device production stage. As part of the storage device production stage, at operation430, a memory wafer can be packaged into a storage device (e.g., a mNAND package). A memory wafer, for example, may be retrieved from storage and diced to obtain a number of memory dice, one or more of which may be secured to a printed circuit board (PCB) of the storage device, e.g., using an infra-red (IR) reflow soldering process. In securing a memory die to the PCB of the storage device, the memory die can be subjected to high temperatures. However, because the memory die still carries a protective data pattern (e.g., the SL2 pattern is not altered through die formation), damage to the memory cells is minimized.

At operation432, the storage device may undergo production testing to verify that its memory (i.e. the memory die or dice integrated therein) is functioning properly, after which the storage device may be prepared for delivery to an end-customer, at operation434. As part of this process, a test system may perform (or initiate) a number of procedures on the storage device that may alter or break the protective data pattern (e.g., SL2 pattern) of the memory. However, in accordance with the present disclosure, in some embodiments, an enhanced production testing flow may be employed that restores the protective data pattern to the memory of the storage device before it proceeds to the next stage of the production work flow400.

By way of example, as part of production testing, the test system may download a test firmware to the storage device, for example, by writing the test firmware to one or more blocks of the storage device memory (e.g., to one or more blocks of an SLC portion of the storage device memory). The test firmware may be used to test the storage device memory and ensure that it is functioning properly and free of defects. The test system, for instance, may perform (or cause the storage device to perform) a test erase operation to identify defective memory blocks, but the erase operation may break the protective data pattern of the memory. A traditional erase operation, for instance, might place the memory cells into a TLC Level 0 state. Accordingly, at operation433, upon completion of the memory testing, a special erase operation may be performed, similar to that described above with regard to wafer testing, to place the memory cells of the storage device memory into a protective state (e.g., a TLC Level 2 state).

At operation434, the storage device may then be prepared for delivery to an end-customer for integration into an end computing system (e.g., a mobile phone). This may involve downloading a customer firmware onto the storage device, initializing the storage device using the customer firmware, and testing the storage device to ensure that the firmware was correctly loaded. The test system, for example, may create (or cause the storage device to create) an L2P mapping, and may load a customer firmware onto the storage device, e.g., by writing the firmware to one or more blocks of the storage device memory. Upon initialization of the storage device using the customer firmware, one or more cursors (e.g., represented by pointers identifying respective locations on the storage device memory where data may be written) may be defined for different memory functions or features supported by the storage device (e.g., dynamic write acceleration (or write boost), replay protected memory block (RPMB), small-block or small-page size, host garbage collection, RPMB garbage collection, etc.). In doing so, the storage device may pre-erase a block of memory for each cursor, which may result in the protective data pattern (e.g., SL2 pattern) of the memory block being replaced with an erase data pattern (e.g., where the memory cells are placed into a Level 0 state).

Accordingly, at operation435, following successful initialization of the storage device and verification that the customer firmware was properly loaded, the storage device may restore the protective data pattern of the affected memory blocks. The storage device, for example, may be configured to write protective data, for example, “dummy SL2 data” (i.e., non-meaningful data that places the memory cells of the storage device memory into a TLC Level 2 state), to the storage device memory for each cursor that was opened by the firmware during initialization. The storage device, for instance, may be configured to identify a cursor satisfying a cursor definition (e.g., a cursor that was opened and/or utilized by a particular memory feature or function of interest). The storage device may then identify a location on the memory device referenced by the identified cursor and may write protective data to the memory cells at the identified location. The protective data may be written to each memory cell through the last wordline of the block. In some cases, a scramble mode may need to be disabled before the write operation can be performed.

At operation440, upon completion of the storage device production stage, the storage device may be placed into storage until it is delivered to the end-customer for integration into a computing system (e.g., a mobile phone). Because the outgoing pattern of the storage device memory is a protective data pattern, damage to its memory cells can be minimized during storage.

The production work flow400may then proceed to a computing system production stage in which a storage device may be integrated into a computing system (e.g., a mobile phone) by an end-customer. As part of the computing system production stage, a disk image of a customer may be loaded onto the storage device (e.g., using a host controller or test system), which in turn, may be secured to a PCB of the computing system (e.g., using an IR reflow soldering process). In loading the customer disk image onto the storage device, the protective data pattern of the storage device memory may be altered (beyond storing the customer disk image itself), and additional steps may be taken to restore the protective data pattern to as many cells as practicable (i.e., that are not storing customer disk image data) in order to minimize the damage that may be experienced by the memory cells of the storage device when securing the storage device to the computing system PCB.

By way of example, at operation450, an end-customer may retrieve a storage device from storage and may optionally pre-test the storage device memory to verify that it is functioning properly and free of defects. In doing so, one or more blocks of the storage device memory may be erased and their protective data pattern broken.

At operation452, the storage device may be placed into a Production State Awareness (PSA) mode (e.g., through the issuance of a PSA START command by a host controller or test system) under which a disk image of the customer may be loaded onto the storage device. The disk image may include software that may be needed for operation of the storage device and/or computing system.

Upon entering PSA mode, at operation453, the storage device may determine whether any pre-testing had been performed and identifying any memory blocks whose protective data pattern had been broken. The storage device, for example, may examine a memory endurance metric of the memory blocks (e.g., a program-erase count) to identify memory blocks whose protective data pattern may have been broken (e.g., identifying memory blocks having a program-erase count (PEC) greater than 0). If one or more memory blocks were erased through pre-testing, the storage device may perform a special erase operation, similar to that described above with regard to wafer testing and storage device production, to restore the affected memory cells to a protective state.

At operation454, a customer disk image may be loaded into the storage device memory. This may involve creating an L2P mapping, and loading the customer disk image on the storage device memory, e.g., by writing the image to one or more blocks of the storage device memory. The customer disk image, for example, may be written to an SLC portion of the memory. In some embodiments, the customer disk image may be written to one or more dynamic and/or static blocks of the memory. The static blocks may be relatively more resilient (i.e., than the dynamic blocks), and default routines (e.g., power-on-reset (POR) routines) may be used to erase and write the static blocks. For dynamic blocks, optimized PSA erase and write routines may be loaded via a media-local-bus interface (MLBi) (e.g., from a host controller or test system), with the erase operation being performed when a new block is opened. The PSA write routine may place the memory cells into a state that is closer to their neutral threshold voltage (e.g., as compared to a default write operation), which may minimize the amount of stress placed on the memory cells (e.g., during an IR reflow soldering process). In some embodiments, the PSA erase and write routines may be used for both static and dynamic blocks. The dynamic and/or static blocks may be read back once written, for example, to verify that they were written correctly.

Because the customer disk image may not result in data being written to the end of each block, once the customer disk image has been loaded and a PSA END command is received (e.g., from a host controller or test system), protective data, for example, “dummy SL2 data” (i.e., non-meaningful data that places the memory cells into a TLC Level 2 state), may be written to the unused memory pages of the memory block (as part of operation455). The protective data may be written up to the last wordline of each incomplete block. In some embodiments, protective data may be written to unused memory pages of certain memory blocks. For example, as discussed above, in some embodiments, the customer disk image may be written to one or more dynamic and/or static memory blocks. The static blocks may be relatively more resilient, and so in some embodiments, protective data may only be written to the unused memory pages of the dynamic blocks. The customer disk image data may be read back after the protective data is written, for example, to verify that the customer disk image data was not altered.

In some embodiments, the computing system production stage may be further improved by changing the erase routine used in the PSA mode generally. A typical erase operation (e.g., a TLC erase operation), for example, may place memory cells into a deep erase state (e.g., TLC Level 0 state). Memory cells in this state may sustain relatively more damage than a shallower erase operation, so a shallower erase operation (e.g., an SLC erase operation, which places a memory cell into a SLC Level 0 state) may be performed instead. The shallower erase operation may afford some level of protection, and a read budget window gain similar to that provided by a TLC Level 2 state may be realized.

At operation456, the storage device may be secured to the computing system PCB, e.g., using an IR reflow soldering process. Because most of the memory cells of the storage device carry a protective data pattern, damage to the memory cells is minimized. Furthermore, while certain cells may carry the customer disk image data, this data may be written to an SLC portion of the storage device memory, which is relatively more resilient (e.g., as compared to TLC memory cells). When the storage device is next initialized, the customer disk image data may be moved from the SLC portion of the storage device memory to a TLC portion of the storage device memory (e.g., as part of a garbage collection process performed by the storage device).

Once the storage device is secured to the PCB board of the computing system, the process may enter a post-production stage, at operation460, in which the computing system may be placed into service. Because the storage device memory maintained a protective data pattern throughout the production work flow, the damage experienced by its memory cells may have been minimized and it may possess a relatively larger read window budget. The larger read window budget may allow for more aggressive programming and erase times and/or improved data retention characteristics, as well as other performance improvements that can be derived from an improved read window budget.

FIG.5is a flow diagram of an example method500for placing and maintaining a protective data pattern on a storage device memory during production of a storage device in accordance with some embodiments of the present disclosure. The method can be performed using processing logic that can include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof. In some embodiments, the method500can be performed by the data pattern management component113ofFIG.1. Although shown in a particular sequence or order, unless otherwise specified, the order of the processes can be modified. Thus, the illustrated embodiments should be understood only as examples, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes can be omitted in various embodiments. Thus, not all processes are required in every embodiment. Other process flows are possible.

At operation510, the processing logic may place a protective data pattern to the memory cells of a memory device, for example, as part of a storage device production process. The processing logic, for example, may perform a special erase operation on each block of a memory device, which may place the memory cells of each block into a protective state (e.g., a TLC Level 2 state). In performing the special erase operation, the processing logic may be able to restore a protective data pattern to the memory device. The special erase operation, for example, may restore a protective data pattern (e.g., an SL2 data pattern) that may have been broken through the performance of a traditional erase operation, e.g., where each block of the memory cell is placed into a deep erase state (e.g., TLC Level 0 state). The traditional erase operation may have been performed as part of a storage device production testing procedure, for example, to ensure that the storage device memory is functioning properly and free of defects (e.g., free of defective memory blocks).

At operation520, a device firmware may then be loaded onto the storage device, and the storage device memory may be initialized using the device firmware. The processing logic, for example, may build an L2P mapping table for the memory device (i.e., that maps the memory blocks of the memory device to one or more logical blocks) and download a firmware to the memory device by writing firmware data to one or more logical blocks. A customer firmware, for example, may be downloaded to the storage device in preparing the storage device for delivery to an end-customer for integration into an end computing system (e.g., a mobile phone).

The device may then be initialized (or “booted up”) using the downloaded firmware. In doing so, the processing logic may define one or more cursors, identifying locations on the memory device where data may be written. The processing logic, for example, may define one or more cursors for different functions or features of the storage device memory supported by the firmware (e.g., dynamic write acceleration (or write boost), replay protected memory block (RPMB), small-block or small-page size, host garbage collection, RPMB garbage collection, etc.). The processing logic, for example, may define the cursors as part of a firmware test procedure, e.g., to ensure that the firmware had been correctly loaded. In defining the cursors, the processing logic may perform a pre-erase operation that erases a logical block of memory for each cursor (e.g., placing the memory cells of the logical block to a Level 0 state).

At operation540, the processing logic may restore a protective data pattern to the memory device, which may have been broken through the device initialization (and cursor definition) process. The processing logic, for example, may write protective data, for example, dummy SL2 data (i.e., non-meaningful data that places the memory cells of the storage device memory into a TLC Level 2 state), to the memory block associated with each cursor that was opened. The processing logic, for instance, may identify a cursor satisfying a cursor definition (e.g., a cursor that was opened and/or utilized by a particular memory feature or function of interest). The storage device may then identify a location on the memory device referenced by the identified cursor and may write protective data to the memory cells at the identified location. The protective data may be written to each memory cell through the last wordline of the block. With the protective data pattern restored, the storage device may be safely placed into storage, for example, until it is delivered to an end-customer for integration into a computing system (e.g., a mobile phone).

FIG.6is a flow diagram of an example method600for placing and maintaining a protective data pattern on a storage device memory during production of a computing system in accordance with some embodiments of the present disclosure. The method can be performed using processing logic that can include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof. In some embodiments, the method500can be performed by the data pattern management component113ofFIG.1. Although shown in a particular sequence or order, unless otherwise specified, the order of the processes can be modified. Thus, the illustrated embodiments should be understood only as examples, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes can be omitted in various embodiments. Thus, not all processes are required in every embodiment. Other process flows are possible.

The production of a computing system may involve the integration of a storage device that includes a storage device memory. As part of the computing system production, a disk image may be loaded onto the storage device, which may then be secured to a PCB of the computing system (e.g., using an IR reflow soldering process). Before the disk image is loaded and the storage device is secured, the processing logic may pre-test the storage device memory (i.e., before loading the disk image) to verify that it is functioning properly and free of defects. In doing so, the processing logic may erase one or more blocks of the storage device memory, which may break a protective data pattern of the storage device memory.

Accordingly, at operation610, the processing logic may determine whether a state of the storage device memory is different (e.g., has been changed from an initial state (e.g., has been changed) from an initial state when it completed storage device production). The processing logic, for example, may examine a memory endurance metric of each memory block of the storage device memory (e.g., a program-erase count) and identify each memory block that may be in a different state (e.g., having a program-erase count greater than 0).

At operation620, the processing logic may restore the protective data pattern (e.g., an SL2 pattern) to the storage device memory before loading the disk image. The processing logic, for example, may place the changed memory cells back into a protective state (e.g., a TLC Level 2 state) by performing a special erase operation on the memory blocks that were identified as having changed.

At operation630, the processing logic may download a disk image (e.g., a customer disk image) to the storage device memory by writing disk image data to one or more memory blocks. In some embodiments, the processing logic may first place the storage device into a Production State Awareness (PSA) mode (e.g., through the issuance of a PSA START command) before the disk image is loaded. In loading the disk image onto the storage device, the processing logic may create an L2P mapping that maps the memory blocks of a storage device memory to corresponding logical blocks. The processing logic may then download a disk image (e.g., of a customer) to the storage device memory by writing disk image data to one or more logical blocks. The disk image, for example, may be written to an SLC portion of the memory. In some embodiments, the customer disk image may be written to one or more dynamic and/or static blocks of the storage device memory. The static blocks may be relatively more resilient (i.e., than the dynamic blocks), and the processing logic may use default routines (e.g., power-on-reset (POR) routines) to erase and write the static blocks. For dynamic blocks, the processing logic may load optimized PSA erase and write routines via a media-local-bus interface (MLBi) (e.g., from a host controller or test system), with the processing logic performing the erase operation when a new dynamic block is opened. The PSA write routine may place the memory cells into a state that is closer to their neutral threshold voltage (e.g., as compared to a default SLC write operation), which may minimize the amount of stress placed on the memory cells (e.g., during a IR reflow soldering process). In some embodiments, the processing logic may perform PSA erase and write routines for both static and dynamic blocks. The processing logic may also read back the dynamic and/or static blocks once written, for example, to verify that they were written correctly.

At operation640, the processing logic may determine whether the memory blocks containing disk image data contain any unused memory pages, and may place the unused memory pages into a protective state by programming dummy protective data (i.e., non-meaningful data that places the memory cells into a protected state) to the unused memory pages. By way of example, in loading the disk image to the storage device memory, data may not be written to the end of each memory block (i.e., to the end of each static and/or dynamic memory block). Accordingly, upon completion of the disk image loading process (e.g., upon issuance of a PSA END command), the processing logic may determine which memory blocks are incomplete (i.e., which contain unused memory pages without disk image data). The processing logic may then program dummy protective data (e.g., dummy SL2 data) to the unused memory pages to complete the memory block. The protective data may be written up to the last wordline of each incomplete block. In some embodiments, the processing logic may program protective data to unused memory pages of certain memory blocks. For example, as discussed above, in some embodiments, the processing logic may write the customer disk image to one or more dynamic and/or static memory blocks. The static blocks may be relatively more resilient, and so in some embodiments, the processing logic may only program protective data to the unused memory pages of the dynamic blocks. The processing logic may also read back the disk image data once the protective data is written, for example, to verify that the disk image data was not altered.

With the protective data pattern in place, the storage device may be safely integrated into the computing system (e.g., by securing the storage device to a PCB of the computing system using an IR reflow soldering process). Because most of the memory cells of the storage device carry a protective data pattern, damage to the memory cells is minimized. Furthermore, while certain memory cells may carry disk image data, this data may be written to an SLC portion of the storage device memory, which is relatively more resilient (e.g., as compared to TLC memory cells). When the storage device is next initialized, the processing logic may move the disk image data from the SLC portion of the storage device memory to a TLC portion of the storage device memory (e.g., as part of a garbage collection process).

FIG.7illustrates an example machine of a computer system700within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, can be executed. In some embodiments, the computer system700can correspond to a host system (e.g., the host system120ofFIG.1) that includes, is coupled to, or utilizes a memory sub-system (e.g., the memory sub-system110ofFIG.1) or can be used to perform the operations of a controller (e.g., to execute an operating system to perform operations corresponding to the data pattern management component113ofFIG.1). In alternative embodiments, the machine can be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and/or the Internet. The machine can operate in the capacity of a server or a client machine in client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or a client machine in a cloud computing infrastructure or environment.

The machine can be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

The example computer system700includes a processing device702, a main memory704(e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or RDRAM, etc.), a static memory706(e.g., flash memory, static random access memory (SRAM), etc.), and a data storage system718, which communicate with each other via a bus730.

Processing device702represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device can be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device702can also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device702is configured to execute instructions726for performing the operations and steps discussed herein. The computer system700can further include a network interface device708to communicate over the network720.

The data storage system718can include a machine-readable storage medium724(also known as a computer-readable medium) on which is stored one or more sets of instructions726or software embodying any one or more of the methodologies or functions described herein. The instructions726can also reside, completely or at least partially, within the main memory704and/or within the processing device702during execution thereof by the computer system700, the main memory704and the processing device702also constituting machine-readable storage media. The machine-readable storage medium724, data storage system718, and/or main memory704can correspond to the memory sub-system110ofFIG.1.

In one embodiment, the instructions726include instructions to implement functionality corresponding to a data pattern management component (e.g., the data pattern management component113ofFIG.1). While the machine-readable storage medium724is shown in an example embodiment to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media that store the one or more sets of instructions. The term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.

Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. The present disclosure can refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage systems.

The present disclosure also relates to an apparatus for performing the operations herein. This apparatus can be specially constructed for the intended purposes, or it can include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.

The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems can be used with programs in accordance with the teachings herein, or it can prove convenient to construct a more specialized apparatus to perform the method. The structure for a variety of these systems will appear as set forth in the description below. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the disclosure as described herein.

The present disclosure can be provided as a computer program product, or software, that can include a machine-readable medium having stored thereon instructions, which can be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). In some embodiments, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory components, etc.

In the foregoing specification, embodiments of the disclosure have been described with reference to specific example embodiments thereof. It will be evident that various modifications can be made thereto without departing from the broader spirit and scope of embodiments of the disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.