IP Library Granted Patent US 9,086,993
Granted Patent B2
US 9,086,993 · App. 14/306,764 · Granted Jul 21, 2015

Memory device with internal signal processing unit

Inventors: Dotan Sokolov (Ra'anana, IL); Naftali Sommer (Rishon Le-Zion, IL); Uri Perlmutter (Ra'anana, IL); Ofir Shalvi (Ra'anana, IL)
Assignee: Apple Inc.
G06F11/1076G06F11/1048G06F11/1072G06F12/00G11C11/56
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,086,993
App. No.
14/306,764
Granted
Jul 21, 2015
Kind
B2
Abstract

A method for operating a memory includes storing data in a plurality of analog memory cells that are fabricated on a first semiconductor die by writing input storage values to a group of the analog memory cells. After storing the data, multiple output storage values are read from each of the analog memory cells in the group using respective, different threshold sets of read thresholds, thus providing multiple output sets of the output storage values corresponding respectively to the threshold sets. The multiple output sets of the output storage values are preprocessed by circuitry that is fabricated on the first semiconductor die, to produce preprocessed data. The preprocessed data is provided to a memory controller, which is fabricated on a second semiconductor die that is different from the first semiconductor die. so as to enable the memory controller to reconstruct the data responsively to the preprocessed data.

Claims (42)

1. An apparatus, comprising:

a controller; and

a memory including a plurality of pages, wherein the memory is configured to:

receive a first request from the controller to read a first page of the plurality of pages; and

read a plurality of storage values from the first page of the plurality of pages;

wherein the controller is configured to decode an Error Correction Code (ECC) dependent upon the plurality of storage values; and

wherein the memory is further configured to perform interference cancellation responsive to a determination that the decoding of the ECC failed, wherein to perform interference cancellation, the memory controller is further configured to:

read at least one potentially-interfering page of the plurality of pages,

re-read the first page of the plurality of pages using a first shifted read threshold to generate first results;

re-read the first page of the plurality of pages using a second shifted read threshold to generate second results; and

select one of the first results and the second results dependent upon the first results and the second results and results from reading the at least one potentially-interfering page of the plurality of pages.

2. The apparatus of claim 1 , wherein to perform interference cancellation, the memory is further configured to receive a second request from the controller.

3. The apparatus of claim 1 , wherein to select one of the first results and the second results, the memory is further configured to read a set of cross-coupling coefficients from a lookup table (LUT), wherein each cross-coupling coefficient specifies an interference level from at least one neighboring cell to a target cell.

4. The apparatus of claim 1 , wherein the memory is further configured to store the first results and the second results in a cache buffer.

5. A method for operating a memory, wherein the memory includes a plurality of pages cells, and wherein each page of the plurality of pages includes a plurality of memory cells, the method comprising:

receiving a first request from a controller to read a first page of the plurality of pages;

reading a plurality of storage values from the first page of the plurality of pages;

decoding, by the controller, an Error Correction Code (ECC) dependent upon the plurality of storage values; and

performing interference cancellation responsive to a determination that the decoding of the ECC failed;

wherein performing interference cancellation includes:

reading at least one potentially-interfering page of the plurality of pages;

re-reading the first page of the plurality of pages using a first shifted read threshold to generate first results;

re-reading the first page of the plurality of pages using a second shifted read threshold to generate second results; and

selecting one of the first results and the second results dependent upon the first results and the second results and results from reading the at least one potentially-interfering page of the plurality of pages.

6. The method of claim 5 , wherein performing interference cancellation comprises receiving a second request from the controller.

7. The method of claim 5 , wherein selecting one of the first results and the second results comprises reading a set of cross-coupling coefficients from a lookup table (LUT), wherein each cross-coupling coefficient specifies an interference level from at least one neighboring cell to a target cell.

8. The method of claim 5 , wherein the first shifted read threshold includes a nominal read threshold shifted by a first predetermined value, and the second shifted read threshold includes the nominal read threshold shifted by a second predetermined value.

9. The method of claim 5 , further comprising storing the first results and the second results in a cache buffer.

10. A computer-accessible non-transitory storage medium having program instructions stored therein that, in response to execution by a processor, cause the processor to perform operations comprising:

receiving a first request from a controller to read a first page of the plurality of pages;

reading a plurality of storage values from the first page of the plurality of pages;

decoding, by the controller, an Error Correction Code (ECC) dependent upon the plurality of storage values; and

performing interference cancellation responsive to a determination that the decoding of the ECC failed;

wherein performing interference cancellation includes:

reading at least one potentially-interfering page of the plurality of pages;

re-reading the first page of the plurality of pages using a first shifted read threshold to generate first results;

re-reading the first page of the plurality of pages using a second shifted read threshold to generate second results; and

selecting one of the first results and the second results dependent upon the first results and the second results and results from reading the at least one potentially-interfering page of the plurality of pages.

11. The computer-accessible non-transitory storage medium of claim 10 , wherein performing interference cancellation comprises receiving a second request from the controller.

12. The computer-accessible non-transitory storage medium of claim 10 , wherein selecting one of the first results and the second results comprises reading a set of cross-coupling coefficients from a lookup table (LUT), wherein each cross-coupling coefficient specifies an interference level from at least one neighboring cell to a target cell.

13. The computer-accessible non-transitory storage medium of claim 10 , wherein the first shifted read threshold includes a nominal read threshold shifted by a first predetermined value, and the second shifted read threshold includes the nominal read threshold shifted by a second predetermined value.

14. The computer-accessible non-transitory storage medium of claim 10 , wherein the operations further comprise storing the first results and the second results in a cache buffer.

Continuity (8)
Continuation 13860211 · Apr 10, 2013
Continuation 12597494
Provisional Application 61028226 · Feb 13, 2008
Provisional Application 61024561 · Jan 30, 2008
Provisional Application 61017177 · Dec 28, 2007
Provisional Application 60976436 · Sep 30, 2007
Provisional Application 60917653 · May 12, 2007
Related Publication 20140298139A1 · Oct 2, 2014