Memoria caché

Keywords: Memoria caché, Acrónimo, Aleatorio, Bit, Caché, Caché de disco, Coherencia, Español, FIFO

La memoria caché es un tipo especial de memoria que poseen los ordenadores. Esta memoria se situa entre el microprocesador y la memoria RAM y se utiliza para almacenar datos que se utilizan frecuentemente. Esta memoria permite agilizar la transmisión de datos entre el microprocesador y la memoria principal. Es de acceso aleatorio (también conocida como acceso directo) y funciona de una manera similar a como lo hace la memoria principal (RAM), siendo la memoria caché mucho más rápida que la RAM. Por otro lado el término caché puede utilizarse también para una zona de memoria de disco denominado caché de disco (Disk cache o Cache buffer en inglés).

Tabla de contenidos

Características generales

Con el aumento de la rapidez de los microprocesadores ocurrió la paradoja de que las memorias principales no eran suficientemente rápidas como para poder ofrecerles los datos que éstos necesitaban. Por esta razón, los ordenadores comenzaron a construirse con una memoria caché interna situada entre el microprocesador y la memoria principal. Además la caché contiene los datos que más se usan para reducir el tiempo de espera a los mismos. Por supuesto este aumento de velocidad (unas 5 veces más rápida) conlleva un elevado aumento de precio.

Existen dos tipos de memoria caché cuyo funcionamiento es análogo:

Composición interna

Las memorias caché están compuestas por dos elementos distintos: un directorio que almacena etiquetas que identifican la dirección de memoria almacenada y bloques de información, todos de igual tamaño, que guardan la información propiamente dicha.

Diseño

En el diseño de la memoria caché se deben considerar varios factores que influyen directamente en el rendimiento de la memoria y por lo tanto en su objetivo de aumentar la velocidad de respuesta de la jerarquía de memoria. Estos factores son las políticas de ubicación, extracción, reemplazo, escritura y el tamaño de la caché y de sus bloques.

Política de ubicación

decide donde debe colocarse un bloque de memoria principal que entra en la memoria caché. Las más utilizadas son:

Directa

El bloque i-esimo de memoria principal le corresponde la posición i módulo k donde k es el número de bloques de la memoria caché.

Asociativa

Cualquier bloque de memoria principal puede ir en cualquier bloque de memoria caché.

Asociativa por conjuntos

La memoria caché se divide en varios conjuntos de n bloques, así al bloque i-esimo de memoria principal le corresponde el conjunto i módulo (k/n) donde k es el número de bloques de memoria caché.

Política de extracción

La política de extracción determina cuando y cual bloque de memoria principal hay que traer a memoria caché. Existen dos políticas muy extendidas:

Por demanda

Un bloque solo se trae a memoria caché cuando ha sido referenciado y se produzca un fallo.

Con prebúsqueda

Cuando se referencia el bloque i-esimo de memoria principal, se trae además el bloque (i+1)-esimo.

Política de reemplazo

Determina que bloque de memoria caché debe abandonarla cuando no existe espacio disponible para un bloque entrante. Hay tres políticas muy importantes que son:

Aleatoria

El bloque es reemplazado de forma aleatoria.

FIFO

Se usa un algoritmo FIFO(First In First Out, el primero que entra es el primero que sale) para determinar que bloque debe abandonar la caché. Este algoritmo, generalmente es poco eficiente.

LRU

Acrónimo inglés de Least Recently Used (Español: El menos recientemente usado). Determina el bloque que hace más tiempo que no se referencia, y determina que éste debe ser el que debe abandonar la caché. Como esta política es difícil de implementar en hardware normalmente se usan versiones un poco simplificadas.

Política de escritura

Determina cuándo se actualiza la información en memoria principal cuando se ha escrito en memoria caché. Existen dos políticas principales:

Escritura inmediata

También llamada en inglés Write Through. Cuando se escribe un bloque en memoria caché se actualiza directamente la información también en memoria principal, manteniendo la coherencia en todo momento.

Escritura aplazada

En inglés Write Back, cuando se escribe un bloque en memoria caché, se marca como sucio usando un bit especial llamado normalmente dirty bit. Cuando el bloque sea desalojado de memoria caché (mediante la correspondiente política de reemplazo), se comprueba el bit de sucio, y si está activado se escribe la información de dicho bloque en memoria principal. También es llamada como política de post-escritura.

Véase también

Enlaces externos

Keywords: Memoria caché, Acrónimo, Aleatorio, Bit, Caché, Caché de disco, Coherencia, Español, FIFO