Brevet FR3022675A1 — publié le 20151225

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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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é. 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. 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. 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. 18 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. 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). 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. 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. 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. 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. 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. 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. 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. 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. 25 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 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). 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é.