Brevet FR3131426A1 — publié le 20230630

La présente invention concerne un procédé d’écriture d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R comprenant chacune des premier et deuxième ensembles d’un résistor (R) et d’un transistor de sélection (T). Le procédé comprend des étapes consistant à générer un mot de code initial, le programmer en mode 1T1R, vérifier sa programmation en mode 1T1R, l’inverser, programmer en mode 1T1R le mot de code initial inversé, vérifier en mode 1T1R sa programmation, et lire en mode différentiel 2T2R que les données lues correspondent auxdites données initiales. La présente invention concerne également un dispositif adapté pour mettre en œuvre ce procédé d’écriture et un système électronique comprenant ce dispositif. Figure pour l’abrégé : Fig. 2 Procédé d’écriture pour des mémoires résistives différentielles. Domaine de l’invention La présente invention concerne un procédé d’écriture pour des mémoires résistives différentielles, de structure 2T2R. Etat de la technique Les mémoires résistives sont des mémoires non-volatiles présentant une vitesse de fonctionnement plus élevée que la NAND flash (mémoire SSD), une faible consommation d’énergie électrique et une grande durée de vie. Pour ces raisons, les mémoires résistives sont des candidates prometteuses pour remplacer à la fois les mémoires vives et les mémoires non-volatiles actuelles telles que les mémoires de type flash. Il existe plusieurs technologies de mémoires résistives. On peut notamment citer les mémoires résistives à pont conducteur, également appelées CBRAM (pour « Conductive-Bridging Random-Access Memory » selon la terminologie anglo-saxonne), ou les mémoires résistives à base d’oxyde, également appelées OxRAM (pour « Oxide-based Random-Access Memory » selon la terminologie anglo-saxonne) ou encore les mémoires à changement de phase, également appelées PCM (pour « Phase Change Memory »). Une mémoire résistive est composée d’une multitude de cellules mémoires résistives agencées en lignes et colonnes de manière à former une matrice. Une cellule mémoire RRAM est dotée d’au moins un élément résistif dont on peut modifier la résistance électrique. Une cellule mémoire résistive élémentaire telle qu’illustrée sur la (avec un exemple de dispositif de lecture associé), est constituée généralement d’un transistor (T) et d’un composant résistif (R) ou résistor (12), où un bit d’information est encodé par la valeur de la résistance électrique du résistor et accédé via le transistor au croisement d’une ligne de bit (BL) et d’une ligne de mot (WL). Pour ces cellules élémentaires, un ‘0’ logique peut par exemple être encodé en programmant le résistor dans un état de résistance haute HRS, et un ‘1’ logique peut alors être encodé en programmant le résistor dans un état de résistance basse LRS, et l’on parle alors d’encodage en mode 1T1R. Pour programmer une cellule mémoire, une tension de programmation est appliquée entre les électrodes de la cellule mémoire. Il peut s’agir d’une tension d’écriture pour écrire la cellule mémoire, c’est-à-dire la placer dans l’état faiblement résistif LRS, ou d’une tension d’effacement pour effacer la cellule mémoire, c’est-à-dire la placer dans l’état fortement résistif HRS. Cependant, après une opération de programmation, il peut arriver que la cellule mémoire ne passe pas dans l’état de résistance souhaité. Pour cette raison, il est généralement effectué une vérification pour s’assurer que la cellule mémoire est correctement programmée en comparant sa valeur de résistance R à un seuil de résistance prédéfini R REF . Cependant, l’écart entre la plus faible valeur correspondant à un niveau HRS et la plus haute valeur correspondant au niveau LRS, également appelé « fenêtre mémoire », est souvent faible. Dès lors, on utilise couramment un « encodage différentiel » pour coder une valeur binaire à mémoriser. Un bit d’information peut alors être encodé dans une cellule mémoire dite 2T2R, composée de deux cellules élémentaires 1T1R, comprenant 2 transistors (2T) et 2 résistors (2R), et l’on parle alors d’encodage en mode 2T2R. La illustre une variante d’implémentation d’une cellule 2T2R avec un dispositif de lecture d’une telle cellule mémoire. Comme chacun des états HRS et LRS peut être associé à une valeur logique, i.e. ‘0’ ou ‘1’, on peut considérer que dans une cellule 2T2R un des deux éléments résistifs encode le bit à programmer en version non-inversée tandis que l’autre élément résistif encode le même bit en version inversée. Par exemple, un ‘0’ logique est encodé en programmant le résistor de la première cellule 1T1R dans un état de résistance haute HRS et le résistor de la deuxième cellule 1T1R dans un état de résistance basse LRS, et un ‘1’ logique est encodé en programmant le résistor de la première cellule 1T1R dans un état de résistance basse LRS et le résistor de la deuxième cellule dans un état de résistance haute HRS. Ainsi, en encodage différentiel, chaque bit d’information est encodé dans une cellule élémentaire 2T2R formée de deux éléments résistifs qui sont écrits en opposition d’état, c’est-à-dire un des éléments résistifs avec un niveau HRS et l’autre avec un niveau LRS, les niveaux respectifs de résistance des deux éléments résistifs étant déterminés toujours dans le même ordre entre les deux éléments, qui définissent si l’on est en présence d’un ‘0’ ou d’un ‘1’ logique suivant qu’il correspond aux états HRS-LRS ou LRS-HRS. Lors d’une opération d’écriture dans une cellule mémoire 1T1R ou 2T2R, il faut s’assurer que chaque résistance électrique qui doit être programmée à un état HRS ou l’état LRS est respectivement soit plus grande, soit plus petite qu’une valeur de référence R REF . La comparaison d’une résistance électrique avec la valeur R REF est faite par une opération de lecture au cours de laquelle la résistance programmée est comparée à la valeur R REF à l’aide d’un amplificateur de détection ou SA (pour « Sense Amplifier» selon la terminologie anglo-saxonne) illustré par le composant 14 sur la , 24 sur la , et 34 sur la figure 1c. Par la suite, cette opération de lecture avec comparaison à une valeur de référence est appelée mode 1T1R. Sur la , l'amplificateur de détection 14 réagit à la différence de ses deux entrées ‘SL’ (provenant de la cellule 1T1R) et ‘ref’ (représentative d’une valeur de résistance électrique de référence R REF ), pour générer un signal de sortie ‘V out ’ qui indique l'état résistif de l'élément mémoire de la cellule et renseignant ainsi la valeur qui est stockée dans la cellule 1T1R. Sur la , l'amplificateur de détection 24 est sensible à la différence sur ses entrées, pour générer un signal de sortie ‘V out ’. Deux multiplexeurs (23-1, 23-2) sont respectivement reliés, sur une première entrée, à chaque ligne SL (SL1, SL2) reliée à une cellule 1T1R (22-1, 22-2). La seconde entrée de chaque multiplexeur est reliée à une résistance de référence R REF . Les sorties des multiplexeurs sont respectivement reliées aux entrées de l’amplificateur différentiel de détection 24. Ce schéma est très symbolique et ne représente pas l’ensemble des éléments électroniques nécessaires à la réalisation d’une opération de lecture qui sont bien connus de l’homme de l’art (notamment les circuits de polarisation des cellules élémentaires et de la résistance de référence). Ce schéma simplifié permet d’illustrer plusieurs principes de lecture possibles pour des cellules différentielles. Ainsi, quand les deux multiplexeurs sont configurés pour laisser passer les signaux présents sur les lignes SL1 et SL2, l’amplificateur 24 évalue une différence de résistance des deux éléments résistifs de la cellule 2T2R (respectivement, la différence entre 22-1 et 22-2), en renseignant ainsi sur la valeur qui est stockée dans la paire différentielle sélectionnée de la cellule 2T2R. Quand on souhaite réaliser une lecture d’une unique cellule 1T1R, et se ramener au mode de lecture représenté en , les multiplexeurs sont positionnés de sorte à laisser passer une ligne SL1 ou SL2 sur l’un des multiplexeurs et à laisser passer le signal relié à la résistance de référence sur l’autre des multiplexeurs. Les opérations de lecture dans les mémoires résistives sont généralement effectuées en mode 1T1R. Pour lire les données de la cellule RRAM, une petite tension de lecture qui ne perturbe pas l'état courant de la cellule est appliquée pour déterminer dans quel état logique est la cellule. Dans les mémoires où l’information est encodée en mode 2T2R, les opérations de lecture, hors celle de vérification de la programmation, peuvent être effectuées en mode 2T2R aussi appelé lecture en mode différentiel. Les valeurs des deux résistances présentes dans chaque cellule mémoire 2T2R qui est adressée, sont comparées entre elles à l’aide d’un amplificateur de détection SA. Une technique de lecture d’une donnée stockée dans une cellule mémoire 2T2R est décrite dans le document : « Hybrid Analog-Digital Learning with Differential RRAM synapses » de Bocquet et al. IEDM19-534. Elle utilise un circuit de lecture doté d’un amplificateur de détection de type à verrouillage qui, lors d’une opération de lecture, est couplé à la paire différentielle d’éléments résistifs par l’intermédiaire d’une paire de lignes de bits et est dotée de nœuds dont les potentiels basculent en fonction de valeurs de courant qui traversent les éléments résistifs. Ce type d’amplificateur de détection est réalisé avec peu de transistors et fonctionne comme un amplificateur différentiel de courant à fort gain. Il permet de comparer directement des courants qui traversent les éléments résistifs et circulent via des lignes de bits. Étant donné que les éléments résistifs conservent leurs valeurs respectives même après la suppression de la tension appliquée, la mémoire résistive RRAM fait partie des mémoires non volatiles. Cependant, l’usage d’une mémoire implique de fréquentes transitions entre un état à haute résistance (HRS) et un état à faible résistance (LRS), et réciproquement, et chaque événement de commutation entre ces états résistifs peut introduire des dommages, les valeurs des résistances programmées pouvant changer à cause de phénomènes de relaxation, et entraîner alors une dégradation des performances de la RRAM. Le temps de rétention de l’information dans une mémoire résistive dépend alors (a) des opérations de lecture et d’écriture, (b) des températures d’utilisation et/ou (c) des champs magnétiques élevés dans le cas des mémoires magnétiques. De plus, les tensions de commutation sont aussi des paramètres présentant un degré élevé de variation. Les variations de la commutation de résistance comprennent des fluctuations temporelles (cycle à cycle) et des fluctuations spatiales (dispositif à dispositif). Par ailleurs, les mémoires résistives présentent également une non-uniformité cellule à cellule qui dégrade également les performances de la mémoire en réduisant la marge de mémoire entre deux états. L'origine de cette variabilité est attribuée aux non-uniformités du processus de fabrication telles que l'épaisseur du film de commutation, les dommages de gravure et la rugosité de surface des électrodes. Ces variations entrainent que les résistances des mémoires résistives qui sont programmées dans l’état LRS peuvent dériver vers un état HRS, et les résistances qui sont programmées dans l’état HRS peuvent dériver vers un état LRS. Dès lors, ce glissement des valeurs des résistances programmées peut engendrer des erreurs lors des opérations de lecture, et diminuer la performance des mémoires. Une manière courante d’améliorer la performance des mémoires RRAM est de diminuer leur taux d’erreur. Pour réduire le taux d’erreur des mémoires, une solution couramment utilisée consiste à utiliser un code correcteur d’erreurs ou ECC (pour « Error Correcting Code » selon la terminologie anglo-saxonne) qui encode les données avant leur écriture en mémoire. Généralement, l’encodeur ECC est situé à l’intérieur ou à proximité du contrôleur mémoire. Lors de l'encodage de données avec un code ECC, des bits de vérification sont ajoutés aux bits de données, les bits de vérification représentant une information redondante calculée à partir des bits de données, qui permet la détection et la correction des erreurs affectant aussi bien les bits de données que les bits de vérification. L’ensemble des bits de données et des bits de vérification forme un mot de code. L’utilisation de mémoires résistives 2T2R, qui présentent théoriquement une fenêtre de lecture deux fois plus grande, permet de réduire le taux d’erreurs et le besoin d’employer un code correcteur coûteux. L’efficacité de l’encodage différentiel est plus grande dans le cas où la programmation de chaque résistance utilisée pour un encodage différentiel est effectuée en mode 1T1R, c’est-à-dire dans un mode où il faut garantir que si la valeur de la résistance doit être en état HRS/LRS alors elle est bien plus grande/petite qu’une valeur de référence R REF . Cependant cette dernière contrainte rend l’opération d’écriture d’une mémoire résistive plus difficile et plus longue. Dans les mémoires résistives de type 2T2R, une opération d’écriture utilise significativement plus d'énergie qu’une opération de lecture et, de plus, elle affecte les performances des cellules de mémoires, bien plus que ne le fait une opération de lecture. Face à cette problématique de perte de performance il existe le besoin d’une solution pour éviter ou diminuer les opérations d’écriture dans des mémoires résistives de type 2T2R. Description brève de l’invention L’invention vise à pallier tout ou partie des problèmes cités plus haut en proposant un procédé d’écriture pour des mémoires de types résistives de type 2T2R qui est moins contraignant et également plus rapide. Ce procédé d’écriture permet de garantir la fonctionnalité de la mémoire résistive malgré la variabilité intrinsèque des opérations d’écriture pour des mémoires résistives. A cet effet, l’invention a pour objet un procédé d’écriture d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R comprenant chacune des premier et deuxième ensembles d’un résistor (R) et d’un transistor de sélection (T), le procédé comprenant des étapes consistant à : générer un mot de code initial à partir de bits de données initiales et de bits de vérification générés à partir du mot de données, et initialiser un compteur de nombre de programmations, le nombre de programmations correspondant à un nombre maximum de programmations pour ledit mot dans un groupe de cellules différentielles sélectionnées ; programmer en mode 1T1R ce mot de code initial dans la mémoire résistive, en sélectionnant les premiers ensembles 1T1R des cellules différentielles sélectionnées, puis réaliser une lecture 1T1R de vérification et incrémenter ou décrémenter le compteur de nombre de programmations ; répéter l’étape précédente tant que tous les bits du mot de code initial n’ont pas été programmés correctement et que le nombre maximum de programmations n’est pas atteint ; inverser le mot de code initial et réinitialiser le compteur de nombre de programmations ; programmer en mode 1T1R dans la mémoire résistive, le mot de code initial inversé à l’étape précédente, en sélectionnant les deuxièmes ensembles 1T1R des cellules différentielles sélectionnées, puis réaliser une lecture 1T1R de vérification et incrémenter ou décrémenter le compteur de nombre de programmations ; répéter l’étape précédente tant que tous les bits du mot de code initial inversé n’ont pas été programmés correctement et que le nombre maximum de programmations n’est pas atteint ; réaliser une lecture de vérification en mode différentiel 2T2R des cellules différentielles sélectionnées et vérifier à minima que les données lues correspondent auxdites données initiales ; et selon le résultat de la vérification, terminer le procédé d’écriture ou signaler une erreur du procédé d’écriture. Dans un mode de réalisation, ladite lecture de vérification en mode différentiel 2T2R inclut la vérification de tous les bits du mot de code lus par rapport aux bits du mot de code initial. Dans un mode de réalisation, l’étape consistant à répéter l’étape précédente (programmer en mode 1T1R ce mot de code initial dans la mémoire résistive) comprend les sous-étapes suivantes consistant à : vérifier par lecture en mode 1T1R dans la mémoire résistive s’il reste des bits de données et de vérification non programmés ; et s’il reste des bits non programmés et si le nombre maximum d’écritures en mémoire pour ledit mot de code initial n’est pas atteint, répéter l’étape consistant à programmer en mode 1T1R ledit mot de code initial dans la mémoire résistive ; ou s’il ne reste pas de bits non programmés ou si le nombre maximum d’écritures en mémoire pour ledit mot de code initial est atteint, poursuivre par l’étape suivante. Dans un mode de réalisation, l’étape consistant à répéter l’étape précédente (s’il reste des bits non programmés et si le nombre maximum d’écritures en mémoire pour ledit mot de code initial n’est pas atteint ) comprend les sous-étapes suivantes consistant à : vérifier par lecture en mode 1T1R dans la mémoire résistive s’il reste des bits de données et de vérification du mot de code initial inversé non programmés ; et s’il reste des bits non programmés et si le nombre maximum d’écritures en mémoire pour ledit mot de code initial inversé n’est pas atteint, répéter l’étape consistant à programmer en mode 1T1R ledit mot de code initial inversé dans la mémoire résistive ; ou s’il ne reste pas de bits non programmés ou si le nombre maximum d’écritures en mémoire pour ledit mot de code initial inversé est atteint, poursuivre par l’étape suivante (réaliser une lecture de vérification en mode différentiel 2T2R des cellules différentielles sélectionnées et vérifier à minima que les données lues correspondent auxdites données initiales). Dans un mode de réalisation, l’étape consistant à répéter l’étape précédente (programmer en mode 1T1R dans la mémoire résistive, le mot de code initial inversé à l’étape précédente) comprend les sous-étapes suivantes consistant à : vérifier par lecture en mode 1T1R dans la mémoire résistive s’il reste des bits de données et de vérification du mot de code initial inversé non programmés ; et s’il reste des bits non programmés et si le nombre maximum d’écritures en mémoire pour ledit mot de code initial inversé n’est pas atteint, répéter l’étape consistant à programmer en mode 1T1R ledit mot de code initial inversé dans la mémoire résistive ; ou s’il ne reste pas de bits non programmés ou si le nombre maximum d’écritures en mémoire pour ledit mot de code initial inversé est atteint, poursuivre par l’étape suivante (réaliser une lecture de vérification en mode différentiel 2T2R des cellules différentielles sélectionnées et vérifier à minima que les données lues correspondent auxdites données initiales). Dans un mode de réalisation, l’étape consistant à terminer le procédé d’écriture est effectuée si les données lues en mode 2T2R correspondent auxdites données initiales; et dans lequel l’étape consistant à signaler une erreur du procédé d’écriture est effectuée si les données lues en mode 2T2R ne correspond pas auxdites données initiales. Dans un mode de réalisation, l’étape consistant à programmer en mode 1T1R le mot de code initial dans la mémoire résistive et/ou l’étape consistant à programmer en mode 1T1R le mot de code initial inversé dans la mémoire résistive comprenant des sous-étapes consiste à : lire en mode 1T1R dans la mémoire résistive les bits à l’adresse de programmation du mot de code et comparer les bits lus à ladite adresse de programmation et les bits du mot de code à programmer, et programmer en mode 1T1R dans la mémoire résistive uniquement les bits du mot de code qui ne correspondent pas aux bits lus. Dans un mode de réalisation, l’étape consistant à programmer en mode 1T1R le mot de code initial dans la mémoire résistive ou l’étape consistant à programmer en mode 1T1R le mot de code initial inversé dans la mémoire résistive sont effectuées par un unique circuit d’écriture adapté pour configurer dans un état HRS ou LRS les cellules de la mémoire résistive. Dans un mode de réalisation, l’étape consistant à programmer en mode 1T1R le mot de code initial dans la mémoire résistive et/ou l’étape consistant à programmer en mode 1T1R le mot de code initial inversé dans la mémoire résistive sont effectuées par un premier circuit d’écriture uniquement adapté pour configurer dans un état HRS les cellules de la mémoire résistive et, en parallèle, par un second circuit d’écriture uniquement adapté pour configurer dans un état LRS les cellules de la mémoire résistive. Dans un mode de réalisation, l’étape consistant à programmer en mode 1T1R le mot de code initial dans la mémoire résistive et/ou l’étape consistant à programmer en mode 1T1R le mot de code initial inversé dans la mémoire résistive sont effectuées premièrement par le premier circuit d’écriture concernant les cellules de la mémoire résistive à programmer dans un état HRS puis étant effectuée secondairement par le second circuit d’écriture concernant les cellules de la mémoire résistive à programmer dans un état LRS, ou inversement. L’invention concerne également un dispositif d’écriture d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R comprenant chacune des premier et deuxième ensembles d’un résistor (R) et d’un transistor de sélection (T), le dispositif comprenant des moyens pour mettre en œuvre les étapes du procédé d’écriture de l’invention. Dans un mode de réalisation, les moyens du dispositif d’écriture d’un mot de données comprennent un contrôleur mémoire couplé à la mémoire résistive pour mettre en œuvre l’étape de lecture de vérification en mode différentiel 2T2R du procédé d’écriture de l’invention. Dans un mode de réalisation, les moyens du dispositif d’écriture d’un mot de données comprennent un processeur hôte couplé à la mémoire résistive adapté pour mettre en œuvre l’étape de lecture de vérification en mode différentiel 2T2R du procédé de l’invention. Brève description des figures D’autres caractéristiques, détails et avantages de l’invention ressortiront à la lecture de la description faite en référence au dessin annexé donné à titre d’exemple et qui représente : La et la illustrent des implémentations respectivement d’une cellule mémoire 1T1R et d’une cellule mémoire 2T2R. La représente les étapes d’un procédé d’écriture d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon un mode de réalisation de l’invention. La représente un mode de réalisation particulier de l’étape consistant à programmer en mode 1T1R un mot de code initial dans une mémoire résistive. La représente un système général permettant de mettre en œuvre les étapes d’un procédé d’écriture d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon un mode de réalisation de l’invention. Procédé d’écriture (200) d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R comprenant chacune des premier et deuxième ensembles d’un résistor (R) et d’un transistor de sélection (T), le procédé comprenant des étapes consistant à : (210) générer un mot de code initial à partir de bits de données initiales et de bits de vérification générés à partir du mot de données, et initialiser un compteur de nombre de programmations, le nombre de programmations correspondant à un nombre maximum de programmations pour ledit mot dans un groupe de cellules différentielles sélectionnées ; (220) programmer en mode 1T1R ce mot de code initial dans la mémoire résistive, en sélectionnant les premiers ensembles 1T1R des cellules différentielles sélectionnées, puis réaliser une lecture 1T1R de vérification et incrémenter ou décrémenter le compteur de nombre de programmations ; (230) répéter l’étape précédente (220) tant que tous les bits du mot de code initial n’ont pas été programmés correctement et que le nombre maximum de programmations n’est pas atteint ; (240) inverser le mot de code initial et réinitialiser le compteur de nombre de programmations ; (241) programmer en mode 1T1R dans la mémoire résistive, le mot de code initial inversé à l’étape précédente (240), en sélectionnant les deuxièmes ensembles 1T1R des cellules différentielles sélectionnées, puis réaliser une lecture 1T1R de vérification et incrémenter ou décrémenter le compteur de nombre de programmations ; (242) répéter l’étape précédente (241) tant que tous les bits du mot de code initial inversé n’ont pas été programmés correctement et que le nombre maximum de programmations n’est pas atteint ; (250) réaliser une lecture de vérification en mode différentiel 2T2R des cellules différentielles sélectionnées et vérifier à minima que les données lues correspondent auxdites données initiales ; et selon le résultat de la vérification, (251) terminer le procédé d’écriture ou, (252) signaler une erreur du procédé d’écriture. Procédé d’écriture (200) d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon la revendication 1, dans lequel ladite lecture de vérification en mode différentiel 2T2R inclut la vérification de tous les bits du mot de code lus par rapport aux bits du mot de code initial. Procédé d’écriture (200) d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon l’une quelconque des revendications précédentes, dans lequel l’étape (230) consistant à répéter l’étape précédente (220), comprend les sous-étapes suivantes consistant à : vérifier par lecture en mode 1T1R dans la mémoire résistive s’il reste des bits de données et de vérification non programmés ; et s’il reste des bits non programmés et si le nombre maximum d’écritures en mémoire pour ledit mot de code initial n’est pas atteint, répéter l’étape (220) consistant à programmer en mode 1T1R ledit mot de code initial dans la mémoire résistive ; ou s’il ne reste pas de bits non programmés ou si le nombre maximum d’écritures en mémoire pour ledit mot de code initial est atteint, poursuivre par l’étape suivante (240). Procédé d’écriture (200) d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon l’une quelconque des revendications précédentes, dans lequel l’étape (242) consistant à répéter l’étape précédente (241) comprend les sous-étapes suivantes consistant à : vérifier par lecture en mode 1T1R dans la mémoire résistive s’il reste des bits de données et de vérification du mot de code initial inversé non programmés ; et s’il reste des bits non programmés et si le nombre maximum d’écritures en mémoire pour ledit mot de code initial inversé n’est pas atteint, répéter l’étape (241) consistant à programmer en mode 1T1R ledit mot de code initial inversé dans la mémoire résistive ; ou s’il ne reste pas de bits non programmés ou si le nombre maximum d’écritures en mémoire pour ledit mot de code initial inversé est atteint, poursuivre par l’étape suivante (250). Procédé d’écriture (200) d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon l’une quelconque des revendications précédentes, dans lequel l’étape (251) consistant à terminer le procédé d’écriture est effectuée si les données lues en mode 2T2R correspondent auxdites données initiales; et dans lequel l’étape (252) consistant à signaler une erreur du procédé d’écriture est effectuée si les données lues en mode 2T2R ne correspondent pas auxdites données initiales. Procédé d’écriture (200) d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon l’une des revendications précédentes, l’étape (220) consistant à programmer en mode 1T1R le mot de code initial dans la mémoire résistive et/ou l’étape (241) consistant à programmer en mode 1T1R le mot de code initial inversé dans la mémoire résistive comprenant des sous-étapes consistant à : (310) lire en mode 1T1R dans la mémoire résistive les bits à l’adresse de programmation du mot de code et comparer les bits lus à ladite adresse de programmation et les bits du mot de code à programmer, et (320, 340) programmer en mode 1T1R dans la mémoire résistive uniquement les bits du mot de code qui ne correspondent pas aux bits lus. Procédé d’écriture (200) d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon l’une quelconque des revendications précédentes, l’étape (220) consistant à programmer en mode 1T1R le mot de code initial dans la mémoire résistive ou l’étape (241) consistant à programmer en mode 1T1R le mot de code initial inversé dans la mémoire résistive, étant effectuées par un unique circuit d’écriture adapté pour configurer dans un état HRS ou LRS les cellules de la mémoire résistive. Procédé d’écriture (200) d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon l’une des revendications 1 à 6, l’étape (220) consistant à programmer en mode 1T1R le mot de code initial dans la mémoire résistive et/ou l’étape (241) consistant à programmer en mode 1T1R le mot de code initial inversé dans la mémoire résistive, étant effectuées par un premier circuit d’écriture uniquement adapté pour configurer dans un état HRS les cellules de la mémoire résistive et, en parallèle, par un second circuit d’écriture uniquement adapté pour configurer dans un état LRS les cellules de la mémoire résistive. Procédé d’écriture (200) d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon la revendication 8, l’étape (220) consistant à programmer en mode 1T1R le mot de code initial dans la mémoire résistive et/ou l’étape (241) consistant à programmer en mode 1T1R le mot de code initial inversé dans la mémoire résistive étant effectuées premièrement par le premier circuit d’écriture concernant les cellules de la mémoire résistive à programmer dans un état HRS puis étant effectuée(s) secondairement par le second circuit d’écriture concernant les cellules de la mémoire résistive à programmer dans un état LRS, ou inversement. Dispositif d’écriture d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R comprenant chacune des premier et deuxième ensembles d’un résistor (R) et d’un transistor de sélection (T), le dispositif comprenant des moyens pour mettre en œuvre les étapes du procédé d’écriture selon l’une quelconque des revendications précédentes. Dispositif d’écriture d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon la revendication 10, dans lequel les moyens comprennent un contrôleur mémoire couplé à la mémoire résistive adapté pour mettre en œuvre l’étape de lecture de vérification en mode différentiel 2T2R du procédé d’écriture selon l’une quelconque des revendications précédentes. Dispositif d’écriture d’un mot de données dans une mémoire résistive composée de cellules différentielles 2T2R selon la revendication 10 ou 11, dans lequel les moyens comprennent un processeur hôte couplé à la mémoire résistive adapté pour mettre en œuvre l’étape de lecture de vérification en mode différentiel 2T2R du procédé d’écriture selon l’une quelconque des revendications précédentes.