A semiconductor memory device includes: a memory cell array, in which
electrically rewritable and non-volatile memory cells are arranged to
store multi-value data; a sense amplifier circuit configured to read data
of and write data in the memory cell array; and a controller configured
to control data read and write of the memory cell array, wherein the
controller has such a function as, when an upper page data write sequence
ends in failure, the upper page data being one to be written into an area
of the memory cell array where lower page data has already been written,
to cache the lower page data read out of the memory cell array and held
in the sense amplifier circuit.