¿Qué es la memoria compartida?

Las computadoras modernas tienen mucha memoria. Cada CPU tiene su caché, y a cada programa en ejecución se le asigna su porción de RAM del sistema. Hay muchas formas diferentes de usar y asignar esta memoria. La memoria compartida es un concepto que afecta tanto a los cachés de la CPU como al uso de la RAM del sistema de diferentes maneras.

Memoria compartida en hardware

La mayoría de las CPU modernas tienen tres niveles de caché, denominados L1, L2 y L3. L1 es el caché más pequeño y rápido, mientras que L3 es el más grande y lento. Sin embargo, todos ellos son más rápidos que acceder a la memoria principal, lo que hace que la tasa de aciertos sea crítica para el rendimiento. Muchos factores hacen que la caché L1 sea más rápida que la L3. En primer lugar, las celdas de memoria L1 son físicamente más grandes. También hay menos de ellos y están ubicados mucho más cerca del núcleo de la CPU, a menudo dentro de él.

Colocar un bloque de caché dentro del área de matriz de un núcleo conlleva una complejidad adicional en las CPU multinúcleo. En este punto, puede elegir tener un caché en cada núcleo o fuera de los núcleos, específicamente entre ellos. Cada uno tiene sus ventajas y desventajas.

Colocar un caché en un núcleo minimiza la latencia de acceso, pero también significa que cada núcleo necesita su caché. Esto significa que puede terminar con líneas de caché duplicadas en los cachés L1 de diferentes núcleos, lo que reduce la eficiencia del espacio de caché. Esto se denomina caché local y, si bien es excelente para el tiempo de acceso, es menos eficiente en el uso del espacio de caché y requiere una sobrecarga adicional en términos de coherencia de caché.

Una caché compartida es una caché que está disponible para varios o todos los núcleos en una CPU multinúcleo. Un caché compartido significa que varios núcleos pueden acceder a una instancia de datos específicos, lo que limita el espacio desperdiciado debido a la duplicación. También significa que un núcleo puede reclamar temporalmente más de lo que le corresponde del espacio de caché si lo necesita, mientras que los otros núcleos no. Tiene el costo de un mayor tiempo de acceso.

Cachés compartidos en la práctica

Las CPU modernas usan ambos conceptos, y cada núcleo tiene una caché L1 local. La caché L3 tiende a compartirse entre muchos núcleos, aunque a veces no todos. L2 varía, pero puede ser local o compartido según la arquitectura de generación de CPU específica.

Sugerencia: para las CPU de chiplet como los modelos AMD Ryzen de gama alta, los cachés pueden compartirse entre todos los núcleos de un chiplet en lugar de con todos los núcleos de toda la CPU. No importa cuántos núcleos se comparta un caché; incluso si son solo dos, sigue siendo un caché compartido, aunque vale la pena resaltar que solo se comparte parcialmente.

Nota: La RAM del sistema también se puede compartir entre múltiples CPU físicas en una sola placa base o entre nodos en un sistema de múltiples CPU.

Memoria compartida en software

En las computadoras modernas, el software no se dirige directamente a la memoria física. En su lugar, se le asigna un segmento de dirección virtual y la computadora traduce estas direcciones virtuales a las direcciones físicas según sea necesario. Esto ayuda a aislar la memoria para procesos individuales, lo que es útil para la seguridad.

En algunos casos, puede ser deseable transferir datos en la memoria de un proceso a otro. La forma más eficiente de hacer esto es permitir que los dos procesos compartan espacio de memoria. De esta forma, ambos procesos pueden leer los mismos datos y comunicarse entre sí. Esto también ayuda a usar la RAM del sistema de manera eficiente ya que los datos no se duplican.

La memoria compartida por software generalmente se logrará manteniendo una copia física de los datos y mapeando el acceso a ella a través de la memoria virtual para cada proceso que necesite acceder a ella.

Conclusión

La memoria compartida es el concepto de tener una sección de memoria accesible para varias cosas. Esto se puede implementar tanto en hardware como en software. La memoria caché de la CPU se puede compartir entre varios núcleos de procesador. Este es especialmente el caso de los niveles más altos de caché de CPU. La memoria del sistema también se puede compartir entre varias CPU físicas en un solo sistema más grande.

En el software, la memoria compartida puede permitir la comunicación entre procesos IPC. Un proceso asigna memoria compartida con uno o más procesos específicos. Esos otros procesos pueden acceder a esa ubicación de memoria a través del mapeo de memoria virtual. La memoria compartida ayuda a garantizar un uso eficiente del espacio de memoria al evitar la duplicación de datos en un espacio limitado.



Leave a Comment

Cómo clonar un disco duro

Cómo clonar un disco duro

En la era digital moderna, donde los datos son un activo valioso, clonar un disco duro en Windows puede ser un proceso crucial para muchos. Esta guía completa

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Se enfrenta al mensaje de error al iniciar su computadora que dice que el controlador WUDFRd no se pudo cargar en su computadora?

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

¿Tiene el código de error 0x0003 de la experiencia NVIDIA GeForce en su escritorio? En caso afirmativo, lea el blog para descubrir cómo solucionar este error de forma rápida y sencilla.

Cómo quitar una GPU de una PC con Windows en 2023

Cómo quitar una GPU de una PC con Windows en 2023

¿Necesitas quitar la GPU de tu PC? Únase a mí mientras explico cómo quitar una GPU de su PC en esta guía paso a paso.

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

¿Compró un nuevo SSD NVMe M.2 pero no sabe cómo instalarlo? Siga leyendo para aprender cómo instalar un SSD NVMe en una computadora portátil o de escritorio.

¿Qué es una bomba lógica?

¿Qué es una bomba lógica?

Una bomba lógica es un incidente de seguridad en el que un atacante establece una acción retrasada. Sigue leyendo para saber más.

¿Qué es Stuxnet?

¿Qué es Stuxnet?

Stuxnet era un gusano que se propagaba a sí mismo. Fue el primer uso de un arma cibernética y la primera instancia de malware.

¿Qué es un hacker ético?

¿Qué es un hacker ético?

Un hacker ético es un hacker que actúa dentro de los límites de la ley. Sigue leyendo para saber más sobre el tema.

¿Qué es el cifrado simétrico?

¿Qué es el cifrado simétrico?

Hay muchas partes diferentes de la criptografía. Sin embargo, si desea cifrar algunos datos, hay dos tipos de algoritmos que puede usar: simétrico

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

¿Quiere hacer una prueba de estrés de la GPU en su PC con Windows para garantizar un rendimiento confiable para los juegos de alta definición? ¡Lea esta guía de GPU de prueba de estrés ahora!