IP Library Granted Patent US 8,848,442
Granted Patent B2
US 8,848,442 · App. 12/977,097 · Granted Sep 30, 2014

Multi-bit-per-cell flash memory device with non-bijective mapping

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 8,848,442
App. No.
12/977,097
Granted
Sep 30, 2014
Kind
B2
Abstract

To store input data in a plurality of memory cells, a mapping function of bit sequences to physical parameter states of the cells is provided. The cells are programmed, in accordance with the mapping function, to store the input data, in a way that would store uniformly distributed data with a programming state distribution other than any native state distribution of the mapping function. To store input data in a single memory cell, a mapping function of bit sequences to states of a physical parameter of the cell, such that if uniformly distributed data were stored in a plurality of such memory cells then the states of the physical parameter of the cells would be distributed non-uniformly, is provided. The memory cell is programmed to store the input data in accordance with the mapping function.

Claims (23)

1. A method of storing input data in a plurality of memory cells, comprising:

(a) providing a mapping function of bit sequences to states of a physical parameter of the cells;

(b) programming the plurality of memory cells, in accordance with the mapping function, to store the input data, in a way that stores uniformly distributed data with a programming state distribution other than any native state distribution of the mapping function; and

(c) determining the programming state distribution by at least selecting a target state distribution, and devising a transformation so that the programming state distribution approximates the target state distribution within a predetermined tolerance.

2. The method of claim 1 , wherein the physical parameter is a threshold voltage of the cells.

3. The method of claim 1 , wherein the programming of the plurality of memory cells to store the input data includes:

(i) transforming the input data into transformed data, using the transformation that transforms the uniformly distributed data into transformed uniformly distributed data stored, by programming a sufficiently large number of the memory cells in accordance with the mapping function, with the programming state distribution; and

(ii) programming the plurality of memory cells to store the transformed data in accordance with the mapping function.

4. The method of claim 1 , wherein the devising is effected using reverse Huffman encoding.

5. The method of claim 1 , wherein the programming state distribution is biased downward relative to every native state distribution of the mapping function.

6. The method of claim 1 , wherein the programming of the plurality of memory cells to store the input data includes:

(i) programming the plurality of memory cells, in accordance with a pre-mapping relative to the mapping function, to store only a portion of the input data, in a way that stores a corresponding portion of the uniformly distributed data with a programming state distribution other than any native state distribution of the pre-mapping.

7. The method of claim 6 , wherein the programming of the plurality of memory cells to store the input data further includes:

(ii) programming the plurality of memory cells to store a remainder of the input data.

8. The method of claim 7 , wherein the plurality of the memory cells are programmed to store the remainder of the input data in a way that would have resulted in the uniformly distributed data being stored with a native state distribution of the mapping function if the portion of the uniformly distributed data that corresponds to the only portion of the input data had been stored with a native state distribution of the pre-mapping.

9. The method of claim 7 , wherein the plurality of the memory cells are programmed to store the remainder of the input data in a way that results in uniformly distributed data being stored with a programming state distribution other than any native state distribution of the mapping function if the portion of the uniformly distributed data that corresponds to the only portion of the input data had been stored with a native state distribution of the pre-mapping.

10. A memory device comprising:

(a) a plurality of cells; and

(b) a controller operative to store input data in the plurality of memory cells by programming the plurality of memory cells, in accordance with a mapping function of bit sequences to states of a physical parameter of the cells, to store the input data, in a way that stores uniformly distributed data with a programming state distribution other than any native state distribution of the mapping function, to determine the programming state distribution by at least selecting a target state distribution, and to devise a transformation so that the programming state distribution approximates the target state distribution within a predetermined tolerance.

11. A system for storing input data, comprising:

(a) a memory device that includes a plurality of cells; and

(b) a processor operative to store input data in the plurality of memory cells by programming the plurality of memory cells, in accordance with a mapping function of bit sequences to states of a physical parameter of the cells, to store the input data, in a way that stores uniformly distributed data with a programming state distribution other than any native state distribution of the mapping function, to determine the programming state distribution by at least selecting a target state distribution, and to devise a transformation so that the programming state distribution approximates the target state distribution within a predetermined tolerance.

12. A computer-readable storage medium having computer-readable code embodied in the computer-readable storage medium, the computer-readable code for storing input data in a plurality of memory cells, the computer-readable code comprising program code for programming the plurality of memory cells, in accordance with a mapping function of bit sequences to states of a physical parameter of the cells, to store the input data, in a way that stores uniformly distributed data with a programming state distribution other than any native state distribution of the mapping function, for determining the programming state distribution by at least selecting a target state distribution, and for devising a transformation so that the programming state distribution approximates the target state distribution within a predetermined tolerance.

Assignments (2)
CHANGE OF NAME Recorded Jun 10, 2025
From: WESTERN DIGITAL ISRAEL LTD.
To: SANDISK ISRAEL LTD.
Reel/Frame 071587/0836 →
CHANGE OF NAME Recorded Aug 21, 2020
From: SANDISK IL LTD
To: WESTERN DIGITAL ISRAEL LTD
Reel/Frame 053574/0513 →