# Hiérarchie de mémoire

Dans un ordinateur, le processeur accède aux instructions du programme à exécuter ainsi qu'aux données nécessaires à son exécution depuis la 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.
Les mémoires les plus rapides sont celles de plus petite taille, alors que les mémoires plus lentes disposent d'une plus grande capacité (quantité d'information stockée).

## Les différents niveaux de mémoire

Pour des raisons économiques, les mémoires sont en général divisées en plusieurs familles traitées, la plupart du temps, différemment par le système d'exploitation. Par ordre de rapidité, on peut distinguer :
* Registre de processeur : intégré au processeur. Ce type de mémoire est très rapide (temps d'accès du même ordre de grandeur qu'un cycle de processeur) mais aussi très cher et est donc réservé à une très faible quantité de données (capacité de quelques dizaines d'octets). Il est utilisé pour stocker les instructions lors de l'exécution d'un programme et les données sur lesquelles opèrent les instructions exécutées par la machine.
* Mémoire cache : Il s'agit d'une mémoire intermédiaire entre la mémoire centrale et le processeur, de type SRAM. Elle sert à conserver un court instant des informations fréquemment consultées. Les technologies des mémoires caches visent à accélérer la vitesse des opérations de consultation. En effet, le débit de la mémoire centrale est très lent par rapport au débit requis par le processeur. En plaçant les informations en avance dans le cache, on accélère la vitesse de lecture des informations par le processeur. La mémoire de cache a une très grande vitesse, et un coût élevé pour une faible capacité de stockage ;
* Mémoire centrale : Mémoire vive (RAM), espace principal de stockage du microprocesseur, mais dont le contenu disparaît lors de la mise hors tension de l'ordinateur. La RAM peut être de type DRAM ou SRAM, selon qu'elle doit ou non être rafraichie périodiquement. La SRAM, qui n'a pas besoin d'être rafraîchie, est plus rapide, mais aussi plus coûteuse ;
* Mémoire de masse ou mémoire de stockage : mémoire non volatile, de grande capacité (plusieurs centaines de Mo à plusieurs centaines de Go), sert à stocker à long terme des grandes quantités d'informations. La mémoire de masse est très lente (temps d'accès de l'ordre de la dizaine de millisecondes pour un disque magnétique). Les technologies les plus courantes de mémoires de masse sont électromécaniques, elles visent à obtenir une capacité de stockage élevée à faible coût et ont généralement une vitesse inférieure aux autres mémoires. Les disques durs, bandes magnétiques, SSD ou CD/DVD sont des mémoires de masse ;

## Gestion de la mémoire

L'utilisation d'une hiérarchie de mémoire, c'est-à-dire de plusieurs mémoire utilisée conjointement avec des rapidités et capacités différentes, implique l'utilisation de dispositifs complexes pour déplacer l'information utile de la mémoire de grande capacité vers la mémoire rapide, puis la ré-inscription des informations modifiées vers la mémoire de grande capacité.
Le matériel et le système d'exploitation sont responsables du déplacement des objets le long de la hiérarchie mémoire. Par exemple, dans un système de mémoire virtuelle, une faute de page va probablement faire déplacer un bloc de données depuis un niveau assez bas (disque dur) vers la mémoire centrale, puis l'accès à ces adresses en mémoire vont à nouveau créer une recopie vers des caches plus proches du processeur.
La mémoire cache est utilisée pour servir d'intermédiaire entre les mémoire de masse très lentes et la mémoire du registre très rapide, en utilisant la propriété de localité de l’information qui fait que la probabilité de réutiliser de l’information est supérieure à celle d’en accéder de nouvelles.

## Temps d'accès

C'est la technologie et l'organisation des mémoires qui vont influer sur ses temps d'accès. Par exemple, la mémoire SRAM à un temps d'accès de quelques nanosecondes, tandis que la DRAM est 5 à 10 fois plus lente. Un disque dur peut avoir un taux de transfert de 75 Mo/s, mais qui peut se voir plus que doublé si l'on fait appel à un châssis RAID.

## Caractéristiques des différents niveaux de mémoire

La capacité, la vitesse et le coût des différents niveaux de mémoire varient grandement. Par exemple, en voici une illustration utilisant des équipements de 2013 (pour le processeur, un Intel Haswell Mobile a été utilisé) :
| Type | Type | Capacité | Vitesse |
| Registres de processeur | Registres de processeur | quelques milliers d’octets | 1 cycle processeur |
| Mémoire cache CPU | Niveau 0 (L0) mémoire des microcodes | 6 Ko | |
| Mémoire cache CPU | Niveau 1 (L1) mémoire cache des instructions | 128 Ko | 700 Go/s |
| Mémoire cache CPU | Niveau 1 (L1) mémoire cache de données | 128 Ko | 700 Go/s |
| Mémoire cache CPU | Niveau 2 (L2) cache partagée (instructions et données) | 1 Mo | 200 Go/s |
| Mémoire cache CPU | Niveau 3 (L3) cache partagée (instructions et données) | 6 Mo | 100 Go/s |
| Mémoire cache CPU | Niveau 4 (L4) cache partagée (instructions et données) | 128 Mo | 40 Go/s |
| Mémoire vive de type DRAM | Mémoire vive de type DRAM | quelques Go | 10 Go/s |
| Disque dur | | quelques To | |
| Solid State Drive | | | 600 Mo/s |
| Librairie de sauvegarde | Librairie de sauvegarde | plusieurs exaoctets | 160 Mo/s |
Les coûts varient également entre les niveaux. Ainsi, en 2012, un Go de mémoire de disque dur coûtait 0,06 € comparativement à 5 € pour un Go de mémoire vive de type DRAM.
Les couts des mémoires diminuent aussi rapidement dans le temps. Le coût d'un Go de mémoire de disque dur a chuté de 0,6 € en 2005 à 0,06 € en 2012. De même, le coût d'un Go de mémoire vive de type DRAM a chuté de 200 € en 2005 à 5 € en 2012.