cache miss, un TLB miss et faute de page
Quelqu'un peut-il clairement m'expliquer la différence entre un cache miss, un tlb miss et de défaut de page, et comment ces répercussions sur l'efficacité de la mémoire de temps d'accès?
Se sentir libre pour toutes les requêtes.
Pourquoi avons-nous besoin d'une table de page pourquoi je ne peux pas nous contenter de souligner la mémoire physique directement? @SumeetSingh
Je vous recommande les vidéos sur la mémoire virtuelle en suivant youtuber youtube.com/watch?v=qlH4-oHnBb8&t=1s.
Juste pour vous donner une idée, la mémoire virtuelle est là parce que nous ne voulons pas que le programmeur à vous soucier des adresses physiques. Il/Elle a assez de soucis algorithme ou d'un problème à portée de main. Donc, laissez-programmeur d'écrire le code dans le virtuel(non réel) de la mémoire et de laisser la gestion de la mémoire de l'unité en charge la conversion.
Ajouté une autre réponse pour vous.
Pourquoi avons-nous besoin d'une table de page pourquoi je ne peux pas nous contenter de souligner la mémoire physique directement? @SumeetSingh
Je vous recommande les vidéos sur la mémoire virtuelle en suivant youtuber youtube.com/watch?v=qlH4-oHnBb8&t=1s.
Juste pour vous donner une idée, la mémoire virtuelle est là parce que nous ne voulons pas que le programmeur à vous soucier des adresses physiques. Il/Elle a assez de soucis algorithme ou d'un problème à portée de main. Donc, laissez-programmeur d'écrire le code dans le virtuel(non réel) de la mémoire et de laisser la gestion de la mémoire de l'unité en charge la conversion.
Ajouté une autre réponse pour vous.
OriginalL'auteur Pushp Sra | 2016-06-15
Vous devez vous connecter pour publier un commentaire.
Laissez-moi vous expliquer toutes ces choses étape par étape.
Le PROCESSEUR génère l'adresse logique, qui contient le
page number
et lapage offset
.La
page number
est utilisé pour les index dans lespage table
, correspondant à l'page frame number
, et une fois que nous avons le cadre de la page de laphysical memory
(aussi appelée mémoire principale), nous pouvons appliquer lapage offset
pour obtenir le droit de parole de la mémoire.Pourquoi TLB(Translation Regarder de Côté Tampon)
Le truc, c'est que la page table est stockée dans
physical memory
, et parfois peut être très grande, pour accélérer la traduction de la logique en adresse physique, adresse , nous utilisons parfois desTLB
, qui est fait de coûteux et plus rapide de la mémoire associative, Donc au lieu d'aller dans la table des pages, tout d'abord, nous allons dans leTLB
et l'utilisationpage number
pour les index dans lesTLB
, et d'obtenir le correspondantpage frame number
et s'il est trouvé, nous sommes entièrement d'éviterpage table
( parce que nous avons à la fois lapage frame number
et lapage offset
) et la forme de laphysical address
.TLB Miss
Si nous ne trouvons pas le
page frame number
à l'intérieur de laTLB
, il est appelé unTLB miss
seulement alors, nous allons à lapage table
à chercher le correspondantpage frame number
.TLB Frappé
Si nous trouvons la
page frame number
dansTLB
,TLB hit
, et nous n'avons pas besoin d'aller à la page de la table.Faute De Page
Se produit lorsque la page accessible par l'exécution d'un programme n'est pas présent dans la mémoire physique. Cela signifie que la page est présent dans la mémoire secondaire, mais n'est pas encore chargé dans un bloc de mémoire physique.
Cache
La Mémoire Cache est une mémoire de petite taille qui fonctionne à une vitesse plus rapide que la mémoire physique et nous allons toujours à cache avant de passer à la mémoire physique. Si nous sommes en mesure de localiser le mot correspondant dans la mémoire cache à l'intérieur de la cache, elle est appelée
cache hit
et nous n'avons même pas besoin d'aller à la mémoire physique.Cache Miss
C'est seulement après, quand la cartographie de
cache memory
est pas en mesure de trouver le correspondantblock
(block
similaire à la mémoire physiquepage frame
) de mémoire cache ( appelécache miss
), puis nous allons àphysical memory
et faire tout ce que le processus de passer parpage table
ouTLB
.De sorte que le flux est essentiellement ceci
1.D'abord aller à la
cache memory
et si ses uncache hit
, alors nous sommes fait.2. Si ses un
cache miss
, passez à l'étape 3.3. Allez d'abord à
TLB
et si ses unTLB hit
, allez à la mémoire physique à l'aide dephysical address
formé, nous sommes fait.4. Si ses un
TLB miss
, puis aller àpage table
pour obtenir le numéro de châssis de votre page pour la formation de laphysical address
.5. Si le
page
n'est pas trouvé, c'est unpage fault
.Utilisez l'une despage replacement algorithms
si toutes les images sont occupées par page sinon il suffit de charger la page nécessaire desecondary memory
àphysical memory
cadre.La Note De Fin De
Le flux, j'ai discuté est liée à cache virtuelle(plus rapide, mais pas partageables entre les processus), le flux serait certainement changer en cas de physique cache(plus lent mais peut être partagée entre plusieurs processus). Le Cache peut être abordée de multiples façons. Si vous êtes prêt à plonger profondément avoir un coup d'oeil à cette et cette.
Je ne pense pas que le flux est correct. Selon Patterson et Hennessy "Organisation de l'Ordinateur et de Conception", CE doit être vérifié pour obtenir l'adresse physique (qui contient l'adresse physique de la balise et du cache d'index), et puis vous pouvez accéder à la mémoire cache en fonction de l'index du cache et l'adresse physique de la balise.
Singh TLB est rapide, donc je ne pense pas qu'il viole la hiérarchie mémoire.
Singh découvrez cette figure en Patterson et Hennesey du livre: harttle.com/assets/img/blog/tlb-cache.png
Singh, même dans les vidéos de David Noir Shaffer vous l'avez souligné, il est dit que le tlb est regardé avant de prendre la ligne de cache (ce que vous appelez un bloc). Mais ce n'est que le "simple" manière de faire, ce qu'il est dit dans les vidéos c'est qu'actuellement le cache et TLB functionnate Virtuel Indexé Physique Tagged cache (VIPT), et TLB regarder et de traduction d'adresses sont réalisées simultanément.
OriginalL'auteur Sumeet
Imaginez un processus est en cours et nécessite un élément de données X.
À la première mémoire cache sera vérifié pour voir si elle a la demande de l'élément de données, si c'est là(cache), il sera renvoyé.Si elle n'est pas là(cache miss), il sera chargé dans la mémoire principale.
Si il y a un cache mémoire principale sera vérifiée pour voir si il y a page contenant les données demandées élément(hit de page) et si cette page n'est pas là (faute de page), la page contenant l'élément souhaité être mis en mémoire principale à partir du disque.
Lors du traitement de la défaillance de page TLB sera vérifiée pour voir si la page souhaitée numéro de l'image y est disponible (TLB frappé) autrement (TLB miss)système d'exploitation doit consulter la table des pages pour l'entretien de défaut de page.
Temps nécessaire pour accéder à ces types de mémoires:
cache << mémoire principale << disque
Cache l'accès nécessite moins de temps, donc un coup ou manquer à un certain niveau change radicalement l'accès effectif à temps.
OriginalL'auteur Rupsingh
Eh bien, ça dépend. Si votre système ne pas soutien multiprogramming(Dans un multiprogramming système il y a un ou plusieurs programmes chargé dans la mémoire principale, qui sont prêts à s'exécuter), puis définitivement la page de la faute a eu lieu parce que la mémoire a été déplacé sur le disque dur.
Si votre système prend en charge multiprogramming, dépend alors si votre système d'exploitation utilise mondiale de remplacement de page ou local de remplacement de page. Si elle utilise mondiale, alors oui il y a une chance que la mémoire a été déplacé autour pour d'autres applications. Mais en local, la mémoire a été déplacé vers le disque dur. Lorsqu'un processus qui subit une défaillance de page, une page locale de l'algorithme de remplacement sélectionne le remplacement d'une page qui appartient à ce même processus. D'autre part globale de l'algorithme de remplacement est libre de choisir n'importe quelle page de l'ensemble des cadres. Cette discussion à propos de ces pop-up s'ouvre plus lorsque vous traitez avec raclée.
TLB miss se produit lorsque la page d'entrée de la table nécessaire pour la conversion de l'adresse virtuelle et adresse physique n'est pas présent dans le TLB(translation regarder de côté de la mémoire tampon). TLB est comme un cache, mais il ne stocke pas les données plutôt il stocke les entrées de table de page, de sorte que nous pouvons contourner complètement la page de la table en cas de TLB frappé comme vous pouvez le voir dans le diagramme.
N'est pas un accident comme accident n'est pas récupérable. Mais il est bien connu que l'on peut récupérer à partir de deux défaillance de page et TLB miss sans besoin d'interrompre le processus de l'exécution.
OriginalL'auteur Sumeet
Le système d'Exploitation utilise la mémoire virtuelle et de tables de pages de cartes virtuelles adresse à adresse physique. TLB fonctionne comme un cache pour une telle cartographie.
Un programme de recherche d'une page dans TLB, s'il ne trouve pas la page, c'est un TLB miss et puis d'autres looks de la page dans le cache.
Si la page n'est pas dans le cache, alors c'est un cache miss et d'autres looks de la page dans la mémoire RAM.
Si la page n'est pas dans la RAM, alors c'est une faute de page de programme et chercher les données dans le stockage secondaire.
Donc, flux typique serait
OriginalL'auteur saurabh agarwal