¿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

Qué Hacer Si Powerbeats Pro No Carga en el Estuche

Qué Hacer Si Powerbeats Pro No Carga en el Estuche

Si tus Powerbeats Pro no cargan, utiliza otra fuente de energía y limpia tus auriculares. Deja el estuche abierto mientras cargas tus auriculares.

Fundamentos de Impresión 3D: Una Lista de Verificación de Mantenimiento Imprescindible

Fundamentos de Impresión 3D: Una Lista de Verificación de Mantenimiento Imprescindible

Mantener tu equipo en buen estado es fundamental. Aquí hay algunos consejos útiles para mantener tu impresora 3D en óptimas condiciones.

Canon Pixma MG5220: Escanear Sin Tinta

Canon Pixma MG5220: Escanear Sin Tinta

Cómo habilitar el escaneo en la Canon Pixma MG5220 cuando se queda sin tinta.

5 Razones por las Que Tu Portátil Se Está Sobrecalentando

5 Razones por las Que Tu Portátil Se Está Sobrecalentando

Descubre algunas de las posibles razones por las que tu portátil se está sobrecalentando, junto con consejos y trucos para evitar este problema y mantener tu dispositivo fresco.

Cómo instalar un SSD en PCs de escritorio y portátiles

Cómo instalar un SSD en PCs de escritorio y portátiles

¿Acabas de comprar un SSD con la esperanza de mejorar el almacenamiento interno de tu PC, pero no sabes cómo instalarlo? ¡Lee este artículo ahora!

Cómo solucionar el código de error 0xC272008F de GeForce Now

Cómo solucionar el código de error 0xC272008F de GeForce Now

Te estás preparando para una noche de juegos y va a ser una gran noche: acabas de conseguir “Star Wars Outlaws” en el servicio de streaming GeForce Now. Descubre la única solución conocida que te muestra cómo arreglar el error 0xC272008F de GeForce Now para que puedas empezar a jugar los juegos de Ubisoft nuevamente.

Fundamentos de la Impresión 3D: Consejos de Mantenimiento para su Impresora 3D

Fundamentos de la Impresión 3D: Consejos de Mantenimiento para su Impresora 3D

Mantener sus impresoras 3D es muy importante para obtener los mejores resultados. Aquí hay algunos consejos importantes a tener en cuenta.

Cómo encontrar la dirección IP de una impresora

Cómo encontrar la dirección IP de una impresora

¿Tienes problemas para averiguar cuál es la dirección IP de tu impresora? Te mostraremos cómo encontrarla.

Cómo usar AirPods con teléfonos Samsung

Cómo usar AirPods con teléfonos Samsung

Si tienes dudas sobre si comprar AirPods para tu teléfono Samsung, esta guía te ayudará. La pregunta más obvia es si son compatibles, y la respuesta es: ¡sí, lo son!

Solución de problemas de Roku no actualiza el software

Solución de problemas de Roku no actualiza el software

Asegúrate de que tu dispositivo Roku funcione correctamente actualizando el software. Aquí tienes soluciones efectivas para el problema de actualizaciones de Roku.