es.phhsnews.com


es.phhsnews.com / ¿Cuándo se vacía la memoria caché de la CPU? Volver a la memoria principal?

¿Cuándo se vacía la memoria caché de la CPU? Volver a la memoria principal?


Si está empezando a aprender cómo funcionan las CPU multinúcleo, el almacenamiento en caché, la coherencia de la memoria caché y la memoria, puede parecer un poco un poco confuso al principio. Con esto en mente, la publicación SuperUser Q & A de hoy tiene respuestas a la pregunta de un lector curioso.

La sesión de preguntas y respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios de preguntas y respuestas.

The Question

SuperUser reader CarmeloS quiere saber cuándo la memoria caché de una CPU vuelve a la memoria principal:

Si tengo una CPU con dos núcleos y cada núcleo tiene su propia caché L1, ¿es posible que Core1 y Core2? ambos almacenan en caché la misma parte de la memoria al mismo tiempo? Si es posible, ¿cuál será el valor de la memoria principal si Core1 y Core2 han editado sus valores en la memoria caché?

¿Cuándo se vacía la memoria caché de la CPU?

The Answer

SuperUser contribuitors David Schwartz, sleske y Kimberly W tienen la respuesta para nosotros. Primero, David Schwartz:

Si tengo una CPU con dos núcleos y cada núcleo tiene su propia caché L1, ¿es posible que Core1 y Core2 guarden en la memoria caché la misma parte de la memoria al mismo tiempo?

Sí, el rendimiento sería terrible si este no fuera el caso. Considere dos hilos que ejecutan el mismo código. Desea ese código en ambas memorias caché L1.

Si es posible, ¿cuál será el valor de la memoria principal si Core1 y Core2 han editado sus valores en la memoria caché?

El valor anterior estará en la memoria principal, que no importará ya que ninguno de los núcleos lo leerá. Antes de expulsar un valor modificado de la memoria caché, debe escribirse en la memoria. Típicamente, se usa alguna variante del protocolo MESI. En la implementación tradicional de MESI, si se modifica un valor en una caché, no puede estar presente en ninguna otra caché en ese mismo nivel.

Seguido de la respuesta de sleske:

Sí, con dos cachés de caché la misma región de memoria puede suceder y es realmente un problema que ocurre mucho en la práctica. Hay varias soluciones, por ejemplo:

  • Las dos memorias caché se pueden comunicar para asegurarse de que no estén en desacuerdo
  • Puede tener algún tipo de supervisor que supervisa todas las memorias caché y las actualiza en consecuencia
  • Cada procesador monitorea las áreas de memoria que se ha almacenado en caché, y cuando detecta una escritura, arroja su caché (ahora no válida)

El problema se llama coherencia de caché y el artículo de Wikipedia sobre el tema tiene una visión general del problema y posibles soluciones.

Y nuestra respuesta final de Kimberly W:

para responder la pregunta en el título de su publicación, depende de qué es el protocolo de almacenamiento en caché. Si es un write-back, la memoria caché solo se volverá a enviar a la memoria principal cuando el controlador de caché no tenga más remedio que colocar un nuevo bloque de caché en un espacio ya ocupado. El bloque que anteriormente ocupaba el espacio se elimina y su valor se escribe en la memoria principal.

El otro protocolo es de escritura. En ese caso, cada vez que se escribe el bloque de caché en el nivel n , se actualiza el bloque correspondiente en el nivel n + 1 . Es similar en concepto al llenado de un formulario con papel carbón debajo; lo que sea que escribas arriba se copia en la hoja a continuación. Esto es más lento porque obviamente implica más operaciones de escritura, pero los valores entre las cachés son más consistentes. En el esquema write-back, solo el caché de nivel más alto tendría el valor más actualizado para un bloque de memoria en particular.


¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios. ¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Consulte el hilo de discusión completo aquí.

Crédito de la imagen: Lemsipmatt (Flickr)


Cómo dejar que otra persona use su computadora sin darles acceso a todas sus cosas

Cómo dejar que otra persona use su computadora sin darles acceso a todas sus cosas

Si deja que alguien use su computadora, podrían obtener acceso a sus contraseñas guardadas, leer su correo electrónico, acceder todos tus archivos, y más. En lugar de mirar por encima del hombro, solo use la función de la cuenta de invitado de su sistema operativo. Las cuentas de invitado se encuentran en todos los sistemas operativos de escritorio, desde Windows y Mac hasta Ubuntu, Chrome OS y otras distribuciones de Linux.

(how-top)

Cómo cambiar el tamaño del texto, los iconos y más en Android

Cómo cambiar el tamaño del texto, los iconos y más en Android

Afrontémoslo: no importa qué tan buenas sean las pantallas en nuestros teléfonos y tabletas, el texto a veces puede ser demasiado pequeño si tiene mala vista. La buena noticia es que hay una variedad de métodos para ayudarlo a aliviar los entrecerrios solo para que el texto (o cualquier otra cosa) sea más legible.

(how-top)