FR3022675A1 - MEMORY PROTECTION METHOD - Google Patents

MEMORY PROTECTION METHOD Download PDF

Info

Publication number
FR3022675A1
FR3022675A1 FR1455603A FR1455603A FR3022675A1 FR 3022675 A1 FR3022675 A1 FR 3022675A1 FR 1455603 A FR1455603 A FR 1455603A FR 1455603 A FR1455603 A FR 1455603A FR 3022675 A1 FR3022675 A1 FR 3022675A1
Authority
FR
France
Prior art keywords
memory
data
read
stored
memory device
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
FR1455603A
Other languages
French (fr)
Other versions
FR3022675B1 (en
Inventor
Celine Liu
Nicolas Charrier
Nicolas Marti
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.)
Safran Electronics and Defense SAS
Original Assignee
Sagem Defense Securite SA
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 Sagem Defense Securite SA filed Critical Sagem Defense Securite SA
Priority to FR1455603A priority Critical patent/FR3022675B1/en
Publication of FR3022675A1 publication Critical patent/FR3022675A1/en
Application granted granted Critical
Publication of FR3022675B1 publication Critical patent/FR3022675B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques
    • G11C2029/4002Comparison of products, i.e. test results of chips or with golden chip
    • 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

Abstract

La présente invention concerne un procédé de lecture d'une donnée, dite donnée à lire, stockée dans au moins un dispositif mémoire 1 sous la forme d'au moins une donnée, dite donnée mémorisée, ledit au moins un dispositif mémoire 1 étant connecté à au moins un contrôleur de mémoire 2 gérant des commandes d'accès en lecture et écriture audit au moins un dispositif mémoire 1, ledit procédé comprenant les étapes suivantes mises en œuvre par un module de protection de mémoire 3, ledit module de protection de mémoire 3 étant séparé fonctionnellement des dispositifs mémoires 1 et des contrôleurs de mémoire 2 et configuré pour être connecté audit au moins un contrôleur de mémoire 2 : a) obtention de ladite au moins une donnée mémorisée stockée dans ledit au moins un dispositif mémoire 1 et transmise par ledit au moins un contrôleur de mémoire 2, b) détection et/ou correction d'erreurs à partir de ladite au moins une donnée mémorisée obtenue, c) détermination d'une donnée corrigée et/ou d'un message d'alerte si ladite au moins une donnée mémorisée présente des erreurs.The present invention relates to a method for reading a piece of data, said data to be read, stored in at least one memory device 1 in the form of at least one piece of data, said stored data item, said at least one memory device 1 being connected to at least one memory controller 2 managing read and write access commands to said at least one memory device 1, said method comprising the following steps implemented by a memory protection module 3, said memory protection module 3 being functionally separated from memory devices 1 and memory controllers 2 and configured to be connected to said at least one memory controller 2: a) obtaining said at least one stored data stored in said at least one memory device 1 and transmitted by said memory device at least one memory controller 2, b) detecting and / or correcting errors from said at least one stored data item obtained, c) determining a corrected data and / or an alert message if said at least one stored data has errors.

Description

3022675 Procédé de protection de mémoire DOMAINE TECHNIQUE GENERAL L'invention concerne le domaine des mémoires informatiques et plus particulièrement un module de protection de mémoire configuré pour détecter et/ou corriger des erreurs parmi des données stockées dans de telles mémoires. lo ETAT DE LA TECHNIQUE Les systèmes informatiques comportent tous différentes mémoires, volatiles ou non, de différents types, tels que les mémoires SDRAM (« Synchronous Dynamic Random Access Memory », « Mémoire 15 Dynamique Synchrone à Accès Aléatoire »), DDR SDRAM (« Double Data Rate Synchronous Dynamic Random Access Memory », « SDRAM à débit de données double »), Flash ... utilisées pour stocker les données nécessaires au fonctionnement du système. En fonctionnement normal, de telles données sont uniquement modifiées de manière volontaire par 20 des accès en écriture commandés par un module maitre du système, tel qu'un processeur. Il peut néanmoins arriver que certaines données en mémoire soient modifiées de manière aléatoire, indépendamment du fonctionnement du système informatique. Un tel évènement peut se produire en cas de défaillance matérielle d'un module mémoire stockant 25 des données ou bien en cas d'exposition d'un module mémoire à un rayonnement ionisant tel qu'un rayon cosmique susceptible d'interagir avec une cellule mémoire du module mémoire et de modifier la valeur de la donnée stockée dans cette cellule. De telles modifications peuvent notamment se produire pour des systèmes informatiques fonctionnant à 30 haute altitude tels que des systèmes aéronautiques ou spatiaux.TECHNICAL FIELD The invention relates to the field of computer memories and more particularly to a memory protection module configured to detect and / or correct errors among data stored in such memories. STATE OF THE ART Computer systems all have different memories, volatile or otherwise, of different types, such as SDRAM memories ("Synchronous Dynamic Random Access Memory", "Synchronous Dynamic Memory 15 Random Access"), DDR SDRAM (" Dual Data Rate Synchronous Dynamic Random Access Memory "," Dual Data Rate SDRAM "), Flash ... used to store the data needed to run the system. In normal operation, such data are only intentionally modified by write accesses controlled by a master module of the system, such as a processor. However, it may happen that some data in memory is changed randomly, regardless of the operation of the computer system. Such an event can occur in the event of hardware failure of a memory module storing data or in the event of exposure of a memory module to ionizing radiation such as a cosmic ray capable of interacting with a memory cell memory module and modify the value of the data stored in this cell. Such modifications may in particular occur for computer systems operating at high altitude such as aeronautical or space systems.

2 3022675 Dans le domaine des systèmes informatiques grand public, de telles modifications de l'état de la mémoire sont en général ignorées et peuvent éventuellement conduire à une erreur de fonctionnement voir un plantage du système, considéré toutefois comme acceptable du fait de la 5 nature non critique du système. Au contraire, dans des domaines tels que l'aéronautique dans lesquels les systèmes informatiques assurent des fonctions critiques pouvant avoir des conséquences graves en cas de dysfonctionnement, il est nécessaire de prendre en compte de tels évènements afin d'éviter toute altération du fonctionnement du système. Pour cela, de tels systèmes embarquent des mécanismes de protection de la mémoire capables de détecter et de corriger au moins une partie de ces erreurs mémoire. Les plus simples de ces mécanismes consistent en l'utilisation d'un bit de parité ou en un calcul de somme de contrôle. Certains mécanismes plus élaborés utilisent des codes correcteurs d'erreurs tels que les codes de Reed-Solomon. Les mémoires protégées par de tels mécanismes sont appelées mémoires ECC (« Error Correction Coding »). Dans les systèmes existants, de tels mécanismes de protection de la mémoire sont implémentés dans le contrôleur d'accès à la mémoire qui gère les accès en lecture et en écriture à la mémoire. Une telle conception intégrée permet de minimiser l'espace physique occupé par les circuits mettant en oeuvre les mécanismes de protection de la mémoire et est généralement économique. Néanmoins une telle conception a le défaut de lier de manière définitive les fonctions de contrôleur de mémoire et de protection de la mémoire. Il est ainsi impossible dans de tels dispositifs de choisir un mécanisme de protection de mémoire indépendamment de la mémoire utilisée et de la technologie utilisée par le contrôleur de mémoire. De même il est impossible de changer un module mémoire et son contrôleur sans remplacer également les circuits mettant en oeuvre les mécanismes de protection de la mémoire. De plus, dans de tels dispositifs, les 3 3022675 mécanismes de protection de la mémoire n'ont accès qu'aux données accessibles par le contrôleur de mémoire et ne peuvent donc pas tirer parti de données stockées ailleurs que dans les modules mémoires gérés par le contrôleur.In the field of consumer computer systems, such changes in the state of the memory are generally ignored and may possibly lead to a malfunction or even a system crash, which is considered acceptable because of the nature of the memory. non-critical of the system. On the contrary, in areas such as aeronautics in which computer systems provide critical functions that can have serious consequences in the event of a malfunction, it is necessary to take into account such events in order to avoid any alteration of the operation of the system. . For this, such systems embody memory protection mechanisms capable of detecting and correcting at least some of these memory errors. The simplest of these mechanisms consist of using a parity bit or a checksum calculation. Some more sophisticated mechanisms use error-correcting codes such as Reed-Solomon codes. The memories protected by such mechanisms are called ECC memories ("Error Correction Coding"). In existing systems, such memory protection mechanisms are implemented in the memory access controller that manages the read and write accesses to the memory. Such an integrated design makes it possible to minimize the physical space occupied by the circuits implementing the memory protection mechanisms and is generally economical. Nevertheless, such a design has the drawback of definitively linking the functions of memory controller and memory protection. It is thus impossible in such devices to choose a memory protection mechanism regardless of the memory used and the technology used by the memory controller. Similarly, it is impossible to change a memory module and its controller without also replacing the circuits implementing the memory protection mechanisms. In addition, in such devices, the memory protection mechanisms only have access to the data accessible by the memory controller and therefore can not take advantage of data stored elsewhere than in memory modules managed by the memory controller. controller.

5 Il existe donc un besoin d'un système permettant de mettre en oeuvre séparément des fonctions de protection des données stockées dans la mémoire du système et de contrôleur mémoire utilisé pour gérer les accès à cette mémoire. lo PRESENTATION DE L'INVENTION La présente invention se rapporte ainsi selon un premier aspect à un procédé de lecture d'une donnée, dite donnée à lire, stockée dans au moins un dispositif mémoire sous la forme d'au moins une donnée, dite 15 donnée mémorisée, ledit au moins un dispositif mémoire étant connecté à au moins un contrôleur de mémoire gérant des commandes d'accès en lecture et écriture audit au moins un dispositif mémoire, ledit procédé comprenant les étapes suivantes mises en oeuvre par un zo module de protection de mémoire, ledit module de protection de mémoire étant séparé fonctionnellement des dispositifs mémoires et des contrôleurs de mémoire et configuré pour être connecté audit au moins un contrôleur de mémoire : a) obtention de ladite au moins une donnée mémorisée stockée dans ledit 25 au moins un dispositif mémoire et transmise par ledit au moins un contrôleur de mémoire, b) détection et/ou correction d'erreurs à partir de ladite au moins une donnée mémorisée obtenue, c) détermination d'une donnée corrigée et/ou d'un message d'alerte si 30 ladite au moins une donnée mémorisée présente des erreurs.There is therefore a need for a system for separately implementing data protection functions stored in the system memory and memory controller used to manage accesses to that memory. The present invention thus relates, according to a first aspect, to a method for reading a piece of data, said data item to be read, stored in at least one memory device in the form of at least one piece of data, called a piece of data. stored data, said at least one memory device being connected to at least one memory controller managing read and write access commands to said at least one memory device, said method comprising the following steps implemented by a protection module zo memory module, said memory protection module being functionally separated from the memory devices and memory controllers and configured to be connected to said at least one memory controller: a) obtaining said at least one stored data stored in said at least one memory device and transmitted by said at least one memory controller, b) detection and / or correction of errors to party r of said at least one stored data obtained, c) determination of corrected data and / or of an alert message if said at least one stored data has errors.

4 3022675 Un tel procédé permet de détecter et corriger les erreurs affectant les données stockées dans l'au moins un dispositif mémoire indépendamment de leur lecture par un contrôleur de mémoire, la détection et la correction d'erreur étant réalisée en dehors du dispositif 5 mémoire et du contrôleur de mémoire. La détection et la correction de ces erreurs est ainsi indépendante du protocole et du matériel utilisés pour réaliser la lecture des données. Selon une caractéristique avantageuse et non limitative, le module de protection de mémoire peut être connecté à un module maître 10 susceptible de commander des accès en lectures et écritures audit au moins un dispositif mémoire et l'étape a) d'obtention de données du procédé selon le premier aspect peut comprendre préalablement la réception a0) d'une commande d'accès en lecture à ladite donnée à lire émise par le module maître.Such a method makes it possible to detect and correct the errors affecting the data stored in the at least one memory device independently of their reading by a memory controller, the detection and correction of error being carried out outside the memory device. and the memory controller. The detection and correction of these errors is thus independent of the protocol and the hardware used to perform the reading of the data. According to an advantageous and nonlimiting characteristic, the memory protection module can be connected to a master module 10 capable of controlling read and write accesses to said at least one memory device and step a) of obtaining process data according to the first aspect may comprise prior receipt a0) a read access command to said read data issued by the master module.

15 Ceci permet de déclencher la détection et la correction des erreurs à la volée au cours du processus de lecture commandé par le module maître et de lui fournir une donnée corrigée même si la donnée mémorisée a été altérée en mémoire. L'étape a) d'obtention de données du procédé selon le premier 20 aspect peut également comprendre préalablement la transmission al) aux contrôleurs de mémoire d'une commande d'accès en lecture à la donnée à lire. Ceci permet de vérifier que les données n'ont pas été altérées et éventuellement de les corriger en cas de détection d'une erreur, afin 25 d'éviter un mauvais fonctionnement du système résultant d'une donnée erronée. Dans un mode de mise en oeuvre du procédé selon le premier aspect, l'étape b) de détection et/ou correction d'erreurs peut mettre en oeuvre des codes correcteurs d'erreurs tels que des codes de Hamming, 30 des codes de Reed Solomon, des sommes de contrôle et des codes de répétition.This makes it possible to trigger the detection and correction of errors on the fly during the reading process controlled by the master module and to provide corrected data even if the stored data has been corrupted in memory. The step a) of obtaining data of the method according to the first aspect may also comprise previously the transmission al) to the memory controllers of a read access command to the data to be read. This makes it possible to verify that the data have not been altered and possibly to correct them in case of detection of an error, in order to avoid a malfunction of the system resulting from an erroneous data item. In one embodiment of the method according to the first aspect, the step b) of detecting and / or correcting errors may implement error correcting codes such as Hamming codes, Reed codes Solomon, checksums and repetition codes.

5 3022675 De tels codes permettent de détecter et de corriger un nombre maximal d'erreurs fonction de la capacité de détection et de correction de chaque code. Leur implémentation dans le module de protection de mémoire en dehors de tout contrôleur de mémoire permet de réaliser cette 5 implémentation indépendamment de la technologie et des protocoles employés au niveau des contrôleurs de mémoire. Dans un autre mode de mise en oeuvre du procédé selon le premier aspect, ladite donnée à lire est stockée de manière redondante dans plusieurs dispositifs mémoires distincts, dits dispositifs mémoires 10 redondants et, - l'étape a) d'obtention de données comprend l'obtention des données mémorisées stockées dans chacun des dispositifs mémoires redondants, - l'étape b) de détection et/ou de correction d'erreurs comprend la comparaison des données mémorisées obtenues et la mise en oeuvre 15 d'un vote majoritaire. Ceci permet de détecter et de corriger des erreurs de manière simple. De plus, le nombre d'erreurs détectables et corrigeables est plus grand que lors de l'utilisation classique d'un code correcteur d'erreur, tant que les erreurs en question ne portent pas sur un même bit d'une donnée 20 écrite en mémoire dans la majorité des dispositifs mémoires. Par ailleurs, l'étape b) de détection d'erreurs peut comprendre la commande d'un nouvel accès en lecture à ladite donnée à lire en cas de détection d'une erreur. Ceci permet d'obtenir la donnée à lire non erronée si l'altération de 25 la donnée est intervenue en dehors du dispositif mémoire. Selon une caractéristique avantageuse et non limitative : l'étape b) de détection d'erreurs peut comprendre la détection d'au moins une erreur lors d'un accès en lecture à des données stockées à une adresse mémoire d'un dispositif mémoire, dite adresse corrompue, 30 et l'étape c) de détermination d'un message d'alerte peut comprendre la transmission d'un message d'alerte audit module maître de sorte que le 6 3022675 module maître commande des accès en écriture ultérieurs à des adresses mémoires du dispositif mémoire distinctes de l'adresse mémoire corrompue. Ceci permet d'éviter que le système ne continue à écrire des 5 données à une adresse défaillante à laquelle les données écrites sont régulièrement altérées. La présente invention se rapporte selon un deuxième aspect à un produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé de lecture selon le premier aspect, lorsque ce 10 programme est exécuté par un processeur. La présente invention se rapporte selon un troisième aspect à un module de protection de mémoire configuré pour détecter et/ou corriger des erreurs parmi des données stockées dans au moins un dispositif mémoire, 15 ledit au moins un dispositif mémoire étant connecté à au moins un contrôleur de mémoire gérant des commandes d'accès en lecture et écriture audit au moins un dispositif mémoire, caractérisé en ce qu'il est séparé fonctionnellement des dispositifs mémoires et des contrôleurs de mémoire et est configuré pour être 20 connecté d'une part à un module maître susceptible de commander des accès en lectures et écritures audit au moins un dispositif mémoire et d'autre part audit au moins un contrôleur de mémoire, et en ce qu'il comprend des moyens pour mettre en oeuvre les étapes du procédé de lecture selon le premier aspect.Such codes make it possible to detect and correct a maximum number of errors depending on the detection and correction capacity of each code. Their implementation in the memory protection module outside of any memory controller makes this implementation possible regardless of the technology and protocols employed at the memory controllers. In another embodiment of the method according to the first aspect, said data item to be read is redundantly stored in a plurality of separate memory devices, so-called redundant memory devices, and the data acquisition step a) comprises: obtaining stored data stored in each of the redundant memory devices, - the step b) of detecting and / or correcting errors comprises comparing the stored data obtained and the implementation of a majority vote. This makes it possible to detect and correct errors in a simple way. In addition, the number of detectable and correctable errors is greater than in the conventional use of an error correction code, as long as the errors in question do not relate to the same bit of a data item written in error. memory in the majority of memory devices. Furthermore, the error detection step b) may comprise the control of a new read access to said data to be read in the event of detection of an error. This makes it possible to obtain the data to be read without error if the alteration of the data has occurred outside the memory device. According to an advantageous and nonlimiting characteristic: the error detection step b) can comprise the detection of at least one error during a read access to data stored at a memory address of a memory device, called address, and step c) of determining an alert message may include transmitting an alert message to said master module so that the master module controls subsequent write accesses to addresses memory device memories separate from the corrupted memory address. This prevents the system from continuing to write data to a faulty address at which the written data is regularly corrupted. According to a second aspect, the present invention relates to a computer program product comprising code instructions for executing a read method according to the first aspect, when this program is executed by a processor. The present invention relates in a third aspect to a memory protection module configured to detect and / or correct errors among data stored in at least one memory device, said at least one memory device being connected to at least one controller memory device that manages read and write access commands to said at least one memory device, characterized in that it is functionally separate from the memory devices and the memory controllers and is configured to be connected on the one hand to a module master capable of controlling read / write access to said at least one memory device and secondly to said at least one memory controller, and in that it comprises means for implementing the steps of the reading method according to the first aspect.

25 La présente invention se rapporte selon un quatrième aspect à un système mémoire comprenant : -au moins un dispositif mémoire configuré pour stocker des données, -au moins un contrôleur de mémoire gérant des commandes d'accès en lecture et écriture audit au moins un dispositif mémoire, 30 -au moins un module de protection de mémoire selon le troisième aspect.According to a fourth aspect, the present invention relates to a memory system comprising: at least one memory device configured to store data, at least one memory controller managing read and write access commands to said at least one device memory, at least one memory protection module according to the third aspect.

7 3022675 Dans un mode de réalisation le système selon le quatrième aspect peut comprendre plusieurs dispositifs mémoires redondants configurés pour stocker une même donnée à lire et un unique contrôleur de mémoire gérant des commandes d'accès en lecture à la donnée stockée dans 5 chacun des dispositifs mémoires redondants, ledit contrôleur de mémoire étant configuré pour transmettre la donnée stockée dans chacun des dispositifs redondants au module de protection de mémoire. Une telle architecture permet de simplifier le système, notamment en diminuant le nombre de puces et de bus de communication entre le 10 module de protection de mémoire et le contrôleur de mémoire. De plus, l'implémentation du module de protection de mémoire dans un tel système est plus facilement adaptable à une augmentation du nombre de dispositifs mémoires puisque le module de protection de mémoire n'est toujours en communication qu'avec un contrôleur de mémoire.In one embodiment, the system according to the fourth aspect may comprise a plurality of redundant memory devices configured to store the same data to be read and a single memory controller that manages read access commands to the data stored in each of the devices. redundant memories, said memory controller being configured to transmit the data stored in each of the redundant devices to the memory protection module. Such an architecture makes it possible to simplify the system, in particular by reducing the number of chips and communication buses between the memory protection module and the memory controller. In addition, the implementation of the memory protection module in such a system is more easily adaptable to an increase in the number of memory devices since the memory protection module is still in communication with a memory controller.

15 Dans un autre mode de réalisation le système selon le quatrième aspect peut comprendre plusieurs dispositifs mémoires redondants configurés pour stocker une même donnée à lire et plusieurs contrôleurs de mémoire, chaque contrôleur de mémoire étant associé à un dispositif mémoire redondant, gérant des commandes d'accès en lecture à la 20 donnée stockée dans le dispositif mémoire redondant associé et étant configuré pour transmettre au module de protection de mémoire la donnée stockée dans le dispositif mémoire redondant associé. Ceci permet de simplifier la logique de fonctionnement de chaque contrôleur qui ne gère qu'un seul dispositif mémoire. De plus, un tel 25 système est moins sensible à une éventuelle panne d'un contrôleur de mémoire. En outre, de tels produit programme d'ordinateur, module de protection de mémoire et système mémoire présentent les mêmes avantages que ceux évoqués pour le procédé selon le premier aspect.In another embodiment, the system according to the fourth aspect may comprise a plurality of redundant memory devices configured to store the same data to be read and a plurality of memory controllers, each memory controller being associated with a redundant memory device, managing commands of memory. read access to the data stored in the associated redundant memory device and being configured to transmit the data stored in the associated redundant memory device to the memory protection module. This simplifies the operating logic of each controller that only manages a single memory device. In addition, such a system is less susceptible to a possible failure of a memory controller. In addition, such computer program products, memory protection module and memory system have the same advantages as those mentioned for the method according to the first aspect.

30 8 3022675 PRESENTATION DES FIGURES D'autres caractéristiques et avantages apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation. Cette description 5 sera donnée en référence aux dessins annexés dans lesquels : - la figure 1 illustre schématiquement des moyens matériels dans un système mémoire selon un premier mode de réalisation de l'invention; - la figure 2 illustre schématiquement un module de protection de 10 mémoire selon un mode de réalisation de l'invention; - la figure 3 illustre schématiquement des moyens matériels dans un système mémoire selon un deuxième mode de réalisation de l'invention; - la figure 4 illustre schématiquement des moyens matériels dans un 15 système selon un troisième mode de réalisation de l'invention; - la figure 5 est un diagramme schématisant un procédé de lecture selon un mode de mise en oeuvre de l'invention. DESCRIPTION DETAILLEE 20 Une mise en oeuvre de l'invention représentée en figure 1 concerne un procédé de lecture d'une donnée, dite donnée à lire, stockée dans au moins un dispositif mémoire 1 sous la forme d'au moins une donnée, dite donnée mémorisée. Ledit au moins un dispositif mémoire 1 25 est connecté à au moins un contrôleur de mémoire 2 gérant des commandes d'accès en lecture et écriture audit au moins un dispositif mémoire 1. Un tel dispositif mémoire 1 peut être un module de mémoire volatile tel qu'un module de mémoire vive de différents types de technologies 30 comme les mémoires SDR SDRAM (« Single Data Rate Synchronous Dynamic Random Access Memory », « Mémoire Dynamique Synchrone à 9 3022675 Accès Aléatoire à débit de données simple») ou DDR SDRAM (« Double Data Rate Synchronous Dynamic Random Access Memory », « SDRAM à débit de données double »). Selon une variante, le dispositif mémoire 1 peut consister en une mémoire de configuration stockant des données 5 de configuration d'un module mémoire tels que sa latence ou la longueur de ses paquets (« burst length »). Une telle mémoire de configuration peut ainsi être un registre de mode (« Mode Register ») tel que ceux présents sur les modules de mémoire SDRAM ou bien une mémoire EEPROM utilisée comme SPD (« Serial Presence Detect ») sur de tels modules SDRAM. Le contrôleur de mémoire 2 peut consister en un contrôleur compatible avec n'importe quel type de protocole permettant de gérer les accès en lecture et écriture au dispositif mémoire 1, tel qu'un contrôleur SATA (« Serial Advanced Technology Attachment »), USB (« Universal 15 Serial Bus »), PATA (« Parallel ATA »), SDR SDRAM, DDR1, DDR2, DDR3, SD (« Secure Digital »), CF (« Compact Flash »), MMC (« MultiMedia Card ») ou MS (« Memory Stick »). Ce procédé se distingue des procédés connus en ce que le mécanisme de protection mémoire est mis en oeuvre au niveau d'un 20 module de protection de mémoire 3 séparé fonctionnellement des dispositifs mémoires 1 et des contrôleurs de mémoire 2. Le module de protection mémoire peut être intégré dans la même puce que les contrôleurs de mémoire 2 et séparé fonctionnellement ou bien intégré dans un boitier physique distinct.Other features and advantages will become apparent upon reading the following description of an embodiment. This description will be given with reference to the accompanying drawings in which: - Figure 1 schematically illustrates hardware means in a memory system according to a first embodiment of the invention; FIG. 2 diagrammatically illustrates a memory protection module according to one embodiment of the invention; FIG. 3 schematically illustrates hardware means in a memory system according to a second embodiment of the invention; FIG. 4 schematically illustrates hardware means in a system according to a third embodiment of the invention; FIG. 5 is a diagram schematizing a reading method according to an embodiment of the invention. DETAILED DESCRIPTION An implementation of the invention shown in FIG. 1 relates to a method of reading a piece of data, said data item to be read, stored in at least one memory device 1 in the form of at least one piece of data, called data. stored. Said at least one memory device 1 25 is connected to at least one memory controller 2 managing read and write access commands to said at least one memory device 1. Such a memory device 1 can be a volatile memory module such as a RAM module of various types of technologies such as SDR SDRAMs ("Single Data Rate Synchronous Dynamic Random Access Memory", "Random Dynamic Synchronous Memory with 9 3022675 Random Access with Single Data Rate") or DDR SDRAM (" Double Data Rate Synchronous Dynamic Random Access Memory "," Dual Data Rate SDRAM "). According to one variant, the memory device 1 may consist of a configuration memory storing configuration data of a memory module such as its latency or the length of its packets ("burst length"). Such a configuration memory can thus be a mode register ("Mode Register") such as those present on the SDRAM memory modules or an EEPROM used as SPD ("Serial Presence Detect") on such SDRAM modules. The memory controller 2 may consist of a controller compatible with any type of protocol for managing read and write access to the memory device 1, such as a Serial Advanced Technology Attachment (SATA), USB ( "Universal 15 Serial Bus"), PATA ("Parallel ATA"), SDR SDRAM, DDR1, DDR2, DDR3, SD ("Secure Digital"), CF ("Compact Flash"), MMC ("MultiMedia Card") or MS ("Memory Stick"). This method differs from known methods in that the memory protection mechanism is implemented at a memory protection module 3 functionally separated from the memory devices 1 and the memory controllers 2. The memory protection module can be integrated in the same chip as the memory controllers 2 and separated functionally or integrated into a separate physical box.

25 Ce module de protection de mémoire est par ailleurs configuré pour être connecté d'une part à un module maître 4 et d'autre part à au moins un contrôleur de mémoire 2. Le module maître 4 peut consister en n'importe quel type de moyens de traitement de données susceptibles de demander un accès en 30 lecture ou en écriture aux données stockées dans les dispositifs mémoires 10 3022675 1. Il peut ainsi s'agir d'un processeur central CPU, d'un coprocesseur ou d'un contrôleur DMA (« Direct Memory Access »). Afin de pouvoir mettre en oeuvre des mécanismes de protection mémoire, le module de protection de mémoire 3 peut comprendre, comme 5 représenté en figure 2, un codeur 5 configuré pour traiter selon les mécanismes de protection mémoire implémentés les données dont l'écriture a été commandée dans les dispositifs mémoires 1. De plus, le module de protection de mémoire 3 peut comprendre un décodeur/voteur 6 configuré pour traiter selon les mécanismes de protection mémoire 10 implémentés les données lues dans les dispositifs mémoire 1. Le module de protection de mémoire 3 peut également comprendre une mémoire tampon 7 destinée à stocker de manière temporaire les données lues dans les dispositifs mémoire 1. Enfin le module de protection de mémoire 3 comprend deux interfaces 8a et 8b lui permettant de dialoguer avec le 15 module maître 4 et avec l'au moins un contrôleur de mémoire 2 par le biais de bus de communication. Le procédé de lecture peut être mis en oeuvre dans un système mémoire représenté en figure 1 et comprenant dans un premier mode de réalisation : 20 -un tel dispositif mémoire 1 configuré pour stocker une donnée; -un tel contrôleur de mémoire 2 gérant des commandes d'accès en lecture et écriture audit dispositif mémoire 1 ; -un tel module de protection de mémoire 3. Le procédé de lecture peut également être mis en oeuvre dans un 25 système mémoire représenté en figure 3 et comprenant, dans un deuxième mode de réalisation, plusieurs dispositifs mémoires distincts 1 a, 1 b, lc destinés à stocker de manière redondante une même donnée, dits dispositifs mémoires redondants. Dans une première variante représentée en figure 3, le système selon le 30 deuxième mode de réalisation peut comprendre un unique contrôleur de 11 3022675 mémoire 2 gérant des commandes d'accès en lecture à la donnée stockée dans chacun des dispositifs mémoires redondants 1 a, 1 b, lc. Dans une deuxième variante représentée en figure 4, le système selon le deuxième mode de réalisation peut comprendre un contrôleur de mémoire 5 2a, 2b, 2c associé à chaque dispositif mémoire redondant 1 a, 1 b, 1 c. Lors d'une commande de lecture ou écriture d'une donnée dans un ou plusieurs dispositifs mémoires, le module de protection de mémoire 3 transmet ladite commande : - à chacun des contrôleurs mémoires si le système comprend plusieurs 10 contrôleurs de mémoire comme représenté en figure 4 ; - à l'unique contrôleur de mémoire autant de fois que le système compte de dispositifs mémoires, dans le cas des systèmes représentés en figure 1 et figure 3.This memory protection module is furthermore configured to be connected on the one hand to a master module 4 and on the other hand to at least one memory controller 2. The master module 4 may consist of any type of memory module. data processing means capable of requesting read or write access to the data stored in the memory devices 3022675 1. It can thus be a central processor CPU, a coprocessor or a DMA controller ("Direct Memory Access"). In order to be able to implement memory protection mechanisms, the memory protection module 3 can comprise, as represented in FIG. 2, an encoder 5 configured to process, according to the implemented memory protection mechanisms, the data whose writing has been In addition, the memory protection module 3 may comprise a decoder / voter 6 configured to process, according to the implemented memory protection mechanisms, the data read in the memory devices 1. The memory protection module 3 may also comprise a buffer 7 intended to temporarily store the data read in the memory devices 1. Finally, the memory protection module 3 comprises two interfaces 8a and 8b enabling it to communicate with the master module 4 and with the at least one memory controller 2 via a communication bus. The reading method can be implemented in a memory system shown in FIG. 1 and comprising in a first embodiment: such a memory device 1 configured to store data; such a memory controller 2 managing read and write access commands to said memory device 1; Such a memory protection module 3. The reading method can also be implemented in a memory system represented in FIG. 3 and comprising, in a second embodiment, several distinct memory devices 1 a, 1 b, 1 c. for redundantly storing the same data, said redundant memory devices. In a first variant represented in FIG. 3, the system according to the second embodiment may comprise a single memory controller 2 managing read access commands to the data stored in each of the redundant memory devices 1a, 1 b, lc. In a second variant shown in FIG. 4, the system according to the second embodiment may comprise a memory controller 5a, 2b, 2c associated with each redundant memory device 1a, 1b, 1c. During a command to read or write data in one or more memory devices, the memory protection module 3 transmits said command: to each of the memory controllers if the system comprises several memory controllers as represented in FIG. 4; to the single memory controller as many times as the system has memory devices, in the case of the systems represented in FIG. 1 and FIG.

15 Pour permettre la protection des données stockées dans au moins un dispositif mémoire 1 d'un tel système, ledit module de protection de mémoire 3 met en oeuvre les étapes suivantes : a) obtention de ladite au moins une donnée mémorisée stockée dans ledit au moins un dispositif mémoire 1 et transmise par ledit au moins un 20 contrôleur de mémoire 2, b) détection et/ou correction d'erreurs à partir de ladite au moins une donnée mémorisée, c) détermination d'une donnée corrigée et/ou d'un message d'alerte si ladite au moins une donnée mémorisée présente des erreurs.To enable the protection of the data stored in at least one memory device 1 of such a system, said memory protection module 3 implements the following steps: a) obtaining said at least one stored data stored in said at least one a memory device 1 and transmitted by said at least one memory controller 2, b) detecting and / or correcting errors from said at least one stored data item, c) determining a corrected data item and / or an alert message if said at least one stored data has errors.

25 Plus précisément, un mode de mise en oeuvre d'un procédé de lecture d'une donnée dite donnée à lire stockée dans au moins un dispositif mémoire 1 sous la forme d'au moins une donnée dite donnée mémorisée est décrit ci-dessous en référence à la figure 5.More specifically, an embodiment of a method for reading a given data item to be read stored in at least one memory device 1 in the form of at least one data item said data stored is described below in reference to Figure 5.

30 Lors d'une étape préliminaire a0), le module maître 4 transmet une commande d'accès en lecture à ladite donnée à lire stockée sous la forme 12 3022675 d'une donnée mémorisée dans ledit au moins un dispositif mémoire 1. Cette commande est reçue par le module de protection de mémoire 3 placé entre le module maître 4 et le contrôleur de mémoire 2. Le module de protection de mémoire 3 transmet alors au contrôleur mémoire 2 ou à 5 chacun des contrôleurs mémoire 2a, 2b, 2c une commande d'accès en lecture à ladite au moins une donnée mémorisée correspondante. En outre lors d'une étape préliminaire al), le module de protection de mémoire 3 peut également être configuré pour transmettre de façon cyclique à l'au moins un contrôleur de mémoire 2 une commande d'accès 10 en lecture à une donnée à lire. Ladite donnée à lire peut à titre d'exemple être une donnée de configuration stockée dans au moins une mémoire de configuration. Lors d'une première étape a), le module de protection de mémoire 3 obtient les données mémorisées stockées dans ledit au moins un 15 dispositif mémoire 1 et transmises par ledit au moins un contrôleur de mémoire 2 en réponse à la commande d'accès en lecture envoyée préalablement. Dans le cas d'un système mémoire selon le premier mode de réalisation et tel que représenté en figure 1, le module de protection de mémoire 3 20 obtient la donnée mémorisée stockée dans le dispositif mémoire 1 et transmise par le contrôleur de mémoire 2. Dans le cas d'un système mémoire selon le deuxième mode de réalisation et tel que représenté en figure 3 et en figure 4, le module de protection de mémoire 3 obtient les données mémorisées stockées dans chacun des 25 dispositifs mémoires redondants 1 a, 1 b, lc. Si le système comprend un unique contrôleur de mémoire 2, ledit contrôleur de mémoire est configuré pour obtenir et transmettre la donnée mémorisée stockée dans chacun des dispositifs redondants 1 a, 1 b, lc au module de protection de mémoire 3.In a preliminary step a0), the master module 4 transmits a read access command to said read data stored as 3022675 of a data stored in said at least one memory device 1. This command is received by the memory protection module 3 placed between the master module 4 and the memory controller 2. The memory protection module 3 then transmits to the memory controller 2 or to each of the memory controllers 2a, 2b, 2c a control of the memory module 2. read access to said at least one corresponding stored data item. In addition, during a preliminary step al), the memory protection module 3 can also be configured to cyclically transmit to the at least one memory controller 2 an access control 10 for reading a data item to be read. . Said data to be read may for example be a configuration data stored in at least one configuration memory. In a first step a), the memory protection module 3 obtains the stored data stored in said at least one memory device 1 and transmitted by said at least one memory controller 2 in response to the access control. read sent previously. In the case of a memory system according to the first embodiment and as shown in FIG. 1, the memory protection module 3 obtains the stored data item stored in the memory device 1 and transmitted by the memory controller 2. In FIG. the case of a memory system according to the second embodiment and as represented in FIG. 3 and in FIG. 4, the memory protection module 3 obtains the stored data stored in each of the redundant memory devices 1 a, 1 b, lc. If the system comprises a single memory controller 2, said memory controller is configured to obtain and transmit the stored data stored in each of the redundant devices 1a, 1b, 1c to the memory protection module 3.

30 Si le système comprend plusieurs contrôleurs de mémoire 2a, 2b, 2c chacun associé à un dispositif mémoire redondant, chaque contrôleur de 13 3022675 mémoire est configuré pour obtenir et transmettre au module de protection de mémoire 3 la donnée mémorisée stockée dans le dispositif mémoire redondant qui lui est associé. Lors d'une deuxième étape b), le module de protection de mémoire 5 3 détecte ou corrige des erreurs à partir desdites données mémorisées obtenues. Dans un premier mode de mise en oeuvre, les données stockées dans les dispositifs mémoires peuvent être des données codées lors de leur écriture en mémoire à l'aide d'un code correcteur d'erreurs par le 10 codeur 5 du module de protection de mémoire 3. Ces codes correcteurs d'erreurs peuvent être des codes de Hamming, des codes de Reed Solomon, des sommes de contrôle, des codes de répétition ou tout autre code correcteur d'erreurs. Les données mémorisées obtenues par le module de protection de 15 mémoire 3 sont alors transmises au décodeur 6 du module de protection de mémoire 3 qui corrige ou détecte d'éventuelles erreurs. Dans le cas où le décodeur corrige une erreur dans les données obtenues, les données corrigées peuvent être réécrites en mémoire à l'adresse mémoire des données lues. Les données présentant une erreur sont ainsi remplacées 20 en mémoire par les données corrigées correspondantes. Dans un deuxième mode de mise en oeuvre, dans le cas d'un système mémoire selon le deuxième mode de réalisation et tel que représenté en figure 3 et figure 4, après avoir obtenu les données mémorisées stockées dans chacun des dispositifs mémoires redondants, 25 le module de protection de mémoire 3 compare les données obtenues lues dans les différents dispositifs mémoire 1a, 1 b, 1c afin de de détecter une éventuelle erreur si lesdites données ne sont pas toutes identiques. Le module de protection de mémoire 3 réalise un vote majoritaire afin de déterminer la donnée majoritaire parmi les données mémorisées lues 30 dans les dispositifs mémoires. Cette donnée est en effet celle dont la 14 3022675 probabilité de correspondre à la donnée à lire dont la lecture a été commandée est la plus élevée. A titre d'exemple du deuxième mode de mise en oeuvre, le système selon l'invention peut comprendre trois dispositifs mémoires 1 a, 1 b, 1 c 5 comme représenté en figure 3 et figure 4. Supposons que la donnée 0x0100 ait été écrite dans chacun des dispositifs mémoire mais qu'une altération du dispositif mémoire 1 b soit intervenue, changeant la donnée mémorisée en 0x0000. Le module de protection de mémoire 3 est capable suite à une requête en lecture de ladite donnée de déterminer la présence 10 d'une erreur puisque les données mémorisées stockées dans les dispositifs mémoires 1 a, 1 b et 1 c ne sont pas identiques. Le vote majoritaire permet au module de protection de mémoire 3 de corriger cette erreur en déterminant que la donnée majoritaire est 0x0100, qui correspond effectivement à la donnée à lire.If the system comprises a plurality of memory controllers 2a, 2b, 2c each associated with a redundant memory device, each memory controller is configured to obtain and transmit to the memory protection module 3 the stored data stored in the redundant memory device. associated with it. In a second step b), the memory protection module 53 detects or corrects errors from said stored data obtained. In a first mode of implementation, the data stored in the memory devices can be coded data when they are written in memory by means of an error correction code by the encoder 5 of the memory protection module. 3. These error correcting codes may be Hamming codes, Reed Solomon codes, checksums, repetition codes or any other error correction code. The stored data obtained by the memory protection module 3 is then transmitted to the decoder 6 of the memory protection module 3 which corrects or detects any errors. In the case where the decoder corrects an error in the data obtained, the corrected data can be rewritten in memory at the memory address of the data read. The data presenting an error is thus replaced in memory by the corresponding corrected data. In a second embodiment, in the case of a memory system according to the second embodiment and as shown in FIG. 3 and FIG. 4, after having obtained the stored data stored in each of the redundant memory devices, 25 the memory protection module 3 compares the obtained data read in the different memory devices 1a, 1b, 1c in order to detect a possible error if the said data are not all identical. The memory protection module 3 makes a majority vote to determine the majority data among the stored data read in the memory devices. This data is in fact the one whose probability of corresponding to the data to be read whose reading has been ordered is the highest. As an example of the second embodiment, the system according to the invention may comprise three memory devices 1 a, 1 b, 1 c 5 as shown in FIG. 3 and FIG. 4. Suppose that the data 0x0100 has been written in each of the memory devices but an alteration of the memory device 1b has occurred, changing the stored data to 0x0000. The memory protection module 3 is capable of following a request to read said data to determine the presence of an error since the stored data stored in the memory devices 1a, 1b and 1c are not identical. The majority vote allows the memory protection module 3 to correct this error by determining that the majority data is 0x0100, which actually corresponds to the data to be read.

15 Selon une variante le vote majoritaire peut être réalisé bit à bit afin de déterminer la valeur majoritaire de chaque bit des données mémorisées lues dans les dispositifs de mémoire. A titre d'exemple, supposons que la donnée 0x0100 ait été écrite dans chacun des dispositifs mémoire mais qu'une altération du dispositif mémoire 1 b soit zo intervenue, changeant la donnée mémorisée en 0x0111, et qu'une altération du dispositif mémoire 1 c soit intervenue, changeant la donnée mémorisée en 0x1000. La réalisation d'un vote majoritaire pour chaque bit de la donnée permet au dispositif de protection de mémoire 3 de corriger toutes ces altérations en déterminant que la valeur la plus probable de la 25 donnée à lire est 0x0100. Les premier et deuxième modes de mise en oeuvre peuvent être combinés afin de réaliser un vote majoritaire après une tentative de correction d'erreur par un code correcteur d'erreur, dans le cas d'un système comportant plusieurs dispositifs mémoires redondants.According to a variant, the majority vote can be made bit by bit in order to determine the majority value of each bit of the stored data read in the memory devices. By way of example, suppose that the data 0x0100 has been written in each of the memory devices but that an alteration of the memory device 1b has occurred, changing the data stored in 0x0111, and an alteration of the memory device 1c. either intervened, changing the stored data to 0x1000. Making a majority vote for each bit of the data enables the memory protection device 3 to correct all these alterations by determining that the most likely value of the data item to be read is 0x0100. The first and second modes of implementation can be combined to achieve a majority vote after an attempt to correct error by an error correction code, in the case of a system comprising several redundant memory devices.

30 Suite à la détection d'une erreur, le module de protection de mémoire peut commander un nouvel accès en lecture à ladite donnée 15 3022675 dans ledit au moins un dispositif mémoire. La donnée présentant une erreur issue de la première lecture peut être temporairement stockée dans la mémoire tampon 7 en attendant d'obtenir le résultat de cette nouvelle commande de lecture. Ceci peut être intéressant notamment lorsque le 5 module de protection de mémoire 3 détecte des erreurs mais ne peut les corriger, par exemple lorsque le code correcteur d'erreurs mis en oeuvre par le module de protection de mémoire ne permet pas de corriger un tel nombre d'erreurs. Au cas où l'altération de la donnée serait intervenue en dehors du dispositif mémoire 1, par exemple lors de son transfert sur un 10 bus de communication, une telle deuxième lecture peut permettre au module de protection de mémoire 3 d'obtenir tout de même la donnée à lire si l'altération ne se reproduit pas lors de la deuxième lecture. Le stockage de la donnée issue de la première lecture peut permettre de réaliser un diagnostic de panne par comparaison à la donnée obtenue lors 15 d'une nouvelle lecture. Lors d'une troisième étape c) intervenant suite à la détection d'une erreur lors de l'étape précédente b), le module de protection de mémoire 3 détermine une donnée corrigée et/ou un message d'alerte. Si le module de protection de mémoire 3 a corrigé une erreur, la 20 donnée corrigée c'est-à-dire la donnée décodée par le décodeur 6 ou la donnée majoritaire déterminée lors du vote majoritaire est retenue comme donnée corrigée. Un message d'alerte peut également être généré. Si le module de protection de mémoire 3 a uniquement détecté une erreur, sans pouvoir la corriger, un message d'alerte peut être généré.Upon detection of an error, the memory protection module may control a new read access to said data in said at least one memory device. The data having an error from the first reading can be temporarily stored in the buffer memory 7 while waiting to obtain the result of this new read command. This can be of interest especially when the memory protection module 3 detects errors but can not correct them, for example when the error correction code implemented by the memory protection module does not make it possible to correct such numbers. errors. In the event that the alteration of the data has occurred outside the memory device 1, for example when it is transferred to a communication bus, such a second reading may enable the memory protection module 3 to obtain anyway the data to be read if the alteration does not reproduce at the second reading. Storage of the data from the first reading can make it possible to perform a fault diagnosis compared to the data obtained during a new reading. In a third step c) occurring following the detection of an error in the previous step b), the memory protection module 3 determines a corrected data item and / or an alert message. If the memory protection module 3 has corrected an error, the corrected data item i.e. the data decoded by the decoder 6 or the majority data determined at the time of the majority vote is retained as corrected data. An alert message can also be generated. If the memory protection module 3 has only detected an error, without being able to correct it, an alert message can be generated.

25 Un tel message d'alerte peut fournir des informations quant à l'erreur qui a été détectée ou corrigée, telles que l'adresse ou la plage d'adresse à laquelle l'erreur s'est produite, une date de traitement, des informations de configuration du dispositif mémoire affecté... De telles informations peuvent ensuite servir au système à analyser l'état de la 30 mémoire et à diagnostiquer d'éventuelles pannes matérielles.Such an alert message can provide information as to the error that has been detected or corrected, such as the address or range of address at which the error occurred, a processing date, configuration information of the affected memory device ... Such information can then be used by the system to analyze the state of the memory and to diagnose possible hardware failures.

16 3022675 Dans le cas où le module maître 4 a transmis une commande d'accès en lecture à ladite donnée à lire lors de l'étape préliminaire a0), la donnée corrigée retenue et/ou le message d'alerte généré sont transmis au module maître 4.In the case where the master module 4 has transmitted a read access command to said data to be read during the preliminary step a0), the corrected data retained and / or the generated alert message are transmitted to the module. master 4.

5 Dans le cas où le module de protection de mémoire 3 a transmis lors d'une étape préliminaire al) une commande d'accès en lecture à une donnée à lire dans une mémoire, par exemple une donnée de configuration stockée dans une mémoire de configuration, le module de protection de mémoire 3 peut commander une écriture de l'éventuelle 10 donnée corrigée retenue dans ladite au moins une mémoire. Le message d'alerte généré peut également être transmis au module maître 4. Dans une variante optionnelle, lorsque le module de protection de mémoire 3 détecte une erreur récurrente lors d'accès en lecture à des 15 données stockées à une adresse mémoire d'un dispositif mémoire 1, dite adresse corrompue, il transmet un message d'alerte au module maître 4 de sorte à ce que le module maître 4 commande des accès en écriture ultérieurs à des adresses mémoires du dispositif mémoire 1 distinctes de l'adresse mémoire corrompue. Le système évite ainsi de continuer à 20 stocker des données à des adresses mémoires corrompues sur lesquelles les données sont régulièrement corrompues, suite à une défaillance matérielle d'un dispositif mémoire par exemple. Une erreur peut être considérée comme récurrente lorsque le nombre de lectures consécutives d'une même case mémoire ou d'un même bloc mémoire fournissant une 25 donnée erronée dépasse un seuil prédéterminé. Un tel procédé et un tel système permettent donc de détecter et de corriger une partie des erreurs affectant un ou plusieurs dispositifs de stockage, sans que cette détection et cette correction ne soient 30 dépendantes fonctionnellement des contrôleurs de mémoire employés. Ceci permet d'implémenter ces mécanismes de protection de mémoire de 17 3022675 manière indépendante de la fonction utilisée pour les contrôleurs et d'adapter plus facilement ces mécanismes à différentes architectures de mémoire. 18In the case where the memory protection module 3 has transmitted during a preliminary step al) a read access command to a data item to be read in a memory, for example a configuration data item stored in a configuration memory , the memory protection module 3 can control a writing of any corrected data retained in said at least one memory. The generated alert message can also be transmitted to the master module 4. In an optional variant, when the memory protection module 3 detects a recurring error when read access to data stored at a memory address of a memory device 1, said corrupt address, it transmits an alert message to the master module 4 so that the master module 4 controls subsequent write access to memory addresses of the memory device 1 separate from the corrupted memory address. The system thus avoids continuing to store data at corrupted memory addresses on which the data are regularly corrupted, following a hardware failure of a memory device for example. An error may be considered recurrent when the number of consecutive reads of the same memory box or memory block providing erroneous data exceeds a predetermined threshold. Such a method and system thus makes it possible to detect and correct some of the errors affecting one or more storage devices, without this detection and correction being functionally dependent on the memory controllers employed. This makes it possible to implement these memory protection mechanisms independently of the function used for the controllers and to adapt these mechanisms more easily to different memory architectures. 18

Claims (13)

REVENDICATIONS1. Procédé de lecture d'une donnée, dite donnée à lire, stockée dans au moins un dispositif mémoire (1) sous la forme d'au moins une donnée, dite 5 donnée mémorisée, ledit au moins un dispositif mémoire (1) étant connecté à au moins un contrôleur de mémoire (2) gérant des commandes d'accès en lecture et écriture audit au moins un dispositif mémoire (1), ledit procédé comprenant les étapes suivantes mises en oeuvre par un 10 module de protection de mémoire (3), ledit module de protection de mémoire (3) étant séparé fonctionnellement des dispositifs mémoires (1) et des contrôleurs de mémoire (2) et configuré pour être connecté audit au moins un contrôleur de mémoire (2) : 15 a) obtention de ladite au moins une donnée mémorisée stockée dans ledit au moins un dispositif mémoire (1) et transmise par ledit au moins un contrôleur de mémoire (2); b) détection et/ou correction d'erreurs à partir de ladite au moins une donnée mémorisée obtenue, 20 c) détermination d'une donnée corrigée et/ou d'un message d'alerte si ladite au moins une donnée mémorisée présente des erreurs.REVENDICATIONS1. A method of reading a data item, said data item to be read, stored in at least one memory device (1) in the form of at least one piece of data, said stored data item, said at least one memory device (1) being connected to at least one memory controller (2) managing read and write access commands to said at least one memory device (1), said method comprising the following steps implemented by a memory protection module (3), said memory protection module (3) being functionally separated from memory devices (1) and memory controllers (2) and configured to be connected to said at least one memory controller (2): a) obtaining said at least one memory controller (2); stored data stored in said at least one memory device (1) and transmitted by said at least one memory controller (2); b) detecting and / or correcting errors from said at least one stored data obtained, c) determining a corrected data item and / or an alert message if said at least one piece of stored data has errors . 2. Procédé de lecture d'une donnée selon la revendication 1, dans lequel le module de protection de mémoire (3) est connecté à un module maître 25 (4) susceptible de commander des accès en lectures et écritures audit au moins un dispositif mémoire (1) et dans lequel l'étape a) d'obtention de données comprend préalablement la réception a0) d'une commande d'accès en lecture à ladite donnée à lire émise par le module maître (4). 302. A method of reading a data according to claim 1, wherein the memory protection module (3) is connected to a master module (4) capable of controlling access reads and writes to said at least one memory device (1) and wherein the step a) of obtaining data comprises previously receiving a0) a read access command to said data to be read transmitted by the master module (4). 30 3. Procédé de lecture d'une donnée selon l'une des revendications précédentes, dans lequel l'étape a) d'obtention de données comprend 19 3022675 préalablement la transmission al) aux contrôleurs de mémoire (2) d'une commande d'accès en lecture à la donnée à lire.3. The method of reading a data item according to one of the preceding claims, wherein the step a) of obtaining data comprises previously transmitting al) to the memory controllers (2) of a command of read access to the data to be read. 4. Procédé de lecture selon l'une des revendications précédentes, dans 5 lequel l'étape b) de détection et/ou correction d'erreurs met en oeuvre des codes correcteurs d'erreurs.4. Reading method according to one of the preceding claims, wherein the step b) of detecting and / or correcting errors implements error correcting codes. 5. Procédé de lecture selon la revendication précédente, dans lequel les codes correcteurs d'erreurs sont parmi des codes de Hamming, des codes 10 de Reed Solomon, des sommes de contrôle et des codes de répétition.5. Reading method according to the preceding claim, wherein the error correction codes are among Hamming codes, Reed Solomon codes, checksums and repetition codes. 6. Procédé de lecture d'une donnée selon l'une des revendications précédentes, ladite donnée à lire étant stockée de manière redondante dans plusieurs dispositifs mémoires (1a, 1 b, 1c) distincts, dits dispositifs 15 mémoires redondants, dans lequel : - l'étape a) d'obtention de données comprend l'obtention des données mémorisées stockées dans chacun des dispositifs mémoires redondants (1a, lb, 1c), - l'étape b) de détection et/ou de correction d'erreurs comprend la 20 comparaison des données mémorisées obtenues et la mise en oeuvre d'un vote majoritaire.6. A method of reading a data according to one of the preceding claims, said data to be read being stored redundantly in several separate memory devices (1a, 1b, 1c), said redundant memory devices, wherein: the step a) of obtaining data comprises obtaining the stored data stored in each of the redundant memory devices (1a, 1b, 1c), - the step b) of detecting and / or correcting errors includes the 20 comparison of the stored data obtained and the implementation of a majority vote. 7. Procédé de lecture selon l'une des revendications 2 à 6, dans lequel l'étape b) de détection d'erreurs comprend la commande d'un nouvel 25 accès en lecture à ladite donnée à lire en cas de détection d'une erreur.7. Reading method according to one of claims 2 to 6, wherein the step b) of error detection comprises the control of a new read access to said data to be read in case of detection of a error. 8. Procédé de lecture selon l'une des revendications 2 à 7, dans lequel : l'étape b) de détection d'erreurs comprend la détection d'au moins une erreur lors d'un accès en lecture à des données stockées à une adresse 30 mémoire d'un dispositif mémoire (1), dite adresse corrompue, 20 3022675 et l'étape c) de détermination d'un message d'alerte comprend la transmission d'un message d'alerte audit module maître (4) de sorte que le module maître (4) commande des accès en écriture ultérieurs à des adresses mémoires du dispositif mémoire (1) distinctes de l'adresse mémoire corrompue.8. Reading method according to one of claims 2 to 7, wherein: the step b) of error detection comprises the detection of at least one error during a read access to data stored at a time. address 30 memory of a memory device (1), said corrupted address, 3022675 and step c) of determining an alert message comprises transmitting an alert message to said master module (4) of so that the master module (4) controls subsequent write accesses to memory addresses of the memory device (1) separate from the corrupted memory address. 9. Produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé de lecture selon l'une quelconque des revendications précédentes, lorsque ce programme est exécuté par un 10 processeur.A computer program product comprising code instructions for performing a read method according to any one of the preceding claims, when this program is executed by a processor. 10. Module de protection de mémoire (3) configuré pour détecter et/ou corriger des erreurs parmi des données stockées dans au moins un dispositif mémoire (1), 15 ledit au moins un dispositif mémoire (1) étant connecté à au moins un contrôleur de mémoire (2) gérant des commandes d'accès en lecture et écriture audit au moins un dispositif mémoire (1), caractérisé en ce qu'il est séparé fonctionnellement des dispositifs mémoires (1) et des contrôleurs de mémoire (2) et est configuré pour être 20 connecté d'une part à un module maître (4) susceptible de commander des accès en lectures et écritures audit au moins un dispositif mémoire (1) et d'autre part audit au moins un contrôleur de mémoire (2), et en ce qu'il comprend des moyens pour mettre en oeuvre les étapes du procédé de lecture selon l'une quelconque des revendications 1 à 8. 2510. Memory protection module (3) configured to detect and / or correct errors among data stored in at least one memory device (1), said at least one memory device (1) being connected to at least one controller memory device (2) managing read and write access commands to said at least one memory device (1), characterized in that it is functionally separated from the memory devices (1) and the memory controllers (2) and is configured to be connected on the one hand to a master module (4) capable of controlling read and write accesses to said at least one memory device (1) and, on the other hand, to said at least one memory controller (2), and in that it comprises means for carrying out the steps of the reading method according to any of claims 1 to 8. 11. Système mémoire comprenant : -au moins un dispositif mémoire (1) configuré pour stocker des données, -au moins un contrôleur de mémoire (2) gérant des commandes d'accès en lecture et écriture audit au moins un dispositif mémoire (1), 30 -au moins un module de protection de mémoire (3) selon la revendication 10. 21 302267511. Memory system comprising: at least one memory device (1) configured to store data, at least one memory controller (2) managing read and write access commands to said at least one memory device (1) At least one memory protection module (3) according to claim 10. 21 3022675 12. Système selon la revendication 11, comprenant plusieurs dispositifs mémoires redondants (1a, 1 b, 1c) configurés pour stocker une même donnée à lire et un unique contrôleur de mémoire (2) gérant des 5 commandes d'accès en lecture à la donnée stockée dans chacun des dispositifs mémoires redondants (I a, 1 b, 1c), ledit contrôleur de mémoire (2) étant configuré pour transmettre la donnée stockée dans chacun des dispositifs redondants (1a, 1 b, 1c) au module de protection de mémoire (3).The system of claim 11, comprising a plurality of redundant memory devices (1a, 1b, 1c) configured to store the same data to be read and a single memory controller (2) handling read access commands to the data. stored in each of the redundant memory devices (I a, 1b, 1c), said memory controller (2) being configured to transmit the data stored in each of the redundant devices (1a, 1b, 1c) to the memory protection module (3). 13. Système selon la revendication 11, comprenant plusieurs dispositifs mémoires redondants (1a, 1 b, 1c) configurés pour stocker une même donnée à lire et plusieurs contrôleurs de mémoire (2a, 2b, 2c), chaque contrôleur de mémoire (2a, 2b, 2c) étant associé à un dispositif mémoire redondant (1a, 1 b, 1c), gérant des commandes d'accès en lecture à la donnée stockée dans le dispositif mémoire redondant associé et étant configuré pour transmettre au module de protection de mémoire (3) la donnée stockée dans le dispositif mémoire redondant associé.The system of claim 11, comprising a plurality of redundant memory devices (1a, 1b, 1c) configured to store the same data to be read and a plurality of memory controllers (2a, 2b, 2c), each memory controller (2a, 2b). , 2c) being associated with a redundant memory device (1a, 1b, 1c), managing read access commands to the data stored in the associated redundant memory device and being configured to transmit to the memory protection module (3 ) the data stored in the associated redundant memory device.
FR1455603A 2014-06-18 2014-06-18 MEMORY PROTECTION METHOD Active FR3022675B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1455603A FR3022675B1 (en) 2014-06-18 2014-06-18 MEMORY PROTECTION METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1455603A FR3022675B1 (en) 2014-06-18 2014-06-18 MEMORY PROTECTION METHOD

Publications (2)

Publication Number Publication Date
FR3022675A1 true FR3022675A1 (en) 2015-12-25
FR3022675B1 FR3022675B1 (en) 2017-10-06

Family

ID=51905235

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1455603A Active FR3022675B1 (en) 2014-06-18 2014-06-18 MEMORY PROTECTION METHOD

Country Status (1)

Country Link
FR (1) FR3022675B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066883A1 (en) * 2009-09-14 2011-03-17 Kenshi Dachiku Data storage apparatus and data writing/reading method
US20110202813A1 (en) * 2010-02-17 2011-08-18 Resnick David R Error correction and recovery in chained memory architectures
US20110314347A1 (en) * 2010-06-21 2011-12-22 Fujitsu Limited Memory error detecting apparatus and method
WO2012123517A1 (en) * 2011-03-15 2012-09-20 Cassidian Sas Error correction encoding method, decoding method and associated devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066883A1 (en) * 2009-09-14 2011-03-17 Kenshi Dachiku Data storage apparatus and data writing/reading method
US20110202813A1 (en) * 2010-02-17 2011-08-18 Resnick David R Error correction and recovery in chained memory architectures
US20110314347A1 (en) * 2010-06-21 2011-12-22 Fujitsu Limited Memory error detecting apparatus and method
WO2012123517A1 (en) * 2011-03-15 2012-09-20 Cassidian Sas Error correction encoding method, decoding method and associated devices

Also Published As

Publication number Publication date
FR3022675B1 (en) 2017-10-06

Similar Documents

Publication Publication Date Title
US20210026732A1 (en) Memory systems for performing failover
KR101750662B1 (en) Circuits, apparatuses, and methods for correcting data errors
US9471423B1 (en) Selective memory error reporting
US10169126B2 (en) Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
US8381072B2 (en) Cache memory, computer system and memory access method
US20190034270A1 (en) Memory system having an error correction function and operating method of memory module and memory controller
KR102378466B1 (en) Memory devices and modules
US11055173B2 (en) Redundant storage of error correction code (ECC) checkbits for validating proper operation of a static random access memory (SRAM)
US20140026011A1 (en) Memory with Dynamic Error Detection and Correction
US20160313936A1 (en) Double writing map table entries in a data storage system to guard against silent corruption
CN107423230A (en) Memory module, there is its computing system and the method for testing its tag error
US20230144712A1 (en) Memory device, a controller for controlling the same, a memory system including the same, and an operating method of the same
US9690649B2 (en) Memory device error history bit
US9304854B2 (en) Semiconductor device and operating method thereof
KR102414202B1 (en) Error correction using hierarchical decoder
FR3022675A1 (en) MEMORY PROTECTION METHOD
KR102453866B1 (en) transaction metadata
US20230280930A1 (en) Memory controller and memory system for executing error correction operation
US20230386598A1 (en) Methods for real-time repairing of memory failures caused during operations, memory systems performing repairing methods, and data processing systems including repairing memory systems
KR102504176B1 (en) Semiconductor device
FR2992091A1 (en) DATA RECORDING METHOD, METHOD FOR DETECTING MEMORY ACCESS ERRORS, AND ASSOCIATED DEVICE
GB2531756A (en) Multi-chip device and method for storing data

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20151225

PLFP Fee payment

Year of fee payment: 3

CD Change of name or company name

Owner name: SAGEM DEFENSE SECURITE, FR

Effective date: 20161214

CJ Change in legal form

Effective date: 20161214

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10