La importancia de la memoria cache (II)

COMPARTIR 0 TWITTEAR

F3E

En el artículo anterior ya introducimos las necesidades que actualmente se están planteando en los computadores, ya no solo es aumentar la frecuencia de los procesadores, ni añadir más núcleos, ni si quiera aumentar la frecuencia de la memoria RAM, si no también valorar el uso de otras memorias para no depender tanto de la memoria RAM, una memoria muy lenta en comparación con la memoria caché.

Sistema de memoria

Hasta ahora hemos usado el término memoria RAM, memoria o sistema de memoria de manera indiferente, y no nos hemos parado a diferenciar que son cada una. Cuando los referimos a sistema de memoria nos solemos referir a la jerarquía de memoria.

La jerarquía de memoria se describe en la siguiente figura:

jerarquia_memoria

Como vemos podemos diferenciar tres grandes bloques:

  • La memoria cache: es el elemento más rápido del sistema y el más caro. Precio aproximado: 5€/MByte. Tiempo de acceso medio: 1ns.
  • La memoria RAM: es el segundo elemento más rápido del sistema con un precio medio. Precio aproximado: 0,007€/MByte. Tiempo de acceso medio: 5ns.
  • El disco duro: es el elemento más lento del sistema y que tiene mejor precio. Precio aproximado: 0,00005€/MByte. Tiempo de acceso medio: 11ms.

Los datos de precio y tiempo de acceso son aproximaciones, no siempre es así pero son completamente reales. Tenemos entonces que nuestro sistema de memoria esta formado por una jerarquía de memoria que combina estas tres tecnologías para formar una memoria lo más barata posible y lo más rápida posible.

Principio de funcionamiento

El principio de funcionamiento de la jerarquía de memoria es muy simple. La CPU cuando desea acceder a una posición del sistema de memoria acceder al nivel de memoria cache. Si esta posición se encuentra dentro de la memoria cache la CPU accede a ella de forma muy rápida. Si por el contrario la posición no está dentro de la memoria cache, se produce un fallo que trae como consecuencia que un conjunto de posiciones consecutivas que incluyen la posición deseada se transfieran desde la memoria principal a la memoria cache. A este conjunto de posiciones de memoria consecutivas se le denomina bloque. Una vez se ha realizado la transferencia, la CPU accede directamente a la cache.

Puede darse el caso no este en memoria principal, si tenga que acceder al disco duro, es decir, se debe tener en cuenta la posibilidad de encadenar fallos en diferentes niveles de la jerarquía.

Tiempo medio de acceso al sistema

El tiempo medio de acceso al sistema de memoria se obtiene teniendo en cuenta que hay tres posibilidades: el dato está en la memoria cache, el dato está en la memoria principal o que está en el disco duro. Las fórmulas matemáticas relacionadas con cada uno de estos casos son:

formulas_jerarquia_memoria La idea de este funcionamiento es que los datos estén a los que queremos acceder estén cerca entre ellos, que se cumpla el principio de cercanías de referencias.

Cercanías de referencias

Se denomina cercanía de referencias al agrupamiento de las lecturas de memoria por medio de la unidad central de procesamiento. Las mismas, ya sean para instrucciones o para leer datos, se mantienen por lo general dentro de grupos de direcciones relativamente cercanas entre sí. Los casos más importantes de localidad son la localidad espacial, la localidad secuencial y la localidad temporal.

Ejemplo

Hasta ahora solo hemos visto datos y datos, pero no hemos llevado esto a la práctica con un ejemplo. Primero vamos a ver lo todo mediante un ejemplo matemático con componentes reales.

Demostración de las fórmulas

Vamos a comprobar la importancia que tiene la memoria cache en un sistema informático con un sencillo ejemplo. Supongamos que tenemos ele sistema sistema de memoria formado por:

  • Memoria caché con un tiempo de acceso de 0,5 ns y una tasa de aciertos de 0,992.
  • Memoria principal o RAM con un tiempo de acceso de 4 ns y una tasa de aciertos de 0,99999. (Consideremos que el tamaño de bloque es de 32 Bytes)
  • Disco duro Memoria caché con un tiempo de acceso de 5 ms y una tasa de aciertos de 1. (El dato siempre se encontrará aquí)

¿Cuál es el tiempo de la jerarquía?

ejemplo_matematico1_sistema_memoria

Como vemos el tiempo es tiempo normal, un tiempo medio que podemos considerar bastante bueno al ser inferior al de la memoria principal así que nos compensa disponer de memoria cache, ya que si no disponemos de ella la jerarquía tendrá en el mejor de los casos un tiempo de 4 ns, es decir, será el doble de lenta y ahora que nuestro sistema (siguiendo la Ley de Amdhal) se vea bastante afectado.

Podemos ir más lejos considerando no que no tengamos memoria cache si no que tengamos una cache con una tasa de aciertos del 0,8. Tendremos entonces un tiempo medio de aproximadamente 26 ns. Por tanto en este caso si que no nos compensaría tener memoria cache, pero tranquilos, la tasa de aciertos de una memoria cache nunca baja de 0,98 (que es un umbral bastante bajo).

Precio de la cache

Si nos fijamos al final lo que nos importa es que sistema de memoria cumpla este principio y que la tasa de aciertos de la cache sea altísima. Si no se cumpliesen estas dos cosas no nos compensaría la memoria cache ya que, si nos hemos fijado, la memoria cache es el elemento más caro de todo nuestro dispositivo. También debemos saber que la memoria cache se encuentra dentro del propio chip del procesador, y que en ocasiones, hay varios niveles de cache o que es compartida por los núcleos del procesador.

Debemos saber que cuando compramos un procesador una gran parte del encarecimiento es debido al precio de la cache. Por ejemplo, con el procesador Intel Core 2 Quad Processor Q6600 que tenia un precio de aproximadamente 200$ si solo en la cache L2 tenia 8MB esto son ya 40$ solo el precio de la cache del segundo nivel.

En el siguiente artículo demostraremos estos fundamentos teóricos mediante un sencillo programa en el que mediremos el rendimiento de nuestro computador desactivando su memoria caché.

Archivado en C, Memoria caché, Sistema de memoria
COMPARTIR 0 TWITTEAR

Comentarios (7)

Usa tu cuenta de Facebook para dejar tu opinión.

¿Te ha gustado? ¡No te pierdas nada más!

follow us in feedly

Otras webs de Difoosion