Anda di halaman 1dari 9

Introducción

1. Ante la inmensa velocidad de los procesadores que a medida del tiempo se va


incrementando, el límite es mayor entre la transferencia de la memoria principal
(RAM) y el CPU; ante esto se plantearon soluciones, una incrementar la
velocidad de la RAM y otra, quizá la más óptima, agregar un nuevo componente
al PC: la memoria caché.
Concepto de caché
La memoria caché es una clase de memoria RAM estática (SRAM) de acceso aleatorio
y alta velocidad, situada entre el CPU y la RAM; se presenta de forma temporal y
automática para el usuario, que proporciona acceso rápido a los datos de uso más
frecuente.

La ubicación de la caché entre el microprocesador y la RAM, hace que sea


suficientemente rápida para almacenar y transmitir los datos que el microprocesador
necesita recibir casi instantáneamente.

La memoria caché es rápida, unas 5 ó 6 veces más que la DRAM (RAM dinámica), por
eso su capacidad es mucho menor. Por eso su precio es elevado, hasta 10 ó 20 veces
más que la memoria principal dinámica para la misma cantidad de memoria.

La utilización de la memoria caché se describe a continuación:

• Acelerar el procesamiento de las instrucciones de memoria en la CPU.


• Los ordenadores tienden a utilizar las mismas instrucciones y (en menor
medida), los mismos datos repetidamente, por ello la caché contiene las
instrucciones más usadas.

Por lo tanto, a mayor instrucciones y datos la CPU pueda obtener directamente de la


memoria caché, tanto más rápido será el funcionamiento del ordenador.

1. La memoria caché se carga desde la RAM con los datos y/o instrucciones que ha
buscado la CPU en las últimas operaciones. La CPU siempre busca primero la
información en la caché, lo normal es que va encontrar ahí la mayoría de las
veces, con lo que el acceso será muy rápido. Pero si no encuentra la información
en la caché, se pierde un tiempo extra en acudir a la RAM y copiar dicha
información en la caché para su disponibilidad.

Como estos fallos ocurren con una frecuencia relativamente baja, el rendimiento
mejora considerablemente, ya que la CPU accede más veces a la caché que a la
RAM. En el siguiente diagrama se describe un proceso cuando la CPU requiere
operación de lectura de una instrucción, para ello se presentan dos casos:
Una forma de entender el funcionamiento de la memoria caché consiste en la
analogía de un videoclub, equipado con un mostrador y una habitación capaz de
almacenar cientos de vídeos. Ante la petición de cada cliente, el dependiente
deberá acudir hasta el almacén, buscar la película solicitada, volver al mostrador
y entregar la cinta al cliente.

Ante la devolución de una cinta, el dependiente debe caminar hacia el almacén y


guardar dicha cinta en el lugar apropiado. Esta forma de trabajo no es nada
eficiente, ya que implica demasiados desplazamientos y, por tanto, la atención al
cliente es lenta. Suponemos ahora que el dependiente dispone de un pequeño
archivador de 20 vídeos sobre el mostrador. Cuando un cliente devuelve una
cinta, el dependiente coloca la cinta directamente en el archivador, en lugar de
caminar hacia el almacén.

Si se va repitiendo dicho proceso, el dependiente dispondrá continuamente de


las veinte últimas películas devueltas en el archivador. Cuando se acerque un
cliente y pida una película, el dependiente buscará primero en el archivador, y
sólo si no la encuentra allí se desplazará hacia el almacén. Este método funciona,
sobre todo porque la mayor parte de las películas devueltas serán las de estreno,
que al mismo tiempo son las más solicitadas.

La memoria caché también se puede comparar con el cinturón de herramientas


de un trabajador, donde guarda las herramientas y las piezas que se necesitan
con mayor frecuencia. En este último ejemplo, la memoria principal es como un
cinturón de herramienta portátil y el disco duro es como un camión grande para
representarlo así.

2. Funcionamiento de la memoria caché

A parte de la caché con respecto a la memoria RAM, en un PC existen muchos


otros sistemas de caché, como:

o Memoria RAM como caché: Las unidades de almacenamiento (discos


duros, discos flexibles, etc.) y otros muchos periféricos utilizan la
memoria RAM como sistema de caché, una zona de la RAM contiene la
información que se ha buscado últimamente en dichos dispositivos, de
forma que basta con acceder a la RAM para recuperarla.
o Disco duro como caché: Se emplea al disco duro como caché a
dispositivos aún más lentos (unidades CD-ROM). Estos sistemas de
caché suelen estar gobernados mediante software, que se suele integrar
en el sistema operativo. La caché de disco almacena direcciones
concretas de sectores, almacena una copia del directorio y en algunos
casos almacena porciones o extensiones del programa o programas en
ejecución.
o Los navegadores Web utilizan el disco duro como caché, al solicitar una
página Web, el navegador acude a Internet y comprueba la fecha de la
misma. Si la página no ha sido modificada, se toma directamente del
disco duro, con lo que la carga es muy rápida. En caso contrario se
descarga desde Internet y se actualiza la caché, con un cierto tiempo de
espera. En el caso de los navegadores Web, el uso del disco duro es más
que suficiente, ya que es extremadamente más rápido que el acceso a
Internet.
3. Tipos de caché

Los diferentes tipos de caché se organizan por niveles, formando una jerarquía. En
general se cumple que, a mayor cercanía a la CPU, se presenta mayor velocidad de
acceso y menor capacidad de almacenamiento.

A. Nivel 1 (L1): Conocido como caché interno, es el nivel más cercano a la


CPU (está en el mismo núcleo) con lo que el acceso se produce a la
velocidad de trabajo del procesador (la máxima velocidad). Presenta un
tamaño muy reducido, en Intel (4 a 32 KB), en VIA/Cyrix (1 a 64 KB),
en AMD (8 a 128 KB).
B. Nivel 2 (L2): Conocido como caché externo, inicialmente se instalaba en
la placa base (en el exterior de la CPU). A partir de los procesadores
Pentium 4 vienen incorporado en el procesador (no precisamente en el
núcleo). El nivel L2 apareció con el procesador Pentium Pro, es una
memoria más lenta que L1, pero de mayor capacidad. Los tamaños
típicos de la memoria caché L2 oscilan en la actualidad entre 256 KB y 4
MB.
C. Nivel 3 (L3): Se encuentra en algunas placas base, procesadores y
tarjetas de interfaz. El procesador de Intel Itanium trae contenida en su
cartucho al nivel L3 que soporta un tamaño hasta de 4 MB, y el Itanium
2 tolera hasta 6 MB de caché L3.
D. Nivel 4 (L4): Se encuentra ubicado en los periféricos y en algunos
procesadores como el Itanium.
E. Caché de memoria: De acuerdo a la ubicación física que tienen en el
sistema se denominan o identifican por niveles:
F. Caché de memoria RAM: La memoria principal RAM suele hacer de
caché para los dispositivos de almacenamiento y otros tipos de
periféricos.
G. Caché en disco duro: Utilizadas por los navegadores Web y algunos
periféricos.

La búsqueda de información comienza por la caché L1, y se va subiendo nivel a


nivel en caso de no encontrar lo que se busca en el nivel actual. Cuantas más
capas se asciende, mayor es el tiempo de espera. Pero, a mayor cercanía a la
CPU, la probabilidad de encontrar lo que se busca es mayor. Esta forma de
trabajo resulta una excelente relación de compromiso entre diversos factores, y
consigue mejorar el rendimiento del ordenador de forma notable.

INFORMACIÓN DE MEMORIA CACHÉ Y VELOCIDAD DE ALGUNOS


PROCESADORES INTEL
VELOCIDAD EN CACHÉ L1 CACHÉ L2 EN
MODELO
MHz EN KB KB
8088 8 0 0
8086 8 0 0
80c86 8 0 0
80186 16 0 0
80286 20 0 0
80386DX 40 0 0
80386SX 25 0 0
80486SLC 25 8 0
33 8 0
80486DX 25 8 0
33 8 0
50 8 0
80486SX 20 8 0
25 8 0
33 8 0
80486DX2 40 8 0
50 8 0
66 8 0
80486DX4 75 16 0
100 16 0
Pentium 75 16 0
100 16 0
Pentium MMX 166 32 0
233 32 0
Pentium Pro 150 16 256-512
200 16 256-512
Pentium II 233 32 512
450 32 512
Pentium II Xeon 400 32 512
450 32 512
Pentium III 450 32 512
1000 32 256
Pentium III Xeon 500 32 512
800 32 256
Celeron 266 32 0
600 32 128
Pentium 4 1400 32 256
2000 32 512

2. Niveles de caché
3. Estructura y funcionamiento interno de una caché de memoria

La memoria caché está estructurado por celdas, donde cada celda almacena un byte. La
entidad básica de almacenamiento la conforman las filas, llamados también líneas de
caché. Por ejemplo, una caché L2 de 512 KB se distribuye en 16.384 filas (16 KB) y 32
columnas (32 bytes).
Cuando se copia o se escribe información de la RAM, por cada movimiento siempre
cubre una línea de caché (en la caché anterior, siempre se mueven 32 bytes).

La memoria caché tiene incorporado, un espacio de almacenamiento llamado Tag RAM,


que indica a que porción de la RAM se halla asociada cada línea de caché, es decir
permite traducir una dirección de RAM en una línea de caché concreta.

Para que la RAM se reparte entre las líneas de caché disponibles, existen 3 técnicas:

a. Esta técnica permite una búsqueda muy rápida, ya que cada posición de RAM
sólo puede estar en una determinada línea. Sin embargo, la probabilidad de
encontrar la información buscada es mínima.
b. Caché de mapeo directo: La memoria RAM se divide en porciones de igual
tamaño, de acuerdo a la cantidad de líneas de caché existan. Cada línea de caché
es un recurso a compartir por las direcciones de memoria de una porción
diferente. Por ejemplo, si se dispone de una RAM de 64 MB y la caché de 512
KB, cada línea podrá almacenar 32 de las 4.096 direcciones que contiene la
porción de RAM asociada (64 MB/ 16.384 líneas = 4.096 bytes / línea).
c. Caché completamente asociativa: Cada línea de caché se puede llenar con
cualquier grupo de posiciones de la memoria RAM. En este caso, el porcentaje
de acierto es máximo. En cambio, el tiempo de acceso es muy elevado, puesto
que una posición de RAM puede estar en cualquier línea de caché (esto es lento,
incluso empleando algoritmos de búsqueda avanzados).
d. Caché asociativa por conjuntos de N líneas: La caché se divide en conjuntos de
N líneas, a cada conjunto se le asocia un grupo de posiciones de RAM. Dentro
del conjunto asignado, una posición de RAM puede ir a parar a cualquiera de las
N líneas que lo forman, es decir dentro de cada conjunto la caché es totalmente
asociativa. Esta situación es la más equilibrada, puesto que se trata de un
compromiso entre las técnicas anteriores. Si se hace N=1, se tiene una caché. De
mapeo directo. Si N es igual al número de líneas de la caché, se tiene una caché
completamente asociativa. Si se escoge un valor de N apropiado, se alcanza la
solución óptima.

Normalmente, la caché L2 es de mapeo directo, mientras que la caché L1 es asociativa


por conjuntos de N líneas.

1. El procesador genera la dirección X, de la palabra a leer. Si la palabra está en la


caché, es enviada al procesador. Caso contrario, el bloque que contiene a la
palabra (en memoria principal) se carga en caché y la palabra se envía al
procesador. En el diagrama se ilustra esta operación:

Lectura de la caché
El proceso de escritura en caché es se da directamente. Para trasladar
información de la caché a la RAM, hay dos políticas de escritura fundamentales:

a. Write-back: La información se escribe directamente en la caché, sin


actualizar la RAM. Cuando una posición de la caché debe ser utilizada
por otra posición de RAM diferente, su contenido actual se traslada a la
RAM, asegurando la coherencia entre ambas memorias.
b. Write-througth: Cada vez que se escribe en una línea de caché, se
actualiza la RAM. Esta técnica conlleva un acceso continuo a la RAM,
por lo que el rendimiento es pobre.
Políticas de escritura
Diseño
En el diseño de la memoria cache 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 cache y de sus bloques.

[editar] Política de ubicación

Decide dónde debe colocarse un bloque de memoria principal que entra en la memoria
cache. Las más utilizadas son:

• Directa: Al bloque i-ésimo de memoria principal le corresponde la posición i


módulo n, donde n es el número de bloques de la memoria cache.
• Asociativa: Cualquier bloque de memoria principal puede ir en cualquiera de los
n bloques de la memoria cache.
• Asociativa por conjuntos: La memoria caché se divide en k conjuntos de
bloques, así al bloque i-ésimo de memoria principal le corresponde el conjunto i
módulo k. Dicho bloque de memoria podrá ubicarse en cualquier posición de ese
conjunto.

[editar] Política de extracción

La política de extracción determina cuándo y qué bloque de memoria principal hay que
traer a memoria cache. Existen dos políticas muy extendidas:

• Por demanda: Un bloque sólo se trae a memoria cache cuando ha sido


referenciado y se produzca un fallo.
• Con prebúsqueda: Cuando se referencia el bloque i-ésimo de memoria principal,
se trae además el bloque (i+1)-esimo. Esta política se basa en la propiedad de
localidad espacial de los programas.

[editar] Política de reemplazo

(Ver también Algoritmos de reemplazo de páginas ) Determina qué bloque de memoria


caché debe abandonarla cuando no existe espacio disponible para un bloque entrante.
Básicamente hay cuatro políticas que son:
• Aleatoria: El bloque es reemplazado de forma aleatoria.
• FIFO: Se usa un algoritmo First In First Out FIFO (primero en entrar es el
primero en salir) para determinar qué bloque debe abandonar la cache. Este
algoritmo generalmente es poco eficiente.
• Menos recientemente usado (LRU): Se sustituye el bloque que hace más tiempo
que no se ha usado en la cache, traeremos a cache el bloque en cuestión y lo
modificaremos ahí.
• Menos frecuencias usadas (LFU): Se sustituye el bloque que ha experimentado
menos referencias.