

La mémoire vive ( RAM ; mémoire électronique informatique qui peut être lue et modifiée dans n'importe quel ordre, généralement utilisée pour stocker des données de travail du code machine . Un périphérique de mémoire vive permet de lire ou d'écrire des données en un temps quasi identique, indépendamment de leur emplacement physique dans la mémoire. Ceci contraste avec d'autres supports de stockage de données à accès direct (tels que les disques durs et les bandes magnétiques ), où le temps nécessaire à la lecture et à l'écriture des données varie considérablement en fonction de leur emplacement physique sur le support d'enregistrement, en raison de limitations mécaniques telles que la vitesse de rotation du support et le mouvement du bras de lecture/écriture.
Dans les technologies modernes, la mémoire vive (RAM) se présente sous la forme de puces de circuits intégrés (CI) dotées de cellules mémoire MOS (métal-oxyde-semiconducteur) . La RAM est généralement associée aux mémoires volatiles , c'est-à-dire que les informations stockées sont perdues en cas de coupure de courant. Les deux principaux types de mémoire vive volatile à semi-conducteurs sont la mémoire vive statique (SRAM) et la mémoire vive dynamique (DRAM).
La mémoire RAM non volatile a également été développée et d'autres types de mémoires non volatiles permettent un accès aléatoire en lecture, mais ne permettent pas les opérations d'écriture ou présentent d'autres types de limitations. Il s'agit notamment de la plupart des types de mémoire ROM et de mémoire flash NOR .
L'utilisation de la mémoire vive à semi-conducteurs remonte à 1965, année où IBM a introduit la puce SRAM monolithique (sur une seule puce) 16 bits SP95 pour son ordinateur System/360 modèle 95 , et où Toshiba a utilisé des cellules de mémoire DRAM bipolaires pour sa calculatrice électronique Toscal BC-1411 180 bits , toutes deux basées sur des transistors bipolaires . Bien qu'offrant des vitesses supérieures à la mémoire à tores magnétiques , la DRAM bipolaire ne pouvait rivaliser avec le prix plus bas de la mémoire à tores magnétiques alors dominante. En 1966, le Dr Robert Dennard a inventé l'architecture DRAM moderne, caractérisée par un transistor MOS par condensateur. La première puce DRAM commerciale, l' Intel 1103 de 1 Ko , a été lancée en octobre 1970. La mémoire vive dynamique synchrone (SDRAM) a été réintroduite avec la puce Samsung KM48SL2000 en 1992.
Les premiers ordinateurs utilisaient des relais , des compteurs mécaniques ou des lignes à retard pour les fonctions de mémoire principale. Les lignes à retard ultrasoniques étaient des dispositifs série qui ne pouvaient reproduire les données que dans l'ordre de leur écriture. La mémoire à tambour pouvait être étendue à un coût relativement faible, mais la récupération efficace des données nécessitait de connaître la disposition physique du tambour afin d'optimiser la vitesse. Des verrous construits à partir de tubes à vide triodes , puis à partir de transistors discrets , étaient utilisés pour des mémoires plus petites et plus rapides, telles que les registres . Ces registres étaient relativement volumineux et trop coûteux pour être utilisés avec de grandes quantités de données ; généralement, seules quelques dizaines ou quelques centaines de bits de ce type de mémoire pouvaient être fournis.
La première forme pratique de mémoire à accès aléatoire fut le tube Williams . Il stockait les données sous forme de points chargés électriquement sur la surface d'un tube cathodique . Le faisceau d'électrons du tube pouvant lire et écrire ces points dans n'importe quel ordre, la mémoire était à accès aléatoire. La capacité du tube Williams était de quelques centaines à un millier de bits environ, mais il était beaucoup plus petit, plus rapide et plus économe en énergie que les systèmes utilisant des tubes à vide individuels. Développé à l' Université de Manchester en Angleterre, le tube Williams a servi de support pour l'implémentation du premier programme stocké électroniquement dans l' ordinateur Manchester Baby , qui a exécuté avec succès son premier programme le 21 juin 1948. En réalité, plutôt que d'être conçue pour le Baby, la mémoire à tube Williams a été testée sur ce dernier afin de démontrer sa fiabilité.
La mémoire à tores magnétiques a été inventée en 1947 et développée jusqu'au milieu des années 1970. Elle est devenue une forme répandue de mémoire vive, reposant sur un réseau d'anneaux magnétisés. En inversant le sens de magnétisation de chaque anneau, on pouvait stocker des données, un bit étant stocké par anneau. Chaque anneau étant associé à une combinaison de fils d'adressage permettant de le sélectionner, de le lire ou de l'écrire, l'accès à n'importe quel emplacement mémoire, dans n'importe quel ordre, était possible. La mémoire à tores magnétiques a constitué la norme en matière de mémoire informatique jusqu'à son remplacement par la mémoire à semi-conducteurs dans les circuits intégrés (CI) au début des années 1970.
Avant le développement des circuits de mémoire morte (ROM) intégrés, la mémoire vive permanente (ou à accès aléatoire en lecture seule ) était souvent construite à l'aide de matrices de diodes pilotées par des décodeurs d'adresse , ou de plans de mémoire à tores de ferrite spécialement bobinés .La mémoire à semi-conducteurs est apparue dans les années 1960 avec la mémoire bipolaire, qui utilisait des transistors bipolaires . Bien qu'elle fût plus rapide, elle ne pouvait pas rivaliser avec le prix inférieur de la mémoire à tores magnétiques.
RAM MOS
En 1957, Frosch et Derick fabriquèrent les premiers transistors à effet de champ à dioxyde de silicium (MOSFET) aux laboratoires Bell, les premiers transistors dont la source et le drain étaient adjacents en surface. Par la suite, en 1960, une équipe présenta un MOSFET fonctionnel aux laboratoires Bell. Ceci mena au développement de la mémoire métal-oxyde-semiconducteur (MOS) par John Schmidt chez Fairchild Semiconductor en 1964. Outre des vitesses plus élevées, la mémoire MOS était moins coûteuse et consommait moins d'énergie que la mémoire à tores magnétiques. Le développement de la technologie des circuits intégrés MOS à grille de silicium (MOS IC) par Federico Faggin chez Fairchild en 1968 permit la production de puces mémoire MOS . La mémoire MOS supplanta la mémoire à tores magnétiques comme technologie de mémoire dominante au début des années 1970.
La mémoire vive statique bipolaire intégrée (SRAM) a été inventée par Robert H. Norman chez Fairchild Semiconductor en 1963. Elle a été suivie par le développement de la SRAM MOS par John Schmidt chez Fairchild en 1964. La SRAM est devenue une alternative à la mémoire à tores magnétiques, mais nécessitait six transistors MOS par bit de données. L'utilisation commerciale de la SRAM a débuté en 1965, lorsqu'IBM a introduit la puce mémoire SP95 pour le System/360 modèle 95.
La mémoire vive dynamique (DRAM) a permis de remplacer un circuit de verrouillage à 4 ou 6 transistors par un seul transistor par bit de mémoire, augmentant considérablement la densité de mémoire au prix d'une volatilité accrue. Les données étaient stockées dans la faible capacité de chaque transistor et devaient être rafraîchies périodiquement toutes les quelques millisecondes avant que la charge ne se dissipe.
La calculatrice électronique Toscal BC-1411 de Toshiba , commercialisée en 1965 utilisait une forme de mémoire DRAM bipolaire à condensateurs, stockant des données de 180 bits sur des cellules mémoire discrètes , composées de transistors bipolaires au germanium et de condensateurs . Des condensateurs avaient également été utilisés dans des systèmes de mémoire antérieurs, tels que le tambour de l' ordinateur Atanasoff-Berry , le tube Williams et le tube Selectron . Bien qu'offrant des vitesses supérieures à la mémoire à tores magnétiques, la mémoire DRAM bipolaire ne pouvait rivaliser avec le prix plus bas de cette dernière, alors dominante

En 1966, Robert Dennard , étudiant les caractéristiques de la technologie MOS, découvrit qu'elle permettait de fabriquer des condensateurs . Il constata également que le stockage d'une charge ou d'une absence de charge sur un condensateur MOS pouvait représenter les 1 et les 0 d'un bit, et que le transistor MOS pouvait contrôler l'écriture de cette charge sur le condensateur. Ceci le mena au développement de l'architecture DRAM moderne, qui utilise un transistor MOS par condensateur. En 1967, Dennard déposa un brevet chez IBM pour une cellule de mémoire DRAM à transistor unique, basée sur la technologie MOS. La première puce DRAM commercialisée fut l' Intel 1103 , fabriquée selon un procédé MOS 8 kbit , et lancée en 1970.
Les premières mémoires DRAM étaient souvent synchronisées avec l'horloge du processeur et utilisées avec les premiers microprocesseurs. Au milieu des années 1970, les DRAM sont passées à une conception asynchrone, avant de revenir à un fonctionnement synchrone dans les années 1990. En 1992, Samsung a commercialisé la KM48SL2000, d'une capacité de 16 Mbit . La première mémoire SDRAM à double débit de données (DDDR) commercialisée fut la DDR SDRAM 64 Mbit de Samsung , sortie en juin 1998. La GDDR (Graphics DDR) est une forme de SGRAM (Synchronous Graphics RAM), initialement commercialisée par Samsung sous la forme d'une puce mémoire de 16 Mbit en 1998. la RAM statique (SRAM) et la RAM dynamique (DRAM). Dans la SRAM, un bit de données est stocké grâce à l'état d'une cellule mémoire , généralement composée de six transistors MOSFET. Cette forme de RAM est plus coûteuse à produire, mais elle est généralement plus rapide et consomme moins d'énergie statique que la DRAM. Dans les ordinateurs modernes, la SRAM est souvent utilisée comme mémoire cache pour le processeur . La DRAM stocke un bit de données à l'aide d'une paire transistor- condensateur (généralement un MOSFET et un condensateur MOS , respectivement) , qui constituent ensemble une cellule DRAM. Le condensateur est chargé à l'état haut (1) ou bas (0), et le transistor agit comme un interrupteur permettant au circuit de commande de la puce de lire ou de modifier l'état de charge du condensateur. Cette forme de mémoire étant moins coûteuse à produire que la RAM statique, elle est la forme de mémoire prédominante dans les ordinateurs modernes.
La mémoire RAM statique et dynamique est considérée comme volatile , car son état est perdu en cas de coupure de courant. À l'inverse, la mémoire morte (ROM) stocke les données en activant ou désactivant de manière permanente certains transistors, ce qui rend la mémoire immuable. Les variantes de ROM inscriptibles (telles que l'EEPROM et la mémoire flash NOR ) combinent les propriétés de la ROM et de la RAM, permettant ainsi la conservation des données hors tension et leur mise à jour sans équipement spécifique.
La mémoire ECC (qui peut être soit SRAM, soit DRAM) comprend des circuits spéciaux pour détecter et/ou corriger les défauts aléatoires (erreurs de mémoire) dans les données stockées, en utilisant des bits de parité ou des codes de correction d'erreurs .
Cellule mémoire
Dans la SRAM, la cellule mémoire est un circuit de type bascule , généralement réalisé à l'aide de transistors à effet de champ (FET) . Cela signifie que la SRAM consomme très peu d'énergie lorsqu'elle n'est pas utilisée, mais elle est complexe, coûteuse et sa densité de stockage est faible.
Un second type, la DRAM, repose sur un condensateur. La charge et la décharge de ce condensateur permettent de stocker un 1 ou un 0 dans la cellule. Cependant, la charge du condensateur se dissipe lentement et doit être rafraîchie périodiquement. De ce fait, la DRAM consomme davantage d'énergie, mais elle offre une densité de stockage plus élevée et un coût unitaire inférieur à celui de la SRAM.
Adressage
Pour être utilisables, les cellules mémoire doivent être lisibles et inscriptibles. Au sein d'un dispositif RAM, des circuits de multiplexage et de démultiplexage permettent de sélectionner les cellules mémoire. Généralement, un dispositif RAM possède un ensemble de lignes d'adresse , et pour chaque combinaison de bits pouvant être appliquée à ces lignes, un ensemble de cellules mémoire est sélectionné. Grâce à cet adressage, la capacité mémoire des dispositifs RAM est presque toujours une puissance de deux.
Généralement, plusieurs cellules mémoire partagent la même adresse. Par exemple, une puce RAM de 4 bits possède quatre cellules mémoire par adresse. Souvent, la largeur de la mémoire et celle du microprocesseur diffèrent ; pour un microprocesseur 32 bits, il faudrait huit puces RAM de 4 bits.
Souvent, on a besoin de plus d'adresses que ne peut en fournir un seul périphérique. Dans ce cas, on utilise plusieurs périphériques, avec des multiplexeurs externes pour sélectionner celui qui est affecté à une plage d'adresses spécifique. La RAM est généralement adressable par octet, bien qu'il existe aussi de la RAM adressable par mot.
hiérarchie de mémoire
Autres utilisations de la RAM
En plus de servir d'espace de stockage temporaire et d'espace de travail pour le système d'exploitation et les applications, la RAM est utilisée de nombreuses autres manières.
mémoire virtuelle
disque RAM
À titre d'exemple courant, le BIOS des ordinateurs personnels propose souvent une option appelée « utiliser le BIOS fantôme » ou similaire. Lorsqu'elle est activée, les fonctions qui dépendent des données de la ROM du BIOS utilisent plutôt des emplacements de mémoire DRAM (la plupart permettent également d'activer ou de désactiver l'utilisation du BIOS fantôme pour la ROM de la carte vidéo ou d'autres sections de ROM). La mémoire disponible est réduite de la taille des ROM fantômes. Selon le système, cela peut ne pas améliorer les performances et peut même entraîner des incompatibilités. Par exemple, certains composants matériels peuvent devenir inaccessibles au système d'exploitation si la mémoire vive fantôme est utilisée. Sur certains systèmes, l'avantage peut être purement théorique, car le BIOS n'est plus utilisé après le démarrage.
réseaux privés virtuels
Certains services de réseau privé virtuel (VPN) utilisent des serveurs RAM pour conserver l'ensemble de l'état d'exécution, y compris les métadonnées de session et les données cryptographiques, dans la mémoire vive . Ceci vise à améliorer la sécurité par rapport aux architectures utilisant des disques durs. Dans une telle architecture, aucune donnée n'est écrite sur les disques durs ; toutes les informations résident dans la mémoire vive et sont effacées à chaque mise hors tension ou redémarrage du serveur.
Mur de la mémoire
Le « mur de la mémoire » désigne l’écart croissant de vitesse entre le processeur et le temps de réponse de la mémoire (appelé latence mémoire ) en dehors de la puce du processeur. Cette disparité s’explique principalement par la bande passante de communication limitée au-delà des limites de la puce. De 1986 à 2000, la vitesse des processeurs a progressé de 55 % par an, tandis que le temps de réponse de la mémoire externe n’a progressé que de 10 %. Compte tenu de ces tendances, on s’attendait à ce que la latence mémoire devienne un goulot d’étranglement majeur pour les performances des ordinateurs.
Une autre raison de cette disparité réside dans l'augmentation considérable de la capacité de mémoire depuis le début de la révolution du PC dans les années 1980. À l'origine, les PC disposaient de moins d'un mégaoctet de RAM, dont le temps de réponse était souvent d'un cycle d'horloge du processeur, c'est-à-dire sans aucun état d'attente . Les unités de mémoire de grande capacité sont intrinsèquement plus lentes que celles de même type, car le temps de propagation des signaux est plus long sur un circuit plus large. Concevoir une unité de mémoire de plusieurs gigaoctets avec un temps de réponse d'un cycle d'horloge est difficile, voire impossible. Les processeurs modernes possèdent souvent encore une mémoire cache sans état d'attente, mais, en raison des limitations de bande passante des communications inter-puces, celle-ci doit résider sur la même puce que les cœurs du processeur. Elle doit également être constituée de mémoire vive statique (SRAM), bien plus coûteuse que la mémoire vive dynamique (DRAM) utilisée pour les mémoires de grande capacité.
Les progrès en matière de vitesse des processeurs ont considérablement ralenti, en partie à cause d'importantes limitations physiques et en partie parce que la conception des processeurs a déjà atteint, d'une certaine manière, les limites de la mémoire. Intel a résumé ces causes dans un document de 2005.
Tout d'abord, la miniaturisation des puces et l'augmentation des fréquences d'horloge entraînent une hausse du courant de fuite des transistors , provoquant une surconsommation d'énergie et un dégagement de chaleur. Ensuite, les avantages des fréquences d'horloge plus élevées sont en partie annulés par la latence mémoire, les temps d'accès à la mémoire n'ayant pas suivi l'augmentation des fréquences. Troisièmement, pour certaines applications, les architectures série traditionnelles perdent en efficacité à mesure que les processeurs s'accélèrent (en raison du goulot d'étranglement de von Neumann ), réduisant d'autant plus les gains potentiels liés à l'augmentation de la fréquence. De plus, en raison notamment des limitations des techniques de fabrication de l'inductance dans les dispositifs à semi-conducteurs, les délais de propagation RC ( résistance-capacité ) augmentent avec la miniaturisation, créant un goulot d'étranglement supplémentaire que les augmentations de fréquence ne permettent pas de résoudre.
Les retards RC dans la transmission du signal ont également été notés dans « Fréquence d'horloge versus IPC : la fin de la route pour les microarchitectures conventionnelles » qui prévoyait une amélioration annuelle moyenne maximale de 12,5 % des performances du processeur entre 2000 et 2014.
Un autre concept important est celui de l'écart de performance entre le processeur et la mémoire. Ce problème peut être résolu grâce aux circuits intégrés 3D , qui réduisent la distance entre la logique de contrôle et les cellules de mémoire, plus éloignées les unes des autres sur une puce 2D. La conception du sous-système mémoire doit prendre en compte cet écart, qui se creuse avec le temps. La principale méthode pour le réduire est l'utilisation de caches : de petites quantités de mémoire à haute vitesse stockant les données associées aux opérations récentes à proximité du processeur, ce qui accélère l'accès à ces données lorsqu'elles sont fréquemment sollicitées. Différents niveaux de cache ont été développés pour gérer cet écart croissant, et les performances des ordinateurs modernes à haute vitesse reposent sur l'évolution des techniques de cache. L'écart entre la croissance de la vitesse du processeur et la lenteur de l'accès à la mémoire principale peut atteindre 53 %.
Les disques SSD ont vu leur vitesse augmenter continuellement, passant d' SATA3 en 2012 à NVMe / PCIe en 2024, réduisant ainsi l'écart de vitesse entre la RAM et les disques durs. Toutefois, la RAM reste nettement plus rapide, avec une mémoire DDR5 8000 MHz à une seule voie capable d'atteindre la GDDR moderne encore plus rapide. Rapides, économiques et non volatils, les disques SSD ont remplacé certaines fonctions autrefois assurées par la RAM, comme le stockage de données pour une disponibilité immédiate dans les fermes de serveurs : 1 téraoctet de stockage SSD est disponible pour 200 $, tandis qu'1 To de RAM coûterait plusieurs milliers de dollars.
Chronologie
SGRAM
| Date d'introduction | Nom de la puce | Capacité ( bits ) | Type SDRAM | Fabricant(s) | Processus | MOSFET | Zone | SGRAM ( SDR )| Hitachi | 350 nm | CMOS | 58 mm² | | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Décembre 1994 | μPD481850 | 8 Mbit | SGRAM (SDR) | NEC | ? | CMOS | 280 mm² | ||||||
| 1997 | μPD4811650 | 16 Mbit | SGRAM (SDR) | NEC | 350 nm | CMOS | 280 mm² | ||||||
| Septembre 1998 | ? | 16 Mbit | SGRAM ( GDDR ) | Samsung | ? | CMOS | ? | ||||||
| 1999 | KM4132G112 | 32 Mbit | SGRAM (SDR) | Samsung | ? | CMOS | 280 mm² | ||||||
| 2002 | ? | 128 Mbit | SGRAM ( GDDR2 ) | Samsung | ? | CMOS | ? | ||||||
| 2003 | ? | 256 Mbit | SGRAM (GDDR2) | Samsung | ? | CMOS | ? | ||||||
| SGRAM ( GDDR3 ) | |||||||||||||
| Mars 2005 | K4D553238F | 256 Mbit | SGRAM (GDDR) | Samsung | ? | CMOS | 77 mm 2 | ||||||
| Octobre 2005 | ? | 256 Mbit | SGRAM ( GDDR4 ) | Samsung | ? | CMOS | ? | ||||||
| 2005 | ? | 512 Mbit | SGRAM (GDDR4) | Hynix | ? | CMOS | ? | ||||||
| 2007 | ? | 1024 Mbit | SGRAM ( GDDR5 ) | Hynix | 60 nm | ||||||||
| 2009 | ? | 2048 Mbit | SGRAM (GDDR5) | Hynix | 40 nm | ||||||||
| 2010 | K4W1G1646G | 1024 Mbit | SGRAM (GDDR3) | Samsung | ? | CMOS | 100 mm² | ||||||
| 2012 | ? | 4096 Mbit | SGRAM (GDDR3) | SK Hynix | ? | CMOS | ? | ||||||
| Mars 2016 | MT58K256M32JA | 8 Gbit | SGRAM ( GDDR5X ) | Micron | 20 nm | CMOS | 140 mm² | ||||||
| Janvier 2018 | K4ZAF325BM | 16 Gbit | SGRAM ( GDDR6 ) | Samsung | 10 nm | FinFET | 225 mm² |
