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.
- 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).
- 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.
- 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.
- Nivel 4 (L4): Se encuentra ubicado en los periféricos y en algunos procesadores como el Itanium.
- Caché de memoria: De acuerdo a la ubicación física que tienen en el sistema se denominan o identifican por niveles:
- Caché de memoria RAM: La memoria principal RAM suele hacer de caché para los dispositivos de almacenamiento y otros tipos de periféricos.
- 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
MODELO
VELOCIDAD EN MHz
CACHÉ L1 EN KB
CACHÉ L2 EN 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
- Niveles de caché
- 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:
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.
- 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).
- 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).
- 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.
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:
- 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.
- 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
Autor:
Marco Antonio Castro Churampi
Estudiante de la Facultad de Ingeniería de Sistemas e Informática
Universidad Nacional Mayor de San Marcos
Página anterior | Volver al principio del trabajo | Página siguiente |