In a memory cell array of an MRAM, a normal memory cell is compared with a
reference memory cell which holds a reference value, thereby storing data
of one bit per cell. Two spare memory cells store data of one bit as a
whole. By writing complementary values to the two spare memory cells and
connecting these spare memory cells to a sense amplifier, the stored data
of one bit is read. A spare memory cell section which is often arranged
in an array peripheral portion becomes more resistant against a variation
in finished dimensions of elements and a success rate for replacing and
relieving a defective memory cell by a spare memory cell increases.