Patent ID: 7057939
Filing Date: 2006-06-06
Classification: G11C

Abstract:
1. A method for programming non-volatile memory cells of a type that store data as corresponding different levels of charge in charge storage elements thereof, the charge storage levels of said elements being in a reset charge storage level distribution prior to the programming, said method comprising: programming the charge storage elements in at least two passes, wherein during a first pass, selected ones of the elements are programmed into a first storage level distribution, and during a subsequent second pass, selected ones of the elements in the reset charge storage level distribution are programmed into a second storage level distribution and selected ones of the elements in the first storage level distribution are programmed into a third storage level distribution, the second storage level distribution being between the reset and the first storage level distributions, the first storage level distribution being between the second and third storage level distributions, the first storage level distribution being between the second and third storage level distributions; wherein when there is insufficient host data to program at least one of the elements during the second pass, said at least one element having been programmed into the first storage level during the first pass, the programming is such that it causes the charge storage level of said at least one element to be below the charge storage levels of the third storage level distribution after the second pass.