In a data reading method, a first reading pulse is applied to a memory
cell to generate a first signal corresponding to data stored in the
memory cell, reference signal generating data corresponding to a high
level side is written to the memory cell, a second reading pulse is
applied to the memory cell to generate a second signal corresponding to
the reference signal generating data, and a reference signal is generated
on the basis of the second signal. Then the first signal and the
reference signal are compared with each other to determine the stored
data stored in the memory cell. In data writing, high-level data is first
written to the memory cell without using a bit line.