Question

a demandé La question suivante dans l'un des examens d'entrée pour un programme de remise des diplômes. S'il vous plaît aidez-moi essayer de le résoudre:

Un système d'ordinateur comporte une mémoire cache L1, un cache L2, et une mémoire principale l'unité connecté comme indiqué ci-dessous. La taille du bloc dans le cache L1 est de 4 mots. La taille du bloc dans le cache L2 est de 16 mots. Les temps d'accès mémoire sont 2 nanosecondes, 20 nanosecondes et 200 nanosecondes pour cache L1, L2 cache et l'unité de mémoire principale, respectivement.

cache image

  1. Quand il y a un manque dans le cache L1 et un succès dans le cache L2, un bloc est transféré de la mémoire cache L2 à la mémoire cache L1. Quel est le temps nécessaire pour cette transfert?

(A) 2 nanosecondes (B) 20 nanosecondes (C) 22 nanosecondes (D) 88 nanosecondes

  1. Quand il y a un manque dans les deux cache L1 et L2 cache, d'abord un bloc est transféré depuis la mémoire principale à la mémoire cache L2, et ensuite un bloc est transféré de la mémoire cache L2 à la mémoire cache L1. Quelle est la durée totale pour ces transferts?

(A) 222 nanosecondes (B) 888 nanosecondes (C) 902 nanosecondes (D) 968 nanosecondes

La première chose qui me vint à l'esprit était, comment calculer le temps de transfert en utilisant le temps d'accès donné. Au cours d'une miss, un bloc de données est déplacé de la mémoire principale cache. Puis CPU y accéder. Alors, ne serait pas temps d'accès> temps de transfert?

Alors je pensais, laisse supposer un accès temps = temps de transfert et faire le calcul.

première question. La question précise déjà il y a un manque en L1, donc je ne considérerai pas L1 temps d'accès. Comme il y a un manque en L1 et en L2 coup, un bloc entier de L2 doit être déplacé vers L1. taille de bloc L2 est de 16 mots, mais la taille du bus de données est de 4 mots.

Nous devons donc passer 4 mots * 4 fois.

Pour le transfert 4 mots il faut 20 ns. Pour transférer 4 mots, ses 80ns. Est-il pas le temps transféré de L2 à L1? La question ne dit rien sur l'accès à L1 après le déplacement des données. Mais 80ns n'est pas dans l'option!

Cas similaire à la deuxième question également.

Il est temps de déplacer la mémoire principale à L2 = 4 mots * 4 fois = 4 * 200 = 800ns

Temps pour déplacer L2 à L1 = 80ns [calcul précédent]

Donc le temps total pris est 880ns. Ce qui est à nouveau pas dans l'option.

Soit je fais une erreur ou des options très grande sont mal ou question n'est pas correctement encadrée. Si je fais mal de quoi que ce soit, s'il vous plaît me donner quelques indices et je vais essayer de travailler sur cet exercice à nouveau.

Était-ce utile?

La solution

Afin de trouver que tout cache ne pas contenir la valeur à l'adresse demandée vous devez y accéder.

Cela signifie que vous devez ajouter les temps d'accès de tous les niveaux qui contribuent.

Certaines des options semblent suggérer que l'on pourrait penser des blocs entiers de, disons, le cache L2 sont transférées vers le haut dans le cache L1; pour autant que je sache, ce n'est pas ce qui se passe:. volume de transfert est déterminé par la taille du bloc du niveau demande

Autres conseils

Je suppose que vous avez le mauvais temps d'accès. Le temps d'accès signifie le temps de localiser un des données sur une mémoire. Ainsi, celui qui accède à la mémoire (que ce soit CPU ou un autre appareil), il sera le même.

En venant à la première question ici. Un bloc est transféré de L2 à L1. Et la taille du bloc L1 étant de 4 mots et la bande passante de données étant de 4 octets, il faut 1 L2 accès (en lecture) et 1 L1 accès (pour le magasin). Ainsi, le temps = 20 + 2 = 22 ns.

Pour la deuxième question, la taille du bloc L2 étant 16 mots et la bande passante entre la mémoire et L2 étant de 4 mots, nous avons besoin de 4 accès à la mémoire (pour lecture) et 4 L2 accès (pour le magasin). Maintenant, nous devons envoyer le bloc demandé à L1 qui nécessiterait plus 1 L2 accès (en lecture) et 1 L1 accès (pour le magasin). Donc, le temps total

= 4 * (200 + 20) + (20 + 2)

= 880 + 22

= 902 ns

réponse à 1 question:

pour transférer le bloc de L2 à L1, En général, il faut 20 + 2 ns pour transférer 4 mots: ici pourquoi seul moyen des mots que nous avons une capacité de 4 avec databus mots, en raison de manquer l1 et l2 a frappé, nous devons transférer un bloc de l2 qui contient 16 mots .. si nous avons ici pour accéder au l2 un 4 fois l1. si 4 (20 + 2) ..

De même réponse à la question 2:

mémoire principale à L2 et L2 à L1 si 4 (200 + 20) + 4 (20 + 2)

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top