Pourquoi la mémoire cache est plus rapide que la RAM?
RAID (informatique)
Le cache est une mémoire RAM qui permet de stocker des informations à lire ou à écrire sur le RAID.  Ce tampon a des performances très supérieures à celles des disques (généralement plus de plus rapide), et permet au système de lire ou d'écrire une rafale d'informations puis de passer à une autre tâche pendant que le contrôleur RAID se charge de « dépiler » les opérations à effectuer. Le cache a donc une influence positive très importante sur les performances globales du système.
Mémoire flash
Le flash NAND suivit en 1989, commercialisé par Toshiba. Cette mémoire est plus rapide à l'effacement et à l'écriture, offre une plus grande densité et un coût moins important par bit. Toutefois son interface d'entrée-sortie n'autorise que l'accès séquentiel. Cela tend à limiter — au niveau du système — sa vitesse effective de lecture, et à compliquer le démarrage direct à partir d'une mémoire NAND. De ce fait elle est moins bien adaptée que la NOR pour exécuter du code machine. Du fait de son prix moins élevé, elle est présente dans de nombreux assistants et téléphones portables en utilisant par blocs la mémoire RAM en mode page comme support d'exécution. Le fabricant ne garantit pas en général le stockage des données à 100 % mais un taux d'erreurs inférieur à une limite donnée. Cette fiabilité limitée nécessite la mise en place d'un système de gestion des erreurs (ECC - Error Code Correction, Bad blocks management, etc.) au niveau de l'application — comme cela est le cas, par exemple, pour les disques durs. Elle est donc utilisée pour le stockage d'informations. Quasiment toutes les mémoires de masse externes (carte MMC, clé USB, carte SD et carte MS) utilisent cette technologie. Rafraîchissement de la mémoire
Le rafraîchissement de la mémoire DRAM consomme le tiers de la puissance utilisée par les appareils électroniques de faible puissance en mode veille. Des chercheurs ont proposé différentes approches pour étendre l'autonomie des appareils électroniques en réduisant la fréquence des rafraîchissements. Des expériences ont montré que dans une puce DRAM typique, seulement quelques cellules "faibles" exigent vraiment la fréquence de rafraîchissement spécifié par le fabricant, et ce, seulement dans le haut de la gamme de température spécifiée. À la température ambiante (24 °C), ces mêmes cellules "faibles" n'ont besoin d'être rafraîchies que toutes les 500 ms pour fonctionner correctement. Si une mémoire peut éviter d'utiliser le 1 % le plus "faible" de ses pages, cette mémoire n'a besoin d'être rafraîchie qu'une fois par seconde, même à 70 °C, pour fonctionner correctement. Certaines expériences combinant ces deux techniques ont donné de bons résultats à la température ambiante avec des intervalles de rafraîchissement de 10 secondes. NEC UltraLite
Les données pouvaient être stockées sur une disquette externe de en option (), sur le lecteur interne simulé en RAM non volatile (disque dur électronique), ou par des cartes RAM et ROM propriétaires. Le lecteur de RAM interne était alimenté par une batterie auxiliaire à l'intérieur de l'unité qui devait être rechargée chaque semaine ou pour maintenir le contenu du lecteur de RAM. Les dimensions, les cartes de RAM à piles de cartes de crédit étaient disponibles en capacité de ou . Les deux cartes RAM et les cartes ROM utilisent une interface propriétaire NEC parce que ce portable est sorti à un moment où il n'y avait pas d'interfaces informatiques portables standard. Le PCMCIA norme n'a pas existé que de nombreuses années plus tard. Les cartes RAM ont été alimentés par une batterie remplaçable au lithium et avait un commutateur de protection en écriture. Extensible Storage Engine
Extensible Storage Engine est équipé d'un mécanisme de mémoire cache, qui lit le contenu de la base de données à l'avance, et écrit avec retard, ce qui accélère les opérations. Rafraîchissement de la mémoire
Dans les systèmes modernes, le rafraîchissement est géré par des circuits situés dans le contrôleur mémoire, ou de plus en plus, par des circuits situés sur la puce de mémoire elle-même. Certaines puces DRAM, telles les puces RAM pseudo-statique (PSRAM), ont tous les circuits de rafraîchissement sur la puce et fonctionnent comme une mémoire RAM statique (SRAM) du point de vue du reste du système. Mémoire tampon de prélecture
Le tampon de prélecture tire parti des caractéristiques des lectures de la mémoire DRAM. Les opérations de lecture de mémoire DRAM se déroulent en trois phases : la précharge des bit-lines, l'accès à la rangée, l'accès à la colonne. L'accès à la rangée est le cœur d'une opération de lecture, car elle implique la détection minutieuse des petits signaux dans les cellules de mémoire DRAM ; c'est la phase la plus lente du fonctionnement de la mémoire. Cependant, une fois qu'une rangée est lue, les accès subséquents aux colonnes de cette rangée peuvent être très rapides. Par exemple, une rangée d'une mémoire DDR3 de a une largeur de lus grâce à au cours de la phase d'accès à la rangée. L'accès à la rangée peut prendre , alors que l'accès à une colonne d'une rangée ouverte prend moins de . Spécifications techniques de la Nintendo 64
Les cartouches ROM Game Pack de la Nintendo 64 sont beaucoup plus rapides que les lecteurs de CD-ROM, à tel point qu'il est possible de transmettre les données des cartouches en temps réel comme s'il s'agissait de mémoire RAM supplémentaire, maximisant ainsi l'efficacité de la mémoire RAM du système. C'était une pratique courante pour les développeurs de nombreux jeux, tels que "Super Mario 64" de Nintendo EAD ou "Indiana Jones et la Machine Infernale" de Factor 5. DDR2 SDRAM
La fréquence d'horloge de la mémoire DDR2 est également généralement plus grande grâce à des améliorations techniques au niveau de l'interface électrique, avec des raccordements intégrés, une mémoire tampon de prélecture, ainsi que des circuits de sortie externes à la puce. Cependant, la DDR2 a des temps de latence plus élevés. L'accès aux puces, qui est décomposé en "n" étapes, est plus long. En ce qui concerne la mémoire tampon de prélecture, sa largeur de bus est passée de (pour la DDR) à . Elle passera à pour la DDR3. En d'autres termes, cette mémoire convient plutôt aux transferts de grandes quantités de données, car la grande vitesse de transfert sur une « longue » période minimise alors le mauvais temps de latence initial. Analyse d'images mémoire
Contrairement à ce que l'on pourrait penser, la DRAM utilisée de nos jours dans la majeure partie des ordinateurs peut retenir son contenu pendant plusieurs secondes sans alimentation et cela même à une température ambiante tout en étant débranchée de leur carte mère. Bien que le contenu de la DRAM devient moins fiable si celle-ci n'est pas alimentée, il n'est pas immédiatement effacé et peut persister suffisamment longtemps pour permettre une acquisition matérielle de l'ensemble de la mémoire d'un ordinateur. Avec des températures faibles, la DRAM conserve son contenu encore plus longtemps. Le pourcentage d'erreur de l'image acquise lorsque la DRAM est refroidis par de l'air comprimés appliqué directement sur les chips est de 1% après 10 minutes sans alimentation (image correct à 99%), alors que le pourcentage d'erreur lorsque l'image est refroidie par de l'azote liquide est de 0.17 % après 60 minutes sans alimentation (image correcte à 99.83 %). Mémoire RAM non volatile
La mémoire PRAM (PRAM, Phase-Change Memory, PCM, Ovonic Unified Memory, Chalcogenide RAM ou C-RAM en anglais) est un type de mémoire d'ordinateur non volatile à l'état de recherche et développement. La mémoire PRAM utilise le comportement du verre de chalcogénure qui bascule de la forme cristalline à la forme amorphe sous l'effet de la chaleur. Les chercheurs espèrent que cette mémoire remplacera un jour la mémoire flash. Tri rapide
LaMarca et Ladner ont étudié « l'influence des caches sur les performances des tris », un problème prépondérant sur les architectures récentes dotées de hiérarchies de caches avec des temps de latence élevés lors des échecs de recherche de données dans les caches. Ils concluent que, bien que l'optimisation de Sedgewick diminue le nombre d'instructions exécutées, elle diminue aussi le taux de succès des caches à cause de la plus large dispersion des accès à la mémoire (lorsque l'on fait le tri par insertion à la fin sur tout le tableau et non au fur et à mesure), ce qui entraîne une dégradation des performances du tri. Toutefois l'effet n'est pas dramatique et ne devient significatif qu'avec des tableaux de plus de 4 millions d'éléments de 64 bits. Cette étude est citée par Musser. DDR SDRAM
Le débit mémoire (et par conséquent le nom) d'une mémoire est calculé comme suit : Les DDR sont des mémoires (). Cela signifie qu'une barrette de mémoire DDR peut transmettre : formula_1 octets à chaque cycle d'horloge, le provenant de « l'effet DDR ». Pour l'exemple, supposons que cette mémoire tourne à la fréquence de , on a donc à chaque seconde : formula_2, soit un débit théorique d'environ : c'est donc de la PC2100. DDR2 SDRAM
La GDDR3 est communément utilisée dans la plupart des cartes graphiques utilisant des processeurs graphiques NVIDIA ou ATi. Cependant, une confusion additionnelle a été ajoutée avec l'apparition de cartes graphiques bon marché et intermédiaires qui clament utiliser de la mémoire « DDR2 ». Ces cartes n'utilisent pas de la GDDR2, mais plutôt des puces de mémoire DDR2 standards conçues pour être utilisées pour de la mémoire vive d'un ordinateur personnel. Cette technologie ne peut pas atteindre les vitesses que la GDDR3 peut atteindre. Cependant c'est rapide et suffisamment abordable pour être utilisé comme de la mémoire vidéo sur les cartes milieu de gamme. Gestionnaire de mémoire virtuelle
Les mémoires vives (RAM) sont dites volatiles et possèdent un temps d'accès aux données de quelques dizaines de nanosecondes, et les mémoires comme celle du disque dur ont des accès plus lents : quelques millisecondes, on les appelle aussi Mémoire de masse. Mémoire RAM non volatile
La mémoire MRAM "(Magnetic Random Access Memory)" est une mémoire non volatile de type magnétique. En développement depuis les années 90, cette technologie n'a jusqu'à présent jamais été commercialisée à grande échelle, notamment à cause de la concurrence des mémoires flash et DRAM. Mémoire cache
La majorité des algorithmes reposent sur le principe de localité pour tenter de prévoir le futur à partir du passé. Certains des algorithmes de remplacement des lignes de mémoire cache les plus répandus sont : Pentium Pro
La mémoire cache L2 est localisée sur un second die pour plus de performance. Les coûts de fabrication auront raison de cette solution, et le Pentium II externalisera le cache sur une carte fille. Les Pentiums Pro destinés aux stations de travail possèdent 256 Kio de mémoire cache. Les modèles destinés aux serveurs intègrent 512 Kio voire 1 Mio pour le Pentium Pro "noir". Nano Random Access Memory
D'autres plus hypothétiques systèmes de mémoire sont la MRAM et la PRAM. La MRAM est basé sur l'effet magnétique similaire à ceux utilisé dans les disques durs, la mémoire en tant que telle étant constituée d'une grille de petits « points » magnétiques, chacun comportant un bit. La clé du potentiel de la MRAM est la manière dont elle lit la mémoire en utilisant la Magnétorésistance géante, lui permettant de lire la mémoire à la fois sans destruction et sans utiliser beaucoup d'énergie. Malheureusement, il apparaît que la MRAM a déjà atteint sa plus petite taille de cellule, plus grande que celle des mémoires Flash. La PRAM quant à elle est basée sur une technologie similaire à celle des CD ou DVD inscriptibles, utilisant un matériel « » qui change ses propriétés magnétiques ou électriques au lieu de ses propriétés optiques. La PRAM a une petite taille de cellule, même si les mécanismes actuels ne sont pas assez petits pour être pratiques. UltraSPARC
L'UltraSPARC nécessite également l'utilisation d'un cache secondaire externe. Ce cache est unifié et peut avoir une capacité comprise en et et est de type direct-mapped. Les données en cache sont accessibles en un seul cycle. Le cache externe se compose de mémoire SRAM synchrone cadencé à la même vitesse que le micro-processeur (l'utilisation d'un ratio multiplicateur n'est pas supporté). Il est accessible via le bus de données. Contiki
L'utilisation sur les capteurs d'une mémoire morte complémentaire de type mémoire flash se généralise par la présence d'un lecteur de carte microSD. Plusieurs facteurs expliquent cela : le faible coût, le faible encombrement et la résistance aux chocs, la taille importante de la capacité de stockage allant de nos jours jusqu'à plusieurs Gigaoctets.  L'utilisation de ce type de mémoire apporte divers avantages : Contiki implémente un système de fichiers ou filesystem nommé Coffee. Coffee a l'avantage d'utiliser peu de RAM, son empreinte mémoire est inférieure à 200 octets, et chaque fichier ouvert nécessite supplémentaires lorsque l'offset est de 32 bits. Processeur 64 bits
Les processeurs ne peuvent normalement pas adresser plus de () de mémoire centrale, tandis que les processeurs peuvent en adresser (). C'est pourquoi dès qu'il y a plus de de RAM sur une machine, la mémoire au-delà de ce seuil ne sera directement adressable qu'en mode . Celeron
La mémoire cache coûtant très cher et étant facilement modulable en taille, il est facile de proposer un modèle de processeur avec une mémoire cache plus petite. Les Celerons comportent donc souvent une plus petite mémoire cache que le processeur dont ils sont issus. Certaines fonctionnalités non indispensables au fonctionnement du processeur peuvent également être désactivées. ViRGE
La version basée sur la VRAM, la ViRGE / VX , était en fait plus lente dans les résolutions inférieures, mais avait un RAMDAC plus rapide pour supporter les modes haute résolution non disponibles sur le 325. Mémoire tampon de prélecture
Les architectures traditionnelles de mémoires DRAM ont longtemps fourni un accès rapide à des mots dans une rangée ouverte. Pour une puce de mémoire de 8-bits de large avec une rangée de , l'accès à un des (2048/8) sur la rangée ouverte peut être très rapide, à condition qu'aucun accès à une autre rangée ne soit intervenu. RAID (informatique)
Le système RAID-Z est moins performant que le RAID 5 : chaque accès en lecture ou en écriture accédant à tous les disques, il ne permet pas de profiter de la multiplication des têtes de lectures. Il permet en revanche l'utilisation de la mémoire RAM comme cache (ARC). Il est aussi possible de dédier des SSD au rôle de cache en lecture (L2ARC) ou cache en écriture (ZIL) pour améliorer les performances d'une grappe. Xeon
Les principales différences se situent au niveau de la mémoire cache de niveau 2, qui est cadencée à la même fréquence que le cœur et d'une taille allant jusqu'à , et l'utilisation d'une cartouche et d'une connectique SC330. DDR SDRAM
La synchronisation de la mémoire (en anglais timing) est une succession de cycles d'horloge nécessaires pour accéder à une donnée stockée en mémoire vive. Symbolisé par quatre chiffres (3-4-4-8 par exemple), elles correspondent dans l'ordre aux valeurs suivantes :Certaines barrettes de mémoire possèdent des systèmes de correction d'erreur afin de garantir l'intégrité des données qu'elles contiennent. Elles se trouvent la plupart du temps sur les serveurs, surtout dans le cas où la manipulation de données est critique. Lorsqu'une barrette possède ce système de correction, une étiquette ECC (") lui est accolé, et elle coûte plus cher. Mémoire cache
Techniquement, il est avantageux de gérer séparément les données non modifiables (illustrations d'un site distant, section de code d'un programme) et celles qui sont modifiables (formulaire, sections de données, etc.). Les processeurs ont par exemple le plus souvent des caches séparés pour le code et les données. Sécurité matérielle des cartes à puce
Le fondement de cette attaque repose sur le fait que, à des fins d'optimisation de l'implémentation logicielle, certaines opérations d'algorithmes cryptographiques s'exécutent en un temps non-constant. Ces optimisations consistent par exemple, en l'évitement d'opération inutiles ou l'utilisation de mémoire cache. Les temps n'étant pas constants, pour mener cette attaque, l'attaquant a besoin de recueillir un ensemble de messages ainsi que leur délai de traitement (le délai entre la requête et la réponse par exemple). Mémoire flash
Sa vitesse élevée, sa durée de vie et sa faible consommation (qui est même nulle au repos) la rendent très utile pour de nombreuses applications : appareils photo numériques, téléphones cellulaires, imprimantes, assistants personnels (PDA), ordinateurs portables ou dispositifs de lecture et d'enregistrement sonore comme les baladeurs numériques, clés USB. De plus, ce type de mémoire ne possède pas d'éléments mécaniques, ce qui lui confère une grande résistance aux chocs. Gestion de l'énergie des systèmes embarqués
Une technologie en cours de développement est la mémoire à changement de phase (PCM ou "Phase Change Memory"). Cette technologie exploite le changement de propriété physique d’un alliage sous un effet Joule (chaleur) : Le matériau change de résistivité (facteur 3 à 4) entre un état dit « cristallin » et un autre dit « amorphe ». La PCM consomme en moyenne moins d’énergie et est plus rapide en lecture qu’une mémoire DRAM. Cependant, des limitations importantes existent : le matériau a une longévité moindre due à l’altération graduelle du matériau lorsqu’on le chauffe pour le changer d’état ; la consommation énergétique est ponctuellement plus importante qu’une DRAM classique en phase d’écriture ; enfin, le délai d’écriture est également plus important qu’avec les DRAM. Les mémoires non volatiles (NVM) dont font partie les PCM sont des technologies prometteuses pour la gestion de l’énergie dans les systèmes embarqués. La comparaison avec les mémoires volatiles sont à l’avantage des NVM, même si ces composants ont des inconvénients. Nano Random Access Memory
La NRAM a une densité, en théorie du moins, similaire à celle de la DRAM. La DRAM a un nombre de condensateurs, qui sont essentiellement de petites plaques de métal avec un fin isolateur entre elles. La NRAM est similaire, de la même taille que pour la DRAM, les nanotubes entre elles étant si petits qu'ils n'ajoutent rien au poids total de la mémoire. Il y a cependant une taille minimum à laquelle la DRAM peut être construite, en dessous de laquelle il n'y a pas assez de charge stockée pour permettre la lecture de la DRAM. La NRAM est par contre limitée par l'état actuel de la recherche en lithographie ; ce qui veut dire que la NRAM pourrait être capable de stocker plus d'informations que la DRAM. Cela signifie aussi qu'elle pourrait être meilleur marché, si cela devient possible de contrôler la position des nanotubes de carbone au point que l'industrie des semi-conducteurs (voir Fabrication des dispositifs à semi-conducteurs peut contrôler le positionnement des mécanismes sur du silicone. Rafraîchissement de la mémoire
Les cellules de mémoire sur une puce de mémoire sont disposées en un tableau rectangulaire de lignes et de colonnes. Le processus de lecture de la mémoire DRAM est "destructeur", c'est-à-dire qu'il supprime les charges des cellules de mémoire de la rangée de mémoire qui est lue. Au cours d'une opération de lecture, des amplificateurs de détection ("sense amplifiers ") de la puce, après avoir lu et verrouillé les données, réécrivent les données de la ligne accédée avant de fournir le bit de la seule colonne demandée. Donc, le mécanisme électronique de lecture a la capacité de rafraîchir toute une rangée de mémoire en parallèle, ce qui accélère considérablement le processus de rafraîchissement. Une opération de lecture ou d'écriture normale rafraîchit une rangée de mémoire, mais on ne peut se fier aux opérations normales de lecture et d'écriture pour toucher 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 normal de lecture pour rafraîchir la mémoire, un cycle abrégé, appelé cycle de rafraîchissement, est utilisé pour accélérer le processus. Mémoire cache
La différence entre "mémoire cache" et "mémoire tampon" réside dans le fait que la mémoire cache duplique l'information, tandis que le tampon peut exprimer l'idée d'une salle d'attente, sans impliquer nécessairement de duplication. Le "cache buffer" (tampon de cache) du disque ou "disk cache" (cache de disque) est à la fois un tampon où transite l'information et une mémoire cache qui recopie sous forme électronique les données stockées dans le disque sous forme magnétique. Synchronisation (multitâches)
Pour accélérer les traitements effectués par les différentes unités de calcul, il est efficace de multiplier les données, c'est typiquement le cas lors de l'utilisation des caches. Ainsi l'unité de calcul travaille à partir d'une mémoire, spécialisée si possible, qui n'est pas la mémoire partagée par l'ensemble des unités de calculs. Lorsque le programme modifie une donnée dans ce cache, le système doit en fait la modifier dans l'espace commun et répercuter cette modification au sein de tous les caches où cette donnée est présente. Des mécanismes sont mis en place pour que les données restent cohérentes. Ces mécanismes peuvent être décrits par de complexes modèles d'algèbres de processus et ces derniers peuvent être décrits de plusieurs manières au sein de divers langages formels. Le mécanisme à mémoire transactionnelle logicielle est le plus courant des modèles de cohérence, il emprunte à la théorie des systèmes de gestion de base de données la notion de transactions atomiques et les applique aux accès mémoire. Yonah
Les temps de latence des caches sont de trois cycles pour le cache L1 (comme pour le "Dothan"), et de 14 cycles pour le cache L2 (10 cycles pour le "Dothan"). La moins bonne performance du cache L2 par rapport à "Dothan" peut être due à la nouvelle fonctionnalité permettant de décharger des données du cache vers la mémoire principale quand il est peu utilisé, afin de diminuer la consommation et d'optimiser le partage de ce cache par les deux cœurs. En revanche, le débit en écriture du cache L2 augmente très fortement entre le "Dothan" et le Yonah. Resistive random-access memory
En 2013, la presse informatique affiche de bons espoirs que la mémoire RRAM va détrôner la mémoire vive DRAM et la mémoire flash grâce à des performances plusieurs fois supérieures. Selon la société Crossbar, acteur majeur émergeant de la technologie RRAM, cette technologie permet de stocker 1 To de données sur une puce de la taille d’un timbre postal. Elle est également 20 fois plus rapide que la meilleure mémoire flash en , et consomme 20 fois moins d’énergie. Selon Crossbar, la production à grande échelle de leurs puces RRAM est prévue pour 2015, lors d’un entretien en . Gestionnaire de mémoire virtuelle
La zone de swap se trouve alors basée sur la RAM et fournit ainsi une forme de compression de mémoire virtuelle, permettant une performance accrue due au meilleur temps d'accès fourni par la RAM, le disque ayant un temps d'accès bien plus long. Il est dès lors d'autant plus important d'optimiser l'occupation de la mémoire principale. Srividya et Denakar proposent alors un mécanisme de dé-duplication de pages compressées : si une page compressée s'avère identique, au lieu d'être "swappée", elle sera partagée. RDRAM
RDRAM (") est un type de mémoire vive plus précisément c'est une mémoire vive dynamique synchrone développée par la société Rambus. Elle a eu une forte publicité autour de 2000 lors de la sortie des premiers processeurs . Ce type de mémoire étant très cher, Intel l'a abandonné rapidement au profit de la DDR SDRAM (et ses versions suivantes). Par abus de langage, on désigne parfois directement cette technique par le nom de Rambus. Microprocesseur multi-cœur
Tout processeur actuel contient des mémoires caches, qui rendent les accès à la mémoire plus rapides. Sur les processeurs multicœurs, l'organisation de ces mémoires caches est adaptée à la présence de plusieurs cœurs. Deux grandes organisations de base sont utilisées : celle à base de caches dédiés à chaque cœur, et celle à base de caches partagés. Mémoire tampon de prélecture
La profondeur de la mémoire tampon de prélecture (c'est-à-dire le "n") peut également être considérée comme étant le rapport entre la fréquence de la lecture et la fréquence de la mémoire. Dans une architecture de prélecture de 8n (tel que dans la DDR3), la lecture se fait plus rapidement que la fréquence mémoire (chaque accès à la mémoire fournissant ). Ainsi, un bloc de mémoire permet une lecture plus rapide ( par seconde). Si la mémoire dispose de de mémoire fonctionnant en parallèle, la bande passante de lecture totale sera de , ou 3,2 gigaoctets par seconde (Gbit/s). Mémoire cache
En programmation, pour profiter de l'accélération fournie par cette mémoire très rapide, il faut que les parties de programme tiennent le plus possible dans cette mémoire cache. Comme elle varie suivant les processeurs, ce rôle d'optimisation est souvent dédié au compilateur. Cela dit, un programmeur chevronné peut écrire son code d'une manière qui optimise l'utilisation du cache. Disque virtuel
L'utilisation d'une mémoire cache par le système d'exploitation, pour les accès à la disquette, au disque dur ou au CD, semblait rendre inutile le recours à un RAM disque. Une "mémoire cache" disque remplit une fonction similaire d'accès rapide aux données stockées sur disque, sans en avoir les inconvénients : perte de données lors de coupure de courant, partitionnement fixe… Les RAM disques s'avèrent cependant indispensables dans les situations où un disque physique n'est pas disponible, ou lorsque le support de donnée doit rester inamovible (comme pour les LiveCD chargés en mémoire). Ils peuvent également trouver leur utilité dans les dispositifs type "kiosque" où la configuration initiale doit être chargée à chaque démarrage et qu'aucune reconfiguration du système n'est nécessaire en cours de fonctionnement. Saturn (microprocesseur)
À noter que sur certaines applications du Saturn, notamment la HP-48, la mémoire (RAM ou ROM) est basée sur des circuits 8 bits. Un cache est interposé entre le Saturn et la mémoire pour en permettre l'accès. Ceci a des conséquences sur le cadencement des instructions dont le temps d'exécution varie en fonction de la taille et de la parité d'adresse des blocs mémoire lus (par exemple, deux quartets, soit un octet, lus à une adresse paire ne donneront lieu qu'à un seul accès mémoire, alors qu'en adresse impaire, deux octets devront être lus, soit un cycle d'horloge supplémentaire). Mémoire RAM non volatile
Cette méthode de stockage possède les avantages suivants :  alliant rapidité, débit, capacité et non-volatilité, ce qui peut . Mémoire tampon
Du fait de la différence de vitesse entre le processeur et le périphérique, les données envoyées vers un périphérique (interne ou externe) sont le plus souvent stockées dans des mémoires tampon en attente de leur envoi effectif vers le périphérique, pour épargner à l’ordinateur l'attente due à la différence de débits entre le microprocesseur interne et les différents périphériques souvent lents. De même, les données reçues de l'extérieur sont le plus souvent rassemblées dans des tampons, en attente de leur traitement par l'ordinateur (pour des raisons d'efficacité, et aussi pour éviter qu'une réception de données trop rapprochées fasse que certaines, non traitées, ne soient perdues). DDR3L SDRAM
Sa création repose sur le fait, que selon le JEDEC, un module mémoire atteignant une température supérieure à doit multiplier par deux sa vitesse de rafraîchissement. Descendre la température de la mémoire conduit donc à un meilleur débit, en retirant la nécessité du double rafraîchissement. NVM Express
NVMe permet de nouveaux usages grâce à son temps d'accès plus faible que ce que permettait la connectique SATA avec son interface AHCI et ses plus hautes performances en lecture et écriture, dues à la nature de la mémoire pour laquelle elle a été conçue (flash), par exemple dans le Cloud computing. Par rapport au protocole d'usage commun AHCI (Advanced Host Controller Interface), une requête est ainsi traitée en contre pour l'AHCI (moyenne). Xeon
Les versions Xeon tirent généralement leurs performances supérieures d'une mémoire cache plus grande que les versions grand public des microprocesseurs d'Intel. Mémoire à changement de phase
La mémoire à changement de phase, ou PCM pour , ou encore PRAM pour , est un type de mémoire non volatile s'appuyant sur la transition de phase de certains matériaux pour le stockage des informations, à l'instar des disques optiques réinscriptibles. Elle est présentée comme "mémoire universelle" car elle combine la vitesse et l’endurance de la mémoire vive (RAM) et la non-volatilité et le faible coût de la mémoire flash. Les premières PRAM ont été mises en vente en 2012 par Samsung. Consommation énergétique d'un smartphone
Pour la mémoire vive (RAM), la puissance peut être assez élevée (supérieure à 100 mW dans certains scénarios), mais est toujours à corréler avec l'utilisation du processeur. Elle peut dépasser la puissance du processeur dans certaines charges de travail, mais dans des situations concrètes, la puissance du processeur éclipse celle de la mémoire par un facteur de deux ou plus. Par conséquent, en pourcentage, la mémoire contribue en moyenne à 6 % de la puissance totale. En mode veille cependant, la mémoire peut monter jusqu'à 20 %, car elle doit conserver l'état du système. La mémoire flash, elle, contribue peu à la consommation d'énergie. Sa consommation culmine à 30 mW lors d'un enregistrement vidéo, soit 1,5 % de la puissance totale. Sinon elle ne représente que 0,5 % du total. Les mémoires vive et flash font partie des plus faibles consommations électriques. Random access machine
Nonobstant ces différences, nos ordinateurs actuels sont le plus souvent des machines RAM améliorées sur certains points, auxquelles on a rajouté quelques subtilités, comme une pile ou un cache. Ce sont donc des machines RAM. Mais il existe des ordinateurs qui ne sont pas des machines RAM améliorées, ni même des machines RAM tout court ! Les premiers ordinateurs n'étaient pas des machines dotées d'une mémoire RAM, et fonctionnaient avec des mémoires bien différentes. Loi de Moore
Un autre facteur sans doute explique mieux l'absence de sensation de progrès : les autres composants des ordinateurs n'ont pas forcément évolué aussi vite. Dans un ordinateur moderne équipé de disques durs mécaniques, ce sont ces derniers qui sont le facteur limitant de l'expérience utilisateur. Un ordinateur est un système comparable à une chaîne : le composant le plus lent décide de la vitesse de l'ensemble. L'ajout de mémoire vive ou l'installation d'un stockage SSD dans un système obsolète ou bas de gamme permet un gain de réactivité (démarrage de la machine, lancement des programmes, arrêt) souvent plus apprécié par l'utilisateur qu'une augmentation de la vitesse du processeur. Mémoire cache
Pour fonctionner, un processeur a besoin de données et d'instructions. Il existe donc deux solutions pour l'implémentation des mémoires cache : Rafraîchissement de la mémoire
Dans une mémoire DRAM, un bit de données est codé par la présence ou l'absence d'une charge électrique sur un petit condensateur. Avec le temps, les charges électriques des condensateurs se dispersent et, sans rafraîchissement, les données seraient perdues. Pour éviter cette perte, un circuit lit périodiquement chaque bit de donnée et le réécrit, restaurant ainsi la charge du condensateur à son niveau initial. Chaque opération de rafraîchissement de la mémoire régénère une nouvelle zone de la mémoire, parcourant ainsi toutes les zones de la mémoire. Ce procédé est réalisé automatiquement, en arrière-plan, par un circuit intégré à la mémoire, aussi longtemps que l'ordinateur est sous tension. Ce procédé ne requiert aucune intervention de l'utilisateur et n'est pas visible par l'utilisateur. Pendant le rafraîchissement, la mémoire n'est pas disponible pour les opérations de lecture et d'écriture, mais dans les mémoires modernes, cela ne ralentit pas la mémoire de façon significative. Memcached
Memcached est un système d'usage général servant à gérer la mémoire cache distribuée. Il est souvent utilisé pour augmenter la vitesse de réponse des sites web créés à partir de bases de données. Il gère les données et les objets en RAM de façon à réduire le nombre de fois qu'une même donnée stockée dans un périphérique externe est lue. Il tourne sous Unix, Windows et MacOS et est distribué selon les termes d'une licence libre dite permissive. ZFS
Dans le but de maximiser les performances en lecture/écriture, ZFS utilise tout l'espace disponible dans la RAM pour créer un énorme cache : le ARC « adaptive replacement cache » ce qui peut poser problème aux processus qui testent la quantité de mémoire vive disponible avant de se lancer (il y a moyen de limiter la taille de ce cache bien sûr), mais qui a le mérite de tirer parti au maximum de cette ressource souvent inutilisée. Mémoire cache
Quand une donnée se situe dans le cache, le système en possède deux copies : une dans la mémoire de niveau supérieur (disons la mémoire principale) et une dans la mémoire cache. Quand la donnée est modifiée localement, plusieurs politiques de mise à jour existent : Les caches associatifs de N voies et complètement associatifs impliquent le mapping de différentes lignes de la mémoire de niveau supérieur sur le même set. Ainsi, lorsque le set de lignes de la mémoire cache, où une ligne de la mémoire supérieure peut être mappée, est rempli, il faut désigner la ligne qui sera effacée au profit de la ligne nouvellement écrite. Le but de l'algorithme de remplacement des lignes de cache est de choisir cette ligne de manière optimale. Ces algorithmes doivent être implémentés en hardware pour les mémoires caches de bas niveau afin d'être les plus rapides possible et de ne pas ralentir le processeur. Cependant, ils peuvent être implémentés en software pour des caches de niveau supérieur. Tri par tas
Son inconvénient majeur est sa lenteur comparé au tri rapide (qui est en moyenne deux fois plus rapide) : sur un tableau de taille importante, il sera amené à traiter un nombre élevé d'emplacements mémoire dont l’éloignement peut dépasser la capacité du cache, ce qui ralentit l'accès à la mémoire et l’exécution de l’algorithme. Mémoire cache
La présence de mémoire cache permet d'accélérer l'exécution d'un programme. De ce fait, plus la taille de la mémoire cache est grande, plus la taille des programmes accélérés peut être élevée. Il y a cependant une limite au-delà de laquelle l'augmentation de la taille du cache ne sert plus à rien. En effet, dans les codes, il y a des branchements qui ne peuvent pas être prédits par les processeurs. À chaque branchement, la partie du code peut faire appel à une zone mémoire différente. C'est la raison pour laquelle, « l'horizon » au-delà duquel le microprocesseur ne peut voir s'il aura besoin de certaines données limite l’efficacité du cache. La taille du cache est un élément souvent utilisé par les constructeurs pour faire varier les performances d'un produit sans changer d'autres matériels. Par exemple, pour les microprocesseurs, on trouve des séries bridées (avec une taille de mémoire cache volontairement réduite), tels que les Duron chez AMD ou Celeron chez Intel, et des séries haut de gamme avec une grande mémoire cache comme les processeurs Opteron chez AMD, ou Pentium 4EE chez Intel. Autrement dit, la taille de la mémoire cache résulte d'un compromis coût/performance. Mémoire à changement de phase
Les chercheurs espèrent que ce type de mémoire remplacera un jour la mémoire flash, mais 3 obstacles ont été mis en évidence: le premier est la hausse non maîtrisée du courant nécessaire à une écriture mémoire avec l'augmentation de la finesse de gravure ; le second est la sensibilité des cellules de PRAM à la chaleur ; le troisième est une augmentation du bruit électronique (de type bruit télégraphique) dans les cellules lié à la diminution de leur taille. Algorithmes de remplacement des lignes de cache
Cet algorithme remplace la ligne utilisée le moins récemment. L'idée sous-jacente est de garder les données récemment utilisées, conformément au principe de localité. Tous les accès aux différentes lignes de la mémoire cache sont enregistrés ; ce qui explique que cet algorithme coûte cher en termes d'opérations de traitement de liste. De plus, ce coût, qui est un élément vital des systèmes embarqués notamment, augmente exponentiellement avec le nombre de voies de la mémoire cache. Hiérarchie de mémoire
Il existe une hiérarchie des mémoires informatiques : les plus rapides sont les plus coûteuses, donc en nombre limité, et placées le plus près du processeur (les registres font partie intégrante du processeur). Les plus lentes sont les moins coûteuses et sont éloignées du processeur. Mémoire (informatique)
Depuis les progrès de la micro-électronique, c'est la capacité de microscopiques condensateurs organisés en trames, agencés et gérés au sein de puces électroniques qui sert de mémoire numérique rapide pour les ordinateurs modernes. Ces circuits intégrés spécialisés se nomment mémoire dynamique ou . Le gros défaut est dû à la taille des condensateurs qui sont tellement minuscules que l'information ne peut être conservée intacte que quelques fractions de seconde, ce qui nécessite en permanence de rafraîchir les informations, qui nécessite des circuits annexes. EDO
L'EDO est apparue en 1995 (génération 486/Pentium). Caractérisée par la présence d'une petite mémoire cache, la mémoire EDO était 15 % plus rapide que la mémoire FPM DRAM qu'elle remplaçait. EDRAM
Le placement de la mémoire sur même circuit que le ASIC ou le processeur permet d'utiliser un bus beaucoup plus large et permet des vitesses d'opération plus grande. Aussi, à cause de la plus grande densité de la mémoire eDRAM comparativement à la mémoire SRAM, la mémoire eDRAM permet une plus grande quantité de mémoire par unité de surface. La mémoire eDRAM requiert plus d'étapes de fabrication que la mémoire SRAM, ce qui en augmente le coût. Par contre, le gain d'espace, qui est de l'ordre d'un facteur de 3, compense les coûts de fabrication lorsqu'une grande quantité de mémoire est utilisée. RDRAM
Une autre innovation de la RDRAM est l'introduction de l'étalonnage de la RAM au démarrage de l'ordinateur. On calcule le temps que met une information à transiter sur sa piste et pour égaliser les vitesses (et donc améliorer la qualité de la transmission), des pénalités sont appliquées aux pistes les plus rapides. Mémoire cache
Séparer données et instructions permet notamment d'augmenter la fréquence de fonctionnement du processeur, qui peut ainsi accéder simultanément à une donnée et une instruction. Cette situation est particulièrement courante pour des Load/Store. Ceci explique que le cache unifié est souvent le maillon faible du système. De plus, dans un cache unifié, une logique supplémentaire donnant la priorité aux données ou aux instructions doit être introduite, ce qui n'est pas le cas pour les caches séparés. Spécifications techniques de la Nintendo 64
Le dernier composant majeur du système est la mémoire vive, ou RAM. Héritant des supercalculateur de SGI, la Nintendo 64 est une des premières consoles modernes à implémenter une architecture de mémoire unifiée (UMA), au lieu, par exemple, de séparer les banques de mémoire du processeur, de l'audio et de la vidéo. La mémoire vive se compose de 4,5 méga-octets de RDRAM (dont 500 ko pour les bits de parité), construite par Rambus. La RAM est extensible via l'Expansion Pak jusqu'à un total de 9 Mo. La RAM dispose d'un bus de données 9-bits cadencé à 250 MHz, vu que la RDRAM transfère des données autant à la montée qu'à la descente du signal (même fonctionnement pour la DDR) elle fournit 562.5 Mo/s de bande passante maximale au système. Rambus était jeune à l'époque et permit à Nintendo de fournir une large bande passante pour un coût relativement faible. L'étroit bus rendit la conception de la carte plus facile et moins cher que les bus de données plus larges requis pour une meilleure bande passante en sortie de type de RAM plus lentement cadencé (comme VRAM ou EDO DRAM); à l'époque cependant, la RDRAM s'accompagnait d'une très grande latence d'accès. Cette combinaison mit les développeurs de jeu au défi. Les premiers modèles utilisèrent deux puces de RAM de 2 Mo chacune. Plus tard, les modèles utiliseront une seule puce de 4 Mo. Random access machine
Notre machine RAM a besoin de pouvoir sélectionner une case mémoire parmi toutes les autres afin d'accéder à son contenu et uniquement à son contenu. Pour cela, on attribue à chaque case mémoire un identifiant, nommé son adresse mémoire. Cette adresse est un nombre, attribué de façon unique à une case mémoire : deux cases mémoires auront deux adresses mémoires différentes. On dit que la mémoire est adressable. On peut donc accéder à une donnée dans la mémoire sans avoir besoin de lire toutes les données précédentes (accès séquentiel). Cellule multi-niveaux
Elle présente des vitesses d'écriture plus grandes pour une consommation moindre et une meilleure endurance. Cependant, dans la mesure où les mémoires SLC stockent moins de données par cellule que les mémoires MLC, leur coût par mégabit est plus important pour le fabricant. Leur vitesse de transfert et durée de vie particulièrement avantageuses font des mémoires flash SLC un élément de choix à la base des cartes mémoire haute performance. Disque dur
L’ajout de mémoire vive sur le contrôleur du disque permet d’augmenter les performances. Cette mémoire sera remplie par les blocs qui "suivent" le bloc demandé, en espérant que l’accès aux données sera séquentiel. En écriture, le disque peut informer l’hôte qui a initié le transfert que celui-ci est terminé alors que les données ne sont pas encore écrites sur le média lui-même. Comme tout système de cache, cela pose un problème de cohérence des données. Chip RAM
En général, la plupart des ordinateurs Amiga n'étaient livrés qu'avec de la Chip RAM. Suivant les caractéristiques du chipset, il était possible d'étendre la mémoire jusqu'à remplir complètement l'espace d'adressage de la Chip RAM. À ce moment, toute mémoire ajoutée était réservée au processeur principal. L'ajout de cette mémoire, permettant au processeur principal de ne plus être bloqué par les accès à la chip RAM, l'ordinateur s'en trouvait accéléré, et tout naturellement on appela cette mémoire de la Fast RAM. Mémoire vive
Cette mémoire utilise le principe des bascules électroniques pour enregistrer l'information. Elle est très rapide, mais est cependant chère et volumineuse. Elle consomme moins d'électricité que la mémoire dynamique. Elle est utilisée pour les caches mémoire, par exemple les caches mémoire L1, L2 et L3 des microprocesseurs. Mémoire cache
Une mémoire cache ou antémémoire est, en informatique, une mémoire qui enregistre temporairement des copies de données provenant d'une source, afin de diminuer le temps d'un accès ultérieur (en lecture) d'un matériel informatique (en général, un processeur) à ces données. Le principe du cache est également utilisable en écriture, et existe alors en trois modes possibles : "write-through", "write-back" et "write-around". Reynold Johnson
Johnson devient l'un des inventeurs les plus prolifiques de la compagnie, se spécialisant en appareils électromécaniques. Au début des années 1950, IBM pressent un besoin grandissant pour les systèmes de mémoire de masse améliorés et lui demande de mener une équipe de recherche afin de travailler sur ce projet. En 1952, il rassemble une équipe, qui commence à étudier des systèmes de stockage de données sur disques magnétiques. IBM demande à l'équipe d'utiliser ces recherches pour développer une mémoire à accès aléatoire de masse (la RAM). La RAM donnerait à un utilisateur la capacité de rechercher et lire un enregistrement ou un fichier de données en quelques secondes maximum. Auparavant, les données étaient stockées sur des bandes magnétiques et il fallait plusieurs minutes pour trouver ce que l'on cherchait. Mémoire à code correcteur d'erreurs
Une mémoire à code correcteur d'erreurs peut être de 2 à 3 pour cent plus lente qu'une mémoire conventionnelle en raison du temps additionnel nécessaire pour la vérification et la correction des erreurs. Toutefois, les systèmes modernes intègrent la gestion des erreurs dans le processeur, éliminant ainsi les délais de vérification et de correction des accès mémoire. Mémoire racetrack
Les prédictions de 2008 suggéraient qu'une mémoire racetrack permettrait d’atteindre des temps d’accès de , à comparer avec pour un disque dur, ou pour une DRAM ordinaire. À l'époque, on envisageait d'améliorer encore ce score grâce à un "buffer" d'environ . Le débit moyen d'une mémoire racetrack devrait atteindre , à comparer avec pour les circuits DDR3 DRAM, pour un disque dur et 1000 à pour une mémoire flash. La seule technique qui, actuellement, présente un meilleur temps de latence que la mémoire racetrack est la SRAM, de l'ordre de , mais moyennant un coût plus élevé. Algorithmes de remplacement des lignes de cache
Selon John et al., cet algorithme donne de meilleurs résultats que LRU, de l'ordre de 5-10 %. Le problème est que deux queues doivent être gérées ainsi que les migrations de l'une à l'autre ; ce qui requiert beaucoup de hardware et consomme de nombreux cycles d'horloge et d'énergie. Ces raisons expliquent que cet algorithme n'apparaît pas dans les systèmes embarqués mais est une solution utilisée dans les mémoires caches de disque. Mémoire flash
En 2008, une cellule de mémoire flash MLC (de l'anglais à ) ne peut être écrite, de manière fiable, que fois celle de SLC (de l'anglais à ). La raison en est que ces écritures nécessitent l'application de tensions plus élevées que la simple lecture, qui endommagent peu à peu la zone écrite. En revanche, les lectures même répétées ne lui causent aucun dommage. La technique de répartition d'usure, par des procédés variant selon les constructeurs, diminue cet inconvénient; cependant, dans quelques mémoires destinées à remplacer les disques durs d'ordinateur, on aurait observé à l'usage des ralentissements sensibles à l'écriture, dus aux relocalisations successives des blocs. Mémoire cache
Si les mémoires cache permettent d'accroître les performances, c'est en partie grâce à deux principes qui ont été découverts à la suite d'études sur le comportement des programmes informatiques : Latence CAS
Cependant, un système ne sera pas nécessairement plus rapide si on opte pour une mémoire vive plus rapide. La vitesse d'un ordinateur étant basée sur celle de la 'liaison la plus lente', on ne peut doper un système en y ajoutant de la mémoire plus rapide que celle dont dispose déjà le système. Optimisation des performances des architectures multi-cœurs
On observe cependant sur les systèmes AMD 16 cœurs une différence de vitesse entre un accès au cache et un accès à la mémoire centrale (RAM) d'un facteur de 100. De plus, ce facteur est susceptible de croître avec le nombre de cœurs. Les tests sur les processeurs Intel Xeon montrent un ratio semblable.  Le défaut de cache se caractérise par une information ou une instruction non présente dans le cache du cœur ce qui oblige le processeur à aller chercher l’information dans la mémoire centrale de l'ordinateur. AMD Athlon II
La principale différence de la gamme Athlon II par rapport aux modèles Phenom II est la suppression du cache L3. Ce dernier n'offre pas un réel gain d'utilisation en raison d'une fréquence de fonctionnement jugée trop basse et sa perte permet ainsi de conserver des performances relativement proches des Phenom II dans certaines conditions. Mais l'absence de cache L3 permet surtout de réduire la taille du die qui passe ainsi de à et de diminuer la consommation électrique. Cette réduction de taille du die permet aussi d'augmenter le nombre de puces par wafer et donc abaisse le coût de production des Athlon II par rapport aux Phenom II. AMD K10
Les processeurs de la famille K10 tout comme leurs prédécesseurs K8 possèderont leur contrôleur mémoire intégré contrairement aux processeurs Intel qui laissent cette charge au chipset. Cette caractéristique a été en partie responsable du succès des Athlon 64 en réduisant considérablement les latences pour l'accès à la mémoire RAM lorsque la norme était la DDR-SDRAM première du nom. En effet avec ce type de barrettes, les latences de la RAM étaient de 2-2-2-5 pour les meilleures DDR400. Mais lors de l'introduction de la DDR2, l'atout de l'Athlon 64 s'est atténué car les latences ont explosé et l'augmentation de fréquence n'a pu que compenser cette chute de performance. Ainsi les Athlon 64 sur socket AM2 sont juste aussi performants que les Athlon 64 sur socket 939. Les latences mémoires ayant sérieusement diminué, la DDRII ne pose plus de problème. Les K10 seront faits pour supporter de la DDR en standard. Les serveurs exploiteront la DDR2 800 dans un premier temps. Technologies matérielles dédiées au centre de calcul
La mémoire TCAM est utilisée pour une recherche rapide car elle parcourt toute la mémoire en une seule opération.Mais c'est une mémoire coûteuse, qui consomme également des ressources ASIC et de haute puissance. Par conséquent, les commutateurs et routeurs sont généralement équipés d'une mémoire TCAM de taille limitée. D'une taille de stockage 2K à 4K, un Virtual TCAM qui peut stocker jusqu'à 40K. la taille mémoire TCAM défini le nombre de règles de flux gérable, pour une taille de , on compte jusqu'à 64K à 128K règles de flux, et jusqu'à de flux pour un routage et une commutation rapides Mémoire cache
Par exemple, tout système d'exploitation moderne possède, à l'interface entre les systèmes de fichiers et les pilotes chargés du stockage de masse, une sous-entité dont le but est de garder en mémoire vive les données récemment lues ou écrites ; cela permet d'éviter les entrées/sorties inutiles avec le stockage de masse, car celles-ci sont généralement plus lentes que celles avec la mémoire vive. Mémoire à code correcteur d'erreurs
Une interférence électrique ou magnétique à l'intérieur d'un ordinateur peut changer la valeur d'un bit de mémoire vive DRAM. On a d'abord pensé que ce phénomène était principalement dû à des particules alpha émises par des contaminants dans les matériaux utilisés dans la fabrication des modules DRAM, mais la recherche a montré que la majorité des erreurs dans les mémoires DRAM se produisent à la suite de rayonnement de fond, principalement des neutrons émis par des réactions engendrées par des rayons cosmiques. Ces neutrons peuvent changer le contenu d'une ou de plusieurs cellules de mémoire ou interférer avec le circuit utilisé pour les lire ou les écrire. Cellule multi-niveaux
Le principal avantage des mémoires flash MLC réside en leur faible coût par unité de stockage du à une plus grande densité de données, et les logiciels de lecture de mémoire peuvent compenser un taux d'erreur plus important. Ceux-ci ont recours à un code correcteur d'erreur capable de corriger des erreurs étendues à plusieurs bits ; par exemple, le SandForce SF-2500 Flash Controller peut corriger jusqu'à 55 bits par secteur de 512 bits avec un taux d'impossibilité de correction inférieur à un secteur pour 10 bits lus. L'algorithme le plus utilisé est celui de Bose-Chaudhuri-Hocquenghem (code BCH). Out of memory
Historiquement, la situation d'insuffisance de mémoire était plus courante qu'elle ne l'est aujourd'hui, car les premiers ordinateurs et systèmes d'exploitation étaient limités à de petites quantités de mémoire vive (RAM) en raison de l'incapacité des premiers processeurs à gérer de grandes quantités de mémoire, ainsi que de considérations de coût. Depuis que l'avènement de la mémoire virtuelle a ouvert la porte à l'utilisation de l'espace de swap, la condition est moins fréquente. Presque tous les programmes modernes s'attendent à pouvoir allouer et désallouer de la mémoire librement en cours d'exécution, et ont tendance à échouer de manière incontrôlée (crash) lorsque cette attente n'est pas satisfaite; les plus anciens n'allouaient souvent de la mémoire qu'une seule fois, vérifiaient s'ils en avaient assez pour faire tout leur travail, puis ne s'attendaient plus à en avoir. Par conséquent, soit ils échouaient immédiatement avec un message d'erreur "out of memory", soit ils s'exécutaient comme prévu. Fully Buffered DIMM
La (ou FB-DIMM) est un type de barrette de mémoire qui peut être utilisé pour augmenter la fiabilité, la performance et la densité des systèmes mémoire. Précédemment à cette technologie, les modules DRAM possédaient des lignes de données provenant du contrôleur de mémoire qui étaient directement connectées aux lignes de données. À mesure que la largeur de bus de mémoire et la vitesse d'accès augmentent, la qualité du signal se dégrade à l'interface du bus et du dispositif. Cet inconvénient limite la vitesse et/ou la densité de la mémoire. Les FB-DIMM résolvent ce problème en utilisant une approche différente. Comme avec toutes les spécifications de mémoire vive, la spécification pour la FB-DIMM a été publié par le JEDEC. Cache de processeur
Tous les processeurs (rapides) modernes, à quelques exceptions près, ont plusieurs niveaux de caches de processeur. Les premiers processeurs qui utilisaient un cache n'avaient qu'un seul niveau de cache ; contrairement aux caches de premier niveau ultérieurs, il n'était pas divisé en L1d (pour les données) et L1i (pour les instructions). Presque tous les CPU actuels avec des caches ont un cache L1 divisé. Ils ont également des caches L2 et pour les plus gros processeurs, des caches L3 également. Le cache L2 n'est généralement pas divisé et agit comme un référentiel commun pour le cache L1 déjà divisé. Chaque cœur d'un microprocesseur multi-cœur possède un cache L1 dédié et n'est généralement pas partagé entre les cœurs. Le cache L2 et les caches de niveau supérieur peuvent être partagés entre les cœurs. Le cache L4 est actuellement rare et se trouve généralement sur une sorte de mémoire vive dynamique (DRAM), plutôt que sur une mémoire vive statique à accès aléatoire (SRAM), sur un dé de circuit intégré ou une puce électronique séparée (exceptionnellement, un cache de type eDRAM peut être utilisé pour tous les niveaux de cache, jusqu'à L1). Historiquement, c'était également le cas avec le cache L1, alors que des puces plus grandes ont permis son intégration et généralement à tous les niveaux de cache, à l'exception peut-être du dernier niveau. Chaque niveau de cache supplémentaire est optimisé différemment et a tendance à être plus grand que le précédent. Disque dur
L’utilisation de la mémoire flash devrait permettre d’améliorer de 20 % les chargements et le temps de démarrage des PC. Les PC portables devraient quant à eux profiter d’une augmentation d’autonomie de 5 à 15 %, ce qui pourrait se traduire par un gain de sur les dernières générations de PC portables. RAID (informatique)
Le cache d'écriture pose un problème de sécurité important. En effet, la mémoire cache étant volatile, les données écrites par le système dans cette mémoire, mais n'ayant pas encore été transférées sur les supports de stockage, sont perdues en cas de rupture d'alimentation ou autre défaillance. Il peut s'ensuivre de très lourdes pertes ou corruptions de données. Dans certains cas graves, l'intégrité du système de fichier peut être affectée et tout le volume peut alors devenir illisible. Pour pallier ce problème, on recommande de n'activer le cache d'écriture que si la machine est alimentée par l'intermédiaire d'un onduleur et que si le contrôleur RAID possède une batterie de secours (cette batterie permet de conserver le contenu du cache pendant 30 minutes à 6 heures selon les modèles de contrôleurs et la taille de la batterie). Latence CAS
La mémoire avec une latence CAS faible est plus rapide que celle présentant une latence CAS élevée; plus la CL d'une mémoire est élevée (par exemple, CL5), plus elle est lente. Mémoire cache
Une ligne de cache est partagée par de nombreuses adresses de la mémoire de niveau supérieur. Il nous faut donc un moyen de savoir quelle donnée est actuellement dans le cache. Cette information est donnée par le "tag", qui est une information supplémentaire stockée dans le cache. L'index correspond à la ligne où est enregistrée la donnée. En outre, le contrôleur de la mémoire cache doit savoir si une adresse donnée contient une donnée ou non. Un bit additionnel (appelé bit de validité) est chargé de cette information. Chip RAM
Cependant, ce type d'architecture à mémoire unique fut abandonné au profit de mémoires pour chaque type de coprocesseur, y compris dans les consoles de jeu. C'est notamment nécessaire pour des besoins de performance (accès exclusif par la carte graphique par exemple) et pour des besoins d'intégration électronique (chaque fabricant gère sa propre mémoire). Les besoins en mémoire vidéo se faisant de plus en plus sentir, il était également plus économique d'utiliser exactement la quantité de mémoire nécessaire pour chaque coprocesseur. Aujourd'hui avec l'augmentation des vitesses des mémoires principales, il est possible d'utiliser la mémoire principale comme réserve pour le processeur graphique. Un peu comme était utilisée la chip RAM. Mais cette méthode peu performante est réservée pour les ordinateurs d'entrée de gamme. Mémoire cache
La différence essentielle entre les caches disque et mémoire est que l'on dispose de très peu de temps dans le second cas pour déterminer où ranger ce que l'on cache. Lorsqu'on cache un disque, on peut choisir avec soin où placer chaque information en fonction des caractéristiques des pages. L'antémémoire des IBM 370, n'ayant droit qu'à un cycle mineur pour prendre sa décision, utilise arbitrairement les bits de poids faible de l'adresse mémoire comme adresse du cadre de page associé. Il revient alors au compilateur d'éviter de son mieux les collisions potentielles. Rafraîchissement de la mémoire
L'intervalle de temps maximal entre les rafraîchissements est normalisé par le JEDEC pour chaque technologie DRAM et est mentionné dans les spécifications de la puce par le fabricant. L'intervalle est, en général, de l'ordre des millisecondes. Pour les puces DDR2 SDRAM actuelles (2012), l'intervalle est de 64 ms. L'intervalle de rafraîchissement dépend du rapport entre la charge stockée dans les condensateurs des cellules de mémoire et les courants de fuite. Bien que la taille des condensateurs a été réduite à chaque nouvelle génération de puces de mémoire, les intervalles de rafraîchissement n'ont pas eu à être réduits. Des intervalles de rafraîchissement plus courts auraient signifié qu'une plus grande partie du temps de l'appareil est occupé par le rafraîchissement, laissant moins de temps pour les opérations de lecture et d'écriture. L'overhead de rafraîchissement qui occupait jusqu'à 10 % du temps des premières puces DRAM occupe aujourd'hui (2012) moins de 1 % du temps des puces. Z-RAM
Selon ses promoteurs, une mémoire Z-RAM serait aussi rapide qu'une mémoire SRAM tout en étant plus compacte étant donné qu'elle n'utiliserait qu'un transistor (sans condensateur) pour stocker un bit d'information. La taille de la cellule est plus petite que celle de la SRAM, mais devrait être un peu moins rapide.