IP Library Granted Patent US 8,797,795
Granted Patent B2
US 8,797,795 · App. 13/001,310 · Granted Aug 5, 2014

Methods and apparatus for intercell interference mitigation using modulation coding

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,797,795
App. No.
13/001,310
Granted
Aug 5, 2014
Kind
B2
Abstract

Methods and apparatus are provided for intercell interference mitigation using modulation coding. During programming of a flash memory, a modulation encoding is performed that selects one or more levels for programming the flash memory such that a reduced number of cells in the flash memory are programmed with a value that violates one or more predefined criteria. During a reading of a flash memory, a modulation decoding is performed that assigns one or more levels to cells in the flash memory such that a reduced number of cells in the flash memory are read with a value that violates one or more predefined criteria. The predefined criteria can be based, for example, on one or more of an amount of disturbance caused by the programmed cell; a voltage shift of a programmed cell: a voltage stored by a programmed cell; an amount of change in current through a programmed cell; and an amount of current through a programmed cell.

Claims (46)

1. A method for programming a flash memory, comprising:

performing a modulation encoding that selects one or more levels for programming said flash memory such that a reduced number of cells in said flash memory are programmed with a value that violates one or more predefined criteria.

2. The method of claim 1 , wherein said one or more predefined criteria is based on one or more of an amount of disturbance caused by the programmed cell; a voltage shift of the programmed cell; a voltage stored by the programmed cell; an amount of change in current through the programmed cell; and an amount of current through the programmed cell.

3. The method of claim 1 , wherein said modulation encoding is performed on one or more pages in a wordline independently.

4. The method of claim 3 , wherein said modulation encoding is performed only on a subset of pages in said wordline.

5. The method of claim 1 , wherein said modulation encoding is performed for two or more pages in a wordline jointly.

6. The method of claim 1 , wherein said modulation encoding is performed for two or more pages in separate wordlines jointly.

7. The method of claim 1 , further comprising the step of performing a parity encoding after said modulation encoding in a reverse ECC configuration.

8. The method of claim 1 , further comprising the step of performing a parity encoding prior to said modulation encoding in a direct ECC configuration.

9. The method of claim 1 , further comprising the step of remapping one or more program states to ensure that one or more program states have a predefined binary value.

10. The method of claim 1 , further comprising the step of applying a precode following a parity encoding to reduce error propagation at an output of a modulation decoder.

11. The method of claim 10 , wherein said precode comprises a 1/(1⊕D), 1/(1⊕D 2 ) or 1/(1⊕D 3 ) precoding scheme.

12. The method of claim 1 , wherein a first predefined binary value causes more disturbance than a second predefined binary value and wherein said modulation encoding selects one or more levels for programming said flash memory such that a reduced number of cells in said flash memory are programmed with said first predefined binary value.

13. The method of claim 12 , wherein said modulation encoding flips all k bits in k user bits if there are more than k/2 of said first predefined binary value.

14. A method for programming a flash memory, comprising:

encoding data using a modulation code to reduce an occurrence of one or more data patterns that cause disturbance in one or more cells in said flash memory; and

programming one or more cells in said flash memory using said encoded data.

15. The method of claim 14 , wherein said modulation code constrains a use of saw one or more predefined levels.

16. The method of claim 15 , wherein said one or more predefined levels comprise one or more levels that violate one or more predefined criteria.

17. The method of claim 16 , wherein said one or more predefined criteria is based on one or more of an amount of disturbance caused by the programmed cell; a voltage shift of the programmed cell; a voltage stored by the programmed cell; an amount of change in current through the programmed cell; and an amount of current through the programmed cell.

18. The method of claim 14 , further comprising the step of selecting one or more levels for programming said flash memory such that a reduced number of cells in said flash memory are programmed with one or more predefined levels to reduce disturbance in one or more cells in said flash memory.

19. A method for reading a flash memory, comprising:

obtaining data from said flash memory, wherein said data is encoded with a modulation code that reduces an occurrence of one or more data patterns that cause disturbance in one or more cells in said flash memory; and

performing a modulation decoding on said data.

20. The method of claim 19 , wherein said modulation decoding is performed on one or more pages in a wordline independently.

21. The method of claim 20 , wherein said modulation decoding is performed only on a subset of pages in said wordline.

22. The method of claim 19 , wherein said modulation decoding is performed for two or more pages in a wordline jointly.

23. The method of claim 19 , wherein said modulation decoding is performed for two or more pages in separate wordlines jointly.

24. The method of claim 19 , further comprising the step of reverse remapping one or more program states to ensure that one or more program states have a predefined binary value.

25. The method of claim 19 , wherein a precode is applied following a parity encoding to reduce error propagation at an output of a modulation decoder.

26. The method of claim 25 , wherein said precode comprises a 1/(1⊕D), 1/(1⊕D 2 ) or 1/(1⊕D 3 ) precoding scheme.

27. The method of claim 19 , further comprising the step of performing multiple iterations using soft information.

28. The method of claim 19 , wherein a first predefined binary value causes more disturbance than a second predefined binary value and wherein said modulation decoding assigns one or more levels for programming said flash memory such that a reduced number of cells in said flash memory are read with said first predefined binary value.

29. The method of claim 19 , wherein said modulation code assigns one or more levels to cells in said flash memory such that a reduced number of cells in said flash memory are read with a value that violates one or more predefined criteria.

30. A system for programming a flash memory, comprising:

a modulation encoder that encodes data using a modulation code to reduce an occurrence of one or more data patterns that cause disturbance in one or more cells in said flash memory; and

a programmer that programs one or more cells in said flash memory using said encoded data.

31. The system of claim 30 , wherein said modulation code selects one or more levels for programming said flash memory such that a reduced number of cells in said flash memory are programmed with one or more predefined levels.

32. The system of claim 30 , wherein said modulation code constrains a use of one or more program levels.

33. The system of claim 30 , wherein one or more program states are remapped to ensure that one or more program states have a predefined binary value.

34. The system of claim 30 , wherein said modulation encoder analyzes data to be programmed in said flash memory device to determine a frequency of one or more data patterns.

35. The system of claim 30 , wherein said modulation encoder selects one or more levels for programming said flash memory such that a reduced number of cells in said flash memory are programmed with one or more predefined levels to reduce disturbance in one or more cells in said flash memory.

36. A system for reading a flash memory, comprising:

a modulation decoder that obtains data from said flash memory, wherein said data is encoded by a modulation encoder with a modulation code that reduces an occurrence of one or more data patterns that cause disturbance in one or more cells in said flash memory; and performs a modulation decoding on said data.

37. The system of claim 36 , wherein said modulation code assigns one or more levels to cells in said flash memory such that a reduced number of cells in said flash memory are read with a value that violates one or more predefined criteria.

38. The method of claim 37 , wherein said one or more predefined criteria is based on one or more of an amount of disturbance caused by the programmed cell; a voltage shift of the programmed cell; a voltage stored by the programmed cell; an amount of change in current through the programmed cell; and an amount of current through the programmed cell.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2015
From: LSI CORPORATION
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 037234/0034 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Mar 19, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 035226/0230 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2011
From: GRAEF, NILS; HARATSCH, ERICH F.; IVKOVIC, MILOS; KRACHKOVSKY, VICTOR; VITYAEV, ANDREI; YEN, JOHNSON
To: LSI CORPORATION
Reel/Frame 026475/0393 →