IP Library Granted Patent US 9,124,301
Granted Patent B2
US 9,124,301 · App. 13/846,538 · Granted Sep 1, 2015

Error correction code for unidirectional memory

Inventors: Christophe Laurent (Agrate Brianza, IT); Paolo Amato (Pagazzano, IT); Marco Sforzin (Cantu', IT); Corrado Villa (Sovico, IT)
Assignee: Micron Technology, Inc.
H03M13/2909G06F11/1068
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,124,301
App. No.
13/846,538
Granted
Sep 1, 2015
Kind
B2
Abstract

A memory array and a method of writing to a unidirectional non-volatile storage cell are disclosed whereby a user data word is transformed to an internal data word and written to one or more unidirectional data storage cells according to a cell coding scheme. A check word may be generated that corresponds to the internal data word. In some embodiments, the check word may be generated by inverting one or more bits of an intermediate check word. Other embodiments may be described and claimed.

Claims (94)

1. A method of providing error correction, the method comprising:

computing a first check code for first data, wherein the first check code corresponds to a first matrix multiplication of the first data and a matrix;

selectively inverting bits of the first check code to generate a second check code according to an inversion pattern, wherein the inversion pattern corresponds to a second matrix multiplication of an initial data comprising erased states and the matrix; and

programming the first data and the second check code to a plurality of data storage cells.

2. The method of claim 1 , further comprising:

receiving user data; and

transforming the user data to the first data according to a transformation function, the first data being the same size as the user data.

3. The method of claim 2 , wherein transforming further comprises transforming according to a Gray code.

4. The method of claim 1 , wherein the data storage cells comprise unidirectional non-volatile data storage cells.

5. The method of claim 1 , wherein the data storage cells comprise flash memory cells.

6. The method of claim 1 , wherein the inversion pattern comprises a plurality of bits having a first state or a second state, wherein selectively inverting comprises inverting bits of the first check code corresponding to bit positions of the inversion pattern having the first state and not inverting bit positions corresponding to the second state.

7. The method of claim 1 , wherein the matrix comprises:

[

0010

1011

1111

1110

1011

0010

0001

1101

1110

1000

0100

1111

1101

1011

0111

0111

]

.

8. An apparatus comprising:

a controller configured to:

compute a first check code for first data, wherein the first check code corresponds to a first matrix multiplication of the first data and a matrix;

selectively invert bits of the first check code to generate a second check code according to an inversion pattern, wherein the inversion pattern corresponds to a second matrix multiplication of an initial data comprising erased states and the matrix; and

program the first data and the second check code to a plurality of data storage cells.

9. The apparatus of claim 8 , wherein the controller is further configured to:

receive user data; and

transform the user data to the first data according to a transformation function, the first data being the same size as the user data.

10. The apparatus of claim 9 , wherein the controller is further configured to transform the user data according to a Gray code.

11. The apparatus of claim 8 , wherein the data storage cells comprise unidirectional non-volatile data storage cells.

12. The apparatus of claim 8 , wherein the data storage cells comprise flash memory cells.

13. The apparatus of claim 8 , wherein the inversion pattern comprises a plurality of bits having a first state or a second state, wherein the controller is configured to selectively invert bits of the first check code corresponding to bit positions of the inversion pattern having the first state and not invert bit positions corresponding to the second state.

14. The apparatus of claim 8 , wherein the matrix comprises:

[

0010

1011

1111

1110

1011

0010

0001

1101

1110

1000

0100

1111

1101

1011

0111

0111

]

.

15. A memory system comprising:

a plurality of data storage cells; and

a controller configured to:

compute a first check code for first data, wherein the first check code corresponds to a first matrix multiplication of the first data and a matrix;

selectively invert bits of the first check code to generate a second check code according to an inversion pattern, wherein the inversion pattern corresponds to a second matrix multiplication of an initial data comprising erased states and the matrix; and

program the first data and the second check code to the plurality of data storage cells.

16. The memory system of claim 15 , wherein the controller is further configured to:

receive user data; and

transform the user data to the first data according to a transformation function, the first data being the same size as the user data.

17. The memory system of claim 16 , wherein the controller is further configured to transform the user data according to a Gray code.

18. The memory system of claim 15 , wherein the data storage cells comprise flash memory cells.

19. The memory system of claim 15 , wherein the inversion pattern comprises a plurality of bits having a first state or a second state, wherein the controller is configured to selectively invert bits of the first check code corresponding to bit positions of the inversion pattern having the first state and not invert bit positions corresponding to the second state.

20. The memory system of claim 15 , wherein the matrix comprises:

[

0010

1011

1111

1110

1011

0010

0001

1101

1110

1000

0100

1111

1101

1011

0111

0111

]

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
Continuity (2)
Continuation 12623310 · Nov 20, 2009
Related Publication 20130283121A1 · Oct 24, 2013