Patent ID: 8565004

Claim:
A method for programming a nonvolatile memory device including a plurality of memory cells each of which includes a diode with a nonlinear current-voltage characteristic and a variable resistance element connected to the diode in series, and a variable load resistor connected to the memory cells in series, the variable resistance element being reversibly changed between a first high resistance state and a first low resistance state by applying a first resistance-decreasing electrical pulse to a series circuit including corresponding one of the memory cells and the variable load resistor having a first resistance value so as to change the variable resistance element from the first high resistance state to the first low resistance state, and by applying a first resistance-increasing electrical pulse to the series circuit so as to change the variable resistance element from the first low resistance state to the first high resistance state, said method comprising: detecting, from among the memory cells, an excessively low resistance cell including a variable resistance element in a second low resistance state having a resistance value smaller than a resistance value of the first low resistance state; changing a resistance value of the variable load resistor from the first resistance value to a second resistance value smaller than the first resistance value; and causing the variable resistance element included in the excessively low resistance cell to shift from the second low resistance state to a second high resistance state having a resistance value greater than the resistance value of the first low resistance state, by applying a second resistance-increasing electrical pulse to a series circuit including the excessively low resistance cell and the variable load resistor having the second resistance value.