IP Library Granted Patent US 9,171,624
Granted Patent B2
US 9,171,624 · App. 14/135,823 · Granted Oct 27, 2015

Management of data storage in analog memory cells using a non-integer number of bits per cell

Inventors: Micha Anholt (Tel Aviv, IL); Naftali Sommer (Rishon Le-Zion, IL)
Assignee: Apple Inc.
G11C16/08G11C7/1006G11C11/56G11C16/10G11C16/26G11C16/3427
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,171,624
App. No.
14/135,823
Granted
Oct 27, 2015
Kind
B2
Abstract

A method for data storage includes storing data in a group of memory cells, by encoding the data using at least an outer code and an inner code, and optionally inverting the encoded data prior to storing the encoded data in the memory cells. The encoded data is read from the memory cells, and inner code decoding is applied to the read encoded data to produce a decoding result. At least part of the read data is conditionally inverted, depending on the decoding result of the inner code.

Claims (28)

1. A method for data storage, comprising:

storing data in a group of memory cells, by encoding the data using at least an outer code and an inner code, and optionally inverting the encoded data prior to storing the encoded data in the memory cells; and

reading the encoded data from the memory cells;

applying inner code decoding to the read encoded data, to produce a decoding result; and

conditionally inverting at least part of the read data, depending on the decoding result of the inner code.

2. The method according to claim 1 , wherein the inner code comprises a code in which inversion of a valid code word does not always result in another valid code word, and wherein applying the inner code decoding comprises decoding at least one of the read encoded data and an inverted version of the read encoded data.

3. The method according to claim 2 , wherein applying the inner code decoding comprises decoding both the read encoded data and the inverted version of the read encoded data, and wherein conditionally inverting the at least part of the read data comprises inverting the at least part of the read data only when the decoding result of the inverted version is error free and the decoding result of the read encoded data is not error free.

4. The method according to claim 2 , wherein storing the data comprises storing with relation to the data an inversion indication of whether the stored data has been inverted, wherein reading the encoded data comprises reading and decoding the inversion indication, and wherein applying the inner code decoding comprises decoding only the read encoded data or only the inverted version of the read encoded data, depending on the inversion indication.

5. The method according to claim 4 , wherein conditionally inverting the at least part of the read data comprises indicating inability to decide whether to invert the read data, when the decoding result of the read encoded data contradicts the inversion indication.

6. The method according to claim 2 , wherein the inner code comprises an error detection code, and wherein conditionally inverting the at least part of the read data comprises inverting the at least part of the read data when the decoding result is equal to a result of applying the inner code decoding to an all-ones word, and not inverting the at least part of the read data when the decoding result is error free.

7. The method according to claim 2 , wherein conditionally inverting the at least part of the read data comprises indicating inability to decide whether to invert the read data or not, when the decoding result of the read encoded data contradicts the decoding result of the inverted version of the read encoded data.

8. An apparatus for data storage, comprising:

a memory, which includes an array of memory cells; and

storage circuitry configured to:

store data in a group of the memory cells, by encoding the data using at least an outer code and an inner code and optionally inverting the encoded data prior to storing the encoded data in the memory cells;

read the encoded data from the memory cells;

apply inner code decoding to the read encoded data to produce a decoding result; and

conditionally invert at least part of the read data depending on the decoding result of the inner code.

9. The apparatus according to claim 8 , wherein the inner code comprises a code in which inversion of a valid code word does not always result in another valid code word, and wherein the storage circuitry is configured to decode at least one of the read encoded data and an inverted version of the read encoded data.

10. The apparatus according to claim 9 , wherein the storage circuitry is configured to decode both the read encoded data and the inverted version of the read encoded data, and to invert the at least part of the read data only when the decoding result of the inverted version is error free and the decoding result of the read encoded data is not error free.

11. The apparatus according to claim 9 , wherein the storage circuitry is configured to store with relation to the data an inversion indication of whether the stored data has been inverted, to read and decode the inversion indication, and to decode only the read encoded data or only the inverted version of the read encoded data, depending on the inversion indication.

12. The apparatus according to claim 11 , wherein the storage circuitry is configured to indicate inability to decide whether to invert the read data, when the decoding result of the read encoded data contradicts the inversion indication.

13. The apparatus according to claim 9 , wherein the inner code comprises an error detection code, and wherein the storage circuitry is configured to invert the at least part of the read data when the decoding result is equal to a result of applying the inner code decoding to an all-ones word, and to not invert the at least part of the read data when the decoding result is error free.

14. The apparatus according to claim 9 , wherein the storage circuitry is configured to indicate inability to decide whether to invert the read data or not, when the decoding result of the read encoded data contradicts the decoding result of the inverted version of the read encoded data.

15. The method of claim 1 , wherein the inner code includes a Bose-Chaudhuri-Hocquenghem (BCH) code.

16. The method of claim 15 , wherein the outer code includes a Low Density Parity Check (LDPC) code.

17. The apparatus of claim 8 , wherein the inner code includes a Bose-Chaudhuri-Hocquenghem (BCH) code.

18. The apparatus of claim 17 , wherein the outer code includes a Low Density Parity Check (LDPC) code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2013
From: ANHOLT, MICHA; SOMMER, NAFTALI
To: APPLE INC.
Reel/Frame 031826/0742 →
Continuity (1)
Related Publication 20150179263A1 · Jun 25, 2015