IP Library › Granted Patent US 9,250,814
Granted Patent B2
US 9,250,814 · App. 13/763,928 · Granted Feb 2, 2016

Command order re-sequencing in non-volatile memory

Inventors: Eyal Gurgi (Herzeliya, IL); Tomer Ish-Shalom (Herzeliya, IL)
Assignee: Apple Inc.
G06F3/0611G06F13/1626G11C16/06
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,250,814
App. No.
13/763,928
Granted
Feb 2, 2016
Kind
B2
Abstract

An apparatus includes a memory and storage circuitry. The storage circuitry is configured to receive at least one request causing execution of a sequence of memory commands in the memory, to identify that, although a first memory command appears in the sequence before a second memory command, the execution of the second memory command would improve a performance of the execution of the first memory command, and to execute the second memory command and then to execute the first memory command with the improved execution performance.

Claims (40)

1. A method, comprising:

in a memory controller that controls a non-volatile memory, receiving at least one request causing execution of a sequence of memory read commands in the non-volatile memory, wherein the non-volatile memory includes a plurality of multi-level memory cells;

identifying a first memory read command of the sequence of memory read commands that appears in the sequence of memory read commands after a second memory read command;

executing the first memory read command, wherein executing the first memory read command includes reading a subset of the plurality of multi-level memory cells using a first plurality of read thresholds to generate first read results, wherein each memory cell of the subset of the plurality of multi-level memory cells is coupled to a common word line;

calculating a second plurality of read thresholds dependent upon the first read results; and

executing the second memory read command, wherein executing the second memory read command includes reading the subset of the plurality of memory cells using the second plurality of read thresholds to generate second read results.

2. The method according to claim 1 , further comprising calculating the second plurality of read thresholds dependent upon at least one read threshhold of the first plurality of read thresholds.

3. The method according to claim 1 , wherein the first read results corresponds to a Least Significant Bit (LSB).

4. The method according to claim 3 , wherein the second read results corresponds to a Most Significant Bit (MSB) page.

5. The method according to claim 4 , wherein executing the first memory read command comprises caching the first read results.

6. The method according to claim 3 , wherein executing the first memory read command includes assessing a condition of the subset of the plurality of multi-level memory cells, and wherein executing the second memory command includes reading the subset of the plurality of multi-level memory cells based on the assessed condition.

7. The method according to claim 1 , wherein identifying the first memory read command includes identifying that the subset of the plurality of multi-level memory cells has a reduced level of interference.

8. The method according to claim 7 , further comprising executing the first memory read command by circuitry coupled to the non-volatile memory, and calculating the second plurality of read thresholds by the memory controller.

9. An apparatus, comprising:

an interface, which is configured to communicate with a non-volatile memory; and

storage circuitry configured to:

receive at least one request causing execution of a sequence of memory read commands in the non-volatile memory, wherein the non-volatile memory includes a plurality of multi-level memory cells;

identify a first memory read command of the sequence of memory read commands that appears in the sequence of memory read commands after a second memory read command;

execute the first memory read command;

wherein to execute the first memory read command, the storage circuitry is further configured to read a subset of the plurality of multi-level memory cells using a first plurality of read thresholds to generate first read results, and wherein each memory cell of the subset of the plurality of multi-level memory cells is coupled to a common word line;

calculate a second plurality of read thresholds dependent upon the first read results; and

execute the second memory read commands;

wherein to execute the second memory read command, the storage circuitry is further configured to read the subset of the plurality of multi-level memory cells using the second plurality of read thresholds to generate second read results.

10. The apparatus according to claim 9 , wherein the storage circuitry is further configured to calculate the second plurality of read thresholds dependent upon at least one read threshold of the first plurality of read thresholds.

11. The apparatus according to claim 9 , wherein the first read results correspond to a Least Significant Bit (LSB) page.

12. The apparatus according to claim 11 , wherein the second read results correspond to a Most Significant Bit (MSB) page.

13. The apparatus according to claim 12 , wherein to execute the first memory read command, the storage circuitry is further configured to cache the first read results.

14. The apparatus according to claim 11 , wherein to execute the first memory read command, the storage circuitry is further configured to assess a condition of the subset of the plurality of multi-level memory cells, and wherein to execute the second memory read command, the storage circuitry is further configured to read the subset of the plurality of multi-level memory cells group based on the assessed condition.

15. The apparatus according to claim 9 , wherein to identify the first memory read command, the storage circuitry is further configured to identify that the subset of the plurality of multi-level memory cells has a reduced level of interference.

16. The apparatus according to claim 15 , wherein the storage circuitry includes circuitry that is coupled to the memory and is configured to execute the first memory read command, and a memory controller configured to calculate the second plurality of read thresholds.

17. An apparatus, comprising:

a non-volatile memory including a plurality of multi-level memory cells; and

storage circuitry configured to:

receive at least one request causing execution of a sequence of memory read commands in the non-volatile memory;

identify a first memory read command of the sequence of memory read commands that appears in the sequence of memory read commands after a second memory command;

execute the first memory read command;

wherein to execute the first memory read command, the storage circuitry is further configured to read a subset of the plurality of multi-level memory cells using a first plurality of read thresholds to generate first read results, and wherein each memory cell of the subset of the plurality of multi-level memory cells is coupled to a common word line;

calculate a second plurality of read thresholds dependent upon the first read results; and

execute the second memory read commands;

wherein to execute the second memory read command, the storage circuitry is further configured to read the subset of the plurality of multi-level memory cells using the second plurality of read thresholds to generate second read results.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2013
From: GURGI, EYAL; ISH-SHALOM, TOMER
To: APPLE INC.
Reel/Frame 029788/0506 →
Continuity (1)
Related Publication 20140229699A1 · Aug 14, 2014