2016-10-31 1 views
1

Je trouve difficile de comprendre les différences entre le taux de défaut local et global et comment calculer le temps moyen d'accès à la mémoire et je voudrais juste donner un exemple d'un problème que j'ai essayé de résoudre. J'apprécierais que quelqu'un puisse me dire si je suis sur la bonne voie, ou si j'ai tort ce que j'ai manqué.Calcul du temps moyen d'accès à la mémoire

Tenir compte de la hiérarchie de cache à plusieurs niveaux suivants avec leurs temps de recherche et les taux de MANQUER:

  • L1-cache, 0,5 ns, 20%
  • L2-cache, 1,8 ns, 5%
  • L3- cache, 4.2 ns, 1,5%
  • mémoire principale, 70 ns, 0%

Dans ce cas, les temps de recherche donnés font référence au temps total nécessaire à la fois vérifier que v r les données demandées sont disponibles au niveau actuel de la hiérarchie et transmettent les données au niveau supérieur (ou à la CPU). C'est la même chose que le temps de frappe, non? Les taux de défaut donnés sont locaux. Et comme je l'ai compris, le taux d'échec d'un niveau doit être multiplié avec les taux d'échec de tous les niveaux précédents afin d'être correct pour ce niveau. Disons que si nous avons 1000 accès mémoire, dans L1, 20% d'entre eux manqueront. Donc 20% d'entre eux iront à L2, là 5% d'entre eux vont manquer. Donc, à partir de 1000 accès mémoire 1000 * 20% * 5% vont y arriver. Maintenant, pour autant que je sache ... et s'il vous plaît corrigez-moi si je me trompe, les taux d'erreur ci-dessus sont locaux, mais leur produit est le taux global d'erreur pour chaque niveau correspondant. Cela signifie que le taux d'échec global serait de 0,2 * 0,05 = 1% pour L2.

Maintenant, je peux être très mal à ce calcul, mais voilà comment je pense:

AMAT (Moyenne mémoire Temps d'accès) = Hit time + taux Mlle * Pénalité Mlle

AMAT = 0,5 + 0,2 * (1,8 + 0,2 * 0,05 * (4,2 + 0,2 * 0,05 * 0,015 * 70))

Après avoir calculé ce que je reçois AMAT = 0.868421 ns

ai-je fait cela correctement?

Merci pour toute aide

+0

Peut-être définir 'AMAT' ... –

+0

@MarkSetchell Le temps moyen d'accès à la mémoire (AMAT) est un moyen de mesurer les performances d'une configuration de mémoire-hiérarchie. Il prend en compte que les échecs à différents niveaux de la hiérarchie affectent différemment les performances globales du système. –

+0

Je suis sûr que vous interprétez mal taux de missile cache. 1,5% de cache L3 manqué signifie que 1,5% des accès mémoire _all_ manquent. – gnasher729

Répondre

1

Maintenant, il est devenu clair pour moi exactement ce taux de manque global et local est, et donc je me rends compte que je fait une erreur dans mon calcul.

Avant, le calcul ressemblait à ceci:

AMAT = 0,5 + 0,2 * (1,8 + 0,2 * 0,05 * (4,2 + 0,2 * 0,05 * 0,015 * 70)) = 0.868421 ns

Cela signifie que le taux d'échec local de, par exemple, L1, affecte les contributions de la pénalité d'absence pour chaque plus loin dans la hiérarchie, trop de fois ... quand il a déjà été pris en compte dans une étape précédente.

La solution correcte doit être:

AMAT = + 0,2 * 0,5 (1,8 + 0,05 * (4,2 + 0,015 * 70)) = 0.9125 ns

Ainsi, récursive nous pouvons définir:

AMAT = L1 temps de réussite + taux L1 Mlle * L1 peine Mlle

L1 Mlle pénalité = L2 temps de réussite + L2 taux Mlle * pénalité L2 Mlle

L2 = L3 Mlle pénalité temps de réussite + L3 taux Mlle * pénalité L3 Mlle

L3 Mlle pénalité = la mémoire principale a frappé le temps

+0

Bonne réponse, en ajoutant les formules "récursives", il est plus facile de comprendre ce genre de choses! –