IP Library Granted Patent US 10,157,013
Granted Patent B2
US 10,157,013 · App. 15/602,444 · Granted Dec 18, 2018

Efficient readout from memory cells using data compression

Inventors: Uri Perlmutter (Ra'anana, IL); Dotan Sokolov (Ra'anana, IL); Ofir Shalvi (Ra'anana, IL); Oren Golov (Hod-HaSharon, IL)
Assignee: Apple Inc.
G06F3/0638G06F3/0604G06F3/0679G06F11/1008G06F12/08
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 10,157,013
App. No.
15/602,444
Granted
Dec 18, 2018
Kind
B2
Abstract

A method for data storage includes storing data in a group of analog memory cells by writing respective input storage values to the memory cells in the group. After storing the data, respective output storage values are read from the analog memory cells in the group. Respective confidence levels of the output storage values are estimated, and the confidence levels are compressed. The output storage values and the compressed confidence levels are transferred from the memory cells over an interface to a memory controller.

Claims (36)

1. An apparatus, comprising:

a memory controller;

a plurality of memory cells; and

a circuit configured to:

read a plurality of values from a subset of the plurality of memory cells using a threshold value, wherein a particular value of the plurality of values is indicative of data stored in a particular memory cell of the subset of the plurality of memory cells;

determine a plurality of multi-bit confidence levels using the plurality of values, wherein a particular multi-bit confidence level of the plurality of multi-bit confidence levels is indicative of a difference between a particular value and the threshold value; and

transfer the plurality of multi-bit confidence levels to the memory controller,

wherein the memory controller is configured to reconstruct the data stored in the particular memory cell of the subset of the plurality of memory cells using the multi-bit confidence levels.

2. The apparatus of claim 1 , wherein to transfer the plurality of multi-bit confidence levels to the memory controller, the circuit is further configured to generate a plurality of compressed confidence levels using the plurality of multi-bit confidence levels.

3. The apparatus of claim 2 , wherein to generate the plurality of compressed confidence levels, the circuit is further configured to run-length encode the plurality of multi-bit confidence levels.

4. The apparatus of claim 2 , wherein to generate the plurality of compressed confidence levels, the circuit is further configured to combine each confidence level of the plurality of multi-bit confidence levels using a logical-AND operation to generate an indicator value.

5. The apparatus of claim 4 , wherein the circuit is coupled to the memory controller via a data bus, and wherein the circuit is further configured to send the indicator value to the memory controller using at least one wire separate from the data bus.

6. The apparatus of claim 1 , wherein each memory cell of the plurality of memory cells includes a non-volatile memory cell.

7. A method, comprising:

reading, by a circuit, a plurality of values from a subset of a plurality of memory cells using a threshold value, wherein a particular value of the plurality of values is indicative of data stored in a particular memory cell of the subset of the plurality of memory cells;

determining, by the circuit, a plurality of multi-bit confidence levels using the plurality of values, wherein a particular multi-bit confidence level of the plurality of multi-bit confidence levels is indicative of a difference between a particular value and the threshold value;

transferring, by the circuit, the plurality of multi-bit confidence levels to a controller; and

reconstructing, by the controller, the data stored in the particular memory cell of the subset of the plurality of memory cells using the plurality of multi-bit confidence levels.

8. The method of claim 7 , wherein transferring, by the circuit, the plurality of multi-bit confidence levels to the controller includes generating, by the circuit, a plurality of compressed confidence levels using the plurality of multi-bit confidence levels.

9. The method of claim 8 , wherein generating the plurality of compressed confidence levels includes run-length encoding the plurality of multi-bit confidence levels.

10. The method of claim 8 , wherein generating the plurality of compressed confidence levels includes generating, by the circuit, an indicator value by combining each confidence level of the plurality of multi-bit confidence levels using a logical-AND.

11. The method of claim 10 , further comprising, transferring the plurality of values to the controller via a data bus.

12. The method of claim 11 , further comprising sending, by the circuit, the indicator value to the controller using at least one wire separate from the data bus.

13. The method of claim 7 , wherein each memory cell of the plurality of memory cells includes a non-volatile memory cell.

14. A system, comprising:

a memory controller; and

a memory coupled to the memory controller via a data bus, wherein the memory includes a plurality of memory cells, and wherein the memory is configured to:

read a plurality of values from a subset of the plurality of memory cells using a threshold value, wherein a particular value of the plurality of values is indicative of data stored in a particular memory cell of the subset of the plurality of memory cells;

determine a plurality of multi-bit confidence levels using the plurality of values, wherein a particular multi-bit confidence level of the plurality of multi-bit confidence levels is indicative of a difference between a particular value and the threshold value; and

transfer the plurality of multi-bit confidence levels to the memory controller.

15. The system of claim 14 , wherein to transfer the plurality of multi-bit confidence levels to the memory controller, the memory is further configured to generate a plurality of compressed confidence levels using the plurality of multi-bit confidence levels.

16. The system of claim 15 , wherein to generate the plurality of compressed confidence levels, the memory is further configured to run-length encode the plurality of multi-bit confidence levels.

17. The system of claim 15 , wherein to generate the plurality of compressed confidence levels, the memory is further configured to combine each confidence level of the plurality of multi-bit confidence levels using a logical-AND operation to generate an indicator value.

18. The system of claim 17 , wherein the memory is coupled to the memory controller via a data bus, and wherein the memory is further configured to transfer the plurality of values to the memory controller via the data bus.

19. The system of claim 18 , wherein the memory is further configured to send the indicator value to the memory controller using at least one wire separate from the data bus.

20. The system of claim 14 , wherein each memory cell of the plurality of memory cells includes a non-volatile memory cell.

Continuity (7)
Continuation 14987324 · Jan 4, 2016
Continuation 13526859 · Jun 19, 2012
Continuation 12397368 · Mar 4, 2009
Provisional Application 61034511 · Mar 7, 2008
Provisional Application 61052276 · May 12, 2008
Provisional Application 61053031 · May 14, 2008
Related Publication 20170269866A1 · Sep 21, 2017
Cited By (1)
US 12,717,475