Patent ID: 8184470

Claim:
A method of programming a resistance change memory device, comprising: applying program voltage pulses to a memory cell for programming a target resistance value that is selected from multiple resistance values of the memory cell; setting thermal relaxation times between the respective program voltage pulses; and controlling each of the program voltage pulses, wherein multiple resistance value sections are defined by boundary resistance values set at respective boundaries in the multiple resistance values of the memory cell, a pulse width, a pulse height, or a pulse shape of the program voltage pulse is controlled with judging which resistance value section the cell's resistance value belongs to after applying every program voltage pulse, programming is performed as to bring the memory cell set at an initial value to have the target resistance value higher than the initial value in accordance with a Joule's heat generated in the memory cell by a preceding program voltage pulse application, and wherein the pulse width, the pulse height, or the pulse shape of each of the program voltage pulses is so controlled as to make the Joule's heat substantially constant.