Some Multi-Level-Cell memories suffer from nonlinearity in their switching mechanism (e.g., ReRAM). Using fixed programming pulses leads to a non-uniform level distribution and state-dependent programming which burdens the controller and demands a modified programming techniques. In order to deal with such a problem, programming methods purpose to apply pre-known programming pulses according to the desired state or perform an iterative program and verify operations which increase energy and programming latency. The main limitation of the existing programming solutions is that the controller should know the desired value for programming in order to apply the appropriate pulses. Nevertheless, the programming operations lead to high programming latency and energy in some cases, and increase complexity due to the higher number of voltage regulators needed to supply different voltage levels. Furthermore, current programming methods must take into account device variations due to imperfections in the fabrication process, and how to control uniform level distribution in order to increase noise margin and process variation tolerance. Applying pre-known programming pulses could lead to a limited cell capacity cause by wide level distributions as a result of not taking into account the different device variants cause by process variations.
The present technology offers an adaptive programming – a new programming method that considers the instantaneous state of the programmed cell and modify programming pulses accordingly, in order to adapt to the cell’s state. Adaptive programming relies on a feedback connection that enables online adaptive amplification of programming pulses according to the programmed cell’s state.
- Usage of a feedback-based peripheral circuitry to adaptively amplify identical programming pulses to fit the current state of the memory cell.
- Shorter programming time.
- Lower energy.
Applications and Opportunities
- Various types of resistive memories in different cell topologies