an electrically alterable , non - volatile memory cell has more than two memory states that can be programmed selectively . programming of the cell is conducted by applying a plurality of programming signals having different characteristics to the cell . the programming signals include at least a first programming signal which programs the cell by a first increment and a subsequent programming signal which programs the cell by a second increment smaller than the first increment . as the cell is being programmed to a selected state , its programming status is verified independently of reference values bounding the memory states . for this purpose , a signal indicative of the programming status is compared with a reference signal corresponding to the selected state but having a value different from the reference value or values bounding the selected state . the programming operation can thus be controlled without actually reading the memory state of the cell .