Qu'est-ce que le cache ?

click fraud protection

Qu'est-ce que le cache et pourquoi les CPU, GPU et autres types de processeurs en disposent-ils? Voici tout ce que vous devez savoir.

Liens rapides

  • Cache: une petite quantité de mémoire haute vitesse
  • Niveaux de cache et hiérarchie de la mémoire
  • Le cache est nécessaire mais n'améliore pas les performances par lui-même

Bien que l'on ne parle pas autant du cache que des cœurs, RAM (Mémoire à accès aléatoire), ou VRAM, vous en avez probablement déjà entendu parler, surtout récemment. AMD annonce fièrement les performances de jeu pour son Processeurs Ryzen avec V-Cache 3D à la suite de l'utilisation du cache, et l'une des plus grandes améliorations d'Intel avec ses processeurs Raptor Lake de 13e génération a été l'ajout de plus de cache.

Mais comment le cache peut-il améliorer les performances lorsqu'il mesure en termes de mégaoctets? Même les kits de RAM les moins chers sont livrés avec 16 Go de nos jours, alors comment l'ajout de quelques mégaoctets de cache supplémentaires peut-il faire une si grande différence en termes de performances? Eh bien, le cache n'est pas votre type de mémoire normal.

Cache: une petite quantité de mémoire haute vitesse

Source: AMD

Le cache est en fait un développement assez récent des processeurs, datant des années 1990, et il a été inventé à cause de la RAM. La RAM est un composant clé des ordinateurs qui stocke une quantité importante de données dont les processeurs (comme les CPU et les GPU) devraient avoir besoin assez souvent. Pendant longtemps, les améliorations des performances de la RAM ont suivi le rythme des améliorations des performances du processeur, mais dans les années 1990, il devenait évident que la RAM ne serait pas en mesure de suivre les derniers processeurs. La RAM avait beaucoup de capacité, mais les vitesses de transfert étaient tout simplement trop lent.

C'est là que le cache entre en jeu. Ce n'est pas aussi grand que la RAM physiquement ou en capacité, mais il se trouve à l'intérieur du processeur lui-même et peut transférer des données très rapidement et avec une latence très faible. Tant que le cache stocke les données dont le processeur a réellement besoin, cela peut faire gagner du temps car demander à la RAM les mêmes données est beaucoup plus lent. C'était une excellente solution au problème de RAM et a permis aux concepteurs de processeurs de continuer à fabriquer des processeurs plus rapides et Les concepteurs de RAM doivent continuer à créer de plus grandes capacités de RAM sans avoir à se soucier autant de performance. Aujourd'hui, le cache se trouve dans à peu près tous les types de processeurs.

Vous vous demandez peut-être pourquoi le cache est si petit. Eh bien, cela a surtout à voir avec l'espace et l'argent. Même 32 Mo de cache peuvent occuper un peu d'espace sur un processeur, et les puces modernes sont limitées à environ 600 mm2 de surface totale, ce qui doit être utilisé à bon escient. Cela signifie que consacrer plus d'espace au cache peut devenir assez coûteux, et cette situation est en fait en train de s'aggraver, pas de s'améliorer. Les derniers processus de fabrication entraînent des améliorations de plus en plus petites de la densité du cache, et TSMC n'a pas du tout réussi à réduire la taille du cache lors de la première itération de son processus de 3 nm.

Niveaux de cache et hiérarchie de la mémoire

Source: Carlos Carvalho

L'invention du cache signifiait qu'il y avait une nouvelle couche pour tous les périphériques de stockage de données dans un ordinateur. Ces couches forment ce qu'on appelle la hiérarchie de la mémoire, que vous pouvez voir dans l'image ci-dessus, et elle détaille quelle mémoire va où dans un système typique dans un processeur (bien que d'autres types de processeurs semblent très similaire). Aujourd'hui, la hiérarchie de la mémoire moderne n'inclut pas seulement le cache, la RAM et les périphériques de stockage permanents, mais également une hiérarchie de la mémoire au sein du cache lui-même.

La plupart des processeurs ont différents niveaux de cache à des fins diverses. Le premier et le plus petit niveau de cache est L1, qui reçoit des cœurs individuels pour le traitement des données nécessaires immédiatement. Le cache L1 est souvent mesuré en kilo-octets, les derniers processeurs Ryzen 7000 ayant 64 Ko de cache L1 par cœur. De plus, le cache L1 moderne est souvent divisé en L1I (pour les instructions) et L1D (pour les données).

La prochaine étape est L2, qui est destinée à un groupe de cœurs plutôt qu'à des cœurs individuels. Naturellement, le cache L2 est plus grand que le cache L1, souvent d'un ordre de grandeur, mais étant beaucoup plus grand et devant desservir plus de cœurs, il est plus lent et a une latence plus élevée. Certains processeurs, en particulier les GPU et les CPU plus lents, n'iront que jusqu'au cache L2.

L'étape suivante est L3, qui est généralement utilisée par tous les cœurs de la puce. Sa taille peut varier de quelques fois plus grande que le cache L2 à plus d'un ordre de grandeur plus grand, selon le processeur. Cela signifie qu'il est encore plus lent que le cache L2 mais qu'il surpasse toujours la RAM. De plus, le cache L3 agit également souvent comme un "cache victime", où vont les données expulsées des caches L1 et L2. Il peut être expulsé du cache L3 s'il n'est pas nécessaire. Aujourd'hui, le cache L3 est particulièrement important pour AMD en raison de sa technologie chiplet. Les puces Ryzen 3D V-Cache contiennent 64 Mo de cache L3 et les matrices de cache mémoire RX 7000 (ou MCD) contiennent chacune 16 Mo de cache L3.

Le niveau de cache le plus élevé observé sur la plupart des processeurs est L4, qui est souvent si grand qu'il s'agit en fait de RAM. En fait, les derniers processeurs à utiliser le cache L4 sont les puces Sapphire Rapids Xeon d'Intel, qui utilisent HBM2 comme cache L4 sur les modèles haut de gamme. AMD, en revanche, n'a jamais utilisé de cache L4 et se contente d'agrandir son cache L3 à des capacités élevées en ajoutant plus de puces CPU et V-Cache. Un cache L4 profite généralement davantage aux GPU intégrés, car il s'agit d'une solution sur puce qui peut partager des données entre le CPU et le GPU intégré.

Dans certains chipsets, principalement mobiles, il existe un autre type de cache: le cache de niveau système (SLC). Ce cache est ensuite utilisé sur l'ensemble du chipset, tel que le GPU, le NPU et le CPU. Un cache peut remplacer le besoin de requêtes vers la mémoire principale, de sorte qu'un SLC profite à l'ensemble du SoC.

Le cache est nécessaire mais n'améliore pas les performances par lui-même

Malgré tout le battage médiatique entourant les innovations récentes en matière de cache, ce n'est pas une solution miracle pour les performances. Après tout, il n'y a pas de capacité de traitement dans le cache; il ne fait que stocker des données, et c'est tout. Bien que chaque processeur puisse absolument bénéficier d'avoir plus de cache, il est souvent trop coûteux d'ajouter plus que la quantité exacte nécessaire. L'ajout de plus de cache peut même ne pas améliorer les performances en fonction de la charge de travail, ce qui est une incitation supplémentaire à ne pas mettre une tonne sur un processeur.

Cela étant dit, pouvoir ajouter une grande quantité de cache peut être souhaitable dans certaines situations. Les processeurs avec beaucoup de cache ont tendance à mieux fonctionner dans les jeux, par exemple. Les processeurs Ryzen d'AMD avec V-Cache 3D sont assez rapides pour les jeux malgré une fréquence inférieure à celle des puces sans V-Cache, et Les processeurs Intel de 13e génération sont nettement plus rapides que les puces de 12e génération, la seule amélioration majeure étant un agrandissement cache.

En fin de compte, le cache existe afin que les processeurs puissent contourner la RAM aussi souvent que possible et que les performances puissent être aussi illimitées que possible. Les concepteurs de processeurs doivent équilibrer la capacité du cache avec la taille et, par extension, le coût, ce qui devient plus difficile à chaque génération de nouveaux processus de fabrication. Même si de nouvelles façons d'ajouter du cache aux processeurs sont introduites des décennies après l'invention du cache, il est difficile d'imaginer que le but de ce composant clé des processeurs changera un jour.