Patent Description:
Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including volatile and non-volatile memory. Volatile memory can require power to maintain its data and includes random-access memory (RAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM), among others. Non-volatile memory can provide persistent data by retaining stored data when not powered and can include NAND flash memory, NOR flash memory, read only memory (ROM), Electrically Erasable Programmable ROM (EEPROM), Erasable Programmable ROM (EPROM), and resistance variable memory such as phase change random access memory (PCRAM), resistive random access memory (RRAM), and magnetoresistive random access memory (MRAM), among others.

Memory devices can be combined together to form a storage volume of a memory system such as a solid state drive (SSD). A solid state drive can include non-volatile memory (e.g., NAND flash memory and NOR flash memory), and/or can include volatile memory (e.g., DRAM and SRAM), among various other types of non-volatile and volatile memory.

An SSD can be used to replace hard disk drives as the main storage volume for a computer, as the solid state drive can have advantages over hard drives in terms of performance, size, weight, ruggedness, operating temperature range, and power consumption. For example, SSDs can have superior performance when compared to magnetic disk drives due to their lack of moving parts, which may avoid seek time, latency, and other electro-mechanical delays associated with magnetic disk drives.

Cumulative program and erase (P/E) cycles applied to memory cells of a memory device, such as an SSD, may result in programming time for the memory cells becoming faster as the number of P/E cycles increases. The memory cells becoming programmed at a progressively decreased program voltage relative to a program voltage used near a first P/E cycle may contribute to the programming time becoming faster. As such, an attempt to dynamically match a word line start voltage to the programming speed throughout a lifetime of the memory cells may be useful. <CIT> describes a method of programming non-volatile memory devices and a multi-level cell programming method in which a program start voltage can be set variably according to a programmed state without fixing the program start voltage to a specific value.

The invention is defined in the appended apparatus claim <NUM> and method claim <NUM>.

The present disclosure relates to apparatuses and methods for an automated dynamic word line start voltage (ADWLSV). A word line start voltage, as described herein, is intended to mean a start voltage (e.g., selected from a sequence of pulse voltages) that is applied to a word line, also referred to as an "access line" herein, for programming (e.g., performing a write operation to) memory cells associated with (e.g., coupled to) the word line.

An example apparatus includes a controller and a memory device. The memory device is configured to maintain, internal to the memory device, a status of a number of open blocks in the memory device. The status can include a programming operation being initiated in the respective number of open blocks. Responsive to receipt of, from the controller, a request to direct initiation of the programming operation to a word line, determine a group of memory cells associated with the word line that programs first relative to other groups of memory cells associated with the word line and maintain, included in the status of an open block, a voltage at which the group of memory cells is the first group to program.

The voltage at which the first group of memory cells programs can include the voltage at which the first group of memory cells passes a programming threshold first. The programming threshold may, for example, be a number of single level cells (SLC) in a group of memory cells (e.g., a page) transitioning (e.g., from <NUM> to <NUM>, or vice versa) to or past a threshold number. The threshold number may be a particular number of memory cells out of a total number of memory cells and/or a percentage of the memory cells, among other possible thresholds.

As used herein, "a number of" a particular thing can refer to one or more of such things (e.g., a number of memory devices can refer to one or more memory arrays). A "plurality of" is intended to refer to more than one of such things. Furthermore, the words "can" and "may" are used throughout this application in a permissive sense (i.e., having the potential to, being able to), not in a mandatory sense (i.e., must). The term "include", and derivations thereof, means "including, but not limited to". The terms "coupled" and "coupling" mean to be directly or indirectly connected physically or for access to and movement (transmission) of commands and/or data, as appropriate to the context.

The figures herein follow a numbering convention in which the first digit or digits correspond to the figure number and the remaining digits identify an element or component in the drawing. As will be appreciated, elements shown herein can be added, exchanged, and/or eliminated so as to provide a number of additional examples of the present disclosure. In addition, as will be appreciated, the proportion and the relative scale of the elements provided in the figures are intended to illustrate the present disclosure.

<FIG> is a block diagram of an apparatus in the form of a computing system <NUM> for ADWLSV in accordance with the present disclosure. As used herein, a host (e.g., <NUM>), a memory device system (e.g., <NUM>), a host controller (e.g., system controller <NUM>), a memory device controller (e.g., device controller <NUM>), or an ADWLSV open block list (e.g., <NUM>) also might each be separately considered an "apparatus".

Computing system <NUM> includes a memory device system <NUM> (e.g., an SSD) coupled to a host <NUM> through a device interface <NUM>. As used herein, "coupled to" is intended to refer to a connection between components, which may 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 memory device system <NUM> can be a solid state storage appliance implemented using a number of SSDs, for example. The computing system <NUM> can include a controller internal to the memory device system <NUM> (e.g., device controller <NUM>), in addition to the controller internal to the host (e.g., system controller <NUM>). The device controller <NUM> may be coupled to a number of memory resources in the memory device system <NUM> via a number of suitable memory interfaces (not shown). The memory resources may include a number of SSD memory resources, such as volatile memory devices <NUM> and/or non-volatile memory devices <NUM>.

The more P/E cycles that are applied to memory cells of the memory device, such as an SSD, the faster a programming time (e.g., as measured by elapsed time, speed, and/or rate of programming) for the memory cells may become relative to a programming time near a first P/E cycle in the lifetime of the memory device. The memory cells becoming programmed at a progressively decreased program voltage relative to a program voltage used near the first P/E cycle may contribute to the programming time becoming faster. The programming time may be further affected by a number of programming pulses applied to a selected word line in order to reach a threshold voltage (Vt) for the memory cells (e.g., the Vt also may be decreasing).

In some prior implementations, a fixed word line start voltage may be set at a voltage projected to be used near a projected last P/E cycle of the memory cells. In some prior implementations, a same number of programming pulses may be used throughout a lifetime of the memory device in order to maintain a constant programming time for the memory cells. However, among various considerations, the Vt for memory cells associated with different groupings of memory cells and/or at different positions of a word line (e.g., pages, blocks, superblocks, as described herein) may vary at the same point in the lifetime of the memory device, thereby affecting what would be an appropriate word line start voltage for the different groupings of memory cells and/or at the different positions of the word line.

The ADWLSV described herein dynamically matches a word line start voltage to the memory cells associated with the word line throughout the lifetime of the memory device. The matching may include, for example, dynamically sampling Vt movement (e.g., by application of the sequence of pulse voltages) of a group of memory cells (e.g., a page of memory cells). This may improve (e.g., decrease) the programming time by the memory device (e.g., rather than a host) tracking Vts for the memory cells associated with the word line and dynamically adjusting (e.g., increasing) the word line start voltage accordingly.

For example, the programming time may be decreased by increasing the word line start voltage to more closely match that of a first (e.g., fastest) group of memory cells (e.g., a page) to program associated with the word line and/or in a block of pages and using the same increased word line start voltage for other pages. Determining an appropriate word line start voltage for the first page to program may allow lower word line start voltages in the sequence of pulse voltages to be bypassed (e.g., skipped), thereby increasing the word line start voltage to be closer to that of the first page to program. Utilizing the increased word line start voltage determined for the first page to program may enable, as described herein, not utilizing the sequence of pulse voltages to determine an appropriate word line start voltage for the other pages associated with the same word line and/or in the same block. Moreover, utilizing the first page to program indicates that a low (e.g., lowest) pulse voltage of the sequence of pulse voltages effective for programming the first page is selected as the word line start voltage for all the pages, thereby reducing a possibility of overshooting a Vt for memory cells of other pages.

An ADWLSV open block list (e.g., <NUM>) may be associated with (e.g., formed as part of) the device controller <NUM> internal to the memory device system <NUM>. Entries may be stored, until removed (e.g., erased), in an ADWLSV open block list (e.g., as shown at <NUM> and described in connection with <FIG>).

The present disclosure can provide benefits such as improving programming performance (e.g., of write, read, erase, refresh operations, among other possible programming operations performed on memory cells) on groups of memory cells, such as pages, blocks, and/or superblocks, as compared to prior approaches. As described herein, a block may refer to a physical block of memory cells configured to store a plurality of pages (e.g., logical pages) of data.

An "open" block may refer to a physical block of memory cells in which, responsive to receipt of a request to direct initiation of a programming operation (e.g., a command to initiate a write operation) to a word line coupled to the block, an indicator (e.g., an entry) of the initiated programming operation is stored to document that the block is open. The block and/or superblock may remain open until a last page in the block and/or the superblock is programmed, a request (e.g., a write command) is received to direct initiation of a programming operation to a first page of an already programmed block and/or superblock, and/or a command is received to remove (e.g., clear, erase, write over) a particular entry for a block and/or superblock.

A superblock may refer to a first block in a first plane as a first page group associated with a word line and a second block in a second plane as a second page group associated with the word line in a multiplane memory device. As used herein, terms such as first, second, etc., may be utilized to distinguish one element from a similar element (e.g., the planes of a multiplane memory device) and may not, as appropriate to the context, denote an ordinal sequence of such elements and/or the position of such an element in a sequence of such elements (e.g., recitation of a "first block" may not mean that block is the first block at a beginning or end of a sequence of blocks). In addition, a multiplane memory device may include more than two planes (e.g., four planes as shown at <NUM> and described in connection with <FIG>). For example, a multiplane memory device may include <NUM>, <NUM>, <NUM>, <NUM>, etc., planes, among other possible numbers of planes.

The request to direct initiation of the programming operation may be issued from the host <NUM> via a host controller (e.g., system controller <NUM>) to a memory device controller (e.g., device controller <NUM>). A set features interface (e.g., <NUM>) may be associated with (e.g., formed as part of) the system controller <NUM>. An example of the set features interface <NUM> is shown at <NUM> and described in connection with <FIG>.

Example hosts <NUM> can include laptop computers, personal computers, digital cameras, digital recording and playback devices, mobile telephones, PDAs (personal digital assistants), memory card readers, and interface hubs, among other host systems. A host interface <NUM> may include a serial advanced technology attachment (SATA), peripheral component interconnect express (PCIe), or a universal serial bus (USB), among other connectors and interfaces for interaction with host components. In general, the host interface <NUM> in combination with the device interface <NUM> can provide an interface for passing control, address, data, and other signals between the memory device system <NUM> and the host <NUM>.

Host <NUM> can include a number of processors <NUM> (e.g., parallel processors, co-processors, a central processing unit (CPU), etc.) coupled to a memory and bus control <NUM>. The processor <NUM> can be a number of microprocessors, or some other type of controlling circuitry, such as a number of application-specific integrated circuits (ASICs), for example. Other components of the computing system <NUM> may also have processors. The memory and bus control <NUM> can have memory <NUM> and/or other components coupled thereto. In this example, memory and bus control <NUM> is coupled to a host memory <NUM> may include volatile memory (e.g., DRAM) and/or non-volatile memory (e.g., NAND), among other types of memory. In this example, a peripheral and bus control <NUM> may be coupled (e.g., via the host interface <NUM>) to the host memory <NUM>, a flash drive (not shown) (e.g., via a universal serial bus (USB) interface), a non-volatile memory host control interface (NVMHCI) flash memory (not shown), and/or the memory device system <NUM> (e.g., via the system controller <NUM> and through the device interface <NUM>). The memory device system <NUM> can be used in addition to, or in lieu of, a hard disk drive (HDD) in a number of different computing systems. The computing system <NUM> illustrated in <FIG> is one example of such a system.

As one example, the memory device system <NUM> can be a SSD. The memory device system <NUM> can include the device controller <NUM> (e.g., memory control circuitry, firmware, and/or software) coupled to a number of memory resources (e.g., volatile memory devices <NUM> and/or non-volatile memory devices <NUM>) via a bus. Examples of SSD memory resources are described further in connection with <FIG>. Examples of buses (e.g., pins) for coupling the device controller <NUM> to a single unit memory device <NUM> are shown at <NUM> and described in connection with <FIG> (e.g., as input/output (I/O) lines I/O <NUM>, I/O <NUM>,. , I/O <NUM>, although the number of such I/O lines are not limited to <NUM> I/O lines). Examples of buses (e.g., pins) for coupling the device controller <NUM> to a multiplane memory device <NUM>, including a plurality of planes <NUM>, are shown at <NUM> and described in connection with <FIG> (e.g., as data (DQ) buses DQ <NUM>, DQ <NUM>,. , DQ <NUM>, although the number of such DQ buses are not limited to <NUM> I/O lines). The single unit memory device <NUM> with the I/O lines <NUM> shown in <FIG> and the multiplane memory device <NUM> with the DQ buses <NUM> shown in <FIG> are presented by way of example.

The system controller <NUM> includes the host interface <NUM> for communication with the host <NUM> and a device interface <NUM> for communication with the memory devices <NUM> and/or <NUM> just described, via the buses <NUM> and/or <NUM>, among other possibilities, in the volatile memory resources <NUM> and/or non-volatile memory resources <NUM>. Various buses also can send and/or receive various signals (e.g., data signals, control signals, and/or address signals, among others) between the memory device <NUM> and/or the device controller <NUM> thereof and the system controller <NUM>.

Although the example illustrated in <FIG> includes a single device interface <NUM> serving as a bus, the memory device system <NUM> can include a separate data bus (DQ bus), control bus, and/or address bus. Such buses can have various types of bus structures including, but not limited to, bus structures related to Open NAND Flash Interface (ONFI), Compact Flash Interface, Multimedia Card (MMC), Secure Digital (SD), CE-ATA, Industrial Standard Architecture (ISA), MicroChannel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), Firewire (IEEE <NUM>), and Small Computer Systems Interface (SCSI). The system controller <NUM> can be configured to support various data interface types associated with the memory device system <NUM> (e.g., NV-DDR, NV-DDR2, NV-DDR3, etc.).

The system controller <NUM> may include a translation component (not shown), which can be a flash translation layer (FTL), for example, associated with logical to physical address translation between the host <NUM> and memory device system <NUM>. For instance, the translation component may include a mapping table of logical block addresses (LBAs) to physical block addresses (PBAs). The pages, blocks, planes, superblocks, and/or associated word lines described herein also may be mapped from logical addresses to physical addresses (e.g., by the device controller <NUM>). For example, statuses of the superblocks <NUM> and <NUM>, blocks <NUM>, and planes <NUM> shown as documented in tables and described in connection with <FIG> and <FIG> may each include a link to the physical addresses thereof, in combination with an address to each of the word lines with which they are associated (e.g., coupled). Although not shown in <FIG>, device controller <NUM> may also include various other components implemented in hardware, firmware, and/or software and associated with management of memory device system <NUM>.

<FIG> is a block diagram of an apparatus in the form of a memory device <NUM> configured to perform ADWLSV operations in accordance with the present disclosure. The memory device <NUM> illustrated in <FIG> shows an example of single unit memory device that may be utilized for performance of ADWLSV operations, as described herein. The memory device <NUM> may be configured as a volatile memory resource (e.g., DRAM, among other volatile memory device configurations) or as a non-volatile memory resource (e.g., NAND, among other non-volatile memory device configurations).

As described in connection with <FIG>, the memory device <NUM> illustrated in <FIG> can include a number of buses <NUM> (e.g., I/O <NUM>, I/O <NUM>,. , I/O <NUM>) for coupling to the device controller <NUM> internal to the memory device system <NUM> including memory device <NUM> (e.g., for input and/or output of programming operations as directed, via the device interface <NUM>, by the system controller <NUM> internal to the host <NUM>). The memory device <NUM> may include a plurality of blocks, as described herein. As one example, a single block (e.g., <NUM>) may include <NUM> pages associated with a number of word lines (not shown). In this example, eight pages each associated with a single word line, with each word line coupled to a single bus (e.g., eight buses <NUM> in <FIG>), yields <NUM> pages for the single block <NUM>. Each page may have a data storage capacity of <NUM> (<NUM>) bytes and the memory device <NUM> may have <NUM> (<NUM>) blocks.

Each word line described in connection with <FIG> may be coupled to a bus <NUM>. Each bus may be coupled to one or more word lines. For example, a plurality of word lines per bus <NUM> may be oriented vertically (e.g., stacked) in the block <NUM> to form a multiple of the number of buses (e.g., eight in <FIG>) times the number of the plurality of word lines per bus <NUM> as the number of word lines per block <NUM>.

<FIG> is a block diagram of an apparatus in the form of a multiplane memory device <NUM> configured to perform ADWLSV operations in accordance with the present disclosure. The multiplane memory device <NUM> illustrated in <FIG> shows an example of a four plane memory device (e.g., plane <NUM>, plane <NUM>, plane <NUM>, and plane <NUM> as shown at <NUM>, although examples may include <NUM>, <NUM>, <NUM>, <NUM>, etc., planes) that may be utilized for performance of ADWLSV operations. A combination of the plurality of planes of the multiplane memory device <NUM> may be termed a logical unit (LUN). The multiplane memory device <NUM> may be configured as a volatile memory resource (e.g., DRAM, among other volatile memory device configurations) or as a non-volatile memory resource (e.g., NAND, among other non-volatile memory device configurations). For clarity, the multiplane memory device <NUM> illustrated in <FIG> is described below in the non-volatile NAND configuration.

The LUN <NUM> may provide a storage volume for the memory device system <NUM> shown and described in connection with <FIG>. The planes <NUM> can be dies or chips, which when combined can be referred to as the LUN <NUM>. For example, the planes <NUM> can be multi-chip packages (MCPs) that each include a number of dies. The dies can be, for example, NAND dies that include a number of arrays of NAND flash memory cells and associated peripheral circuitry (e.g., write circuitry, read circuitry, I/O circuitry, buffers, etc.).

As described in connection with <FIG>, the LUN <NUM> illustrated in <FIG> can include a number of buses <NUM> (e.g., data buses DQ <NUM>, DQ <NUM>,. , DQ <NUM>) for coupling to the device controller <NUM> internal to the memory device system <NUM> (e.g., for input and/or output of programming operations as directed, via the device interface <NUM>, by the system controller <NUM> internal to the host <NUM>). Each of the memory planes <NUM> may include a plurality of blocks, as described herein. As one example, a single block (e.g., <NUM>) in each plane may include <NUM> pages associated with a number of word lines (not shown). In this example, <NUM> pages each associated with a single word line, with each word line coupled to a single bus (e.g., eight buses <NUM> in <FIG>), yields <NUM> pages for a single block <NUM> in each plane <NUM>. Each page may have a data storage capacity of <NUM> (<NUM>) bytes and each plane <NUM> of the LUN <NUM> may have <NUM> (<NUM>) blocks. As illustrated in <FIG>, the combination of the planes of the LUN may include <NUM> (<NUM>) blocks (<NUM> planes times <NUM> blocks per plane equals <NUM> blocks).

The system controller <NUM> and/or the device controller <NUM> may address a combination of the blocks (along with the pages therein) of the LUN <NUM> as a single unit (e.g., a superblock, as shown at <NUM> and described in connection with <FIG>). For example, for the four plane LUN <NUM> shown in <FIG> to include <NUM> blocks, plane <NUM> may include blocks <NUM>, <NUM>,. , <NUM>, plane <NUM> may include blocks <NUM>, <NUM>,. , <NUM>, plane <NUM> may include blocks <NUM>, <NUM>,. , <NUM>, and plane <NUM> may include blocks <NUM>, <NUM>,. Hence, as one example, a superblock may be addressed at block <NUM>, block <NUM>, block <NUM>, and block <NUM>, in corresponding planes <NUM>, <NUM>, <NUM>, and <NUM>, for performance of a programing operation that includes performance of an ADWLSV operation.

Each word line described in connection with <FIG> may be coupled to a bus <NUM>. Each bus may be coupled to one or more word lines. For example, a plurality of word lines per bus <NUM> may be oriented vertically (e.g., stacked) in each block <NUM> of each plane <NUM> to form a multiple of the number of buses (e.g., eight in <FIG>) times the number of the plurality of word lines per bus <NUM> as the number of word lines per block <NUM>.

In the example shown in <FIG>, each block <NUM>, <NUM>,. , <NUM> and/or superblock formed from a block from each of clocks <NUM>, <NUM>, <NUM>, and <NUM> includes memory cells which can be erased together as a unit (e.g., the cells in each physical block can be erased in a substantially simultaneous manner as an erase unit). Each block may include a number of physical rows of memory cells that can each be coupled to a respective word line (e.g., access line). The number of rows in each block can be <NUM>, <NUM>, or <NUM>, but are not limited to a particular number of rows, which can be referred to collectively as rows per block.

As one of ordinary skill in the art will appreciate, each row coupled to a word line can include a number of physical pages of cells. A physical page of cells can refer to a number of memory cells that may be programmed and/or written together or as a functional group. For instance, each row can include multiple physical pages of cells (e.g., an even page associated with cells coupled to even-numbered bit lines, and an odd page associated with cells coupled to odd numbered bit lines). Additionally, for examples including multilevel cells, a physical page can store multiple logical pages of data with each cell in a physical page contributing a bit toward a logical lower page, a bit toward a logical upper page, and one or more bits toward a respective number of logical intermediate pages.

The NAND memory devices described as example memory resources for the memory device <NUM> illustrated in <FIG> and/or the LUN <NUM> illustrated in <FIG> may include NAND dies (e.g., NAND flash arrays) that have single level cells (SLCs) configured to store a single data unit (e.g., one bit), and/or multilevel cells (MLCs) configured to store more than one data unit. Additionally, the cells can be programmable via various different programming processes, which can depend on the quantity of data units stored per cell; however, cells configured to store a particular quantity of data units (e.g., <NUM> bits, <NUM> bits, <NUM> bits, etc.) per cell can be programmable via different programming processes. For example, a <NUM>-bit MLC might be programmable via a two-pass programming process (e.g., a <NUM>-<NUM> process in which a first programming pass places the threshold voltage of the cells from an erase state into one of four distributions based on a lower page and middle page data state and in which a second programming pass places the threshold voltage of the cells from the one of four distributions into one of eight distributions based on the upper page data state), or a three-pass programming process (e.g., a <NUM>-<NUM>-<NUM> process).

The present disclosure is not limited to the example shown in <FIG>. For instance, memory systems can include more or fewer than four planes <NUM> per LUN <NUM> and are not limited to a particular memory array architecture (e.g., NAND, NOR, DRAM, PCM, etc.). In addition, although one device controller <NUM> is shown per memory device system in <FIG>, examples may include a device controller <NUM> per memory device <NUM> in <FIG> and/or a device controller <NUM> per LUN <NUM> or plane <NUM> thereof in <FIG> (e.g., one controller per NAND die).

The memory devices <NUM> and/or <NUM>, along with device controller <NUM>, of memory device system <NUM> are configured to track and/control programing operations (e.g., write operations). The device controller <NUM> (e.g., in combination with an associated ADWLSV open block list shown at <NUM> and described in connection with <FIG>) can maintain, internal to the memory device system <NUM>, a status of a number of open blocks in the memory devices (e.g., , the ADWLSV open block list <NUM>). The status can include a programming operation being initiated in the respective number of open blocks (e.g., by the blocks appearing in the ADWLSV open block list <NUM>). The status can be documented in the ADWLSV open block list <NUM> responsive to receipt of (e.g., from the system controller <NUM>) a request to direct initiation of the programming operation to a word line. Further in response to the request, a first group of memory cells (e.g., a page, block, and/or superblock of memory cells, as described herein) associated with the word line can be determined to program first relative to other groups of memory cells associated with the word line.

Included in the status of an open block, a voltage may be maintained at which the first group of memory cells programs. As described herein, the voltage at which the first group of memory cells programs can be the voltage at which the first group of memory cells passes a programming threshold first. The status can further include the open block list that including storage of (e.g., a link to) a number of logical and/or physical addresses indicating the pages, blocks, planes, superblocks, and/or associated word lines line of the open block in the ADWLSV open block list <NUM>.

The device controller <NUM> of the memory device system <NUM> can be further configured to apply a sequence of pulse voltages to the word line to determine a particular voltage in the sequence at which the first group of memory cells associated with the word line programs first (e.g., via dynamically sampling Vt movement). The voltage at which the first group of memory cells programs can be utilized as the voltage applied to a second group of memory cells associated with the word line for a programming operation performed on the second group of memory cells. For example, as shown at <NUM> in the ADWLSV open block list <NUM>, superblock <NUM> may have block <NUM> (e.g., documented at <NUM>) determined to be the block that programs first (e.g., among blocks <NUM>, <NUM>, <NUM>, and <NUM> that are combined to form superblock <NUM>). The voltage at which block <NUM> is determined to be the first top program may be included among information (e.g., documented at <NUM>) included in the status of the ADWLSV open block list <NUM>. The voltage at which the first group of memory cells programs can be utilized as an ADWLSV for a programming operation performed on a second group of memory cells associated with the word line (e.g., blocks <NUM>, <NUM>, and <NUM>).

The device controller <NUM> of the memory device system <NUM> can be further configured to apply the sequence of pulse voltages to the word line and automatically (e.g., dynamically) update in the status of the open block (e.g., in the ADWLSV open block list <NUM>) an ADWLSV for a programming operation as the voltage at which the first group of memory cells programs. The ADWLSV may be dynamically updated for a word line in the open block corresponding to removal (e.g., erasure) of a block associated with the word line. For example, the block may be removed because the block has been determined to no longer be the block that programs first. The block may be automatically replaced with another block that application of the sequence of pulse voltages has determined to program first.

The device controller <NUM> of the memory device system <NUM> can be further configured, as described herein, to utilize the voltage at which the first group of memory cells programs to bypass (e.g., skip) a number of start voltages in a sequence of pulse voltages applied to a second group of memory cells associated with the word line in a programming operation performed on the second group of memory cells. Utilizing the word line start voltage for the first page and/or block to program may allow lower word line start voltages in the sequence of pulse voltages to be bypassed to adjust (e.g., increase) the word line start voltage to be closer to that of the first program. Utilizing the adjusted word line start voltage may enable not utilizing the sequence of pulse voltages to determine an appropriate word line start voltage for the other pages and/or blocks associated with the same word line.

The system controller <NUM> can be coupled to the host <NUM> (e.g., components of the host, as described herein) via the host interface <NUM> and further coupled to a number of memory devices (e.g., internal to the memory device system <NUM>) via the device interface <NUM>. The system controller <NUM> can be configured to direct initiation of a write operation to a page of a block associated with a word line. An example memory device (e.g., as shown at <NUM> and/or <NUM>) can include a plurality of blocks configured to store pages of data. The memory device can be configured to open the block and determine a particular page of the open block to program first responsive to receipt of, from the system controller <NUM>, a write request to direct the initiation of the write operation. The memory device can be further configured to maintain, internal to the memory device, a status of a number of open blocks in the memory device. The status can include an initiated write operation in the respective number of open blocks and a voltage at which the particular page (e.g., the page being part of a particular block) is the first page to program in the respective number of open blocks.

In contrast to the device controller <NUM>, the system controller <NUM> is not configured to track open blocks corresponding to pages of the memory device. The system controller <NUM> also is not configured to update the status of an open block to include a DWLSV for a write operation as the voltage at which the first page programs. In further contrast to the device controller <NUM>, the system controller can include a set features interface (e.g., as shown at <NUM> in <FIG> and <NUM> in <FIG>) configured to direct removal of an entry <NUM> in the ADWLSV open block list <NUM> maintained internal to the memory device. The entry can include an ADWLSV <NUM> for the first page to open of the open block.

The internal device controller <NUM>, in contrast to the system controller <NUM>, can be configured to track open blocks corresponding to pages of the memory device. In further contrast to the system controller <NUM>, the device controller <NUM> can be configured to dynamically update the ADWLSV information <NUM>, including the voltage at which a particular page is the first page to program, for tracked open blocks.

The write request (e.g., from the system controller <NUM>) can include a block identifier and/or a page identifier (e.g., physical addresses of the block and/or page for direction of the write operation). However, the system controller <NUM> can be unaware of whether the block identifier corresponds to an open block when sending the write request. In contrast, the status of a particular block being open can be documented by being an entry <NUM> of a block and/or superblock <NUM> in the ADWLSV open block list <NUM> associated with the device controller <NUM>.

The system controller <NUM> coupled to the host <NUM> can be a system SSD controller that can be further coupled, via a bus (e.g., device interface <NUM>), to an internal SSD device controller (e.g., operating as the device controller <NUM>) of the memory device. The memory device in the memory device system <NUM> coupled to the internal SSD device controller can be a number of SSDs configured as a volatile memory resource (e.g., as shown at <NUM> and described in connection with <FIG> and elsewhere herein) and/or as a non-volatile memory resource (e.g., as shown at <NUM> and described in connection with <FIG> and elsewhere herein).

An example of a non-volatile memory resource can be configured as a non-volatile multiplane memory resource (e.g., LUN <NUM> described in connection with <FIG>). The multiplane memory resource can be configured to form a superblock (e.g., superblocks <NUM> described in connection with <FIG>) that can each include a plurality of planes <NUM>. An example of a superblock can include a first block in a first plane (e.g., plane <NUM>) as a first page group associated with a word line and a second block in a second plane (e.g., plane <NUM>) as a second page group associated with the word line. The first block in the first plane and the second block in the second plane can be configured to perform write operations concurrently as directed by the SSD controller internal to the memory device system. As described herein, the memory device (e.g., the SSD controller internal to the memory device system) can be further configured to utilize the voltage at which the first page in the first plane or the second page in the second plane is the first to program as the voltage applied in a write operation to another group of memory cells in the other plane associated with the word line.

<FIG> illustrates a table illustrating examples of particular blocks of memory cells of a multiplane memory device <NUM> combined into superblocks <NUM> in accordance with the present disclosure. Groups of memory cells can be organized as a number of physical blocks in accordance with the present disclosure. As one example illustrated in <FIG>, the number of physical blocks can be organized as blocks <NUM>, <NUM>,. , <NUM> in plane <NUM>, blocks <NUM>, <NUM>,. , <NUM> in plane <NUM>, blocks <NUM>, <NUM>,. , <NUM> in plane, and blocks <NUM>, <NUM>,. , <NUM> in plane <NUM> of a multiplane memory device <NUM>.

The table illustrated in <FIG> shows a number of example superblocks <NUM> that combine one block from each of planes <NUM>, <NUM>, <NUM>, and <NUM> that have been utilized, or may potentially be utilized, to form an open superblock in a programming operation (e.g., a write operation). The superblocks (e.g., superblocks <NUM>, <NUM>,. , <NUM>) may be subject to performance of ADWLSV operations, as described herein, to determine an appropriate word line start voltage for each superblock (e.g., as shown at <NUM> and described in connection with <FIG>).

In a number of examples, various combinations of blocks may be combined to form a superblock. <FIG> illustrates a few of these examples; however, the present disclosure is not limited to the configuration of the superblocks shown in <FIG>. For example, superblock <NUM> is shown to include block <NUM>, block <NUM>, block <NUM>, and block <NUM>, in corresponding planes <NUM>, <NUM>, <NUM>, and <NUM>. Superblock <NUM> is shown to include block <NUM>, block <NUM>, block <NUM>, and block <NUM>, in corresponding planes <NUM>, <NUM>, <NUM>, and <NUM>. Among other superblocks, the table also shows superblock <NUM> to include block <NUM>, block <NUM>, block <NUM>, and block <NUM>, in corresponding planes <NUM>, <NUM>, <NUM>, and <NUM>.

The number of combinations of blocks that form the superblocks <NUM> is shown to be nine in <FIG>. For example, as indicated by the ellipses in the table, any combination of the blocks <NUM>, <NUM>,. , <NUM> from the appropriate planes <NUM>, <NUM>, <NUM>, and <NUM> may be listed in the table. In addition, the superblocks are listed as superblock numbers <NUM>, <NUM>,. , <NUM> for clarity. However, as indicated by the ellipses between superblocks <NUM> and <NUM> and superblocks <NUM> and <NUM>, there can be any number of superblocks between these consecutively listed superblocks, and after superblock <NUM>, which may affect the numbering sequence and/or the total number of superblocks.

<FIG> illustrates a table illustrating examples of an ADWLSV open block list <NUM> maintained internal to the multiplane memory device in accordance with the present disclosure.

As described herein, an open block may refer to a physical block of memory cells in which, responsive to receipt of a request to direct initiation of a programming operation to a word line coupled to the block, an indicator (e.g., an entry) of the initiated programming operation is stored to document that the block is open. The block and/or superblock may remain open until a last page in the block and/or the superblock is programmed, a request (e.g., a write command from system controller <NUM> via device controller <NUM>) is received to direct initiation of a programming operation to a first page of an already programmed block and/or superblock, and/or a command is received to remove (e.g., erase) a particular entry for a block and/or superblock. A command to remove a number of entries may be received from the system controller <NUM> via the device controller <NUM> utilizing a set features interface (e.g., as shown at <NUM> and <NUM> and described further in connection with <FIG>).

The memory device system <NUM> may be configured to maintain, in the ADWLSV open block list <NUM> internal to the memory device system <NUM>, a status of a number of open blocks in the memory device system <NUM>. The status can include that a programming operation has been initiated in the number of open blocks by the particular blocks being listed in the ADWLSV open block list (e.g., in response to receipt of a request to direct initiation of the programming operation to a word line).

As described herein, an open block list may include a number of entries <NUM> that are stored therein until removed. As one example, the ADWLSV open block list <NUM> illustrated in <FIG> may allow (e.g., be limited to) eight entries (e.g., entry <NUM>, entry <NUM>,. , entry <NUM>. For example, an ADWLSV open block list may be configured to allow <NUM>, <NUM>, <NUM>, <NUM>, etc., open block entries, among other possible numbers of entries. The number of entries in the ADWLSV open block list <NUM> may be determined by available area in the memory device and/or a controller thereof, complexity, and/or cost thereof, among other considerations.

An example ADWLSV open block list <NUM> illustrated in <FIG> may be maintained internal to a memory device system <NUM> that includes, and/or internal to a device controller (e.g., device controller <NUM> shown in memory device system <NUM> and described in connection with <FIG>) that is associated with (e.g., coupled to), a multiplane memory device (e.g., LUN <NUM> shown in and described in connection with <FIG>). The ADWLSV open block list <NUM> may list a number of open superblocks <NUM>, which at any point in time, depending on the programming activity LUN <NUM>, may include no open superblocks, one open superblock, or a plurality of open (e.g., superblocks <NUM>,. , <NUM> as shown in <FIG>).

For each open superblock <NUM>, the memory device system <NUM> may determine (e.g., via dynamically sampling Vt movement) a group of memory cells (e.g., a block <NUM>) that programs first relative to other blocks associated with the word line and included in the superblock. The block <NUM> that programs first may be associated with a particular word line to which a programming operation (e.g., write operation) is directed. An indicator of the block <NUM> (e.g., a number of the block, as shown and described in connection with planes <NUM>, <NUM>, <NUM>, and <NUM> of <FIG>) may be maintained (e.g., documented) in the ADWLSV open block list <NUM> as part of the status of each entry <NUM> and/or each open superblock <NUM>. Further ADWLSV information (info) may be recorded in the ADWLSV open block list <NUM> as part of the status of each entry <NUM> and/or each open superblock <NUM>. As one example, the further ADWLSV info <NUM> may include a particular voltage at which a particular block <NUM> is the first block to program.

For example, entry <NUM> (as shown in bold at <NUM>) of the upper ADWLSV open block list <NUM> documented at a first point in time (e.g., before the lower ADWLSV open block list <NUM> is documented) illustrates entry <NUM> to document superblock <NUM> (e.g., as shown in <FIG>) as being open. As shown in <FIG>, block <NUM> is in plane <NUM> and is part of superblock <NUM>, in combination with block <NUM> from plane <NUM>, block <NUM> from plane <NUM>, and block <NUM> from plane <NUM>. Entry <NUM> at <NUM> in <FIG> shows block <NUM> at <NUM> as being the first to program, relative to the other blocks <NUM>, <NUM>, and <NUM> of superblock <NUM>. The block <NUM> ADWLSV info <NUM> includes the particular voltage at which block <NUM> is determined to be the first block to program. As such, the particular voltage for block <NUM> may be utilized as the word line start voltage for programming (e.g., performing a write operation to) memory cells in the other blocks associated with (e.g., coupled to) the word line and/or combined with block <NUM> to form superblock <NUM>.

Entry <NUM> (as shown in bold at <NUM>) of the lower ADWLSV open block list <NUM>, which may be the same open block list as shown in the upper list that is documented at a second point in time (e.g., after the upper ADWLSV open block list <NUM> is documented) illustrates entry <NUM> to document superblock <NUM> (e.g., as shown in <FIG>) as being open. As shown in <FIG>, block <NUM> is in plane <NUM> and is part of superblock <NUM>, in combination with block <NUM> from plane <NUM>, block <NUM> from plane <NUM>, and block <NUM> from plane <NUM>. Entry <NUM> at <NUM> in <FIG> shows block <NUM> at <NUM> as being the first to program, relative to the other blocks <NUM>, <NUM>, and <NUM> of superblock <NUM>. The block <NUM> ADWLSV info <NUM> includes the particular voltage at which block <NUM> is determined to be the first block to program. As such, the particular voltage for block <NUM> may be utilized as the word line start voltage for programming memory cells in the other blocks associated with the word line and/or combined with block <NUM> to form superblock <NUM>.

Similar status information concerning other open blocks and/or superblocks (e.g., for each of entries <NUM>. , <NUM>) may be dynamically documented (e.g., updated) at various time points (e.g., to dynamically document the programming activity of LUN <NUM>). For example, the information for an entry (e.g., entry <NUM>) concerning a superblock that is no longer open (e.g., superblock <NUM>), and thereby having been automatically removed (e.g., erased) from the ADWLSV open block list <NUM>, may be automatically replaced by an entry (e.g., at the same entry <NUM>) concerning a superblock (e.g., superblock <NUM>) that is currently open. An entry may be replaced by writing over previously documented status information with information concerning a currently open superblock.

When the allowed entries (e.g., eight entries) of the ADWLSV open block list <NUM> are all utilized, information (e.g., status) concerning an additional open superblock entry (e.g., superblock <NUM>) may not be allowed until information concerning at least one of the entries (e.g., superblock <NUM>) already documented in the ADWLSV open block list <NUM> is removed (e.g., due to no longer being open). Information concerning the additional open superblock may be stored (e.g., in a buffer) until information concerning the entry already stored in the ADWLSV open block list <NUM> is removed. Alternatively or in addition, the device controller <NUM> and/or the system controller <NUM> (e.g., the set features interface shown at <NUM> and described in connection with <FIG>) may be configured to direct adjustment of the number of entries allowed in the ADWLSV open block list <NUM> maintained internal to the memory device system <NUM>.

The information concerning an entry (e.g., the status concerning a superblock) already documented in the ADWLSV open block list <NUM> may be removed due to, for example, a write operation to the plurality of blocks of a superblock being completed (e.g., a last page in a last block of the superblock being programmed). Information concerning an entry in the ADWLSV open block list <NUM> may be removed in response to a command received to remove (e.g., clear, erase, write over) information concerning a particular entry for a block and/or superblock. The command to remove the information concerning the particular entry may be received from the system controller <NUM> (e.g., via the device controller <NUM>). In one example, the system controller <NUM> may direct removal of the information concerning the particular entry via the set features interface shown at <NUM> and described in connection with <FIG>.

An entry in the ADWLSV open block list <NUM> may be removed resulting from a request (e.g., a write command) being received to direct initiation of a programming operation to a first page of an already programmed block and/or superblock. Being directed to program the first page of the already programmed block and/or superblock may be considered as initiating another P/E cycle for the block and/or superblock. Initiating another P/E cycle may prompt performance of another round of sampling Vt movement of the pages and/or blocks of the superblock, which results in removal of the already documented status information and replacement of the same with updated status information. The updated status information for the superblock may include documentation of a different block <NUM> having different ADWLSV info <NUM> that includes a revised (e.g., increased) voltage for the first block to program based on the dynamic sampling of Vt movement.

The device controller <NUM> internal to memory device system <NUM> can be configured to receive a write command from an external controller (e.g., system controller <NUM>) to a memory device (e.g., memory devices <NUM> and/or <NUM>) including an array of memory cells formed as a plurality of blocks and/or superblocks.

As one example, a write command can be issued to a first page of a word line. Issuing the write command can result in determining a particular voltage in a sequence of applied pulse voltages at which a particular page associated with the word line programs first relative to other pages associated with the word line. The particular voltage can be added to the status of an entry (e.g., documented in <NUM>) of the ADWLSV open block list <NUM>. A write command being issued to a subsequent page of the word line can result in automatically applying the particular voltage as the ADWLSV during performance of the write operation to the subsequent page of the word line.

Initiation of the write command can result in a number of blocks being opened and maintaining, internal to the memory device (e.g., device controller <NUM>) a status of a number of open blocks in the memory device. The status (e.g., as documented in the ADWLSV open block list <NUM>) can include an initiated write operation in the respective number of open blocks, a voltage at which a particular block in the respective number of open blocks includes a first page to program (e.g., as shown at <NUM>) and an indication of which block (e.g., by documenting the block number) in the respective number of open blocks includes the first page to program (e.g., as shown at <NUM>).

Prior to writing the block, the memory device (e.g., device controller <NUM>) can determine from the status the voltage at which the first page programs. The memory device can apply the determined voltage as an ADWLSV during performance of the write operation to the particular open block and the remainder of the respective number of open blocks (e.g., in the superblock).

Maintaining the indication of which block in the respective number of open blocks internal to the memory device (e.g., in the ADWLSV open block list <NUM> associated with the device controller <NUM>) includes the first page to program can take the place of (e.g., replace) the memory device receiving the indication from the external controller (e.g., the system controller <NUM> internal to the host <NUM>) in association with the write request. For example, various previous approaches might involve the host and/or system controller <NUM> thereof tracking open blocks of the memory device and/or managing information concerning word line start voltages. However, available area in the host <NUM> and/or the system controller <NUM>, complexity, and/or cost thereof, among other considerations, may limit the suitability of performing these operations in the host.

In contrast, such operations may be performed by, and information associated with such operations may be stored (e.g., documented) in, the memory devices and/or device controllers internal to the memory device system <NUM>. The command from the system controller <NUM> for performance of the programming operation may include the address information related to the pages, blocks, superblocks, and/or word lines. Such address information may be utilized by the memory devices and/or device controllers internal to the memory device system <NUM> in performance of tracking the open blocks and/or managing information concerning word line start voltages.

The external controller may be a system SSD controller and the memory device may be a multiplane memory device including an internal SSD controller (e.g., device controller <NUM> internal to the memory device system <NUM>). Based on the status of the number of open blocks, the internal SSD controller can determine which of a number of different voltages, at which the first page programs in a plurality of open blocks, to apply as the ADWLSV. Such a determination may be made by matching a superblock word line address included in the write command to a superblock address associated with the indication of which block in the respective number of open blocks at the superblock address includes the first page to program.

When the write command to the memory device is initiated, a first entry (e.g., as shown at <NUM> in the ADWLSV open block list <NUM>) can be automatically added (e.g., documented), including a block address corresponding to the write command, to the ADWLSV open block list internal to the memory device. The ADWLSV open block list <NUM> may be configured to allow a particular number of entries (e.g., eight entries as shown in the example shown in <FIG>). A second entry (e.g., which may be different from or the same as the first entry) can be automatically removed (e.g., erased or written over) from the ADWLSV open block list <NUM> upon occurrence of either the write command being issued to a first page of a word line corresponding to the entry or execution of the write command results in performance of the write operation from the first page through a last page of the block. The first entry can be automatically added to the ADWLSV open block list <NUM> in place of the removed second entry. As an example, the second entry may bring the number of entries in the ADWLSV open block list <NUM> to the particular number allowed and occurrence of the first entry being added may be contingent upon the second entry being removed.

<FIG> illustrates a table illustrating an example of a set features interface <NUM> maintained internal to a host <NUM> in accordance with the present disclosure. As shown at <NUM> and described in connection with <FIG>, the set features interface <NUM> internal to the host <NUM> may be associated with (e.g., formed as part of) the system controller <NUM>.

In contrast to the device controller <NUM> internal to the memory device system <NUM> being configured to, for example, actively direct tracking of Vts for the memory cells associated with a word line and actively direct adjusting (e.g., increasing) the word line start voltage accordingly, the set features interface <NUM> of the system controller <NUM> may be configured instead to monitor and/or control such operations. The table of the set features interface <NUM> shown in <FIG> may include a number of features <NUM>, with a number of the features having a plurality of options <NUM>. The features <NUM> and/or options <NUM> in the set features interface <NUM> may be selectably enabled (e.g., applied) via input of commands. The commands may be input from processor <NUM>, memory and bus control <NUM>, peripheral and bus control <NUM>, host memory <NUM>, system controller <NUM>, and/or a user (not shown), among other possibilities.

An example of a feature <NUM> in the set features interface <NUM> can be direction of removal <NUM> of a block and/or a superblock from the ADWLSV open block list (e.g., as shown at <NUM> and described in connection with <FIG>). Such removal may be selectably enabled (e.g., directed) to particular I/O lines <NUM> and/or data buses <NUM> (e.g., DQ <NUM>, DQ <NUM>,. , DQ <NUM> shown at <NUM>) and associated page, block, superblock, and/or word line addresses.

For example, removal <NUM> of blocks optionally may not be enabled <NUM> (e.g., as a default option <NUM>) concerning data buses DQ <NUM> and DQ <NUM> from the ADWLSV open block list <NUM>. Not enabling an option may be achieved by entry of a <NUM> data value for particular data buses in the set features interface <NUM> or leaving an entry unchanged from a default value. Removal of selected blocks and/or superblocks <NUM> from the ADWLSV open block list <NUM> is another option <NUM> that may be enabled. For example, removal of selected blocks and/or superblocks may be enabled (e.g., by entry of a <NUM> data value) for DQ <NUM> and may be disabled (e.g., by entry of a <NUM> data value) for DQ <NUM>. Removal of all blocks and/or superblocks <NUM> from the ADWLSV open block list <NUM> is another option <NUM> that may be enabled. For example, removal of all blocks and/or superblocks may be enabled (e.g., by entry of a <NUM> data value) for DQ <NUM> and may be disabled (e.g., by entry of a <NUM> data value) for DQ <NUM>.

Another example of a feature <NUM> in the set features interface <NUM> can be direction to read <NUM> a status of the ADWLSV open block list <NUM>. Reading of such a status may be selectably enabled (e.g., directed) to particular DQs (e.g., DQ <NUM>, DQ <NUM>,. , DQ <NUM> shown at <NUM>) and associated page, block, superblock, and/or word line addresses. For example, an option <NUM> (e.g., a default option) may be to read a status of the ADWLSV open block list <NUM> when a number of entries are still available (e.g., based on the allowed number of entries not yet being utilized). The default option may be achieved by entry of a <NUM> data value (e.g., as directed by device controller <NUM>) for particular data buses in the set features interface <NUM> or leaving an entry unchanged from a default value. For example, DQ <NUM> has the default option enabled. Another option <NUM> that may be enabled is to read a status of the ADWLSV open block list <NUM> when all the allowed entries are utilized. This option may be achieved, for example, by entry of a <NUM> data value for DQ <NUM> (e.g., as directed by device controller <NUM>). System controller <NUM> may access (e.g., read) the status of the ADWLSV open block list <NUM> based upon either of the options just described being enabled by the device controller <NUM>.

Claim 1:
An apparatus, comprising:
a system controller (<NUM>); and
a non-volatile memory device (<NUM>) configured to:
maintain, internal to a device controller of the memory device (<NUM>), an open block list whose entries provide respective statuses of a number of open blocks in the memory device (<NUM>);
responsive to receipt of, from the system controller (<NUM>), a request to direct initiation of a programming operation to a word line, determine a first page associated with the word line that programs first relative to other pages associated with the word line; and
maintain, included in the status of an open block, a voltage at which the first page programs.