FR2911414A1 - Dispositif et procede pour lire un mot de donnees et dispositif et procede pour memoriser un bloc de donnees - Google Patents

Dispositif et procede pour lire un mot de donnees et dispositif et procede pour memoriser un bloc de donnees Download PDF

Info

Publication number
FR2911414A1
FR2911414A1 FR0700400A FR0700400A FR2911414A1 FR 2911414 A1 FR2911414 A1 FR 2911414A1 FR 0700400 A FR0700400 A FR 0700400A FR 0700400 A FR0700400 A FR 0700400A FR 2911414 A1 FR2911414 A1 FR 2911414A1
Authority
FR
France
Prior art keywords
error
data word
data
correction
value
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
FR0700400A
Other languages
English (en)
Other versions
FR2911414B1 (fr
Inventor
Steffen Sonnekalb
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of FR2911414A1 publication Critical patent/FR2911414A1/fr
Application granted granted Critical
Publication of FR2911414B1 publication Critical patent/FR2911414B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • H03M13/2915Product codes with an error detection code in one dimension

Landscapes

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

Abstract

Il est décrit un dispositif pour lire un mot de données prédéterminé d'une mémoire (100) dans laquelle sont mémorisés un bloc de données (110), qui est subdivisé en une pluralité de mots de données (120-1, ..., 120-n) qui comprennent le mot de données prédéterminé, par mot de données de la pluralité de mots de données (120-1, ..., 120-n), une valeur d'identification d'erreur (130-1, ..., 130-n) associée au mot de données respectif et une valeur de correction (140) associée au bloc de données (110), avec un dispositif d'identification d'erreur (150) qui est réalisé de manière à vérifier si le mot de données prédéterminé présente un rapport prédéterminé avec la valeur d'identification d'erreur associée, pour conclure d'une erreur lorsque le rapport prédéterminé n'est pas présent, et un dispositif de correction d'erreur (160) qui est réalisé de manière à corriger l'erreur, si le mot de données prédéterminé ne présente pas le rapport prédéterminé avec la valeur d'identification d'erreur associée, à l'aide de la valeur de correction (140), le dispositif de correction d'erreur (160) étant réalisé de manière à utiliser la valeur de correction (140) indépendamment du mot de données de la pluralité de mots de données (120-1, ..., 120-n) qui est le mot de données prédéterminé.

Description

Dispositif et procédé pour lire un. mot de données et dispositif et
procédé pour mémoriser un bloc de données La présente invention concerne un dispositif et un procédé pour lire un mot de données prédéterminé d'une mémoire et un dispositif et un procédé pour mémoriser un bloc de données dans une mémoire, en particulier une mémoire dans laquelle il peut sporadiquement se produire des erreurs d'un seul bit, telle que par exemple une mémoire instantanée.
De nombreuses technologies de mémoire ont de nos jours le problème qu'il peut se produire sporadiquement des erreurs sur le bit individuelles. Cela est inévitable. Le problème est toutefois généralement limité à des bits individuels largement dispersés. Il se produit certes des erreurs sur plusieurs bits dans une plage de données limitée, leur occurrence est toutefois si rare qu'ils ne représentent généralement pas de problème de fiabilité. De nombreux produits de mémoire souffrent toutefois du fait. des erreurs individuelles ou des erreurs sur le bit. C'est la raison pour laquelle les données mémorisées dans les modules de mémoire sont pourvues d'informations de redondance qui permettent une identification et éventuellement aussi une correction de ces erreurs. Cela concerne une pluralité de technologies de mémoire parmi lesquelles on trouve par exemple les technologies de mémoire instantanée spéciales et d'autres types de mémoire non volatile (NVM = non-volatile memory), mais aussi d'autres types de mémoire. Précisément dans le domaine des types de rnémoire non volatile, en particulier dans les mémoires instantanées et les technologies de mémoire instantanée, il peut donc se produire, par suite du câblage interne des ces mémoires, par exemple par suite d'un dispositif connu comme "drain-disturb" en cas d'accès d'écriture répétés à la mémoire, il peut se produire des erreurs sur le bit individuelles. Outre les mémoires instantanées, ce problème se produit également dans d'autres types de mémoire. Par exemple, la mémoire RAM (RAM = random access memory = mémoire vive) utilisée comme rnémoire de travail en représente un exemple. Ainsi, dans le domaine des mémoires RAM, il se produit également des erreurs sur le bit sporadiques par suite de particules a qui peuvent provenir par exemple de la masse de scellement d'un tel module de mémoire. Jusqu'ici, ce problème a été résolu par l'addition d'un code d'erreur par bloc de mémoire, la mémoire étant organisée en différents blocs de mémoire et chaque bloc de mémoire comportant un ou plusieurs mots de données. Comme code d'erreur sont utilisés ici tant des valeurs d'identification d'erreur (EDC = error detecting code) que des valeurs de correction d'erreur (ECC = error correcting codes). Pour examiner la correction d'une donnée mémorisée dans un bloc de mémoire, il y a toutefois lieu, dans ce cas, de lire tout d'abord tout le bloc de mémoire, pour pouvoir examiner, à l'aide du code d'erreur associé au bloc de mémoire, la donnée ou le code quant à des erreurs. Cette procédure présente toutefois quelques inconvénients. Si on choisit un bloc de mémoire très petit comme unité de base, le déploiement en codage, donc en particulier l'emplacement de mémoire qui est nécessaire pour mémoriser la valeur de correction d'erreur est très grand, comparé à la grandeur d'un bloc de mémoire. Tel qu'expliqué, par exemple, dans le livre "H albleiterschaltungstechnik" de U. Tietze et Ch. Schenk (Editions Springer, Berlin 1990, Sème édition), le nombre minimum de bits d'une valeur de correction d'erreur que permet la correction d'une erreur sur le bit quelconque est, pour une donnée d'une longueur comprise entre un et 4 bits, est de 3 bits, pour une donnée d'une longueur comprise entre 5 et 11 bits, de 4 bits, pour une donnée d'une longueur comprise entre 12 et 26 bits, de 5 bits, pendant une date avec une longueur entre 27 et 57 bits 6 bits, pour une donnée d'une longueur comprise entre 58 et 120, de 7 bits et, pour une donnée d'une longueur comprise entre 121 et 247 bits, de 8 bits. Ces nombres montrent clairement que le déploiement en mémoire pour la mémorisation d'une valeur de correction d'erreur comme code d'erreur pour de petits blocs de mémoire est lié à un déploiement en mémoire relativement grand, donc un rapport entre la longueur de mémoire nécessaire pour la mémorisation du code d'erreur et la grandeur de la donnée à la base. D'autre part, il peut toutefois être accédé de manière rapide et efficiente en énergie à une petite unité de mémoire. Toutefois, si on choisit une plus grande unité de bloc ou grandeur du bloc de mémoire à la base, le déploiement additionnel pour le code d'erreur ou la valeur de correction d'erreur devient certes supportable, mais, du fait de la nécessité de lire tout le bloc, même s'il n'est requis qu'un seul octet, l'accès devient toutefois très lent et à grande consommation de courant ou intensif en énergie. Par exemple, si un bloc de données présente une grandeur de bloc de données nette de 16 octets ou 128 bits, chacun avec des mots partiels ou mots de données comprenant 4 octets, il est toujours nécessaire, pour l'accès à un seul octet, de lire tout d'abord les 16 octets complets, pour pouvoir examiner l'un seul octet quant à une erreur. Cela génère un retard dans le temps d'au moins de 3 ou 4 cycles d'horloge pour la lecture des 3 mots de données qui ne comportent pas l'un seul octet. Une possibilité de compenser le problème de l'accès lent dans le cas d'un bloc de mémoire plus grand consiste à incorporer et utiliser une antémémoire. Les antémémoires ne peuvent toutefois pas toujours compenser cet inconvénient, ce qui vaut en particulier dans le cas d'un taux de succès médiocre. Dans le cas d'un taux de succès médiocre, il est sollicité par un processeur ou un autre composant du système global comprenant la mémoire des données requises qui ne sont souvent pas mémorisées temporairement ou placées dans l'antémémoire. Dans ce cas, l'utilisation d'une antémémoire ne peut pas accélérer l'accès aux données, étant donné, que dans ce cas, tout le bloc de mémoire de la mémoire doit, pour la fourniture de la donnée souhaitée, également être lu, pour exclure une erreur.
Partant de cet état de la technique, l'objet de la présente invention consiste à créer un dispositif et un procédé de lecture d'une mémoire ou un dispositif et un procédé de mémorisation dans une mémoire qui permettent une lecture rapide et un examen quant à une erreur, ainsi qu'une correction avec en même temps un déploiement en mémoire relativement faible.
Cet objet est résolu par un dispositif selon l'invention, un procédé selon l'invention et par un programme d'ordinateur selon l'invention. Selon un premier aspect, le dispositif selon l'invention pour lire un mot de données prédéterminé d'une mémoire dans laquelle sont mémorisés un bloc de données, qui est subdivisé en une pluralité de mots de données qui comprennent le mot de données prédéterminé, par mot de données de la pluralité de mots de données, une valeur d'identification d'erreur associée à un mot de données respectif et une valeur de correction associée au bloc de données, comprend un dispositif d'identification d'erreur qui est réalisé de manière à examiner si le mot de données prédéterminé présente un rapport prédéterminé avec la valeur d'identification d'erreur associée, afin de conclure, lorsque le rapport prédéterminé n'est pas présent, qu'il existe une erreur et un dispositif de correction d'erreur qui est réalisé de manière à corriger, si le mot de données prédéterminé ne présente pas le rapport prédéterminé avec la valeur d'identification d'erreur associée, l'erreur à l'aide de la valeur de correction, le dispositif de correction d'erreur étant réalisé de manière à utiliser la valeur de correction pour la correction d'erreur indépendamment du mot de données parmi la pluralité de mots de données qui est le mot de données prédéterminé.
Selon un deuxième aspect, le dispositif selon l'invention pour mémoriser un bloc de données composé d'une pluralité de mots données dans une mémoire comprend un dispositif de génération de valeurs d'identification d'erreur qui est réalisé de manière à générer, pour chaque mot de données parmi la pluralité de mots de données, une valeur d'identification d'erreur qui présente un rapport prédéterminé avec le mot de données respectif, et un dispositif de génération de valeur de correction d'erreur qui est réalisé de manière à générer, pour le bloc de données, une valeur de correction à partir de laquelle peut être corrigée une erreur qui entraîne une non présence du rapport prédéterminé entre un rnot de données prédéterminé et la valeur d'identification d'erreur associée, indépendamment du mot de données qui correspond au mot de données prédéterminé. La présente invention se base sur la connaissance du fait qu'une lecture rapide d'un mot de données d'une mémoire et l'examen de ce dernier quant à une erreur avec la possibilité de corriger une telle erreur sur base d'une valeur de correction ne requérant qu'un emplacement de mémoire relativement petit peuvent être obtenus par le fait qu'à chaque mot de données est associée une valeur d'identification d'erreur et qu'à un bloc de données comportant une pluralité de mots de données est associée une valeur de correction qui permet une correction d'une erreur, indépendamment du mot de données parmi la pluralité de mots de données dans le bloc de données qui présente l'erreur. Il est particulièrement favorable ici que sur base de la valeur d'identification d'erreur associée à chaque mot de données est possible un examen rapide quant à la présence d'une erreur, tandis que la valeur de correction nécessaire pour une correction se rapporte à un bloc de données entier et requiert, de ce fait, une moindre occupation d'emplacement de mémoire que nécessiterait une valeur de correction qui ne se rapporte qu'à un seul mot de données. Cela est dû au fait qu'un bloc de données comprend une pluralité de mots de données, et que lorsque la longueur de bloc de données augmente, la nécessité de mémoire de la valeur de correction par rapport à la longueur du bloc de données diminue.
Par ailleurs, il est particulièrement favorable que les valeurs d'identification d'erreur qui sont associées aux mots de données aient, chacune, une longueur d'exactement. un bit, donc qu'elles requièrent le déploiement additionnel en mémoire le plus faible possible. Par ailleurs, l'utilisation de bits de parité comme valeurs d'identification d'erreur, donc un contrôle de la parité des différents mots de données sur base du bit de parité chaque fois associé, permet un contrôle très rapide d'une erreur, étant donné qu'un contrôle de parité est possible en parallèle dans un cycle d'horloge du système qui comporte la mémoire.
Un autre avantage réside dans le fait que la valeur de correction peut être utilisée pour, d'une part, corriger une erreur d'un seul bit quelconque dans le bloc de données ou, d'autre part, aussi pour corriger une erreur d'un seul bit quelconque dans un mot de données ou dans un mot de données et la valeur d'identification d'erreur associée, comme le montreront les exemples de réalisation détaillés. Selon la mesure des conditions marginales du système qui comprend la mémoire, il peut être plus avantageux d'établir la valeur de correction de sorte que puisse être corrigée une erreur d'un seul bit quelconque dans le bloc de données ou également dans un mot de données ou dans un mot de données et la valeur d'identification d'erreur associée. Un autre avantage de la présente invention réside dans le fait que la longueur qui est requise pour ta mémorisation de la valeur de correction peut être réduite par le fait que sur base de chaque mot de données que comprend le bloc de données est calculée une valeur de correction partielle à partir de laquelle est à nouveau générée la valeur de correction par application d'un couplage, par exemple un couplage XOR par bit (XOR = exclusive-or = ou-exclusif). Or, s'il se produit une erreur lors de la lecture, il est déterminé, sur base de la valeur de correction et des valeurs de correction partielles qui sont calculées à partir des mots de données qui ne sont pas le mot de données à lire, une valeur de correction partielle reconstruite pour le mot de données à lire, sur base de laquelle est effectuée la correction. Cela présente l'avantage particulier que la longueur de la valeur de correction n'est plus liée à la longueur du bloc de données, mais peut plutôt correspondre à la longueur d'une valeur de correction qui ne se rapporte qu'à un seul mot de données. De ce fait, la nécessité de mémoire pour les valeurs de correction peut à nouveau être diminuée, sans que ne soit réduite la possibilité d'une lecture rapide d'un mot de données prédéterminé. L'invention permet donc simultanément une lecture rapide d'un mot de données et le contrôle quant à une erreur avec, en même temps, un besoin de mémoire relativement faible pour la valeur de correction nécessaire pour la correction. Ci-après sont expliqués plus en détail des exemples de réalisation préférés de la présente invention, en référence aux dessins joints en annexe, dans lesquels : la figure 1 est un schéma-bloc schématisé d'un dispositif selon l'invention pour lire un mot de données prédéterminé d'une mémoire ; la figure 2 est un schéma opérationnel d'un premier exemple de réalisation du procédé selon l'invention pour enregistrer un bloc de données dans une mémoire ; la figure 3 est un schéma opérationnel d'un premier exemple de réalisation du procédé selon l'invention pour lire un mot de données prédéterminé d'une mémoire ; la figure 4 est un schéma opérationnel d'un deuxième exemple de réalisation du procédé selon l'invention pour écrire un bloc de données dans une mémoire ; la figure 5 est un schéma opérationnel d'un deuxième exemple de réalisation du procédé selon l'invention pour lire un mot de données prédéterminé d'une mémoire ; la figure 6 est un schéma opérationnel d'un troisième exemple de réalisation du procédé selon l'invention pour lire un mot de données prédéterminé d'une mémoire ; et la figure 7 est un schéma opérationnel d'un quatrième exemple de réalisation du procédé selon l'invention pour lire un mot de données prédéterminé d'une mémoire. En référence aux figures 1 à 7 est décrit ici un exemple de réalisation d'un dispositif selon l'invention pour lire un mot de données prédéterminé d'une mémoire. Aux figures 1 à 7 sont utilisés pour des objets et étapes de procédé similaires des numéros de repère similaires. Par ailleurs, des objets et étapes de procédé identiques sont désignés par des numéros de repère identiques.
La figure 1 illustre un schéma-bloc schématisé d'un exemple de réalisation d'un dispositif selon l'invention pour lire un mot de données prédéterminé d'une mémoire 100. Dans la mémoire 100 est mémorisé un bloc de données 110 comportant une pluralité de mots de données 120-1, ..., 120-n et une pluralité de valeurs d'identification d'erreur 130-1, ..., 130-n qui sont assignées à chacun des mots de données 120-1, ..., 120-n, et une valeur de correction 140. En d'autres termes, le bloc de données 110 est divisé en n sous-mots ou mots de données 120-1, ..., 120-n. La mémoire 100 est couplée à un dispositif d'identification d'erreur 150 et à un dispositif de correction d'erreur 160. Le dispositif d'identification d'erreur 150 est, par ailleurs, couplé au dispositif de correction d'erreur 160. Le dispositif d'identification d'erreur 150 est, en outre, relié, par exemple par l'intermédiaire d'un bus bidirectionnel 170, à un composant externe 180, pour lequel il peut s'agir, par exemple, d'un CPU (CPU = central processing unit = processeur principal), d'une mémoire, d'un processeur spécial, d'un processeur cryptographique ou d'un autre dispositif. Le dispositif d'identification d'erreur 150 et le dispositif de correction d'erreur 160 sont souvent réalisés comme élément d'une unité de commande de mémoire qui n'est toutefois pas illustrée à la figure 1.
Dans des exemples de réalisation de la présente invention, le dispositif d'identification d'erreur 15O et le dispositif de génération de valeurs d'identification d'erreur sont réalisés de sorte que les valeurs d'identification d'erreur 130-1, ..., 130-n permettent de vérifier la présence d'une erreur dans les mots de données 130-1..., 130-n y associés, mais toutefois pas une correction des mots de données concernés s'ils devaient être détectés dans le cadre de l'identification d'erreur. Dans des exemples de réalisation de la présente invention, les valeurs d'identification d'erreur 130-1, ..., 130-n représentent donc des valeurs qui permettent certes une recherche ou identification d'une erreur dans une mot de données, mais toutefois pas leur correction. Il y a lieu de noter ici que, selon l'algorithme utilisé, une erreur sur plusieurs bits du mot de données peut, dans le cadre de cette explication, également être appelée une erreur. Selon la réalisation concrète des exemples de réalisation concernés, une valeur d'identification d'erreur peut tout aussi bien comporter un bit ou également présenter une longueur de plus d'un bit. Des exemples de procédés d'identification d'erreur qui ne permettent pas de correction d'erreur et dont les valeurs d'identification d'erreur ont une longueur d' exactement un bit sont, par exemple, un contrôle de parité sur base des bits de parité ou également la formation des sommes de contrôle (redondantes) qui sont éventuellement réduites par découpage, sélection ou par une autre forme de réduction du nombre de bits à exactement un bit. Des procédés avec une valeur d'identification d'erreur de plus d'une longueur de bit qui ne permettent pas non plus de correction sont représentés, par exemple, par le calcul de sommes de contrôle redondantes, par exemple sous forme d'un procédé de protection contre l'erreur CRC (CRC = cycling redundancy checksum = somme de contrôle redondante cyclique), la formation de valeurs parasites (crypotgraphiquement sûres) par l'intermédiaire de fonctions de valeurs parasites ou de fonctions de valeurs parasites dans un seul sens.
Dans d'autres exemples de réalisation de la présente invention, des valeurs d'identification d'erreur peuvent être générées sur base d'un bit de parité d'une longueur de plus d'un bit, par exemple également par le fait que le bit de parité est répété ou que sa valeur complémentaire est fonction du bit de parité. Dans la suite de la description est décrit, en particulier, le cas du bit de parité comme valeur d'identification d'erreur, même si cela ne doit pas être entendu, tel qu'expliqué plus haut, comme une restriction. Tel qu'il a été expliqué dans les paragraphes d'introduction de la présente demande, il peut, en principe, certes se produire des erreurs sur plusieurs bits dans une zone de données, mais celles-ci se produisent toutefois si rarement qu'elles n'ont en général pas d'effet négatif sur la fiabilité des mémoires 100. Étant donné que les erreurs sur un seul bit représentent un plus grand problème de fiabilité, l'on se base, dans la suite de la demande, sur la supposition qu'un bloc de données 110 peut certes présenter un erreur d'un seul bit, mais toutefois pas d'erreur sur plusieurs bits, sauf si une telle erreur est expressément supposée dans le cadre de la présente demande. Les valeurs d'identification d'erreur 130-1, ..., 130-ri représentent donc, pour les n mots de données ou sous-mots 120-1, ..., 120-n dans lesquels le bloc de données 110 à protéger contre une erreur sur un seul bit est divisé, sûrement ou par mot de données 120-1, ..., 120-n la possibilité d'identification d'erreur d'un seul bit. Si le composant externe 18C) accède, par l'intermédiaire du bus bidirectionnel 170, par exemple dans le cadre d'un ordre de lecture ou d'un ordre de rappel, à un mot de données déterminé de la mémoire, le dispositif d'identification d'erreur 150 reçoit le mot de données concerné, par exemple le mot de données 120-2, et la valeur d'identification d'erreur associée, donc la valeur d'identification d'erreur 130-2, et examine le mot de données 120-2 sur base de la valeur d'identification d'erreur 130-2 quant à la présence d'une erreur. Alternativement, le dispositif d'identification d'erreur 150 peut également recevoir du composant externe 180, par l'intermédiaire du bus bidirectionnel 170, l'ordre de lire un mot de données déterminé de la mémoire 100, donc un ordre de lecture ou un ordre de rappel. Dans ce cas, le dispositif d'identification d'erreur 150 accède à la mémoire 100 et lit le mot de données concerné, donc, dans l'exemple ci-dessus, le mot de données 120-2, et la valeur d'identification d'erreur associée, donc la valeur d'identification d'erreur 130-2, et examine alors le mot de données 120-2 sur base de la valeur d'identification d'erreur 130-2 quant à la présence d'une erreur. Si le dispositif d'identification d'erreur 150, indépendamment du fait qu'il a lui-même exécuté l'ordre de lecture ou qu'il a uniquement effectué le contrôle quant à la présence d'une erreur, ne détecte pas d'erreur, le mot de données 120-2 ou également uniquement une partie est sortie, par l'intermédiaire du bus bidirectionnel 170, vers le composant externe 180. Si le dispositif d'identification d'erreur 150 constate une erreur, dans le cadre de l'exemple ci-dessus, lors du contrôle du mot de données 120-2, il s'agit, sur base des suppositions indiquées plus haut, d'une erreur d'un seul bit. Dans ce cas, le dispositif d'identification d'erreur 150 indique au dispositif de correction d'erreur 160 de lire la valeur de correction 140 associée au bloc de données 110 qui comporte le mot de données 120-2 et de corriger le bloc de données 110 sur base de la valeur de correction 140 en conséquence. A la fin de la correction du bloc de données 110, le dispositif de correction d'erreur 160 transmet un signal au dispositif d'identification d'erreur 150, après quoi le dispositif d'identification d'erreur 150 lit à nouveau le mot de données correspondant, donc, dans l'exemple ci-dessus, vérifie le mot de données 120-2, ensemble avec le mot de données 130-2 associé, le contrôle à nouveau quant à des erreurs et, en cas ct'absence d'erreur du mot de données 120-2, le sort, par l'intermédiaire du bus bidirectionnel 170, vers le composant externe 180. Pour permettre alors une identification d'erreur d'un seul bit aussi rapide que possible combinée avec une correction d'erreur à économie d'emplacement de mémoire, il est souvent utilisé, pour les valeurs d'identification d'erreur 130-1, ..., 130-n, un bit de parité, de sorte que le contrôle quant à la présence d'une erreur ait lieu par une comparaison de la parité de l'un des mots de données 120-1, ..., 120-n avec le bit de parité associé 130-1, ..., 130-n, étant donné qu'un contrôle de la parité d'un mot de données 120-1, ..., 120-n peut être effectué très rapidement par une opération parallèle sur tous les bits de données. Peu importe s'il est utilisé, comme valeur d'identification d'erreur, une parité paire ou impaire, donc si le nombre de bits réglés du mot de données est pair ou impair. En principe, il peut toutefois être utilisé tout procédé d'identification d'erreur, de sorte que l'utilisation d'un bit de parité ne doit être comprise comme étant restrictive dans le cadre des exemples de réalisation suivants. Il est toutefois avantageux ici d'utiliser un procédé d'identification d'erreur rapide et à économie d'emplacement de mémoire, tel qu'un contrôle de parité à l'aide de bits 130-1, ..., 130-n associés aux mots de données 120-1, ..., 120-n. Le contrôle de parité offre ainsi l'avantage d'une aptitude à l'exécution rapide, ainsi que l'avantage supplémentaire que l'emplacement de mémoire additionnel nécessaire pour les bits de parité 130-1, ..., 130-n est très réduit, sans perte de la possibilité d'identifier une erreur d'un seul bit quelconque.
Du fait qu'à chacun des n mots de données 120-1, ..., 120-n est associé exactement un seul bit de parité 130-1, ..., 130-n et que le code de correction d'erreur ou la valeur dte correction 140 est déterminé sur tout le bloc de données 110, il est maintenant possible, d'une part, un contrôle rapide d'un mot de données individuel quant à une erreur et, d'autre part, un déploiement ou occupation d'emplacement de mémoire comparativement réduit pour la mémorisation de la valeur de correction 140. En d'autres termes, la présente invention permet de maintenir réduit ou de minimiser l'emplacement de mémoire nécessaire pour la mémorisation de la valeur de correction d'erreur, du fait que le procédé d'identification d'erreur peut être appliqué séparément à chacun des mots de données 120-1, ..., 120-n, tandis que le procédé de correction d'erreur est appliqué sur la pluralité de mots de données 120-1, ..., 120-n ou sur le bloc de données 110. La longueur de la valeur de correction 140 peut donc être minimisée en utilisant les bits de parité 130-1, ..., 130-n, tandis que les bits de parité 130-1,..., 130-n permettent un contrôle rapide de l'un des mots de données 120-1, ..., 120-n quant à la présence d'une erreur et, de ce fait, une fourniture pratiquement immédiate du mot de données concerné à l'unité de récepteur connecté en aval ou au composant externe 180, pour autant qu'aucune erreur ne soit présente. La correction d'erreur est donc réalisée, par l'introduction d'un code 140 approprié, sur tout le bloc de données 110, donc par l'introduction d'une valeur de correction 140 qui se rapporte à tout le bloc de données 110. Dans la supposition citée ci-dessus qu'il y a, par bloc de données 110, tout au plus exactement une erreur d'un seul bit, il peut donc déjà être décidé immédiatement à la lecture du mot de données partiel désiré ou du mot de données si le mot de données partiel ou aussi le mot de données est correct ou non. S'il est correct, il peut être immédiatement sorti vers une unité 180 connectée en aval et être traité par cette dernière. Dans ce cas, le bloc de données restant ne doit plus être lu. Il en résulte donc, comme avantage substantiel de la présente invention, une augmentation nette du temps d'exécution d'une opération de lecture et une réduction substantielle qui en résulte de la consommation d'énergie lorsqu'il peut être accédé à des mots individuels, au lieu de tout le bloc de données 110 pour un accès (accès de bloc).
Si une erreur est présente, l'erreur peut toutefois être éliminée à l'aide de la valeur de correction 140, de sorte que, après une correction, le mot de données alors correct peut être fourni ou sorti. La présente invention permet donc le choix d'une grande unité de bloc ou bloc de données 110, pour maintenir réduit le déploiement en codes pour la mémorisation d'une valeur de correction 140, et en même temps un accès rapide à une donnée ou une mot de données et son contrôle quant à une erreur. Dans le cadre d'un accès de lecture à une donnée 4 ou un mot de données, il peut, mais ne doit toutefois pas, être lu tout le bloc de données 110. En référence aux figures 2 à 7 sont expliqués plus en détail, dans la suite de la demande, d'une part, le procédé selon l'invention pour lire un mot de données prédéterminé d'une mémoire 100, à l'aide de quatre exemples de réalisation, et le procédé selon l'invention pour mémoriser un bloc de données 110 dans une mémoire 100, à l'aide de deux exemples de réalisation, et sont discutés les avantages. La figure 2 illustre donc un schéma opérationnel d'un premier exemple de réalisation du procédé selonl'invention pour mémoriser un bloc de données 110 dans une mémoire 100. Après le début S200 du procédé, il est tout d'abord lu les n mots de données 120-1, ..., 120-n (étape S210). Dans une étape suivante S220 sont générés les bits de parité 130-1, ..., 130-n associés aux mots de données 120-1, ..., 120-n.
Dans une étape successive S230 sont calculés, par l'intermédiaire des mots de données 120-1, ..., 120-n individuels, n valeurs de correction partielles ou codes d'erreur partiels. Ensuite, les n valeurs de correction partielles sont couplées, dans le cadre d'une étape suivante S240 par un couplage XOR par bit ou additionnées par l'intermédiaire d'une structure XOR par bit (XOR = exclusive-or = ou-exclusif), le résultat de ce couplage ou addition étant associé comme code de somme ou valeur de correction 140 au bloc de données 110. Dans une étape suivante S250, le bloc de données 110, donc les différents mots de données 120-1, ..., 120-n, les bits de parité 130-1, ..., 130-n et la valeur de correction 140 sont mémorisés dans la mémoire 100, d'où cette opération d'écriture est terminée (étape S260). Du fait que des codes de correction d'erreur individuels sont calculés, chacun, n fois, indépendamment l'un de l'autre sur les mots de données 120-1,..., 120-n individuels, que ces n code d'erreur partiels sont ensuite additionnés par bit pair l'intermédiaire d'une structure XOR et que le code de somme qui en résulte est mémorisé comme valeur de correction 140 avec le bloc de données 110, il peut être économisé, 5 comparé à une valeur de correction 140 qui se rapporte à tout le bloc de données 110, quelques bits de longueur comme bits de différence. Partant, par exemple, d'une grandeur de bloc de données nette de 16 octets, donc de 128 bits, qui se présentent, par suite de la largeur du système de bus ou du bus bidirectionnel 170 ou d'autres conditions marginales dans des mots partiels ou mots de données de 4 octets, donc 32 bits, chacun, il s'ensuit que le bloc de données 110 comprend 4 mots de données 120-1,..., 120-n, donc que n = 4. Tel qu'il a déjà été expliqué dans les paragraphes d'introduction de la présente demande, il est obtenu, à l'origine par rapport à tout le bloc de données 110, dans ce cas un code d'erreur d'une longueur de 8 bits pour un algorithme purement de correction d'erreur ou de 9 bits pour une combinaison d'algorithmes de correction d'erreur et d'identification d'erreur, l'algorithme d'identification d'erreur étant mis en oeuvre sous forme d'une comparaison de parité avec un bit de parité pour le bloc de données 110. Tel qu'il a également déjà été expliqué dans les paragraphes d'introduction de la présente demande, sans le procédé selon l'invention décrit plus loin pour un accès à un seul octet, il doit toujours être lu les 16 octets complets, ce qui entraîne un retard dans le temps d'au moins 3 ou 4 cycles d'horloge. Par le procédé selon l'invention, il est maintenant possible d'effectuer un accès visé à un octet en un seul cycle d'horloge en lisant directement le mot d'une longueur de 4 octets adressé. Le surplus de code ou toute la largeur de code, donc l'emplacement de mémoire additionnelle nécessaire pour l'exécution des procédés selon l'invention, est, dans ce cas, de 10 bits, lequel résulte des 4 bits de parité 130-1, ..., 130-n associés aux mots de données 120-1, ..., 120-n et d'un code de correction d'erreur ou valeur de correction partielle d'une longueur de 6 bits pour un paquet de données comprenant 33 bits. Outre les 32 bits de données du mot de données comprenant 4 octets, le paquet de données présente, en outre, encore le bit de parité associé au mot de données. Étant donné que, par suite du couplage XOR par bit des valeurs de correction partielles avec 2911414 1 5 la valeur de correction 140 associée au bloc de données 110 dont la longueur reste inchangée, il est obtenu une largeur de code totale ou une longueur pour la valeur de correction 140 et les bits de parité 130-1, ..., 130-n de 10 bits en tout. Par rapport à une solution possible, 5 telle qu'elle a été discutée dans :les paragraphes d'introduction de la présente demande, le surplus de code additionnel, donc l'emplacement de mémoire additionnel requis, n'est que de 1 ou 2 longueurs de bits, ce qui représente, du fait de la vitesse de lecture supérieure dans le cadre du procédé selon l'invention de lecture d'un mot de données 10 prédéterminé, qui sera décrit plus en détail plus loin, un inconvénient négligeable comparé à l'augmentation de vitesse pouvant être obtenue. La figure 3 illustre un schéma opérationnel d'un premier exemple de réalisation du procédé selon l'invention pour lire un mot de données prédéterminé d'une mémoire 100 qui complète l'exemple de réalisation 15 d'une opération d'écriture illustré à la figure 2. Après un début L2OO, il est tout d'abord lu, dans une première étape L21O, de la mémoire 100 le mot de données prédéterminé sur base de son adresse. Dans une deuxième étape L22O est également lu le bit de parité associé et, dans une troisième étape L23O, la parité du mot de données prédéterminé est 20 comparée à la valeur du bit de parité associé. Si les deux coïncident, le mot de données prédéterminé est sorti, dans une étape L24O, via le bus bidirectionnel 170 et le processus de lecture est terminé dans une étape L25O. Si les deux valeurs, donc la parité du mot de données lu et la 25 valeur du bit de parité associé, ne coïncident pas, ce qui indique une erreur d'un seul bit, la valeur de correction 140 du bloc de données 110 est tout d'abord lue dans une étape L26O. Par ailleurs, dans une étape suivante L27O sont également lus les autres mots de données. Dans une étape suivante L28O, les valeurs de correction partielles associées 30 sont calculées sur base des autres mots de données et couplées, ensemble avec la valeur de correction 140, dans une étape L29O, à la valeur de correction partielle du mot de données prédéterminé. Dans -7 une étape L300, la valeur de correction partielle ainsi obtenue est analysée et évaluée. Si cette analyse a pour résultat qu'une correction du mot de données est possible, cette correction est effectuée dans le cadre d'une étape L310 et le processus continue avec l'étape L210. Par contre, si l'analyse de la valeur de correction partielle a toutefois pour résultat qu'une correction n'est pas possible, il est sorti, dans le cadre d'une étape L320, par exemple par l'intermédiaire du dispositif d'identification d'erreur 150 et via le bus bidirectionnel 170, un message d'erreur vers le composant externe 180 et le processus de lecture est terminé, dans une étape L,330, par une erreur. Après le couplage dans l'étape partielle L290 des valeurs de correction partielles des autres mots de données et de la valeur de correction 140 qui est associée au bloc 110 de données, il est à nouveau effectué, comme c'était déjà le cas pour l'exemple de réalisation illustré à la figure 2, un couplage XOR par bit. Par suite des propriétés du couplage XOR par bit et en rapport avec l'exemple de réalisation décrit à la figure 2 pour enregistrer le bloc de données 110 dans la mémoire 100, le résultat de ce couplage est précisément le code de correction d'erreur ou la valeur de correction partielle du mot de données prédéterminé concerné par l'erreur de parité. La présente invention peut également être utilisée ensemble avec une antémémoire, lorsqu'une telle utilisation est souhaitée ou nécessaire, par exemple pour la fourniture encore plus rapide d'une donnée. Même si une telle antémémoire présentait un mauvais taux d'atteinte de l'antémémoire ou un mauvais taux de succès, donc, par exemple, lorsqu'un programme se déroulant sur un processeur requiert une pluralité de données différentes de la mémoire qui ne sont pas mémorisées provisoirement dans le caché ou l'antémémoire, la présente invention peut compenser cela complètement ou au moins partiellement. Au cas où il est utilisé une antémémoire, il peut être utilisé, en rapport avec l'antémémoire, un soi-disant processus "Wrapping Burst Fin". Cela signifie qu'il est tout d'abord placé le mot de données requis proprement dit de la mémoire dans l'antémémoire, à l'aide de la valeur d'identification d'erreur associée au mot de données pouvant immédiatement être vérifiée, pendant le placement dans l'antémémoire, l'intégrité ou l'absence d'erreur du mot de données concerné. La valeur d'identification d'erreur permet donc la fourniture immédiate du mot de données à un composant externe ou une unité de réception 180 connectée en aval, par exemple un CPU (CPU = central processing unit processeur central), une autre mémoire, unité d'entrée-sortie, un processeur spécial, un Processeur cryptographique ou une autre unité. Tandis que le mot de données requis a déjà été mis à disposition de l'unité de réception connectée en aval 180, les mots de données manquants restants 120-1, ..., 120-:n du bloc de données 110 peuvent être placés dans l'antémémoire qui est habituellement construite organisée par blocs. Les procédés selon l'invention permettent donc également une augmentation claire des vitesses d'exécution et une réduction considérable de la consommation d'énergie, ce qui est avantageux en particulier pour des applications mobiles, telles que par exemple les téléphones portables, les PDA (PDA = personal data assistent = assistant numérique personnel) et d'autres appareils portatifs. En d'autres termes, si l'un des mots de données 120-1, ..., 120-n de tout le bloc ou du bloc de données 110 présente une erreur de parité, l'algorithme de correction suivant est utilisé : Il est chaque fois calculé les codes d'erreur partiels des mots de données non concernés par l'erreur de parité. Ensuite est formée la somme XOR de ces derniers et le résultat avec le code de correction d'erreur de somme ou la valeur de correction 140 est également additionnée par l'intermédiaire d'un couplage XOR. Le résultat est le code de correction d'erreur du mot de données concerné par l'erreur de parité à l'aide duquel peut alors être corrigée l'erreur de bit individuelle. 2911414 1 9 Les exemples de réalisation illustrés aux figures 2 et 3 des procédés selon l'invention se basent sur le fait que les codes de correction d'erreur ne sont pas calculés sur tout le bloc de données 110, mais chaque fois indépendamment l'un de l'autre sur les différentes 5 mots de données 120-1, ..., 120-n. Les codes d'erreur partiels ou valeurs de correction partielles aires obtenus sont alors couplés l'un à l'autre et mémorisés ensemble avec le bloc de données 110 comme valeur de correction 140. Etant donné que le code de correction d'erreur pour un mot de données partiel ou un mot de données présent souvent 10 une plus petite largeur binaire qu'un.e valeur de correction 140 sur tout le bloc de données, l'emplacement de mémoire requis pour mémoriser la valeur de correction 140 peut, dans la supposition d'un couplage approprié, comme le couplage XO:R par bit (XOR = exclusive-or = ou-exclusif), être davantage réduit. S'il se produit ici une erreur qui rend 15 nécessaire une correction d'un mot de données, les valeurs de correction partielles des mots de données non concernés par l'erreur doivent 120-1,..., 120-n doivent, dans ce cas, être calculées et couplées avec la valeur de correction 140 mémorisée, pour obtenir la valeur de correction partielle pour le mot de données demandé. A l'aide de celle-ci 20 peut alors être corrigée l'erreur d'un seul bit dans le mot de données demandé. Dans les exemples de réalisation décrits aux figures 2 et 3 des procédés selon l'invention pour lire et mémoriser, il peut, outre une correction des mots de données 120-1, 120-n proprement dits, 25 également être effectuée une correction d'une erreur d'un seul bit se produisant éventuellement à l'endroit des bits de parité 130-1,
., 130-n. Cette possibilité de corriger également des erreurs à l'endroit des bits de parité ou des valeurs d'identification d'erreur 130-1, ..., 130-n ne doit toutefois pas forcément être mise en oeuvre. Ainsi, il est, en 30 principe, parfaitement concevable que la protection additionnelle contre une erreur à l'endroit des bits de parité 130-1,..., 130-n peut augmenter la longueur de la valeur de correction 140 de manière désavantageuse 2911414 2D d'un bit, par exemple lorsqu'un mot de données ne doit présenter qu'une longueur de 4 bits. Dans ce cas, il serait requis pour la protection, par rapport à une erreur d'un seul bit, une valeur de correction d'erreur d'une longueur de 3 bits. Toutefois, si le bit de parité 5 associé est en outre également protégé contre des erreurs, la longueur des bits à protéger est de 5, ce qui rendrait nécessaire un bit de correction d'erreur additionnel. Les procédés décrits aux figures 2 et 3 sont donc avantageux en particulier lorsque seul un espace de mémoire réduit est disponible, comme c'est ].e cas pour les puces spéciales, les 10 cartes à puce, les circuits intégrés ou d'autre petites applications à emplacement de mémoire optimisé. La figure 4 illustre un schéma opérationnel d'un deuxième exemple de réalisation du procédé selon l'invention pour enregistrer un bloc de données 110 dans la mémoire 100. Dans cet exemple de 15 réalisation, il s'agit, comparé au premier exemple de réalisation illustré à la figure 2, d'une version légèrement modifiée dans laquelle la valeur de correction 140 ou une valeur de correction partielle dérivée de cette dernière peuvent être utilisées non plus seulement pour la correction d'un seul mot de données parmi la pluralité de mots de données 120-1, 20 ..., 120-n, mais s'appliquent au bloc de données 110 complet. L'exemple de réalisation illustré à la figure 4 ne diffère de l'exemple de réalisation illustré à la figure 2 substantiellement qu'en deux points qui concernent la. génération de la valeur de contrôle 140. Les deux exemples de réalisation se déroulent en parallèle jusqu'à l'étape S220, dans laquelle 25 sont générés les bits de parité 130-1, ..., 130-n. A la différence de l'exemple de réalisation illustré à la figure 2, l'étape S230 dans laquelle étaient calculées, à la figure 3, les valeurs de correction partielles n'est toutefois pas exécutée. En lieu et place est générée, dans le cadre d'une étape modifiée S240' qui remplace l'étape S240 dans l'exemple de 30 réalisation illustré à la figure 2, la valeur de contrôle 140 sur base de tout le bloc de données 110. Cet exemple de réalisation du procédé selon l'invention pour mémoriser un bloc de données 110 est terminé par les deux étapes S250, dans laquelle est enregistré le bloc de données 110, et l'étape S260. L'exemple de réalisation de lecture d'un mot de données prédéterminé appartenant à exemple de réalisation illustré à la figure 4 du procédé selon l'invention pour mémoriser un bloc de données 110 est illustré à la figure 5 sous forme d'un schéma opérationnel et ne diffère également que légèrement de l'exemple de réalisation de lecture d'un mot de données prédéterminé qui est illustré à la figure 3. Ici aussi, les différences ne concernent substantiellement que les étapes de préparation qui mènent à l'exécution de la correction proprement dite en cas de présence d'une erreur (étape L310). L'exemple de réalisation illustré à la figure 5 ne diffère pas de l'exemple de réalisation illustré à la figure 3 jusqu'à y compris l'étape de lecture de la valeur de correction 140 à l'étape L260. Toutefois, à la différence de l'exemple de réalisation illustré à la figure 3, les étapes L270, L280 et L290 ne sont pas exécutées. L'étape L300 de l'exemple de réalisation illustré à la figure 3 est remplacée par une étape modifiée L300' dans laquelle la valeur de correction 140 lue à l'étape L260 est analysée, pour juger si une correction est en principe possible en cas de présence d'une erreur. Si une telle correction n'est pas possible, le procédé selon l'invention continue, de manière analogue à la procédure dans le cadre de l'exemple de réalisation illustré à la figure 3, par l'étape L320, notamment la sortie d'un message d'erreur. Si une correction est possible, celle-ci est également réalisée, dans le cadre de l'étape L310, de manière analogue à l'exemple de réalisation illustré à la figure 3 et l'opération de lecture est ensuite continuée par l'étape L210, donc de manière analogue à l'exemple de réalisation illustré à la figure 3. Les exemples de réalisation illustrés aux figures 4 et 5 des procédés selon l'invention pour mémoriser un bloc de données et pour lire un mot de données prédéterminé d'une mémoire 100 ne différent donc substantiellement des deux exemples de réalisation qui sont illustrés aux figures 2 et 3 que par le fait qu'ils fonctionnent sans l'addition décrite de codes d'erreur partiels à l'aide d'un couplage XOR. Partant de l'exemple de grandeur de bloc de données nette de 16 octets déjà indiqué ci-dessus, lesquels sont par exemple divisés, par suite du système de bus, en n = 4 mots partiels ou mots de données 120-1, ..., 120-n, chacun de 4 octets, il est déjà obtenu, par suite de la grandeur de bloc de données nette de 128 bits, un code de correction d'erreur ou une valeur de correction 140 d'une largeur d'au moins 8 bits. De ce fait, le code total pour l'identification d'erreur et la correction d'erreur, y compris les 4 bits de parité 130-1, ..., 130-n des 4 mots de données 120-1, ..., 120-n signifierait une occupation de mémoire de 12 bits. Comparé à une possible solution décrite dans les paragraphes d'introduction de la présente demande avec une longueur de code d'erreur originale prévue de 8 bits ou de 9 bits, cette solution n'est toutefois concurrentielle que dans certaines conditions. Néanmoins, ces exemples de réalisation selon l'invention des procédés pour mémoriser un bloc de données ou pour lire un mot de données prédéterminé apparaissant à première vue désavantageux peuvent également présenter d'énormes avantages. Par exemple, si, par suite de limitations constructives, d'exigences de sécurité ou d'autres raisons, certaines étapes de l'exemple de réalisation illustré à la figure 3 ne peuvent pas s'effectuer rapidement, donc en ou peu de cycles d'horloges, il peut être avantageux, selon les conditions marginales, d'omettre les étapes de calcul, de lecture et de couplage additionnelles en faveur d'un plus grand espace de mémoire occupé, étant donné que le temps de correction peut éventuellement être raccourci ici. Comparé à une solution esquissée dans les paragraphes d'introduction de la présente demande, l'avantage d'une lecture rapide et d'une vérification rapide quant à la présence d'une erreur persiste également dans l'exemple de réalisation illustré à la figure 5, de sorte qu'au moins au cas où il n'est pas présent d'erreur est permise une lecture plus rapide d'un mot de données prédéterminé...DTD: Une autre possibilité d'utiliser le procédé selon l'invention pour lire un mot de données prédéterminé existe dans le domaine des applications de sécurité avec des mots de code de protection plus grands ou des valeurs de correction 140 élargies. Les bits de parité ou les valeurs d'identification d'erreur 130-1, ..., 130-n sont utilisés pour exclure ou détecter des erreurs d'un seul bit. Dans le cadre d'un contrôle de sécurité, tous les mots de données 120-1, ..., 120-n sont néanmoins lus, pour pouvoir contrôler à la fin le code d'erreur ou la valeur de correction 140. Cette procédure permet encore toujours la fourniture rapide du mot de données proprement dit souhaité, mais permet toutefois, d'autre part, un contrôle de la mémoire quant à une attaque. Par exemple, dans le cas d'une erreur sur plusieurs bits, qui ne peut en général plus être détectée à l'aide d'un bit de parité et qui est habituellement évaluée par les composants de sécurité comme étant une attaque, l'unité de commande de mémoire peut ainsi initier, par exemple par le dispositif d'identification d'erreur 150 ou le dispositif de correction d'erreur 160, en sortant un signal d'alarme, une interruption de l'action en cours, par exemple sous forme d'une remise à zéro de sécurité. Dans la suite de la présente demande, il est donc décrit deux exemples de réalisation du procédé selon l'invention pour lire un mot de données prédéterminé, tels qu'ils peuvent être utilisés dans le domaine des applications de sécurité. Ces deux exemples de réalisation représentent des modifications des exemples de réalisation illustrés aux figures 3 et 5 du procédé selon l'invention pour lire un mot de données prédéterminé. La figure 6 illustre donc un troisième exemple de réalisation du procédé selon l'invention pour lire un mot de données prédéterminé d'une mémoire 100 qui est modifié pour être utilisé dans le cadre d'une application de sécurité et qui se base sur l'exemple de réalisation illustré à la figure 5. Cet exemple de réalisation ne diffère de l'exemple de réalisation illustré à la figure 5 qu'au cas où la comparaison de la parité du mot de données lu coïncide avec la valeur associée du bit de L. parité dans l'étape L23O. Dans ce cas, dans l'exemple de réalisation illustré à la figure 6, le mot de données est également sorti dans le cadre de l'étape L24O. Dans une étape suivante L242 sont lus les autres mots de données 120-1, ..., 120-n. A l'étape L245 est ensuite lue la valeur de correction 140 et, à l'étape L247, elle est analysée. Si, dans le cadre de cette analyse, il n'est pas trouvé d'erreur, le procédé de lecture est terminé à l'étape L25O'. Toutefois, s'il est constaté une erreur dans le cadre de l'étape L247, il est sorti une alarme à l'étape L248 et le procédé est terminé à l'étape L25O". L'alarme indique, dans ce cas, une erreur sur plusieurs bits, étant donné qu'une erreur d'un seul bit aurait déjà dû être identifiée par la vérification précédente des bits de parité 130-1,..., 130-n à l'étape L23O. Étant donné que, tel qu'il a été expliqué dans les paragraphes d'introduction de la présente demande, des erreurs sur plusieurs bits ne se produisent guère, celles-ci sont en général évaluées par les composants de sécurité ou contrôleurs de sécurité comme étant une attaque, de sorte que, comme contre-mesure, il ne reste que l'interruption de l'action en cours, par exemple sous forme d'une remise à zéro de sécurité, qui peut alors être déclenchée par exemple par le signal d'alarme.
La figure 7 illustre un schéma opérationnel d'un quatrième exemple de réalisation du procédé selon l'invention pour lire un mot de données prédéterminé d'une mémoire 100 qui a été modifié sur base de l'exemple de réalisation illustré à la figure 3 pour être utilisé dans le cadre d'une application de sécurité. De manière similaire à l'exemple de réalisation illustré à la figure 6, l'exemple de réalisation illustré à la figure 7 ne diffère de celui illustré à la figure 3 qu'en ce qui concerne les étapes qui sont effectuées après la comparaison de la parité du mot de données lu et de la valeur du bit de parité associé effectuée à l'étape L23O, lorsqu'il n'est pas constaté de différence lors de cette comparaison. Dans ce cas aussi, il est tout d'abord sorti le mot de données à l'étape L24O. Ensuite, à l'étape L242 sont lus les autres mots de données de la mémoire 100. Dans une étape L244 sont calculées, sur base des mots de données lus à l'étape L242, les valeurs de correction partielles. A l'étape L245, la valeur de correction 140 est lue de la mémoire 100 et couplée, dans une étape suivante L246, ensemble avec les valeurs de correction partielles calculées à l'étape L244, à la valeur de correction partielle du mot de données lu à l'origine à l'étape L21O. A l'étape L27O', cette valeur de correction partielle est analysée. S'il est constaté, sur base de cette analyse, une erreur, il est sorti, à l'étape L248, un signal d'alarme indiquant une erreur sur plusieurs bits et le procédé de lecture est terminé à l'étape L25O". Par contre, si, dans le cadre de l'étape L247, il n'est pas constaté d'erreur, le procédé est immédiatement terminé par l'étape L25O'. Ici aussi, le signal d'alarme peut être évalué par un composant de sécurité comme étant un signe qu'il s'est produit une attaque et peut entraîner des contre-mesures correspondantes, telles que la remise à zéro de sécurité déjà mentionnée, la suppression de données sensibles, la destruction visée de composants individuels ou d'autres contre-mesures. Par dérogation à l'exemple de réalisation illustré à la figure 7, il peut, alternativement, par exemple sur base de tous les mots de données 120-1,
., 120-n, également être effectué un calcul des valeurs de correction partielles respectives qui sont ensuite couplées avec une valeur de correction intermédiaire qui est, à son tour, comparée à la valeur de correction 140 mémorisée dans le bloc de données 110. Sur base de cette comparaison peut alors également avoir lieu une décision de si la mémoire 100 a subi une attaque, de sorte qu'un signal d'alarme doive être sorti à l'étape L248, ou s'il ne s'est pas produit d'attaque sur la mémoire 100. Par ailleurs, les exemples de réalisation illustrés aux figures 6 et 7 peuvent également être modifiés en ce sens que le mot de données prédéterminé ne soit sorti que lorsque, dans le cadre d'une vérification quant à une attaque, celle-ci n'a pas été constatée. L'inconvénient de cette solution est toutefois la perte de l'augmentation de la vitesse de l'opération de lecture que permettent précisément les exemples de réalisation illustrés aux figures 6 et 7. Par ailleurs, il convient d'élargir ou de modifier, dans le cadre d'une application de sécurité, la valeur de correction 140 mémorisée dans le bloc de données 110 en ce que celle-ci soit rendue plus résistante à une manipulation. Outre un cryptage de la valeur de correction 140 correspondante, il est également possible de mémoriser, comme valeur de correction 140, un code de correction d'erreur nécessaire pour une possible correction ou une valeur élargie d'une valeur de fonction de données parasite dans une seule direction dérivée du bloc de données 110. Comme fonction de données parasites dans une seule direction entrent ici en ligne de compte par exemple les fonctions ou algorithmes MD2, MDS, SHA (avec sous-versions) ou R:[PEMD-160. Comme autre réalisation possible des exemples de réalisation illustrés aux figures 3, 5, 6 et 7 du procédé selon l'invention pour lire un mot de données prédéterminé, le mot de données prédéterminé peut, alternativement, après exécution de la correction à l'étape L310, être sorti sans qu'ait lieu une nouvelle vérification du mot de données mémorisé par un nouveau passage des étapes L210 à L230. De même, il est possible, après la correction à l'étape L310, de sortir le mot de données et de mémoriser seulement ensuite le bloc de données corrigé 110 dans la mémoire 100. Comme algorithme d'identification d'erreur peut également être utilisé, outre un bit de parité indiquant une parité paire ou impaire d'un mot de données dans le cadre d'un contrôle de parité, donc de la vérification si le nombre de bits réglés des mots de données est pair ou impair, tout autre algorithme qui permet une identification d'une erreur. Particulièrement avantageuse est toutefois l'utilisation d'un bit de parité en rapport avec un contrôle de parité, étant donné que celui-ci est généralement très rapide, donc qu'il peut être réalisé en un cycle d'horloge du système et que l'emplacement de mémoire nécessaire pour les valeurs d'identification d'erreur 130-1, ..., 130-n est minimal. Il peut également être utilisé différents algorithmes de correction d'erreur ou 7algorithmes de correction. Le code de Hamming présenté dans le livre de U. Tietze et Ch. Schenk ne représente qu'un exemple. En principe, la présente invention est bien sûr applicable à tous les types de mémoire qui permettent un accès de lecture et d'écriture...DTD: Outre des supports de mémoire magnétiques et optiques, tels que par exemple disques durs, bandes magnétiques, CD--R, CD-RW, DVD+R, DVD-R, DVD+RW, DVD-RW et d'autres supports de mémoire optiques entrent également en ligne de compte ici les types de mémoire non volatile (NVM = non-volatile memory), tels que par exemple tous les produits à base instantanée, ainsi que les types de mémoire RAM (RAM = random access memory = mémoire à accès sélectif). De manière particulièrement avantageuse, la présente invention peut être utilisée en rapport avec les types de mémoire qui doivent permettre un accès rapide aux données. Parmi ces types de mémoire se trouvent, en particulier, les mémoires non volatiles et les types de mémoire RAM, ainsi que les antémémoires. En principe, l'utilisation de la présente invention dans le cadre de types de mémoire ROM (ROM = read-only memory = mémoire morte) est également envisageable, bien que, dans ce cas, les procédés selon l'invention pour mémoriser des blocs de données ne puissent pas ou guère être utilisés pendant le fonctionnement, mais uniquement dans le cadre de la programmation ou production. En fonction des circonstances, le procédé selon l'invention pour lire un mot de données prédéterminé et le procédé selon l'invention pour mémoriser un bloc de données dans une mémoire peuvent être mis en oeuvre en matériel ou en logiciel. La mise en oeuvre peut avoir lieu sur un support de mémoire numérique, en particulier une disquette, un CD ou DVD avec des signaux de commande pouvant être lus électroniquement sélectionnables qui peuvent coopérer avec un système d'ordinateur programmable de sorte que soient exécutés le procédé selon l'invention pour lire 'un mot de données prédéterminé d'une mémoire ou le procédé selon l'invention pour mémoriser un bloc de données dans une mémoire. De manière générale, l'invention consiste donc également en un programme d'ordinateur avec un code de programme mémorisé sur un support lisible en machine pour l'exécution de l'un des procédés selon l'invention lorsque le programme d'ordinateur se déroule sur un ordinateur. En d'autres termes, l'invention peut donc être réalisé sous forme de programme d'ordinateur avec un code de programme pour l'exécution de l'un des procédés lorsque le programme d'ordinateur se déroule sur un ordinateur.

Claims (28)

Revendications
1. Dispositif pour lire un rnot de données prédéterminé d'une mémoire (100) dans laquelle sont mémorisés un bloc de données (110), qui est subdivisé en une pluralité de mots de données (120-1, ..., 120-n) qui comprennent le mot de données prédéterminé, par mot de données de la pluralité de mots de données (120-1, ..., 120-n), une valeur d'identification d'erreur (130-1, ..., 130-n) associée au mot de données respectif et une valeur de correction (140) associée au bloc de données (110), aux caractéristiques suivantes : un dispositif d'identification d'erreur (150) qui est réalisé de manière à examiner si le mot de données prédéterminé présente un rapport prédéterminé avec la valeur d'identification d'erreur associée, pour conclure d'une erreur lorsque le rapport prédéterminé n'est pas présent ; et un dispositif de correction d'erreur (160) qui est réalisé de manière à corriger l'erreur, si le mot de données prédéterminé ne présente pas le rapport prédéterminé avec la valeur d'identification d'erreur associée, à l'aide de la valeur de correction (140), le dispositif de correction d'erreur (160) étant réalisé de manière à utiliser la valeur de correction (140) pour la correction d'erreur indépendamment du mot de données parmi la pluralité de mots de données (120-1, ..., 120-n) qui est le mot de données prédéterminé.
2. Dispositif selon la revendication 1, dans lequel le dispositif de correction d'erreur (160) est réalisé de manière à utiliser la valeur de correction (140) comme ensemble pour la correction d'erreur indépendamment du mot de données parmi la pluralité de mots de données (120-1, ..., 120-n) qui est le mot de données prédéterminé.
3. Dispositif selon l'une des revendications précédentes, dans lequel les valeurs d'identification d'erreur (130-1, ..., 130-n) associées au mot de données (120-1, ..., 120-n) respectif ont, chacun, une longueur d'exactement un bit.(-
4. Dispositif selon l'une des revendications précédentes, dans lequel les valeurs d'identification d'erreur (130-1, ..., 130-n) associées au mot de données (120-1, ..., 120--n) respectif sont des bits de parité et dans lequel le dispositif d'identification d'erreur (150) est réalisé de sorte que le rapport prédéterminé consiste en ce que la parité du mot de données (120-1, ..., 120-n) respectif et la valeur du bit de parité (130-1, ..., 130-n) présentent un deuxième rapport prédéterminé entre eux.
5. Dispositif selon l'une des revendications précédentes, dans lequel le dispositif de correction d'erreur (160) est conçu de manière à corriger une erreur d'un seul bit quelconque dans le bloc de données (110) sur base de la valeur de correction (140).
6. Dispositif selon l'une des revendications 1 à 4, dans lequel le dispositif de correction d'erreur (160) est réalisé de manière à corriger une erreur d'un seul bit quelconque dans le mot de données prédéterminé ou dans le mot de données prédéterminé et valeur d'identification d'erreur associée.
7. Dispositif selon la revendication 6, dans lequel le dispositif de correction d'erreur (160) est réalisé de manière à calculer, au cas où le mot de données prédéterminé ne présente pas le rapport prédéterminé avec la valeur d'identification d'erreur associée, sur base de chaque mot de données de la pluralité des mots de données (120-1, ..., 120-n) qui n'est pas le mot de données prédéterminé, une valeur de correction partielle, à coupler les valeurs de correction partielles, pour obtenir une valeur de correction intermédiaire, à déterminer, sur base de la valeur de correction intermédiaire et de la valeur de correction (140), une valeur de correction partielle reconstruite pour le mot de données prédéterminé, et à corriger, sur base de la valeur de correction partielle reconstruite, le mot de données prédéterminé et la valeur d'identification d'erreur associée.
8. Dispositif selon la revendication 7, dans lequel le dispositif de correction d'erreur (160) est réalisé de manière à effectuer le calcul, lors du calcul des valeurs de correction partielles, tout d'abord sur base desmots de données (120-1, ..., 120-n) et des valeurs d'identification d'erreur (130-1, ..., 130-n) associées, pour obtenir la valeur de correction partielle.
9. Dispositif selon l'une des :revendications 7 ou 8, dans lequel le dispositif de correction d'erreur (160) est réalisé de manière à coupler, lors du couplage des valeurs de correction partielles à la valeur de correction intermédiaire et/ ou lors cte la détermination de la valeur de correction partielle reconstruite sur base de la valeur de correction intermédiaire et de la valeur de correction (140), les valeurs de correction partielles par bit avec un couplage XOR.
10. Dispositif selon l'une des revendications précédentes, dans lequel la valeur de correction (140) présente une longueur minimale qui est suffisante pour corriger une erreur d'un seul bit.
11. Dispositif selon l'une des revendications précédentes, dans lequel le dispositif d'identification d'erreur est réalisé, par ailleurs, de manière à contrôler, si le mot de données prédéterminé présente le rapport prédéterminé avec la valeur d'identification d'erreur associée, à l'aide de la valeur de correction (140), le bloc de données (110) ou le mot de données prédéterminé avec/sans la valeur d'identification d'erreur associée quant à une erreur non identifiée et, si une erreur non identifiée est présente, sortir un signal d'alarme.
12. Dispositif pour mémoriser un bloc de données (110) parmi une pluralité de mots de données (120-1, ..., 120-ri) dans une mémoire (100), aux caractéristiques suivantes : un dispositif de génération de valeur d'identification d'erreur qui est conçu de manière à générer, pour chaque mot de données parmi la pluralité de mots de données (120-1, ..., 120-n), une valeur d'identification d'erreur (130-1, ..., 130-n) qui présente un rapport prédéterminé avec le mot de données respectif ; et un dispositif de génération de valeur de correction d'erreur qui est réalisé de manière à générer, pour le bloc de données (110), une valeur de correction (140) à partir de laquelle une erreur qui entraîne une nonprésence du rapport prédéterminé entre un mot de données prédéterminé et la valeur d'identification d'erreur associée peut être corrigée indépendamment de celui parmi les mots de données qui correspond au mot de données prédéterminé.
13. Dispositif selon la revendication 12, dans lequel le dispositif de génération de valeur d'identification d'erreur est réalisé de manière à générer des valeurs d'identification d'erreur (130--1, ..., 130-n) d'une longueur de chaque fois exactement un bit.
14. Dispositif selon la revendication 12 ou 13, dans lequel le dispositif de génération de valeur d'identification d'erreur est réalisé de manière à générer des bits de parité comme valeur d'identification d'erreur (130-1, ..., 130-n), le rapport prédéterminé consistant en ce que la parité du mot de données respectif et de la valeur du bit de parité associée présente un deuxième rapport prédéterminé.
15. Dispositif selon l'une des revendications 12 à 14, dans lequel le dispositif de génération de valeur d'identification d'erreur est réalisé de manière à générer une valeur de correction (140) qui permet une correction d'une erreur d'un seul bit quelconque dans le bloc de données (110).
16. Dispositif selon l'une des revendications 12 à 14, dans lequel le dispositif de génération de valeur d'identification d'erreur est conçu de manière à générer une valeur de correction (140) qui permet une correction d'une erreur d'un seul bit quelconque dans le mot de données prédéterminé ou dans le mot de données prédéterminé et la valeur d'identification d'erreur associée.
17. Dispositif selon l'une des revendications 12 à 16, dans lequel le dispositif de génération de valeur d'identification d'erreur est réalisé de manière à générer une valeur de correction (140) d'une longueur minimale qui est suffisante pour corriger un erreur d'un seul bit.
18. Dispositif selon l'une des revendications 12 à 17, dans lequel le dispositif de génération de valeur d'identification d'erreur est réalisé de manière à calculer, sur base de chaque mot de données parmi lapluralité de mots de données (120-1, ..., 120-n), une valeur de correction partielle et à coupler les valeurs de correction partielles, pour obtenir la valeur de correction (140).
19. Dispositif selon la reven.dïcation 18, dans lequel le dispositif de génération de valeur d'identification d'erreur est réalisé de manière à effectuer le calcul, lors du calcul de la valeur de correction partielle, tout d'abord sur base du mot de données et de la valeur d'identification d'erreur associée, pour obtenir la valeur de correction partielle.
20. Dispositif selon l'une des revendications 18 ou 19, dans lequel le dispositif de génération de valeur d'identification d'erreur est réalisé de manière à coupler, lors du couplage des valeurs de correction partielles, celles-ci entre elles par un couplage XOR.
21. Dispositif selon l'une des revendications 12 à 20, dans lequel le dispositif de génération de valeur d'identification d'erreur est réalisé de manière à générer une valeur de correction (140) d'une longueur minimale qui suffit pour corriger un erreur d'un seul bit.
22. Procédé pour lire un mot de données prédéterminé d'une mémoire (100) dans laquelle sont mémorisés un bloc de données (110), qui est subdivisé en une pluralité die mots de données (120-1, ..., 120-n) qui comprennent le mot de données prédéterminé, par mot de données de la pluralité de mots de données (120-1, ..., 120-n), une valeur d'identification d'erreur (130-1, ..., 130-n) associée au mot de données respectif et une valeur de correction (140) associée au bloc de données (110), aux étapes suivantes consistant à : vérifier (L230) si le mot de données prédéterminé présente un rapport prédéterminé avec la valeur d'identification d'erreur associée, pour conclure d'une erreur lorsque le rapport prédéterminé n'est pas présent ; et corriger l'erreur (L310), si le mot de données prédéterminé ne présente pas le rapport prédéterminé avec la valeur d'identification d'erreur associée, à l'aide de la valeur. de correction (140),la valeur de correction (140) étant utilisée, à l'étape de correction (L310), pour la correction d'erreur indépendamment du mot de données parmi la pluralité de mots de données (120-1, ..., 120-n) qui est le mot de données prédéterminé.
23. Procédé pour mémoriser un bloc de données (110) composé d'une pluralité de mots de données (120-1, ..., 120-n) dans une mémoire (100), aux étapes suivantes consistant à : générer (S220) une valeur d'identification d'erreur (130-1, ..., 130-n) pour chaque mot de données de la pluralité de mots de données (120-1, ..., 120-n) qui présente un rapport prédéterminé avec le mot de données respectif ; et générer (S240 ; S240') une valeur de correction (140) à partir de laquelle peut être corrigée une erreur• qui entraîne une non-présence du rapport prédéterminé entre un mot de données prédéterminé et la valeur d'identification d'erreur associée, indépendamment de celui parmi les mots de données de la pluralité de mots de données (120-1, ..., 120-n) qui correspond au mot de données prédéterminé.
24. Dispositif pour lire un rnot de données prédéterminé d'une mémoire (100) dans laquelle sont mémorisés un bloc de données (110), qui est subdivisé en une pluralité de mots de données (120-1, ..., 120-n) qui comprennent le mot de données prédéterminé, par mot de données de pluralité de mots de données (120-1, ..., 120-n), une valeur d'identification d'erreur (130-1, ..., 130-n) associée au mot de données respectif, qui ne permet toutefois pas une correction du mot de données respectif, et une valeur de correction (140) associée au bloc de données (110), aux caractéristiques suivantes : un dispositif d'identification d'erreur (150) qui est réalisé de manière à vérifier si le mot de données prédéterminé présente un rapport prédéterminé avec la valeur d'identification d'erreur associée, pour conclure d'une erreur lorsque le rapport prédéterminé n'est pas présent ; etun dispositif de correction d'erreur (160) qui est réalisé de manière à corriger l'erreur, si le mot de données prédéterminé ne présente pas le rapport prédéterminé avec la valeur d'identification d'erreur associée, à l'aide de la valeur de correction (140), le dispositif de correction d'erreur (160) étant réalisé de manière à utiliser la valeur de correction (140) indépendamment du mot de données de la pluralité de mots de données (120-1, ..., 120-n) qui est le mot de données prédéterminé.
25. Dispositif pour mémoriser un bloc de données (110) composé d'une pluralité de mots de données (120-1, ..., 120-n) dans une mémoire (100), aux caractéristiques suivantes : un dispositif de génération de valeur d'identification d'erreur destiné à générer, pour chaque mot de données de la pluralité de mots de données (120-1, ..., 120-n), une valeur d'identification d'erreur (130-1, ..., 130-n) qui présente un rapport prédéterminé avec le mot de données respectif, qui ne permet toutefois pas de correction du mot de données respectif ; et un dispositif de génération de valeur de correction d'erreur qui est réalisé de manière à générer, pour le bloc de données (110), une valeur de correction (140) à partir de laquelle peut être corrigée une erreur qui entraîne la non-présence du rapport prédéterminé entre un mot de données prédéterminé et la valeur d'identification d'erreur associée, indépendamment de celui des mots de données qui correspond au mot de données prédéterminé.
26. Procédé pour lire un mot de données prédéterminé d'une mémoire (100) dans laquelle sont mémorisés un bloc de données (110), qui est subdivisé en une pluralité de mots de données (120-1, ..., 120-n) qui comprennent le mot de données prédéterminé, par mot de données de la pluralité de mots de données (120-1, ..., 120-n), une valeur d'identification d'erreur (130-1, ..., 130-n) associée au mot de données respectif, qui ne permet toutefois pas de correction du mot de donnéesrespectif, et une valeur de correction (140) associée au bloc de données (110), aux étapes suivantes consistant à : vérifier (L23O) si le mot de données prédéterminé présente un rapport prédéterminé avec la valeur d'identification d'erreur associée, pour conclure d'une erreur si le rapport prédéterminé n'est pas présent ; et corriger l'erreur (L31O) à l'aide de la valeur de correction (140) si le mot de données prédéterminé ne présente pas le rapport prédéterminé avec la valeur d'identification d'erreur associée, la valeur de correction (140) étant utilisée, à l'étape de correction (L31O), pour la correction d'erreur indépendamment du mot de données parmi la pluralité de mots de données (120-1, ..., 120-n) qui est le mot de données prédéterminé.
27. Procédé pour mémoriser un bloc de données (110) composé d'une pluralité de mots de données (120-1, ..., 120-n) dans une mémoire (100), aux étapes suivantes consistant à : générer (S220) une valeur d'identification d'erreur (130-1, ..., 130-n) pour chaque mot de données de la pluralité de mots de données (120-1, ..., 120-n) qui présente un rapport prédéterminé avec le mot de données respectif, mais qui ne permet toutefois pas de correction du mot de données respectif ; et générer (S24O ; S24O') une valeur de correction (140) à partir de laquelle peut être corrigée une erreur qui entraîne la non-présence du rapport prédéterminé entre un mot de données prédéterminé et la valeur d'identification d'erreur associée, indépendamment de celui des mots de données de la pluralité de mots de données (120-1, ..., 120-n) qui. correspond au mot de données prédéterminé.
28. Programme d'ordinateur avec un code de programme pour exécuter le procédé pour lire un mot de données prédéterminé d'une mémoire (100) selon la revendication 22 ou 26 ou pour exécuter le procédé pour mémoriser un bloc de données (110) selon larevendication 23 ou 27 lorsque le programme d'ordinateur se déroule sur un ordinateur.
FR0700400A 2006-01-23 2007-01-22 Dispositif et procede pour lire un mot de donnees et dispositif et procede pour memoriser un bloc de donnees Expired - Fee Related FR2911414B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006003146.6A DE102006003146B4 (de) 2006-01-23 2006-01-23 Vorrichtung und Verfahren zum Auslesen eines Datenwortes und Vorrichtung und Verfahren zum Speichern eines Datenblocks

Publications (2)

Publication Number Publication Date
FR2911414A1 true FR2911414A1 (fr) 2008-07-18
FR2911414B1 FR2911414B1 (fr) 2013-03-29

Family

ID=38268071

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0700400A Expired - Fee Related FR2911414B1 (fr) 2006-01-23 2007-01-22 Dispositif et procede pour lire un mot de donnees et dispositif et procede pour memoriser un bloc de donnees

Country Status (4)

Country Link
US (1) US7937639B2 (fr)
KR (1) KR100870196B1 (fr)
DE (1) DE102006003146B4 (fr)
FR (1) FR2911414B1 (fr)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090014828A (ko) * 2007-08-07 2009-02-11 삼성전자주식회사 에러 정정 코드를 암호화하는 플래시 메모리 시스템 및플래시 메모리 시스템의 암호화 방법
US8832518B2 (en) * 2008-02-21 2014-09-09 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
US8458562B1 (en) * 2008-12-30 2013-06-04 Micron Technology, Inc. Secondary memory element for non-volatile memory
US8504893B1 (en) * 2010-09-30 2013-08-06 Micron Technology, Inc. Error detection or correction of a portion of a codeword in a memory device
US8533557B2 (en) 2011-01-28 2013-09-10 Infineon Technologies Ag Device and method for error correction and protection against data corruption
DE102012020442B4 (de) * 2012-10-18 2020-03-05 Robert Bosch Gmbh Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen
US20140215174A1 (en) 2013-01-25 2014-07-31 Infineon Technologies Ag Accessing Memory with Security Functionality
US10594491B2 (en) * 2015-12-24 2020-03-17 Intel Corporation Cryptographic system memory management
US10930650B2 (en) * 2018-06-28 2021-02-23 Stmicroelectronics International N.V. Latch-up immunization techniques for integrated circuits
US11342044B2 (en) 2019-05-28 2022-05-24 Nuvoton Technology Corporation System and method for prioritization of bit error correction attempts
US11475170B2 (en) 2019-05-28 2022-10-18 Nuvoton Technology Corporation System and method for correction of memory errors
US11694761B2 (en) * 2021-09-17 2023-07-04 Nxp B.V. Method to increase the usable word width of a memory providing an error correction scheme

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236247A (en) * 1979-01-15 1980-11-25 Organisation Europeene De Recherches Spatiales Apparatus for correcting multiple errors in data words read from a memory
US4319357A (en) * 1979-12-14 1982-03-09 International Business Machines Corp. Double error correction using single error correcting code
US4561095A (en) * 1982-07-19 1985-12-24 Fairchild Camera & Instrument Corporation High-speed error correcting random access memory system
FR2659460B1 (fr) * 1990-03-08 1992-05-22 Bull Sa Sous-systeme peripherique de memoire de masse.
US5164944A (en) 1990-06-08 1992-11-17 Unisys Corporation Method and apparatus for effecting multiple error correction in a computer memory
KR970071492A (ko) * 1996-04-15 1997-11-07 김광호 씨디-롬 드라이브 테스트 방법
JP3527873B2 (ja) * 1999-09-03 2004-05-17 松下電器産業株式会社 誤り訂正装置
WO2001039190A1 (fr) * 1999-11-25 2001-05-31 Fujitsu Limited Procede de lecture d'un support de donnees, dispositif de stockage de donnees, procede de reproduction de donnees, systeme de reproduction de donnees et support de donnees utilise a cet effet
US7231585B2 (en) * 2002-12-11 2007-06-12 Nvidia Corporation Error correction for flash memory

Also Published As

Publication number Publication date
FR2911414B1 (fr) 2013-03-29
KR20070077466A (ko) 2007-07-26
DE102006003146A1 (de) 2007-08-02
DE102006003146B4 (de) 2016-05-12
US7937639B2 (en) 2011-05-03
US20070174753A1 (en) 2007-07-26
KR100870196B1 (ko) 2008-11-24

Similar Documents

Publication Publication Date Title
FR2911414A1 (fr) Dispositif et procede pour lire un mot de donnees et dispositif et procede pour memoriser un bloc de donnees
EP2264596B1 (fr) Procédé de détection d'une attaque par injection de faute d'un dispositif de mémoire, et dispositif de mémoire correspondant.
EP0821493B1 (fr) Système de correction d'erreurs dans des trames de données ayant des codes de parité horizontaux et verticaux
FR2858101A1 (fr) Systeme de memoire flash
FR2481487A1 (fr) Systeme de traitement de l'information utilisant des techniques de regeneration et de detection et correction d'erreurs
FR2938358A1 (fr) Interface de memoire securisee
EP1748374A1 (fr) Procédé et dispositif de protection d'une mémoire contre les attaques par injection d'erreur
EP1724700A1 (fr) Contrôle d'intégrité d'une mémoire externe à un processeur
FR2599916A1 (fr) Procede et dispositif pour le decodage d'un bloc de symboles de code qui est reparti de deux manieres sur des mots de code qui sont chacun proteges par un code a distance maximum de separation
FR2981472A1 (fr) Dispositif et procede de production d'une sequence de bits
FR2831971A1 (fr) Procede de memorisation de donnees avec correction d'erreur
FR3038752A1 (fr)
FR3045183A1 (fr) Procede de prediction d'une donnee a precharger dans une memoire cache
EP1983436B1 (fr) Contrôle d'intégrité d'une mémoire externe à un processeur
FR2713845A1 (fr) Procédé d'entrelacement et de désentrelacement en bloc et dispositif de mise en Óoeuvre.
FR2890202A1 (fr) Demonstration d'une modification des donnees d'un ensemble de donnees
EP1880387B1 (fr) Dispositif de protection d'une memoire contre les attaques par injection d'erreur
FR3044817A1 (fr) Procede de gestion d'une ligne de bits defectueuse du plan memoire d'une memoire non volatile et dispositif de memoire correspondant
EP3667503B1 (fr) Procédé de gestion de l'espace mémoire d'un dispositif de mémoire et système correspondant
FR2898446A1 (fr) Procede, module et appareil de reception de trames de paquets de donnees
FR2863794A1 (fr) Procedes et dispositifs de localisation d'erreurs pour les codes de geometrie algebrique
FR2875352A1 (fr) Procede de detection et de correction d'erreurs pour une memoire et circuit integre correspondant
EP1387519A2 (fr) Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
EP2786497B1 (fr) Procede de maximisation de la capacité de correction d'un code correcteur d'erreurs mettant en oeuvre des syndromes supplémentaires
EP3147811B1 (fr) Stockage et lecture d'un code d'authentification de message dans une mémoire externe

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 14

ST Notification of lapse

Effective date: 20210905