Cache L1 vs L2 vs L3 : capacité, latence, partage, inclusion
Les caches L1, L2 et L3 forment une hiérarchie à plusieurs niveaux, rangés par distance au cœur du CPU : plus un niveau est proche, plus il est petit et rapide ; plus il est éloigné, plus il est grand et lent. Dans les CPU de PC et de serveur typiques, le L1 fait quelques dizaines de Ko pour quelques cycles, le L2 quelques centaines de Ko à quelques Mo pour une dizaine à une vingtaine de cycles, et le L3 quelques Mo à quelques dizaines de Mo pour quelques dizaines de cycles. Le L1 et le L2 sont le plus souvent propres à chaque cœur, tandis que le L3 est partagé entre plusieurs cœurs. Un accès à la mémoire principale en DRAM coûte des centaines de cycles : cette hiérarchie doit donc absorber le plus grand nombre d’accès possible.
| Critère | Cache L1 | Cache L2 | Cache L3 |
|---|---|---|---|
| Rapport au cœur | Propre à chaque cœur | Le plus souvent propre à chaque cœur. Certaines conceptions le partagent entre quelques cœurs | Partagé par plusieurs cœurs (toute la puce ou un groupe de cœurs) |
| Capacité (plage typique pour les CPU de PC et de serveur) | Environ 32 à 64 Ko chacun pour les instructions et pour les données | Environ 256 Ko à quelques Mo par cœur | Quelques Mo à quelques dizaines de Mo pour toute la puce |
| Latence (plage typique) | Environ 3 à 5 cycles | Environ 10 à 20 cycles | Environ 30 à 70 cycles. Plus longue pour les parties éloignées du cœur |
| Instructions et données | Séparées (cache I et cache D) | Communes (cache unifié) | Communes (cache unifié) |
| Priorité de conception | Un temps de succès court. Il est utilisé à chaque cycle dans le pipeline | Absorber les défauts du L1 et réduire la pénalité de défaut | Réduire les accès à la mémoire principale et partager les données entre cœurs |
| Destination en cas de défaut | L2 | L3 | Mémoire principale (DRAM) |
| Adressage | Souvent indexé virtuellement, étiqueté physiquement (VIPT) | Adresses physiques | Adresses physiques |
| Inclusion | Niveau le plus haut. Sa présence dans les niveaux inférieurs dépend de la politique de ces derniers | Selon la conception, par exemple inclusive ou non inclusive | Un L3 inclusif facilite le filtrage des vérifications de cohérence. Il existe aussi des conceptions exclusives, sans doublons, et non inclusives |
| Emplacement physique | Dans le cœur, juste à côté des unités d’exécution | Juste à l’extérieur du cœur, placé comme partie du cœur | Souvent divisé en tranches par cœur reliées par un anneau ou un maillage |
| Taille de ligne | Généralement 64 octets | Généralement 64 octets | Généralement 64 octets |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.