# US 10,481,830 B2 · Selectively throttling host reads for read disturbs in non-volatile memory system

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

- Number: US 10,481,830 B2
- Document ID: US10481830B2
- Status: Granted
- Kind: B2
- Application number: 15/422,421
- Filed: 2017-02-01
- Published: 2018-01-25
- Granted: 2019-11-19
- Earliest claimed: 2016-07-25
- Assignees: SanDisk Technologies LLC
- Applicants: SanDisk Technologies LLC
- Inventors: James M. Higgins; Ryan R. Jones
- Web page: https://patentgrep.com/patent/US10481830B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0616: {in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G11C 16/26: Sensing or reading circuits; Data output circuits
- G11C 16/3422: {Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem}
- G11C 16/349: {Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

The various implementations described herein include systems, methods, and/or devices used to selectively throttle host reads in memory devices. The method includes: (1) identifying a storage location in the non-volatile memory system with high read disturbs vulnerable to reliability issues, (2) determining if the identified storage location is being throttled for host reads, (3) in accordance with a determination that the identified storage location does not satisfy the predefined read throttling criteria, initiate execution of a read operation, otherwise, enqueue read commands for deferred execution.

## Claims

### Claim 1

A method of processing read requests in a non-volatile memory system, the method comprising:
receiving, from a host device external to the non-volatile memory system, a read request to read data from the non-volatile memory system; and
in response to receiving the read request:
identifying a storage location in the non-volatile memory system corresponding to data requested by the read request received from the host device;
determining if the identified storage location satisfies predefined read disturb criteria;
in accordance with a determination that the identified storage location does not satisfy the predefined read disturb criteria, initiating execution of a read operation corresponding to the read request on the identified storage location; and
in accordance with a determination that the identified storage location satisfies the predefined read disturb criteria;
determining if the identified storage location satisfies predefined non-activity criteria for a predefined time period; and
in accordance with a determination that the identified storage location satisfies predefined non-activity criteria for the predefined time period:
enqueuing a read command corresponding to the read request to perform the read operation on the identified storage location for deferred execution; and
initiating execution of read operations corresponding to the enqueued read command and other enqueued read commands at a predefined rate, wherein the predefined rate has a predefined ratio with the predefined time period.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining if the identified storage location satisfies predefined read disturb criteria includes determining if the identified storage location falls within a range of non-volatile memory locations that satisfy the predefined read disturb criteria.

### Claim 3 (depends on 2)

The method of claim 2, wherein the range of non-volatile memory locations satisfy the predefined read disturb criteria if a read disturb count for the range of non-volatile memory locations satisfies a read disturb count threshold.

### Claim 4 (depends on 2)

The method of claim 2, wherein enqueuing the read command comprises placing the read command on a command execution queue that corresponds to the range of non-volatile memory locations.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
identifying a storage location in the non-volatile memory system corresponding to data requested by the read request received from the host device comprises translating a logical address specified by the read request into a physical address in non-volatile memory in the non-volatile memory system;
the logical address is in a logical address space of the host device; and
the physical address is a physical address in a physical address space of the non-volatile memory system.

### Claim 6 (depends on 1)

The method of claim 1, wherein the non-volatile memory system comprises a three-dimensional memory.

### Claim 7

A non-volatile memory controller for controlling access to non-volatile memory in a non-volatile memory system, the non-volatile memory controller comprising:
a host interface for receiving, from a host device external to the non-volatile memory system, a read request to read data from the non-volatile memory system;
one or more processors; and
memory storing one or more programs for execution by the one or more processors, the one or more programs including instructions for:
identifying a storage location in the non-volatile memory system corresponding to data requested by the read request received from the host device;
determining if the identified storage location satisfies predefined read disturb criteria;
in accordance with a determination that the identified storage location does not satisfy the predefined read disturb criteria, initiating execution of a read operation corresponding to the read request on the identified storage location; and
in accordance with a determination that the identified storage location satisfies the predefined read disturb criteria;
determining if the identified storage location satisfies predefined non-activity criteria for a predefined time period; and
in accordance with a determination that the identified storage location satisfies predefined non-activity criteria for the predefined time period:
enqueuing a read command corresponding to the read request to perform the read operation on the identified storage location for deferred execution; and
initiating execution of read operations corresponding to the enqueued read command and other enqueued read commands at a predefined rate, wherein the predefined rate has a predefined ratio with the predefined time period.

### Claim 8 (depends on 7)

The non-volatile memory controller of claim 7, wherein the one or more programs include:
a read module for receiving read requests from the host device and for initiating execution of read operations on particular storage locations in the non-volatile memory system;
a read disturb module for counting or tracking read disturbs on predefined memory portions of the non-volatile memory system; and
a deferred execution module for initiating execution of read commands that have been enqueued for deferred execution.

### Claim 9 (depends on 7)

The non-volatile memory controller of claim 7, wherein determining if the identified storage location satisfies predefined read disturb criteria includes determining if the identified storage location falls within a range of non-volatile memory locations that satisfy the predefined read disturb criteria.

### Claim 10 (depends on 9)

The non-volatile memory controller of claim 9, wherein the range of non-volatile memory locations satisfy the predefined read disturb criteria if a read disturb count for the range of non-volatile memory locations satisfies a read disturb count threshold.

### Claim 11 (depends on 9)

The non-volatile memory controller of claim 9, wherein enqueuing the read command comprises placing the read command on a command execution queue that corresponds to the range of non-volatile memory locations.

### Claim 12 (depends on 7)

The non-volatile memory controller of claim 7, wherein the memory comprises a three-dimensional memory.

### Claim 13

A non-volatile memory system comprising:
means for receiving, from a host device external to the non-volatile memory system, a read request to read data from a non-volatile memory in the non-volatile memory system;
means for identifying a storage location in the non-volatile memory corresponding to data requested by the read request received from the host device;
means for determining if the identified storage location satisfies predefined read disturb criteria and, in accordance with a determination that the identified storage location does not satisfy the predefined read disturb criteria, for initiating execution of a read operation corresponding to the read request on the identified storage location; and
means for, in accordance with a determination that the identified storage location satisfies the predefined read disturb criteria:
determining if the identified storage location satisfies predefined non-activity criteria for a predefined time period; and
in accordance with a determination that the identified storage location satisfies predefined non-activity criteria for the predefined time period:
enqueuing a read command corresponding to the read request to perform the read operation on the identified storage location for deferred execution; and
initiating execution of read operations corresponding to the enqueued read command and other enqueued read commands at a predefined rate, wherein the predefined rate has a predefined ratio with the predefined time period.

### Claim 14 (depends on 13)

The non-volatile memory system of claim 13, further comprising:
read disturb tracking means for counting or tracking read disturbs on predefined memory portions of non-volatile memory system; and
deferred execution means for initiating execution of read commands that have been enqueued for deferred execution.

### Claim 15 (depends on 13)

The non-volatile memory system of claim 13, wherein the means for determining if the identified storage location satisfies predefined read disturb criteria includes means for determining if the identified storage location falls within a range of non-volatile memory locations that satisfy the predefined read disturb criteria.

### Claim 16 (depends on 15)

The non-volatile memory system of claim 15, wherein the range of non-volatile memory locations satisfies the predefined read disturb criteria if a read disturb count for the range of non-volatile memory locations satisfies a read disturb count threshold.

### Claim 17 (depends on 15)

The non-volatile memory system of claim 15, wherein enqueuing the read command comprises placing the read command on a command execution queue that corresponds to the range of non-volatile memory locations.

### Claim 18 (depends on 13)

The non-volatile memory system of claim 13, wherein:
means for identifying a storage location in the non-volatile memory system corresponding to data requested by the read request received from the host device comprises means for translating a logical address specified by the read request into a physical address in non-volatile memory in the non-volatile memory system;
the logical address is in a logical address space of the host device; and
the physical address is a physical address in a physical address space of the non-volatile memory system.

### Claim 19 (depends on 13)

The non-volatile memory system of claim 13, wherein the non-volatile memory comprises a three-dimensional memory.
