FR 2864321 A1 20050624 FR 0315263 A 20031223 Mémoire dynamique à accès aléatoire ou DRAM comportant au moins deux registres tampons et procédé de commande d'une telle mémoire Domaine technique de l'invention La présente invention concerne le domaine des mémoires et particulièrement 10 les mémoires dynamiques à accès aléatoire (DRAM). Etat de la technique Les mémoires dynamiques DRAM connaissent une grande popularité en raison de la grande capacité de stockage qu'elles permettent de réaliser. En revanche, elles imposent un rafraîchissement périodique et, en outre, présentent un accès bien plus lent que celui des mémoires statiques. On a déjà cherché à accroître la bande passante des mémoires dynamiques. A cet effet, une technique connue consiste à associer au plan mémoire des registres tampons ou des mémoires que l'on vient commander au moyen d'un contrôleur mémoire adapté. La demande de brevet français intitulée Procédé de commande de mémoire DRAM rapide et contrôleur adapté par M. HARRAND déposée le 19 novembre 1999 (demande n 99 14610 et publiée sous le n 2 801 388) décrit un procédé et un contrôleur mémoire pour commander une mémoire dynamique comportant un plan mémoire constitué d'un réseau de cellules mémoires et au moins deux registres tampons. ST - 03-GRI-156 La demande de brevet français intitulée Mémoire DRAM rapide par M. HARRAND et D. DOISE, déposée le 7 décembre 1999 (demande n 99 15435 et publiée sous le n 2 802 012) décrit une structure de mémoire DRAM rapide comportant un plan mémoire associé à au moins deux registres tampons permettant l'accès au plan mémoire et propre à assurer la lecture ou l'écriture de la mémoire. Bien que l'usage de mémoires tampons permette d'accroître de manière significative la bande passante des mémoires dynamiques, celles-ci restent encore limitées et bien en deçà de celles des mémoires statiques. Malgré les perfectionnements déjà réalisés, il reste d'actualité de pouvoir accroître encore la bande passante des mémoires dynamiques. C'est là un premier problème technique. En outre, il serait souhaitable que l'on puisse intégrer dans ces mémoires dynamiques un système de correction d'erreur qui, si possible, limite autant que faire ce peut la surface de silicium allouée au mécanisme de correction. C'est là un second problème technique. Enfin, aux problèmes précédents, s'est greffé celui de l'amélioration de la fiabilité des mémoires dynamiques. En raison de leur vif succès, les mémoires dynamiques tendent à se développer d'une manière considérable. Les procédés de déverminage, et notamment ceux réalisés par effet thermique (dits bure-in dans la littérature anglo-saxonne) sont très efficaces pour accélérer le vieillissement de ces composants et identifier ceux qui tomberont prématurément en panne. Ces procédés s'avèrent très coûteux à mettre en oeuvre car il est nécessaire d'effectuer les tests après déverminage en boîtier et en température car les défauts principaux (temps de rétention) ne sont visibles qu'à haute température; or, les supports de certains boîtiers (et non les boîtiers eux-mêmes) se dégradent lorsqu'on les chauffe, ce qui nécessite de changer fréquemment la carte utilisée pour ce test. ST - 03-GR1-156 Il serait souhaitable de disposer d'une technique alternative au déverminage (burn-in) permettant de remédier aux défauts de jeunesse des composants mémoires dynamiques. Exposé de l'invention La présente invention a pour objet une nouvelle structure de mémoire dynamique permettant d'accroître encore la bande passante par rapport aux 10 structures connues. L'invention a également pour objet une structure de mémoire dynamique présentant un dispositif de correction d'erreur nécessitant une surface particulièrement réduite pour sa mise en oeuvre. L'invention a enfin pour objet une technique alternative aux techniques coûteuses de déverminage (burn-in) des mémoires dynamiques. L'invention réalise ces buts au moyen d'un circuit de mémoire, telle qu'une mémoire dynamique à accès aléatoire (DRAM) qui comporte un plan mémoire constitué d'un réseau de cellules mémoire organisées en lignes et en colonnes, et un décodeur ligne. Chaque ligne du plan mémoire correspond à une page de mots. Deux registres tampons, au moins, sont couplés au plan mémoire et permettent alternativement la lecture de mots d'une page de la mémoire et/ou l'écriture de nouveaux mots dans une page de la mémoire. Suivant l'invention, les registres tampons sont organisés avec des circuits annexes de manière à permettre un accès simultané en lecture et en écriture. On parvient ainsi, sur des longues séquences de lecture/écriture au sein d'une même page, à assurer des flots continus en lecture et en écriture. II en résulte alors un accroissement significatif de la bande passante de la mémoire dynamique par rapport aux circuits connus. ST - 03-GR1-156 Dans un mode de réalisation préféré, la mémoire comporte un circuit de correction d'erreur connecté en sortie des registres tampons et basé sur un code correcteur d'erreur (ECC) appliqué à un groupe de n mots au sein d'une même page. Un circuit encodeur permet de calculer le code ECC correspondant au groupe de n mots à écrire. Une logique de contrôle permet d'effectuer des cycles de lecture-modification-écriture du groupe contenu dans les registres tampons, le cas échéant après modification des nouveaux mots à stocker reçus via l'interface lo extérieure de la mémoire. On parvient de ce fait, à accroître substantiellement la fiabilité de la mémoire dynamique en éliminant les erreurs de bits isolées au prix d'un accroissement modique de surface de silicium, tout en ne ralentissant pas les écritures d'un mot du groupe. De préférence, le circuit mémoire comporte un circuit de correction pour recevoir le groupe de n mots, un registre pour stocker, après correction, ledit groupe de n mots et une batterie de multiplexeurs permettant de modifier un mot à l'intérieur du groupe en réponse à une requête d'écriture reçue de l'extérieur et enfin un circuit encodeur pour recalculer un nouveau code correcteur sur ledit groupe modifié avant son stockage dans l'un desdits registres tampons. Dans un mode de réalisation particulier, chaque mot se compose en un octet 25 de huit bits et seize octets sont regroupés en un ensemble de 128 bits sur lesquels est appliqué le code correcteur d'erreurs. Comme le système de correction d'erreur permet de remédier à la grande majorité des erreurs portant sur des cellules isolées, lesquelles correspondent aux défauts de jeunesse des composants mémoires, on constate ainsi que le système complet, comportant les registres tampons organisés de manière à permettre un accès simultané en lecture et en écriture et le mécanisme de correction d'erreur, peut être utilisé comme une technique alternative aux procédés coûteux de déverminage (burn-in) . ST 03-GR1-156 L'invention est également applicable, indépendamment, à toute mémoire même celles qui ne sont pas de type DRAM. L'invention a pour objet également un procédé de commande d'une mémoire dynamique comportant les étapes suivantes: - réception d'une requête pour lire ou écrire un nouveau mot dans la mémoire, comportant une adresse de ligne correspondant à la page du nouveau mot, une adresse de colonne correspondant à la place au sein de la page du nouveau mot, et, dans le cas d'une écriture, le nouveau mot à stocker, - chargement, le cas échéant, de ladite page dans un desdits deux registres tampons accessibles simultanément en lecture et en écriture; - extraction de ladite page chargée du groupe de mots correspondant à la requête 15 au moyen d'un accès en lecture; - application d'un mécanisme de correction d'erreur sur ledit groupe de mots; - mémorisation du groupe de mots corrigés, modification, le cas échéant, de l'un ou plusieurs desdits mots en réponse aux requêtes d'accès en écriture présentées depuis l'interface système; Calcul d'un nouveau code correcteur d'erreur sur ledit groupe de mots avant stockage dans l'un desdits registres tampons au moyen d'un accès en écriture; Sauvegarde, le cas échéant, du contenu de l'autre registre tampon dans une page de la mémoire, afin qu'il soit disponible pour l'exécution de la prochaine 25 requête. Ces différentes opérations étant parallélisées au moyen d'un pipeline de telle sorte que l'on puisse obtenir un flot continu de données en écriture aussi bien qu'en lecture. L'invention a pour objet également, et ce indépendamment de l'existence ou de la structure des registres tampons, un circuit mémoire comprenant un plan mémoire constitué d'un réseau de cellules mémoire organisées en lignes et en colonnes, un décodeur ligne et un décodeur colonne, chaque ligne dudit plan mémoire stockant ST - 03-GR1-156 une page de mots correspondant chacun à une unité d'information élémentaire pouvant être lue ou écrite. Le circuit comporte un système de correction d'erreur associé au dit groupe de mots, ce qui permet de réduire considérablement la surface occupée sur le silicium pour le système de correction d'erreur. Description des dessins D'autres caractéristiques, but et avantages de l'invention apparaîtront à la lo lecture de la description et des dessins ci-après, donnés uniquement à titre d'exemples non limitatifs. Sur les dessins annexés: La figure 1 illustre l'architecture d'une mémoire dynamique basée sur deux registres tampon ou cache. La figure 2 représente un mode de réalisation préféré d'une mémoire dynamique, conformément à la présente invention, comportant un mécanisme de correction d'erreur. Les figures 3A, 3B et 3C illustrent trois modes de réalisation des registres tampons 5 et 6. La figure 4 illustre le fonctionnement de la mémoire en mode lecture. La figure 5 illustre le fonctionnement, en écriture, de la mémoire comportant des registres conformes aux figures 3A et 3B dans le cas où le temps de cycle de la mémoire est inférieur au cycle d'horloge. La figure 6 illustre le fonctionnement, en écriture, de la mémoire comportant des registres conformes aux figures 3A et 3B dans le cas où le temps de cycle de la mémoire est supérieur à la période d'horloge et inférieur à 2 fois la période d'horloge. ST - 03-GR1-156 La figure 7 illustre le fonctionnement, en écriture, de la mémoire comportant des registres tampons conformément à la figure 3C et pour un cycle de matrice ne dépassant pas deux fois la période d'horloge. La figure 8 illustre un mode particulier de réalisation utilisant un signal de validation d'écriture permettant de retarder la réécriture dans la mémoire. La figure 9 illustre un mode de réalisation d'un registre tampon, à trois ports, permettant deux accès simultanés en lecture ou deux accès simultanés en écriture. La figure 10 illustre l'adaptation de l'architecture de la figure 2 à des registres tampons offrant deux ports indifférenciés en lecture et en écriture. La figure 11 illustre l'adaptation de la structure de la figure 2 à des registres 15 tampons présentant deux ports indifférenciés en lecture et en écriture. Description d'un mode de réalisation préféré La structure de mémoire que l'on va décrire constitue un perfectionnement de la mémoire dynamique décrite dans le brevet 2801388 mentionné cidessus Dans un souci de clarté, on rappellera brièvement la structure générale d'une mémoire DRAM comportant deux registres tampons, tels que décrits dans le brevet précité. En référence à la figure 1, on a une structure de mémoire dynamique DRAM 1 qui comporte un plan mémoire 2 composé de cellules mémoires, un décodeur ligne 3 et un décodeur colonne 4. Chaque cellule mémoire est située à l'intersection d'une ligne (ou rangée) et d'une colonne (ligne de bit). Des amplificateurs (non représentés dans la figure) permettent d'accéder à la mémoire, aussi bien aux phases de lecture, d'écriture ou de rafraîchissement. Le décodeur colonne comporte une entrée DIN pour l'écriture et, pour la lecture, une sortie DOUT. Des signaux de validation d'adresse de colonne (CAS) (ou Column Address Strobe dans la littérature anglo-saxonne), d'adresse de colonne (CAD) (Column Adress) et de lectureld'écriture (R/W) sont utilisés pour la commande de la mémoire. Le décodeur ligne est commandé par les signaux de validation d'adresse de ligne (RAS) (ou Row Address Strobe dans la littérature anglo-saxonne), d'adresse de ligne (RAD) ainsi que par un signal de réécriture RWB (Row-Write-Back). D'une manière générale, l'interface entre la mémoire et les entrées/sorties est réalisée au moyen d'une interface système permettant de recevoir les requêtes Io d'accès à la mémoire. On rappelle que les requêtes comportent une adresse de page MSB (Most Significant Bits), une adresse de colonne (Least Significant Bits), un signal R/W indiquant si la requête est une demande de lecture et d'écriture, un signal de données DIN lorsqu'il s'agit d'une requête en écriture etc. Le décodeur ligne est commandé par un signal de validation d'adresse de ligne (Row Address Strobe) ; un signal d'adresse de ligne (Row Address). Des circuits amplificateurs (non représentés) sont positionnés sur chaque ligne de bit, entre le plan mémoire et le décodeur colonne, et permettent la lecture, l'écriture et le rafraîchissement des cellules mémoires. Deux registres tampons ou caches, respectivement 5 et 6, sont situés entre le décodeur de colonne et le plan mémoire 2 et servent à interfacer ce dernier avec les entrées/sorties de la mémoire. On emploie à cette fin des mémoires à accès rapide et on stocke dans le cache une page complète de 1024 bits organisés en mot de 8 bits chacun (soit un octet). Ainsi, les données qui sont stockées dans le plan mémoire 2 ne sont accessibles que via les deux registres tampons 5 et 6 et l'on utilisera un contrôleur mémoire tel que celui décrit dans le brevet précité pour commander l'ensemble des constituants de la mémoire dynamique. Enfin, Deux signaux RTC et RAC permettent de sélectionner le registre tampon à utiliser lors d'un accès RAS: 5, 6, ou aucun des 2 (rafraîchissement).] La figure 2 illustre le perfectionnement apporté à la mémoire de la figure 1 conformément à la présente invention. Les éléments qui sont communs à ceux de la figure 1 portent les mêmes références numériques que dans la figure 1. On ST - 03-GR1-156 retrouve ainsi en particulier le plan mémoire 2, le décodeur lignes 3 et les mémoires caches 5 et 6 permettant de stocker les pages complètes. Une interface 115 sert aux transferts en entrée et en sortie. Des éléments à retard 114 et 116 sont utilisés pour assurer un retard des données entrant dans l'interface mémoire afin de s permettre au contrôleur de mémoire de réaliser les différents accès nécessaires aux registres de cache. Dans la structure mémoire qui est proposée, on organise les registres tampons 5 et 6 de manière à leur permettre un accès simultané en lecture et en lo écriture. De préférence, on aménage autour des deux registres 5 et 6 des circuits permettant de présenter simultanément une adresse colonne de lecture et/ou une adresse de colonne d'écriture. Il en résulte que le plan mémoire est connecté directement aux registres tampons sans décodeur colonne. La figure 2 ne comporte pas l'élément 4 qui était représenté dans la figure 1. Le décodeur colonne est situe après les registres tampons: il est constitué par un ensemble de multiplexeurs 103, 104 et 108 que le décrira ci-après. De ce fait les registres tampons 5 et 6 réalisent l'équivalent d'une mémoire à double port jusqu'à présent inconnue pour des mémoires dynamiques et l'on peut ainsi, dans le cas d'accès successifs à une même page (bursts) assurer un flot continu simultanément en écriture et en lecture, comme on le verra plus particulièrement en relation avec les chronogrammes des figures 4 et suivantes. L'invention réalise ainsi une mémoire dynamique DRAM dont le fonctionnement s'apparente à celui d'une mémoire à double port. On peut réaliser de manières diverses les registres tampons 5 et 6, et 3o notamment leur donner la forme de bascules classiques. A titre d'exemples nullement limitatifs, on envisagera successivement trois modes de réalisation pour montrer la grande diversité des modes de réalisation envisageables. ST - 03-GR1-156 La figure 3A illustre un premier mode de réalisation du registre tampon 5 ou 6. Le registre 5 comporte un ensemble de blocs 310-i (avec i variant de 0 à 7 dans l'exemple considéré) présentant chacun la largeur d'un groupe de mots, par exemple 128 bits. Chaque bloc 310-i comporte seize paires de registres de huit bits chacun, respectivement 311-i -j et 312-i -j (avec j variant de 0 à 15), montés suivant une structure de bascules maître/esclaves. L'entrée d'un registre maître reçoit le mot D1n à charger provenant soit de l'interface avec l'extérieur soit de la matrice 2. Dans un souci de clarté, on a seulement illustré le seul bloc 310-7 dans la figure 3A. Comme on le voit, le bloc 310-7 comporte une première paire de registres de huit bits, respectivement 311-7-0 et 312-7-0. Le registre maître 312-7-0 reçoit le mot de huit bit à stocker qui provient soit d'un bus 330 (D1n) via un premier commutateur 313-7-0, soit de la matrice mémoire 2 via une interface 320 et un second commutateur 314-7-0. La registre esclave 311-7-0 est lui-même connecté à l'interface de sortie Dont (à travers les multiplexeurs 103 (resp. 104) et 108 de la figure 2, non représentés sur la figure 3) ou à la matrice 2 via le bus 320 (si l'on souhaite faire une opération de WRITE BACK) . De la même manière, le bloc 310-7 comporte une seizième paire de registres 311-7-15 et 312-7-15, monté suivant une structure maître/esclave également, et associés à deux commutateurs 313-7-15 et 314-7-15 permettant respectivement la réception d'un octet provenant de la matrice mémoire 2 ou du bus 330. Les commutateurs 314-i -j sont tous activés lors d'une commande de 25 chargement d'une page afin de permettre le chargement des 1024 bits contenus dans une même page de la matrice mémoire 2. Les commutateurs 313-i -j sont activés lorsque l'on a simultanément un niveau bas sur le signal d'horloge, un signal de commande en écriture (WRITE) et le signal de sélection d'un groupe i particulier (parmi les huit groupes possibles dans l'exemple considéré). La figure 3B correspond à un mode de réalisation particulièrement avantageux et, par conséquent, préféré pour les registres tampons 5 et 6. Comme ST - 03-GR1-156 précédemment, chaque registre comporte un ensemble de huit blocs 410-0 à 410-7, comportant chacun seize registres 411-i -j montés en bascules esclaves - associés à deux commutateurs 413-i -j et 414-i -j permettant la réception d'une donnée soit de l'interface 330 (D; n) , soit de la matrice 2 via l'interface 320. Dans ce second mode de réalisation, on dispose un jeu de bascules maîtres 440-0 à 440-15 qui sont communes aux bits de même rang pour tous les mots d'une même page. lo L'ensemble des bascules maîtres 440-0 à 440-15 constitue alors un registre d'entrée représenté par l'élément 120 sur la figure 2 qui présente la largeur d'un groupe de mots (soit 128 bits) et composé de bascules simples également. L'ensemble de ce registre d'un mot et de l'un des registres tampons se comporte alors comme si le registre tampon était composé de bascules maitre-esclave, la bascule maître 322 étant dans le registre d'entrée et la bascule esclave 321 dans le registre tampon. Cette solution présente l'avantage de réduire la surface occupée sur le silicium. La figure 3C illustre enfin un troisième mode de réalisation pour les registres tampons, lesquels sont constitués de blocs 510-i (i variant de 0 à 7) comportant une simple bascule 511-i-j (par exemple la bascule 5117-15 sur la figure), à laquelle on adjoint en entrée (dans le registre 120 de la figure 2) un registre maître-esclave 540-j et 550-j, tel que les registres 540-15 et 550-15 qui sont illustrés et commandés par les signaux horloge (CK) et commande d'écriture (WRITE). Les commutateurs 513 et 514 sont identiques aux commutateurs 413 et 414 de la figure précédente. Cette dernière solution peut permettre de diminuer le temps d'établissement des données (set-up time) par rapport à la réalisation de la figure 3B, mais oblige à ajouter un cycle d'écriture dans le tampon dans les chronogrammes décrits plus bas. Dans ce cas, il est nécessaire que cette écriture puisse être faite en même temps que l'on démarre un cycle de réécriture du registre tampon dans la matrice, ce qui est en pratique possible, car l'écriture dans le tampon prend peu de temps, et que, lors d'une opération de réécriture du tampon dans la matrice, un certain nombre d'opérations peuvent être faites avant d'avoir besoin des données à écrire. ST - 03-GR1-156 - 12 - Il est à noter que, dans un souci de clarté, les figures 3A, 3B et 3C ne décrivent que la structure des registres tampons au regard de la charge utile des données à stocker. Il est clair que lorsqu'un code correcteur d'erreur tel que celui qui sera décrit ci-après est utilisé il faut prévoir, l'écriture et la lecture des bits d'ECC pour chacun des groupes de mots. La numérotation des bits qui est indiquée dans les figures 3A, 3B et 3C ne tient pas compte de l'existence des 8 ou 9 bits (pour chaque groupe de mots) affectés au code correcteur afin de ne pas surcharger la figure. Il est clair qu'un homme du métier prévoira une structure duale pour les ECC avec la même commande et cette structure duale ne sera pas développée plus avant. Suivant la manière dont sont réalisés les registres tampons 5 et 6, il peut ne pas être possible de lire et écrire simultanément à la même adresse du même registre. Dans ce cas, on prévoit d'insérer un mécanisme au sein du contrôleur 105 pour vérifier si une requête d'écriture a lieu à la même adresse que la requête précédente (ou celle encore d'avant, suivant le pipeline choisi) de la même salve, ce qui peut être fait à l'aide d'un comparateur d'adresse colonne et de registres d'adresses. Si c'est le cas, il suffira de ne pas relire de nouveau la donnée précédente, mais plutôt d'utiliser le résultat précédent. En revenant à la figure 2, on va décrire à présent un autre perfectionnement qui apporte un avantage particulièrement important puisqu'il permet d'introduire dans la mémoire un mécanisme de correction d'erreur et ce au prix d'une modique augmentation de la surface de silicium allouée à ce mécanisme de correction. A cet effet, les registres tampons 5 et 6 sont organisés pour stocker chacun une page de 1024 bits comportant des mots de huit bits, et les mots sont groupés pour former des ensemble ci-après désigné groupe de mots de 128 bits sur lesquels, avantageusement, on peut venir appliquer un mécanisme de correction d'erreur. Dans l'exemple qui est décrit, le choix de l'organisation de la page en groupe de mots composé de 128 bits est parfaitement arbitraire de même que le choix du code correcteur d'erreur - et il est clair qu'un homme du métier pourra adapter l'enseignement de l'invention à toute organisation différente. ST - 03-GR1-156 - 13 - Comme on le voit dans la figure 2, le registre tampon 5 (resp. registre 6) est associé à un multiplexeur 103 (resp. un multiplexeur 104) qui permet de sélectionner un groupe de mots composé d'un ensemble de 128 bits plus un code correcteur d'erreur ECC au sein de la page de 1024 bits. A cet effet, le multiplexeur 103 reçoit un signal d'adresse de colonne de lecture d'une machine d'état 105. En sortie du multiplexeur 103, les 128 bits (augmentés du code correcteur ECC) sont transmis à une première entrée d'un multiplexeur 108 commandé par un signal de sélection de cache de lecture, lui-même également généré par la machine d'état 105. De la même manière, le registre tampon 6 est associé au multiplexeur 104 qui Io est commandé par un signal d'adresse de colonne généré lui aussi par la machine d'état 105. En sortie du multiplexeur 104, les 128 bits (augmenté du code correcteur ECC) sont transmis à une seconde entrée du multiplexeur 108 de sélection de cache de lecture. Les adresses de colonnes d'écriture sont transmises aux registres tampons 5 et 6 via deux décodeurs, respectivement 106 et 107. La sortie du multiplexeur 108 est transmise, via un amplificateur de sortie de la macrocellule DRAM (non représenté sur la figure) à un circuit 110 de correction d'erreur qui fournit, en sortie, une donnée sur 128 bits qui est en principe exempte d'erreur, laquelle est ensuite transmise pour y être stockée dans un registre 113. La sortie du registre 113 est connectée à une première entrée d'une batterie de n multiplexeurs, respectivement 112-1 à 112-n. Les n multiplexeurs permettent de recomposer un nouvel ensemble de 128 bits en tenant compte, le cas échéant, d'un ou plusieurs mots (ou octets dans notre exemple) qui auront pu être modifiés par l'interface Bus système, via l'interface 115 et l'élément à retard 114. La sortie des n multiplexeurs 112-1 à 112-n est transmise à un encodeur ECC 111, lequel permet de regénérer un nouveau code correcteur d'erreur qui sera alors concaténé aux 128 bits (dans l'exemple considéré) avant son stockage dans le registre 120 (qui correspond à la bascule d'entrée des registres tampons décrits plus spécifiquement dans les figures 3A, 3B ou 3C, selon le cas), puis dans l'un des registres tampons. ST - 03-GR1-156 Comme il est possible d'écrire un groupe de mots modifié dans un registre tampon pendant qu'on lit un autre groupe de mots dans celui-ci (ou dans l'autre registre tampon), ces opérations peuvent être pipelinées - suivant l'expression anglo-saxonne en sorte que l'on peut écrire un groupe de mots ou un sous- ensemble de ce groupe à chaque cycle d'horloge. L'ECC n'introduit donc pas de pénalité en temps d'écriture, comme ce serait le cas dans un système n'utilisant qu'un seul port d'accès aux registres tampons. Ainsi, la structure de la mémoire décrite en relation avec la figure 2 permet d'effectuer des modifications un ou plusieurs mots au sein d'un groupe de mots, tout en permettant le recalcul d'un nouveau code correcteur d'erreur via l'encodeur 111. De ce fait, on peut réduire considérablement la surface de silicium allouée au mécanisme de correction d'erreurs puisque pour un mot de 128 bits il suffit d'un unique code de 8 bits alors que 4 mots de 6 bits s'avéreraient nécessaires si l'on effectuait la correction d'erreur directement sur des mots de 32 bits. Ainsi, comme on le voit, on peut introduire un mécanisme efficace tout en minimisant la surface de silicium allouée à ce mécanisme. D'une manière générale, la machine d'état 105 fournit tous les signaux nécessaires à la commande des multiplexeurs mentionnés précédemment, ainsi que les signaux d'adresse de colonne et les signaux de validation d'adresses de colonnes (CAS). La génération de tels signaux de commande est à la portée d'un homme du métier et, dans un souci de simplicité, ne sera donc pas exposée plus avant. La structure comporte enfin un élément de mémoire 119 pour mémoriser l'adresse de page MSB précédente à la requête en cours, ainsi qu'un comparateur 118 pour comparer l'adresse de page de la requête en cours à l'adresse de page précédente. Des signaux de requête, READIWRITE et WAIT ( ce dernier permettant de ralentir le système. en cas de salve trop courte, par exemple) ne sont pas représentés dans la figure. Le résultat de lacomparaison est fourni à la machine d'état 105, laquelle peut alors élaborer les signaux de commande de la mémoire et, notamment, provoquer l'accès à une nouvelle page dans le plan ST - 03-GR1-156 2864321 -15mémoire 2. En cas de requêtes successives concernant une même page déjà stockée dans l'un des deux registres tampons 5 et 6, il n'est pas fait appel à un nouvel accès dans le plan mémoire 2. En revanche, si l'adresse de page (MSB) de la requête courante s'avère être différente de la précédente, ce qui est détecté par le comparateur 118, alors la machine d'état 105 provoque un nouvel accès au plan mémoire au moyen du signal RAS et fait transférer le contenu de la page considérée dans l'un des deux registres tampons. Le signal RAS est transmis au décodeur lignes 2. Comme on le sait, lorsque to le signal RAS passe à un état bas, une ligne du plan mémoire devient accessible pour le chargement d'une des deux mémoires tampons ou cache 5 ou 6. Lorsque les données ont été transférées dans un des deux registres, la mémoire retourne à son état de précharge dans l'attente d'un nouvel accès à la mémoire. D'une manière générale, on intercale entre l'interface de la mémoire 115 et cette dernière des éléments de retard, tel que les éléments 114 et 116 permettant de retarder le traitement de l'adresse de colonne (CAD) d'une requête par rapport à l'adresse de page (RAS) de cette même requête. Un exemple de réalisation, basé sur des registres à décalage, est décrit dans le brevet précité et ne sera donc pas exposé plus avant. On fixera précisément le retard en fonction du temps d'accès au plan mémoire considéré. On fixera également les mécanismes de rafraîchissement de manière à permettre un rafraîchissement périodique du plan mémoire comme cela est connu. Le fonctionnement de la structure de mémoire va être mieux compris en relation avec la description des chronogrammes des figures 4 à 8. La figure 4 illustre le fonctionnement de la mémoire dans un mode de lecture. Dans l'exemple considéré, on suppose, à titre d'exemple nullement limitatif, que le chargement d'une page prend un temps double de la période d'horloge. En outre, en général, on provoque un décalage des requêtes colonnes (CAS) sur les requêtes lignes (RAS) pour tenir compte du temps nécessaire au chargement des deux mémoires tampons 5 et 6. Ce décalage est introduit par les éléments à retard 114 et 116 qui, de préférence, seront réalisés au moyen de registres à décalage. Il est ST 03-GR1-156 supposé , dans ce chronogramme, que l'on peut effectuer un cycle de lecture d'un registre tampon en même temps que l'on termine un cycle de lecture dans la matrice mémoire avec chargement dans ce même registre tampon. Si cela n'était pas le cas, on peut alors prévoir de retarder d'un cycle la lecture du registre tampon. Comme on le voit dans la figure 4, les requêtes, qui sont des requêtes de lecture (R) sont présentées de façon synchrone par rapport à une horloge CK. Le troisième chronogramme de la figure 4 illustre la ligne d'adresses, à savoir les adresses de page et de colonnes des mots qui sont définies dans lesdites requêtes. Dans l'exemple considéré, on voit que les requêtes de lecture portent sur la succession de deux mots (référencés AO et Al) d'une page d'adresse A, puis deux mots BO et BI d'une page d'adresse B, puis deux mots CO et Cl d'une page C, suivi de deux mots DO et D1 d'une page D etc... A noter que, suivant une convention déjà adoptée dans le brevet précité, AO signifie page A et mot 0 . Le quatrième chronogramme illustre les accès au plan mémoire 2. Lorsqu'une requête d'accès à la mémoire est reçue, on lit la page correspondante dans la matrice mémoire seulement si cette page est différente de celle de la requête précédente, grâce au comparateur 118 et à l'élément mémoire 119 qui stocke les poids forts (MSB) de l'adresse de page reçue. La lecture de la page dans le plan mémoire prend en général un temps assez long pour des raisons inhérentes à la technologie de la mémoire dynamique. La page entière est alors chargée dans l'un des deux registres tampons 5 et 6. Dans la figure 4, l'accès illustré par FA montre que le contrôleur, au cycle d'horloge suivant la requête de lecture sur la page A, provoque un accès au plan mémoire pour venir charger dans le registre tampon 5 la première page A requise. Cela correspond aux cycles 1 et 2 de la figure 4. Une fois le registre tampon 5 chargé avec le contenu d'une ligne mémoire, on peut ensuite lire ou écrire très rapidement dans ce même registre. Pendant ce temps, on peut, en cas de besoin, charger une autre page dans l'autre registre de ST - 03-GR1-156 cache, ou réécrire le contenu du registre tampon 6 dans la mémoire si ce contenu a été modifié précédemment par des accès en écriture. Au cycle 3 on voit que le plan mémoire est devenu de nouveau accessible pour une nouvelle requête et, le cas échéant, une nouvelle page B peut être chargée dans l'autre registre tampon, à savoir le registre 6. C'est ce qui se produit dans l'exemple illustré dans la figure 4: le contrôleur a déterminé , grâce aux éléments de mémorisation 119 et au comparateur 118, que la requête courante portait sur une autre page et, par conséquent, il provoque le chargement de cette nouvelle page B dans le second registre 6 qui n'a pas été utilisé la fois précédente et cette nouvelle page devient disponible deux coups d'horloge plus tard (cycle 5). Par convention, on notera que les accès impliquant le registre de tampon 6 sont représentés en pointillé sur tous les chronogrammes alors que ceux relatifs au 15 registre 5 sont dessinés en trait plein. Les opérations de lecture s'effectuent alors successivement suivant ce principe, et l'on voit que le circuit de correction d'erreur 110 fournit en sortie DOUT un flux de données en principe exempt d'erreur de bit. On constate déjà avec force, à la lumière des chronogrammes de la figure 4, l'intérêt que présente la structure proposée lorsque l'on accède en lecture à la mémoire en mode salve ou rafale ( ou burst suivant la terminologie anglo- saxonne) , c'est à dire successivement à plusieurs adresses appartenant à une même page. Dans cette situation, l'on peut obtenir en sortie de la mémoire un flot continu de données, sans aucun temps mort (ou wait- states ) et ceci malgré les opérations de correction d'erreur. Dans le mode de réalisation préféré, on ne prévoit pas d'opérations de lecture/modification/écriture, car l'ECC est ici utilisé uniquement pour corriger des défauts fixes. Clairement, on pourrait prévoir un mécanisme de correction d'erreurs de type soft , à savoir des erreurs provoquées par une particule électromagnétique (particule alpha, en général) provoquant un changement d'état non-destructif d'une cellule mémoire. Dans ce cas, le mécanisme à appliquer est similaire à celui décrit pour les écritures. Cela est possible dès que le temps pendant lequel on accède successivement à des mots ST - 03-GR1-156 d'une même page est supérieur au temps de cycle de la matrice en lecture, et à 2 fois le temps de cycle de la matrice mémoire principale en écriture. D'une manière générale, le fonctionnement de la structure de mémoire reste identique à celui décrit dans les brevets précités pour les opérations de lecture. C'est dans le mode d'écriture que l'on observe l'avantage décisif de la structure mémoire qui est proposée. En effet, le traitement des requêtes d'écriture tire pleinement parti des possibilités d'accès simultané en lecture et en écriture qui sont aménagées pour les registres tampons 5 et 6. Il est alors possible de les adresser simultanément en lecture et en écriture à des adresses différentes, du fait qu'ils disposent chacun d'un ensemble décodeur/multiplexeur spécifique (tels que les éléments 106 et 103 pour la mémoire cache 5). Dans un souci de clarté d'exposé, on va considérer à présent le fonctionnement en écriture des modes de réalisation des figures 3A et 3B et ce dans un exemple où la fréquence d'horloge est égale au temps de cycle de la mémoire, et où l'on exécute des accès en écriture par salve de deux mots d'une même page. Clairement, cet exemple n'est pas le plus intéressant et l'on verra plutôt que c'est en relation avec la figure 6 que l'on trouvera les meilleurs gains en bande passante. La figure 5 illustre néanmoins le principe de fonctionnement pour un cas particulièrement simple et c'est pour cette raison que nous le développerons en premier lieu. On notera, une fois encore, pour la clarté de l'exposé, que l'on suppose que l'on peut effectuer un cycle de lecture d'un registre tampon ou de cache en même temps que l'on termine un cycle de lecture dans la matrice mémoire avec chargement dans ce même registre de cache. Dans le cas contraire, on prévoit de retarder d'un cycle la lecture du registre de mémoire et l'on s'apercevra qu'il faudra soit effectuer la modification des données et le calcul du code ECC dans le même cycle que la lecture du tampon si la période d'horloge le permet, en supprimant le registre 113, soit utiliser la technique qui sera décrite en relation avec la figure 8 concernant le cas particulier d'une écriture dans le registre tampon simultané avec sa réécriture dans la matrice. Une autre solution consiste ST - 03-GR1-156 en la suspension, pendant 1 cycle toutes les 2 salves, du flot de données en entrée de la mémoire. Lorsqu'un accès en écriture est demandé à une page A qui n'est pas déjà présente dans les registres de cache 5 et 6, on charge cette page dans le registre non utilisé, par exemple le registre 5. C'est l'opération représentée par FA (Fetch A) illustrée dans le chronogramme intitulé Accès au Plan mémoire de la figure 5 (cycle 1). Puis on lit le mot à modifier et le circuit de correction 110 effectue, le cas échéant, la correction à apporter sur le mot. Au cycle 2, sur le front montant du lo signal d'horloge, on stocke le mot corrigé dans le registre 113, puis on remplace la partie correspondante du mot par la donnée à écrire au moyen de la batterie des multiplexeurs 112-1 à 112-n, et on calcule le nouveau code ECC au moyen du circuit encodeur 111. Parallèlement, on reçoit une nouvelle requête d'écriture (Al). Si l'adresse de cette requête appartient comme c'est le cas dans l'exemple considéré à la même page, il n'y a pas lieu de faire un nouvel accès au plan mémoire. Au cycle d'horloge 3, on écrit la première donnée (DAO) corrigée dans le registre de cache 5 sur le front montant de l'horloge, et on effectue la modification de la seconde donnée (DA1). Parallèlement, on reçoit une nouvelle requête (correspondant à l'adresse BO) pour une nouvelle page. La machine d'état 105 provoque alors le chargement de cette nouvelle ligne d'adresse dans le second registre tampon 6, et lit et corrige la donnée DBO d'origine. On constate donc qu'il y a simultanément écriture d'une donnée dans le registre tampon A et lecture d'une donnée dans le registre tampon B, ce qui est rendu possible par la caractéristique de double port des registres de cache 5 et 6. Au cycle 4, on écrit la donnée DAI corrigée dans le registre 5. Comme la requête précédente adressait une autre page, on sait que la première salve est terminée et la machine d'état 105 provoque la réécriture du registre 5 dans la page A du plan mémoire. Cette opération est notée WA ( Write Back du mot A) dans le chronogramme intitulé Opération dans plan mémoire de la figure 5. Une nouvelle requête d'accès à la page B déjà stockée dans le registre 6 est reçue et, dans ce cas, il est inutile de provoquer un nouvel accès au plan mémoire. Il est à ST - 03-GR 1-156 noter que, si cette requête adressait une troisième page, la machine d'état 105 aurait généré alors un signal d'attente transmis à l'interface 115 afin de différer le traitement de la requête. On note que, parallèlement au traitement précédent, on modifie la donnée DBO. Comme cela est illustré sur les chronogrammes de la figure 5, on observe donc que l'on peut parvenir à un flot continu de données tout en mettant en oeuvre le mécanisme de correction d'erreur. Le système fonctionne également si la salve présente une taille supérieure à 2 périodes d'horloge. II n'est alors pas nécessaire d'effectuer un accès à la matrice mémoire à chaque cycle, ce qui réduit d'autant la consommation électrique du système. Lorsque le temps de cycle de la matrice mémoire est supérieur à la période d'horloge, le système fonctionne de la même manière, en décalant d'un ou plusieurs cycles l'opération de modification des données. On obtient à nouveau un flot continu de données à condition que la taille des salves soit supérieure à deux fois le temps de cycle du plan mémoire. La figure 6 illustre l'exemple de fonctionnement le plus représentatif des gains que l'on peut obtenir avec la structure mémoire selon l'invention. C'est un exemple de fonctionnement pour une mémoire présentant un temps de cycle égal à deux fois la période d'horloge, et ce une fois encore pour les registres du type de ceux des figures 3A et 3B. L'on voit en particulier sur les deux derniers chronogrammes que l'on obtient réellement, en cas de salves sur une même page, un flot continu de données en écriture et en lecture. Ainsi, comme on le voit sur les deux exemples décrits et illustrés, l'introduction d'un code correcteur d'erreur est rendue possible grâce à la structure de mémoire selon l'invention tout en assurant une bande passante élevée: en lecture comme en écriture on voit que l'on peut maintenir des flux de données continus dès lorsque que l'on obtient des salves importantes au sein d'une même page. On peut ainsi corriger aisément les défauts de vieillesse des composants. En effet, on a observé que la grande majorité des défauts qui apparaissent du fait du vieillissement des composants sont des défauts de type 1 bit seulement (single bits) en sorte que la structure de mémoire proposée permet de corriger ST - 03-GR1-156 -21 - avantageusement ces défauts. On arrive ainsi à proposer une solution alternative à la technique du déverminage. En outre, on constate que le mécanisme de correction d'erreurs travaille sur plusieurs mots formant un ensemble de 128 bits. Cette taille supérieure permet de réduire l'impact en terme de surface de silicium qui est alloué au mécanisme de correction d'erreur. Contrairement à l'emploi d'un code correcteur de 6 bits pour des mots de 32 bits, on peut ainsi, au moyen d'un code d'une taille de 8 bits, corriger une erreur intervenant sur un groupe de 4 mots de 32 bits. Ce mécanisme permet également à un microprocesseur de 32 ou 64 bits d'écrire des octets (bytewrite) sans pénalité de vitesse. La structure de mémoire dynamique qui vient d'être décrite est particulièrement adaptée à la réalisation de circuits complexes comportant des unités mémoires (system on chip) . Grâce au mécanisme de correction d'erreur on pourra envisager d'accroître la fiabilité des mémoires à un point tel qu'il deviendra même possible d'envisager ce mécanisme comme une solution alternative à la solution coûteuse de déverminage. On notera que l'on pourra en outre adapter l'enseignement de l'invention à toute structure classique de mémoire. La figure 7 illustre un chronogramme représentatif pour des registres conformes à la figure 3C. On constate à présent que l'écriture dans le registre 25 tampon suit d'un cycle le calcul du code correcteur d'erreur. On décrira à présent un mode de réalisation particulier en relation avec la figure 8. Dans le cas où l'on ne peut pas lire le contenu du registre tampon dans le même cycle que l'on lit la matrice, ou bien où la période d'horloge ou le temps de cycle de la matrice mémoire sont tels qu'il n'est pas possible de lire la matrice mémoire, de lire le mot dans le registre tampon et de le corriger dans le même cycle, il peut être nécessaire soit de décaler d'un cycle la lecture du registre tampon, soit de prévoir un cycle de correction d'erreur supplémentaire. ST - 03-GR1-156 Dans le premier cas, le schéma de la figure 2 n'est pas modifié : le contrôleur 105 effectue le cycle de lecture du registre tampon une période plus tard et les éléments 114 et 116 retardent les données d'un cycle de plus. Dans le 2eme cas, un registre de pipeline supplémentaire est introduit, par exemple entre 108 et 110, ou entre 112 et 111, de manière à répartir au mieux le temps de lecture / correction-modification / calcul du nouveau code ECC / écriture en 3 cycles d'horloge au lieu de 2. Io Mais dans ces deux cas, l'on est amené à commencer la réécriture du registre tampon dans la matrice mémoire pendant que l'on reçoit la dernière donnée à écrire de la salve (figure 8). Ceci peut être rendu possible par le mécanisme suivant, dans le cas le plus général, où le temps de cycle de la matrice est supérieur à la période d'horloge: On introduit un signal supplémentaire entre le contrôleur 105 et le séquenceur interne de la matrice mémoire: ce signal indique la validité du contenu du registre tampon à réécrire dans la matrice, et est échantillonné sur le front montant de l'horloge. Lors d'une opération de réécriture (write-back), le séquenceur interne de la matrice mémoire effectue normalement la séquence suivante: décodage de l'adresse ligne, activation des lignes de mot, ce qui provoque l'apparition du signal sur les lignes de bit, puis commande des amplificateurs de lecture, et d'écriture, puis désactivation des lignes de mot, puis retour des lignes de bit à l'état de précharge. Avec l'introduction de ce nouveau signal, si, au moment où le séquenceur interne de la matrice doit commander les amplificateurs d'écriture, ce signal indique la validité des données du tampon, alors le cycle se continue sans interruption. Sinon, le séquenceur attend que ce signal passe à l'état données valides avant de continuer le cycle. Lorsque l'on veut commencer un cycle de réécriture dans la matrice tout en écrivant dans le tampon la dernière donnée de la salve, le signal de validation est à l'état invalide au moment de la commande de réécriture et passe à l'état valide au cycle suivant. ST - 03-GR1-156 Ceci permet donc, comme indique sur la figure 8, d'écrire la dernière donnée de la salve pendant que l'on commence la réécriture du registre tampon dans la matrice mémoire, dans le cas où le temps de cycle de la mémoire est supérieur à la période d'horloge. Dans le cas particulier où le temps de cycle de la matrice est inférieur à la période d'horloge, cela signifie en pratique que la fréquence d'horloge est faible. Dans ce cas, même si l'on ne peut pas lire le contenu du tampon dans le même cycle que la lecture dans la matrice, il sera possible, en supprimant le registre 113, d'effectuer dans le même cycle la lecture du tampon, la correction d'erreur, la modification du mot et le calcul du nouveau code ECC. Il n'est donc pas nécessaire, en pratique, d'écrire dans le tampon dans le même cycle que la réécriture du tampon dans la matrice. Dans l'invention, le mécanisme de correction d'erreurs est utilisé en combinaison avec des mémoires à double port pour la réalisation des registres tampon 5 et 6 afin de permettre des opérations de réécriture simultanément à des opérations de lecture. Il devient ainsi possible, sans pénalité sur la bande passante, de corriger directement les pages dans les registres tampons en tenant compte du code correcteur d'erreur. Le mécanisme de correction d'erreur porte en outre sur un groupe de mots formant par exemple un ensemble de 128 bits afin de réduire la surface utilisée sur le silicium. On améliore de ce fait considérablement la fiabilité de la mémoire dynamique au prix d'une modique augmentation de la surface de semi-conducteur. En effet, en effectuant le calcul du code correcteur d'erreur sur 128 bits par exemple, il suffit d'un unique code de 8 bits là où quatre codes de 6 bits eurent été nécessaires si l'on avait utilisé un mécanisme immédiatement basé sur les mots de 32 bits. Les modes de réalisation que l'on a décrit notamment en relation avec les figures 3A, 3B et 3C, permettent de présenter simultanément une adresse de colonne écriture et une adresse de colonnes lecture. On a vu le grand avantage que l'on pouvait tirer d'une telle architecture notamment lorsqu'il s'agit d'effectuer des calculs de code correcteurs d'erreurs sur des groupes de mots. ST - 03-GRI-156 2864321 -24- Ainsi, en groupant un certain nombre de mots au sein du calcul de correction d'erreur on parvient à minimiser l'espace requis pour disposer le mécanisme de correction d'erreurs. En outre, ce mécanisme permet de corriger aisément les erreurs de bit qui caractérisent les défauts de jeunesse des mémoires dynamiques. En intercalant le mécanisme de correction d'erreurs au sein de la mémoire, conformément à la présente invention, on obtient une solution alternative au déverminage par effet thermique (ou burn-in) qui est toujours coûteux à mettre en oeuvre. Le circuit mémoire de la figure 2 présente de nombreuses applications potentielles. On peut en particulier envisager son emploi pour la réalisation d'un FIFO en couplant cette mémoire à un contrôleur adapté. Le port d'entrée de la FIFO est alors constitué du port d'écriture de la mémoire et le port de sortie de la FIFO est constitué du port de lecture de la mémoire. Lorsqu'une requête de sortie est reçue, le contrôleur charge la page contenant la donnée demandée dans l'un des registres tampons, dans lequel ces données sont ensuite lues sur le port de lecture. De même, les données présentées sur le port d'entrée de la FIFO sont écrites dans le 2ème registre tampon au moyen du port d'écriture de la mémoire. Lorsqu'une requête d'écriture correspondant à une nouvelle page est reçue, le contenu de ce 2ème registre tampon est chargé dans la matrice mémoire. L'on obtient alors une augmentation significative de la bande passante de l'ordre de 30% - par rapport à un FIFO réalisé à l'aide d'une mémoire à 2 registres tampons et un seul port. Un flot continu, tant en lecture qu'en écriture, peut être obtenu en utilisant 4 registres tampons si la longueur de salves (burst en anglais) c'est à dire le nombre de données consécutives appartenant à une même page est supérieur au double du nombre de cycles nécessaire à un accès à la matrice mémoire. La figure 9 illustre un perfectionnement de la mémoire, laquelle comporte, des registres tampons 5 et 6 dotés de deux ports indifférenciés en lecture/écriture. Comme on le voit, le registre tampon est organisé en bloc 610-i (avec i variant de 0 à 7) et chaque bloc, par exemple le bloc 610-7 illustré dans la figure 10, comporte seize registres 611-7-j (j variant de 0 à 15), destiné à constituer la partie esclave d'un couple maître/esclave dont l'élément maître est constitué d'un registre 650-j (j ST - 03-GRI-156 - variant de 0 à 15) d'un port A ou un registre 640-j d'un port B. La commande des registres 640-j ou 650-j maître est assuré par un signal de commande constitué par le ET logique d'un signal d'horloge inversé et d'un signal d'activation de port, respectivement B et A. Grâce à cette nouvelle disposition, chacun des deux registres tampons 5 et 6 peut se voir accédé indifféremment en mode lecture et/ou écriture. La figure 10 illustre l'adaptation du schéma de la figure 2 à de tels registres Io tampons. On retrouve la matrice 2, le décodeur ligne 3. La mémoire comporte à présent un décodeur d'adresses de colonne 106 (resp. décodeur 107) pour le port A, identique à celui représenté dans la figure 2, et un décodeur d'adresse 151 (resp. décodeur 152) pour le second port B. La mémoire comporte ensuite un multiplexeur 103 pour le port A (identique à celui de la figure 2), et un multiplexeur dual 153 affecté au second port B. La mémoire comporte ensuite un multiplexeur 104 pour le port A (identique à celui de la figure 2) et un multiplexeur 154 affecté au port B. Enfin, la mémoire comporte un multiplexeur 108 identique à celui de la figure 2 et affecté au port A auquel on associe un multiplexeur dual 155 qui est destiné au port B. II est à noter que le registre 120 de la figure 2 (non représenté dans la figure 10) est associé, lui également à un registre dual. Comme on le voit, on parvient ainsi à réaliser une mémoire DRAM dotée de deux registres tampons permettant l'accès indifférencié en lecture et en écriture. Avec une telle mémoire, on peut envisager toutes sortes de nouvelles applications particulièrement avantageuses. La nouvelle mémoire permet en effet la communication avec un processeur et un opérateur spécialisé, comme un CODEC par exemple, qui peuvent tous les deux être connectés à la mémoire, chacun sur l'un de ses ports. Un contrôleur arbitre les requêtes des deux opérateurs et charge ST - 03-GRI-156 (resp. réécrit dans la matrice) les pages demandées dans (resp. depuis) les deux registres tampons, en réservant l'un des registres tampons à l'un opérateur et l'autre au second. Les salves peuvent alors être coupées en sous-salves courtes, de manière à offrir une latence faible au microprocesseur par exemple, sans qu'il soit nécessaire de recharger la page précédente, puisqu'elle se trouve toujours dans le registre tampon et sans que cela n'impacte la bande passante ni la consommation. De cette manière, on peut doubler la bande passante, par rapport à un système n'ayant qu'un seul port, à condition que l'on accède successivement à un nombre suffisamment élevé de mots d'une même page afin de n'être pas pénalisé par les accès à la matrice mémoire. On a décrit l'invention avec des mots comportant huit bits et organisés en groupe de mots de 128 sur lesquels on applique un code correcteur comme cela était décrit. II est clair toutefois qu'il ne s'agissait que d'un mode de réalisation illustratif et qu'un homme du métier pourra adapter l'enseignement de l'invention à toute forme d'organisation d'une page d'une mémoire dynamique en groupes de mots présentant une taille quelconque, et notamment 16, 32 ou 64 bits. De même I'ECC pourra s'appliquer à des groupes de mots de taille quelconque. Il est à noter enfin que l'organisation d'un code correcteur d'erreur sur un groupe de mots stockés dans une page est un élément parfaitement indépendant de la réalisation des registres tampons qui pourront être de toute sorte, à un port comme les registres conventionnels dans les mémoires DRAM, ou à plusieurs ports comme cela a été décrit. ST - 03-GR1-156 Revendications 1. Circuit de mémoire dynamique à accès aléatoire (DRAM) comprenant un plan mémoire (2) constitué d'un réseau de cellules mémoire organisées en lignes et en colonnes, et un décodeur ligne (3), chaque ligne dudit plan mémoire correspondant à une page de mots, comportant en outre: - au moins un premier et un second registres tampons (5,6) couplés au plan mémoire permettant la lecture de mots d'une page de la mémoire et/ou l'écriture de nouveaux mots dans une page de la mémoire, lesdits premier et second registre tampon servant alternativement à l'accès de ladite mémoire; caractérisé en ce que qu'ils comportent: - des circuits associés aux dits au moins premier et second registres tampons afin de permettre la présentation simultanée de deux adresses différentes de colonne de lecture ou d'écriture. 2. Circuit de mémoire dynamique à accès aléatoire (DRAM) comprenant un plan mémoire (2) constitué d'un réseau de cellules mémoire organisées en lignes et en colonnes, et un décodeur ligne (3), chaque ligne dudit plan mémoire correspondant à une page de mots, comportant en outre: - au moins un premier et un second registres tampons (5,6) couplés au plan mémoire permettant la lecture de mots d'une page de la mémoire et l'écriture de nouveau mots dans une page de la mémoire, lesdits premier et second registre tampon servant alternativement à l'accès de ladite mémoire; caractérisé en ce que qu'ils comportent: - des circuits associés aux dits premier et second registres tampons afin de permettre la présentation simultanée d'une adresse de colonne de lecture et d'une adresse de colonne d'écriture. ST - 03-GRI-156 3. Circuit de mémoire dynamique à accès aléatoire (DRAM) selon la revendication 2 caractérisé en ce qu'il comporte en outre un mécanisme de correction d'erreurs appliqué sur des groupes de mots de manière à réduire la surface de silicium allouée au mécanisme de correction d'erreur. 4. Circuit selon la revendication 3 caractérisé en ce qu'il comporte: - un circuit de correction d'erreur (110) connecté en sortie desdits au moins premier et second registres tampons et basé sur un code correcteur appliqué à un groupe de n mots constituant un sous ensemble de ladite page; - un registre connecté en sortie dudit circuit de correction d'erreur (110) pour stocker, après correction, le dit groupe de n mots; un ensemble de multiplexeurs (112-1, ... 112-n) pour modifier le continu de mots à l'intérieur dudit groupe; - un circuit encodeur (111) pour recalculer un nouveau code correcteur sur ledit 15 groupe modifié avant son stockage dans l'un desdits registres tampons. 8. Circuit de mémoire selon la revendication 3 dans lequel le nombre de registres tampon est fixé à deux, lesdits registres tampons étant utilisables indifféremment pour la lecture et pour l'écriture et assurant des cycles de lecture-modification- écriture pour accès au plan mémoire. 9. Circuit de mémoire selon la revendication 3 caractérisé en ce qu'il comporte: - un circuit d'interface pour recevoir une requête d'accès à la mémoire comportant au moins une adresse de page (MSB) et une adresse de colonne (LSB) , une commande d'écriture ou de lecture (R/W) et, en cas d'écriture, des données à écrire (DIN) ; - un circuit (118) pour comparer l'adresse de page de la requête courante à l'adresse de page de la requête précédente; - un circuit (119) pour mémoriser l'adresse de page courante dans le cas où cette 30 dernière est différente de l'adresse de page précédente; - un circuit (105) pour provoquer un nouvel accès audit plan mémoire (2) dès que la page courante est différente de la page précédente. ST - 03-GR1-156 7. Circuit de mémoire selon la revendication 3 caractérisé en ce que chaque page présente une taille de 1024 bits et en ce que lesdits circuits encodeur (111) et décodeur (110) opèrent sur des groupes de mots de taille de 128 bits. 8. Circuit de mémoire comprenant un plan mémoire (2) constitué d'un réseau de cellules mémoire organisées en lignes et en colonnes, et un décodeur ligne (3) chaque ligne dudit plan mémoire correspondant à une page de mots, comportant en outre: - au moins un premier et un second registres tampons (5,6) couplés au plan mémoire permettant la lecture de mots d'une page de la mémoire et/ou l'écriture de nouveau mots dans une page de la mémoire, lesdits premier et second registre tampon servant alternativement à l'accès de ladite mémoire; caractérisé en ce que lesdits au moins premier et second registres tampons (5,6) 15 sont disposés en mémoires à double port permettant l'écriture et la lecture simultanée. 9. Circuit de mémoire selon la revendication 8 caractérisé en ce qu'il comporte, en outre, - un circuit de correction d'erreur (110) connecté en sortie desdits au moins premier et second registres tampons et basé sur un code correcteur appliqué à un groupe de n mots constituant un sous ensemble de ladite page; - un registre connecté en sortie dudit circuit de correction d'erreur (110) pour stocker, après correction, le dit groupe de n mots; - un ensemble de multiplexeurs (112-1, ... 112-n) pour modifier le continu de mots à l'intérieur dudit groupe; - un circuit encodeur (111) pour recalculer un nouveau code correcteur sur ledit groupe modifié avant son stockage dans l'un desdits registres tampons. 10. procédé de commande d'une mémoire dynamique à accès aléatoire (DRAM) comprenant un plan mémoire (2) constitué d'un réseau de cellules mémoire organisées en lignes et en colonnes, et un décodeur ligne (3), chaque ligne dudit plan mémoire correspondant à une page de mots, ladite mémoire comportant au moins un premier et un second registres tampons (5,6) accessibles simultanément ST - 03-GR1-156 en lecture et en écriture et permettant la lecture de mots d'une page de la mémoire et/ou l'écriture de nouveau mots dans une page de la mémoire, ledit procédé comportant les étapes suivantes: - réception d'une requête pour lire ou écrire un nouveau mot dans la mémoire, comportant une adresse de ligne correspondant à la page du nouveau mot, une adresse de colonne correspondant à la place au sein de la page du nouveau mot, et, dans le cas d'une écriture, le nouveau mot à stocker, - chargement, le cas échéant, de ladite page dans un desdits deux registres to tampons accessibles simultanément en lecture et en écriture; - extraction de ladite page chargée du groupe de mots correspondant à la requête au moyen d'un accès en lecture; - application d'un mécanisme de correction d'erreur sur ledit groupe de mots; mémorisation du groupe de mots corrigés, - modification, le cas échéant, de l'un ou plusieurs desdits mots en réponse aux requêtes d'accès en écriture présentées depuis l'interface système; Calcul d'un nouveau code correcteur d'erreur sur ledit groupe de mots avant stockage dans l'un desdits registres tampons au moyen d'un accès en écriture; Sauvegarde, le cas échéant, du contenu de l'autre registre tampon dans une page de la mémoire, afin qu'il soit disponible pour l'exécution de la prochaine requête. 11. Procédé suivant la revendication 10 caractérisé en ce que les accès en écriture et en lecture desdits premier et second registres tampons sont parallélisés de manière à obtenir un flux continu en écriture et en lecture lors des accès à une même page. 12. Procédé selon la revendication 10 caractérisé en ce que l'on commence une procédure de réécriture d'une page d'un registre tampon dans la matrice mémoire alors même que l'on reçoit encore la dernière donnée à écrire de la salve correspondant à ladite page et en ce qu'un mécanisme de validation permette de stopper ladite procédure de réécriture si la dernière donnée n'est pas convenablement reçue. ST - 03-GRI-156 stopper ladite procédure de réécriture si la dernière donnée n'est pas convenablement reçue. 10 15