Pregunta

Varios de los recursos a los que he accedido en Internet no están de acuerdo sobre cómo configurar almacenamiento en caché asociativa funciona.

Por ejemplo, los secretos de hardware parecen creer que funciona así:

  

Entonces la memoria RAM principal se divide en   la misma cantidad de bloques disponibles en   la memoria caché Manteniendo los 512 KB   Ejemplo asociativo de 4 vías, el   la RAM principal se dividiría en 2,048   bloques, el mismo número de bloques   disponible dentro de la memoria caché.   Cada bloque de memoria está vinculado a un conjunto   de líneas dentro del caché, al igual que   en el caché mapeado directo.

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

Parecen estar diciendo que cada bloque de caché (4 líneas de caché) se asigna a un bloque particular de RAM contigua. Dicen que los bloques no contiguos de memoria del sistema (RAM) no se asignan al mismo bloque de caché.

Esta es la imagen de cómo cree hardwaresecrets que funciona http://www.hardwaresecrets.com/fullimage.php?image=7864

Contraste eso con la imagen de Wikipedia de establecer caché asociativo http://upload.wikimedia.org/ wikipedia / commons / 9/93 / Cache% 2Cassociative-fill-both.png .

Brown no está de acuerdo con los secretos de hardware

  

Considere lo que podría pasar si cada uno   la línea de caché tenía dos conjuntos de campos: dos   bits válidos, dos bits sucios, dos etiquetas   campos y dos campos de datos. Un set   de los campos podrían almacenar datos en caché para uno   área de memoria principal, y el otro para   otra área que pasa a mapear a   la misma línea de caché.

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

Es decir, los bloques no contiguos de memoria del sistema pueden correlacionarse con el mismo bloque de caché.

¿Cómo se crean las relaciones entre los bloques no contiguos en la memoria del sistema y los bloques de caché? Leí en alguna parte que estas relaciones se basan en los pasos de la memoria caché, pero no puedo encontrar ninguna información sobre los pasos de la memoria caché aparte de que existen.

¿Quién tiene razón? Si realmente se usa el paso, ¿cómo funciona el paso y tengo el nombre técnico correcto? ¿Cómo encuentro el paso para un sistema en particular? ¿Se basa en el sistema de paginación? ¿Alguien puede señalarme una URL que explique el caché asociativo de conjunto de N-way con gran detalle?

también vea: http://www.cs.umd.edu/ class / sum2003 / cmsc311 / Notes / Memory / set.html

¿Fue útil?

Solución

Cuando enseño arquitectura de memoria caché a mis alumnos, comienzo con un caché de mapa directo. Una vez que se entiende esto, puede pensar en los cachés asociativos de conjuntos de N-vías como bloques paralelos de caché de mapeo directo. Para comprender que ambas cifras pueden ser correctas, primero debe comprender el propósito de las memorias caché set-assoc.

Están diseñados para solucionar el problema de 'aliasing' en una memoria caché asignada directamente, donde varias ubicaciones de memoria se pueden asignar a una entrada de memoria caché específica. Esto se ilustra en la figura de Wikipedia. Entonces, en lugar de desalojar una entrada de caché, podemos usar un caché N-way para almacenar las otras ubicaciones de memoria 'alias'.

En efecto, el diagrama de secretos de hardware sería correcto si se asume que el orden de reemplazo es tal que la primera parte de la memoria principal se asigna a Way-1 y luego la segunda parte a Way-2 y así sucesivamente. Sin embargo, es igualmente posible tener la primera parte de la memoria principal distribuida en múltiples formas.

¡Espero que esta explicación ayude!

PS: las ubicaciones de memoria contiguas solo son necesarias para una sola línea de caché, explotando la localidad espacial. En cuanto a la última parte de su pregunta, creo que puede estar confundiendo varios conceptos diferentes.

Otros consejos

  

La política de reemplazo decide dónde en la caché una copia de un   entrada particular de la memoria principal irá. Si la política de reemplazo es   libre de elegir cualquier entrada en el caché para guardar la copia, el caché es   llamado totalmente asociativo. En el otro extremo, si cada entrada en main   La memoria puede ir en un solo lugar en el caché, el caché es directo   mapeado. Muchos cachés implementan un compromiso en el que cada entrada en main   la memoria puede ir a cualquiera de los N lugares en el caché, y se describen   como N-way set asociativa

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top