Rafraîchissement de la mémoire - Memory refresh

Le rafraîchissement de la mémoire est le processus consistant à lire périodiquement des informations dans une zone de la mémoire de l' ordinateur et à réécrire immédiatement les informations lues dans la même zone sans modification, dans le but de préserver les informations. Le rafraîchissement de la mémoire est un processus de maintenance en arrière-plan requis pendant le fonctionnement de la mémoire dynamique à accès aléatoire (DRAM) à semi - conducteurs , le type de mémoire informatique le plus largement utilisé, et constitue en fait la caractéristique déterminante de cette classe de mémoire.

Dans une puce DRAM, chaque bit de données de mémoire est stocké en tant que présence ou absence d'une charge électrique sur un petit condensateur sur la puce. Au fil du temps, les charges dans les cellules de mémoire s'échappent, donc sans être rafraîchies, les données stockées finiraient par être perdues. Pour éviter cela, un circuit externe lit périodiquement chaque cellule et la réécrit, rétablissant la charge du condensateur à son niveau d'origine. Chaque cycle de rafraîchissement de mémoire rafraîchit une zone suivante de cellules de mémoire, rafraîchissant ainsi de manière répétée toutes les cellules dans un cycle consécutif. Ce processus est effectué automatiquement en arrière-plan par les circuits de mémoire et est transparent pour l'utilisateur. Pendant qu'un cycle de rafraîchissement se produit, la mémoire n'est pas disponible pour les opérations normales de lecture et d'écriture, mais dans la mémoire moderne, ce temps "de surcharge" n'est pas assez important pour ralentir considérablement le fonctionnement de la mémoire.

Une mémoire électronique ne nécessitant pas de rafraîchissement est disponible, appelée mémoire statique à accès aléatoire (SRAM). Les circuits SRAM nécessitent plus de surface sur une puce, car une cellule de mémoire SRAM nécessite quatre à six transistors , par rapport à un seul transistor et un condensateur pour la DRAM. En conséquence, la densité de données est beaucoup plus faible dans les puces SRAM que dans la DRAM, et la SRAM a un prix par bit plus élevé. Par conséquent, la DRAM est utilisée pour la mémoire principale des ordinateurs, des consoles de jeux vidéo, des cartes graphiques et des applications nécessitant de grandes capacités et un faible coût. Le besoin de rafraîchir la mémoire rend la synchronisation et les circuits DRAM beaucoup plus compliqués que les circuits SRAM, mais la densité et les avantages de coût de la DRAM justifient cette complexité.

Fonctionnement de l'actualisation de la DRAM

Pendant que la mémoire fonctionne, chaque cellule de mémoire doit être rafraîchie de manière répétitive, dans l'intervalle maximum entre les rafraîchissements spécifié par le fabricant, qui est généralement de l'ordre de la milliseconde. Le rafraîchissement n'utilise pas les opérations de mémoire normales (cycles de lecture et d'écriture) utilisées pour accéder aux données, mais des cycles spécialisés appelés cycles de rafraîchissement qui sont générés par des circuits de compteur séparés dans les circuits de mémoire et intercalés entre les accès de mémoire normaux.

Les cellules de stockage sur une puce mémoire sont disposées dans un réseau rectangulaire de rangées et de colonnes. Le processus de lecture dans la DRAM est destructeur et supprime la charge sur les cellules de mémoire dans une rangée entière, il y a donc une rangée de verrous spécialisés sur la puce appelés amplificateurs de détection , un pour chaque colonne de cellules de mémoire, pour conserver temporairement les données. Au cours d'une opération de lecture normale, les amplificateurs de détection après avoir lu et verrouillé les données, réécrivent les données dans la ligne accédée avant d'envoyer le bit d'une seule colonne à la sortie. Cela signifie que l'électronique de lecture normale sur la puce peut rafraîchir une rangée entière de mémoire en parallèle, accélérant considérablement le processus de rafraîchissement. Un cycle de lecture ou d'écriture normal rafraîchit une ligne de mémoire, mais on ne peut pas compter sur les accès mémoire normaux pour atteindre toutes les lignes dans le temps nécessaire, ce qui nécessite un processus de rafraîchissement séparé. Plutôt que d'utiliser le cycle de lecture normal dans le processus de rafraîchissement, pour gagner du temps, un cycle abrégé appelé cycle de rafraîchissement est utilisé. Le cycle de rafraîchissement est similaire au cycle de lecture, mais s'exécute plus rapidement pour deux raisons :

  • Pour un rafraîchissement, seule l'adresse de ligne est nécessaire, de sorte qu'une adresse de colonne n'a pas besoin d'être appliquée aux circuits d'adresse de puce.
  • Les données lues à partir des cellules n'ont pas besoin d'être introduites dans les tampons de sortie ou le bus de données pour être envoyées à la CPU.

Le circuit de rafraîchissement doit effectuer un cycle de rafraîchissement sur chacune des lignes de la puce dans l'intervalle de temps de rafraîchissement, pour s'assurer que chaque cellule est rafraîchie.

Types de circuits de rafraîchissement

Bien que dans certains premiers systèmes, le microprocesseur contrôlait le rafraîchissement, avec une minuterie déclenchant une interruption périodique qui exécutait un sous - programme qui effectuait le rafraîchissement, cela signifiait que le microprocesseur ne pouvait pas être mis en pause, pas à pas ou mis en veille prolongée sans arrêter le rafraîchissement. processus et de perdre les données en mémoire. Ainsi, dans les systèmes modernes, le rafraîchissement est géré par des circuits dans le contrôleur de mémoire , ou de plus en plus sur la puce elle-même. Certaines puces DRAM, telles que la RAM pseudostatique (PSRAM), ont tous les circuits de rafraîchissement sur la puce et fonctionnent comme une RAM statique en ce qui concerne le reste de l'ordinateur.

Habituellement, le circuit de rafraîchissement se compose d'un compteur de rafraîchissement qui contient l'adresse de la rangée à rafraîchir qui est appliquée aux lignes d'adresse de rangée de la puce , et d'un temporisateur qui incrémente le compteur pour parcourir les rangées. Ce compteur peut faire partie des circuits du contrôleur de mémoire, ou sur la puce mémoire elle-même. Deux stratégies d'ordonnancement ont été utilisées :

  • Rafraîchissement en rafale - une série de cycles de rafraîchissement est effectuée l'un après l'autre jusqu'à ce que toutes les lignes aient été rafraîchies, après quoi des accès à la mémoire normaux se produisent jusqu'à ce que le prochain rafraîchissement soit requis
  • Rafraîchissement distribué - les cycles de rafraîchissement sont effectués à intervalles réguliers, entrecoupés d'accès mémoire.

Le rafraîchissement en rafale entraîne de longues périodes d'indisponibilité de la mémoire. Le rafraîchissement distribué a donc été utilisé dans la plupart des systèmes modernes, en particulier dans les systèmes en temps réel. En rafraîchissement distribué, l'intervalle entre les cycles de rafraîchissement est

Par exemple, la DDR SDRAM a un temps de rafraîchissement de 64 ms et 8 192 lignes, donc l'intervalle de cycle de rafraîchissement est de 7,8 µs.

Les générations récentes de puces DRAM contiennent un compteur de rafraîchissement intégré, et les circuits de commande de mémoire peuvent soit utiliser ce compteur, soit fournir une adresse de ligne à partir d'un compteur externe. Ces puces ont trois manières standard de fournir un rafraîchissement, sélectionnées par différents modèles de signaux sur les lignes « sélection de colonne » (CAS) et « sélection de ligne » (RAS) :

  • " RAS only refresh " - Dans ce mode l'adresse de la ligne à rafraîchir est fournie par les lignes du bus d'adresse, elle est donc utilisée avec des compteurs externes dans le contrôleur mémoire.
  • " CAS avant rafraîchissement RAS " (CBR) - Dans ce mode, le compteur sur puce garde une trace de la ligne à rafraîchir et le circuit externe initie simplement les cycles de rafraîchissement. Ce mode consomme moins d'énergie car les tampons du bus d'adresse mémoire n'ont pas besoin d'être alimentés. Il est utilisé dans la plupart des ordinateurs modernes.
  • " Rafraîchissement caché " - Il s'agit d'une version alternative du cycle de rafraîchissement CBR qui peut être combiné avec un cycle de lecture ou d'écriture précédent. Le rafraîchissement se fait en parallèle pendant le transfert des données, ce qui permet de gagner du temps.

Depuis la génération 2012 des puces DRAM, le mode "RAS uniquement" a été supprimé et le compteur interne est utilisé pour générer le rafraîchissement. La puce dispose d'un "mode veille" supplémentaire, à utiliser lorsque l'ordinateur est en veille prolongée , dans lequel un oscillateur sur puce génère des cycles de rafraîchissement internes afin que l'horloge externe puisse être arrêtée.

Rafraîchir les frais généraux

La fraction de temps que la mémoire consacre à l'actualisation, la surcharge d'actualisation, peut être calculée à partir de la synchronisation du système :

Par exemple, une puce SDRAM a 2 13 = 8 192 lignes, un intervalle de rafraîchissement de 64 ms, le bus mémoire fonctionne à 133 MHz et le cycle de rafraîchissement prend 4 cycles d'horloge. La durée d'un cycle de rafraîchissement est

Ainsi, moins de 0,4% du temps de la puce mémoire sera pris par les cycles de rafraîchissement. Dans les puces SDRAM, la mémoire de chaque puce est divisée en banques qui sont actualisées en parallèle, ce qui permet de gagner du temps. Ainsi, le nombre de cycles de rafraîchissement nécessaires est le nombre de lignes dans une seule banque, donné dans les spécifications, qui dans la génération de puces 2012 a été gelé à 8 192.

Intervalle de rafraîchissement

L'intervalle de temps maximal entre les opérations de rafraîchissement est normalisé par JEDEC pour chaque technologie DRAM et est spécifié dans les spécifications de la puce du fabricant. Il est généralement de l'ordre de quelques millisecondes pour la DRAM et des microsecondes pour l' eDRAM . Pour les puces DDR2 SDRAM, il est de 64 ms. Cela dépend du rapport entre la charge stockée dans les condensateurs des cellules mémoire et les courants de fuite. Malgré le fait que la géométrie des condensateurs se rétrécit à chaque nouvelle génération de puces mémoire, de sorte que les condensateurs des générations suivantes stockent moins de charge, les temps de rafraîchissement de la DRAM se sont améliorés ; de 8 ms pour les puces 1M, 32 ms pour les puces 16M, à 64 ms pour les puces 256M. Cette amélioration est obtenue principalement en développant des transistors qui provoquent nettement moins de fuites. Un temps de rafraîchissement plus long signifie qu'une fraction plus petite du temps de l'appareil est occupée par le rafraîchissement, ce qui laisse plus de temps pour les accès à la mémoire. Bien que la surcharge de rafraîchissement occupait jusqu'à 10 % du temps de puce dans les DRAM antérieures, dans les puces modernes, cette fraction est inférieure à 1 %.

Comme les courants de fuite dans les semi-conducteurs augmentent avec la température, les temps de rafraîchissement doivent être diminués à haute température. Les puces DDR2 SDRAM ont une structure de rafraîchissement compensée en température ; le temps de cycle de rafraîchissement doit être divisé par deux lorsque la température du boîtier de la puce dépasse 85 °C (185 °F).

La persistance réelle des valeurs de charge lisibles et donc des données dans la plupart des cellules de mémoire DRAM est beaucoup plus longue que le temps de rafraîchissement, jusqu'à 1 à 10 secondes. Cependant, les courants de fuite des transistors varient considérablement entre les différentes cellules de mémoire sur la même puce en raison de la variation du processus. Afin de s'assurer que toutes les cellules de mémoire sont rafraîchies avant qu'un seul bit ne soit perdu, les fabricants doivent définir leurs temps de rafraîchissement de manière prudente.

Ce rafraîchissement fréquent de la DRAM consomme un tiers de la puissance totale consommée par les appareils électroniques basse consommation en mode veille. Les chercheurs ont proposé plusieurs approches pour prolonger l'autonomie de la batterie entre les charges en réduisant le taux de rafraîchissement, notamment le rafraîchissement compensé en température (TCR) et le placement sensible à la rétention dans la DRAM (RAPID). Les expériences montrent que dans une puce DRAM standard, seules quelques cellules faibles nécessitent vraiment l'intervalle de rafraîchissement de 64 ms le plus défavorable, et même alors seulement à l'extrémité supérieure de sa plage de température spécifiée. À température ambiante (par exemple 24 °C (75 °F)), ces mêmes cellules faibles doivent être rafraîchies une fois toutes les 500 ms pour un fonctionnement correct. Si le système peut éviter d'utiliser les 1 % de pages les plus faibles, une DRAM typique n'a besoin d'être rafraîchie qu'une fois par seconde, même à 70 °C (158 °F), pour un fonctionnement correct des 99 % de pages restantes. Certaines expériences combinent ces deux techniques complémentaires, donnant un fonctionnement correct à température ambiante avec des intervalles de rafraîchissement de 10 secondes.

Pour les applications tolérantes aux erreurs (par exemple les applications graphiques), le rafraîchissement des données non critiques stockées dans la DRAM ou l'eDRAM à un taux inférieur à leur période de rétention permet d'économiser de l'énergie avec une perte de qualité mineure, ce qui est un exemple de calcul approximatif .

Technologies de mémoire SRAM et DRAM

SRAM

Dans la mémoire statique à accès aléatoire (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 une paire d' inverseurs à couplage croisé , de sorte que la SRAM n'a pas besoin d'être actualisée. Les deux types de mémoire de base ont des avantages et des inconvénients. La mémoire statique peut être considérée comme permanente lorsqu'elle est sous tension, c'est-à-dire qu'une fois écrite, la mémoire reste jusqu'à ce qu'elle soit spécifiquement modifiée et, par conséquent, son utilisation a tendance à être simple en termes de conception du système. Cependant, la construction interne de chaque cellule SRAM nécessite six transistors, par rapport au seul transistor requis pour une cellule DRAM, de sorte que la densité de la SRAM est beaucoup plus faible et le prix par bit beaucoup plus élevé que la DRAM.

Rafraîchissement basé sur le processeur

Certains des premiers microprocesseurs (par exemple le Zilog Z80 ) fournissaient des registres internes spéciaux qui pouvaient fournir le stroboscope d'adresse de rangée (RAS) pour rafraîchir les cellules de mémoire dynamique, le registre étant incrémenté à chaque cycle de rafraîchissement. Cela pourrait également être accompli par d'autres circuits intégrés déjà utilisés dans le système, si ceux-ci ont déjà généré des accès cycliques à travers la RAM ( par exemple, le Motorola 6845 ). Dans les processeurs tels que le Z80, la disponibilité d'un rafraîchissement RAS était un argument de vente important en raison de sa conception matérielle simplifiante. Ici, le rafraîchissement RAS est signalé par une combinaison unique de fils d'adresse et de commande pendant les cycles d'horloge opérationnellement redondants (T-States), c'est-à-dire pendant le décodage/l'exécution d'instructions lorsque les bus peuvent ne pas être requis. Au lieu que le bus soit inactif pendant de tels états T, le registre de rafraîchissement serait présenté sur le bus d'adresse avec une combinaison de fils de commande pour l'indiquer au circuit de rafraîchissement.

Dans les premières versions du Z80, l'omniprésence des puces RAM de 16 Ko ( c'est-à-dire ayant 128 lignes) et un manque de prévoyance ont fait que le registre R ne s'incrémente que sur une plage de 7 bits (0-127, c'est-à - dire 128 lignes) ; le 8ème bit pourrait être défini par l'utilisateur, mais resterait inchangé par le cycle interne. Avec l'avènement rapide des puces DRAM 64 kbit + (avec un RAS 8 bits), des circuits ou une logique supplémentaires ont dû être construits autour du signal de rafraîchissement pour synthétiser le 8e bit manquant et éviter la perte de blocs de mémoire après quelques millisecondes. Dans certains contextes, il était possible d'utiliser des interruptions pour retourner le 8ème bit au moment approprié et ainsi couvrir toute la plage du registre R (256 lignes). Une autre méthode, peut-être plus universelle mais aussi plus complexe en termes de matériel, consistait à utiliser une puce de compteur 8 bits, dont la sortie fournirait l'adresse RAS de rafraîchissement au lieu du registre R : le signal de rafraîchissement du CPU servait d'horloge pour ce compteur, entraînant une incrémentation de la ligne mémoire à rafraîchir à chaque cycle de rafraîchissement. Les versions ultérieures et les « work-alikes » sous licence du cœur Z80 ont remédié à la non-inclusion du 8e bit dans le cycle automatique, et les processeurs modernes ont considérablement étendu ce provisionnement de base pour fournir de riches solutions tout-en-un pour le rafraîchissement de la DRAM.

DRAM pseudostatique

La RAM pseudostatique (PSRAM ou PSDRAM) est une RAM dynamique avec des circuits de rafraîchissement et de contrôle d'adresse intégrés pour qu'elle se comporte de la même manière que la RAM statique (SRAM). Il combine la haute densité de la DRAM avec la facilité d'utilisation de la vraie 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 ont un "mode d'auto-rafraîchissement", qui implique une grande partie de la même logique qui est nécessaire pour un fonctionnement pseudo-statique, mais ce mode est souvent équivalent à un mode veille. Il est fourni principalement pour permettre à un système de suspendre le fonctionnement de son contrôleur DRAM pour économiser de l'énergie sans perdre les données stockées dans la DRAM, plutôt pour ne pas autoriser le fonctionnement sans contrôleur DRAM séparé comme c'est le cas avec la PSRAM. Une variante embarquée de PSRAM est commercialisée par MoSys sous le nom 1T-SRAM . Il s'agit techniquement de DRAM, mais se comporte un peu comme de la SRAM et est utilisé dans les consoles Nintendo Gamecube et Wii .

Autres technologies de mémoire utilisant le rafraîchissement

Plusieurs premières technologies de mémoire informatique nécessitaient également des processus périodiques similaires dans leur objectif au rafraîchissement de la mémoire. Le tube de Williams a la similitude la plus proche, car, comme avec la DRAM, il s'agit essentiellement d'une mémoire capacitive dans laquelle les valeurs stockées pour chaque bit décroîtraient progressivement à moins d'être rafraîchies.

Dans la mémoire à noyau magnétique , chaque cellule de mémoire peut conserver des données indéfiniment même lorsque l'alimentation est coupée, mais la lecture des données de n'importe quelle cellule de mémoire efface son contenu. En conséquence, le contrôleur de mémoire ajoutait typiquement un cycle de rafraîchissement après chaque cycle de lecture afin de créer l'illusion d'une opération de lecture non destructive.

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

Voir également

Les références