In one data read operation, data read for reading stored data before and
after a predetermined data write magnetic field is applied to a selected
memory cell, respectively, is executed, and the data read is executed in
accordance with comparison of voltage levels corresponding to the data
read operations before and after application of the predetermined data
write magnetic field. In addition, data read operations before and after
the application of a data write magnetic field are executed using read
modify write. It is thereby possible to avoid an influence of an offset or
the like resulting from manufacturing irregularities in respective
circuits forming a data read path, to improve efficiency of the data read
operation with accuracy and to execute a high rate data read operation.