Mémoire cache, comment affecte-t-elle les performances du processeur et du processeur graphique ?

Mémoire cache, comment cela affecte-t-il les performances du processeur et du processeur graphique

A ce jour, il n'existe pas d'architecture en termes de Processeur or GPU qui n'a pas de cache intégré. Puisqu'il est essentiel pour les performances, car sans le cache, les performances de tout CPU ou GPU chuteraient. Mais dans quelle mesure le cache affecte-t-il les performances d'un CPU ou d'un GPU ? Nous vous l'expliquons en détail.

Le premier processeur PC à avoir un cache était le Intel 80486, depuis lors, nous avons vu comment tous les processeurs intègrent la mémoire cache dans une hiérarchie à plusieurs niveaux, et pas seulement dans le cas des CPU, mais aussi des GPU.

Les principaux utilitaires sont connus de tous. Premièrement, réduire l'énorme latence entre le processeur et RAM, deuxièmement la consommation électrique de chacune des différentes instructions, et troisièmement la réduction des conflits d'accès à la mémoire, qui peuvent conduire à une latence plus élevée, surtout si l'on parle de plusieurs cœurs accédant à la même adresse mémoire.

Cependant, il existe un moyen de mesurer les performances du cache, qui est pris en compte lors de la conception de nouveaux processeurs. Lisez la suite pour découvrir comment le cache affecte les performances de votre CPU et de votre GPU.

Résumé du cache

Cache amorce Nivel Spllit

Tout d'abord, nous devons garder à l'esprit que le cache n'est pas un espace adressable par le CPU ou le GPU, lorsque nous parlons d'espace adressable, nous entendons que le CPU ou le GPU peut pointer vers une adresse mémoire spécifique où la prochaine donnée ou instruction procéder. Le cache ne peut donc pas être pointé par le CPU et ne peut donc pas être géré par celui-ci.

On peut dire que les mécanismes de cache fonctionnent automatiquement et lorsqu'un cœur de processeur effectue une recherche, il parcourt les différents caches pour trouver les données spécifiques. Lorsqu'un noyau effectue une modification, toutes les copies de ces données dans le reste des caches sont également automatiquement mises à jour. De la même manière, ce sont les mécanismes de cache eux-mêmes qui décident quelles copies du contenu de la RAM sont conservées en cache et lesquelles ne le sont pas.

Et ce que fait le cache, c'est stocker des copies de la mémoire les plus proches des lignes de code qui sont en cours d'exécution à ce moment précis. C'est parce que le code est principalement séquentiel, donc la plupart du temps, la prochaine ligne du programme à traiter sera celle qui suit immédiatement.

Comment les performances du cache sont-elles mesurées ?

Lorsque le CPU ou le GPU a besoin d'accéder aux données qui sont en mémoire, la première chose qu'ils font est d'accéder aux différents niveaux du cache précédent. Ainsi, il recherchera d'abord le cache de premier niveau, s'il ne trouve pas les données, il passera au niveau suivant et ainsi de suite jusqu'à ce qu'il trouve les données recherchées.

Lorsque les données ne sont pas dans un niveau de cache, alors ce que nous appelons un « Cache Miss » se produit et il est donc nécessaire de descendre au niveau suivant de la hiérarchie. Ce qui fait qu'il y a un temps supplémentaire en terme de latence à rajouter. D'autre part, si nous avons

Pour le comprendre, supposons que nous ayons un CPU ou un GPU avec 3 niveaux de cache et que nous ayons trouvé les données au troisième niveau. Ainsi, le temps de recherche dans ce cas peut être résumé comme suit :

Recherche de données en cache temps = temps de recherche de cache de premier niveau + temps de saut de cache de deuxième niveau + temps de recherche de cache de deuxième niveau + délai de temps de saut de cache 3ème niveau + temps de recherche de cache de 3ème niveau

Il faut tenir compte du fait que si le temps de recherche du cache dépasse le temps de recherche directe dans la RAM alors la conception du cache dudit processeur sera mal implémentée, car il n'est en aucun cas justifié que cela prenne plus de temps pour rechercher une donnée dans le cache qu'en mémoire. C'est pourquoi nous ne voyons généralement pas de niveaux de cache supplémentaires, car les différents temps de latence ajoutés par chaque niveau ajoutent encore plus de latence supplémentaire au temps d'accès.

Mesurer l'AMAT

Cache

AMAT signifie Average Memory Access Time, ou temps moyen d'accès à la mémoire. Il s'agit d'une moyenne du fait que toutes les instructions sur un CPU ou un GPU n'ont pas la même latence et ne dépendent pas de la mémoire de la même manière. Mais en même temps, cela nous aide à mesurer les performances du cache d'un CPU ou d'un GPU.

Pour calculer l'AMAT de n'importe quel CPU ou GPU, la formule suivante est utilisée :

AMAT = Temps de réussite + Taux d'échec * Pénalité d'échec

Ce qui nous intéresse, c'est que l'AMAT est faible, puisqu'il mesure le temps d'accès du CPU aux données et donc la latence lorsqu'il s'agit de retrouver les données. Quant aux différentes valeurs de la formule AMAT pour mesurer les performances du cache, ce sont les suivantes :

  • La première valeur est la Hit Time, qui est le temps que le CPU ou le GPU mettra pour trouver les données dans le cache . Dans ce cas, il est important que la cache soit petite pour que son voyage puisse s'effectuer plus rapidement. Étant donné que plus le cache est grand, plus il faudra de temps pour faire le voyage. C'est pourquoi les niveaux de cache les plus proches du noyau sont de très petite taille.
  • La deuxième valeur est la Miss Rate, qui est le pourcentage de fois où les données ne sont pas dans le cache . Cela contredit le Hit Rate, puisque le meilleur moyen de trouver une donnée mise en cache est d'augmenter sa capacité de stockage. Le cache doit également avoir des mécanismes pour savoir quelles données il doit garder à l'intérieur, pour donner de l'espace à d'autres qui auront un plus grand accès à court terme par les CPU ou les GPU.
  • La troisième valeur est la Miss Penalty, c'est le temps de latence qu'il faut pour accéder à une donnée si elle est en mémoire RAM et non dans le cache. C'est une période énorme en ce qui concerne les cycles d'horloge. Comme il va de soi, dans le cas où les données sont en RAM et non dans le cache, il faut rajouter le temps de recherche prévu dans la hiérarchie des caches avant RAM.

Les performances du cache dépendront donc de l'optimisation du Hit Time ou du Miss Rate, car optimiser une section signifie endommager l'autre, les architectes doivent décider à quelle valeur ils accordent le plus d'importance lors de la conception d'une nouvelle. CPU ou un nouveau GPU.