Définition/sens de l'Aliasing? (Le cache CPU architectures)
Je suis un peu confus par la signification de "Alias" entre la CPU et de cache adresse Physique.
J'ai d'abord trouvé que C'est la définition sur Wikipédia :
Cependant, VIVT souffre de aliasing de problèmes, où plusieurs différentes adresses virtuelles peuvent se référer à la même adresse physique. Un autre problème est homonymes, où la même adresse virtuelle cartes à différentes adresses physiques.
mais après un moment, j'ai vu une autre définition sur une présentation(ppt)
de DAC'05: "Energy-Efficient Physiquement Marqués Caches pour Processeurs Embarqués avec
La Mémoire Virtuelle"
Cache aliasing et synonymes:
Alias: Même adresse virtuelle à partir de différents contextes mappé à différentes adresses physiques Synonyme: virtuelle Différente de l'adresse mappée à la même adresse physique (partage de données)
Que je ne suis pas un locuteur natif, je ne sais pas laquelle est la bonne,
bien que je sente le Wiki de la définition est correcte.
Edit:
Concept de "alias" dans le cache CPU signifie généralement "synonyme", au contraire, est "homonyme". À un niveau plus générique, "alias" est "confuse" ou "chaos" ou quelque chose comme ça. Donc, À mon avis, "alias" signifie exactement la cartographie de (X->Y) "n'est pas bijective", où
"X" = le sous-ensemble d'adresses physiques des unités qui ont été mises en cache. (chaque élément est une ligne de byte)
"Y" = la validité lignes de cache. (éléments aussi une "ligne")
la définition est correcte? 1v->np ou nv->1p?
OriginalL'auteur Nybble | 2011-05-10
Vous devez vous connecter pour publier un commentaire.
Vous devez savoir à propos de la Mémoire Virtuelle d'abord, mais, fondamentalement, c'est cela:
Les adresses de la mémoire de votre programme utilise ne sont pas les physique adresses de la RAM utilise; ils sont virtuel adresses mappé aux adresses physiques par le CPU.
Virtuels multiples addressses peut pointer vers la même adresse physique.
Qui signifie que vous pouvez avoir deux copies des mêmes données dans des parties distinctes de la cache sans le savoir... et qu'ils ne serait pas mis à jour correctement, alors vous pourriez obtenir de mauvais résultats.
Edit:
Extrait de référence:
Pour ceux qui sont encore sceptiques:
Pouvez-vous m'expliquer lequel des deux ci-dessus la définition est fausse?
Je crois que Wikipédia est correct. L'Aliasing est un problème avec la justesse d'un seul programme, et l'explication 2 n'a pas de sens.
Jean: depuis "Homonyme" et "Synonyme" ne peut pas être et synonyme, homonyme, je pense que l'on peut être correct.
Voir ma source. 🙂
OriginalL'auteur Mehrdad
@Wu oui, vous avez besoin de comprendre la mémoire virtuelle petite pour comprendre l'aliasing. Permettez-moi de vous donner quelques lignes d'explication, d'abord:
Permet de dire que j'ai une mémoire RAM (mémoire physique) de 1 GO. Je tiens à présenter mes programmeur avec une vue que j'ai 4 GO de mémoire, puis je utiliser de la mémoire virtuelle. Dans la mémoire virtuelle, le programmeur pense qu'il/elle dispose de 4 go et écrit leur programme à partir de ce point de vue. Ils n'ont pas besoin de connaître la quantité de mémoire physique existe. L'avantage est que le programme va s'exécuter sur des ordinateurs avec différentes quantités de mémoire vive. En outre, le programme peut s'exécuter sur un ordinateur avec d'autres programmes (également consommer de la mémoire physique).
Donc, ici, est de savoir comment la mémoire virtuelle est de mettre en œuvre. Je vais donner un simple niveau 1 système de mémoire virtuelle (Intel a 2/3 niveaux, ce qui le rend tout simplement compliqué pour les explications.
Notre problème ici est que le programmeur a 4 Milliards d'adresses et nous avons seulement 1 milliard d'endroits pour mettre ces 4 milliards d'adresses. Ainsi, les adresses à partir de l'espace d'adressage virtuel doivent être mappés à l'adresse physique de l'espace. Cela se fait à l'aide d'une simple table d'index appelé une Page de Table. Vous accédez à une Page de la Table avec une adresse virtuelle, et il vous donne l'adresse physique de cet emplacement de la mémoire.
Quelques détails: Rappelez-vous que l'espace physique est seulement 1 go de sorte que le système ne garde que les plus récemment accédé à 1 go de valeur dans la mémoire physique et garde le reste en disque système. Lorsque le programme demande une adresse particulière, nous vérifions d'abord si elle est déjà dans la mémoire physique. Si oui, il est renvoyé au programme. Si non, il introduit à partir du disque et de mettre en mémoire physique, et est ensuite retourné au programme. Ce dernier est connu comme une défaillance de Page.
De revenir à l'aliasing dans le contexte de la mémoire virtuelle: puisqu'il y a correspondance entre virtuel -> adresse physique, il est possible de faire deux adresses virtuelles à la carte à la même adresse physique. c'est la même chose que de dire que si je regarde ma page table pour virtuel
l'adresse de X et Y, je vais avoir la même adresse physique dans les DEUX cas.
Je montre ci-dessous un exemple simple de 8 entrée de la Table des pages. Dire qu'il y a 8 adresses virtuelles et seulement 3 adresses physiques. La page tableau se présente comme suit:
REMARQUE: j'ai utilisé les termes adresses virtuelles et physiques partout pour simplifier le concept. Dans un système réel, le virtuel-à-cartographie physique n'est pas sur une base d'adresse . Au lieu de cela, nous avons la carte des morceaux de l'espace virtuel à l'espace physique. Chaque bloc est appelé une Page (c'est pourquoi la table de correspondance est appelé une page de table) et de la taille du chunk est une propriété de l'ISA, par exemple, Intel x86 ont des pages de 4 ko.
Ce n'est pas vrai, en fait. L'OS n'a pas besoin de faire une couleur à chaque changement de contexte. Cache sont souvent partagées entre les différents contextes, par exemple, les machines à support de SMT permet à deux processus à exécuter simultanément sur la même base, ce qui signifie un changement de contexte ne nécessite pas de ligne de cache de chasse. Caches n'ont besoin d'être vidé lorsque la page change de table, qui est le résultat d'un défaut de page.
avez-vous argee que dans ma dernière réponse "assez tard" a le même sens? De le rendre plus clair, les OS pour faire un changement de contexte afin de corriger le cache de mise à jour sera prêt à effectuer.
OriginalL'auteur Aater Suleman