Informations sur les stides de cache associatifs définis par N-way
-
03-07-2019 - |
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
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