2010-04-22 9 views
4

Je suis en train d'essayer de contourner cela (d'accord, tbh bachotage une nuit avant les examens :) mais je ne peux pas comprendre (ni trouver un bon aperçu de haut niveau sur le net) de cette :systèmes d'exploitation - TLB

« entrées de table de page peuvent être mises en correspondance avec plus d'une entrée TLB .. si par exemple chaque entrée de table de page est mappped à deux entrées TLB, ceci est connu comme 2 voies réglée TLB associative »

Mon question est, pourquoi voudrions-nous cartographier cela plus d'une fois? nous voulons sûrement avoir le nombre maximum d'entrées possibles représentées dans le TLB, et la duplication perdrait de la place? Qu'est-ce que je rate?

Un grand merci

Répondre

7

Cela ne signifie pas que vous chargez la même entrée en deux endroits dans la table - cela signifie une entrée particulière peut être chargée à soit de deux places dans le tableau. L'alternative où vous ne pouvez mapper qu'une entrée à un endroit de la table est un TLB mappé directement. Le principal inconvénient d'un TLB à mappage direct est que si vous copiez d'une partie de la mémoire vers une autre, et que le CPU utilise un schéma de mappage direct, les traductions doivent être mappées sur le même place dans le TLB. Dans ce cas, vous finissez par recharger l'entrée TLB à chaque fois, de sorte que le TLB ne fait rien du tout ou pas du tout. En ayant un TLB associatif à deux voies, vous pouvez garantir que deux entrées quelconques peuvent être dans le TLB en même temps, donc (par exemple) un déplacement de bloc du point A au point B ne peut pas gâcher votre journée - mais si vous lisez deux zones, les combinez et écrivez les résultats à un tiers (si les trois traductions utilisées correspondent au même ensemble d'entrées TLB). Le défaut d'avoir un TLB à plusieurs voies (comme n'importe quel autre cache multiway) est que vous ne pouvez pas calculer directement quelle position peut contenir une entrée particulière à un moment donné - vous effectuez une recherche fondamentale pour trouver le bonne entrée. Dans les deux sens, c'est rarement un problème - mais quatre façons sont généralement à propos de la limite utile; Les ensembles associatifs à 8 voies (TLBs | caches) ne sont pas du tout communs, en partie parce que la recherche sur 8 emplacements possibles pour les données commence à devenir excessive.

Au fil du temps, le nombre de façons dont il est logique d'utiliser un cache ou une tlb a tendance à augmenter. Le différentiel de vitesse entre la mémoire et les processeurs continue d'augmenter. Plus le différentiel est grand, plus le processeur peut utiliser de cycles et produire un résultat dans un cycle d'horloge de mémoire unique (ou un nombre spécifié de cycles d'horloge de mémoire, même s'il y en a plus d'un).

+0

merci Jerry, c'est génial - tout est logique maintenant! – stabGreeol