¿Por qué una jerarquía de memoria?

El rendimiento de la memoria de un sistema suele cuantificarse con dos métricas de rendimiento.

  • Latencia: Tiempo de acceso, es decir, tiempo que transcurre desde que se especifica una dirección hasta que se realiza la lectura o escritura (unidades de tiempo).
  • Ancho de banda: Número de bytes que pueden leerse o escribirse por unidad de tiempo (velocidad de transferencia hacia/desde la memoria, unidades de bytes/tiempo).

La latencia de una memoria suele estar limitada por la tecnología utilizada para construirla. Por lo tanto es un aspecto difícil de mejorar
mediante el diseño. Sin embargo, el ancho de banda suele estar limitado por el coste. Y sí que es posible mejorarlo mediante técnicas de diseño optimizadas, normalmente, aprovechando de alguna manera el paralelismo.

La introducción de una jerarquía de memoria en prácticamente todos los sistemas actuales intenta mejorar los dos aspectos. La idea es que la memoria se organice en niveles, cuanto más cercanos al procesador, más pequeños, rápidos y caros. El objetivo es conseguir una estructura de memoria con un coste casi tan bajo como el de la memoria más barata de la jerarquía, pero con latencia comparable a la del nivel más rápido.

La jerarquía se organiza de manera que todos los datos de un nivel se encuentran también en el nivel siguiente. Y además debe haber una correspondencia de direcciones entre los distintos niveles de la jerarquía. Los niveles de memoria en una jerarquía habitual se resumen en la siguiente figura:





No hay comentarios: