IP Library Granted Patent US 8,634,250
Granted Patent B2
US 8,634,250 · App. 13/001,295 · Granted Jan 21, 2014

Methods and apparatus for programming multiple program values per signal level in 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 8,634,250
App. No.
13/001,295
Granted
Jan 21, 2014
Kind
B2
Abstract

Methods and apparatus are provided for programming multiple program values per signal level in flash memories. A flash memory device having a plurality of program values is programmed by programming the flash memory device for a given signal level, wherein the programming step comprises a programming phase and a plurality of verify phases. In another variation, a flash memory device having a plurality of program values is programmed, and the programming step comprises a programming phase and a plurality of verify phases, wherein at least one signal level comprises a plurality of the program values. The signal levels or the program values (or both) can be represented using one or more of a voltage, a current and a resistance.

Claims (61)

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

programming said flash memory device for a given signal level, wherein said given signal level corresponds to a plurality of program values, and

computing at least one of said plurality of program values for said given signal level by subtracting a cancellation term from an original program value;

wherein said programming step comprises a programming phase and a plurality of verify phases,

wherein at least two of said plurality of verify phases correspond to different program values for said given signal level.

2. The method of claim 1 wherein said programming step is repeated until all cells for a given signal level are programmed.

3. The method of claim 1 wherein said programming step is repeated for one or more additional signal levels.

4. The method of claim 1 , wherein said verify phases further comprise the steps of reading one or more read values from said flash memory device and comparing said one or more read values to at least one threshold corresponding to one of said program values.

5. The method of claim 1 , wherein each of said program values is associated with one of a plurality of groups and wherein each of said groups corresponds to a signal level.

6. The method of claim 1 , wherein each of said program values is associated with one of a plurality of groups and wherein at least two of said groups comprise a different number of members.

7. The method of claim 1 , wherein each of said program values is associated with one of a plurality of groups and wherein a number of said groups corresponds to a number of signal levels in said flash memory device.

8. The method of claim 1 , wherein a number of said program values corresponds to a number of signal levels in said flash memory device.

9. The method of claim 1 , wherein each of said program values is associated with one of a plurality of groups and wherein one of said groups comprises a first set of cells programmed to a first signal level and a second set of cells programmed to a second signal level.

10. The method of claim 9 , wherein said first signal level has a first corresponding threshold for a first of said verify phases and wherein said second signal level has a second corresponding threshold for a second of said verify phases.

11. The method of claim 1 , further comprising the step of excluding one or more cells from a given one of said verify phases if a program value associated with said given verify phase does not apply to said excluded one or more cells.

12. The method of claim 1 , further comprising the step of excluding one or more cells from a further one of said verify phases if said excluded one or more cells pass one of said verify phases.

13. The method of claim 1 , wherein said plurality of program values comprise program values that precompensate for one or more of intercell interference, back pattern dependency, program disturb, read disturb and additional noise.

14. The method of claim 1 , wherein said plurality of program values correspond to precompensated program values that compensate for disturbance.

15. The method of claim 14 , wherein said disturbance comprises intercell interference from at least one aggressor cell.

16. The method of claim 15 , wherein a number of said program values corresponds to L k , where L is a number of different ΔV t (l) values, ΔV t (l) is a change in a V t voltage of a cell and k is a number of considered aggressor cells.

17. The method of claim 15 , wherein a number of said program values corresponds to M k , where k is a number of considered aggressor cells and M is the number of distinct voltage shifts that are considered.

18. The method of claim 15 , wherein a number of program values corresponds to M, where M is the number of distinct voltage shifts that are considered.

19. The method of claim 1 , wherein said flash memory device is programmed using one or more of a page access technique and a wordline level access technique.

20. The method of claim 15 , wherein said at least one aggressor cell comprises one or more cells adjacent to a target cell.

21. The method of claim 14 , wherein said precompensated program values are obtained from an interface for writing in said flash memory device.

22. The method of claim 14 , wherein said precompensated program values are computed by a processor associated with said flash memory device.

23. The method of claim 14 , wherein said precompensated program values are computed by a processor associated with a flash memory controller.

24. The method of claim 1 , wherein said programming of at least two of said signal levels can have a different number of said verify phases.

25. The method of claim 1 , wherein one or more of said signal level and said program value are represented using one or more of a voltage, a current and a resistance.

26. A system for programming a flash memory device, comprising:

a memory; and

at least one processor, coupled to the memory, operative to:

program said flash memory device for a given signal level, and

compute at least one of said plurality of program values for said given signal level by subtracting a cancellation term from an original program value;

wherein said given signal level corresponds to a plurality of program values,

wherein said programming step comprises a programming phase and a plurality of verify phases,

wherein at least two of said plurality of verify phases correspond to different program values for said given signal level.

27. The system of claim 26 wherein said programming is repeated until all cells for a given signal level are programmed.

28. The system of claim 26 wherein said programming is repeated for one or more additional signal levels.

29. The system of claim 26 , wherein said verify phases further comprise reading one or more read values from said flash memory device and comparing said one or more read values to at least one threshold corresponding to one of said program values.

30. The system of claim 26 , wherein each of said program values is associated with one of a plurality of groups and wherein each of said groups corresponds to a signal level.

31. The system of claim 26 , wherein each of said program values is associated with one of a plurality of groups and wherein at least two of said groups comprise a different number of members.

32. The system of claim 26 , wherein each of said program values is associated with one of a plurality of groups and wherein a number of said groups corresponds to a number of signal levels in said flash memory device.

33. The system of claim 26 , wherein a number of said program values corresponds to a number of signal levels in said flash memory device.

34. The system of claim 26 , wherein each of said program values is associated with one of a plurality of groups and wherein one of said groups comprises a first set of cells programmed to a first signal level and a second set of cells programmed to a second signal level.

35. The system of claim 34 , wherein said first signal level has a first corresponding threshold for a first of said verify phases and wherein said second signal level has a second corresponding threshold for a second of said verify phases.

36. The system of claim 26 , wherein said at least one processor is further configured to exclude one or more cells from a given one of said verify phases if a program value associated with said given verify phase does not apply to said excluded one or more cells.

37. The system of claim 26 , wherein said at least one processor is further configured to exclude one or more cells from a further one of said verify phases if said excluded one or more cells pass one of said verify phases.

38. The system of claim 26 , wherein said plurality of program values comprise program values that precompensate for one or more of intercell interference, back pattern dependency, program disturb, read disturb and additional noise.

39. The system of claim 26 , wherein said plurality of program values correspond to precompensated program values that compensate for disturbance.

40. The system of claim 39 , wherein said disturbance comprises intercell interference from at least one aggressor cell.

41. The system of claim 40 , wherein a number of said program values corresponds L k , where L is a number of different ΔV t (l) values, ΔV t (l) is a change in a V t voltage of a cell and k is a number of considered aggressor cells.

42. The system of claim 40 , wherein a number of said program values corresponds to M k , where k is a number of considered aggressor cells and M is the number of distinct voltage shifts that are considered.

43. The system of claim 40 , wherein a number of program values corresponds to M, where M is the number of distinct voltage shifts that are considered.

44. The system of claim 26 , wherein said flash memory device is programmed using one or more of a page access technique and a wordline level access technique.

45. The system of claim 40 , wherein said at least one aggressor cell comprises one or more cells adjacent to a target cell.

46. The system of claim 39 , wherein said precompensated program values are obtained from an interface for writing in said flash memory device.

47. The system of claim 39 , wherein said precompensated program values are computed by a processor associated with said flash memory device.

48. The system of claim 39 , wherein said precompensated program values are computed by a processor associated with a flash memory controller.

49. The system of claim 26 , wherein said programming of at least two of said signal levels can have a different number of said verify phases.

50. The system of claim 26 , wherein one or more of said signal level and said program value are represented using one or more of a voltage, a current and a resistance.

Assignments (5)
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 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: HARATSCH, ERICH F.; IVKOVIC, MILOS; KRACHKOVSKY, VICTOR; MILADINOVIC, NENAD; VITYAEV, ANDREI; YEN, JOHNSON
To: LSI CORPORATION
Reel/Frame 026475/0223 →