# US 8,751,903 B2 · Methods and systems for monitoring write operations of non-volatile memory

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

- Number: US 8,751,903 B2
- Document ID: US8751903B2
- Status: Granted
- Kind: B2
- Application number: 12/843,463
- Filed: 2010-07-26
- Published: 2012-01-26
- Granted: 2014-06-10
- Earliest claimed: 2010-07-26
- Assignees: Apple Inc.
- Applicants: Matthew Byom; Nir J. Wakrat
- Inventors: Matthew Byom; Nir J. Wakrat
- Web page: https://patentgrep.com/patent/US8751903B2

## CPC

- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 11/073: {in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00)}
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/076: {by exceeding a count or rate limit, e.g. word- or bit count limit}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 2212/7204: Capacity control, e.g. partitioning, end-of-life degradation
- G06F 2212/7211: Wear leveling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods are disclosed for monitoring the time it takes to perform a write operation, and based on the time it takes, a determination is made whether to retire a block that is a recipient of the write operation. The time duration of the write operation for a page or a combination of pages may indicate whether any block or blocks containing the page or combination of pages is experiencing a physical failure. That is, if the time duration of the write operation for a particular page exceeds time threshold, this may indicate that this page requires a larger number of program cycles than other pages. The longer programming cycle can be an indication of cell leakage or a failing block.

## Claims

### Claim 1

A method for selectively retiring a block in a non-volatile Nand flash memory, the method comprising:
writing data into at least one page of a block;
determining a time period, Tprogram, it takes for data to be programmed into each of the at least one page;
determining if the Tprogram time period falls within a lower bound and an upper bound of a Tprogram threshold; and
in response to determining that the Tprogram time period falls within the lower and upper bounds of the Tprogram threshold, determining whether to retire the block containing the at least one page based on at least one characteristic associated with the at least one page.

### Claim 2 (depends on 1)

The method of claim 1, wherein the Tprogram threshold is set to identify a page that is potentially experiencing a physical failure.

### Claim 3 (depends on 1)

The method of claim 1, the at least one page may be added to a data structure structure designed to keep track of pages exhibiting longer Tprogram time periods.

### Claim 4 (depends on 1)

The method of claim 1, wherein if the Tprogram time period exceeds the upper bound, the block containing the at least one page having the Tprogram time that exceeds the upper bound is retired.

### Claim 5 (depends on 1)

The method of claim 1, wherein determining the Tprogram time period comprises receiving feedback data from the nand flash memory.

### Claim 6

A method for using timing data associated with a non-volatile memory, the method comprising:
obtaining timing data for at least one page in at least one block, the timing data associated with a time duration to perform a write operation;
applying criteria to the timing data, wherein the criteria comprises a lower time threshold and an upper time threshold; and
determining whether to retire the at least one block if the criteria falls within the lower and upper time thresholds.

### Claim 7 (depends on 6)

The method of claim 6, wherein the timing data comprises a time duration to buffer data and a time duration to program data.

### Claim 8 (depends on 7)

The method of claim 7, wherein applying criteria comprises determining if the time duration to program data exceeds the upper time threshold.

### Claim 9 (depends on 6)

The method of claim 6, wherein obtaining timing data comprises obtaining the timing data for each programmed page in a block.

### Claim 10 (depends on 6)

The method of claim 6, wherein obtaining timing data comprises obtaining the timing data for at least one page in each block of a superblock.
