Pregunta

podría L1 / L2 línea de caché cada caché varias copias de la palabra principal de datos de memoria?

¿Fue útil?

Solución

Es posible que la memoria principal se encuentra en una caché más de una vez. Obviamente eso es cierto y una ocurrencia común para máquinas multiprocesador. Pero incluso en máquinas de procesador uni, puede suceder.

Considere una CPU Pentium que tiene una caché de instrucciones L1 dividida / datos. Las instrucciones sólo van a la I-caché, los datos sólo a la D-cache. Ahora bien, si el sistema operativo permite modificar el código auto, la misma memoria se pudo cargar tanto en la I y D-cache, una vez que los datos, una vez como instrucciones. Ahora usted tiene que los datos dos veces en la caché L1. Por lo tanto una CPU con una arquitectura de memoria caché tal división debe emplear un protocolo de coherencia de caché para evitar condiciones de carrera / corrupción.

Otros consejos

No - si ya está en la caché de la MMU que utilizará en lugar de crear otra copia

.

Cada caché almacena básicamente un pequeño subconjunto de toda la memoria. Cuando la CPU necesita una palabra de la memoria que primero va a L1, luego a la caché L2, etc. , antes de que la memoria principal está marcada . Así que una palabra de memoria particular puede ser en L2 y L1 en forma simultánea, pero no puede ser almacenado dos veces en L1, debido a que no es necesario.

Sí, se puede. copia L1 se actualiza pero no se ha limpiado a L2. Esto sucede sólo si L1 y L2 son cachés no exclusivos. Esto es obvio para UNI-procesadores pero es aún más para multi-procesadores que típicamente tienen sus propias memorias caché L1 para cada núcleo.

Todo depende de la arquitectura caché - ya sea garantiza cualquier tipo de cosas

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