A flash memory comprising: a pair of memory cells consisting of a first memory cell and a second memory cell; and a memory controller (13; 13a), wherein the memory controller (13; 13a) is configured to set the first memory cell to a first threshold voltage, wherein the memory controller (13; 13a) is configured to set the second memory cell to each threshold voltage of multiple threshold voltages including at least second and third threshold voltages (Vth2, Vth3), and wherein the memory controller (13; 13a) is configured to read data, having any one of multiple values, stored in the memory cell pair by using a respective one of differences between the multiple threshold voltages of the second memory cell and the first threshold voltage of the first memory cell, wherein: the first to third threshold voltages (Vth1, Vth2, Vth3) are set, as initial values, such that i) the first voltage is the smallest, followed in order by the second threshold voltage and the third threshold voltage, and ii) a first difference (ΔVth1) between the second threshold voltage and the first threshold voltage is smaller than a difference between the third threshold voltage and the second threshold voltage, the threshold voltages decreasing from their initial values over time, and first and second data values of the multiple data values are allocated, respectively, to the first difference (ΔVth1) and a second difference (ΔVth2) between the third threshold voltage and the first threshold voltage, the first difference (ΔVth1) and the second difference (ΔVth2) decreasing over time from their initial values until an end of life of the flash memory, the end of life being defined as a time when the first difference (ΔVth1) reaches a predetermined resolution (r), the predetermined resolution (r) being smaller than a retention fluctuation designating an amount of decrease of the first threshold voltage from its initial value until the end of life of the flash memory. a pair of memory cells consisting of a first memory cell and a second memory cell; and a memory controller (13; 13a), wherein the memory controller (13; 13a) is configured to set the first memory cell to a first threshold voltage, wherein the memory controller (13; 13a) is configured to set the second memory cell to each threshold voltage of multiple threshold voltages including at least second and third threshold voltages (Vth2, Vth3), and wherein the memory controller (13; 13a) is configured to read data, having any one of multiple values, stored in the memory cell pair by using a respective one of differences between the multiple threshold voltages of the second memory cell and the first threshold voltage of the first memory cell, wherein: the first to third threshold voltages (Vth1, Vth2, Vth3) are set, as initial values, such that i) the first voltage is the smallest, followed in order by the second threshold voltage and the third threshold voltage, and ii) a first difference (ΔVth1) between the second threshold voltage and the first threshold voltage is smaller than a difference between the third threshold voltage and the second threshold voltage, the threshold voltages decreasing from their initial values over time, and first and second data values of the multiple data values are allocated, respectively, to the first difference (ΔVth1) and a second difference (ΔVth2) between the third threshold voltage and the first threshold voltage, the first difference (ΔVth1) and the second difference (ΔVth2) decreasing over time from their initial values until an end of life of the flash memory, the end of life being defined as a time when the first difference (ΔVth1) reaches a predetermined resolution (r), the predetermined resolution (r) being smaller than a retention fluctuation designating an amount of decrease of the first threshold voltage from its initial value until the end of life of the flash memory. the first to third threshold voltages (Vth1, Vth2, Vth3) are set, as initial values, such that i) the first voltage is the smallest, followed in order by the second threshold voltage and the third threshold voltage, and ii) a first difference (ΔVth1) between the second threshold voltage and the first threshold voltage is smaller than a difference between the third threshold voltage and the second threshold voltage, the threshold voltages decreasing from their initial values over time, and first and second data values of the multiple data values are allocated, respectively, to the first difference (ΔVth1) and a second difference (ΔVth2) between the third threshold voltage and the first threshold voltage, the first difference (ΔVth1) and the second difference (ΔVth2) decreasing over time from their initial values until an end of life of the flash memory, the end of life being defined as a time when the first difference (ΔVth1) reaches a predetermined resolution (r), the predetermined resolution (r) being smaller than a retention fluctuation designating an amount of decrease of the first threshold voltage from its initial value until the end of life of the flash memory.