Qu’est-ce que le CPU cache ?

Les processeurs modernes fonctionnent incroyablement vite ; ils peuvent surpasser considérablement la RAM du système. Ce déséquilibre de vitesse entre le processeur et la mémoire rendrait votre processeur inactif, le temps que des données lui soient envoyées pour qu’il puisse continuer à exécuter un processus.

Pour éviter que cela ne se produise, permettant aux processeurs de continuer à fonctionner de plus en plus rapidement, un cache de processeur est utilisé.

Qu'est-ce que le cache du processeur?

Voyons cela plus en détails.

Comment un cache CPU accélère-t-il un CPU?

Le cache du processeur est conçu pour être aussi rapide que possible et pour ensuite mettre en cache les données demandées par le processeur. Le cache du processeur a sa vitesse optimisée de trois manières: latence, bande passante et proximité. Le cache du processeur fonctionne à des latences très faibles, ce qui minimise le temps nécessaire pour qu’un résultat soit renvoyé. Par exemple, l’Intel i9-9900k a une latence de cache de 0.8, 2.4 et 11.1 nanosecondes pour le cache L1, L2 et L3 respectivement. En comparaison, la latence de la RAM haute vitesse moderne est de l’ordre de 14 nanosecondes.

Astuce : Les niveaux de cache seront expliqués plus en détail plus tard, mais de manière simple, les couches inférieures de cache sont plus rapides mais sont plus chères. Une nanoseconde est un milliardième de seconde, donc une latence de 0,8 seconde signifie qu’il faut moins d’un milliardième de seconde pour renvoyer un résultat.

En termes de bande passante, le cache du processeur offre des améliorations de performances significatives par rapport au stockage traditionnel et à la RAM. Les vitesses de lecture du cache L1 et L3 peuvent atteindre respectivement 2,3 To/s et 370 Go/s, tandis que la bande passante de la RAM est généralement d’environ 40 Go/s. Cette bande passante accrue signifie que le cache du processeur peut transférer des données vers le processeur beaucoup plus rapidement que la RAM.

Pour atteindre les vitesses maximales possibles, le cache du processeur est  intégré au silicium de la puce du processeur lui-même. Cela minimise la distance que les signaux électriques doivent parcourir, ce qui maintient la latence aussi faible que possible. Par exemple, lorsque le cache L3 a été déplacé pour la première fois de la carte mère vers la puce CPU, le processeur de l’époque (Pentium 4 EE) a pu obtenir une amélioration des performances de 10 à 20%.

Architecture du cache du processeur

Les processeurs modernes utilisent généralement trois couches de cache de processeur étiquetées L1-3, les caches de numéro inférieur étant plus proches des cœurs de processeur, plus rapides et plus chers. Chaque cœur de processeur individuel dans un processeur multicœur a son propre cache L1. Il est généralement divisé en deux parties, les L1I et L1D. Le L1I est utilisé pour mettre en cache les instructions pour la CPU tandis que L1D est utilisé pour mettre en cache les données sur lesquelles ces instructions doivent être exécutées.

Chaque cœur de processeur dispose généralement de son propre cache L2 sur un processeur moderne. Le cache L2 est plus grand et plus lent que le cache L1 et est principalement utilisé pour stocker des données qui, autrement, ne rentreraient pas dans le cache L2. En ayant un cache L2 dédié par cœur, les conflits de cache sont évités. La contention de cache est l’endroit où différents cœurs se battent pour réclamer de l’espace de cache pour leurs propres charges de travail, ce qui peut entraîner l’effacement de données importantes du cache.

Le cache L3 est généralement partagé entre tous les cœurs de processeur du processeur. Encore une fois, le cache L3 est plus lent que le cache L2 mais est moins cher et plus grand. En fournissant un cache partagé, il est possible de réduire la quantité de données qui seraient dupliquées à des niveaux inférieurs de cache par cœur.

Conseil : à titre d’exemple, dans les tailles de cache, le i9-9900K d’Intel dispose d’un cache L1 de 64 Ko et d’un cache L2 de 256 Ko par cœur (pour un total de 512 Ko L1 et 2 Mo L2), il dispose également d’un cache L3 partagé de 16 Mo.

Comment le cache CPU est-il utilisé ?

Tous les niveaux du cache du processeur sont utilisés pour accélérer les performances du processeur en mettant en cache les données de la RAM. Lorsqu’un processeur demande des données, il effectue généralement une recherche dans ses couches de cache pour tenter d’obtenir les données le plus rapidement possible. Si les données sont trouvées dans un hit de cache, le processeur peut continuer son traitement. Si les données ne sont pas dans le cache, dans ce qu’on appelle un cache manquant, le processeur doit vérifier la RAM, puis le disque dur si les données ne sont pas là non plus. Les couches les plus rapides sont toujours vérifiées en premier pour des performances maximales.

Pour aider le CPU à avoir les données dont il a besoin dans le cache quand il en a besoin, le cache tente de s’accaparer les données dont le CPU pourrait avoir besoin ensuite. Par exemple, si le processeur a demandé des données pour une image, le cache peut essayer de mettre en cache de manière préventive davantage de données d’image afin qu’elles puissent être transmises au processeur le plus rapidement possible.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *