# US 10,319,445 B1 · Programming unprogrammed upper page during lower page programming of multi-level storage cells

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,319,445 B1
- Document ID: US10319445B1
- Status: Granted
- Kind: B1
- Application number: 15/828,417
- Filed: 2017-11-30
- Published: 2019-05-30
- Granted: 2019-06-11
- Earliest claimed: 2017-11-30
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Bhavadip Solanki; Anantharaj Thalaimalai Vanaraj; Suman Tenugu; Arun Thandapani; Piyush Anil Dhotre; Chittoor Devarajan Sunilkumar; Dharmaraju Marenhally Krishna
- Web page: https://patentgrep.com/patent/US10319445B1

## CPC

- G11C 11/5671: {using charge trapping in an insulator}
- G11C 16/10: Programming or data input circuits
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G11C 11/5628: {Programming or writing circuits; Data input circuits}
- G11C 16/0483: {comprising cells having several storage transistors connected in series}
- G11C 16/26: Sensing or reading circuits; Data output circuits
- G11C 16/3459: {Circuits or methods to verify correct programming of nonvolatile memory cells}
- G11C 2211/562: Multilevel memory programming aspects
- G11C 2211/5646: Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"
- G11C: STATIC STORES (semiconductor memory devices H10B)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Apparatuses, systems, methods, and computer program products for programming an unprogrammed upper page based on lower page programming are disclosed. An apparatus includes a non-volatile storage device and a controller. A controller includes a data component that is configured to receive a write request for a first page of a set of multi-level storage cells of a non-volatile storage device. A set of multi-level storage cells includes a first page and a second page. A controller includes a page component that is configured to determine that a write request does not comprise data for at least a portion of a second page of a set of multi-level storage cells. A controller includes a write component that is configured to program at least a portion of a second page of a set of multi-level storage cells with data of a first page of a set of multi-level storage cells.

## Claims

### Claim 1

An apparatus comprising:
a controller for a non-volatile storage device, the controller comprising:
a data component configured to receive a write request for at least a lower page of a word line of multi-level storage cells of the non-volatile storage device, the word line of multi-level storage cells comprising at least the lower page and an upper page of the word line;
a page component configured to determine that the write request does not comprise data for at least a portion of the upper page of the word line of multi-level storage cells; and
a write component configured to program the at least a portion of the upper page of the word line of multi-level storage cells with data of the at least a lower page of the word line of multi-level storage cells during programming of the at least a lower page of the word line of multi-level storage cells.

### Claim 2 (depends on 1)

The apparatus of claim 1, further comprising a read component configured to receive a read request for at least a portion of the lower the page of the word line of multi-level storage cells.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein:
the data component is further configured to receive a write request for at least a portion of the upper page of the word line of multi-level storage cells;
the write component is further configured to detect that the write request for at least the portion of the upper page of the word line of multi-level storage cells failed; and
the read component is further configured to service a read request for the at least a portion of the lower page of the word line of multi-level storage cells even though the write request for the upper page of the word line of multi-level storage cells failed.

### Claim 4 (depends on 2)

The apparatus of claim 2, wherein the read component is further configured to:
receive a read request for at least a portion of the upper page of the word line of multi-level storage cells;
determine that at least a portion of the lower page of the word line of multi-level storage cells that corresponds to the at least a portion of the upper page of the word line of multi-level storage cells of the read request comprises the same values as the corresponding at least a portion of the upper page of the word line of multi-level storage cells; and
service the read request for the at least a portion of the upper page of the word line of multi-level storage cells from the at least a portion of the lower page of the word line of multi-level storage cells that corresponds to the at least a portion of the upper page of the word line of multi-level storage cells.

### Claim 5 (depends on 2)

The apparatus of claim 2, wherein the read component is further configured to:
determine that the read request for the at least a portion of the lower page of the word line of multi-level storage cells failed;
determine that the values for at least a portion of the upper page of the word line of multi-level storage cells that corresponds to the at least a portion of the lower page of the word line of multi-level storage cells comprises the same values as the at least a portion of the lower page of the word line of multi-level storage cells; and
service the read request for the at least a portion of the lower page of the word line of multi-level storage cells from the at least a portion of the upper page of the word line of multi-level storage cells that corresponds to the at least a portion of the lower page of the word line of multi-level storage cells.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the write component is further configured to:
receive a write request for the at least a portion of the upper page of the word line of multi-level storage cells; and
service the write request for the at least a portion of the upper page of the word line of multi-level storage cells without backing-up the data in the at least a portion of the lower page of the word line of multi-level storage cells prior to servicing the write request for the at least a portion of the upper page of the word line of multi-level storage cells.

### Claim 7 (depends on 1)

The apparatus of claim 1, further comprising a mapping component configured to maintain a mapping of multi-level storage cells of the at least a portion of the upper page of the word line that are programmed with data of the lower page of the word line at the same time as the multi-level storage cells of the at least a portion of the lower page of the word line in response to the write request for the lower page of the word line of the at least a portion of the multi-level storage cells of the lower page of the word line.

### Claim 8 (depends on 7)

The apparatus of claim 7, wherein the mapping component maintains the mapping in metadata for the non-volatile storage device.

### Claim 9 (depends on 1)

The apparatus of claim 1, wherein the write component programs the at least a portion of the upper page of the word line of the multi-level storage cells with the same data as the corresponding at least a portion of the lower page of the word line of the multi-level storage cells.

### Claim 10 (depends on 1)

The apparatus of claim 1, wherein at least a portion of the data component, the page component, and the write component comprise one or more of hardware circuits, programmable hardware devices, and executable code, the executable code stored on one or more non-transitory computer readable storage media.

### Claim 11

An apparatus comprising:
means for receiving first data of a write request for a word line of a non-volatile storage medium, the word line comprising a lower page and an upper page;
means for determining that the first data is sized such that at least a portion of the upper page of the word line is not programmed with at least a portion of the first data in response to programming the lower page of the word line with at least a portion of the first data; and
means for programming the at least a portion of the unprogrammed upper page of the word line with at least a portion of the first data during programming of the lower page of the word line with the first data.

### Claim 12 (depends on 11)

The apparatus of claim 11, further comprising means for receiving a read request for at least a portion of the lower page of the word line.

### Claim 13 (depends on 12)

The apparatus of claim 12, further comprising:
means for receiving a write request for at least a portion of the upper page of the word line;
means for detecting that the write request for at least the portion of the upper page of the word line failed; and
means for servicing the read request for the at least a portion of the lower page of the word line even though the write request for the upper page of the word line failed.

### Claim 14 (depends on 12)

The apparatus of claim 12, further comprising:
means for receiving a read request for at least a portion of the upper page of the word line;
means for determining that at least a portion of the lower page of the word line that corresponds to the at least a portion of the upper page of the word line of the read request comprises the same values as the corresponding at least a portion of the upper page of the word line; and
means for servicing the read request for the at least a portion of the upper page of the word line from the at least a portion of the lower page of the word line that corresponds to the at least a portion of the upper page of the word line.

### Claim 15 (depends on 12)

The apparatus of claim 12, further comprising:
means for determining that the read request for the at least a portion of the lower page of the word line failed;
means for determining that the values for at least a portion of the upper page of the word line that corresponds to the at least a portion of the lower page of the word line comprises the same values as the at least a portion of the lower page of the word line; and
means for servicing the read request for the at least a portion of the lower page of the word line from the at least a portion of the upper page of the word line that corresponds to the at least a portion of the lower page of the word line.

### Claim 16 (depends on 11)

The apparatus of claim 11, further comprising:
means for receiving a write request for the at least a portion of the upper page of the word line; and
means for servicing the write request for the at least a portion of the upper page of the word line without backing-up the first data in the at least a portion of the lower page of the word line prior to servicing the write request for the at least a portion of the upper page of the word line.

### Claim 17 (depends on 11)

The apparatus of claim 11, further comprising means for maintaining a mapping of storage cells of the word line where the same at least a portion of the first data was programmed to both the upper page and the lower page of the word line in response to the write request for the lower page of the word line.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the mapping component maintains the mapping in metadata for the non-volatile storage device.

### Claim 19

A system comprising:
a non-volatile memory device, the non-volatile memory device comprising a plurality of word lines of memory cells; and
a controller for the non-volatile memory device, the controller performing operations for:
programming a lower page of a word line of the plurality of word lines of the non-volatile memory device with data of a write request;
determining at least a portion of memory cells of the word line where an upper page of the word line is not programmed with the data and where the lower page of the word line is programmed with the data; and
programming the at least a portion of the upper page of the word line with the same data used to program the corresponding lower page of the word line.
