FR2992091A1 - Procede d'enregistrement de donnees, procede de detection des erreurs d'acces a une memoire et dispositif associe - Google Patents

Procede d'enregistrement de donnees, procede de detection des erreurs d'acces a une memoire et dispositif associe Download PDF

Info

Publication number
FR2992091A1
FR2992091A1 FR1255590A FR1255590A FR2992091A1 FR 2992091 A1 FR2992091 A1 FR 2992091A1 FR 1255590 A FR1255590 A FR 1255590A FR 1255590 A FR1255590 A FR 1255590A FR 2992091 A1 FR2992091 A1 FR 2992091A1
Authority
FR
France
Prior art keywords
data
address
memory
addr
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1255590A
Other languages
English (en)
Other versions
FR2992091B1 (fr
Inventor
Olivier Debicki
Matthieu Lemerre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Silicon Mobility SAS
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR1255590A priority Critical patent/FR2992091B1/fr
Priority to PCT/EP2013/062409 priority patent/WO2013186377A1/fr
Publication of FR2992091A1 publication Critical patent/FR2992091A1/fr
Application granted granted Critical
Publication of FR2992091B1 publication Critical patent/FR2992091B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

La présente invention concerne un procédé d'enregistrement de données, un procédé de détection des erreurs d'accès à une mémoire et son dispositif associé. Le procédé d'enregistrement d'une donnée informatique (DW1) à une adresse spécifiée (ADDR) d'une mémoire (101) comprend une étape d'écriture en mémoire d'une donnée finale (DW2) calculée par une fonction de ladite donnée à enregistrer (DW1) et de l'adresse (ADDR) à laquelle la donnée doit être enregistrée, ladite fonction étant choisie pour que ladite donnée finale (DW2) ait une dimension de stockage inférieure à la somme des dimensions de stockage respectives de la donnée à enregistrer (DW1) et de la valeur de l'adresse (ADDR). L'invention s'applique par exemple aux mémoires présentes dans des systèmes informatiques de haute fiabilité, que ces mémoires soient volatiles ou non.

Description

Procédé d'enregistrement de données, procédé de détection des erreurs d'accès à une mémoire et dispositif associé La présente invention concerne un dispositif et un procédé d'enregistrement de données et de détection des erreurs d'accès à une mémoire. Elle s'applique par exemple aux mémoires volatiles et non volatiles 5 présentes dans des systèmes informatiques de haute fiabilité. Les processeurs modernes sont généralement associés à différents types de mémoires à haute densité requérant des accès fiables afin de garantir une exécution satisfaisante des applications logicielles. Or, 10 entre l'exécution, par un système informatique pourvu d'un processeur, d'une instruction d'enregistrement d'une donnée dans une mémoire informatique, et l'exécution ultérieure par ce même système d'une instruction d'accès en lecture de cette donnée, des erreurs peuvent se produire de sorte que la donnée lue ne corresponde pas à la donnée qui devait être enregistrée. Ce 15 type d'erreur peut engendrer des dysfonctionnements, voire des plantages du système. Afin de se prémunir contre ces aléas, il est connu de garantir l'intégrité d'une donnée enregistrée en la mémorisant avec des bits de redondance. A la lecture de la donnée, le code correcteur d'erreur qui avait 20 été préalablement utilisé pour produire les bits de redondance lors de l'écriture est de nouveau appliqué en mode inversé afin de retrouver la donnée initiale. Cette technique permet ainsi de détecter une erreur, voire de la corriger lorsqu'une donnée en mémoire a été corrompue. Toutefois, elle s'avère insuffisante lorsqu'une erreur survient entre l'instant où l'instruction 25 d'accès en mémoire est lue par le processeur et l'instant où l'instruction est exécutée. Des inversions de bit peuvent par exemple se produire lors du transport des valeurs entre la mémoire et le processeur. Généralement, les systèmes d'accès mémoire sont articulés autour d'un bus de données et d'un bus d'adresses. Lorsqu'une donnée 30 DATA doit être écrite à une adresse ADDR, alors la valeur ADDR est transmise sur le bus d'adresses et la valeur DATA est transmise sur le bus de données. Il est connu de garantir l'intégrité des valeurs transportées sur les bus de données et les bus d'adresse. Les valeurs sont protégées par des codes correcteurs. Les codes correcteurs associés au bus d'adresse sont générés par le maitre du bus par exemple le processeur et validés en entrée de la mémoire. Les codes correcteurs associés aux données sont générés par le maitre et validés par la mémoire en écriture; ils sont générés par la mémoire et validés par le maitre en lecture. Si les éléments logiques 5 participant au décodage d'adresse sont défaillants, alors l'adresse à laquelle sera écrite la donnée DATA ne sera pas l'adresse ADDR, mais une adresse erronée. Ce type d'erreur ne peut pas être détecté par les techniques précitées, celle-ci ne s'attachant qu'à contrôler l'intégrité de la donnée elle-même, sans vérifier que cette donnée a été mémorisée à l'emplacement 10 attendu en mémoire. Le brevet américain de Joseph A. Weisbecker publié sous le numéro U53599146 propose le stockage d'un bit de parité en plus de la donnée enregistrée, ce bit de parité étant calculé en fonction de l'adresse de stockage de la donnée. Lors de la lecture, un contrôle du décodage 15 d'adresse est effectué en comparant le bit de parité de la donnée lue avec l'adresse de lecture de cette donnée. Cependant, cette méthode requiert un bit supplémentaire pour chaque mot mémoire, ce qui est pénalisant en termes de surface de circuit, en particulier pour les mémoires de haute capacité. De surcroît, cette méthode ne permet pas en général de corriger 20 une erreur détectée, et elle emploie deux plans mémoires - un premier pour les données, un deuxième pour les bits de parité - associés à deux décodeurs d'adresse différents ce qui accentue le surcoût matériel. On connaît également une demande de brevet américain de Paul Stanley Hugues publiée sous le numéro U52009/0037782 qui propose une 25 méthode permettant de détecter les défaillances dans le décodage d'adresse en stockant, avec la donnée concernée, la valeur de son adresse, ou dans une version améliorée un hachage de cette valeur. La valeur d'adresse est ensuite comparée à l'adresse de lecture lors des accès en lecture à la mémoire. Toutefois, cette méthode nécessite également un espace de 30 stockage étendu. Un but de l'invention est de proposer, avec un surcoût matériel minimal, des moyens pour s'assurer qu'une donnée lue en mémoire est bien la donnée attendue. A cet effet, l'invention a pour objet un procédé 35 d'enregistrement d'une donnée informatique à une adresse spécifiée d'une mémoire, le procédé étant caractérisé en ce qu'il comprend une étape d'écriture en mémoire d'une donnée finale calculée par une fonction de ladite donnée à enregistrer et de l'adresse à laquelle la donnée doit être enregistrée, ladite fonction étant choisie pour que ladite donnée finale ait une dimension de stockage inférieure à la somme des dimensions de stockage respectives de la donnée à enregistrer et de la valeur de l'adresse. En d'autres termes, lorsqu'une requête d'écriture d'une donnée à une adresse spécifiée est lancée par un processeur, au lieu d'enregistrer cette donnée, c'est une donnée transformée qui est écrite à l'adresse spécifiée, cette donnée transformée étant calculée en fonction notamment de l'adresse d'enregistrement de cette donnée. La donnée à enregistrée peut être une donnée redondante. Le procédé d'enregistrement selon l'invention peut notamment être appliqué aux mémoires de type ROM (Read Only Memory) ou RAM (Random Access Memory) des systèmes et appareils informatiques pour autoriser un contrôle du décodage d'adresse avec surcoût mémoire limité. Selon une mise en oeuvre du procédé d'enregistrement selon l'invention, la fonction de calcul de la donnée finale est choisie pour être une bijection paramétrée par l'adresse d'enregistrement de la donnée, ladite bijection transformant une donnée à enregistrer en donnée finale, l'application sur la donnée finale de la bijection réciproque paramétrée par la même adresse générant une donnée identique à la donnée à enregistrer. Avantageusement, la bijection est choisie pour qu'il existe une probabilité non nulle que, pour toute donnée finale, l'application de la bijection réciproque sur cette donnée finale lorsqu'elle est paramétrée par une adresse différente de l'adresse paramétrant la bijection produise une donnée différente de la donnée fournie en entrée de la bijection pour produire la donnée finale. La fonction de calcul de la donnée finale peut être choisie pour produire une donnée finale ayant une dimension égale à celle de la donnée à enregistrer. Cette mise en oeuvre évite de modifier le plan mémoire d'une architecture déjà existante. Elle n'induit aucun surcoût mémoire par rapport à cette architecture. Selon une mise en oeuvre du procédé d'enregistrement selon 35 l'invention, la fonction de calcul de la donnée finale est un « ou exclusif » bit à bit entre la donnée à enregistrer et la valeur de l'adresse à laquelle la donnée doit être enregistrée. Cette mise en oeuvre permet un codage efficace et économe en surface de circuit. Selon une mise en oeuvre du procédé d'enregistrement selon 5 l'invention, la donnée finale est calculée par application d'une fonction de « ou exclusif » bit à bit entre la donnée à enregistrer et une concaténation de plusieurs valeurs calculées chacune en fonction de la valeur de l'adresse à laquelle la donnée doit être enregistrée. Avantageusement, les valeurs concaténées calculées en fonction de l'adresse sont présentes un nombre de 10 fois supérieur ou égal à dmin-1, dr,* étant la distance de Hamming minimale pour produire une erreur irrécupérable. Cette mise en oeuvre permet d'entraîner, à dessein, des erreurs irrécupérables après des défaillances de décodage d'adresse, en évitant que le code correcteur ne puisse corriger l'erreur, forçant ainsi un procédé de détection et de correction d'erreur à 15 produire un signal d'erreur. Le procédé d'enregistrement selon l'invention peut comprendre une étape préalable de calcul de la donnée à enregistrer par une transformation réversible d'une donnée initiale dont la dimension de stockage est moins grande que celle de la donnée à enregistrer, la donnée à 20 enregistrer comprenant des bits de redondance de la donnée initiale. Ce mode de réalisation introduit des bits de redondance afin de contrôler l'intégrité de la donnée enregistrée en mémoire, et le cas échéant, de corriger des erreurs dues à une corruption de la donnée enregistrée. Les bits de redondance peuvent être créés par application d'un 25 code détecteur d'erreur sur la donnée initiale. Le code détecteur d'erreur peut être un code de redondance cyclique, ce type de code étant parfois désigné par le sigle CRC, pour « Cyclic Redundancy Code ». Selon une mise en oeuvre du procédé d'enregistrement selon l'invention, la fonction de calcul de la donnée finale est une bijection 30 paramétrée par l'adresse de la donnée à écrire, dans lequel ladite bijection est choisie pour qu'il existe une probabilité non nulle que l'application sur la donnée finale de la bijection réciproque paramétrée par une adresse différente produise une donnée dont il est impossible d'extraire la donnée initiale avec le code choisi. Cette caractéristique permet de distinguer les 35 erreurs dues à des défaillances du décodage d'adresse des corruptions de données susceptibles de correction par le code correcteur choisi. En effet, les défaillances dues à une corruption de donnée sont susceptibles de correction par l'utilisation de code correcteur, tandis que les défaillances du décodage d'adresse n'aboutissent qu'à une détection d'erreur. Selon une mise en oeuvre de l'invention, ladite bijection est choisie pour qu'il existe une probabilité non nulle que l'application sur la donnée finale de la bijection réciproque paramétrée par une adresse différente produise une donnée dont il est difficile d'extraire la donnée initiale. L'invention a également pour objet un procédé de lecture d'une donnée enregistrée en mémoire avec un procédé d'enregistrement tel que décrit plus haut, le procédé de détection comprenant une étape de lecture de ladite donnée à une adresse spécifiée d'un bloc mémoire, le procédé de lecture étant caractérisé en ce qu'il applique sur la donnée lue une fonction de décodage paramétrée par l'adresse de lecture, ladite fonction de décodage étant choisie relativement à la fonction de calcul de la donnée finale paramétrée par une première adresse et exécutée lors de l'enregistrement de la donnée en mémoire de sorte à produire, lorsque l'adresse de lecture est identique à la première adresse, une donnée extraite identique à la donnée à enregistrer fournie en entrée de ladite fonction de calcul de la donnée finale, la donnée lue ayant une dimension de stockage inférieure à la somme des dimensions de stockage de l'adresse et de la donnée extraite. Ensuite, les erreurs peuvent par exemple être détectées par code détecteur d'erreur ou par analyse de la donnée extraite par la fonction de décodage.
Selon une mise en oeuvre du procédé de lecture selon l'invention dans laquelle la donnée à lire a été enregistrée en mémoire avec un procédé d'enregistrement tel que décrit plus haut, la fonction de décodage est la bijection réciproque de la fonction de calcul de la donnée finale exécutée lors de l'enregistrement de la donnée en mémoire.
L'invention a également pour objet un procédé de détection d'une erreur d'accès en lecture à une mémoire dans laquelle au moins une donnée a été enregistrée avec un procédé d'enregistrement tel que décrit plus haut, le procédé comprenant les étapes du procédé de lecture tel que décrit plus haut, dans lequel on applique sur la donnée extraite par la fonction de décodage une fonction de détection d'erreur apte à déterminer si la donnée extraite comporte des caractéristiques prédéfinies attendues, le procédé émettant un signal d'erreur lorsque la donnée extraite ne comporte pas ces caractéristiques. L'erreur peut provenir d'une corruption de la donnée en mémoire ou d'un problème de décodage d'adresse. Les caractéristiques attendues peuvent être, par exemple, la possibilité de décoder la donnée à l'aide d'un code à redondance, ou encore le fait que la donnée doit être comprise dans une plage de valeurs. Ce procédé particulier peut, par exemple, être mis en oeuvre lorsqu'aucun code détecteur d'erreur n'est utilisé.
Selon une mise en oeuvre du procédé de détection d'une erreur d'accès en lecture selon l'invention dans laquelle la donnée a été enregistrée avec un procédé d'enregistrement tel que décrit plus haut, le procédé comporte l'exécution d'un décodage à redondance apte à retrouver la donnée initiale lorsque l'adresse de lecture de la donnée est identique à ladite première adresse, le procédé comprenant l'émission d'un signal d'erreur lorsque la fonction de détection d'erreur n'est pas apte à retrouver ladite donnée initiale à partir de la donnée extraite. L'invention a également pour objet un dispositif de détection d'erreur dans la lecture d'une donnée enregistrée dans un bloc mémoire, caractérisé en ce que le dispositif comprend un module de décodage par l'adresse apte à recevoir la donnée lue en mémoire et à combiner cette donnée lue avec l'adresse de lecture de cette donnée pour produire une donnée extraite à tester, le dispositif comprenant des moyens de test de cette donnée extraite aptes à lever une erreur si l'adresse spécifiée pour la lecture est différente de l'adresse spécifiée lors de l'écriture de la donnée lue, ladite donnée lue étant produite par une fonction de la valeur de l'adresse spécifiée pour son écriture en mémoire, ladite donnée lue ayant une dimension de stockage inférieure à la somme des dimensions de stockage de l'adresse et de la donnée extraite.
Selon un mode de réalisation du dispositif de détection d'erreur selon l'invention, la mémoire est accessible en écriture, le dispositif comprenant également un codeur par l'adresse apte à recevoir une donnée à enregistrer et à la combiner avec une fonction de l'adresse d'écriture pour produire une donnée finale à écrire en mémoire, ladite donnée finale ayant une dimension de stockage inférieure à la somme des dimensions de stockage de l'adresse d'écriture et de la donnée à enregistrer. L'invention a également pour objet un module mémoire comprenant une mémoire et un dispositif de détection d'erreur tel que décrit 5 plus haut. D'autres caractéristiques apparaîtront à la lecture de la description détaillée donnée à titre d'exemple et non limitative qui suit faite en regard de dessins annexés qui représentent : 10 - la figure 1, un schéma illustrant un premier mode de réalisation du dispositif de détection d'erreur selon l'invention ; - la figure 2, un synoptique illustrant les étapes d'un procédé d'enregistrement selon l'invention ; - la figure 3, un synoptique illustrant les étapes d'un procédé de 15 détection d'erreur selon l'invention ; - la figure 4, un synoptique illustrant les étapes d'un procédé d'enregistrement selon l'invention lorsqu'une erreur de décodage d'adresse est commise ; - la figure 5, un synoptique illustrant les étapes d'un procédé de 20 détection d'erreur selon l'invention après qu'une erreur de décodage d'adresse a été commise lors de l'écriture d'une donnée ; - la figure 6, un schéma illustrant un deuxième mode de réalisation du dispositif de détection d'erreur selon l'invention ; - la figure 7, un schéma illustrant un exemple de mise en oeuvre de 25 l'étape de codage d'adresse exécutée par un procédé selon l'invention. La figure 1 illustre un premier mode de réalisation du dispositif de détection d'erreur selon l'invention. Le dispositif 100 comprend une mémoire 30 accessible en écriture et en lecture. Cette mémoire est par exemple une mémoire volatile de type RAM ou autre. La mémoire comporte un plan mémoire 101, un module 103 de sélection d'un mot mémoire relié à un bus d'adresses 111 - module parfois appelé « wordline decoder » - et un module tampon 105 pour accueillir les données lues ou les données à écrire en mémoire, ce module 105 étant alimenté indirectement par un bus de données 113. Le dispositif 100 comprend également un codeur à redondance 107 alimenté par le bus de données 113 et produisant, à partir d'un mot de n 5 bits en entrée, des données de n+k bits, n et k étant des entiers supérieurs ou égal à 1. Les données produites par le codeur de redondance 107 sont transmises à un codeur par l'adresse 121 alimenté parallèlement par le bus d'adresses 111. Le codeur par l'adresse 121 produit en sortie des données transmises au module tampon 105 en vue d'une écriture dans la cellule 10 mémoire sélectionnée par le module de sélection 103. Le dispositif 100 comporte aussi un décodeur par l'adresse 123 utilisé lors des opérations de lecture en mémoire, ainsi qu'un décodeur 109 détecteur d'erreur alimenté par le décodeur par l'adresse 123. Le dispositif est apte à mettre en oeuvre des opérations d'écriture 15 et de lecture dans la mémoire. Ces opérations sont par exemple la conséquence d'instructions produites par une ou plusieurs unités de calcul telles que des processeurs. Lors d'une opération d'écriture d'une donnée DATA à l'adresse ADDR de la mémoire, le module de sélection 103 sélectionne le mot du plan 20 mémoire 101 correspondant à l'adresse ADDR fournie sur le bus d'adresses 111. Parallèlement, la donnée DATA de n bits, fournie sur le bus de données 113 est transformée par le codeur à redondance 107. Ce codeur 107, par exemple un codeur à redondance cyclique, produit une donnée comprenant des bits de redondance par rapport à la donnée initiale DATA afin de 25 permettre l'exécution d'un contrôle d'intégrité de la donnée ultérieurement. Dans l'exemple, le codeur 107 produit une donnée DW1 de n+k bits en sortie, donc avec k bits de redondance. La donnée redondante DW1 de n+k bits est reçue par le codeur par l'adresse 121 qui est configuré pour combiner cette donnée DW1 avec 30 l'adresse ADDR spécifiée par le bus d'adresses 111. On peut voir cette combinaison comme l'application par le codeur par l'adresse 121 d'une fonction f paramétrée par l'adresse ADDR de la donnée redondante DW1 afin de produire une donnée finale DW2 ; autrement dit DW2 = fADDR(DW1).
Avantageusement, la fonction fADDR est une bijection, de sorte qu'il existe une fonction réciproque flADDR telle que f1ADDR(fAccR(DW1)) = DW1. En outre, la fonction f est préférentiellement choisie de sorte que la fonction réciproque de f lorsque son paramètre d'adresse est à une première valeur n'est pas la fonction réciproque de f lorsque son paramètre d'adresse est à une valeur différente de la première. Autrement dit, pour deux adresses ADDR1 et ADDR2, si ADDR1 # ADDR2, alors f1AccR1(fAccR2(DW1)) # DW1. Avantageusement, la dimension de la donnée finale DW2 produite par le codeur par l'adresse 121 est inférieure à la somme des dimensions respectives de la valeur de l'adresse et de la donnée redondante. Par exemple si l'adresse ADDR est codée sur m bits et que la donnée redondante DW1 est codée sur n+k bits, alors la donnée DW2 est codée sur moins de n+k+m bits. Dans l'exemple, la donnée finale DW2 est codée sur le même nombre de bits que la donnée redondante DW1.
Par exemple, la fonction f peut être la fonction « ou exclusif » bit à bit, la fonction fADDR(DW1) étant une fonction opérant un « ou exclusif » entre DW1 et ADDR. Lorsque la valeur de l'adresse ADDR est exprimée sur un nombre de bits supérieur à n+k, alors par exemple, les n+k premiers bits de la valeur d'adresse sont utilisés pour l'application de la fonction « ou exclusif » entre ces n+k bits et les n+k bits de la donnée. Lorsque la valeur de l'adresse est exprimée sur un nombre m de bits inférieur à n+k, alors ces m bits peuvent par exemple être complétés par une concaténation de n+k-m bits choisis dans la valeur d'adresse. La donnée finale DW2 produite par le codeur par l'adresse 121 est ensuite transmise au module tampon 105 pour être écrite dans le mot mémoire sélectionné par le module de sélection 103. Ainsi le dispositif selon l'invention enregistre une donnée finale DW2 transformée de la donnée d'entrée DATA, cette donnée finale DW2 étant fonction de la donnée d'entrée DATA, de l'adresse ADDR à laquelle la donnée finale est écrite en mémoire, et du code de redondance utilisé pour transformée la donnée d'entrée. Lors d'une opération de lecture, une unité de calcul vise à obtenir la valeur qui est enregistrée en mémoire à une adresse spécifiée ADDR. Dans ce cas, seul le bus d'adresses 111 est sollicité en entrée, celui-ci 35 permettant de sélectionner, via le module de sélection 103, la cellule mémoire à l'adresse ADDR. La donnée DR1 lue à cette adresse ADDR est transmise au module tampon 105 qui alimente le décodeur par l'adresse 123. Dans l'exemple, si la mémoire n'a pas été corrompue et que les valeurs transmises sur le bus de données et via le module tampon 105 n'ont pas été altérées, la donnée lue DR1 est égale à la donnée finale DW2 qui avait été produite par le codeur par l'adresse 121. Cette donnée est donc, dans l'exemple, de dimension n+k bits. Le décodeur par l'adresse 123 applique sur la donnée lue DR1 la fonction réciproque f1 de la fonction f appliquée par le codeur par l'adresse 121. Cette fonction réciproque f1 est paramétrée par l'adresse ADDR transmise par le bus d'adresses 111. Ainsi, le décodeur par l'adresse 123 produit une donnée à tester DR2 de dimension n+k bits : DR2 = flADDR(DR1). Dans le cas où la donnée lue DR1 est égale à la donnée finale écrite DW2, alors la donnée produite par le décodeur par l'adresse 123 est DR2 = f1ADDR(fADDR(DW1)), de sorte que si les adresses utilisées pour l'écriture et la lecture sont bien égales à une même valeur ADDR, alors DR2=DW1. Dans le cas où les adresses d'écriture et de lecture sont différentes, et si la fonction f a été avantageusement choisie telle que f lADDR1(fADDR2(DW1)) # DW1 si ADDR1 # ADDR2, alors DR2#DW1. Ainsi, le dispositif selon l'invention permet de générer une donnée DR2 différente lorsque les adresses utilisées pour écrire et lire la donnée en mémoire sont différentes, même si la donnée finale DW2 écrite en mémoire et la donnée lue DR1 sont identiques. Autrement dit, dans le cas où une même cellule mémoire est accédée à des adresses différentes, DW2=DR1 si et seulement si ADDR1 = ADDR2. Le décodeur par l'adresse 123 transmet ensuite la donnée à tester DR2 qu'il a générée au décodeur détecteur d'erreur 109. Ce décodeur 109 est configuré avec une fonction de décodage correspondant au code mis en oeuvre par le codeur à redondance 107, de manière à ce que le dispositif retrouve la donnée initiale reçue par le codeur 107 en exécutant le décodeur 109 sur une donnée issue du codeur à redondance 107. Le décodeur 109 peut également être configuré pour corriger d'éventuelles erreurs si le niveau de redondance est suffisant. Ainsi, si la donnée à tester DR2 est identique à la donnée DW1 redondante issue du codeur 107, alors la donnée DATA_ OUT produite par le décodeur est une donnée de n bits identique à la donnée initiale DATA reçue par le codeur 107. Par conséquent, lorsque la donnée redondante DW1 produite par ce codeur 107 est ensuite codée par le codeur par l'adresse 121 avec une première adresse ADDR1, que la donnée finale DW2 produite par le codeur par l'adresse 121 est transmise et écrite sans altération en mémoire 101, puis que le dispositif 100 lit la donnée DR1 à une deuxième adresse ADDR2 identique à la première adresse ADDR1, que cette donnée lue DR1 est transmise sans altération et décodée par le décodeur par l'adresse 123 en utilisant l'adresse ADDR2 identique à la première adresse ADDR1, alors le dispositif retrouve sans erreur une donnée de sortie DATA_OUT identique à la donnée d'entrée DATA après décodage par le décodeur détecteur d'erreur 109 de la donnée à tester DR2 produite par le décodeur par l'adresse 123. A contrario, si les adresses ADDR1, ADDR2 utilisées pour la lecture et l'écriture sont différentes, ou que la donnée transmise sur le bus de données 113 et via le module tampon 105 a été altérée, ou encore que la donnée finale DW2 enregistrée en mémoire a été corrompue, le décodeur 109 indique une erreur, par exemple, en émettant un signal approprié. Le dispositif selon l'invention permet ainsi de détecter les erreurs de décodage d'adresse, avec un impact très faible sur les performances des accès mémoires et de la surface de circuit mobilisée. Dans l'exemple, les erreurs de décodage d'adresse ne peuvent toutefois pas être distinguées, prima facie, des erreurs dues à une corruption des données en mémoire. La détection est, dans l'exemple, réalisée sans utiliser un nombre de bits supérieur à celui utilisé avec un dispositif classique de détection de corruption de données, ce qui permet de conserver un plan de mémoire identique. La donnée finale DW2 produite par le codeur par l'adresse 121 est en effet de la même dimension (n+k bits) que la donnée redondante DW1 issue du codeur à redondance 107. Par ailleurs, le dispositif selon l'invention peut s'appuyer sur des architectures connues en mettant en oeuvre des modifications bien circonscrites aux modèles de circuit existant. En effet, l'insertion du codeur par l'adresse 121 et du décodeur par l'adresse 123 ne remettent pas en cause l'organisation des autres éléments présents dans le dispositif 100.35 La figure 2 illustre les étapes d'un procédé d'enregistrement selon l'invention. Ce procédé correspond par exemple à une phase d'écriture de données effectuée par le dispositif de la figure 1. Lors d'une première étape 201, une donnée initiale DATA de n bits subit un codage à redondance pour générer une donnée redondante DW1 de n+k bits. Lors d'une deuxième étape 202, la donnée redondante DW1 de n+k bits est combinée à l'adresse ADDR à laquelle cette donnée doit être écrite, de manière à produire une donnée redondante transformée DW2, appelée aussi « donnée finale ». La fonction combinant la donnée redondante DW1 avec l'adresse ADDR est avantageusement choisie de sorte que la dimension de la donnée finale DW2 est la même que la dimension de la donnée redondante DW1, autrement dit n+k bits. Lors d'une troisième étape 203, la donnée finale DW2 est écrite en mémoire à l'adresse spécifiée ADDR (si le décodage d'adresse effectué par le module de sélection d'une cellule mémoire fonctionne correctement). Selon une autre mise en oeuvre du procédé d'enregistrement selon l'invention, la première étape 201 n'est pas exécutée. Dans cette mise en oeuvre, c'est la donnée initiale DATA qui est combinée avec l'adresse ADDR pour générer la donnée finale DW2.
La figure 3 illustre les étapes d'un procédé de détection d'erreur selon l'invention. Lors d'une première étape 301, une donnée DR1 de n+k bits est lue en mémoire à une adresse spécifiée ADDR. Lors d'une deuxième étape 302, cette donnée lue DR1 est combinée à l'adresse de lecture ADDR afin d'extraire une donnée à tester DR2, la combinaison étant opérée par une fonction réciproque de la fonction utilisée par un procédé d'enregistrement selon l'invention. Lors d'une troisième étape 303, la donnée à tester DR2, dans l'exemple d'une dimension de n+k bits, subit un décodage et une détection d'erreur conforme au code de redondance utilisé par un procédé de détection d'erreur selon l'invention. Si la donnée à tester DR2 n'est pas identique à la donnée initialement produite (cf. figure 2, référence DW1) par le codage à redondance lors de l'opération d'enregistrement selon l'invention, alors un signal d'erreur peut être généré. Selon une autre mise en oeuvre du procédé de détection d'erreur 35 selon l'invention, la troisième étape 303 ne comprend pas de détection d'erreur par redondance. Dans cette mise en oeuvre, la détection d'erreur est effectuée directement sur la donnée à tester DR2. Ce type de détection d'erreur peut être mis en oeuvre conjointement avec la mise en oeuvre du procédé d'enregistrement décrit plus haut dans lequel la première étape 201 de codage à redondance n'est pas exécutée. La détection d'erreur peut alors être basée sur les caractéristiques intrinsèques de la donnée à tester DR2, si par exemple des caractéristiques particulières sont attendues pour cette donnée. Un signal d'erreur est généré si la donnée ne comporte pas ces caractéristiques attendues.
La figure 4 illustre les étapes d'un procédé d'enregistrement selon l'invention lorsqu'une erreur de décodage d'adresse est commise. Une instruction d'écriture de la donnée DATA à l'adresse ADDR1 du plan mémoire 101 est exécutée. La première étape 201 et la deuxième étape 202 sont exécutées normalement puis la donnée finale DW2 de n+k bits issue de la deuxième étape 202 est écrite à une deuxième adresse ADDR2 différente de l'adresse ADDR1 spécifiée dans l'instruction. Cette erreur peut, par exemple, être due à une défaillance du module de sélection d'une cellule mémoire (cf. figure 1, référence 103). Ainsi, la cellule mémoire à l'adresse initialement spécifiée ADDR1 demeure inchangée, tandis que la donnée finale DW2 est écrite de manière erronée dans la cellule mémoire pointée par la deuxième adresse ADDR2. Grâce au procédé d'enregistrement selon l'invention, la donnée finale DW2 comporte partiellement l'entropie de l'adresse ADDR1 initialement spécifiée dans l'instruction d'écriture de la donnée. Il y a donc incohérence entre l'adresse ADDR2 à laquelle la donnée est enregistrée et l'adresse utilisée pour générer la donnée DW2. Cette incohérence peut être exploitée pour détecter une erreur. La figure 5 illustre les étapes d'un procédé de détection d'erreur selon l'invention après qu'une erreur de décodage d'adresse a été commise lors de l'écriture d'une donnée. Les étapes présentées en figure 5 peuvent par exemple être exécutées après que l'erreur illustrée en figure 4 a été commise. Une instruction de lecture d'une donnée à l'adresse ADDR2 du plan mémoire 101 est exécutée. La cellule mémoire à l'adresse ADDR2 contient une donnée DW2 de n+k bits qui a été produite conformément au procédé d'enregistrement selon l'invention avec une adresse ADDR1 différente de l'adresse ADDR2 spécifiée pour la lecture. Par exemple, la donnée DW2 a été écrite par erreur dans la cellule pointée par l'adresse ADDR2 au lieu de la cellule pointée par adresse ADDR1. Cette donnée DW2 est donc lue et subit un décodage exploitant la valeur de l'adresse, conformément à la deuxième étape 302 du procédé de détection d'erreur selon l'invention. Ce décodage 302 est opéré avec, comme paramètre, l'adresse ADDR2 utilisée pour la lecture de la donnée DW2. Aussi, le décodage de la donnée lue DW2 produit une donnée à tester DX de n+k bits égale à f1ADDR2(fADDR1(DW1 )). La donnée à tester DX est donc différente de DW1 et la troisième étape 302 de décodage et de détection d'erreur produit un signal d'erreur ERR. La figure 6, un schéma illustrant un deuxième mode de réalisation 15 du dispositif de détection d'erreur selon l'invention. Ce deuxième mode de réalisation s'applique notamment aux mémoires à lecture seule, qualifiées aussi de « Read Only Memory ». Le dispositif 600 se différentie de celui de la figure 1 notamment en ce qu'il met en oeuvre une mémoire à lecture seule. Contrairement au 20 dispositif de la figure 1, il ne comporte ni de codeur à redondance, ni de codeur par l'adresse, puisque l'écriture y est impossible. Ainsi, le dispositif 600 comprend un plan mémoire 101' en lecture seule, un module tampon 105' apte à recevoir les données lues dans ce plan mémoire 101', et similairement au dispositif de la figure 1, un décodeur par l'adresse 123 25 alimenté par le module tampon 105' et un décodeur détecteur d'erreur 109 alimenté par le décodeur par l'adresse 123. Les données à lire sont pointées dans le plan mémoire 101' grâce à un module de sélection 103. Contrairement au premier mode de réalisation de la figure 1, les cellules du plan mémoire 101' sont remplies à la fabrication de la mémoire ou 30 à leur programmation initiale. Néanmoins, les valeurs qui y sont insérées sont également issues d'un procédé tel que celui employé dans le premier mode de réalisation. En d'autres termes, les données initiales qui doivent être mémorisées avec fiabilité sont codées successivement par codage à redondance et par un codage d'adresse tel que celui mis en oeuvre dans le 35 premier mode de réalisation. Le décodeur par l'adresse 123 et le décodeur détecteur d'erreur 109 sont configurés conformément aux fonctions utilisées lors du codage d'adresse et du codage à redondance, de manière à détecter les erreurs de codage d'adresse. Lorsque le procédé selon l'invention détecte une erreur, celle-ci 5 peut être due à une défaillance dans la sélection de la cellule en mémoire, comme illustré en figures 4 et 5, mais l'erreur peut avoir d'autres causes, comme la corruption de la donnée en mémoire. Dans le cas d'une corruption partielle de la donnée stockée en mémoire, la détection d'erreur peut s'accompagner d'une correction d'erreur opérée par un code correcteur en 10 sortie. Dans le cas d'une défaillance dans la sélection d'une cellule mémoire, la correction d'erreur est généralement compromise, car la distance de Hamming entre la donnée attendue et la donnée DX produite par le décodage 302 est trop élevée. La figure 7 illustre un exemple de mise en oeuvre de l'étape de 15 codage d'adresse exécutée par un procédé selon l'invention. Lorsqu'un code de redondance est utilisé pour produire la donnée finale écrite en mémoire puis que le détecteur d'erreur exploite la redondance pour également corriger d'éventuelles erreurs détectées, il est souhaitable que le correcteur d'erreur ne tente pas de corriger les erreurs qui 20 sont dues à une défaillance du décodage d'adresse - c'est-à-dire de la sélection de la cellule mémoire dans le plan mémoire. En effet, il n'est pas possible de corriger ces erreurs puisque c'est la donnée dans son intégralité qui n'est pas correcte car issue d'une cellule mémoire choisie par erreur. Or, il arrive parfois qu'après défaillance dans le décodage 25 d'adresse, la distance de Hamming séparant la donnée attendue (d'après les bits de redondance) de la donnée à tester soit suffisamment petite pour permettre au code correcteur d'erreur d'opérer une correction sur la donnée à tester. Cette correction conduirait à produire en sortie une donnée corrigée erronée puisque provenant d'une cellule mémoire erronée. A contrario, 30 lorsque l'erreur provient d'une corruption de la donnée mémorisée, lors de son stockage ou de son transport, alors la correction par code correcteur d'erreur demeure utile et doit donc être conservée. Selon la mise en oeuvre illustrée en figure 7, le procédé selon l'invention permet d'entraîner des erreurs irréparables par code correcteur 35 d'erreur lorsqu'une défaillance de décodage d'adresse survient, permettant ainsi deux comportements distincts du procédé selon que l'erreur est due à une corruption de la donnée ou d'une défaillance dans le décodage d'adresse. Un exemple de procédé utilisé pour entraîner ces erreurs 5 irréparables est, lors de la deuxième étape 202 du procédé d'enregistrement selon l'invention (cf. figure 2), de combiner avec la donnée redondante DW1 un motif construit à partir d'une concaténation de l'adresse ADDR spécifiée pour l'écriture de la donnée. Dans l'exemple de la figure 7, l'adresse ADDR est dupliquée et concaténée pour construire un motif 701 de dimension n+k 10 bits. Avantageusement, l'adresse est dupliquée un nombre de fois supérieur ou égal à drara-1, drara étant la distance de Hamming qui est minimale pour produire une erreur irrécupérable. En effet, une erreur d'un bit dans l'adresse produit une donnée avec drain-1 inversions de bits. Le motif 701 est ensuite combiné à la donnée redondante DW1 pour produire la donnée finale DW2.
15 Dans le cas où l'adresse ADDR est de dimension supérieure ou égale à n+k bits, alors un hachage de l'adresse ADDR peut être préalablement produit, ce hachage de dimension réduite étant ensuite dupliqué et concaténé pour construire le motif. Par exemple, une adresse de 16 bits peut être transformée en hachage de 4 bits, chaque bit du hachage 20 étant issu d'un bit de parité calculé pour un groupe de 4 bits de l'adresse. Le code correcteur dit « SECDEC » pour « single error correction, double error detection », et notamment le code de Hamming (72, 64) peut par exemple être utilisé lors des étapes de codage à redondance et de décodage et détection d'erreur. 25

Claims (16)

  1. REVENDICATIONS1. Procédé d'enregistrement d'une donnée informatique (DW1) à une adresse spécifiée (ADDR) d'une mémoire (101), le procédé étant caractérisé en ce qu'il comprend une étape d'écriture (203) en mémoire d'une donnée finale (DW2) calculée par une fonction (202) de ladite donnée à enregistrer (DW1) et de l'adresse (ADDR) à laquelle la donnée doit être enregistrée, ladite fonction étant choisie pour que ladite donnée finale (DW2) ait une dimension de stockage inférieure à la somme des dimensions de stockage respectives de la donnée à enregistrer (DW1) et de la valeur de l'adresse (ADDR).
  2. 2. Procédé d'enregistrement selon la revendication 1, dans lequel la fonction (202) de calcul de la donnée finale (DW2) est choisie pour être une bijection paramétrée par l'adresse (ADDR) d'enregistrement de la donnée (DW1), ladite bijection transformant une donnée à enregistrer (DW1) en donnée finale (DW2), l'application sur la donnée finale (DW2) de la bijection réciproque paramétrée par la même adresse (ADDR) générant une donnée (DR2) identique à la donnée à enregistrer (DW1).
  3. 3. Procédé d'enregistrement selon la revendication 2, dans lequel ladite bijection est choisie pour qu'il existe une probabilité non nulle que, pour toute donnée finale (DW2), l'application de la bijection réciproque (302) sur cette donnée finale (DW2) lorsqu'elle est paramétrée par une adresse différente (ADDR2) de l'adresse (ADDR1) paramétrant la bijection (202) produise une donnée (DX) différente de la donnée (DW1) fournie en entrée de la bijection (302) pour produire la donnée finale (DW2).
  4. 4. Procédé d'enregistrement selon l'une quelconque des revendications 1 à 3, dans lequel la fonction de calcul (202) de la donnée finale (DW2) est choisie pour produire une donnée finale (DW2) ayant une dimension égale à celle de la donnée à enregistrer (DW1).
  5. 5. Procédé d'enregistrement selon l'une quelconque des revendications précédentes, dans lequel la fonction de calcul (202) de la donnée finale (DW2) est un « ou exclusif » bit à bit entre la donnée à enregistrer (DW1) et la valeur de l'adresse (ADDR) à laquelle la donnée doit être enregistrée.
  6. 6. Procédé d'enregistrement selon l'une quelconque des revendications précédentes, dans lequel la donnée finale (DW2) est calculée par application d'une fonction de « ou exclusif » bit à bit entre la donnée à enregistrer (DW1) et une concaténation (701) de plusieurs valeurs calculées chacune en fonction de la valeur de l'adresse (ADDR) à laquelle la donnée doit être enregistrée.
  7. 7. Procédé d'enregistrement selon l'une quelconque des revendications précédentes, dans lequel le procédé comprend une étape préalable (201) de calcul de la donnée à enregistrer (DW1) par une transformation réversible d'une donnée initiale (DATA) dont la dimension de stockage est moins grande que celle de la donnée à enregistrer (DW1), la donnée à enregistrer (DW1) comprenant des bits de redondance de la donnée initiale (DATA).
  8. 8. Procédé d'enregistrement selon la revendication 7, dans lequel les bits de redondance sont créés par application d'un code détecteur d'erreur sur la donnée initiale (DATA).
  9. 9. Procédé d'enregistrement selon la revendication 8, la fonction de calcul (202) de la donnée finale (DW2) étant une bijection paramétrée par l'adresse (ADDR1) de la donnée à écrire, dans lequel ladite bijection est choisie pour qu'il existe une probabilité non nulle que l'application sur la donnée finale (DW2) de la bijection réciproque paramétrée par une adresse différente (ADDR2) produise une donnée (DX) dont il est impossible d'extraire la donnée initiale (DATA) avec le code choisi.
  10. 10. Procédé de lecture d'une donnée enregistrée en mémoire (101) avec un procédé d'enregistrement selon l'une quelconque des revendicationsprécédentes, le procédé de détection comprenant une étape de lecture (301) de ladite donnée (DR1) à une adresse spécifiée (ADDR) d'un bloc mémoire (101, 101'), le procédé étant caractérisé en ce qu'il applique sur la donnée lue (DR1) une fonction de décodage (302) paramétrée par l'adresse de lecture (ADDR), ladite fonction de décodage (302) étant choisie relativement à la fonction (202) de calcul de la donnée finale (DW2) paramétrée par une première adresse et exécutée lors de l'enregistrement de la donnée en mémoire (101) de sorte à produire, lorsque l'adresse de lecture (ADDR) est identique à la première adresse, une donnée extraite (DR2) identique à la donnée à enregistrer (DW1) fournie en entrée de ladite fonction (202) de calcul de la donnée finale (DW2), la donnée lue (DR1) ayant une dimension de stockage inférieure ou égale à la somme des dimensions de stockage de l'adresse (ADDR) et de la donnée extraite (DR2).
  11. 11. Procédé de lecture selon la revendication 10, la donnée à lire ayant été enregistrée en mémoire (101, 101') avec un procédé d'enregistrement selon l'une quelconque des revendications 2 à 9, dans lequel la fonction de décodage (302) est la bijection réciproque de la fonction (202) de calcul de la donnée finale (DW2) exécutée lors de l'enregistrement de la donnée en mémoire.
  12. 12. Procédé de détection d'une erreur d'accès en lecture à une mémoire (101, 101') dans laquelle au moins une donnée a été enregistrée avec un procédé d'enregistrement selon l'une quelconque des revendications 1 à 9, le procédé comprenant les étapes du procédé de lecture selon la revendication 10 ou 11, dans lequel on applique sur la donnée extraite (DR2) par la fonction de décodage (302) une fonction de détection d'erreur (303) apte à déterminer si la donnée extraite comporte des caractéristiques prédéfinies attendues, le procédé émettant un signal d'erreur lorsque la donnée extraite ne comporte pas ces caractéristiques.
  13. 13. Procédé de détection d'une erreur d'accès en lecture selon la revendication 12, la donnée ayant été enregistrée avec un procédé d'enregistrement selon l'une quelconque des revendications 7 à 9, leprocédé comportant l'exécution d'un décodage à redondance apte à retrouver la donnée initiale (DATA) lorsque l'adresse de lecture (ADDR) de la donnée est identique à ladite première adresse, le procédé comprenant l'émission d'un signal d'erreur lorsque la fonction de détection d'erreur (303) n'est pas apte à retrouver ladite donnée initiale (DATA) à partir de la donnée extraite (DR2).
  14. 14. Dispositif de détection d'erreur dans la lecture d'une donnée (DR1) enregistrée dans un bloc mémoire (101, 101'), caractérisé en ce que le dispositif (100, 600) comprend un module de décodage par l'adresse (123) apte à recevoir la donnée lue (DR1) en mémoire (101, 101') et à combiner cette donnée lue (DR1) avec l'adresse de lecture de cette donnée (ADDR) pour produire une donnée extraite (DR2) à tester (DR2), le dispositif comprenant des moyens de test (109) de cette donnée extraite (DR2) aptes à lever une erreur si l'adresse spécifiée pour la lecture (ADDR) est différente de l'adresse spécifiée lors de l'écriture de la donnée lue (DR1), ladite donnée lue (DR1) étant produite par une fonction de la valeur de l'adresse spécifiée pour son écriture en mémoire, ladite donnée lue ayant une dimension de stockage inférieure à la somme des dimensions de stockage de l'adresse (ADDR) et de la donnée extraite (DR2).
  15. 15. Dispositif de détection d'erreur selon la revendication 14, la mémoire (101) étant accessible en écriture, le dispositif (100, 600) comprenant également un codeur par l'adresse (121) apte à recevoir une donnée à enregistrer (DW1) et à la combiner avec une fonction de l'adresse d'écriture (ADDR) pour produire une donnée finale (DW2) à écrire en mémoire (101), ladite donnée finale ayant une dimension de stockage inférieure à la somme des dimensions de stockage de l'adresse d'écriture (ADDR) et de la donnée à enregistrer (DW1).
  16. 16. Module mémoire comprenant une mémoire et un dispositif de détection d'erreur selon la revendication 14 ou 15.
FR1255590A 2012-06-14 2012-06-14 Procede d'enregistrement de donnees, procede de detection des erreurs d'acces a une memoire et dispositif associe Active FR2992091B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1255590A FR2992091B1 (fr) 2012-06-14 2012-06-14 Procede d'enregistrement de donnees, procede de detection des erreurs d'acces a une memoire et dispositif associe
PCT/EP2013/062409 WO2013186377A1 (fr) 2012-06-14 2013-06-14 Procédé d'enregistrement de données, procédé de détection des erreurs d'accès à une mémoire et dispositif associé

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1255590A FR2992091B1 (fr) 2012-06-14 2012-06-14 Procede d'enregistrement de donnees, procede de detection des erreurs d'acces a une memoire et dispositif associe

Publications (2)

Publication Number Publication Date
FR2992091A1 true FR2992091A1 (fr) 2013-12-20
FR2992091B1 FR2992091B1 (fr) 2015-07-03

Family

ID=47351773

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1255590A Active FR2992091B1 (fr) 2012-06-14 2012-06-14 Procede d'enregistrement de donnees, procede de detection des erreurs d'acces a une memoire et dispositif associe

Country Status (2)

Country Link
FR (1) FR2992091B1 (fr)
WO (1) WO2013186377A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0463210A1 (fr) * 1990-06-27 1992-01-02 International Business Machines Corporation Méthode et appareil de contrôle d'adresse et de contenu d'un dispositif de mémoire
EP1715424A2 (fr) * 2005-03-31 2006-10-25 Fujitsu Limited Circuit de commande de mémoire et procédé de détection d'erreurs d'adressage dans un circuit de commande de mémoire
US7203890B1 (en) * 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0463210A1 (fr) * 1990-06-27 1992-01-02 International Business Machines Corporation Méthode et appareil de contrôle d'adresse et de contenu d'un dispositif de mémoire
US7203890B1 (en) * 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits
EP1715424A2 (fr) * 2005-03-31 2006-10-25 Fujitsu Limited Circuit de commande de mémoire et procédé de détection d'erreurs d'adressage dans un circuit de commande de mémoire

Also Published As

Publication number Publication date
FR2992091B1 (fr) 2015-07-03
WO2013186377A1 (fr) 2013-12-19

Similar Documents

Publication Publication Date Title
EP2449468B1 (fr) Système et procédé de suivi de données d'erreur à l'intérieur d'un dispositif de stockage
US10169145B2 (en) Read buffer architecture supporting integrated XOR-reconstructed and read-retry for non-volatile random access memory (NVRAM) systems
US9703633B2 (en) Circuits, apparatuses, and methods for correcting data errors
US10803971B2 (en) Device for supporting error correction code and test method thereof
US9734008B2 (en) Error vector readout from a memory device
US20070260962A1 (en) Methods and apparatus for a memory device with self-healing reference bits
US9733870B2 (en) Error vector readout from a memory device
US11640334B2 (en) Error rates for memory with built in error correction and detection
US9230687B2 (en) Implementing ECC redundancy using reconfigurable logic blocks
FR3100369A1 (fr) Procédé d’inversion sélective de mots à écrire dans une mémoire et dispositif pour sa mise en œuvre
FR2808904A1 (fr) Systeme d'acces a des memoires redondantes
US9959166B2 (en) Error correction for non-volatile memory
FR3044817A1 (fr) Procede de gestion d'une ligne de bits defectueuse du plan memoire d'une memoire non volatile et dispositif de memoire correspondant
FR2992091A1 (fr) Procede d'enregistrement de donnees, procede de detection des erreurs d'acces a une memoire et dispositif associe
FR3100347A1 (fr) Détection d'erreurs
US8028221B2 (en) Error correction and error detection method for reading of stored information data and a storage control unit for the same
EP2865100A1 (fr) Dispositif de correction de deux erreurs avec un code de distance de hamming trois ou quatre
FR3055714A1 (fr) Procede de correction d'erreur dans une memoire flash
FR3026870A1 (fr) Dispositif de gestion du stockage de donnees.
EP3147811A1 (fr) Stockage et lecture d'un code d'authentification de message dans une memoire externe
WO2014060683A1 (fr) Procédé et dispositif pour améliorer la fiabilité de mémorisation de données dans un disque dur comprenant plusieurs plateaux
EP3893117B1 (fr) Circuit de vérification du contenu de registres
EP1300953A1 (fr) Code de détection et/ou de correction d'erreurs à haute efficacité
FR2808903A1 (fr) Systeme d'acces memoire
WO2021023496A1 (fr) Procédé de contrôle d'une mémoire à code correcteur d'erreur

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

TQ Partial transmission of property

Owner name: SILICON MOBILITY, FR

Effective date: 20240228

Owner name: COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERG, FR

Effective date: 20240228

TQ Partial transmission of property

Owner name: SILICON MOBILITY, FR

Effective date: 20240307

Owner name: COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERG, FR

Effective date: 20240307

PLFP Fee payment

Year of fee payment: 13