Brevet FR3140183A1 — publié le 20240329

Un premier domaine mémoire (DM1) comporte une première partie d’une première zone mémoire (sram1) stockant des données et un deuxième domaine mémoire (DM2) comporte une deuxième partie d’une deuxième zone mémoire (sram5) stockant des bits de contrôle de code correcteur d’erreurs associés aux données. Des moyens de traitement (MT) sont configurés pour lors d’une première lecture d’une donnée dans ladite première partie, faire lire au cours d’un même accès mémoire les bits de contrôle de code correcteur d’erreur associés à cette donnée ainsi que tous les autres bits de contrôle de code correcteur d’erreurs stockés dans ladite deuxième partie et faire stocker dans un registre (RG) ces autres bits de contrôle de code correcteur d’erreurs, et lors d’une lecture ultérieure d’une autre donnée dans ladite première partie, faire extraire du registre les bits de contrôle de code correcteur d’erreurs associés à cette autre donnée. Figure pour l’abrégé : [Fig. 2] Procédé de gestion de la consommation d’un dispositif de mémoire lors de l’utilisation d’un code correcteur d’erreurs et système correspondant Des modes de mise en œuvre et de réalisation de l’invention concernent la gestion de la consommation d’un dispositif de mémoire lors de l’utilisation d’un code correcteur d’erreurs (ECC : Error Correction Code) dans ce dispositif de mémoire, en particulier un dispositif de mémoire volatile, par exemple un dispositif de mémoire vive statique (SRAM : Static Random Access Memory). Un code correcteur d’erreurs est bien connu de l’homme du métier et permet de corriger la valeur logique erronée d’un bit. Plus précisément, avec un code correcteur d’erreurs, si l’on ajoute s bits de contrôle à b bits de données on peut corriger r erreurs parmi les b+s bits. Lorsque l’on souhaite mettre en œuvre un code correcteur d’erreurs, la taille de la mémoire contenant les données et les bits de contrôle est plus importante que la taille d’une mémoire destinée à stocker des données sans utilisation de code correcteur d’erreurs. A titre indicatif, une mémoire statique destinée à stocker des données sur une largeur de 32 bits (mots de 32 bits) présente une largeur additionnelle de 7 bits pour le stockage des bits de contrôle, ce qui conduit à une largeur globale de 39 bits, de façon à pouvoir stocker des mots de 39 bits. Il en résulte une augmentation de surface de 22% par rapport à une mémoire de 32 bits non prévue pour stocker des bits de contrôle. Dans le cas où un utilisateur ne veut pas utiliser de code correcteur d’erreurs dans une application particulière, cette zone mémoire additionnelle de 22% ne sera jamais utilisée car non accessible pour un stockage de données. Or, cette surface mémoire perdue a un impact direct dans les courants de fuite, ce qui n’est pas négligeable pour des produits basse consommation. L’ajout de surface mémoire a également un impact sur le coût du dispositif. Il a été proposé dans la demande de brevet français publiée sous le n° 3089317 d’utiliser une structure de mémoire offrant une plus grande flexibilité dans la gestion de l’espace mémoire d’une mémoire de façon à prendre en compte le caractère optionnel de l’utilisation d’un code correcteur d’erreurs. Ainsi dans cette demande de brevet précitée, il a été proposé une mémoire capable de stocker des données et des bits de contrôle de code correcteur d’erreurs et de pouvoir éventuellement réutiliser l’espace mémoire prévu pour ces bits de contrôle, à des fins de stockage de données au cas où dans certaines applications, il n’est pas prévu d’utiliser de code correcteur d’erreurs. Plus précisément il a été proposé un système comprenant un dispositif de mémoire comportant un premier domaine mémoire destiné à stocker des premières données à des premières adresses et un deuxième domaine mémoire destiné à stocker, sur commande, soit des deuxièmes données à des deuxièmes adresses, soit des bits de contrôle de code correcteur d’erreurs associés aux premières données à des troisièmes adresses. Ce système est basé sur une organisation des domaines mémoires en rangées et sur un stockage et particulier des bits de données et des bits de contrôle (lorsqu’il est prévu d’utiliser un code correcteur d’erreur) dans ces rangées avec un adressage spécifique. Cela étant lorsqu’il est prévu d’utiliser un code correcteur d’erreur dans un tel système, pour chaque accès mémoire d’une donnée dans le premier domaine mémoire, il est nécessaire d’avoir un accès mémoire dans le deuxième domaine mémoire, ce qui double la consommation. Il existe donc un besoin de réduire la consommation dans un tel système utilisant des codes correcteurs d’erreurs. Bien qu’un mode préférentiel de l’invention s’applique tout particulièrement au système décrit dans la demande de brevet précitée, il est proposé selon un aspect plus général, un système comprenant -un dispositif de mémoire, par exemple un dispositif de mémoire volatile comportant un premier domaine mémoire comportant au moins une première partie d’au moins une première zone mémoire, et éventuellement plusieurs zones mémoire, destinée à stocker des données et un deuxième domaine mémoire comportant au moins une deuxième partie d’une deuxième zone mémoire destinée à stocker des bits de contrôle de code correcteur d’erreurs associés aux données, -un registre, et -des moyens de traitement. Selon cet aspect général, les moyens de traitement sont configurés pour -lors d’une première lecture d’une donnée dans la première partie de la première zone mémoire, faire lire au cours d’un même accès mémoire, les bits de contrôle de code correcteur d’erreur associés à cette donnée ainsi que tous les autres bits de contrôle de code correcteur d’erreurs stockés dans la deuxième partie de la deuxième zone mémoire et faire stocker dans le registre tous ces autres bits de contrôle de code correcteur d’erreurs, et -lors d’une lecture ultérieure d’une autre donnée dans la première partie première zone mémoire, faire extraire du registre les bits de contrôle de code correcteur d’erreurs associés à cette autre donnée. Ainsi, on n’effectue qu’un seul accès mémoire dans le deuxième domaine mémoire lors de la première lecture d’une donnée dans la première zone mémoire, car on profite de ce seul accès mémoire pour extraire tous les bits de contrôle de code correcteur d’erreurs stockés dans ce deuxième domaine mémoire et stocker dans le registre, les bits de contrôle associés aux autres données stockés dans la première zone mémoire afin de les y extraire lors des accès mémoire ultérieurs à la première zone mémoire. Et un accès à un registre est moins coûteux en termes de consommation qu’un accès à une mémoire. Selon un mode de réalisation particulièrement adapté à un système du type de celui décrit dans la demande de brevet précitée, -ladite au moins une première zone mémoire et la deuxième zone mémoire comportent des rangées, -chaque rangée de ladite au moins une première zone mémoire et chaque rangée de la deuxième zone mémoire sont configurées pour stocker des mots de p octets, -les bits de contrôle associés aux données stockées dans p rangées successives de ladite au moins une première zone mémoire sont stockés dans les p octets d’une rangée de la deuxième zone mémoire. Par ailleurs les moyens de traitement sont configurés pour -lors de ladite première lecture d’une donnée stockée dans une rangée de la première zone mémoire, faire lire au cours d’un même accès mémoire, l’octet contenant les bits de contrôle de code correcteur d’erreur associés à cette donnée et stockés dans la rangée correspondante de la deuxième zone mémoire ainsi que p-1 autres octets stockés dans ladite rangée correspondante de la deuxième zone mémoire et faire stocker ces p-1 autres octets dans le registre, et -lors de ladite lecture ultérieure d’une autre donnée dans une autre rangée de la première zone mémoire, faire extraire du registre l’octet contenant les bits de contrôle de code correcteur d’erreurs associés à cette autre donnée. Selon un autre aspect il est proposé un procédé de gestion de la consommation d’un système, le système comprenant un dispositif de mémoire comportant un premier domaine mémoire comportant au moins une première partie d’au moins une première zone mémoire stockant des données, un deuxième domaine mémoire comportant au moins une deuxième partie d’une deuxième zone mémoire stockant des bits de contrôle de code correcteur d’erreurs associés aux données, et un registre, le procédé comprenant lors d’une première lecture d’une donnée dans la première partie de la première zone mémoire, une lecture au cours d’un même accès mémoire, des bits de contrôle de code correcteur d’erreur associés à cette donnée ainsi que de tous les autres bits de contrôle de code correcteur d’erreurs stockés dans la deuxième partie de la deuxième zone mémoire et un stockage dans le registre de tous les autres bits de contrôle de code correcteur d’erreurs, et lors d’une lecture ultérieure d’une autre donnée dans la première partie de la première zone mémoire, une extraction du registre des bits de contrôle de code correcteur d’erreurs associés à cette autre donnée. Selon un mode de mise en œuvre dans lequel, ladite au moins une première zone mémoire et la deuxième zone mémoire comportent des rangées, chaque rangée de ladite au moins une première zone mémoire et chaque rangée de la deuxième zone mémoire stockant des mots de p octets, les bits de contrôle associés aux données stockées dans p rangées successives de ladite au moins une première zone mémoire étant stockés dans les p octets d’une rangée de la deuxième zone mémoire, le procédé comprend lors de ladite première lecture d’une donnée stockée dans une rangée de la première zone mémoire, un lecture au cours d’un même accès mémoire de l’octet contenant les bits de contrôle de code correcteur d’erreur associés à cette donnée et stocké dans la rangée correspondante de la deuxième zone mémoire ainsi que des p-1 autres octets stockés dans ladite rangée correspondante de la deuxième zone mémoire et un stockage dans le registre de ces p-1 autres octets, et lors de ladite lecture ultérieure d’une autre donnée dans une autre rangée de la première zone mémoire, une extraction du registre de l’octet contenant les bits de contrôle de code correcteur d’erreurs associés à cette autre donnée. Le dispositif de mémoire peut être un dispositif de mémoire volatile, par exemple une mémoire statique à accès aléatoire (SRAM) mais également une mémoire non volatile par exemple une mémoire du type EEPROM, sans que ces exemples ne soient limitatifs. D’autres avantages et caractéristiques de l’invention apparaîtront à l’examen de la description détaillée de modes de mise en œuvre et de réalisation de l’invention, nullement limitatifs, et des dessins annexés sur lesquels , , , , , , et illustrent des modes de réalisation et de mise en œuvre de l’invention. On va maintenant décrire des modes de réalisation et de mise en œuvre compatibles avec une structure de système du type de celle décrite dans la demande de brevet français précitée à laquelle l’homme du métier pourra se référer. Sur la , la référence DMM désigne un dispositif de mémoire, ici un dispositif de mémoire volatile, comportant un premier domaine mémoire DM1 et un deuxième domaine mémoire DM2. Le premier domaine mémoire DM1 comporte quatre premières zones mémoire sram1, sram2, sram3 et sram4 de taille mémoire identique. Dans l’exemple illustré ici, ces premières zones mémoire sont formées par des mémoires vives statiques distinctes. Cela étant, il serait également envisageable que ces zones mémoires soient des zones mémoire d’une même mémoire. Le deuxième domaine mémoire DM2 comporte une deuxième zone mémoire sram5, de taille mémoire identique à celle des zones mémoire sram1-sram4. Là encore, la zone mémoire sram5 est une mémoire vive statique. Chaque zone mémoire comporte des rangées. Dans l’exemple décrit ici, la largeur du dispositif de mémoire est égale à 32 bits, c’est-à-dire qu’on peut stocker des mots de données de 32 bits comportant chacun quatre octets. La taille mémoire est égale à n kbits, par exemple 64 kbits. Les zones mémoire sram1-sram4 sont destinées à stocker respectivement des données Data-mem-cut1-4. La zone mémoire sram5 est destinée à comporter les bits de contrôle de code correcteur d’erreurs associés aux données stockées dans les zones mémoire sram1-sram4. Le système SYS comporte comme illustré sur la , un registre RG et des moyens de traitement MT comportant une interface SRINT connectée à un bus BSS qui peut être de toute structure classique et par exemple un bus AHB utilisant un protocole décrit par exemple dans le document AMBA 3 AHB-Lite Protocol V1.0 Specification, de la société ARM (2001, 2006). Ce bus véhicule notamment les données Data-mem-cut1-4, des adresses initiales HADRR associées aux données, ainsi que d’autres signaux classiques de bus non représentés ici à des fins de simplification. L’interface SRINT, de structure classique et connue en soi, est configurée pour délivrer des adresses associées données Data-mem-cut1-4 Ces adresses sont tirées des adresses initiales HADRR qui étaient véhiculées sur le bus BSS. Les adresses pourraient être identiques aux adresses initiales. Cela étant, en fonction de l’architecture du système, et notamment de la largeur des zones mémoire, les adresses peuvent être obtenues à partir des adresses initiales par troncature d’un ou de plusieurs bits. Dans l’exemple décrit ici, on peut écrire dans chaque rangée d’une zone mémoire srami, i égal à 1, 2, 3, ou 4, un mot de 32 bits composé de 4 octets de 8 bits. Ainsi, dans cet exemple, les références Add-mem-cut1-4 désignent les adresses d’une rangée des zones mémoire sram1-4 et la référence Mask-mem-cut1-4 désigne le numéro de l’octet dans la rangée désignée de la zone mémoire considérée. Ainsi, les adresses Add-mem-cut1-4 et les masques Mask-mem-cut1-4 forment lesdites adresses de stockage des données. Les signaux WEN-cut-1-4 sont des signaux classiques de commande d’écriture dans les différentes zones mémoire et les signaux CSEN-cut1-4 sont des signaux classiques de sélection de la zone mémoire considérée. Les moyens de traitement comportent également un module de code correcteur d’erreurs MECC, de structure classique et connue en soi, configuré pour déterminer les bits de contrôle associés auxdites données Data-mem-cut1-4. Plus précisément, pour un mot de quatre octets stocké dans une rangée d’une zone mémoire sram1-4, la référence S désigne les s bits de contrôle associés à ce mot de 4 octets. S est, dans le cas d’un mot de 32 bits, un mot de 7 bits. En conséquence, S peut être stocké dans un octet de la zone mémoire sram5. Si la largeur de la mémoire était de 64 bits et non de 32 bits, S aurait une longueur de 8 bits, ce qui pourrait encore être stocké dans un octet de la mémoire sram5. Comme il est classique, pour écrire un nouveau mot de 32 bits dans une rangée de l’une des zones mémoire sram1 à sram4, on procède tout d’abord à la lecture du mot déjà stocké dans cette rangée. Puis, le module de code correcteur d’erreurs MECC détermine un syndrome à partir des bits de données et de l’ensemble S des bits de contrôle. On rappelle ici qu’un syndrome est le résultat des calculs intermédiaires effectués lors de la correction d’erreur permettant de détecter et de localiser l’erreur. Si un bit est défectueux, le bloc MECC détecte effectivement ce bit défectueux et procède à sa correction. Avant d’écrire le nouveau mot à l’adresse du mot précédent dans la zone mémoire correspondante, le bloc MECC calcule le nouvel ensemble S des nouveaux bits de contrôle correspondant aux nouveaux octets de données. A cet égard, le nouvel ensemble S des bits de contrôle est calculé avec, le cas échéant, la valeur corrigée du bit défectueux. Puis, le nouveau mot est écrit dans la zone mémoire correspondante à la première adresse correspondante. Quant au nouvel ensemble S de bits de contrôle, il est, comme illustré sur la , délivrés à une une interface mémoire DM2INT du deuxième domaine mémoire DM2. Les moyens de traitement comportent également un bloc de traitement BMT configuré pour déterminer des adresses de stockage de ces bits de contrôle S. Ces bits de contrôle S seront en effet stockés dans la zone mémoire sram5. Une telle adresse comporte ici l’adresse A-ecc d’une rangée de la zone mémoire sram5 ainsi qu’un masque M-ecc permettant de sélectionner dans ladite rangée, l’un des 4 octets. Comme on le verra plus en détails ci-après, ces adresses sont déterminées à partir des adresses de rangées Add-mem-cut1-4. Les adresses A-ecc, M-ecc sont également délivrées à l’interface DM2INT. Les signaux WEN-cut1-4 et CSEN-cut1-4 sont délivrés à l’interface DM1INT couplée au premier domaine mémoire DM1. La illustre plus particulièrement l’obtention des adresses associées aux données destinées à être stockées dans les zones mémoire sram1-sram4 à partir des adresses initiales HADRR reçues par l’interface mémoire SRINT. Dans l’exemple décrit ici, les adresses initiales HADDR sont des adresses codées sur 18 bits b0-b17. La partie gauche de la illustre ces adresses en format hexadécimal. Les adresses Add-mem-cut sont obtenues par troncature des deux bits de poids faibles b0, b1 des adresses initiales. Ainsi, la partie droite de la illustre ces adresses Add-mem-cut en format hexadécimal. Plus précisément, la valeur 0000 est l’adresse de début de la zone sram1 tandis que l’adresse 3FFF est l’adresse de fin de cette zone mémoire sram1. L’adresse 4000 est l’adresse de début de la zone mémoire sram2 tandis que l’adresse 7FFF est l’adresse de fin de cette zone mémoire sram2. L’adresse 8000 est l’adresse de début de la zone mémoire sram3 tandis que l’adresse BFFF est l’adresse de fin de cette zone mémoire sram3. Enfin, l’adresse C000 est l’adresse de début de la zone mémoire sram4 tandis que l’adresse FFFF est l’adresse de fin de la zone mémoire sram4. La illustre un exemple d’obtention des adresses A-ecc à partir des premières adresses Add-mem-cut. Plus précisément, là encore, on effectue une troncature de deux bits des adresses Add-mem-cut pour obtenir l’adresse A-ecc de la rangée correspondante dans la zone mémoire sram5. Plus précisément, cette troncature est une troncature des deux bits de poids faible b0-b1 de l’adresse Add-mem-cut. Ainsi, les bits de contrôle S associés aux données stockées dans la zone mémoire sram1 seront écrits entre les adresses 0000 et 0FFF de la zone mémoire sram5. Les bits de contrôle associés aux données écrites dans la zone mémoire sram2 seront stockés entre les adresses 1000 et 1FFF de la zone mémoire sram5. Les bits de contrôle associés aux données écrites dans la zone mémoire sram3 seront stockés entre les adresses 2000 et 2FFF de la zone mémoire sram5. Enfin, les bits de contrôle associés aux données écrites dans la zone mémoire sram4 seront stockés entre les adresses 3000 et 3FFF de la zone mémoire sram5. Enfin, comme illustré sur la , le masque M-ecc dépend de la valeur des deux bits de poids faible b1, b0 de l’adresse Add-mem-cut. Plus précisément, si ces deux bits b1, b0 sont égaux à 0, alors le premier octet de M-ecc est égal à 1, les autres bits étant égaux à 0, ce qui signifie que l’on sélectionne, pour stocker les bits de contrôle S, le premier octet de la rangée correspondante. Si les deux bits b1, b0 valent respectivement 0 et 1, alors c’est cette fois-ci le deuxième octet du masque M-ecc qui vaut 1 ce qui signifie que l’on sélectionne le deuxième octet de la rangée pour stocker les bits de contrôle S. Si les bits b1, b0 valent respectivement 1 et 0, c’est cette fois-ci le troisième octet de M-ecc qui vaut 1 ce qui correspond à une sélection du troisième octet de la rangée correspondante pour stocker les bits de contrôle S. Enfin, si les deux bits b1 et b0 valent tous deux 1, alors c’est le quatrième octet de M-ecc qui vaut 1 ce qui correspond à une sélection du quatrième octet de la rangée correspondante pour stocker les bits de contrôle. Bien entendu, cette façon de déterminer M-ecc vaut également pour la détermination de Mask-mem-cut1-4 de façon à sélectionner pour chaque octet d’un mot de données à stocker, l’octet correspondant dans la rangée adressée. Ainsi par exemple si l’on souhaite stocker un octet de donnée à l’adresse initiale HADDR égale à 0x2001ABC8, l’adresse sera égale, après troncature de l’adresse initiale, à 6AF2 ce qui correspond à une première adresse Add-mem-cut2 d’une rangée de la deuxième zone mémoire sram2. Quant au mot de 7 bits formant le mot S des bits de contrôle associé au nouveau mot de 32 bits stocké dans la rangée, l’adresse A-ecc de la rangée correspondante dans la zone mémoire sram5, vaut après troncature de l’adresse Add-mem-cut2, 1ABC. Le masque M-ecc associé à cette adresse de rangée indique, puisque les deux bits de poids faibles b1, b0 de la première adresse valent respectivement 1 et 0, une sélection du troisième octet de cette rangée pour stocker ce mot de contrôle S. Dans l’exemple illustré sur la , on suppose que toutes les zones mémoire sram1 à sram2 et sram5 ont une taille mémoire de 64 kbits avec une largeur de mot de 32 bits. En conséquence, chaque zone mémoire comporte 2048 rangées, chaque rangée pouvant contenir un mot de 32 bits (4 octets). Un groupe de 4 rangées de la zone mémoire sram1 représente une première partie de cette zone mémoire sram1 Une rangée de la zone mémoire sram5 représente une deuxième partie de cette zone mémoire. Le code correcteur d’erreurs est appliqué. Chaque mot de contrôle associé à un mot de données de 32 bits contient 7 bits de contrôle. En appliquant les règles de détermination des adresses et des masques mentionnés ci-avant, on voit que l’ensemble S11 des bits de contrôle associés aux quatre octets 0CT01, OCT11, OCT21 et OCT31 de la donnée de la première rangée de la zone mémoire sram1 va être stocké dans l’octet OCT35 de la première rangée de la zone mémoire sram5. De même, le mot S21 de bits de contrôle associé aux quatre octets OCT02, OCT12, OCT22 et OCT32 de la donnée de la deuxième rangée de la zone mémoire sram1, sera stocké dans l’octet OCT25 de la première rangée de la mémoire sram5. Le mot S31 de bits de contrôle associé aux quatre octets OCT03, OCT13, OCT23 et OCT33 de la donnée de la troisième rangée de la mémoire sram1 sera stocké dans l’octet OCT15 de la première rangée de la mémoire sram5. Enfin, le mot S41 de bits de contrôle associé aux quatre octets OCT04, OCT14, OCT24 et OCT34 de la donnée de la quatrième rangée de la zone mémoire sram1 sera stocké dans l’octet OCT05 de la première rangée de la zone mémoire sram5. Et, ce processus de stockage des différents mots de bit de contrôle associés aux différentes rangées va se poursuivre. D’une façon générale, les quatre mots de bits de contrôle associés aux quatre mots de quatre rangées consécutives d’une zone mémoire srami, i variant de 1 à 4, seront stockés dans une seule et même rangée de la zone mémoire sram5. De ce fait, les mots de contrôle associés aux 2048 rangées de la zone mémoire sram1 seront stockés dans 512 rangées de la mémoire sram5. Et, les 512 rangées suivantes de la mémoire sram5 seront dédiées au stockage des mots Si2 de bits de contrôle associés aux données stockées dans la zone mémoire sram2. On se réfère maintenant plus particulièrement aux figures 7 et 8 pour décrire un mode de mise en œuvre d’une gestion de la consommation lors de l’utilisation des mots de code correcteur d’erreurs. On suppose dans l’étape ST70 que les moyens de traitement MT activent des moyens de lecture de structure classique de façon à effectuer une première lecture dans la zone mémoire sram1 de la donnée matérialisée par les quatre octets OCT01 à OCT31 (voir ). Les moyens de traitement MT activent alors dans l’étape ST71 les moyens de lecture, de façon à effectuer au cours d’un même accès mémoire une lecture de toute la première rangée de la zone mémoire sram5 et en extraire les octets OCT05, OCT15, OCT25 et OCT35. L’octet OCT35, représentant le mot de code correcteur d’erreur associé à la donnée matérialisée par les quatre octets OCT01 à OCT31 est délivré (étape ST72) tandis que les autres octets de code correcteur d’erreur OCT05, OCT15 et OCT25 sont stockés dans le registre RG (étape ST73). Lors d’une lecture séquentielle ultérieure des octets OCT02 à OCT32 représentant une autre donnée du groupe des quatre premières rangées de la zone mémoire sram1, les moyens de traitement MT font extraire du registre RG l’octet OCT25 de code correcteur d’erreur associé à cette autre donnée. Système comprenant un dispositif de mémoire (DMM) comportant un premier domaine mémoire (DM1) comportant au moins une première partie d’au moins une première zone mémoire (sram1) destinée à stocker des données et un deuxième domaine mémoire (DM2) comportant au moins une deuxième partie d’une deuxième zone mémoire (sram5) destinée à stocker des bits de contrôle de code correcteur d’erreurs associés aux données, un registre (RG), et des moyens de traitement (MT) configurés pour lors d’une première lecture d’une donnée dans ladite première partie de la première zone mémoire, faire lire au cours d’un même accès mémoire les bits de contrôle de code correcteur d’erreur associés à cette donnée ainsi que tous les autres bits de contrôle de code correcteur d’erreurs stockés dans la deuxième partie de la deuxième zone mémoire et faire stocker dans le registre ces autres bits de contrôle de code correcteur d’erreurs, et lors d’une lecture ultérieure d’une autre donnée dans la première partie de la première zone mémoire, faire extraire du registre les bits de contrôle de code correcteur d’erreurs associés à cette autre donnée. Système selon la revendication 1, dans lequel ladite au moins une première zone mémoire et la deuxième zone mémoire comportent des rangées, dans lequel chaque rangée de ladite au moins une première zone mémoire (sram1) et chaque rangée de la deuxième zone mémoire (sram5) sont configurées pour stocker des mots de p octets, les bits de contrôle associés aux données stockées dans p rangées successives de ladite au moins une première zone mémoire sont stockés dans les p octets d’une rangée de la deuxième zone mémoire, et les moyens de traitement (MT) sont configurés pour lors de ladite première lecture d’une donnée stockée dans une rangée de la première zone mémoire, faire lire au cours d’un même accès mémoire l’octet contenant les bits de contrôle de code correcteur d’erreur associés à cette donnée et stockés dans la rangée correspondante de la deuxième zone mémoire ainsi que les p-1 autres octets stockés dans ladite rangée correspondante de la deuxième zone mémoire et faire stocker dans le registre ces p-1 autres octets, et lors de ladite lecture ultérieure d’une autre donnée dans une autre rangée de la première zone mémoire, faire extraire du registre l’octet contenant les bits de contrôle de code correcteur d’erreurs associés à cette autre donnée. Système selon l’une des revendications précédentes, dans lequel le dispositif de mémoire (DMM) est un dispositif de mémoire volatile. Procédé de gestion de la consommation d’un système, le système comprenant un dispositif de mémoire (DMM) comportant un premier domaine mémoire (DM1) comportant au moins une première partie d’au moins une première zone mémoire stockant des données, un deuxième domaine mémoire (DM2) comportant une deuxième partie d’une deuxième zone mémoire stockant des bits de contrôle de code correcteur d’erreurs associés aux données, et un registre, le procédé comprenant lors d’une première lecture d’une donnée dans la première partie de la première zone mémoire, une lecture au cours d’un même accès mémoire, des bits de contrôle de code correcteur d’erreur associés à cette donnée ainsi que de tous les autres bits de contrôle de code correcteur d’erreurs stockés dans la deuxième partie de la deuxième zone mémoire et un stockage dans le registre de tous les autres bits de contrôle de code correcteur d’erreurs, et lors d’une lecture ultérieure d’une autre donnée dans la première partie de la première zone mémoire, une extraction du registre des bits de contrôle de code correcteur d’erreurs associés à cette autre donnée. Procédé selon la revendication 4, dans lequel, ladite au moins une première zone mémoire et la deuxième zone mémoire comportant des rangées, chaque rangée de ladite au moins une première zone mémoire (sram1) et chaque rangée de la deuxième zone mémoire stockant des mots de p octets, les bits de contrôle associés aux données stockées dans p rangées successives de ladite au moins une première zone mémoire étant stockés dans les p octets d’une rangée de la deuxième zone mémoire (sram5), le procédé comprend lors de ladite première lecture d’une donnée stockée dans une rangée de la première zone mémoire, un lecture au cours d’un même accès mémoire de l’octet contenant les bits de contrôle de code correcteur d’erreur associés à cette donnée et stocké dans la rangée correspondante de la deuxième zone mémoire ainsi que des p-1 autres octets stockés dans ladite rangée correspondante de la deuxième zone mémoire et un stockage dans le registre de ces p-1 autres octets, et lors de ladite lecture ultérieure d’une autre donnée dans une autre rangée de la première zone mémoire, une extraction du registre de l’octet contenant les bits de contrôle de code correcteur d’erreurs associés à cette autre donnée. Procédé selon l’une des revendications 4 ou 5, dans lequel le dispositif de mémoire (DMM) est un dispositif de mémoire volatile.