J'essaie de comprendre pourquoi certaines mémoires cache du processeur sont plus rapides que d'autres. Lorsque vous comparez la mémoire cache à quelque chose comme la mémoire principale, il existe des différences de type de mémoire (SRAM vs DRAM) et des problèmes de localité (sur puce vs devoir traverser un bus mémoire) qui peuvent affecter les vitesses d'accès. Mais L1 et L2 sont généralement sur la même puce, ou du moins sur la même puce, et je pense que ce sont le même type de mémoire. Alors pourquoi L1 est-il plus rapide?
14
Réponses:
Non, ce n'est pas le même type de RAM, même si elles sont sur la même puce qui utilise le même processus de fabrication.
De tous les caches, le cache L1 doit avoir le temps d'accès le plus rapide possible (latence la plus faible), par rapport à la capacité dont il a besoin pour fournir un taux de "hit" adéquat. Par conséquent, il est construit à l'aide de transistors plus grands et de pistes métalliques plus larges, échangeant espace et puissance contre de la vitesse. Les caches de niveau supérieur doivent avoir des capacités plus élevées, mais peuvent se permettre d'être plus lents, ils utilisent donc des transistors plus petits qui sont plus serrés.
la source
L1 est généralement utilisé comme stockage pour les instructions décodées, tandis que L2 est un cache général pour un seul cœur. Plus le cache est petit, plus sa taille est petite et rapide. En règle générale, pour les processeurs PC:
Cache L1: accès au cycle d'horloge 2-3
Cache L2: ~ 10 accès au cycle d'horloge
Cache L3: ~ 20-30 accès au cycle d'horloge
Citation tirée ici de la réponse de "Pinhedd".
la source
Il y a plusieurs raisons pour lesquelles la vitesse est inversement proportionnelle à la taille. Le premier qui me vient à l'esprit est la domination physique des conducteurs, où la propagation du signal est limitée à un certain facteur de la vitesse de la lumière. Une opération peut prendre aussi longtemps qu'il faudra un signal électrique pour parcourir la plus longue distance à l'intérieur et à l'arrière de la tuile mémoire. Une autre raison connexe est la séparation des domaines d'horloge. Chaque CPU fonctionne avec son propre générateur d'horloge, ce qui permet au CPU de fonctionner sur des horloges multi-GHz. Le cache de niveau 1 s'exécute et est synchronisé avec l'horloge du processeur, qui est la plus rapide du système. Le cache de niveau 2, en revanche, doit desservir de nombreux processeurs et s'exécute dans un domaine d'horloge différent (plus lent). Non seulement l'horloge L2 est plus lente (tuile plus grande), mais le franchissement d'une limite de domaine d'horloge ajoute un autre retard. Ensuite, bien sûr, il y a les problèmes de fan-out (déjà mentionnés).
la source
Outre les caractéristiques de performance inhérentes, la localité a également un rôle (L1 est plus proche du CPU). Selon ce que tout programmeur doit savoir sur la mémoire :
la source