web-dev-qa-db-fra.com

cache miss, a TLB miss and page fault

Quelqu'un peut-il m'expliquer clairement la différence entre un échec de cache, un échec de tlb et un défaut de page, et comment cela affecte-t-il le temps d'accès effectif à la mémoire?

18
Pushp Sra

Permettez-moi d'expliquer toutes ces choses étape par étape.

La CPU génère l'adresse logique, qui contient le page number Et le page offset.

Le page number Est utilisé pour indexer dans le page table, Pour obtenir le page frame number Correspondant, et une fois que nous avons le cadre de page du physical memory (Également appelé principal mémoire), nous pouvons appliquer le page offset pour obtenir le bon mot de mémoire.

Pourquoi TLB (Translation Look Aside Buffer)

Le fait est que la table des pages est stockée dans physical memory, Et peut parfois être très grande, afin d'accélérer la traduction de l'adresse logique en adresse physique , nous utilisons parfois TLB, qui est constitué d'une mémoire associative coûteuse et plus rapide , donc au lieu d'aller d'abord dans le tableau des pages , nous allons dans le TLB et utilisons page number pour indexer dans le TLB, et obtenons le page frame number correspondant et s'il est trouvé, nous évitons complètement page table (Car nous avons à la fois le page frame number Et le page offset) Et formons le physical address.

TLB Miss

Si nous ne trouvons pas le page frame number À l'intérieur du TLB, il est appelé un TLB miss Seulement alors nous allons dans le page table Pour chercher le page frame number.

Coup TLB

Si nous trouvons le page frame number Dans TLB, il s'appelle TLB hit, Et nous n'avons pas besoin d'aller au tableau des pages.

Erreur de page

Se produit lorsque la page à laquelle accède un programme en cours d'exécution n'est pas présente dans la mémoire physique. Cela signifie que la page est présente dans la mémoire secondaire mais pas encore chargée dans un cadre de mémoire physique.

Accès au cache

La mémoire cache est une petite mémoire qui fonctionne à une vitesse plus rapide que la mémoire physique et nous allons toujours dans le cache avant d'aller à la mémoire physique. Si nous pouvons localiser le mot correspondant dans la mémoire cache à l'intérieur du cache, il s'appelle cache hit Et nous n'avons même pas besoin d'aller dans la mémoire physique.

Échec du cache

Ce n'est qu'après que le mappage vers cache memory Est incapable de trouver le block (block correspondant similaire à la mémoire physique page frame) De mémoire dans le cache (appelé cache miss), Puis nous allons dans physical memory Et faisons tout ce processus en passant par page table Ou TLB.

Donc, le flux est essentiellement ce

1 . Allez d'abord dans le cache memory Et si c'est un cache hit, Alors nous avons terminé.

2 . Si c'est un cache miss, Passez à l'étape 3.

3 . Allez d'abord dans TLB et si c'est un TLB hit, Allez dans la mémoire physique en utilisant physical address Formé, nous avons terminé.

4 . Si c'est un TLB miss, Allez à page table Pour obtenir le numéro de cadre de votre page pour former le physical address.

5 . Si le page n'est pas trouvé, c'est un page fault. Utilisez l'un des page replacement algorithms Si tous les cadres sont occupés par une autre page, chargez simplement la page requise à partir de secondary memory À physical memory Cadre.

Note de fin

Le flux que j'ai discuté est lié au cache virtuel (plus rapide mais non partageable entre les processus), le flux changerait certainement en cas de cache physique (plus lent mais peut être partagé entre les processus). Le cache peut être traité de plusieurs manières. Si vous êtes prêt à plonger profondément, jetez un œil à this et this .

21
Sumeet

Qu'est-ce qui cause les défauts de page? Est-ce toujours parce que la mémoire a été déplacée sur le disque dur? Ou simplement déplacé pour d'autres applications?

En fait ça dépend. Si votre système ne prend pas en charge multiprogrammation ( Dans un système multiprogrammation, il y a un ou plusieurs programmes chargés dans la mémoire principale qui sont prêts à être exécutés), alors une erreur de page s'est certainement produite car la mémoire a été déplacée sur le disque dur.

Si votre système prend en charge la multiprogrammation, cela dépend si votre système d'exploitation utilise le remplacement de page global ou le remplacement de page local . S'il utilise global, alors oui, il est possible que la mémoire ait été déplacée pour d'autres applications. Mais en local, la mémoire a été replacée sur le disque dur. Lorsqu'un processus rencontre une erreur de page, un algorithme de remplacement de page local sélectionne pour le remplacement une page appartenant à ce même processus. D'un autre côté, un algorithme de remplacement global est libre de sélectionner n'importe quelle page dans l'ensemble du pool de cadres. Cette discussion à propos de ceux-ci apparaît plus lorsque vous traitez avec thrashing .

Je suis confus de la différence entre TLB miss et les défauts de page.

L'absence de TLB se produit lorsque l'entrée de table de pages requise pour la conversion de l'adresse virtuelle en adresse physique n'est pas présente dans le TLB (tampon de recherche de côté). TLB est comme un cache, mais il ne stocke pas les données, il stocke plutôt les entrées de table de page afin que nous puissions complètement contourner la table de page en cas de hit TLB comme vous pouvez le voir dans le diagramme.

enter image description here

Le défaut de page est-il un plantage? Ou est-ce la même chose qu'une miss TLB?

Aucun d'eux n'est un crash car le crash n'est pas récupérable. Mais il est bien connu que nous pouvons récupérer à la fois d'une erreur de page et d'une erreur TLB sans avoir à interrompre l'exécution du processus.

5
Sumeet

Imaginez simplement qu'un processus est en cours d'exécution et nécessite un élément de données X.

Au début, la mémoire cache sera vérifiée pour voir si elle contient l'élément de données demandé, s'il est là ( hit cache ), il sera renvoyé. il n'est pas là ( cache cache ), il sera chargé depuis la mémoire principale.

S'il y a un cache, la mémoire principale sera vérifiée pour voir s'il y a page contenant l'élément de données demandé ( page hit ) et si cette page n'est pas là ( défaut de page ), la page contenant l'élément souhaité doit être introduite dans la mémoire principale du disque.

Lors du traitement de l'erreur de page, TLB sera vérifié pour voir si le numéro de cadre de la page souhaitée y est disponible ( TLB a frappé ) sinon ( TLB raté ) Le système d'exploitation doit consulter le tableau des pages pour le défaut de la page de maintenance.

Temps requis pour accéder à ces types de mémoires:

cache << mémoire principale << disque enter image description here

L'accès au cache nécessite moins de temps, donc un succès ou un échec à un certain niveau modifie considérablement le temps d'accès effectif.

5
Rupsingh