Aller au contenu

Hiérarchie de mémoire

Un article de Wikipédia, l'encyclopédie libre.
Hiérarchie mémoire d'un ordinateur
Hiérarchie mémoire d'un ordinateur. Les niveaux sont indicatifs : une architecture donnée peut en inclure plus ou moins.

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émoire plus lentes disposent d'une plus grande capacité (quantité d'information stockée)[1].

Les différents niveaux de mémoire

[modifier | modifier le code]

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[2]. 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[3].
  • 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[3]. 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[3] ;
  • 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[4]). 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[3] ;

Gestion de la mémoire

[modifier | modifier le code]

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[1].

Temps d'accès

[modifier | modifier le code]

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

[modifier | modifier le code]

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é[5]) :

Type Capacité Vitesse
Registres de processeur quelques milliers d’octets 1 cycle processeur
Mémoire cache CPU Niveau 0 (L0) mémoire des microcodes 6 Ko[6]
Niveau 1 (L1) mémoire cache des instructions 128 Ko 700 Go/s[7]
Niveau 1 (L1) mémoire cache de données
Niveau 2 (L2) cache partagée (instructions et données) 1 Mo 200 Go/s[7]
Niveau 3 (L3) cache partagée (instructions et données) 6 Mo 100 Go/s[7]
Niveau 4 (L4) cache partagée (instructions et données) 128 Mo 40 Go/s[7]
Mémoire vive de type DRAM quelques Go 10 Go/s[7]
Disque dur quelques To
Solid State Drive 600 Mo/s[8]
Librairie de sauvegarde plusieurs exaoctets 160 Mo/s[9]

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.

Références

[modifier | modifier le code]
  1. a et b « Introduction à l'architecture des ordinateurs », sur Techniques de l'Ingénieur (DOI 10.51257/a-v1-h1000, consulté le )
  2. Le livre Les systèmes d'exploitation des ordinateurs (Bloch Laurent, 2003) distingue quatre catégories de cout/performances croissants/décroissants| : Registres du processeur, Mémoire cache, Mémoire usage général, Mémoire de stockage.
  3. a b c et d Guillaume Hutzler, Laboratoire IBISC, (Informatique Biologie Intégrative et Systèmes Complexes), Université d’Évry Paris-Saclay, « Informatique générale - Architecture des ordinateurs » [PDF], sur ibisc.univ-evry.fr, (consulté le )
  4. « Introduction à l'architecture des ordinateurs », sur Techniques de l'Ingénieur (DOI 10.51257/a-v1-h1000, consulté le )
  5. Brooke Crothers, « Dissecting Intel's top graphics in Apple's 15-inch MacBook Pro », sur cnet.com, (consulté le ).
  6. « Intel's Haswell Architecture Analyzed : Building a New PC and a New Intel », sur anandtech.com (consulté le ).
  7. a b c d et e (en) « SiSoftware – Windows, Android, GPGPU, CUDA, OpenCL, analysers, diagnostic and benchmarking apps », sur sisoftware.co.uk (consulté le ).
  8. http://web.archive.org/web/20141022020746/http://www.tomshardware.com/charts/ssd-charts-2013/AS-SSD-Sequential-Read,2782.html.
  9. http://www.lto.org/technology/generations.html « Copie archivée » (version du sur Internet Archive)

Article connexe

[modifier | modifier le code]