Article de reference

Actualisation de la mémoire

Le rafraîchissement de la mémoire est un processus qui consiste à lire périodiquement des informations dans une zone de la mémoire d'un ordinateur et à réécrire immédiatement ce...

la mémoire d'un ordinateur et à réécrire immédiatement ces informations dans la même zone sans modification, afin de préserver l'information. Le rafraîchissement de la mémoire est un processus de maintenance en arrière-plan nécessaire au fonctionnement de la mémoire vive dynamique à semi- conducteurs (DRAM), le type de mémoire informatique le plus répandu, et constitue de fait la caractéristique déterminante de cette catégorie de mémoire.

Dans une puce DRAM, chaque bit de données est stocké sous forme de présence ou d'absence de charge électrique sur un petit condensateur intégré à la puce. Avec le temps, les charges des cellules mémoire se dissipent ; sans rafraîchissement, les données stockées seraient donc perdues. Pour éviter cela, un circuit externe lit et réécrit périodiquement chaque cellule, restaurant ainsi la charge du condensateur à son niveau initial. Chaque cycle de rafraîchissement rafraîchit une zone de cellules mémoire successive, rafraîchissant ainsi toutes les cellules de la puce de manière consécutive. Ce processus est généralement effectué automatiquement en arrière-plan par le circuit mémoire et est transparent pour l'utilisateur. Pendant un cycle de rafraîchissement, la mémoire est indisponible pour les opérations de lecture et d'écriture classiques, mais dans les mémoires modernes, cette interruption est suffisamment négligeable pour ne pas ralentir significativement le fonctionnement de la mémoire.

La mémoire vive statique (SRAM) est une mémoire électronique qui ne nécessite pas de rafraîchissement. Une cellule de mémoire SRAM requiert quatre à six transistors , contre un seul transistor et un condensateur pour la DRAM ; par conséquent, les circuits SRAM occupent une surface plus importante sur la puce. De ce fait, la densité de données est bien inférieure dans les puces SRAM que dans les puces DRAM, ce qui explique le prix plus élevé par bit de la SRAM. C’est pourquoi la DRAM est utilisée comme mémoire principale dans les ordinateurs, les consoles de jeux vidéo, les cartes graphiques et les applications exigeant une grande capacité et un faible coût. La nécessité de rafraîchir la mémoire complexifie la DRAM, mais ses avantages en termes de densité et de coût justifient cette complexité.

amplificateurs de lecture , un par colonne de cellules mémoire, afin de conserver temporairement les données. Lors d'une opération de lecture normale, les amplificateurs de lecture, après avoir lu et verrouillé les données, les réécrivent dans la ligne accédée. Cette configuration permet à l'électronique de lecture normale de la puce de rafraîchir une ligne de mémoire entière en parallèle, accélérant considérablement le processus de rafraîchissement. Bien qu'un cycle de lecture ou d'écriture normal rafraîchisse une ligne de mémoire, les accès mémoire normaux ne garantissent pas l'accès à toutes les lignes dans le temps imparti, ce qui nécessite un processus de rafraîchissement distinct. Au lieu d'utiliser le cycle de lecture normal lors du rafraîchissement, un cycle de rafraîchissement abrégé est utilisé afin de gagner du temps. Ce cycle de rafraîchissement est similaire au cycle de lecture, mais s'exécute plus rapidement pour deux raisons :

  • Pour une actualisation, seule l'adresse de ligne est nécessaire ; il n'est donc pas nécessaire d'appliquer une adresse de colonne aux circuits d'adressage de la puce.
  • Les données lues à partir des cellules n'ont pas besoin d'être acheminées vers les tampons de sortie ni vers le bus de données pour être envoyées au processeur.

Pour garantir que chaque cellule soit actualisée dans l'intervalle de temps d'actualisation, le circuit d'actualisation doit effectuer un cycle d'actualisation sur chacune des lignes de la puce dans cet intervalle.

Types de circuits de rafraîchissement

Bien que certains systèmes anciens aient géré le rafraîchissement par microprocesseur , grâce à une minuterie déclenchant une interruption périodique qui exécutait une sous-routine de rafraîchissement, il était impossible de mettre le microprocesseur en pause, de l'exécuter pas à pas ou de le placer en hibernation pour économiser de l'énergie sans interrompre le processus de rafraîchissement et perdre les données en mémoire. Dans les systèmes modernes, le rafraîchissement est donc géré par des circuits du contrôleur de mémoire , qui peuvent être intégrés à la puce elle-même. Les puces DRAM spécialisées, telles que la mémoire vive pseudostatique (PSRAM), intègrent tous les circuits de rafraîchissement et fonctionnent comme de la mémoire vive statique pour le reste de l'ordinateur.

Actualisation basée sur le processeur

Certains microprocesseurs anciens (par exemple, le Zilog Z80 ) disposaient de registres internes spécifiques capables de fournir le signal de synchronisation d'adresse de ligne (RAS) pour rafraîchir les cellules de mémoire dynamique, ce registre étant incrémenté à chaque cycle de rafraîchissement. Cette fonction pouvait également être assurée par d'autres circuits intégrés déjà utilisés dans le système, s'ils généraient déjà des accès cycliques à la RAM (par exemple, le Motorola 6845 ). Dans les processeurs tels que le Z80, la disponibilité d'un rafraîchissement RAS constituait un argument de vente majeur en raison de la simplification de la conception matérielle. Le rafraîchissement RAS est alors signalé par une combinaison spécifique de fils d'adresse et de contrôle durant les cycles d'horloge redondants (états T), c'est-à-dire pendant le décodage et l'exécution des instructions, lorsque les bus ne sont pas sollicités. Au lieu d'être inactif durant ces états T, le bus d'adresse est présenté sur le registre de rafraîchissement, accompagné d'une combinaison de signaux de contrôle permettant d'activer le circuit de rafraîchissement.

Dans les premières versions du Z80, la prédominance des puces RAM de 16 ko à 128 lignes et un certain manque de prévoyance ont fait que le registre R ne s'incrémentait que sur une plage de 7 bits (0 à 127, 128 lignes) ; le 8e bit pouvait être configuré par l'utilisateur, mais restait inchangé par la cyclage interne. Avec l'arrivée des puces DRAM de plus de 64 kbits (256 lignes), il a fallu ajouter des circuits ou une logique autour du signal de rafraîchissement pour synthétiser le 8e bit manquant et éviter la perte de blocs de données mémoire après quelques millisecondes. Dans certains cas, il était possible d'utiliser des interruptions et un logiciel pour inverser le 8e bit au moment opportun et ainsi couvrir toute la plage du registre R (256 lignes). Une autre méthode, peut-être plus universelle mais aussi plus complexe au niveau matériel, consistait à utiliser un compteur 8 bits, dont la sortie fournissait l'adresse RAS de rafraîchissement au lieu du registre R. Le signal de rafraîchissement du processeur servait d'horloge à ce compteur, ce qui entraînait l'incrémentation de la ligne mémoire à chaque cycle de rafraîchissement. Les versions ultérieures et les processeurs compatibles sous licence du cœur Z80 ont corrigé l'absence du 8e bit dans le cycle automatique, et les processeurs modernes ont considérablement étendu cette fonctionnalité de base pour offrir des solutions complètes et intégrées de rafraîchissement de la DRAM.

DRAM pseudostatique

La mémoire vive pseudostatique (PSRAM ou PSDRAM) est une mémoire vive dynamique dotée de circuits intégrés de rafraîchissement et de contrôle d'adresse, ce qui lui confère un comportement similaire à celui de la SRAM. Elle combine la haute densité de la DRAM avec la simplicité d'utilisation de la SRAM. La PSRAM (fabriquée par Numonyx) est utilisée dans l'iPhone d'Apple et d'autres systèmes embarqués.

Certains composants DRAM disposent d'un mode veille à rafraîchissement automatique. Ce mode permet principalement à un système de suspendre le fonctionnement de son contrôleur DRAM afin d'économiser de l'énergie sans perte de données stockées dans la DRAM, tandis que la PSRAM permet un fonctionnement sans contrôleur DRAM dédié. Une variante embarquée de PSRAM est commercialisée par MoSys sous le nom de 1T-SRAM . Bien qu'il s'agisse techniquement de DRAM, son comportement est très proche de celui de la SRAM ; elle est notamment utilisée dans les consoles GameCube et Wii .

Opération de rafraîchissement

Généralement, le circuit de rafraîchissement comprend un compteur de rafraîchissement contenant l'adresse de la ligne à rafraîchir, appliquée aux lignes d'adresse de ligne de la puce , et une minuterie qui incrémente le compteur pour parcourir les lignes. Ce compteur peut faire partie du circuit de contrôle de la mémoire ou être intégré à la puce mémoire elle-même. Deux stratégies d'ordonnancement ont été utilisées :

  • Actualisation par rafales – une série de cycles d'actualisation sont effectués successivement jusqu'à ce que toutes les lignes aient été actualisées, après quoi les accès mémoire normaux se produisent jusqu'à ce que la prochaine actualisation soit nécessaire.
  • Actualisation distribuée – les cycles d'actualisation sont effectués à intervalles réguliers, entrecoupés d'accès à la mémoire.

L'actualisation par rafales entraîne de longues périodes d'indisponibilité de la mémoire ; c'est pourquoi l'actualisation distribuée est utilisée dans la plupart des systèmes modernes , notamment dans les systèmes temps réel . Dans l'actualisation distribuée, l'intervalle entre les cycles d'actualisation est

Par exemple, la mémoire DDR SDRAM possède un temps de rafraîchissement de 64 ms et 8 192 lignes, soit un intervalle de cycle de rafraîchissement de 7,8 µs. Sur les dispositifs DDRx modernes, seule l’option distribuée est prise en charge. En revanche, les dispositifs LPDDRx prennent toujours en charge le rafraîchissement en rafale.

Actualisation asynchrone vs. synchrone

Les DRAM asynchrones disposent de trois méthodes standard pour assurer le rafraîchissement, sélectionnées par différents modèles de signaux sur les lignes de sélection de colonne (CAS) et de sélection de ligne (RAS) :

  • Actualisation RAS uniquement – ​​Dans ce mode, l'adresse de la ligne à actualiser est fournie par les lignes du bus d'adresse généralement générées par des compteurs externes dans le contrôleur de mémoire.
  • Rafraîchissement CAS-avant-RAS (CBR) – Dans ce mode, le compteur intégré suit la ligne à rafraîchir, et le circuit externe se contente de déclencher les cycles de rafraîchissement. Ce mode consomme moins d'énergie car les tampons du bus d'adresses mémoire n'ont pas besoin d'être alimentés. Il est utilisé dans la plupart des ordinateurs modernes.
  • Actualisation masquée – Il s'agit d'une version alternative du cycle d'actualisation CBR, qui peut être combinée avec un cycle de lecture ou d'écriture précédent. L'actualisation est effectuée en parallèle pendant le transfert de données, ce qui permet de gagner du temps.

Les DRAM synchrones échantillonnent les signaux de commande et d'adresse sur le front d'une horloge. Les modes de rafraîchissement sont :

Rafraîchir la vue de dessus

La fraction de temps que la mémoire passe à rafraîchir, la surcharge de rafraîchissement, peut être calculée à partir du temps système :

Par exemple, une puce SDRAM possède 2¹³ = 8 192 lignes, un intervalle de rafraîchissement de 64 ms, un bus mémoire fonctionnant à 133 MHz et un cycle de rafraîchissement de 4 cycles d'horloge. La durée d'un cycle de rafraîchissement est de

Ainsi, les cycles de rafraîchissement occupent moins de 0,4 % du temps de fonctionnement de la puce mémoire. Dans les puces SDRAM, la mémoire est divisée en banques rafraîchies en parallèle, ce qui permet un gain de temps supplémentaire. Le nombre de cycles de rafraîchissement nécessaires correspond donc au nombre de lignes d'une banque, indiqué dans les spécifications, qui était fixé à 8 192 pour la génération de puces de 2012.

JEDEC pour chaque technologie DRAM et spécifié dans les spécifications du fabricant. Il est généralement de l'ordre de la milliseconde pour la DRAM et de la microseconde pour l'eDRAM . Pour les puces DDR2 SDRAM, il est de 64 ms. L'intervalle de rafraîchissement maximal dépend du rapport entre la charge stockée dans les condensateurs des cellules mémoire et les courants de fuite. Ces derniers augmentant avec la température, les intervalles de rafraîchissement doivent être réduits à haute température. Les puces DDR2 SDRAM disposent d'une structure de rafraîchissement compensée en température ; l'intervalle de rafraîchissement est divisé par deux lorsque la température du boîtier dépasse électroniques basse consommation en mode veille. Plusieurs approches ont été proposées pour prolonger l'autonomie de la batterie entre les charges en réduisant la fréquence de rafraîchissement, notamment le rafraîchissement compensé en température (TCR) et le placement optimisé pour la rétention (RAPID). Les expériences montrent que, dans une puce DRAM standard, seules quelques cellules faibles nécessitent réellement l' intervalle de rafraîchissement maximal de 64 ms , et ce uniquement à la limite supérieure de sa plage de températures spécifiée. À température ambiante (par exemple calcul approximatif .

SRAM

Dans la mémoire vive statique (SRAM), un autre type de mémoire à semi-conducteurs, les données ne sont pas stockées sous forme de charge sur un condensateur, mais dans un circuit bistable . La SRAM ne nécessite donc pas de rafraîchissement. Ces deux types de mémoire présentent chacun des avantages et des inconvénients. La mémoire statique est considérée comme permanente lorsqu'elle est alimentée : une fois écrite, l'information reste en mémoire jusqu'à ce qu'elle soit modifiée. Son utilisation est donc généralement simple en termes de conception de système. Cependant, la structure interne de chaque cellule SRAM requiert six transistors, contre un seul pour une cellule DRAM. Par conséquent, la densité de la SRAM est bien inférieure et son coût par bit bien supérieur à celui de la DRAM.

Autres technologies de mémoire utilisant le rafraîchissement

Plusieurs des premières technologies de mémoire informatique nécessitaient également des processus périodiques similaires au rafraîchissement de la mémoire. Le tube Williams est celui qui présente la plus grande similitude, car, comme la DRAM, il s'agit essentiellement d'une mémoire capacitive dans laquelle les valeurs stockées pour chaque bit se dégradent progressivement en l'absence de rafraîchissement.

Dans la mémoire à tores magnétiques , chaque cellule peut conserver les données indéfiniment, même hors tension. Cependant, la lecture des données d'une cellule efface son contenu. Par conséquent, le contrôleur de mémoire ajoutait généralement un cycle de rafraîchissement après chaque cycle de lecture afin de simuler une opération de lecture non destructive. Certains ordinateurs anciens implémentaient des cycles atomiques de lecture-modification-écriture ( combinant lecture, écriture et modification ) pour l'incrémentation et la décrémentation.

La mémoire à ligne à retard nécessite un rafraîchissement constant car les données sont stockées sous forme de signal dans une ligne de transmission . Dans ce cas, la fréquence de rafraîchissement est comparable au temps d'accès à la mémoire .

La mémoire flash NAND peut nécessiter une forme de rafraîchissement de la mémoire pour détecter et corriger les erreurs ECC , en particulier si la mémoire n'a pas été alimentée depuis longtemps.