Вы находитесь на странице: 1из 71

Memorias Caches

Índice

1. Conceptos básicos
2. Carga de la información
3. Políticas de ubicación
4. Reemplazo de líneas
5. Otros aspectos destacados

2
1. Conceptos básicos

Definición:
§ Memorias pequeñas y rápidas situadas
cerca del procesador.
§ Almacenan la información más
frecuentemente usada.

Objetivo principal:
§ Reducir el tiempo medio de acceso a
memoria.

MP
MC
µP rápida lenta
pequeña
grande

3
Conceptos básicos (II)

Basado en el Principio de Localidad


§ Localidad espacial: referencias siguientes se
encuentran ubicadas en posiciones de memoria
muy próximas a la actual.
§ Localidad temporal: la información usada
actualmente muy probablemente se usará
también en un futuro próximo.
espacial
Ejemplo: A

DO i= 1, 100 B espacial
A[i] = 2* B[i]
ENDDO
espacial
código y
temporal
4
Conceptos básicos (III)
Funcionamiento: La info. se halla replicada en MC

¿Está
ACIERTO
en MC?
Petición de
MP referencia NO
MC de memoria
µP rápida lenta
pequeña FALLO
grande
Acceder a MP

GUARDAR
¿Hay REEM-
sitio? PLAZAR
NO

Objetivo: Si el número de fallos es pequeño mejora la latencia efectiva


Núm. fallos
Índice de Fallos =
Núm. referencias a memoria
5
Conceptos básicos (IV)

Estructura de la MC:
§ Unidad de transferencia entre MC y MP: línea o bloque
§ Organizada en 2 zonas:
-Directorio: ¿De dónde proviene la línea almacenada?
(Etiqueta + bits de control)
-Almacenamiento: Datos (réplica de los de MP) que
forman cada línea
DIRECTORIO ZONA DE ALMACENAMIENTO

TAG CTRL

6
Conceptos básicos (IV)

Estructura de la MC:
§ Unidad de transferencia entre MC y MP: línea o bloque
§ Organizada en 2 zonas:
-Directorio: ¿De dónde proviene la línea almacenada?
(Etiqueta + bits de control)
-Almacenamiento: Datos (réplica de los de MP) que
forman cada línea
DIRECTORIO ZONA DE ALMACENAMIENTO

TAG CTRL

6
Conceptos básicos (IV)

Estructura de la MC:
§ Unidad de transferencia entre MC y MP: línea o bloque
§ Organizada en 2 zonas:
-Directorio: ¿De dónde proviene la línea almacenada?
(Etiqueta + bits de control)
-Almacenamiento: Datos (réplica de los de MP) que
forman cada línea
DIRECTORIO ZONA DE ALMACENAMIENTO

TAG

TAG CTRL

6
Conceptos básicos (IV)

Estructura de la MC:
§ Unidad de transferencia entre MC y MP: línea o bloque
§ Organizada en 2 zonas:
-Directorio: ¿De dónde proviene la línea almacenada?
(Etiqueta + bits de control)
-Almacenamiento: Datos (réplica de los de MP) que
forman cada línea
DIRECTORIO ZONA DE ALMACENAMIENTO

TAG CTRL

TAG CTRL

6
Conceptos básicos (V)

Interpretación de la dirección de memoria:

ANTES (Sólo MP):


MP
dirección = número de palabra
P.ej: 1001 à palabra 9

µP

7
Conceptos básicos (VI)
AHORA (Con MC):
dirección = número de línea + palabra dentro de la línea
P.ej: Si tenemos 4 palabras/línea
1001 à línea 2 palabra 1
MP

MC

µP

M w
2w palabras/línea
8
Índice

1. Conceptos básicos
2. Carga de la información
3. Políticas de ubicación
4. Reemplazo de líneas
5. Otros aspectos destacados

9
2. Carga de la información

¿Qué información se almacena? ¿Cuándo?

§ Cuando el µP solicita y falla la MC à


Carga bajo traemos la línea
demanda § No reemplazable por completo

§Si se carga la línea


i-ésima cargar Precarga siempre
además otras líneas
Algoritmo cercanas Precarga bajo fallo
de Precarga §Menos fallos si la
localidad espacial
es buena Precarga marcada

10
Carga de la información (II)
El mecanismo de Precarga debe contemplar:
§ ¿Cuántas líneas precargar?
- Mayor esfuerzo cuanto más líneas
- Un alto número podría elevar la tasa de fallos
- Generalmente se precarga 1 línea
§ ¿Cuáles?
- Líneas que estén cercanas: i ± ∆i
- Generalmente si se carga la línea i-ésima
precargaremos la (i+1)-ésima
§ ¿Cuándo?
- Mayor esfuerzo cuanto más a menudo se realice la
pregarga
- Diferentes posibilidades: siempre, bajo fallo,
precarga marcada

11
Carga de la información (III)
Precarga siempre:
§ Siempre que se referencia la línea i-ésima à traemos línea
(i+1)-ésima.
Precarga bajo fallo:
§ Siempre que la línea i-ésima produce un fallo à traemos
línea (i+1)-ésima.
Precarga marcada:
§ Mezcla de Precarga siempre y bajo fallo.
§ La línea (i+1)-ésima se lleva a MC siempre que:
- la línea i-ésima provoque un fallo de MC, ó bien,
- la línea i-ésima es una línea precargada, y es la
primera vez que se referencia.
§ Bit de marca en el directorio de MC.
Ejemplo:
-El µP solicita las líneas 1 y 2.
-La MC está vacía inicialmente.
12
Precarga siempre (ejemplo)
FALLO
MC
1 1, 2
MP
µP

ACIERTO
MC
1
2 3
2 MP
µP

MC Cargas por demanda = 1


1
2 Precargas = 2
3

13
Precarga bajo fallo (ejemplo)
FALLO
MC
1 1, 2
MP
µP

ACIERTO
MC
1
2
2 MP
µP

MC Cargas por demanda = 1


1
2 Precargas = 1

14
Precarga marcada (ejemplo)
FALLO
MC
1 1, 2
MP
µP

1ª ref. a línea
precargada
MC
1 D
2 3
2 P MP
µP

MC Cargas por demanda = 1


1 D
2 D Precargas = 2
3 P

15
Ejemplos de Precarga

Supongamos precarga siempre, se demanda la línea


1 pero la 2 ya está en cache,
¿qué ocurriría en esta situación?

MC
1 1
2 MP
µP

§ Se “pierde tiempo” en reconocer que la línea 2 ya está en MC.


§ Pero no hay transferencia MP-MC para dicha línea.
§ Es como un “acierto” en la línea a precargar

16
Índice

1. Conceptos básicos
2. Carga de la información
3. Políticas de ubicación
4. Reemplazo de líneas
5. Otros aspectos destacados

17
3. Políticas de ubicación

¿Dónde ubicar las líneas de MP?

Hay que tener en cuenta que:


§ Una línea de MC puede ser el destino de diferentes
líneas de MP.
§ Una línea de MP puede ser ubicada en diferentes líneas
de MC.
Deseable:
§ Cualquier línea de MP pueda ubicarse en cualquier línea
de MC.
En la práctica:
§ Restringir todas las posibles combinaciones, para
reducir la complejidad.

18
Políticas de ubicación (II)

Funciones de asignación
§ Asignación Directa
§ Totalmente Asociativa
§ Asociativa por Conjuntos

Parametrización: dirección de MP a nivel de palabra


§ 2M líneas en MP
M w
§ 2n líneas en MC
§ 2w palabras por línea dirección de MP a nivel de byte

§ 2b bytes por palabra


M w b

19
Asignación Directa
§ Cada línea de MP sólo puede estar en MC en una única posición
§ Línea i-ésima de MP à posición j=(i mod 2n) de MC

MP
Línea 0
Línea 1
.
.
. 2n
Línea 2 n-1
MC Línea 0 Línea 2 n
Línea 1 Línea 2 n +1
. .
. .
. .
Línea 2 n+1-1
Línea 2 n - 1 Línea 2 n+1
.
.
.

20
Asignación Directa
¿Qué ocurre internamente?
dirección dirección
i p X j p
M w M-n n w

MC MP
DIRECT. Z. ALMACEN.

j X i
p

M-n

21
Totalmente Asociativa

§ Cada línea de MP puede estar en cualquier posición


de MC.
§ Línea i-ésima de MP à cualquier línea de MC.
Línea 0
Línea 1 MP
.
.
.
MC Línea 2 n-1
Línea 0 Línea 2 n
Línea 1
.
. .
. . .
.
. .
Línea 2 n -1 Línea 2 n+1
.
.
.

22
Totalmente Asociativa
¿Qué ocurre internamente?
dirección dirección
i p X p
M w M w

MC
MP
DIRECT. Z. ALMACEN.

j X i
p

23
Asociativa por Conjuntos
§ Híbrido de directa y totalmente asociativa.
§ La MC se divide en 2c conjuntos.
§ Todos los conjuntos tienen igual número de líneas
(número de vías ó nivel de asociatividad).
- P.ej. 2 líneas por conjunto à MC 2-asociativa (2-way).
§ Función de asignación:
- Asignación al conjunto à directa. La línea i-
ésima de memoria principal se ubica en el
conjunto k=(i mod 2c)
- Asignación a la línea à totalmente asociativa
dentro del conjunto destino k-ésimo
§ Cada línea de MP sólo puede estar en un único conjunto
de MC....
... pero en cualquier línea dentro de ese conjunto.

24
Asociativa por Conjuntos
MP
Suponemos MC con nivel de
Línea 0
asociatividad 2 (2-way associative) Línea 1
. 2c
.
MC .
Línea 0 Línea 2c -1
Cjto. 0
Línea 1 Línea 2c
Línea 0
Cjto. 1
Línea 1 .
.
.

Línea 2c+1
Línea 0
Cjto. 2c-1
Línea 1

.
.
.
c=n à Directa
c=0 à Totalmente Asociativa
25
Asociativa por Conjuntos
¿Qué ocurre internamente?
dirección dirección
i p X k p
M w M-c c w

MC DIRECT. Z. ALMACEN.
MP

p
X i
Cjto k

M-c

26
Ejemplo de Asignación Directa

§ 64 líneas en MP (M = 6)
6 2
§ 4 palabras por línea (w = 2)
§ 8 líneas en MC (n = 3) 3 3 2

(Suponemos carga por demanda)

Secuencia de referencias:
DIRECT. Z. ALMACEN.

BUCLE 0
1
100 2
17 3
4
79 5
6
50 7
FIN-BUCLE 3 2 1 0

27
Ejemplo de Asignación Directa
1ª ITERACIÓN:
§ 100(10 : 011001 00 011 001 00 FALLO !!!!

Línea 25(10 etiqueta Línea 1(10 palabra 0


de MP de MC

DIRECT. Z. ALMACEN.
0
1 Línea 25 de MP
2
3
4
5
6
7
3 2 1 0 28
Ejemplo de Asignación Directa
1ª ITERACIÓN:
§ 100(10 : 011001 00 011 001 00 FALLO !!!!

Línea 25(10 etiqueta Línea 1(10 palabra 0


de MP de MC

DIRECT. Z. ALMACEN.
0
1 011 Línea 25 de MP
2
3
4
5
6
7
3 2 1 0 28
Ejemplo de Asignación Directa
1ª ITERACIÓN:
§ 100(10 : 011001 00 011 001 00 FALLO !!!!

Línea 25(10 etiqueta Línea 1(10 palabra 0


de MP de MC

DIRECT. Z. ALMACEN.
0
1 011 Línea 25 de MP
2
3
4
5
6
7
3 2 1 0 28
Ejemplo de Asignación Directa
1ª ITERACIÓN:
§ 100(10 : 011001 00 011 001 00 FALLO !!!!

Línea 25(10 etiqueta Línea 1(10 palabra 0


de MP de MC

DIRECT. Z. ALMACEN.
0
1 011 Línea 25 de MP
2
3
4
5
6
7
3 2 1 0 28
Ejemplo de Asignación Directa
1ª ITERACIÓN:
§ 100(10 : 011001 00 011 001 00

§ 17(10: 000100 01 000 100 01 FALLO !!!!

Línea 4(10 etiqueta Línea 4(10 palabra 1


de MP de MC

DIRECT. Z. ALMACEN.
0
1 011 Línea 25 de MP
2
3
4 000 Línea 4 de MP
5
6
7
3 2 1 0 29
Ejemplo de Asignación Directa
1ª ITERACIÓN:
§ 100(10 : 011001 00 011 001 00

§ 17(10: 000100 01 000 100 01

§ 79(10: 010011 11 010 011 11 FALLO !!!!

Línea 19(10 etiqueta Línea 3(10 palabra 3


de MP de MC
DIRECT. Z. ALMACEN.
0
1 011 Línea 25 de MP
2
3 010 Línea 19 de MP
4 000 Línea 4 de MP
5
6
7
3 2 1 0 30
Ejemplo de Asignación Directa
1ª ITERACIÓN:
§ 100(10 : 011001 00 011 001 00

§ 17(10: 000100 01 000 100 01

§ 79(10: 010011 11 010 011 11

§ 50(10: 001100 10 001 100 10 FALLO !!!!

Línea 12(10 etiqueta Línea 4(10 palabra 2


de MP de MC
DIRECT. Z. ALMACEN.
0
1 011 Línea 25 de MP
2
3 010 Línea 19 de MP
4 000 Línea 4 de MP
5
6
7
3 2 1 0 31
Ejemplo de Asignación Directa
1ª ITERACIÓN:
§ 100(10 : 011001 00 011 001 00

§ 17(10: 000100 01 000 100 01

§ 79(10: 010011 11 010 011 11

§ 50(10: 001100 10 001 100 10 FALLO !!!!

Línea 12(10 etiqueta Línea 4(10 palabra 2


de MP de MC
DIRECT. Z. ALMACEN.
0
1 011 Línea 25 de MP
2
3 010 Línea 19 de MP
4 001 Línea 12 de MP
5
6
7
3 2 1 0 32
Ejemplo de Asignación Directa
RESTO de ITERACIONES:
§ 100(10 : 011001 00 011 001 00 ACIERTO !!!!

§ 17(10: 000100 01 000 100 01 FALLO !!!!

§ 79(10: 010011 11 010 011 11 ACIERTO !!!!

§ 50(10: 001100 10 001 100 10 FALLO !!!!

DIRECT. Z. ALMACEN.
I. Fallos ≅ 0.5
0 (Colisión de líneas 4 y 12)
1 011
2
3 010
4 001
5
6
7
3 2 1 0 33
Ejemplo de Totalmente Asociativa

§ 64 líneas en MP (M = 6) 6 2

§ 4 palabras por línea (w = 2)


6 2
§ 8 líneas en MC (n = 3)
(Suponemos carga por demanda)

Secuencia de referencias:
DIRECT. Z. ALMACEN.
BUCLE 0
1
100 2
17 3
4
79 5
50 6
7
FIN-BUCLE
3 2 1 0
34
Ejemplo de Totalmente Asociativa
1ª ITERACIÓN:
§ 100(10 : 011001 00 011001 00 FALLO !!!!

Línea 25(10 etiqueta Cualquier palabra 0


de MP línea de MC

DIRECT. Z. ALMACEN.
0 011001 Línea 25 de MP
1
2
3
4
5
6
7
3 2 1 0 35
Ejemplo de Totalmente Asociativa
1ª ITERACIÓN:
§ 100(10 : 011001 00

§ 17(10: 000100 01 000100 01 FALLO !!!!

Línea 4(10 etiqueta Cualquier palabra 1


de MP línea de MC

DIRECT. Z. ALMACEN.
0 011001 Línea 25 de MP
1 000100 Línea 4 de MP
2
3
4
5
6
7
3 2 1 0 36
Ejemplo de Totalmente Asociativa
1ª ITERACIÓN:
§ 100(10 : 011001 00

§ 17(10: 000100 01

§ 79(10: 010011 11 010011 11 FALLO !!!!

Línea 19(10 etiqueta Cualquier palabra 3


de MP línea de MC
DIRECT. Z. ALMACEN.
0 011001 Línea 25 de MP
1 000100 Línea 4 de MP
2 010011 Línea 19 de MP
3
4
5
6
7
3 2 1 0 37
Ejemplo de Totalmente Asociativa
1ª ITERACIÓN:
§ 100(10 : 011001 00

§ 17(10: 000100 01

§ 79(10: 010011 11

§ 50(10: 001100 10 001100 10 FALLO !!!!

Línea 12(10 etiqueta Cualquier palabra 2


de MP línea de MC
DIRECT. Z. ALMACEN.
0 011001 Línea 25 de MP
1 000100 Línea 4 de MP
2 010011 Línea 19 de MP
3 001100 Línea 12 de MP
4
5
6
7
38
Ejemplo de Totalmente Asociativa
RESTO de ITERACIONES:
§ 100(10 : 011001 00 ACIERTO !!!!

§ 17(10: 000100 01 ACIERTO !!!!


I. Fallos ≅ 0
§ 79(10: 010011 11 ACIERTO !!!! (Todas las líneas están en
MC al mismo tiempo)
§ 50(10: 001100 10 ACIERTO !!!!

DIRECT. Z. ALMACEN.
0 011001 Línea 25 de MP
1 000100 Línea 4 de MP
2 010011 Línea 19 de MP
3 001100 Línea 12 de MP
4
5
6
7
39
Ejemplo de Asociativa por Conjuntos
§ 64 líneas en MP (M = 6) 6 2
§ 4 palabras por línea (w = 2)
§ 8 líneas en MC (n = 3) 5 1 2
§ 2 conjuntos (c=1)
(Suponemos carga por demanda)

Secuencia de referencias
DIRECT. Z. ALMACEN.
0
BUCLE 1 Cjto
100 2 0
3
17 0
Cjto
79 1
2 1
50 3
FIN-BUCLE 3 2 1 0

40
Ejemplo de Asociativa por Conjuntos
1ª ITERACIÓN:
§ 100(10 : 011001 00 01100 1 00 FALLO !!!!

Línea 25(10 etiqueta Cjto 1 palabra 0


de MP

DIRECT. Z. ALMACEN.
0
Cjto 1
0 2
3
0 01100 Línea 25 de MP
Cjto 1
1 2
3
3 2 1 0 41
Ejemplo de Asociativa por Conjuntos
1ª ITERACIÓN:
§ 100(10 : 011001 00 01100 1 00

§ 17(10: 000100 01 00010 0 01 FALLO !!!!

Línea 4(10 etiqueta Cjto 0 palabra 1


de MP

DIRECT. Z. ALMACEN.
0 00010 Línea 4 de MP
Cjto 1
0 2
3
0 01100 Línea 25 de MP
Cjto 1
1 2
3
3 2 1 0 42
Ejemplo de Asociativa por Conjuntos:
1ª ITERACIÓN:
§ 100(10 : 011001 00 01100 1 00

§ 17(10: 000100 01 00010 0 01

§ 79(10: 010011 11 01001 1 11 FALLO !!!!

Línea 19(10 etiqueta Cjto 1 palabra 3


de MP
DIRECT. Z. ALMACEN.
0 00010 Línea 4 de MP
Cjto 1
0 2
3
0 01100 Línea 25 de MP
Cjto 1 01001 Línea 19 de MP
1 2
3
3 2 1 0 43
Ejemplo de Asociativa por Conjuntos:
1ª ITERACIÓN:
§ 100(10 : 011001 00 01100 1 00

§ 17(10: 000100 01 00010 0 01

§ 79(10: 010011 11 01001 1 11

§ 50(10: 001100 10 00110 0 10 FALLO !!!!

Línea 12(10 etiqueta Cjto 0 palabra 2


de MP
DIRECT. Z. ALMACEN.
0 00010 Línea 4 de MP
Cjto 1 00110 Línea 12 de MP
0 2
3
0 01100 Línea 25 de MP
Cjto 1 01001 Línea 19 de MP
1 2
3
3 2 1 0 44
Ejemplo de Asociativa por Conjuntos:
RESTO de ITERACIONES:
§ 100(10 : 011001 00 01100 1 00 ACIERTO !!!!

§ 17(10: 000100 01 00010 0 01 ACIERTO !!!!

§ 79(10: 010011 11 01001 1 11 ACIERTO !!!!

§ 50(10: 001100 10 00110 0 10 ACIERTO !!!!

DIRECT. Z. ALMACEN.
I. Fallos ≅ 0
0 00010 Línea 4 de MP
Cjto 1 00110 Línea 12 de MP
0 2
3
0 01100 Línea 25 de MP
Cjto 1 01001 Línea 19 de MP
1 2
3
3 2 1 0 45
Comparativa políticas de asignación

Asociativa
Asignación Totalmente
por
Directa Asociativa
conjuntos
• Simplicidad (dise- • Más combina-
Ventajas

ño, reemplazo). •Todas las combina- ciones de líneas


• Bajo coste (direc- ciones posibles de directa de MP en
torio más pequeño, líneas de MP en MC. MC.
el directorio es una • Mayor rendimiento. • Más barata que
mem. convencional). tot. asoc.

• Más cara que


Desventajas

• Reemplazo sin que directa.


la MC esté comple- • Mayor Coste.
tamente llena. • Menos aprove-
• Más lenta.
chamiento que
• Pocas combina- • Necesita un algo- totalmente asoc.
ciones de líneas de ritmo de reemplazo.
MP en MC. • Necesita un alg.
de reemplazo.
46
Índice

1. Conceptos básicos
2. Carga de la información
3. Políticas de ubicación
4. Reemplazo de líneas
5. Otros aspectos destacados

47
4. Reemplazo de líneas

Colisisión de líneas que van a parar al


mismo conjunto cuando éste esta lleno
(no afecta a la de mapeo directo)

Algoritmos de reemplazo más comunes:


§ FIFO (First Input, First Output): se “elimina”
la línea que lleva más tiempo en MC.
§ LRU (Least Recently Used): se “elimina” la
línea que hace más tiempo que no se utiliza.
§ RANDOM: se “elimina” una línea elegida al
azar.
48
Ejemplo de Reemplazo
• MC totalmente asociativa de 4 líneas
• Secuencia de peticiones (líneas): 1, 2, 3, 4, 1, 5,....

• FIFO: MC
Línea reemplazada: “1” 1 5
2
• LRU: 3
Línea reemplazada: “2” 4

MC
¿Cuál es mejor? 1
2 5
§ Depende del patrón de referencias. 3
§ Normalmente LRU. 4

§ Pero también es más costosa.

49
Índice

1. Conceptos básicos
2. Carga de la información
3. Políticas de ubicación
4. Reemplazo de líneas
5. Otros aspectos destacados

50
5. Otros aspectos destacados
Actualización de la MP:
• Hasta ahora sólo analizamos lecturas
• Suponemos escrituras realizadas sobre MC
• ¿Cuándo actualizar la MP?
Escritura directa (Write- Post-escritura (Write-
through) back)
§ MP actualizada siempre § MP actualizada a veces
que se escriba en MC (por ej. bajo fallo)
§ Mejor consistencia § Peor consistencia
§ Mayor tráfico en el bus § Menor tráfico en el bus
MP-MC MP-MC
Non-Write allocate: Si la Write allocate: La línea se
línea no está en caché, se carga en caché en el fallo de
actualiza directamente en escritura.
MP. 51
Otros aspectos destacados (II)
Diferentes topologías:
• Cache unificada de • Cache multinivel
un nivel

µP U MP µP L1 L2 MP

• Cache de datos + • Combinación L1 D+I y


instrucciones de un L2 U
nivel

D D
µP MP µP L2 MP
I I

52
Ejemplos

§ Ejemplos:
L1 de los µP actuales dividida, L2 y L3 unificada

PROCESADOR L1 (I/D) L2 L3
Pentium 4 12K/8K (*) 512K (*) -
Itanium 2 16K/16K (*) 256K (*) 1.5-3MB (*)
Alpha 21364 64K/64K (*) 1.5MB -
PowerPC G4 32K/32K (*) 256K (*) 2MB
UltraSPARC III 32K/64K (*) 1-8 MB -
MIPS R14000 32K/32K (*) 512K-16MB -
HP PA 8700 0.75MB/1.5MB(*) - -

(*) Nivel interno

54
Otros aspectos destacados (III)

Utilización principal: segmentación

55
Otros aspectos destacados (III)

Utilización principal: segmentación

L1 I

55
Otros aspectos destacados (III)

Utilización principal: segmentación

L1 I
L1 D

55
Otros aspectos destacados (IV)
Compromiso entre coste y rendimiento
Tamaño de Nivel de
Tamaño de línea
cache asociatividad
A mayor tamaño: Pequeño: Grande:
•Más líneas en MC. •Menor tiempo de •Mayor aprove-
•Más coste. transferencia con MP. chamiento
•Más ocupación. •Bus MP-MC + pequeño. •Más comple-
•Más lenta. jidad hw. (reem-
Grande:
plazo, control).
•Menor índice de •Beneficioso si alta
fallos esperado. localidad espacial. En la práctica ren-
Ejemplos: dimiento similar 8-
•Control de MC más vías y tot. asoc.
L1: 16KB - 64KB. reducido (menos líneas).
Ej: Directa, 1, 2, 4
L2: 256KB - y 8-vías. 3-vías
2MB. (L2 del Alpha
Tamaño típico: 32 Bytes.
21164).
56
Otros aspectos destacados (IV)
El modelo de las tres C’s:
§ Fallos forzosos (Compulsory misses):
Debidos a una línea que entra por primera vez
en cache. Son imposible de eliminar.
§ Fallos de conflicto (Conflict misses):
Fallos que serían eliminables si aumentamos la
asociatividad de la cache pero sin aumentar el
tamaño de ésta.
§ Fallos de capacidad (Capacity misses):
Fallos que no se eliminan aumentando la
asociatividad sino que únicamente se podrían
eliminar si aumentamos el tamaño de la cache.
No se dan en una cache de tamaño infinito.
57
Problema
Sea un código en ensamblador del MIPS como el
#0 lw $1, %42 mostrado donde se supone que la instrucción “bne”
salta la primera vez y no lo hace la segunda. Las
L2: #1 sw $1, %50
instrucciones se han enumerado empezando por “#”
#2 j L1 según su orden de ubicación en memoria empezando
... por la posición 0 (#35 significa instrucción número 35).
L1: #35 sw $0, %42 Los operandos precedidos por “%” simbolizan una
#36 sw $2, %66 petición de datos, y el número que ahí aparece significa
la línea de MP donde se encuentran. Todos los números
#37 lw $3, %82
ahí mostrados están en decimal.
#38 lw $1, %90
Supongamos que tenemos L1 I (directa y precarga
#39 bne $1, $0, L2 bajo fallo) y L1 D (asociativa de 4 cjtos, sin precarga y
LRU). Ambas son de 128B y con un tamaño de línea de
8B.

Sea pide:
a) Indicar la secuencia de líneas solicitadas por el procesador.
b) Describir la evolución de los directorios de las MCs, calculando
el índice de fallos y el número de precargas.
58
Problema (II)
a) Indicar la secuencia de líneas solicitadas por el procesador.

#0 lw $1, %42 • Líneas de D´s:


L2: #1 sw $1, %50
42, 50, 42, 66, 82, 90
#2 j L1
...
L1: #35 sw $0, %42 • Líneas de I´s:
#36 sw $2, %66
(tamaño de I del MIPS = 4B à 2 I’s por línea)
#37 lw $3, %82
0, 0, 1, 17, 18, 18, 19, 19
#38 lw $1, %90
#39 bne $1, $0, L2

59
Problema (III)
b) Describir la evolución de los directorios de las MCs,
calculando el índice de fallos y el número de precargas.

Número de líneas en MC: 128B/8B = 16 líneas


L1 D L1 I
0 0 0 8
Cjto 1 1 Cjto 1 9
0 2 2 2 2 10
3 3 3 11
0 0 4 12
Cjto 1 1 Cjto 5 13
1 2 2 3 6 14
3 3 7 15

(4 conjuntos y LRU) (Directa y Pr. bajo fallo)

• líneas de D´s: 42, 50, 42, 66, 82, 90

• líneas de I´s: 0, 0, 1, 17, 18, 18, 19, 19


60
Problema (IV)
Línea Descripción
0 Busco en línea-0 (0 mod 16 = 0) de MC (FALLO, vacía); Demando línea-0 (en
línea-0 de MC) y precargo línea-1 (en línea-1 de MC)
0 ACIERTO
1 ACIERTO, la he precargado
17 Busco en línea-1 de MC (FALLO, ocupada por otra); Demando línea-17(línea-1)
y pr. la 18(línea-2)
18 ACIERTO, la he precargado
18 ACIERTO
19 Busco en línea-3 de MC (FALLO, vacía); Demando línea-19 (línea-3) y pr.
Línea-20 (línea-4)
19 ACIERTO
0 ACIERTO
1 FALLO, ocupada por otra; Demando línea-1 (línea-1) y pr. línea-2 (línea-2)
17 FALLO, la acabo de reemplazar; Demando línea-17(línea-1) y pr. la 18(línea-2)
18 ACIERTO, la acabo de precargar
18 ACIERTO
19 ACIERTO, la tenía de la anterior iteración
19 ACIERTO 61
Problema (V)
• Directorio resultante en la cache de instrucciones:
L1 I

0 0000 (0) 8
1 0001 (17) 9
2 0001 (18) 10
3 0001 (19) 11
4 0001 (20) 12
5 13
6 14
7 15

§ Índice de Fallos = 5 / 15

§ Número de Precargas = 5

62
Problema (VI)
Línea Descripción
42 Busco en el cjto 2 (42 mod 4 = 2) de MC (FALLO, vacía); Demando línea 42
(cjto 2, línea 0(vacía))
50 Busco en el cjto 2 de MC (FALLO); Demando línea 50 (cjto 2, línea 1(vacía))

42 ACIERTO
66 Busco en el cjto 2 de MC (FALLO); Demando línea 66 (cjto 2, línea 2(vacía))

82 Busco en el cjto 2 de MC (FALLO); Demando línea 82 (cjto 2, línea 3(vacía))

90 Busco en el cjto 2 de MC (FALLO); Demando línea 90 (cjto 2, línea 1(LRU))


50 Busco en el cjto 2 de MC (FALLO); Demando línea 50 (cjto 2, línea 0(LRU))
42 Busco en el cjto 2 de MC (FALLO); Demando línea 42 (cjto 2, línea 2(LRU))
66 Busco en el cjto 2 de MC (FALLO); Demando línea 66 (cjto 2, línea 3(LRU))
82 Busco en el cjto 2 de MC (FALLO); Demando línea 82 (cjto 2, línea 1(LRU))
90 Busco en el cjto 2 de MC (FALLO); Demando línea 90 (cjto 2, línea 0(LRU))

63
Problema (VII)
• Directorio resultante en la cache de datos:
L1 D
0 10110 (90) 0
Cjto 1 10100 (82) 1 Cjto
0 2 01010 (42) 2 2
3 10000 (66) 3
0 0
Cjto 1 1 Cjto
1 2 2 3
3 3

§ Índice de Fallos = 10 / 11

§ Número de Precargas = 0

64

Вам также может понравиться