Les caches de processeur L1, L2 et L3 sont-ils tous constitués de SRAM? Si vrai, pourquoi L1 est plus rapide que L2 et L2 est plus rapide que L3? Je n'ai pas compris cette partie quand j'ai lu à leur sujet.
Les caches de processeur L1, L2 et L3 sont-ils tous constitués de SRAM? Si vrai, pourquoi L1 est plus rapide que L2 et L2 est plus rapide que L3? Je n'ai pas compris cette partie quand j'ai lu à leur sujet.
Réponses:
En général, ils sont tous implémentés avec SRAM.
(Les puces POWER et zArchitecture d'IBM utilisent la mémoire DRAM pour L3. C'est ce qu'on appelle la DRAM intégrée car elle est implémentée dans le même type de technologie de processus que la logique, permettant à la logique rapide d'être intégrée dans la même puce que la DRAM. Pour POWER4, le la puce L3 utilise l'eDRAM; POWER7 a la L3 sur la même puce que les cœurs de traitement.)
Bien qu'ils utilisent SRAM, ils n'utilisent pas tous la même conception SRAM. SRAM pour L2 et L3 est optimisé pour la taille (pour augmenter la capacité compte tenu de la taille limitée des puces manufacturables ou réduire le coût d'une capacité donnée) tandis que SRAM pour L1 est plus susceptible d'être optimisé pour la vitesse.
Plus important encore, le temps d'accès est lié à la taille physique du stockage. Avec une disposition en deux dimensions, on peut s'attendre à ce que la latence d'accès physique soit à peu près proportionnelle à la racine carrée de la capacité. (L'architecture de cache non uniforme exploite cela pour fournir un sous-ensemble de cache à faible latence. Les tranches L3 des processeurs Intel récents ont un effet similaire; un hit dans la tranche locale a une latence considérablement plus faible.) Cet effet peut rendre un cache DRAM plus rapide. qu'un cache SRAM à haute capacité car la DRAM est physiquement plus petite.
Un autre facteur est que la plupart des caches L2 et L3 utilisent un accès série aux balises et aux données alors que la plupart des caches L1 accèdent aux balises et aux données en parallèle. Il s'agit d'une optimisation de la puissance (les taux de défaillance L2 sont supérieurs aux taux de défaillance L1, donc l'accès aux données est plus susceptible d'être un travail gaspillé; l'accès aux données L2 nécessite généralement plus d'énergie - lié à la capacité--; et les caches L2 ont généralement une associativité plus élevée ce qui signifie que davantage d'entrées de données devraient être lues de manière spéculative). De toute évidence, le fait d'attendre la correspondance des balises avant d'accéder aux données augmentera le temps nécessaire pour récupérer les données. (L'accès L2 ne commence également généralement qu'après confirmation d'un échec L1, de sorte que la latence de la détection des échecs L1 est ajoutée à la latence d'accès totale de L2.)
De plus, le cache L2 est physiquement plus éloigné du moteur d'exécution. Le fait de placer le cache de données L1 à proximité du moteur d'exécution (afin que le cas courant de hit L1 soit rapide) signifie généralement que L2 doit être placé plus loin.