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'histoireLa 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
| Amélioration annuelle | |
|---|---|
| Vitesse du processeur | 55 % par an |
| Vitesse de la mémoire hors puce | 10 % par an |
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
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.
Liens
- 🗄️ Pourquoi les programmes vivent-ils dans la même mémoire que les données qu'ils traitent ?
- 📈 Pourquoi la puissance des puces a-t-elle doublé tous les deux ans, et jusqu'à quand ?
- 🔁 Que fait réellement un processeur, des milliards de fois par seconde ?
- 👻 Comment l'habitude d'un processeur de deviner la suite peut-elle divulguer tes secrets ?
- 🧮 Pourquoi ne peux-tu garder que quelques choses en tête à la fois ?
Sources (5)
Pas de source, pas d'affirmation. Chacun des 14 faits de cette leçon renvoie à au moins une de ces sources.