{'fraction_non_alphanumeric': 0.017271157167530225, 'fraction_numerical': 0.0, 'mean_word_length': 5.533834586466165, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Multilevel Phase-Change Memory Modeling and Experimental Characterization

Phase-change memory (PCM) has emerged in recent years as the most promising technology for non-volatile memory due to its very high throughput performance and read/write endurance as well as future scalability. Multilevel functionality is crucial for increasing the capacity and thus enhancing the cost per GByte competitiveness of the PCM technology. However, storage of multiple resistance levels in a PCM cell is a challenging problem; issues like process variability, as well as intra-cell and inter-cell material parameter variations give rise to deviations in the achieved resistance levels from their intended target values. Therefore, iterative programming schemes are required employing multiple write-verify steps until the desired resistance level is reached. A thorough understanding of the characteristics of the PCM cells is essential for the design of an effective programming algorithm. In this paper, we present a systems-based model that captures the essential behavior of the PCM cell. In particular, the model captures the interplay between the electrical, thermal and phase-change parts of the system. Experimental results at various intermediate cell states were utilized to characterize the PCM cell behavior and fit the model parameters. The systemsbased model of the PCM cell is a powerful tool for the design of efficient iterative multilevel programming algorithms. Finally, schemes that adaptively control parameters of the programming pulse in an iterative manner are presented, and experimental results on PCM cells demonstrating the efficacy of the presented programming schemes in achieving multilevel functionality are discussed.