Memoria caché

Anuncio
Definición: Pequeña cantidad de memoria SRAM (de 8 a 512kb) que se encuentra entre
el µp y la memoria principal.
El microprocesador lee datos de la memoria principal y los almacena en la memoria
caché (SRAM). Si el microprocesador vuelve a necesitar esos datos, los lee de la memoria
caché en lugar de la memoria principal que es mas rápida, debido a que no necesita ciclo de
refresco para mantener los datos.
CONTROLADOR DE CACHÉ
CPU
CACHÉ
MEMORIA
PRINCIPAL
*Nota: Antes la caché venía fuera del microprocesador (caché de nivel 2), pero hoy en
día la mayoría de los micro incorporan una pequeña caché dentro de la propia CPU (caché de
nivel 1) ya que de esta manera puede trabajar a la misma velocida y obtener así mayor
rendimiento.
El tamaño de la caché
Ustedes pensarán: pues cuanto más grande, mejor. Cierto, pero no; o más bien, casi
siempre sí. Aunque la caché sea de mayor velocidad que la RAM, si usamos una caché muy
grande, el micro tardará un tiempo apreciable en encontrar el dato que necesita. Esto no sería
muy importante si el dato estuviera allí, pero ¿y si no está? Entonces habrá perdido el tiempo,
y tendrá que sumar ese tiempo perdido a lo que tarde en encontrarlo en la RAM.
Por tanto, la caché actúa como un resumen, una "chuleta" de los datos de la RAM, y
todos sabemos que un resumen de 500 páginas no resulta nada útil. Se puede afirmar que,
para usos normales, a partir de 1 MB (1024 Kb) la caché resulta ineficaz, e incluso pudiera
llegar a ralentizar el funcionamiento del ordenador. El tamaño idóneo depende del de la
RAM, y viene recogido en la siguiente tabla:
Caché (Kb)
1a4
4 a 12
12 a 32
RAM (MB)
128 ó 256
256
512
más de 32
512 o más
Componentes del caché
CTROLADOR DE CACHÉ
PASTILLA SRAM
MEMORIA ASOCIATIVA
a)Mem asociativa (chips mem SRAM): entre CPU y mem principal (desde 8kb a 512kb).
b)Ctrolador de caché: Copia trozos de mem principal en la cache.
Funcionamiento de la memoria caché
Cuando el micro lee o escribe en memoria principal tambien escribe en la caché.
Si luego necesita los datos accede a caché
velocidad del sistema.
MEM CACHÉ DE 8KB
128 sets o
posiciones por
vía.
2K
VIA 3
VIA 2
VIA 1
VIA 0
128 bits (bus entre caché y CPU)
CPU
8K=4x2K=4x2x1024bytes
1VIA:128 bits/(8 bits/byte)=16bytes
4vías x 16bytes=64bytes, como la caché tiene 8K:
1VIA:8K/64bytes=128 posiciones o sets.
-En las vías: Se almacenan los datos y hay que asociar cada dato a una etiqueta (tag):
la caché tiene un directorio con tantas entradas como posiciones en las vias.
El trozo de memoria mínima que puede direccionarse en cada vía es 16bytes.
*Como hay 4 vías: 4x16bytes=64bytes
*Como en total la caché es 8K, entonces 8K/64bytes=8x1024bytes/64bytes=128sets o
posiciones.
64BYTES
16
BYTES
128
posiciones
8K
Vía3
Vía2
Vía1
Vía0
* En las vías se almacenan datos, pero hay que asociar cada dato a una etiqueta(tag),
relacionada con la direccion de memoria.
La caché tiene una dirección (tag) con tantas entradas como posiciones en las vías.
Directorio(índice)
128
21bits
Tag0
21bits
Tag1
21bits
Tag2
entradas
tag 021bits
tag14bits
3bits
Tag3
tag válido
LRU
Cada entrada contiene:
-4 campos tag de entrada: 1 por vía (21 bits)
-1 campo tag válido : para validar los 4 de entrada (4 bits)
-1 campo LRU: criterio reemplazable (3 bits)
32
11
CPU pone una dirección física en el bus de direcciones
, A10-A4 , se selecciona
1 de las 128 posiciones de la caché.
32
CPU
bus direcciones
CACHE
128
CACHE
bus datos
2
3
Si la direccion esta en la caché, estará en 1 de las 4 lineas de las vías, entonces las
Compara ,A31-A11, con los 4 tags de la entrada del directorio o índice.
Si se ha encontrado : se produce 1 comparación válida, por lo tanto no accede a mem.
Si no se ha encontrado: se accede a memoria principal directamente.
Directorio
de 128 entradas
MEMORIA CACHÉ DE 8 KBYTES
128
128 SET
VIA3
VIA2
VIA1
VIA0
CADA SET CONTIENE 4 LINEAS DE 16 BYTES
SELECCIONA UN SET
CADA ENTRADE DEL
DIRECTORIO CONTIENE:
tag0
0
31
tag1
1
0
0
tag2
0
1
0
tag3
0
1
1
tag valido
0
0
1
11
1
10
0
LRU
0
0
0
1
1
4
1
3
1
1
0
Descargar