Tech●●●●●Difficulty 4 of 5

Pourquoi un processeur garde-t-il une toute petite mémoire juste à côté de lui ?

Entre 1986 et 2000, les processeurs gagnaient 55 % de vitesse par an. La mémoire, seulement 10 %. Quelque chose devait céder.

▶ Lancer l'histoire

La loi de Moore entassait toujours plus de transistors sur les puces, donc les processeurs devenaient plus rapides presque chaque année. La mémoire principale n'a pas suivi le rythme. Entre 1986 et 2000, la vitesse des processeurs s'améliorait d'environ 55 % par an, alors que le temps de réponse de la mémoire située hors de la puce ne s'améliorait que d'environ 10 %. Cet écart grandissant s'appelle le mur de la mémoire, et il signifie qu'un processeur peut passer une bonne partie de son temps à simplement attendre que la mémoire réponde.

Vitesse du processeur contre vitesse de la mémoire, croissance annuelle (1986-2000)

% par an

Graphique en barres : Vitesse du processeur contre vitesse de la mémoire, croissance annuelle (1986-2000). (% par an)
Amélioration annuelle
Vitesse du processeur55 % par an
Vitesse de la mémoire hors puce10 % par an
De 1986 à 2000, la vitesse des processeurs s'améliorait d'environ 55 % par an alors que le temps de réponse de la mémoire ne s'améliorait que d'environ 10 % par an, ouvrant le mur de la mémoire.

La solution est un cache : une petite mémoire rapide placée juste à côté du cœur du processeur, qui garde des copies des données utilisées récemment. Vérifier le cache en premier permet souvent au processeur d'éviter un aller-retour vers la mémoire principale, qui peut être des dizaines à des centaines de fois plus lente à atteindre. Une puce moderne empile généralement plusieurs de ces caches : L1, le plus proche du cœur et le plus rapide ; L2, un peu plus loin, plus lent mais plus grand ; et souvent L3, partagé entre plusieurs cœurs.

Les caches fonctionnent grâce à un motif appelé localité de référence : un processeur a tendance à réutiliser bientôt les mêmes emplacements mémoire (localité temporelle), et il a tendance à utiliser des emplacements mémoire proches les uns des autres (localité spatiale). Devine juste ce qui va être demandé, et le cache l'a déjà sous la main.

Ce n'est pas gratuit. La mémoire cache est construite en SRAM, qui a besoin de quatre ou six transistors pour garder un seul bit, là où la DRAM de la mémoire principale se contente d'un transistor et d'un condensateur. À l'époque du 386, la mémoire principale pouvait avoir des temps de latence allant jusqu'à 120 nanosecondes, tandis que le cache en SRAM tournait autour de 10 à 25 nanosecondes. Cette vitesse coûte de la place sur la puce, ce qui explique exactement pourquoi les caches restent petits alors que la mémoire reste grande.

Quiz

0/3

  1. 1.Pourquoi un processeur utilise-t-il un petit cache rapide au lieu de rendre toute la mémoire rapide ?
  2. 2.Un programme lit une longue liste de nombres, l'un après l'autre. Quel motif permet au cache d'aider le plus ?
  3. 3.Pourquoi le cache L1 est-il plus petit que le cache L2 ou L3 ?

Récap

Les caches fonctionnent grâce à la localité de référence : les processeurs ont tendance à réutiliser bientôt les mêmes emplacements mémoire (localité temporelle) et ceux qui sont proches (localité spatiale), si bien qu'un petit cache rapide peut généralement deviner juste ce qui sera demandé ensuite.

Le fait surprenant · Entre 1986 et 2000, la vitesse des processeurs s'améliorait d'environ 55 % par an alors que la mémoire hors puce ne s'améliorait que d'environ 10 % par an.

Sources (5)

Pas de source, pas d'affirmation. Chacun des 14 faits de cette leçon renvoie à au moins une de ces sources.

  1. [1]CPU cache · Wikipedia
  2. [2]Locality of reference · Wikipedia
  3. [3]Random-access memory · Wikipedia
  4. [4]Memory hierarchy · Wikipedia
  5. [5]Dynamic random-access memory · Wikipedia
D'autres leçons · 💻 Tech (3) Toutes les leçons « Tech » →

Une lumière de plus sur ta carte.

Reçois une leçon comme celle-ci chaque jour, sur les sujets que tu aimes. Gratuit, en deux ou cinq minutes.

Récupère la carte à partager de cette leçon ↗