Академический Документы
Профессиональный Документы
Культура Документы
Í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)
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
SÍ
¿Está
ACIERTO
en MC?
Petición de
MP referencia NO
MC de memoria
µP rápida lenta
pequeña FALLO
grande
Acceder a MP
SÍ
GUARDAR
¿Hay REEM-
sitio? PLAZAR
NO
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)
µ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
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
13
Precarga bajo fallo (ejemplo)
FALLO
MC
1 1, 2
MP
µP
ACIERTO
MC
1
2
2 MP
µP
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
15
Ejemplos de Precarga
MC
1 1
2 MP
µP
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
18
Políticas de ubicación (II)
Funciones de asignación
§ Asignación Directa
§ Totalmente Asociativa
§ Asociativa por Conjuntos
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
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
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 !!!!
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 !!!!
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 !!!!
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 !!!!
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
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
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
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 !!!!
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
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
§ 17(10: 000100 01
§ 79(10: 010011 11
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 !!!!
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
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
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
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
• 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
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
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(*) - -
54
Otros aspectos destacados (III)
55
Otros aspectos destacados (III)
L1 I
55
Otros aspectos destacados (III)
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.
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.
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))
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