IP Library Granted Patent US 9,697,077
Granted Patent B2
US 9,697,077 · App. 14/740,088 · Granted Jul 4, 2017

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/1072G06F11/1044G06F11/1048G06F11/1076G06F12/00G11C11/56G11C29/50004G11C29/52G11C2029/5004
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,697,077
App. No.
14/740,088
Granted
Jul 4, 2017
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 (51)

1. An apparatus, comprising:

a memory array including a plurality of pages; and

a processing unit configured to:

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

read a first set of storage values from the first page of the plurality of pages in response to the read request;

store the first set of storage values in a first buffer;

receive an interference cancellation request from the controller;

read at least one potentially-interfering page of the plurality of pages in response to the interference cancellation request to generate interference results;

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 included in the first page of the plurality of pages;

iteratively perform a plurality of read operations on the first page of the plurality of pages to generate a respective plurality of read results, wherein each read operation of the plurality of read operations uses a respective read threshold of a plurality of shifted read thresholds; and

retrieve, for a first read result of the respective plurality of read results, a decision to retain results of a second read result of the respective plurality of read results from the LUT dependent upon at least the first read result and the second read result.

2. The apparatus of claim 1 , wherein each read threshold of the plurality of shifted read thresholds is shifted from a nominal threshold value by a respective predetermined offset.

3. The apparatus of claim 1 , wherein to iteratively perform the plurality of read operations on the first page of the plurality of pages, the processing unit is further configured to store each read result of the respective plurality of read results in a second buffer.

4. The apparatus of claim 1 , wherein to retrieve, for the first read result of the respective plurality of read results, the decision, the processing unit is further configured to retrieve the decision from the LUT dependent upon the interference results.

5. The apparatus of claim 1 , wherein the processing unit is further configured to store the decision in a second buffer.

6. The apparatus of claim 1 , wherein the processing unit is further configured to send, to the controller, a selected read result of the respective plurality of read results, wherein the selected read result includes a lowest level of interference.

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

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

reading a first set of storage values from the first page of the plurality of pages in response to the read request; storing the first set of storage values in a buffer;

receiving, by the memory, an interference cancellation request from the controller;

reading at least one potentially-interfering page of the plurality of pages in response to the interference cancellation request to generate interference results;

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 included in the first page of the plurality of pages;

iteratively performing a plurality of read operations on the first page of the plurality of pages to generate a respective plurality of read results, wherein each read operation of the plurality of read operations uses a respective read threshold of a plurality of shifted read thresholds; and

retrieving, for a first read result of the respective plurality of read results, a decision to retain results of a second read result of the respective plurality of read results from the LUT dependent upon at least the first read result and the second read result.

8. The method of claim 7 , wherein each read threshold of the plurality of shifted read thresholds is shifted from a nominal threshold value by a respective predetermined offset.

9. The method of claim 7 , wherein iteratively perform the plurality of read operations on the first page of the plurality of pages comprises storing each read result of the respective plurality of read results in a buffer.

10. The method of claim 7 , wherein retrieving, for the first read result of the respective plurality of read results, the decision, comprises retrieving the decision from the LUT dependent upon the interference results.

11. The method of claim 7 , further comprising storing the decision in a buffer.

12. The method of claim 7 , further comprising sending, to the controller, a selected read result of the respective plurality of read results, wherein the selected read result includes a lowest level of interference.

13. The method of claim 7 , further comprising:

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

sending the interference cancellation request to the memory in response to determining that the decoding of the ECC failed.

14. A system, comprising:

a memory device including a plurality of pages;

a controller configured to send a read request to read a first page of the plurality of pages to the memory device;

wherein the memory device is configured to:

read a first set of storage values from the first page of the plurality of pages in response to the read request;

store the first set of storage values in a first buffer;

receive an interference cancellation request from the controller;

read at least one potentially-interfering page of the plurality of pages in response to the interference cancellation request to generate interference results;

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 included in the first page of the plurality of pages;

iteratively perform a plurality of read operations on the first page of the plurality of pages to generate a respective plurality of read results, wherein each read operation of the plurality of read operations uses a respective read threshold of a plurality of shifted read thresholds; and

retrieve, for a first read result of the respective plurality of read results, a decision to retain results of a second read result of the respective plurality of read results from the LUT dependent upon at least the first read result and the second read result.

15. The system of claim 14 , wherein each read threshold of the plurality of shifted read thresholds is shifted from a nominal threshold value by a respective predetermined offset.

16. The system of claim 14 , wherein to iteratively perform the plurality of read operations on the first page of the plurality of pages, the memory device is further configured to store each read result of the respective plurality of read results in a second buffer.

17. The system of claim 16 , wherein the memory device is further configured to store the decision in the second buffer.

18. The system of claim 14 , wherein to retrieve, for the first read result of the respective plurality of read results, the decision, the memory device is further configured to retrieve the decision from the LUT dependent upon the interference results.

19. The system of claim 14 , wherein the memory device is further configured to send the first set of storage values to the controller.

20. The system of claim 14 , wherein the controller is further configured to:

decode, by the controller, an Error Correction Code (ECC) dependent upon the first set of storage values; and

send the interference cancellation request to the memory device in response to determining that the decoding of the ECC failed.

Continuity (9)
Continuation 14306764 · Jun 17, 2014
Continuation 13860211 · Apr 10, 2013
Continuation 12597494
Provisional Application 61028226 · Feb 13, 2008
Provisional Application 61017177 · Dec 28, 2007
Provisional Application 60976436 · Sep 30, 2007
Provisional Application 61024561 · Jan 30, 2008
Provisional Application 60917653 · May 12, 2007
Related Publication 20150309870A1 · Oct 29, 2015