memtorch.bh.nonideality.endurance_retention_models¶
Submodule containing endurance and retention models, for use with memtorch.bh.nonideality.Endurance and memtorch.bh.nonideality.Retention
memtorch.bh.nonideality.endurance_retention_models.empirical_metal_oxide_RRAM¶
Empirical Metal-Oxide RRAM Device Endurance and Retention Model as described in: C. Lammie, M. Rahimi Azghadi and D. Ielmini, “Empirical Metal-Oxide RRAM Device Endurance and Retention Model For Deep Learning Simulations”, Semiconductor Science and Technology, 2021.
-
class
memtorch.bh.nonideality.endurance_retention_models.empirical_metal_oxide_RRAM.
OperationMode
[source]¶ Bases:
enum.Enum
An enumeration.
-
gradual
= 2¶
-
sudden
= 1¶
-
-
memtorch.bh.nonideality.endurance_retention_models.empirical_metal_oxide_RRAM.
model_endurance_retention
(layer, operation_mode, x, p_lrs, stable_resistance_lrs, p_hrs, stable_resistance_hrs, cell_size, temperature, temperature_threshold=298)[source]¶ Method to model endurance and retention characteristics.
Parameters: - layer (memtorch.mn) – A memrstive layer.
- operation_mode (memtorch.bh.endurance_retention_models.OperationMode) – Failure operational mode (sudden or gradual).
- x (float) – x parameter.
- p_lrs (list) – Low resistance state p_0, p_1, p_2, and p_3 values.
- stable_resistance_lrs (float) – Stable low resistance state.
- p_hrs (list) – High resistance state p_0, p_1, p_2, and p_3 values.
- stable_resistance_hrs (float) – Stable high resistance state.
- cell_size (float) – Device cell size (nm).
- temperature (float) – Operational temperature (K).
- temperature_threshold (float) – Temperature threshold (K) in which the device begins to fail.
Returns: The patched memristive layer.
Return type: memtorch.mn
-
memtorch.bh.nonideality.endurance_retention_models.empirical_metal_oxide_RRAM.
model_endurance_retention_gradual
(initial_resistance, x, p_0, p_1, p_2, p_3, threshold, temperature_constant, cell_size=None)[source]¶ Method to model gradual endurance_retention failure.
Parameters: - initial_resistance (tensor) –
Initial resistance values. x : float
Energy (J) / SET-RESET cycles / Retention time (s). - p_0 (float) – p_0 fitting parameter.
- p_1 (float) – p_1 fitting parameter.
- p_2 (float) – p_2 fitting parameter.
- p_3 (float) – p_3 fitting parameter.
- threshold (float) – Threshold for x.
- temperature_threshold (float) – Temperature threshold (K) in which the device begins to fail.
- cell_size (float) – Device cell size (nm).
Returns: Updated resistance values.
Return type: tensor
- initial_resistance (tensor) –
-
memtorch.bh.nonideality.endurance_retention_models.empirical_metal_oxide_RRAM.
scale_p_0
(p_0, p_1, v_stop, v_stop_min, v_stop_max, v_stop_optimal, cell_size=10)[source]¶ Method to scale p_0 to introduce dependence on v_stop
Parameters: - p_0 (float) – Unscaled p_0 parameter.
- p_1 (float) – p_1 parameter.
- v_stop (float) – v_stop value to determine p_0 for.
- v_stop_min (float) – minimum v_stop value.
- v_stop_max (float) – maximum v_stop value.
- v_stop_optimal (float) – optimal v_stop value (endurance).
- cell_size (float) – Device cell size (nm).
Returns: Scaled p_0 value.
Return type:
memtorch.bh.nonideality.endurance_retention_models.conductance_drift¶
Conductance drift model as described in: I. Boybat et al., “Impact of conductance drift on multi-PCM synaptic architectures”, 2018 Non-Volatile Memory Technology Symposium (NVMTS), 2018.
-
memtorch.bh.nonideality.endurance_retention_models.conductance_drift.
model_conductance_drift
(layer, x, initial_time=1e-12, drift_coefficient=0.1)[source]¶ Parameters: - layer (memtorch.mn) – A memrstive layer.
- x (float) – Retention time (s). Denoted using x for sake of consistency with other models.
- initial_time (float) – Initial time that corresponds with initial conductance values.
- drift_coefficient (float) – Drift coefficient. For PCM devices, drift_coefficient typically has a value of 0.1 for the amorphous phase.
Returns: The patched memristive layer.
Return type: memtorch.mn