TLB manque vs cache manque?
Quelqu'un pourrait-il expliquer la différence entre une erreur TLB (translation lookaside buffer) et une erreur cache?
Je crois que J'ai découvert que TLB se réfère à une sorte d'adresse de mémoire virtuelle mais je n'étais pas trop clair ce que cela signifiait réellement?
Je comprends que le cache manque le résultat lorsqu'un bloc de mémoire (la taille d'une ligne de cache) est chargé dans le (L3?) cache et si une adresse requise n'est pas conservée dans les lignes de cache en cours - c'est un manque de cache.
3 réponses
Eh bien, tous les systèmes d'exploitation modernes d'aujourd'hui utilisent quelque chose appelé mémoire virtuelle. Chaque adresse générée par CPU est virtuelle. Il existe des tables de pages qui mappent de telles adresses virtuelles à des adresses physiques. Et un TLB est juste un cache d'entrées de table de page.
D'autre part L1, L2, L3 met en cache le contenu de la mémoire principale du cache.
Un échec TLB se produit lorsque le mappage de virtual memory address => physical memory address
pour une adresse virtuelle CPU demandée n'est pas dans TLB. Ensuite, cette entrée doit être récupérée de la table de page dans le TLB.
Un manque de cache se produit lorsque le processeur nécessite quelque chose qui n'est pas dans le cache. Les données sont ensuite recherchées dans la mémoire principale (RAM). Si ce n'est pas le cas, les données doivent être extraites de la mémoire secondaire (disque dur).
La séquence suivante après le chargement de la première adresse d'instruction (c'est-à-dire l'adresse virtuelle) dans le PC rend le concept de TLB miss et de Cache miss très clair.
La première instruction * Accéder à la première instruction
- Prenez le PC de départ
- accédez à itlbavec le VPN extrait du PC: iTLBmiss
- appelez le gestionnaire iTLBmiss
- calculer L'adresse PTE
- Si les ptes sont mis en cache dans les données L1 et les caches L2, recherchez-les avec L'adresse PTE: vous y manquerez aussi
- accéder à la table de page dans la mémoire principale: PTE n'est pas valide: erreur de page
- appeler le gestionnaire de défaut de page
Allouer le cadre de page, Lire la page à partir du disque, mettre à jour PTE, charger PTE dans iTLB, redémarrer fetch • Maintenant, vous avez l'adresse physique
L'Accès Icache: miss
- envoyer une demande de recharge aux niveaux supérieurs: vous manquez partout
- Envoyer la demande au contrôleur de mémoire (pont nord)
- Accès à la mémoire principale
- Lire la ligne de cache
- remplir tout niveaux de cache lorsque la ligne de cache retourne au processeur
- extraire l'instruction appropriée de la ligne de cache avec le décalage de bloc * C'est la latence la plus longue possible dans un accès aux instructions / données
Source https://software.intel.com/en-us/articles/recap-virtual-memory-and-cache
Comme le comment des deux processus sont mentionnés. Sur la note des performances, un manque de cache ne bloque pas nécessairement le CPU. Un petit nombre d'erreurs de cache peut être toléré en utilisant des techniques de pré-extraction algorithmiques. Un échec TLB provoque cependant le blocage du processeur jusqu'à ce que le TLB ait été mis à jour avec la nouvelle adresse. En d'autres termes, le prefetching peut masquer un manque de cache mais pas un manque de TLB.