Patent ID: 8537612

Claim:
A method of programming a nonvolatile memory device, comprising: selectively programming memory cells in a first state to a second state based on lower bit data, the first state corresponding to a first threshold voltage distribution and the second state corresponding to a second threshold voltage distribution whose voltage range is higher than a voltage range of the first threshold voltage distribution; programming a portion of memory cells in the second state to a middle state corresponding to a middle threshold voltage distribution whose voltage range is overlapping with or higher than the voltage range of the second threshold voltage distribution; and then selectively programming memory cells in the first state to a third state corresponding to a third threshold voltage distribution whose voltage range is higher than the voltage range of the first threshold voltage distribution and selectively programming the portion of memory cells and memory cells in the second state to a fourth state and a fifth state based on upper bit data, the fourth state corresponding to a fourth threshold voltage distribution whose voltage range is higher than a voltage range of the third threshold voltage distribution and the fifth state corresponding to a fifth threshold voltage distribution whose voltage range is higher than a voltage range of the fourth threshold voltage distribution.