1. A method of programming a non-volatile memory array, the method comprising: supplying a first programming current to a first memory cell, said first programming current sufficient to program said first memory cell into a set state, said first memory cell comprising a reversibly switchable material in series with a dielectric material; and supplying a second programming current to a second memory cell, said second programming current sufficient to program said second memory cell into a reset state, said second memory cell comprising a reversibly switchable material in series with a dielectric material, supplying of said second programming current simultaneous with supplying of said first programming current.