Patent ID: 7609544

Claim:
A semiconductor device, comprising: a memory array including a plurality of word lines which extend in a first direction, a plurality of bit lines which extend in a second direction and which intersect said word lines, and a plurality of memory cells which are disposed at respective intersection points of said word lines and said bit lines and which are connected to said word lines and said bit lines associated with said respective intersection points; a plurality of word drivers, each said word driver being connected to a respective one of said plurality of word lines; a plurality of read circuits, each said read circuit being connected to a respective one of said plurality of bit lines; and a plurality of write circuits, each said write circuit being connected to a respective one of said plurality of bit lines, wherein each said memory cell has a storage element which stores data therein and a field-effect transistor which is connected to said storage element, and said semiconductor device further comprises: a circuit portion which applies a first voltage to said storage element and then applies a second voltage to said storage element for a first time period to perform a write operation, which checks a value written into said storage element, and, which, if the value of said storage element is not within a desired range, applies said first voltage to said storage element and then applies a third voltage, different from said second voltage, to said storage element for said first time period to perform the write operation again, wherein the first voltage is smaller than the second and third voltages, wherein a resistance value of said storage element that is supplied with the second voltage is higher than a resistance value of said storage element that is supplied with the first voltage, and wherein a resistance value of said storage element that is supplied with the third voltage is higher than a resistance value of said storage element that is supplied with the first voltage.