real time web analytics

¿Qué es la memoria local? – Tecnipáginas

El acceso a los datos es una parte fundamental del diseño de la CPU. Las CPU funcionan a velocidades extremadamente altas, procesan múltiples instrucciones en cada ciclo de reloj y, por lo tanto, necesitan acceder a una gran cantidad de datos. La gran mayoría de esos datos se almacenan en los medios de almacenamiento. Sin embargo, los dispositivos de almacenamiento son increíblemente lentos en comparación con una CPU. Los dispositivos de almacenamiento también son significativamente mejores en lecturas secuenciales que en lecturas aleatorias, aunque los SSD ofrecen una mejora notable en este sentido (y muchos otros) sobre los HDD.

La RAM del sistema está diseñada para cargarse con todos los datos que la CPU pueda necesitar para el software que se está ejecutando actualmente. La RAM tiene una latencia significativamente más baja que el almacenamiento, también está específicamente diseñada para tener un alto rendimiento de lectura aleatoria. Aún así, por mucho que la RAM moderna sea rápida, todavía no es nada en comparación con la CPU con latencias del orden de 400 ciclos de reloj.

Almacenamiento en caché para reducir la latencia

Para reducir aún más la latencia, la mayoría de las CPU modernas incluyen niveles de memoria caché. Por lo general, estos se denominan cachés L1, L2 y L3. L1 es realmente de alta velocidad, por lo general toma del orden de 5 ciclos de reloj para acceder. L2 es un poco más lento, del orden de 20 ciclos. L3 es aún más lento en alrededor de 200 ciclos.

Si bien L1 es increíblemente rápido, también es pequeño. Gran parte de su velocidad proviene del hecho de que los cachés más pequeños toman menos tiempo para buscar. L2 es más grande que L1 pero más pequeño que L3, que es aún más pequeño que la RAM del sistema. Equilibrar bien el tamaño de estos cachés es fundamental para obtener una CPU de alto rendimiento. Las proporciones de aciertos de caché son importantes, pero debe equilibrar la cantidad de aciertos con el tiempo que lleva obtener ese acierto, de ahí los niveles.

Equilibrar la capacidad de cada nivel de caché con la tasa de aciertos es bastante complicado, pero también es importante decidir qué tan amplio es el acceso a ese caché. Hay tres enfoques. El primero es limitar un caché a un solo núcleo. También puede permitir que todos los núcleos accedan a la memoria caché. La opción final es un término medio para permitir que una selección de núcleos comparta caché.

Compartir es lento

Una memoria caché a la que solo puede acceder un único núcleo se denomina memoria local. limitar el acceso al caché significa que no es necesario colocarlo para acceso múltiple. Esto significa que puede mantenerlo lo más cerca posible. Esto, además de que las capacidades pequeñas son más rápidas, conforman una memoria caché L1 ideal. Cada núcleo tiene su propio caché pequeño y cercano.

La memoria compartida sería un caché accesible por múltiples núcleos. No existe una diferenciación particular para los cachés compartidos entre algunos o todos los núcleos, aunque sí tiene un impacto en el rendimiento. Al igual que un caché local pequeño, tiene sentido que un caché compartido sea grande. En parte porque necesita servir a más núcleos y en parte porque necesita estar físicamente cerca de cada núcleo. Esto hace que este concepto sea más útil para cachés L2 y especialmente L3.

La memoria caché local no necesita estar restringida a las CPU. El concepto también puede aplicarse a otros tipos de procesadores. Sin embargo, el procesador secundario más conocido es la GPU, que esencialmente no tiene memoria local. Hay tantos núcleos de procesamiento que todo está agrupado. Incluso el grupo más pequeño comparte los niveles más bajos de caché.

A nivel de RAM

Algunas computadoras, como las computadoras en clúster, pueden tener varias CPU físicas. Por lo general, cada uno de estos tendrá su propio grupo de RAM. En algunos casos, esta RAM se compartirá entre todas las CPU, en otros, se limitará a cada CPU. Cuando cada CPU en un sistema multiprocesador solo puede acceder a su propio grupo de RAM, eso también es memoria local.

A nivel de software

Al software que se ejecuta en la computadora se le asigna espacio de memoria. En algunos casos, un programa puede estar ejecutando múltiples procesos con un espacio de memoria compartido. Algunos programas pueden incluso compartir espacio de memoria de forma activa con otros de forma deliberada. Sin embargo, por lo general, este espacio de memoria está limitado solo a ese proceso. Nuevamente, este es un ejemplo de memoria local.

Conclusión

La memoria local es un término que se identifica como una parte de la memoria que solo está disponible para una sola cosa. Ese elemento puede ser un núcleo de procesamiento, un procesador o un proceso. Sin embargo, el concepto general es siempre el mismo, aunque los detalles varían. La memoria local tiende a ser más segura. También tiende a ser de menor capacidad. Los tiempos de acceso son generalmente más rápidos para la memoria local que para la memoria compartida. Sin embargo, fuera del almacenamiento en caché, esto depende de que usted mida la velocidad en el peor de los casos de la memoria compartida. la memoria local suele ser muy útil. Sin embargo, dependiendo de la carga de trabajo, normalmente es más eficiente tener una combinación de memoria local y compartida. Excepto en cachés, donde siempre es mejor combinar memoria local y compartida.

Leave a Comment