Patent ID: 6903981

Claim:
A sub-block erase method of a non-volatile semiconductor memory device including a matrix of rows and columns of memory cells organized into more than one cell array block, wherein each said memory cell has a charge storage layer and a control gate stacked over each other through an insulative film above a semiconductor substrate and is set in any one of a write state with electrons injected into said charge storage layer and an erase state with electrons drawn out of said charge storage layer, wherein control gates of a plurality of memory cells aligned in a row direction are commonly connected together by a word line, and wherein a plurality of memory cells queued in a column direction are connected together by a bit line to thereby constitute a NAND cell unit, said method being for erasing more than one partial memory cell of said cell array block, said method comprising: performing sub-block erase by giving a voltage for drawing electrons out of said charge storage layer to a control gate of said partial memory cell being an object to be erased; performing sub-block erase verify read to check whether said memory cell to be erased is set in the erase state; performing over-program verify read to check whether an over-programmed memory cell having its threshold voltage higher than a read voltage is present within said NAND cell unit; when said sub-block erase verify read results in failure to make certain that said memory cell is in the erase state and when said over-programmed memory cell is absent, determining whether an execution number of said sub-block erase reaches a predefined allowable number, and then performing re-execution of said sub-block erase when the execution number does not reach the allowable number and otherwise terminating the processing while regarding the erase as being inexecutable when the execution number reaches the allowable number; determining the erase is completed to thereby terminate the processing when said memory cell to be erased becomes in the erase state during said sub-block erase verify read; and determining the erase is inexecutable to thereby terminate the processing when an over-programmed memory cell is found to be present by said over-program verify read.