In a memory array including first and second memory cells, a method of programming the first and second memory cells to a given state, the second memory cell being programmed after programming the first memory cell, the method comprising first, second, third and fourth program procedures,
- 1) the first program procedure including the steps of:
- a) applying a first program voltage to the first memory cell;
- b) generating a first verify flag by determining whether the first memory cell has reached a preliminary state;
- and
- c) increasing the first program voltage with a first increasing rate if the first verify flag indicates that the first memory cell has not reached to the preliminary state, otherwise removing the first program voltage from the first memory cell,
- 2) the second program procedure determining whether the first memory cell has reached the given state,
- 3) the third program procedure, which is exerted on the first memory cell if the first memory cell has been determined not to have reached the given state, including the steps of:
- d) applying a second program voltage to the first memory cell;
- e) generating a second verify flag by determining whether the first memory cell has reached the given state;
- and
- f) increasing the second program voltage with a second increasing rate if the second verify flag indicates that the first memory cell has not reached to the given state, otherwise removing the second program voltage from the first memory cell,
- 4) the fourth program procedure, which is exerted on the second memory cell after the first, second and third program procedures, including the steps of:
- g) applying a third program voltage to the second memory cell;
- h) generating a third verify flag by determining whether the second memory cell has reached the given state;
- and
- i) increasing the third program voltage with a third increasing rate if the third verify flag indicates that the second memory cell has not reached to the given state, otherwise removing the third program voltage from the second memory cell.