Question

Plusieurs des ressources consultées sur Internet sont en désaccord sur les modalités de mise en cache associative. fonctionne.

Par exemple, les secrets matériels semblent croire que cela fonctionne comme ceci:

  

Ensuite, la mémoire vive principale est divisée en   le même nombre de blocs disponibles dans   le cache mémoire. Garder le 512 Ko   Exemple associatif d'ensemble à 4 voies, le   la RAM principale serait divisée en 2 048   blocs, le même nombre de blocs   disponible dans la mémoire cache.   Chaque bloc de mémoire est lié à un ensemble   des lignes à l'intérieur de la cache, tout comme   dans le cache directement mappé.

http://www.hardwaresecrets.com/printpage/481/8

Ils semblent dire que chaque bloc de cache (4 lignes de cache) correspond à un bloc particulier de RAM contiguë. Ils disent que les blocs non contigus de la mémoire système ne peuvent pas être mappés sur le même bloc de cache.

Voici une photo montrant comment HardWaresecrets pense que cela fonctionne http://www.hardwaresecrets.com/fullimage.php?image=7864

Contrastez cela avec la photo de wikipedia du cache associatif défini http://upload.wikimedia.org/ wikipedia / commons / 9/93 / Cache% 2Cassociative-fill-both.png .

Brown n'est pas d'accord avec les secrets du matériel

  

Considérez ce qui pourrait arriver si chacun   la ligne de cache avait deux ensembles de champs: deux   bits valides, deux bits sales, deux balises   champs et deux champs de données. Un jeu   des champs pourraient mettre en cache des données pour un   domaine de la mémoire principale, et l'autre pour   un autre domaine qui arrive à la carte   la même ligne de cache.

http://www.spsu.edu/cs/faculty/ bbrown / web_lectures / cache /

En d'autres termes, des blocs non contigus de la mémoire système peuvent être mappés sur le même bloc de cache.

Comment les relations entre les blocs non contigus de la mémoire système et les blocs de cache sont-elles créées? J'ai lu quelque part que ces relations sont basées sur les progrès du cache, mais je ne trouve aucune information sur les progrès du cache, si ce n'est qu'elles existent.

Qui a raison? Si la foulée est réellement utilisée, comment fonctionne-t-elle et ai-je le nom technique correct? Comment trouver la foulée pour un système particulier? est-il basé sur le système de pagination? Quelqu'un peut-il m'indiquer une URL qui explique en détail le cache associatif de N-way?

voir aussi: http://www.cs.umd.edu/ class / sum2003 / cmsc311 / Notes / Mémoire / set.html

Était-ce utile?

La solution

Lorsque j'enseigne l'architecture de la mémoire cache à mes étudiants, je commence par un cache mappé directement. Une fois que cela est compris, vous pouvez considérer les caches associatifs de jeux N-way comme des blocs parallèles de cache directement mappé. Pour comprendre que les deux chiffres peuvent être corrects, vous devez d’abord comprendre le but des caches set-assoc.

Ils sont conçus pour contourner le problème de "crénelage" dans un cache mappé directement, où plusieurs emplacements de mémoire peuvent mapper vers une entrée de cache spécifique. Ceci est illustré dans la figure Wikipedia. Ainsi, au lieu d’expulser une entrée de cache, nous pouvons utiliser un cache N-way pour stocker les autres emplacements de mémoire "aliasés".

En fait, le diagramme des secrets matériels serait correct si l’ordre de remplacement était tel que le premier bloc de la mémoire principale soit mappé sur la voie 1, puis le second sur la voie 2 et ainsi de suite. Toutefois, il est également possible de répartir le premier bloc de mémoire principale sur plusieurs manières.

J'espère que cette explication vous aidera!

PS: les emplacements de mémoire contigus ne sont nécessaires que pour une seule ligne de cache, exploitant la localité spatiale. En ce qui concerne la dernière partie de votre question, je pense que vous pouvez confondre plusieurs concepts différents.

Autres conseils

  

La politique de remplacement décide où dans le cache une copie d'un   entrée particulière de la mémoire principale ira. Si la politique de remplacement est   libre de choisir une entrée dans le cache pour conserver la copie, le cache est   appelé pleinement associatif. À l'autre extrême, si chaque entrée en principal   la mémoire peut aller à un seul endroit dans le cache, le cache est direct   cartographié. De nombreuses caches implémentent un compromis dans lequel chaque entrée en principal   la mémoire peut aller à n’importe lequel des N emplacements dans le cache et est décrite   comme ensemble N-way associatif

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top