IP Library Granted Patent US 7,466,575
Granted Patent B2
US 7,466,575 · App. 11/995,811 · Granted Dec 16, 2008

Memory device programming using combined shaping and linear spreading

Assignee: Anobit Technologies Ltd.
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 7,466,575
App. No.
11/995,811
Granted
Dec 16, 2008
Kind
B2
Abstract

A method for data storage includes accepting data for storage in a memory ( 28 ) that includes multiple analog memory cells ( 32 ). The data is converted to input values. The input values are filtered using a non-linear filtering operation to produce respective shaped values, and the shaped values are converted to output values using a linear spreading transformation with coefficients chosen so that each of the shaped values contributes to at least two of the output values. The non-linear filtering operation is selected so as to reduce a size of an output range in which the output values lie. The output values are stored in the respective analog memory cells.

Claims (45)

1. A method for data storage, comprising:

accepting data for storage in a memory that includes multiple analog memory cells;

converting the data to input values;

filtering the input values using a non-linear filtering operation to produce respective shaped values and converting the shaped values to output values using a linear spreading transformation with coefficients chosen so that each of the shaped values contributes to at least two of the output values, wherein the non-linear filtering operation is selected so as to reduce a size of an output range in which the output values lie; and

storing the output values in the respective analog memory cells.

2. The method according to claim 1 , wherein the linear spreading transformation is represented by a spreading matrix, wherein the input values lie within an input range, and wherein the non-linear filtering operation is selected so as to minimize the size of the output range.

3. The method according to claim 2 , wherein filtering the input values comprises subtracting from the input values respective integer multiples of the size of the input range to produce the shaped values.

4. The method according to claim 1 , wherein the linear spreading transformation is represented by a spreading matrix having a determinant value of unity.

5. The method according to claim 1 , wherein the linear spreading transformation is represented by a spreading matrix, and wherein converting the shaped values to the output values comprises formatting the shaped values into input vectors and multiplying the input vectors by the spreading matrix to produce respective output vectors comprising the output values.

6. The method according to claim 1 , wherein the linear spreading transformation is represented by a Toeplitz matrix having main diagonal elements that are equal to unity.

7. The method according to claim 1 , wherein the linear spreading transformation comprises a linear monic filtering transformation.

8. The method according to claim 1 , wherein the linear spreading transformation is represented by a matrix whose elements comprise coefficients of a two-dimensional transform.

9. The method according to claim 1 , wherein converting the data comprises encoding the data using an Error Correction Code (ECC).

10. The method according to claim 1 , and comprising reconstructing the data stored in the analog memory cells by:

reading the output values from the respective analog memory cells;

reproducing the shaped values from the read output values;

applying an inverse of the non-linear filtering operation to the reproduced shaped values to reproduce the input values; and

reproducing the data based on the reproduced input values.

11. The method according to claim 10 , wherein converting the data comprises encoding the data using an Error Correction Code (ECC), and wherein reproducing the data comprises decoding the ECC.

12. The method according to claim 10 , wherein reproducing the shaped values comprises applying an inverse of the linear spreading transformation to the read output values.

13. The method according to claim 10 , wherein reproducing the shaped values comprises applying a detection process to detect the shaped values responsively to the read output values.

14. The method according to claim 10 , and comprising interleaving the input values before converting the input values to the shaped values, and deinterleaving the reproduced input values before decoding the data.

15. A data storage apparatus, comprising:

an interface, which is operative to communicate with a memory that includes multiple analog memory cells; and

a Memory Signal Processor (MSP), which is coupled to the interface and is arranged to accept data for storage in the memory, to convert the data to input values, to filter the input values using a non-linear filtering operation to produce respective shaped values and to convert the shaped values to output values using a linear spreading transformation with coefficients chosen so that each of the shaped values contributes to at least two of the output values, wherein the non-linear filtering operation is selected so as to reduce a size of an output range in which the output values lie, and to store the output values in the respective analog memory cells.

16. The apparatus according to claim 15 , wherein the linear spreading transformation is represented by a spreading matrix, wherein the input values lie within an input range, and wherein the nonlinear filtering operation is selected so as to minimize the size of the output range.

17. The apparatus according to claim 15 , wherein the MSP is arranged to filter the input values by subtracting from the input values respective integer multiples of the size of the input range to produce the shaped values.

18. The apparatus according to claim 15 , wherein the linear spreading transformation is represented by a spreading matrix having a determinant value of unity.

19. The apparatus according to claim 15 , wherein the linear spreading transformation is represented by a spreading matrix, and wherein the MSP is arranged to format the shaped values into input vectors and to multiply the input vectors by the spreading matrix to produce respective output vectors comprising the output values.

20. The apparatus according to claim 15 , wherein the linear spreading transformation is represented by a Toeplitz matrix having main diagonal elements that are equal to unity.

21. The apparatus according to claim 15 , wherein the linear spreading transformation comprises a linear monic filtering transformation.

22. The apparatus according to claim 15 , wherein the linear spreading transformation is represented by a matrix whose elements comprise coefficients of a two-dimensional transform.

23. The apparatus according to claim 15 , wherein the MSP is arranged to encode the data using an Error Correction Code (ECC).

24. The apparatus according to claim 15 , wherein the MSP is arranged to reconstruct the data stored in the analog memory cells by:

reading the output values from the respective analog memory cells;

reproducing the shaped values from the read output values;

applying an inverse of the non-linear filtering operation to the reproduced shaped values to reproduce the input values; and

reproducing the data based on the reproduced input values.

25. The apparatus according to claim 24 , wherein the MSP is arranged to encode the data using an Error Correcting Code (ECC), and to decode the ECC when reproducing the data.

26. The apparatus according to claim 24 , wherein the MSP is arranged to apply an inverse of the linear spreading transformation to the read output values, so as to reproduce the shaped values.

27. The apparatus according to claim 24 , wherein the MSP is arranged to apply a detection process to detect the shaped values responsively to the read output values.

28. The apparatus according to claim 24 , wherein the MSP is arranged to interleave the input values before converting the input values to the shaped values, and to de-interleave the reproduced input values before decoding the data.

29. A data storage apparatus, comprising:

a memory, which comprises multiple analog memory cells; and

a Memory Signal Processor (MSP), which is coupled to the memory and is arranged to accept data for storage in the memory, to convert the data to input values, to filter the input values using a non-linear filtering operation to produce respective shaped values and to convert the shaped values to output values using a linear spreading transformation with coefficients chosen so that each of the shaped values contributes to at least two of the output values, wherein the non-linear filtering operation is selected so as to reduce a size of an output range in which the output values lie, and to store the output values in the respective analog memory cells.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2012
From: ANOBIT TECHNOLOGIES LTD.
To: APPLE INC.
Reel/Frame 028399/0733 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2008
From: SHALVI, OFIR; SOMMER, NAFTALI
To: ANOBIT TECHNOLOGIES LTD.
Reel/Frame 020374/0144 →
Continuity (4)
Provisional Application 6086739900 · Nov 28, 2006
Provisional Application 6082223600 · Aug 13, 2006
Provisional Application 6074710600 · May 12, 2006
Related Publication 20080198652A1 · Aug 21, 2008