Quelle est la différence entre le cache L1 et L2?


Réponse 1:

D'autres réponses parlent de taille et de vitesse, ce qui est vrai, mais il y a plus.

Les caches L1 sont conçus pour la vitesse, avec des temps de charge à utiliser d'environ 3 cycles ces jours-ci. Les temps d'accès L2 sont généralement de 12 à 20 cycles.

Les caches L1 ont plus de ports. Un cache L1 typique sera capable de gérer deux lectures et une écriture à partir du CPU à chaque cycle, de manière pipeline. De plus, le cache L1 aura des chemins pour les victimes quittant le cache et pour les nouvelles données provenant du L2. Les caches L2 auront généralement un port R / W pour le processeur et un pour le système de mémoire pour gérer les victimes, le remplissage et les espions.

Les caches L1 sont généralement spécialisés pour les instructions ou les données, tandis que les caches L2 sont généralement combinés I / D

Les caches L1 auront une structure d'adressage qui leur permettra d'être virtuellement adressés et étiquetés physiquement. Pour un cache de 32 Ko avec des lignes de 64 octets, cela signifie un ensemble associatif à 8 voies. Ce schéma permet d'accéder au tampon de traduction en parallèle avec le cache, ce qui contribue à la vitesse. Le cache L2 sera entièrement adressé physiquement, sans aucune exigence structurelle. 16 voies et 256 Ko à 1 Mo sont assez typiques, encore une fois avec des lignes de 64 octets.

Les caches L2 suivront quelles adresses sont présentes dans le L1, afin qu'ils puissent filtrer les espions du système de mémoire et éviter de déranger le L1 avec des ratés. Les caches L1 n'ont pas besoin de suivre de telles choses.

Les caches L1 auront un support matériel pour les opérations atomiques, avec verrouillage. Les caches L2 n'en ont pas besoin.

Les conceptions de cache L1 récentes peuvent gérer les accès non alignés, même ceux qui franchissent les limites de ligne. On peut dire que c'est plus quelque chose qui fait partie de la logique du CPU que le cache, mais le L2 n'a pas du tout à gérer les accès non alignés.

Le L1 prendra en charge les écritures de lignes partielles, dont le L2 n'a pas besoin.

L1 peut avoir une unité de pré-lecture matérielle, mais généralement uniquement pour une paire de lignes, pas quelque chose de compliqué. Les L2 ont souvent des unités de prélecture matérielles multiples et assez compliquées, qui observent les modèles d'accès stridé par le CPU et les traitent.

Le L1 n'a pas besoin de garder beaucoup de balles en l'air. À chaque cycle, il reçoit des demandes et y répond. Si le L1 manque, le CPU a un tampon de stockage et un tampon de remplissage pour gérer le travail. Le L2, ou quelque chose à proximité, doit suivre toutes les références en suspens par le CPU, par le matériel de pré-lecture et espionner d'autres cœurs. Cette logique peut être intégrée dans le L2 ou dans certains composants d'interface de bus qui connectent le L2 au reste du système de mémoire.

Enfin, il est relativement facile d'ajouter ECC à un cache L2, car il traite les lectures et les écritures de la ligne entière. Les caches L1 auront généralement soit une parité d'octets uniquement, soit rien car ils doivent gérer des écritures partielles. La probabilité d'erreurs est liée à la géométrie et à l'échelle des cellules, c'est donc généralement une décision raisonnable.


Réponse 2:
Quelle est la différence entre le cache L1 et L2?

Réponse courte: Vitesse - L'accès au cache L1 est plus rapide que l'accès au cache L2.

Cette même question (sous diverses formes) a déjà été posée. Apprenez à utiliser la fonction de recherche Quora, par exemple, comme cette simple requête:

  • L1 + L2 + cache + mémoire + différence

Pour mes propres réponses passées aux questions de cache en différé, utilisez:

  • "Henry + Norman" + cache + mémoire

Merci d'avoir demandé, Bernie!

Coupe de la diapositive n ° 19 de l'unité de présentation myshared.ru 2. Systèmes matériels: