web-dev-qa-db-fra.com

calculer le temps d'accès effectif

Ceci est un paragraphe de Operating System Concepts, 9ème édition de Silberschatz et al:

Pourcentage de fois où le numéro de page d'intérêt est trouvé dans le TLB est appelé le taux de réussite. Un taux de réussite de 80%, par exemple, signifie que nous trouvons le numéro de page souhaité dans le TLB à 80% de le temps. S'il faut 100 nanosecondes pour accéder à la mémoire, alors un L'accès à la mémoire mappée prend 100 nanosecondes lorsque le numéro de page est en le TLB. Si nous ne parvenons pas à trouver le numéro de page dans le TLB, nous devons alors accédez d'abord à la mémoire pour la table de pages et le numéro de cadre (100 nanosecondes), puis accédez à l'octet souhaité en mémoire (100 nanosecondes), pour un total de 200 nanosecondes. (Nous supposons qu'une consultation de table de pages .__ ne prend qu'un accès mémoire, mais peut en prendre plus, comme nous le verrons plus loin.) Pour trouver le temps effectif d'accès à la mémoire, nous pondérons le cas par sa probabilité: temps d'accès effectif = 0,80 × 100 + 0,20 × 200 = 120 nanosecondes

mais dans la 8ème édition du même livre enter image description here

Je suis confus avec le 

temps d'accès effectif

Quelqu'un peut-il l'expliquer pour moi?

12
Aysha Almaqtari

Si la page est trouvée dans le TLB (TLB hit), le temps total sera le temps de recherche dans le TLB plus le temps d’accès à la mémoire, donc

TLB_hit_time := TLB_search_time + memory_access_time

Au cas où la page ne serait pas trouvée dans le TLB (le TLB manquant), le temps total serait le temps nécessaire pour rechercher le TLB (vous ne trouvez rien, mais la recherche a été effectuée sans aucun problème), plus le temps nécessaire pour accéder à la mémoire afin d'obtenir le tableau de page et le cadre, plus le temps d'accéder à la mémoire pour obtenir les données, donc

TLB_miss_time := TLB_search_time + memory_access_time + memory_access_time

Mais dans certains cas, lorsque vous souhaitez connaître une mesure moyenne de la performance du TLB, vous utilisez le temps d'accès effectif, soit la moyenne pondérée des mesures précédentes.

EAT := TLB_miss_time * (1- hit_ratio) + TLB_hit_time * hit_ratio

ou 

EAT := (TLB_search_time + 2*memory_access_time) * (1- hit_ratio) +
       (TLB_search_time + memory_access_time) * hit_ratio
20
Santiago

Le temps effectif ici est juste le moyen temps en utilisant les probabilités relatives d'un coup ou d'un raté. Donc, si un hit survient 80% du temps et un échec 20% du temps, le temps effectif (c.-à-d. Le temps moyen) sur un grand nombre de hits/manques sera de 0.8 * (temps du coup) + 0.2 * (temps ).

5
Paul R

Dans TLB, une copie du numéro de page fréquemment utilisé et du numéro de vue est conservée et provient du tableau de pages stocké en mémoire.

Il examine d'abord le TLB. Si trouvé, il va à l'emplacement de la mémoire de sorte que le temps d'accès total est égal à:

20 + 100 = 120 ns

Maintenant, si TLB est manquant, vous devez d'abord rechercher TLB, puis pour la table de pages qui est stockée dans la mémoire. Donc, un accès mémoire plus une page particulière, rien qu'un autre accès mémoire. Donc le temps total est égal à:

20 + 100 + 100 = 220 ns

Et le temps d'accès effectif à la mémoire est égal à:

0.80 * 120 + 0.20* 220 = 140 ns
2
Kuntal

Formule générale pour EAT

Taux de réussite = a

Temps d'accès à la mémoire principale = m

Recherche associative (accès TLB) = e

EAT = (m + e) ​​a + (2m + e) ​​(1 - a)

    = 2m - ma + e
1
emon