Professional Documents
Culture Documents
Estructura y Tecnolologa
de Ordenadores
Tema 3: Jerarqua de Memoria:
Memoria Cach y Memoria Virtual
Definicin de memoria cach
Estrategias de Mapeado: Directo,
Asociativo y Asociativo por conjunto
Algoritmos de reemplazamiento: FIFO,
LRU, Aleatorio
Coherencia del cach.
Hemos visto.
Jerarquas de memoria
CPU
CPU D I
cache Cache L2
RAM
RAM
disco disco
red
Terminologa bsica
procesador El nivel superior -el ms
cercano al procesador es mas
nivel superior rpido y pequeo que el nivel
inferior.
bloques
Mnima unidad de informacin
nivel inferior en una jerarqua de dos niveles
bloque
Niveles de una jerarquia de memoria
Memoria Cach
Para usos normales, a
partir de 1 MB (1024 Kb) RAM (MB) Cach (Kb)
la cach resulta ineficaz, 1a4 128 256
e incluso pudiera llegar a
ralentizar el 4 a 12 256
funcionamiento del 12 a 32 512
ordenador.
ms de 32 512 a 1024
El tamao idneo
depende del de la RAM
Ejemplo:
Celeron 32 KB 128 KB
Duron 128 KB 64 KB
Pentium 4 20 KB 256 KB
Pentium 4 20 KB 512 KB
Northwood
Hemos visto.
Ley de localidad
todo programa favorece una parte de su espacio de
direcciones en cualquier instante de tiempo.
2 dimensiones:
Localidad temporal (tiempo). Si se referencia un
elemento tender a ser referenciado pronto.
Localidad espacial (espacio). Si se referencia un
elemento, los elementos cercanos a l tendern a ser
referenciados pronto.
Terminologa bsica (1)
Mapa de Memoria: espacio direccionable (2n)
01101011
Bloque de datos
Bloque
de
Cache
(MARCO)
etiqueta Hit
comparador
Ubicacin
de un bloque en la cache (marco)
correspondencia directa
cada bloque debe ir solamente en un lugar
dentro de la cache
asociativa
un bloque puede ubicarse en cualquier lugar
de la cache
asociativa por conjuntos
un bloque puede ser colocado en un grupo
restringido de lugares de la cache
un conjunto es un grupo de dos o ms
marcos (bloques) de la cache
Ecuaciones de ubicacin de bloques
(marcos)
correspondencia directa
ubicacin = direccin (x) mod (m) marcos
asociativa
ubicacin = cualquiera
00000000001111111111222222222233
01234567890123456789012345678901
Ejemplo
Estructura de la Cach:
Ejemplo de Cach:
DECStation 3100
Procesador MIPS
R2000
Segmentacin similar
a la vista
Cada ciclo de reloj
solicita (velocidad
mxima): Una palabra
de instruccin y una
de datos
Posee dos Cachs:
Instrucciones y datos
16 Kbloques (Bloque =
1 palabra)
Ejemplo de Cach:DECStation 3100
Ejemplo 2 0 (0 modulo 4) = 0
6 (6 modulo 4) = 2
8 (8 modulo 4) = 0
Direccin de
Contenido de la cache despus de la referencia
bloque de
Acierto o fallo
memoria
accedido 0 1 2 3
0 (0 modulo 2) = 0
6 (6 modulo 2) = 2
8 (8 modulo 2) = 0
Ejemplo (parte 1)
Cach de 512 bytes dividida en bloques de 16 bytes (32 bloques)
La cach est, a su vez, agrupada en 8 conjuntos de 4 bloques
cada uno (4 vas).
0 1 2 3 4 5 6 7
0 1 . . . . . . . . . . . . . . . . . . . . . . . .1023
Ejemplo (parte 2)
Si la direccin que necesita la CPU es 9000 entonces:
bloque = 9000 DIV 16 = 562
desplaz = 9000 MOD 16 = 8
En la cach ir en el conjunto:
conjunto = 562 MOD 8 = 2
y el valor de la etiqueta ser:
etiqueta = 562 DIV 8 = 70
70 2 8
etiqueta indice desplazamiento
Ejemplo (parte 3)
en binario sera:
9000 = 1000 1100 101 000
Como el bloque es de 16 bytes, el desplazamiento lo dan los 4 ltimos bits
desplazamiento = 1000 ( = 8)
dir. est. bloque = 1000 1100 10
Como la cach es de 8 conjuntos, entonces, el MOD 8 representa los ltimos
3 bits de la direccin de estructura de bloque. Entonces:
indice = 010 ( = 2)
etiqueta = 1000 110 ( = 70)
Postescritura
las escrituras se realizan a velocidad de la cache
mltiples escrituras de un bloque requieren una nica
escritura en la memoria de nivel inferior
Fallos de escritura
El fallo se produce cuando se intenta escribir una palabra de
un bloque que no est en la cache
polticas
Ubicar en escritura : el bloque se carga en la cache,
seguido de las acciones anteriores de acierto de
escritura. Esto es similar a un fallo de lectura.
Con :
ciclos detencin-memoria = accesos memoria * PF * FF
programa