Patent ID: 6967872
Filing Date: 2005-11-22
Classification: G11C

Abstract:
1. A method of programming a plurality of non-volatile memory cells to have a plurality of threshold voltage levels, the method comprising: programming the memory cells with at least one voltage pulse; after at least one voltage pulse, continuing programming if no memory cell has reached or exceeded a first predetermined threshold voltage level, the first predetermined threshold voltage level representing a first set of data bits; inhibiting programming of any memory cell that has reached or exceeded the first predetermined threshold voltage level; determining whether all memory cells selected to store the first set of data bits have reached or exceeded the first predetermined threshold voltage level; if at least one memory cell selected to store the first set of data bits has not reached or exceeded the first predetermined threshold voltage level, continuing programming of uninhibited memory cells; if all memory cells selected to store the first set of data bits have reached or exceeded the first predetermined threshold voltage level, determining whether all memory cells selected to store second or third sets of data bits have reached or exceeded the first predetermined threshold voltage level; if at least one memory cell selected to store second or third sets of data bits has not reached or exceeded the first predetermined threshold voltage level, continuing programming uninhibited memory cells until all memory cells selected to store second or third sets of data bits have reached or exceeded the first predetermined threshold voltage level; and if all memory cells selected to store second or third sets of data bits have reached or exceeded the first predetermined threshold voltage level, continuing programming all memory cells selected to store second or third sets of data bits.