Brevet FR3130411A1 — publié le 20230616

L’invention concerne une solution pour améliorer la correction d’erreurs dans une mémoire résistive 2T2R protégée par un code correcteur d’erreur. De manière générale, le principe de l'invention repose sur un procédé qui permet par des lectures 1T1R d’identifier dans un mot de code stocké en mémoire, des bits susceptibles d’être erronés dits « erasures », puis d’inverser ces bits dans le mot de code stocké afin de générer un nouveau mot corrigé par l’ECC. Figure pour l’abrégé : Fig. 6. Procédé et dispositif de correction d’erreurs dans les mémoires résistives L’invention se situe dans le domaine des mémoires résistives ou RRAM pour « Resistive Random Access Memory » selon la terminologie anglo-saxonne, et concerne plus particulièrement un procédé et un dispositif permettant d’améliorer la correction d’erreurs dans des mémoires résistives de type 2T2R. Etat de la technique Les mémoires résistives sont des mémoires non-volatiles présentant une vitesse de fonctionnement élevée, 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 » selon la terminologie anglo-saxonne). 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 conductance. Typiquement, une cellule mémoire RRAM dans son état initial a une structure métallique isolante et est dans un état de haute résistance (HRS) (pour « High Resistance State » selon la terminologie anglo-saxonne). Avant leur utilisation, certains types de mémoire résistive, telles que les mémoires OxRAM ou CBRAM, nécessitent une activation électrique. L'application d’une impulsion haute tension externe à travers la cellule RRAM permet la formation de chemins conducteurs dans la couche de commutation et la cellule RRAM est commutée dans un état à faible résistance (LRS) (pour « Low Resistance State » selon la terminologie anglo-saxonne). Le processus général de cette rupture de la structure métallique isolante de la cellule est généralement appelé «électroformage» (ou « forming » selon la terminologie anglo-saxonne). Le matériau diélectrique qui est disposé entre les deux électrodes conductrices de la cellule va permettre à la cellule de basculer de manière réversible entre deux états de résistance HRS et LRS, chacun des états permettant de stocker un bit d’information dans la cellule mémoire. 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 LRS, ou d’une tension d’effacement pour effacer la cellule mémoire, c’est-à-dire la placer dans l’état 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 que la cellule mémoire est correctement programmée en comparant sa valeur de résistance R à une valeur seuil de résistance prédéfinie R REF . La illustre de manière simplifiée une cellule mémoire résistive élémentaire, constituée généralement d’un transistor (T) et d’un composant résistif (R) ou résistor (102), où un bit d’information est encodé par la valeur de la résistance électrique du résistor. Pour ces cellules élémentaires, un ‘0’ logique peut par exemple être encodé en programmant le résistor dans un état LRS, et un ‘1’ logique peut alors être encodé en programmant le résistor dans un état HRS, et l’on parle alors d’encodage en mode 1T1R. 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 » ou encodage 2T2R pour coder une valeur binaire à mémoriser. Un bit d’information peut alors être encodé dans une cellule mémoire dite 2T2R telle qu’illustrée de manière simplifiée sur la , et composée de deux cellules élémentaires 1T1R, comprenant 2 transistors (T1, T2) et 2 résistors (112-1, 112-2). Comme chacun des états HRS et LRS peut être associé à une valeur logique, i.e. 1 ou 0, 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 ‘1’ logique est encodé en programmant le résistor de la première cellule 1T1R dans un état HRS et le résistor de la deuxième cellule 1T1R dans un état LRS, et un ‘0’ logique est encodé en programmant le résistor de la première cellule 1T1R dans un état LRS et le résistor de la deuxième cellule dans un état 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 écrits en opposition d’état, c’est-à-dire un des éléments résistifs avec un niveau HRS et l’autre un niveau LRS. Les niveaux respectifs de résistance des deux éléments résistifs sont déterminés toujours dans le même ordre entre les deux éléments, et définissent alors si l’on est en présence d’un ‘0’ ou d’un ‘1’ logique, suivant que cela correspond à l’état HRS-LRS ou à l’état LRS-HRS. Lors d’une opération d’écriture dans une cellule mémoire 1T1R ou une cellule mémoire 2T2R, il faut s’assurer que chaque résistance électrique qui doit être programmée à l’é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 104 sur la et 114 sur la . Par la suite, cette opération de lecture avec comparaison à une valeur de référence est appelée lecture en mode 1T1R ou lecture 1T1R. Sur la , l'amplificateur de détection 104 réagit à la différence de son entrée ‘SL’ (provenant de la cellule 1T1R) et de son entrée ‘R 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 renseigne sur la valeur qui est stockée dans la cellule 1T1R. Sur la , l'amplificateur de détection 114 va réagir à une différence sur ses entrées, pour générer un signal de sortie ‘V OUT ’. Dans cette implémentation, un multiplexeur (113-1, 113-2) est respectivement couplé à la sortie (SL1, SL2) de chaque cellule 1T1R pour effectuer une lecture 1T1R par comparaison avec la valeur de référence R REF . Lors d’une lecture 2T2R, la sortie de chaque multiplexeur correspond à la valeur de chaque cellule respective, et devient une entrée de l’amplificateur de détection 114. La sortie de l’amplificateur de détection 114 réagit alors à la différence en résistance des deux éléments résistifs de la cellule 2T2R (112-1, 112-2) et renseigne sur la valeur qui est stockée dans la cellule 2T2R sélectionnée. Toutes les opérations de lecture dans les mémoires 1T1R sont effectuées en mode 1T1R. Pour lire efficacement 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 ou lecture 2T2R. 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. L’usage d’une mémoire implique de fréquentes transitions entre un état HRS et un état 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, (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 (appareil à appareil). 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ésistive 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. 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. En présence d’un taux d’erreurs élevé, une solution est d’utiliser des ECCs de plus en plus puissants. Cependant, cela entraine un surcoût en termes de surface de stockage pour les bits de vérification et de surface, de latence et de consommation du décodeur ECC. Une approche pour éviter l’utilisation d’un ECC puissant, est de réduire le taux d’erreurs primaire, c’est-à-dire le taux d’erreurs en sortie du circuit mémoire qui serait obtenu sans l’utilisation d’un ECC. Pour réduire le taux d’erreurs primaire, une méthode consiste à utiliser des mémoires 2T2R au lieu de mémoires 1T1R. Cependant, il reste des cas où même avec l’utilisation d’une mémoire 2T2R le taux d’erreurs primaire reste élevé. Aussi, dans ces situations ou encore celles où il faudrait choisir un ECC avec un moindre surcoût et donc une capacité de correction plus faible, une solution connue est d’identifier les cellules qui sont dans un état pouvant être considéré comme faible, c'est-à-dire des cellules susceptibles de délivrer un bit erroné, ces bits étant désignés comme « erasure », puis d’utiliser cette information pour améliorer la correction d’erreurs. L’article de C.L. Chen et M.Y. Hsiao, "Error-Correcting Codes for semiconductor memory applications: a state of the art review," IBM Journal of Research and Development, volume 28, issue 2, 1984, présente une méthode de détection de cellules mémoires qui sont affectées par des fautes de collage (« stuck-at fault » en anglais). Tout bit lu à partir d’une telle cellule est considéré comme une erasure. Suite à la détection d’un nombre d’erreurs non corrigeables dans un mot mémoire, ce type d’erasure peut être détecté par une opération d’écriture du mot inversé suivie d’une opération de lecture à la même adresse mémoire. Tout bit qui ne change pas de valeur suite à l’écriture du mot inversé est alors considéré comme une erasure. Après la correction d’erreurs améliorée par l’identification d’erasures, le mot corrigé qui est inversé une deuxième fois, est stocké toujours à la même adresse dans la mémoire. Cette méthode ne permet d’identifier que des erasures très particulières, i.e. celles associées à des bits stockés dans des cellules mémoires qui ne fonctionnent pas. L’article de S. Evain, V. Savin et V. Gherman, "Error Correction Schemes with Erasure Information for Fast Memories," Journal of Electronic Testing: Theory and Applications (JETTA), volume 30, issue 2, d’avril 2014, décrit une méthode et des dispositifs pour des mémoires permettant d’augmenter la capacité de correction d’un ECC en s’appuyant sur l’identification d’erasures. Cette méthode utilise l’identification d’erasures par des opérations de lecture supplémentaires qui comparent une valeur lue à différentes valeurs de référence. Cette méthode requière la modification du circuit mémoire due à la nécessité d’ajouter des multiplexeurs supplémentaires avant chaque amplificateur de détection, dans le but de choisir des valeurs de référence supplémentaires. Aussi, face à la problématique générale de la dérive des valeurs de résistance dans les cellules mémoires résistives RRAM, et face aux limites des solutions connues basées sur l’utilisation de code correcteur d’erreur, il existe le besoin d’une solution pour diminuer les erreurs de lecture dans les mémoires résistives RRAM, en particulier dans les mémoires RRAM 2T2R. La présente invention répond à ce besoin. L’invention a pour objet une solution pour améliorer la correction d’erreurs dans les mémoires résistives protégées par un code correction d’erreurs. De manière générale, le principe de l'invention repose sur un procédé qui permet d’identifier dans un mot de code programmé dans une mémoire résistive 2T2R protégée par un code correcteur d’erreur, des bits susceptibles d’être erronés, appelés bit(s) faible(s) ou « erasure(s) », puis d’inverser ces bits afin de générer un nouveau mot qui peut être corrigé par le décodeur du code correcteur d’erreur. Avantageusement, le procédé de la présente invention ne nécessite pas de modification de la matrice mémoire. La méthode proposée n’a pas d’impact sur les opérations d’écriture dans les mémoires résistives concernées. Ainsi l’objet de l’invention est de pallier les inconvénients des solutions connues par une solution qui ne nécessite pas d’opérations impliquant l’utilisation de valeurs de référence supplémentaires. Pour parvenir au but recherché, il est proposé un procédé de correction d’erreurs d’un mot de code stocké dans une mémoire résistive de type 2T2R, un mot de code étant composé de bits de données et de bits de vérification, la mémoire résistive 2T2R comprenant une matrice de cellules mémoires résistives 2T2R élémentaires où chaque cellule élémentaire comprend deux transistors et deux éléments résistifs pour stocker la valeur non-inversée et la valeur inversée d’un bit, et pour lire les bits stockés en mode différentiel, la lecture en mode différentiel ou lecture 2T2R consistant à comparer l’une par rapport à l’autre, les valeurs du premier et deuxième élément résistif de la cellule élémentaire utilisée pour stocker chaque bit d’un mot à une adresse indiquée, afin de déterminer la valeur lue. Le procédé comprend au moins les étapes consistant à : - déterminer, après une opération de correction d’erreurs par un code correcteur d’erreur couplé à la mémoire résistive, qu’un mot de code lu en lecture 2T2R contient des erreurs non corrigées qui affectent un nombre de bits supérieur à un seuil prédéfini ; - effectuer au moins une lecture en mode simple ou lecture 1T1R du mot de code stocké, consistant à comparer à une valeur de référence R ERASURE , la valeur d’un des deux éléments résistifs des cellules élémentaires adressées pour chaque bit du mot de code, afin de déterminer la valeur lue ; - comparer pour chaque bit du mot de code, la valeur lue par la dite au moins une lecture 1T1R à la valeur lue en lecture 2T2R pour identifier des bits susceptibles d’être erronés, lesdits bits susceptibles d’être erronés étant : - des bits pour lesquels la valeur lue en lecture 1T1R est identique à la valeur lue en lecture 2T2R, si ladite au moins une lecture 1T1R se fait sur les éléments résistifs de la cellule élémentaire encodant les valeurs inversées des bits ; ou - des bits pour lesquels la valeur lue en lecture 1T1R est différente de la valeur lue en lecture 2T2R, si ladite au moins une lecture 1T1R se fait sur les éléments résistifs de la cellule élémentaire encodant les valeurs non-inversées des bits ; - inverser, dans ledit mot de code lu en lecture 2T2R, lesdits bits identifiés comme susceptibles d’être erronés ; et - corriger avec le code correcteur d’erreur ledit mot de code obtenu après l’étape d’inversion. Selon des modes de réalisation alternatifs ou combinés : - L’étape de déterminer qu’un mot de code contient des erreurs non corrigées qui affecte un nombre de bits supérieur à un seuil prédéfini, consiste à déterminer que ledit nombre de bits affectés est égal au nombre maximum de bits erronés que le décodeur du code correcteur d’erreur peut détecter dans un mot de code. - L’étape d’effectuer au moins une lecture 1T1R consiste par comparaison à la valeur de référence R ERASURE à : effectuer une première lecture 1T1R de chaque premier élément résistif des cellules élémentaires adressées pour chaque bit du mot de code, afin de déterminer une première valeur lue ; et effectuer une deuxième lecture 1T1R de chaque deuxième élément résistif des cellules élémentaires adressées pour chaque bit du mot de code, afin de déterminer une deuxième valeur lue ; et l’étape de comparaison pour identifier des bits susceptibles d’être erronés consiste à comparer la première valeur lue en mode 1T1R à la deuxième valeur lue en mode 1T1R, et à identifier lesdits bits susceptibles d’être erronés comme étant les bits pour lesquels la première valeur lue et la deuxième valeur lue sont identiques. - Le procédé comprend avant l’étape de décodage, une étape consistant à stocker la valeur de chaque bit du mot de code lu en mode 2T2R dans un registre couplé à la mémoire résistive. - L’étape de corriger le mot de code obtenu après inversion, comprend des étapes consistant à : - stocker la valeur de chaque bit dudit mot de code obtenu après inversion dans un registre couplé à la mémoire résistive ; - corriger par le code correcteur d’erreur ledit mot de code stocké ; et - stocker le mot de code corrigé dans le registre de sortie du décodeur du code correcteur d’erreur. - L’étape de comparaison comprend des étapes consistant à : - stocker la valeur de chaque bit lu en mode 1T1R dans un registre couplé à la mémoire résistive ; et - comparer la valeur de chaque bit stocké à la valeur de chaque bit du mot de code lu en mode 2T2R. - L’étape d’effectuer au moins une lecture en mode 1T1R consiste à comparer la valeur lue à une valeur de référence R ERASURE qui peut être identique à la valeur de référence utilisée pour programmer les cellules élémentaires de la mémoire résistive. L’invention a aussi pour objet un programme d'ordinateur comportant des instructions de code pour l'exécution des étapes du procédé de correction d’erreurs, lorsque ledit programme est exécuté par un processeur. L’invention couvre aussi un dispositif de correction d’erreurs comprenant des moyens permettant de mettre en œuvre les étapes du procédé de correction d’erreurs d’un mot de code stocké dans une mémoire résistive de type 2T2R de l’invention. Dans un mode de réalisation, le code correcteur d’erreur est un circuit de type SEC-DED. Dans une variante de réalisation, le code correcteur d’erreur est un circuit de type DEC-TED. Un autre objet de l’invention couvre tout système électronique de type FPGA ou ASIC comprenant un dispositif de correction d’erreurs selon l’invention. 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 aux dessins annexés donnés à titre d’exemple et qui représentent, respectivement : La et la illustrent respectivement des exemples d’implémentation d’une cellule mémoire 1T1R et d’une cellule mémoire 2T2R ; La illustre les étapes d’un procédé conventionnel de lecture dans une mémoire 2T2R protégée par un ECC ; La illustre un système général permettant de mettre en œuvre les étapes d’un procédé de lecture conventionnelle dans une mémoire 2T2R protégée par un ECC ; La illustre la dérive des valeurs des résistances d’une cellule mémoire résistive 2T2R ; La illustre les étapes du procédé de correction d’erreurs de l’invention dans un mode de réalisation ; La montre un exemple d’un mot de code corrigé par le procédé de l’invention ; La illustre un mode de réalisation d’un circuit permettant de réaliser une inversion de bits identifiés comme erasures ; La est un chronogramme de différents signaux opérant sur le circuit de la ; et La illustre un autre mode de réalisation d’un circuit permettant de réaliser une inversion de bits identifiés comme erasures. Procédé (500) de correction d’erreurs d’un mot de code stocké dans une mémoire résistive de type 2T2R, un mot de code étant composé de bits de données et de bits de vérification, la mémoire résistive 2T2R comprenant une matrice de cellules mémoires résistives 2T2R élémentaires où chaque cellule élémentaire comprend deux transistors et deux éléments résistifs pour stocker la valeur non-inversée et la valeur inversée d’un bit, et pour lire les bits stockés en mode différentiel, la lecture en mode différentiel ou lecture 2T2R consistant à comparer l’une par rapport à l’autre, les valeurs du premier et deuxième élément résistif de la cellule élémentaire utilisée pour stocker chaque bit d’un mot à une adresse indiquée, afin de déterminer la valeur lue, le procédé de correction d’erreurs comprenant au moins les étapes suivantes : - déterminer (502, 504, 506, 508), après une opération de correction d’erreurs par un code correcteur d’erreur couplé à la mémoire résistive, qu’un mot de code lu en lecture 2T2R contient des erreurs non corrigées qui affectent un nombre de bits supérieur à un seuil prédéfini ; - effectuer (510, 512) au moins une lecture en mode simple ou lecture 1T1R du mot de code stocké, consistant à comparer à une valeur de référence R ERASURE , la valeur d’un des deux éléments résistifs des cellules élémentaires adressées pour chaque bit du mot de code, afin de déterminer la valeur lue ; - comparer (514) pour chaque bit du mot de code, la valeur lue par la dite au moins une lecture 1T1R à la valeur lue en lecture 2T2R pour identifier des bits susceptibles d’être erronés, lesdits bits susceptibles d’être erronés étant : - des bits pour lesquels la valeur lue en lecture 1T1R est identique à la valeur lue en lecture 2T2R, si ladite au moins une lecture 1T1R se fait sur les éléments résistifs de la cellule élémentaire encodant les valeurs inversées des bits ; ou - des bits pour lesquels la valeur lue en lecture 1T1R est différente de la valeur lue en lecture 2T2R, si ladite au moins une lecture 1T1R se fait sur les éléments résistifs de la cellule élémentaire encodant les valeurs non-inversées des bits ; - inverser (516), dans ledit mot de code lu en lecture 2T2R, lesdits bits identifiés comme susceptibles d’être erronés ; et - corriger (518, 520) avec le code correcteur d’erreur ledit mot de code obtenu après l’étape d’inversion. Procédé selon la revendication 1 dans lequel, l’étape de déterminer qu’un mot de code contient des erreurs non corrigées qui affecte un nombre de bits supérieur à un seuil prédéfini, consiste à déterminer que ledit nombre de bits affectés est égal au nombre maximum de bits erronés que le décodeur du code correcteur d’erreur peut détecter dans un mot de code. Procédé selon la revendication 1 ou 2, dans lequel : - l’étape d’effectuer au moins une lecture 1T1R consiste par comparaison à la valeur de référence R ERASURE à : effectuer une première lecture 1T1R de chaque premier élément résistif des cellules élémentaires adressées pour chaque bit du mot de code, afin de déterminer une première valeur lue ; et effectuer une deuxième lecture 1T1R de chaque deuxième élément résistif des cellules élémentaires adressées pour chaque bit du mot de code, afin de déterminer une deuxième valeur lue ; et dans lequel : - l’étape de comparaison pour identifier des bits susceptibles d’être erronés consiste à comparer la première valeur lue en mode 1T1R à la deuxième valeur lue en mode 1T1R, et à identifier lesdits bits susceptibles d’être erronés comme étant les bits pour lesquels la première valeur lue et la deuxième valeur lue sont identiques. Procédé selon l’une quelconque des revendications 1 à 3 comprenant avant l’étape de détermination, une étape consistant à stocker la valeur de chaque bit du mot de code lu en mode 2T2R dans un registre couplé à la mémoire résistive. Procédé selon l’une quelconque des revendications 1 à 4 dans lequel l’étape de corriger le mot de code obtenu après inversion, comprend des étapes consistant à : - stocker la valeur de chaque bit dudit mot de code obtenu après inversion dans un registre couplé à la mémoire résistive ; - corriger par le code correcteur d’erreur ledit mot de code stocké ; et - stocker le mot de code corrigé dans le registre de sortie du décodeur du code correcteur d’erreur. Procédé selon l’une quelconque des revendications 1 à 5, dans lequel l’étape de comparaison comprend des étapes consistant à : - stocker la valeur de chaque bit lu en mode 1T1R dans un registre couplé à la mémoire résistive ; et - comparer la valeur de chaque bit stocké à la valeur de chaque bit du mot de code lu en mode 2T2R. Le procédé selon l’une quelconque des revendications 1 à 6 dans lequel l’étape d’effectuer au moins une lecture en mode 1T1R consiste à comparer la valeur lue à une valeur de référence R ERASURE qui peut être identique à la valeur de référence utilisée pour programmer les cellules élémentaires de la mémoire résistive. Un dispositif de correction d’erreurs d’un mot de code stocké dans une mémoire résistive de type 2T2R, un mot de code étant composé de bits de données et de bits de vérification, la mémoire résistive 2T2R comprenant une matrice de cellules mémoires résistives 2T2R élémentaires où chaque cellule élémentaire comprend deux transistors et deux éléments résistifs pour stocker la valeur non-inversée et la valeur inversée d’un bit, et pour lire les bits stockés en mode différentiel, la lecture en mode différentiel ou lecture 2T2R consistant à comparer l’une par rapport à l’autre, les valeurs du premier et deuxième élément résistif de la cellule élémentaire utilisée pour stocker chaque bit d’un mot à une adresse indiquée, afin de déterminer la valeur lue, le dispositif comprenant des moyens permettant de mettre en œuvre les étapes du procédé selon l’une quelconque des revendications 1 à 7. Le dispositif selon la revendication 8 dans lequel le code correcteur d’erreur est un circuit de type SEC-DED ou DEC-TED. Le dispositif selon la revendication 8 ou 9 dans lequel la mémoire résistive est choisie dans le groupe des mémoires résistives à pont conducteur CBRAM, des mémoires résistives à base d’oxyde OxRAM, ou des mémoires résistives à changement de phase PCM. Un système électronique de type FPGA ou ASIC comprenant un dispositif selon l’une quelconque des revendications 8 à 10. Programme d'ordinateur comportant des instructions de code pour l'exécution des étapes du procédé selon l’une quelconque des revendications 1 à 7, lorsque ledit programme est exécuté par un processeur.