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

Feb 23, 2025
Hardware

Si recién está comenzando a aprender cómo funcionan las CPU de múltiples núcleos, el almacenamiento en caché, la coherencia de la caché y la memoria, puede parecer un poco confuso al principio. Con eso en mente, la publicación de preguntas y respuestas de superusuario 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 web de preguntas y respuestas impulsada por la comunidad.

La pregunta

El lector de superusuario CarmeloS quiere saber cuándo se vacía la memoria caché de una CPU en 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 guarden en caché la misma parte de la memoria al mismo tiempo? Si es posible, ¿cuál será el valor de la memoria principal si tanto Core1 como Core2 han editado sus valores en la caché?

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

La respuesta

Los colaboradores de superusuario 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 caché la misma parte de la memoria al mismo tiempo?

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

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

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

Seguido de la respuesta de sleske:

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

  • Los dos cachés pueden comunicarse para asegurarse de que no estén en desacuerdo
  • Puede tener algún tipo de supervisor que supervise todos los cachés y los actualice en consecuencia
  • Cada procesador monitorea las áreas de memoria que ha almacenado en caché y, cuando detecta una escritura, descarta su caché (ahora no válido)

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

Y nuestra respuesta final de Kimberly W:

Para responder a la pregunta en el título de su publicación, depende del protocolo de almacenamiento en caché. Si es de escritura diferida, la caché solo se vaciará de nuevo a la memoria principal cuando el controlador de caché no tenga más remedio que colocar un nuevo bloque de caché en el espacio ya ocupado. El bloque que anteriormente ocupaba el espacio se elimina y su valor se vuelve a escribir en la memoria principal.

El otro protocolo es la escritura simultánea. En ese caso, siempre que el bloque de caché se escriba en el nivel norte , el bloque correspondiente en el nivel n + 1 se actualiza. Es similar en concepto a llenar un formulario con papel carbón debajo; todo lo que escriba en la parte superior se copiará en la hoja de abajo. Esto es más lento porque obviamente implica más operaciones de escritura, pero los valores entre cachés son más consistentes. En el esquema de escritura diferida, solo la 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? Habla en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Consulte el hilo de discusión completo aquí .

Credito de imagen: Lemsipmatt (Flickr)

.entrada-contenido .entry-footer

When Is A CPU’s Cache Flushed Back To Main Memory?

What Is The Difference Between Memory And SSD Cache In A PC Or NAS?

5 Cache و Virtual Memory

How To Clear Cache On Mac OS - Clear Memory Cache On Mac In 1-Click

Buffer Cache

Caching In: Understand, Measure, And Use Your CPU Cache More Effectively

How To Clear RAM Cache Memory | Fix RAM Cached Memory Too High Windows 10

NetApp WAFL, NVRAM And The System Memory Cache (new Version)


Hardware - Artículos más populares

Cómo vender su computadora portátil, teléfono o tableta por el mejor precio

Hardware Mar 7, 2025

CONTENIDO NO CUBIERTO dugwy39 / Shutterstock Entonces, ha decidido convertir esos viejos dispositivos electrónicos en efectivo. Pero si está ..


Cómo instalar (o mover) aplicaciones a otra unidad en Windows 10

Hardware Jul 24, 2025

Windows 10 le permite instalar aplicaciones de la Tienda en cualquier unidad que desee. También puede mover las aplicaciones que instaló anteriormente a una nueva ubicación sin d..


Cómo crear una unidad USB Ubuntu en vivo con almacenamiento persistente

Hardware Feb 5, 2025

A Unidad USB en vivo de Linux normalmente es una pizarra en blanco cada vez que lo inicia. Puede iniciarlo, instalar programas, guardar archivos y cambiar la configur..


Vivir con una Chromebook: ¿Puedes sobrevivir con solo un navegador Chrome?

Hardware Oct 19, 2025

CONTENIDO NO CUBIERTO Los Chromebook se están volviendo más populares, con casi 2 millones vendidos solo en el primer trimestre de 2016. Pero un Chromebook todavía parece un po..


Cómo configurar un servidor de archivos y medios con Linksys Smart Wi-Fi

Hardware Mar 3, 2025

CONTENIDO NO CUBIERTO Los enrutadores Linksys más nuevos tienen una función de servidor de archivos que le permite conectar una unidad USB y acceder a sus archivos desde cualqui..


Los sectores defectuosos explicados: por qué los discos duros tienen sectores defectuosos y qué puede hacer al respecto

Hardware Jul 5, 2025

Un sector defectuoso en un disco duro es simplemente un pequeño grupo de espacio de almacenamiento (un sector) del disco duro que parece estar defectuoso. El sector no responderá ..


Cómo cambiar el tamaño de las particiones de Ubuntu

Hardware Jul 4, 2025

CONTENIDO NO CUBIERTO Ya sea que desee reducir su partición de Ubuntu, ampliarla o dividirla en varias particiones, no puede hacer esto mientras está en uso. Necesitará un CD e..


Los doce días de Geekmas, edición 2011

Hardware Dec 13, 2024

¡Así es! Es la temporada navideña una vez más, lo que significa que estamos aquí para ayudarlo a comprar ese geek importante en su vida. ¡Es hora de preparar la Navidad con un..


Categorías