1. A method of programming a non-volatile memory device, the method comprising: providing information to said memory device; subsequently initiating a transition from a set state to a reset state of a memory cell of said memory device to program said information in said memory cell in response to a write command, by applying a first portion of an electric pulse to drive said memory cell into a high-voltage unstable state; and applying a second portion of said electric pulse during said transition to decrease a voltage of said electric pulse so as to return said memory cell to a stable state.