IP Library Granted Patent US 9,086,955
Granted Patent B2
US 9,086,955 · App. 13/791,823 · Granted Jul 21, 2015

Rank-modulation rewriting codes for flash memories

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,955
App. No.
13/791,823
Granted
Jul 21, 2015
Kind
B2
Abstract

Rank modulation has been recently proposed as a scheme for storing information in flash memories. Three improved aspects are disclosed. In one aspect the minimum push-up scheme, for storing data in flash memories is provided. It aims at minimizing the cost of changing the state of the memory. In another aspect, multi-cells, used for storing data in flash memories is provided. Each transistor is replaced with a multi-cell of mm transistors connected in parallel. In yet another aspect, multi-permutations, are provided. The paradigm of representing information with permutations is generalized to the case where the number of cells in each level is a constant greater than one. In yet another aspect, rank-modulation rewriting schemes which take advantage of polar codes, are provided for use with flash memory.

Claims (128)

1. A method to operate a memory device, the method comprising:

receiving a new data set for a rank of a plurality of ranks to be stored in the memory device, wherein the memory device comprises a plurality of cells;

reading a current state of candidate cells within the plurality of cells, wherein the candidate cells are used to store the new data set;

creating a binary representation of the plurality of cells used to store the new data set;

using a write once memory (WOM) code to combine the binary representation with the new data set to create a binary WOM vector;

modifying the binary WOM vector to equal quantities of 1's and 0's within the candidate cells to create a new data vector; and

writing the new data vector to the candidate cells.

2. The method of claim 1 , wherein the WOM code includes a polar WOM code.

3. The method of claim 1 , wherein a cost to write is defined as a maximum level of the plurality of cells after the new data vector is written minus a maximum level of the candidate cells before the new data vector is written.

4. The method of claim 3 , wherein the cost is 1.

5. The method of claim 1 , wherein the method further comprises:

reading the new data vector from the candidate cells;

modifying the new data vector to recreate the binary WOM vector; and

using the WOM code on the binary WOM vector to separate the binary representation from the data set.

6. The method of claim 5 , wherein the WOM code includes a polar WOM code.

7. A computer method to operate a memory device, the method comprising:

receiving a new data set m for a rank to store in the memory device, wherein the memory device comprises a plurality of cells;

reading a current state of the plurality of cells, wherein the plurality of cells are arranged according to a rank modulation scheme and the plurality of cells are used to store the received new data set m;

determining a new multi-permutation to be written to the plurality of cells representing the received new data set m determined in accordance with a particular cost; and

writing the new multi-permutation to the memory device.

8. A computer method to operate a memory device, the method comprising:

receiving a data value comprising a plurality of data sets, wherein each data set includes a set of values representing a rank in a plurality of ranks; and

repeating for the plurality of data sets in the data value:

receiving a new data set for a rank of the plurality of ranks to be stored in the memory device, wherein the memory device comprises a plurality of cells;

reading a current state of candidate cells within the plurality of cells, wherein the candidate cells are used to store the new data set;

creating a binary representation of the plurality of cells used to store the new data set;

using a write once memory (WOM) code to combine the binary representation with the new data set to create a binary WOM vector;

modifying the binary WOM vector to equal quantities of 1's and 0's within the candidate cells creating a new data vector; and

writing the new data vector to the candidate cells.

9. The method of claim 8 , wherein the WOM code includes a polar WOM code.

10. A computer method of operate a memory device, the method comprising:

reading a plurality of cells and determining a multi-permutation stored in the plurality of cells;

identifying a group of cells in the plurality of cells, contained within each rank of a plurality of ranks; and

for each rank:

reading a new data vector from the rank;

modifying the new data vector to recreate a binary write once memory (WOM) vector; and

using a WOM code on the binary WOM vector to separate a binary representation from a data set.

11. The method of claim 10 , wherein the WOM code includes a polar WOM code.

12. A memory controller, comprising:

an interface configured to receive a new data set for a rank of a plurality of ranks to be stored in a memory comprising a plurality of cells; and

a processor coupled to the interface and configured to:

read a current state of candidate cells within the plurality of cells,

wherein the candidate cells are used to store the new data set;

create a binary representation of the plurality of cells used to store the new data set;

use a write once memory (WOM) code to combine the binary representation with the new data set to create a binary WOM vector;

modify the binary WOM vector to equal quantities of 1's and 0's within the candidate cells to create a new data vector; and

write the new data vector to the candidate cells.

13. The memory controller of claim 12 , wherein the WOM code includes a polar WOM code.

14. The memory controller of claim 12 , wherein a cost to write is defined as a maximum level of the plurality of cells after the new data vector is written minus a maximum level of the candidate cells before the new data vector is written.

15. The memory controller of claim 14 , wherein the cost is 1.

16. The memory controller of claim 12 , wherein the processor is further configured to:

read the new data vector from the candidate cells;

modify the new data vector to recreate the binary WOM vector; and

use the WOM code on the binary WOM vector to separate the binary representation from the data set.

17. The memory controller as in claim 16 , wherein the WOM code includes a polar WOM code.

18. A memory controller, comprising:

an interface configured to receive a new data set m for a rank to be stored in a memory device, wherein the memory device comprises a plurality of cells; and

a processor coupled to the interface and configured to:

read a current state of the plurality of cells within the plurality of cells that are arranged according to a rank modulation scheme and the plurality of cells are used to store the received new data set m;

determine a new multi-permutation to be written to the plurality of cells that represents the received new data set m determined in accordance with a particular cost; and

write the new multi-permutation to memory.

19. A memory controller, comprising:

an interface configured to receive a data value comprising a plurality of data sets, wherein each data set is a set of values that represent a rank in a plurality of ranks; and

a processor coupled to the interface and configured to perform operations repeated for the data sets in the data value, wherein the operations include:

receive a new data set for a rank of the plurality of ranks to be stored in a memory device, wherein the memory device comprises a plurality of cells;

read a current state of candidate cells within the plurality of cells, wherein the candidate cells are used to store the new data set;

create a binary representation of the plurality of cells used to store the new data set;

use a write once memory (WOM) code to combine the binary representation with the new data set to create a binary WOM vector;

modify the binary WOM vector to equal quantities of 1's and 0's within the candidate cells to create a new data vector; and

write the new data vector to the candidate cells.

20. The memory controller of claim 19 , wherein the WOM code includes a polar WOM code.

21. A memory controller, comprising:

an interface configured to provide access to a plurality of cells in a memory device; and

a processor coupled to the interface and configured to:

access the plurality of cells through the interface;

read the plurality of cells; and

perform operations that include:

determine a multi-permutation stored in the plurality of cells;

identify a group of cells in the plurality of cells contained within each rank of a plurality of ranks; and

for each rank:

read a new data vector from the rank;

modify the new data vector to recreate a binary write once memory (WOM) vector; and

us a WOM code on the binary WOM vector to separate a binary representation from a data set.

22. The memory controller of claim 21 , wherein the WOM code includes a polar WOM code.

23. A data device, comprising:

a memory configured to store data values; and

a memory controller coupled to the memory and that is configured to store the data values in the memory by performance of operations that include:

receive a new data set for a rank of a plurality of ranks to be stored in the data device, wherein the data device comprises a plurality of cells;

read a current state of candidate cells within the plurality of cells, wherein the candidate cells are used to store the new data set;

create a binary representation of the plurality of cells used to store the new data set;

use a write once memory (WOM) code to combine the binary representation with the new data set to create a binary WOM vector;

modify the binary WOM vector to equal quantities of 1's and 0's within the candidate cells to create a new data vector; and

write the new data vector to the candidate cells.

24. The data device of claim 23 , wherein the WOM code includes a polar WOM code.

25. The data device of claim 23 , wherein a cost to write is defined as a maximum level of the plurality of cells after the new data vector is written minus a maximum level of the candidate cells before the new data vector is written.

26. The data device of claim 25 , wherein the cost is 1.

27. The data device of claim 23 , wherein the operations further include:

read the new data vector from the candidate cells;

modify the new data vector to recreate the binary WOM vector; and

use a WOM code on the binary WOM vector to separate the binary representation from the data set.

28. The data device as in claim 27 , wherein the WOM code includes a polar WOM code.

29. A data device, comprising:

a memory configured to store data values; and

a memory controller coupled to the memory and that is configured to store the data values in the memory by performance of operations that include:

receive a new data set m for a rank to store in the data device, wherein the data device comprises a plurality of cells;

read a current state of the plurality of cells, wherein the plurality of cells are arranged according to a rank modulation scheme and the plurality of cells are used to store the received new data set m;

determine a new multi-permutation to be written to the plurality of cells that represent the received new data set m determined in accordance with a particular cost; and

write the new multi-permutation to the data device.

30. A data device, comprising:

a memory configured to store data values; and

a memory controller coupled to the memory and that is configured to store the data values in the memory by performance of operations that include:

receive a data value comprising a plurality of data sets, wherein each data set is a set of values that represent a rank in a plurality of ranks, and repeat for the data sets in the data value operations include to:

receive a new data set for a rank of the plurality of ranks to be stored in the data device, wherein the data device comprises a plurality of cells;

read a current state of candidate cells within the plurality of cells, wherein the candidate cells are used to store the new data set;

create a binary representation of the plurality of cells used to store the new data set;

use a write once memory (WOM) code to combine the binary representation with the new data set to create a binary WOM vector;

modify the binary WOM vector to equal quantities of 1's and 0's within the candidate cells to create a new data vector; and

write the new data vector to the candidate cells.

31. The data device of claim 30 , wherein the WOM code includes a polar WOM code.

32. An apparatus, comprising:

a data device configured to:

read a plurality of cells and determine a multi-permutation stored in the plurality of cells;

identify a group of cells in the plurality of cells, contained within each rank of a plurality of ranks; and

for each rank:

read a new data vector from the rank;

modify the new data vector to recreate a binary write once memory (WOM) vector; and

use a WOM code on the binary WOM vector to separate a binary representation from a data set.

33. The data device of claim 32 , wherein the WOM code includes a polar WOM code.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2019
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 049924/0794 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2015
From: JIANG, ANXIAO
To: TEXAS A&M UNIVERSITY SYSTEM
Reel/Frame 034989/0825 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2015
From: EN GAD, EYAL; BRUCK, JEHOSHUA; YAAKOBI, EITAN
To: CALIFORNIA INSTITUTE OF TECHNOLOGY
Reel/Frame 034989/0827 →
CONFIRMATORY LICENSE Recorded Jul 30, 2013
From: CALIFORNIA INSTITUTE OF TECHNOLOGY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 030919/0971 →