Les processeurs cache L1, L2 et L3 sont tous constitués de SRAM?

10

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.

Acaz Souza
la source
Question connexe: pourquoi avons-nous besoin de plusieurs niveaux de mémoire cache? . Également quelque peu lié: Qu'est-ce que le cache à plusieurs niveaux dans les processeurs? . D'après votre commentaire, je vois que vous avez déjà trouvé cette dernière question.
Paul A. Clayton

Réponses:

12

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.

Paul A. Clayton
la source
Très bonne réponse. Mais je ne suis pas d'accord avec votre affirmation selon laquelle les taux d'échec L2 sont supérieurs aux taux d'échec L1. Au fur et à mesure que nous descendons dans la hiérarchie de la mémoire, nous avons de plus grandes structures fournissant moins de ratés mais avec une latence accrue.
Harshavardhan Ramanna
@HarshavardhanRamanna Oui, la capacité et l'associativité augmentent le taux de raté, mais les niveaux inférieurs filtrent les accès (le transfert traditionnel d'un bloc entier de L2 filtre la localité spatiale à court terme dans le bloc; le hit ne compte que pour un accès en L2 tandis que le bloc lui-même est susceptible de fournir des hits en L1 pour des accès supplémentaires). Le taux de réussite total diminue (par exemple, un L2 avec un taux de réussite de 80% décent et un L1 avec un taux de réussite de 95% obtient un taux de réussite total de 99%).
Paul A. Clayton