2017-07-07 10 views
0

S'il existe 2 caches L1 et L2 où L1 est le cache de premier niveau et L2 est le cache de niveau inférieur. Supposons qu'il y ait un manque dans L1 et un coup dans L2. Maintenant, devons-nous amener le bloc requis de L2 à L1, puis accéder à l'octet requis à partir de L1 ou pouvons-nous accéder directement à l'octet requis à partir de L2?Temps d'accès au cache à plusieurs niveaux

temps d'accès moyen peut être donnée en tant que: - h1 (t1) + (1-h1) (h2) (t1 + t2) où

h1: Taux de réussite du cache L1, t1: temps d'accès de L1, h2: taux de succès du cache L2, t2: temps d'accès de L2.

Répondre

1

Nous pouvons y accéder directement à partir de L2, mais nous allons aussi l'amener en L1, de sorte que la prochaine fois on y accède plus rapidement.

+0

Alors pourquoi ajoutons-nous à nouveau le temps t1 lorsque nous essayons d'accéder à partir de L2 pendant un manque de L1? Il devrait être juste t2 juste que nous pouvons accéder directement à partir de L2 – Zephyr

+0

Eh bien, cela dépend de l'architecture. Les architectures plus récentes vont à tous les niveaux de cache en même temps, donc vous n'avez pas à payer cette pénalité de temps et vous appliquez juste t2. Dans les architectures plus anciennes, vous devez d'abord vérifier L1, puis si ce n'est pas le cas, vous devez vérifier L2. Ainsi, vous devrez payer la pénalité de temps pour les deux. – GreatA1exander

+0

t1 ici n'est pas le temps de vérifier je suppose. C'est le temps nécessaire pour lire un octet. – Zephyr