2016-06-28 11 views
0

Je passais par le code MMU pour un processeur ARM (ARMv7). Ils ont utilisé des TLB associatifs et associatifs complets. Je suis conscient de l'implémentation de Cache en utilisant cette méthode. J'ai aussi lu que TLB n'est rien d'autre que le cache CPU. Mais je ne parviens pas à rejoindre les pièces car le but de TLB et Cache sont différents. Je voudrais savoir comment fonctionne l'ensemble et l'associativité complète dans le contexte du TLB.Opérations associatives TLB entièrement associatives et paramétrées par rapport au cache

+0

_ "l'objectif de TLB et Cache est différent" _ en effet, dans un cas vous utilisez une adresse pour rechercher des données associées, alors que dans l'autre cas vous utilisez une adresse pour rechercher des données associées. Oh, attendez ...;) – Notlikethat

+0

La diapositive 27 a un beau diagramme expliquant les différences entre un cache et TLB https://www.cs.princeton.edu/courses/archive/fall09/cos318/lectures/VMAddressTranslation.pdf – achoora

Répondre

1

C'est globalement le même comportement: TLB utilise l'adresse virtuelle et la taille comme une balise, mais au lieu de stocker des données, stocke les attributs de la page associative (adresse physique, protection, etc.).

L'association d'ensembles signifie simplement qu'un nombre limité de pages peut partager la même étiquette/les mêmes attributs, tandis qu'une association complète signifie qu'un tag/attribut peut être stocké à n'importe quel emplacement dans le cache TLB. C'est beaucoup plus efficace, mais cela ne peut être fait que pour de très petites caches.